Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnsgar Radermacher2016-01-16 23:21:13 +0000
committerAnsgar Radermacher2016-01-17 13:03:01 +0000
commit36b670f0a9f5dd59422a9f368dfe035d0b5f719c (patch)
tree7bb419a329ba5c568f5b3062b7661ed0b3e78d46 /extraplugins/qompass
parent47dd8f8ebd64192956b097cb70f783d7446138ab (diff)
downloadorg.eclipse.papyrus-36b670f0a9f5dd59422a9f368dfe035d0b5f719c.tar.gz
org.eclipse.papyrus-36b670f0a9f5dd59422a9f368dfe035d0b5f719c.tar.xz
org.eclipse.papyrus-36b670f0a9f5dd59422a9f368dfe035d0b5f719c.zip
Bug 484701 - [QDesigner] Refactoring - code generators, architecture exploration and component based design should be organised in common directory
Bug 478797 - [model library] Decide which model library to use for C++ primitive types Change-Id: Idade4edfcf803da3528c0873aa04b754915866fd
Diffstat (limited to 'extraplugins/qompass')
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/.classpath7
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/.project35
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/META-INF/MANIFEST.MF24
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/about.html28
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/build.properties8
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/plugin.properties12
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/plugin.xml18
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/pom.xml14
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/src/org/eclipse/papyrus/cpp/cdtproject/Activator.java54
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/src/org/eclipse/papyrus/cpp/cdtproject/CCNamedProjectWizard.java47
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/src/org/eclipse/papyrus/cpp/cdtproject/CDTMainWizardPageV.java33
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/src/org/eclipse/papyrus/cpp/cdtproject/CDTSettings.java28
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/src/org/eclipse/papyrus/cpp/cdtproject/CNamedProjectWizard.java47
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/src/org/eclipse/papyrus/cpp/cdtproject/CProjectSupport.java16
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/src/org/eclipse/papyrus/cpp/cdtproject/C_CppProjectSupport.java225
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/src/org/eclipse/papyrus/cpp/cdtproject/CppProjectSupport.java17
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/.classpath7
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/.project28
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/META-INF/MANIFEST.MF26
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/about.html28
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/build.properties9
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/icons/codegen.gifbin0 -> 114 bytes
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/plugin.properties12
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/plugin.xml49
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/pom.xml14
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/src/org/eclipse/papyrus/cpp/codegen/ui/Activator.java71
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/src/org/eclipse/papyrus/cpp/codegen/ui/handlers/CDTprojectHandler.java83
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/src/org/eclipse/papyrus/cpp/codegen/ui/handlers/GenerateCodeHandler.java123
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/src/org/eclipse/papyrus/cpp/codegen/ui/preferences/CodegenPreferencePage.java117
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/.classpath8
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/.project52
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/META-INF/MANIFEST.MF41
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/about.html28
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/build.acceleo26
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/build.properties13
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/plugin.properties12
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/plugin.xml18
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/pom.xml56
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/Activator.java68
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/Constants.java46
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/CppLangCodegen.java138
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/Messages.java27
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/messages.properties2
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/preferences/CppCodeGenConstants.java41
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/preferences/CppCodeGenPreferenceInitializer.java42
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/preferences/CppCodeGenUtils.java53
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/transformation/CppLocationStrategy.java30
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/transformation/CppModelElementsCreator.java243
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/ClassUtils.java81
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/CppGenUtils.java351
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/ILocateCppProject.java36
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/LocateCppProject.java130
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/Messages.java18
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/Modifier.java189
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/messages.properties4
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppAttribute.xtend92
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassAttributesDeclaration.xtend26
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassFriendDeclaration.xtend35
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassIncludeClassDeclaration.xtend69
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassIncludeDeclaration.xtend51
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassInheritedDeclarations.xtend51
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassOperationsDeclaration.xtend36
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassOperationsImplementation.xtend44
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassTypeAndEnum.xtend72
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassifierGenerator.xtend253
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppDocumentation.xtend49
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppEnumerations.xtend33
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppIncludeUtil.xtend86
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppInnerClassifiers.xtend58
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppOperations.xtend204
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppPackageHeaderGenerator.xtend64
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppParameter.xtend62
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppPrimitiveTypes.xtend49
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppTemplates.xtend58
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/xtend-gen/.gitignore2
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/.classpath7
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/.project28
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/META-INF/MANIFEST.MF13
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/about.html28
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/build.properties9
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/models/examples/HelloWorldOO.di21
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/models/examples/HelloWorldOO.notation176
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/models/examples/HelloWorldOO.uml43
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/plugin.properties12
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/plugin.xml15
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/pom.xml14
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/src/org/eclipse/papyrus/cpp/examples/Activator.java54
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/src/org/eclipse/papyrus/cpp/examples/HelloWorldOOModelWizard.java27
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/.classpath7
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/.project28
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/META-INF/MANIFEST.MF12
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/about.html28
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/build.properties9
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/icons/transfo_cpp.gifbin0 -> 352 bytes
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/plugin.properties12
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/plugin.xml13
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/pom.xml14
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/src/org/eclipse/papyrus/cpp/library/ui/Activator.java50
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/.classpath7
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/.project28
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/.settings/org.eclipse.jdt.core.prefs291
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/.settings/org.eclipse.jdt.ui.prefs68
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/META-INF/MANIFEST.MF14
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/about.html28
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/build.properties9
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/models/AnsiCLibrary.di17
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/models/AnsiCLibrary.notation348
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/models/AnsiCLibrary.uml37
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/plugin.properties12
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/plugin.xml10
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/pom.xml14
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/src/org/eclipse/papyrus/cpp/library/Activator.java30
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/.classpath7
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/.project28
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/META-INF/MANIFEST.MF12
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/about.html28
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/build.properties9
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/icons/transfo_cpp.gifbin0 -> 352 bytes
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/plugin.properties12
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/plugin.xml13
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/pom.xml14
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/src/org/eclipse/papyrus/cpp/profile/ui/Activator.java50
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/.classpath7
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/.project28
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/.settings/org.eclipse.jdt.core.prefs291
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/.settings/org.eclipse.jdt.ui.prefs68
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/META-INF/MANIFEST.MF18
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/about.html28
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/build.properties10
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/libraries/AnsiCLibrary.di17
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/libraries/AnsiCLibrary.notation348
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/libraries/AnsiCLibrary.uml37
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/plugin.properties12
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/plugin.xml32
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/pom.xml14
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/profiles/C_Cpp.ecore205
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/profiles/C_Cpp.genmodel196
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/profiles/C_Cpp.profile.di41
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/profiles/C_Cpp.profile.notation1835
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/profiles/C_Cpp.profile.uml529
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/profiles/PapyrusC.profile.di38
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/profiles/PapyrusC.profile.notation650
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/profiles/PapyrusC.profile.uml4143
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Array.java140
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/C_CppFactory.java268
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/C_CppPackage.java2980
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Const.java114
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/ConstInit.java86
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/CppInit.java86
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/CppRoot.java63
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/EAccessKind.java251
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/EStorageClass.java251
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/ExternLibrary.java144
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/External.java86
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Friend.java87
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Include.java200
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Inline.java60
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/ManualGeneration.java89
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Mutable.java52
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/NoCodeGen.java64
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Ptr.java117
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Ref.java87
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/StorageClass.java118
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Template.java85
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/TemplateBinding.java85
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/TemplateParameter.java85
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Typedef.java86
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Union.java60
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Variadic.java52
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Virtual.java60
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Visibility.java86
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/VisibilityKind.java251
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Volatile.java104
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/ArrayImpl.java362
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/C_CppFactoryImpl.java518
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/C_CppPackageImpl.java1464
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/ConstImpl.java292
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/ConstInitImpl.java236
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/CppInitImpl.java236
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/CppRootImpl.java165
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/ExternLibraryImpl.java370
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/ExternalImpl.java236
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/FriendImpl.java229
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/IncludeImpl.java468
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/InlineImpl.java166
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/ManualGenerationImpl.java235
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/MutableImpl.java157
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/NoCodeGenImpl.java166
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/PtrImpl.java299
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/RefImpl.java229
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/StorageClassImpl.java296
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/TemplateBindingImpl.java235
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/TemplateImpl.java235
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/TemplateParameterImpl.java235
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/TypedefImpl.java236
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/UnionImpl.java166
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/VariadicImpl.java157
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/VirtualImpl.java166
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/VisibilityImpl.java236
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/VolatileImpl.java291
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/util/C_CppAdapterFactory.java584
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/util/C_CppResourceFactoryImpl.java50
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/util/C_CppResourceImpl.java37
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/util/C_CppSwitch.java646
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/util/C_CppXMLProcessor.java57
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/cpp/profile/Activator.java30
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.test/.cproject114
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.test/.gitignore2
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.test/.project83
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.test/model/TestCCodeGen.di29
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.test/model/TestCCodeGen.notation151
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.test/model/TestCCodeGen.uml187
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.test/model/TestCDTintegration.di32
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.test/model/TestCDTintegration.notation283
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.test/model/TestCDTintegration.uml182
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/.classpath7
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/.project28
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/META-INF/MANIFEST.MF35
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/about.html28
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/build.properties10
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/icons/texteditor.gifbin0 -> 133 bytes
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/icons/texteditor.xcfbin0 -> 888 bytes
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/plugin.properties14
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/plugin.xml49
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/pom.xml14
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/Activator.java71
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/AddProfileAndModelLibsHandler.java144
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/CommandSupport.java75
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/TextEditorConstants.java23
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/Utils.java187
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/editor/DelegatingSourceViewer.java400
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/editor/PapyrusCDTEditor.java395
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/factory/PapyrusCDTEditorFactory.java210
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/handler/PapyrusCDTEditorHandler.java308
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/listener/ChangeKind.java7
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/listener/Closure.java81
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/listener/ModelListener.java135
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/listener/OperationHistoryListener.java76
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/modelresource/TextEditorModelSharedResource.java120
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/preferences/CDTPreferenceConstants.java33
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/preferences/CDTPreferenceInitializer.java39
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/preferences/CDTPreferencePage.java64
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/sync/FindTransition.java47
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/sync/ObtainICElement.java129
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/sync/ParameterModifiers.java45
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/sync/RevealCurrentOperation.java128
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/sync/SyncCDTtoModel.java635
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/sync/SyncModelToCDT.java80
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/.classpath7
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/.project28
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/META-INF/MANIFEST.MF34
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/about.html28
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/about.ini17
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/build.properties10
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/plugin.properties12
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/plugin.xml13
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/pom.xml14
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/resources/icons/Papyrus_32x32.gifbin0 -> 518 bytes
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/resources/icons/save_edit.gifbin0 -> 639 bytes
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/resources/icons/transfo_cpp.gifbin0 -> 352 bytes
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/resources/icons/transfo_cpp_old.gifbin0 -> 630 bytes
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/resources/icons/undo_edit.gifbin0 -> 355 bytes
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/cpp/AbstractCppPanelView.java107
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/cpp/Activator.java160
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/cpp/Activator.properties96
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/cpp/CommandSupport.java81
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/cpp/CppPanelView.java91
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/listeners/UMLElementPanelListener.java90
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppAbstractPanel.java447
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppBehaviorPanel.java275
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppClassPanel.java225
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppDefaultPanel.java104
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppGeneralizationPanel.java268
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppOperationPanel.java647
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppPackagePanel.java183
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppParameterPanel.java346
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppPrimitiveTypePanel.java167
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppPropertyPanel.java384
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppTemplateBindingPanel.java178
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppTemplateParameterPanel.java181
-rw-r--r--extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/PanelFactory.java144
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java-updatesite/.project17
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java-updatesite/site.xml29
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/.classpath7
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/.project28
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/.settings/org.eclipse.jdt.core.prefs291
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/.settings/org.eclipse.jdt.ui.prefs68
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/META-INF/MANIFEST.MF19
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/about.html28
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/build.properties8
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/icons/generate.psdbin0 -> 182989 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/icons/generation.pngbin0 -> 3683 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/icons/sample.gifbin0 -> 983 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/plugin.properties18
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/pom.xml14
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/GeneratorPreference.java77
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/RunGenerator.java228
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTCommentable.java161
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTCompilationUnit.java95
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTField.java217
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTGetterSetter.java168
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTJavaModel.java73
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTJavaProject.java145
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTMethod.java387
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTPackageFragment.java112
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTPackageFragmentRoot.java120
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTType.java435
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchTools.java325
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/.classpath7
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/.project28
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/.settings/org.eclipse.jdt.core.prefs291
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/.settings/org.eclipse.jdt.ui.prefs68
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/META-INF/MANIFEST.MF18
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/about.html28
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/build.properties12
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTCompilationUnit_types_JDTClass.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTCompilationUnit_types_JDTEnum.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTCompilationUnit_types_JDTInterface.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTCompilationUnit_types_JDTType.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTJavaModel_javaProject_JDTJavaProject.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTJavaProject_packageFragmentRoots_JDTPackageFragmentRoot.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTMember_typeParameters_JDTTypeParameter.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTMethod_bodies_JDTOpaqueBody.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTMethod_bodies_OpaqueMethodBody.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTMethod_parameters_JDTParameter.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTMethod_returnType_JDTParameter.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTPackageFragmentRoot_packageFragments_JDTPackageFragment.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTPackageFragment_compilationUnits_JDTCompilationUnit.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTPackageFragment_packageFragments_JDTPackageFragment.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_fields_JDTField.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_methods_JDTMethod.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_types_JDTClass.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_types_JDTEnum.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_types_JDTInterface.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_types_JDTType.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTClass.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTCompilationUnit.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTEnum.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTException.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTField.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTImportContainer.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTImportDeclaration.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTInterface.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTJavaElement.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTJavaModel.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTJavaProject.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTMethod.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTOpaqueBody.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTPackageFragment.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTPackageFragmentRoot.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTParameter.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTTypeParameter.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/OpaqueMethodBody.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/Options.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/plugin.properties22
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/plugin.xml22
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/pom.xml14
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/provider/GeneratoroptionsmmEditPlugin.java95
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/provider/GeneratoroptionsmmItemProviderAdapterFactory.java221
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/provider/OptionsItemProvider.java164
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTClassItemProvider.java135
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTCompilationUnitItemProvider.java242
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTEnumItemProvider.java135
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTExceptionItemProvider.java145
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTFieldItemProvider.java343
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTImportContainerItemProvider.java135
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTImportDeclarationItemProvider.java135
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTInterfaceItemProvider.java135
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTJavaElementItemProvider.java270
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTJavaModelItemProvider.java181
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTJavaProjectItemProvider.java232
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTMemberItemProvider.java247
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTMethodBodyItemProvider.java117
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTMethodItemProvider.java371
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTOpaqueBodyItemProvider.java153
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTPackageFragmentItemProvider.java232
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTPackageFragmentRootItemProvider.java232
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTParameterItemProvider.java218
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTParentItemProvider.java193
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTParentJavaElementItemProvider.java181
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTTypeItemProvider.java508
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTTypeParameterItemProvider.java135
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTTypeRootItemProvider.java123
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JdtmmEditPlugin.java115
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JdtmmItemProviderAdapterFactory.java661
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/.classpath7
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/.project28
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/.settings/org.eclipse.jdt.core.prefs291
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/.settings/org.eclipse.jdt.ui.prefs68
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/META-INF/MANIFEST.MF18
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/about.html28
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/build.properties12
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/icons/full/obj16/JdtmmModelFile.gifbin0 -> 346 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/icons/full/wizban/NewJdtmm.gifbin0 -> 2462 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/plugin.properties53
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/plugin.xml37
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/pom.xml14
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/presentation/GeneratoroptionsmmActionBarContributor.java441
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/presentation/GeneratoroptionsmmEditor.java1884
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/presentation/GeneratoroptionsmmEditorPlugin.java96
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/presentation/GeneratoroptionsmmModelWizard.java636
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/presentation/JdtmmActionBarContributor.java461
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/presentation/JdtmmEditor.java1897
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/presentation/JdtmmEditorPlugin.java116
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/presentation/JdtmmModelWizard.java656
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/.classpath7
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/.project28
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/.settings/org.eclipse.jdt.core.prefs291
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/.settings/org.eclipse.jdt.ui.prefs68
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/META-INF/MANIFEST.MF22
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/about.html28
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/build.properties16
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.di2
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.ecore12
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.genmodel40
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.notation36
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.uml17
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.di53
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.ecore243
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.genmodel191
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.notation3094
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.uml481
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/reverse/reverseJDT.di29
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/reverse/reverseJDT.notation1614
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/reverse/reverseJDT.uml20911
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/plugin.properties19
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/plugin.xml28
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/pom.xml14
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/GeneratoroptionsmmFactory.java57
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/GeneratoroptionsmmPackage.java187
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/Options.java63
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/impl/GeneratoroptionsmmFactoryImpl.java114
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/impl/GeneratoroptionsmmPackageImpl.java229
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/impl/OptionsImpl.java187
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/util/GeneratoroptionsmmAdapterFactory.java139
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/util/GeneratoroptionsmmSwitch.java131
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTClass.java37
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTCompilationUnit.java106
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTEnum.java37
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTException.java38
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTField.java322
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTImportContainer.java37
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTImportDeclaration.java37
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTInterface.java37
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTJavaElement.java207
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTJavaModel.java63
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTJavaProject.java100
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTMember.java130
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTMethod.java316
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTMethodBody.java71
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTOpaqueBody.java55
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTPackageFragment.java106
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTPackageFragmentRoot.java106
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTParameter.java193
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTParent.java111
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTParentJavaElement.java37
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTType.java452
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTTypeParameter.java74
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTTypeRoot.java37
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JdtmmFactory.java217
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JdtmmPackage.java5215
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/TrueFalseDefault.java278
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/VisibilityKind.java278
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTClassImpl.java61
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTCompilationUnitImpl.java375
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTEnumImpl.java61
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTExceptionImpl.java62
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTFieldImpl.java749
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTImportContainerImpl.java61
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTImportDeclarationImpl.java61
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTInterfaceImpl.java61
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTJavaElementImpl.java453
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTJavaModelImpl.java193
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTJavaProjectImpl.java333
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTMemberImpl.java363
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTMethodBodyImpl.java232
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTMethodImpl.java779
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTOpaqueBodyImpl.java191
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTPackageFragmentImpl.java376
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTPackageFragmentRootImpl.java376
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTParameterImpl.java515
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTParentImpl.java254
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTParentJavaElementImpl.java296
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTTypeImpl.java1117
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTTypeParameterImpl.java235
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTTypeRootImpl.java61
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JdtmmFactoryImpl.java558
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JdtmmPackageImpl.java1905
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/util/JdtmmAdapterFactory.java595
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/util/JdtmmPreference.java58
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/util/JdtmmSwitch.java880
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/visitor/JDTVisitor.java39
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/visitor/JDTVisitorException.java42
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/utils/DerivedNotifyingEList.java442
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/.classpath7
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/.project38
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/.settings/org.eclipse.jdt.core.prefs291
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/.settings/org.eclipse.jdt.ui.prefs68
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/META-INF/MANIFEST.MF10
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/about.html28
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/build.properties8
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/doc/rulesInheritance.di23
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/doc/rulesInheritance.notation775
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/doc/rulesInheritance.uml55
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/plugin.properties19
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/pom.xml14
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/src/org/eclipse/papyrus/java/generator/transfo/umltojdt/UmltojdtActivator.java71
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/transforms/uml/algo.txt167
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/transforms/uml/stereotypeUtil.qvto99
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/transforms/uml/uml2jdt2.qvto1269
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/.classpath7
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/.project28
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/.settings/org.eclipse.jdt.core.prefs291
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/.settings/org.eclipse.jdt.ui.prefs68
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/META-INF/MANIFEST.MF21
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/about.html28
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/build.properties9
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/icons/generate.psdbin0 -> 182989 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/icons/generation.pngbin0 -> 3683 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/icons/sample.gifbin0 -> 983 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/plugin.properties19
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/plugin.xml88
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/pom.xml14
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/Activator.java70
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/handlers/GenerateJavaCodeHandler.java246
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/GeneratorPreferenceImpl.java103
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/GenericClassFieldEditor.java69
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/PackageListEditor.java87
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/PreferenceConstants.java41
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/PreferenceInitializer.java47
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/PreferencePage.java109
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/.classpath7
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/.project28
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/.settings/org.eclipse.jdt.core.prefs291
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/.settings/org.eclipse.jdt.ui.prefs68
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/META-INF/MANIFEST.MF15
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/about.html28
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/build.properties16
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/JavaClass.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/JavaMethod.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/JavaPackage_.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/JavaParameter.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/JavaProject.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/JavaProperty.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/JavaSrcFolder.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/PrimitiveType.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/plugin.properties86
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/plugin.xml25
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/pom.xml14
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaClassItemProvider.java276
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaEditPlugin.java103
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaGenItemProvider.java166
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaItemProviderAdapterFactory.java421
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaMethodItemProvider.java351
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaNamedElementItemProvider.java255
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaPackage_ItemProvider.java177
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaParameterItemProvider.java177
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaProjectItemProvider.java145
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaPropertyItemProvider.java351
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaSrcFolderItemProvider.java145
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/PrimitiveTypeItemProvider.java202
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/.classpath7
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/.project28
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/.settings/org.eclipse.jdt.core.prefs291
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/.settings/org.eclipse.jdt.ui.prefs68
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/META-INF/MANIFEST.MF17
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/about.html28
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/build.properties16
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/icons/full/obj16/JavaModelFile.gifbin0 -> 346 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/icons/full/wizban/NewJava.gifbin0 -> 2462 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/plugin.properties65
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/plugin.xml39
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/pom.xml14
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/src/org/eclipse/papyrus/java/profile/java/presentation/JavaActionBarContributor.java445
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/src/org/eclipse/papyrus/java/profile/java/presentation/JavaEditor.java1885
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/src/org/eclipse/papyrus/java/profile/java/presentation/JavaEditorPlugin.java104
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/src/org/eclipse/papyrus/java/profile/java/presentation/JavaModelWizard.java640
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/.classpath7
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/.project28
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/.settings/org.eclipse.jdt.core.prefs291
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/.settings/org.eclipse.jdt.ui.prefs68
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/META-INF/MANIFEST.MF17
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/about.html28
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/build.properties17
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/icons/javaprofile.gifbin0 -> 983 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/models/java.ecore112
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/models/java.profile.di29
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/models/java.profile.genmodel105
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/models/java.profile.notation821
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/models/java.profile.uml5729
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/plugin.properties16
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/plugin.xml50
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/pom.xml14
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaClass.java209
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaFactory.java120
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaGen.java84
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaMethod.java297
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaNamedElement.java173
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaPackage.java2348
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaPackage_.java84
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaParameter.java85
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaProject.java55
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaProperty.java305
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaSrcFolder.java55
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/PrimitiveType.java113
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/TrueFalseDefault.java262
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaClassImpl.java486
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaFactoryImpl.java270
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaGenImpl.java240
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaMethodImpl.java670
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaNamedElementImpl.java424
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaPackageImpl.java978
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaPackage_Impl.java250
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaParameterImpl.java251
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaProjectImpl.java172
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaPropertyImpl.java671
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaSrcFolderImpl.java172
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/PrimitiveTypeImpl.java311
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/util/JavaAdapterFactory.java321
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/util/JavaResourceFactoryImpl.java56
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/util/JavaResourceImpl.java34
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/util/JavaSwitch.java400
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/util/JavaXMLProcessor.java54
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/.classpath7
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/.project28
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/.settings/org.eclipse.core.resources.prefs3
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/.settings/org.eclipse.jdt.core.prefs291
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/.settings/org.eclipse.jdt.ui.prefs68
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/META-INF/MANIFEST.MF21
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/about.html28
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/build.properties11
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/icons/associationFromProperty.gifbin0 -> 96 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/icons/javaReverse.gifbin0 -> 152 bytes
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/plugin.properties16
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/plugin.xml154
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/pom.xml14
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/Activator.java54
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/DisplayReverse.java181
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/DndReverseCodeHandler.java246
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/JavaCodeReverse.java287
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/Messages.java19
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/ReverseCodeHandler.java196
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/TreeSelectionList.java153
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/dialog/DndReverseCodeDialog.java93
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/dialog/InputListDialog.java332
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/dialog/ReverseCodeDialog.java281
-rwxr-xr-xextraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/dnd/DropReverseCommand.java103
-rwxr-xr-xextraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/dnd/DropReverseStrategy.java60
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/dnd/Messages.java19
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/dnd/messages.properties2
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/handlers/CreateAssociationFromPropertyHandler.java286
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/messages.properties2
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/.classpath7
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/.project28
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/.settings/org.eclipse.jdt.core.prefs291
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/.settings/org.eclipse.jdt.ui.prefs68
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/META-INF/MANIFEST.MF17
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/about.html28
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/build.properties8
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/plugin.properties16
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/pom.xml14
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ASTParser.java10321
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ASTParserConstants.java531
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ASTParserTokenManager.java2579
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/JavaCharStream.java599
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/JavaParser.java173
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ParseException.java216
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/Token.java142
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/TokenMgrError.java158
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/BlockComment.java55
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/Comment.java64
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/CompilationUnit.java177
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/ImportDeclaration.java133
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/LineComment.java55
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/Node.java191
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/PackageDeclaration.java114
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/TypeParameter.java114
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/AnnotationDeclaration.java52
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/AnnotationMemberDeclaration.java97
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/BodyDeclaration.java63
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/ClassOrInterfaceDeclaration.java98
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/ConstructorDeclaration.java121
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/EmptyMemberDeclaration.java48
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/EmptyTypeDeclaration.java48
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/EnumConstantDeclaration.java85
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/EnumDeclaration.java75
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/FieldDeclaration.java85
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/InitializerDeclaration.java71
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/JavadocComment.java49
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/MethodDeclaration.java144
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/ModifierSet.java118
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/Parameter.java108
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/TypeDeclaration.java72
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/VariableDeclarator.java73
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/VariableDeclaratorId.java72
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/AnnotationExpr.java36
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/ArrayAccessExpr.java71
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/ArrayCreationExpr.java106
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/ArrayInitializerExpr.java62
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/AssignExpr.java97
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/BinaryExpr.java104
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/BooleanLiteralExpr.java59
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/CastExpr.java72
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/CharLiteralExpr.java48
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/ClassExpr.java61
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/ConditionalExpr.java82
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/DoubleLiteralExpr.java48
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/EnclosedExpr.java60
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/Expression.java38
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/FieldAccessExpr.java85
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/InstanceOfExpr.java72
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/IntegerLiteralExpr.java54
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/IntegerLiteralMinValueExpr.java50
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/LiteralExpr.java35
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/LongLiteralExpr.java55
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/LongLiteralMinValueExpr.java50
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/MarkerAnnotationExpr.java60
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/MemberValuePair.java72
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/MethodCallExpr.java96
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/NameExpr.java60
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/NormalAnnotationExpr.java73
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/NullLiteralExpr.java48
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/ObjectCreationExpr.java109
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/QualifiedNameExpr.java60
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/SingleMemberAnnotationExpr.java71
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/StringLiteralExpr.java59
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/SuperExpr.java60
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/ThisExpr.java60
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/UnaryExpr.java82
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/VariableDeclarationExpr.java96
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/AssertStmt.java71
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/BlockStmt.java61
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/BreakStmt.java59
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/CatchClause.java72
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/ContinueStmt.java59
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/DoStmt.java71
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/EmptyStmt.java48
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/ExplicitConstructorInvocationStmt.java96
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/ExpressionStmt.java60
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/ForStmt.java95
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/ForeachStmt.java83
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/IfStmt.java82
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/LabeledStmt.java70
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/ReturnStmt.java60
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/Statement.java38
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/SwitchEntryStmt.java73
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/SwitchStmt.java73
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/SynchronizedStmt.java72
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/ThrowStmt.java60
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/TryStmt.java83
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/TypeDeclarationStmt.java60
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/WhileStmt.java71
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/type/ClassOrInterfaceType.java83
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/type/PrimitiveType.java64
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/type/ReferenceType.java71
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/type/Type.java38
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/type/VoidType.java49
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/type/WildcardType.java72
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/visitor/DumpVisitor.java1387
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/visitor/GenericVisitor.java280
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/visitor/GenericVisitorAdapter.java910
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/visitor/VoidVisitor.java280
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/visitor/VoidVisitorAdapter.java828
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/java_1_5.jj3006
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/ClassifierCatalog.java393
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/CompilationUnitAnalyser.java1245
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/CreationPackageCatalog.java639
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/CuPrinter.java72
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/GenericSwitchVisitor.java665
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/GenericTransformer.java269
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/ImportedTypeCatalog.java167
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/ModelManager.java103
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/QualifiedName.java48
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/SwitchVisitor.java661
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/TypeAnalyser.java219
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/TypeAnalyserAndTranslator.java151
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/UmlParser.java163
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/UmlUtils.java1054
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/org/eclipse/papyrus/java/reverse/Activator.java54
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/org/eclipse/papyrus/java/reverse/utils/TypeOperationsEnhanced.java184
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/.classpath7
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/.project28
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/.settings/org.eclipse.jdt.core.prefs291
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/.settings/org.eclipse.jdt.ui.prefs68
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/META-INF/MANIFEST.MF16
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/about.html26
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/build.properties6
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/plugin.xml11
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/src/org/eclipse/papyrus/java/template/Activator.java63
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/src/org/eclipse/papyrus/java/template/resolvers/BundleActivatorResolver.java110
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/src/org/eclipse/papyrus/java/template/resolvers/RegisterResolver.java90
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/.classpath7
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/.project28
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/.settings/org.eclipse.jdt.core.prefs291
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/.settings/org.eclipse.jdt.ui.prefs68
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/META-INF/MANIFEST.MF20
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/about.html28
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/build.properties8
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/icons/codegen-16x16.gifbin0 -> 101 bytes
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/plugin.properties12
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/pom.xml14
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/Activator.java44
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/GenUtils.java731
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/HierarchyLocationStrategy.java46
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/ILocationStrategy.java14
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/IPFileSystemAccess.java33
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/JavaIoFileSystemAccess.java136
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/Messages.java15
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/ModelElementsCreator.java141
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/ProjectBasedFileAccess.java158
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/codesync/ChangeObject.java32
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/codesync/ManageChangeEvents.java137
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/codesync/RecordEventsListener.java110
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/messages.properties1
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/.classpath7
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/.project28
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/META-INF/MANIFEST.MF17
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/about.html28
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/build.properties9
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/plugin.properties12
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/plugin.xml6
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/pom.xml14
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/schema/languageCodegen.exsd84
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/schema/languageProject.exsd71
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/AbstractSettings.java24
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/Activator.java54
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/GenerationConstants.java31
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/GeneratorSelectionDialog.java122
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/ILangCodegen.java93
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/ILangCodegen2.java58
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/ILangProjectSupport.java58
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/LanguageCodegen.java214
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/LanguageProjectSupport.java51
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/Messages.java20
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/MethodInfo.java124
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/SyncInformation.java39
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/messages.properties6
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/.classpath7
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/.project28
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/META-INF/MANIFEST.MF16
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/about.html28
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/build.properties22
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/model/texteditormodel.ecore13
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/model/texteditormodel.genmodel19
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/plugin.properties15
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/plugin.xml27
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/pom.xml14
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/src/org/eclipse/papyrus/texteditor/model/texteditormodel/TextEditorModel.java191
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/src/org/eclipse/papyrus/texteditor/model/texteditormodel/TextEditorModelFactory.java52
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/src/org/eclipse/papyrus/texteditor/model/texteditormodel/TextEditorModelPackage.java310
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/src/org/eclipse/papyrus/texteditor/model/texteditormodel/impl/TextEditorModelFactoryImpl.java107
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/src/org/eclipse/papyrus/texteditor/model/texteditormodel/impl/TextEditorModelImpl.java464
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/src/org/eclipse/papyrus/texteditor/model/texteditormodel/impl/TextEditorModelPackageImpl.java255
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/src/org/eclipse/papyrus/texteditor/model/texteditormodel/util/TextEditorModelAdapterFactory.java148
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/src/org/eclipse/papyrus/texteditor/model/texteditormodel/util/TextEditorModelSwitch.java136
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/.classpath7
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/.project28
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/META-INF/MANIFEST.MF25
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/about.html28
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/build.properties9
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/plugin.properties13
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/plugin.xml17
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/pom.xml14
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/resources/TextEditorFacet.custom41
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/src/org/eclipse/papyrus/texteditor/modelexplorer/Activator.java73
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/src/org/eclipse/papyrus/texteditor/modelexplorer/adapters/TextEditorAdapterFactory.java40
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/src/org/eclipse/papyrus/texteditor/modelexplorer/queries/GetContainedTextEditors.java58
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/src/org/eclipse/papyrus/texteditor/modelexplorer/queries/GetTextEditorIcon.java35
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/src/org/eclipse/papyrus/texteditor/modelexplorer/queries/GetTextEditorName.java35
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/src/org/eclipse/papyrus/texteditor/modelexplorer/queries/IsTextEditorContainer.java35
-rw-r--r--extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/src/org/eclipse/papyrus/texteditor/modelexplorer/queries/NotVisibleStructuralFeatureQuery.java30
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/.classpath7
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/.project28
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/META-INF/MANIFEST.MF24
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/about.html28
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/build.properties19
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/icons/connector.pngbin0 -> 228 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/icons/connector.svg80
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/icons/deploy.gifbin0 -> 148 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/icons/fcm.gifbin0 -> 123 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/icons/hires/connector.pngbin0 -> 770 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/icons/port.gifbin0 -> 95 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/icons/target.gifbin0 -> 111 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/model/FCM.ecore301
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/model/FCM.genmodel176
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/model/FCM.profile.di60
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/model/FCM.profile.notation2897
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/model/FCM.profile.uml679
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/palettes/palette-classdep.xml29
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/palettes/palette-composite.xml23
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/plugin.properties12
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/plugin.xml82
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/pom.xml14
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/schema/fcmBindingHelper.exsd99
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/schema/fcmEmbeddingRule.exsd99
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/schema/fcmPortMappingRule.exsd99
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Activator.java65
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Assembly.java66
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/AutoIndex.java60
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/AutoIndexPerNode.java27
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/BindTemplate.java78
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/BindingHelper.java63
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CodeGenOptions.java115
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CompImplTemplate.java85
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CompToOOmapping.java63
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CompilerChain.java59
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ConfigOption.java59
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ConfigurableElementInstance.java60
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Configuration.java102
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ConfigurationProperty.java64
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Connector.java115
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ConnectorConfiguration.java86
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ContainerRule.java109
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ContainerRuleKind.java225
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CopyAttributeValue.java86
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/DeploymentPlan.java86
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/DerivedElement.java86
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/FCMFactory.java376
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/FCMPackage.java3911
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Flatten.java63
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Fragment.java59
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ImplementationGroup.java63
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ImplementationProperties.java170
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InitPrecedence.java92
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InstanceConfigurator.java85
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InteractionComponent.java117
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InterceptionKind.java310
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InterceptionRule.java134
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/OperatingSystem.java59
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Port.java117
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/PortKind.java138
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ProgLanguage.java63
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/RuleApplication.java106
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Singleton.java63
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Target.java207
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/TargetArchitecture.java59
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Template.java90
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/TemplatePort.java90
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/UseInstanceConfigurator.java89
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/AssemblyImpl.java165
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/AutoIndexImpl.java166
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/AutoIndexPerNodeImpl.java46
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/BindTemplateImpl.java207
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/BindingHelperImpl.java165
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CodeGenOptionsImpl.java291
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CompImplTemplateImpl.java235
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CompToOOmappingImpl.java165
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CompilerChainImpl.java165
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConfigOptionImpl.java165
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConfigurableElementInstanceImpl.java166
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConfigurationImpl.java269
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConfigurationPropertyImpl.java166
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConnectorConfigurationImpl.java229
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConnectorImpl.java290
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ContainerRuleImpl.java277
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CopyAttributeValueImpl.java228
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/DeploymentPlanImpl.java228
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/DerivedElementImpl.java228
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FCMFactoryImpl.java652
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FCMPackageImpl.java2002
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FlattenImpl.java165
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FragmentImpl.java165
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ImplementationGroupImpl.java165
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ImplementationPropertiesImpl.java430
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/InitPrecedenceImpl.java240
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/InstanceConfiguratorImpl.java234
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/InteractionComponentImpl.java298
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/InterceptionRuleImpl.java341
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/OperatingSystemImpl.java165
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/PortImpl.java334
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/PortKindImpl.java351
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ProgLanguageImpl.java165
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/RuleApplicationImpl.java268
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/SingletonImpl.java165
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/TargetArchitectureImpl.java165
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/TargetImpl.java522
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/TemplateImpl.java229
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/TemplatePortImpl.java181
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/UseInstanceConfiguratorImpl.java228
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/ConnectorTypeUtil.java41
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMAdapterFactory.java832
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMResourceFactoryImpl.java50
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMResourceImpl.java37
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMSwitch.java938
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMUtil.java240
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMXMLProcessor.java57
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/IBindingHelper.java26
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/IEmbeddingRule.java31
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/IMappingRule.java41
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/ITemplateMappingRule.java40
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/MapUtil.java530
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/.classpath7
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/.project46
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/META-INF/MANIFEST.MF47
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/about.html28
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/about.properties12
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/build.acceleo26
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/build.properties12
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/plugin.properties12
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/plugin.xml15
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/pom.xml14
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/schema/externalGenerator.exsd109
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/schema/instanceConfig.exsd109
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/schema/language.exsd109
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/schema/ooTransformation.exsd109
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/schema/xtendGenerator.exsd109
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/Activator.java60
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/CORBAtypeNames.java23
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/CommandSupport.java118
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/ConfigUtils.java93
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/CreationUtils.java81
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/Description.java83
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/ElementFilter.java7
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/EnumService.java151
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/Log.java99
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/Messages.java128
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/ModelManagement.java174
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/OperationUtils.java166
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/PortInfo.java139
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/PortUtils.java312
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/ProjectManagement.java55
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/RunnableWithResult.java29
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/StUtils.java170
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/Stereotypes.java27
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/UMLTool.java410
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/Utils.java471
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/commands/AddMarteAndFcmProfile.java148
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/commands/AddQompassModelLibs.java202
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/AllocUtils.java373
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/BootLoaderGen.java546
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/DepCreation.java646
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/DepPlanUtils.java375
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/DepUtils.java564
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/Deploy.java188
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/DeployConstants.java14
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/GatherConfigData.java64
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/ImplementationChooser.java34
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/InstanceDeployer.java63
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/PartialCopy.java126
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/BindingHelperExt.java98
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/EmbeddingRule.java65
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/ExternalGenerator.java64
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/IEmbeddingRule.java37
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/IExternalGenerator.java33
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/IInstanceConfigurator.java38
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/IOOTrafo.java97
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/IXtend.java15
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/InstanceConfigurator.java121
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/OOTrafo.java61
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/XtendGenerator.java48
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/generate/GenerateCode.java195
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/generate/GenerationOptions.java19
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/DepPlanListener.java59
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/InterfaceListener.java64
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/ModelListener.java56
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/OperationListener.java71
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/ParameterListener.java63
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/PortListener.java77
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/PostCopyListener.java35
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/PreCopyListener.java38
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/make/GenerateMakefile.java118
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/make/ShowFiles.java104
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/messages.properties91
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/preferences/QompassPreferenceConstants.java33
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/sync/CompImplSync.java451
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/sync/CompTypeSync.java55
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/sync/DepPlanSync.java147
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/sync/InterfaceSync.java141
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/sync/SyncBehaviorParameters.java44
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/BindingUtils.java150
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/ConnectorBinding.java455
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/PostTemplateInstantiationListener.java62
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/PreTemplateInstantiationListener.java94
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/TemplateInstantiation.java284
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/TemplateUtils.java395
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/TextTemplateBinding.java80
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/XtendTemplateBinding.java84
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/AbstractContainerTrafo.java114
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/AllocTransfo.java93
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/CompTypeTrafos.java127
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/CopyTo.java35
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/ExecuteOOTrafo.java175
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/FlattenInteractionComponents.java224
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/InstantiateDepPlan.java619
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/LazyCopier.java1044
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/MainModelTrafo.java479
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/PrefixConstants.java57
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/RuleManagement.java32
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/TrafoAndCodegenPackage.java351
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/TransformationContext.java106
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/TransformationException.java28
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/TransformationRTException.java33
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/TransformationUtil.java81
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/UpdateUtils.java84
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/connector/ConnectorReification.java400
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/container/ContainerTrafo.java770
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/container/LWContainerTrafo.java438
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterRuleApplication.java46
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterSignatures.java50
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterStateMachines.java95
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterTemplate.java75
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FixTemplateSync.java56
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/.classpath8
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/.project34
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/META-INF/MANIFEST.MF21
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/about.html28
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/build.properties8
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/plugin.properties12
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/plugin.xml18
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/pom.xml55
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/Activator.java50
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/Constants.java9
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/Messages.java19
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/messages.properties3
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/xtend/CppPortMapping.xtend553
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/xtend/CppUtils.xtend26
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/xtend/DynamicCpptoOO.xtend505
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/xtend/StaticCppToOO.xtend550
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/xtend-gen/.gitignore2
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/.classpath7
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/.project28
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/META-INF/MANIFEST.MF14
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/about.html28
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/build.properties12
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/AddPorts.xml109
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/CodeCompilation.xml22
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/CodeGeneration.xml30
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/ComponentDev.xml76
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/ComponentImplementation.xml85
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/ComponentModel.xml75
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/DeploymentPlan.xml57
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/Main.xml69
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/MarteAddComponents.xml31
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/MarteAddPorts.xml21
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/MarteMain.xml81
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/MarteNewModel.xml29
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/NewModel.xml31
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/OpenExample.xml31
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/PlatformModel.xml51
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/Validation.xml35
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/help/index.xml1
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/help/tocconcepts.xml15
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/help/tocdevguide.xml21
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/help/tocreference.xml25
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/concepts/bibliography.html60
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/concepts/codegen.html60
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/concepts/connector-container.html114
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/concepts/input-models.html67
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/concepts/overview.html55
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/developer-guide/DefineNewPortKinds.html34
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/developer-guide/createContainers.html44
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/developer-guide/createInteractionComponents.html58
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/developer-guide/developer.html57
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/developer-guide/org.eclipse.papyrus.qompass.designer.core.html34
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/arrow.pngbin0 -> 741 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/connector-after-trafo.pngbin0 -> 14202 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/connector-before-trafo.pngbin0 -> 17169 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/connector-selection.pngbin0 -> 48922 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/container-aggregation.pngbin0 -> 5155 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/container-connector.pngbin0 -> 14509 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/container-interceptor.pngbin0 -> 5511 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/container-interceptor2.pngbin0 -> 5025 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/container-selection.pngbin0 -> 41152 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/deployment.pdfbin0 -> 41197 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/deployment.pngbin0 -> 18047 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/logo-flex-eWare-small.pngbin0 -> 23920 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/logo-marte.pngbin0 -> 4584 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/logo-papyrus.pngbin0 -> 10227 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/overview-eng.odgbin0 -> 21814 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/overview-eng.pdfbin0 -> 23896 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/overview-eng.pngbin0 -> 31781 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/overview-eng.vsdbin0 -> 57344 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/qompass-0.33.jpgbin0 -> 22983 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/qompass.jpgbin0 -> 141908 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/scaled/connector-after-trafo.pngbin0 -> 8870 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/scaled/connector-before-trafo.pngbin0 -> 14650 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/scaled/connector-selection.pngbin0 -> 26512 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/scaled/container-aggregation.pngbin0 -> 8424 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/scaled/container-interceptor.pngbin0 -> 10141 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/scaled/container-interceptor2.pngbin0 -> 8384 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/scaled/container-selection.pngbin0 -> 41752 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/statemachine-rule.pngbin0 -> 18516 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/toolchain.odgbin0 -> 170601 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/toolchain.pngbin0 -> 106200 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/trace2.pngbin0 -> 49769 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/reference/component.html33
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/reference/container.html54
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/reference/interactionComponent.html61
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/reference/port.html26
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/reference/portKind.html27
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/reference/trafos.html40
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/sitestyle.css13
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/model/ec3m-transformations.di23
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/model/ec3m-transformations.notation669
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/model/ec3m-transformations.uml173
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/plugin.properties12
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/plugin.xml30
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/pom.xml14
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/src/org/eclipse/papyrus/qompass/designer/doc/Activator.java53
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/toc.xml23
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/.classpath8
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/.project34
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/META-INF/MANIFEST.MF20
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/about.html28
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/build.properties8
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/plugin.properties12
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/plugin.xml11
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/pom.xml56
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/src/org/eclipse/papyrus/qompass/designer/java/Activator.java50
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/src/org/eclipse/papyrus/qompass/designer/java/Messages.java19
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/src/org/eclipse/papyrus/qompass/designer/java/messages.properties3
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/src/org/eclipse/papyrus/qompass/designer/java/xtend/JavaToOO.xtend548
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/xtend-gen/.gitignore2
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/.classpath7
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/.project28
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/META-INF/MANIFEST.MF33
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/about.html28
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/build.properties9
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/ADLInFlowPort.gifbin0 -> 322 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/Qompass-16x16.gifbin0 -> 1064 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/Stereotype.gifbin0 -> 248 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/allocation.gifbin0 -> 143 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/depPlan.gifbin0 -> 104 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/deploy.gifbin0 -> 148 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/ec3m-16x16.gifbin0 -> 1014 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/ec3m-32x32.gifbin0 -> 1370 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/sample.gifbin0 -> 983 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/selConnector.gifbin0 -> 125 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/selContainer.gifbin0 -> 124 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/sync.gifbin0 -> 296 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/plugin.properties12
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/plugin.xml231
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/pom.xml14
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/Activator.java54
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/Messages.java43
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/AllocationDialog.java311
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/AttributeLabelProvider.java36
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/ChooseConfigOpt.java245
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/ChoosePorts.java244
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/ConfigOptionLabelProvider.java50
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/ConfigureInstanceDialog.java642
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/ConfigurePortDialog.java388
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/ConnectorSelectionDialog.java371
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/ContainerDialog.java309
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/GenerationOptionsDialog.java138
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/InstanceLabelProvider.java39
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/InteractiveImplementationChooser.java55
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/NameLabelProvider.java26
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/PortLabelProvider.java80
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/QNameLabelProvider.java26
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/RuleLabelProvider.java39
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/AddProfileAndModelLibsHandler.java92
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/AllocateHandler.java90
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/ConfigureInstanceHandler.java129
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/ConfigurePortHandler.java102
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/CreateDepPlanHandler.java144
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/CreatePlatformHandler.java94
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/GenCollaborationUseHandler.java38
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/GenConnectionPatternHandler.java49
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/InstantiateDepPlanHandler.java97
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/SelectConnectorHandler.java88
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/SelectContainerHandler.java120
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/SyncHandler.java147
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/TrafoAndCodegenHandler.java58
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/messages.properties27
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/preferences/QompassPreferenceInitializer.java39
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/preferences/QompassPreferencePage.java76
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/.classpath7
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/.project28
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/META-INF/MANIFEST.MF17
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/about.html28
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/build.properties11
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/icons/validate.gifbin0 -> 99 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/plugin.properties12
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/plugin.xml290
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/pom.xml14
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/Activator.java54
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/ValidationDelegateClientSelector.java25
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/AggregationKindValid.java65
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/BehaviorsWithoutSpecification.java65
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/ConfigurationAttributeNotSet.java41
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/ConnectorCallMultiplicity.java82
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/ConnectorConnectable.java56
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/DuplicateOperation.java27
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/ExecutorIsNotUsedAsPartName.java48
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/InitialEntryPoints.java79
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/InstanceSpecificationSlotForAllProperties.java63
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/OperationsAreImplemented.java47
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/OperationsWithTwoReturnValues.java57
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/PortIsCorrectlyTyped.java45
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/PortKindUnset.java43
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/SystemHasNoPorts.java51
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/TemplateRefWithoutBinding.java81
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/UnconnectedPorts.java95
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/UnconnectedProvPorts.java27
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/UnconnectedReqPorts.java27
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/.classpath7
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/.project35
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/META-INF/MANIFEST.MF16
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/about.html28
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/build.acceleo26
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/build.properties10
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/plugin.properties12
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/pom.xml14
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/src/org/eclipse/papyrus/qompass/designer/vsl/Activator.java54
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/src/org/eclipse/papyrus/qompass/designer/vsl/Messages.java17
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/src/org/eclipse/papyrus/qompass/designer/vsl/ParseVSL.emtl432
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/src/org/eclipse/papyrus/qompass/designer/vsl/ParseVSL.java185
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/src/org/eclipse/papyrus/qompass/designer/vsl/ParseVSL.mtl23
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/src/org/eclipse/papyrus/qompass/designer/vsl/messages.properties3
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/.classpath8
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/.gitignore1
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/.project40
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/ExtendedPort.java127
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/META-INF/MANIFEST.MF28
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/about.html28
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/build.properties17
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/help/modellibs-core-examples.xml13
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/help/modellibs-core-library.xml15
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/hello-world.html174
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/producer-consumer.html125
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/cmd_with_error.pngbin0 -> 47208 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/cmd_without_error.pngbin0 -> 80620 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/hw/allocate.pngbin0 -> 18690 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/hw/c-cpp-view.pngbin0 -> 60218 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/hw/configure-instance.pngbin0 -> 28563 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/hw/deployment-plan.pngbin0 -> 17253 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/hw/hello-world.pngbin0 -> 19321 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/hw/platform.pngbin0 -> 13034 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/hw/system.pngbin0 -> 3521 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/pc/dep-plans.pngbin0 -> 7688 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/pc/generated-container.pngbin0 -> 12742 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/pc/pull-consumer.pngbin0 -> 23901 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/pc/push-consumer.pngbin0 -> 13675 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/pc/push-producer.pngbin0 -> 10169 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/pc/system-pull.pngbin0 -> 17185 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/pc/system-push.pngbin0 -> 10459 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/library/corba.html16
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/library/core.html16
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/library/osal.html16
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/library/statemachine.html16
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/ClientServerTimer.di2
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/ClientServerTimer.notation1221
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/ClientServerTimer.uml395
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/HelloWorld.di2
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/HelloWorld.notation968
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/HelloWorld.uml159
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/HelloWorldC.di40
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/HelloWorldC.notation528
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/HelloWorldC.uml186
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/HelloWorldJava.di40
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/HelloWorldJava.notation574
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/HelloWorldJava.uml165
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/ProducerConsumer.di2
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/ProducerConsumer.notation1541
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/ProducerConsumer.uml453
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/ProducerTwoConsumers.di47
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/ProducerTwoConsumers.notation1655
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/ProducerTwoConsumers.uml532
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-CDTeditor.pngbin0 -> 197154 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-OpenCDTeditor.pngbin0 -> 39898 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-classdiag.pngbin0 -> 71960 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-component.pngbin0 -> 126457 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-component.svg192
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-deployment.pngbin0 -> 128408 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-deployment.svg207
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-platform.pngbin0 -> 66673 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-platform.svg112
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-system.pngbin0 -> 11119 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-system.svg61
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/ProducerConsumer-pullcon.pngbin0 -> 117969 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/ProducerConsumer-pullcon.svg148
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/ProducerConsumer-sys.pdfbin0 -> 41470 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/ProducerConsumer-sys.pngbin0 -> 67516 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/ProducerConsumer-sys.svg127
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/corba.di23
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/corba.notation256
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/corba.uml75
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/core.di80
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/core.notation5392
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/core.uml1369
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/corec.di92
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/corec.notation3896
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/corec.uml1507
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/corecpp.di92
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/corecpp.notation3896
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/corecpp.uml1507
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/fifo.di50
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/fifo.notation1865
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/fifo.uml432
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/In.pngbin0 -> 838 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/In.svg64
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/InOut.pngbin0 -> 1939 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/InOut.svg64
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/Out.pngbin0 -> 872 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/Out.svg58
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/Provided.pngbin0 -> 1611 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/Provided.svg105
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/ProvidedRequired.pngbin0 -> 1401 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/ProvidedRequired.svg124
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/Required.pngbin0 -> 1190 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/Required.svg108
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/hires/In.pngbin0 -> 838 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/hires/InOut.pngbin0 -> 1939 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/hires/Out.pngbin0 -> 872 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/hires/Provided.pngbin0 -> 1611 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/hires/ProvidedRequired.pngbin0 -> 1401 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/hires/Required.pngbin0 -> 1190 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/lowres/In.pngbin0 -> 292 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/lowres/InOut.pngbin0 -> 467 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/lowres/Out.pngbin0 -> 303 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/lowres/Provided.pngbin0 -> 416 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/lowres/ProvidedRequired.pngbin0 -> 364 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/lowres/Required.pngbin0 -> 317 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/port-kinds.pngbin0 -> 319943 bytes
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/port-kinds.svg551
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/osal.di140
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/osal.notation7725
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/osal.uml11645
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/statemachine.di59
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/statemachine.notation2575
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/statemachine.uml516
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/sysinterfaces.di20
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/sysinterfaces.notation269
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/sysinterfaces.uml94
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/wizardTemplates/QompassModel.di23
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/wizardTemplates/QompassModel.notation119
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/wizardTemplates/QompassModel.uml62
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/wizardTemplates/QompassSimple.di29
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/wizardTemplates/QompassSimple.notation51
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/wizardTemplates/QompassSimple.uml50
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/plugin.properties12
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/plugin.xml156
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/pom.xml55
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/Activator.java60
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/HelloWorldModelWizard.java27
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/ProducerConsumerModelWizard.java27
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/bindinghelpers/BindCppIncludeToFirstActual.java73
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/bindinghelpers/BindOperation.java54
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/bindinghelpers/InstantiateCppIncludeWithItSelf.java74
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/bindinghelpers/LoopOperations.java130
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/embeddingrules/AccordCall.java95
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/iconfigurators/AnimServiceConfigurator.java68
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/iconfigurators/CallEventConfigurator.java61
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/AMIcallback.java162
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/AMIpoll.java161
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/ExtendedPort.java132
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/ExtendedPort2.java138
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/ProvideInterface.java37
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/PullConsumer.java162
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/PushConsumer.java110
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/PushProdPullCons.java75
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/PushProducer.java130
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/TemplatePort.java183
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/UseConjIntf.java187
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/UseInterface.java42
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/AMIPull.xtend34
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/AsyncCalls.xtend57
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/BehaviorUtil.java111
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/CppUtils.xtend81
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/FIFO.xtend13
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/GlobalConstants.xtend56
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/Marshalling.xtend51
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/MultipleReceptacle.xtend14
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/StateMachineGen.xtend412
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/StateMachineUtil.java260
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/StructBasedMarshalling.xtend25
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/SyncCalls.xtend13
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/UMLAction.xtend58
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/UMLChain.xtend91
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/UMLFlatModel2Cpp.xtend667
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/UMLFlattener.xtend556
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/xtend-gen/.gitignore2
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracebreakpoints.ui/.project28
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracebreakpoints/.project28
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/.classpath7
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/.project28
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/META-INF/MANIFEST.MF30
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/about.html28
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/build.properties13
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkp_16x16.gifbin0 -> 197 bytes
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkp_9x9.gifbin0 -> 179 bytes
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkp_grp.gifbin0 -> 361 bytes
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkp_grp_disabled.gifbin0 -> 173 bytes
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkpd_16x16.gifbin0 -> 139 bytes
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkpd_9x9.gifbin0 -> 123 bytes
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/debug.gifbin0 -> 348 bytes
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/properties.gifbin0 -> 577 bytes
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/trcp_11x12.gifbin0 -> 313 bytes
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/trcp_16x16.gifbin0 -> 348 bytes
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/trcpd_11x12.gifbin0 -> 302 bytes
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/trcpd_16x16.gifbin0 -> 316 bytes
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/plugin.properties12
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/plugin.xml193
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/pom.xml14
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/schema/traceMechanism.exsd109
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/Activator.java90
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/ITraceMechanism.java74
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/MarkerUtils.java84
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/Messages.java30
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TraceActions.java206
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TraceFunctions.java125
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TraceMechanism.java88
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TraceState.java20
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TracepointConstants.java35
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/AbstractTracepointCommand.java167
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/ToggleBreakpointActivationCommand.java40
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/ToggleBreakpointCommand.java41
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/ToggleTracepointActivationCommand.java41
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/ToggleTracepointCommand.java54
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/TracepointPropertiesCommand.java82
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/dialogs/TraceActionSelection.java304
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/AbstractCommandHandler.java166
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/ToggleBreakpointActivationHandler.java33
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/ToggleBreakpointHandler.java33
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/ToggleTracepointActivationHandler.java33
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/ToggleTracepointHandler.java33
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/TracepointPropertiesHandler.java33
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/messages.properties15
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/BinaryEncodedMChoiceFieldEditor.java134
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/MultipleChoiceFieldEditor.java235
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/TPPreferenceConstants.java51
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/TPPreferenceInitializer.java54
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/TPPreferencePage.java108
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/.classpath8
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/.gitignore1
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/.project47
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/META-INF/MANIFEST.MF28
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/about.html28
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/build.acceleo26
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/build.properties14
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/help/tocconcepts.xml7
-rwxr-xr-xextraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image001.gifbin0 -> 2182 bytes
-rwxr-xr-xextraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image002.gifbin0 -> 2123 bytes
-rwxr-xr-xextraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image003.gifbin0 -> 1323 bytes
-rwxr-xr-xextraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image004.jpgbin0 -> 3340 bytes
-rwxr-xr-xextraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image005.jpgbin0 -> 36908 bytes
-rwxr-xr-xextraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image006.jpgbin0 -> 4937 bytes
-rwxr-xr-xextraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image007.gifbin0 -> 21539 bytes
-rwxr-xr-xextraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image008.jpgbin0 -> 44181 bytes
-rwxr-xr-xextraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image009.jpgbin0 -> 43754 bytes
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/userguide.htm213
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ClientServerTraceTest.di76
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ClientServerTraceTest.notation1600
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ClientServerTraceTest.uml398
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ProducerConsumer.di53
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ProducerConsumer.notation1090
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ProducerConsumer.uml457
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/SampleOOTraceTest.di46
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/SampleOOTraceTest.notation410
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/SampleOOTraceTest.uml276
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/library/tracing.di52
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/library/tracing.notation1684
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/library/tracing.uml750
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/plugin.properties12
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/plugin.xml75
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/pom.xml55
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/Activator.java53
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/ClientServerTraceTestModelWizard.java14
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/IConfiguratorOTF.java59
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/IConfiguratorTrace.java45
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/QompassTraceMechanism.java188
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/StringConstants.java5
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/acceleo/TraceCout.xtend18
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/acceleo/TraceLTTng.xtend198
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/acceleo/TraceOTF.xtend33
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/acceleo/TraceUtils.java45
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/xtend-gen/.gitignore2
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/.classpath7
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/.project28
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/META-INF/MANIFEST.MF25
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/about.html28
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/build.properties9
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/icons/breakpoint_view.gifbin0 -> 204 bytes
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/icons/gotoobj_tsk.gifbin0 -> 372 bytes
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/icons/skip_brkp.gifbin0 -> 204 bytes
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/plugin.properties12
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/plugin.xml15
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/pom.xml14
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/src/org/eclipse/papyrus/views/tracepoints/Activator.java80
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/src/org/eclipse/papyrus/views/tracepoints/views/TraceViewImages.java44
-rw-r--r--extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/src/org/eclipse/papyrus/views/tracepoints/views/TracepointView.java540
-rw-r--r--extraplugins/qompass/org.eclipse.papyrus.qompass.ui/.classpath7
-rw-r--r--extraplugins/qompass/org.eclipse.papyrus.qompass.ui/.project28
-rw-r--r--extraplugins/qompass/org.eclipse.papyrus.qompass.ui/.settings/org.eclipse.jdt.core.prefs291
-rw-r--r--extraplugins/qompass/org.eclipse.papyrus.qompass.ui/.settings/org.eclipse.jdt.ui.prefs68
-rw-r--r--extraplugins/qompass/org.eclipse.papyrus.qompass.ui/META-INF/MANIFEST.MF19
-rw-r--r--extraplugins/qompass/org.eclipse.papyrus.qompass.ui/about.html28
-rw-r--r--extraplugins/qompass/org.eclipse.papyrus.qompass.ui/build.properties9
-rw-r--r--extraplugins/qompass/org.eclipse.papyrus.qompass.ui/icons/qompass-16x16.gifbin0 -> 1064 bytes
-rw-r--r--extraplugins/qompass/org.eclipse.papyrus.qompass.ui/plugin.properties12
-rw-r--r--extraplugins/qompass/org.eclipse.papyrus.qompass.ui/plugin.xml30
-rw-r--r--extraplugins/qompass/org.eclipse.papyrus.qompass.ui/pom.xml14
-rw-r--r--extraplugins/qompass/org.eclipse.papyrus.qompass.ui/src/org/eclipse/papyrus/qompass/ui/Activator.java44
1612 files changed, 305867 insertions, 0 deletions
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/.classpath b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/.classpath
new file mode 100644
index 00000000000..ad32c83a788
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/.project b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/.project
new file mode 100644
index 00000000000..29f34de0ecf
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/.project
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.cpp.cdtproject</name>
+ <comment></comment>
+ <projects>
+ <project>ec3m.genTools.core</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>fr.obeo.acceleo.gen.ui.acceleoGenBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>fr.obeo.acceleo.gen.ui.acceleoGenNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/.settings/org.eclipse.jdt.core.prefs b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..c537b63063c
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/META-INF/MANIFEST.MF b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..ff6f3ed5154
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/META-INF/MANIFEST.MF
@@ -0,0 +1,24 @@
+Manifest-Version: 1.0
+Export-Package: org.eclipse.papyrus.cpp.cdtproject
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.emf.ecore,
+ org.eclipse.uml2.uml,
+ org.eclipse.cdt.ui,
+ org.eclipse.ui.ide,
+ org.eclipse.core.resources,
+ org.eclipse.cdt.managedbuilder.core;bundle-version="8.0.0",
+ org.eclipse.cdt.core;bundle-version="5.4.0",
+ org.eclipse.papyrus.cpp.profile;bundle-version="1.2.0",
+ org.eclipse.papyrus.codegen.extensionpoints;bundle-version="1.2.0",
+ org.eclipse.cdt.managedbuilder.ui;bundle-version="8.0.0",
+ org.eclipse.papyrus.codegen.base;bundle-version="1.2.0"
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-Version: 1.2.0.qualifier
+Bundle-Localization: plugin
+Bundle-Name: %pluginName
+Bundle-Activator: org.eclipse.papyrus.cpp.cdtproject.Activator
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.cpp.cdtproject;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/about.html b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/about.html
new file mode 100644
index 00000000000..209103075a7
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>November 14, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/build.properties b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/build.properties
new file mode 100644
index 00000000000..7b3c227b84a
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/build.properties
@@ -0,0 +1,8 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ plugin.properties,\
+ about.html
+src.includes = about.html
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/plugin.properties b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/plugin.properties
new file mode 100644
index 00000000000..48c00f652ce
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/plugin.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2013 CEA LIST.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# CEA LIST - initial API and implementation
+###############################################################################
+pluginName=Papyrus extra: Qompass C++ support (Incubation)
+providerName=Eclipse Modeling Project
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/plugin.xml b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/plugin.xml
new file mode 100644
index 00000000000..8c640146657
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/plugin.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+ <extension
+ point="org.eclipse.papyrus.codegen.extensionpoints.languageProjectSupport">
+ <client
+ class="org.eclipse.papyrus.cpp.cdtproject.CppProjectSupport"
+ language="C++">
+ </client>
+ </extension>
+ <extension
+ point="org.eclipse.papyrus.codegen.extensionpoints.languageProjectSupport">
+ <client
+ class="org.eclipse.papyrus.cpp.cdtproject.CProjectSupport"
+ language="C">
+ </client>
+ </extension>
+ </plugin>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/pom.xml b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/pom.xml
new file mode 100644
index 00000000000..32c15b387e5
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.cpp.cdtproject</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/src/org/eclipse/papyrus/cpp/cdtproject/Activator.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/src/org/eclipse/papyrus/cpp/cdtproject/Activator.java
new file mode 100644
index 00000000000..ad6ab20019d
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/src/org/eclipse/papyrus/cpp/cdtproject/Activator.java
@@ -0,0 +1,54 @@
+package org.eclipse.papyrus.cpp.cdtproject;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.cpp.cdtproject"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/src/org/eclipse/papyrus/cpp/cdtproject/CCNamedProjectWizard.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/src/org/eclipse/papyrus/cpp/cdtproject/CCNamedProjectWizard.java
new file mode 100644
index 00000000000..b712ac949aa
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/src/org/eclipse/papyrus/cpp/cdtproject/CCNamedProjectWizard.java
@@ -0,0 +1,47 @@
+package org.eclipse.papyrus.cpp.cdtproject;
+
+import org.eclipse.cdt.ui.wizards.CCProjectWizard;
+import org.eclipse.jface.wizard.IWizardPage;
+
+/**
+ * Variant of CCProjectWizard that allows for setting an initial
+ * project name. It creates the pages and sets the initial name.
+ * It does not use the standard CDTMainWizardPage but a variant
+ * called CDTMainWizardPageV that skips the first validation which
+ * would other trigger an error.
+ *
+ * @see org.eclipse.papyrus.cpp.cdtproject.CDTMainWizardPageV
+ */
+public class CCNamedProjectWizard extends CCProjectWizard {
+
+ public CCNamedProjectWizard(String projectName) {
+ this.projectName = projectName;
+ dontAdd = false;
+ }
+
+ @Override
+ public void addPages() {
+ dontAdd = true;
+ // avoid that page is actually added, since we want to add our page below
+ super.addPages();
+ dontAdd = false;
+ String title = fMainPage.getTitle();
+ String desc = fMainPage.getDescription();
+ fMainPage = new CDTMainWizardPageV(fMainPage.getName());
+ fMainPage.setTitle(title);
+ fMainPage.setDescription(desc);
+ fMainPage.setInitialProjectName(projectName);
+ addPage(fMainPage);
+ }
+
+ @Override
+ public void addPage(IWizardPage page) {
+ if (!dontAdd) {
+ super.addPage(page);
+ }
+ }
+
+ private String projectName;
+
+ private boolean dontAdd;
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/src/org/eclipse/papyrus/cpp/cdtproject/CDTMainWizardPageV.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/src/org/eclipse/papyrus/cpp/cdtproject/CDTMainWizardPageV.java
new file mode 100644
index 00000000000..9066abf68d1
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/src/org/eclipse/papyrus/cpp/cdtproject/CDTMainWizardPageV.java
@@ -0,0 +1,33 @@
+package org.eclipse.papyrus.cpp.cdtproject;
+
+import org.eclipse.cdt.ui.wizards.CDTMainWizardPage;
+
+/**
+ * Variant of the CDTMainWizardPage that skips the first validation. This
+ * is required in the context of setting an initial project name, since the
+ * update of the project name will trigger a validation which stops with an
+ * exception, since some elements (notable tree) are not yet initialized.
+ *
+ * Verify if future versions of CDT still require this "hack" {@link CDTMainWizardPage}
+ *
+ * @author ansgar
+ *
+ */
+public class CDTMainWizardPageV extends CDTMainWizardPage {
+
+ public CDTMainWizardPageV(String pageName) {
+ super(pageName);
+ firstValidate = true;
+ }
+
+ @Override
+ protected boolean validatePage() {
+ if (firstValidate) {
+ return true;
+ } else {
+ return super.validatePage();
+ }
+ }
+
+ private boolean firstValidate;
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/src/org/eclipse/papyrus/cpp/cdtproject/CDTSettings.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/src/org/eclipse/papyrus/cpp/cdtproject/CDTSettings.java
new file mode 100644
index 00000000000..7f44c642855
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/src/org/eclipse/papyrus/cpp/cdtproject/CDTSettings.java
@@ -0,0 +1,28 @@
+package org.eclipse.papyrus.cpp.cdtproject;
+
+import java.util.List;
+
+import org.eclipse.papyrus.codegen.extensionpoints.AbstractSettings;
+
+public class CDTSettings extends AbstractSettings {
+
+ /**
+ * include paths for compiler
+ */
+ List<String> includePaths;
+
+ /**
+ * list of libraries for linker
+ */
+ List<String> libs;
+
+ /**
+ * list of library paths for linker
+ */
+ List<String> libPaths;
+
+ /**
+ * list of predefined macros (#define)
+ */
+ List<String> macros;
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/src/org/eclipse/papyrus/cpp/cdtproject/CNamedProjectWizard.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/src/org/eclipse/papyrus/cpp/cdtproject/CNamedProjectWizard.java
new file mode 100644
index 00000000000..af5e1592c11
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/src/org/eclipse/papyrus/cpp/cdtproject/CNamedProjectWizard.java
@@ -0,0 +1,47 @@
+package org.eclipse.papyrus.cpp.cdtproject;
+
+import org.eclipse.cdt.ui.wizards.CProjectWizard;
+import org.eclipse.jface.wizard.IWizardPage;
+
+/**
+ * Variant of CProjectWizard that allows for setting an initial
+ * project name. It creates the pages and sets the initial name.
+ * It does not use the standard CDTMainWizardPage but a variant
+ * called CDTMainWizardPageV that skips the first validation which
+ * would other trigger an error.
+ *
+ * @see org.eclipse.papyrus.cpp.cdtproject.CDTMainWizardPageV
+ */
+public class CNamedProjectWizard extends CProjectWizard {
+
+ public CNamedProjectWizard(String projectName) {
+ this.projectName = projectName;
+ dontAdd = false;
+ }
+
+ @Override
+ public void addPages() {
+ dontAdd = true;
+ // avoid that page is actually added, since we want to add our page below
+ super.addPages();
+ dontAdd = false;
+ String title = fMainPage.getTitle();
+ String desc = fMainPage.getDescription();
+ fMainPage = new CDTMainWizardPageV(fMainPage.getName());
+ fMainPage.setTitle(title);
+ fMainPage.setDescription(desc);
+ fMainPage.setInitialProjectName(projectName);
+ addPage(fMainPage);
+ }
+
+ @Override
+ public void addPage(IWizardPage page) {
+ if (!dontAdd) {
+ super.addPage(page);
+ }
+ }
+
+ private String projectName;
+
+ private boolean dontAdd;
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/src/org/eclipse/papyrus/cpp/cdtproject/CProjectSupport.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/src/org/eclipse/papyrus/cpp/cdtproject/CProjectSupport.java
new file mode 100644
index 00000000000..9f020fd2354
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/src/org/eclipse/papyrus/cpp/cdtproject/CProjectSupport.java
@@ -0,0 +1,16 @@
+package org.eclipse.papyrus.cpp.cdtproject;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.papyrus.codegen.extensionpoints.ILangProjectSupport;
+
+/**
+ * C project support
+ */
+public class CProjectSupport extends C_CppProjectSupport implements ILangProjectSupport {
+
+ @Override
+ public IProject createProject(String projectName) {
+ IProject project = super.createProject(projectName);
+ return project;
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/src/org/eclipse/papyrus/cpp/cdtproject/C_CppProjectSupport.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/src/org/eclipse/papyrus/cpp/cdtproject/C_CppProjectSupport.java
new file mode 100644
index 00000000000..f86106b7577
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/src/org/eclipse/papyrus/cpp/cdtproject/C_CppProjectSupport.java
@@ -0,0 +1,225 @@
+package org.eclipse.papyrus.cpp.cdtproject;
+
+import org.eclipse.cdt.core.model.CoreModel;
+import org.eclipse.cdt.core.settings.model.CIncludePathEntry;
+import org.eclipse.cdt.core.settings.model.CMacroEntry;
+import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
+import org.eclipse.cdt.core.settings.model.ICFolderDescription;
+import org.eclipse.cdt.core.settings.model.ICLanguageSetting;
+import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
+import org.eclipse.cdt.core.settings.model.ICProjectDescription;
+import org.eclipse.cdt.core.settings.model.ICProjectDescriptionManager;
+import org.eclipse.cdt.core.settings.model.ICSettingEntry;
+import org.eclipse.cdt.managedbuilder.core.BuildException;
+import org.eclipse.cdt.managedbuilder.core.IConfiguration;
+import org.eclipse.cdt.managedbuilder.core.IOption;
+import org.eclipse.cdt.managedbuilder.core.ITool;
+import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
+import org.eclipse.cdt.ui.wizards.CDTCommonProjectWizard;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.UniqueEList;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.papyrus.C_Cpp.ExternLibrary;
+import org.eclipse.papyrus.codegen.extensionpoints.AbstractSettings;
+import org.eclipse.papyrus.codegen.extensionpoints.ILangProjectSupport;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * Supports the creation and configuration of CDT projects
+ */
+public class C_CppProjectSupport implements ILangProjectSupport {
+
+ // TODO specific "root" is only required for component based code generation
+ private static final String ROOT = "root"; //$NON-NLS-1$
+
+ private static final String C = "c"; //$NON-NLS-1$
+
+ private static final String CPP = "cpp"; //$NON-NLS-1$
+
+ private int dialogStatus;
+
+ /**
+ * Create a C++ project.
+ * Caller should test before calling, whether the project exists already
+ *
+ * @param projectName
+ * @return the created project
+ */
+ @Override
+ public IProject createProject(String projectName)
+ {
+ IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+
+ IProject project = root.getProject(projectName);
+ dialogStatus = 0;
+ try {
+ IWorkbench wb = PlatformUI.getWorkbench();
+
+ // create CDT wizard for C++ or C
+ final CDTCommonProjectWizard wiz = this instanceof CppProjectSupport ?
+ new CCNamedProjectWizard(projectName) :
+ new CNamedProjectWizard(projectName);
+
+ wiz.setWindowTitle("create project " + projectName); //$NON-NLS-1$
+ wiz.init(wb, null);
+
+ Display.getDefault().syncExec(new Runnable() {
+
+ @Override
+ public void run() {
+ WizardDialog wizDiag = new WizardDialog(Display.getCurrent().getActiveShell(), wiz);
+
+ wizDiag.create();
+ dialogStatus = wizDiag.open();
+ }
+ });
+ } catch (Exception e) {
+ e.printStackTrace();
+ project = null;
+ }
+ if (dialogStatus == 1) {
+ // corresponds to Cancel
+ return null;
+ }
+ if ((project == null) || !project.exists()) {
+ throw new RuntimeException("Could not create CDT project. This might indicate that there is a problem with your CDT installation."); //$NON-NLS-1$
+ }
+ return project;
+ }
+
+ @Override
+ public void setSettings(IProject project, AbstractSettings abstractSettings)
+ {
+ CDTSettings settings = (CDTSettings) abstractSettings;
+ try {
+ // ((CProject) project).
+ // IProjectDescription desc = m_project.getDescription();
+
+ ICProjectDescriptionManager mngr =
+ CoreModel.getDefault().getProjectDescriptionManager();
+ ICProjectDescription cdesc = mngr.getProjectDescription(project, true);
+
+ // loop over all configurations
+ for (ICConfigurationDescription configDescr : cdesc.getConfigurations()) {
+
+ ICFolderDescription folderDescription =
+ configDescr.getRootFolderDescription();
+
+ ICLanguageSetting[] languageSettings = folderDescription.getLanguageSettings();
+
+ // copy string array into ICLanguageSetting array
+ ICLanguageSettingEntry[] icIncludePaths = new ICLanguageSettingEntry[settings.includePaths.size()];
+ for (int i = 0; i < settings.includePaths.size(); i++) {
+ icIncludePaths[i] = new CIncludePathEntry(settings.includePaths.get(i), ICSettingEntry.VALUE_WORKSPACE_PATH);
+ }
+
+ // define name of used operating system from model (attribute of "Target" stereotype)
+ // and add it to list of macros
+ if (settings.targetOS != null) {
+ settings.macros.add("OS_" + settings.targetOS); //$NON-NLS-1$
+ }
+
+ // define macros
+ EList<ICLanguageSettingEntry> icMacros =
+ new BasicEList<ICLanguageSettingEntry>();
+ for (int i = 0; i < settings.macros.size(); i++) {
+ // TODO: need to define values for macros as well?
+ icMacros.add(new CMacroEntry(settings.macros.get(i), "", 0)); //$NON-NLS-1$
+ }
+
+ // now set include path and preprocessor code
+ for (ICLanguageSetting lang : languageSettings) {
+ // selection better via ID? (instead of extension)
+ // Log.log(Status.INFO, Log.CODEGEN, "CppLanguageSupport: lang.getID: " + lang.getId() + " lang.getLanguageID: " + lang.getLanguageId());
+ for (String ext : lang.getSourceExtensions()) {
+ if (ext.equals(CPP) || ext.equals(C)) {
+ lang.setSettingEntries(ICSettingEntry.INCLUDE_PATH, icIncludePaths);
+ ICLanguageSettingEntry icOldMacros[] =
+ lang.getSettingEntries(ICSettingEntry.MACRO);
+ for (ICLanguageSettingEntry entry : icOldMacros) {
+ icMacros.add(entry);
+ }
+ lang.setSettingEntries(ICSettingEntry.MACRO, icMacros);
+ break;
+ }
+ }
+ }
+ IConfiguration main = ManagedBuildManager.getConfigurationForDescription(configDescr);
+ // change artifact name
+ // main.setArtifactName(main.getArtifactName () + ".bin");
+
+ // add to -l (libraries)
+ ITool cfTool = main.calculateTargetTool();
+
+ // IOption libOption = cfTool.getOptionBy(IOption.TYPE_LIB);
+
+ for (IOption opt : cfTool.getOptions()) {
+ if (opt.getValueType() == IOption.LIBRARIES) {
+ main.setOption(cfTool, opt, settings.libs.toArray(new String[0]));
+ } else if (opt.getValueType() == IOption.LIBRARY_PATHS) {
+ main.setOption(cfTool, opt, settings.libPaths.toArray(new String[0]));
+ }
+ }
+ mngr.setProjectDescription(project, cdesc, true, null);
+ }
+ ManagedBuildManager.saveBuildInfo(project, true);
+ } catch (BuildException be) {
+ throw new RuntimeException(be.getMessage());
+ } catch (CoreException ce) {
+ throw new RuntimeException(ce.getMessage());
+ }
+ }
+
+ @Override
+ public AbstractSettings initialConfigurationData() {
+ CDTSettings settings = new CDTSettings();
+ settings.includePaths = new UniqueEList<String>();
+ // include project directory (all paths are relative to it => ".")
+ settings.includePaths.add("."); //$NON-NLS-1$
+ // include also "root" (relative path)
+ settings.includePaths.add(ROOT);
+
+ settings.libs = new UniqueEList<String>();
+ settings.libPaths = new UniqueEList<String>();
+ settings.macros = new UniqueEList<String>();
+ return settings;
+ }
+
+ @Override
+ public void gatherConfigData(Class implementation, AbstractSettings abstractSettings) {
+ CDTSettings settings = (CDTSettings) abstractSettings;
+ Element owner = implementation.getOwner();
+ while (owner instanceof Package) {
+ ExternLibrary cppLibrary = UMLUtil.getStereotypeApplication(owner, ExternLibrary.class);
+ if ((cppLibrary != null) && (settings != null)) {
+ settings.includePaths.addAll(cppLibrary.getIncludes());
+ for (String libPath : cppLibrary.getLibPaths()) {
+ if (libPath.startsWith("/")) {
+ // libPaths starting with a slash are relative to workspace location
+ // TODO: need to support absolute paths (host file system?) as well?
+ // (additional prefix. Eclipse standards?) Problem: workspace_loc is added
+ // automatically for absolute includePaths
+ settings.libPaths.add("${workspace_loc:" + libPath + "}");
+ } else {
+ // relative to project root, otherwise
+ settings.libPaths.add(libPath);
+ }
+ }
+ settings.libs.addAll(cppLibrary.getLibs());
+ settings.macros.addAll(cppLibrary.getMacros());
+ }
+ owner = owner.getOwner();
+ }
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/src/org/eclipse/papyrus/cpp/cdtproject/CppProjectSupport.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/src/org/eclipse/papyrus/cpp/cdtproject/CppProjectSupport.java
new file mode 100644
index 00000000000..aaebf98d1d7
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.cdtproject/src/org/eclipse/papyrus/cpp/cdtproject/CppProjectSupport.java
@@ -0,0 +1,17 @@
+package org.eclipse.papyrus.cpp.cdtproject;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.papyrus.codegen.extensionpoints.ILangProjectSupport;
+
+/**
+ * C++ project support
+ */
+public class CppProjectSupport extends C_CppProjectSupport implements ILangProjectSupport {
+
+ @Override
+ public IProject createProject(String projectName) {
+ IProject project = super.createProject(projectName);
+
+ return project;
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/.classpath b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/.classpath
new file mode 100644
index 00000000000..ad32c83a788
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/.project b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/.project
new file mode 100644
index 00000000000..6973103854a
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.cpp.codegen.ui</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/.settings/org.eclipse.jdt.core.prefs b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..c537b63063c
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/META-INF/MANIFEST.MF b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..ae0bde0353e
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,26 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.emf.common;bundle-version="2.8.0",
+ org.eclipse.emf.ecore;bundle-version="2.8.0",
+ org.eclipse.papyrus.infra.core;bundle-version="1.2.0",
+ org.eclipse.uml2.uml;bundle-version="4.0.0",
+ org.eclipse.papyrus.cpp.codegen;bundle-version="1.2.0",
+ org.eclipse.jface.text;bundle-version="3.8.0",
+ org.eclipse.papyrus.infra.emf;bundle-version="1.2.0",
+ org.eclipse.cdt.core;bundle-version="5.5.0",
+ org.eclipse.papyrus.codegen.base;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.core.log;bundle-version="1.2.0",
+ org.eclipse.core.resources,
+ org.eclipse.papyrus.codegen.extensionpoints;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.diagram.common;bundle-version="1.2.0",
+ org.eclipse.papyrus.qompass.ui;bundle-version="1.2.0"
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-Version: 1.2.0.qualifier
+Bundle-Localization: plugin
+Bundle-Name: %pluginName
+Bundle-Activator: org.eclipse.papyrus.cpp.codegen.ui.Activator
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.cpp.codegen.ui;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/about.html b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/about.html
new file mode 100644
index 00000000000..209103075a7
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>November 14, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/build.properties b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/build.properties
new file mode 100644
index 00000000000..93bba3b6fa4
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/build.properties
@@ -0,0 +1,9 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ icons/,\
+ plugin.properties,\
+ plugin.xml,\
+ about.html
+src.includes = about.html
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/icons/codegen.gif b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/icons/codegen.gif
new file mode 100644
index 00000000000..c416117e54e
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/icons/codegen.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/plugin.properties b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/plugin.properties
new file mode 100644
index 00000000000..53638e41626
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/plugin.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2013 CEA LIST.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# CEA LIST - initial API and implementation
+###############################################################################
+pluginName=Papyrus C++ code generation UI (Incubation)
+providerName=Eclipse Modeling Project
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/plugin.xml b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/plugin.xml
new file mode 100644
index 00000000000..eaee4cb817a
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/plugin.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.menus">
+ <menuContribution
+ allPopups="false"
+ locationURI="popup:org.eclipse.papyrus.qompass.popup?after=codegen">
+ <command
+ commandId="org.eclipse.papyrus.cpp.codegen.command"
+ icon="icons/codegen.gif"
+ label="Generate C++ code"
+ style="push"
+ tooltip="Generate C++ code">
+ <visibleWhen
+ checkEnabled="true">
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ description="Generate C++ code"
+ categoryId="org.eclipse.papyrus.editor.category"
+ id="org.eclipse.papyrus.cpp.codegen.command"
+ defaultHandler="org.eclipse.papyrus.cpp.codegen.ui.handlers.GenerateCodeHandler"
+ name="Generate C++ code">
+ </command>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ description="Re-write CDT project settings"
+ categoryId="org.eclipse.papyrus.editor.category"
+ id="org.eclipse.papyrus.cpp.codegen.cdtproject"
+ defaultHandler="org.eclipse.papyrus.cpp.codegen.ui.handlers.CDTprojectHandler"
+ name="Configure CDT project">
+ </command>
+ </extension>
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ category="org.eclipse.papyrus.infra.core.sasheditor.preferences.generalcategory"
+ class="org.eclipse.papyrus.cpp.codegen.ui.preferences.CodegenPreferencePage"
+ id="org.eclipse.papyrus.cpp.codegen.ui.preferences.CodeGenPreferencePage"
+ name="C++ code generation"/>
+ </extension>
+</plugin>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/pom.xml b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/pom.xml
new file mode 100644
index 00000000000..5513933621a
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.cpp.codegen.ui</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/src/org/eclipse/papyrus/cpp/codegen/ui/Activator.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/src/org/eclipse/papyrus/cpp/codegen/ui/Activator.java
new file mode 100644
index 00000000000..7a8e531ea10
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/src/org/eclipse/papyrus/cpp/codegen/ui/Activator.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.cpp.codegen.ui;
+
+import org.eclipse.papyrus.infra.core.log.LogHelper;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.cpp.codegen.ui"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ public static LogHelper log;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+
+ // register the login helper
+ log = new LogHelper(plugin);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/src/org/eclipse/papyrus/cpp/codegen/ui/handlers/CDTprojectHandler.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/src/org/eclipse/papyrus/cpp/codegen/ui/handlers/CDTprojectHandler.java
new file mode 100644
index 00000000000..ca4efce5b24
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/src/org/eclipse/papyrus/cpp/codegen/ui/handlers/CDTprojectHandler.java
@@ -0,0 +1,83 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.cpp.codegen.ui.handlers;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.papyrus.codegen.extensionpoints.AbstractSettings;
+import org.eclipse.papyrus.codegen.extensionpoints.ILangProjectSupport;
+import org.eclipse.papyrus.codegen.extensionpoints.LanguageProjectSupport;
+import org.eclipse.papyrus.cpp.codegen.utils.LocateCppProject;
+import org.eclipse.papyrus.uml.diagram.common.handlers.CmdHandler;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PackageableElement;
+
+/**
+ * Handler for C++ code generation
+ */
+public class CDTprojectHandler extends CmdHandler {
+
+ private static final String LANGUAGE_NAME = "C++"; //$NON-NLS-1$
+
+ // ------------------------------------------------------------------------
+ // Execution
+ // ------------------------------------------------------------------------
+
+ @Override
+ public boolean isEnabled() {
+ updateSelectedEObject();
+
+ if (selectedEObject instanceof Package || selectedEObject instanceof Classifier) {
+ URI uri = selectedEObject.eResource().getURI();
+
+ // URIConverter uriConverter = resource.getResourceSet().getURIConverter();
+ IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+ if (uri.segmentCount() < 2) {
+ return false;
+ }
+ IProject modelProject = root.getProject(uri.segment(1));
+ return modelProject.exists();
+ }
+
+ return false;
+ }
+
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+
+ if (selectedEObject instanceof PackageableElement) {
+ PackageableElement pe = (PackageableElement) selectedEObject;
+
+ IProject modelProject = LocateCppProject.getTargetProject(pe, true);
+ if (modelProject == null) {
+ return null;
+ }
+
+ // get the container for the current element
+ ILangProjectSupport langSupport = LanguageProjectSupport.getProjectSupport(LANGUAGE_NAME);
+ if (langSupport != null) {
+ AbstractSettings settings = langSupport.initialConfigurationData();
+ langSupport.setSettings(modelProject, settings);
+ }
+ else {
+ return null;
+ }
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/src/org/eclipse/papyrus/cpp/codegen/ui/handlers/GenerateCodeHandler.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/src/org/eclipse/papyrus/cpp/codegen/ui/handlers/GenerateCodeHandler.java
new file mode 100644
index 00000000000..8755e9c615c
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/src/org/eclipse/papyrus/cpp/codegen/ui/handlers/GenerateCodeHandler.java
@@ -0,0 +1,123 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.cpp.codegen.ui.handlers;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.papyrus.cpp.codegen.transformation.CppModelElementsCreator;
+import org.eclipse.papyrus.cpp.codegen.utils.ClassUtils;
+import org.eclipse.papyrus.cpp.codegen.utils.LocateCppProject;
+import org.eclipse.papyrus.uml.diagram.common.handlers.CmdHandler;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PackageableElement;
+
+/**
+ * Handler for C++ code generation
+ */
+public class GenerateCodeHandler extends CmdHandler {
+
+ private static final boolean Headless = Boolean.getBoolean("papyrus.run-headless");
+
+ // ------------------------------------------------------------------------
+ // Execution
+ // ------------------------------------------------------------------------
+
+ @Override
+ public boolean isEnabled() {
+ updateSelectedEObject();
+
+ if (selectedEObject instanceof Package || selectedEObject instanceof Classifier) {
+ URI uri = selectedEObject.eResource().getURI();
+
+ // URIConverter uriConverter = resource.getResourceSet().getURIConverter();
+ IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+ if (uri.segmentCount() < 2) {
+ return false;
+ }
+ IProject modelProject = root.getProject(uri.segment(1));
+ return modelProject.exists();
+ }
+
+ return false;
+ }
+
+ /**
+ * Generate code for a passed packageable element and the elements required by it (in the sense of #included statements)
+ *
+ * @param mec
+ * model elements creator
+ * @param pe
+ * the element that should be generated
+ * @param alreadyHandled
+ * list of packageable elements for which code has already been generated.
+ * @param recurse
+ * if the passed packageableElement is a package, generate code for its contents (recursively).
+ */
+ public void generate(CppModelElementsCreator mec, PackageableElement pe, EList<PackageableElement> alreadyHandled, boolean recurse) {
+ alreadyHandled.add(pe);
+ mec.createPackageableElement(pe, null, false);
+ // Eventual refresh is done in createPackageableElement
+
+ // if recursion is active, go into all sub-elements
+ if (pe instanceof Package && recurse) {
+ for (PackageableElement subPe : ((Package) pe).getPackagedElements()) {
+ if (!alreadyHandled.contains(subPe)) {
+ generate(mec, subPe, alreadyHandled, recurse);
+ }
+ }
+ }
+
+ // add required classifiers
+ if (pe instanceof Classifier) {
+ EList<Classifier> requiredClassifiers = ClassUtils.includedClassifiers((Classifier) pe);
+ for (Classifier requiredClassifier : requiredClassifiers) {
+ if (!alreadyHandled.contains(requiredClassifier)) {
+ generate(mec, requiredClassifier, alreadyHandled, false);
+ }
+ }
+ }
+
+ // owning package is required by generated code.
+ Package owningPackage = pe.getNearestPackage();
+ if ((owningPackage != null) && (owningPackage != pe)) {
+ if (!alreadyHandled.contains(owningPackage)) {
+ generate(mec, owningPackage, alreadyHandled, false);
+ }
+ }
+ }
+
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+
+ if (selectedEObject instanceof PackageableElement) {
+ PackageableElement pe = (PackageableElement) selectedEObject;
+
+ IProject modelProject = LocateCppProject.getTargetProject(pe, true);
+ if (modelProject == null) {
+ return null;
+ }
+
+ // get the container for the current element
+ CppModelElementsCreator mec = new CppModelElementsCreator(modelProject);
+ generate(mec, pe, new BasicEList<PackageableElement>(), true);
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/src/org/eclipse/papyrus/cpp/codegen/ui/preferences/CodegenPreferencePage.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/src/org/eclipse/papyrus/cpp/codegen/ui/preferences/CodegenPreferencePage.java
new file mode 100644
index 00000000000..2c84930aecd
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen.ui/src/org/eclipse/papyrus/cpp/codegen/ui/preferences/CodegenPreferencePage.java
@@ -0,0 +1,117 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.cpp.codegen.ui.preferences;
+
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.jface.preference.StringFieldEditor;
+import org.eclipse.jface.text.Document;
+import org.eclipse.jface.text.source.SourceViewer;
+import org.eclipse.papyrus.cpp.codegen.Activator;
+import org.eclipse.papyrus.cpp.codegen.preferences.CppCodeGenConstants;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+
+
+/**
+ * This class represents a preference page that is contributed to the
+ * Preferences dialog. By subclassing <samp>FieldEditorPreferencePage </samp>,
+ * we can use the field support built into JFace that allows us to create a page
+ * that is small and knows how to save, restore and apply itself.
+ * <p>
+ * This page is used to modify preferences only. They are stored in the preference store that belongs to the main plug-in class. That way, preferences can be accessed directly via the preference store.
+ */
+
+public class CodegenPreferencePage extends FieldEditorPreferencePage implements
+ IWorkbenchPreferencePage {
+
+ private Document pCommentDoc = new Document();
+
+ public CodegenPreferencePage() {
+ super(GRID);
+ setPreferenceStore(Activator.getDefault().getPreferenceStore());
+ setDescription("This preferences page allows to customize Papyrus C++ code generation");
+ }
+
+ public void addTextField(String name, String label, Document currentDoc) {
+ // ///////////////////////////////////////////////////////////////////////
+ // Create a Group for the text
+ // ///////////////////////////////////////////////////////////////////////
+ Group txtGroup = new Group(getFieldEditorParent(), SWT.RESIZE);
+ txtGroup.setLayout(new FillLayout());
+ txtGroup.setText(label);
+ GridData gd = new GridData(GridData.FILL_BOTH /* FILL_HORIZONTAL */);
+ // gd.heightHint = 250;
+ gd.horizontalSpan = 2;
+ txtGroup.setLayoutData(gd);
+
+ // Text area
+ SourceViewer txtViewer = new SourceViewer(txtGroup, null, SWT.MULTI
+ | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
+
+ txtViewer.setDocument(currentDoc);
+
+ // Retrieving existing preference
+ String content = getPreferenceStore().getString(name);
+
+ // Loading preference in txt zone
+ currentDoc.set(content);
+
+ }
+
+ /**
+ * Creates the field editors. Field editors are abstractions of the common
+ * GUI blocks needed to manipulate various types of preferences. Each field
+ * editor knows how to save and restore itself.
+ */
+
+ @Override
+ public void createFieldEditors() {
+
+ addField(new StringFieldEditor(CppCodeGenConstants.P_HEADER_SUFFIX,
+ "Suffix for C++ header files ", getFieldEditorParent()));
+ addField(new StringFieldEditor(CppCodeGenConstants.P_IMPLEM_SUFFIX,
+ "Suffix for C++ implementation files ", getFieldEditorParent()));
+ addField(new StringFieldEditor(CppCodeGenConstants.P_PROJECT_PREFIX,
+ "Prefix for generated C++ (CDT) projects ", getFieldEditorParent()));
+
+ // Add P_COMMENT_HEADER
+ addTextField(CppCodeGenConstants.P_COMMENT_HEADER, "Header for generated files",
+ pCommentDoc);
+ }
+
+ @Override
+ public void init(IWorkbench workbench) {
+ }
+
+ @Override
+ public void performDefaults() {
+
+ // initialize comment field from default
+ pCommentDoc.set(getPreferenceStore().getDefaultString(CppCodeGenConstants.P_COMMENT_HEADER));
+ super.performDefaults();
+ }
+
+ @Override
+ public boolean performOk() {
+
+ // Store txt for P_COMMENT_HEADER
+ String currentComment = pCommentDoc.get();
+ getPreferenceStore().setValue(CppCodeGenConstants.P_COMMENT_HEADER, currentComment);
+
+ return super.performOk();
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/.classpath b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/.classpath
new file mode 100644
index 00000000000..358df1bc1d1
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="xtend-gen"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/.project b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/.project
new file mode 100644
index 00000000000..1b4a71a36b8
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/.project
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.cpp.codegen</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.acceleo.ide.ui.acceleoBuilder</name>
+ <arguments>
+ <dictionary>
+ <key>compilation.kind</key>
+ <value>compilation.absolute.path</value>
+ </dictionary>
+ <dictionary>
+ <key>compliance</key>
+ <value>pragmatic</value>
+ </dictionary>
+ <dictionary>
+ <key>resource.kind</key>
+ <value>xmi</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.acceleo.ide.ui.acceleoNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/META-INF/MANIFEST.MF b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..508918952e5
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/META-INF/MANIFEST.MF
@@ -0,0 +1,41 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.jface.text,
+ org.eclipse.uml2.uml;bundle-version="4.1.0",
+ org.eclipse.core.resources,
+ org.eclipse.papyrus.cpp.profile;bundle-version="1.2.0",
+ org.eclipse.ui.ide;bundle-version="3.8.0",
+ org.eclipse.core.filesystem;bundle-version="1.3.200",
+ org.eclipse.cdt.core;resolution:=optional,
+ org.eclipse.papyrus.infra.core.log;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.tools.utils;bundle-version="1.2.0",
+ org.eclipse.papyrus.codegen.extensionpoints;bundle-version="1.2.0",
+ org.eclipse.xtend.lib,
+ com.google.guava;bundle-version="11.0.0",
+ org.eclipse.xtext.xbase.lib,
+ org.eclipse.uml2.uml.profile.standard;bundle-version="1.0.0",
+ org.eclipse.papyrus.codegen.base;bundle-version="1.2.0"
+Export-Package: org.eclipse.papyrus.cpp.codegen;uses:="org.eclipse.ui.plugin,
+ org.osgi.framework,
+ org.eclipse.uml2.uml",
+ org.eclipse.papyrus.cpp.codegen.preferences;uses:="org.eclipse.jface.preference,
+ org.eclipse.core.runtime.preferences",
+ org.eclipse.papyrus.cpp.codegen.transformation; uses:="org.eclipse.core.runtime,
+ org.eclipse.papyrus.acceleo,
+ org.eclipse.core.resources,
+ org.eclipse.uml2.uml",
+ org.eclipse.papyrus.cpp.codegen.utils;uses:="org.eclipse.emf.ecore,
+ org.eclipse.emf.common.util,
+ org.eclipse.uml2.uml",
+ org.eclipse.papyrus.cpp.codegen.xtend
+Bundle-Vendor: %providerName
+Eclipse-LazyStart: true
+Bundle-ActivationPolicy: lazy
+Bundle-Version: 1.2.0.qualifier
+Bundle-Localization: plugin
+Bundle-Name: %pluginName
+Bundle-Activator: org.eclipse.papyrus.cpp.codegen.Activator
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.cpp.codegen;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/about.html b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/about.html
new file mode 100644
index 00000000000..209103075a7
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>November 14, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/build.acceleo b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/build.acceleo
new file mode 100644
index 00000000000..26abe5ae4c9
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/build.acceleo
@@ -0,0 +1,26 @@
+<!-- ===================================================================== -->
+<!-- Custom targets. -->
+<!-- Set customBuildCallbacks = build.acceleo in your build.properties. -->
+<!-- ===================================================================== -->
+<project name="Build Acceleo Module" default="noDefault">
+ <!-- ================================================================= -->
+ <!-- Default target -->
+ <!-- ================================================================= -->
+ <target name="noDefault">
+ <echo message="This file must be called with explicit targets" />
+ </target>
+
+ <!-- ================================================================= -->
+ <!-- This will be called automatically after the compilation of each -->
+ <!-- Bundle... in dependency order. -->
+ <!-- ================================================================= -->
+ <target name="post.compile.@dot">
+ <acceleoCompiler
+ sourceFolder="${target.folder}"
+ outputFolder="${target.folder}"
+ dependencies="${target.folder}/../../org.eclipse.papyrus.cpp.profile;${target.folder}/../../org.eclipse.papyrus.acceleo;${target.folder}/../../org.eclipse.papyrus.uml.tools.utils;${target.folder}/../../org.eclipse.papyrus.codegen.extensionpoints;"
+ binaryResource="false"
+ packagesToRegister="">
+ </acceleoCompiler>
+ </target>
+</project>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/build.properties b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/build.properties
new file mode 100644
index 00000000000..143d4e25c7d
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/build.properties
@@ -0,0 +1,13 @@
+#
+#Tue Mar 26 23:29:07 CET 2013
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ plugin.properties,\
+ about.html,\
+ build.acceleo,\
+ src/org/eclipse/papyrus/cpp/codegen/utils/messages.properties
+output..=bin/
+src.includes=about.html
+source..=src/,xtend-gen/
+customBuildCallbacks=build.acceleo
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/plugin.properties b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/plugin.properties
new file mode 100644
index 00000000000..c14d7642918
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/plugin.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2013 CEA LIST.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# CEA LIST - initial API and implementation
+###############################################################################
+pluginName=Papyrus C++ code generation (Incubation)
+providerName=Eclipse Modeling Project
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/plugin.xml b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/plugin.xml
new file mode 100644
index 00000000000..5cdc98728ed
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/plugin.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+ <extension
+ point="org.eclipse.core.runtime.preferences">
+ <initializer
+ class="org.eclipse.papyrus.cpp.codegen.preferences.CppCodeGenPreferenceInitializer">
+ </initializer>
+ </extension>
+ <extension
+ point="org.eclipse.papyrus.codegen.extensionpoints.languageCodegen">
+ <generator
+ id="Standard C++"
+ language="C++"
+ class="org.eclipse.papyrus.cpp.codegen.CppLangCodegen">
+ </generator>
+ </extension>
+</plugin>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/pom.xml b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/pom.xml
new file mode 100644
index 00000000000..b78a7f04301
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/pom.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.cpp.codegen</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-clean-plugin</artifactId>
+ <configuration>
+ <filesets>
+ <fileset>
+ <directory>xtend-gen</directory>
+ <includes>
+ <include>**/*</include>
+ </includes>
+ <excludes>
+ <exclude>.gitignore</exclude>
+ </excludes>
+ </fileset>
+ </filesets>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.eclipse.xtend</groupId>
+ <artifactId>xtend-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>compile</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <outputDirectory>xtend-gen</outputDirectory>
+ <testOutputDirectory>${project.build.directory}/xtend-gen/test</testOutputDirectory>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/Activator.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/Activator.java
new file mode 100644
index 00000000000..f61e97bca9c
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/Activator.java
@@ -0,0 +1,68 @@
+/*******************************************************************************
+ * Copyright (c) 2006 - 2012 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+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;
+
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.cpp.codegen"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ public static LogHelper log;
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ log = new LogHelper();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/Constants.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/Constants.java
new file mode 100644
index 00000000000..e1f5d37c6ec
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/Constants.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2006 - 2015 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.cpp.codegen;
+
+import java.util.regex.Pattern;
+
+/**
+ * String constants for the code generation
+ *
+ * @author ansgar
+ *
+ */
+public class Constants {
+
+ public static final String includeHFile = "// include associated header file"; //$NON-NLS-1$
+
+ public static final String cppIncPreBodyStart = "// Include from CppInclude stereotype (pre-body)"; //$NON-NLS-1$
+
+ public static final String cppIncPreBodyEnd = "// End of CppInclude stereotype (pre-body)"; //$NON-NLS-1$
+
+ public static final String cppIncBodyStart = "// Include from CppInclude declaration (body)"; //$NON-NLS-1$
+
+ public static final String cppIncBodyEnd = "// End of CppInclude stereotype (body)";//$NON-NLS-1$
+
+ public static final String derivedIncludes = "// Derived includes directives";//$NON-NLS-1$
+
+ public static final String forwardDecl = "// forward declarations"; //$NON-NLS-1$
+
+ public static final String staticAttributes = "// static attributes (if any)"; //$NON-NLS-1$
+
+ public static final String undefinedType = "undefined"; //$NON-NLS-1$
+
+ // support the languages "C++", "C/C++" as well as "cpp". The '+' needs to be escaped in a regular epression
+ public static final Pattern supportedLanguages = Pattern.compile("C\\+\\+|C/C\\+\\+|cpp"); //$NON-NLS-1$
+
+ public static final String DOT = "."; //$NON-NLS-1$
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/CppLangCodegen.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/CppLangCodegen.java
new file mode 100644
index 00000000000..3dc87c06e27
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/CppLangCodegen.java
@@ -0,0 +1,138 @@
+/*******************************************************************************
+ * Copyright (c) 2006 - 2015 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - ansgar.radermacher@cea.fr initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.cpp.codegen;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.C_Cpp.C_CppPackage;
+import org.eclipse.papyrus.codegen.base.ModelElementsCreator;
+import org.eclipse.papyrus.codegen.extensionpoints.ILangCodegen2;
+import org.eclipse.papyrus.codegen.extensionpoints.MethodInfo;
+import org.eclipse.papyrus.codegen.extensionpoints.SyncInformation;
+import org.eclipse.papyrus.cpp.codegen.preferences.CppCodeGenUtils;
+import org.eclipse.papyrus.cpp.codegen.transformation.CppModelElementsCreator;
+import org.eclipse.papyrus.cpp.codegen.utils.LocateCppProject;
+import org.eclipse.papyrus.cpp.codegen.xtend.CppParameter;
+import org.eclipse.uml2.uml.Behavior;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PackageableElement;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.ParameterDirectionKind;
+import org.eclipse.uml2.uml.Profile;
+
+/**
+ * C++ language support
+ *
+ */
+public class CppLangCodegen implements ILangCodegen2 {
+
+ protected ModelElementsCreator creator = null;
+
+ protected IProject lastProject = null;
+
+ @Override
+ public String getDescription() {
+ return Messages.C_CppLangCodegen_GeneratorDesc;
+ }
+
+ /**
+ * Check whether the code generator is able to produce code for the passed element:
+ * it must be a classifier and the C++ profile must be applied.
+ */
+ @Override
+ public boolean isEligible(Element modelElement) {
+ if (modelElement instanceof Classifier) {
+ Package nearestPackage = modelElement.getNearestPackage();
+ if (nearestPackage != null) {
+ // check whether the C++ profile is applied
+ for (Profile profile : nearestPackage.getAllAppliedProfiles()) {
+ if (C_CppPackage.eINSTANCE.getName().equals(profile.getName())) {
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public String getSuffix(FILE_KIND fileKind) {
+ if (fileKind == FILE_KIND.BODY) {
+ return CppCodeGenUtils.getBodySuffix();
+ } else {
+ return CppCodeGenUtils.getHeaderSuffix();
+ }
+ }
+
+ @Override
+ public void generateCode(IProject project, PackageableElement element, IProgressMonitor monitor) {
+ manageCreator(project, element);
+ creator.createPackageableElement(element, monitor);
+ }
+
+ @Override
+ public void cleanCode(IProject project, PackageableElement element, IProgressMonitor monitor) {
+ manageCreator(project, element);
+ creator.removePackageableElement(element, monitor);
+ }
+
+ @Override
+ public String getFileName(IProject project, NamedElement element) {
+ manageCreator(project, element);
+ return creator.getFileName(element);
+ }
+
+ @Override
+ public IProject getTargetProject(PackageableElement pe, boolean createIfMissing) {
+ return LocateCppProject.getTargetProject(pe, createIfMissing);
+ }
+
+ protected void manageCreator(IProject project, Element element) {
+ if ((project == null) && (element instanceof PackageableElement)) {
+ project = getTargetProject((PackageableElement) element, false);
+ }
+ if ((creator == null) || (project != lastProject)) {
+ lastProject = project;
+ creator = new CppModelElementsCreator(project);
+ }
+ }
+
+ @Override
+ public SyncInformation getSyncInformation(String methodName, String body) {
+ return null;
+ }
+
+ @Override
+ public MethodInfo getMethodInfo(NamedElement operationOrBehavior) {
+ MethodInfo mi = new MethodInfo(operationOrBehavior.getName());
+ EList<Parameter> parameters = null;
+ if (operationOrBehavior instanceof Operation) {
+ parameters = ((Operation) operationOrBehavior).getOwnedParameters();
+ } else if (operationOrBehavior instanceof Behavior) {
+ parameters = ((Behavior) operationOrBehavior).getOwnedParameters();
+ }
+
+ if (parameters != null) {
+ for (Parameter parameter : parameters) {
+ if (parameter.getDirection() != ParameterDirectionKind.RETURN_LITERAL) {
+ mi.addParameterType(CppParameter.CppParameterForCDT(parameter).toString());
+ }
+ }
+ }
+ return mi;
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/Messages.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/Messages.java
new file mode 100644
index 00000000000..ff7d9277d4c
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/Messages.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2006 - 2015 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.cpp.codegen;
+
+import org.eclipse.osgi.util.NLS;
+
+public class Messages extends NLS {
+ private static final String BUNDLE_NAME = "org.eclipse.papyrus.cpp.codegen.messages"; //$NON-NLS-1$
+ public static String C_CppLangCodegen_GeneratorDesc;
+ public static String CppModelElementsCreator_CannotFormatContent;
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ private Messages() {
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/messages.properties b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/messages.properties
new file mode 100644
index 00000000000..611b7081e7e
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/messages.properties
@@ -0,0 +1,2 @@
+C_CppLangCodegen_GeneratorDesc=General purpose C++ code generator for object-oriented models. Uses the CEA C/C++ profile
+CppModelElementsCreator_CannotFormatContent=Cannot format content
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/preferences/CppCodeGenConstants.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/preferences/CppCodeGenConstants.java
new file mode 100644
index 00000000000..9993ad5e07d
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/preferences/CppCodeGenConstants.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2006 - 2012 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.cpp.codegen.preferences;
+
+public class CppCodeGenConstants {
+
+ /**
+ * Suffix for generated header files
+ */
+ public static final String P_HEADER_SUFFIX = "headSuffix"; //$NON-NLS-1$
+
+ /**
+ * Suffix for generated body/implementation files
+ */
+ public static final String P_IMPLEM_SUFFIX = "implSuffix"; //$NON-NLS-1$
+
+ /**
+ * Suffix for generated body/implementation files
+ */
+ public static final String P_OUT_INOUT_OP = "outInoutOp"; //$NON-NLS-1$
+
+ /**
+ * User defined comment header in generated files
+ */
+ public static final String P_COMMENT_HEADER = "commentHeader"; //$NON-NLS-1$
+
+ /**
+ * Suffix for generated header files
+ */
+ public static final String P_PROJECT_PREFIX = "projectPrefix"; //$NON-NLS-1$
+
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/preferences/CppCodeGenPreferenceInitializer.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/preferences/CppCodeGenPreferenceInitializer.java
new file mode 100644
index 00000000000..7dd59fbe605
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/preferences/CppCodeGenPreferenceInitializer.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2006 - 2012 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.cpp.codegen.preferences;
+
+import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.papyrus.cpp.codegen.Activator;
+
+
+public class CppCodeGenPreferenceInitializer extends AbstractPreferenceInitializer {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
+ */
+ @Override
+ public void initializeDefaultPreferences() {
+ IPreferenceStore store = Activator.getDefault().getPreferenceStore();
+ store.setDefault(CppCodeGenConstants.P_HEADER_SUFFIX, "h"); //$NON-NLS-1$
+ store.setDefault(CppCodeGenConstants.P_IMPLEM_SUFFIX, "cpp"); //$NON-NLS-1$
+ store.setDefault(CppCodeGenConstants.P_OUT_INOUT_OP, "*"); //$NON-NLS-1$
+ store.setDefault(CppCodeGenConstants.P_PROJECT_PREFIX, "org.eclipse.papyrus.cppgen."); //$NON-NLS-1$
+
+ // Default value for P_COMMENT_HEADER
+ String NL = System.getProperties().getProperty("line.separator"); //$NON-NLS-1$
+ String defaultValue =
+ "// --------------------------------------------------------" + NL + //$NON-NLS-1$
+ "// Code generated by Papyrus C++" + NL + //$NON-NLS-1$
+ "// --------------------------------------------------------" + NL + NL; //$NON-NLS-1$
+ store.setDefault(CppCodeGenConstants.P_COMMENT_HEADER, defaultValue);
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/preferences/CppCodeGenUtils.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/preferences/CppCodeGenUtils.java
new file mode 100644
index 00000000000..69a18f191c0
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/preferences/CppCodeGenUtils.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2006 - 2012 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.cpp.codegen.preferences;
+
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.papyrus.cpp.codegen.Activator;
+
+/**
+ * Utility class that returns the preference values
+ *
+ * @author ansgar
+ *
+ */
+public class CppCodeGenUtils {
+
+ protected static IPreferenceStore preferenceStore = null;
+
+ public static String getHeaderSuffix() {
+ initPreferenceStore();
+ return preferenceStore.getString(CppCodeGenConstants.P_HEADER_SUFFIX);
+ }
+
+ public static String getBodySuffix() {
+ initPreferenceStore();
+ return preferenceStore.getString(CppCodeGenConstants.P_IMPLEM_SUFFIX);
+ }
+
+ public static String getOutInoutOp() {
+ initPreferenceStore();
+ return preferenceStore.getString(CppCodeGenConstants.P_OUT_INOUT_OP);
+ }
+
+ public static String getCommentHeader() {
+ initPreferenceStore();
+ return preferenceStore.getString(CppCodeGenConstants.P_COMMENT_HEADER);
+ }
+
+ public static void initPreferenceStore() {
+ if (preferenceStore == null) {
+ preferenceStore = Activator.getDefault().getPreferenceStore();
+ }
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/transformation/CppLocationStrategy.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/transformation/CppLocationStrategy.java
new file mode 100644
index 00000000000..ccddad6f9cc
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/transformation/CppLocationStrategy.java
@@ -0,0 +1,30 @@
+package org.eclipse.papyrus.cpp.codegen.transformation;
+
+import org.eclipse.papyrus.codegen.base.HierarchyLocationStrategy;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Package;
+
+
+public class CppLocationStrategy extends HierarchyLocationStrategy {
+
+ public static final String PKG_PREFIX = "Pkg_"; //$NON-NLS-1$
+
+ /**
+ * Return the filename for a given named element.
+ *
+ * @param element
+ * a named element
+ * @return filename for this element
+ */
+ public String getFileName(NamedElement element) {
+ if (element instanceof Package) {
+ // specific prefix for packages
+ String folder = super.getFileName(element);
+ if (folder.length() > 0) {
+ folder += HierarchyLocationStrategy.SEP_CHAR;
+ }
+ return folder + PKG_PREFIX + element.getName();
+ }
+ else return super.getFileName(element);
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/transformation/CppModelElementsCreator.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/transformation/CppModelElementsCreator.java
new file mode 100644
index 00000000000..ff974a517e5
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/transformation/CppModelElementsCreator.java
@@ -0,0 +1,243 @@
+/*******************************************************************************
+ * Copyright (c) 2006 - 2012 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+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.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.ExternLibrary;
+import org.eclipse.papyrus.C_Cpp.External;
+import org.eclipse.papyrus.C_Cpp.Include;
+import org.eclipse.papyrus.C_Cpp.ManualGeneration;
+import org.eclipse.papyrus.C_Cpp.NoCodeGen;
+import org.eclipse.papyrus.C_Cpp.Template;
+import org.eclipse.papyrus.codegen.base.GenUtils;
+import org.eclipse.papyrus.codegen.base.IPFileSystemAccess;
+import org.eclipse.papyrus.codegen.base.ModelElementsCreator;
+import org.eclipse.papyrus.codegen.base.ProjectBasedFileAccess;
+import org.eclipse.papyrus.cpp.codegen.Activator;
+import org.eclipse.papyrus.cpp.codegen.Constants;
+import org.eclipse.papyrus.cpp.codegen.Messages;
+import org.eclipse.papyrus.cpp.codegen.preferences.CppCodeGenUtils;
+import org.eclipse.papyrus.cpp.codegen.xtend.CppClassifierGenerator;
+import org.eclipse.papyrus.cpp.codegen.xtend.CppPackageHeaderGenerator;
+import org.eclipse.text.edits.MalformedTreeException;
+import org.eclipse.text.edits.TextEdit;
+import org.eclipse.uml2.uml.Association;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Enumeration;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PackageableElement;
+import org.eclipse.uml2.uml.PrimitiveType;
+import org.eclipse.uml2.uml.Relationship;
+import org.eclipse.uml2.uml.Signal;
+import org.eclipse.uml2.uml.SignalEvent;
+import org.eclipse.uml2.uml.Usage;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+
+
+/**
+ * Main class of C++ code generator
+ *
+ * @author Ansgar Radermacher (ansgar.radermacher@cea.fr)
+ * @author Önder GÜRCAN (onder.gurcan@cea.fr)
+ */
+public class CppModelElementsCreator extends ModelElementsCreator {
+
+ /**
+ * Constructor.
+ *
+ * @param project
+ * the project in which the generated code should be placed
+ */
+ public CppModelElementsCreator(IProject project) {
+ this(new ProjectBasedFileAccess(project), null);
+ }
+
+ /**
+ * Constructor, allows for non-standard commentHeader
+ *
+ * @param project
+ * the project in which the generated code should be placed
+ * @param commentHeader
+ * Custom prefix for each generated file
+ */
+ public CppModelElementsCreator(IProject project, String commentHeader) {
+ this(new ProjectBasedFileAccess(project), commentHeader);
+ }
+
+ /**
+ * Constructor. Pass caller defined file system access and commentHeader
+ *
+ * @param project
+ * the project in which the generated code should be placed
+ * @param commentHeader
+ * commentHeader. If null, take from preferences
+ */
+ public CppModelElementsCreator(IPFileSystemAccess fileSystemAccess, String commentHeader) {
+ super(fileSystemAccess, new CppLocationStrategy());
+ this.commentHeader = (commentHeader != null) ?
+ commentHeader :
+ CppCodeGenUtils.getCommentHeader();
+ hppExt = CppCodeGenUtils.getHeaderSuffix();
+ cppExt = CppCodeGenUtils.getBodySuffix();
+ }
+
+ protected String hppExt;
+
+ protected String cppExt;
+
+ protected String commentHeader;
+
+ /**
+ * Creates the files corresponding to the class. For a "simple" class
+ * generates 2 headers (one for the privates concrete operations and one for
+ * the attributes, public operations and virtual / abstract operations and
+ * one body file.
+ *
+ * @param folder
+ * @param classifier
+ * @throws CoreException
+ */
+ @Override
+ protected void createPackageableElementFile(PackageableElement element, IProgressMonitor monitor) {
+ if (element instanceof Package) {
+ generatePkg((Package) element);
+ }
+
+ else if ((element instanceof PrimitiveType) || (element instanceof Enumeration) || (element instanceof Usage)) {
+ // do nothing, included in package
+ }
+ else if (element instanceof Classifier) {
+ generateClassifier((Classifier) element);
+ }
+ else if (element instanceof Relationship) {
+ // no code generation for relationships
+ }
+ else if (element instanceof Signal) {
+ // TODO: not supported, but do nothing
+ }
+ else if (element instanceof SignalEvent) {
+ // TODO: not supported, but do nothing
+ }
+ else {
+ Activator.log.debug("C++ code generator: unsupported model element " + element); //$NON-NLS-1$
+ }
+ }
+
+ protected void generateClassifier(Classifier classifier) {
+
+ // treat case of manual code generation
+ if (GenUtils.hasStereotype(classifier, ManualGeneration.class)) {
+ final ManualGeneration mg = UMLUtil.getStereotypeApplication(classifier, ManualGeneration.class);
+ final Include cppInclude = UMLUtil.getStereotypeApplication(classifier, Include.class);
+ final String fileContentH = commentHeader + cppInclude.getHeader();
+
+ // generate header code
+ final String fileNameH = locStrategy.getFileName(classifier) + Constants.DOT + hppExt;
+
+ generateFile(fileNameH, fileContentH);
+
+ // generate body code
+ String fileContentB = commentHeader +
+ cppInclude.getPreBody() + GenUtils.NL +
+ cppInclude.getBody() + GenUtils.NL;
+ String ext = GenUtils.maskNull(mg.getExtensionBody());
+ if (ext.length() == 0) {
+ ext = cppExt;
+ }
+ String fileNameB = locStrategy.getFileName(classifier) + Constants.DOT + ext;
+ generateFile(fileNameB, fileContentB);
+ }
+
+ // Only generate when no CppNoCodeGen stereotype is applied to the class
+ else if ((!noCodeGen(classifier)) && (!GenUtils.hasStereotype(classifier, Template.class)) &&
+ (!(classifier instanceof Association))) {
+
+ // Template Bound Class
+ if (GenUtils.isTemplateBoundElement(classifier)) {
+ final String bindHeaderFileName = locStrategy.getFileName(classifier) + Constants.DOT + hppExt;
+ generateFile(bindHeaderFileName, commentHeader + CppClassifierGenerator.generateBindHeaderCode(classifier));
+
+ final String bindBodyFileName = locStrategy.getFileName(classifier) + Constants.DOT + cppExt;
+ generateFile(bindBodyFileName, commentHeader + CppClassifierGenerator.generateBindBodyCode(classifier));
+ }
+ else {
+ // Class Header file generation
+ final String classHeaderFileName = locStrategy.getFileName(classifier) + Constants.DOT + hppExt;
+ generateFile(classHeaderFileName, commentHeader + CppClassifierGenerator.generateClassHeaderCode(classifier));
+
+ // Class Body file generation
+ if (classifier instanceof Class) {
+ final String classBodyFileName = locStrategy.getFileName(classifier) + Constants.DOT + cppExt;
+ generateFile(classBodyFileName, commentHeader + CppClassifierGenerator.generateClassBodyCode(classifier));
+ }
+ }
+ }
+ }
+
+ protected void generatePkg(Package pkg) {
+ final String fileName = locStrategy.getFileName(pkg) + Constants.DOT + hppExt;
+ generateFile(fileName, CppPackageHeaderGenerator.generateCode(pkg).toString());
+ }
+
+ protected void generateFile(String fileName, String content) {
+ fileSystemAccess.generateFile(fileName, format(content));
+ }
+
+ /**
+ * 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(Messages.CppModelElementsCreator_CannotFormatContent);
+ 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;
+ }
+
+ protected boolean noCodeGen(Element element) {
+ return GenUtils.hasStereotype(element, NoCodeGen.class) ||
+ GenUtils.hasStereotype(element, External.class) ||
+ GenUtils.hasStereotypeTree(element, ExternLibrary.class);
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/ClassUtils.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/ClassUtils.java
new file mode 100644
index 00000000000..7653753411f
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/ClassUtils.java
@@ -0,0 +1,81 @@
+/*******************************************************************************
+ * Copyright (c) 2006 - 2012 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.cpp.codegen.utils;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.UniqueEList;
+import org.eclipse.papyrus.codegen.base.GenUtils;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Operation;
+
+/**
+ * A set of utility functions related to classes.
+ *
+ * @author ansgar (ansgar.radermacher@cea.fr)
+ *
+ */
+public class ClassUtils {
+
+ /**
+ * Calculate the list of classifiers that needs to be included
+ *
+ * @param currentClass
+ * @return
+ */
+ public static EList<Classifier> includedClassifiers(Classifier currentClass) {
+ // Retrieve package used by current package (dependencies)
+ // use a unique list to avoid duplicates
+ EList<Classifier> usedClasses = new UniqueEList<Classifier>();
+
+ // class attributes dependencies
+ usedClasses.addAll(GenUtils.getOwnedAttributeTypes(currentClass));
+ // operation parameters dependencies
+ usedClasses.addAll(GenUtils.getTypesViaOperations(currentClass));
+ // inner classifier dependencies
+ usedClasses.addAll(GenUtils.getInnerClassifierTypes(currentClass));
+ // realized interface dependencies
+ if (currentClass instanceof Class) {
+ Class clazz = (Class) currentClass;
+ EList<Interface> implementedInterfaces = clazz.getImplementedInterfaces();
+ usedClasses.addAll(implementedInterfaces);
+ }
+ // dependencies and associations
+ usedClasses.addAll(GenUtils.getTypesViaRelationshipsNoDeps(currentClass));
+
+ // template parameters are declared locally (if owned) and do not correspond to a file
+ // that can be included
+ usedClasses.removeAll(GenUtils.getTemplateParameteredElements(currentClass));
+ return usedClasses;
+ }
+
+ /**
+ * Retrieve the list of operations of classes nested in the current class
+ * without the operations directly owned by the current class
+ *
+ * @param currentClass
+ * @return
+ */
+ public static EList<Operation> nestedOperations(Classifier currentClass) {
+ EList<Operation> nestedOperations = new UniqueEList<Operation>();
+
+ for (Element element : currentClass.allOwnedElements()) {
+ if (element instanceof Operation && !(element.getOwner().equals(currentClass))) {
+ nestedOperations.add((Operation) element);
+ }
+ }
+
+ return nestedOperations;
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/CppGenUtils.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/CppGenUtils.java
new file mode 100644
index 00000000000..36043a363ad
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/CppGenUtils.java
@@ -0,0 +1,351 @@
+/*******************************************************************************
+ * Copyright (c) 2006 - 2013 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+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;
+import org.eclipse.papyrus.C_Cpp.NoCodeGen;
+import org.eclipse.papyrus.C_Cpp.Typedef;
+import org.eclipse.papyrus.C_Cpp.Visibility;
+import org.eclipse.papyrus.codegen.base.GenUtils;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.ClassifierTemplateParameter;
+import org.eclipse.uml2.uml.ConnectableElementTemplateParameter;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.LiteralBoolean;
+import org.eclipse.uml2.uml.LiteralInteger;
+import org.eclipse.uml2.uml.LiteralString;
+import org.eclipse.uml2.uml.LiteralUnlimitedNatural;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Namespace;
+import org.eclipse.uml2.uml.OperationTemplateParameter;
+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;
+
+
+
+/**
+ * Some utilities specific to C++ code generation: a set of static methods that is intended
+ * for use from Acceleo templates.
+ *
+ * @author wassim, ansgar
+ *
+ */
+public class CppGenUtils {
+
+ public static final String ANSI_C_LIB = "AnsiCLibrary"; //$NON-NLS-1$
+
+ /**
+ * Return a list of template parameters without type
+ *
+ * @param classifier
+ * @return
+ */
+ public static String getTemplateParametersWoType(Classifier classifier) {
+ String tparamWoType = ""; //$NON-NLS-1$
+
+ Iterator<TemplateParameter> it = GenUtils.getTemplateParameters(classifier).iterator();
+
+ while (it.hasNext()) {
+ TemplateParameter currentTParam = it.next();
+ tparamWoType = tparamWoType + GenUtils.getTemplateName(currentTParam);
+
+ if (it.hasNext()) {
+ tparamWoType = tparamWoType + ", "; //$NON-NLS-1$
+ }
+ }
+ return tparamWoType;
+ }
+
+ /**
+ * The standard UML and MARTE libraries do not apply the stereotype "Typedef". Yet, we want to treat these
+ * types in an identical way, i.e. we use a typedef to the associated primitive C++ type
+ *
+ * @param type
+ * @return
+ */
+ public static String getStdtypes(PrimitiveType type) {
+ Object owner = type.getOwner();
+ String owningPkgName = ""; //$NON-NLS-1$
+ if (owner instanceof Package) {
+ owningPkgName = ((Package) owner).getName();
+ }
+ if (owningPkgName.equals("PrimitiveTypes") || // used in UML >= 2.4 //$NON-NLS-1$
+ owningPkgName.equals("UMLPrimitiveTypes") || // used in UML < 2.4 //$NON-NLS-1$
+ owningPkgName.equals("MARTE_PrimitivesTypes")) { //$NON-NLS-1$
+ String td = null;
+ String name = type.getName();
+
+ if (name.equals("Boolean")) { //$NON-NLS-1$
+ td = "bool"; //$NON-NLS-1$
+ }
+ else if (name.equals("Integer")) { //$NON-NLS-1$
+ td = "int"; //$NON-NLS-1$
+ }
+ else if (name.equals("Unlimited Natural")) { //$NON-NLS-1$
+ td = "unsigned long"; //$NON-NLS-1$
+ }
+ else if (name.equals("Real")) { //$NON-NLS-1$
+ td = "float"; //$NON-NLS-1$
+ }
+ else if (name.equals("String")) { //$NON-NLS-1$
+ td = "const char *"; //$NON-NLS-1$
+ }
+ else if (name.equals("Unlimited Natural")) { //$NON-NLS-1$
+ td = "unsigned long"; //$NON-NLS-1$
+ }
+ if (td != null) {
+ return "typedef " + td + " " + name + ";"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ }
+ // else unknown within UMLPrimitiveTypes, treat in standard way
+ }
+
+ return ""; //$NON-NLS-1$
+ }
+
+ /**
+ * Return a kind of qualifiedName, except if
+ * - The named element has the stereotype External or NoCodeGen
+ * - The named element is part of the ANSI C library
+ * - The named element is a primitive type that has no further definition via a stereotype (TODO: why is this required/useful?)
+ *
+ * @param ne
+ * @return
+ */
+ public static String cppQualifiedName(NamedElement ne) {
+ if (ne == null) {
+ return "undefined"; //$NON-NLS-1$
+ }
+ Object owner = ne.getOwner();
+ String owningPkgName = ""; //$NON-NLS-1$
+ if (owner instanceof Package) {
+ owningPkgName = ((Package) owner).getName();
+ }
+ if (GenUtils.hasStereotype(ne, External.class) ||
+ GenUtils.hasStereotypeTree(ne, NoCodeGen.class) ||
+ GenUtils.hasStereotypeTree(ne, ExternLibrary.class)) {
+ return ne.getName();
+ }
+ else if (owningPkgName.equals(ANSI_C_LIB)) {
+ // always use the short name for types within the ANSI C library
+ return ne.getName();
+ }
+ else if (owner instanceof ClassifierTemplateParameter) {
+ // return short name for template in Type
+ return ne.getName();
+ }
+
+ String qName = ne.getName();
+ if (currentNS == ne.getNamespace()) {
+ // return simple name, if in current namespace
+ return qName;
+ }
+ if (ne instanceof PrimitiveType) {
+ if (!GenUtils.hasStereotype(ne, Typedef.class) && (getStdtypes((PrimitiveType) ne).length() == 0)) {
+ // is a primitive type without further definition and not a standard primitive type
+ // => assume that it is a external type without namespace
+ return qName;
+ }
+ }
+
+ for (Namespace ns : ne.allNamespaces()) {
+ // don't add qualified name for specific top-level namespace "root".
+ // TODO: specific workaround for the way Qompass creates its target model. Needs to be removed.
+ if (!((ns.getOwner() == null) && ns.getName().equals("root"))) { //$NON-NLS-1$
+ qName = ns.getName() + "::" + qName; //$NON-NLS-1$
+ }
+ }
+ if (qName.contains("::")) { //$NON-NLS-1$
+ // is a qualified name => make path absolute
+ return "::" + qName; //$NON-NLS-1$
+ } else {
+ return qName;
+ }
+ }
+
+
+ /**
+ * Returns the string that is used within a C++ template declaration, e.g. the "Class XY" in template<class XY>.
+ *
+ * @return the template type formated as string
+ */
+ public static String getTemplateTypeName(TemplateParameter templateParam) {
+ String prefix = ""; //$NON-NLS-1$
+ String name = ""; //$NON-NLS-1$
+
+ // Retrieve name of the ParameteredElement (when possible = it is a NamedElement
+ ParameterableElement pElt = templateParam.getParameteredElement();
+ if ((pElt != null) && (pElt instanceof NamedElement)) {
+ name = ((NamedElement) pElt).getName();
+ if (templateParam instanceof ClassifierTemplateParameter) {
+ // prefix name with "class" to indicate that the following type is a classifier
+ prefix = "class "; //$NON-NLS-1$
+ } else if (templateParam instanceof OperationTemplateParameter) {
+ // no prefix
+ } else if (templateParam instanceof ConnectableElementTemplateParameter) {
+ // no prefix
+ } else {// uml2TemplateParameter instanceof TemplateParameter
+ // TODO: literal integer is a value specification, but we use the fact that is also a named element
+ // e.g. would produce an <int N> parameter and ignore the value behind (which is ok for the
+ // declaration of the template, but not for its use.
+ if (pElt instanceof LiteralInteger) {
+ prefix = "int "; //$NON-NLS-1$
+ } else if (pElt instanceof LiteralString) {
+ prefix = "String "; //$NON-NLS-1$
+ } else if (pElt instanceof LiteralBoolean) {
+ prefix = "Boolean "; //$NON-NLS-1$
+ } else if (pElt instanceof LiteralUnlimitedNatural) {
+ prefix = "UnlimitedNatural "; //$NON-NLS-1$
+ } else {
+ prefix = pElt.eClass().getName() + " "; //$NON-NLS-1$
+ }
+ }
+ } else {
+ name = "undefined"; //$NON-NLS-1$
+ }
+
+ return (prefix + name);
+ }
+
+
+ /**
+ * Return a C++ namespace definition for a named element
+ *
+ * @param ne
+ * a named element
+ * @return a C++ namespace definition for a named element
+ */
+ public static String getNamespace(NamedElement ne) {
+ String namespace = ""; //$NON-NLS-1$
+ for (Namespace ns : ne.allNamespaces()) {
+ if (ns.getOwner() != null) {
+ String nsName = ns.getName();
+ if (!namespace.equals("")) { //$NON-NLS-1$
+ nsName += "::"; //$NON-NLS-1$
+ }
+ namespace = nsName + namespace;
+ }
+ }
+ if (!namespace.equals("")) { //$NON-NLS-1$
+ namespace = "\n" + "using namespace " + namespace + ";\n"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ }
+ return namespace;
+ }
+
+ /**
+ * Return a C++ open-namespace definition for a named element
+ *
+ * @param ne
+ * a named element
+ * @return a C++ open-namespace definition for a named element
+ */
+ public static String openNS(NamedElement ne) {
+ String openNS = ""; //$NON-NLS-1$
+ currentNS = ne.getNamespace();
+ if (ne instanceof Package) {
+ openNS = "namespace " + ne.getName() + " {\n"; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ for (Namespace ns : ne.allNamespaces()) {
+ if (ns.getOwner() != null) { // skip top-level package (useful?)
+ openNS = "namespace " + ns.getName() + " {\n" + openNS; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+ return openNS;
+ }
+
+
+ /**
+ * Return a C++ close-namespace definition for a named element
+ *
+ * @param ne
+ * a named element
+ * @return a C++ close-namespace definition for a named element
+ */
+ public static String closeNS(NamedElement ne) {
+ String closeNS = ""; //$NON-NLS-1$
+ if (ne instanceof Package) {
+ closeNS = "} // of namespace " + ne.getName() + "\n"; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ for (Namespace ns : ne.allNamespaces()) {
+ if (ns.getOwner() != null) {
+ closeNS += "} // of namespace " + ns.getName() + "\n"; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+ return closeNS;
+ }
+
+
+ /**
+ * Return the C++ visibility (on generalizations) in text form. Return public, if no stereotype
+ * visibility exists
+ *
+ * @param element
+ * @return
+ */
+ public static String getGeneralizationVisibility(Element element) {
+ // get visibility and target name
+ Visibility cppVisibility = UMLUtil.getStereotypeApplication(element, Visibility.class);
+ if (cppVisibility != null) {
+ return cppVisibility.getValue();
+ } else {
+ return "public"; //$NON-NLS-1$
+ }
+ }
+
+ private static Namespace currentNS;
+
+ private static VisibilityKind currVisibility = null;
+ private static final Pattern EmptySectionRegex = Pattern.compile("^\\s*$"); //$NON-NLS-1$
+
+ /**
+ * 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;
+ }
+
+ /**
+ * 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) {
+ // Bug 425208: Don't update the visibility until we know for sure that it
+ // will be written to the output.
+ VisibilityKind newVisibility = null;
+ if (!visibility.equals(currVisibility)) {
+ newVisibility = visibility;
+ }
+
+ // Filter out empty sections.
+ Matcher m = EmptySectionRegex.matcher(content);
+ if (content.isEmpty() || m.matches()) {
+ return ""; //$NON-NLS-1$
+ }
+
+ // Don't write duplicate visibility modifiers.
+ if (newVisibility == null) {
+ return content;
+ }
+
+ currVisibility = newVisibility;
+ return currVisibility.toString() + ":\n" + content; //$NON-NLS-1$
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/ILocateCppProject.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/ILocateCppProject.java
new file mode 100644
index 00000000000..2cdb5d6d945
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/ILocateCppProject.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2006 - 2013 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.cpp.codegen.utils;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.uml2.uml.PackageableElement;
+
+public interface ILocateCppProject {
+
+ /**
+ * Locate and return the target project for the given packageable element. Return null if
+ * no target project can be found.
+ *
+ * Ensures that the target project is correctly setup to contain generated C/C++ code. Does
+ * not create a new project, but may modify existing ones.
+ *
+ * @param pe
+ * a packageable element within a model
+ * @param createIfMissing
+ * if true, ask the user to apply the C++ nature if required.
+ * @return the associated project, if the C++ nature is applied.
+ */
+ public IProject getTargetProject(PackageableElement pe, boolean createIfMissing);
+
+ public IFile getTargetFile();
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/LocateCppProject.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/LocateCppProject.java
new file mode 100644
index 00000000000..fad9e7249b4
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/LocateCppProject.java
@@ -0,0 +1,130 @@
+/*******************************************************************************
+ * Copyright (c) 2006 - 2013 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.cpp.codegen.utils;
+
+import org.eclipse.cdt.core.CCProjectNature;
+import org.eclipse.cdt.core.CProjectNature;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.papyrus.codegen.extensionpoints.ILangProjectSupport;
+import org.eclipse.papyrus.codegen.extensionpoints.LanguageProjectSupport;
+import org.eclipse.papyrus.cpp.codegen.Activator;
+import org.eclipse.papyrus.cpp.codegen.preferences.CppCodeGenConstants;
+import org.eclipse.papyrus.uml.tools.utils.PackageUtil;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PackageableElement;
+
+public class LocateCppProject {
+ public static final String LANGUAGE_NAME = "C++"; //$NON-NLS-1$
+
+ private static final boolean Headless = Boolean.getBoolean("papyrus.run-headless"); //$NON-NLS-1$
+
+ /**
+ * Locate and return the target project for the given packageable element. Return null if
+ * no target project can be found.
+ *
+ * Ensures that the target project is correctly setup to contain generated C/C++ code. Does
+ * not create a new project, but may modify existing ones.
+ *
+ * @param pe
+ * a packageable element within a model
+ * @param createIfMissing
+ * if true, ask the user to apply the C++ nature if required.
+ * @return the associated project, if the C++ nature is applied.
+ */
+ public static IProject getTargetProject(PackageableElement pe, boolean createIfMissing) {
+ Package rootPkg = PackageUtil.getRootPackage(pe);
+
+ IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+
+ IPreferenceStore store = Activator.getDefault().getPreferenceStore();
+ String prefix = store != null ? store.getString(CppCodeGenConstants.P_PROJECT_PREFIX) : "bad preferences."; //$NON-NLS-1$
+ String projectName = prefix + rootPkg.getName();
+ IProject modelProject = root.getProject(projectName);
+ if (!modelProject.exists()) {
+ if (Headless)
+ {
+ try {
+ modelProject.create(null);
+ } catch (CoreException e) {
+ return null;
+ }
+ }
+ else
+ {
+ boolean create = createIfMissing && openQuestion(
+ Messages.LocateCppProject_CreateTargetProjectTitle,
+ String.format(Messages.LocateCppProject_CreateTargetProjectDesc, projectName));
+ if (create) {
+ ILangProjectSupport langSupport = LanguageProjectSupport.getProjectSupport(LANGUAGE_NAME);
+ if (langSupport != null) {
+ modelProject = langSupport.createProject(projectName);
+ langSupport.setSettings(modelProject, langSupport.initialConfigurationData());
+ if (modelProject == null) {
+ return null;
+ }
+ }
+ else {
+ return null;
+ }
+ }
+ else {
+ return null;
+ }
+ }
+ }
+
+ // Make sure the target project is open. If it was just created then it is likely open,
+ // however if it is an old project then it could have been closed.
+ if (!modelProject.isOpen()) {
+ try {
+ modelProject.open(null);
+ } catch (CoreException e) {
+ return null;
+ }
+ }
+
+ // Make sure the target project has the C and C++ build natures.
+ try {
+ if (!modelProject.hasNature(CCProjectNature.CC_NATURE_ID)) {
+ boolean apply = createIfMissing && (Headless || openQuestion(
+ Messages.LocateCppProject_ApplyCNatureTitle,
+ Messages.LocateCppProject_ApplyCNatureDesc));
+ if (!apply) {
+ return null;
+ }
+ CProjectNature.addCNature(modelProject, null);
+ CCProjectNature.addCCNature(modelProject, null);
+ }
+ } catch (CoreException e) {
+ Activator.log.error(e);
+ }
+ return modelProject;
+ }
+
+ private static boolean openQuestion(final String title, final String message)
+ {
+ final boolean[] ret = new boolean[] { false };
+ Display.getDefault().syncExec(new Runnable() {
+ @Override
+ public void run() {
+ ret[0] = MessageDialog.openQuestion(Display.getCurrent().getActiveShell(), title, message);
+ }
+ });
+ return ret[0];
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/Messages.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/Messages.java
new file mode 100644
index 00000000000..aa1c639f0c9
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/Messages.java
@@ -0,0 +1,18 @@
+package org.eclipse.papyrus.cpp.codegen.utils;
+
+import org.eclipse.osgi.util.NLS;
+
+public class Messages extends NLS {
+ private static final String BUNDLE_NAME = "org.eclipse.papyrus.cpp.codegen.utils.messages"; //$NON-NLS-1$
+ public static String LocateCppProject_ApplyCNatureTitle;
+ public static String LocateCppProject_ApplyCNatureDesc;
+ public static String LocateCppProject_CreateTargetProjectTitle;
+ public static String LocateCppProject_CreateTargetProjectDesc;
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ private Messages() {
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/Modifier.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/Modifier.java
new file mode 100644
index 00000000000..a55f4f6c0a0
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/Modifier.java
@@ -0,0 +1,189 @@
+/*******************************************************************************
+ * Copyright (c) 2006 - 2012 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.cpp.codegen.utils;
+
+import org.eclipse.papyrus.C_Cpp.Array;
+import org.eclipse.papyrus.C_Cpp.Const;
+import org.eclipse.papyrus.C_Cpp.Mutable;
+import org.eclipse.papyrus.C_Cpp.Ptr;
+import org.eclipse.papyrus.C_Cpp.Ref;
+import org.eclipse.papyrus.C_Cpp.StorageClass;
+import org.eclipse.papyrus.C_Cpp.Volatile;
+import org.eclipse.papyrus.codegen.base.GenUtils;
+import org.eclipse.papyrus.cpp.codegen.preferences.CppCodeGenUtils;
+import org.eclipse.uml2.uml.AggregationKind;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.MultiplicityElement;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.ParameterDirectionKind;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * Utility functions managing the "modifier" of an element, i.e. additional
+ * information whether a passed parameter or an attribute is a pointer, a
+ * reference, an array or constant.
+ *
+ * @author ansgar
+ *
+ */
+public class Modifier {
+
+ public static String modPtr(Element propertyOrParameter) {
+ // Pointer
+ String ptr = ""; //$NON-NLS-1$
+ Ptr cppPtr = UMLUtil.getStereotypeApplication(propertyOrParameter, Ptr.class);
+ if (cppPtr != null) {
+ ptr = (cppPtr.getDeclaration() != null) ? cppPtr.getDeclaration() : "*"; //$NON-NLS-1$
+ } else {
+ ptr = ""; //$NON-NLS-1$
+ }
+ if (propertyOrParameter instanceof Property) {
+ if (((Property) propertyOrParameter).getAggregation() == AggregationKind.SHARED_LITERAL) {
+ ptr += "*"; //$NON-NLS-1$
+ }
+ }
+ boolean ptrOrRef = GenUtils.hasStereotype(propertyOrParameter, Ref.class)
+ || GenUtils.hasStereotype(propertyOrParameter, Ptr.class);
+
+ // out and inout parameter are realized by means of a pointer
+ if (propertyOrParameter instanceof Parameter) {
+ ParameterDirectionKind directionKind = ((Parameter) propertyOrParameter).getDirection();
+ if (directionKind == ParameterDirectionKind.OUT_LITERAL || directionKind == ParameterDirectionKind.INOUT_LITERAL) {
+ // parameter is an out or inout parameter. If the user already either a pointer or reference, use this.
+ if (!ptrOrRef) {
+ // .. otherwise add the oeprator from the preferences
+ ptr += CppCodeGenUtils.getOutInoutOp();
+ }
+ }
+ }
+ return ptr;
+ }
+
+ public static String modRef(Element propertyOrParameter) {
+ // Ref
+ return GenUtils.hasStereotype(propertyOrParameter, Ref.class) ? "&" : ""; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ public static String modArray(Element propertyOrParameter) {
+ // Array
+ Array cppArray = UMLUtil.getStereotypeApplication(propertyOrParameter, Array.class);
+ String array = ""; //$NON-NLS-1$
+ if (cppArray != null) {
+ // explicit array definition
+ array = (cppArray.getDefinition() != null) ? cppArray.getDefinition() : "[]"; //$NON-NLS-1$
+ } else {
+ // calculate array from multiplicity definition
+ int multiplicity = 1;
+ if (propertyOrParameter instanceof MultiplicityElement) {
+ multiplicity = ((MultiplicityElement) propertyOrParameter).getUpper();
+ }
+ array = ""; //$NON-NLS-1$
+ if (multiplicity == -1) {
+ array = "[]"; //$NON-NLS-1$
+ } else if (multiplicity > 1) {
+ array = "[" + multiplicity + "]"; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+ return array;
+ }
+
+ /**
+ * return modifier for const and volatile
+ * @param propertyOrParameter
+ * @return
+ */
+ public static String modCVQualifier(Element propertyOrParameter) {
+ String cvQualifier = ""; //$NON-NLS-1$
+ // CVQualifiers cannot be used with static functions
+ if (propertyOrParameter instanceof Operation && ((Operation) propertyOrParameter).isStatic()) {
+ // do nothing
+ }
+ // Const
+ else if (GenUtils.hasStereotype(propertyOrParameter, Const.class)) {
+ // Volatile with const
+ if (GenUtils.hasStereotype(propertyOrParameter, Volatile.class)) {
+ cvQualifier = (propertyOrParameter instanceof Operation) ? " const volatile" //$NON-NLS-1$
+ : // added at the end of operation, prefix with " "
+ "const volatile "; // before operation or //$NON-NLS-1$
+ // parameter, postfix with " "
+ }
+ // Const without Volatile
+ else {
+ cvQualifier = (propertyOrParameter instanceof Operation) ? " const" //$NON-NLS-1$
+ : // added at the end of operation, prefix with " "
+ "const "; // before operation or //$NON-NLS-1$
+ // parameter, postfix with " "
+ }
+ }
+ // Volatile without const
+ else if (GenUtils.hasStereotype(propertyOrParameter, Volatile.class)) {
+ cvQualifier = (propertyOrParameter instanceof Operation) ? " volatile" //$NON-NLS-1$
+ : // added at the end of operation, prefix with " "
+ "volatile "; // before operation or parameter, //$NON-NLS-1$
+ // postfix with " "
+ }
+
+ // Mutable (non-static attribute only)
+ if (GenUtils.hasStereotype(propertyOrParameter, Mutable.class)) {
+ if (propertyOrParameter instanceof Property && !((Property) propertyOrParameter).isStatic()) {
+ cvQualifier = "mutable " + cvQualifier;
+ }
+ }
+
+ return cvQualifier;
+ }
+
+ /**
+ * return modifier for storage class
+ * @param propertyOrParameter
+ * @return
+ */
+ public static String modSCQualifier(Element propertyOrParameter) {
+ StorageClass sc = UMLUtil.getStereotypeApplication(propertyOrParameter, StorageClass.class);
+ if (sc != null) {
+ return sc.getStorageClass().getLiteral() + " "; //$NON-NLS-1$
+ }
+ return ""; //$NON-NLS-1$
+ }
+
+ /**
+ * Return inform about the direction of a parameter in form of a comment
+ *
+ * @param propertyOperationOrParameter
+ * @return
+ */
+ public static String dirInfo(Element propertyOperationOrParameter) {
+ if (propertyOperationOrParameter instanceof Parameter) {
+ ParameterDirectionKind directionKind = ((Parameter) propertyOperationOrParameter).getDirection();
+ if (directionKind == ParameterDirectionKind.IN_LITERAL) {
+ return " /*in*/"; //$NON-NLS-1$
+ } else if (directionKind == ParameterDirectionKind.OUT_LITERAL) {
+ return " /*out*/"; //$NON-NLS-1$
+ } else if (directionKind == ParameterDirectionKind.INOUT_LITERAL) {
+ return " /*inout*/"; //$NON-NLS-1$
+ }
+ }
+ return ""; //$NON-NLS-1$
+ }
+
+ /**
+ * initialize the ptr/ref/array/isConst attributes.
+ *
+ * @param propertyOperationOrParameter
+ */
+ public static void update(Element propertyOperationOrParameter) {
+
+
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/messages.properties b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/messages.properties
new file mode 100644
index 00000000000..617270b5e1e
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/messages.properties
@@ -0,0 +1,4 @@
+LocateCppProject_ApplyCNatureTitle=Need to apply C++ nature
+LocateCppProject_ApplyCNatureDesc=Code generation requires that the underlying project has a C++ nature. Do you want to apply this nature?
+LocateCppProject_CreateTargetProjectDesc=Code generation needs to create a CDT project called "%s". Do you want to do this?
+LocateCppProject_CreateTargetProjectTitle=Target project does not exist
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppAttribute.xtend b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppAttribute.xtend
new file mode 100644
index 00000000000..9324fe993b2
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppAttribute.xtend
@@ -0,0 +1,92 @@
+/*******************************************************************************
+ * Copyright (c) 2014 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+ package org.eclipse.papyrus.cpp.codegen.xtend
+
+import org.eclipse.uml2.uml.Classifier
+import org.eclipse.uml2.uml.Class
+import org.eclipse.uml2.uml.DataType
+import org.eclipse.uml2.uml.Interface
+import org.eclipse.uml2.uml.Signal
+import org.eclipse.uml2.uml.Property
+import org.eclipse.papyrus.codegen.base.GenUtils
+import org.eclipse.papyrus.C_Cpp.Const
+import org.eclipse.papyrus.cpp.codegen.utils.Modifier
+import org.eclipse.papyrus.cpp.codegen.utils.CppGenUtils
+import org.eclipse.papyrus.C_Cpp.Mutable
+
+/**
+ * @author Önder GÜRCAN (onder.gurcan@cea.fr)
+ */
+class CppAttribute {
+
+ // Loop over attributes. Check that the attribute is not a static const.
+ // Constant static attributes are declared within the class declaration
+ static def CppStaticAttributes(Classifier classifier) {
+ var code = '''
+ // static attributes (if any)
+ «FOR ownedAttribute : getOwnedAttributes(classifier)»
+ «IF (ownedAttribute.isStatic)»
+ «CppStaticAttributeImplementation(ownedAttribute)»
+ «ENDIF»
+ «ENDFOR»
+ '''
+ return code
+ }
+
+ // return a list of owned attributes, empty set, if null
+ static def getOwnedAttributes(Classifier cl) {
+ val attributes = getOwnedAttributesWNull(cl)
+ if (attributes == null) {
+ emptySet
+ }
+ else {
+ attributes
+ }
+ }
+
+ // return a list of owned attributes, since this is not supported directly on a classifier
+ static def getOwnedAttributesWNull(Classifier cl) {
+ if (cl instanceof Class) {
+ (cl as Class).ownedAttributes
+ } else if (cl instanceof DataType) {
+ (cl as DataType).ownedAttributes
+ } else if (cl instanceof Interface) {
+ (cl as Interface).ownedAttributes
+ } else if (cl instanceof Signal) {
+ (cl as Signal).ownedAttributes
+ } else {
+ //Sequence{}
+ }
+ }
+
+ static def CppStaticAttributeImplementation(Property attribute) '''
+ «CppDocumentation.CppElementDoc(attribute)»
+ «Modifier.modCVQualifier(attribute)» «CppGenUtils.cppQualifiedName(attribute.type)»«Modifier.modPtr(attribute)»«Modifier.modRef(attribute)» «attribute.class_.name»::«attribute.name»«Modifier.modArray(attribute)»«defaultValue(attribute)»;
+ '''
+
+ static def defaultValue(Property attribute) {
+ if ((attribute.defaultValue != null) && attribute.isStatic) {
+ "=" + attribute.defaultValue.stringValue()
+ }
+ }
+
+ static def CppAttributeDeclaration(Property attribute) '''
+ «CppDocumentation.CppElementDoc(attribute)»
+ «staticValue(attribute)» «Modifier.modCVQualifier(attribute)»«CppGenUtils.cppQualifiedName(attribute.type)»«Modifier.
+ modPtr(attribute)»«Modifier.modRef(attribute)» «attribute.name»«Modifier.modArray(attribute)»;
+ '''
+
+ static def staticValue(Property attribute) {
+ if (attribute.isStatic) 'static'
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassAttributesDeclaration.xtend b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassAttributesDeclaration.xtend
new file mode 100644
index 00000000000..06990f4229b
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassAttributesDeclaration.xtend
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2014 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+ package org.eclipse.papyrus.cpp.codegen.xtend
+
+import org.eclipse.uml2.uml.Classifier
+import org.eclipse.uml2.uml.VisibilityKind
+
+/**
+ * @author Önder GÜRCAN (onder.gurcan@cea.fr)
+ */
+class CppClassAttributesDeclaration {
+ static def CppClassAttributesDeclaration(Classifier clazz, VisibilityKind visibilityFilter) '''
+ «FOR oa : CppAttribute.getOwnedAttributes(clazz).filter[it.visibility == visibilityFilter]»
+ «CppAttribute.CppAttributeDeclaration(oa)»
+ «ENDFOR»
+ '''
+} \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassFriendDeclaration.xtend b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassFriendDeclaration.xtend
new file mode 100644
index 00000000000..eafcc2b3cc7
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassFriendDeclaration.xtend
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2014 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+ package org.eclipse.papyrus.cpp.codegen.xtend
+
+import org.eclipse.uml2.uml.Classifier
+import org.eclipse.papyrus.cpp.codegen.utils.CppGenUtils
+import org.eclipse.papyrus.C_Cpp.Friend
+import org.eclipse.papyrus.C_Cpp.NoCodeGen
+import org.eclipse.papyrus.codegen.base.GenUtils
+
+/**
+ * @author Önder GÜRCAN (onder.gurcan@cea.fr)
+ */
+class CppClassFriendDeclaration {
+ static def CppClassFriendDeclaration(Classifier friend) '''
+ friend class «CppGenUtils.cppQualifiedName(friend)»
+ '''
+
+ static def CppClassIncludeFriendDeclaration(Classifier clazz) {
+ for (uc : GenUtils.getUsedClassifiers(clazz)) {
+ if (GenUtils.hasStereotype(uc, Friend) && (!GenUtils.hasStereotype(uc, NoCodeGen))) {
+ CppClassFriendDeclaration(uc)
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassIncludeClassDeclaration.xtend b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassIncludeClassDeclaration.xtend
new file mode 100644
index 00000000000..ab952f290cb
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassIncludeClassDeclaration.xtend
@@ -0,0 +1,69 @@
+package org.eclipse.papyrus.cpp.codegen.xtend
+
+/*******************************************************************************
+ * Copyright (c) 2014 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+ import org.eclipse.papyrus.C_Cpp.CppRoot
+import org.eclipse.uml2.uml.Package
+import org.eclipse.uml2.uml.Classifier
+import org.eclipse.emf.common.util.EList
+import org.eclipse.papyrus.C_Cpp.NoCodeGen
+import org.eclipse.papyrus.C_Cpp.External
+import org.eclipse.uml2.uml.Enumeration
+import org.eclipse.uml2.uml.PrimitiveType
+import java.util.List
+import java.util.ArrayList
+import org.eclipse.papyrus.cpp.codegen.utils.ClassUtils
+import org.eclipse.papyrus.codegen.base.GenUtils
+
+/**
+ * @author Önder GÜRCAN (onder.gurcan@cea.fr)
+ */
+class CppClassIncludeClassDeclaration {
+
+ static def cppOwnerPackageIncludePath(Package pkg) {
+ if ((pkg != null) && (!GenUtils.hasStereotype(pkg, CppRoot))) {
+ return GenUtils.getFullPath(pkg) + '/Pkg_' + pkg.name + '.h'
+ } else {
+ return null
+ }
+ }
+
+ static def CppClassAllIncludesDeclarationBody(Classifier classifier) {
+ cppClassAllIncludes(classifier, GenUtils.getTypesViaDependencies(classifier))
+ }
+
+ static def cppClassAllIncludes(Classifier classifier, EList<Classifier> list) {
+ var List<String> newList = new ArrayList<String>()
+ for (cl : list) {
+ //var String str = null
+ if ((cl != classifier) && (!GenUtils.hasStereotype(cl, NoCodeGen)) || (GenUtils.hasStereotype(cl, External))) {
+ if ((cl instanceof Enumeration) || (cl instanceof PrimitiveType)) {
+ if ((cl.owner != null) && (cl.owner instanceof Package)) {
+ var includePath = (cl.owner as Package).cppOwnerPackageIncludePath
+ if (!newList.contains(includePath)) newList.add(includePath)
+ } else {
+ //str = null
+ }
+ } else {
+ newList.addAll(CppClassIncludeDeclaration.cppClassIncludes(cl))
+ }
+ } else {
+ //str = null
+ }
+ }
+ return newList.filter[str | str != null]
+ }
+
+ static def CppClassAllIncludes(Classifier clazz) {
+ cppClassAllIncludes(clazz, ClassUtils.includedClassifiers(clazz))
+ }
+} \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassIncludeDeclaration.xtend b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassIncludeDeclaration.xtend
new file mode 100644
index 00000000000..a07a939e125
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassIncludeDeclaration.xtend
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2014 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+ package org.eclipse.papyrus.cpp.codegen.xtend
+
+import java.util.ArrayList
+import java.util.List
+import org.eclipse.papyrus.C_Cpp.ExternLibrary
+import org.eclipse.papyrus.C_Cpp.External
+import org.eclipse.papyrus.C_Cpp.Template
+import org.eclipse.papyrus.cpp.codegen.preferences.CppCodeGenUtils
+import org.eclipse.uml2.uml.NamedElement
+import org.eclipse.uml2.uml.util.UMLUtil
+import org.eclipse.papyrus.codegen.base.GenUtils
+
+/**
+ * @author Önder GÜRCAN (onder.gurcan@cea.fr)
+ */
+class CppClassIncludeDeclaration {
+
+ static def cppClassIncludes(NamedElement ne) {
+ var List<String> result = new ArrayList<String>()
+ if (GenUtils.hasStereotypeTree(ne, ExternLibrary)) {
+ result = GenUtils.getApplicationTree(ne, ExternLibrary).includes
+ } else {
+ result.add(includeName(ne))
+ }
+ return result
+ }
+
+ static def includeName(NamedElement ne) {
+ if (GenUtils.hasStereotypeTree(ne, Template)) {
+ return UMLUtil.getStereotypeApplication(ne, Template).declaration
+ } else {
+ if (GenUtils.hasStereotypeTree(ne, External)) {
+ return UMLUtil.getStereotypeApplication(ne, External).name
+ } else {
+ // standard case (no stereotypes are applied)
+ return GenUtils.getFullPath(ne.nearestPackage) + '/' + ne.name + '.' + CppCodeGenUtils.getHeaderSuffix()
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassInheritedDeclarations.xtend b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassInheritedDeclarations.xtend
new file mode 100644
index 00000000000..b6b81c0c5a9
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassInheritedDeclarations.xtend
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2014 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+ package org.eclipse.papyrus.cpp.codegen.xtend
+
+import org.eclipse.papyrus.C_Cpp.NoCodeGen
+import org.eclipse.papyrus.C_Cpp.Visibility
+import org.eclipse.uml2.uml.Classifier
+import org.eclipse.uml2.uml.Generalization
+import org.eclipse.uml2.uml.InterfaceRealization
+import org.eclipse.uml2.uml.Relationship
+import org.eclipse.uml2.uml.util.UMLUtil
+import org.eclipse.papyrus.cpp.codegen.utils.CppGenUtils
+import org.eclipse.papyrus.codegen.base.GenUtils
+
+/**
+ * @author Önder GÜRCAN (onder.gurcan@cea.fr)
+ */
+class CppClassInheritedDeclarations {
+
+ static def CppClassInheritedDeclarations(Classifier clazz) '''
+ «IF (filteredRelationships(clazz).length > 0)» : «ENDIF»
+ «FOR fr: filteredRelationships(clazz) SEPARATOR ', \n'»
+ «getCppVisibility(fr)» «CppGenUtils.cppQualifiedName(fr.targets.get(0) as Classifier)»«ENDFOR»
+ '''
+
+ //Return a list of relationships that are either Generalizations or InterfaceRealiazations
+ //and the target does not point to a classifier that has the no-code-gen Stereotype
+ //TODO: not sure if it makes sense NOT to declare an inheritance, since we do not generate code.
+ static def filteredRelationships(Classifier clazz) {
+ clazz.sourceDirectedRelationships.filter[((it instanceof Generalization) || (it instanceof InterfaceRealization)) &&
+ (it.targets.size > 0) && (!GenUtils.hasStereotype(it.targets.get(0), NoCodeGen))
+ ]
+ }
+
+ static def getCppVisibility(Relationship relationship) {
+ if (GenUtils.hasStereotype(relationship, Visibility)) {
+ (UMLUtil.getStereotypeApplication(relationship, Visibility) as Visibility).value
+ } else {
+ 'public'
+ }
+ }
+} \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassOperationsDeclaration.xtend b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassOperationsDeclaration.xtend
new file mode 100644
index 00000000000..e41bb495982
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassOperationsDeclaration.xtend
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2014 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+ package org.eclipse.papyrus.cpp.codegen.xtend
+
+import org.eclipse.uml2.uml.Classifier
+import org.eclipse.uml2.uml.OpaqueBehavior
+import org.eclipse.uml2.uml.VisibilityKind
+
+/**
+ * @author Önder GÜRCAN (onder.gurcan@cea.fr)
+ */
+class CppClassOperationsDeclaration {
+
+ static def CppClassOperationsDeclaration(Classifier clazz, VisibilityKind visibilityFilter) '''
+ «FOR op : CppOperations.getOwnedOperations(clazz).filter[it.visibility == visibilityFilter]»
+
+ «CppOperations.CppOperationDeclaration(op)»
+ «ENDFOR»
+ «FOR b : clazz.eAllContents.toList.filter(OpaqueBehavior).filter[it.visibility == visibilityFilter]»
+ «IF b.specification == null»
+
+ // opaque behavior without specification (typically from state machine)
+ «CppOperations.CppBehaviorDeclaration(b)»
+ «ENDIF»
+ «ENDFOR»
+ '''
+} \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassOperationsImplementation.xtend b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassOperationsImplementation.xtend
new file mode 100644
index 00000000000..091d40b4f93
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassOperationsImplementation.xtend
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2014 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+ package org.eclipse.papyrus.cpp.codegen.xtend
+
+import org.eclipse.uml2.uml.Classifier
+import org.eclipse.papyrus.C_Cpp.NoCodeGen
+import org.eclipse.uml2.uml.OpaqueBehavior
+import org.eclipse.papyrus.C_Cpp.Inline
+import org.eclipse.papyrus.codegen.base.GenUtils
+
+/**
+ * @author Önder GÜRCAN (onder.gurcan@cea.fr)
+ */
+class CppClassOperationsImplementation {
+
+ // implementations of a classifier, parameter controls whether only inline (or only not inline) operations
+ //are produced
+ static def CppClassOperationsImplementation(Classifier clazz, boolean inline) '''
+ «FOR ownedOperation : CppOperations.getOwnedOperations(clazz).filter[(!(GenUtils.hasStereotype(it, NoCodeGen) || it.isAbstract)) && (GenUtils.hasStereotype(it, org.eclipse.papyrus.C_Cpp.Inline) == inline)] SEPARATOR "\n"»
+ «CppOperations.CppOperationImplementation(ownedOperation)»
+ «ENDFOR»
+
+ «FOR nestedOperation : CppOperations.getNestedOperations(clazz).filter[(!(GenUtils.hasStereotype(it, NoCodeGen) || it.isAbstract)) && (GenUtils.hasStereotype(it, org.eclipse.papyrus.C_Cpp.Inline) == inline)] SEPARATOR "\n"»
+ «CppOperations.CppOperationImplementation(nestedOperation)»
+ «ENDFOR»
+
+ «FOR b : clazz.eAllContents.toIterable.filter[(it instanceof OpaqueBehavior) && GenUtils.hasStereotype((it as OpaqueBehavior), Inline)==inline]»
+ «IF (b as OpaqueBehavior).specification == null»
+ // opaque behavior without specification (typically from state machine)
+ «CppOperations.CppBehaviorImplementation(b as OpaqueBehavior)»
+ «ENDIF»
+ «ENDFOR»
+ '''
+
+} \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassTypeAndEnum.xtend b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassTypeAndEnum.xtend
new file mode 100644
index 00000000000..65b23596901
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassTypeAndEnum.xtend
@@ -0,0 +1,72 @@
+/*******************************************************************************
+ * Copyright (c) 2014 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+ package org.eclipse.papyrus.cpp.codegen.xtend
+
+import org.eclipse.papyrus.C_Cpp.NoCodeGen
+import org.eclipse.papyrus.cpp.codegen.utils.CppGenUtils
+import org.eclipse.uml2.uml.Classifier
+import org.eclipse.uml2.uml.Element
+import org.eclipse.uml2.uml.Enumeration
+import org.eclipse.uml2.uml.Namespace
+import org.eclipse.uml2.uml.Package
+import org.eclipse.uml2.uml.PrimitiveType
+import org.eclipse.uml2.uml.VisibilityKind
+import org.eclipse.papyrus.codegen.base.GenUtils
+import org.eclipse.uml2.uml.DataType
+import org.eclipse.uml2.uml.UMLFactory
+
+/**
+ * @author Önder GÜRCAN (onder.gurcan@cea.fr)
+ */
+class CppClassTypeAndEnum {
+
+ static def CppClassTypeAndEnum(Classifier clazz) '''
+ «var publicStr = TypesAndEnumsForVisibility(clazz, VisibilityKind.PUBLIC_LITERAL).toString»
+ «CppGenUtils.getSection(VisibilityKind.PUBLIC_LITERAL, publicStr)»
+ «var protectedStr = TypesAndEnumsForVisibility(clazz, VisibilityKind.PROTECTED_LITERAL).toString»
+ «CppGenUtils.getSection(VisibilityKind.PROTECTED_LITERAL, protectedStr)»
+ «var privateStr = TypesAndEnumsForVisibility(clazz, VisibilityKind.PRIVATE_LITERAL).toString»
+ «CppGenUtils.getSection(VisibilityKind.PRIVATE_LITERAL, privateStr)»
+ '''
+
+ static def CppClassTypeAndEnumPackage(Package pkg) {
+ TypesAndEnumsForVisibility(pkg, VisibilityKind.get(VisibilityKind.PACKAGE))
+ TypesAndEnumsForVisibility(pkg, VisibilityKind.get(VisibilityKind.PUBLIC))
+ }
+
+ static def TypesAndEnumsForVisibility(Namespace ne, VisibilityKind visibilityFilter) '''
+ «FOR ownedElement : ne.ownedElements»
+ «TypeAndEnumForVisibility(ownedElement, visibilityFilter)»
+ «ENDFOR»
+ '''
+
+ static def TypeAndEnumForVisibility(Element element, VisibilityKind visibilityFilter) {
+ if ((!GenUtils.hasStereotype(element, NoCodeGen)) && (element instanceof Classifier)) {
+ var elementVisibility = (element as Classifier).visibility
+ var value = elementVisibility.value
+ if ((value == visibilityFilter.value)) {
+ if (element instanceof Enumeration) {
+ return CppEnumerations.CppEnumerationDefinition(element as Enumeration)
+ } else if (element instanceof PrimitiveType) {
+ return CppPrimitiveTypes.CppPrimitiveTypeDefinition(element as PrimitiveType)
+ } else if ((element instanceof DataType || element.eClass.equals(UMLFactory.eINSTANCE.getUMLPackage().getClass_())) && !(element.owner instanceof Package)) {
+ if (GenUtils.isTemplateBoundElement(element as Classifier)) {
+ return CppInnerClassifiers.CppInnerBindDefinition(element as Classifier)
+ } else {
+ return CppInnerClassifiers.CppInnerClassDefinition(element as Classifier)
+ }
+
+ }
+ }
+ }
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassifierGenerator.xtend b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassifierGenerator.xtend
new file mode 100644
index 00000000000..41af9c68a4b
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassifierGenerator.xtend
@@ -0,0 +1,253 @@
+/*******************************************************************************
+ * Copyright (c) 2014 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+ package org.eclipse.papyrus.cpp.codegen.xtend
+
+import org.eclipse.papyrus.C_Cpp.Union
+import org.eclipse.papyrus.codegen.base.GenUtils
+import org.eclipse.papyrus.cpp.codegen.preferences.CppCodeGenUtils
+import org.eclipse.papyrus.cpp.codegen.utils.CppGenUtils
+import org.eclipse.uml2.uml.Classifier
+import org.eclipse.uml2.uml.DataType
+import org.eclipse.uml2.uml.NamedElement
+import org.eclipse.uml2.uml.VisibilityKind
+import org.eclipse.uml2.uml.profile.standard.Create
+
+/**
+ * @author Ansgar Radermacher (ansgar.radermacher@cea.fr)
+ */
+class CppClassifierGenerator {
+
+ static def generateBindHeaderCode(Classifier classifier) '''
+ #ifndef «GenUtils.getFullNameUC(classifier)»_H
+ #define «GenUtils.getFullNameUC(classifier)»_H
+
+ /************************************************************
+ «classifier.name» template binding header
+ ************************************************************/
+
+ «CppIncludeUtil.includeDirective(CppClassIncludeClassDeclaration.cppOwnerPackageIncludePath(classifier.package))»
+
+ «FOR path : getSortedIncludePathList(classifier)»
+ «CppIncludeUtil.includeDirective(path)»
+ «ENDFOR»
+
+ «CppIncludeUtil.CppIncludeHeader(classifier)»
+
+ «var tb = GenUtils.getTemplateBinding(classifier)»
+ «var templateElement = tb.targets.get(0)»
+ «CppIncludeUtil.includeDirective(
+ GenUtils.getFullPath(classifier.package) + '/' + (templateElement.owner as NamedElement).name + '.' +
+ CppCodeGenUtils.getHeaderSuffix())»
+
+ «CppGenUtils.openNS(classifier)»
+ /************************************************************/
+ typedef «(templateElement.owner as NamedElement).name»<«FOR ps : tb.parameterSubstitutions SEPARATOR ', '»«
+ CppTemplates.CppTemplateBindingParameter(ps)»«ENDFOR»> «classifier.name»;
+
+ «CppGenUtils.closeNS(classifier)»
+
+ /************************************************************
+ End of «classifier.name» template binding header
+ ************************************************************/
+
+ #endif
+ '''
+
+ static def getSortedIncludePathList(Classifier classifier) {
+ var includePathList = CppClassIncludeClassDeclaration.CppClassAllIncludes(classifier).sort;
+ return includePathList
+ }
+
+ static def generateBindBodyCode(Classifier classifier) '''
+ #define «GenUtils.getFullNameUC(classifier)»_BODY
+
+ /************************************************************
+ «classifier.name» template binding body
+ ************************************************************/
+
+ «CppIncludeUtil.CppIncludePreBody(classifier)»
+
+ // include associated header file
+ «CppIncludeUtil.includeDirective(
+ GenUtils.getFullPath(classifier.package) + '/' + classifier.name + '.' + CppCodeGenUtils.getHeaderSuffix())»
+
+ «CppIncludeUtil.CppIncludeBody(classifier)»
+
+ «CppGenUtils.openNS(classifier)»
+
+ // Derived includes directives
+ «FOR path : CppClassIncludeClassDeclaration.CppClassAllIncludes(classifier).sort»
+ «CppIncludeUtil.includeDirective(path)»
+ «ENDFOR»
+
+ /************************************************************/
+ «var tb = GenUtils.getTemplateBinding(classifier)»
+ «var templateElement = tb.targets.get(0)»
+ template class «(templateElement.owner as NamedElement).name»<«FOR ps : tb.parameterSubstitutions SEPARATOR ', '»«
+ CppTemplates.CppTemplateBindingParameter(ps)»«ENDFOR»>;
+
+ «CppGenUtils.closeNS(classifier)»
+
+ /************************************************************
+ End of «classifier.name» template binding body
+ ************************************************************/
+ '''
+
+ static def generateClassHeaderCode(Classifier classifier) '''
+ #ifndef «GenUtils.getFullNameUC(classifier)»_H
+ #define «GenUtils.getFullNameUC(classifier)»_H
+
+ /************************************************************
+ «classifier.name» class header
+ ************************************************************/
+
+ «CppIncludeUtil.includeDirective(CppClassIncludeClassDeclaration.cppOwnerPackageIncludePath(classifier.package))»
+
+ «FOR path : getSortedIncludePathList(classifier)»
+ «CppIncludeUtil.includeDirective(path)»
+ «ENDFOR»
+
+ «CppIncludeUtil.CppIncludeHeader(classifier)»
+
+ «CppGenUtils.openNS(classifier)»
+
+ /************************************************************/
+ «CppDocumentation.CppElementDoc(classifier)»
+ «CppTemplates.templateSignature(classifier)»«classUnionOrStruct(classifier)» «classifier.name»«CppClassInheritedDeclarations.
+ CppClassInheritedDeclarations(classifier)» {
+ «CppClassFriendDeclaration.CppClassIncludeFriendDeclaration(classifier)»«CppClassTypeAndEnum.CppClassTypeAndEnum(classifier)»
+ «var publicVisibility = VisibilityKind.PUBLIC_LITERAL»
+ «CppGenUtils.getSection(publicVisibility, defaultInitializer(classifier))»
+ «CppGenUtils.getSection(publicVisibility,
+ CppClassAttributesDeclaration.CppClassAttributesDeclaration(classifier, publicVisibility).toString)»
+ «CppGenUtils.getSection(publicVisibility,
+ CppClassOperationsDeclaration.CppClassOperationsDeclaration(classifier, publicVisibility).toString)»
+
+ «var protectedVisibility = VisibilityKind.PROTECTED_LITERAL»
+ «CppGenUtils.getSection(protectedVisibility,
+ CppClassAttributesDeclaration.CppClassAttributesDeclaration(classifier, protectedVisibility).toString)»
+ «CppGenUtils.getSection(protectedVisibility,
+ CppClassOperationsDeclaration.CppClassOperationsDeclaration(classifier, protectedVisibility).toString)»
+
+ «var privateVisibility = VisibilityKind.PRIVATE_LITERAL»
+ «CppGenUtils.getSection(privateVisibility,
+ CppClassAttributesDeclaration.CppClassAttributesDeclaration(classifier, privateVisibility).toString)»
+ «CppGenUtils.getSection(privateVisibility,
+ CppClassOperationsDeclaration.CppClassOperationsDeclaration(classifier, privateVisibility).toString)»
+ };
+ /************************************************************/
+ /* External declarations (package visibility) */
+ «var packageVisibility = VisibilityKind.PACKAGE_LITERAL»
+ «CppClassAttributesDeclaration.CppClassAttributesDeclaration(classifier, packageVisibility)»
+ «CppClassOperationsDeclaration.CppClassOperationsDeclaration(classifier, packageVisibility)»
+ /************************************************************/
+
+ «IF CppTemplates.isTemplate(classifier)»
+ /************************************************************/
+ /* Template functions */
+ «CppClassOperationsImplementation.CppClassOperationsImplementation(classifier, false)»
+ «ENDIF»
+
+ /* Inline functions */
+ «CppClassOperationsImplementation.CppClassOperationsImplementation(classifier, true)»
+ «CppGenUtils.closeNS(classifier)»
+
+ /************************************************************
+ End of «classifier.name» class header
+ ************************************************************/
+
+ #endif
+ '''
+
+ static def classUnionOrStruct(Classifier classifier) {
+ if (GenUtils.hasStereotype(classifier, Union)) {
+ return 'union'
+ } else {
+ if (classifier instanceof DataType) {
+ CppGenUtils.resetVisibility(VisibilityKind.PUBLIC_LITERAL)
+ return 'struct'
+ } else {
+ CppGenUtils.resetVisibility(VisibilityKind.PRIVATE_LITERAL)
+ return 'class'
+ }
+ }
+ }
+
+ /**
+ * 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
+ */
+ static def defaultInitializer(Classifier classifier) {
+
+ /* Bug 422373: The default initializer should not be generated if there are any user-defined
+ constructors. In plain C++ code, the existence of a constructor with parameters
+ means that the compiler will not synthesize a default one.
+
+ E.g., this would be invalid in plain C++ code:
+ class T1 { };
+ class T2 { public: T(int); };
+ T1 * t1 = new T1; // OK, sythesized default constructor used
+ T2 * t2a = new T2(5); // OK, user-defined constructor used
+ T2 * t2b = new T2; // ERROR, default constructor was not synthesized
+
+ Also, if the user has provided a default constructor in the code, we don't need
+ to generate a second copy here. A default constructor should only be generated
+ here if the compiler would have synthesized one anyhow. Otherwise the default
+ property values should be set in the constructors that are generated by
+ CppClassOperationsDeclaration.
+ */
+ var code = '''
+ «IF CppOperations.getOwnedOperations(classifier).filter[GenUtils.hasStereotype(it, Create)].empty»
+ «var attributeList = classifier.attributes.filter[
+ (it.isStatic == false) && (it.defaultValue != null) && (it.defaultValue.stringValue != null)]»
+ «IF !attributeList.empty»
+ «classifier.name»() : «FOR a : attributeList SEPARATOR ', '»«a.name»(«a.defaultValue.stringValue»)«ENDFOR» {}
+ «ENDIF»
+ «ENDIF»'''
+ return code.trim
+ }
+
+ static def generateClassBodyCode(Classifier classifier) '''
+ #define «GenUtils.getFullName(classifier)»_BODY
+
+ /************************************************************
+ «classifier.name» class body
+ ************************************************************/
+
+ «CppIncludeUtil.CppIncludePreBody(classifier)»
+
+ // include associated header file
+ «CppIncludeUtil.includeDirective(
+ GenUtils.getFullPath(classifier.nearestPackage) + '/' + classifier.name + '.' +
+ CppCodeGenUtils.getHeaderSuffix())»
+
+ // Derived includes directives
+ «FOR path : CppClassIncludeClassDeclaration.CppClassAllIncludesDeclarationBody(classifier).sort»
+ «CppIncludeUtil.includeDirective(path)»
+ «ENDFOR»
+
+ «CppIncludeUtil.CppIncludeBody(classifier)»
+
+ «CppGenUtils.openNS(classifier)»
+
+ «CppAttribute.CppStaticAttributes(classifier)»
+
+ «IF !classifier.isTemplate»
+ «CppClassOperationsImplementation.CppClassOperationsImplementation(classifier, false)»
+ «ENDIF»
+
+ «CppGenUtils.closeNS(classifier)»
+
+ /************************************************************
+ End of «classifier.name» class body
+ ************************************************************/
+ '''
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppDocumentation.xtend b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppDocumentation.xtend
new file mode 100644
index 00000000000..de7dcd05ec5
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppDocumentation.xtend
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (c) 2014 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+ package org.eclipse.papyrus.cpp.codegen.xtend
+
+import org.eclipse.uml2.uml.Element
+import org.eclipse.uml2.uml.Operation
+import org.eclipse.uml2.uml.Parameter
+import org.eclipse.uml2.uml.Behavior
+import org.eclipse.uml2.uml.ParameterDirectionKind
+import org.eclipse.papyrus.codegen.base.GenUtils
+
+/**
+ * @author Önder GÜRCAN (onder.gurcan@cea.fr)
+ */
+class CppDocumentation {
+ static def CppElementDoc(Element argument) '''
+ /**
+ * «GenUtils.getComments(argument).replaceAll('\n', '\n * ')»
+ */
+ '''
+
+ static def CppOperationDoc(Operation operation) '''
+ /**
+ * «GenUtils.getComments(operation).replaceAll('\n', '\n * ')»
+ «FOR op: operation.ownedParameters»«CppParamDoc(op)»«ENDFOR»
+ */
+ '''
+
+ static def CppParamDoc(Parameter parameter) '''
+ * «IF (parameter.direction == ParameterDirectionKind.RETURN_LITERAL)
+ »@return«ELSE»@param«ENDIF» «parameter.name» «GenUtils.getComments(parameter).replaceAll('\n', '\n * ')»
+ '''
+
+ static def CppBehaviorDoc(Behavior behavior) '''
+ /**
+ * «GenUtils.getComments(behavior).replaceAll('\n', '\n * ')»
+ * «FOR op : behavior.ownedParameters»«CppParamDoc(op)»«ENDFOR»
+ */
+ '''
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppEnumerations.xtend b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppEnumerations.xtend
new file mode 100644
index 00000000000..7ab2661f252
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppEnumerations.xtend
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2014 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+ package org.eclipse.papyrus.cpp.codegen.xtend
+
+import org.eclipse.uml2.uml.Enumeration
+import org.eclipse.papyrus.C_Cpp.CppInit
+import org.eclipse.uml2.uml.util.UMLUtil
+import org.eclipse.papyrus.codegen.base.GenUtils
+
+/**
+ * @author Önder GÜRCAN (onder.gurcan@cea.fr)
+ */
+class CppEnumerations {
+ static def CppEnumerationDefinition(Enumeration enumeration) '''
+ «CppDocumentation.CppElementDoc(enumeration)»
+ enum «enumeration.name» {
+ «FOR ownedLiteral : enumeration.ownedLiterals»
+ «CppDocumentation.CppElementDoc(ownedLiteral)»
+ «ownedLiteral.name»«IF GenUtils.hasStereotype(ownedLiteral, CppInit)»«UMLUtil.
+ getStereotypeApplication(ownedLiteral, CppInit).value»«ENDIF»,
+ «ENDFOR»
+ };
+ '''
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppIncludeUtil.xtend b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppIncludeUtil.xtend
new file mode 100644
index 00000000000..c8623883fe1
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppIncludeUtil.xtend
@@ -0,0 +1,86 @@
+package org.eclipse.papyrus.cpp.codegen.xtend
+
+/*******************************************************************************
+ * Copyright (c) 2014 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+ import org.eclipse.uml2.uml.NamedElement
+import org.eclipse.papyrus.C_Cpp.Include
+import org.eclipse.uml2.uml.util.UMLUtil
+import org.eclipse.papyrus.codegen.base.GenUtils
+
+/**
+ * @author Önder GÜRCAN (onder.gurcan@cea.fr)
+ */
+class CppIncludeUtil {
+ static def includeDirective(String path) {
+ if ((path != null) && (path.length > 0))
+ return '''#include ''' + '"' + path + '"'
+ }
+
+ static def CppIncludeHeader(NamedElement ne) {
+ if (GenUtils.hasStereotype(ne, Include)) {
+ UMLUtil.getStereotypeApplication(ne, Include)
+ var header = UMLUtil.getStereotypeApplication(ne, Include).header
+ if ((header != null) && (header.length > 0)) {
+ var includeHeader = constIncludeHeaderStart + GenUtils.cleanCR(header) + '\n' +
+ constIncludeHeaderEnd
+ return includeHeader
+ }
+ }
+ }
+
+ static def constIncludeHeaderStart() '''
+ // Include from Include stereotype (header)
+ '''
+
+ static def constIncludeHeaderEnd() '''
+ // End of Include stereotype (header)
+ '''
+
+ static def CppIncludePreBody(NamedElement ne) {
+ if (GenUtils.hasStereotype(ne, Include)) {
+ var String preBody = UMLUtil.getStereotypeApplication(ne, Include).preBody
+ if ((preBody != null) && (preBody.length > 0)) {
+ var includePreBody = constIncludePreBodyStart + GenUtils.cleanCR(preBody) + '\n' +
+ constIncludePreBodyEnd
+ return includePreBody
+ }
+ }
+ }
+
+ static def constIncludePreBodyStart() '''
+ // Include from Include stereotype (pre-body)
+ '''
+
+ static def constIncludePreBodyEnd() '''
+ // End of Include stereotype (pre-body)
+ '''
+
+ static def CppIncludeBody(NamedElement ne) {
+ if (GenUtils.hasStereotype(ne, Include)) {
+ var String body = UMLUtil.getStereotypeApplication(ne, Include).body
+ if ((body != null) && (body.length > 0)) {
+ var includeBody = constIncludeBodyStart + GenUtils.cleanCR(body) + '\n' +
+ constIncludeBodyEnd
+ return includeBody
+ }
+ }
+ }
+
+ static def constIncludeBodyStart() '''
+ // Include from Include declaration (body)
+ '''
+
+ static def constIncludeBodyEnd() '''
+ // End of Include declaration (body)
+ '''
+
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppInnerClassifiers.xtend b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppInnerClassifiers.xtend
new file mode 100644
index 00000000000..78938c09623
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppInnerClassifiers.xtend
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.cpp.codegen.xtend
+
+import org.eclipse.uml2.uml.Classifier
+import org.eclipse.papyrus.cpp.codegen.utils.CppGenUtils
+import org.eclipse.uml2.uml.VisibilityKind
+import org.eclipse.papyrus.codegen.base.GenUtils
+import org.eclipse.uml2.uml.NamedElement
+
+/**
+ * @author Shuai Li (CEA) <shuai.li@cea.fr>
+ */
+
+class CppInnerClassifiers {
+ static def CppInnerClassDefinition(Classifier classifier) '''
+ «CppDocumentation.CppElementDoc(classifier)»
+ «CppTemplates.templateSignature(classifier)»«CppClassifierGenerator.classUnionOrStruct(classifier)» «classifier.name»«CppClassInheritedDeclarations.
+ CppClassInheritedDeclarations(classifier)» {
+ «CppClassFriendDeclaration.CppClassIncludeFriendDeclaration(classifier)»«CppClassTypeAndEnum.CppClassTypeAndEnum(classifier)»
+ «var publicVisibility = VisibilityKind.PUBLIC_LITERAL»
+ «CppGenUtils.getSection(publicVisibility, CppClassifierGenerator.defaultInitializer(classifier))»
+ «CppGenUtils.getSection(publicVisibility,
+ CppClassAttributesDeclaration.CppClassAttributesDeclaration(classifier, publicVisibility).toString)»
+ «CppGenUtils.getSection(publicVisibility,
+ CppClassOperationsDeclaration.CppClassOperationsDeclaration(classifier, publicVisibility).toString)»
+
+ «var protectedVisibility = VisibilityKind.PROTECTED_LITERAL»
+ «CppGenUtils.getSection(protectedVisibility,
+ CppClassAttributesDeclaration.CppClassAttributesDeclaration(classifier, protectedVisibility).toString)»
+ «CppGenUtils.getSection(protectedVisibility,
+ CppClassOperationsDeclaration.CppClassOperationsDeclaration(classifier, protectedVisibility).toString)»
+
+ «var privateVisibility = VisibilityKind.PRIVATE_LITERAL»
+ «CppGenUtils.getSection(privateVisibility,
+ CppClassAttributesDeclaration.CppClassAttributesDeclaration(classifier, privateVisibility).toString)»
+ «CppGenUtils.getSection(privateVisibility,
+ CppClassOperationsDeclaration.CppClassOperationsDeclaration(classifier, privateVisibility).toString)»
+ };
+ '''
+
+ static def CppInnerBindDefinition(Classifier classifier) '''
+ «var tb = GenUtils.getTemplateBinding(classifier)»
+ «var templateElement = tb.targets.get(0)»
+ /************************************************************/
+ typedef «(templateElement.owner as NamedElement).name»<«FOR ps : tb.parameterSubstitutions SEPARATOR ', '»«
+ CppTemplates.CppTemplateBindingParameter(ps)»«ENDFOR»> «classifier.name»;
+ '''
+} \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppOperations.xtend b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppOperations.xtend
new file mode 100644
index 00000000000..557bd5b1c90
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppOperations.xtend
@@ -0,0 +1,204 @@
+package org.eclipse.papyrus.cpp.codegen.xtend
+
+/*******************************************************************************
+ * Copyright (c) 2014 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+ import org.eclipse.papyrus.C_Cpp.Inline
+import org.eclipse.papyrus.C_Cpp.Virtual
+import org.eclipse.papyrus.cpp.codegen.utils.CppGenUtils
+import org.eclipse.papyrus.cpp.codegen.utils.Modifier
+import org.eclipse.uml2.uml.Behavior
+import org.eclipse.uml2.uml.Class
+import org.eclipse.uml2.uml.Classifier
+import org.eclipse.uml2.uml.DataType
+import org.eclipse.uml2.uml.Element
+import org.eclipse.uml2.uml.Interface
+import org.eclipse.uml2.uml.OpaqueBehavior
+import org.eclipse.uml2.uml.Operation
+import org.eclipse.uml2.uml.profile.standard.Create
+import org.eclipse.uml2.uml.profile.standard.Destroy
+import org.eclipse.papyrus.C_Cpp.ConstInit
+import org.eclipse.uml2.uml.util.UMLUtil
+import org.eclipse.papyrus.cpp.codegen.Constants
+import org.eclipse.uml2.uml.NamedElement
+import org.eclipse.uml2.uml.Region
+import org.eclipse.papyrus.cpp.codegen.utils.ClassUtils
+import org.eclipse.papyrus.codegen.base.GenUtils
+import org.eclipse.papyrus.C_Cpp.Variadic
+import org.eclipse.uml2.uml.ParameterDirectionKind
+
+class CppOperations {
+ static def CppOperationImplementation(Operation operation) '''
+ «CppDocumentation.CppOperationDoc(operation)»
+ «IF (operation.name == 'main')»
+ «CppReturnSpec(operation)»«operation.name»(«CppParameter.CppOperationParameters(operation,false)») {
+ «GenUtils.getBody(operation, Constants.supportedLanguages)»
+ }
+ «ELSE»
+ «CppTemplates.templateSignature(operation)»«InlineTxt(operation)»«CppReturnSpec(operation)»«GenUtils.getNestedOperationFarthestClassifierOwnerNamespace(operation)»«CppTemplates.templateShortSignature(operation)»::«destructor(operation)»«operation.name»(«CppParameter.CppOperationParameters(operation, false)»«variadicParameter(operation)»)«throwss(operation)»«Modifier.modCVQualifier(operation)»«CppConstInit(operation)» {
+ «GenUtils.getBody(operation, Constants.supportedLanguages)»
+ }
+ «ENDIF»
+ '''
+
+ static def CppReturnSpec(Operation operation) {
+ if ((operation.type == null) || isConsOrDestructor(operation)) {
+ ConsDestructorOrVoid(operation)
+ } else {
+ Modifier.modCVQualifier(operation.getReturnResult())+' '+CppGenUtils.cppQualifiedName(operation.type)+Modifier.modPtr(operation.getReturnResult())+Modifier.modRef(operation.getReturnResult())+' '
+ }
+ }
+
+ static def CppReturnSpec(Behavior behavior) '''
+ «IF (GenUtils.returnResult(behavior) == null)»void «ELSE»«Modifier.modCVQualifier(GenUtils.returnResult(behavior))» «CppGenUtils.cppQualifiedName(GenUtils.returnResult(behavior).type)»«Modifier.modPtr(GenUtils.returnResult(behavior))»«Modifier.modRef(GenUtils.returnResult(behavior))» «ENDIF»
+ '''
+
+ static def throwss(Operation operation) '''
+ «IF operation.raisedExceptions.length > 0»
+ throws «FOR re : operation.raisedExceptions SEPARATOR ','»«re.name»«ENDFOR»
+ «ENDIF»
+ '''
+
+ static def ConsDestructorOrVoid(Operation operation) {
+ if (isConsOrDestructor(operation)) {
+
+ } else {
+ 'void '
+ }
+ }
+
+ static def isConsOrDestructor(Operation operation) {
+ GenUtils.hasStereotype(operation, Create) || GenUtils.hasStereotype(operation, Destroy)
+ }
+
+ static def CppConstInit(Operation operation) {
+ if (GenUtils.hasStereotype(operation, ConstInit) && GenUtils.hasStereotype(operation, Create)) {
+ ": " + UMLUtil.getStereotypeApplication(operation, ConstInit).initialisation
+ }
+ }
+
+ // return a list of owned operations, return emptyset, if null
+ static def getOwnedOperations(Classifier cl) {
+ val operations = getOwnedOperationsWNull(cl)
+ if (operations == null) {
+ emptySet
+ }
+ else {
+ operations
+ }
+ }
+
+ // return a list of owned operations, since this is not supported directly on a classifier
+ static def getOwnedOperationsWNull(Classifier cl) {
+ if (cl instanceof Class) {
+ (cl as Class).ownedOperations
+ } else {
+ if (cl instanceof DataType) {
+ (cl as DataType).ownedOperations
+ } else {
+ if (cl instanceof Interface) {
+ (cl as Interface).ownedOperations
+ } else {
+ // Sequence{}
+ }
+ }
+ }
+ }
+
+ static def getNestedOperations(Classifier c1) {
+ val operations = getNestedOperationsWNull(c1)
+ if (operations == null) {
+ emptySet
+ }
+ else {
+ operations
+ }
+ }
+
+ static def getNestedOperationsWNull(Classifier cl) {
+ if (cl instanceof Class || cl instanceof Interface) {
+ ClassUtils.nestedOperations(cl)
+ }
+ }
+
+ static def CppBehaviorImplementation(OpaqueBehavior behavior) '''
+ «CppDocumentation.CppBehaviorDoc(behavior)»
+ «CppReturnSpec(behavior)»«GenUtils.getNestedBehaviorFarthestClassifierOwnerNamespace(behavior)»::«behavior.qualifiedBehaviorName»(«CppParameter.CppBehaviorParameters(behavior, false)»)«Modifier.modCVQualifier(behavior)» {
+ «GenUtils.getBodyFromOB(behavior, Constants.supportedLanguages)»
+ }
+ '''
+
+ static def CppOperationDeclaration(Operation operation) '''
+ «CppDocumentation.CppOperationDoc(operation)»
+ «InlineTxt(operation)»«virtualTxt(operation)»«staticTxt(operation)»«CppReturnSpec(operation)»«destructor(operation)»«operation.name»(«CppParameter.CppOperationParameters(operation,true)»«variadicParameter(operation)»)«Modifier.modCVQualifier(operation)»«virtualSuffix(operation)»;
+ '''
+
+ static def InlineTxt(Element element) {
+ if (GenUtils.hasStereotype(element, Inline)) 'inline '
+ }
+
+ static def virtualTxt(Operation operation) {
+ if ((operation.interface != null) || (operation.isAbstract) || (GenUtils.hasStereotype(operation, Virtual))) 'virtual '
+ }
+
+ static def staticTxt(Operation operation) {
+ if (operation.isStatic) 'static '
+ }
+
+ static def destructor(Operation operation) {
+ if (GenUtils.hasStereotype(operation, Destroy) && (!operation.name.startsWith('~'))) {
+ '~'
+ } else {
+ ''
+ }
+ }
+
+ static def public virtualSuffix(Operation operation) {
+ if ((operation.interface != null) || (operation.isAbstract)) ' = 0'
+ }
+
+ static def CppBehaviorDeclaration(Behavior behavior) '''
+ «CppDocumentation.CppBehaviorDoc(behavior)»
+ «InlineTxt(behavior)»«CppReturnSpec(behavior)»«behavior.qualifiedBehaviorName»(«CppParameter.CppBehaviorParameters(behavior, true)»)«Modifier.modCVQualifier(behavior)»;
+ '''
+
+ static def qualifiedBehaviorName(Behavior behavior) {
+ var ne = behavior as NamedElement
+ var name = behavior.name
+ while ((ne != null) && !(ne instanceof Classifier) || (ne instanceof Behavior)) {
+ if (ne.owner instanceof NamedElement) {
+ ne = ne.owner as NamedElement
+ }
+ if (ne.owner instanceof Region) {
+ name = ne.name + "_" + name
+ }
+ }
+ return name
+ }
+
+ static def variadicParameter(Operation operation) {
+ var hasParameters = false;
+ var i = 0;
+ if (GenUtils.hasStereotype(operation, Variadic)) {
+ while (i < operation.ownedParameters.size && !hasParameters) {
+ if (operation.ownedParameters.get(i).direction != ParameterDirectionKind.RETURN_LITERAL) {
+ hasParameters = true;
+ }
+ }
+
+ if (hasParameters) {
+ ', ...'
+ } else {
+ '...'
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppPackageHeaderGenerator.xtend b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppPackageHeaderGenerator.xtend
new file mode 100644
index 00000000000..4698312f2b8
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppPackageHeaderGenerator.xtend
@@ -0,0 +1,64 @@
+package org.eclipse.papyrus.cpp.codegen.xtend
+
+/*******************************************************************************
+ * Copyright (c) 2014 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+import org.eclipse.papyrus.cpp.codegen.preferences.CppCodeGenUtils
+import org.eclipse.papyrus.cpp.codegen.utils.CppGenUtils
+import org.eclipse.uml2.uml.Package
+import org.eclipse.papyrus.codegen.base.GenUtils
+
+/**
+ * @author Önder GÜRCAN (onder.gurcan@cea.fr)
+ */
+class CppPackageHeaderGenerator {
+
+ static def generateCode(Package pkg) '''
+ #ifndef PKG_«GenUtils.getFullNameUC(pkg)»
+ #define PKG_«GenUtils.getFullNameUC(pkg)»
+
+ /************************************************************
+ Pkg_«pkg.name» package header
+ ************************************************************/
+
+ «CppIncludeUtil.includeDirective(CppClassIncludeClassDeclaration.cppOwnerPackageIncludePath(pkg.nestingPackage))»
+
+ #ifndef _IN_
+ #define _IN_
+ #endif
+ #ifndef _OUT_
+ #define _OUT_
+ #endif
+ #ifndef _INOUT_
+ #define _INOUT_
+ #endif
+
+
+ /* Package dependency header include */
+ «FOR p: GenUtils.getUsedPackages(pkg)»
+ «var path = GenUtils.getFullPath(p) + "/Pkg_"+ p.name + "." + CppCodeGenUtils.getHeaderSuffix»
+ «CppIncludeUtil.includeDirective(path)»
+ «ENDFOR»
+
+ «CppIncludeUtil.CppIncludeHeader(pkg)»
+ «CppGenUtils.openNS(pkg)»
+
+ // Types defined within the package
+ «CppClassTypeAndEnum.CppClassTypeAndEnumPackage(pkg)»
+ «CppGenUtils.closeNS(pkg)»
+
+ /************************************************************
+ End of Pkg_«pkg.name» package header
+ ************************************************************/
+
+ #endif
+ '''
+} \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppParameter.xtend b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppParameter.xtend
new file mode 100644
index 00000000000..160265df9b8
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppParameter.xtend
@@ -0,0 +1,62 @@
+/*******************************************************************************
+ * Copyright (c) 2014 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+ package org.eclipse.papyrus.cpp.codegen.xtend
+
+import org.eclipse.uml2.uml.Operation
+import org.eclipse.uml2.uml.Parameter
+import org.eclipse.papyrus.cpp.codegen.utils.Modifier
+import org.eclipse.papyrus.cpp.codegen.utils.CppGenUtils
+import org.eclipse.uml2.uml.ParameterDirectionKind
+import org.eclipse.uml2.uml.Behavior
+import org.eclipse.papyrus.C_Cpp.Array
+import org.eclipse.uml2.uml.util.UMLUtil
+
+/**
+ * @author Önder GÜRCAN (onder.gurcan@cea.fr)
+ */
+class CppParameter {
+
+ static def CppOperationParameters(Operation operation, boolean showDefault) '''
+ «FOR ownedParameter : operation.ownedParameters.filter[it.direction != ParameterDirectionKind.RETURN_LITERAL] SEPARATOR ', '»«CppParameter(ownedParameter, showDefault)»«ENDFOR»'''
+
+ /**
+ * comment signature for a given behavior (e.g. effect within state machine)
+ */
+ static def CppBehaviorParameters(Behavior behavior, boolean showDefault) '''
+ «FOR ownedParameter : behavior.ownedParameters.filter[it.direction != ParameterDirectionKind.RETURN_LITERAL] SEPARATOR ', '»«CppParameter(ownedParameter, showDefault)»«ENDFOR»
+ '''
+
+ /**
+ * C++ parameter. Default values are added, if parameter showDefault is true (implementation signature
+ */
+ static def CppParameter(Parameter parameter, boolean showDefault) {
+ Modifier.modCVQualifier(parameter) + Modifier.modSCQualifier(parameter) + CppGenUtils.cppQualifiedName(parameter.type) +
+ Modifier.modPtr(parameter) + Modifier.modRef(parameter) + Modifier.dirInfo(parameter) + " " + parameter.name +
+ Modifier.modArray(parameter) + {if (showDefault) defaultValue(parameter) else ""}
+ }
+
+ /**
+ * CppParameterCalculation for CDT
+ */
+ static def CppParameterForCDT(Parameter parameter) {
+ var paramStr = Modifier.modCVQualifier(parameter) + Modifier.modSCQualifier(parameter) + CppGenUtils.cppQualifiedName(parameter.type) +
+ Modifier.modPtr(parameter) + Modifier.modRef(parameter)
+ if (UMLUtil.getStereotypeApplication(parameter, Array) != null) {
+ paramStr += "[]"
+ }
+ return paramStr
+ }
+
+ static def defaultValue(Parameter parameter) {
+ if (parameter.defaultValue != null) " = " + parameter.defaultValue.stringValue() else ""
+ }
+} \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppPrimitiveTypes.xtend b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppPrimitiveTypes.xtend
new file mode 100644
index 00000000000..46fcb612a72
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppPrimitiveTypes.xtend
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (c) 2014 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+ package org.eclipse.papyrus.cpp.codegen.xtend
+
+import org.eclipse.uml2.uml.PrimitiveType
+import org.eclipse.papyrus.C_Cpp.Typedef
+import org.eclipse.papyrus.cpp.codegen.utils.CppGenUtils
+import org.eclipse.uml2.uml.util.UMLUtil
+import org.eclipse.papyrus.codegen.base.GenUtils
+
+/**
+ * @author Önder GÜRCAN (onder.gurcan@cea.fr)
+ */
+class CppPrimitiveTypes {
+
+ /** Support two different kinds of primitive types
+ * (1) those that are native types of the programming language such as long
+ * For these, no additional definition has to be done and they should be referenced
+ * with their name only
+ * (2) those that correspond to a typedef (e.g. typedef long ErrorType). These require
+ * a typedef definition within the package and need to be referenced with their
+ * fully qualified name (e.g. MyPackage::ErrorType)
+ * (3) Sometimes the name of the type defined by a typedef does not appear at the end, e.g.
+ * when defining functionPointers such as "typedef int (*HandlerFct) (void*);"
+ * (a function with a void* argument returning int)
+ * Support this case via a specific 'typeName' constant that gets replaced by the name of the
+ * type
+ */
+ static def CppPrimitiveTypeDefinition(PrimitiveType primitiveType) '''
+ «CppDocumentation.CppElementDoc(primitiveType)»
+ «IF GenUtils.hasStereotype(primitiveType, Typedef)»
+ typedef «UMLUtil.getStereotypeApplication(primitiveType, Typedef).definition.replaceAll('typeName', primitiveType.name)»
+ «IF !UMLUtil.getStereotypeApplication(primitiveType, Typedef).definition.contains('typeName')»«primitiveType.name»«ENDIF»;
+
+ «ELSE»
+ «CppGenUtils.getStdtypes(primitiveType)»
+
+ «ENDIF»
+ '''
+} \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppTemplates.xtend b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppTemplates.xtend
new file mode 100644
index 00000000000..13c207c8708
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppTemplates.xtend
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ * Copyright (c) 2014 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+ package org.eclipse.papyrus.cpp.codegen.xtend
+
+import org.eclipse.uml2.uml.Operation
+import org.eclipse.uml2.uml.Classifier
+import org.eclipse.papyrus.cpp.codegen.utils.CppGenUtils
+import org.eclipse.uml2.uml.TemplateParameterSubstitution
+import org.eclipse.uml2.uml.NamedElement
+import org.eclipse.uml2.uml.LiteralInteger
+import org.eclipse.papyrus.codegen.base.GenUtils
+
+/**
+ * @author Önder GÜRCAN (onder.gurcan@cea.fr)
+ */
+class CppTemplates {
+
+ static def templateSignature(Operation operation) {
+ templateSignature(operation.owner as Classifier)
+ }
+
+ static def templateSignature(Classifier clazz)'''
+ «IF (isTemplate(clazz))»
+ template<«FOR templateParam : GenUtils.getTemplateParameters(clazz) SEPARATOR ', '»«CppGenUtils.getTemplateTypeName(templateParam)»«ENDFOR»>
+ «ENDIF»
+ '''
+
+ static def templateShortSignature(Operation operation) {
+ templateShortSignature(operation.owner as Classifier)
+ }
+
+ static def templateShortSignature(Classifier clazz)'''
+ «IF (isTemplate(clazz))»
+ <«FOR templateParam : GenUtils.getTemplateParameters(clazz) SEPARATOR ', '»«GenUtils.getTemplateName(templateParam)»«ENDFOR»>
+ «ENDIF»
+ '''
+
+ static def isTemplate(Classifier clazz) {
+ GenUtils.getTemplateParameters(clazz).size() > 0
+ }
+
+ static def CppTemplateBindingParameter(TemplateParameterSubstitution tps) {
+ if (tps.actual instanceof LiteralInteger) {
+ (tps.actual as LiteralInteger).value
+ } else {
+ (tps.actual as NamedElement).name
+ }
+ }
+} \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/xtend-gen/.gitignore b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/xtend-gen/.gitignore
new file mode 100644
index 00000000000..c96a04f008e
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.codegen/xtend-gen/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/.classpath b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/.classpath
new file mode 100644
index 00000000000..ad32c83a788
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/.project b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/.project
new file mode 100644
index 00000000000..3e3d8136716
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.cpp.examples</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/.settings/org.eclipse.jdt.core.prefs b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..c537b63063c
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/META-INF/MANIFEST.MF b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..85f6beaf683
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/META-INF/MANIFEST.MF
@@ -0,0 +1,13 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.papyrus.uml.diagram.wizards;bundle-version="1.2.0"
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-Version: 1.2.0.qualifier
+Bundle-Name: %pluginName
+Bundle-Localization: plugin
+Bundle-ManifestVersion: 2
+Bundle-Activator: org.eclipse.papyrus.cpp.examples.Activator
+Bundle-SymbolicName: org.eclipse.papyrus.cpp.examples;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/about.html b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/about.html
new file mode 100644
index 00000000000..209103075a7
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>November 14, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/build.properties b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/build.properties
new file mode 100644
index 00000000000..9cd110db55b
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/build.properties
@@ -0,0 +1,9 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.properties,\
+ about.html,\
+ plugin.xml,\
+ models/
+src.includes = about.html
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/models/examples/HelloWorldOO.di b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/models/examples/HelloWorldOO.di
new file mode 100644
index 00000000000..b61e898b639
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/models/examples/HelloWorldOO.di
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi" xmi:id="_M_WAwPcXEd-KM6l7lmIPkw">
+ <pageList xmi:id="_M_WAwfcXEd-KM6l7lmIPkw">
+ <availablePage xmi:id="_M_WAwvcXEd-KM6l7lmIPkw"/>
+ <availablePage xmi:id="_M_WAxPcXEd-KM6l7lmIPkw"/>
+ <availablePage xmi:id="_M_WAxfcXEd-KM6l7lmIPkw"/>
+ <availablePage xmi:id="_U1docPcXEd-KM6l7lmIPkw"/>
+ <availablePage xmi:id="_V5fVYP8nEd-hWJO6cv3VJA"/>
+ <availablePage/>
+ <availablePage/>
+ </pageList>
+ <sashModel xmi:id="_M_WAxvcXEd-KM6l7lmIPkw" currentSelection="_M_WAyPcXEd-KM6l7lmIPkw">
+ <windows xmi:id="_M_WAx_cXEd-KM6l7lmIPkw">
+ <children xsi:type="di:TabFolder" xmi:id="_M_WAyPcXEd-KM6l7lmIPkw">
+ <children>
+ <emfPageIdentifier href="HelloWorldOO.notation#_4fWAcMpkEeOpmd7vWBVZJQ"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+</di:SashWindowsMngr>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/models/examples/HelloWorldOO.notation b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/models/examples/HelloWorldOO.notation
new file mode 100644
index 00000000000..38ed3da34a5
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/models/examples/HelloWorldOO.notation
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_4fWAcMpkEeOpmd7vWBVZJQ" type="PapyrusUMLClassDiagram" name="HelloWorld" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_7IaUcMpkEeOpmd7vWBVZJQ" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_7IcwsMpkEeOpmd7vWBVZJQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7IcwscpkEeOpmd7vWBVZJQ" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7IcwsspkEeOpmd7vWBVZJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7Icws8pkEeOpmd7vWBVZJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7IcwtMpkEeOpmd7vWBVZJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7IcwtcpkEeOpmd7vWBVZJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7IdXwMpkEeOpmd7vWBVZJQ" type="7018">
+ <children xmi:type="notation:Node" xmi:id="_8sZPsMpkEeOpmd7vWBVZJQ" type="3013">
+ <element xmi:type="uml:Operation" href="HelloWorldOO.uml#_UtCt0FTzEeKvFeqt5Q_lqw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sZPscpkEeOpmd7vWBVZJQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7IdXwcpkEeOpmd7vWBVZJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7IdXwspkEeOpmd7vWBVZJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7IdXw8pkEeOpmd7vWBVZJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7IdXxMpkEeOpmd7vWBVZJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7IdXxcpkEeOpmd7vWBVZJQ" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7IdXxspkEeOpmd7vWBVZJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7IdXx8pkEeOpmd7vWBVZJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7IdXyMpkEeOpmd7vWBVZJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7IdXycpkEeOpmd7vWBVZJQ"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gysYQCHNEeWwIcUD6ApW1Q" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gysYQSHNEeWwIcUD6ApW1Q" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="HelloWorldOO.uml#_tyiqsc__Ed-TP80eVS-2Rg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7IaUccpkEeOpmd7vWBVZJQ" x="60" y="40" width="161" height="81"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_B_JiwMplEeOpmd7vWBVZJQ" type="2012">
+ <children xmi:type="notation:DecorationNode" xmi:id="_B_JiwsplEeOpmd7vWBVZJQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="HelloWorldOO.uml#_-Hd2MDecEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_B_JiwcplEeOpmd7vWBVZJQ" x="340" y="51" width="301" height="51"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_l7o-oMq6EeOpmd7vWBVZJQ" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_l7o-osq6EeOpmd7vWBVZJQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l7o-o8q6EeOpmd7vWBVZJQ" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l7o-pMq6EeOpmd7vWBVZJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_l7o-pcq6EeOpmd7vWBVZJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_l7o-psq6EeOpmd7vWBVZJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l7o-p8q6EeOpmd7vWBVZJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l7plsMq6EeOpmd7vWBVZJQ" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l7plscq6EeOpmd7vWBVZJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_l7plssq6EeOpmd7vWBVZJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_l7pls8q6EeOpmd7vWBVZJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l7pltMq6EeOpmd7vWBVZJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l7pltcq6EeOpmd7vWBVZJQ" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l7pltsq6EeOpmd7vWBVZJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_l7plt8q6EeOpmd7vWBVZJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_l7pluMq6EeOpmd7vWBVZJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l7plucq6EeOpmd7vWBVZJQ"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gywpsCHNEeWwIcUD6ApW1Q" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gywpsSHNEeWwIcUD6ApW1Q" y="5"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hU4fUCHNEeWwIcUD6ApW1Q" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_hU4fUSHNEeWwIcUD6ApW1Q" name="stereotype" stringValue="C_Cpp::Include"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_RwTdQByJEduN1bTiWJ0lyw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hU4fUiHNEeWwIcUD6ApW1Q"/>
+ </children>
+ <element xmi:type="uml:Class" href="HelloWorldOO.uml#_l7i4AMq6EeOpmd7vWBVZJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l7o-ocq6EeOpmd7vWBVZJQ" x="58" y="201" width="163" height="80"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_P2hLgMrDEeOpmd7vWBVZJQ" type="2012">
+ <children xmi:type="notation:DecorationNode" xmi:id="_P2hLgsrDEeOpmd7vWBVZJQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="HelloWorldOO.uml#_P1ssIMrDEeOpmd7vWBVZJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_P2hLgcrDEeOpmd7vWBVZJQ" x="340" y="220" width="301" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_b1TsMMrYEeOpmd7vWBVZJQ" type="2005">
+ <children xmi:type="notation:DecorationNode" xmi:id="_b1TsMsrYEeOpmd7vWBVZJQ" type="5020"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_b1TsM8rYEeOpmd7vWBVZJQ" type="7009">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_b1TsNMrYEeOpmd7vWBVZJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b1TsNcrYEeOpmd7vWBVZJQ"/>
+ </children>
+ <element xmi:type="uml:Model" href="HelloWorldOO.uml#_O6TiIDLUEd26WNosUASSSw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b1TsMcrYEeOpmd7vWBVZJQ" x="60" y="360" width="201"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_PJLgIMuOEeOR-ZT-tu0VTw" type="2012">
+ <children xmi:type="notation:DecorationNode" xmi:id="_PJMHMMuOEeOR-ZT-tu0VTw" type="5038"/>
+ <element xmi:type="uml:Comment" href="HelloWorldOO.uml#_PIPsAMuOEeOR-ZT-tu0VTw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PJLgIcuOEeOR-ZT-tu0VTw" x="340" y="120" width="301" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9oKrAMuOEeOR-ZT-tu0VTw" type="2012">
+ <children xmi:type="notation:DecorationNode" xmi:id="_9oLSEMuOEeOR-ZT-tu0VTw" type="5038"/>
+ <element xmi:type="uml:Comment" href="HelloWorldOO.uml#_9oJc4MuOEeOR-ZT-tu0VTw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9oKrAcuOEeOR-ZT-tu0VTw" x="340" y="380" width="301" height="81"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_hUGcMCHNEeWwIcUD6ApW1Q" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hUGcMSHNEeWwIcUD6ApW1Q" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_hUHqUCHNEeWwIcUD6ApW1Q" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="HelloWorldOO.uml#_tyiqsc__Ed-TP80eVS-2Rg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hUGcMiHNEeWwIcUD6ApW1Q" x="260" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_hVXngCHNEeWwIcUD6ApW1Q" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hVXngSHNEeWwIcUD6ApW1Q" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_hVYOkCHNEeWwIcUD6ApW1Q" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="HelloWorldOO.uml#_l7i4AMq6EeOpmd7vWBVZJQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hVXngiHNEeWwIcUD6ApW1Q" x="258" y="201"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_4fWngMpkEeOpmd7vWBVZJQ"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_4fWngcpkEeOpmd7vWBVZJQ">
+ <owner xmi:type="uml:Package" href="HelloWorldOO.uml#_LOqIEDLaEd2qeKRLMdIx_A"/>
+ </styles>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_gyx30CHNEeWwIcUD6ApW1Q" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="HelloWorldOO.uml#_LOqIEDLaEd2qeKRLMdIx_A"/>
+ <edges xmi:type="notation:Connector" xmi:id="_z440MMuMEeOR-ZT-tu0VTw" type="4008" source="_l7o-oMq6EeOpmd7vWBVZJQ" target="_7IaUcMpkEeOpmd7vWBVZJQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_z47QcMuMEeOR-ZT-tu0VTw" visible="false" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_z473gMuMEeOR-ZT-tu0VTw" x="4" y="-46"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_z473gcuMEeOR-ZT-tu0VTw" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_z48ekMuMEeOR-ZT-tu0VTw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_z440McuMEeOR-ZT-tu0VTw"/>
+ <element xmi:type="uml:Dependency" href="HelloWorldOO.uml#_z1dFsMuMEeOR-ZT-tu0VTw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_z440MsuMEeOR-ZT-tu0VTw" points="[1, -12, -1, 110]$[41, -71, 39, 51]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_z5obEMuMEeOR-ZT-tu0VTw" id="(0.5030674846625767,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Te5twMuPEeOR-ZT-tu0VTw" id="(0.4968944099378882,0.9803921568627451)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_b3FWIMuOEeOR-ZT-tu0VTw" type="4013" source="_PJLgIMuOEeOR-ZT-tu0VTw" target="_z440MMuMEeOR-ZT-tu0VTw" routing="Rectilinear">
+ <styles xmi:type="notation:FontStyle" xmi:id="_b3FWIcuOEeOR-ZT-tu0VTw"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_b3FWIsuOEeOR-ZT-tu0VTw" points="[340, 168, -643984, -643984]$[140, 168, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_b3MD0MuOEeOR-ZT-tu0VTw" id="(0.0,0.5517241379310345)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_b3Mq4MuOEeOR-ZT-tu0VTw" id="(0.8429752066115702,0.5607476635514018)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_cVGu4MuOEeOR-ZT-tu0VTw" type="4013" source="_P2hLgMrDEeOpmd7vWBVZJQ" target="_l7o-oMq6EeOpmd7vWBVZJQ" routing="Rectilinear">
+ <styles xmi:type="notation:FontStyle" xmi:id="_cVGu4cuOEeOR-ZT-tu0VTw"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cVGu4suOEeOR-ZT-tu0VTw" points="[340, 231, -643984, -643984]$[221, 231, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cVJLIMuOEeOR-ZT-tu0VTw" id="(0.0,0.1527777777777778)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cVJLIcuOEeOR-ZT-tu0VTw" id="(1.0,0.375)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_lVtMsMuOEeOR-ZT-tu0VTw" type="4013" source="_B_JiwMplEeOpmd7vWBVZJQ" target="_7IaUcMpkEeOpmd7vWBVZJQ" routing="Rectilinear">
+ <styles xmi:type="notation:FontStyle" xmi:id="_lVtMscuOEeOR-ZT-tu0VTw"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_lVtMssuOEeOR-ZT-tu0VTw" points="[340, 69, -643984, -643984]$[221, 69, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_lVvo8MuOEeOR-ZT-tu0VTw" id="(0.0,0.3333333333333333)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_lVvo8cuOEeOR-ZT-tu0VTw" id="(1.0,0.37037037037037035)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ChBQUMuPEeOR-ZT-tu0VTw" type="4013" source="_9oKrAMuOEeOR-ZT-tu0VTw" target="_b1TsMMrYEeOpmd7vWBVZJQ" routing="Rectilinear">
+ <styles xmi:type="notation:FontStyle" xmi:id="_ChBQUcuPEeOR-ZT-tu0VTw"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ChBQUsuPEeOR-ZT-tu0VTw" points="[-47, -9, 113, 0]$[-126, -12, 34, -3]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ChIlEMuPEeOR-ZT-tu0VTw" id="(0.0,0.38271604938271603)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ChJMIMuPEeOR-ZT-tu0VTw" id="(1.0,0.51)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_hUJfgCHNEeWwIcUD6ApW1Q" type="StereotypeCommentLink" source="_7IaUcMpkEeOpmd7vWBVZJQ" target="_hUGcMCHNEeWwIcUD6ApW1Q">
+ <styles xmi:type="notation:FontStyle" xmi:id="_hUJfgSHNEeWwIcUD6ApW1Q"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_hUKGkiHNEeWwIcUD6ApW1Q" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="HelloWorldOO.uml#_tyiqsc__Ed-TP80eVS-2Rg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hUJfgiHNEeWwIcUD6ApW1Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hUKGkCHNEeWwIcUD6ApW1Q"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hUKGkSHNEeWwIcUD6ApW1Q"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_hVYOkSHNEeWwIcUD6ApW1Q" type="StereotypeCommentLink" source="_l7o-oMq6EeOpmd7vWBVZJQ" target="_hVXngCHNEeWwIcUD6ApW1Q">
+ <styles xmi:type="notation:FontStyle" xmi:id="_hVYOkiHNEeWwIcUD6ApW1Q"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_hVYOliHNEeWwIcUD6ApW1Q" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="HelloWorldOO.uml#_l7i4AMq6EeOpmd7vWBVZJQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hVYOkyHNEeWwIcUD6ApW1Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hVYOlCHNEeWwIcUD6ApW1Q"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hVYOlSHNEeWwIcUD6ApW1Q"/>
+ </edges>
+</notation:Diagram>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/models/examples/HelloWorldOO.uml b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/models/examples/HelloWorldOO.uml
new file mode 100644
index 00000000000..05f811b27a4
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/models/examples/HelloWorldOO.uml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:C_Cpp="http://www.eclipse.org/papyrus/C_Cpp/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <uml:Model xmi:id="_O6TiIDLUEd26WNosUASSSw" name="HelloWorld">
+ <packagedElement xmi:type="uml:Package" xmi:id="_LOqIEDLaEd2qeKRLMdIx_A" name="classes">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_-Hd2MDecEeGPyrZ5I3hMlA" annotatedElement="_tyiqsc__Ed-TP80eVS-2Rg">
+ <body>Simple HelloWorld component that prints a message in its &quot;run&quot; operation
+</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_P1ssIMrDEeOpmd7vWBVZJQ" annotatedElement="_l7i4AMq6EeOpmd7vWBVZJQ">
+ <body>Class with main function. This function is not declared (since it would always be a member function), but directly added via the ManualGeneration stereptype).</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_PIPsAMuOEeOR-ZT-tu0VTw" annotatedElement="_z1dFsMuMEeOR-ZT-tu0VTw">
+ <body>The dependency is necessary, since the use of the class HelloWorld is happening inside the body (types appearing in the signature of operations or attributes are managed automatically).</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_9oJc4MuOEeOR-ZT-tu0VTw" annotatedElement="_O6TiIDLUEd26WNosUASSSw">
+ <body>Use the package to generate code. Open the context menu and select &quot;generate code&quot;.</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_tyiqsc__Ed-TP80eVS-2Rg" name="HelloWorld">
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_tyjRwc__Ed-TP80eVS-2Rg" name="run" specification="_UtCt0FTzEeKvFeqt5Q_lqw">
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;Hello world&quot; &lt;&lt; endl;</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_UtCt0FTzEeKvFeqt5Q_lqw" name="run" method="_tyjRwc__Ed-TP80eVS-2Rg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_l7i4AMq6EeOpmd7vWBVZJQ" name="Main"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_z1dFsMuMEeOR-ZT-tu0VTw" name="Dependency1" client="_l7i4AMq6EeOpmd7vWBVZJQ" supplier="_tyiqsc__Ed-TP80eVS-2Rg"/>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_O6TiIjLUEd26WNosUASSSw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_O6TiIzLUEd26WNosUASSSw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_GcC0cAHtEd6HSdiss9GQ0A">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Gd1kMAHtEd6HSdiss9GQ0A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/C_Cpp/1#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
+ </profileApplication>
+ </uml:Model>
+ <C_Cpp:Include xmi:id="_11OtwPcaEd-KM6l7lmIPkw" body="#include &lt;iostream>&#xA;using namespace std;" base_class="_tyiqsc__Ed-TP80eVS-2Rg"/>
+ <C_Cpp:Include xmi:id="_GzL9QMrYEeOpmd7vWBVZJQ" body="int main(int argc, const char* args[]) {&#xA;&#x9;classes::HelloWorld hw;&#xA;&#x9;hw.run();&#xA;&#x9;return 1;&#xA;}" base_class="_l7i4AMq6EeOpmd7vWBVZJQ"/>
+</xmi:XMI>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/plugin.properties b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/plugin.properties
new file mode 100644
index 00000000000..ed68cd6714a
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/plugin.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2013 CEA LIST.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# CEA LIST - initial API and implementation
+###############################################################################
+pluginName=Papyrus C/C++ examples (Incubation)
+providerName=Eclipse Modeling Project
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/plugin.xml b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/plugin.xml
new file mode 100644
index 00000000000..17282114c08
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/plugin.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+ <extension point="org.eclipse.ui.newWizards">
+ <wizard
+ category="org.eclipse.ui.Examples/org.eclipse.papyrus.examples"
+ class="org.eclipse.papyrus.cpp.examples.HelloWorldOOModelWizard"
+ finalPerspective="org.eclipse.papyrus.infra.core.perspective"
+ icon="platform:/plugin/org.eclipse.papyrus.infra.core/icons/papyrus/Papyrus.gif"
+ id="org.eclipse.papyrus.cpp.examples.new.HelloWorldOO"
+ name="C/C++ hello world example">
+ <selection class="org.eclipse.core.resources.IResource"/>
+ </wizard>
+ </extension>
+</plugin>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/pom.xml b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/pom.xml
new file mode 100644
index 00000000000..d8dd48c29a8
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.cpp.examples</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/src/org/eclipse/papyrus/cpp/examples/Activator.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/src/org/eclipse/papyrus/cpp/examples/Activator.java
new file mode 100644
index 00000000000..4611a96f62d
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/src/org/eclipse/papyrus/cpp/examples/Activator.java
@@ -0,0 +1,54 @@
+package org.eclipse.papyrus.cpp.examples;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.cpp.examples"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/src/org/eclipse/papyrus/cpp/examples/HelloWorldOOModelWizard.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/src/org/eclipse/papyrus/cpp/examples/HelloWorldOOModelWizard.java
new file mode 100644
index 00000000000..ee3400e6c43
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.examples/src/org/eclipse/papyrus/cpp/examples/HelloWorldOOModelWizard.java
@@ -0,0 +1,27 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.cpp.examples;
+
+import org.eclipse.papyrus.uml.diagram.wizards.ModelCopyWizard;
+
+/**
+ * Copy wizard for the HelloWorld example
+ */
+public class HelloWorldOOModelWizard extends ModelCopyWizard {
+
+ public HelloWorldOOModelWizard() {
+ super("HelloWorldOO"); //$NON-NLS-1$
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/.classpath b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/.classpath
new file mode 100644
index 00000000000..ad32c83a788
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/.project b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/.project
new file mode 100644
index 00000000000..12be9afc369
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.cpp.library.ui</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/.settings/org.eclipse.jdt.core.prefs b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..c537b63063c
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/META-INF/MANIFEST.MF b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..1e27c1e4fc6
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,12 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.papyrus.cpp.library.ui;singleton:=true
+Bundle-Version: 1.2.0.qualifier
+Bundle-Activator: org.eclipse.papyrus.cpp.library.ui.Activator
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.ui,
+ org.eclipse.papyrus.uml.extensionpoints;bundle-version="1.2.0"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-ActivationPolicy: lazy
+Bundle-Vendor: %providerName
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/about.html b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/about.html
new file mode 100644
index 00000000000..209103075a7
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>November 14, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/build.properties b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/build.properties
new file mode 100644
index 00000000000..c52dd5f5b4a
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/build.properties
@@ -0,0 +1,9 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ icons/,\
+ plugin.properties,\
+ about.html
+src.includes = about.html
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/icons/transfo_cpp.gif b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/icons/transfo_cpp.gif
new file mode 100644
index 00000000000..7caaa0fdae8
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/icons/transfo_cpp.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/plugin.properties b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/plugin.properties
new file mode 100644
index 00000000000..f07d7e63ef6
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/plugin.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2013 CEA LIST.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# CEA LIST - initial API and implementation
+###############################################################################
+pluginName=Papyrus C/C++ library - Papyrus-dependent UI registration (Incubation)
+providerName=Eclipse Modeling Project
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/plugin.xml b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/plugin.xml
new file mode 100644
index 00000000000..c99f8715dd6
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/plugin.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+ <extension
+ point="org.eclipse.papyrus.uml.extensionpoints.UMLLibrary">
+ <library
+ description="Standard C Ansi types"
+ iconpath="icons/transfo_cpp.gif"
+ name="AnsiCLibrary"
+ path="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml"
+ provider="Eclipse Modeling Project"/>
+ </extension>
+</plugin>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/pom.xml b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/pom.xml
new file mode 100644
index 00000000000..fa23868009e
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.cpp.library.ui</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/src/org/eclipse/papyrus/cpp/library/ui/Activator.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/src/org/eclipse/papyrus/cpp/library/ui/Activator.java
new file mode 100644
index 00000000000..489c2549aeb
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library.ui/src/org/eclipse/papyrus/cpp/library/ui/Activator.java
@@ -0,0 +1,50 @@
+package org.eclipse.papyrus.cpp.library.ui;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.cpp.library.ui"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/.classpath b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/.classpath
new file mode 100644
index 00000000000..121e527a938
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/.project b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/.project
new file mode 100644
index 00000000000..3857c77079e
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.cpp.library</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/.settings/org.eclipse.jdt.core.prefs b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..94d61f00da6
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,291 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=260
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=false
+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=260
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=5
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/.settings/org.eclipse.jdt.ui.prefs b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 00000000000..954281dbc31
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,68 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_functional_interfaces=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=false
+cleanup.format_source_code=false
+cleanup.format_source_code_changes_only=false
+cleanup.insert_inferred_type_arguments=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=false
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_redundant_type_arguments=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_anonymous_class_creation=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_lambda=true
+cleanup.use_parentheses_in_expressions=false
+cleanup.use_this_for_non_static_field_access=false
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=false
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_type_arguments=false
+cleanup_profile=_Papyrus
+cleanup_settings_version=2
+eclipse.preferences.version=1
+formatter_profile=_Papyrus
+formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * Constructor.\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*****************************************************************************\n * Copyright (c) ${year} CEA LIST and others.\n * \n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n * CEA LIST - Initial API and implementation\n * \n *****************************************************************************/\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\n * ${see_to_overridden}\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${see_to_target}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/META-INF/MANIFEST.MF b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..7f1c4878394
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/META-INF/MANIFEST.MF
@@ -0,0 +1,14 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore,
+ org.eclipse.uml2.uml;bundle-version="5.0.0"
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-ClassPath: .
+Bundle-Version: 1.2.0.qualifier
+Bundle-Localization: plugin
+Bundle-Name: %pluginName
+Bundle-Activator: org.eclipse.papyrus.cpp.library.Activator
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.cpp.library;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/about.html b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/about.html
new file mode 100644
index 00000000000..209103075a7
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>November 14, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/build.properties b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/build.properties
new file mode 100644
index 00000000000..c5bd7ea6135
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/build.properties
@@ -0,0 +1,9 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ models/,\
+ about.html,\
+ plugin.properties
+src.includes = about.html
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/models/AnsiCLibrary.di b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/models/AnsiCLibrary.di
new file mode 100644
index 00000000000..27d5dafd653
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/models/AnsiCLibrary.di
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="ASCII"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi">
+ <pageList>
+ <availablePage>
+ <emfPageIdentifier href="AnsiCLibrary.notation#_r0SgwOmIEeG_gcDHG3asaQ"/>
+ </availablePage>
+ </pageList>
+ <sashModel currentSelection="//@sashModel/@windows.0/@children.0">
+ <windows>
+ <children xsi:type="di:TabFolder">
+ <children>
+ <emfPageIdentifier href="AnsiCLibrary.notation#_r0SgwOmIEeG_gcDHG3asaQ"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+</di:SashWindowsMngr>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/models/AnsiCLibrary.notation b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/models/AnsiCLibrary.notation
new file mode 100644
index 00000000000..039e96e9c0b
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/models/AnsiCLibrary.notation
@@ -0,0 +1,348 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xmi:id="_r0SgwOmIEeG_gcDHG3asaQ" type="PapyrusUMLClassDiagram" name="AnsiC" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_txw6EOmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tyJ7oOmIEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tyJ7oemIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tyJ7oumIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tyJ7o-mIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tyKisOmIEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tyKisemIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tyM-8OmIEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_txw6EemIEeG_gcDHG3asaQ" x="45" y="99"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_t56wgOmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t56wgumIEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t57XkOmIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t57XkemIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t57XkumIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t57Xk-mIEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t57XlOmIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_t57XlemIEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t56wgemIEeG_gcDHG3asaQ" x="171" y="171"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_t_tPcOmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t_t2gOmIEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t_t2gemIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t_udkOmIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t_udkemIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t_udkumIEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t_udk-mIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_t_udlOmIEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_7W3wkBydEduyofBvg4RL2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t_tPcemIEeG_gcDHG3asaQ" x="45" y="171"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uE_YEOmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uE__IOmIEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uE__IemIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uE__IumIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uE__I-mIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uE__JOmIEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uE__JemIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uE__JumIEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uE_YEemIEeG_gcDHG3asaQ" x="45" y="324"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uJrDwOmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uJrq0emIEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uJrq0umIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uJsR4OmIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uJsR4emIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uJsR4umIEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uJsR4-mIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uJsR5OmIEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uJrq0OmIEeG_gcDHG3asaQ" x="45" y="27"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uOhukOmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uOiVoOmIEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uOiVoemIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uOiVoumIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uOiVo-mIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uOiVpOmIEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uOiVpemIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uOiVpumIEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_8heigBydEduyofBvg4RL2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uOhukemIEeG_gcDHG3asaQ" x="45" y="396"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uSY64OmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uSZh8OmIEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uSZh8emIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uSZh8umIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uSZh8-mIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uSZh9OmIEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uSZh9emIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uSZh9umIEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_DLNPkByeEduyofBvg4RL2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uSY64emIEeG_gcDHG3asaQ" x="297" y="171"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uV6I8OmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uV6wAOmIEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uV6wAemIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uV6wAumIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uV6wA-mIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uV6wBOmIEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uV6wBemIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uV6wBumIEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_K-lFQByeEduyofBvg4RL2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uV6I8emIEeG_gcDHG3asaQ" x="45" y="252"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uZYTsOmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uZY6wOmIEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uZY6wemIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uZY6wumIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uZY6w-mIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uZY6xOmIEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uZY6xemIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uZY6xumIEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uZYTsemIEeG_gcDHG3asaQ" x="171" y="324"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uc13YOmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uc13YumIEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uc2ecOmIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uc2ecemIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uc2ecumIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uc2ec-mIEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uc2edOmIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uc2edemIEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_V5vyUByeEduyofBvg4RL2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uc13YemIEeG_gcDHG3asaQ" x="171" y="252"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uf0S4OmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uf058OmIEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uf058emIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uf058umIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uf058-mIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uf059OmIEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uf059emIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uf059umIEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_YYWiwByeEduyofBvg4RL2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uf0S4emIEeG_gcDHG3asaQ" x="171" y="99"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ujIsoOmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ujJTsOmIEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ujJTsemIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ujJTsumIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ujJTs-mIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ujJTtOmIEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ujJTtemIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ujJTtumIEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_a1wZUByeEduyofBvg4RL2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ujIsoemIEeG_gcDHG3asaQ" x="171" y="396"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_umgJsOmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_umgJsumIEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_umgJs-mIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_umgwwOmIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_umgwwemIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_umgwwumIEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_umgww-mIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_umgwxOmIEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_umgJsemIEeG_gcDHG3asaQ" x="45" y="468"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_V3vUcOmJEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V3wikOmJEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V3wikemJEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V3wikumJEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V3wik-mJEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V3wilOmJEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V3wilemJEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_V3wilumJEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_V3dAkOmJEeG_gcDHG3asaQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V3vUcemJEeG_gcDHG3asaQ" x="482" y="324"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Y4Nb0OmJEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Y4OC4OmJEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Y4OC4emJEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Y4OC4umJEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Y4OC4-mJEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Y4OC5OmJEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Y4OC5emJEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Y4OC5umJEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_Y3550OmJEeG_gcDHG3asaQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Y4Nb0emJEeG_gcDHG3asaQ" x="648" y="324"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_yJ0C8OmJEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yJ0qAOmJEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yJ0qAemJEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yJ0qAumJEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yJ0qA-mJEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yJ0qBOmJEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yJ0qBemJEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yJ0qBumJEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_yJpD0OmJEeG_gcDHG3asaQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yJ0C8emJEeG_gcDHG3asaQ" x="483" y="396"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1rBf4OmJEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1rBf4umJEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1rCG8OmJEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1rCG8emJEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1rCG8umJEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1rCG8-mJEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1rCG9OmJEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1rCG9emJEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_1q1SoOmJEeG_gcDHG3asaQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1rBf4emJEeG_gcDHG3asaQ" x="648" y="396"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6hSrQOmJEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6hSrQumJEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6hSrQ-mJEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6hSrROmJEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6hSrRemJEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6hTSUOmJEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6hTSUemJEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6hTSUumJEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_6hHFEOmJEeG_gcDHG3asaQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6hSrQemJEeG_gcDHG3asaQ" x="483" y="468"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8kvJsOmJEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8kvJsumJEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8kvJs-mJEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8kvJtOmJEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8kvwwOmJEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8kvwwemJEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8kvwwumJEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8kvww-mJEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_8kiVYOmJEeG_gcDHG3asaQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8kvJsemJEeG_gcDHG3asaQ" x="648" y="468"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_J8FlUOmKEeG_gcDHG3asaQ" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J8GMYOmKEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_J8GMYemKEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J8GMYumKEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_J8GMY-mKEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J8GMZOmKEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_J8GMZemKEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_J8GMZumKEeG_gcDHG3asaQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="AnsiCLibrary.uml#_J6d0sOmKEeG_gcDHG3asaQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J8FlUemKEeG_gcDHG3asaQ" x="549" y="171" width="157" height="46"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_b2FFsOmKEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_b2FswOmKEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_b2FswemKEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_b2FswumKEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_b2Fsw-mKEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_b2FsxOmKEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_b2GT0OmKEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_b2GT0emKEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_b1zY4OmKEeG_gcDHG3asaQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b2FFsemKEeG_gcDHG3asaQ" x="482" y="99"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_zMqxoOmKEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zMrYsOmKEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zMrYsemKEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zMr_wOmKEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zMr_wemKEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zMr_wumKEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zMr_w-mKEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zMr_xOmKEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_zL7x0OmKEeG_gcDHG3asaQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zMqxoemKEeG_gcDHG3asaQ" x="484" y="254"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0_OUYOmKEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0_O7cOmKEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0_O7cemKEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0_O7cumKEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0_O7c-mKEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0_O7dOmKEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0_O7demKEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0_O7dumKEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_0-8nkOmKEeG_gcDHG3asaQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0_OUYemKEeG_gcDHG3asaQ" x="646" y="252"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_r0SgwemIEeG_gcDHG3asaQ"/>
+ <element xmi:type="uml:Model" href="AnsiCLibrary.uml#_DV8nkBv8EduZN5aJJITI5w"/>
+ <edges xmi:type="notation:Connector" xmi:id="_NZwmEOmKEeG_gcDHG3asaQ" type="4013" source="_J8FlUOmKEeG_gcDHG3asaQ" target="_zMqxoOmKEeG_gcDHG3asaQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NZwmEemKEeG_gcDHG3asaQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NZwmEumKEeG_gcDHG3asaQ" points="[-4, 14, 0, -50]$[14, 61, 18, -3]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Nab7gOmKEeG_gcDHG3asaQ" id="(0.15346534653465346,0.7666666666666667)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Nab7gemKEeG_gcDHG3asaQ" id="(0.81,0.14)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_OAB74OmKEeG_gcDHG3asaQ" type="4013" source="_J8FlUOmKEeG_gcDHG3asaQ" target="_0_OUYOmKEeG_gcDHG3asaQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_OAB74emKEeG_gcDHG3asaQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_OAB74umKEeG_gcDHG3asaQ" points="[-7, 11, 0, -55]$[-20, 67, -13, 1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OAP-UOmKEeG_gcDHG3asaQ" id="(0.7707006369426752,0.9130434782608695)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OAP-UemKEeG_gcDHG3asaQ" id="(0.17,0.16)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_gCpMwOmKEeG_gcDHG3asaQ" type="4013" source="_J8FlUOmKEeG_gcDHG3asaQ" target="_b2FFsOmKEeG_gcDHG3asaQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_gCpMwemKEeG_gcDHG3asaQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gCpMwumKEeG_gcDHG3asaQ" points="[0, -5, 0, 54]$[18, -58, 18, 1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gC2BEOmKEeG_gcDHG3asaQ" id="(0.14012738853503184,0.10869565217391304)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gC2BEemKEeG_gcDHG3asaQ" id="(0.82,0.54)"/>
+ </edges>
+</notation:Diagram>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/models/AnsiCLibrary.uml b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/models/AnsiCLibrary.uml
new file mode 100644
index 00000000000..00ee3486b79
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/models/AnsiCLibrary.uml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:l2="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML">
+ <uml:Model xmi:id="_DV8nkBv8EduZN5aJJITI5w" name="AnsiCLibrary">
+ <ownedComment xmi:id="_J6d0sOmKEeG_gcDHG3asaQ" annotatedElement="_b1zY4OmKEeG_gcDHG3asaQ _0-8nkOmKEeG_gcDHG3asaQ _zL7x0OmKEeG_gcDHG3asaQ">
+ <body>Platform independent fixed size types</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_5lVhgBydEduyofBvg4RL2w" name="char"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_6j0jABydEduyofBvg4RL2w" name="double"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_7W3wkBydEduyofBvg4RL2w" name="float"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_7wRIABydEduyofBvg4RL2w" name="int"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_8I6RgBydEduyofBvg4RL2w" name="void"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_8heigBydEduyofBvg4RL2w" name="long"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_DLNPkByeEduyofBvg4RL2w" name="long double"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_K-lFQByeEduyofBvg4RL2w" name="short"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_LTZesByeEduyofBvg4RL2w" name="unsigned int"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_V5vyUByeEduyofBvg4RL2w" name="unsigned short"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_YYWiwByeEduyofBvg4RL2w" name="unsigned char"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_a1wZUByeEduyofBvg4RL2w" name="unsigned long"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_vAIV4I7PEdySGvm5GN66HA" name="bool"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_V3dAkOmJEeG_gcDHG3asaQ" name="int16_t"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_Y3550OmJEeG_gcDHG3asaQ" name="uint16_t"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_yJpD0OmJEeG_gcDHG3asaQ" name="int32_t"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_1q1SoOmJEeG_gcDHG3asaQ" name="uint32_t"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_6hHFEOmJEeG_gcDHG3asaQ" name="int64_t"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_8kiVYOmJEeG_gcDHG3asaQ" name="uint64_t"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_b1zY4OmKEeG_gcDHG3asaQ" name="wchar_t"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_zL7x0OmKEeG_gcDHG3asaQ" name="int8_t"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_0-8nkOmKEeG_gcDHG3asaQ" name="uint8_t"/>
+ <profileApplication xmi:id="_a7EN4CAREdu9HM4q-Epbgg">
+ <eAnnotations xmi:id="_a7EN4SAREdu9HM4q-Epbgg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ </uml:Model>
+ <l2:ModelLibrary xmi:id="_c2eKoCAREdu9HM4q-Epbgg" base_Package="_DV8nkBv8EduZN5aJJITI5w"/>
+</xmi:XMI>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/plugin.properties b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/plugin.properties
new file mode 100644
index 00000000000..17e06150837
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/plugin.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2013 CEA LIST.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# CEA LIST - initial API and implementation
+###############################################################################
+pluginName=Papyrus C/C++ profile (Incubation)
+providerName=Eclipse Modeling Project
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/plugin.xml b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/plugin.xml
new file mode 100644
index 00000000000..af856732602
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/plugin.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+ <extension
+ point="org.eclipse.emf.ecore.uri_mapping">
+ <mapping
+ source="pathmap://PapyrusC_Cpp_LIBRARIES/"
+ target="platform:/plugin/org.eclipse.papyrus.cpp.library/models/"/>
+ </extension>
+</plugin>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/pom.xml b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/pom.xml
new file mode 100644
index 00000000000..9eaa91aaf31
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.cpp.library</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/src/org/eclipse/papyrus/cpp/library/Activator.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/src/org/eclipse/papyrus/cpp/library/Activator.java
new file mode 100644
index 00000000000..8aa6783549d
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.library/src/org/eclipse/papyrus/cpp/library/Activator.java
@@ -0,0 +1,30 @@
+package org.eclipse.papyrus.cpp.library;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+public class Activator implements BundleActivator {
+
+ private static BundleContext context;
+
+ static BundleContext getContext() {
+ return context;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext bundleContext) throws Exception {
+ Activator.context = bundleContext;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext bundleContext) throws Exception {
+ Activator.context = null;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/.classpath b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/.classpath
new file mode 100644
index 00000000000..ad32c83a788
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/.project b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/.project
new file mode 100644
index 00000000000..6b25ba93cbc
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.cpp.profile.ui</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/.settings/org.eclipse.jdt.core.prefs b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..c537b63063c
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/META-INF/MANIFEST.MF b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..0b018987d0c
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,12 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.papyrus.cpp.profile.ui;singleton:=true
+Bundle-Version: 1.2.0.qualifier
+Bundle-Activator: org.eclipse.papyrus.cpp.profile.ui.Activator
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.ui,
+ org.eclipse.papyrus.uml.extensionpoints;bundle-version="1.2.0"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-ActivationPolicy: lazy
+Bundle-Vendor: %providerName
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/about.html b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/about.html
new file mode 100644
index 00000000000..209103075a7
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>November 14, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/build.properties b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/build.properties
new file mode 100644
index 00000000000..c52dd5f5b4a
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/build.properties
@@ -0,0 +1,9 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ icons/,\
+ plugin.properties,\
+ about.html
+src.includes = about.html
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/icons/transfo_cpp.gif b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/icons/transfo_cpp.gif
new file mode 100644
index 00000000000..7caaa0fdae8
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/icons/transfo_cpp.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/plugin.properties b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/plugin.properties
new file mode 100644
index 00000000000..75bf9a1ecb0
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/plugin.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2013 CEA LIST.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# CEA LIST - initial API and implementation
+###############################################################################
+pluginName=Papyrus C/C++ profile - Papyrus-dependent UI registration (Incubation)
+providerName=Eclipse Modeling Project
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/plugin.xml b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/plugin.xml
new file mode 100644
index 00000000000..85f6a4f453d
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/plugin.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+ <extension
+ point="org.eclipse.papyrus.uml.extensionpoints.UMLProfile">
+ <profile
+ description="C/C++ profile used for code generation"
+ iconpath="icons/transfo_cpp.gif"
+ name="C/C++ profile"
+ path="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml"
+ provider="Eclipse Modeling Project"/>
+ </extension>
+</plugin>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/pom.xml b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/pom.xml
new file mode 100644
index 00000000000..6f28d6a7837
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.cpp.profile.ui</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/src/org/eclipse/papyrus/cpp/profile/ui/Activator.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/src/org/eclipse/papyrus/cpp/profile/ui/Activator.java
new file mode 100644
index 00000000000..3f888a06a2e
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile.ui/src/org/eclipse/papyrus/cpp/profile/ui/Activator.java
@@ -0,0 +1,50 @@
+package org.eclipse.papyrus.cpp.profile.ui;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.cpp.profile.ui"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/.classpath b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/.classpath
new file mode 100644
index 00000000000..ad32c83a788
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/.project b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/.project
new file mode 100644
index 00000000000..1d8b98f86c4
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.cpp.profile</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/.settings/org.eclipse.jdt.core.prefs b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..94d61f00da6
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,291 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=260
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=false
+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=260
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=5
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/.settings/org.eclipse.jdt.ui.prefs b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 00000000000..954281dbc31
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,68 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_functional_interfaces=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=false
+cleanup.format_source_code=false
+cleanup.format_source_code_changes_only=false
+cleanup.insert_inferred_type_arguments=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=false
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_redundant_type_arguments=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_anonymous_class_creation=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_lambda=true
+cleanup.use_parentheses_in_expressions=false
+cleanup.use_this_for_non_static_field_access=false
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=false
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_type_arguments=false
+cleanup_profile=_Papyrus
+cleanup_settings_version=2
+eclipse.preferences.version=1
+formatter_profile=_Papyrus
+formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * Constructor.\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*****************************************************************************\n * Copyright (c) ${year} CEA LIST and others.\n * \n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n * CEA LIST - Initial API and implementation\n * \n *****************************************************************************/\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\n * ${see_to_overridden}\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${see_to_target}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/META-INF/MANIFEST.MF b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..a43afee6ea3
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/META-INF/MANIFEST.MF
@@ -0,0 +1,18 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore,
+ org.eclipse.uml2.uml;bundle-version="5.0.0"
+Export-Package: org.eclipse.papyrus.C_Cpp,
+ org.eclipse.papyrus.C_Cpp.impl,
+ org.eclipse.papyrus.C_Cpp.util,
+ org.eclipse.papyrus.cpp.profile
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-ClassPath: .
+Bundle-Version: 1.2.0.qualifier
+Bundle-Localization: plugin
+Bundle-Name: %pluginName
+Bundle-Activator: org.eclipse.papyrus.cpp.profile.Activator
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.cpp.profile;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/about.html b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/about.html
new file mode 100644
index 00000000000..209103075a7
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>November 14, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/build.properties b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/build.properties
new file mode 100644
index 00000000000..8904618deb7
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/build.properties
@@ -0,0 +1,10 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ profiles/,\
+ libraries/,\
+ about.html,\
+ plugin.properties
+src.includes = about.html
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/libraries/AnsiCLibrary.di b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/libraries/AnsiCLibrary.di
new file mode 100644
index 00000000000..27d5dafd653
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/libraries/AnsiCLibrary.di
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="ASCII"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi">
+ <pageList>
+ <availablePage>
+ <emfPageIdentifier href="AnsiCLibrary.notation#_r0SgwOmIEeG_gcDHG3asaQ"/>
+ </availablePage>
+ </pageList>
+ <sashModel currentSelection="//@sashModel/@windows.0/@children.0">
+ <windows>
+ <children xsi:type="di:TabFolder">
+ <children>
+ <emfPageIdentifier href="AnsiCLibrary.notation#_r0SgwOmIEeG_gcDHG3asaQ"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+</di:SashWindowsMngr>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/libraries/AnsiCLibrary.notation b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/libraries/AnsiCLibrary.notation
new file mode 100644
index 00000000000..039e96e9c0b
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/libraries/AnsiCLibrary.notation
@@ -0,0 +1,348 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xmi:id="_r0SgwOmIEeG_gcDHG3asaQ" type="PapyrusUMLClassDiagram" name="AnsiC" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_txw6EOmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tyJ7oOmIEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tyJ7oemIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tyJ7oumIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tyJ7o-mIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tyKisOmIEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tyKisemIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tyM-8OmIEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_txw6EemIEeG_gcDHG3asaQ" x="45" y="99"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_t56wgOmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t56wgumIEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t57XkOmIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t57XkemIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t57XkumIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t57Xk-mIEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t57XlOmIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_t57XlemIEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t56wgemIEeG_gcDHG3asaQ" x="171" y="171"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_t_tPcOmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t_t2gOmIEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t_t2gemIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t_udkOmIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t_udkemIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t_udkumIEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t_udk-mIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_t_udlOmIEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_7W3wkBydEduyofBvg4RL2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t_tPcemIEeG_gcDHG3asaQ" x="45" y="171"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uE_YEOmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uE__IOmIEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uE__IemIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uE__IumIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uE__I-mIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uE__JOmIEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uE__JemIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uE__JumIEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uE_YEemIEeG_gcDHG3asaQ" x="45" y="324"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uJrDwOmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uJrq0emIEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uJrq0umIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uJsR4OmIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uJsR4emIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uJsR4umIEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uJsR4-mIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uJsR5OmIEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uJrq0OmIEeG_gcDHG3asaQ" x="45" y="27"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uOhukOmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uOiVoOmIEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uOiVoemIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uOiVoumIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uOiVo-mIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uOiVpOmIEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uOiVpemIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uOiVpumIEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_8heigBydEduyofBvg4RL2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uOhukemIEeG_gcDHG3asaQ" x="45" y="396"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uSY64OmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uSZh8OmIEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uSZh8emIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uSZh8umIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uSZh8-mIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uSZh9OmIEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uSZh9emIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uSZh9umIEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_DLNPkByeEduyofBvg4RL2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uSY64emIEeG_gcDHG3asaQ" x="297" y="171"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uV6I8OmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uV6wAOmIEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uV6wAemIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uV6wAumIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uV6wA-mIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uV6wBOmIEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uV6wBemIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uV6wBumIEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_K-lFQByeEduyofBvg4RL2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uV6I8emIEeG_gcDHG3asaQ" x="45" y="252"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uZYTsOmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uZY6wOmIEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uZY6wemIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uZY6wumIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uZY6w-mIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uZY6xOmIEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uZY6xemIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uZY6xumIEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uZYTsemIEeG_gcDHG3asaQ" x="171" y="324"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uc13YOmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uc13YumIEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uc2ecOmIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uc2ecemIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uc2ecumIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uc2ec-mIEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uc2edOmIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uc2edemIEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_V5vyUByeEduyofBvg4RL2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uc13YemIEeG_gcDHG3asaQ" x="171" y="252"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uf0S4OmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uf058OmIEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uf058emIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uf058umIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uf058-mIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uf059OmIEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uf059emIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uf059umIEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_YYWiwByeEduyofBvg4RL2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uf0S4emIEeG_gcDHG3asaQ" x="171" y="99"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ujIsoOmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ujJTsOmIEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ujJTsemIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ujJTsumIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ujJTs-mIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ujJTtOmIEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ujJTtemIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ujJTtumIEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_a1wZUByeEduyofBvg4RL2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ujIsoemIEeG_gcDHG3asaQ" x="171" y="396"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_umgJsOmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_umgJsumIEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_umgJs-mIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_umgwwOmIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_umgwwemIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_umgwwumIEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_umgww-mIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_umgwxOmIEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_umgJsemIEeG_gcDHG3asaQ" x="45" y="468"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_V3vUcOmJEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V3wikOmJEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V3wikemJEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V3wikumJEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V3wik-mJEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V3wilOmJEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V3wilemJEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_V3wilumJEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_V3dAkOmJEeG_gcDHG3asaQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V3vUcemJEeG_gcDHG3asaQ" x="482" y="324"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Y4Nb0OmJEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Y4OC4OmJEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Y4OC4emJEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Y4OC4umJEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Y4OC4-mJEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Y4OC5OmJEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Y4OC5emJEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Y4OC5umJEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_Y3550OmJEeG_gcDHG3asaQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Y4Nb0emJEeG_gcDHG3asaQ" x="648" y="324"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_yJ0C8OmJEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yJ0qAOmJEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yJ0qAemJEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yJ0qAumJEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yJ0qA-mJEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yJ0qBOmJEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yJ0qBemJEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yJ0qBumJEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_yJpD0OmJEeG_gcDHG3asaQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yJ0C8emJEeG_gcDHG3asaQ" x="483" y="396"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1rBf4OmJEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1rBf4umJEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1rCG8OmJEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1rCG8emJEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1rCG8umJEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1rCG8-mJEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1rCG9OmJEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1rCG9emJEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_1q1SoOmJEeG_gcDHG3asaQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1rBf4emJEeG_gcDHG3asaQ" x="648" y="396"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6hSrQOmJEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6hSrQumJEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6hSrQ-mJEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6hSrROmJEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6hSrRemJEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6hTSUOmJEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6hTSUemJEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6hTSUumJEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_6hHFEOmJEeG_gcDHG3asaQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6hSrQemJEeG_gcDHG3asaQ" x="483" y="468"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8kvJsOmJEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8kvJsumJEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8kvJs-mJEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8kvJtOmJEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8kvwwOmJEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8kvwwemJEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8kvwwumJEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8kvww-mJEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_8kiVYOmJEeG_gcDHG3asaQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8kvJsemJEeG_gcDHG3asaQ" x="648" y="468"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_J8FlUOmKEeG_gcDHG3asaQ" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J8GMYOmKEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_J8GMYemKEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J8GMYumKEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_J8GMY-mKEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J8GMZOmKEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_J8GMZemKEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_J8GMZumKEeG_gcDHG3asaQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="AnsiCLibrary.uml#_J6d0sOmKEeG_gcDHG3asaQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J8FlUemKEeG_gcDHG3asaQ" x="549" y="171" width="157" height="46"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_b2FFsOmKEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_b2FswOmKEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_b2FswemKEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_b2FswumKEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_b2Fsw-mKEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_b2FsxOmKEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_b2GT0OmKEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_b2GT0emKEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_b1zY4OmKEeG_gcDHG3asaQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b2FFsemKEeG_gcDHG3asaQ" x="482" y="99"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_zMqxoOmKEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zMrYsOmKEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zMrYsemKEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zMr_wOmKEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zMr_wemKEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zMr_wumKEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zMr_w-mKEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zMr_xOmKEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_zL7x0OmKEeG_gcDHG3asaQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zMqxoemKEeG_gcDHG3asaQ" x="484" y="254"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0_OUYOmKEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0_O7cOmKEeG_gcDHG3asaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0_O7cemKEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0_O7cumKEeG_gcDHG3asaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0_O7c-mKEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0_O7dOmKEeG_gcDHG3asaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0_O7demKEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0_O7dumKEeG_gcDHG3asaQ" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_0-8nkOmKEeG_gcDHG3asaQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0_OUYemKEeG_gcDHG3asaQ" x="646" y="252"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_r0SgwemIEeG_gcDHG3asaQ"/>
+ <element xmi:type="uml:Model" href="AnsiCLibrary.uml#_DV8nkBv8EduZN5aJJITI5w"/>
+ <edges xmi:type="notation:Connector" xmi:id="_NZwmEOmKEeG_gcDHG3asaQ" type="4013" source="_J8FlUOmKEeG_gcDHG3asaQ" target="_zMqxoOmKEeG_gcDHG3asaQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NZwmEemKEeG_gcDHG3asaQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NZwmEumKEeG_gcDHG3asaQ" points="[-4, 14, 0, -50]$[14, 61, 18, -3]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Nab7gOmKEeG_gcDHG3asaQ" id="(0.15346534653465346,0.7666666666666667)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Nab7gemKEeG_gcDHG3asaQ" id="(0.81,0.14)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_OAB74OmKEeG_gcDHG3asaQ" type="4013" source="_J8FlUOmKEeG_gcDHG3asaQ" target="_0_OUYOmKEeG_gcDHG3asaQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_OAB74emKEeG_gcDHG3asaQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_OAB74umKEeG_gcDHG3asaQ" points="[-7, 11, 0, -55]$[-20, 67, -13, 1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OAP-UOmKEeG_gcDHG3asaQ" id="(0.7707006369426752,0.9130434782608695)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OAP-UemKEeG_gcDHG3asaQ" id="(0.17,0.16)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_gCpMwOmKEeG_gcDHG3asaQ" type="4013" source="_J8FlUOmKEeG_gcDHG3asaQ" target="_b2FFsOmKEeG_gcDHG3asaQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_gCpMwemKEeG_gcDHG3asaQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gCpMwumKEeG_gcDHG3asaQ" points="[0, -5, 0, 54]$[18, -58, 18, 1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gC2BEOmKEeG_gcDHG3asaQ" id="(0.14012738853503184,0.10869565217391304)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gC2BEemKEeG_gcDHG3asaQ" id="(0.82,0.54)"/>
+ </edges>
+</notation:Diagram>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/libraries/AnsiCLibrary.uml b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/libraries/AnsiCLibrary.uml
new file mode 100644
index 00000000000..00ee3486b79
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/libraries/AnsiCLibrary.uml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:l2="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML">
+ <uml:Model xmi:id="_DV8nkBv8EduZN5aJJITI5w" name="AnsiCLibrary">
+ <ownedComment xmi:id="_J6d0sOmKEeG_gcDHG3asaQ" annotatedElement="_b1zY4OmKEeG_gcDHG3asaQ _0-8nkOmKEeG_gcDHG3asaQ _zL7x0OmKEeG_gcDHG3asaQ">
+ <body>Platform independent fixed size types</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_5lVhgBydEduyofBvg4RL2w" name="char"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_6j0jABydEduyofBvg4RL2w" name="double"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_7W3wkBydEduyofBvg4RL2w" name="float"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_7wRIABydEduyofBvg4RL2w" name="int"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_8I6RgBydEduyofBvg4RL2w" name="void"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_8heigBydEduyofBvg4RL2w" name="long"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_DLNPkByeEduyofBvg4RL2w" name="long double"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_K-lFQByeEduyofBvg4RL2w" name="short"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_LTZesByeEduyofBvg4RL2w" name="unsigned int"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_V5vyUByeEduyofBvg4RL2w" name="unsigned short"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_YYWiwByeEduyofBvg4RL2w" name="unsigned char"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_a1wZUByeEduyofBvg4RL2w" name="unsigned long"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_vAIV4I7PEdySGvm5GN66HA" name="bool"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_V3dAkOmJEeG_gcDHG3asaQ" name="int16_t"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_Y3550OmJEeG_gcDHG3asaQ" name="uint16_t"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_yJpD0OmJEeG_gcDHG3asaQ" name="int32_t"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_1q1SoOmJEeG_gcDHG3asaQ" name="uint32_t"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_6hHFEOmJEeG_gcDHG3asaQ" name="int64_t"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_8kiVYOmJEeG_gcDHG3asaQ" name="uint64_t"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_b1zY4OmKEeG_gcDHG3asaQ" name="wchar_t"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_zL7x0OmKEeG_gcDHG3asaQ" name="int8_t"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_0-8nkOmKEeG_gcDHG3asaQ" name="uint8_t"/>
+ <profileApplication xmi:id="_a7EN4CAREdu9HM4q-Epbgg">
+ <eAnnotations xmi:id="_a7EN4SAREdu9HM4q-Epbgg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ </uml:Model>
+ <l2:ModelLibrary xmi:id="_c2eKoCAREdu9HM4q-Epbgg" base_Package="_DV8nkBv8EduZN5aJJITI5w"/>
+</xmi:XMI>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/plugin.properties b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/plugin.properties
new file mode 100644
index 00000000000..17e06150837
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/plugin.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2013 CEA LIST.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# CEA LIST - initial API and implementation
+###############################################################################
+pluginName=Papyrus C/C++ profile (Incubation)
+providerName=Eclipse Modeling Project
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/plugin.xml b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/plugin.xml
new file mode 100644
index 00000000000..74b5096608a
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/plugin.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+ <extension
+ point="org.eclipse.emf.ecore.uri_mapping">
+ <mapping
+ source="pathmap://PapyrusC_Cpp_PROFILES/"
+ target="platform:/plugin/org.eclipse.papyrus.cpp.profile/profiles/"/>
+ </extension>
+
+ <extension
+ point="org.eclipse.uml2.uml.generated_package">
+ <profile
+ uri="http://www.eclipse.org/papyrus/C_Cpp/1"
+ location="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated C_Cpp -->
+ <package
+ uri="http://www.eclipse.org/papyrus/C_Cpp/1"
+ class="org.eclipse.papyrus.C_Cpp.C_CppPackage"
+ genModel="profiles/C_Cpp.genmodel"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.extension_parser">
+ <!-- @generated C_Cpp -->
+ <parser
+ type="c_cpp"
+ class="org.eclipse.papyrus.C_Cpp.util.C_CppResourceFactoryImpl"/>
+ </extension>
+</plugin>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/pom.xml b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/pom.xml
new file mode 100644
index 00000000000..19a9f1410e6
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.cpp.profile</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/profiles/C_Cpp.ecore b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/profiles/C_Cpp.ecore
new file mode 100644
index 00000000000..65ebda94e6b
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/profiles/C_Cpp.ecore
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="C_Cpp" nsURI="http://www.eclipse.org/papyrus/C_Cpp/1" nsPrefix="C_Cpp">
+ <eClassifiers xsi:type="ecore:EClass" name="Ptr">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&quot;declaration&quot; attribute should only be used, if more than one indirections of pointers (often &quot;**&quot;)"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_parameter" ordered="false"
+ unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Parameter"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_property" ordered="false"
+ unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="declaration" ordered="false"
+ unique="false" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Include">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An arbitrary string that is added to header and body file. Although primarily intended for manual include directives, it can be used for arbitrary definitions.&#xA;&quot;preBody&quot; is added to a C++ body file before automatic include statements, &quot;body&quot; after"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" ordered="false" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"
+ defaultValueLiteral=""/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="preBody" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"
+ defaultValueLiteral=""/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="header" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"
+ defaultValueLiteral=""/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_package" ordered="false"
+ unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_class" ordered="false"
+ unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Classifier" ordered="false"
+ eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Classifier"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ManualGeneration">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Some toolkits require a quite particular way of use. For instance, LTTng requires the use of C (not C++) for the declaration of a trace provider and the header file is read several time with redefined macros. Therefore, the code generator supports a &quot;manual&quot; generation mode, in which primarily the contents of the CppInclude directive is written."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="extensionBody" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ExternLibrary">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Mark a package as External Library. If this package is used, the associated CDT project will be configured accordingly."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="includePaths" ordered="false"
+ unique="false" upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_package" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="libPaths" ordered="false"
+ upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="macros" ordered="false"
+ upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="libs" ordered="false" upperBound="-1"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="includes" ordered="false"
+ upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NoCodeGen">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="No code generation should be done for this element. This also means that no include directive is generated, if the class is referenced."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_element" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Element"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CppRoot">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates that this package shoudl be a root package, i.e. its contents should appear on top level folder during generation. Currently not used"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_package" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="VisibilityKind">
+ <eLiterals name="private"/>
+ <eLiterals name="protected" value="1"/>
+ <eLiterals name="public" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Array">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_parameter" ordered="false"
+ unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Parameter"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="definition" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_property" ordered="false"
+ unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_association" ordered="false"
+ unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Association"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Const">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_parameter" ordered="false"
+ unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Parameter"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_property" ordered="false"
+ unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_operation" ordered="false"
+ unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Operation"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Ref">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_parameter" ordered="false"
+ unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Parameter"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_property" ordered="false"
+ unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="External">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" unique="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Classifier" ordered="false"
+ lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Classifier"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ConstInit">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="initialisation" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_operation" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Operation"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Friend">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_dependency" ordered="false"
+ unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Dependency"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_operation" ordered="false"
+ unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Operation"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Inline">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_operation" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Operation"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Virtual">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_operation" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Operation"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Typedef">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="definition" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_primitivetype" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//PrimitiveType"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Visibility">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_generalization" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Generalization"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CppInit">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_enumerationliteral"
+ ordered="false" unique="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//EnumerationLiteral"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Template">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="declaration" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_class" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TemplateBinding">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="binding" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_templatebinding" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//TemplateBinding"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TemplateParameter">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" unique="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_templateparameter"
+ ordered="false" unique="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//TemplateParameter"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Union">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_DataType" ordered="false"
+ lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//DataType"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="EAccessKind">
+ <eLiterals name="read"/>
+ <eLiterals name="write" value="1"/>
+ <eLiterals name="readWrite" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="EStorageClass">
+ <eLiterals name="volatile"/>
+ <eLiterals name="register" value="1"/>
+ <eLiterals name="extern" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StorageClass">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="storageClass" ordered="false"
+ unique="false" lowerBound="1" eType="#//EStorageClass"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Property" ordered="false"
+ eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Parameter" ordered="false"
+ eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Parameter"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Volatile">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_parameter" ordered="false"
+ unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Parameter"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_property" ordered="false"
+ unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_operation" ordered="false"
+ unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Operation"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Variadic">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_operation" ordered="false"
+ lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Operation">
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Mutable">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_property" ordered="false"
+ lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property">
+ </eStructuralFeatures>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/profiles/C_Cpp.genmodel b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/profiles/C_Cpp.genmodel
new file mode 100644
index 00000000000..1273b29c170
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/profiles/C_Cpp.genmodel
@@ -0,0 +1,196 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:genmodel="http://www.eclipse.org/uml2/2.2.0/GenModel"
+ modelDirectory="/org.eclipse.papyrus.cpp.profile/src" modelPluginID="org.eclipse.papyrus.cpp.profile"
+ modelName="C_Cpp" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+ importerID="org.eclipse.uml2.uml.ecore.importer" complianceLevel="6.0" copyrightFields="false"
+ usedGenPackages="../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore ../../org.eclipse.uml2.types/model/Types.genmodel#//types ../../org.eclipse.uml2.uml/model/UML.genmodel#//uml"
+ operationReflection="true" importOrganizing="true">
+ <genAnnotations source="http://www.eclipse.org/emf/2002/GenModel/importer/org.eclipse.uml2.uml.ecore.importer">
+ <details key="ECORE_TAGGED_VALUES" value="PROCESS"/>
+ <details key="UNION_PROPERTIES" value="REPORT"/>
+ <details key="UNTYPED_PROPERTIES" value="REPORT"/>
+ <details key="DUPLICATE_FEATURES" value="DISCARD"/>
+ <details key="SUBSETTING_PROPERTIES" value="REPORT"/>
+ <details key="VALIDATION_DELEGATES" value="IGNORE"/>
+ <details key="OPPOSITE_ROLE_NAMES" value="IGNORE"/>
+ <details key="COMMENTS" value="PROCESS"/>
+ <details key="DUPLICATE_FEATURE_INHERITANCE" value="DISCARD"/>
+ <details key="DUPLICATE_OPERATIONS" value="DISCARD"/>
+ <details key="PROPERTY_DEFAULT_EXPRESSIONS" value="IGNORE"/>
+ <details key="INVARIANT_CONSTRAINTS" value="PROCESS"/>
+ <details key="REDEFINING_PROPERTIES" value="REPORT"/>
+ <details key="ANNOTATION_DETAILS" value="PROCESS"/>
+ <details key="NON_API_INVARIANTS" value="IGNORE"/>
+ <details key="DUPLICATE_OPERATION_INHERITANCE" value="DISCARD"/>
+ <details key="REDEFINING_OPERATIONS" value="REPORT"/>
+ <details key="INVOCATION_DELEGATES" value="IGNORE"/>
+ <details key="DERIVED_FEATURES" value="PROCESS"/>
+ <details key="OPERATION_BODIES" value="IGNORE"/>
+ <details key="CAMEL_CASE_NAMES" value="IGNORE"/>
+ <details key="SUPER_CLASS_ORDER" value="PROCESS"/>
+ </genAnnotations>
+ <foreignModel>C_Cpp.profile.uml</foreignModel>
+ <genPackages xsi:type="genmodel:GenPackage" prefix="C_Cpp" basePackage="org.eclipse.papyrus"
+ resource="XML" disposableProviderFactory="true" ecorePackage="C_Cpp.ecore#/">
+ <genEnums xsi:type="genmodel:GenEnum" typeSafeEnumCompatible="false" ecoreEnum="C_Cpp.ecore#//VisibilityKind">
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="C_Cpp.ecore#//VisibilityKind/private"/>
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="C_Cpp.ecore#//VisibilityKind/protected"/>
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="C_Cpp.ecore#//VisibilityKind/public"/>
+ </genEnums>
+ <genEnums xsi:type="genmodel:GenEnum" typeSafeEnumCompatible="false" ecoreEnum="C_Cpp.ecore#//EAccessKind">
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="C_Cpp.ecore#//EAccessKind/read"/>
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="C_Cpp.ecore#//EAccessKind/write"/>
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="C_Cpp.ecore#//EAccessKind/readWrite"/>
+ </genEnums>
+ <genEnums xsi:type="genmodel:GenEnum" typeSafeEnumCompatible="false" ecoreEnum="C_Cpp.ecore#//EStorageClass">
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="C_Cpp.ecore#//EStorageClass/volatile"/>
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="C_Cpp.ecore#//EStorageClass/register"/>
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="C_Cpp.ecore#//EStorageClass/extern"/>
+ </genEnums>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="C_Cpp.ecore#//Ptr">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//Ptr/base_parameter"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//Ptr/base_property"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute C_Cpp.ecore#//Ptr/declaration"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="C_Cpp.ecore#//Include">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute C_Cpp.ecore#//Include/body"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute C_Cpp.ecore#//Include/preBody"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute C_Cpp.ecore#//Include/header"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//Include/base_package"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//Include/base_class"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//Include/base_Classifier"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="C_Cpp.ecore#//ManualGeneration">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute C_Cpp.ecore#//ManualGeneration/extensionBody"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//ManualGeneration/base_Class"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="C_Cpp.ecore#//ExternLibrary">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute C_Cpp.ecore#//ExternLibrary/includePaths"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//ExternLibrary/base_package"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute C_Cpp.ecore#//ExternLibrary/libPaths"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute C_Cpp.ecore#//ExternLibrary/macros"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute C_Cpp.ecore#//ExternLibrary/libs"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute C_Cpp.ecore#//ExternLibrary/includes"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="C_Cpp.ecore#//NoCodeGen">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//NoCodeGen/base_element"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="C_Cpp.ecore#//CppRoot">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//CppRoot/base_package"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="C_Cpp.ecore#//Array">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//Array/base_parameter"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute C_Cpp.ecore#//Array/definition"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//Array/base_property"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//Array/base_association"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="C_Cpp.ecore#//Const">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//Const/base_parameter"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//Const/base_property"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//Const/base_operation"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="C_Cpp.ecore#//Ref">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//Ref/base_parameter"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//Ref/base_property"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="C_Cpp.ecore#//External">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute C_Cpp.ecore#//External/name"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//External/base_Classifier"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="C_Cpp.ecore#//ConstInit">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute C_Cpp.ecore#//ConstInit/initialisation"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//ConstInit/base_operation"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="C_Cpp.ecore#//Friend">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//Friend/base_dependency"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//Friend/base_operation"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="C_Cpp.ecore#//Inline">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//Inline/base_operation"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="C_Cpp.ecore#//Virtual">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//Virtual/base_operation"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="C_Cpp.ecore#//Typedef">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute C_Cpp.ecore#//Typedef/definition"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//Typedef/base_primitivetype"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="C_Cpp.ecore#//Visibility">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute C_Cpp.ecore#//Visibility/value"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//Visibility/base_generalization"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="C_Cpp.ecore#//CppInit">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute C_Cpp.ecore#//CppInit/value"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//CppInit/base_enumerationliteral"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="C_Cpp.ecore#//Template">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute C_Cpp.ecore#//Template/declaration"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//Template/base_class"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="C_Cpp.ecore#//TemplateBinding">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute C_Cpp.ecore#//TemplateBinding/binding"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//TemplateBinding/base_templatebinding"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="C_Cpp.ecore#//TemplateParameter">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute C_Cpp.ecore#//TemplateParameter/name"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//TemplateParameter/base_templateparameter"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="C_Cpp.ecore#//Union">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//Union/base_DataType"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="C_Cpp.ecore#//StorageClass">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute C_Cpp.ecore#//StorageClass/storageClass"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//StorageClass/base_Property"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//StorageClass/base_Parameter"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="C_Cpp.ecore#//Volatile">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//Volatile/base_parameter"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//Volatile/base_property"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//Volatile/base_operation"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="C_Cpp.ecore#//Variadic">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//Variadic/base_operation"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="C_Cpp.ecore#//Mutable">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference C_Cpp.ecore#//Mutable/base_property"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/profiles/C_Cpp.profile.di b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/profiles/C_Cpp.profile.di
new file mode 100644
index 00000000000..134e5584ee5
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/profiles/C_Cpp.profile.di
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi">
+ <pageList>
+ <availablePage>
+ <emfPageIdentifier href="C_Cpp.profile.notation#_cj6rMMoREeGKstsYRuxdvw"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="C_Cpp.profile.notation#_UNXagMoSEeGKstsYRuxdvw"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="C_Cpp.profile.notation#_VN2nIMoSEeGKstsYRuxdvw"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="C_Cpp.profile.notation#_tDFW4MoSEeGKstsYRuxdvw"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="C_Cpp.profile.notation#_br8hIJVTEeKBzP_954cAAA"/>
+ </availablePage>
+ </pageList>
+ <sashModel currentSelection="//@sashModel/@windows.0/@children.0">
+ <windows>
+ <children xsi:type="di:TabFolder">
+ <children>
+ <emfPageIdentifier href="C_Cpp.profile.notation#_cj6rMMoREeGKstsYRuxdvw"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="C_Cpp.profile.notation#_UNXagMoSEeGKstsYRuxdvw"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="C_Cpp.profile.notation#_VN2nIMoSEeGKstsYRuxdvw"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="C_Cpp.profile.notation#_br8hIJVTEeKBzP_954cAAA"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="C_Cpp.profile.notation#_tDFW4MoSEeGKstsYRuxdvw"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+</di:SashWindowsMngr>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/profiles/C_Cpp.profile.notation b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/profiles/C_Cpp.profile.notation
new file mode 100644
index 00000000000..5acb64df288
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/profiles/C_Cpp.profile.notation
@@ -0,0 +1,1835 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_cj6rMMoREeGKstsYRuxdvw" type="PapyrusUMLProfileDiagram" name="Modifiers" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_f4EjkMoREeGKstsYRuxdvw" type="1026" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f4EjksoREeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f4Ejk8oREeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f4FKoMoREeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f4FKocoREeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f4FKosoREeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f4FKo8oREeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_f4FKpMoREeGKstsYRuxdvw" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_f4FKpcoREeGKstsYRuxdvw" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_5yzLwNY8EeGH9LIP6-_nLw" type="3002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H04mcNY9EeGH9LIP6-_nLw" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_csbMII1PEeKTUILNxKtfZw" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_DvCRMKYNEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>multiplicity</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="C_Cpp.profile.uml#_5xNQUNY8EeGH9LIP6-_nLw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5yzLwdY8EeGH9LIP6-_nLw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_f4FKpsoREeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_f4FKp8oREeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_f4FKqMoREeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f4FKqcoREeGKstsYRuxdvw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_f4FKqsoREeGKstsYRuxdvw" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_f4FKq8oREeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_f4FKrMoREeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_f4FKrcoREeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f4FKrsoREeGKstsYRuxdvw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="C_Cpp.profile.uml#_19ZzgByHEduN1bTiWJ0lyw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f4EjkcoREeGKstsYRuxdvw" x="280" y="174" width="201" height="82"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_f4faUMoREeGKstsYRuxdvw" type="1031" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f4faUsoREeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f4faU8oREeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f4faVMoREeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f4gBYMoREeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f4gBYcoREeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f4gBYsoREeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_f4gBY8oREeGKstsYRuxdvw" type="1084"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fybLcFCbEeWdH-pLiDvc5A" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_fybLcVCbEeWdH-pLiDvc5A" name="stereotype" stringValue="StandardProfile::Metaclass"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fybLclCbEeWdH-pLiDvc5A"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Parameter"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f4faUcoREeGKstsYRuxdvw" x="80" y="20" width="700" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gcSD4MoREeGKstsYRuxdvw" type="1026" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gcSq8MoREeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gcSq8coREeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gcSq8soREeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gcSq88oREeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gcSq9MoREeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gcSq9coREeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gcSq9soREeGKstsYRuxdvw" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gcSq98oREeGKstsYRuxdvw" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gcSq-MoREeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gcSq-coREeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gcSq-soREeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gcSq-8oREeGKstsYRuxdvw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gcTSAMoREeGKstsYRuxdvw" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gcTSAcoREeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gcTSAsoREeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gcTSA8oREeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gcTSBMoREeGKstsYRuxdvw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="C_Cpp.profile.uml#_2VwCEByHEduN1bTiWJ0lyw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gcSD4coREeGKstsYRuxdvw" x="503" y="174" height="81"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_hA3-sMoREeGKstsYRuxdvw" type="1026" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hA4lwMoREeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hA4lwcoREeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hA4lwsoREeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hA4lw8oREeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hA4lxMoREeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hA4lxcoREeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hA4lxsoREeGKstsYRuxdvw" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hA4lx8oREeGKstsYRuxdvw" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hA4lyMoREeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hA4lycoREeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hA4lysoREeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hA4ly8oREeGKstsYRuxdvw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hA5M0MoREeGKstsYRuxdvw" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hA5M0coREeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hA5M0soREeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hA5M08oREeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hA5M1MoREeGKstsYRuxdvw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="C_Cpp.profile.uml#_l2faUByHEduN1bTiWJ0lyw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hA3-scoREeGKstsYRuxdvw" x="627" y="174" height="81"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_hBS1cMoREeGKstsYRuxdvw" type="1031" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hBS1csoREeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hBS1c8oREeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hBTcgMoREeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hBTcgcoREeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hBTcgsoREeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hBTcg8oREeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hBTchMoREeGKstsYRuxdvw" type="1084"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fzb4EFCbEeWdH-pLiDvc5A" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_fzb4EVCbEeWdH-pLiDvc5A" name="stereotype" stringValue="StandardProfile::Metaclass"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fzb4ElCbEeWdH-pLiDvc5A"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hBS1ccoREeGKstsYRuxdvw" x="200" y="340" width="641" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1D62QMoREeGKstsYRuxdvw" type="1026" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1D7dUMoREeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1D8EYMoREeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1D8EYcoREeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1D8EYsoREeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1D8EY8oREeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1D8EZMoREeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1D8EZcoREeGKstsYRuxdvw" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1D8EZsoREeGKstsYRuxdvw" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1D8EZ8oREeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1D8EaMoREeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1D8EacoREeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1D8EasoREeGKstsYRuxdvw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1D8rcMoREeGKstsYRuxdvw" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1D8rccoREeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1D8rcsoREeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1D8rc8oREeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1D8rdMoREeGKstsYRuxdvw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="C_Cpp.profile.uml#_e6bN0ByMEdu0tMSz-ceC5A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1D62QcoREeGKstsYRuxdvw" x="876" y="174" height="81"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1ujusMoREeGKstsYRuxdvw" type="1031" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1ujussoREeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1ujus8oREeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1ujutMoREeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1ujutcoREeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1ujutsoREeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1ukVwMoREeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1ukVwcoREeGKstsYRuxdvw" type="1084"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_f0EKMFCbEeWdH-pLiDvc5A" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_f0EKMVCbEeWdH-pLiDvc5A" name="stereotype" stringValue="StandardProfile::Metaclass"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f0EKMlCbEeWdH-pLiDvc5A"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Dependency"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1ujuscoREeGKstsYRuxdvw" x="880" y="340" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2QldsMoREeGKstsYRuxdvw" type="1031" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2QldssoREeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2Qlds8oREeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2QldtMoREeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2QldtcoREeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2QldtsoREeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2QmEwMoREeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2QmEwcoREeGKstsYRuxdvw" type="1084"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_f0pZAFCbEeWdH-pLiDvc5A" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_f0pZAVCbEeWdH-pLiDvc5A" name="stereotype" stringValue="StandardProfile::Metaclass"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f0pZAlCbEeWdH-pLiDvc5A"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2QldscoREeGKstsYRuxdvw" x="800" y="20" width="561" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_4yVowMoREeGKstsYRuxdvw" type="1026" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4yWP0MoREeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4yWP0coREeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4yWP0soREeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4yWP08oREeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4yW24MoREeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4yW24coREeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4yW24soREeGKstsYRuxdvw" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4yW248oREeGKstsYRuxdvw" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4yW25MoREeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_4yW25coREeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_4yW25soREeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4yW258oREeGKstsYRuxdvw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4yW26MoREeGKstsYRuxdvw" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4yW26coREeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_4yW26soREeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_4yW268oREeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4yW27MoREeGKstsYRuxdvw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="C_Cpp.profile.uml#_lfbL4ByMEdu0tMSz-ceC5A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4yVowcoREeGKstsYRuxdvw" x="1011" y="174" height="81"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_51_eIMoREeGKstsYRuxdvw" type="1026" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_52AFMMoREeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_52AFMcoREeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_52AsQMoREeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_52AsQcoREeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_52AsQsoREeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_52AsQ8oREeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_52AsRMoREeGKstsYRuxdvw" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_52AsRcoREeGKstsYRuxdvw" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_52AsRsoREeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_52AsR8oREeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_52AsSMoREeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_52AsScoREeGKstsYRuxdvw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_52BTUMoREeGKstsYRuxdvw" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_52BTUcoREeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_52BTUsoREeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_52BTU8oREeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_52BTVMoREeGKstsYRuxdvw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="C_Cpp.profile.uml#_FA2LQByNEdu0tMSz-ceC5A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_51_eIcoREeGKstsYRuxdvw" x="1137" y="174" height="81"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AFKQUMp5EeGa7fAyIn2eXA" type="1026" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AFN6sMp5EeGa7fAyIn2eXA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AFN6scp5EeGa7fAyIn2eXA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AFN6ssp5EeGa7fAyIn2eXA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AFN6s8p5EeGa7fAyIn2eXA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AFOhwMp5EeGa7fAyIn2eXA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AFOhwcp5EeGa7fAyIn2eXA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AFOhwsp5EeGa7fAyIn2eXA" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AFOhw8p5EeGa7fAyIn2eXA" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_my3T0I1TEeKTUILNxKtfZw" type="3002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_okBIYI1TEeKTUILNxKtfZw" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sH10cI1TEeKTUILNxKtfZw" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_EnXnYKYNEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="C_Cpp.profile.uml#_a8S9oByHEduN1bTiWJ0lyw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_my3T0Y1TEeKTUILNxKtfZw" x="49" y="17"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AFOhxMp5EeGa7fAyIn2eXA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AFOhxcp5EeGa7fAyIn2eXA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AFOhxsp5EeGa7fAyIn2eXA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AFOhx8p5EeGa7fAyIn2eXA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AFPI0Mp5EeGa7fAyIn2eXA" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AFPI0cp5EeGa7fAyIn2eXA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AFPI0sp5EeGa7fAyIn2eXA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AFPI08p5EeGa7fAyIn2eXA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AFPI1Mp5EeGa7fAyIn2eXA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="C_Cpp.profile.uml#_WgwmcByHEduN1bTiWJ0lyw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AFKQUcp5EeGa7fAyIn2eXA" x="80" y="174" width="181" height="81"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AGCaEMp5EeGa7fAyIn2eXA" type="1031" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AGDBIMp5EeGa7fAyIn2eXA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AGDoMMp5EeGa7fAyIn2eXA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AGDoMcp5EeGa7fAyIn2eXA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AGDoMsp5EeGa7fAyIn2eXA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AGDoM8p5EeGa7fAyIn2eXA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AGDoNMp5EeGa7fAyIn2eXA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AGDoNcp5EeGa7fAyIn2eXA" type="1084"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_f1YY0FCbEeWdH-pLiDvc5A" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_f1YY0VCbEeWdH-pLiDvc5A" name="stereotype" stringValue="StandardProfile::Metaclass"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f1YY0lCbEeWdH-pLiDvc5A"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Association"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AGCaEcp5EeGa7fAyIn2eXA" x="80" y="340" width="100" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Kbn_MNY9EeGH9LIP6-_nLw" type="1002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KbpNUNY9EeGH9LIP6-_nLw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KbpNUdY9EeGH9LIP6-_nLw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KbpNUtY9EeGH9LIP6-_nLw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KbpNU9Y9EeGH9LIP6-_nLw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Kbp0YNY9EeGH9LIP6-_nLw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Kbp0YdY9EeGH9LIP6-_nLw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Kbp0YtY9EeGH9LIP6-_nLw" type="3"/>
+ <element xmi:type="uml:Comment" href="C_Cpp.profile.uml#_KaTwkNY9EeGH9LIP6-_nLw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Kbn_MdY9EeGH9LIP6-_nLw" x="216" y="78" width="191" height="63"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Oin68F5fEeKpvPHLdOdp2Q" type="1031" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OitagF5fEeKpvPHLdOdp2Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OitagV5fEeKpvPHLdOdp2Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OiuBkF5fEeKpvPHLdOdp2Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OiuBkV5fEeKpvPHLdOdp2Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OiuooF5fEeKpvPHLdOdp2Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OiuooV5fEeKpvPHLdOdp2Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Oiuool5fEeKpvPHLdOdp2Q" type="1084"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_f1-OsFCbEeWdH-pLiDvc5A" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_f1-OsVCbEeWdH-pLiDvc5A" name="stereotype" stringValue="StandardProfile::Metaclass"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f1-OslCbEeWdH-pLiDvc5A"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#DataType"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OivPsF5fEeKpvPHLdOdp2Q" x="1020" y="340" width="101" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QCi1kF5fEeKpvPHLdOdp2Q" type="1026" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QCjcoF5fEeKpvPHLdOdp2Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QCjcoV5fEeKpvPHLdOdp2Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QCjcol5fEeKpvPHLdOdp2Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QCjco15fEeKpvPHLdOdp2Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QCjcpF5fEeKpvPHLdOdp2Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QCjcpV5fEeKpvPHLdOdp2Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QCjcpl5fEeKpvPHLdOdp2Q" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QCjcp15fEeKpvPHLdOdp2Q" visible="false" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QCjcqF5fEeKpvPHLdOdp2Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QCjcqV5fEeKpvPHLdOdp2Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QCjcql5fEeKpvPHLdOdp2Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QCjcq15fEeKpvPHLdOdp2Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QCjcrF5fEeKpvPHLdOdp2Q" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QCjcrV5fEeKpvPHLdOdp2Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QCjcrl5fEeKpvPHLdOdp2Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QCjcr15fEeKpvPHLdOdp2Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QCjcsF5fEeKpvPHLdOdp2Q"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="C_Cpp.profile.uml#_QCUzIF5fEeKpvPHLdOdp2Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QCi1kV5fEeKpvPHLdOdp2Q" x="1020" y="420" width="101" height="55"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_yA2SYPuNEeOuv40UUNEbNQ" type="1026" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yA2SYfuNEeOuv40UUNEbNQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yA2SYvuNEeOuv40UUNEbNQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yA2SY_uNEeOuv40UUNEbNQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yA2SZPuNEeOuv40UUNEbNQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yA2SZfuNEeOuv40UUNEbNQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yA2SZvuNEeOuv40UUNEbNQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yA2SZ_uNEeOuv40UUNEbNQ" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_yA2SaPuNEeOuv40UUNEbNQ" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_yA2SafuNEeOuv40UUNEbNQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_yA2SavuNEeOuv40UUNEbNQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_yA2Sa_uNEeOuv40UUNEbNQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yA2SbPuNEeOuv40UUNEbNQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_yA2SbfuNEeOuv40UUNEbNQ" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_yA2SbvuNEeOuv40UUNEbNQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_yA2Sb_uNEeOuv40UUNEbNQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_yA2ScPuNEeOuv40UUNEbNQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yA2ScfuNEeOuv40UUNEbNQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="C_Cpp.profile.uml#_yA1EQPuNEeOuv40UUNEbNQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yA2SdfuNEeOuv40UUNEbNQ" x="740" y="174" width="110" height="81"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_fzBoYFCbEeWdH-pLiDvc5A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_fzBoYVCbEeWdH-pLiDvc5A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_fzBoY1CbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Parameter"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fzBoYlCbEeWdH-pLiDvc5A" x="280" y="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_fztk4FCbEeWdH-pLiDvc5A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_fztk4VCbEeWdH-pLiDvc5A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_fztk41CbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fztk4lCbEeWdH-pLiDvc5A" x="400" y="340"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_f0WeEFCbEeWdH-pLiDvc5A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_f0WeEVCbEeWdH-pLiDvc5A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_f0WeE1CbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Dependency"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f0WeElCbEeWdH-pLiDvc5A" x="1080" y="340"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_f07F0FCbEeWdH-pLiDvc5A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_f07F0VCbEeWdH-pLiDvc5A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_f07s4FCbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f07F0lCbEeWdH-pLiDvc5A" x="1000" y="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_f1qFoFCbEeWdH-pLiDvc5A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_f1qFoVCbEeWdH-pLiDvc5A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_f1qFo1CbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Association"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f1qFolCbEeWdH-pLiDvc5A" x="280" y="340"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_f2P7gFCbEeWdH-pLiDvc5A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_f2P7gVCbEeWdH-pLiDvc5A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_f2P7g1CbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#DataType"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f2P7glCbEeWdH-pLiDvc5A" x="1220" y="340"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cLUrAHDeEeWeeNq7pVC2_w" type="1026">
+ <children xmi:type="notation:DecorationNode" xmi:id="_cLWgMHDeEeWeeNq7pVC2_w" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cLWgMXDeEeWeeNq7pVC2_w" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cLWgMnDeEeWeeNq7pVC2_w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cLWgM3DeEeWeeNq7pVC2_w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cLWgNHDeEeWeeNq7pVC2_w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cLWgNXDeEeWeeNq7pVC2_w"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cLWgNnDeEeWeeNq7pVC2_w" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cLWgN3DeEeWeeNq7pVC2_w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cLWgOHDeEeWeeNq7pVC2_w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cLWgOXDeEeWeeNq7pVC2_w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cLWgOnDeEeWeeNq7pVC2_w"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="C_Cpp.profile.uml#_cKKNYHDeEeWeeNq7pVC2_w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cLUrAXDeEeWeeNq7pVC2_w" x="1273" y="158" height="82"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Os81kHGHEeWRFvcel2rJKQ" type="1026">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Os-qwHGHEeWRFvcel2rJKQ" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Os_R0HGHEeWRFvcel2rJKQ" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Os_R0XGHEeWRFvcel2rJKQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Os_R0nGHEeWRFvcel2rJKQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Os_R03GHEeWRFvcel2rJKQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Os_R1HGHEeWRFvcel2rJKQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Os_R1XGHEeWRFvcel2rJKQ" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Os_R1nGHEeWRFvcel2rJKQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Os_R13GHEeWRFvcel2rJKQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Os_R2HGHEeWRFvcel2rJKQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Os_R2XGHEeWRFvcel2rJKQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="C_Cpp.profile.uml#_OsMnoHGHEeWRFvcel2rJKQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Os81kXGHEeWRFvcel2rJKQ" x="478" y="438" height="86"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_cj6rMcoREeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_fn4vYFCbEeWdH-pLiDvc5A" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Profile" href="C_Cpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_f5Mk8MoREeGKstsYRuxdvw" type="1013" source="_f4EjkMoREeGKstsYRuxdvw" target="_f4faUMoREeGKstsYRuxdvw" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_f5Mk8coREeGKstsYRuxdvw" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="C_Cpp.profile.uml#_Vb-6QByIEduN1bTiWJ0lyw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f5Mk8soREeGKstsYRuxdvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KPRycKYKEeSti6341zpcDg" id="(0.6915422885572139,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TUdoIPuOEeOuv40UUNEbNQ" id="(0.48428571428571426,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_gcvW4MoREeGKstsYRuxdvw" type="1013" source="_gcSD4MoREeGKstsYRuxdvw" target="_f4faUMoREeGKstsYRuxdvw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_gcvW4coREeGKstsYRuxdvw" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="C_Cpp.profile.uml#_V-ysYByIEduN1bTiWJ0lyw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gcvW4soREeGKstsYRuxdvw" points="[0, 0, -133, -30]$[83, 18, -50, -12]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rkf6APuNEeOuv40UUNEbNQ" id="(0.51,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__VvW0Mp-EeGa7fAyIn2eXA" id="(0.6771428571428572,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_hBtsMMoREeGKstsYRuxdvw" type="1013" source="_hA3-sMoREeGKstsYRuxdvw" target="_hBS1cMoREeGKstsYRuxdvw" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_hBtsMcoREeGKstsYRuxdvw" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="C_Cpp.profile.uml#_kJ5gMByIEduN1bTiWJ0lyw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hBtsMsoREeGKstsYRuxdvw" points="[-5, 9, 47, -90]$[-5, 99, 47, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rk5ioPuNEeOuv40UUNEbNQ" id="(0.58,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_t6c5MMoREeGKstsYRuxdvw" id="(0.7566302652106084,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_hh-goMoREeGKstsYRuxdvw" type="1013" source="_f4EjkMoREeGKstsYRuxdvw" target="_hBS1cMoREeGKstsYRuxdvw" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_hh_HsMoREeGKstsYRuxdvw" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="C_Cpp.profile.uml#_lzRRwByIEduN1bTiWJ0lyw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hh_HscoREeGKstsYRuxdvw" points="[392, 256, -643984, -643984]$[392, 340, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rkQpcPuNEeOuv40UUNEbNQ" id="(0.5572139303482587,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tS-pgMoREeGKstsYRuxdvw" id="(0.2995319812792512,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_k7v40MoREeGKstsYRuxdvw" type="1013" source="_gcSD4MoREeGKstsYRuxdvw" target="_hBS1cMoREeGKstsYRuxdvw" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_k7v40coREeGKstsYRuxdvw" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="C_Cpp.profile.uml#_mb27wByIEduN1bTiWJ0lyw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_k7v40soREeGKstsYRuxdvw" points="[49, 0, 33, -114]$[49, 89, 33, -25]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rkrgMPuNEeOuv40UUNEbNQ" id="(0.4,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IA5H8KYNEeSti6341zpcDg" id="(0.5351014040561622,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_wqyS0MoREeGKstsYRuxdvw" type="1013" source="_hA3-sMoREeGKstsYRuxdvw" target="_f4faUMoREeGKstsYRuxdvw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_wqyS0coREeGKstsYRuxdvw" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="C_Cpp.profile.uml#_q3wUwByHEduN1bTiWJ0lyw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wqyS0soREeGKstsYRuxdvw" points="[-42, -50, 92, 110]$[-114, -135, 20, 25]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rkghEPuNEeOuv40UUNEbNQ" id="(0.44,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xdVxIMoREeGKstsYRuxdvw" id="(0.8442857142857143,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_1u7iIMoREeGKstsYRuxdvw" type="1013" source="_1D62QMoREeGKstsYRuxdvw" target="_1ujusMoREeGKstsYRuxdvw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_1u7iIcoREeGKstsYRuxdvw" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="C_Cpp.profile.uml#_gvyM8ByMEdu0tMSz-ceC5A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1u7iIsoREeGKstsYRuxdvw" points="[-50, -16, 675, 205]$[-725, -221, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rlSkMPuNEeOuv40UUNEbNQ" id="(0.54,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TJ1LQKYNEeSti6341zpcDg" id="(0.5,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_2Q9RIMoREeGKstsYRuxdvw" type="1013" source="_1D62QMoREeGKstsYRuxdvw" target="_2QldsMoREeGKstsYRuxdvw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_2Q9RIcoREeGKstsYRuxdvw" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="C_Cpp.profile.uml#_hPPwIByMEdu0tMSz-ceC5A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2Q9RIsoREeGKstsYRuxdvw" points="[-50, -16, 675, 205]$[-725, -221, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rlTLQfuNEeOuv40UUNEbNQ" id="(0.61,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HVmd4MoSEeGKstsYRuxdvw" id="(0.24420677361853832,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_4ywfgMoREeGKstsYRuxdvw" type="1013" source="_4yVowMoREeGKstsYRuxdvw" target="_2QldsMoREeGKstsYRuxdvw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_4ywfgcoREeGKstsYRuxdvw" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="C_Cpp.profile.uml#_n1PMsByMEdu0tMSz-ceC5A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4ywfgsoREeGKstsYRuxdvw" points="[0, 0, -707, -61]$[657, 56, -50, -5]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_L1kTcKYNEeSti6341zpcDg" id="(0.59,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_I59zoMoSEeGKstsYRuxdvw" id="(0.48128342245989303,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7BzxAMoREeGKstsYRuxdvw" type="1013" source="_51_eIMoREeGKstsYRuxdvw" target="_2QldsMoREeGKstsYRuxdvw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_7BzxAcoREeGKstsYRuxdvw" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="C_Cpp.profile.uml#_K5gnwByNEdu0tMSz-ceC5A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7BzxAsoREeGKstsYRuxdvw" points="[-50, -30, 217, 130]$[-226, -135, 41, 25]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_L1k6gKYNEeSti6341zpcDg" id="(0.63,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_If9_QMoSEeGKstsYRuxdvw" id="(0.7130124777183601,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_fjeXIMoSEeGKstsYRuxdvw" type="1013" source="_hA3-sMoREeGKstsYRuxdvw" target="_2QldsMoREeGKstsYRuxdvw" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_fjeXIcoSEeGKstsYRuxdvw" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="C_Cpp.profile.uml#_ThSyYByMEdu0tMSz-ceC5A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_fjeXIsoSEeGKstsYRuxdvw" points="[689, 174, -643984, -643984]$[689, 123, -643984, -643984]$[808, 123, -643984, -643984]$[808, 61, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_EELT8MoTEeGKstsYRuxdvw" id="(0.62,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hkYe8MoSEeGKstsYRuxdvw" id="(0.017817371937639197,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_AHl5QMp5EeGa7fAyIn2eXA" type="1013" source="_AFKQUMp5EeGa7fAyIn2eXA" target="_AGCaEMp5EeGa7fAyIn2eXA" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_AHl5Qcp5EeGa7fAyIn2eXA" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="C_Cpp.profile.uml#_gufsIByPEduuTv8efIb91A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AHl5Qsp5EeGa7fAyIn2eXA" points="[67, 41, -5, -114]$[67, 130, -5, -25]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7PAn4I1TEeKTUILNxKtfZw" id="(0.24861878453038674,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rmBkAPuNEeOuv40UUNEbNQ" id="(0.45,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_0NWGEMp-EeGa7fAyIn2eXA" type="1013" source="_AFKQUMp5EeGa7fAyIn2eXA" target="_hBS1cMoREeGKstsYRuxdvw" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_0NWGEcp-EeGa7fAyIn2eXA" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="C_Cpp.profile.uml#_jeImYByIEduN1bTiWJ0lyw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0NWGEsp-EeGa7fAyIn2eXA" points="[-32, 0, -4, -97]$[-32, 91, -4, -6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zb4p0I1TEeKTUILNxKtfZw" id="(0.8839779005524862,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Bkd4MMp_EeGa7fAyIn2eXA" id="(0.062402496099843996,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_1jG_IMp-EeGa7fAyIn2eXA" type="1013" source="_AFKQUMp5EeGa7fAyIn2eXA" target="_f4faUMoREeGKstsYRuxdvw" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_1jG_Icp-EeGa7fAyIn2eXA" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="C_Cpp.profile.uml#_Z4QGsByHEduN1bTiWJ0lyw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1jG_Isp-EeGa7fAyIn2eXA" points="[-4, 0, 6, 83]$[-4, -83, 6, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4_BiQI1TEeKTUILNxKtfZw" id="(0.48066298342541436,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__wWPMMp-EeGa7fAyIn2eXA" id="(0.12428571428571429,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_M8Z54NY9EeGH9LIP6-_nLw" type="1022" source="_Kbn_MNY9EeGH9LIP6-_nLw" target="_f4EjkMoREeGKstsYRuxdvw" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_M8Z54dY9EeGH9LIP6-_nLw" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_M8Z54tY9EeGH9LIP6-_nLw" points="[335, 150, -643984, -643984]$[335, 174, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M8gnkNY9EeGH9LIP6-_nLw" id="(0.6230366492146597,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M8gnkdY9EeGH9LIP6-_nLw" id="(0.2736318407960199,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_R-KNsF5fEeKpvPHLdOdp2Q" type="1013" source="_QCi1kF5fEeKpvPHLdOdp2Q" target="_Oin68F5fEeKpvPHLdOdp2Q" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_R-KNsV5fEeKpvPHLdOdp2Q" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="C_Cpp.profile.uml#_R-F8QV5fEeKpvPHLdOdp2Q"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_R-KNsl5fEeKpvPHLdOdp2Q" points="[8, -3, 0, 49]$[8, -43, 0, 9]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_R-PtQF5fEeKpvPHLdOdp2Q" id="(0.54,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UZgDYKYNEeSti6341zpcDg" id="(0.54,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_oBcioPuQEeOuv40UUNEbNQ" type="1013" source="_yA2SYPuNEeOuv40UUNEbNQ" target="_f4faUMoREeGKstsYRuxdvw" routing="Rectilinear">
+ <styles xmi:type="notation:FontStyle" xmi:id="_oBciofuQEeOuv40UUNEbNQ"/>
+ <element xmi:type="uml:Extension" href="C_Cpp.profile.uml#_oBZfUfuQEeOuv40UUNEbNQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_oBciovuQEeOuv40UUNEbNQ" points="[761, 174, -643984, -643984]$[761, 61, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oBgNAPuQEeOuv40UUNEbNQ" id="(0.2,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oBgNAfuQEeOuv40UUNEbNQ" id="(0.9742857142857143,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7PnnsPuQEeOuv40UUNEbNQ" type="1013" source="_yA2SYPuNEeOuv40UUNEbNQ" target="_hBS1cMoREeGKstsYRuxdvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_7PnnsfuQEeOuv40UUNEbNQ"/>
+ <element xmi:type="uml:Extension" href="C_Cpp.profile.uml#_7Pg6APuQEeOuv40UUNEbNQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7PnnsvuQEeOuv40UUNEbNQ" points="[1, 15, 0, -98]$[58, 109, 57, -4]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7PqrAPuQEeOuv40UUNEbNQ" id="(0.39090909090909093,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7PqrAfuQEeOuv40UUNEbNQ" id="(0.9095163806552262,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_-qfMEPuQEeOuv40UUNEbNQ" type="1013" source="_yA2SYPuNEeOuv40UUNEbNQ" target="_2QldsMoREeGKstsYRuxdvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_-qfMEfuQEeOuv40UUNEbNQ"/>
+ <element xmi:type="uml:Extension" href="C_Cpp.profile.uml#_-qZFcPuQEeOuv40UUNEbNQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-qfMEvuQEeOuv40UUNEbNQ" points="[4, -16, 0, 103]$[-24, -119, -28, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-qi2cPuQEeOuv40UUNEbNQ" id="(0.7727272727272727,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-qi2cfuQEeOuv40UUNEbNQ" id="(0.0556792873051225,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_fzBoZFCbEeWdH-pLiDvc5A" type="StereotypeCommentLink" source="_f4faUMoREeGKstsYRuxdvw" target="_fzBoYFCbEeWdH-pLiDvc5A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_fzBoZVCbEeWdH-pLiDvc5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_fzCPcFCbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Parameter"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_fzBoZlCbEeWdH-pLiDvc5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fzBoZ1CbEeWdH-pLiDvc5A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fzBoaFCbEeWdH-pLiDvc5A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_fztk5FCbEeWdH-pLiDvc5A" type="StereotypeCommentLink" source="_hBS1cMoREeGKstsYRuxdvw" target="_fztk4FCbEeWdH-pLiDvc5A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_fztk5VCbEeWdH-pLiDvc5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_fzuL8FCbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_fztk5lCbEeWdH-pLiDvc5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fztk51CbEeWdH-pLiDvc5A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fztk6FCbEeWdH-pLiDvc5A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_f0WeFFCbEeWdH-pLiDvc5A" type="StereotypeCommentLink" source="_1ujusMoREeGKstsYRuxdvw" target="_f0WeEFCbEeWdH-pLiDvc5A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_f0WeFVCbEeWdH-pLiDvc5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_f0WeGVCbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Dependency"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f0WeFlCbEeWdH-pLiDvc5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f0WeF1CbEeWdH-pLiDvc5A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f0WeGFCbEeWdH-pLiDvc5A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_f07s4VCbEeWdH-pLiDvc5A" type="StereotypeCommentLink" source="_2QldsMoREeGKstsYRuxdvw" target="_f07F0FCbEeWdH-pLiDvc5A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_f07s4lCbEeWdH-pLiDvc5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_f07s5lCbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f07s41CbEeWdH-pLiDvc5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f07s5FCbEeWdH-pLiDvc5A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f07s5VCbEeWdH-pLiDvc5A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_f1qFpFCbEeWdH-pLiDvc5A" type="StereotypeCommentLink" source="_AGCaEMp5EeGa7fAyIn2eXA" target="_f1qFoFCbEeWdH-pLiDvc5A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_f1qFpVCbEeWdH-pLiDvc5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_f1qFqVCbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Association"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f1qFplCbEeWdH-pLiDvc5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f1qFp1CbEeWdH-pLiDvc5A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f1qFqFCbEeWdH-pLiDvc5A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_f2P7hFCbEeWdH-pLiDvc5A" type="StereotypeCommentLink" source="_Oin68F5fEeKpvPHLdOdp2Q" target="_f2P7gFCbEeWdH-pLiDvc5A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_f2P7hVCbEeWdH-pLiDvc5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_f2P7iVCbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#DataType"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f2P7hlCbEeWdH-pLiDvc5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f2P7h1CbEeWdH-pLiDvc5A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f2P7iFCbEeWdH-pLiDvc5A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kLBFcHDeEeWeeNq7pVC2_w" type="1013" source="_cLUrAHDeEeWeeNq7pVC2_w" target="_2QldsMoREeGKstsYRuxdvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_kLBFcXDeEeWeeNq7pVC2_w"/>
+ <element xmi:type="uml:Extension" href="C_Cpp.profile.uml#_kJ_KsHDeEeWeeNq7pVC2_w"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kLBFcnDeEeWeeNq7pVC2_w" points="[4, -50, 0, 117]$[51, -167, 47, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kMIfwHDeEeWeeNq7pVC2_w" id="(0.46,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kMIfwXDeEeWeeNq7pVC2_w" id="(0.9251336898395722,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_RAKOUHGHEeWRFvcel2rJKQ" type="1013" source="_Os81kHGHEeWRFvcel2rJKQ" target="_hBS1cMoREeGKstsYRuxdvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_RAKOUXGHEeWRFvcel2rJKQ"/>
+ <element xmi:type="uml:Extension" href="C_Cpp.profile.uml#_Q_sUQHGHEeWRFvcel2rJKQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RAKOUnGHEeWRFvcel2rJKQ" points="[4, -50, 12, 78]$[313, -133, 321, -5]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RBH3oHGHEeWRFvcel2rJKQ" id="(0.49,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RBH3oXGHEeWRFvcel2rJKQ" id="(0.5101404056162246,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_UNXagMoSEeGKstsYRuxdvw" type="PapyrusUMLProfileDiagram" name="Tweaks" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_XJFkwMoSEeGKstsYRuxdvw" type="1026" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XJGy4MoSEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XJGy4coSEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XJGy4soSEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XJGy48oSEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XJGy5MoSEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XJGy5coSEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XJGy5soSEeGKstsYRuxdvw" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_XJGy58oSEeGKstsYRuxdvw" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_lyQz0P2HEeGbWP4cpLE0gg" type="3002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fIJAoI1PEeKTUILNxKtfZw" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Bjo_IOL9EeKxe91u-BdTVQ" key="CustomAppearance_MaskValue" value="60"/>
+ </eAnnotations>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_s1AwAKYNEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>multiplicity</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="C_Cpp.profile.uml#_XU2q8ByJEduN1bTiWJ0lyw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lyQz0f2HEeGbWP4cpLE0gg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lyRa4P2HEeGbWP4cpLE0gg" type="3002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fIJnsI1PEeKTUILNxKtfZw" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BHIpUOL9EeKxe91u-BdTVQ" key="CustomAppearance_MaskValue" value="60"/>
+ </eAnnotations>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_tRDy0KYNEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>multiplicity</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="C_Cpp.profile.uml#_YtvwgByJEduN1bTiWJ0lyw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lyRa4f2HEeGbWP4cpLE0gg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_r9p_EP2HEeGbWP4cpLE0gg" type="3002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fIKOwI1PEeKTUILNxKtfZw" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Aey28OL9EeKxe91u-BdTVQ" key="CustomAppearance_MaskValue" value="60"/>
+ </eAnnotations>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_tqEIsKYNEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>multiplicity</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="C_Cpp.profile.uml#_r9C7EP2HEeGbWP4cpLE0gg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_r9p_Ef2HEeGbWP4cpLE0gg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XJGy6MoSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_XJGy6coSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_XJGy6soSEeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XJHZ8MoSEeGKstsYRuxdvw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_XJHZ8coSEeGKstsYRuxdvw" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XJHZ8soSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_XJHZ88oSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_XJHZ9MoSEeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XJHZ9coSEeGKstsYRuxdvw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="C_Cpp.profile.uml#_RwTdQByJEduN1bTiWJ0lyw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XJFkwcoSEeGKstsYRuxdvw" x="400" y="120" width="201" height="121"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XzsA8MoSEeGKstsYRuxdvw" type="1031" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XzsoAMoSEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XztPEMoSEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XztPEcoSEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XztPEsoSEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XztPE8oSEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XztPFMoSEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XztPFcoSEeGKstsYRuxdvw" type="1084"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_f81rsFCbEeWdH-pLiDvc5A" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_f81rsVCbEeWdH-pLiDvc5A" name="stereotype" stringValue="StandardProfile::Metaclass"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f81rslCbEeWdH-pLiDvc5A"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XzsA8coSEeGKstsYRuxdvw" x="20" y="40" width="440" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_YR4Y0MoSEeGKstsYRuxdvw" type="1031" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YR4_4coSEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YR5m8MoSEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YR5m8coSEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YR5m8soSEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YR5m88oSEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YR5m9MoSEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YR5m9coSEeGKstsYRuxdvw" type="1084"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_f9Uz4FCbEeWdH-pLiDvc5A" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_f9Uz4VCbEeWdH-pLiDvc5A" name="stereotype" stringValue="StandardProfile::Metaclass"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f9Uz4lCbEeWdH-pLiDvc5A"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YR4_4MoSEeGKstsYRuxdvw" x="20" y="400" width="481" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Z1AYcMoSEeGKstsYRuxdvw" type="1026" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Z1A_gMoSEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z1A_gcoSEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Z1A_gsoSEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z1BmkMoSEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Z1BmkcoSEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z1BmksoSEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Z1Bmk8oSEeGKstsYRuxdvw" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Z1BmlMoSEeGKstsYRuxdvw" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Z1BmlcoSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Z1BmlsoSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Z1Bml8oSEeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Z1BmmMoSEeGKstsYRuxdvw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Z1BmmcoSEeGKstsYRuxdvw" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Z1BmmsoSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Z1Bmm8oSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Z1BmnMoSEeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Z1BmncoSEeGKstsYRuxdvw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="C_Cpp.profile.uml#_u3zF8ByLEdu0tMSz-ceC5A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Z1AYccoSEeGKstsYRuxdvw" x="20" y="120" height="121"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_aYuJgMoSEeGKstsYRuxdvw" type="1026" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aYuwkMoSEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aYuwkcoSEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aYuwksoSEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aYuwk8oSEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aYuwlMoSEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aYvXoMoSEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_aYvXocoSEeGKstsYRuxdvw" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_aYvXosoSEeGKstsYRuxdvw" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_aYvXo8oSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_aYvXpMoSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_aYvXpcoSEeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aYvXpsoSEeGKstsYRuxdvw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_aYvXp8oSEeGKstsYRuxdvw" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_aYvXqMoSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_aYvXqcoSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_aYvXqsoSEeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aYvXq8oSEeGKstsYRuxdvw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="C_Cpp.profile.uml#_IHjS8ByMEdu0tMSz-ceC5A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aYuJgcoSEeGKstsYRuxdvw" x="960" y="120" width="121" height="121"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_a2qpwMoSEeGKstsYRuxdvw" type="1031" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a2rQ0MoSEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a2rQ0coSEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a2rQ0soSEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a2r34MoSEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a2r34coSEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a2r34soSEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_a2r348oSEeGKstsYRuxdvw" type="1084"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_f9wRsFCbEeWdH-pLiDvc5A" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_f9wRsVCbEeWdH-pLiDvc5A" name="stereotype" stringValue="StandardProfile::Metaclass"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f9wRslCbEeWdH-pLiDvc5A"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Element"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_a2qpwcoSEeGKstsYRuxdvw" x="960" y="40" width="121" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_l9z9UMoSEeGKstsYRuxdvw" type="1026" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_l90kYMoSEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_l90kYcoSEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_l90kYsoSEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_l90kY8oSEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_l90kZMoSEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_l90kZcoSEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_l90kZsoSEeGKstsYRuxdvw" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l90kZ8oSEeGKstsYRuxdvw" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_a1VvoNTVEeKiLbHSN_MIRQ" type="3002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kVi0oOL5EeK7avO_9XJm4Q" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmNG0OL5EeK7avO_9XJm4Q" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_odCqMKYNEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>multiplicity</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="C_Cpp.profile.uml#_UiU48ByJEduN1bTiWJ0lyw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_a1VvodTVEeKiLbHSN_MIRQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l90kaMoSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_l90kacoSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_l90kasoSEeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l90ka8oSEeGKstsYRuxdvw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l90kbMoSEeGKstsYRuxdvw" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l90kbcoSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_l90kbsoSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_l90kb8oSEeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l90kcMoSEeGKstsYRuxdvw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="C_Cpp.profile.uml#_MyI6IByJEduN1bTiWJ0lyw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l9z9UcoSEeGKstsYRuxdvw" x="660" y="120" width="161" height="121"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nxrusMoSEeGKstsYRuxdvw" type="1026" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nxrussoSEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nxrus8oSEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nxsVwMoSEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nxsVwcoSEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nxsVwsoSEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nxsVw8oSEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_nxsVxMoSEeGKstsYRuxdvw" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nxsVxcoSEeGKstsYRuxdvw" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_qvVPgNTHEeKiLbHSN_MIRQ" type="3002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cFszANTPEeKiLbHSN_MIRQ" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cFtaENTPEeKiLbHSN_MIRQ" key="CustomAppearance_MaskValue" value="56"/>
+ </eAnnotations>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_u1GN4KYMEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>multiplicity</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="C_Cpp.profile.uml#_qvPI4NTHEeKiLbHSN_MIRQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qvVPgdTHEeKiLbHSN_MIRQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FRVqYNTPEeKiLbHSN_MIRQ" type="3002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cdRlgNTPEeKiLbHSN_MIRQ" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cdRlgdTPEeKiLbHSN_MIRQ" key="CustomAppearance_MaskValue" value="56"/>
+ </eAnnotations>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_vrAiMKYMEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>multiplicity</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="C_Cpp.profile.uml#_FRPjwNTPEeKiLbHSN_MIRQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FRVqYdTPEeKiLbHSN_MIRQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FziYgNTPEeKiLbHSN_MIRQ" type="3002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_c1-ZYNTPEeKiLbHSN_MIRQ" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_c1-ZYdTPEeKiLbHSN_MIRQ" key="CustomAppearance_MaskValue" value="56"/>
+ </eAnnotations>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_wPZBoKYMEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>multiplicity</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="C_Cpp.profile.uml#_FzcR4NTPEeKiLbHSN_MIRQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FziYgdTPEeKiLbHSN_MIRQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NkcwENTPEeKiLbHSN_MIRQ" type="3002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dLwcINTPEeKiLbHSN_MIRQ" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dLwcIdTPEeKiLbHSN_MIRQ" key="CustomAppearance_MaskValue" value="56"/>
+ </eAnnotations>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_xH5-AKYMEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>multiplicity</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="C_Cpp.profile.uml#_NkWpcNTPEeKiLbHSN_MIRQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NkcwEdTPEeKiLbHSN_MIRQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tu_I4OL8EeKxe91u-BdTVQ" type="3002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wDLZEOL8EeKxe91u-BdTVQ" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xH6zkOL8EeKxe91u-BdTVQ" key="CustomAppearance_MaskValue" value="60"/>
+ </eAnnotations>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_xlPaQKYMEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>multiplicity</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="C_Cpp.profile.uml#_WFVj0ByJEduN1bTiWJ0lyw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tu_I4eL8EeKxe91u-BdTVQ" x="42" y="9"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nxsVxsoSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_nxsVx8oSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_nxsVyMoSEeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nxsVycoSEeGKstsYRuxdvw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nxsVysoSEeGKstsYRuxdvw" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nxsVy8oSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_nxsVzMoSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_nxsVzcoSEeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nxsVzsoSEeGKstsYRuxdvw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="C_Cpp.profile.uml#_PmXVQByJEduN1bTiWJ0lyw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nxruscoSEeGKstsYRuxdvw" x="180" y="120" width="201" height="121"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_EyACcP2IEeGbWP4cpLE0gg" type="1002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EyApgP2IEeGbWP4cpLE0gg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EyBQkP2IEeGbWP4cpLE0gg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EyBQkf2IEeGbWP4cpLE0gg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EyBQkv2IEeGbWP4cpLE0gg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EyBQk_2IEeGbWP4cpLE0gg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EyBQlP2IEeGbWP4cpLE0gg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_EyBQlf2IEeGbWP4cpLE0gg" type="3"/>
+ <element xmi:type="uml:Comment" href="C_Cpp.profile.uml#_Ew5PMP2IEeGbWP4cpLE0gg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EyACcf2IEeGbWP4cpLE0gg" x="480" y="260" width="261" height="121"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_A55C8CYNEeKe9vxHwEdBmA" type="1026" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_A57fMCYNEeKe9vxHwEdBmA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_A57fMSYNEeKe9vxHwEdBmA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_A58GQCYNEeKe9vxHwEdBmA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_A58GQSYNEeKe9vxHwEdBmA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_A58GQiYNEeKe9vxHwEdBmA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_A58GQyYNEeKe9vxHwEdBmA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_A58GRCYNEeKe9vxHwEdBmA" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_A58GRSYNEeKe9vxHwEdBmA" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_vOtlMCYNEeKe9vxHwEdBmA" type="3002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lpgb4I1PEeKTUILNxKtfZw" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_l6pPMI1PEeKTUILNxKtfZw" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_3I_hQKYNEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>multiplicity</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="C_Cpp.profile.uml#_vOBBoCYNEeKe9vxHwEdBmA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vOtlMSYNEeKe9vxHwEdBmA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_A58GRiYNEeKe9vxHwEdBmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_A58GRyYNEeKe9vxHwEdBmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_A58GSCYNEeKe9vxHwEdBmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A58GSSYNEeKe9vxHwEdBmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_A58tUCYNEeKe9vxHwEdBmA" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_A58tUSYNEeKe9vxHwEdBmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_A58tUiYNEeKe9vxHwEdBmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_A58tUyYNEeKe9vxHwEdBmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A58tVCYNEeKe9vxHwEdBmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="C_Cpp.profile.uml#_A3_lgCYNEeKe9vxHwEdBmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A55C8SYNEeKe9vxHwEdBmA" x="20" y="480" width="481" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GUhfoCYNEeKe9vxHwEdBmA" type="1002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GUiGsCYNEeKe9vxHwEdBmA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GUiGsSYNEeKe9vxHwEdBmA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GUiGsiYNEeKe9vxHwEdBmA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GUiGsyYNEeKe9vxHwEdBmA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GUiGtCYNEeKe9vxHwEdBmA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GUiGtSYNEeKe9vxHwEdBmA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_GUiGtiYNEeKe9vxHwEdBmA" type="3"/>
+ <element xmi:type="uml:Comment" href="C_Cpp.profile.uml#_GS8LQCYNEeKe9vxHwEdBmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GUhfoSYNEeKe9vxHwEdBmA" x="520" y="460" width="321" height="121"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_w-4oYNTPEeKiLbHSN_MIRQ" type="1002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_w-4oYtTPEeKiLbHSN_MIRQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_w-4oY9TPEeKiLbHSN_MIRQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_w-4oZNTPEeKiLbHSN_MIRQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_w-4oZdTPEeKiLbHSN_MIRQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_w-4oZtTPEeKiLbHSN_MIRQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_w-5PcNTPEeKiLbHSN_MIRQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_w-5PcdTPEeKiLbHSN_MIRQ" type="3"/>
+ <element xmi:type="uml:Comment" href="C_Cpp.profile.uml#_w-x6sNTPEeKiLbHSN_MIRQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w-4oYdTPEeKiLbHSN_MIRQ" x="198" y="261" width="251" height="63"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LBHbMNTQEeKiLbHSN_MIRQ" type="1002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LBHbMtTQEeKiLbHSN_MIRQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LBHbM9TQEeKiLbHSN_MIRQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LBHbNNTQEeKiLbHSN_MIRQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LBHbNdTQEeKiLbHSN_MIRQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LBHbNtTQEeKiLbHSN_MIRQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LBHbN9TQEeKiLbHSN_MIRQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LBHbONTQEeKiLbHSN_MIRQ" type="3"/>
+ <element xmi:type="uml:Comment" href="C_Cpp.profile.uml#_LBAtgNTQEeKiLbHSN_MIRQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LBHbMdTQEeKiLbHSN_MIRQ" x="940" y="262" width="164"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_PJjQMNTQEeKiLbHSN_MIRQ" type="1002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJjQMtTQEeKiLbHSN_MIRQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PJjQM9TQEeKiLbHSN_MIRQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJj3QNTQEeKiLbHSN_MIRQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PJj3QdTQEeKiLbHSN_MIRQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJj3QtTQEeKiLbHSN_MIRQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PJj3Q9TQEeKiLbHSN_MIRQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_PJj3RNTQEeKiLbHSN_MIRQ" type="3"/>
+ <element xmi:type="uml:Comment" href="C_Cpp.profile.uml#_PJcigNTQEeKiLbHSN_MIRQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PJjQMdTQEeKiLbHSN_MIRQ" x="9" y="260" width="181" height="102"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CBn6wOPxEeKKu7vQg_d5Xw" type="1031" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CBqXAOPxEeKKu7vQg_d5Xw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CBqXAePxEeKKu7vQg_d5Xw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CBq-EOPxEeKKu7vQg_d5Xw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CBq-EePxEeKKu7vQg_d5Xw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CBq-EuPxEeKKu7vQg_d5Xw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CBq-E-PxEeKKu7vQg_d5Xw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CBq-FOPxEeKKu7vQg_d5Xw" type="1084"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_f-1PwFCbEeWdH-pLiDvc5A" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_f-1PwVCbEeWdH-pLiDvc5A" name="stereotype" stringValue="StandardProfile::Metaclass"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f-1PwlCbEeWdH-pLiDvc5A"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CBq-FePxEeKKu7vQg_d5Xw" x="540" y="40" width="280" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_f9HYgFCbEeWdH-pLiDvc5A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_f9HYgVCbEeWdH-pLiDvc5A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_f9HYg1CbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f9HYglCbEeWdH-pLiDvc5A" x="220" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_f9fzAFCbEeWdH-pLiDvc5A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_f9fzAVCbEeWdH-pLiDvc5A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_f9gaEFCbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f9fzAlCbEeWdH-pLiDvc5A" x="220" y="400"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_f99GAFCbEeWdH-pLiDvc5A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_f99GAVCbEeWdH-pLiDvc5A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_f99GA1CbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Element"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f99GAlCbEeWdH-pLiDvc5A" x="860" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_f_G8kFCbEeWdH-pLiDvc5A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_f_G8kVCbEeWdH-pLiDvc5A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_f_G8k1CbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f_G8klCbEeWdH-pLiDvc5A" x="1020" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SGfHcGa2EeWN5dA9YwhK2A" type="1026">
+ <children xmi:type="notation:DecorationNode" xmi:id="_SGgVkGa2EeWN5dA9YwhK2A" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SGgVkWa2EeWN5dA9YwhK2A" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_dtdKkGa2EeWN5dA9YwhK2A" type="3002">
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_ycZM4Ga4EeWN5dA9YwhK2A" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>type</stringListValue>
+ <stringListValue>derived</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="C_Cpp.profile.uml#_7C5e8ByNEdu0tMSz-ceC5A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dtdKkWa2EeWN5dA9YwhK2A"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SGgVkma2EeWN5dA9YwhK2A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SGgVk2a2EeWN5dA9YwhK2A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SGgVlGa2EeWN5dA9YwhK2A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SGgVlWa2EeWN5dA9YwhK2A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SGgVlma2EeWN5dA9YwhK2A" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SGgVl2a2EeWN5dA9YwhK2A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SGgVmGa2EeWN5dA9YwhK2A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SGgVmWa2EeWN5dA9YwhK2A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SGgVmma2EeWN5dA9YwhK2A"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="C_Cpp.profile.uml#_5yQWcByNEdu0tMSz-ceC5A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SGfHcWa2EeWN5dA9YwhK2A" x="1140" y="122" width="161" height="117"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TjLu8Ga2EeWN5dA9YwhK2A" type="1031">
+ <children xmi:type="notation:DecorationNode" xmi:id="_TjLu8ma2EeWN5dA9YwhK2A" type="1084"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TjaYcGa2EeWN5dA9YwhK2A" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_TjaYcWa2EeWN5dA9YwhK2A" name="stereotype" stringValue="StandardProfile::Metaclass"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TjaYcma2EeWN5dA9YwhK2A"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#PrimitiveType"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TjLu8Wa2EeWN5dA9YwhK2A" x="1140" y="40" width="161" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TjhGI2a2EeWN5dA9YwhK2A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TjhGJGa2EeWN5dA9YwhK2A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_TjhGJma2EeWN5dA9YwhK2A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#PrimitiveType"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TjhGJWa2EeWN5dA9YwhK2A" x="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gLsHkGa2EeWN5dA9YwhK2A" type="1002">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gLsuoGa2EeWN5dA9YwhK2A" type="3"/>
+ <element xmi:type="uml:Comment" href="C_Cpp.profile.uml#_gLqSYGa2EeWN5dA9YwhK2A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gLsHkWa2EeWN5dA9YwhK2A" x="1140" y="260" width="181" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_alWrUHQWEeWPzK4C44T8yw" type="1002">
+ <children xmi:type="notation:DecorationNode" xmi:id="_alXSYHQWEeWPzK4C44T8yw" type="3"/>
+ <element xmi:type="uml:Comment" href="C_Cpp.profile.uml#_ak8boHQWEeWPzK4C44T8yw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_alWrUXQWEeWPzK4C44T8yw" x="520" y="400" width="321" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tw_ZwHQWEeWPzK4C44T8yw" type="1002">
+ <children xmi:type="notation:DecorationNode" xmi:id="_tw_ZwnQWEeWPzK4C44T8yw" type="3"/>
+ <element xmi:type="uml:Comment" href="C_Cpp.profile.uml#_tw-LoHQWEeWPzK4C44T8yw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tw_ZwXQWEeWPzK4C44T8yw" x="760" y="260" width="161" height="121"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_UNXagcoSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_f3USgFCbEeWdH-pLiDvc5A" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Profile" href="C_Cpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_X0EbcMoSEeGKstsYRuxdvw" type="1013" source="_XJFkwMoSEeGKstsYRuxdvw" target="_XzsA8MoSEeGKstsYRuxdvw" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_X0EbccoSEeGKstsYRuxdvw" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="C_Cpp.profile.uml#_0It34ByJEduN1bTiWJ0lyw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_X0EbcsoSEeGKstsYRuxdvw" points="[-46, -50, 121, 132]$[-167, -182, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gI27UP2HEeGbWP4cpLE0gg" id="(0.1073170731707317,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cr3QAP2HEeGbWP4cpLE0gg" id="(0.9136363636363637,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_a3BPEMoSEeGKstsYRuxdvw" type="1013" source="_aYuJgMoSEeGKstsYRuxdvw" target="_a2qpwMoSEeGKstsYRuxdvw" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_a3BPEcoSEeGKstsYRuxdvw" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="C_Cpp.profile.uml#_KiZkwByMEdu0tMSz-ceC5A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_a3BPEsoSEeGKstsYRuxdvw" points="[1020, 120, -643984, -643984]$[1020, 81, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_41_1oKYNEeSti6341zpcDg" id="(0.49586776859504134,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_42AcsKYNEeSti6341zpcDg" id="(0.576271186440678,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_nyC7EMoSEeGKstsYRuxdvw" type="1013" source="_nxrusMoSEeGKstsYRuxdvw" target="_XzsA8MoSEeGKstsYRuxdvw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_nyC7EcoSEeGKstsYRuxdvw" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="C_Cpp.profile.uml#_zqqC4ByJEduN1bTiWJ0lyw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nyC7EsoSEeGKstsYRuxdvw" points="[0, 0, -167, -79]$[117, 55, -50, -24]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gmQpAP2HEeGbWP4cpLE0gg" id="(0.5964523281596452,0.92)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_JO6vIP2HEeGbWP4cpLE0gg" type="1013" source="_Z1AYcMoSEeGKstsYRuxdvw" target="_XzsA8MoSEeGKstsYRuxdvw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_JO6vIf2HEeGbWP4cpLE0gg" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="C_Cpp.profile.uml#_xObmIByLEdu0tMSz-ceC5A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_JO6vIv2HEeGbWP4cpLE0gg" points="[-50, -12, 463, 103]$[-463, -104, 50, 11]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cq4gMKYMEeSti6341zpcDg" id="(0.52,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hED_UP2HEeGbWP4cpLE0gg" id="(0.11818181818181818,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_FudqsP2IEeGbWP4cpLE0gg" type="1022" source="_EyACcP2IEeGbWP4cpLE0gg" target="_XJFkwMoSEeGKstsYRuxdvw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Fudqsf2IEeGbWP4cpLE0gg" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Fudqsv2IEeGbWP4cpLE0gg" points="[-14, -8, 59, 34]$[-64, -38, 9, 4]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FvCScP2IEeGbWP4cpLE0gg" id="(0.3065134099616858,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FvCScf2IEeGbWP4cpLE0gg" id="(0.7960199004975125,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_uCfpsCYNEeKe9vxHwEdBmA" type="1022" source="_GUhfoCYNEeKe9vxHwEdBmA" target="_A55C8CYNEeKe9vxHwEdBmA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_uCfpsSYNEeKe9vxHwEdBmA" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_uCfpsiYNEeKe9vxHwEdBmA" points="[-23, -2, 106, 8]$[-112, -11, 17, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_uDRs0CYNEeKe9vxHwEdBmA" id="(0.0,0.2608695652173913)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_uDST4CYNEeKe9vxHwEdBmA" id="(1.0,0.2191780821917808)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_KF5DACYOEeKe9vxHwEdBmA" type="1013" source="_A55C8CYNEeKe9vxHwEdBmA" target="_YR4Y0MoSEeGKstsYRuxdvw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_KF5DASYOEeKe9vxHwEdBmA" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="C_Cpp.profile.uml#_KEps4CYOEeKe9vxHwEdBmA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KF5DAiYOEeKe9vxHwEdBmA" points="[-3, -2, 0, 43]$[45, -33, 48, 12]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KMLRMCYOEeKe9vxHwEdBmA" id="(0.5213270142180095,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KMLRMSYOEeKe9vxHwEdBmA" id="(0.5330490405117271,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_KFWWgNTQEeKiLbHSN_MIRQ" type="1022" source="_w-4oYNTPEeKiLbHSN_MIRQ" target="_nxrusMoSEeGKstsYRuxdvw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_KFWWgdTQEeKiLbHSN_MIRQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KFWWgtTQEeKiLbHSN_MIRQ" points="[2, -14, 0, 29]$[0, -32, -2, 11]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KFYLsNTQEeKiLbHSN_MIRQ" id="(0.4860557768924303,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KFYLsdTQEeKiLbHSN_MIRQ" id="(0.6569767441860465,0.9724770642201835)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_N6QLgNTQEeKiLbHSN_MIRQ" type="1022" source="_LBHbMNTQEeKiLbHSN_MIRQ" target="_aYuJgMoSEeGKstsYRuxdvw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_N6QLgdTQEeKiLbHSN_MIRQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_N6QLgtTQEeKiLbHSN_MIRQ" points="[1025, 266, -643984, -643984]$[996, 282, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_N6RZoNTQEeKiLbHSN_MIRQ" id="(0.4878048780487805,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hGJxoKYMEeSti6341zpcDg" id="(0.49586776859504134,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_b32HwNTQEeKiLbHSN_MIRQ" type="1022" source="_PJjQMNTQEeKiLbHSN_MIRQ" target="_Z1AYcMoSEeGKstsYRuxdvw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_b32HwdTQEeKiLbHSN_MIRQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_b32HwtTQEeKiLbHSN_MIRQ" points="[7, -12, 0, 39]$[13, -29, 6, 22]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_b3388NTQEeKiLbHSN_MIRQ" id="(0.3149171270718232,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_b3388dTQEeKiLbHSN_MIRQ" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_IcXwoOPxEeKKu7vQg_d5Xw" type="1013" source="_l9z9UMoSEeGKstsYRuxdvw" target="_CBn6wOPxEeKKu7vQg_d5Xw" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_IcXwoePxEeKKu7vQg_d5Xw" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="C_Cpp.profile.uml#_Ibyh0OPxEeKKu7vQg_d5Xw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IcXwouPxEeKKu7vQg_d5Xw" points="[740, 120, -643984, -643984]$[740, 100, -643984, -643984]$[740, 81, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IcjW0OPxEeKKu7vQg_d5Xw" id="(0.4968944099378882,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jxGQoOPyEeKGZ63pLXGsCA" id="(0.7142857142857143,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_f9HYhFCbEeWdH-pLiDvc5A" type="StereotypeCommentLink" source="_XzsA8MoSEeGKstsYRuxdvw" target="_f9HYgFCbEeWdH-pLiDvc5A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_f9HYhVCbEeWdH-pLiDvc5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_f9HYiVCbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f9HYhlCbEeWdH-pLiDvc5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f9HYh1CbEeWdH-pLiDvc5A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f9HYiFCbEeWdH-pLiDvc5A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_f9gaEVCbEeWdH-pLiDvc5A" type="StereotypeCommentLink" source="_YR4Y0MoSEeGKstsYRuxdvw" target="_f9fzAFCbEeWdH-pLiDvc5A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_f9gaElCbEeWdH-pLiDvc5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_f9gaFlCbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f9gaE1CbEeWdH-pLiDvc5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f9gaFFCbEeWdH-pLiDvc5A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f9gaFVCbEeWdH-pLiDvc5A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_f99GBFCbEeWdH-pLiDvc5A" type="StereotypeCommentLink" source="_a2qpwMoSEeGKstsYRuxdvw" target="_f99GAFCbEeWdH-pLiDvc5A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_f99GBVCbEeWdH-pLiDvc5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_f99GCVCbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Element"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f99GBlCbEeWdH-pLiDvc5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f99GB1CbEeWdH-pLiDvc5A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f99GCFCbEeWdH-pLiDvc5A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_f_G8lFCbEeWdH-pLiDvc5A" type="StereotypeCommentLink" source="_CBn6wOPxEeKKu7vQg_d5Xw" target="_f_G8kFCbEeWdH-pLiDvc5A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_f_G8lVCbEeWdH-pLiDvc5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_f_G8mVCbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f_G8llCbEeWdH-pLiDvc5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f_G8l1CbEeWdH-pLiDvc5A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f_G8mFCbEeWdH-pLiDvc5A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_TjhtMGa2EeWN5dA9YwhK2A" type="StereotypeCommentLink" source="_TjLu8Ga2EeWN5dA9YwhK2A" target="_TjhGI2a2EeWN5dA9YwhK2A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_TjhtMWa2EeWN5dA9YwhK2A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_TjhtNWa2EeWN5dA9YwhK2A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#PrimitiveType"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TjhtMma2EeWN5dA9YwhK2A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TjhtM2a2EeWN5dA9YwhK2A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TjhtNGa2EeWN5dA9YwhK2A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_TkQtAGa2EeWN5dA9YwhK2A" type="1013" source="_SGfHcGa2EeWN5dA9YwhK2A" target="_TjLu8Ga2EeWN5dA9YwhK2A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_TkQtAWa2EeWN5dA9YwhK2A"/>
+ <element xmi:type="uml:Extension" href="C_Cpp.profile.uml#_DqJooByOEdu0tMSz-ceC5A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TkQtAma2EeWN5dA9YwhK2A" points="[1220, 122, -643984, -643984]$[1220, 81, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UDBsoGa2EeWN5dA9YwhK2A" id="(0.4968944099378882,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UDBsoWa2EeWN5dA9YwhK2A" id="(0.4968944099378882,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9aiOYHP-EeWZ7bKCqwPQEQ" type="1013" source="_XJFkwMoSEeGKstsYRuxdvw" target="_CBn6wOPxEeKKu7vQg_d5Xw" routing="Rectilinear">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5Sd1sHQSEeWZ7bKCqwPQEQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5Sd1sXQSEeWZ7bKCqwPQEQ" key="QualifiedNameDepth" value="1"/>
+ </eAnnotations>
+ <styles xmi:type="notation:FontStyle" xmi:id="_9aiOYXP-EeWZ7bKCqwPQEQ"/>
+ <element xmi:type="uml:Extension" href="C_Cpp.profile.uml#_9Z2R4HP-EeWZ7bKCqwPQEQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9aiOYnP-EeWZ7bKCqwPQEQ" points="[580, 120, -643984, -643984]$[580, 81, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9bhs4HP-EeWZ7bKCqwPQEQ" id="(0.8955223880597015,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9bhs4XP-EeWZ7bKCqwPQEQ" id="(0.14285714285714285,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_UtoGIHQaEeW9sv13Dd1vJA" type="1013" source="_XJFkwMoSEeGKstsYRuxdvw" target="_YR4Y0MoSEeGKstsYRuxdvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_UtoGIXQaEeW9sv13Dd1vJA"/>
+ <element xmi:type="uml:Extension" href="C_Cpp.profile.uml#_0jpgYByJEduN1bTiWJ0lyw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UtoGInQaEeW9sv13Dd1vJA" points="[440, 241, -643984, -643984]$[281, 400, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WBaCMHQaEeW9sv13Dd1vJA" id="(0.29850746268656714,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_VUTroHQaEeW9sv13Dd1vJA" id="(0.9147609147609148,0.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_VN2nIMoSEeGKstsYRuxdvw" type="PapyrusUMLProfileDiagram" name="Templates" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_w3sQ8MoSEeGKstsYRuxdvw" type="1026" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_w3s4AMoSEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_w3s4AcoSEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_w3s4AsoSEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_w3s4A8oSEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_w3tfEMoSEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_w3tfEcoSEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_w3tfEsoSEeGKstsYRuxdvw" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w3tfE8oSEeGKstsYRuxdvw" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_4SCiACAzEeOBrb_t_69W4Q" type="3002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__D4pQCAzEeOBrb_t_69W4Q" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__D4pQSAzEeOBrb_t_69W4Q" key="CustomAppearance_MaskValue" value="60"/>
+ </eAnnotations>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_rFDqwKYMEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="C_Cpp.profile.uml#_7e8P0ByPEduuTv8efIb91A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4SCiASAzEeOBrb_t_69W4Q" x="55" y="16"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w3tfFMoSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w3tfFcoSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w3tfFsoSEeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w3tfF8oSEeGKstsYRuxdvw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w3tfGMoSEeGKstsYRuxdvw" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w3tfGcoSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w3tfGsoSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w3tfG8oSEeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w3tfHMoSEeGKstsYRuxdvw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="C_Cpp.profile.uml#_5W6MUByPEduuTv8efIb91A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w3sQ8coSEeGKstsYRuxdvw" x="90" y="126" width="163" height="82"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_w4F5kMoSEeGKstsYRuxdvw" type="1026" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_w4GgoMoSEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_w4GgocoSEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_w4GgosoSEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_w4Ggo8oSEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_w4GgpMoSEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_w4GgpcoSEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_w4GgpsoSEeGKstsYRuxdvw" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w4Ggp8oSEeGKstsYRuxdvw" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_FdHcMCA0EeOBrb_t_69W4Q" type="3002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Gque0CA0EeOBrb_t_69W4Q" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Gque0SA0EeOBrb_t_69W4Q" key="CustomAppearance_MaskValue" value="60"/>
+ </eAnnotations>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_s6NOgKYMEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="C_Cpp.profile.uml#_AOo5IByQEduuTv8efIb91A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FdHcMSA0EeOBrb_t_69W4Q" x="57" y="10"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w4GgqMoSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w4GgqcoSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w4GgqsoSEeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w4Ggq8oSEeGKstsYRuxdvw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w4GgrMoSEeGKstsYRuxdvw" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w4GgrcoSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w4GgrsoSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w4Ggr8oSEeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w4GgsMoSEeGKstsYRuxdvw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="C_Cpp.profile.uml#_9oCDQByPEduuTv8efIb91A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w4F5kcoSEeGKstsYRuxdvw" x="504" y="126" width="136" height="82"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_w4fiMMoSEeGKstsYRuxdvw" type="1026" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_w4fiMsoSEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_w4gJQMoSEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_w4gJQcoSEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_w4gJQsoSEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_w4gJQ8oSEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_w4gJRMoSEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_w4gJRcoSEeGKstsYRuxdvw" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w4gJRsoSEeGKstsYRuxdvw" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_CUNKgCA0EeOBrb_t_69W4Q" type="3002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D_K3gCA0EeOBrb_t_69W4Q" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D_K3gSA0EeOBrb_t_69W4Q" key="CustomAppearance_MaskValue" value="60"/>
+ </eAnnotations>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_sTE9EKYMEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="C_Cpp.profile.uml#_EV0J4ByQEduuTv8efIb91A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CUNKgSA0EeOBrb_t_69W4Q" x="61" y="11"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w4gJR8oSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w4gJSMoSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w4gJScoSEeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w4gJSsoSEeGKstsYRuxdvw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w4gJS8oSEeGKstsYRuxdvw" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w4gJTMoSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w4gJTcoSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w4gJTsoSEeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w4gJT8oSEeGKstsYRuxdvw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="C_Cpp.profile.uml#_CYoEcByQEduuTv8efIb91A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w4fiMcoSEeGKstsYRuxdvw" x="297" y="126" width="154" height="82"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_yflb0MoSEeGKstsYRuxdvw" type="1031" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yfmC4MoSEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yfmC4coSEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yfmC4soSEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yfmC48oSEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yfmC5MoSEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yfmp8MoSEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yfmp8coSEeGKstsYRuxdvw" type="1084"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gDHS0FCbEeWdH-pLiDvc5A" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_gDHS0VCbEeWdH-pLiDvc5A" name="stereotype" stringValue="StandardProfile::Metaclass"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gDHS0lCbEeWdH-pLiDvc5A"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#TemplateParameter"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yflb0coSEeGKstsYRuxdvw" x="297" y="36" width="154"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_y9Cz4MoSEeGKstsYRuxdvw" type="1031" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y9Da8coSEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y9Da8soSEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y9Da88oSEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y9Da9MoSEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y9Da9coSEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y9Da9soSEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_y9ECAMoSEeGKstsYRuxdvw" type="1084"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gDpeUFCbEeWdH-pLiDvc5A" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_gDpeUVCbEeWdH-pLiDvc5A" name="stereotype" stringValue="StandardProfile::Metaclass"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gDpeUlCbEeWdH-pLiDvc5A"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y9Da8MoSEeGKstsYRuxdvw" x="90" y="36" width="163"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_zlEdMMoSEeGKstsYRuxdvw" type="1031" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zlFEQMoSEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zlFrUMoSEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zlFrUcoSEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zlFrUsoSEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zlFrU8oSEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zlFrVMoSEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zlFrVcoSEeGKstsYRuxdvw" type="1084"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gENfAFCbEeWdH-pLiDvc5A" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_gENfAVCbEeWdH-pLiDvc5A" name="stereotype" stringValue="StandardProfile::Metaclass"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gENfAlCbEeWdH-pLiDvc5A"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#TemplateBinding"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zlEdMcoSEeGKstsYRuxdvw" x="504" y="36" width="136"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gDYYkFCbEeWdH-pLiDvc5A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gDYYkVCbEeWdH-pLiDvc5A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_gDYYk1CbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#TemplateParameter"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gDYYklCbEeWdH-pLiDvc5A" x="497" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gD-1gFCbEeWdH-pLiDvc5A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gD-1gVCbEeWdH-pLiDvc5A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_gD-1g1CbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gD-1glCbEeWdH-pLiDvc5A" x="290" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gEd9sFCbEeWdH-pLiDvc5A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gEd9sVCbEeWdH-pLiDvc5A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_gEd9s1CbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#TemplateBinding"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gEd9slCbEeWdH-pLiDvc5A" x="704" y="36"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_VN3OMMoSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_f_5mwFCbEeWdH-pLiDvc5A" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Profile" href="C_Cpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_yf9PQMoSEeGKstsYRuxdvw" type="1013" source="_w4fiMMoSEeGKstsYRuxdvw" target="_yflb0MoSEeGKstsYRuxdvw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_yf9PQcoSEeGKstsYRuxdvw" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="C_Cpp.profile.uml#_OYBOoByQEduuTv8efIb91A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_yf9PQsoSEeGKstsYRuxdvw" points="[-66, -26, 360, 141]$[-426, -167, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_EQ314P2JEeGbWP4cpLE0gg" id="(0.5448275862068965,0.024390243902439025)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_y9b1cMoSEeGKstsYRuxdvw" type="1013" source="_w3sQ8MoSEeGKstsYRuxdvw" target="_y9Cz4MoSEeGKstsYRuxdvw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_y9b1ccoSEeGKstsYRuxdvw" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="C_Cpp.profile.uml#_OqF2EByQEduuTv8efIb91A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_y9b1csoSEeGKstsYRuxdvw" points="[-50, -47, 134, 125]$[-184, -172, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_zleF0MoSEeGKstsYRuxdvw" type="1013" source="_w4F5kMoSEeGKstsYRuxdvw" target="_zlEdMMoSEeGKstsYRuxdvw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_zleF0coSEeGKstsYRuxdvw" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="C_Cpp.profile.uml#_O9D1YByQEduuTv8efIb91A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_zleF0soSEeGKstsYRuxdvw" points="[-58, -15, 594, 143]$[-652, -158, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_gDYYlFCbEeWdH-pLiDvc5A" type="StereotypeCommentLink" source="_yflb0MoSEeGKstsYRuxdvw" target="_gDYYkFCbEeWdH-pLiDvc5A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_gDYYlVCbEeWdH-pLiDvc5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_gDY_oFCbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#TemplateParameter"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gDYYllCbEeWdH-pLiDvc5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gDYYl1CbEeWdH-pLiDvc5A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gDYYmFCbEeWdH-pLiDvc5A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_gD-1hFCbEeWdH-pLiDvc5A" type="StereotypeCommentLink" source="_y9Cz4MoSEeGKstsYRuxdvw" target="_gD-1gFCbEeWdH-pLiDvc5A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_gD-1hVCbEeWdH-pLiDvc5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_gD-1iVCbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gD-1hlCbEeWdH-pLiDvc5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gD-1h1CbEeWdH-pLiDvc5A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gD-1iFCbEeWdH-pLiDvc5A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_gEd9tFCbEeWdH-pLiDvc5A" type="StereotypeCommentLink" source="_zlEdMMoSEeGKstsYRuxdvw" target="_gEd9sFCbEeWdH-pLiDvc5A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_gEd9tVCbEeWdH-pLiDvc5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_gEd9uVCbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#TemplateBinding"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gEd9tlCbEeWdH-pLiDvc5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gEd9t1CbEeWdH-pLiDvc5A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gEd9uFCbEeWdH-pLiDvc5A"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_tDFW4MoSEeGKstsYRuxdvw" type="PapyrusUMLProfileDiagram" name="Enums" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_tf5OsMoSEeGKstsYRuxdvw" type="2006" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tf51wMoSEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tf51wcoSEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tf51wsoSEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tf6c0MoSEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tf6c0coSEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tf6c0soSEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tf6c08oSEeGKstsYRuxdvw" type="5023"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tf6c1MoSEeGKstsYRuxdvw" type="1063">
+ <children xmi:type="notation:Shape" xmi:id="_uchPAMoSEeGKstsYRuxdvw" type="1037" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="C_Cpp.profile.uml#_v6MwYByGEduN1bTiWJ0lyw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uchPAcoSEeGKstsYRuxdvw" x="18" y="38"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uc6QkMoSEeGKstsYRuxdvw" type="1037" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="C_Cpp.profile.uml#_wz28QByGEduN1bTiWJ0lyw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uc6QkcoSEeGKstsYRuxdvw" x="18" y="38"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_udZYwMoSEeGKstsYRuxdvw" type="1037" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="C_Cpp.profile.uml#_xKmBQByGEduN1bTiWJ0lyw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_udZYwcoSEeGKstsYRuxdvw" x="18" y="38"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tf6c1coSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tf6c1soSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tf6c18oSEeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tf6c2MoSEeGKstsYRuxdvw"/>
+ </children>
+ <element xmi:type="uml:Enumeration" href="C_Cpp.profile.uml#_rIXZEByGEduN1bTiWJ0lyw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tf5OscoSEeGKstsYRuxdvw" x="47" y="66" width="116"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_tDFW4coSEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_gJQXEFCbEeWdH-pLiDvc5A" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Profile" href="C_Cpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_br8hIJVTEeKBzP_954cAAA" type="PapyrusUMLProfileDiagram" name="CTypes" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_ccdYEJVTEeKBzP_954cAAA" type="2006" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ccf0UJVTEeKBzP_954cAAA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ccf0UZVTEeKBzP_954cAAA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ccf0UpVTEeKBzP_954cAAA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ccf0U5VTEeKBzP_954cAAA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ccf0VJVTEeKBzP_954cAAA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ccgbYJVTEeKBzP_954cAAA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ccgbYZVTEeKBzP_954cAAA" type="5023"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ccgbYpVTEeKBzP_954cAAA" type="1063">
+ <children xmi:type="notation:Shape" xmi:id="_geCXIJVTEeKBzP_954cAAA" type="1037" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="C_Cpp.profile.uml#_g3RhQJMIEeKrb5fnA81_2Q"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_geCXIZVTEeKBzP_954cAAA" x="40" y="23"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_geylEJVTEeKBzP_954cAAA" type="1037" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="C_Cpp.profile.uml#_iJ4_sJMIEeKrb5fnA81_2Q"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_geylEZVTEeKBzP_954cAAA" x="40" y="23"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gfyqoJVTEeKBzP_954cAAA" type="1037" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="C_Cpp.profile.uml#_irt6YJMIEeKrb5fnA81_2Q"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gfyqoZVTEeKBzP_954cAAA" x="40" y="23"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ccgbY5VTEeKBzP_954cAAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ccgbZJVTEeKBzP_954cAAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ccgbZZVTEeKBzP_954cAAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ccgbZpVTEeKBzP_954cAAA"/>
+ </children>
+ <element xmi:type="uml:Enumeration" href="C_Cpp.profile.uml#_YVBzYJMIEeKrb5fnA81_2Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ccdYEZVTEeKBzP_954cAAA" x="100" y="60" width="109"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_c-ZAcJVTEeKBzP_954cAAA" type="1026" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_c-ZngJVTEeKBzP_954cAAA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_c-ZngZVTEeKBzP_954cAAA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_c-aOkJVTEeKBzP_954cAAA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_c-aOkZVTEeKBzP_954cAAA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_c-aOkpVTEeKBzP_954cAAA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_c-aOk5VTEeKBzP_954cAAA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_c-aOlJVTEeKBzP_954cAAA" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_c-aOlZVTEeKBzP_954cAAA" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_kTnhkJVTEeKBzP_954cAAA" type="3002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ltxycJVTEeKBzP_954cAAA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_l0FOwJVTEeKBzP_954cAAA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="C_Cpp.profile.uml#_X910gJVPEeKCE6_KfOehJw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kTnhkZVTEeKBzP_954cAAA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_c-aOlpVTEeKBzP_954cAAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_c-aOl5VTEeKBzP_954cAAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_c-aOmJVTEeKBzP_954cAAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c-aOmZVTEeKBzP_954cAAA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_c-aOmpVTEeKBzP_954cAAA" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_c-aOm5VTEeKBzP_954cAAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_c-a1oJVTEeKBzP_954cAAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_c-a1oZVTEeKBzP_954cAAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c-a1opVTEeKBzP_954cAAA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="C_Cpp.profile.uml#_U3BNgJVPEeKCE6_KfOehJw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c-ZAcZVTEeKBzP_954cAAA" x="320" y="160" width="261" height="121"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_deomwJVTEeKBzP_954cAAA" type="2006" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_deomwpVTEeKBzP_954cAAA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_depN0JVTEeKBzP_954cAAA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_depN0ZVTEeKBzP_954cAAA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_depN0pVTEeKBzP_954cAAA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_depN05VTEeKBzP_954cAAA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_depN1JVTEeKBzP_954cAAA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_depN1ZVTEeKBzP_954cAAA" type="5023"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_depN1pVTEeKBzP_954cAAA" type="1063">
+ <children xmi:type="notation:Shape" xmi:id="_iFjHgJVTEeKBzP_954cAAA" type="1037" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="C_Cpp.profile.uml#_zX48wJMIEeKrb5fnA81_2Q"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iFjHgZVTEeKBzP_954cAAA" x="60" y="43"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_iGPEAJVTEeKBzP_954cAAA" type="1037" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="C_Cpp.profile.uml#_0bzQ0JMIEeKrb5fnA81_2Q"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iGPEAZVTEeKBzP_954cAAA" x="60" y="43"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_iG81sJVTEeKBzP_954cAAA" type="1037" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="C_Cpp.profile.uml#_1C3Q0JMIEeKrb5fnA81_2Q"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iG81sZVTEeKBzP_954cAAA" x="60" y="43"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_depN15VTEeKBzP_954cAAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_depN2JVTEeKBzP_954cAAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_depN2ZVTEeKBzP_954cAAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_depN2pVTEeKBzP_954cAAA"/>
+ </children>
+ <element xmi:type="uml:Enumeration" href="C_Cpp.profile.uml#_yOu8UJMIEeKrb5fnA81_2Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_deomwZVTEeKBzP_954cAAA" x="100" y="200" width="109"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TsW4AOL9EeKxe91u-BdTVQ" type="1031" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TsYGIOL9EeKxe91u-BdTVQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TsYGIeL9EeKxe91u-BdTVQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TsYGIuL9EeKxe91u-BdTVQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TsYGI-L9EeKxe91u-BdTVQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TsYGJOL9EeKxe91u-BdTVQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TsYGJeL9EeKxe91u-BdTVQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TsYGJuL9EeKxe91u-BdTVQ" type="1084"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gIDdMFCbEeWdH-pLiDvc5A" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_gIDdMVCbEeWdH-pLiDvc5A" name="stereotype" stringValue="StandardProfile::Metaclass"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gIDdMlCbEeWdH-pLiDvc5A"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Parameter"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TsYtMOL9EeKxe91u-BdTVQ" x="320" y="60" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZMcccOL9EeKxe91u-BdTVQ" type="1031" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZMdDgOL9EeKxe91u-BdTVQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZMdDgeL9EeKxe91u-BdTVQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZMdDguL9EeKxe91u-BdTVQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZMdDg-L9EeKxe91u-BdTVQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZMdDhOL9EeKxe91u-BdTVQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZMdDheL9EeKxe91u-BdTVQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZMdDhuL9EeKxe91u-BdTVQ" type="1084"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gIqhMFCbEeWdH-pLiDvc5A" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_gIqhMVCbEeWdH-pLiDvc5A" name="stereotype" stringValue="StandardProfile::Metaclass"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gIqhMlCbEeWdH-pLiDvc5A"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZMdDh-L9EeKxe91u-BdTVQ" x="480" y="60" width="101" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gIcewFCbEeWdH-pLiDvc5A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gIcewVCbEeWdH-pLiDvc5A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_gIcew1CbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Parameter"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gIcewlCbEeWdH-pLiDvc5A" x="520" y="60"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gI5KsFCbEeWdH-pLiDvc5A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gI5KsVCbEeWdH-pLiDvc5A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_gI5Ks1CbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gI5KslCbEeWdH-pLiDvc5A" x="680" y="60"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_br8hIZVTEeKBzP_954cAAA"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_gEz78FCbEeWdH-pLiDvc5A" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Profile" href="C_Cpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_gIcexFCbEeWdH-pLiDvc5A" type="StereotypeCommentLink" source="_TsW4AOL9EeKxe91u-BdTVQ" target="_gIcewFCbEeWdH-pLiDvc5A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_gIcexVCbEeWdH-pLiDvc5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_gIceyVCbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Parameter"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gIcexlCbEeWdH-pLiDvc5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gIcex1CbEeWdH-pLiDvc5A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gIceyFCbEeWdH-pLiDvc5A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_gI5KtFCbEeWdH-pLiDvc5A" type="StereotypeCommentLink" source="_ZMcccOL9EeKxe91u-BdTVQ" target="_gI5KsFCbEeWdH-pLiDvc5A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_gI5KtVCbEeWdH-pLiDvc5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_gI5KuVCbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gI5KtlCbEeWdH-pLiDvc5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gI5Kt1CbEeWdH-pLiDvc5A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gI5KuFCbEeWdH-pLiDvc5A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_HHyoQFCcEeWdH-pLiDvc5A" type="1013" source="_c-ZAcJVTEeKBzP_954cAAA" target="_ZMcccOL9EeKxe91u-BdTVQ">
+ <styles xmi:type="notation:FontStyle" xmi:id="_HHyoQVCcEeWdH-pLiDvc5A"/>
+ <element xmi:type="uml:Extension" href="C_Cpp.profile.uml#_HHOnkFCcEeWdH-pLiDvc5A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HHyoQlCcEeWdH-pLiDvc5A" points="[-5, -7, 0, 46]$[-5, -46, 0, 7]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HIekwFCcEeWdH-pLiDvc5A" id="(0.8237547892720306,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HIekwVCcEeWdH-pLiDvc5A" id="(0.504950495049505,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_HqSRUFCcEeWdH-pLiDvc5A" type="1013" source="_c-ZAcJVTEeKBzP_954cAAA" target="_TsW4AOL9EeKxe91u-BdTVQ">
+ <styles xmi:type="notation:FontStyle" xmi:id="_HqSRUVCcEeWdH-pLiDvc5A"/>
+ <element xmi:type="uml:Extension" href="C_Cpp.profile.uml#_Hp7E8FCcEeWdH-pLiDvc5A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HqSRUlCcEeWdH-pLiDvc5A" points="[-9, -7, -2, 70]$[-9, -46, -2, 31]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Hq1q8FCcEeWdH-pLiDvc5A" id="(0.21455938697318008,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Hq1q8VCcEeWdH-pLiDvc5A" id="(0.51,1.0)"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/profiles/C_Cpp.profile.uml b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/profiles/C_Cpp.profile.uml
new file mode 100644
index 00000000000..624c26dd6b5
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/profiles/C_Cpp.profile.uml
@@ -0,0 +1,529 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/5" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
+ <uml:Profile xmi:id="_j9REUByGEduN1bTiWJ0lyw" name="C_Cpp" metaclassReference="_TRvswByHEduN1bTiWJ0lyw _gphJsByIEduN1bTiWJ0lyw _Gt0nQByJEduN1bTiWJ0lyw _GuFF8ByJEduN1bTiWJ0lyw _G0LmkByMEdu0tMSz-ceC5A _G0XMwByMEdu0tMSz-ceC5A _G0a3IByMEdu0tMSz-ceC5A _jBetUByNEdu0tMSz-ceC5A _jB15sByNEdu0tMSz-ceC5A _jB_qsByNEdu0tMSz-ceC5A _jCCuAByNEdu0tMSz-ceC5A _jCGYYByNEdu0tMSz-ceC5A _jCJbsByNEdu0tMSz-ceC5A _X7dJsDlPEd2mO4M0idYmag _OiGWgF5fEeKpvPHLdOdp2Q _41Sz8I1SEeKTUILNxKtfZw _CBeJwOPxEeKKu7vQg_d5Xw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_KaTwkNY9EeGH9LIP6-_nLw" annotatedElement="_19ZzgByHEduN1bTiWJ0lyw">
+ <body>&quot;declaration&quot; attribute should only be used, if more than one indirections of pointers (often &quot;**&quot;)</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Ew5PMP2IEeGbWP4cpLE0gg" annotatedElement="_RwTdQByJEduN1bTiWJ0lyw">
+ <body>An arbitrary string that is added to header and body file. Although primarily intended for manual include directives, it can be used for arbitrary definitions.
+&quot;preBody&quot; is added to a C++ body file before automatic include statements, &quot;body&quot; after</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_GS8LQCYNEeKe9vxHwEdBmA" annotatedElement="_A3_lgCYNEeKe9vxHwEdBmA">
+ <body>Some toolkits require a quite particular way of use. For instance, LTTng requires the use of C (not C++) for the declaration of a trace provider and the header file is read several time with redefined macros. Therefore, the code generator supports a &quot;manual&quot; generation mode, in which primarily the contents of the CppInclude directive is written.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_w-x6sNTPEeKiLbHSN_MIRQ" annotatedElement="_PmXVQByJEduN1bTiWJ0lyw">
+ <body>Mark a package as External Library. If this package is used, the associated CDT project will be configured accordingly.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_LBAtgNTQEeKiLbHSN_MIRQ" annotatedElement="_IHjS8ByMEdu0tMSz-ceC5A">
+ <body>No code generation should be done for this element. This also means that no include directive is generated, if the class is referenced.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_PJcigNTQEeKiLbHSN_MIRQ" annotatedElement="_u3zF8ByLEdu0tMSz-ceC5A">
+ <body>Indicates that this package shoudl be a root package, i.e. its contents should appear on top level folder during generation. Currently not used</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gLqSYGa2EeWN5dA9YwhK2A">
+ <body>Declare a new type that is based on another type.
+Can be used to define for instance primitive types (like int). Can also be used for function pointers (see wiki)</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_ak8boHQWEeWPzK4C44T8yw">
+ <body>The extension from Include to Class is not necessary, as Classifier is already extended, but kept for compatibility with old models</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_tw-LoHQWEeWPzK4C44T8yw">
+ <body>External classes reference existing C++ classes, but are typcially empty in the model. An include directive is generated if classes depend on these.</body>
+ </ownedComment>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_TRvswByHEduN1bTiWJ0lyw">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Parameter"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_gphJsByIEduN1bTiWJ0lyw">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_Gt0nQByJEduN1bTiWJ0lyw">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_GuFF8ByJEduN1bTiWJ0lyw">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_G0LmkByMEdu0tMSz-ceC5A">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Element"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_G0XMwByMEdu0tMSz-ceC5A">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_G0a3IByMEdu0tMSz-ceC5A">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Dependency"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_jBetUByNEdu0tMSz-ceC5A">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Generalization"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_jB15sByNEdu0tMSz-ceC5A">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#PrimitiveType"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_jB_qsByNEdu0tMSz-ceC5A">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#TemplateBinding"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_jCCuAByNEdu0tMSz-ceC5A">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#TemplateParameter"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_jCGYYByNEdu0tMSz-ceC5A">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#EnumerationLiteral"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_jCJbsByNEdu0tMSz-ceC5A">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Association"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_X7dJsDlPEd2mO4M0idYmag" alias="PackageImport">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#PackageImport"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_OiGWgF5fEeKpvPHLdOdp2Q" alias="DataType">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#DataType"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_41Sz8I1SEeKTUILNxKtfZw" alias="Feature">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Feature"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_CBeJwOPxEeKKu7vQg_d5Xw" alias="Classifier">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>
+ </elementImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_6G_4UP2HEeGbWP4cpLE0gg">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_rIXZEByGEduN1bTiWJ0lyw" name="VisibilityKind">
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_v6MwYByGEduN1bTiWJ0lyw" name="private"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_wz28QByGEduN1bTiWJ0lyw" name="protected"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xKmBQByGEduN1bTiWJ0lyw" name="public"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_WgwmcByHEduN1bTiWJ0lyw" name="Array">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Z3w-gByHEduN1bTiWJ0lyw" name="base_parameter" isUnique="false" association="_Z4QGsByHEduN1bTiWJ0lyw">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Parameter"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ibI3cCBEEeOBrb_t_69W4Q"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ibQMMCBEEeOBrb_t_69W4Q" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_a8S9oByHEduN1bTiWJ0lyw" name="definition" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_jd4uwByIEduN1bTiWJ0lyw" name="base_property" isUnique="false" association="_jeImYByIEduN1bTiWJ0lyw">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jdmaACBEEeOBrb_t_69W4Q"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jdsgoCBEEeOBrb_t_69W4Q" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_guP0gByPEduuTv8efIb91A" name="base_association" isUnique="false" association="_gufsIByPEduuTv8efIb91A">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Association"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kZzjkCBEEeOBrb_t_69W4Q"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kZ8tgCBEEeOBrb_t_69W4Q" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_Z4QGsByHEduN1bTiWJ0lyw" name="E_Array_Parameter1" memberEnd="_Z3w-gByHEduN1bTiWJ0lyw _Z4QGsRyHEduN1bTiWJ0lyw">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Z4QGsRyHEduN1bTiWJ0lyw" name="extension_Array" type="_WgwmcByHEduN1bTiWJ0lyw" association="_Z4QGsByHEduN1bTiWJ0lyw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_l2faUByHEduN1bTiWJ0lyw" name="Const">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_q3qOIByHEduN1bTiWJ0lyw" name="base_parameter" isUnique="false" association="_q3wUwByHEduN1bTiWJ0lyw">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Parameter"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D7WaMOL5EeK7avO_9XJm4Q"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_D7dH4OL5EeK7avO_9XJm4Q" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_kJX7wByIEduN1bTiWJ0lyw" name="base_property" isUnique="false" association="_kJ5gMByIEduN1bTiWJ0lyw">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_I03G0OL5EeK7avO_9XJm4Q"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_I0-bkOL5EeK7avO_9XJm4Q" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_ThDh0ByMEdu0tMSz-ceC5A" name="base_operation" isUnique="false" association="_ThSyYByMEdu0tMSz-ceC5A">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_L-zTQOL5EeK7avO_9XJm4Q"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_L-6oAOL5EeK7avO_9XJm4Q" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_q3wUwByHEduN1bTiWJ0lyw" name="E_Const_Parameter1" memberEnd="_q3qOIByHEduN1bTiWJ0lyw _q3wUwRyHEduN1bTiWJ0lyw">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_q3wUwRyHEduN1bTiWJ0lyw" name="extension_Const" type="_l2faUByHEduN1bTiWJ0lyw" association="_q3wUwByHEduN1bTiWJ0lyw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_19ZzgByHEduN1bTiWJ0lyw" name="Ptr">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_VbvCoByIEduN1bTiWJ0lyw" name="base_parameter" isUnique="false" association="_Vb-6QByIEduN1bTiWJ0lyw">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Parameter"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_5qhDkOL4EeK7avO_9XJm4Q"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_5qrboOL4EeK7avO_9XJm4Q" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_lylVQByIEduN1bTiWJ0lyw" name="base_property" isUnique="false" association="_lzRRwByIEduN1bTiWJ0lyw">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9dMD8OL4EeK7avO_9XJm4Q"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9dbUgOL4EeK7avO_9XJm4Q" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_5xNQUNY8EeGH9LIP6-_nLw" name="declaration" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9QCHoNY8EeGH9LIP6-_nLw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9QFK8NY8EeGH9LIP6-_nLw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_2VwCEByHEduN1bTiWJ0lyw" name="Ref">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_V-XOkByIEduN1bTiWJ0lyw" name="base_parameter" isUnique="false" association="_V-ysYByIEduN1bTiWJ0lyw">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Parameter"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__nXcgOL4EeK7avO_9XJm4Q"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__nfYUOL4EeK7avO_9XJm4Q" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_mbfIUByIEduN1bTiWJ0lyw" name="base_property" isUnique="false" association="_mb27wByIEduN1bTiWJ0lyw">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BOSXAOL5EeK7avO_9XJm4Q"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BOaS0OL5EeK7avO_9XJm4Q" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_Vb-6QByIEduN1bTiWJ0lyw" name="E_Ptr_Parameter1" memberEnd="_VbvCoByIEduN1bTiWJ0lyw _Vb-6QRyIEduN1bTiWJ0lyw">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Vb-6QRyIEduN1bTiWJ0lyw" name="extension_Ptr" type="_19ZzgByHEduN1bTiWJ0lyw" association="_Vb-6QByIEduN1bTiWJ0lyw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_V-ysYByIEduN1bTiWJ0lyw" name="E_Ref_Parameter1" memberEnd="_V-XOkByIEduN1bTiWJ0lyw _V-ysYRyIEduN1bTiWJ0lyw">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_V-ysYRyIEduN1bTiWJ0lyw" name="extension_Ref" type="_2VwCEByHEduN1bTiWJ0lyw" association="_V-ysYByIEduN1bTiWJ0lyw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_jeImYByIEduN1bTiWJ0lyw" name="E_Array_Property1" memberEnd="_jd4uwByIEduN1bTiWJ0lyw _jeImYRyIEduN1bTiWJ0lyw">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_jeImYRyIEduN1bTiWJ0lyw" name="extension_Array" type="_WgwmcByHEduN1bTiWJ0lyw" association="_jeImYByIEduN1bTiWJ0lyw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_kJ5gMByIEduN1bTiWJ0lyw" name="E_Const_Property1" memberEnd="_kJX7wByIEduN1bTiWJ0lyw _kJ5gMRyIEduN1bTiWJ0lyw">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_kJ5gMRyIEduN1bTiWJ0lyw" name="extension_Const" type="_l2faUByHEduN1bTiWJ0lyw" association="_kJ5gMByIEduN1bTiWJ0lyw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_lzRRwByIEduN1bTiWJ0lyw" name="E_Ptr_Property1" memberEnd="_lylVQByIEduN1bTiWJ0lyw _lzRRwRyIEduN1bTiWJ0lyw">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_lzRRwRyIEduN1bTiWJ0lyw" name="extension_Ptr" type="_19ZzgByHEduN1bTiWJ0lyw" association="_lzRRwByIEduN1bTiWJ0lyw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_mb27wByIEduN1bTiWJ0lyw" name="E_Ref_Property1" memberEnd="_mbfIUByIEduN1bTiWJ0lyw _mb27wRyIEduN1bTiWJ0lyw">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_mb27wRyIEduN1bTiWJ0lyw" name="extension_Ref" type="_2VwCEByHEduN1bTiWJ0lyw" association="_mb27wByIEduN1bTiWJ0lyw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_MyI6IByJEduN1bTiWJ0lyw" name="External">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_UiU48ByJEduN1bTiWJ0lyw" name="name" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ho9-oOL9EeKxe91u-BdTVQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HpF6cOL9EeKxe91u-BdTVQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Ibp-8OPxEeKKu7vQg_d5Xw" name="base_Classifier" association="_Ibyh0OPxEeKKu7vQg_d5Xw">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_PmXVQByJEduN1bTiWJ0lyw" name="ExternLibrary">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_WFVj0ByJEduN1bTiWJ0lyw" name="includePaths" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_x4IIgOL8EeKxe91u-BdTVQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_x4hxIOL8EeKxe91u-BdTVQ" value="*"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_3ta7IB5IEeO_BdY-WQWY-A">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_zqayUByJEduN1bTiWJ0lyw" name="base_package" isUnique="false" association="_zqqC4ByJEduN1bTiWJ0lyw">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_qvPI4NTHEeKiLbHSN_MIRQ" name="libPaths" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_E5XWoNTMEeKiLbHSN_MIRQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_E5ggkNTMEeKiLbHSN_MIRQ" value="*"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_E5wYMNTMEeKiLbHSN_MIRQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_FRPjwNTPEeKiLbHSN_MIRQ" name="macros" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FftdkNTPEeKiLbHSN_MIRQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ff648NTPEeKiLbHSN_MIRQ" value="*"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_FgNz4NTPEeKiLbHSN_MIRQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_FzcR4NTPEeKiLbHSN_MIRQ" name="libs" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_F6mCwNTPEeKiLbHSN_MIRQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_F6wa0NTPEeKiLbHSN_MIRQ" value="*"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_F7CusNTPEeKiLbHSN_MIRQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_NkWpcNTPEeKiLbHSN_MIRQ" name="includes" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Pkq7YNTPEeKiLbHSN_MIRQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PkyQINTPEeKiLbHSN_MIRQ" value="*"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_PlNt8NTPEeKiLbHSN_MIRQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_RwTdQByJEduN1bTiWJ0lyw" name="Include">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_XU2q8ByJEduN1bTiWJ0lyw" name="body" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XhvLMBybEdudA-H9lQdiWg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XiD7UBybEdudA-H9lQdiWg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_RyRCMBBXEdyoOLr5UzE5gA" value=""/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_r9C7EP2HEeGbWP4cpLE0gg" name="preBody" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_siaR8P2HEeGbWP4cpLE0gg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sia5AP2HEeGbWP4cpLE0gg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_5Ewt4JVWEeKvxuXeCtLm5w" name="" value=""/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_YtvwgByJEduN1bTiWJ0lyw" name="header" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dbl6gBybEdudA-H9lQdiWg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dbnIoBybEdudA-H9lQdiWg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_RT5rMBBXEdyoOLr5UzE5gA" value=""/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_0IP90ByJEduN1bTiWJ0lyw" name="base_package" isUnique="false" association="_0It34ByJEduN1bTiWJ0lyw">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eMPUEOL5EeK7avO_9XJm4Q"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eMekoOL5EeK7avO_9XJm4Q" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_0ja24ByJEduN1bTiWJ0lyw" name="base_class" isUnique="false" association="_0jpgYByJEduN1bTiWJ0lyw">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_fSqJkOL5EeK7avO_9XJm4Q"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_fSw3QOL5EeK7avO_9XJm4Q" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_9Z58QHP-EeWZ7bKCqwPQEQ" name="base_Classifier" association="_9Z2R4HP-EeWZ7bKCqwPQEQ">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DN9lkHP_EeWZ7bKCqwPQEQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DOBP8HP_EeWZ7bKCqwPQEQ" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_zqqC4ByJEduN1bTiWJ0lyw" name="E_ExternLibrary_Package1" memberEnd="_zqayUByJEduN1bTiWJ0lyw _zqqC4RyJEduN1bTiWJ0lyw">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_zqqC4RyJEduN1bTiWJ0lyw" name="extension_ExternLibrary" type="_PmXVQByJEduN1bTiWJ0lyw" association="_zqqC4ByJEduN1bTiWJ0lyw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_0It34ByJEduN1bTiWJ0lyw" name="E_Include_Package1" memberEnd="_0IP90ByJEduN1bTiWJ0lyw _0It34RyJEduN1bTiWJ0lyw">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_0It34RyJEduN1bTiWJ0lyw" name="extension_Include" type="_RwTdQByJEduN1bTiWJ0lyw" association="_0It34ByJEduN1bTiWJ0lyw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_0jpgYByJEduN1bTiWJ0lyw" name="E_Include_Class1" memberEnd="_0ja24ByJEduN1bTiWJ0lyw _0jpgYRyJEduN1bTiWJ0lyw">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_0jpgYRyJEduN1bTiWJ0lyw" name="extension_Include" type="_RwTdQByJEduN1bTiWJ0lyw" association="_0jpgYByJEduN1bTiWJ0lyw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_9Z2R4HP-EeWZ7bKCqwPQEQ" name="E_Include_Classifier1" memberEnd="_9Z5VMHP-EeWZ7bKCqwPQEQ _9Z58QHP-EeWZ7bKCqwPQEQ">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_9Z5VMHP-EeWZ7bKCqwPQEQ" name="extension_Include" type="_RwTdQByJEduN1bTiWJ0lyw" aggregation="composite" association="_9Z2R4HP-EeWZ7bKCqwPQEQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_u3zF8ByLEdu0tMSz-ceC5A" name="CppRoot">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xOLHcByLEdu0tMSz-ceC5A" name="base_package" isUnique="false" association="_xObmIByLEdu0tMSz-ceC5A">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_xObmIByLEdu0tMSz-ceC5A" name="Extension_CppRoot" memberEnd="_xOLHcByLEdu0tMSz-ceC5A _xOcNMByLEdu0tMSz-ceC5A">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_xOcNMByLEdu0tMSz-ceC5A" name="Extension_CppRoot" type="_u3zF8ByLEdu0tMSz-ceC5A" association="_xObmIByLEdu0tMSz-ceC5A"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_IHjS8ByMEdu0tMSz-ceC5A" name="NoCodeGen">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_KiFbsByMEdu0tMSz-ceC5A" name="base_element" isUnique="false" association="_KiZkwByMEdu0tMSz-ceC5A">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Element"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_KiZkwByMEdu0tMSz-ceC5A" name="E_NoCodeGen_Element1" memberEnd="_KiFbsByMEdu0tMSz-ceC5A _KiZkwRyMEdu0tMSz-ceC5A">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_KiZkwRyMEdu0tMSz-ceC5A" name="extension_NoCodeGen" type="_IHjS8ByMEdu0tMSz-ceC5A" association="_KiZkwByMEdu0tMSz-ceC5A"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_ThSyYByMEdu0tMSz-ceC5A" name="E_Const_Operation1" memberEnd="_ThDh0ByMEdu0tMSz-ceC5A _ThSyYRyMEdu0tMSz-ceC5A">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_ThSyYRyMEdu0tMSz-ceC5A" name="extension_Const" type="_l2faUByHEduN1bTiWJ0lyw" association="_ThSyYByMEdu0tMSz-ceC5A"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_Vk8FIByMEdu0tMSz-ceC5A" name="ConstInit">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_XYIhEByMEdu0tMSz-ceC5A" name="initialisation" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_dtKJcByMEdu0tMSz-ceC5A" name="base_operation" isUnique="false" association="_dtaoIByMEdu0tMSz-ceC5A">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_dtaoIByMEdu0tMSz-ceC5A" name="Extension_ConstInit" memberEnd="_dtKJcByMEdu0tMSz-ceC5A _dtaoIRyMEdu0tMSz-ceC5A">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_dtaoIRyMEdu0tMSz-ceC5A" name="Extension_CppConstInit" type="_Vk8FIByMEdu0tMSz-ceC5A" association="_dtaoIByMEdu0tMSz-ceC5A"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_e6bN0ByMEdu0tMSz-ceC5A" name="Friend">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_gvjjcByMEdu0tMSz-ceC5A" name="base_dependency" isUnique="false" association="_gvyM8ByMEdu0tMSz-ceC5A">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Dependency"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WZnFQOL5EeK7avO_9XJm4Q"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_WZ1uwOL5EeK7avO_9XJm4Q" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_hPAfkByMEdu0tMSz-ceC5A" name="base_operation" isUnique="false" association="_hPPwIByMEdu0tMSz-ceC5A">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XZ6EoOL5EeK7avO_9XJm4Q"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XaHgAOL5EeK7avO_9XJm4Q" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_gvyM8ByMEdu0tMSz-ceC5A" name="E_Friend_Dependency1" memberEnd="_gvjjcByMEdu0tMSz-ceC5A _gvyM8RyMEdu0tMSz-ceC5A">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_gvyM8RyMEdu0tMSz-ceC5A" name="extension_Friend" type="_e6bN0ByMEdu0tMSz-ceC5A" association="_gvyM8ByMEdu0tMSz-ceC5A"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_hPPwIByMEdu0tMSz-ceC5A" name="E_Friend_Operation1" memberEnd="_hPAfkByMEdu0tMSz-ceC5A _hPPwIRyMEdu0tMSz-ceC5A">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_hPPwIRyMEdu0tMSz-ceC5A" name="extension_Friend" type="_e6bN0ByMEdu0tMSz-ceC5A" association="_hPPwIByMEdu0tMSz-ceC5A"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_lfbL4ByMEdu0tMSz-ceC5A" name="Inline">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_n0_8IByMEdu0tMSz-ceC5A" name="base_operation" isUnique="false" association="_n1PMsByMEdu0tMSz-ceC5A">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_n1PMsByMEdu0tMSz-ceC5A" name="E_Inline_Operation1" memberEnd="_n0_8IByMEdu0tMSz-ceC5A _n1PMsRyMEdu0tMSz-ceC5A">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_n1PMsRyMEdu0tMSz-ceC5A" name="extension_Inline" type="_lfbL4ByMEdu0tMSz-ceC5A" association="_n1PMsByMEdu0tMSz-ceC5A"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_FA2LQByNEdu0tMSz-ceC5A" name="Virtual">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_K5A4gByNEdu0tMSz-ceC5A" name="base_operation" isUnique="false" association="_K5gnwByNEdu0tMSz-ceC5A">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_K5gnwByNEdu0tMSz-ceC5A" name="E_Virtual_Operation1" memberEnd="_K5A4gByNEdu0tMSz-ceC5A _K5gnwRyNEdu0tMSz-ceC5A">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_K5gnwRyNEdu0tMSz-ceC5A" name="extension_Virtual" type="_FA2LQByNEdu0tMSz-ceC5A" association="_K5gnwByNEdu0tMSz-ceC5A"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_5yQWcByNEdu0tMSz-ceC5A" name="Typedef">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_7C5e8ByNEdu0tMSz-ceC5A" name="definition" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_DgXagByOEdu0tMSz-ceC5A" name="base_primitivetype" isUnique="false" association="_DqJooByOEdu0tMSz-ceC5A">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#PrimitiveType"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_DqJooByOEdu0tMSz-ceC5A" name="Extension_Typedef" memberEnd="_DgXagByOEdu0tMSz-ceC5A _DqJooRyOEdu0tMSz-ceC5A">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_DqJooRyOEdu0tMSz-ceC5A" name="Extension_CppType" type="_5yQWcByNEdu0tMSz-ceC5A" association="_DqJooByOEdu0tMSz-ceC5A"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_ALgiEByPEduuTv8efIb91A" name="Visibility">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_HbLNwByPEduuTv8efIb91A" name="value" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_NQc_EByPEduuTv8efIb91A" name="base_generalization" isUnique="false" association="_NQs2sByPEduuTv8efIb91A">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Generalization"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_NQs2sByPEduuTv8efIb91A" name="Extension_Visibility" memberEnd="_NQc_EByPEduuTv8efIb91A _NQs2sRyPEduuTv8efIb91A">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_NQs2sRyPEduuTv8efIb91A" name="Extension_CppVisibility" type="_ALgiEByPEduuTv8efIb91A" association="_NQs2sByPEduuTv8efIb91A"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_S_sZ0ByPEduuTv8efIb91A" name="CppInit">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_VcWCcByPEduuTv8efIb91A" name="value" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_aoPfkByPEduuTv8efIb91A" name="base_enumerationliteral" isUnique="false" association="_aoVmMByPEduuTv8efIb91A">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#EnumerationLiteral"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_aoVmMByPEduuTv8efIb91A" name="Extension_CppInit" memberEnd="_aoPfkByPEduuTv8efIb91A _aoVmMRyPEduuTv8efIb91A">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_aoVmMRyPEduuTv8efIb91A" name="Extension_CppInit" type="_S_sZ0ByPEduuTv8efIb91A" association="_aoVmMByPEduuTv8efIb91A"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_gufsIByPEduuTv8efIb91A" name="E_Array_Association1" memberEnd="_guP0gByPEduuTv8efIb91A _gufsIRyPEduuTv8efIb91A">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_gufsIRyPEduuTv8efIb91A" name="extension_Array" type="_WgwmcByHEduN1bTiWJ0lyw" association="_gufsIByPEduuTv8efIb91A"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_5W6MUByPEduuTv8efIb91A" name="Template">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_7e8P0ByPEduuTv8efIb91A" name="declaration" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Op3MkByQEduuTv8efIb91A" name="base_class" isUnique="false" association="_OqF2EByQEduuTv8efIb91A">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_9oCDQByPEduuTv8efIb91A" name="TemplateBinding">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_AOo5IByQEduuTv8efIb91A" name="binding" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_O8vFQByQEduuTv8efIb91A" name="base_templatebinding" isUnique="false" association="_O9D1YByQEduuTv8efIb91A">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#TemplateBinding"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_CYoEcByQEduuTv8efIb91A" name="TemplateParameter">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_EV0J4ByQEduuTv8efIb91A" name="name" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_OXfqMByQEduuTv8efIb91A" name="base_templateparameter" isUnique="false" association="_OYBOoByQEduuTv8efIb91A">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#TemplateParameter"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_OYBOoByQEduuTv8efIb91A" name="E_TemplateParameter_TemplateParameter1" memberEnd="_OXfqMByQEduuTv8efIb91A _OYBOoRyQEduuTv8efIb91A">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_OYBOoRyQEduuTv8efIb91A" name="extension_TemplateParameter" type="_CYoEcByQEduuTv8efIb91A" association="_OYBOoByQEduuTv8efIb91A"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_OqF2EByQEduuTv8efIb91A" name="E_Template_Class1" memberEnd="_Op3MkByQEduuTv8efIb91A _OqF2ERyQEduuTv8efIb91A">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_OqF2ERyQEduuTv8efIb91A" name="extension_Template" type="_5W6MUByPEduuTv8efIb91A" association="_OqF2EByQEduuTv8efIb91A"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_O9D1YByQEduuTv8efIb91A" name="E_TemplateBinding_TemplateBinding1" memberEnd="_O8vFQByQEduuTv8efIb91A _O9D1YRyQEduuTv8efIb91A">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_O9D1YRyQEduuTv8efIb91A" name="extension_TemplateBinding" type="_9oCDQByPEduuTv8efIb91A" association="_O9D1YByQEduuTv8efIb91A"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_A3_lgCYNEeKe9vxHwEdBmA" name="ManualGeneration">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_vOBBoCYNEeKe9vxHwEdBmA" name="extensionBody" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_5zd9YCYNEeKe9vxHwEdBmA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_5zgZoCYNEeKe9vxHwEdBmA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_5zkrECYNEeKe9vxHwEdBmA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_KEpF0CYOEeKe9vxHwEdBmA" name="base_Class" association="_KEps4CYOEeKe9vxHwEdBmA">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_KEps4CYOEeKe9vxHwEdBmA" name="E_ManualGeneration_Class1" memberEnd="_KEps4SYOEeKe9vxHwEdBmA _KEpF0CYOEeKe9vxHwEdBmA">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_KEps4SYOEeKe9vxHwEdBmA" name="extension_ManualGeneration" type="_A3_lgCYNEeKe9vxHwEdBmA" aggregation="composite" association="_KEps4CYOEeKe9vxHwEdBmA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_QCUzIF5fEeKpvPHLdOdp2Q" name="Union">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_R-F8QF5fEeKpvPHLdOdp2Q" name="base_DataType" association="_R-F8QV5fEeKpvPHLdOdp2Q">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#DataType"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_R-F8QV5fEeKpvPHLdOdp2Q" name="E_Union_DataType1" memberEnd="_R-F8Ql5fEeKpvPHLdOdp2Q _R-F8QF5fEeKpvPHLdOdp2Q">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_R-F8Ql5fEeKpvPHLdOdp2Q" name="extension_Union" type="_QCUzIF5fEeKpvPHLdOdp2Q" aggregation="composite" association="_R-F8QV5fEeKpvPHLdOdp2Q"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_yOu8UJMIEeKrb5fnA81_2Q" name="EAccessKind">
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_zX48wJMIEeKrb5fnA81_2Q" name="read"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_0bzQ0JMIEeKrb5fnA81_2Q" name="write"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_1C3Q0JMIEeKrb5fnA81_2Q" name="readWrite"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_YVBzYJMIEeKrb5fnA81_2Q" name="EStorageClass">
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_g3RhQJMIEeKrb5fnA81_2Q" name="volatile"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_iJ4_sJMIEeKrb5fnA81_2Q" name="register"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_irt6YJMIEeKrb5fnA81_2Q" name="extern"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_U3BNgJVPEeKCE6_KfOehJw" name="StorageClass">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_X910gJVPEeKCE6_KfOehJw" name="storageClass" visibility="public" type="_YVBzYJMIEeKrb5fnA81_2Q" isUnique="false">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Yd3YYJVPEeKCE6_KfOehJw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Yd4mgJVPEeKCE6_KfOehJw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_Yd7CwJVPEeKCE6_KfOehJw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_HHUHIFCcEeWdH-pLiDvc5A" name="base_Property" association="_HHOnkFCcEeWdH-pLiDvc5A">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ND8doFCcEeWdH-pLiDvc5A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_NECkQFCcEeWdH-pLiDvc5A" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Hp7sAVCcEeWdH-pLiDvc5A" name="base_Parameter" association="_Hp7E8FCcEeWdH-pLiDvc5A">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Parameter"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Qmn6MFCcEeWdH-pLiDvc5A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QmrkkFCcEeWdH-pLiDvc5A" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_Ibyh0OPxEeKKu7vQg_d5Xw" name="E_External_Classifier1" memberEnd="_Ibyh0ePxEeKKu7vQg_d5Xw _Ibp-8OPxEeKKu7vQg_d5Xw">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Ibyh0ePxEeKKu7vQg_d5Xw" name="extension_External" type="_MyI6IByJEduN1bTiWJ0lyw" aggregation="composite" association="_Ibyh0OPxEeKKu7vQg_d5Xw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_yA1EQPuNEeOuv40UUNEbNQ" name="Volatile">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_oBZfUPuQEeOuv40UUNEbNQ" name="base_parameter" isUnique="false" association="_oBZfUfuQEeOuv40UUNEbNQ">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Parameter"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mKY2QFCfEeWe8cmIlAaqWg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mKe84FCfEeWe8cmIlAaqWg" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_7Pfr4PuQEeOuv40UUNEbNQ" name="base_property" isUnique="false" association="_7Pg6APuQEeOuv40UUNEbNQ">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_m3oWwFCfEeWe8cmIlAaqWg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_m3pk4FCfEeWe8cmIlAaqWg" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_-qYeYPuQEeOuv40UUNEbNQ" name="base_operation" isUnique="false" association="_-qZFcPuQEeOuv40UUNEbNQ">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_niG3IFCfEeWe8cmIlAaqWg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_niIFQFCfEeWe8cmIlAaqWg" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_oBZfUfuQEeOuv40UUNEbNQ" name="E_Volatile_Parameter1" memberEnd="_oBZfUvuQEeOuv40UUNEbNQ _oBZfUPuQEeOuv40UUNEbNQ">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_oBZfUvuQEeOuv40UUNEbNQ" name="extension_Volatile" type="_yA1EQPuNEeOuv40UUNEbNQ" aggregation="composite" association="_oBZfUfuQEeOuv40UUNEbNQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_7Pg6APuQEeOuv40UUNEbNQ" name="E_Volatile_Property1" memberEnd="_7Pg6AfuQEeOuv40UUNEbNQ _7Pfr4PuQEeOuv40UUNEbNQ">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_7Pg6AfuQEeOuv40UUNEbNQ" name="extension_Volatile" type="_yA1EQPuNEeOuv40UUNEbNQ" aggregation="composite" association="_7Pg6APuQEeOuv40UUNEbNQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_-qZFcPuQEeOuv40UUNEbNQ" name="E_Volatile_Operation1" memberEnd="_-qZFcfuQEeOuv40UUNEbNQ _-qYeYPuQEeOuv40UUNEbNQ">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_-qZFcfuQEeOuv40UUNEbNQ" name="extension_Volatile" type="_yA1EQPuNEeOuv40UUNEbNQ" aggregation="composite" association="_-qZFcPuQEeOuv40UUNEbNQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_HHOnkFCcEeWdH-pLiDvc5A" name="E_StorageClass_Property1" memberEnd="_HHS5AFCcEeWdH-pLiDvc5A _HHUHIFCcEeWdH-pLiDvc5A">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_HHS5AFCcEeWdH-pLiDvc5A" name="extension_StorageClass" type="_U3BNgJVPEeKCE6_KfOehJw" aggregation="composite" association="_HHOnkFCcEeWdH-pLiDvc5A"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_Hp7E8FCcEeWdH-pLiDvc5A" name="E_StorageClass_Parameter1" memberEnd="_Hp7sAFCcEeWdH-pLiDvc5A _Hp7sAVCcEeWdH-pLiDvc5A">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Hp7sAFCcEeWdH-pLiDvc5A" name="extension_StorageClass" type="_U3BNgJVPEeKCE6_KfOehJw" aggregation="composite" association="_Hp7E8FCcEeWdH-pLiDvc5A"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_cKKNYHDeEeWeeNq7pVC2_w" name="Variadic">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_kKEqQHDeEeWeeNq7pVC2_w" name="base_operation" association="_kJ_KsHDeEeWeeNq7pVC2_w">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_kJ_KsHDeEeWeeNq7pVC2_w" name="E_Variadic_Operation1" memberEnd="_kKDcIHDeEeWeeNq7pVC2_w _kKEqQHDeEeWeeNq7pVC2_w">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_kKDcIHDeEeWeeNq7pVC2_w" name="extension_Variadic" type="_cKKNYHDeEeWeeNq7pVC2_w" aggregation="composite" association="_kJ_KsHDeEeWeeNq7pVC2_w"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_OsMnoHGHEeWRFvcel2rJKQ" name="Mutable">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Q_zB8HGHEeWRFvcel2rJKQ" name="base_property" association="_Q_sUQHGHEeWRFvcel2rJKQ">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_Q_sUQHGHEeWRFvcel2rJKQ" name="E_Mutable_Property1" memberEnd="_Q_uwgHGHEeWRFvcel2rJKQ _Q_zB8HGHEeWRFvcel2rJKQ">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Q_uwgHGHEeWRFvcel2rJKQ" name="extension_Mutable" type="_OsMnoHGHEeWRFvcel2rJKQ" aggregation="composite" association="_Q_sUQHGHEeWRFvcel2rJKQ"/>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_QS19UMogEeGKstsYRuxdvw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QUmQ0MogEeGKstsYRuxdvw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Ecore.profile.uml#_0"/>
+ </profileApplication>
+ </uml:Profile>
+ <Ecore:EPackage xmi:id="_RRUXwMogEeGKstsYRuxdvw" base_Package="_j9REUByGEduN1bTiWJ0lyw" packageName="C_Cpp" nsPrefix="C_Cpp" nsURI="http://www.eclipse.org/papyrus/C_Cpp/1" prefix="C_Cpp"/>
+</xmi:XMI>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/profiles/PapyrusC.profile.di b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/profiles/PapyrusC.profile.di
new file mode 100644
index 00000000000..89f2786c0ea
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/profiles/PapyrusC.profile.di
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="ASCII"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi">
+ <di:SashWindowsMngr>
+ <pageList>
+ <availablePage>
+ <emfPageIdentifier href="PapyrusC.profile.notation#_kmephMoQEeGKstsYRuxdvw"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="PapyrusC.profile.notation#_kmeo4MoQEeGKstsYRuxdvw"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="PapyrusC.profile.notation#_kmfQysoQEeGKstsYRuxdvw"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="PapyrusC.profile.notation#_kmfQyMoQEeGKstsYRuxdvw"/>
+ </availablePage>
+ </pageList>
+ <sashModel currentSelection="/0/@sashModel/@windows.0/@children.0">
+ <windows>
+ <children xsi:type="di:TabFolder">
+ <children>
+ <emfPageIdentifier href="PapyrusC.profile.notation#_kmeo4MoQEeGKstsYRuxdvw"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="PapyrusC.profile.notation#_kmephMoQEeGKstsYRuxdvw"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="PapyrusC.profile.notation#_kmfQyMoQEeGKstsYRuxdvw"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="PapyrusC.profile.notation#_kmfQysoQEeGKstsYRuxdvw"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+ </di:SashWindowsMngr>
+ <di:TabFolder/>
+</xmi:XMI>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/profiles/PapyrusC.profile.notation b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/profiles/PapyrusC.profile.notation
new file mode 100644
index 00000000000..8d2827ae033
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/profiles/PapyrusC.profile.notation
@@ -0,0 +1,650 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML">
+ <notation:Diagram xmi:id="_kmeo4MoQEeGKstsYRuxdvw" type="PapyrusUMLProfileDiagram" name="ANSI_C" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_kmeo4coQEeGKstsYRuxdvw" type="1026" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmeo4soQEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmeo48oQEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmeo5MoQEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmeo5coQEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmeo5soQEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmeo58oQEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kmeo6MoQEeGKstsYRuxdvw" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kmeo6coQEeGKstsYRuxdvw" visible="false" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kmeo6soQEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kmeo68oQEeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmeo7MoQEeGKstsYRuxdvw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kmeo7coQEeGKstsYRuxdvw" type="1071">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmeo7soQEeGKstsYRuxdvw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="PapyrusC.profile.uml#_tLnF8NtyEduxXYGi8mOVFA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmeo78oQEeGKstsYRuxdvw" x="36" y="225" width="100" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmeo8MoQEeGKstsYRuxdvw" type="1026" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmeo8coQEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmeo8soQEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmeo88oQEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmeo9MoQEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmeo9coQEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmeo9soQEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kmeo98oQEeGKstsYRuxdvw" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kmeo-MoQEeGKstsYRuxdvw" visible="false" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kmeo-coQEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kmeo-soQEeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmeo-8oQEeGKstsYRuxdvw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kmeo_MoQEeGKstsYRuxdvw" type="1071">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmeo_coQEeGKstsYRuxdvw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="PapyrusC.profile.uml#_vF0I0NtyEduxXYGi8mOVFA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmeo_soQEeGKstsYRuxdvw" x="171" y="225" width="100" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmeo_8oQEeGKstsYRuxdvw" type="1026" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmepAMoQEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmepAcoQEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmepAsoQEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmepA8oQEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmepBMoQEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmepBcoQEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kmepBsoQEeGKstsYRuxdvw" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kmepB8oQEeGKstsYRuxdvw" visible="false" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kmepCMoQEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kmepCcoQEeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmepCsoQEeGKstsYRuxdvw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kmepC8oQEeGKstsYRuxdvw" type="1071">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmepDMoQEeGKstsYRuxdvw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="PapyrusC.profile.uml#_hyzoYNt3EduxXYGi8mOVFA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmepDcoQEeGKstsYRuxdvw" x="36" y="117" width="235" height="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmepDsoQEeGKstsYRuxdvw" type="1031" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmepD8oQEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmepEMoQEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmepEcoQEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmepEsoQEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmepE8oQEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmepFMoQEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kmepFcoQEeGKstsYRuxdvw" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Type"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmepFsoQEeGKstsYRuxdvw" x="36" y="36" width="235" height="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmepF8oQEeGKstsYRuxdvw" type="1030" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmepGMoQEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmepGcoQEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmepGsoQEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmepG8oQEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmepHMoQEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmepHcoQEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kmepHsoQEeGKstsYRuxdvw" type="1047"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kmepH8oQEeGKstsYRuxdvw" type="1042">
+ <children xmi:type="notation:Shape" xmi:id="_kmepIMoQEeGKstsYRuxdvw" type="1031" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmepIcoQEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmepIsoQEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmepI8oQEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmepJMoQEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmepJcoQEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmepJsoQEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kmepJ8oQEeGKstsYRuxdvw" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Feature"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmepKMoQEeGKstsYRuxdvw" x="13" y="22" width="154" height="51"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmepKcoQEeGKstsYRuxdvw" type="1026" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmepKsoQEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmepK8oQEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmepLMoQEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmepLcoQEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmepLsoQEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmepL8oQEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kmepMMoQEeGKstsYRuxdvw" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kmepMcoQEeGKstsYRuxdvw" visible="false" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kmepMsoQEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kmepM8oQEeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmepNMoQEeGKstsYRuxdvw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kmepNcoQEeGKstsYRuxdvw" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_kmepNsoQEeGKstsYRuxdvw" type="3002">
+ <element xmi:type="uml:Property" href="PapyrusC.profile.uml#_lE-x8EP9EdyXRJo_SB0POQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmepN8oQEeGKstsYRuxdvw" x="20" y="20" width="100" height="100"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmepOMoQEeGKstsYRuxdvw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="PapyrusC.profile.uml#_HPbEkEHmEdyxlrpSW7ggPQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmepOcoQEeGKstsYRuxdvw" x="12" y="121" width="155" height="93"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmepOsoQEeGKstsYRuxdvw" type="1026" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmepO8oQEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmepPMoQEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmepPcoQEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmepPsoQEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmepP8oQEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmepQMoQEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kmepQcoQEeGKstsYRuxdvw" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kmepQsoQEeGKstsYRuxdvw" visible="false" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kmepQ8oQEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kmepRMoQEeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmepRcoQEeGKstsYRuxdvw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kmepRsoQEeGKstsYRuxdvw" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_kmepR8oQEeGKstsYRuxdvw" type="3002">
+ <element xmi:type="uml:Property" href="PapyrusC.profile.uml#_zIUzcEHlEdyxlrpSW7ggPQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmepSMoQEeGKstsYRuxdvw" x="20" y="20" width="100" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmepScoQEeGKstsYRuxdvw" type="3002">
+ <element xmi:type="uml:Property" href="PapyrusC.profile.uml#_88h4cEHlEdyxlrpSW7ggPQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmepSsoQEeGKstsYRuxdvw" x="20" y="20" width="100" height="100"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmepS8oQEeGKstsYRuxdvw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="PapyrusC.profile.uml#_ygvPAEHlEdyxlrpSW7ggPQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmepTMoQEeGKstsYRuxdvw" x="256" y="121" width="155" height="93"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmepTcoQEeGKstsYRuxdvw" type="1031" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmepTsoQEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmepT8oQEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmepUMoQEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmepUcoQEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmepUsoQEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmepU8oQEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kmepVMoQEeGKstsYRuxdvw" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#PrimitiveType"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmepVcoQEeGKstsYRuxdvw" x="256" y="22" width="154" height="55"/>
+ </children>
+ </children>
+ <element xmi:type="uml:Profile" href="PapyrusC.profile.uml#_9WrSUBU5EdyGtuGaCXC25Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmepVsoQEeGKstsYRuxdvw" x="342" y="27" width="460" height="289"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_kmepV8oQEeGKstsYRuxdvw"/>
+ <element xmi:type="uml:Profile" href="PapyrusC.profile.uml#_fyjaINtyEduxXYGi8mOVFA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_kmepWMoQEeGKstsYRuxdvw" type="4002" source="_kmeo4coQEeGKstsYRuxdvw" target="_kmeo_8oQEeGKstsYRuxdvw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kmepWcoQEeGKstsYRuxdvw" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kmepWsoQEeGKstsYRuxdvw" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_kmepW8oQEeGKstsYRuxdvw"/>
+ <element xmi:type="uml:Generalization" href="PapyrusC.profile.uml#_fg9sUNudEdu40vrGR5q4gQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kmepXMoQEeGKstsYRuxdvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kmepXcoQEeGKstsYRuxdvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kmepXsoQEeGKstsYRuxdvw" id="(0.251063829787234,0.9541284403669725)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kmepX8oQEeGKstsYRuxdvw" type="4002" source="_kmeo8MoQEeGKstsYRuxdvw" target="_kmeo_8oQEeGKstsYRuxdvw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kmepYMoQEeGKstsYRuxdvw" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kmepYcoQEeGKstsYRuxdvw" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_kmepYsoQEeGKstsYRuxdvw"/>
+ <element xmi:type="uml:Generalization" href="PapyrusC.profile.uml#_f6rM0NudEdu40vrGR5q4gQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kmepY8oQEeGKstsYRuxdvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kmepZMoQEeGKstsYRuxdvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kmepZcoQEeGKstsYRuxdvw" id="(0.7659574468085106,0.9174311926605505)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kmepZsoQEeGKstsYRuxdvw" type="1013" source="_kmeo_8oQEeGKstsYRuxdvw" target="_kmepDsoQEeGKstsYRuxdvw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_kmepZ8oQEeGKstsYRuxdvw"/>
+ <element xmi:type="uml:Extension" href="PapyrusC.profile.uml#_f5x_gNueEdu40vrGR5q4gQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kmepaMoQEeGKstsYRuxdvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kmepacoQEeGKstsYRuxdvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kmepasoQEeGKstsYRuxdvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kmepa8oQEeGKstsYRuxdvw" type="1013" source="_kmepOsoQEeGKstsYRuxdvw" target="_kmepTcoQEeGKstsYRuxdvw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_kmepbMoQEeGKstsYRuxdvw"/>
+ <element xmi:type="uml:Extension" href="PapyrusC.profile.uml#_DkBw4EHmEdyxlrpSW7ggPQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kmepbcoQEeGKstsYRuxdvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kmepbsoQEeGKstsYRuxdvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kmepb8oQEeGKstsYRuxdvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kmepcMoQEeGKstsYRuxdvw" type="1013" source="_kmepKcoQEeGKstsYRuxdvw" target="_kmepIMoQEeGKstsYRuxdvw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_kmepccoQEeGKstsYRuxdvw"/>
+ <element xmi:type="uml:Extension" href="PapyrusC.profile.uml#_Ua9XkEPwEdyRdtrzgCMxHg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kmepcsoQEeGKstsYRuxdvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kmepc8oQEeGKstsYRuxdvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kmepdMoQEeGKstsYRuxdvw"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Size xmi:id="_kmepdcoQEeGKstsYRuxdvw" width="100" height="100"/>
+ <notation:Location xmi:id="_kmepdsoQEeGKstsYRuxdvw" x="105" y="220"/>
+ <notation:Location xmi:id="_kmepd8oQEeGKstsYRuxdvw" x="255" y="220"/>
+ <notation:Size xmi:id="_kmepeMoQEeGKstsYRuxdvw" width="154" height="139"/>
+ <notation:Location xmi:id="_kmepecoQEeGKstsYRuxdvw" x="143" y="28"/>
+ <notation:Size xmi:id="_kmepesoQEeGKstsYRuxdvw" width="100" height="51"/>
+ <notation:Location xmi:id="_kmepe8oQEeGKstsYRuxdvw" x="155" y="-47"/>
+ <notation:Size xmi:id="_kmepfMoQEeGKstsYRuxdvw" width="700" height="315"/>
+ <notation:Location xmi:id="_kmepfcoQEeGKstsYRuxdvw" x="76" y="372"/>
+ <notation:Location xmi:id="_kmepfsoQEeGKstsYRuxdvw" x="68" y="60"/>
+ <notation:Size xmi:id="_kmepf8oQEeGKstsYRuxdvw" width="211" height="159"/>
+ <notation:Location xmi:id="_kmepgMoQEeGKstsYRuxdvw" x="12" y="146"/>
+ <notation:Location xmi:id="_kmepgcoQEeGKstsYRuxdvw" x="20" y="20"/>
+ <notation:Location xmi:id="_kmepgsoQEeGKstsYRuxdvw" x="266" y="146"/>
+ <notation:Location xmi:id="_kmepg8oQEeGKstsYRuxdvw" x="322" y="60"/>
+ <notation:Diagram xmi:id="_kmephMoQEeGKstsYRuxdvw" type="PapyrusUMLProfileDiagram" name="CGenerator" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_kmephcoQEeGKstsYRuxdvw" type="1026" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmephsoQEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmeph8oQEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmepiMoQEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmepicoQEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmepisoQEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmepi8oQEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kmepjMoQEeGKstsYRuxdvw" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kmfP8MoQEeGKstsYRuxdvw" visible="false" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kmfP8coQEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kmfP8soQEeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfP88oQEeGKstsYRuxdvw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kmfP9MoQEeGKstsYRuxdvw" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_kmfP9coQEeGKstsYRuxdvw" type="3002">
+ <element xmi:type="uml:Property" href="PapyrusC.profile.uml#_tWFcMBU8EdyGtuGaCXC25Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfP9soQEeGKstsYRuxdvw" x="20" y="20" width="100" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmfP98oQEeGKstsYRuxdvw" type="3002">
+ <element xmi:type="uml:Property" href="PapyrusC.profile.uml#_1G9-kBU8EdyGtuGaCXC25Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfP-MoQEeGKstsYRuxdvw" x="20" y="20" width="100" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmfP-coQEeGKstsYRuxdvw" type="3002">
+ <element xmi:type="uml:Property" href="PapyrusC.profile.uml#_dTRqcBU9EdyGtuGaCXC25Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfP-soQEeGKstsYRuxdvw" x="20" y="20" width="100" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmfP-8oQEeGKstsYRuxdvw" type="3002">
+ <element xmi:type="uml:Property" href="PapyrusC.profile.uml#_ty6FoBU9EdyGtuGaCXC25Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfP_MoQEeGKstsYRuxdvw" x="20" y="20" width="100" height="100"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfP_coQEeGKstsYRuxdvw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="PapyrusC.profile.uml#_P2CwoBU6EdyGtuGaCXC25Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfP_soQEeGKstsYRuxdvw" x="27" y="356" width="298" height="144"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmfP_8oQEeGKstsYRuxdvw" type="1031" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmfQAMoQEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmfQAcoQEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmfQAsoQEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmfQA8oQEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmfQBMoQEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmfQBcoQEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kmfQBsoQEeGKstsYRuxdvw" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Type"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfQB8oQEeGKstsYRuxdvw" x="27" y="270" width="298" height="48"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmfQCMoQEeGKstsYRuxdvw" type="1026" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmfQCcoQEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmfQCsoQEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmfQC8oQEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmfQDMoQEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmfQDcoQEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmfQDsoQEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kmfQD8oQEeGKstsYRuxdvw" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kmfQEMoQEeGKstsYRuxdvw" visible="false" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kmfQEcoQEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kmfQEsoQEeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfQE8oQEeGKstsYRuxdvw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kmfQFMoQEeGKstsYRuxdvw" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_kmfQFcoQEeGKstsYRuxdvw" type="3002">
+ <element xmi:type="uml:Property" href="PapyrusC.profile.uml#_0uTCMNucEdu40vrGR5q4gQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfQFsoQEeGKstsYRuxdvw" x="484" y="175" width="100" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmfQF8oQEeGKstsYRuxdvw" type="3002">
+ <element xmi:type="uml:Property" href="PapyrusC.profile.uml#_OrDCoNueEdu40vrGR5q4gQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfQGMoQEeGKstsYRuxdvw" x="724" y="175" width="100" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmfQGcoQEeGKstsYRuxdvw" type="3002">
+ <element xmi:type="uml:Property" href="PapyrusC.profile.uml#_kKIFENt3EduxXYGi8mOVFA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfQGsoQEeGKstsYRuxdvw" x="844" y="175" width="100" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmfQG8oQEeGKstsYRuxdvw" type="3002">
+ <element xmi:type="uml:Property" href="PapyrusC.profile.uml#_kROLkNt3EduxXYGi8mOVFA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfQHMoQEeGKstsYRuxdvw" x="964" y="175" width="100" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmfQHcoQEeGKstsYRuxdvw" type="3002">
+ <element xmi:type="uml:Property" href="PapyrusC.profile.uml#_2SkKwBYHEdylxOSGZvSthg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfQHsoQEeGKstsYRuxdvw" x="20" y="20" width="100" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmfQH8oQEeGKstsYRuxdvw" type="3002">
+ <element xmi:type="uml:Property" href="PapyrusC.profile.uml#_5ARHIBYHEdylxOSGZvSthg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfQIMoQEeGKstsYRuxdvw" x="20" y="20" width="100" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmfQIcoQEeGKstsYRuxdvw" type="3002">
+ <element xmi:type="uml:Property" href="PapyrusC.profile.uml#_JnhUMBjwEdyGHM4pSbTixw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfQIsoQEeGKstsYRuxdvw" x="20" y="20" width="100" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmfQI8oQEeGKstsYRuxdvw" type="3002">
+ <element xmi:type="uml:Property" href="PapyrusC.profile.uml#_3ydVcDnQEdyK9KOUzoZMXQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfQJMoQEeGKstsYRuxdvw" x="20" y="20" width="100" height="100"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfQJcoQEeGKstsYRuxdvw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="PapyrusC.profile.uml#_6KIgINuZEdu40vrGR5q4gQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfQJsoQEeGKstsYRuxdvw" x="403" y="117" width="273" height="163"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmfQJ8oQEeGKstsYRuxdvw" type="2006" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmfQKMoQEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmfQKcoQEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmfQKsoQEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmfQK8oQEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmfQLMoQEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmfQLcoQEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kmfQLsoQEeGKstsYRuxdvw" type="5023"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kmfQL8oQEeGKstsYRuxdvw" type="1063">
+ <children xmi:type="notation:Shape" xmi:id="_kmfQMMoQEeGKstsYRuxdvw" type="1037">
+ <element xmi:type="uml:EnumerationLiteral" href="PapyrusC.profile.uml#_rv0OoNt4EduxXYGi8mOVFA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kmfQMcoQEeGKstsYRuxdvw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmfQMsoQEeGKstsYRuxdvw" type="1037">
+ <element xmi:type="uml:EnumerationLiteral" href="PapyrusC.profile.uml#_r1uCUNt4EduxXYGi8mOVFA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kmfQM8oQEeGKstsYRuxdvw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmfQNMoQEeGKstsYRuxdvw" type="1037">
+ <element xmi:type="uml:EnumerationLiteral" href="PapyrusC.profile.uml#_r6qMsNt4EduxXYGi8mOVFA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kmfQNcoQEeGKstsYRuxdvw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmfQNsoQEeGKstsYRuxdvw" type="1037">
+ <element xmi:type="uml:EnumerationLiteral" href="PapyrusC.profile.uml#_r_IdANt4EduxXYGi8mOVFA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kmfQN8oQEeGKstsYRuxdvw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmfQOMoQEeGKstsYRuxdvw" type="1037">
+ <element xmi:type="uml:EnumerationLiteral" href="PapyrusC.profile.uml#_ytqxkNt4EduxXYGi8mOVFA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kmfQOcoQEeGKstsYRuxdvw"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfQOsoQEeGKstsYRuxdvw"/>
+ </children>
+ <element xmi:type="uml:Enumeration" href="PapyrusC.profile.uml#_qO2yMNt4EduxXYGi8mOVFA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfQO8oQEeGKstsYRuxdvw" x="405" y="351" width="100" height="118"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmfQPMoQEeGKstsYRuxdvw" type="2006" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmfQPcoQEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmfQPsoQEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmfQP8oQEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmfQQMoQEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmfQQcoQEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmfQQsoQEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kmfQQ8oQEeGKstsYRuxdvw" type="5023"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kmfQRMoQEeGKstsYRuxdvw" type="1063">
+ <children xmi:type="notation:Shape" xmi:id="_kmfQRcoQEeGKstsYRuxdvw" type="1037">
+ <element xmi:type="uml:EnumerationLiteral" href="PapyrusC.profile.uml#_9tPMkBYHEdylxOSGZvSthg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kmfQRsoQEeGKstsYRuxdvw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmfQR8oQEeGKstsYRuxdvw" type="1037">
+ <element xmi:type="uml:EnumerationLiteral" href="PapyrusC.profile.uml#_9y0QIBYHEdylxOSGZvSthg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kmfQSMoQEeGKstsYRuxdvw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmfQScoQEeGKstsYRuxdvw" type="1037">
+ <element xmi:type="uml:EnumerationLiteral" href="PapyrusC.profile.uml#_-AI6cBYHEdylxOSGZvSthg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kmfQSsoQEeGKstsYRuxdvw"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfQS8oQEeGKstsYRuxdvw"/>
+ </children>
+ <element xmi:type="uml:Enumeration" href="PapyrusC.profile.uml#_8b3rUBYHEdylxOSGZvSthg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfQTMoQEeGKstsYRuxdvw" x="549" y="351" width="100" height="118"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmfQTcoQEeGKstsYRuxdvw" type="1026" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmfQTsoQEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmfQT8oQEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmfQUMoQEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmfQUcoQEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmfQUsoQEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmfQU8oQEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kmfQVMoQEeGKstsYRuxdvw" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kmfQVcoQEeGKstsYRuxdvw" visible="false" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kmfQVsoQEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kmfQV8oQEeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfQWMoQEeGKstsYRuxdvw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kmfQWcoQEeGKstsYRuxdvw" visible="false" type="1071">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfQWsoQEeGKstsYRuxdvw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="PapyrusC.profile.uml#_CyQIURiqEdyL78Gqc5OeNA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfQW8oQEeGKstsYRuxdvw" x="765" y="117" width="100" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmfQXMoQEeGKstsYRuxdvw" type="1031" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmfQXcoQEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmfQXsoQEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmfQX8oQEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmfQYMoQEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmfQYcoQEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmfQYsoQEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kmfQY8oQEeGKstsYRuxdvw" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Element"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfQZMoQEeGKstsYRuxdvw" x="769" y="27" width="91" height="48"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmfQZcoQEeGKstsYRuxdvw" type="1026" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmfQZsoQEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmfQZ8oQEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmfQaMoQEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmfQacoQEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmfQasoQEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmfQa8oQEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kmfQbMoQEeGKstsYRuxdvw" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kmfQbcoQEeGKstsYRuxdvw" visible="false" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kmfQbsoQEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kmfQb8oQEeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfQcMoQEeGKstsYRuxdvw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kmfQccoQEeGKstsYRuxdvw" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_kmfQcsoQEeGKstsYRuxdvw" type="3002">
+ <element xmi:type="uml:Property" href="PapyrusC.profile.uml#_aViuABU9EdyGtuGaCXC25Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfQc8oQEeGKstsYRuxdvw" x="20" y="20" width="100" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmfQdMoQEeGKstsYRuxdvw" type="3002">
+ <element xmi:type="uml:Property" href="PapyrusC.profile.uml#_pAD3IBU8EdyGtuGaCXC25Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfQdcoQEeGKstsYRuxdvw" x="20" y="20" width="100" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmfQdsoQEeGKstsYRuxdvw" type="3002">
+ <element xmi:type="uml:Property" href="PapyrusC.profile.uml#_lJpmQBU8EdyGtuGaCXC25Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfQd8oQEeGKstsYRuxdvw" x="20" y="20" width="100" height="100"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfQeMoQEeGKstsYRuxdvw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="PapyrusC.profile.uml#_93GTkBjCEdyfI_WOjDrRyg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfQecoQEeGKstsYRuxdvw" x="30" y="114" width="295" height="103"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmfQesoQEeGKstsYRuxdvw" type="1031" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmfQe8oQEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmfQfMoQEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmfQfcoQEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmfQfsoQEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmfQf8oQEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmfQgMoQEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kmfQgcoQEeGKstsYRuxdvw" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#NamedElement"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfQgsoQEeGKstsYRuxdvw" x="27" y="27" width="298" height="48"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmfQg8oQEeGKstsYRuxdvw" type="1031" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmfQhMoQEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmfQhcoQEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmfQhsoQEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmfQh8oQEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmfQiMoQEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmfQicoQEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kmfQisoQEeGKstsYRuxdvw" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Feature"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfQi8oQEeGKstsYRuxdvw" x="567" y="27" width="109" height="48"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmfQjMoQEeGKstsYRuxdvw" type="1031" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmfQjcoQEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmfQjsoQEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmfQj8oQEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmfQkMoQEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmfQkcoQEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmfQksoQEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kmfQk8oQEeGKstsYRuxdvw" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#TypedElement"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfQlMoQEeGKstsYRuxdvw" x="405" y="27" width="124" height="48"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_kmfQlcoQEeGKstsYRuxdvw"/>
+ <element xmi:type="uml:Profile" href="PapyrusC.profile.uml#_GPY_cBU6EdyGtuGaCXC25Q"/>
+ <edges xmi:type="notation:Connector" xmi:id="_kmfQlsoQEeGKstsYRuxdvw" type="1013" source="_kmephcoQEeGKstsYRuxdvw" target="_kmfP_8oQEeGKstsYRuxdvw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_kmfQl8oQEeGKstsYRuxdvw"/>
+ <element xmi:type="uml:Extension" href="PapyrusC.profile.uml#_1fkPUBU9EdyGtuGaCXC25Q"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kmfQmMoQEeGKstsYRuxdvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kmfQmcoQEeGKstsYRuxdvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kmfQmsoQEeGKstsYRuxdvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kmfQm8oQEeGKstsYRuxdvw" type="1013" source="_kmfQTcoQEeGKstsYRuxdvw" target="_kmfQXMoQEeGKstsYRuxdvw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_kmfQnMoQEeGKstsYRuxdvw"/>
+ <element xmi:type="uml:Extension" href="PapyrusC.profile.uml#_GS6ysBiqEdyL78Gqc5OeNA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kmfQncoQEeGKstsYRuxdvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kmfQnsoQEeGKstsYRuxdvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kmfQn8oQEeGKstsYRuxdvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kmfQoMoQEeGKstsYRuxdvw" type="1013" source="_kmfQZcoQEeGKstsYRuxdvw" target="_kmfQesoQEeGKstsYRuxdvw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_kmfQocoQEeGKstsYRuxdvw"/>
+ <element xmi:type="uml:Extension" href="PapyrusC.profile.uml#_MhedUBjDEdyfI_WOjDrRyg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kmfQosoQEeGKstsYRuxdvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kmfQo8oQEeGKstsYRuxdvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kmfQpMoQEeGKstsYRuxdvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kmfQpcoQEeGKstsYRuxdvw" type="1013" source="_kmfQCMoQEeGKstsYRuxdvw" target="_kmfQjMoQEeGKstsYRuxdvw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_kmfQpsoQEeGKstsYRuxdvw"/>
+ <element xmi:type="uml:Extension" href="PapyrusC.profile.uml#_yqmg4MdtEd29as0ocaFXLw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kmfQp8oQEeGKstsYRuxdvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kmfQqMoQEeGKstsYRuxdvw" id="(0.2591240875912409,0.014423076923076924)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kmfQqcoQEeGKstsYRuxdvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kmfQqsoQEeGKstsYRuxdvw" type="1013" source="_kmfQCMoQEeGKstsYRuxdvw" target="_kmfQg8oQEeGKstsYRuxdvw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_kmfQq8oQEeGKstsYRuxdvw"/>
+ <element xmi:type="uml:Extension" href="PapyrusC.profile.uml#_zt8NMMdtEd29as0ocaFXLw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kmfQrMoQEeGKstsYRuxdvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kmfQrcoQEeGKstsYRuxdvw" id="(0.8065693430656934,0.038461538461538464)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kmfQrsoQEeGKstsYRuxdvw"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Size xmi:id="_kmfQr8oQEeGKstsYRuxdvw" width="306" height="144"/>
+ <notation:Location xmi:id="_kmfQsMoQEeGKstsYRuxdvw" x="29" y="356"/>
+ <notation:Size xmi:id="_kmfQscoQEeGKstsYRuxdvw" width="72" height="48"/>
+ <notation:Location xmi:id="_kmfQssoQEeGKstsYRuxdvw" x="146" y="269"/>
+ <notation:Size xmi:id="_kmfQs8oQEeGKstsYRuxdvw" width="274" height="208"/>
+ <notation:Location xmi:id="_kmfQtMoQEeGKstsYRuxdvw" x="394" y="344"/>
+ <notation:Location xmi:id="_kmfQtcoQEeGKstsYRuxdvw" x="484" y="175"/>
+ <notation:Location xmi:id="_kmfQtsoQEeGKstsYRuxdvw" x="724" y="175"/>
+ <notation:Location xmi:id="_kmfQt8oQEeGKstsYRuxdvw" x="844" y="175"/>
+ <notation:Location xmi:id="_kmfQuMoQEeGKstsYRuxdvw" x="964" y="175"/>
+ <notation:Size xmi:id="_kmfQucoQEeGKstsYRuxdvw" width="90" height="149"/>
+ <notation:Location xmi:id="_kmfQusoQEeGKstsYRuxdvw" x="677" y="110"/>
+ <notation:Size xmi:id="_kmfQu8oQEeGKstsYRuxdvw" width="82" height="111"/>
+ <notation:Location xmi:id="_kmfQvMoQEeGKstsYRuxdvw" x="789" y="110"/>
+ <notation:Location xmi:id="_kmfQvcoQEeGKstsYRuxdvw" x="797" y="443"/>
+ <notation:Size xmi:id="_kmfQvsoQEeGKstsYRuxdvw" width="89" height="48"/>
+ <notation:Location xmi:id="_kmfQv8oQEeGKstsYRuxdvw" x="802" y="348"/>
+ <notation:Size xmi:id="_kmfQwMoQEeGKstsYRuxdvw" width="333" height="118"/>
+ <notation:Location xmi:id="_kmfQwcoQEeGKstsYRuxdvw" x="237" y="132"/>
+ <notation:Size xmi:id="_kmfQwsoQEeGKstsYRuxdvw" width="129" height="48"/>
+ <notation:Location xmi:id="_kmfQw8oQEeGKstsYRuxdvw" x="314" y="46"/>
+ <notation:Size xmi:id="_kmfQxMoQEeGKstsYRuxdvw" width="87" height="48"/>
+ <notation:Location xmi:id="_kmfQxcoQEeGKstsYRuxdvw" x="513" y="263"/>
+ <notation:Size xmi:id="_kmfQxsoQEeGKstsYRuxdvw" width="124" height="48"/>
+ <notation:Location xmi:id="_kmfQx8oQEeGKstsYRuxdvw" x="365" y="264"/>
+ <notation:Diagram xmi:id="_kmfQyMoQEeGKstsYRuxdvw" type="PapyrusUMLProfileDiagram" name="Class diagram of src/com/cea/gen/c/profile/C_AINSI" measurementUnit="Pixel">
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_kmfQycoQEeGKstsYRuxdvw"/>
+ <element xmi:type="uml:Profile" href="PapyrusC.profile.uml#_fyjaINtyEduxXYGi8mOVFA"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_kmfQysoQEeGKstsYRuxdvw" type="PapyrusUMLProfileDiagram" name="Import" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_kmfQy8oQEeGKstsYRuxdvw" type="1026" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmfQzMoQEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmfQzcoQEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmfQzsoQEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmfQz8oQEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmfQ0MoQEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmfQ0coQEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kmfQ0soQEeGKstsYRuxdvw" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kmfQ08oQEeGKstsYRuxdvw" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kmfQ1MoQEeGKstsYRuxdvw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kmfQ1coQEeGKstsYRuxdvw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfQ1soQEeGKstsYRuxdvw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kmfQ18oQEeGKstsYRuxdvw" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_kmfQ2MoQEeGKstsYRuxdvw" type="3002">
+ <element xmi:type="uml:Property" href="PapyrusC.profile.uml#_aQdtEBmYEdyYiu3uPO8AqQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfQ2coQEeGKstsYRuxdvw" x="20" y="20" width="100" height="100"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfQ2soQEeGKstsYRuxdvw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="PapyrusC.profile.uml#_Zd610BmYEdyYiu3uPO8AqQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmfQ28oQEeGKstsYRuxdvw" x="48" y="121" width="152" height="84"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmfQ3MoQEeGKstsYRuxdvw" type="1031" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmfQ3coQEeGKstsYRuxdvw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmfQ3soQEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmfQ38oQEeGKstsYRuxdvw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmfQ4MoQEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmfQ4coQEeGKstsYRuxdvw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmf3AMoQEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kmf3AcoQEeGKstsYRuxdvw" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Namespace"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmf3AsoQEeGKstsYRuxdvw" x="54" y="36" width="145" height="48"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_kmf3A8oQEeGKstsYRuxdvw"/>
+ <element xmi:type="uml:Profile" href="PapyrusC.profile.uml#_GPY_cBU6EdyGtuGaCXC25Q"/>
+ <edges xmi:type="notation:Connector" xmi:id="_kmf3BMoQEeGKstsYRuxdvw" type="1013" source="_kmfQy8oQEeGKstsYRuxdvw" target="_kmfQ3MoQEeGKstsYRuxdvw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_kmf3BcoQEeGKstsYRuxdvw"/>
+ <element xmi:type="uml:Extension" href="PapyrusC.profile.uml#_gS_3QBmYEdyYiu3uPO8AqQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kmf3BsoQEeGKstsYRuxdvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kmf3B8oQEeGKstsYRuxdvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kmf3CMoQEeGKstsYRuxdvw"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Size xmi:id="_kmf3CcoQEeGKstsYRuxdvw" width="152" height="84"/>
+ <notation:Location xmi:id="_kmf3CsoQEeGKstsYRuxdvw" x="291" y="239"/>
+ <notation:Size xmi:id="_kmf3C8oQEeGKstsYRuxdvw" width="110" height="48"/>
+ <notation:Location xmi:id="_kmf3DMoQEeGKstsYRuxdvw" x="312" y="154"/>
+</xmi:XMI>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/profiles/PapyrusC.profile.uml b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/profiles/PapyrusC.profile.uml
new file mode 100644
index 00000000000..8684a4b4967
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/profiles/PapyrusC.profile.uml
@@ -0,0 +1,4143 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Profile xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xmi:id="_fyjaINtyEduxXYGi8mOVFA" name="PapyrusC" metaclassReference="_TP4uUNtzEduxXYGi8mOVFA _lxuqUNueEdu40vrGR5q4gQ">
+ <eAnnotations xmi:id="_kJuYEd3KEdumDrdb5IYxAA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <contents xmi:type="ecore:EPackage" xmi:id="_7bHUQcdtEd29as0ocaFXLw" name="PapyrusC" nsURI="http:///schemas/PapyrusC/_7bHUQMdtEd29as0ocaFXLw/38" nsPrefix="PapyrusC">
+ <eAnnotations xmi:id="_7bRFhMdtEd29as0ocaFXLw" source="PapyrusVersion">
+ <details xmi:id="_7bRFhcdtEd29as0ocaFXLw" key="Version" value="1.1.0"/>
+ <details xmi:id="_7bRFhsdtEd29as0ocaFXLw" key="Comment" value=""/>
+ <details xmi:id="_7bRFh8dtEd29as0ocaFXLw" key="Copyright" value=""/>
+ <details xmi:id="_7bRFiMdtEd29as0ocaFXLw" key="Date" value="2008-12-11"/>
+ <details xmi:id="_7bRFicdtEd29as0ocaFXLw" key="Author" value="Yann Tanguy (CEA LIST)"/>
+ </eAnnotations>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_lgkvkcdtEd29as0ocaFXLw" name="PapyrusC" nsURI="http:///schemas/PapyrusC/_lgkvkMdtEd29as0ocaFXLw/37" nsPrefix="PapyrusC">
+ <eAnnotations xmi:id="_lg3qyMdtEd29as0ocaFXLw" source="PapyrusVersion">
+ <details xmi:id="_lg3qycdtEd29as0ocaFXLw" key="Version" value="1.0.0"/>
+ <details xmi:id="_lg3qysdtEd29as0ocaFXLw" key="Comment" value=""/>
+ <details xmi:id="_lg3qy8dtEd29as0ocaFXLw" key="Copyright" value=""/>
+ <details xmi:id="_lg3qzMdtEd29as0ocaFXLw" key="Date" value="2008-12-11"/>
+ <details xmi:id="_lg3qzcdtEd29as0ocaFXLw" key="Author" value="Yann Tanguy (CEA LIST)"/>
+ </eAnnotations>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="__1dVYEP-EdyN-oOhaWIQYg" name="PapyrusC" nsURI="http:///schemas/PapyrusC/__1cHQEP-EdyN-oOhaWIQYg/36" nsPrefix="PapyrusC"/>
+ <contents xmi:type="ecore:EPackage" xmi:id="_xvNB0EP9EdyXRJo_SB0POQ" name="PapyrusC" nsURI="http:///schemas/PapyrusC/_xvLzsEP9EdyXRJo_SB0POQ/35" nsPrefix="PapyrusC"/>
+ <contents xmi:type="ecore:EPackage" xmi:id="_1gPg8EPxEdybAJ4m8R8XFA" name="PapyrusC" nsURI="http:///schemas/PapyrusC/_1gO54EPxEdybAJ4m8R8XFA/34" nsPrefix="PapyrusC"/>
+ <contents xmi:type="ecore:EPackage" xmi:id="_n29-gEHmEdyxlrpSW7ggPQ" name="PapyrusC" nsURI="http:///schemas/PapyrusC/_n29XcEHmEdyxlrpSW7ggPQ/33" nsPrefix="PapyrusC"/>
+ <contents xmi:type="ecore:EPackage" xmi:id="_FgCKkUHmEdyxlrpSW7ggPQ" name="PapyrusC" nsURI="http:///schemas/PapyrusC/_FgCKkEHmEdyxlrpSW7ggPQ/32" nsPrefix="PapyrusC"/>
+ <contents xmi:type="ecore:EPackage" xmi:id="_ZdfnIUDsEdyjuIyCaGFHvQ" name="PapyrusC" nsURI="http:///schemas/PapyrusC/_ZdfnIEDsEdyjuIyCaGFHvQ/31" nsPrefix="PapyrusC"/>
+ <contents xmi:type="ecore:EPackage" xmi:id="_1e_PMD98EdyWndo1HgT9Ig" name="PapyrusC" nsURI="http:///schemas/PapyrusC/_1e-BED98EdyWndo1HgT9Ig/30" nsPrefix="PapyrusC"/>
+ <contents xmi:type="ecore:EPackage" xmi:id="_SYHBgD97EdydlOlmTTAQlA" name="PapyrusC" nsURI="http:///schemas/PapyrusC/_SYFzYD97EdydlOlmTTAQlA/29" nsPrefix="PapyrusC"/>
+ <contents xmi:type="ecore:EPackage" xmi:id="_11qmgDweEdyHm6HnfLC8wA" name="PapyrusC" nsURI="http:///schemas/PapyrusC/_11pYYDweEdyHm6HnfLC8wA/28" nsPrefix="PapyrusC"/>
+ <contents xmi:type="ecore:EPackage" xmi:id="_mJH8gDwbEdy50P3mY4f53Q" name="PapyrusC" nsURI="http:///schemas/PapyrusC/_mJGuYDwbEdy50P3mY4f53Q/27" nsPrefix="PapyrusC"/>
+ <contents xmi:type="ecore:EPackage" xmi:id="_-H3CMDnZEdyK9KOUzoZMXQ" name="PapyrusC" nsURI="http:///schemas/PapyrusC/_-H10EDnZEdyK9KOUzoZMXQ/26" nsPrefix="PapyrusC"/>
+ <contents xmi:type="ecore:EPackage" xmi:id="_51VlcDnLEdyhj8_f1ShKKA" name="PapyrusC" nsURI="http:///schemas/PapyrusC/_51UXUDnLEdyhj8_f1ShKKA/25" nsPrefix="PapyrusC"/>
+ <contents xmi:type="ecore:EPackage" xmi:id="_U7DHoBtFEdyd3OUuj4yv-Q" name="PapyrusC" nsURI="http:///schemas/PapyrusC/_U7B5gRtFEdyd3OUuj4yv-Q/24" nsPrefix="PapyrusC"/>
+ <contents xmi:type="ecore:EPackage" xmi:id="_l_4hkBmYEdyYiu3uPO8AqQ" name="srccomceagencprofileC_AINSI" nsURI="http:///schemas/srccomceagencprofileC_AINSI/_l_36gBmYEdyYiu3uPO8AqQ/23" nsPrefix="srccomceagencprofileC_AINSI"/>
+ <contents xmi:type="ecore:EPackage" xmi:id="_k7d3MBmYEdyYiu3uPO8AqQ" name="srccomceagencprofileC_AINSI" nsURI="http:///schemas/srccomceagencprofileC_AINSI/_k7dQIBmYEdyYiu3uPO8AqQ/22" nsPrefix="srccomceagencprofileC_AINSI"/>
+ <contents xmi:type="ecore:EPackage" xmi:id="_NDfr0RjwEdyGHM4pSbTixw" name="srccomceagencprofileC_AINSI" nsURI="http:///schemas/srccomceagencprofileC_AINSI/_NDfr0BjwEdyGHM4pSbTixw/21" nsPrefix="srccomceagencprofileC_AINSI"/>
+ <contents xmi:type="ecore:EPackage" xmi:id="_Vts4URjvEdyGHM4pSbTixw" name="srccomceagencprofileC_AINSI" nsURI="http:///schemas/srccomceagencprofileC_AINSI/_Vts4UBjvEdyGHM4pSbTixw/20" nsPrefix="srccomceagencprofileC_AINSI"/>
+ <contents xmi:type="ecore:EPackage" xmi:id="_VqJDcRjuEdyGHM4pSbTixw" name="srccomceagencprofileC_AINSI" nsURI="http:///schemas/srccomceagencprofileC_AINSI/_VqJDcBjuEdyGHM4pSbTixw/19" nsPrefix="srccomceagencprofileC_AINSI"/>
+ <contents xmi:type="ecore:EPackage" xmi:id="_XLt10BjsEdyGHM4pSbTixw" name="srccomceagencprofileC_AINSI" nsURI="http:///schemas/srccomceagencprofileC_AINSI/_XLsnsBjsEdyGHM4pSbTixw/18" nsPrefix="srccomceagencprofileC_AINSI"/>
+ <contents xmi:type="ecore:EPackage" xmi:id="_koHXERjMEdyo-J6sTQ4XlA" name="srccomceagencprofileC_AINSI" nsURI="http:///schemas/srccomceagencprofileC_AINSI/_koHXEBjMEdyo-J6sTQ4XlA/17" nsPrefix="srccomceagencprofileC_AINSI"/>
+ <contents xmi:type="ecore:EPackage" xmi:id="_WhI1UBjMEdyo-J6sTQ4XlA" name="srccomceagencprofileC_AINSI" nsURI="http:///schemas/srccomceagencprofileC_AINSI/_WhHnMRjMEdyo-J6sTQ4XlA/16" nsPrefix="srccomceagencprofileC_AINSI"/>
+ <contents xmi:type="ecore:EPackage" xmi:id="_TnxxoRjDEdyfI_WOjDrRyg" name="srccomceagencprofileC_AINSI" nsURI="http:///schemas/srccomceagencprofileC_AINSI/_TnxxoBjDEdyfI_WOjDrRyg/15" nsPrefix="srccomceagencprofileC_AINSI"/>
+ <contents xmi:type="ecore:EPackage" xmi:id="_Fv0YwBjCEdyfI_WOjDrRyg" name="srccomceagencprofileC_AINSI" nsURI="http:///schemas/srccomceagencprofileC_AINSI/_FvzKoBjCEdyfI_WOjDrRyg/14" nsPrefix="srccomceagencprofileC_AINSI"/>
+ <contents xmi:type="ecore:EPackage" xmi:id="_VzngcBiqEdyL78Gqc5OeNA" name="srccomceagencprofileC_AINSI" nsURI="http:///schemas/srccomceagencprofileC_AINSI/_VzmSUBiqEdyL78Gqc5OeNA/13" nsPrefix="srccomceagencprofileC_AINSI"/>
+ <contents xmi:type="ecore:EPackage" xmi:id="_24UGsRYIEdylxOSGZvSthg" name="srccomceagencprofileC_AINSI" nsURI="http:///schemas/srccomceagencprofileC_AINSI/_24UGsBYIEdylxOSGZvSthg/12" nsPrefix="srccomceagencprofileC_AINSI"/>
+ <contents xmi:type="ecore:EPackage" xmi:id="_hMIHERYIEdylxOSGZvSthg" name="srccomceagencprofileC_AINSI" nsURI="http:///schemas/srccomceagencprofileC_AINSI/_hMIHEBYIEdylxOSGZvSthg/11" nsPrefix="srccomceagencprofileC_AINSI"/>
+ <contents xmi:type="ecore:EPackage" xmi:id="_DuUlQBYIEdylxOSGZvSthg" name="srccomceagencprofileC_AINSI" nsURI="http:///schemas/srccomceagencprofileC_AINSI/_DuTXIBYIEdylxOSGZvSthg/10" nsPrefix="srccomceagencprofileC_AINSI"/>
+ <contents xmi:type="ecore:EPackage" xmi:id="_gkPPcRU-EdyGtuGaCXC25Q" name="srccomceagencprofileC_AINSI" nsURI="http:///schemas/srccomceagencprofileC_AINSI/_gkPPcBU-EdyGtuGaCXC25Q/9" nsPrefix="srccomceagencprofileC_AINSI"/>
+ <contents xmi:type="ecore:EPackage" xmi:id="_-EnZkRU9EdyGtuGaCXC25Q" name="srccomceagencprofileC_AINSI" nsURI="http:///schemas/srccomceagencprofileC_AINSI/_-EnZkBU9EdyGtuGaCXC25Q/8" nsPrefix="srccomceagencprofileC_AINSI"/>
+ <contents xmi:type="ecore:EPackage" xmi:id="_NYtykRU6EdyGtuGaCXC25Q" name="srccomceagencprofileC_AINSI" nsURI="http:///schemas/srccomceagencprofileC_AINSI/_NYtykBU6EdyGtuGaCXC25Q/7" nsPrefix="srccomceagencprofileC_AINSI"/>
+ <contents xmi:type="ecore:EPackage" xmi:id="_IEWV8RU6EdyGtuGaCXC25Q" name="srccomceagencprofileC_AINSI" nsURI="http:///schemas/srccomceagencprofileC_AINSI/_IEWV8BU6EdyGtuGaCXC25Q/6" nsPrefix="srccomceagencprofileC_AINSI"/>
+ <contents xmi:type="ecore:EPackage" xmi:id="_E7Fe8BU6EdyGtuGaCXC25Q" name="srccomceagencprofileC_AINSI" nsURI="http:///schemas/srccomceagencprofileC_AINSI/_E7E34BU6EdyGtuGaCXC25Q/5" nsPrefix="srccomceagencprofileC_AINSI"/>
+ <contents xmi:type="ecore:EPackage" xmi:id="_BZgOkRU6EdyGtuGaCXC25Q" name="srccomceagencprofileC_AINSI" nsURI="http:///schemas/srccomceagencprofileC_AINSI/_BZgOkBU6EdyGtuGaCXC25Q/4" nsPrefix="srccomceagencprofileC_AINSI"/>
+ <contents xmi:type="ecore:EPackage" xmi:id="_2P-8cBU5EdyGtuGaCXC25Q" name="srccomceagencprofileC_AINSI" nsURI="http:///schemas/srccomceagencprofileC_AINSI/_2P-VYBU5EdyGtuGaCXC25Q/3" nsPrefix="srccomceagencprofileC_AINSI">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_2P-8cRU5EdyGtuGaCXC25Q" name="Union" eSuperTypes="_2P-8cxU5EdyGtuGaCXC25Q">
+ <eAnnotations xmi:id="_2P-8chU5EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_2P-8cxU5EdyGtuGaCXC25Q" name="QualifiedType">
+ <eAnnotations xmi:id="_2P-8dBU5EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_2P-8dRU5EdyGtuGaCXC25Q" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_2P-8dhU5EdyGtuGaCXC25Q" name="Struct" eSuperTypes="_2P-8cxU5EdyGtuGaCXC25Q">
+ <eAnnotations xmi:id="_2P-8dxU5EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_2P-8eBU5EdyGtuGaCXC25Q" name="PrimitiveType" eSuperTypes="_2P-8cxU5EdyGtuGaCXC25Q">
+ <eAnnotations xmi:id="_2P-8eRU5EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_2P-8ehU5EdyGtuGaCXC25Q" name="isUnsigned" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_2P-8exU5EdyGtuGaCXC25Q" name="isLong" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_2P-8fBU5EdyGtuGaCXC25Q" name="specifier" ordered="false" unique="false" lowerBound="1" eType="_2P-8fRU5EdyGtuGaCXC25Q"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_2P-8fRU5EdyGtuGaCXC25Q" name="PrimitiveTypeSpecifierKind">
+ <eAnnotations xmi:id="_2P-8fhU5EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+ <eLiterals xmi:id="_2P-8fxU5EdyGtuGaCXC25Q" name="void"/>
+ <eLiterals xmi:id="_2P-8gBU5EdyGtuGaCXC25Q" name="char" value="1"/>
+ <eLiterals xmi:id="_2P-8gRU5EdyGtuGaCXC25Q" name="int" value="2"/>
+ <eLiterals xmi:id="_2P-8ghU5EdyGtuGaCXC25Q" name="float" value="3"/>
+ <eLiterals xmi:id="_2P-8gxU5EdyGtuGaCXC25Q" name="double" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_2P-8hBU5EdyGtuGaCXC25Q" name="StorageClass">
+ <eAnnotations xmi:id="_2P-8hRU5EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_2P-8hhU5EdyGtuGaCXC25Q" name="auto"/>
+ <eLiterals xmi:id="_2P-8hxU5EdyGtuGaCXC25Q" name="register" value="1"/>
+ <eLiterals xmi:id="_2P-8iBU5EdyGtuGaCXC25Q" name="extern" value="2"/>
+ <eLiterals xmi:id="_2P-8iRU5EdyGtuGaCXC25Q" name="static" value="3"/>
+ <eLiterals xmi:id="_2P-8ihU5EdyGtuGaCXC25Q" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_2P-8ixU5EdyGtuGaCXC25Q" name="TypedElement">
+ <eAnnotations xmi:id="_2P-8jBU5EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_2P-8jRU5EdyGtuGaCXC25Q" name="storageClass" ordered="false" unique="false" lowerBound="1" eType="_2P-8hBU5EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_2P-8jhU5EdyGtuGaCXC25Q" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_2P-8jxU5EdyGtuGaCXC25Q" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_2P-8kBU5EdyGtuGaCXC25Q" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_2P-8kRU5EdyGtuGaCXC25Q" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_O2xzYBU3EdyGtuGaCXC25Q" name="srccomceagencprofileC_AINSI" nsURI="http:///schemas/srccomceagencprofileC_AINSI/_O2xMUBU3EdyGtuGaCXC25Q/2" nsPrefix="srccomceagencprofileC_AINSI">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_O2xzYRU3EdyGtuGaCXC25Q" name="Union" eSuperTypes="_O2xzYxU3EdyGtuGaCXC25Q">
+ <eAnnotations xmi:id="_O2xzYhU3EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_O2xzYxU3EdyGtuGaCXC25Q" name="QualifiedType">
+ <eAnnotations xmi:id="_O2xzZBU3EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_O2xzZRU3EdyGtuGaCXC25Q" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_O2xzZhU3EdyGtuGaCXC25Q" name="Struct" eSuperTypes="_O2xzYxU3EdyGtuGaCXC25Q">
+ <eAnnotations xmi:id="_O2xzZxU3EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_O2xzaBU3EdyGtuGaCXC25Q" name="PrimitiveType" eSuperTypes="_O2xzYxU3EdyGtuGaCXC25Q">
+ <eAnnotations xmi:id="_O2xzaRU3EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_O2xzahU3EdyGtuGaCXC25Q" name="isUnsigned" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_O2xzaxU3EdyGtuGaCXC25Q" name="isLong" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_O2xzbBU3EdyGtuGaCXC25Q" name="specifier" ordered="false" unique="false" lowerBound="1" eType="_O2xzbRU3EdyGtuGaCXC25Q"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_O2xzbRU3EdyGtuGaCXC25Q" name="PrimitiveTypeSpecifierKind">
+ <eAnnotations xmi:id="_O2xzbhU3EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+ <eLiterals xmi:id="_O2xzbxU3EdyGtuGaCXC25Q" name="void"/>
+ <eLiterals xmi:id="_O2xzcBU3EdyGtuGaCXC25Q" name="char" value="1"/>
+ <eLiterals xmi:id="_O2xzcRU3EdyGtuGaCXC25Q" name="int" value="2"/>
+ <eLiterals xmi:id="_O2xzchU3EdyGtuGaCXC25Q" name="float" value="3"/>
+ <eLiterals xmi:id="_O2xzcxU3EdyGtuGaCXC25Q" name="double" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_O2xzdBU3EdyGtuGaCXC25Q" name="StorageClass">
+ <eAnnotations xmi:id="_O2xzdRU3EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_O2xzdhU3EdyGtuGaCXC25Q" name="auto"/>
+ <eLiterals xmi:id="_O2xzdxU3EdyGtuGaCXC25Q" name="register" value="1"/>
+ <eLiterals xmi:id="_O2xzeBU3EdyGtuGaCXC25Q" name="extern" value="2"/>
+ <eLiterals xmi:id="_O2xzeRU3EdyGtuGaCXC25Q" name="static" value="3"/>
+ <eLiterals xmi:id="_O2xzehU3EdyGtuGaCXC25Q" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_O2xzexU3EdyGtuGaCXC25Q" name="TypedElement">
+ <eAnnotations xmi:id="_O2xzfBU3EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_O2xzfRU3EdyGtuGaCXC25Q" name="storageClass" ordered="false" unique="false" lowerBound="1" eType="_O2xzdBU3EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_O2xzfhU3EdyGtuGaCXC25Q" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_O2xzfxU3EdyGtuGaCXC25Q" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_O2xzgBU3EdyGtuGaCXC25Q" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_O2xzgRU3EdyGtuGaCXC25Q" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_maKaoBU2EdyGtuGaCXC25Q" name="srccomceagencprofileC_AINSI" nsURI="http:///schemas/srccomceagencprofileC_AINSI/_maHXUBU2EdyGtuGaCXC25Q/1" nsPrefix="srccomceagencprofileC_AINSI">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_maKaoRU2EdyGtuGaCXC25Q" name="Union" eSuperTypes="_maKaoxU2EdyGtuGaCXC25Q">
+ <eAnnotations xmi:id="_maKaohU2EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_maKaoxU2EdyGtuGaCXC25Q" name="QualifiedType">
+ <eAnnotations xmi:id="_maKapBU2EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_maKapRU2EdyGtuGaCXC25Q" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_maKaphU2EdyGtuGaCXC25Q" name="Struct" eSuperTypes="_maKaoxU2EdyGtuGaCXC25Q">
+ <eAnnotations xmi:id="_maKapxU2EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_maKaqBU2EdyGtuGaCXC25Q" name="PrimitiveType" eSuperTypes="_maKaoxU2EdyGtuGaCXC25Q">
+ <eAnnotations xmi:id="_maKaqRU2EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_maKaqhU2EdyGtuGaCXC25Q" name="isUnsigned" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_maKaqxU2EdyGtuGaCXC25Q" name="isLong" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_maKarBU2EdyGtuGaCXC25Q" name="specifier" ordered="false" unique="false" lowerBound="1" eType="_maKarRU2EdyGtuGaCXC25Q"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_maKarRU2EdyGtuGaCXC25Q" name="PrimitiveTypeSpecifierKind">
+ <eAnnotations xmi:id="_maKarhU2EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+ <eLiterals xmi:id="_maKarxU2EdyGtuGaCXC25Q" name="void"/>
+ <eLiterals xmi:id="_maKasBU2EdyGtuGaCXC25Q" name="char" value="1"/>
+ <eLiterals xmi:id="_maKasRU2EdyGtuGaCXC25Q" name="int" value="2"/>
+ <eLiterals xmi:id="_maKashU2EdyGtuGaCXC25Q" name="float" value="3"/>
+ <eLiterals xmi:id="_maKasxU2EdyGtuGaCXC25Q" name="double" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_maKatBU2EdyGtuGaCXC25Q" name="StorageClass">
+ <eAnnotations xmi:id="_maKatRU2EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_maKathU2EdyGtuGaCXC25Q" name="auto"/>
+ <eLiterals xmi:id="_maKatxU2EdyGtuGaCXC25Q" name="register" value="1"/>
+ <eLiterals xmi:id="_maKauBU2EdyGtuGaCXC25Q" name="extern" value="2"/>
+ <eLiterals xmi:id="_maKauRU2EdyGtuGaCXC25Q" name="static" value="3"/>
+ <eLiterals xmi:id="_maKauhU2EdyGtuGaCXC25Q" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_maKauxU2EdyGtuGaCXC25Q" name="TypedElement">
+ <eAnnotations xmi:id="_maKavBU2EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_maKavRU2EdyGtuGaCXC25Q" name="storageClass" ordered="false" unique="false" lowerBound="1" eType="_maKatBU2EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_maKavhU2EdyGtuGaCXC25Q" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_maKavxU2EdyGtuGaCXC25Q" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_maKawBU2EdyGtuGaCXC25Q" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_maKawRU2EdyGtuGaCXC25Q" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_kJu_IN3KEdumDrdb5IYxAA" name="srccomceagencprofileC_AINSI" nsURI="http:///schemas/srccomceagencprofileC_AINSI/_kJuYEN3KEdumDrdb5IYxAA/0" nsPrefix="srccomceagencprofileC_AINSI">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_kJu_Id3KEdumDrdb5IYxAA" name="C_Union" eSuperTypes="_kJu_I93KEdumDrdb5IYxAA">
+ <eAnnotations xmi:id="_kJu_It3KEdumDrdb5IYxAA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_kJu_I93KEdumDrdb5IYxAA" name="C_QualifiedType">
+ <eAnnotations xmi:id="_kJu_JN3KEdumDrdb5IYxAA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kJu_Jd3KEdumDrdb5IYxAA" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_kJu_Jt3KEdumDrdb5IYxAA" name="C_Struct" eSuperTypes="_kJu_I93KEdumDrdb5IYxAA">
+ <eAnnotations xmi:id="_kJu_J93KEdumDrdb5IYxAA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_kJu_KN3KEdumDrdb5IYxAA" name="C_PrimitiveType" eSuperTypes="_kJu_I93KEdumDrdb5IYxAA">
+ <eAnnotations xmi:id="_kJu_Kd3KEdumDrdb5IYxAA" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_kJu_Kt3KEdumDrdb5IYxAA" name="isUnsigned" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_kJu_K93KEdumDrdb5IYxAA" name="isLong" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_kJu_LN3KEdumDrdb5IYxAA" name="specifier" ordered="false" unique="false" lowerBound="1" eType="_kJu_Ld3KEdumDrdb5IYxAA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_kJu_Ld3KEdumDrdb5IYxAA" name="PrimitiveTypeSpecifierKind">
+ <eAnnotations xmi:id="_kJu_Lt3KEdumDrdb5IYxAA" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+ <eLiterals xmi:id="_kJu_L93KEdumDrdb5IYxAA" name="void"/>
+ <eLiterals xmi:id="_kJu_MN3KEdumDrdb5IYxAA" name="char" value="1"/>
+ <eLiterals xmi:id="_kJu_Md3KEdumDrdb5IYxAA" name="int" value="2"/>
+ <eLiterals xmi:id="_kJu_Mt3KEdumDrdb5IYxAA" name="float" value="3"/>
+ <eLiterals xmi:id="_kJu_M93KEdumDrdb5IYxAA" name="double" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_kJu_NN3KEdumDrdb5IYxAA" name="StorageClass">
+ <eAnnotations xmi:id="_kJu_Nd3KEdumDrdb5IYxAA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_kJu_Nt3KEdumDrdb5IYxAA" name="auto"/>
+ <eLiterals xmi:id="_kJu_N93KEdumDrdb5IYxAA" name="register" value="1"/>
+ <eLiterals xmi:id="_kJu_ON3KEdumDrdb5IYxAA" name="extern" value="2"/>
+ <eLiterals xmi:id="_kJu_Od3KEdumDrdb5IYxAA" name="static" value="3"/>
+ <eLiterals xmi:id="_kJu_Ot3KEdumDrdb5IYxAA" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_kJu_O93KEdumDrdb5IYxAA" name="C_TypedElement">
+ <eAnnotations xmi:id="_kJu_PN3KEdumDrdb5IYxAA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_kJu_Pd3KEdumDrdb5IYxAA" name="storageClass" ordered="false" unique="false" lowerBound="1" eType="_kJu_NN3KEdumDrdb5IYxAA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kJu_Pt3KEdumDrdb5IYxAA" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_kJu_P93KEdumDrdb5IYxAA" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_kJu_QN3KEdumDrdb5IYxAA" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_kJu_Qd3KEdumDrdb5IYxAA" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ </eAnnotations>
+ <elementImport xmi:id="_TP4uUNtzEduxXYGi8mOVFA" alias="Type">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Type"/>
+ </elementImport>
+ <elementImport xmi:id="_lxuqUNueEdu40vrGR5q4gQ" alias="TypedElement">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#TypedElement"/>
+ </elementImport>
+ <packageImport xmi:id="_fyjaIdtyEduxXYGi8mOVFA">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Profile" xmi:id="_9WrSUBU5EdyGtuGaCXC25Q" name="ANSI_C" metaclassReference="_gajFsEHlEdyxlrpSW7ggPQ _ZM26gEHmEdyxlrpSW7ggPQ">
+ <eAnnotations xmi:id="_BZhcsBU6EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <contents xmi:type="ecore:EPackage" xmi:id="_7bHUQ8dtEd29as0ocaFXLw" name="ANSI_C" nsURI="http://PapyrusC/schemas/ANSI_C/_7bHUQsdtEd29as0ocaFXLw/34" nsPrefix="ANSI_C">
+ <eAnnotations xmi:id="_7bRFjsdtEd29as0ocaFXLw" source="PapyrusVersion">
+ <details xmi:id="_7bRFj8dtEd29as0ocaFXLw" key="Version" value="1.1.0"/>
+ <details xmi:id="_7bRFkMdtEd29as0ocaFXLw" key="Comment" value=""/>
+ <details xmi:id="_7bRFkcdtEd29as0ocaFXLw" key="Copyright" value=""/>
+ <details xmi:id="_7bRFksdtEd29as0ocaFXLw" key="Date" value="2008-12-11"/>
+ <details xmi:id="_7bRFk8dtEd29as0ocaFXLw" key="Author" value="Yann Tanguy (CEA LIST)"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7bHURMdtEd29as0ocaFXLw" name="Union" eSuperTypes="_7bHUR8dtEd29as0ocaFXLw">
+ <eAnnotations xmi:id="_7bHURcdtEd29as0ocaFXLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7bHUR8dtEd29as0ocaFXLw" name="QualifiedType">
+ <eAnnotations xmi:id="_7bHUSMdtEd29as0ocaFXLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7bHUScdtEd29as0ocaFXLw" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7bHUS8dtEd29as0ocaFXLw" name="Struct" eSuperTypes="_7bHUR8dtEd29as0ocaFXLw">
+ <eAnnotations xmi:id="_7bHUTMdtEd29as0ocaFXLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7bHUTsdtEd29as0ocaFXLw" name="C_Typedef">
+ <eAnnotations xmi:id="_7bHUT8dtEd29as0ocaFXLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_ygvPAEHlEdyxlrpSW7ggPQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7bHUUMdtEd29as0ocaFXLw" name="isUnsigned" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7bHUUsdtEd29as0ocaFXLw" name="type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7bHUVMdtEd29as0ocaFXLw" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7bHUVsdtEd29as0ocaFXLw" name="C_Macro">
+ <eAnnotations xmi:id="_7bHUV8dtEd29as0ocaFXLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_HPbEkEHmEdyxlrpSW7ggPQ"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7bHUWMdtEd29as0ocaFXLw" name="base_Feature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Feature"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7bHUWsdtEd29as0ocaFXLw" name="body" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_lgt5gcdtEd29as0ocaFXLw" name="ANSI_C" nsURI="http://PapyrusC/schemas/ANSI_C/_lgt5gMdtEd29as0ocaFXLw/33" nsPrefix="ANSI_C">
+ <eAnnotations xmi:id="_lg3q0sdtEd29as0ocaFXLw" source="PapyrusVersion">
+ <details xmi:id="_lg3q08dtEd29as0ocaFXLw" key="Version" value="1.0.0"/>
+ <details xmi:id="_lg3q1MdtEd29as0ocaFXLw" key="Comment" value=""/>
+ <details xmi:id="_lg3q1cdtEd29as0ocaFXLw" key="Copyright" value=""/>
+ <details xmi:id="_lg3q1sdtEd29as0ocaFXLw" key="Date" value="2008-12-11"/>
+ <details xmi:id="_lg3q18dtEd29as0ocaFXLw" key="Author" value="Yann Tanguy (CEA LIST)"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_lgt5gsdtEd29as0ocaFXLw" name="Union" eSuperTypes="_lgt5hcdtEd29as0ocaFXLw">
+ <eAnnotations xmi:id="_lgt5g8dtEd29as0ocaFXLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_lgt5hcdtEd29as0ocaFXLw" name="QualifiedType">
+ <eAnnotations xmi:id="_lgt5hsdtEd29as0ocaFXLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_lgt5h8dtEd29as0ocaFXLw" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_lgt5icdtEd29as0ocaFXLw" name="Struct" eSuperTypes="_lgt5hcdtEd29as0ocaFXLw">
+ <eAnnotations xmi:id="_lgt5isdtEd29as0ocaFXLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_lgt5jMdtEd29as0ocaFXLw" name="C_Typedef">
+ <eAnnotations xmi:id="_lgt5jcdtEd29as0ocaFXLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_ygvPAEHlEdyxlrpSW7ggPQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lgt5jsdtEd29as0ocaFXLw" name="isUnsigned" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_lgt5kMdtEd29as0ocaFXLw" name="type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_lgt5ksdtEd29as0ocaFXLw" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_lgt5lMdtEd29as0ocaFXLw" name="C_Macro">
+ <eAnnotations xmi:id="_lgt5lcdtEd29as0ocaFXLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_HPbEkEHmEdyxlrpSW7ggPQ"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_lgt5lsdtEd29as0ocaFXLw" name="base_Feature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Feature"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lgt5mMdtEd29as0ocaFXLw" name="body" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="__1kDEEP-EdyN-oOhaWIQYg" name="ANSI_C" nsURI="http://PapyrusC/schemas/ANSI_C/__1iN4EP-EdyN-oOhaWIQYg/32" nsPrefix="ANSI_C">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="__1kDEUP-EdyN-oOhaWIQYg" name="Union" eSuperTypes="__1kDFEP-EdyN-oOhaWIQYg">
+ <eAnnotations xmi:id="__1kDEkP-EdyN-oOhaWIQYg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="__1kDFEP-EdyN-oOhaWIQYg" name="QualifiedType">
+ <eAnnotations xmi:id="__1kDFUP-EdyN-oOhaWIQYg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="__1kDFkP-EdyN-oOhaWIQYg" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="__1kDGEP-EdyN-oOhaWIQYg" name="Struct" eSuperTypes="__1kDFEP-EdyN-oOhaWIQYg">
+ <eAnnotations xmi:id="__1kDGUP-EdyN-oOhaWIQYg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="__1kDG0P-EdyN-oOhaWIQYg" name="C_Typedef">
+ <eAnnotations xmi:id="__1kDHEP-EdyN-oOhaWIQYg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_ygvPAEHlEdyxlrpSW7ggPQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="__1kDHUP-EdyN-oOhaWIQYg" name="isUnsigned" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="__1kDH0P-EdyN-oOhaWIQYg" name="type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="__1kDIUP-EdyN-oOhaWIQYg" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="__1kDI0P-EdyN-oOhaWIQYg" name="C_Macro">
+ <eAnnotations xmi:id="__1kDJEP-EdyN-oOhaWIQYg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_HPbEkEHmEdyxlrpSW7ggPQ"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="__1kDJUP-EdyN-oOhaWIQYg" name="base_Feature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Feature"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="__1kDJ0P-EdyN-oOhaWIQYg" name="body" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_xvWLwEP9EdyXRJo_SB0POQ" name="ANSI_C" nsURI="http://PapyrusC/schemas/ANSI_C/_xvUWkEP9EdyXRJo_SB0POQ/31" nsPrefix="ANSI_C">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_xvWLwUP9EdyXRJo_SB0POQ" name="Union" eSuperTypes="_xvWLxEP9EdyXRJo_SB0POQ">
+ <eAnnotations xmi:id="_xvWLwkP9EdyXRJo_SB0POQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_xvWLxEP9EdyXRJo_SB0POQ" name="QualifiedType">
+ <eAnnotations xmi:id="_xvWLxUP9EdyXRJo_SB0POQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_xvWLxkP9EdyXRJo_SB0POQ" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_xvWLyEP9EdyXRJo_SB0POQ" name="Struct" eSuperTypes="_xvWLxEP9EdyXRJo_SB0POQ">
+ <eAnnotations xmi:id="_xvWLyUP9EdyXRJo_SB0POQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_xvWLy0P9EdyXRJo_SB0POQ" name="C_Typedef">
+ <eAnnotations xmi:id="_xvWLzEP9EdyXRJo_SB0POQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_ygvPAEHlEdyxlrpSW7ggPQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xvWLzUP9EdyXRJo_SB0POQ" name="isUnsigned" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_xvWLz0P9EdyXRJo_SB0POQ" name="type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_xvWL0UP9EdyXRJo_SB0POQ" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_xvWL00P9EdyXRJo_SB0POQ" name="C_Macro">
+ <eAnnotations xmi:id="_xvWL1EP9EdyXRJo_SB0POQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_HPbEkEHmEdyxlrpSW7ggPQ"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_xvWL1UP9EdyXRJo_SB0POQ" name="base_Feature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Feature"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xvWL10P9EdyXRJo_SB0POQ" name="body" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_1gVnkEPxEdybAJ4m8R8XFA" name="ANSI_C" nsURI="http://PapyrusC/schemas/ANSI_C/_1gUZcEPxEdybAJ4m8R8XFA/30" nsPrefix="ANSI_C">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_1gVnkUPxEdybAJ4m8R8XFA" name="Union" eSuperTypes="_1gVnlEPxEdybAJ4m8R8XFA">
+ <eAnnotations xmi:id="_1gVnkkPxEdybAJ4m8R8XFA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_1gVnlEPxEdybAJ4m8R8XFA" name="QualifiedType">
+ <eAnnotations xmi:id="_1gVnlUPxEdybAJ4m8R8XFA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_1gVnlkPxEdybAJ4m8R8XFA" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_1gVnmEPxEdybAJ4m8R8XFA" name="Struct" eSuperTypes="_1gVnlEPxEdybAJ4m8R8XFA">
+ <eAnnotations xmi:id="_1gVnmUPxEdybAJ4m8R8XFA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_1gVnm0PxEdybAJ4m8R8XFA" name="C_Typedef">
+ <eAnnotations xmi:id="_1gVnnEPxEdybAJ4m8R8XFA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_ygvPAEHlEdyxlrpSW7ggPQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_1gVnnUPxEdybAJ4m8R8XFA" name="isUnsigned" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_1gVnn0PxEdybAJ4m8R8XFA" name="type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_1gWOoEPxEdybAJ4m8R8XFA" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_1gWOokPxEdybAJ4m8R8XFA" name="C_Macro">
+ <eAnnotations xmi:id="_1gWOo0PxEdybAJ4m8R8XFA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_HPbEkEHmEdyxlrpSW7ggPQ"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_1gWOpEPxEdybAJ4m8R8XFA" name="base_Feature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Feature"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_n2_MoUHmEdyxlrpSW7ggPQ" name="ANSI_C" nsURI="http://PapyrusC/schemas/ANSI_C/_n2_MoEHmEdyxlrpSW7ggPQ/29" nsPrefix="ANSI_C">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_n2_MokHmEdyxlrpSW7ggPQ" name="Union" eSuperTypes="_n2_MpUHmEdyxlrpSW7ggPQ">
+ <eAnnotations xmi:id="_n2_Mo0HmEdyxlrpSW7ggPQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_n2_MpUHmEdyxlrpSW7ggPQ" name="QualifiedType">
+ <eAnnotations xmi:id="_n2_MpkHmEdyxlrpSW7ggPQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_n2_Mp0HmEdyxlrpSW7ggPQ" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_n2_MqUHmEdyxlrpSW7ggPQ" name="Struct" eSuperTypes="_n2_MpUHmEdyxlrpSW7ggPQ">
+ <eAnnotations xmi:id="_n2_MqkHmEdyxlrpSW7ggPQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_n2_MrEHmEdyxlrpSW7ggPQ" name="C_Typedef">
+ <eAnnotations xmi:id="_n2_MrUHmEdyxlrpSW7ggPQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_ygvPAEHlEdyxlrpSW7ggPQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_n2_zsEHmEdyxlrpSW7ggPQ" name="isUnsigned" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_n2_zskHmEdyxlrpSW7ggPQ" name="type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_n2_ztEHmEdyxlrpSW7ggPQ" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_n2_ztkHmEdyxlrpSW7ggPQ" name="C_Macro">
+ <eAnnotations xmi:id="_n2_zt0HmEdyxlrpSW7ggPQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_HPbEkEHmEdyxlrpSW7ggPQ"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_n2_zuEHmEdyxlrpSW7ggPQ" name="base_Feature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Feature"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_FgDYsUHmEdyxlrpSW7ggPQ" name="ANSI_C" nsURI="http://PapyrusC/schemas/ANSI_C/_FgDYsEHmEdyxlrpSW7ggPQ/28" nsPrefix="ANSI_C">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_FgDYskHmEdyxlrpSW7ggPQ" name="Union" eSuperTypes="_FgDYtUHmEdyxlrpSW7ggPQ">
+ <eAnnotations xmi:id="_FgDYs0HmEdyxlrpSW7ggPQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_FgDYtUHmEdyxlrpSW7ggPQ" name="QualifiedType">
+ <eAnnotations xmi:id="_FgDYtkHmEdyxlrpSW7ggPQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_FgDYt0HmEdyxlrpSW7ggPQ" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_FgD_wUHmEdyxlrpSW7ggPQ" name="Struct" eSuperTypes="_FgDYtUHmEdyxlrpSW7ggPQ">
+ <eAnnotations xmi:id="_FgD_wkHmEdyxlrpSW7ggPQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_FgD_xEHmEdyxlrpSW7ggPQ" name="C_Typedef">
+ <eAnnotations xmi:id="_FgD_xUHmEdyxlrpSW7ggPQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_ygvPAEHlEdyxlrpSW7ggPQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_FgD_xkHmEdyxlrpSW7ggPQ" name="isUnsigned" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_FgD_yEHmEdyxlrpSW7ggPQ" name="type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_FgD_ykHmEdyxlrpSW7ggPQ" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_Zdg1QUDsEdyjuIyCaGFHvQ" name="ANSI_C" nsURI="http://PapyrusC/schemas/ANSI_C/_Zdg1QEDsEdyjuIyCaGFHvQ/27" nsPrefix="ANSI_C">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Zdg1QkDsEdyjuIyCaGFHvQ" name="Union" eSuperTypes="_Zdg1RUDsEdyjuIyCaGFHvQ">
+ <eAnnotations xmi:id="_Zdg1Q0DsEdyjuIyCaGFHvQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Zdg1RUDsEdyjuIyCaGFHvQ" name="QualifiedType">
+ <eAnnotations xmi:id="_Zdg1RkDsEdyjuIyCaGFHvQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Zdg1R0DsEdyjuIyCaGFHvQ" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Zdg1SUDsEdyjuIyCaGFHvQ" name="Struct" eSuperTypes="_Zdg1RUDsEdyjuIyCaGFHvQ">
+ <eAnnotations xmi:id="_Zdg1SkDsEdyjuIyCaGFHvQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_1fF84D98EdyWndo1HgT9Ig" name="ANSI_C" nsURI="http://PapyrusC/schemas/ANSI_C/_1fEuwD98EdyWndo1HgT9Ig/26" nsPrefix="ANSI_C">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_1fF84T98EdyWndo1HgT9Ig" name="Union" eSuperTypes="_1fF85D98EdyWndo1HgT9Ig">
+ <eAnnotations xmi:id="_1fF84j98EdyWndo1HgT9Ig" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_1fF85D98EdyWndo1HgT9Ig" name="QualifiedType">
+ <eAnnotations xmi:id="_1fF85T98EdyWndo1HgT9Ig" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_1fF85j98EdyWndo1HgT9Ig" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_1fF86D98EdyWndo1HgT9Ig" name="Struct" eSuperTypes="_1fF85D98EdyWndo1HgT9Ig">
+ <eAnnotations xmi:id="_1fF86T98EdyWndo1HgT9Ig" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_SYYHQD97EdydlOlmTTAQlA" name="ANSI_C" nsURI="http://PapyrusC/schemas/ANSI_C/_SYW5ID97EdydlOlmTTAQlA/25" nsPrefix="ANSI_C">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_SYYHQT97EdydlOlmTTAQlA" name="Union" eSuperTypes="_SYYHRD97EdydlOlmTTAQlA">
+ <eAnnotations xmi:id="_SYYHQj97EdydlOlmTTAQlA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_SYYHRD97EdydlOlmTTAQlA" name="QualifiedType">
+ <eAnnotations xmi:id="_SYYHRT97EdydlOlmTTAQlA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_SYYHRj97EdydlOlmTTAQlA" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_SYYHSD97EdydlOlmTTAQlA" name="Struct" eSuperTypes="_SYYHRD97EdydlOlmTTAQlA">
+ <eAnnotations xmi:id="_SYYHST97EdydlOlmTTAQlA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_11xUMDweEdyHm6HnfLC8wA" name="ANSI_C" nsURI="http://PapyrusC/schemas/ANSI_C/_11wGEDweEdyHm6HnfLC8wA/24" nsPrefix="ANSI_C">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_11xUMTweEdyHm6HnfLC8wA" name="Union" eSuperTypes="_11xUNDweEdyHm6HnfLC8wA">
+ <eAnnotations xmi:id="_11xUMjweEdyHm6HnfLC8wA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_11xUNDweEdyHm6HnfLC8wA" name="QualifiedType">
+ <eAnnotations xmi:id="_11xUNTweEdyHm6HnfLC8wA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_11xUNjweEdyHm6HnfLC8wA" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_11xUODweEdyHm6HnfLC8wA" name="Struct" eSuperTypes="_11xUNDweEdyHm6HnfLC8wA">
+ <eAnnotations xmi:id="_11xUOTweEdyHm6HnfLC8wA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_mJLm4DwbEdy50P3mY4f53Q" name="ANSI_C" nsURI="http://PapyrusC/schemas/ANSI_C/_mJKYwDwbEdy50P3mY4f53Q/23" nsPrefix="ANSI_C">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_mJLm4TwbEdy50P3mY4f53Q" name="Union" eSuperTypes="_mJLm5DwbEdy50P3mY4f53Q">
+ <eAnnotations xmi:id="_mJLm4jwbEdy50P3mY4f53Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_mJLm5DwbEdy50P3mY4f53Q" name="QualifiedType">
+ <eAnnotations xmi:id="_mJLm5TwbEdy50P3mY4f53Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_mJLm5jwbEdy50P3mY4f53Q" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_mJLm6DwbEdy50P3mY4f53Q" name="Struct" eSuperTypes="_mJLm5DwbEdy50P3mY4f53Q">
+ <eAnnotations xmi:id="_mJLm6TwbEdy50P3mY4f53Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_-ILLQDnZEdyK9KOUzoZMXQ" name="ANSI_C" nsURI="http://PapyrusC/schemas/ANSI_C/_-IJ9IDnZEdyK9KOUzoZMXQ/22" nsPrefix="ANSI_C">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_-ILLQTnZEdyK9KOUzoZMXQ" name="Union" eSuperTypes="_-ILLRDnZEdyK9KOUzoZMXQ">
+ <eAnnotations xmi:id="_-ILLQjnZEdyK9KOUzoZMXQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_-ILLRDnZEdyK9KOUzoZMXQ" name="QualifiedType">
+ <eAnnotations xmi:id="_-ILLRTnZEdyK9KOUzoZMXQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-ILLRjnZEdyK9KOUzoZMXQ" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_-ILLSDnZEdyK9KOUzoZMXQ" name="Struct" eSuperTypes="_-ILLRDnZEdyK9KOUzoZMXQ">
+ <eAnnotations xmi:id="_-ILLSTnZEdyK9KOUzoZMXQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_51bsEDnLEdyhj8_f1ShKKA" name="ANSI_C" nsURI="http://PapyrusC/schemas/ANSI_C/_51ad8DnLEdyhj8_f1ShKKA/21" nsPrefix="ANSI_C">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_51bsETnLEdyhj8_f1ShKKA" name="Union" eSuperTypes="_51bsFDnLEdyhj8_f1ShKKA">
+ <eAnnotations xmi:id="_51bsEjnLEdyhj8_f1ShKKA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_51bsFDnLEdyhj8_f1ShKKA" name="QualifiedType">
+ <eAnnotations xmi:id="_51bsFTnLEdyhj8_f1ShKKA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_51bsFjnLEdyhj8_f1ShKKA" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_51bsGDnLEdyhj8_f1ShKKA" name="Struct" eSuperTypes="_51bsFDnLEdyhj8_f1ShKKA">
+ <eAnnotations xmi:id="_51bsGTnLEdyhj8_f1ShKKA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_U7HZEBtFEdyd3OUuj4yv-Q" name="ANSI_C" nsURI="http://PapyrusC/schemas/ANSI_C/_U7GK8BtFEdyd3OUuj4yv-Q/20" nsPrefix="ANSI_C">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_U7HZERtFEdyd3OUuj4yv-Q" name="Union" eSuperTypes="_U7HZExtFEdyd3OUuj4yv-Q">
+ <eAnnotations xmi:id="_U7HZEhtFEdyd3OUuj4yv-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_U7HZExtFEdyd3OUuj4yv-Q" name="QualifiedType">
+ <eAnnotations xmi:id="_U7HZFBtFEdyd3OUuj4yv-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_U7HZFRtFEdyd3OUuj4yv-Q" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_U7HZFhtFEdyd3OUuj4yv-Q" name="Struct" eSuperTypes="_U7HZExtFEdyd3OUuj4yv-Q">
+ <eAnnotations xmi:id="_U7HZFxtFEdyd3OUuj4yv-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_l_5vsRmYEdyYiu3uPO8AqQ" name="ANSI_C" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/ANSI_C/_l_5vsBmYEdyYiu3uPO8AqQ/19" nsPrefix="ANSI_C">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_l_5vshmYEdyYiu3uPO8AqQ" name="Union" eSuperTypes="_l_5vtBmYEdyYiu3uPO8AqQ">
+ <eAnnotations xmi:id="_l_5vsxmYEdyYiu3uPO8AqQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_l_5vtBmYEdyYiu3uPO8AqQ" name="QualifiedType">
+ <eAnnotations xmi:id="_l_5vtRmYEdyYiu3uPO8AqQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_l_5vthmYEdyYiu3uPO8AqQ" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_l_5vtxmYEdyYiu3uPO8AqQ" name="Struct" eSuperTypes="_l_5vtBmYEdyYiu3uPO8AqQ">
+ <eAnnotations xmi:id="_l_5vuBmYEdyYiu3uPO8AqQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_k7g6gBmYEdyYiu3uPO8AqQ" name="ANSI_C" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/ANSI_C/_k7fsYBmYEdyYiu3uPO8AqQ/18" nsPrefix="ANSI_C">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_k7g6gRmYEdyYiu3uPO8AqQ" name="Union" eSuperTypes="_k7g6gxmYEdyYiu3uPO8AqQ">
+ <eAnnotations xmi:id="_k7g6ghmYEdyYiu3uPO8AqQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_k7g6gxmYEdyYiu3uPO8AqQ" name="QualifiedType">
+ <eAnnotations xmi:id="_k7g6hBmYEdyYiu3uPO8AqQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_k7g6hRmYEdyYiu3uPO8AqQ" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_k7g6hhmYEdyYiu3uPO8AqQ" name="Struct" eSuperTypes="_k7g6gxmYEdyYiu3uPO8AqQ">
+ <eAnnotations xmi:id="_k7g6hxmYEdyYiu3uPO8AqQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_NDgS4RjwEdyGHM4pSbTixw" name="ANSI_C" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/ANSI_C/_NDgS4BjwEdyGHM4pSbTixw/17" nsPrefix="ANSI_C">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_NDgS4hjwEdyGHM4pSbTixw" name="Union" eSuperTypes="_NDgS5BjwEdyGHM4pSbTixw">
+ <eAnnotations xmi:id="_NDgS4xjwEdyGHM4pSbTixw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_NDgS5BjwEdyGHM4pSbTixw" name="QualifiedType">
+ <eAnnotations xmi:id="_NDgS5RjwEdyGHM4pSbTixw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NDgS5hjwEdyGHM4pSbTixw" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_NDgS5xjwEdyGHM4pSbTixw" name="Struct" eSuperTypes="_NDgS5BjwEdyGHM4pSbTixw">
+ <eAnnotations xmi:id="_NDg58BjwEdyGHM4pSbTixw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_VtuGcRjvEdyGHM4pSbTixw" name="ANSI_C" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/ANSI_C/_VtuGcBjvEdyGHM4pSbTixw/16" nsPrefix="ANSI_C">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VtuGchjvEdyGHM4pSbTixw" name="Union" eSuperTypes="_VtuGdBjvEdyGHM4pSbTixw">
+ <eAnnotations xmi:id="_VtuGcxjvEdyGHM4pSbTixw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VtuGdBjvEdyGHM4pSbTixw" name="QualifiedType">
+ <eAnnotations xmi:id="_VtuGdRjvEdyGHM4pSbTixw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VtuGdhjvEdyGHM4pSbTixw" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VtuGdxjvEdyGHM4pSbTixw" name="Struct" eSuperTypes="_VtuGdBjvEdyGHM4pSbTixw">
+ <eAnnotations xmi:id="_VtuGeBjvEdyGHM4pSbTixw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_VqJqgRjuEdyGHM4pSbTixw" name="ANSI_C" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/ANSI_C/_VqJqgBjuEdyGHM4pSbTixw/15" nsPrefix="ANSI_C">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VqJqghjuEdyGHM4pSbTixw" name="Union" eSuperTypes="_VqJqhBjuEdyGHM4pSbTixw">
+ <eAnnotations xmi:id="_VqJqgxjuEdyGHM4pSbTixw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VqJqhBjuEdyGHM4pSbTixw" name="QualifiedType">
+ <eAnnotations xmi:id="_VqJqhRjuEdyGHM4pSbTixw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VqJqhhjuEdyGHM4pSbTixw" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VqJqhxjuEdyGHM4pSbTixw" name="Struct" eSuperTypes="_VqJqhBjuEdyGHM4pSbTixw">
+ <eAnnotations xmi:id="_VqJqiBjuEdyGHM4pSbTixw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_XLxgMBjsEdyGHM4pSbTixw" name="ANSI_C" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/ANSI_C/_XLwSEBjsEdyGHM4pSbTixw/14" nsPrefix="ANSI_C">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_XLxgMRjsEdyGHM4pSbTixw" name="Union" eSuperTypes="_XLxgMxjsEdyGHM4pSbTixw">
+ <eAnnotations xmi:id="_XLxgMhjsEdyGHM4pSbTixw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_XLxgMxjsEdyGHM4pSbTixw" name="QualifiedType">
+ <eAnnotations xmi:id="_XLxgNBjsEdyGHM4pSbTixw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_XLxgNRjsEdyGHM4pSbTixw" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_XLxgNhjsEdyGHM4pSbTixw" name="Struct" eSuperTypes="_XLxgMxjsEdyGHM4pSbTixw">
+ <eAnnotations xmi:id="_XLxgNxjsEdyGHM4pSbTixw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_koIlMBjMEdyo-J6sTQ4XlA" name="ANSI_C" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/ANSI_C/_koH-IBjMEdyo-J6sTQ4XlA/13" nsPrefix="ANSI_C">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_koIlMRjMEdyo-J6sTQ4XlA" name="Union" eSuperTypes="_koIlMxjMEdyo-J6sTQ4XlA">
+ <eAnnotations xmi:id="_koIlMhjMEdyo-J6sTQ4XlA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_koIlMxjMEdyo-J6sTQ4XlA" name="QualifiedType">
+ <eAnnotations xmi:id="_koIlNBjMEdyo-J6sTQ4XlA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_koIlNRjMEdyo-J6sTQ4XlA" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_koIlNhjMEdyo-J6sTQ4XlA" name="Struct" eSuperTypes="_koIlMxjMEdyo-J6sTQ4XlA">
+ <eAnnotations xmi:id="_koIlNxjMEdyo-J6sTQ4XlA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_WhL4oBjMEdyo-J6sTQ4XlA" name="ANSI_C" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/ANSI_C/_WhKqgBjMEdyo-J6sTQ4XlA/12" nsPrefix="ANSI_C">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_WhL4oRjMEdyo-J6sTQ4XlA" name="Union" eSuperTypes="_WhL4oxjMEdyo-J6sTQ4XlA">
+ <eAnnotations xmi:id="_WhL4ohjMEdyo-J6sTQ4XlA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_WhL4oxjMEdyo-J6sTQ4XlA" name="QualifiedType">
+ <eAnnotations xmi:id="_WhL4pBjMEdyo-J6sTQ4XlA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_WhL4pRjMEdyo-J6sTQ4XlA" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_WhL4phjMEdyo-J6sTQ4XlA" name="Struct" eSuperTypes="_WhL4oxjMEdyo-J6sTQ4XlA">
+ <eAnnotations xmi:id="_WhL4pxjMEdyo-J6sTQ4XlA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_Tny_wRjDEdyfI_WOjDrRyg" name="ANSI_C" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/ANSI_C/_Tny_wBjDEdyfI_WOjDrRyg/11" nsPrefix="ANSI_C">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Tny_whjDEdyfI_WOjDrRyg" name="Union" eSuperTypes="_Tny_xBjDEdyfI_WOjDrRyg">
+ <eAnnotations xmi:id="_Tny_wxjDEdyfI_WOjDrRyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Tny_xBjDEdyfI_WOjDrRyg" name="QualifiedType">
+ <eAnnotations xmi:id="_Tny_xRjDEdyfI_WOjDrRyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Tny_xhjDEdyfI_WOjDrRyg" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Tny_xxjDEdyfI_WOjDrRyg" name="Struct" eSuperTypes="_Tny_xBjDEdyfI_WOjDrRyg">
+ <eAnnotations xmi:id="_Tny_yBjDEdyfI_WOjDrRyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_Fv4DIBjCEdyfI_WOjDrRyg" name="ANSI_C" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/ANSI_C/_Fv3cEBjCEdyfI_WOjDrRyg/10" nsPrefix="ANSI_C">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Fv4DIRjCEdyfI_WOjDrRyg" name="Union" eSuperTypes="_Fv4DIxjCEdyfI_WOjDrRyg">
+ <eAnnotations xmi:id="_Fv4DIhjCEdyfI_WOjDrRyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Fv4DIxjCEdyfI_WOjDrRyg" name="QualifiedType">
+ <eAnnotations xmi:id="_Fv4DJBjCEdyfI_WOjDrRyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Fv4DJRjCEdyfI_WOjDrRyg" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Fv4DJhjCEdyfI_WOjDrRyg" name="Struct" eSuperTypes="_Fv4DIxjCEdyfI_WOjDrRyg">
+ <eAnnotations xmi:id="_Fv4DJxjCEdyfI_WOjDrRyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_Vzp8sBiqEdyL78Gqc5OeNA" name="ANSI_C" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/ANSI_C/_VzpVoBiqEdyL78Gqc5OeNA/9" nsPrefix="ANSI_C">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Vzp8sRiqEdyL78Gqc5OeNA" name="Union" eSuperTypes="_Vzp8sxiqEdyL78Gqc5OeNA">
+ <eAnnotations xmi:id="_Vzp8shiqEdyL78Gqc5OeNA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Vzp8sxiqEdyL78Gqc5OeNA" name="QualifiedType">
+ <eAnnotations xmi:id="_Vzp8tBiqEdyL78Gqc5OeNA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Vzp8tRiqEdyL78Gqc5OeNA" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Vzp8thiqEdyL78Gqc5OeNA" name="Struct" eSuperTypes="_Vzp8sxiqEdyL78Gqc5OeNA">
+ <eAnnotations xmi:id="_Vzp8txiqEdyL78Gqc5OeNA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_24VU0RYIEdylxOSGZvSthg" name="ANSI_C" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/ANSI_C/_24VU0BYIEdylxOSGZvSthg/8" nsPrefix="ANSI_C">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_24VU0hYIEdylxOSGZvSthg" name="Union" eSuperTypes="_24VU1BYIEdylxOSGZvSthg">
+ <eAnnotations xmi:id="_24VU0xYIEdylxOSGZvSthg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_24VU1BYIEdylxOSGZvSthg" name="QualifiedType">
+ <eAnnotations xmi:id="_24VU1RYIEdylxOSGZvSthg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_24VU1hYIEdylxOSGZvSthg" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_24VU1xYIEdylxOSGZvSthg" name="Struct" eSuperTypes="_24VU1BYIEdylxOSGZvSthg">
+ <eAnnotations xmi:id="_24VU2BYIEdylxOSGZvSthg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_24VU2RYIEdylxOSGZvSthg" name="PrimitiveType" eSuperTypes="_24VU1BYIEdylxOSGZvSthg">
+ <eAnnotations xmi:id="_24VU2hYIEdylxOSGZvSthg" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_24VU2xYIEdylxOSGZvSthg" name="isUnsigned" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_24VU3BYIEdylxOSGZvSthg" name="isLong" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_24VU3RYIEdylxOSGZvSthg" name="specifier" ordered="false" unique="false" lowerBound="1" eType="_24VU3hYIEdylxOSGZvSthg"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_24VU3hYIEdylxOSGZvSthg" name="PrimitiveTypeSpecifierKind">
+ <eAnnotations xmi:id="_24VU3xYIEdylxOSGZvSthg" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+ <eLiterals xmi:id="_24VU4BYIEdylxOSGZvSthg" name="void"/>
+ <eLiterals xmi:id="_24VU4RYIEdylxOSGZvSthg" name="char" value="1"/>
+ <eLiterals xmi:id="_24VU4hYIEdylxOSGZvSthg" name="int" value="2"/>
+ <eLiterals xmi:id="_24VU4xYIEdylxOSGZvSthg" name="float" value="3"/>
+ <eLiterals xmi:id="_24VU5BYIEdylxOSGZvSthg" name="double" value="4"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_hMJVMBYIEdylxOSGZvSthg" name="ANSI_C" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/ANSI_C/_hMIuIBYIEdylxOSGZvSthg/7" nsPrefix="ANSI_C">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hMJVMRYIEdylxOSGZvSthg" name="Union" eSuperTypes="_hMJVMxYIEdylxOSGZvSthg">
+ <eAnnotations xmi:id="_hMJVMhYIEdylxOSGZvSthg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hMJVMxYIEdylxOSGZvSthg" name="QualifiedType">
+ <eAnnotations xmi:id="_hMJVNBYIEdylxOSGZvSthg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hMJVNRYIEdylxOSGZvSthg" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hMJVNhYIEdylxOSGZvSthg" name="Struct" eSuperTypes="_hMJVMxYIEdylxOSGZvSthg">
+ <eAnnotations xmi:id="_hMJVNxYIEdylxOSGZvSthg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hMJVOBYIEdylxOSGZvSthg" name="PrimitiveType" eSuperTypes="_hMJVMxYIEdylxOSGZvSthg">
+ <eAnnotations xmi:id="_hMJVORYIEdylxOSGZvSthg" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hMJVOhYIEdylxOSGZvSthg" name="isUnsigned" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hMJVOxYIEdylxOSGZvSthg" name="isLong" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hMJVPBYIEdylxOSGZvSthg" name="specifier" ordered="false" unique="false" lowerBound="1" eType="_hMJVPRYIEdylxOSGZvSthg"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_hMJVPRYIEdylxOSGZvSthg" name="PrimitiveTypeSpecifierKind">
+ <eAnnotations xmi:id="_hMJVPhYIEdylxOSGZvSthg" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+ <eLiterals xmi:id="_hMJVPxYIEdylxOSGZvSthg" name="void"/>
+ <eLiterals xmi:id="_hMJVQBYIEdylxOSGZvSthg" name="char" value="1"/>
+ <eLiterals xmi:id="_hMJVQRYIEdylxOSGZvSthg" name="int" value="2"/>
+ <eLiterals xmi:id="_hMJVQhYIEdylxOSGZvSthg" name="float" value="3"/>
+ <eLiterals xmi:id="_hMJVQxYIEdylxOSGZvSthg" name="double" value="4"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_DuYPoBYIEdylxOSGZvSthg" name="ANSI_C" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/ANSI_C/_DuWacBYIEdylxOSGZvSthg/6" nsPrefix="ANSI_C">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_DuYPoRYIEdylxOSGZvSthg" name="Union" eSuperTypes="_DuYPoxYIEdylxOSGZvSthg">
+ <eAnnotations xmi:id="_DuYPohYIEdylxOSGZvSthg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_DuYPoxYIEdylxOSGZvSthg" name="QualifiedType">
+ <eAnnotations xmi:id="_DuYPpBYIEdylxOSGZvSthg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_DuYPpRYIEdylxOSGZvSthg" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_DuYPphYIEdylxOSGZvSthg" name="Struct" eSuperTypes="_DuYPoxYIEdylxOSGZvSthg">
+ <eAnnotations xmi:id="_DuYPpxYIEdylxOSGZvSthg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_DuYPqBYIEdylxOSGZvSthg" name="PrimitiveType" eSuperTypes="_DuYPoxYIEdylxOSGZvSthg">
+ <eAnnotations xmi:id="_DuYPqRYIEdylxOSGZvSthg" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_DuYPqhYIEdylxOSGZvSthg" name="isUnsigned" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_DuYPqxYIEdylxOSGZvSthg" name="isLong" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_DuYPrBYIEdylxOSGZvSthg" name="specifier" ordered="false" unique="false" lowerBound="1" eType="_DuYPrRYIEdylxOSGZvSthg"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_DuYPrRYIEdylxOSGZvSthg" name="PrimitiveTypeSpecifierKind">
+ <eAnnotations xmi:id="_DuYPrhYIEdylxOSGZvSthg" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+ <eLiterals xmi:id="_DuYPrxYIEdylxOSGZvSthg" name="void"/>
+ <eLiterals xmi:id="_DuYPsBYIEdylxOSGZvSthg" name="char" value="1"/>
+ <eLiterals xmi:id="_DuYPsRYIEdylxOSGZvSthg" name="int" value="2"/>
+ <eLiterals xmi:id="_DuYPshYIEdylxOSGZvSthg" name="float" value="3"/>
+ <eLiterals xmi:id="_DuYPsxYIEdylxOSGZvSthg" name="double" value="4"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_gkQdkRU-EdyGtuGaCXC25Q" name="ANSI_C" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/ANSI_C/_gkQdkBU-EdyGtuGaCXC25Q/5" nsPrefix="ANSI_C">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_gkQdkhU-EdyGtuGaCXC25Q" name="Union" eSuperTypes="_gkQdlBU-EdyGtuGaCXC25Q">
+ <eAnnotations xmi:id="_gkQdkxU-EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_gkQdlBU-EdyGtuGaCXC25Q" name="QualifiedType">
+ <eAnnotations xmi:id="_gkQdlRU-EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_gkQdlhU-EdyGtuGaCXC25Q" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_gkQdlxU-EdyGtuGaCXC25Q" name="Struct" eSuperTypes="_gkQdlBU-EdyGtuGaCXC25Q">
+ <eAnnotations xmi:id="_gkQdmBU-EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_gkQdmRU-EdyGtuGaCXC25Q" name="PrimitiveType" eSuperTypes="_gkQdlBU-EdyGtuGaCXC25Q">
+ <eAnnotations xmi:id="_gkQdmhU-EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_gkQdmxU-EdyGtuGaCXC25Q" name="isUnsigned" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_gkQdnBU-EdyGtuGaCXC25Q" name="isLong" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_gkQdnRU-EdyGtuGaCXC25Q" name="specifier" ordered="false" unique="false" lowerBound="1" eType="_gkQdnhU-EdyGtuGaCXC25Q"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_gkQdnhU-EdyGtuGaCXC25Q" name="PrimitiveTypeSpecifierKind">
+ <eAnnotations xmi:id="_gkQdnxU-EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+ <eLiterals xmi:id="_gkQdoBU-EdyGtuGaCXC25Q" name="void"/>
+ <eLiterals xmi:id="_gkQdoRU-EdyGtuGaCXC25Q" name="char" value="1"/>
+ <eLiterals xmi:id="_gkQdohU-EdyGtuGaCXC25Q" name="int" value="2"/>
+ <eLiterals xmi:id="_gkQdoxU-EdyGtuGaCXC25Q" name="float" value="3"/>
+ <eLiterals xmi:id="_gkQdpBU-EdyGtuGaCXC25Q" name="double" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_gkREoBU-EdyGtuGaCXC25Q" name="StorageClass">
+ <eAnnotations xmi:id="_gkREoRU-EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_gkREohU-EdyGtuGaCXC25Q" name="auto"/>
+ <eLiterals xmi:id="_gkREoxU-EdyGtuGaCXC25Q" name="register" value="1"/>
+ <eLiterals xmi:id="_gkREpBU-EdyGtuGaCXC25Q" name="extern" value="2"/>
+ <eLiterals xmi:id="_gkREpRU-EdyGtuGaCXC25Q" name="static" value="3"/>
+ <eLiterals xmi:id="_gkREphU-EdyGtuGaCXC25Q" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_gkREpxU-EdyGtuGaCXC25Q" name="TypedElement">
+ <eAnnotations xmi:id="_gkREqBU-EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_gkREqRU-EdyGtuGaCXC25Q" name="storageClass" ordered="false" unique="false" lowerBound="1" eType="_gkREoBU-EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_gkREqhU-EdyGtuGaCXC25Q" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_gkREqxU-EdyGtuGaCXC25Q" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_gkRErBU-EdyGtuGaCXC25Q" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_gkRErRU-EdyGtuGaCXC25Q" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_-EpOwBU9EdyGtuGaCXC25Q" name="ANSI_C" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/ANSI_C/_-EonsBU9EdyGtuGaCXC25Q/4" nsPrefix="ANSI_C">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_-EpOwRU9EdyGtuGaCXC25Q" name="Union" eSuperTypes="_-EpOwxU9EdyGtuGaCXC25Q">
+ <eAnnotations xmi:id="_-EpOwhU9EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_-EpOwxU9EdyGtuGaCXC25Q" name="QualifiedType">
+ <eAnnotations xmi:id="_-EpOxBU9EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-EpOxRU9EdyGtuGaCXC25Q" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_-EpOxhU9EdyGtuGaCXC25Q" name="Struct" eSuperTypes="_-EpOwxU9EdyGtuGaCXC25Q">
+ <eAnnotations xmi:id="_-EpOxxU9EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_-EpOyBU9EdyGtuGaCXC25Q" name="PrimitiveType" eSuperTypes="_-EpOwxU9EdyGtuGaCXC25Q">
+ <eAnnotations xmi:id="_-EpOyRU9EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-EpOyhU9EdyGtuGaCXC25Q" name="isUnsigned" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-EpOyxU9EdyGtuGaCXC25Q" name="isLong" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-EpOzBU9EdyGtuGaCXC25Q" name="specifier" ordered="false" unique="false" lowerBound="1" eType="_-EpOzRU9EdyGtuGaCXC25Q"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_-EpOzRU9EdyGtuGaCXC25Q" name="PrimitiveTypeSpecifierKind">
+ <eAnnotations xmi:id="_-EpOzhU9EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+ <eLiterals xmi:id="_-EpOzxU9EdyGtuGaCXC25Q" name="void"/>
+ <eLiterals xmi:id="_-EpO0BU9EdyGtuGaCXC25Q" name="char" value="1"/>
+ <eLiterals xmi:id="_-EpO0RU9EdyGtuGaCXC25Q" name="int" value="2"/>
+ <eLiterals xmi:id="_-EpO0hU9EdyGtuGaCXC25Q" name="float" value="3"/>
+ <eLiterals xmi:id="_-EpO0xU9EdyGtuGaCXC25Q" name="double" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_-EpO1BU9EdyGtuGaCXC25Q" name="StorageClass">
+ <eAnnotations xmi:id="_-EpO1RU9EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_-EpO1hU9EdyGtuGaCXC25Q" name="auto"/>
+ <eLiterals xmi:id="_-EpO1xU9EdyGtuGaCXC25Q" name="register" value="1"/>
+ <eLiterals xmi:id="_-EpO2BU9EdyGtuGaCXC25Q" name="extern" value="2"/>
+ <eLiterals xmi:id="_-EpO2RU9EdyGtuGaCXC25Q" name="static" value="3"/>
+ <eLiterals xmi:id="_-EpO2hU9EdyGtuGaCXC25Q" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_-EpO2xU9EdyGtuGaCXC25Q" name="TypedElement">
+ <eAnnotations xmi:id="_-EpO3BU9EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-EpO3RU9EdyGtuGaCXC25Q" name="storageClass" ordered="false" unique="false" lowerBound="1" eType="_-EpO1BU9EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-EpO3hU9EdyGtuGaCXC25Q" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-EpO3xU9EdyGtuGaCXC25Q" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-EpO4BU9EdyGtuGaCXC25Q" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-EpO4RU9EdyGtuGaCXC25Q" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_NYvAsBU6EdyGtuGaCXC25Q" name="ANSI_C" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/ANSI_C/_NYuZoBU6EdyGtuGaCXC25Q/3" nsPrefix="ANSI_C">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_NYvAsRU6EdyGtuGaCXC25Q" name="Union" eSuperTypes="_NYvAsxU6EdyGtuGaCXC25Q">
+ <eAnnotations xmi:id="_NYvAshU6EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_NYvAsxU6EdyGtuGaCXC25Q" name="QualifiedType">
+ <eAnnotations xmi:id="_NYvAtBU6EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NYvAtRU6EdyGtuGaCXC25Q" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_NYvAthU6EdyGtuGaCXC25Q" name="Struct" eSuperTypes="_NYvAsxU6EdyGtuGaCXC25Q">
+ <eAnnotations xmi:id="_NYvAtxU6EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_NYvAuBU6EdyGtuGaCXC25Q" name="PrimitiveType" eSuperTypes="_NYvAsxU6EdyGtuGaCXC25Q">
+ <eAnnotations xmi:id="_NYvAuRU6EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NYvAuhU6EdyGtuGaCXC25Q" name="isUnsigned" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NYvAuxU6EdyGtuGaCXC25Q" name="isLong" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NYvAvBU6EdyGtuGaCXC25Q" name="specifier" ordered="false" unique="false" lowerBound="1" eType="_NYvAvRU6EdyGtuGaCXC25Q"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_NYvAvRU6EdyGtuGaCXC25Q" name="PrimitiveTypeSpecifierKind">
+ <eAnnotations xmi:id="_NYvAvhU6EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+ <eLiterals xmi:id="_NYvAvxU6EdyGtuGaCXC25Q" name="void"/>
+ <eLiterals xmi:id="_NYvAwBU6EdyGtuGaCXC25Q" name="char" value="1"/>
+ <eLiterals xmi:id="_NYvAwRU6EdyGtuGaCXC25Q" name="int" value="2"/>
+ <eLiterals xmi:id="_NYvAwhU6EdyGtuGaCXC25Q" name="float" value="3"/>
+ <eLiterals xmi:id="_NYvAwxU6EdyGtuGaCXC25Q" name="double" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_NYvAxBU6EdyGtuGaCXC25Q" name="StorageClass">
+ <eAnnotations xmi:id="_NYvAxRU6EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_NYvAxhU6EdyGtuGaCXC25Q" name="auto"/>
+ <eLiterals xmi:id="_NYvAxxU6EdyGtuGaCXC25Q" name="register" value="1"/>
+ <eLiterals xmi:id="_NYvnwBU6EdyGtuGaCXC25Q" name="extern" value="2"/>
+ <eLiterals xmi:id="_NYvnwRU6EdyGtuGaCXC25Q" name="static" value="3"/>
+ <eLiterals xmi:id="_NYvnwhU6EdyGtuGaCXC25Q" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_NYvnwxU6EdyGtuGaCXC25Q" name="TypedElement">
+ <eAnnotations xmi:id="_NYvnxBU6EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NYvnxRU6EdyGtuGaCXC25Q" name="storageClass" ordered="false" unique="false" lowerBound="1" eType="_NYvAxBU6EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NYvnxhU6EdyGtuGaCXC25Q" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NYvnxxU6EdyGtuGaCXC25Q" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NYvnyBU6EdyGtuGaCXC25Q" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NYvnyRU6EdyGtuGaCXC25Q" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_IEXkEBU6EdyGtuGaCXC25Q" name="ANSI_C" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/ANSI_C/_IEW9ABU6EdyGtuGaCXC25Q/2" nsPrefix="ANSI_C">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_IEXkERU6EdyGtuGaCXC25Q" name="Union" eSuperTypes="_IEXkExU6EdyGtuGaCXC25Q">
+ <eAnnotations xmi:id="_IEXkEhU6EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_IEXkExU6EdyGtuGaCXC25Q" name="QualifiedType">
+ <eAnnotations xmi:id="_IEXkFBU6EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_IEXkFRU6EdyGtuGaCXC25Q" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_IEXkFhU6EdyGtuGaCXC25Q" name="Struct" eSuperTypes="_IEXkExU6EdyGtuGaCXC25Q">
+ <eAnnotations xmi:id="_IEXkFxU6EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_IEXkGBU6EdyGtuGaCXC25Q" name="PrimitiveType" eSuperTypes="_IEXkExU6EdyGtuGaCXC25Q">
+ <eAnnotations xmi:id="_IEXkGRU6EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_IEXkGhU6EdyGtuGaCXC25Q" name="isUnsigned" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_IEXkGxU6EdyGtuGaCXC25Q" name="isLong" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_IEXkHBU6EdyGtuGaCXC25Q" name="specifier" ordered="false" unique="false" lowerBound="1" eType="_IEXkHRU6EdyGtuGaCXC25Q"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_IEXkHRU6EdyGtuGaCXC25Q" name="PrimitiveTypeSpecifierKind">
+ <eAnnotations xmi:id="_IEXkHhU6EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+ <eLiterals xmi:id="_IEXkHxU6EdyGtuGaCXC25Q" name="void"/>
+ <eLiterals xmi:id="_IEXkIBU6EdyGtuGaCXC25Q" name="char" value="1"/>
+ <eLiterals xmi:id="_IEXkIRU6EdyGtuGaCXC25Q" name="int" value="2"/>
+ <eLiterals xmi:id="_IEXkIhU6EdyGtuGaCXC25Q" name="float" value="3"/>
+ <eLiterals xmi:id="_IEXkIxU6EdyGtuGaCXC25Q" name="double" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_IEXkJBU6EdyGtuGaCXC25Q" name="StorageClass">
+ <eAnnotations xmi:id="_IEXkJRU6EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_IEXkJhU6EdyGtuGaCXC25Q" name="auto"/>
+ <eLiterals xmi:id="_IEXkJxU6EdyGtuGaCXC25Q" name="register" value="1"/>
+ <eLiterals xmi:id="_IEXkKBU6EdyGtuGaCXC25Q" name="extern" value="2"/>
+ <eLiterals xmi:id="_IEXkKRU6EdyGtuGaCXC25Q" name="static" value="3"/>
+ <eLiterals xmi:id="_IEXkKhU6EdyGtuGaCXC25Q" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_IEXkKxU6EdyGtuGaCXC25Q" name="TypedElement">
+ <eAnnotations xmi:id="_IEXkLBU6EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_IEXkLRU6EdyGtuGaCXC25Q" name="storageClass" ordered="false" unique="false" lowerBound="1" eType="_IEXkJBU6EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_IEXkLhU6EdyGtuGaCXC25Q" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_IEXkLxU6EdyGtuGaCXC25Q" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_IEXkMBU6EdyGtuGaCXC25Q" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_IEXkMRU6EdyGtuGaCXC25Q" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_E7GGARU6EdyGtuGaCXC25Q" name="ANSI_C" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/ANSI_C/_E7GGABU6EdyGtuGaCXC25Q/1" nsPrefix="ANSI_C">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_E7GGAhU6EdyGtuGaCXC25Q" name="Union" eSuperTypes="_E7GGBBU6EdyGtuGaCXC25Q">
+ <eAnnotations xmi:id="_E7GGAxU6EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_E7GGBBU6EdyGtuGaCXC25Q" name="QualifiedType">
+ <eAnnotations xmi:id="_E7GGBRU6EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_E7GGBhU6EdyGtuGaCXC25Q" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_E7GGBxU6EdyGtuGaCXC25Q" name="Struct" eSuperTypes="_E7GGBBU6EdyGtuGaCXC25Q">
+ <eAnnotations xmi:id="_E7GGCBU6EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_E7GGCRU6EdyGtuGaCXC25Q" name="PrimitiveType" eSuperTypes="_E7GGBBU6EdyGtuGaCXC25Q">
+ <eAnnotations xmi:id="_E7GGChU6EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_E7GGCxU6EdyGtuGaCXC25Q" name="isUnsigned" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_E7GGDBU6EdyGtuGaCXC25Q" name="isLong" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_E7GGDRU6EdyGtuGaCXC25Q" name="specifier" ordered="false" unique="false" lowerBound="1" eType="_E7GtEBU6EdyGtuGaCXC25Q"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_E7GtEBU6EdyGtuGaCXC25Q" name="PrimitiveTypeSpecifierKind">
+ <eAnnotations xmi:id="_E7GtERU6EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+ <eLiterals xmi:id="_E7GtEhU6EdyGtuGaCXC25Q" name="void"/>
+ <eLiterals xmi:id="_E7HUIBU6EdyGtuGaCXC25Q" name="char" value="1"/>
+ <eLiterals xmi:id="_E7HUIRU6EdyGtuGaCXC25Q" name="int" value="2"/>
+ <eLiterals xmi:id="_E7HUIhU6EdyGtuGaCXC25Q" name="float" value="3"/>
+ <eLiterals xmi:id="_E7HUIxU6EdyGtuGaCXC25Q" name="double" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_E7HUJBU6EdyGtuGaCXC25Q" name="StorageClass">
+ <eAnnotations xmi:id="_E7HUJRU6EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_E7HUJhU6EdyGtuGaCXC25Q" name="auto"/>
+ <eLiterals xmi:id="_E7HUJxU6EdyGtuGaCXC25Q" name="register" value="1"/>
+ <eLiterals xmi:id="_E7HUKBU6EdyGtuGaCXC25Q" name="extern" value="2"/>
+ <eLiterals xmi:id="_E7HUKRU6EdyGtuGaCXC25Q" name="static" value="3"/>
+ <eLiterals xmi:id="_E7HUKhU6EdyGtuGaCXC25Q" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_E7HUKxU6EdyGtuGaCXC25Q" name="TypedElement">
+ <eAnnotations xmi:id="_E7HULBU6EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_E7HULRU6EdyGtuGaCXC25Q" name="storageClass" ordered="false" unique="false" lowerBound="1" eType="_E7HUJBU6EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_E7HULhU6EdyGtuGaCXC25Q" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_E7HULxU6EdyGtuGaCXC25Q" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_E7HUMBU6EdyGtuGaCXC25Q" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_E7HUMRU6EdyGtuGaCXC25Q" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_BZiq0BU6EdyGtuGaCXC25Q" name="ANSIC" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/ANSIC/_BZg1oBU6EdyGtuGaCXC25Q/0" nsPrefix="ANSIC">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_BZiq0RU6EdyGtuGaCXC25Q" name="Union" eSuperTypes="_BZiq0xU6EdyGtuGaCXC25Q">
+ <eAnnotations xmi:id="_BZiq0hU6EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tLnF8NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_BZiq0xU6EdyGtuGaCXC25Q" name="QualifiedType">
+ <eAnnotations xmi:id="_BZiq1BU6EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hyzoYNt3EduxXYGi8mOVFA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_BZiq1RU6EdyGtuGaCXC25Q" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_BZiq1hU6EdyGtuGaCXC25Q" name="Struct" eSuperTypes="_BZiq0xU6EdyGtuGaCXC25Q">
+ <eAnnotations xmi:id="_BZiq1xU6EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vF0I0NtyEduxXYGi8mOVFA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_BZiq2BU6EdyGtuGaCXC25Q" name="PrimitiveType" eSuperTypes="_BZiq0xU6EdyGtuGaCXC25Q">
+ <eAnnotations xmi:id="_BZiq2RU6EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BZiq2hU6EdyGtuGaCXC25Q" name="isUnsigned" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BZiq2xU6EdyGtuGaCXC25Q" name="isLong" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BZiq3BU6EdyGtuGaCXC25Q" name="specifier" ordered="false" unique="false" lowerBound="1" eType="_BZiq3RU6EdyGtuGaCXC25Q"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_BZiq3RU6EdyGtuGaCXC25Q" name="PrimitiveTypeSpecifierKind">
+ <eAnnotations xmi:id="_BZiq3hU6EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+ <eLiterals xmi:id="_BZiq3xU6EdyGtuGaCXC25Q" name="void"/>
+ <eLiterals xmi:id="_BZiq4BU6EdyGtuGaCXC25Q" name="char" value="1"/>
+ <eLiterals xmi:id="_BZiq4RU6EdyGtuGaCXC25Q" name="int" value="2"/>
+ <eLiterals xmi:id="_BZiq4hU6EdyGtuGaCXC25Q" name="float" value="3"/>
+ <eLiterals xmi:id="_BZiq4xU6EdyGtuGaCXC25Q" name="double" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_BZiq5BU6EdyGtuGaCXC25Q" name="StorageClass">
+ <eAnnotations xmi:id="_BZiq5RU6EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_BZiq5hU6EdyGtuGaCXC25Q" name="auto"/>
+ <eLiterals xmi:id="_BZiq5xU6EdyGtuGaCXC25Q" name="register" value="1"/>
+ <eLiterals xmi:id="_BZiq6BU6EdyGtuGaCXC25Q" name="extern" value="2"/>
+ <eLiterals xmi:id="_BZiq6RU6EdyGtuGaCXC25Q" name="static" value="3"/>
+ <eLiterals xmi:id="_BZiq6hU6EdyGtuGaCXC25Q" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_BZiq6xU6EdyGtuGaCXC25Q" name="TypedElement">
+ <eAnnotations xmi:id="_BZiq7BU6EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BZiq7RU6EdyGtuGaCXC25Q" name="storageClass" ordered="false" unique="false" lowerBound="1" eType="_BZiq5BU6EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_BZiq7hU6EdyGtuGaCXC25Q" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BZiq7xU6EdyGtuGaCXC25Q" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BZiq8BU6EdyGtuGaCXC25Q" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BZiq8RU6EdyGtuGaCXC25Q" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ </eAnnotations>
+ <elementImport xmi:id="_gajFsEHlEdyxlrpSW7ggPQ" alias="PrimitiveType">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#PrimitiveType"/>
+ </elementImport>
+ <elementImport xmi:id="_ZM26gEHmEdyxlrpSW7ggPQ" alias="Feature">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Feature"/>
+ </elementImport>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_tLnF8NtyEduxXYGi8mOVFA" name="Union">
+ <generalization xmi:id="_fg9sUNudEdu40vrGR5q4gQ" general="_hyzoYNt3EduxXYGi8mOVFA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_vF0I0NtyEduxXYGi8mOVFA" name="Struct">
+ <generalization xmi:id="_f6rM0NudEdu40vrGR5q4gQ" general="_hyzoYNt3EduxXYGi8mOVFA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_hyzoYNt3EduxXYGi8mOVFA" name="QualifiedType">
+ <ownedAttribute xmi:id="_f50bwNueEdu40vrGR5q4gQ" name="base_Type" isUnique="false" association="_f5x_gNueEdu40vrGR5q4gQ">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Type"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_f5x_gNueEdu40vrGR5q4gQ" name="Extension_C_QualifiedType" memberEnd="_f5ymkNueEdu40vrGR5q4gQ _f50bwNueEdu40vrGR5q4gQ">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_f5ymkNueEdu40vrGR5q4gQ" name="extension_C_QualifiedType" type="_hyzoYNt3EduxXYGi8mOVFA" aggregation="composite" association="_f5x_gNueEdu40vrGR5q4gQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_ygvPAEHlEdyxlrpSW7ggPQ" name="C_Typedef">
+ <ownedAttribute xmi:id="_zIUzcEHlEdyxlrpSW7ggPQ" name="isUnsigned" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_88h4cEHlEdyxlrpSW7ggPQ" name="type" isUnique="false">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#PrimitiveType"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_DkGCUEHmEdyxlrpSW7ggPQ" name="base_PrimitiveType" isUnique="false" association="_DkBw4EHmEdyxlrpSW7ggPQ">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#PrimitiveType"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_DkBw4EHmEdyxlrpSW7ggPQ" name="Extension_C_Typedef" memberEnd="_DkDmEEHmEdyxlrpSW7ggPQ _DkGCUEHmEdyxlrpSW7ggPQ">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_DkDmEEHmEdyxlrpSW7ggPQ" name="extension_C_Typedef" type="_ygvPAEHlEdyxlrpSW7ggPQ" aggregation="composite" association="_DkBw4EHmEdyxlrpSW7ggPQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_HPbEkEHmEdyxlrpSW7ggPQ" name="C_Macro">
+ <ownedAttribute xmi:id="_UbCQEEPwEdyRdtrzgCMxHg" name="base_Feature" isUnique="false" association="_Ua9XkEPwEdyRdtrzgCMxHg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Feature"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lE-x8EP9EdyXRJo_SB0POQ" name="body" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_Ua9XkEPwEdyRdtrzgCMxHg" name="Extension_C_Macro" memberEnd="_Ua_MwEPwEdyRdtrzgCMxHg _UbCQEEPwEdyRdtrzgCMxHg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Ua_MwEPwEdyRdtrzgCMxHg" name="extension_C_Macro" type="_HPbEkEHmEdyxlrpSW7ggPQ" aggregation="composite" association="_Ua9XkEPwEdyRdtrzgCMxHg"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Profile" xmi:id="_GPY_cBU6EdyGtuGaCXC25Q" name="CGenerator" metaclassReference="_zgFD0BU9EdyGtuGaCXC25Q _FIQWYBiqEdyL78Gqc5OeNA _KpH0kBjDEdyfI_WOjDrRyg _Hv59MBjuEdyGHM4pSbTixw _ONCjQBjvEdyGHM4pSbTixw _fMxPABmYEdyYiu3uPO8AqQ">
+ <eAnnotations xmi:id="_IEXkMxU6EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <contents xmi:type="ecore:EPackage" xmi:id="_7bRFQcdtEd29as0ocaFXLw" name="CGenerator" nsURI="http://PapyrusC/schemas/CGenerator/_7bRFQMdtEd29as0ocaFXLw/32" nsPrefix="CGenerator">
+ <eAnnotations xmi:id="_7bRFmsdtEd29as0ocaFXLw" source="PapyrusVersion">
+ <details xmi:id="_7bRFm8dtEd29as0ocaFXLw" key="Version" value="1.1.0"/>
+ <details xmi:id="_7bRFnMdtEd29as0ocaFXLw" key="Comment" value=""/>
+ <details xmi:id="_7bRFncdtEd29as0ocaFXLw" key="Copyright" value=""/>
+ <details xmi:id="_7bRFnsdtEd29as0ocaFXLw" key="Date" value="2008-12-11"/>
+ <details xmi:id="_7bRFn8dtEd29as0ocaFXLw" key="Author" value="Yann Tanguy (CEA LIST)"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7bRFQsdtEd29as0ocaFXLw" name="C_Type">
+ <eAnnotations xmi:id="_7bRFQ8dtEd29as0ocaFXLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_P2CwoBU6EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7bRFRMdtEd29as0ocaFXLw" name="extern" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7bRFRsdtEd29as0ocaFXLw" name="isDynamicInstanciation" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7bRFSMdtEd29as0ocaFXLw" name="isFunctionGeneratedToSepcificFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7bRFSsdtEd29as0ocaFXLw" name="isAttributeNameUsed" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7bRFTMdtEd29as0ocaFXLw" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7bRFTsdtEd29as0ocaFXLw" name="C_Feature">
+ <eAnnotations xmi:id="_7bRFT8dtEd29as0ocaFXLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7bRFUMdtEd29as0ocaFXLw" name="storageClass" ordered="false" unique="false" eType="_7bRFZMdtEd29as0ocaFXLw"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7bRFUsdtEd29as0ocaFXLw" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7bRFVMdtEd29as0ocaFXLw" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7bRFVsdtEd29as0ocaFXLw" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7bRFWMdtEd29as0ocaFXLw" name="isAccessorsGenerated" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7bRFWsdtEd29as0ocaFXLw" name="acess" ordered="false" unique="false" lowerBound="1" eType="_7bRFa8dtEd29as0ocaFXLw"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7bRFXMdtEd29as0ocaFXLw" name="isRestrict" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7bRFXsdtEd29as0ocaFXLw" name="bitLength" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7bRFYMdtEd29as0ocaFXLw" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7bRFYsdtEd29as0ocaFXLw" name="base_Feature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Feature"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_7bRFZMdtEd29as0ocaFXLw" name="StorageClass">
+ <eAnnotations xmi:id="_7bRFZcdtEd29as0ocaFXLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_7bRFZsdtEd29as0ocaFXLw" name="auto"/>
+ <eLiterals xmi:id="_7bRFZ8dtEd29as0ocaFXLw" name="register" value="1"/>
+ <eLiterals xmi:id="_7bRFaMdtEd29as0ocaFXLw" name="extern" value="2"/>
+ <eLiterals xmi:id="_7bRFacdtEd29as0ocaFXLw" name="static" value="3"/>
+ <eLiterals xmi:id="_7bRFasdtEd29as0ocaFXLw" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_7bRFa8dtEd29as0ocaFXLw" name="AccessKind">
+ <eAnnotations xmi:id="_7bRFbMdtEd29as0ocaFXLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8b3rUBYHEdylxOSGZvSthg"/>
+ <eLiterals xmi:id="_7bRFbcdtEd29as0ocaFXLw" name="read"/>
+ <eLiterals xmi:id="_7bRFbsdtEd29as0ocaFXLw" name="write" value="1"/>
+ <eLiterals xmi:id="_7bRFb8dtEd29as0ocaFXLw" name="readWrite" value="2"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7bRFcMdtEd29as0ocaFXLw" name="NoGenCode">
+ <eAnnotations xmi:id="_7bRFccdtEd29as0ocaFXLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_CyQIURiqEdyL78Gqc5OeNA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7bRFcsdtEd29as0ocaFXLw" name="base_Element" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Element"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7bRFdMdtEd29as0ocaFXLw" name="C_NamedElement">
+ <eAnnotations xmi:id="_7bRFdcdtEd29as0ocaFXLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_93GTkBjCEdyfI_WOjDrRyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7bRFdsdtEd29as0ocaFXLw" name="CName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7bRFeMdtEd29as0ocaFXLw" name="isVisibilityPrefix" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7bRFesdtEd29as0ocaFXLw" name="isQualifiedNameUsed" ordered="false" unique="false" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7bRFfMdtEd29as0ocaFXLw" name="base_NamedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7bRFfsdtEd29as0ocaFXLw" name="Importer">
+ <eAnnotations xmi:id="_7bRFf8dtEd29as0ocaFXLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Zd610BmYEdyYiu3uPO8AqQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7bRFgMdtEd29as0ocaFXLw" name="importFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7bRFgsdtEd29as0ocaFXLw" name="base_Namespace" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Namespace"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_lg3qgcdtEd29as0ocaFXLw" name="CGenerator" nsURI="http://PapyrusC/schemas/CGenerator/_lg3qgMdtEd29as0ocaFXLw/31" nsPrefix="CGenerator">
+ <eAnnotations xmi:id="_lhA0csdtEd29as0ocaFXLw" source="PapyrusVersion">
+ <details xmi:id="_lhA0c8dtEd29as0ocaFXLw" key="Version" value="1.0.0"/>
+ <details xmi:id="_lhA0dMdtEd29as0ocaFXLw" key="Comment" value=""/>
+ <details xmi:id="_lhA0dcdtEd29as0ocaFXLw" key="Copyright" value=""/>
+ <details xmi:id="_lhA0dsdtEd29as0ocaFXLw" key="Date" value="2008-12-11"/>
+ <details xmi:id="_lhA0d8dtEd29as0ocaFXLw" key="Author" value="Yann Tanguy (CEA LIST)"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_lg3qgsdtEd29as0ocaFXLw" name="C_Type">
+ <eAnnotations xmi:id="_lg3qg8dtEd29as0ocaFXLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_P2CwoBU6EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lg3qhMdtEd29as0ocaFXLw" name="extern" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lg3qhsdtEd29as0ocaFXLw" name="isDynamicInstanciation" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lg3qiMdtEd29as0ocaFXLw" name="isFunctionGeneratedToSepcificFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lg3qisdtEd29as0ocaFXLw" name="isAttributeNameUsed" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_lg3qjMdtEd29as0ocaFXLw" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_lg3qjsdtEd29as0ocaFXLw" name="C_Feature">
+ <eAnnotations xmi:id="_lg3qj8dtEd29as0ocaFXLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eAnnotations xmi:id="_lg3qkMdtEd29as0ocaFXLw" source="duplicates">
+ <contents xmi:type="ecore:EReference" xmi:id="_lg3qkcdtEd29as0ocaFXLw" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_lg3qksdtEd29as0ocaFXLw" source="redefines" references="_lg3qnMdtEd29as0ocaFXLw"/>
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lg3qlMdtEd29as0ocaFXLw" name="storageClass" ordered="false" unique="false" eType="_lg3qqMdtEd29as0ocaFXLw"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lg3qlsdtEd29as0ocaFXLw" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lg3qmMdtEd29as0ocaFXLw" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lg3qmsdtEd29as0ocaFXLw" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_lg3qnMdtEd29as0ocaFXLw" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lg3qnsdtEd29as0ocaFXLw" name="isAccessorsGenerated" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lg3qoMdtEd29as0ocaFXLw" name="acess" ordered="false" unique="false" lowerBound="1" eType="_lg3qr8dtEd29as0ocaFXLw"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lg3qosdtEd29as0ocaFXLw" name="isRestrict" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lg3qpMdtEd29as0ocaFXLw" name="bitLength" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_lg3qpsdtEd29as0ocaFXLw" name="base_Feature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Feature"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_lg3qqMdtEd29as0ocaFXLw" name="StorageClass">
+ <eAnnotations xmi:id="_lg3qqcdtEd29as0ocaFXLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_lg3qqsdtEd29as0ocaFXLw" name="auto"/>
+ <eLiterals xmi:id="_lg3qq8dtEd29as0ocaFXLw" name="register" value="1"/>
+ <eLiterals xmi:id="_lg3qrMdtEd29as0ocaFXLw" name="extern" value="2"/>
+ <eLiterals xmi:id="_lg3qrcdtEd29as0ocaFXLw" name="static" value="3"/>
+ <eLiterals xmi:id="_lg3qrsdtEd29as0ocaFXLw" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_lg3qr8dtEd29as0ocaFXLw" name="AccessKind">
+ <eAnnotations xmi:id="_lg3qsMdtEd29as0ocaFXLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8b3rUBYHEdylxOSGZvSthg"/>
+ <eLiterals xmi:id="_lg3qscdtEd29as0ocaFXLw" name="read"/>
+ <eLiterals xmi:id="_lg3qssdtEd29as0ocaFXLw" name="write" value="1"/>
+ <eLiterals xmi:id="_lg3qs8dtEd29as0ocaFXLw" name="readWrite" value="2"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_lg3qtMdtEd29as0ocaFXLw" name="NoGenCode">
+ <eAnnotations xmi:id="_lg3qtcdtEd29as0ocaFXLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_CyQIURiqEdyL78Gqc5OeNA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_lg3qtsdtEd29as0ocaFXLw" name="base_Element" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Element"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_lg3quMdtEd29as0ocaFXLw" name="C_NamedElement">
+ <eAnnotations xmi:id="_lg3qucdtEd29as0ocaFXLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_93GTkBjCEdyfI_WOjDrRyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lg3qusdtEd29as0ocaFXLw" name="CName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lg3qvMdtEd29as0ocaFXLw" name="isVisibilityPrefix" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lg3qvsdtEd29as0ocaFXLw" name="isQualifiedNameUsed" ordered="false" unique="false" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_lg3qwMdtEd29as0ocaFXLw" name="base_NamedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_lg3qwsdtEd29as0ocaFXLw" name="Importer">
+ <eAnnotations xmi:id="_lg3qw8dtEd29as0ocaFXLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Zd610BmYEdyYiu3uPO8AqQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lg3qxMdtEd29as0ocaFXLw" name="importFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_lg3qxsdtEd29as0ocaFXLw" name="base_Namespace" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Namespace"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="__1yskEP-EdyN-oOhaWIQYg" name="CGenerator" nsURI="http://PapyrusC/schemas/CGenerator/__1yFgEP-EdyN-oOhaWIQYg/30" nsPrefix="CGenerator">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="__1yskUP-EdyN-oOhaWIQYg" name="C_Type">
+ <eAnnotations xmi:id="__1yskkP-EdyN-oOhaWIQYg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_P2CwoBU6EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="__1ysk0P-EdyN-oOhaWIQYg" name="extern" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="__1yslUP-EdyN-oOhaWIQYg" name="isDynamicInstanciation" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="__1ysl0P-EdyN-oOhaWIQYg" name="isFunctionGeneratedToSepcificFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="__1ysmUP-EdyN-oOhaWIQYg" name="isAttributeNameUsed" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="__1ysm0P-EdyN-oOhaWIQYg" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="__1ysnUP-EdyN-oOhaWIQYg" name="C_Feature">
+ <eAnnotations xmi:id="__1ysnkP-EdyN-oOhaWIQYg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eAnnotations xmi:id="__1ysn0P-EdyN-oOhaWIQYg" source="duplicates">
+ <contents xmi:type="ecore:EReference" xmi:id="__1ysoEP-EdyN-oOhaWIQYg" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="__1ysoUP-EdyN-oOhaWIQYg" source="redefines" references="__1zTpUP-EdyN-oOhaWIQYg"/>
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="__1yso0P-EdyN-oOhaWIQYg" name="storageClass" ordered="false" unique="false" eType="__1zTsUP-EdyN-oOhaWIQYg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="__1yspUP-EdyN-oOhaWIQYg" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="__1zToUP-EdyN-oOhaWIQYg" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="__1zTo0P-EdyN-oOhaWIQYg" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="__1zTpUP-EdyN-oOhaWIQYg" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="__1zTp0P-EdyN-oOhaWIQYg" name="isAccessorsGenerated" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="__1zTqUP-EdyN-oOhaWIQYg" name="acess" ordered="false" unique="false" lowerBound="1" eType="__1zTuEP-EdyN-oOhaWIQYg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="__1zTq0P-EdyN-oOhaWIQYg" name="isRestrict" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="__1zTrUP-EdyN-oOhaWIQYg" name="bitLength" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="__1zTr0P-EdyN-oOhaWIQYg" name="base_Feature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Feature"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="__1zTsUP-EdyN-oOhaWIQYg" name="StorageClass">
+ <eAnnotations xmi:id="__1zTskP-EdyN-oOhaWIQYg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="__1zTs0P-EdyN-oOhaWIQYg" name="auto"/>
+ <eLiterals xmi:id="__1zTtEP-EdyN-oOhaWIQYg" name="register" value="1"/>
+ <eLiterals xmi:id="__1zTtUP-EdyN-oOhaWIQYg" name="extern" value="2"/>
+ <eLiterals xmi:id="__1zTtkP-EdyN-oOhaWIQYg" name="static" value="3"/>
+ <eLiterals xmi:id="__1zTt0P-EdyN-oOhaWIQYg" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="__1zTuEP-EdyN-oOhaWIQYg" name="AccessKind">
+ <eAnnotations xmi:id="__1zTuUP-EdyN-oOhaWIQYg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8b3rUBYHEdylxOSGZvSthg"/>
+ <eLiterals xmi:id="__1zTukP-EdyN-oOhaWIQYg" name="read"/>
+ <eLiterals xmi:id="__1zTu0P-EdyN-oOhaWIQYg" name="write" value="1"/>
+ <eLiterals xmi:id="__1zTvEP-EdyN-oOhaWIQYg" name="readWrite" value="2"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="__1zTvUP-EdyN-oOhaWIQYg" name="NoGenCode">
+ <eAnnotations xmi:id="__1zTvkP-EdyN-oOhaWIQYg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_CyQIURiqEdyL78Gqc5OeNA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="__1zTv0P-EdyN-oOhaWIQYg" name="base_Element" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Element"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="__1zTwUP-EdyN-oOhaWIQYg" name="C_NamedElement">
+ <eAnnotations xmi:id="__1zTwkP-EdyN-oOhaWIQYg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_93GTkBjCEdyfI_WOjDrRyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="__1zTw0P-EdyN-oOhaWIQYg" name="CName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="__1zTxUP-EdyN-oOhaWIQYg" name="isVisibilityPrefix" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="__1zTx0P-EdyN-oOhaWIQYg" name="isQualifiedNameUsed" ordered="false" unique="false" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="__1zTyUP-EdyN-oOhaWIQYg" name="base_NamedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="__1zTy0P-EdyN-oOhaWIQYg" name="Importer">
+ <eAnnotations xmi:id="__1zTzEP-EdyN-oOhaWIQYg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Zd610BmYEdyYiu3uPO8AqQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="__1zTzUP-EdyN-oOhaWIQYg" name="importFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="__1zTz0P-EdyN-oOhaWIQYg" name="base_Namespace" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Namespace"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_xvdggEP9EdyXRJo_SB0POQ" name="CGenerator" nsURI="http://PapyrusC/schemas/CGenerator/_xvcSYEP9EdyXRJo_SB0POQ/29" nsPrefix="CGenerator">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_xvdggUP9EdyXRJo_SB0POQ" name="C_Type">
+ <eAnnotations xmi:id="_xvdggkP9EdyXRJo_SB0POQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_P2CwoBU6EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xvdgg0P9EdyXRJo_SB0POQ" name="extern" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xvdghUP9EdyXRJo_SB0POQ" name="isDynamicInstanciation" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xvdgh0P9EdyXRJo_SB0POQ" name="isFunctionGeneratedToSepcificFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xvdgiUP9EdyXRJo_SB0POQ" name="isAttributeNameUsed" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_xvdgi0P9EdyXRJo_SB0POQ" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_xvdgjUP9EdyXRJo_SB0POQ" name="C_Feature">
+ <eAnnotations xmi:id="_xvdgjkP9EdyXRJo_SB0POQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eAnnotations xmi:id="_xvdgj0P9EdyXRJo_SB0POQ" source="duplicates">
+ <contents xmi:type="ecore:EReference" xmi:id="_xvdgkEP9EdyXRJo_SB0POQ" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_xvdgkUP9EdyXRJo_SB0POQ" source="redefines" references="_xvdgm0P9EdyXRJo_SB0POQ"/>
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xvdgk0P9EdyXRJo_SB0POQ" name="storageClass" ordered="false" unique="false" eType="_xvdgp0P9EdyXRJo_SB0POQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xvdglUP9EdyXRJo_SB0POQ" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xvdgl0P9EdyXRJo_SB0POQ" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xvdgmUP9EdyXRJo_SB0POQ" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_xvdgm0P9EdyXRJo_SB0POQ" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xvdgnUP9EdyXRJo_SB0POQ" name="isAccessorsGenerated" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xvdgn0P9EdyXRJo_SB0POQ" name="acess" ordered="false" unique="false" lowerBound="1" eType="_xvdgrkP9EdyXRJo_SB0POQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xvdgoUP9EdyXRJo_SB0POQ" name="isRestrict" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xvdgo0P9EdyXRJo_SB0POQ" name="bitLength" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_xvdgpUP9EdyXRJo_SB0POQ" name="base_Feature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Feature"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_xvdgp0P9EdyXRJo_SB0POQ" name="StorageClass">
+ <eAnnotations xmi:id="_xvdgqEP9EdyXRJo_SB0POQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_xvdgqUP9EdyXRJo_SB0POQ" name="auto"/>
+ <eLiterals xmi:id="_xvdgqkP9EdyXRJo_SB0POQ" name="register" value="1"/>
+ <eLiterals xmi:id="_xvdgq0P9EdyXRJo_SB0POQ" name="extern" value="2"/>
+ <eLiterals xmi:id="_xvdgrEP9EdyXRJo_SB0POQ" name="static" value="3"/>
+ <eLiterals xmi:id="_xvdgrUP9EdyXRJo_SB0POQ" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_xvdgrkP9EdyXRJo_SB0POQ" name="AccessKind">
+ <eAnnotations xmi:id="_xvdgr0P9EdyXRJo_SB0POQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8b3rUBYHEdylxOSGZvSthg"/>
+ <eLiterals xmi:id="_xvdgsEP9EdyXRJo_SB0POQ" name="read"/>
+ <eLiterals xmi:id="_xvdgsUP9EdyXRJo_SB0POQ" name="write" value="1"/>
+ <eLiterals xmi:id="_xvdgskP9EdyXRJo_SB0POQ" name="readWrite" value="2"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_xvdgs0P9EdyXRJo_SB0POQ" name="NoGenCode">
+ <eAnnotations xmi:id="_xvdgtEP9EdyXRJo_SB0POQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_CyQIURiqEdyL78Gqc5OeNA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_xvdgtUP9EdyXRJo_SB0POQ" name="base_Element" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Element"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_xvdgt0P9EdyXRJo_SB0POQ" name="C_NamedElement">
+ <eAnnotations xmi:id="_xvdguEP9EdyXRJo_SB0POQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_93GTkBjCEdyfI_WOjDrRyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xvdguUP9EdyXRJo_SB0POQ" name="CName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xvdgu0P9EdyXRJo_SB0POQ" name="isVisibilityPrefix" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xvdgvUP9EdyXRJo_SB0POQ" name="isQualifiedNameUsed" ordered="false" unique="false" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_xvdgv0P9EdyXRJo_SB0POQ" name="base_NamedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_xvdgwUP9EdyXRJo_SB0POQ" name="Importer">
+ <eAnnotations xmi:id="_xvdgwkP9EdyXRJo_SB0POQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Zd610BmYEdyYiu3uPO8AqQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xvdgw0P9EdyXRJo_SB0POQ" name="importFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_xvdgxUP9EdyXRJo_SB0POQ" name="base_Namespace" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Namespace"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_1gpJkEPxEdybAJ4m8R8XFA" name="CGenerator" nsURI="http://PapyrusC/schemas/CGenerator/_1goigEPxEdybAJ4m8R8XFA/28" nsPrefix="CGenerator">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_1gpJkUPxEdybAJ4m8R8XFA" name="C_Type">
+ <eAnnotations xmi:id="_1gpJkkPxEdybAJ4m8R8XFA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_P2CwoBU6EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_1gpJk0PxEdybAJ4m8R8XFA" name="extern" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_1gpJlUPxEdybAJ4m8R8XFA" name="isDynamicInstanciation" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_1gpJl0PxEdybAJ4m8R8XFA" name="isFunctionGeneratedToSepcificFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_1gpJmUPxEdybAJ4m8R8XFA" name="isAttributeNameUsed" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_1gpwoUPxEdybAJ4m8R8XFA" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_1gpwo0PxEdybAJ4m8R8XFA" name="C_Feature">
+ <eAnnotations xmi:id="_1gpwpEPxEdybAJ4m8R8XFA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eAnnotations xmi:id="_1gpwpUPxEdybAJ4m8R8XFA" source="duplicates">
+ <contents xmi:type="ecore:EReference" xmi:id="_1gpwpkPxEdybAJ4m8R8XFA" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_1gpwp0PxEdybAJ4m8R8XFA" source="redefines" references="_1gpwsUPxEdybAJ4m8R8XFA"/>
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_1gpwqUPxEdybAJ4m8R8XFA" name="storageClass" ordered="false" unique="false" eType="_1gpwvUPxEdybAJ4m8R8XFA"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_1gpwq0PxEdybAJ4m8R8XFA" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_1gpwrUPxEdybAJ4m8R8XFA" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_1gpwr0PxEdybAJ4m8R8XFA" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_1gpwsUPxEdybAJ4m8R8XFA" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_1gpws0PxEdybAJ4m8R8XFA" name="isAccessorsGenerated" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_1gpwtUPxEdybAJ4m8R8XFA" name="acess" ordered="false" unique="false" lowerBound="1" eType="_1gpwxEPxEdybAJ4m8R8XFA"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_1gpwt0PxEdybAJ4m8R8XFA" name="isRestrict" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_1gpwuUPxEdybAJ4m8R8XFA" name="bitLength" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_1gpwu0PxEdybAJ4m8R8XFA" name="base_Feature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Feature"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_1gpwvUPxEdybAJ4m8R8XFA" name="StorageClass">
+ <eAnnotations xmi:id="_1gpwvkPxEdybAJ4m8R8XFA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_1gpwv0PxEdybAJ4m8R8XFA" name="auto"/>
+ <eLiterals xmi:id="_1gpwwEPxEdybAJ4m8R8XFA" name="register" value="1"/>
+ <eLiterals xmi:id="_1gpwwUPxEdybAJ4m8R8XFA" name="extern" value="2"/>
+ <eLiterals xmi:id="_1gpwwkPxEdybAJ4m8R8XFA" name="static" value="3"/>
+ <eLiterals xmi:id="_1gpww0PxEdybAJ4m8R8XFA" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_1gpwxEPxEdybAJ4m8R8XFA" name="AccessKind">
+ <eAnnotations xmi:id="_1gpwxUPxEdybAJ4m8R8XFA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8b3rUBYHEdylxOSGZvSthg"/>
+ <eLiterals xmi:id="_1gpwxkPxEdybAJ4m8R8XFA" name="read"/>
+ <eLiterals xmi:id="_1gpwx0PxEdybAJ4m8R8XFA" name="write" value="1"/>
+ <eLiterals xmi:id="_1gpwyEPxEdybAJ4m8R8XFA" name="readWrite" value="2"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_1gpwyUPxEdybAJ4m8R8XFA" name="NoGenCode">
+ <eAnnotations xmi:id="_1gpwykPxEdybAJ4m8R8XFA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_CyQIURiqEdyL78Gqc5OeNA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_1gpwy0PxEdybAJ4m8R8XFA" name="base_Element" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Element"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_1gpwzUPxEdybAJ4m8R8XFA" name="C_NamedElement">
+ <eAnnotations xmi:id="_1gpwzkPxEdybAJ4m8R8XFA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_93GTkBjCEdyfI_WOjDrRyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_1gpwz0PxEdybAJ4m8R8XFA" name="CName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_1gpw0UPxEdybAJ4m8R8XFA" name="isVisibilityPrefix" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_1gpw00PxEdybAJ4m8R8XFA" name="isQualifiedNameUsed" ordered="false" unique="false" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_1gpw1UPxEdybAJ4m8R8XFA" name="base_NamedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_1gpw10PxEdybAJ4m8R8XFA" name="Importer">
+ <eAnnotations xmi:id="_1gpw2EPxEdybAJ4m8R8XFA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Zd610BmYEdyYiu3uPO8AqQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_1gpw2UPxEdybAJ4m8R8XFA" name="importFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_1gpw20PxEdybAJ4m8R8XFA" name="base_Namespace" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Namespace"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_n3EFIEHmEdyxlrpSW7ggPQ" name="CGenerator" nsURI="http://PapyrusC/schemas/CGenerator/_n3C3AEHmEdyxlrpSW7ggPQ/27" nsPrefix="CGenerator">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_n3EFIUHmEdyxlrpSW7ggPQ" name="C_Type">
+ <eAnnotations xmi:id="_n3EFIkHmEdyxlrpSW7ggPQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_P2CwoBU6EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_n3EFI0HmEdyxlrpSW7ggPQ" name="extern" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_n3EFJUHmEdyxlrpSW7ggPQ" name="isDynamicInstanciation" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_n3EFJ0HmEdyxlrpSW7ggPQ" name="isFunctionGeneratedToSepcificFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_n3EFKUHmEdyxlrpSW7ggPQ" name="isAttributeNameUsed" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_n3EFK0HmEdyxlrpSW7ggPQ" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_n3EFLUHmEdyxlrpSW7ggPQ" name="C_Feature">
+ <eAnnotations xmi:id="_n3EFLkHmEdyxlrpSW7ggPQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eAnnotations xmi:id="_n3EFL0HmEdyxlrpSW7ggPQ" source="duplicates">
+ <contents xmi:type="ecore:EReference" xmi:id="_n3EFMEHmEdyxlrpSW7ggPQ" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_n3EFMUHmEdyxlrpSW7ggPQ" source="redefines" references="_n3EFO0HmEdyxlrpSW7ggPQ"/>
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_n3EFM0HmEdyxlrpSW7ggPQ" name="storageClass" ordered="false" unique="false" eType="_n3EFR0HmEdyxlrpSW7ggPQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_n3EFNUHmEdyxlrpSW7ggPQ" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_n3EFN0HmEdyxlrpSW7ggPQ" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_n3EFOUHmEdyxlrpSW7ggPQ" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_n3EFO0HmEdyxlrpSW7ggPQ" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_n3EFPUHmEdyxlrpSW7ggPQ" name="isAccessorsGenerated" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_n3EFP0HmEdyxlrpSW7ggPQ" name="acess" ordered="false" unique="false" lowerBound="1" eType="_n3EFTkHmEdyxlrpSW7ggPQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_n3EFQUHmEdyxlrpSW7ggPQ" name="isRestrict" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_n3EFQ0HmEdyxlrpSW7ggPQ" name="bitLength" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_n3EFRUHmEdyxlrpSW7ggPQ" name="base_Feature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Feature"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_n3EFR0HmEdyxlrpSW7ggPQ" name="StorageClass">
+ <eAnnotations xmi:id="_n3EFSEHmEdyxlrpSW7ggPQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_n3EFSUHmEdyxlrpSW7ggPQ" name="auto"/>
+ <eLiterals xmi:id="_n3EFSkHmEdyxlrpSW7ggPQ" name="register" value="1"/>
+ <eLiterals xmi:id="_n3EFS0HmEdyxlrpSW7ggPQ" name="extern" value="2"/>
+ <eLiterals xmi:id="_n3EFTEHmEdyxlrpSW7ggPQ" name="static" value="3"/>
+ <eLiterals xmi:id="_n3EFTUHmEdyxlrpSW7ggPQ" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_n3EFTkHmEdyxlrpSW7ggPQ" name="AccessKind">
+ <eAnnotations xmi:id="_n3EFT0HmEdyxlrpSW7ggPQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8b3rUBYHEdylxOSGZvSthg"/>
+ <eLiterals xmi:id="_n3EFUEHmEdyxlrpSW7ggPQ" name="read"/>
+ <eLiterals xmi:id="_n3EFUUHmEdyxlrpSW7ggPQ" name="write" value="1"/>
+ <eLiterals xmi:id="_n3EFUkHmEdyxlrpSW7ggPQ" name="readWrite" value="2"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_n3EFU0HmEdyxlrpSW7ggPQ" name="NoGenCode">
+ <eAnnotations xmi:id="_n3EFVEHmEdyxlrpSW7ggPQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_CyQIURiqEdyL78Gqc5OeNA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_n3EFVUHmEdyxlrpSW7ggPQ" name="base_Element" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Element"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_n3EFV0HmEdyxlrpSW7ggPQ" name="C_NamedElement">
+ <eAnnotations xmi:id="_n3EFWEHmEdyxlrpSW7ggPQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_93GTkBjCEdyfI_WOjDrRyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_n3EFWUHmEdyxlrpSW7ggPQ" name="CName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_n3EFW0HmEdyxlrpSW7ggPQ" name="isVisibilityPrefix" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_n3EFXUHmEdyxlrpSW7ggPQ" name="isQualifiedNameUsed" ordered="false" unique="false" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_n3EFX0HmEdyxlrpSW7ggPQ" name="base_NamedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_n3EFYUHmEdyxlrpSW7ggPQ" name="Importer">
+ <eAnnotations xmi:id="_n3EFYkHmEdyxlrpSW7ggPQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Zd610BmYEdyYiu3uPO8AqQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_n3EFY0HmEdyxlrpSW7ggPQ" name="importFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_n3EFZUHmEdyxlrpSW7ggPQ" name="base_Namespace" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Namespace"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_FgHqIEHmEdyxlrpSW7ggPQ" name="CGenerator" nsURI="http://PapyrusC/schemas/CGenerator/_FgHDEEHmEdyxlrpSW7ggPQ/26" nsPrefix="CGenerator">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_FgHqIUHmEdyxlrpSW7ggPQ" name="C_Type">
+ <eAnnotations xmi:id="_FgHqIkHmEdyxlrpSW7ggPQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_P2CwoBU6EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_FgHqI0HmEdyxlrpSW7ggPQ" name="extern" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_FgHqJUHmEdyxlrpSW7ggPQ" name="isDynamicInstanciation" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_FgHqJ0HmEdyxlrpSW7ggPQ" name="isFunctionGeneratedToSepcificFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_FgHqKUHmEdyxlrpSW7ggPQ" name="isAttributeNameUsed" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_FgHqK0HmEdyxlrpSW7ggPQ" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_FgHqLUHmEdyxlrpSW7ggPQ" name="C_Feature">
+ <eAnnotations xmi:id="_FgHqLkHmEdyxlrpSW7ggPQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eAnnotations xmi:id="_FgHqL0HmEdyxlrpSW7ggPQ" source="duplicates">
+ <contents xmi:type="ecore:EReference" xmi:id="_FgHqMEHmEdyxlrpSW7ggPQ" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_FgHqMUHmEdyxlrpSW7ggPQ" source="redefines" references="_FgHqO0HmEdyxlrpSW7ggPQ"/>
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_FgHqM0HmEdyxlrpSW7ggPQ" name="storageClass" ordered="false" unique="false" eType="_FgIRN0HmEdyxlrpSW7ggPQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_FgHqNUHmEdyxlrpSW7ggPQ" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_FgHqN0HmEdyxlrpSW7ggPQ" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_FgHqOUHmEdyxlrpSW7ggPQ" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_FgHqO0HmEdyxlrpSW7ggPQ" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_FgHqPUHmEdyxlrpSW7ggPQ" name="isAccessorsGenerated" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_FgHqP0HmEdyxlrpSW7ggPQ" name="acess" ordered="false" unique="false" lowerBound="1" eType="_FgIRPkHmEdyxlrpSW7ggPQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_FgIRMUHmEdyxlrpSW7ggPQ" name="isRestrict" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_FgIRM0HmEdyxlrpSW7ggPQ" name="bitLength" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_FgIRNUHmEdyxlrpSW7ggPQ" name="base_Feature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Feature"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_FgIRN0HmEdyxlrpSW7ggPQ" name="StorageClass">
+ <eAnnotations xmi:id="_FgIROEHmEdyxlrpSW7ggPQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_FgIROUHmEdyxlrpSW7ggPQ" name="auto"/>
+ <eLiterals xmi:id="_FgIROkHmEdyxlrpSW7ggPQ" name="register" value="1"/>
+ <eLiterals xmi:id="_FgIRO0HmEdyxlrpSW7ggPQ" name="extern" value="2"/>
+ <eLiterals xmi:id="_FgIRPEHmEdyxlrpSW7ggPQ" name="static" value="3"/>
+ <eLiterals xmi:id="_FgIRPUHmEdyxlrpSW7ggPQ" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_FgIRPkHmEdyxlrpSW7ggPQ" name="AccessKind">
+ <eAnnotations xmi:id="_FgIRP0HmEdyxlrpSW7ggPQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8b3rUBYHEdylxOSGZvSthg"/>
+ <eLiterals xmi:id="_FgIRQEHmEdyxlrpSW7ggPQ" name="read"/>
+ <eLiterals xmi:id="_FgIRQUHmEdyxlrpSW7ggPQ" name="write" value="1"/>
+ <eLiterals xmi:id="_FgIRQkHmEdyxlrpSW7ggPQ" name="readWrite" value="2"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_FgIRQ0HmEdyxlrpSW7ggPQ" name="NoGenCode">
+ <eAnnotations xmi:id="_FgIRREHmEdyxlrpSW7ggPQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_CyQIURiqEdyL78Gqc5OeNA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_FgIRRUHmEdyxlrpSW7ggPQ" name="base_Element" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Element"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_FgIRR0HmEdyxlrpSW7ggPQ" name="C_NamedElement">
+ <eAnnotations xmi:id="_FgIRSEHmEdyxlrpSW7ggPQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_93GTkBjCEdyfI_WOjDrRyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_FgIRSUHmEdyxlrpSW7ggPQ" name="CName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_FgIRS0HmEdyxlrpSW7ggPQ" name="isVisibilityPrefix" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_FgIRTUHmEdyxlrpSW7ggPQ" name="isQualifiedNameUsed" ordered="false" unique="false" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_FgIRT0HmEdyxlrpSW7ggPQ" name="base_NamedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_FgIRUUHmEdyxlrpSW7ggPQ" name="Importer">
+ <eAnnotations xmi:id="_FgIRUkHmEdyxlrpSW7ggPQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Zd610BmYEdyYiu3uPO8AqQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_FgIRU0HmEdyxlrpSW7ggPQ" name="importFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_FgIRVUHmEdyxlrpSW7ggPQ" name="base_Namespace" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Namespace"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_ZdlGsEDsEdyjuIyCaGFHvQ" name="CGenerator" nsURI="http://PapyrusC/schemas/CGenerator/_ZdkfoEDsEdyjuIyCaGFHvQ/25" nsPrefix="CGenerator">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ZdlGsUDsEdyjuIyCaGFHvQ" name="C_Type">
+ <eAnnotations xmi:id="_ZdlGskDsEdyjuIyCaGFHvQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_P2CwoBU6EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ZdlGs0DsEdyjuIyCaGFHvQ" name="extern" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ZdlGtUDsEdyjuIyCaGFHvQ" name="isDynamicInstanciation" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ZdlGt0DsEdyjuIyCaGFHvQ" name="isFunctionGeneratedToSepcificFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ZdlGuUDsEdyjuIyCaGFHvQ" name="isAttributeNameUsed" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ZdlGu0DsEdyjuIyCaGFHvQ" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ZdlGvUDsEdyjuIyCaGFHvQ" name="C_Feature">
+ <eAnnotations xmi:id="_ZdlGvkDsEdyjuIyCaGFHvQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eAnnotations xmi:id="_ZdlGv0DsEdyjuIyCaGFHvQ" source="duplicates">
+ <contents xmi:type="ecore:EReference" xmi:id="_ZdlGwEDsEdyjuIyCaGFHvQ" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_ZdlGwUDsEdyjuIyCaGFHvQ" source="redefines" references="_ZdlGy0DsEdyjuIyCaGFHvQ"/>
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ZdlGw0DsEdyjuIyCaGFHvQ" name="storageClass" ordered="false" unique="false" eType="_ZdlG10DsEdyjuIyCaGFHvQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ZdlGxUDsEdyjuIyCaGFHvQ" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ZdlGx0DsEdyjuIyCaGFHvQ" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ZdlGyUDsEdyjuIyCaGFHvQ" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ZdlGy0DsEdyjuIyCaGFHvQ" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ZdlGzUDsEdyjuIyCaGFHvQ" name="isAccessorsGenerated" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ZdlGz0DsEdyjuIyCaGFHvQ" name="acess" ordered="false" unique="false" lowerBound="1" eType="_ZdlG3kDsEdyjuIyCaGFHvQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ZdlG0UDsEdyjuIyCaGFHvQ" name="isRestrict" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ZdlG00DsEdyjuIyCaGFHvQ" name="bitLength" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ZdlG1UDsEdyjuIyCaGFHvQ" name="base_Feature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Feature"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_ZdlG10DsEdyjuIyCaGFHvQ" name="StorageClass">
+ <eAnnotations xmi:id="_ZdlG2EDsEdyjuIyCaGFHvQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_ZdlG2UDsEdyjuIyCaGFHvQ" name="auto"/>
+ <eLiterals xmi:id="_ZdlG2kDsEdyjuIyCaGFHvQ" name="register" value="1"/>
+ <eLiterals xmi:id="_ZdlG20DsEdyjuIyCaGFHvQ" name="extern" value="2"/>
+ <eLiterals xmi:id="_ZdlG3EDsEdyjuIyCaGFHvQ" name="static" value="3"/>
+ <eLiterals xmi:id="_ZdlG3UDsEdyjuIyCaGFHvQ" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_ZdlG3kDsEdyjuIyCaGFHvQ" name="AccessKind">
+ <eAnnotations xmi:id="_ZdlG30DsEdyjuIyCaGFHvQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8b3rUBYHEdylxOSGZvSthg"/>
+ <eLiterals xmi:id="_ZdlG4EDsEdyjuIyCaGFHvQ" name="read"/>
+ <eLiterals xmi:id="_ZdlG4UDsEdyjuIyCaGFHvQ" name="write" value="1"/>
+ <eLiterals xmi:id="_ZdlG4kDsEdyjuIyCaGFHvQ" name="readWrite" value="2"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ZdlG40DsEdyjuIyCaGFHvQ" name="NoGenCode">
+ <eAnnotations xmi:id="_ZdlG5EDsEdyjuIyCaGFHvQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_CyQIURiqEdyL78Gqc5OeNA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ZdltwEDsEdyjuIyCaGFHvQ" name="base_Element" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Element"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ZdltwkDsEdyjuIyCaGFHvQ" name="C_NamedElement">
+ <eAnnotations xmi:id="_Zdltw0DsEdyjuIyCaGFHvQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_93GTkBjCEdyfI_WOjDrRyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ZdltxEDsEdyjuIyCaGFHvQ" name="CName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ZdltxkDsEdyjuIyCaGFHvQ" name="isVisibilityPrefix" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ZdltyEDsEdyjuIyCaGFHvQ" name="isQualifiedNameUsed" ordered="false" unique="false" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ZdltykDsEdyjuIyCaGFHvQ" name="base_NamedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ZdltzEDsEdyjuIyCaGFHvQ" name="Importer">
+ <eAnnotations xmi:id="_ZdltzUDsEdyjuIyCaGFHvQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Zd610BmYEdyYiu3uPO8AqQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ZdltzkDsEdyjuIyCaGFHvQ" name="importFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Zdlt0EDsEdyjuIyCaGFHvQ" name="base_Namespace" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Namespace"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Zdlt0kDsEdyjuIyCaGFHvQ" name="C_Typedef">
+ <eAnnotations xmi:id="_Zdlt00DsEdyjuIyCaGFHvQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Zdlt1EDsEdyjuIyCaGFHvQ" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Zdlt1kDsEdyjuIyCaGFHvQ" name="type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Zdlt2EDsEdyjuIyCaGFHvQ" name="isUnsigned" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_1fMqkD98EdyWndo1HgT9Ig" name="CGenerator" nsURI="http://PapyrusC/schemas/CGenerator/_1fK1YD98EdyWndo1HgT9Ig/24" nsPrefix="CGenerator">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_1fMqkT98EdyWndo1HgT9Ig" name="C_Type">
+ <eAnnotations xmi:id="_1fMqkj98EdyWndo1HgT9Ig" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_P2CwoBU6EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_1fMqkz98EdyWndo1HgT9Ig" name="extern" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_1fMqlT98EdyWndo1HgT9Ig" name="isDynamicInstanciation" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_1fMqlz98EdyWndo1HgT9Ig" name="isFunctionGeneratedToSepcificFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_1fMqmT98EdyWndo1HgT9Ig" name="isAttributeNameUsed" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_1fMqmz98EdyWndo1HgT9Ig" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_1fMqnT98EdyWndo1HgT9Ig" name="C_Feature">
+ <eAnnotations xmi:id="_1fMqnj98EdyWndo1HgT9Ig" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eAnnotations xmi:id="_1fMqnz98EdyWndo1HgT9Ig" source="duplicates">
+ <contents xmi:type="ecore:EReference" xmi:id="_1fMqoD98EdyWndo1HgT9Ig" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_1fMqoT98EdyWndo1HgT9Ig" source="redefines" references="_1fMqqz98EdyWndo1HgT9Ig"/>
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_1fMqoz98EdyWndo1HgT9Ig" name="storageClass" ordered="false" unique="false" eType="_1fMqtz98EdyWndo1HgT9Ig"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_1fMqpT98EdyWndo1HgT9Ig" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_1fMqpz98EdyWndo1HgT9Ig" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_1fMqqT98EdyWndo1HgT9Ig" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_1fMqqz98EdyWndo1HgT9Ig" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_1fMqrT98EdyWndo1HgT9Ig" name="isAccessorsGenerated" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_1fMqrz98EdyWndo1HgT9Ig" name="acess" ordered="false" unique="false" lowerBound="1" eType="_1fMqvj98EdyWndo1HgT9Ig"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_1fMqsT98EdyWndo1HgT9Ig" name="isRestrict" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_1fMqsz98EdyWndo1HgT9Ig" name="bitLength" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_1fMqtT98EdyWndo1HgT9Ig" name="base_Feature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Feature"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_1fMqtz98EdyWndo1HgT9Ig" name="StorageClass">
+ <eAnnotations xmi:id="_1fMquD98EdyWndo1HgT9Ig" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_1fMquT98EdyWndo1HgT9Ig" name="auto"/>
+ <eLiterals xmi:id="_1fMquj98EdyWndo1HgT9Ig" name="register" value="1"/>
+ <eLiterals xmi:id="_1fMquz98EdyWndo1HgT9Ig" name="extern" value="2"/>
+ <eLiterals xmi:id="_1fMqvD98EdyWndo1HgT9Ig" name="static" value="3"/>
+ <eLiterals xmi:id="_1fMqvT98EdyWndo1HgT9Ig" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_1fMqvj98EdyWndo1HgT9Ig" name="AccessKind">
+ <eAnnotations xmi:id="_1fMqvz98EdyWndo1HgT9Ig" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8b3rUBYHEdylxOSGZvSthg"/>
+ <eLiterals xmi:id="_1fMqwD98EdyWndo1HgT9Ig" name="read"/>
+ <eLiterals xmi:id="_1fMqwT98EdyWndo1HgT9Ig" name="write" value="1"/>
+ <eLiterals xmi:id="_1fMqwj98EdyWndo1HgT9Ig" name="readWrite" value="2"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_1fMqwz98EdyWndo1HgT9Ig" name="NoGenCode">
+ <eAnnotations xmi:id="_1fMqxD98EdyWndo1HgT9Ig" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_CyQIURiqEdyL78Gqc5OeNA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_1fMqxT98EdyWndo1HgT9Ig" name="base_Element" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Element"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_1fMqxz98EdyWndo1HgT9Ig" name="C_NamedElement">
+ <eAnnotations xmi:id="_1fMqyD98EdyWndo1HgT9Ig" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_93GTkBjCEdyfI_WOjDrRyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_1fMqyT98EdyWndo1HgT9Ig" name="CName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_1fMqyz98EdyWndo1HgT9Ig" name="isVisibilityPrefix" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_1fMqzT98EdyWndo1HgT9Ig" name="isQualifiedNameUsed" ordered="false" unique="false" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_1fMqzz98EdyWndo1HgT9Ig" name="base_NamedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_1fMq0T98EdyWndo1HgT9Ig" name="Importer">
+ <eAnnotations xmi:id="_1fMq0j98EdyWndo1HgT9Ig" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Zd610BmYEdyYiu3uPO8AqQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_1fMq0z98EdyWndo1HgT9Ig" name="importFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_1fMq1T98EdyWndo1HgT9Ig" name="base_Namespace" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Namespace"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_SYifUD97EdydlOlmTTAQlA" name="CGenerator" nsURI="http://PapyrusC/schemas/CGenerator/_SYgqID97EdydlOlmTTAQlA/23" nsPrefix="CGenerator">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_SYifUT97EdydlOlmTTAQlA" name="C_Type">
+ <eAnnotations xmi:id="_SYifUj97EdydlOlmTTAQlA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_P2CwoBU6EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SYifUz97EdydlOlmTTAQlA" name="extern" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SYifVT97EdydlOlmTTAQlA" name="isDynamicInstanciation" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SYifVz97EdydlOlmTTAQlA" name="isFunctionGeneratedToSepcificFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SYifWT97EdydlOlmTTAQlA" name="isAttributeNameUsed" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_SYifWz97EdydlOlmTTAQlA" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_SYifXT97EdydlOlmTTAQlA" name="C_Feature">
+ <eAnnotations xmi:id="_SYifXj97EdydlOlmTTAQlA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eAnnotations xmi:id="_SYifXz97EdydlOlmTTAQlA" source="duplicates">
+ <contents xmi:type="ecore:EReference" xmi:id="_SYifYD97EdydlOlmTTAQlA" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_SYifYT97EdydlOlmTTAQlA" source="redefines" references="_SYifaz97EdydlOlmTTAQlA"/>
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SYifYz97EdydlOlmTTAQlA" name="storageClass" ordered="false" unique="false" lowerBound="1" eType="_SYifdz97EdydlOlmTTAQlA"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SYifZT97EdydlOlmTTAQlA" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SYifZz97EdydlOlmTTAQlA" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SYifaT97EdydlOlmTTAQlA" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_SYifaz97EdydlOlmTTAQlA" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SYifbT97EdydlOlmTTAQlA" name="isAccessorsGenerated" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SYifbz97EdydlOlmTTAQlA" name="acess" ordered="false" unique="false" lowerBound="1" eType="_SYiffj97EdydlOlmTTAQlA"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SYifcT97EdydlOlmTTAQlA" name="isRestrict" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SYifcz97EdydlOlmTTAQlA" name="bitLength" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_SYifdT97EdydlOlmTTAQlA" name="base_Feature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Feature"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_SYifdz97EdydlOlmTTAQlA" name="StorageClass">
+ <eAnnotations xmi:id="_SYifeD97EdydlOlmTTAQlA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_SYifeT97EdydlOlmTTAQlA" name="auto"/>
+ <eLiterals xmi:id="_SYifej97EdydlOlmTTAQlA" name="register" value="1"/>
+ <eLiterals xmi:id="_SYifez97EdydlOlmTTAQlA" name="extern" value="2"/>
+ <eLiterals xmi:id="_SYiffD97EdydlOlmTTAQlA" name="static" value="3"/>
+ <eLiterals xmi:id="_SYiffT97EdydlOlmTTAQlA" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_SYiffj97EdydlOlmTTAQlA" name="AccessKind">
+ <eAnnotations xmi:id="_SYiffz97EdydlOlmTTAQlA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8b3rUBYHEdylxOSGZvSthg"/>
+ <eLiterals xmi:id="_SYifgD97EdydlOlmTTAQlA" name="read"/>
+ <eLiterals xmi:id="_SYifgT97EdydlOlmTTAQlA" name="write" value="1"/>
+ <eLiterals xmi:id="_SYifgj97EdydlOlmTTAQlA" name="readWrite" value="2"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_SYifgz97EdydlOlmTTAQlA" name="NoGenCode">
+ <eAnnotations xmi:id="_SYifhD97EdydlOlmTTAQlA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_CyQIURiqEdyL78Gqc5OeNA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_SYifhT97EdydlOlmTTAQlA" name="base_Element" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Element"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_SYifhz97EdydlOlmTTAQlA" name="C_NamedElement">
+ <eAnnotations xmi:id="_SYifiD97EdydlOlmTTAQlA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_93GTkBjCEdyfI_WOjDrRyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SYifiT97EdydlOlmTTAQlA" name="CName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SYifiz97EdydlOlmTTAQlA" name="isVisibilityPrefix" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SYifjT97EdydlOlmTTAQlA" name="isQualifiedNameUsed" ordered="false" unique="false" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_SYifjz97EdydlOlmTTAQlA" name="base_NamedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_SYifkT97EdydlOlmTTAQlA" name="Importer">
+ <eAnnotations xmi:id="_SYifkj97EdydlOlmTTAQlA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Zd610BmYEdyYiu3uPO8AqQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SYifkz97EdydlOlmTTAQlA" name="importFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_SYiflT97EdydlOlmTTAQlA" name="base_Namespace" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Namespace"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_114o8DweEdyHm6HnfLC8wA" name="CGenerator" nsURI="http://PapyrusC/schemas/CGenerator/_112zwDweEdyHm6HnfLC8wA/22" nsPrefix="CGenerator">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_114o8TweEdyHm6HnfLC8wA" name="C_Type">
+ <eAnnotations xmi:id="_114o8jweEdyHm6HnfLC8wA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_P2CwoBU6EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_114o8zweEdyHm6HnfLC8wA" name="extern" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_114o9TweEdyHm6HnfLC8wA" name="isDynamicInstanciation" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_114o9zweEdyHm6HnfLC8wA" name="isFunctionGeneratedToSepcificFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_114o-TweEdyHm6HnfLC8wA" name="isAttributeNameUsed" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_114o-zweEdyHm6HnfLC8wA" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_114o_TweEdyHm6HnfLC8wA" name="C_Feature">
+ <eAnnotations xmi:id="_114o_jweEdyHm6HnfLC8wA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eAnnotations xmi:id="_114o_zweEdyHm6HnfLC8wA" source="duplicates">
+ <contents xmi:type="ecore:EReference" xmi:id="_114pADweEdyHm6HnfLC8wA" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_114pATweEdyHm6HnfLC8wA" source="redefines" references="_114pCzweEdyHm6HnfLC8wA"/>
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_114pAzweEdyHm6HnfLC8wA" name="storageClass" ordered="false" unique="false" lowerBound="1" eType="_114pGTweEdyHm6HnfLC8wA"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_114pBTweEdyHm6HnfLC8wA" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_114pBzweEdyHm6HnfLC8wA" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_114pCTweEdyHm6HnfLC8wA" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_114pCzweEdyHm6HnfLC8wA" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_114pDTweEdyHm6HnfLC8wA" name="isAccessorsGenerated" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_114pDzweEdyHm6HnfLC8wA" name="acess" ordered="false" unique="false" lowerBound="1" eType="_114pIDweEdyHm6HnfLC8wA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_114pETweEdyHm6HnfLC8wA" name="base_BehavioralFeature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//BehavioralFeature"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_114pEzweEdyHm6HnfLC8wA" name="base_Feature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Feature"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_114pFTweEdyHm6HnfLC8wA" name="isRestrict" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_114pFzweEdyHm6HnfLC8wA" name="bitLength" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_114pGTweEdyHm6HnfLC8wA" name="StorageClass">
+ <eAnnotations xmi:id="_114pGjweEdyHm6HnfLC8wA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_114pGzweEdyHm6HnfLC8wA" name="auto"/>
+ <eLiterals xmi:id="_114pHDweEdyHm6HnfLC8wA" name="register" value="1"/>
+ <eLiterals xmi:id="_114pHTweEdyHm6HnfLC8wA" name="extern" value="2"/>
+ <eLiterals xmi:id="_114pHjweEdyHm6HnfLC8wA" name="static" value="3"/>
+ <eLiterals xmi:id="_114pHzweEdyHm6HnfLC8wA" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_114pIDweEdyHm6HnfLC8wA" name="AccessKind">
+ <eAnnotations xmi:id="_114pITweEdyHm6HnfLC8wA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8b3rUBYHEdylxOSGZvSthg"/>
+ <eLiterals xmi:id="_114pIjweEdyHm6HnfLC8wA" name="read"/>
+ <eLiterals xmi:id="_114pIzweEdyHm6HnfLC8wA" name="write" value="1"/>
+ <eLiterals xmi:id="_114pJDweEdyHm6HnfLC8wA" name="readWrite" value="2"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_114pJTweEdyHm6HnfLC8wA" name="NoGenCode">
+ <eAnnotations xmi:id="_114pJjweEdyHm6HnfLC8wA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_CyQIURiqEdyL78Gqc5OeNA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_114pJzweEdyHm6HnfLC8wA" name="base_Element" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Element"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_114pKTweEdyHm6HnfLC8wA" name="C_NamedElement">
+ <eAnnotations xmi:id="_114pKjweEdyHm6HnfLC8wA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_93GTkBjCEdyfI_WOjDrRyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_114pKzweEdyHm6HnfLC8wA" name="CName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_114pLTweEdyHm6HnfLC8wA" name="isVisibilityPrefix" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_114pLzweEdyHm6HnfLC8wA" name="isQualifiedNameUsed" ordered="false" unique="false" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_114pMTweEdyHm6HnfLC8wA" name="base_NamedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_114pMzweEdyHm6HnfLC8wA" name="Importer">
+ <eAnnotations xmi:id="_114pNDweEdyHm6HnfLC8wA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Zd610BmYEdyYiu3uPO8AqQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_114pNTweEdyHm6HnfLC8wA" name="importFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_114pNzweEdyHm6HnfLC8wA" name="base_Namespace" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Namespace"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_mJtLUDwbEdy50P3mY4f53Q" name="CGenerator" nsURI="http://PapyrusC/schemas/CGenerator/_mJrWIDwbEdy50P3mY4f53Q/21" nsPrefix="CGenerator">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_mJtLUTwbEdy50P3mY4f53Q" name="C_Type">
+ <eAnnotations xmi:id="_mJtLUjwbEdy50P3mY4f53Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_P2CwoBU6EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_mJtLUzwbEdy50P3mY4f53Q" name="extern" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_mJtLVTwbEdy50P3mY4f53Q" name="isDynamicInstanciation" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_mJtLVzwbEdy50P3mY4f53Q" name="isFunctionGeneratedToSepcificFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_mJtLWTwbEdy50P3mY4f53Q" name="isAttributeNameUsed" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_mJtLWzwbEdy50P3mY4f53Q" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_mJtLXTwbEdy50P3mY4f53Q" name="C_Feature">
+ <eAnnotations xmi:id="_mJtLXjwbEdy50P3mY4f53Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eAnnotations xmi:id="_mJtLXzwbEdy50P3mY4f53Q" source="duplicates">
+ <contents xmi:type="ecore:EReference" xmi:id="_mJtLYDwbEdy50P3mY4f53Q" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_mJtLYTwbEdy50P3mY4f53Q" source="redefines" references="_mJtLazwbEdy50P3mY4f53Q"/>
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_mJtLYzwbEdy50P3mY4f53Q" name="storageClass" ordered="false" unique="false" lowerBound="1" eType="_mJtLezwbEdy50P3mY4f53Q"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_mJtLZTwbEdy50P3mY4f53Q" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_mJtLZzwbEdy50P3mY4f53Q" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_mJtLaTwbEdy50P3mY4f53Q" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_mJtLazwbEdy50P3mY4f53Q" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_mJtLbTwbEdy50P3mY4f53Q" name="isAccessorsGenerated" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_mJtLbzwbEdy50P3mY4f53Q" name="acess" ordered="false" unique="false" lowerBound="1" eType="_mJtLgjwbEdy50P3mY4f53Q"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_mJtLcTwbEdy50P3mY4f53Q" name="base_BehavioralFeature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//BehavioralFeature"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_mJtLczwbEdy50P3mY4f53Q" name="base_Feature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Feature"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_mJtLdTwbEdy50P3mY4f53Q" name="isRestrict" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_mJtLdzwbEdy50P3mY4f53Q" name="bitLength" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_mJtLeTwbEdy50P3mY4f53Q" name="Property_0" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_mJtLezwbEdy50P3mY4f53Q" name="StorageClass">
+ <eAnnotations xmi:id="_mJtLfDwbEdy50P3mY4f53Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_mJtLfTwbEdy50P3mY4f53Q" name="auto"/>
+ <eLiterals xmi:id="_mJtLfjwbEdy50P3mY4f53Q" name="register" value="1"/>
+ <eLiterals xmi:id="_mJtLfzwbEdy50P3mY4f53Q" name="extern" value="2"/>
+ <eLiterals xmi:id="_mJtLgDwbEdy50P3mY4f53Q" name="static" value="3"/>
+ <eLiterals xmi:id="_mJtLgTwbEdy50P3mY4f53Q" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_mJtLgjwbEdy50P3mY4f53Q" name="AccessKind">
+ <eAnnotations xmi:id="_mJtLgzwbEdy50P3mY4f53Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8b3rUBYHEdylxOSGZvSthg"/>
+ <eLiterals xmi:id="_mJtLhDwbEdy50P3mY4f53Q" name="read"/>
+ <eLiterals xmi:id="_mJtLhTwbEdy50P3mY4f53Q" name="write" value="1"/>
+ <eLiterals xmi:id="_mJtLhjwbEdy50P3mY4f53Q" name="readWrite" value="2"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_mJtLhzwbEdy50P3mY4f53Q" name="NoGenCode">
+ <eAnnotations xmi:id="_mJtLiDwbEdy50P3mY4f53Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_CyQIURiqEdyL78Gqc5OeNA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_mJtLiTwbEdy50P3mY4f53Q" name="base_Element" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Element"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_mJtLizwbEdy50P3mY4f53Q" name="C_NamedElement">
+ <eAnnotations xmi:id="_mJtLjDwbEdy50P3mY4f53Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_93GTkBjCEdyfI_WOjDrRyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_mJtLjTwbEdy50P3mY4f53Q" name="CName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_mJtLjzwbEdy50P3mY4f53Q" name="isVisibilityPrefix" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_mJtLkTwbEdy50P3mY4f53Q" name="isQualifiedNameUsed" ordered="false" unique="false" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_mJtLkzwbEdy50P3mY4f53Q" name="base_NamedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_mJtLlTwbEdy50P3mY4f53Q" name="Importer">
+ <eAnnotations xmi:id="_mJtLljwbEdy50P3mY4f53Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Zd610BmYEdyYiu3uPO8AqQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_mJtLlzwbEdy50P3mY4f53Q" name="importFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_mJtLmTwbEdy50P3mY4f53Q" name="base_Namespace" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Namespace"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_-Iab0DnZEdyK9KOUzoZMXQ" name="CGenerator" nsURI="http://PapyrusC/schemas/CGenerator/_-IYmoDnZEdyK9KOUzoZMXQ/20" nsPrefix="CGenerator">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_-Iab0TnZEdyK9KOUzoZMXQ" name="C_Type">
+ <eAnnotations xmi:id="_-Iab0jnZEdyK9KOUzoZMXQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_P2CwoBU6EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-Iab0znZEdyK9KOUzoZMXQ" name="extern" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-Iab1TnZEdyK9KOUzoZMXQ" name="isDynamicInstanciation" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-Iab1znZEdyK9KOUzoZMXQ" name="isFunctionGeneratedToSepcificFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-Iab2TnZEdyK9KOUzoZMXQ" name="isAttributeNameUsed" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-Iab2znZEdyK9KOUzoZMXQ" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_-Iab3TnZEdyK9KOUzoZMXQ" name="C_Feature">
+ <eAnnotations xmi:id="_-Iab3jnZEdyK9KOUzoZMXQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eAnnotations xmi:id="_-Iab3znZEdyK9KOUzoZMXQ" source="duplicates">
+ <contents xmi:type="ecore:EReference" xmi:id="_-Iab4DnZEdyK9KOUzoZMXQ" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_-Iab4TnZEdyK9KOUzoZMXQ" source="redefines" references="_-Iab6znZEdyK9KOUzoZMXQ"/>
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-Iab4znZEdyK9KOUzoZMXQ" name="storageClass" ordered="false" unique="false" lowerBound="1" eType="_-Iab-TnZEdyK9KOUzoZMXQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-Iab5TnZEdyK9KOUzoZMXQ" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-Iab5znZEdyK9KOUzoZMXQ" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-Iab6TnZEdyK9KOUzoZMXQ" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-Iab6znZEdyK9KOUzoZMXQ" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-Iab7TnZEdyK9KOUzoZMXQ" name="isAccessorsGenerated" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-Iab7znZEdyK9KOUzoZMXQ" name="acess" ordered="false" unique="false" lowerBound="1" eType="_-IacADnZEdyK9KOUzoZMXQ"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-Iab8TnZEdyK9KOUzoZMXQ" name="base_BehavioralFeature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//BehavioralFeature"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-Iab8znZEdyK9KOUzoZMXQ" name="base_Feature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Feature"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-Iab9TnZEdyK9KOUzoZMXQ" name="isRestrict" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-Iab9znZEdyK9KOUzoZMXQ" name="bitLength" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_-Iab-TnZEdyK9KOUzoZMXQ" name="StorageClass">
+ <eAnnotations xmi:id="_-Iab-jnZEdyK9KOUzoZMXQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_-Iab-znZEdyK9KOUzoZMXQ" name="auto"/>
+ <eLiterals xmi:id="_-Iab_DnZEdyK9KOUzoZMXQ" name="register" value="1"/>
+ <eLiterals xmi:id="_-Iab_TnZEdyK9KOUzoZMXQ" name="extern" value="2"/>
+ <eLiterals xmi:id="_-Iab_jnZEdyK9KOUzoZMXQ" name="static" value="3"/>
+ <eLiterals xmi:id="_-Iab_znZEdyK9KOUzoZMXQ" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_-IacADnZEdyK9KOUzoZMXQ" name="AccessKind">
+ <eAnnotations xmi:id="_-IacATnZEdyK9KOUzoZMXQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8b3rUBYHEdylxOSGZvSthg"/>
+ <eLiterals xmi:id="_-IacAjnZEdyK9KOUzoZMXQ" name="read"/>
+ <eLiterals xmi:id="_-IacAznZEdyK9KOUzoZMXQ" name="write" value="1"/>
+ <eLiterals xmi:id="_-IacBDnZEdyK9KOUzoZMXQ" name="readWrite" value="2"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_-IacBTnZEdyK9KOUzoZMXQ" name="NoGenCode">
+ <eAnnotations xmi:id="_-IacBjnZEdyK9KOUzoZMXQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_CyQIURiqEdyL78Gqc5OeNA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-IacBznZEdyK9KOUzoZMXQ" name="base_Element" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Element"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_-IacCTnZEdyK9KOUzoZMXQ" name="C_NamedElement">
+ <eAnnotations xmi:id="_-IacCjnZEdyK9KOUzoZMXQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_93GTkBjCEdyfI_WOjDrRyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-IacCznZEdyK9KOUzoZMXQ" name="CName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-IacDTnZEdyK9KOUzoZMXQ" name="isVisibilityPrefix" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-IacDznZEdyK9KOUzoZMXQ" name="isQualifiedNameUsed" ordered="false" unique="false" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-IacETnZEdyK9KOUzoZMXQ" name="base_NamedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_-IacEznZEdyK9KOUzoZMXQ" name="Importer">
+ <eAnnotations xmi:id="_-IacFDnZEdyK9KOUzoZMXQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Zd610BmYEdyYiu3uPO8AqQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-IacFTnZEdyK9KOUzoZMXQ" name="importFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-IacFznZEdyK9KOUzoZMXQ" name="base_Namespace" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Namespace"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_51qVkDnLEdyhj8_f1ShKKA" name="CGenerator" nsURI="http://PapyrusC/schemas/CGenerator/_51ogYDnLEdyhj8_f1ShKKA/19" nsPrefix="CGenerator">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_51qVkTnLEdyhj8_f1ShKKA" name="C_Type">
+ <eAnnotations xmi:id="_51qVkjnLEdyhj8_f1ShKKA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_P2CwoBU6EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_51qVkznLEdyhj8_f1ShKKA" name="extern" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_51qVlTnLEdyhj8_f1ShKKA" name="isDynamicInstanciation" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_51qVlznLEdyhj8_f1ShKKA" name="isFunctionGeneratedToSepcificFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_51qVmTnLEdyhj8_f1ShKKA" name="isAttributeNameUsed" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_51qVmznLEdyhj8_f1ShKKA" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_51qVnTnLEdyhj8_f1ShKKA" name="C_Feature">
+ <eAnnotations xmi:id="_51qVnjnLEdyhj8_f1ShKKA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eAnnotations xmi:id="_51qVnznLEdyhj8_f1ShKKA" source="duplicates">
+ <contents xmi:type="ecore:EReference" xmi:id="_51qVoDnLEdyhj8_f1ShKKA" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_51qVoTnLEdyhj8_f1ShKKA" source="redefines" references="_51qVqznLEdyhj8_f1ShKKA"/>
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_51qVoznLEdyhj8_f1ShKKA" name="storageClass" ordered="false" unique="false" lowerBound="1" eType="_51qVtznLEdyhj8_f1ShKKA"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_51qVpTnLEdyhj8_f1ShKKA" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_51qVpznLEdyhj8_f1ShKKA" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_51qVqTnLEdyhj8_f1ShKKA" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_51qVqznLEdyhj8_f1ShKKA" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_51qVrTnLEdyhj8_f1ShKKA" name="isAccessorsGenerated" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_51qVrznLEdyhj8_f1ShKKA" name="acess" ordered="false" unique="false" lowerBound="1" eType="_51q8pDnLEdyhj8_f1ShKKA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_51qVsTnLEdyhj8_f1ShKKA" name="base_BehavioralFeature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//BehavioralFeature"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_51qVsznLEdyhj8_f1ShKKA" name="base_Feature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Feature"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_51qVtTnLEdyhj8_f1ShKKA" name="isRestrict" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_51qVtznLEdyhj8_f1ShKKA" name="StorageClass">
+ <eAnnotations xmi:id="_51qVuDnLEdyhj8_f1ShKKA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_51qVuTnLEdyhj8_f1ShKKA" name="auto"/>
+ <eLiterals xmi:id="_51q8oDnLEdyhj8_f1ShKKA" name="register" value="1"/>
+ <eLiterals xmi:id="_51q8oTnLEdyhj8_f1ShKKA" name="extern" value="2"/>
+ <eLiterals xmi:id="_51q8ojnLEdyhj8_f1ShKKA" name="static" value="3"/>
+ <eLiterals xmi:id="_51q8oznLEdyhj8_f1ShKKA" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_51q8pDnLEdyhj8_f1ShKKA" name="AccessKind">
+ <eAnnotations xmi:id="_51q8pTnLEdyhj8_f1ShKKA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8b3rUBYHEdylxOSGZvSthg"/>
+ <eLiterals xmi:id="_51q8pjnLEdyhj8_f1ShKKA" name="read"/>
+ <eLiterals xmi:id="_51q8pznLEdyhj8_f1ShKKA" name="write" value="1"/>
+ <eLiterals xmi:id="_51q8qDnLEdyhj8_f1ShKKA" name="readWrite" value="2"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_51q8qTnLEdyhj8_f1ShKKA" name="NoGenCode">
+ <eAnnotations xmi:id="_51q8qjnLEdyhj8_f1ShKKA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_CyQIURiqEdyL78Gqc5OeNA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_51q8qznLEdyhj8_f1ShKKA" name="base_Element" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Element"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_51q8rTnLEdyhj8_f1ShKKA" name="C_NamedElement">
+ <eAnnotations xmi:id="_51q8rjnLEdyhj8_f1ShKKA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_93GTkBjCEdyfI_WOjDrRyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_51q8rznLEdyhj8_f1ShKKA" name="CName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_51q8sTnLEdyhj8_f1ShKKA" name="isVisibilityPrefix" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_51q8sznLEdyhj8_f1ShKKA" name="isQualifiedNameUsed" ordered="false" unique="false" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_51q8tTnLEdyhj8_f1ShKKA" name="base_NamedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_51q8tznLEdyhj8_f1ShKKA" name="Importer">
+ <eAnnotations xmi:id="_51q8uDnLEdyhj8_f1ShKKA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Zd610BmYEdyYiu3uPO8AqQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_51q8uTnLEdyhj8_f1ShKKA" name="importFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_51q8uznLEdyhj8_f1ShKKA" name="base_Namespace" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Namespace"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_VCJOIBtFEdyd3OUuj4yv-Q" name="CGenerator" nsURI="http://PapyrusC/schemas/CGenerator/_VCHY8BtFEdyd3OUuj4yv-Q/18" nsPrefix="CGenerator">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VCJOIRtFEdyd3OUuj4yv-Q" name="C_Type">
+ <eAnnotations xmi:id="_VCJOIhtFEdyd3OUuj4yv-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_P2CwoBU6EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VCJOIxtFEdyd3OUuj4yv-Q" name="extern" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VCJOJBtFEdyd3OUuj4yv-Q" name="isDynamicInstanciation" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VCJOJRtFEdyd3OUuj4yv-Q" name="isFunctionGeneratedToSepcificFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VCJOJhtFEdyd3OUuj4yv-Q" name="isAttributeNameUsed" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VCJOJxtFEdyd3OUuj4yv-Q" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VCJOKBtFEdyd3OUuj4yv-Q" name="C_Feature">
+ <eAnnotations xmi:id="_VCJOKRtFEdyd3OUuj4yv-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eAnnotations xmi:id="_VCJOKhtFEdyd3OUuj4yv-Q" source="duplicates">
+ <contents xmi:type="ecore:EReference" xmi:id="_VCJOKxtFEdyd3OUuj4yv-Q" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_VCJOLBtFEdyd3OUuj4yv-Q" source="redefines" references="_VCJOMRtFEdyd3OUuj4yv-Q"/>
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VCJOLRtFEdyd3OUuj4yv-Q" name="storageClass" ordered="false" unique="false" lowerBound="1" eType="_VCJONxtFEdyd3OUuj4yv-Q"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VCJOLhtFEdyd3OUuj4yv-Q" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VCJOLxtFEdyd3OUuj4yv-Q" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VCJOMBtFEdyd3OUuj4yv-Q" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VCJOMRtFEdyd3OUuj4yv-Q" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VCJOMhtFEdyd3OUuj4yv-Q" name="isAccessorsGenerated" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VCJOMxtFEdyd3OUuj4yv-Q" name="acess" ordered="false" unique="false" lowerBound="1" eType="_VCJOPhtFEdyd3OUuj4yv-Q"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VCJONBtFEdyd3OUuj4yv-Q" name="base_BehavioralFeature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//BehavioralFeature"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VCJONRtFEdyd3OUuj4yv-Q" name="base_Feature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Feature"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VCJONhtFEdyd3OUuj4yv-Q" name="isRestrict" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_VCJONxtFEdyd3OUuj4yv-Q" name="StorageClass">
+ <eAnnotations xmi:id="_VCJOOBtFEdyd3OUuj4yv-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_VCJOORtFEdyd3OUuj4yv-Q" name="auto"/>
+ <eLiterals xmi:id="_VCJOOhtFEdyd3OUuj4yv-Q" name="register" value="1"/>
+ <eLiterals xmi:id="_VCJOOxtFEdyd3OUuj4yv-Q" name="extern" value="2"/>
+ <eLiterals xmi:id="_VCJOPBtFEdyd3OUuj4yv-Q" name="static" value="3"/>
+ <eLiterals xmi:id="_VCJOPRtFEdyd3OUuj4yv-Q" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_VCJOPhtFEdyd3OUuj4yv-Q" name="AccessKind">
+ <eAnnotations xmi:id="_VCJOPxtFEdyd3OUuj4yv-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8b3rUBYHEdylxOSGZvSthg"/>
+ <eLiterals xmi:id="_VCJ1MBtFEdyd3OUuj4yv-Q" name="read"/>
+ <eLiterals xmi:id="_VCJ1MRtFEdyd3OUuj4yv-Q" name="write" value="1"/>
+ <eLiterals xmi:id="_VCJ1MhtFEdyd3OUuj4yv-Q" name="readWrite" value="2"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VCJ1MxtFEdyd3OUuj4yv-Q" name="NoGenCode">
+ <eAnnotations xmi:id="_VCJ1NBtFEdyd3OUuj4yv-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_CyQIURiqEdyL78Gqc5OeNA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VCJ1NRtFEdyd3OUuj4yv-Q" name="base_Element" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Element"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VCJ1NhtFEdyd3OUuj4yv-Q" name="C_NamedElement">
+ <eAnnotations xmi:id="_VCJ1NxtFEdyd3OUuj4yv-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_93GTkBjCEdyfI_WOjDrRyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VCJ1OBtFEdyd3OUuj4yv-Q" name="CName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VCJ1ORtFEdyd3OUuj4yv-Q" name="isVisibilityPrefix" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VCJ1OhtFEdyd3OUuj4yv-Q" name="isQualifiedNameUsed" ordered="false" unique="false" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VCJ1OxtFEdyd3OUuj4yv-Q" name="base_NamedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VCJ1PBtFEdyd3OUuj4yv-Q" name="Importer">
+ <eAnnotations xmi:id="_VCJ1PRtFEdyd3OUuj4yv-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Zd610BmYEdyYiu3uPO8AqQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VCJ1PhtFEdyd3OUuj4yv-Q" name="importFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VCJ1PxtFEdyd3OUuj4yv-Q" name="base_Namespace" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Namespace"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_l_8L8BmYEdyYiu3uPO8AqQ" name="CGenerator" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/CGenerator/_l_7k4BmYEdyYiu3uPO8AqQ/17" nsPrefix="CGenerator">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_l_8L8RmYEdyYiu3uPO8AqQ" name="C_Type">
+ <eAnnotations xmi:id="_l_8L8hmYEdyYiu3uPO8AqQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_P2CwoBU6EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l_8L8xmYEdyYiu3uPO8AqQ" name="extern" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l_8L9BmYEdyYiu3uPO8AqQ" name="isDynamicInstanciation" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l_8L9RmYEdyYiu3uPO8AqQ" name="isFunctionGeneratedToSepcificFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l_8L9hmYEdyYiu3uPO8AqQ" name="isAttributeNameUsed" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_l_8L9xmYEdyYiu3uPO8AqQ" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_l_8L-BmYEdyYiu3uPO8AqQ" name="C_Feature">
+ <eAnnotations xmi:id="_l_8L-RmYEdyYiu3uPO8AqQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eAnnotations xmi:id="_l_8L-hmYEdyYiu3uPO8AqQ" source="duplicates">
+ <contents xmi:type="ecore:EReference" xmi:id="_l_8L-xmYEdyYiu3uPO8AqQ" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_l_8L_BmYEdyYiu3uPO8AqQ" source="redefines" references="_l_8MARmYEdyYiu3uPO8AqQ"/>
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l_8L_RmYEdyYiu3uPO8AqQ" name="storageClass" ordered="false" unique="false" lowerBound="1" eType="_l_8MBxmYEdyYiu3uPO8AqQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l_8L_hmYEdyYiu3uPO8AqQ" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l_8L_xmYEdyYiu3uPO8AqQ" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l_8MABmYEdyYiu3uPO8AqQ" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_l_8MARmYEdyYiu3uPO8AqQ" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l_8MAhmYEdyYiu3uPO8AqQ" name="isAccessorsGenerated" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l_8MAxmYEdyYiu3uPO8AqQ" name="acess" ordered="false" unique="false" lowerBound="1" eType="_l_8MDhmYEdyYiu3uPO8AqQ"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_l_8MBBmYEdyYiu3uPO8AqQ" name="base_BehavioralFeature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//BehavioralFeature"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_l_8MBRmYEdyYiu3uPO8AqQ" name="base_Feature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Feature"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l_8MBhmYEdyYiu3uPO8AqQ" name="isRestrict" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_l_8MBxmYEdyYiu3uPO8AqQ" name="StorageClass">
+ <eAnnotations xmi:id="_l_8MCBmYEdyYiu3uPO8AqQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_l_8MCRmYEdyYiu3uPO8AqQ" name="auto"/>
+ <eLiterals xmi:id="_l_8MChmYEdyYiu3uPO8AqQ" name="register" value="1"/>
+ <eLiterals xmi:id="_l_8MCxmYEdyYiu3uPO8AqQ" name="extern" value="2"/>
+ <eLiterals xmi:id="_l_8MDBmYEdyYiu3uPO8AqQ" name="static" value="3"/>
+ <eLiterals xmi:id="_l_8MDRmYEdyYiu3uPO8AqQ" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_l_8MDhmYEdyYiu3uPO8AqQ" name="AccessKind">
+ <eAnnotations xmi:id="_l_8MDxmYEdyYiu3uPO8AqQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8b3rUBYHEdylxOSGZvSthg"/>
+ <eLiterals xmi:id="_l_8MEBmYEdyYiu3uPO8AqQ" name="read"/>
+ <eLiterals xmi:id="_l_8MERmYEdyYiu3uPO8AqQ" name="write" value="1"/>
+ <eLiterals xmi:id="_l_8MEhmYEdyYiu3uPO8AqQ" name="readWrite" value="2"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_l_8MExmYEdyYiu3uPO8AqQ" name="NoGenCode">
+ <eAnnotations xmi:id="_l_8MFBmYEdyYiu3uPO8AqQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_CyQIURiqEdyL78Gqc5OeNA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_l_8MFRmYEdyYiu3uPO8AqQ" name="base_Element" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Element"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_l_8MFhmYEdyYiu3uPO8AqQ" name="C_NamedElement">
+ <eAnnotations xmi:id="_l_8MFxmYEdyYiu3uPO8AqQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_93GTkBjCEdyfI_WOjDrRyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l_8MGBmYEdyYiu3uPO8AqQ" name="CName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l_8MGRmYEdyYiu3uPO8AqQ" name="isVisibilityPrefix" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l_8MGhmYEdyYiu3uPO8AqQ" name="isQualifiedNameUsed" ordered="false" unique="false" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_l_8MGxmYEdyYiu3uPO8AqQ" name="base_NamedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_l_8MHBmYEdyYiu3uPO8AqQ" name="Importer">
+ <eAnnotations xmi:id="_l_8MHRmYEdyYiu3uPO8AqQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Zd610BmYEdyYiu3uPO8AqQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l_8MHhmYEdyYiu3uPO8AqQ" name="importFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_l_8MHxmYEdyYiu3uPO8AqQ" name="base_Namespace" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Namespace"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_k7lL8BmYEdyYiu3uPO8AqQ" name="CGenerator" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/CGenerator/_k7jWwBmYEdyYiu3uPO8AqQ/16" nsPrefix="CGenerator">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_k7lL8RmYEdyYiu3uPO8AqQ" name="C_Type">
+ <eAnnotations xmi:id="_k7lL8hmYEdyYiu3uPO8AqQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_P2CwoBU6EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_k7lL8xmYEdyYiu3uPO8AqQ" name="extern" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_k7lL9BmYEdyYiu3uPO8AqQ" name="isDynamicInstanciation" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_k7lL9RmYEdyYiu3uPO8AqQ" name="isFunctionGeneratedToSepcificFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_k7lL9hmYEdyYiu3uPO8AqQ" name="isAttributeNameUsed" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_k7lL9xmYEdyYiu3uPO8AqQ" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_k7lL-BmYEdyYiu3uPO8AqQ" name="C_Feature">
+ <eAnnotations xmi:id="_k7lL-RmYEdyYiu3uPO8AqQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eAnnotations xmi:id="_k7lL-hmYEdyYiu3uPO8AqQ" source="duplicates">
+ <contents xmi:type="ecore:EReference" xmi:id="_k7lL-xmYEdyYiu3uPO8AqQ" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_k7lL_BmYEdyYiu3uPO8AqQ" source="redefines" references="_k7lMARmYEdyYiu3uPO8AqQ"/>
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_k7lL_RmYEdyYiu3uPO8AqQ" name="storageClass" ordered="false" unique="false" lowerBound="1" eType="_k7lMBxmYEdyYiu3uPO8AqQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_k7lL_hmYEdyYiu3uPO8AqQ" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_k7lL_xmYEdyYiu3uPO8AqQ" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_k7lMABmYEdyYiu3uPO8AqQ" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_k7lMARmYEdyYiu3uPO8AqQ" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_k7lMAhmYEdyYiu3uPO8AqQ" name="isAccessorsGenerated" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_k7lMAxmYEdyYiu3uPO8AqQ" name="acess" ordered="false" unique="false" lowerBound="1" eType="_k7lMDhmYEdyYiu3uPO8AqQ"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_k7lMBBmYEdyYiu3uPO8AqQ" name="base_BehavioralFeature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//BehavioralFeature"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_k7lMBRmYEdyYiu3uPO8AqQ" name="base_Feature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Feature"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_k7lMBhmYEdyYiu3uPO8AqQ" name="isRestrict" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_k7lMBxmYEdyYiu3uPO8AqQ" name="StorageClass">
+ <eAnnotations xmi:id="_k7lMCBmYEdyYiu3uPO8AqQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_k7lMCRmYEdyYiu3uPO8AqQ" name="auto"/>
+ <eLiterals xmi:id="_k7lMChmYEdyYiu3uPO8AqQ" name="register" value="1"/>
+ <eLiterals xmi:id="_k7lMCxmYEdyYiu3uPO8AqQ" name="extern" value="2"/>
+ <eLiterals xmi:id="_k7lMDBmYEdyYiu3uPO8AqQ" name="static" value="3"/>
+ <eLiterals xmi:id="_k7lMDRmYEdyYiu3uPO8AqQ" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_k7lMDhmYEdyYiu3uPO8AqQ" name="AccessKind">
+ <eAnnotations xmi:id="_k7lMDxmYEdyYiu3uPO8AqQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8b3rUBYHEdylxOSGZvSthg"/>
+ <eLiterals xmi:id="_k7lMEBmYEdyYiu3uPO8AqQ" name="read"/>
+ <eLiterals xmi:id="_k7lMERmYEdyYiu3uPO8AqQ" name="write" value="1"/>
+ <eLiterals xmi:id="_k7lMEhmYEdyYiu3uPO8AqQ" name="readWrite" value="2"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_k7lMExmYEdyYiu3uPO8AqQ" name="NoGenCode">
+ <eAnnotations xmi:id="_k7lMFBmYEdyYiu3uPO8AqQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_CyQIURiqEdyL78Gqc5OeNA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_k7lMFRmYEdyYiu3uPO8AqQ" name="base_Element" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Element"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_k7lMFhmYEdyYiu3uPO8AqQ" name="C_NamedElement">
+ <eAnnotations xmi:id="_k7lMFxmYEdyYiu3uPO8AqQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_93GTkBjCEdyfI_WOjDrRyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_k7lMGBmYEdyYiu3uPO8AqQ" name="CName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_k7lMGRmYEdyYiu3uPO8AqQ" name="isVisibilityPrefix" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_k7lMGhmYEdyYiu3uPO8AqQ" name="isQualifiedNameUsed" ordered="false" unique="false" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_k7lMGxmYEdyYiu3uPO8AqQ" name="base_NamedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_k7lMHBmYEdyYiu3uPO8AqQ" name="Imports">
+ <eAnnotations xmi:id="_k7lMHRmYEdyYiu3uPO8AqQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Zd610BmYEdyYiu3uPO8AqQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_k7lMHhmYEdyYiu3uPO8AqQ" name="importFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_k7lMHxmYEdyYiu3uPO8AqQ" name="base_Namespace" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Namespace"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_NDiIERjwEdyGHM4pSbTixw" name="CGenerator" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/CGenerator/_NDiIEBjwEdyGHM4pSbTixw/15" nsPrefix="CGenerator">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_NDiIEhjwEdyGHM4pSbTixw" name="C_Type">
+ <eAnnotations xmi:id="_NDiIExjwEdyGHM4pSbTixw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_P2CwoBU6EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NDiIFBjwEdyGHM4pSbTixw" name="extern" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NDiIFRjwEdyGHM4pSbTixw" name="isDynamicInstanciation" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NDiIFhjwEdyGHM4pSbTixw" name="isFunctionGeneratedToSepcificFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NDiIFxjwEdyGHM4pSbTixw" name="isAttributeNameUsed" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NDiIGBjwEdyGHM4pSbTixw" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_NDiIGRjwEdyGHM4pSbTixw" name="C_Feature">
+ <eAnnotations xmi:id="_NDiIGhjwEdyGHM4pSbTixw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eAnnotations xmi:id="_NDiIGxjwEdyGHM4pSbTixw" source="duplicates">
+ <contents xmi:type="ecore:EReference" xmi:id="_NDiIHBjwEdyGHM4pSbTixw" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_NDiIHRjwEdyGHM4pSbTixw" source="redefines" references="_NDivIBjwEdyGHM4pSbTixw"/>
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NDiIHhjwEdyGHM4pSbTixw" name="storageClass" ordered="false" unique="false" lowerBound="1" eType="_NDivJhjwEdyGHM4pSbTixw"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NDiIHxjwEdyGHM4pSbTixw" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NDiIIBjwEdyGHM4pSbTixw" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NDiIIRjwEdyGHM4pSbTixw" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NDivIBjwEdyGHM4pSbTixw" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NDivIRjwEdyGHM4pSbTixw" name="isAccessorsGenerated" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NDivIhjwEdyGHM4pSbTixw" name="acess" ordered="false" unique="false" lowerBound="1" eType="_NDivLRjwEdyGHM4pSbTixw"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NDivIxjwEdyGHM4pSbTixw" name="base_BehavioralFeature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//BehavioralFeature"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NDivJBjwEdyGHM4pSbTixw" name="base_Feature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Feature"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NDivJRjwEdyGHM4pSbTixw" name="isRestrict" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_NDivJhjwEdyGHM4pSbTixw" name="StorageClass">
+ <eAnnotations xmi:id="_NDivJxjwEdyGHM4pSbTixw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_NDivKBjwEdyGHM4pSbTixw" name="auto"/>
+ <eLiterals xmi:id="_NDivKRjwEdyGHM4pSbTixw" name="register" value="1"/>
+ <eLiterals xmi:id="_NDivKhjwEdyGHM4pSbTixw" name="extern" value="2"/>
+ <eLiterals xmi:id="_NDivKxjwEdyGHM4pSbTixw" name="static" value="3"/>
+ <eLiterals xmi:id="_NDivLBjwEdyGHM4pSbTixw" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_NDivLRjwEdyGHM4pSbTixw" name="AccessKind">
+ <eAnnotations xmi:id="_NDivLhjwEdyGHM4pSbTixw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8b3rUBYHEdylxOSGZvSthg"/>
+ <eLiterals xmi:id="_NDivLxjwEdyGHM4pSbTixw" name="read"/>
+ <eLiterals xmi:id="_NDivMBjwEdyGHM4pSbTixw" name="write" value="1"/>
+ <eLiterals xmi:id="_NDivMRjwEdyGHM4pSbTixw" name="readWrite" value="2"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_NDivMhjwEdyGHM4pSbTixw" name="NoGenCode">
+ <eAnnotations xmi:id="_NDivMxjwEdyGHM4pSbTixw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_CyQIURiqEdyL78Gqc5OeNA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NDivNBjwEdyGHM4pSbTixw" name="base_Element" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Element"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_NDivNRjwEdyGHM4pSbTixw" name="C_NamedElement">
+ <eAnnotations xmi:id="_NDivNhjwEdyGHM4pSbTixw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_93GTkBjCEdyfI_WOjDrRyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NDivNxjwEdyGHM4pSbTixw" name="CName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NDivOBjwEdyGHM4pSbTixw" name="isVisibilityPrefix" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NDivORjwEdyGHM4pSbTixw" name="isQualifiedNameUsed" ordered="false" unique="false" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NDivOhjwEdyGHM4pSbTixw" name="base_NamedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_Vtv7oBjvEdyGHM4pSbTixw" name="CGenerator" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/CGenerator/_VtvUkBjvEdyGHM4pSbTixw/14" nsPrefix="CGenerator">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Vtv7oRjvEdyGHM4pSbTixw" name="C_Type">
+ <eAnnotations xmi:id="_Vtv7ohjvEdyGHM4pSbTixw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_P2CwoBU6EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Vtv7oxjvEdyGHM4pSbTixw" name="extern" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Vtv7pBjvEdyGHM4pSbTixw" name="isDynamicInstanciation" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Vtv7pRjvEdyGHM4pSbTixw" name="isFunctionGeneratedToSepcificFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Vtv7phjvEdyGHM4pSbTixw" name="isAttributeNameUsed" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Vtv7pxjvEdyGHM4pSbTixw" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Vtv7qBjvEdyGHM4pSbTixw" name="C_Feature">
+ <eAnnotations xmi:id="_Vtv7qRjvEdyGHM4pSbTixw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eAnnotations xmi:id="_Vtv7qhjvEdyGHM4pSbTixw" source="duplicates">
+ <contents xmi:type="ecore:EReference" xmi:id="_Vtv7qxjvEdyGHM4pSbTixw" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_Vtv7rBjvEdyGHM4pSbTixw" source="redefines" references="_Vtv7sRjvEdyGHM4pSbTixw"/>
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Vtv7rRjvEdyGHM4pSbTixw" name="storageClass" ordered="false" unique="false" lowerBound="1" eType="_Vtv7thjvEdyGHM4pSbTixw"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Vtv7rhjvEdyGHM4pSbTixw" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Vtv7rxjvEdyGHM4pSbTixw" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Vtv7sBjvEdyGHM4pSbTixw" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Vtv7sRjvEdyGHM4pSbTixw" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Vtv7shjvEdyGHM4pSbTixw" name="isAccessorsGenerated" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Vtv7sxjvEdyGHM4pSbTixw" name="acess" ordered="false" unique="false" lowerBound="1" eType="_Vtv7vRjvEdyGHM4pSbTixw"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Vtv7tBjvEdyGHM4pSbTixw" name="base_BehavioralFeature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//BehavioralFeature"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Vtv7tRjvEdyGHM4pSbTixw" name="base_Feature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Feature"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_Vtv7thjvEdyGHM4pSbTixw" name="StorageClass">
+ <eAnnotations xmi:id="_Vtv7txjvEdyGHM4pSbTixw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_Vtv7uBjvEdyGHM4pSbTixw" name="auto"/>
+ <eLiterals xmi:id="_Vtv7uRjvEdyGHM4pSbTixw" name="register" value="1"/>
+ <eLiterals xmi:id="_Vtv7uhjvEdyGHM4pSbTixw" name="extern" value="2"/>
+ <eLiterals xmi:id="_Vtv7uxjvEdyGHM4pSbTixw" name="static" value="3"/>
+ <eLiterals xmi:id="_Vtv7vBjvEdyGHM4pSbTixw" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_Vtv7vRjvEdyGHM4pSbTixw" name="AccessKind">
+ <eAnnotations xmi:id="_Vtv7vhjvEdyGHM4pSbTixw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8b3rUBYHEdylxOSGZvSthg"/>
+ <eLiterals xmi:id="_Vtv7vxjvEdyGHM4pSbTixw" name="read"/>
+ <eLiterals xmi:id="_Vtv7wBjvEdyGHM4pSbTixw" name="write" value="1"/>
+ <eLiterals xmi:id="_Vtv7wRjvEdyGHM4pSbTixw" name="readWrite" value="2"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Vtv7whjvEdyGHM4pSbTixw" name="NoGenCode">
+ <eAnnotations xmi:id="_Vtv7wxjvEdyGHM4pSbTixw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_CyQIURiqEdyL78Gqc5OeNA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Vtv7xBjvEdyGHM4pSbTixw" name="base_Element" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Element"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Vtv7xRjvEdyGHM4pSbTixw" name="C_NamedElement">
+ <eAnnotations xmi:id="_VtwisBjvEdyGHM4pSbTixw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_93GTkBjCEdyfI_WOjDrRyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VtwisRjvEdyGHM4pSbTixw" name="CName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VtwishjvEdyGHM4pSbTixw" name="isVisibilityPrefix" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VtwisxjvEdyGHM4pSbTixw" name="isQualifiedNameUsed" ordered="false" unique="false" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VtwitBjvEdyGHM4pSbTixw" name="base_NamedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_VqN78BjuEdyGHM4pSbTixw" name="CGenerator" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/CGenerator/_VqMGwBjuEdyGHM4pSbTixw/13" nsPrefix="CGenerator">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VqN78RjuEdyGHM4pSbTixw" name="C_Type">
+ <eAnnotations xmi:id="_VqN78hjuEdyGHM4pSbTixw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_P2CwoBU6EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VqN78xjuEdyGHM4pSbTixw" name="extern" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VqN79BjuEdyGHM4pSbTixw" name="isDynamicInstanciation" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VqN79RjuEdyGHM4pSbTixw" name="isFunctionGeneratedToSepcificFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VqN79hjuEdyGHM4pSbTixw" name="isAttributeNameUsed" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VqN79xjuEdyGHM4pSbTixw" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VqN7-BjuEdyGHM4pSbTixw" name="C_Feature">
+ <eAnnotations xmi:id="_VqN7-RjuEdyGHM4pSbTixw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VqN7-hjuEdyGHM4pSbTixw" name="storageClass" ordered="false" unique="false" lowerBound="1" eType="_VqN8AxjuEdyGHM4pSbTixw"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VqN7-xjuEdyGHM4pSbTixw" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VqN7_BjuEdyGHM4pSbTixw" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VqN7_RjuEdyGHM4pSbTixw" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VqN7_hjuEdyGHM4pSbTixw" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VqN7_xjuEdyGHM4pSbTixw" name="isAccessorsGenerated" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VqN8ABjuEdyGHM4pSbTixw" name="acess" ordered="false" unique="false" lowerBound="1" eType="_VqN8ChjuEdyGHM4pSbTixw"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VqN8ARjuEdyGHM4pSbTixw" name="base_BehavioralFeature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//BehavioralFeature"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VqN8AhjuEdyGHM4pSbTixw" name="base_Feature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Feature"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_VqN8AxjuEdyGHM4pSbTixw" name="StorageClass">
+ <eAnnotations xmi:id="_VqN8BBjuEdyGHM4pSbTixw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_VqN8BRjuEdyGHM4pSbTixw" name="auto"/>
+ <eLiterals xmi:id="_VqN8BhjuEdyGHM4pSbTixw" name="register" value="1"/>
+ <eLiterals xmi:id="_VqN8BxjuEdyGHM4pSbTixw" name="extern" value="2"/>
+ <eLiterals xmi:id="_VqN8CBjuEdyGHM4pSbTixw" name="static" value="3"/>
+ <eLiterals xmi:id="_VqN8CRjuEdyGHM4pSbTixw" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_VqN8ChjuEdyGHM4pSbTixw" name="AccessKind">
+ <eAnnotations xmi:id="_VqN8CxjuEdyGHM4pSbTixw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8b3rUBYHEdylxOSGZvSthg"/>
+ <eLiterals xmi:id="_VqN8DBjuEdyGHM4pSbTixw" name="read"/>
+ <eLiterals xmi:id="_VqN8DRjuEdyGHM4pSbTixw" name="write" value="1"/>
+ <eLiterals xmi:id="_VqN8DhjuEdyGHM4pSbTixw" name="readWrite" value="2"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VqN8DxjuEdyGHM4pSbTixw" name="NoGenCode">
+ <eAnnotations xmi:id="_VqN8EBjuEdyGHM4pSbTixw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_CyQIURiqEdyL78Gqc5OeNA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VqN8ERjuEdyGHM4pSbTixw" name="base_Element" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Element"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VqN8EhjuEdyGHM4pSbTixw" name="C_NamedElement">
+ <eAnnotations xmi:id="_VqN8ExjuEdyGHM4pSbTixw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_93GTkBjCEdyfI_WOjDrRyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VqN8FBjuEdyGHM4pSbTixw" name="CName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VqN8FRjuEdyGHM4pSbTixw" name="isVisibilityPrefix" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VqN8FhjuEdyGHM4pSbTixw" name="isQualifiedNameUsed" ordered="false" unique="false" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VqN8FxjuEdyGHM4pSbTixw" name="base_NamedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_XL1xoBjsEdyGHM4pSbTixw" name="CGenerator" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/CGenerator/_XL0jgBjsEdyGHM4pSbTixw/12" nsPrefix="CGenerator">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_XL1xoRjsEdyGHM4pSbTixw" name="C_Type">
+ <eAnnotations xmi:id="_XL1xohjsEdyGHM4pSbTixw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_P2CwoBU6EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_XL1xoxjsEdyGHM4pSbTixw" name="extern" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_XL1xpBjsEdyGHM4pSbTixw" name="isDynamicInstanciation" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_XL1xpRjsEdyGHM4pSbTixw" name="isFunctionGeneratedToSepcificFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_XL1xphjsEdyGHM4pSbTixw" name="isAttributeNameUsed" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_XL1xpxjsEdyGHM4pSbTixw" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_XL1xqBjsEdyGHM4pSbTixw" name="C_TypedElement">
+ <eAnnotations xmi:id="_XL1xqRjsEdyGHM4pSbTixw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_XL1xqhjsEdyGHM4pSbTixw" name="storageClass" ordered="false" unique="false" lowerBound="1" eType="_XL1xshjsEdyGHM4pSbTixw"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_XL1xqxjsEdyGHM4pSbTixw" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_XL1xrBjsEdyGHM4pSbTixw" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_XL1xrRjsEdyGHM4pSbTixw" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_XL1xrhjsEdyGHM4pSbTixw" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_XL1xrxjsEdyGHM4pSbTixw" name="isAccessorsGenerated" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_XL1xsBjsEdyGHM4pSbTixw" name="acess" ordered="false" unique="false" lowerBound="1" eType="_XL2YsRjsEdyGHM4pSbTixw"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_XL1xsRjsEdyGHM4pSbTixw" name="base_BehavioralFeature" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//BehavioralFeature"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_XL1xshjsEdyGHM4pSbTixw" name="StorageClass">
+ <eAnnotations xmi:id="_XL1xsxjsEdyGHM4pSbTixw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_XL1xtBjsEdyGHM4pSbTixw" name="auto"/>
+ <eLiterals xmi:id="_XL1xtRjsEdyGHM4pSbTixw" name="register" value="1"/>
+ <eLiterals xmi:id="_XL1xthjsEdyGHM4pSbTixw" name="extern" value="2"/>
+ <eLiterals xmi:id="_XL1xtxjsEdyGHM4pSbTixw" name="static" value="3"/>
+ <eLiterals xmi:id="_XL2YsBjsEdyGHM4pSbTixw" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_XL2YsRjsEdyGHM4pSbTixw" name="AccessKind">
+ <eAnnotations xmi:id="_XL2YshjsEdyGHM4pSbTixw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8b3rUBYHEdylxOSGZvSthg"/>
+ <eLiterals xmi:id="_XL2YsxjsEdyGHM4pSbTixw" name="read"/>
+ <eLiterals xmi:id="_XL2YtBjsEdyGHM4pSbTixw" name="write" value="1"/>
+ <eLiterals xmi:id="_XL2YtRjsEdyGHM4pSbTixw" name="readWrite" value="2"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_XL2YthjsEdyGHM4pSbTixw" name="NoGenCode">
+ <eAnnotations xmi:id="_XL2YtxjsEdyGHM4pSbTixw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_CyQIURiqEdyL78Gqc5OeNA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_XL2YuBjsEdyGHM4pSbTixw" name="base_Element" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Element"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_XL2YuRjsEdyGHM4pSbTixw" name="C_NamedElement">
+ <eAnnotations xmi:id="_XL2YuhjsEdyGHM4pSbTixw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_93GTkBjCEdyfI_WOjDrRyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_XL2YuxjsEdyGHM4pSbTixw" name="CName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_XL2YvBjsEdyGHM4pSbTixw" name="isVisibilityPrefix" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_XL2YvRjsEdyGHM4pSbTixw" name="isQualifiedNameUsed" ordered="false" unique="false" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_XL2YvhjsEdyGHM4pSbTixw" name="base_NamedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_koJzURjMEdyo-J6sTQ4XlA" name="CGenerator" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/CGenerator/_koJzUBjMEdyo-J6sTQ4XlA/11" nsPrefix="CGenerator">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_koJzUhjMEdyo-J6sTQ4XlA" name="C_Type">
+ <eAnnotations xmi:id="_koJzUxjMEdyo-J6sTQ4XlA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_P2CwoBU6EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_koJzVBjMEdyo-J6sTQ4XlA" name="extern" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_koJzVRjMEdyo-J6sTQ4XlA" name="isDynamicInstanciation" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_koJzVhjMEdyo-J6sTQ4XlA" name="isFunctionGeneratedToSepcificFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_koJzVxjMEdyo-J6sTQ4XlA" name="isAttributeNameUsed" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_koJzWBjMEdyo-J6sTQ4XlA" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_koJzWRjMEdyo-J6sTQ4XlA" name="C_TypedElement">
+ <eAnnotations xmi:id="_koJzWhjMEdyo-J6sTQ4XlA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_koJzWxjMEdyo-J6sTQ4XlA" name="storageClass" ordered="false" unique="false" lowerBound="1" eType="_koJzYhjMEdyo-J6sTQ4XlA"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_koJzXBjMEdyo-J6sTQ4XlA" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_koJzXRjMEdyo-J6sTQ4XlA" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_koJzXhjMEdyo-J6sTQ4XlA" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_koJzXxjMEdyo-J6sTQ4XlA" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_koJzYBjMEdyo-J6sTQ4XlA" name="isAccessorsGenerated" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_koJzYRjMEdyo-J6sTQ4XlA" name="acess" ordered="false" unique="false" lowerBound="1" eType="_koKaZhjMEdyo-J6sTQ4XlA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_koJzYhjMEdyo-J6sTQ4XlA" name="StorageClass">
+ <eAnnotations xmi:id="_koKaYBjMEdyo-J6sTQ4XlA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_koKaYRjMEdyo-J6sTQ4XlA" name="auto"/>
+ <eLiterals xmi:id="_koKaYhjMEdyo-J6sTQ4XlA" name="register" value="1"/>
+ <eLiterals xmi:id="_koKaYxjMEdyo-J6sTQ4XlA" name="extern" value="2"/>
+ <eLiterals xmi:id="_koKaZBjMEdyo-J6sTQ4XlA" name="static" value="3"/>
+ <eLiterals xmi:id="_koKaZRjMEdyo-J6sTQ4XlA" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_koKaZhjMEdyo-J6sTQ4XlA" name="AccessKind">
+ <eAnnotations xmi:id="_koKaZxjMEdyo-J6sTQ4XlA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8b3rUBYHEdylxOSGZvSthg"/>
+ <eLiterals xmi:id="_koKaaBjMEdyo-J6sTQ4XlA" name="read"/>
+ <eLiterals xmi:id="_koKaaRjMEdyo-J6sTQ4XlA" name="write" value="1"/>
+ <eLiterals xmi:id="_koKaahjMEdyo-J6sTQ4XlA" name="readWrite" value="2"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_koKaaxjMEdyo-J6sTQ4XlA" name="NoGenCode">
+ <eAnnotations xmi:id="_koKabBjMEdyo-J6sTQ4XlA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_CyQIURiqEdyL78Gqc5OeNA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_koKabRjMEdyo-J6sTQ4XlA" name="base_Element" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Element"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_koKabhjMEdyo-J6sTQ4XlA" name="C_NamedElement">
+ <eAnnotations xmi:id="_koKabxjMEdyo-J6sTQ4XlA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_93GTkBjCEdyfI_WOjDrRyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_koKacBjMEdyo-J6sTQ4XlA" name="CName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_koKacRjMEdyo-J6sTQ4XlA" name="isVisibilityPrefix" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_koKachjMEdyo-J6sTQ4XlA" name="isQualifiedNameUsed" ordered="false" unique="false" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_koKacxjMEdyo-J6sTQ4XlA" name="base_NamedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_WhOU4BjMEdyo-J6sTQ4XlA" name="CGenerator" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/CGenerator/_WhNGwBjMEdyo-J6sTQ4XlA/10" nsPrefix="CGenerator">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_WhOU4RjMEdyo-J6sTQ4XlA" name="C_Type">
+ <eAnnotations xmi:id="_WhOU4hjMEdyo-J6sTQ4XlA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_P2CwoBU6EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WhOU4xjMEdyo-J6sTQ4XlA" name="extern" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WhOU5BjMEdyo-J6sTQ4XlA" name="isDynamicInstanciation" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WhOU5RjMEdyo-J6sTQ4XlA" name="isFunctionGeneratedToSepcificFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WhOU5hjMEdyo-J6sTQ4XlA" name="isAttributeNameUsed" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_WhOU5xjMEdyo-J6sTQ4XlA" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_WhOU6BjMEdyo-J6sTQ4XlA" name="C_TypedElement">
+ <eAnnotations xmi:id="_WhOU6RjMEdyo-J6sTQ4XlA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WhOU6hjMEdyo-J6sTQ4XlA" name="storageClass" ordered="false" unique="false" lowerBound="1" eType="_WhOU8RjMEdyo-J6sTQ4XlA"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WhOU6xjMEdyo-J6sTQ4XlA" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WhOU7BjMEdyo-J6sTQ4XlA" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WhOU7RjMEdyo-J6sTQ4XlA" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_WhOU7hjMEdyo-J6sTQ4XlA" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WhOU7xjMEdyo-J6sTQ4XlA" name="isAccessorsGenerated" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WhOU8BjMEdyo-J6sTQ4XlA" name="acess" ordered="false" unique="false" lowerBound="1" eType="_WhOU-BjMEdyo-J6sTQ4XlA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_WhOU8RjMEdyo-J6sTQ4XlA" name="StorageClass">
+ <eAnnotations xmi:id="_WhOU8hjMEdyo-J6sTQ4XlA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_WhOU8xjMEdyo-J6sTQ4XlA" name="auto"/>
+ <eLiterals xmi:id="_WhOU9BjMEdyo-J6sTQ4XlA" name="register" value="1"/>
+ <eLiterals xmi:id="_WhOU9RjMEdyo-J6sTQ4XlA" name="extern" value="2"/>
+ <eLiterals xmi:id="_WhOU9hjMEdyo-J6sTQ4XlA" name="static" value="3"/>
+ <eLiterals xmi:id="_WhOU9xjMEdyo-J6sTQ4XlA" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_WhOU-BjMEdyo-J6sTQ4XlA" name="AccessKind">
+ <eAnnotations xmi:id="_WhOU-RjMEdyo-J6sTQ4XlA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8b3rUBYHEdylxOSGZvSthg"/>
+ <eLiterals xmi:id="_WhOU-hjMEdyo-J6sTQ4XlA" name="read"/>
+ <eLiterals xmi:id="_WhOU-xjMEdyo-J6sTQ4XlA" name="write" value="1"/>
+ <eLiterals xmi:id="_WhOU_BjMEdyo-J6sTQ4XlA" name="readWrite" value="2"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_WhOU_RjMEdyo-J6sTQ4XlA" name="NoGenCode">
+ <eAnnotations xmi:id="_WhOU_hjMEdyo-J6sTQ4XlA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_CyQIURiqEdyL78Gqc5OeNA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_WhOU_xjMEdyo-J6sTQ4XlA" name="base_Element" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Element"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_WhO78BjMEdyo-J6sTQ4XlA" name="C_NamedElement">
+ <eAnnotations xmi:id="_WhO78RjMEdyo-J6sTQ4XlA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_93GTkBjCEdyfI_WOjDrRyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WhO78hjMEdyo-J6sTQ4XlA" name="CName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WhO78xjMEdyo-J6sTQ4XlA" name="isVisibilityPrefix" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WhO79BjMEdyo-J6sTQ4XlA" name="isQualifiedNameUsed" ordered="false" unique="false" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_WhO79RjMEdyo-J6sTQ4XlA" name="base_NamedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_Tn0N4RjDEdyfI_WOjDrRyg" name="CGenerator" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/CGenerator/_Tn0N4BjDEdyfI_WOjDrRyg/9" nsPrefix="CGenerator">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Tn0N4hjDEdyfI_WOjDrRyg" name="C_Type" eSuperTypes="_Tn0N6RjDEdyfI_WOjDrRyg">
+ <eAnnotations xmi:id="_Tn0N4xjDEdyfI_WOjDrRyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_P2CwoBU6EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Tn0N5BjDEdyfI_WOjDrRyg" name="extern" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Tn0N5RjDEdyfI_WOjDrRyg" name="isDynamicInstanciation" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Tn0N5hjDEdyfI_WOjDrRyg" name="isFunctionGeneratedToSepcificFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Tn0N5xjDEdyfI_WOjDrRyg" name="isAttributeNameUsed" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Tn0N6BjDEdyfI_WOjDrRyg" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Tn0N6RjDEdyfI_WOjDrRyg" name="C_NamedElement">
+ <eAnnotations xmi:id="_Tn0N6hjDEdyfI_WOjDrRyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_93GTkBjCEdyfI_WOjDrRyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Tn0N6xjDEdyfI_WOjDrRyg" name="CName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Tn0N7BjDEdyfI_WOjDrRyg" name="isVisibilityPrefix" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Tn0N7RjDEdyfI_WOjDrRyg" name="isQualifiedNameUsed" ordered="false" unique="false" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Tn0N7hjDEdyfI_WOjDrRyg" name="base_NamedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Tn0N7xjDEdyfI_WOjDrRyg" name="C_TypedElement" eSuperTypes="_Tn0N6RjDEdyfI_WOjDrRyg">
+ <eAnnotations xmi:id="_Tn0N8BjDEdyfI_WOjDrRyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Tn0N8RjDEdyfI_WOjDrRyg" name="storageClass" ordered="false" unique="false" lowerBound="1" eType="_Tn0N-BjDEdyfI_WOjDrRyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Tn0N8hjDEdyfI_WOjDrRyg" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Tn0N8xjDEdyfI_WOjDrRyg" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Tn0N9BjDEdyfI_WOjDrRyg" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Tn0N9RjDEdyfI_WOjDrRyg" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Tn0N9hjDEdyfI_WOjDrRyg" name="isAccessorsGenerated" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Tn0N9xjDEdyfI_WOjDrRyg" name="acess" ordered="false" unique="false" lowerBound="1" eType="_Tn009BjDEdyfI_WOjDrRyg"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_Tn0N-BjDEdyfI_WOjDrRyg" name="StorageClass">
+ <eAnnotations xmi:id="_Tn0N-RjDEdyfI_WOjDrRyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_Tn0N-hjDEdyfI_WOjDrRyg" name="auto"/>
+ <eLiterals xmi:id="_Tn008BjDEdyfI_WOjDrRyg" name="register" value="1"/>
+ <eLiterals xmi:id="_Tn008RjDEdyfI_WOjDrRyg" name="extern" value="2"/>
+ <eLiterals xmi:id="_Tn008hjDEdyfI_WOjDrRyg" name="static" value="3"/>
+ <eLiterals xmi:id="_Tn008xjDEdyfI_WOjDrRyg" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_Tn009BjDEdyfI_WOjDrRyg" name="AccessKind">
+ <eAnnotations xmi:id="_Tn009RjDEdyfI_WOjDrRyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8b3rUBYHEdylxOSGZvSthg"/>
+ <eLiterals xmi:id="_Tn009hjDEdyfI_WOjDrRyg" name="read"/>
+ <eLiterals xmi:id="_Tn009xjDEdyfI_WOjDrRyg" name="write" value="1"/>
+ <eLiterals xmi:id="_Tn00-BjDEdyfI_WOjDrRyg" name="readWrite" value="2"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Tn00-RjDEdyfI_WOjDrRyg" name="NoGenCode">
+ <eAnnotations xmi:id="_Tn00-hjDEdyfI_WOjDrRyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_CyQIURiqEdyL78Gqc5OeNA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Tn00-xjDEdyfI_WOjDrRyg" name="base_Element" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Element"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_FwUvEBjCEdyfI_WOjDrRyg" name="CGenerator" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/CGenerator/_FwTg8BjCEdyfI_WOjDrRyg/8" nsPrefix="CGenerator">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_FwUvERjCEdyfI_WOjDrRyg" name="C_GeneratedType">
+ <eAnnotations xmi:id="_FwUvEhjCEdyfI_WOjDrRyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_P2CwoBU6EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_FwUvExjCEdyfI_WOjDrRyg" name="isQualifiedNameUsed" ordered="false" unique="false" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_FwVWIBjCEdyfI_WOjDrRyg" name="CName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_FwVWIRjCEdyfI_WOjDrRyg" name="extern" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_FwVWIhjCEdyfI_WOjDrRyg" name="isDynamicInstanciation" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_FwVWIxjCEdyfI_WOjDrRyg" name="isVisibilityPrefix" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_FwVWJBjCEdyfI_WOjDrRyg" name="isFunctionGeneratedToSepcificFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_FwVWJRjCEdyfI_WOjDrRyg" name="isAttributeNameUsed" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_FwVWJhjCEdyfI_WOjDrRyg" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_FwVWJxjCEdyfI_WOjDrRyg" name="C_GeneratedTypedElement">
+ <eAnnotations xmi:id="_FwVWKBjCEdyfI_WOjDrRyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_FwVWKRjCEdyfI_WOjDrRyg" name="storageClass" ordered="false" unique="false" lowerBound="1" eType="_FwVWMRjCEdyfI_WOjDrRyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_FwVWKhjCEdyfI_WOjDrRyg" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_FwVWKxjCEdyfI_WOjDrRyg" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_FwVWLBjCEdyfI_WOjDrRyg" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_FwVWLRjCEdyfI_WOjDrRyg" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_FwVWLhjCEdyfI_WOjDrRyg" name="isAccessorsGenerated" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_FwVWLxjCEdyfI_WOjDrRyg" name="acess" ordered="false" unique="false" lowerBound="1" eType="_FwVWOBjCEdyfI_WOjDrRyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_FwVWMBjCEdyfI_WOjDrRyg" name="isVisibilityPrefix" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_FwVWMRjCEdyfI_WOjDrRyg" name="StorageClass">
+ <eAnnotations xmi:id="_FwVWMhjCEdyfI_WOjDrRyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_FwVWMxjCEdyfI_WOjDrRyg" name="auto"/>
+ <eLiterals xmi:id="_FwVWNBjCEdyfI_WOjDrRyg" name="register" value="1"/>
+ <eLiterals xmi:id="_FwVWNRjCEdyfI_WOjDrRyg" name="extern" value="2"/>
+ <eLiterals xmi:id="_FwVWNhjCEdyfI_WOjDrRyg" name="static" value="3"/>
+ <eLiterals xmi:id="_FwVWNxjCEdyfI_WOjDrRyg" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_FwVWOBjCEdyfI_WOjDrRyg" name="AccessKind">
+ <eAnnotations xmi:id="_FwVWORjCEdyfI_WOjDrRyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8b3rUBYHEdylxOSGZvSthg"/>
+ <eLiterals xmi:id="_FwVWOhjCEdyfI_WOjDrRyg" name="read"/>
+ <eLiterals xmi:id="_FwVWOxjCEdyfI_WOjDrRyg" name="write" value="1"/>
+ <eLiterals xmi:id="_FwVWPBjCEdyfI_WOjDrRyg" name="readWrite" value="2"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_FwVWPRjCEdyfI_WOjDrRyg" name="NoGenCode">
+ <eAnnotations xmi:id="_FwVWPhjCEdyfI_WOjDrRyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_CyQIURiqEdyL78Gqc5OeNA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_FwVWPxjCEdyfI_WOjDrRyg" name="base_Element" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Element"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_VztnEBiqEdyL78Gqc5OeNA" name="CGenerator" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/CGenerator/_VzsY8BiqEdyL78Gqc5OeNA/7" nsPrefix="CGenerator">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VztnERiqEdyL78Gqc5OeNA" name="C_GeneratedType">
+ <eAnnotations xmi:id="_VztnEhiqEdyL78Gqc5OeNA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_P2CwoBU6EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VztnExiqEdyL78Gqc5OeNA" name="isQualifiedNameUsed" ordered="false" unique="false" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VztnFBiqEdyL78Gqc5OeNA" name="CName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VztnFRiqEdyL78Gqc5OeNA" name="extern" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VztnFhiqEdyL78Gqc5OeNA" name="isDynamicInstanciation" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VztnFxiqEdyL78Gqc5OeNA" name="prefix" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VztnGBiqEdyL78Gqc5OeNA" name="isFunctionGeneratedToSepcificFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VztnGRiqEdyL78Gqc5OeNA" name="isAttributeNameUsed" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VztnGhiqEdyL78Gqc5OeNA" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VztnGxiqEdyL78Gqc5OeNA" name="C_GeneratedTypedElement">
+ <eAnnotations xmi:id="_VztnHBiqEdyL78Gqc5OeNA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VztnHRiqEdyL78Gqc5OeNA" name="storageClass" ordered="false" unique="false" lowerBound="1" eType="_VztnJRiqEdyL78Gqc5OeNA"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VztnHhiqEdyL78Gqc5OeNA" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VztnHxiqEdyL78Gqc5OeNA" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VztnIBiqEdyL78Gqc5OeNA" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VztnIRiqEdyL78Gqc5OeNA" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VztnIhiqEdyL78Gqc5OeNA" name="isAccessorsGenerated" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VztnIxiqEdyL78Gqc5OeNA" name="acess" ordered="false" unique="false" lowerBound="1" eType="_VztnLBiqEdyL78Gqc5OeNA"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VztnJBiqEdyL78Gqc5OeNA" name="isVisibilityPrefix" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_VztnJRiqEdyL78Gqc5OeNA" name="StorageClass">
+ <eAnnotations xmi:id="_VztnJhiqEdyL78Gqc5OeNA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_VztnJxiqEdyL78Gqc5OeNA" name="auto"/>
+ <eLiterals xmi:id="_VztnKBiqEdyL78Gqc5OeNA" name="register" value="1"/>
+ <eLiterals xmi:id="_VztnKRiqEdyL78Gqc5OeNA" name="extern" value="2"/>
+ <eLiterals xmi:id="_VztnKhiqEdyL78Gqc5OeNA" name="static" value="3"/>
+ <eLiterals xmi:id="_VztnKxiqEdyL78Gqc5OeNA" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_VztnLBiqEdyL78Gqc5OeNA" name="AccessKind">
+ <eAnnotations xmi:id="_VztnLRiqEdyL78Gqc5OeNA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8b3rUBYHEdylxOSGZvSthg"/>
+ <eLiterals xmi:id="_VztnLhiqEdyL78Gqc5OeNA" name="read"/>
+ <eLiterals xmi:id="_VztnLxiqEdyL78Gqc5OeNA" name="write" value="1"/>
+ <eLiterals xmi:id="_VztnMBiqEdyL78Gqc5OeNA" name="readWrite" value="2"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VztnMRiqEdyL78Gqc5OeNA" name="NoGenCode">
+ <eAnnotations xmi:id="_VztnMhiqEdyL78Gqc5OeNA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_CyQIURiqEdyL78Gqc5OeNA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VztnMxiqEdyL78Gqc5OeNA" name="base_Element" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Element"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_24Wi8RYIEdylxOSGZvSthg" name="CGenerator" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/CGenerator/_24Wi8BYIEdylxOSGZvSthg/6" nsPrefix="CGenerator">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_24Wi8hYIEdylxOSGZvSthg" name="C_GeneratedType">
+ <eAnnotations xmi:id="_24Wi8xYIEdylxOSGZvSthg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_P2CwoBU6EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_24Wi9BYIEdylxOSGZvSthg" name="isQualifiedNameUsed" ordered="false" unique="false" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_24Wi9RYIEdylxOSGZvSthg" name="CName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_24Wi9hYIEdylxOSGZvSthg" name="extern" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_24Wi9xYIEdylxOSGZvSthg" name="isNoCodeGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_24XKABYIEdylxOSGZvSthg" name="isNoCodeGeneratedForAll" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_24XKARYIEdylxOSGZvSthg" name="isDynamicInstanciation" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_24XKAhYIEdylxOSGZvSthg" name="prefix" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_24XKAxYIEdylxOSGZvSthg" name="isFunctionGeneratedToSepcificFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_24XKBBYIEdylxOSGZvSthg" name="isAttributeNameUsed" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_24XKBRYIEdylxOSGZvSthg" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_24cpkBYIEdylxOSGZvSthg" name="C_GeneratedTypedElement">
+ <eAnnotations xmi:id="_24cpkRYIEdylxOSGZvSthg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_24cpkhYIEdylxOSGZvSthg" name="storageClass" ordered="false" unique="false" lowerBound="1" eType="_24cpmhYIEdylxOSGZvSthg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_24cpkxYIEdylxOSGZvSthg" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_24cplBYIEdylxOSGZvSthg" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_24cplRYIEdylxOSGZvSthg" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_24cplhYIEdylxOSGZvSthg" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_24cplxYIEdylxOSGZvSthg" name="isAccessorsGenerated" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_24cpmBYIEdylxOSGZvSthg" name="acess" ordered="false" unique="false" lowerBound="1" eType="_24cpoRYIEdylxOSGZvSthg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_24cpmRYIEdylxOSGZvSthg" name="isVisibilityPrefix" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_24cpmhYIEdylxOSGZvSthg" name="StorageClass">
+ <eAnnotations xmi:id="_24cpmxYIEdylxOSGZvSthg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_24cpnBYIEdylxOSGZvSthg" name="auto"/>
+ <eLiterals xmi:id="_24cpnRYIEdylxOSGZvSthg" name="register" value="1"/>
+ <eLiterals xmi:id="_24cpnhYIEdylxOSGZvSthg" name="extern" value="2"/>
+ <eLiterals xmi:id="_24cpnxYIEdylxOSGZvSthg" name="static" value="3"/>
+ <eLiterals xmi:id="_24cpoBYIEdylxOSGZvSthg" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_24cpoRYIEdylxOSGZvSthg" name="AccessKind">
+ <eAnnotations xmi:id="_24cpohYIEdylxOSGZvSthg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8b3rUBYHEdylxOSGZvSthg"/>
+ <eLiterals xmi:id="_24cpoxYIEdylxOSGZvSthg" name="read"/>
+ <eLiterals xmi:id="_24cppBYIEdylxOSGZvSthg" name="write" value="1"/>
+ <eLiterals xmi:id="_24cppRYIEdylxOSGZvSthg" name="readWrite" value="2"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_hMLKYBYIEdylxOSGZvSthg" name="CGenerator" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/CGenerator/_hMKjUBYIEdylxOSGZvSthg/5" nsPrefix="CGenerator">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hMLKYRYIEdylxOSGZvSthg" name="C_GeneratedType">
+ <eAnnotations xmi:id="_hMLKYhYIEdylxOSGZvSthg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_P2CwoBU6EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hMLKYxYIEdylxOSGZvSthg" name="isQualifiedNameUsed" ordered="false" unique="false" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hMLKZBYIEdylxOSGZvSthg" name="CName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hMLKZRYIEdylxOSGZvSthg" name="extern" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hMLKZhYIEdylxOSGZvSthg" name="isNoCodeGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hMLKZxYIEdylxOSGZvSthg" name="isNoCodeGeneratedForAll" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hMLKaBYIEdylxOSGZvSthg" name="isDynamicInstanciation" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hMLKaRYIEdylxOSGZvSthg" name="prefix" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hMLKahYIEdylxOSGZvSthg" name="isFunctionGeneratedToSepcificFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hMLKaxYIEdylxOSGZvSthg" name="isAttributeNameUsed" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hMLKbBYIEdylxOSGZvSthg" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hMLKbRYIEdylxOSGZvSthg" name="C_GeneratedTypedElement">
+ <eAnnotations xmi:id="_hMLKbhYIEdylxOSGZvSthg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hMLKbxYIEdylxOSGZvSthg" name="storageClass" ordered="false" unique="false" lowerBound="1" eType="_hMLKdxYIEdylxOSGZvSthg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hMLKcBYIEdylxOSGZvSthg" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hMLKcRYIEdylxOSGZvSthg" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hMLKchYIEdylxOSGZvSthg" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hMLKcxYIEdylxOSGZvSthg" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hMLKdBYIEdylxOSGZvSthg" name="isAccessorGenerated" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hMLKdRYIEdylxOSGZvSthg" name="acess" ordered="false" unique="false" lowerBound="1" eType="_hMLKfhYIEdylxOSGZvSthg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hMLKdhYIEdylxOSGZvSthg" name="isVisibilityPrefix" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_hMLKdxYIEdylxOSGZvSthg" name="StorageClass">
+ <eAnnotations xmi:id="_hMLKeBYIEdylxOSGZvSthg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_hMLKeRYIEdylxOSGZvSthg" name="auto"/>
+ <eLiterals xmi:id="_hMLKehYIEdylxOSGZvSthg" name="register" value="1"/>
+ <eLiterals xmi:id="_hMLKexYIEdylxOSGZvSthg" name="extern" value="2"/>
+ <eLiterals xmi:id="_hMLKfBYIEdylxOSGZvSthg" name="static" value="3"/>
+ <eLiterals xmi:id="_hMLKfRYIEdylxOSGZvSthg" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_hMLKfhYIEdylxOSGZvSthg" name="AccessKind">
+ <eAnnotations xmi:id="_hMLKfxYIEdylxOSGZvSthg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8b3rUBYHEdylxOSGZvSthg"/>
+ <eLiterals xmi:id="_hMLKgBYIEdylxOSGZvSthg" name="read"/>
+ <eLiterals xmi:id="_hMLKgRYIEdylxOSGZvSthg" name="write" value="1"/>
+ <eLiterals xmi:id="_hMLKghYIEdylxOSGZvSthg" name="readWrite" value="2"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_Duar4BYIEdylxOSGZvSthg" name="CGenerator" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/CGenerator/_DuaE0BYIEdylxOSGZvSthg/4" nsPrefix="CGenerator">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Duar4RYIEdylxOSGZvSthg" name="C_GeneratedType">
+ <eAnnotations xmi:id="_Duar4hYIEdylxOSGZvSthg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_P2CwoBU6EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Duar4xYIEdylxOSGZvSthg" name="isQualifiedNameUsed" ordered="false" unique="false" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Duar5BYIEdylxOSGZvSthg" name="CName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Duar5RYIEdylxOSGZvSthg" name="extern" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Duar5hYIEdylxOSGZvSthg" name="isNoCodeGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Duar5xYIEdylxOSGZvSthg" name="isNoCodeGeneratedForAll" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Duar6BYIEdylxOSGZvSthg" name="isDynamicInstanciation" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Duar6RYIEdylxOSGZvSthg" name="prefix" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Duar6hYIEdylxOSGZvSthg" name="isFunctionGeneratedToSepcificFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Duar6xYIEdylxOSGZvSthg" name="isAttributeNameUsed" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Duar7BYIEdylxOSGZvSthg" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Duar7RYIEdylxOSGZvSthg" name="C_GeneratedTypedElement">
+ <eAnnotations xmi:id="_Duar7hYIEdylxOSGZvSthg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6KIgINuZEdu40vrGR5q4gQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Duar7xYIEdylxOSGZvSthg" name="storageClass" ordered="false" unique="false" lowerBound="1" eType="_Duar9hYIEdylxOSGZvSthg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Duar8BYIEdylxOSGZvSthg" name="isPointer" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Duar8RYIEdylxOSGZvSthg" name="isConst" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Duar8hYIEdylxOSGZvSthg" name="isVolatile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Duar8xYIEdylxOSGZvSthg" name="base_TypedElement" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Duar9BYIEdylxOSGZvSthg" name="isAccessorGenerated" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Duar9RYIEdylxOSGZvSthg" name="acess" ordered="false" unique="false" lowerBound="1" eType="_Duar_RYIEdylxOSGZvSthg"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_Duar9hYIEdylxOSGZvSthg" name="StorageClass">
+ <eAnnotations xmi:id="_Duar9xYIEdylxOSGZvSthg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qO2yMNt4EduxXYGi8mOVFA"/>
+ <eLiterals xmi:id="_Duar-BYIEdylxOSGZvSthg" name="auto"/>
+ <eLiterals xmi:id="_Duar-RYIEdylxOSGZvSthg" name="register" value="1"/>
+ <eLiterals xmi:id="_Duar-hYIEdylxOSGZvSthg" name="extern" value="2"/>
+ <eLiterals xmi:id="_Duar-xYIEdylxOSGZvSthg" name="static" value="3"/>
+ <eLiterals xmi:id="_Duar_BYIEdylxOSGZvSthg" name="inline" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_Duar_RYIEdylxOSGZvSthg" name="AccessKind">
+ <eAnnotations xmi:id="_Duar_hYIEdylxOSGZvSthg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8b3rUBYHEdylxOSGZvSthg"/>
+ <eLiterals xmi:id="_Duar_xYIEdylxOSGZvSthg" name="read"/>
+ <eLiterals xmi:id="_DuasABYIEdylxOSGZvSthg" name="write" value="1"/>
+ <eLiterals xmi:id="_DuasARYIEdylxOSGZvSthg" name="readWrite" value="2"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_gkRrsBU-EdyGtuGaCXC25Q" name="CGenerator" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/CGenerator/_gkRErhU-EdyGtuGaCXC25Q/3" nsPrefix="CGenerator">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_gkRrsRU-EdyGtuGaCXC25Q" name="C_GeneratedType">
+ <eAnnotations xmi:id="_gkRrshU-EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_P2CwoBU6EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_gkRrsxU-EdyGtuGaCXC25Q" name="isQualifiedNameUsed" ordered="false" unique="false" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_gkRrtBU-EdyGtuGaCXC25Q" name="CName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_gkRrtRU-EdyGtuGaCXC25Q" name="extern" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_gkRrthU-EdyGtuGaCXC25Q" name="isNoCodeGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_gkRrtxU-EdyGtuGaCXC25Q" name="isNoCodeGeneratedForAll" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_gkRruBU-EdyGtuGaCXC25Q" name="isDynamicInstanciation" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_gkRruRU-EdyGtuGaCXC25Q" name="prefix" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_gkRruhU-EdyGtuGaCXC25Q" name="isFunctionGeneratedToSepcificFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_gkRruxU-EdyGtuGaCXC25Q" name="isAttributeNameUsed" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_gkRrvBU-EdyGtuGaCXC25Q" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_-Ep10RU9EdyGtuGaCXC25Q" name="CGenerator" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/CGenerator/_-Ep10BU9EdyGtuGaCXC25Q/2" nsPrefix="CGenerator">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_-Ep10hU9EdyGtuGaCXC25Q" name="C_GeneratedType">
+ <eAnnotations xmi:id="_-Ep10xU9EdyGtuGaCXC25Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_P2CwoBU6EdyGtuGaCXC25Q"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-Ep11BU9EdyGtuGaCXC25Q" name="isQualifiedNameUse" ordered="false" unique="false" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-Ep11RU9EdyGtuGaCXC25Q" name="CName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-Ep11hU9EdyGtuGaCXC25Q" name="extern" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-Ep11xU9EdyGtuGaCXC25Q" name="isNoCodeGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-Ep12BU9EdyGtuGaCXC25Q" name="isNoCodeGeneratedForAll" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-Ep12RU9EdyGtuGaCXC25Q" name="isDynamicInstanciation" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-Ep12hU9EdyGtuGaCXC25Q" name="prefix" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-Ep12xU9EdyGtuGaCXC25Q" name="isFunctionGeneratedToSepcificFile" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-Ep13BU9EdyGtuGaCXC25Q" name="isAttributeNameUsed" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-Ep13RU9EdyGtuGaCXC25Q" name="base_Type" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_NYwO0RU6EdyGtuGaCXC25Q" name="CGenerator" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/CGenerator/_NYwO0BU6EdyGtuGaCXC25Q/1" nsPrefix="CGenerator"/>
+ <contents xmi:type="ecore:EPackage" xmi:id="_IEYLIBU6EdyGtuGaCXC25Q" name="CGenerator" nsURI="http://src/com/cea/gen/c/profile/C_AINSI/schemas/CGenerator/_IEXkMhU6EdyGtuGaCXC25Q/0" nsPrefix="CGenerator"/>
+ </eAnnotations>
+ <elementImport xmi:id="_zgFD0BU9EdyGtuGaCXC25Q" alias="Type">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Type"/>
+ </elementImport>
+ <elementImport xmi:id="_FIQWYBiqEdyL78Gqc5OeNA" alias="Element">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Element"/>
+ </elementImport>
+ <elementImport xmi:id="_KpH0kBjDEdyfI_WOjDrRyg" alias="NamedElement">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#NamedElement"/>
+ </elementImport>
+ <elementImport xmi:id="_Hv59MBjuEdyGHM4pSbTixw" alias="Feature">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Feature"/>
+ </elementImport>
+ <elementImport xmi:id="_ONCjQBjvEdyGHM4pSbTixw" alias="TypedElement">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#TypedElement"/>
+ </elementImport>
+ <elementImport xmi:id="_fMxPABmYEdyYiu3uPO8AqQ" alias="Namespace">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Namespace"/>
+ </elementImport>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_P2CwoBU6EdyGtuGaCXC25Q" name="C_Type">
+ <ownedAttribute xmi:id="_tWFcMBU8EdyGtuGaCXC25Q" name="extern" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_1G9-kBU8EdyGtuGaCXC25Q" name="isDynamicInstanciation" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PQGDkBU9EdyGtuGaCXC25Q" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PQGqoBU9EdyGtuGaCXC25Q" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_PQHRsBU9EdyGtuGaCXC25Q" value="false"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_dTRqcBU9EdyGtuGaCXC25Q" name="isFunctionGeneratedToSepcificFile" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ty6FoBU9EdyGtuGaCXC25Q" name="isAttributeNameUsed" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_1fnSoBU9EdyGtuGaCXC25Q" name="base_Type" isUnique="false" association="_1fkPUBU9EdyGtuGaCXC25Q">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Type"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_1fkPUBU9EdyGtuGaCXC25Q" name="Extension_C_GeneratedType" memberEnd="_1fldcBU9EdyGtuGaCXC25Q _1fnSoBU9EdyGtuGaCXC25Q">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_1fldcBU9EdyGtuGaCXC25Q" name="extension_C_GeneratedType" type="_P2CwoBU6EdyGtuGaCXC25Q" aggregation="composite" association="_1fkPUBU9EdyGtuGaCXC25Q"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_6KIgINuZEdu40vrGR5q4gQ" name="C_Feature">
+ <ownedAttribute xmi:id="_0uTCMNucEdu40vrGR5q4gQ" name="storageClass" type="_qO2yMNt4EduxXYGi8mOVFA" isUnique="false">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0_czgD98EdyWndo1HgT9Ig"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0_f20D98EdyWndo1HgT9Ig" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_OrDCoNueEdu40vrGR5q4gQ" name="isPointer" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kKIFENt3EduxXYGi8mOVFA" name="isConst" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oVQBsNt3EduxXYGi8mOVFA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oVSd8Nt3EduxXYGi8mOVFA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_oVTsENt3EduxXYGi8mOVFA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kROLkNt3EduxXYGi8mOVFA" name="isVolatile" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_pQzD8Nt3EduxXYGi8mOVFA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_pQzD8dt3EduxXYGi8mOVFA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_pQzrANt3EduxXYGi8mOVFA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_2SkKwBYHEdylxOSGZvSthg" name="isAccessorsGenerated" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2kvDYBYIEdylxOSGZvSthg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2kw4kBYIEdylxOSGZvSthg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_2kytwBYIEdylxOSGZvSthg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_5ARHIBYHEdylxOSGZvSthg" name="acess" type="_8b3rUBYHEdylxOSGZvSthg" isUnique="false"/>
+ <ownedAttribute xmi:id="_JnhUMBjwEdyGHM4pSbTixw" name="isRestrict" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_3ydVcDnQEdyK9KOUzoZMXQ" name="bitLength" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8DZQEDnZEdyK9KOUzoZMXQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8DqV0DnZEdyK9KOUzoZMXQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_8Drj8DnZEdyK9KOUzoZMXQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_yrf4wcdtEd29as0ocaFXLw" name="base_TypedElement" isUnique="false" association="_yqmg4MdtEd29as0ocaFXLw">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#TypedElement"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_zur0EcdtEd29as0ocaFXLw" name="base_Feature" isUnique="false" association="_zt8NMMdtEd29as0ocaFXLw">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Feature"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_qO2yMNt4EduxXYGi8mOVFA" name="StorageClass">
+ <ownedLiteral xmi:id="_rv0OoNt4EduxXYGi8mOVFA" name="auto"/>
+ <ownedLiteral xmi:id="_r1uCUNt4EduxXYGi8mOVFA" name="register"/>
+ <ownedLiteral xmi:id="_r6qMsNt4EduxXYGi8mOVFA" name="extern"/>
+ <ownedLiteral xmi:id="_r_IdANt4EduxXYGi8mOVFA" name="static"/>
+ <ownedLiteral xmi:id="_ytqxkNt4EduxXYGi8mOVFA" name="inline"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_8b3rUBYHEdylxOSGZvSthg" name="AccessKind">
+ <ownedLiteral xmi:id="_9tPMkBYHEdylxOSGZvSthg" name="read"/>
+ <ownedLiteral xmi:id="_9y0QIBYHEdylxOSGZvSthg" name="write"/>
+ <ownedLiteral xmi:id="_-AI6cBYHEdylxOSGZvSthg" name="readWrite"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_CyQIURiqEdyL78Gqc5OeNA" name="NoGenCode">
+ <ownedAttribute xmi:id="_GS92ABiqEdyL78Gqc5OeNA" name="base_Element" isUnique="false" association="_GS6ysBiqEdyL78Gqc5OeNA">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Element"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_GS6ysBiqEdyL78Gqc5OeNA" name="Extension_NoGenCode" memberEnd="_GS8A0BiqEdyL78Gqc5OeNA _GS92ABiqEdyL78Gqc5OeNA">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_GS8A0BiqEdyL78Gqc5OeNA" name="extension_NoGenCode" type="_CyQIURiqEdyL78Gqc5OeNA" aggregation="composite" association="_GS6ysBiqEdyL78Gqc5OeNA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_93GTkBjCEdyfI_WOjDrRyg" name="C_NamedElement">
+ <ownedAttribute xmi:id="_pAD3IBU8EdyGtuGaCXC25Q" name="CName" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_aViuABU9EdyGtuGaCXC25Q" name="isVisibilityPrefix" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DHrR0RjCEdyfI_WOjDrRyg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DHtHABjCEdyfI_WOjDrRyg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_DHuVIBjCEdyfI_WOjDrRyg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lJpmQBU8EdyGtuGaCXC25Q" name="isQualifiedNameUsed" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dCxwUBU9EdyGtuGaCXC25Q"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dCzlgBU9EdyGtuGaCXC25Q" value="1"/>
+ <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_0wG9wBU8EdyGtuGaCXC25Q"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_MhhgoBjDEdyfI_WOjDrRyg" name="base_NamedElement" isUnique="false" association="_MhedUBjDEdyfI_WOjDrRyg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#NamedElement"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_MhedUBjDEdyfI_WOjDrRyg" name="Extension_GeneratedNamedElement" memberEnd="_MhfEYBjDEdyfI_WOjDrRyg _MhhgoBjDEdyfI_WOjDrRyg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_MhfEYBjDEdyfI_WOjDrRyg" name="extension_GeneratedNamedElement" type="_93GTkBjCEdyfI_WOjDrRyg" aggregation="composite" association="_MhedUBjDEdyfI_WOjDrRyg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_Zd610BmYEdyYiu3uPO8AqQ" name="Importer">
+ <ownedAttribute xmi:id="_aQdtEBmYEdyYiu3uPO8AqQ" name="importFile" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_gTDhoBmYEdyYiu3uPO8AqQ" name="base_Namespace" isUnique="false" association="_gS_3QBmYEdyYiu3uPO8AqQ">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Namespace"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_gS_3QBmYEdyYiu3uPO8AqQ" name="Extension_Imports" memberEnd="_gTAeUBmYEdyYiu3uPO8AqQ _gTDhoBmYEdyYiu3uPO8AqQ">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_gTAeUBmYEdyYiu3uPO8AqQ" name="extension_Imports" type="_Zd610BmYEdyYiu3uPO8AqQ" aggregation="composite" association="_gS_3QBmYEdyYiu3uPO8AqQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_yqmg4MdtEd29as0ocaFXLw" name="Extension_C_Feature" memberEnd="_yrf4wMdtEd29as0ocaFXLw _yrf4wcdtEd29as0ocaFXLw">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_yrf4wMdtEd29as0ocaFXLw" name="extension_C_Feature" type="_6KIgINuZEdu40vrGR5q4gQ" aggregation="composite" association="_yqmg4MdtEd29as0ocaFXLw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_zt8NMMdtEd29as0ocaFXLw" name="Extension_C_Feature" memberEnd="_zur0EMdtEd29as0ocaFXLw _zur0EcdtEd29as0ocaFXLw">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_zur0EMdtEd29as0ocaFXLw" name="extension_C_Feature" type="_6KIgINuZEdu40vrGR5q4gQ" aggregation="composite" association="_zt8NMMdtEd29as0ocaFXLw"/>
+ </packagedElement>
+ </packagedElement>
+</uml:Profile>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Array.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Array.java
new file mode 100644
index 00000000000..54cbd8163d2
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Array.java
@@ -0,0 +1,140 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Association;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Array</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.Array#getBase_parameter <em>Base parameter</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.Array#getDefinition <em>Definition</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.Array#getBase_property <em>Base property</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.Array#getBase_association <em>Base association</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getArray()
+ * @model
+ * @generated
+ */
+public interface Array extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base parameter</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base parameter</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base parameter</em>' reference.
+ * @see #setBase_parameter(Parameter)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getArray_Base_parameter()
+ * @model ordered="false"
+ * @generated
+ */
+ Parameter getBase_parameter();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.Array#getBase_parameter <em>Base parameter</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base parameter</em>' reference.
+ * @see #getBase_parameter()
+ * @generated
+ */
+ void setBase_parameter(Parameter value);
+
+ /**
+ * Returns the value of the '<em><b>Definition</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Definition</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Definition</em>' attribute.
+ * @see #setDefinition(String)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getArray_Definition()
+ * @model unique="false" dataType="org.eclipse.uml2.types.String" required="true" ordered="false"
+ * @generated
+ */
+ String getDefinition();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.Array#getDefinition <em>Definition</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Definition</em>' attribute.
+ * @see #getDefinition()
+ * @generated
+ */
+ void setDefinition(String value);
+
+ /**
+ * Returns the value of the '<em><b>Base property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base property</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base property</em>' reference.
+ * @see #setBase_property(Property)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getArray_Base_property()
+ * @model ordered="false"
+ * @generated
+ */
+ Property getBase_property();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.Array#getBase_property <em>Base property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base property</em>' reference.
+ * @see #getBase_property()
+ * @generated
+ */
+ void setBase_property(Property value);
+
+ /**
+ * Returns the value of the '<em><b>Base association</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base association</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base association</em>' reference.
+ * @see #setBase_association(Association)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getArray_Base_association()
+ * @model ordered="false"
+ * @generated
+ */
+ Association getBase_association();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.Array#getBase_association <em>Base association</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base association</em>' reference.
+ * @see #getBase_association()
+ * @generated
+ */
+ void setBase_association(Association value);
+
+} // Array
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/C_CppFactory.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/C_CppFactory.java
new file mode 100644
index 00000000000..23497620ac3
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/C_CppFactory.java
@@ -0,0 +1,268 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage
+ * @generated
+ */
+public interface C_CppFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ C_CppFactory eINSTANCE = org.eclipse.papyrus.C_Cpp.impl.C_CppFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Ptr</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Ptr</em>'.
+ * @generated
+ */
+ Ptr createPtr();
+
+ /**
+ * Returns a new object of class '<em>Include</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Include</em>'.
+ * @generated
+ */
+ Include createInclude();
+
+ /**
+ * Returns a new object of class '<em>Manual Generation</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Manual Generation</em>'.
+ * @generated
+ */
+ ManualGeneration createManualGeneration();
+
+ /**
+ * Returns a new object of class '<em>Extern Library</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Extern Library</em>'.
+ * @generated
+ */
+ ExternLibrary createExternLibrary();
+
+ /**
+ * Returns a new object of class '<em>No Code Gen</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>No Code Gen</em>'.
+ * @generated
+ */
+ NoCodeGen createNoCodeGen();
+
+ /**
+ * Returns a new object of class '<em>Cpp Root</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Cpp Root</em>'.
+ * @generated
+ */
+ CppRoot createCppRoot();
+
+ /**
+ * Returns a new object of class '<em>Array</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Array</em>'.
+ * @generated
+ */
+ Array createArray();
+
+ /**
+ * Returns a new object of class '<em>Const</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Const</em>'.
+ * @generated
+ */
+ Const createConst();
+
+ /**
+ * Returns a new object of class '<em>Ref</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Ref</em>'.
+ * @generated
+ */
+ Ref createRef();
+
+ /**
+ * Returns a new object of class '<em>External</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>External</em>'.
+ * @generated
+ */
+ External createExternal();
+
+ /**
+ * Returns a new object of class '<em>Const Init</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Const Init</em>'.
+ * @generated
+ */
+ ConstInit createConstInit();
+
+ /**
+ * Returns a new object of class '<em>Friend</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Friend</em>'.
+ * @generated
+ */
+ Friend createFriend();
+
+ /**
+ * Returns a new object of class '<em>Inline</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Inline</em>'.
+ * @generated
+ */
+ Inline createInline();
+
+ /**
+ * Returns a new object of class '<em>Virtual</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Virtual</em>'.
+ * @generated
+ */
+ Virtual createVirtual();
+
+ /**
+ * Returns a new object of class '<em>Typedef</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Typedef</em>'.
+ * @generated
+ */
+ Typedef createTypedef();
+
+ /**
+ * Returns a new object of class '<em>Visibility</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Visibility</em>'.
+ * @generated
+ */
+ Visibility createVisibility();
+
+ /**
+ * Returns a new object of class '<em>Cpp Init</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Cpp Init</em>'.
+ * @generated
+ */
+ CppInit createCppInit();
+
+ /**
+ * Returns a new object of class '<em>Template</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Template</em>'.
+ * @generated
+ */
+ Template createTemplate();
+
+ /**
+ * Returns a new object of class '<em>Template Binding</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Template Binding</em>'.
+ * @generated
+ */
+ TemplateBinding createTemplateBinding();
+
+ /**
+ * Returns a new object of class '<em>Template Parameter</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Template Parameter</em>'.
+ * @generated
+ */
+ TemplateParameter createTemplateParameter();
+
+ /**
+ * Returns a new object of class '<em>Union</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Union</em>'.
+ * @generated
+ */
+ Union createUnion();
+
+ /**
+ * Returns a new object of class '<em>Storage Class</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Storage Class</em>'.
+ * @generated
+ */
+ StorageClass createStorageClass();
+
+ /**
+ * Returns a new object of class '<em>Volatile</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Volatile</em>'.
+ * @generated
+ */
+ Volatile createVolatile();
+
+ /**
+ * Returns a new object of class '<em>Variadic</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Variadic</em>'.
+ * @generated
+ */
+ Variadic createVariadic();
+
+ /**
+ * Returns a new object of class '<em>Mutable</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Mutable</em>'.
+ * @generated
+ */
+ Mutable createMutable();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ C_CppPackage getC_CppPackage();
+
+} // C_CppFactory
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/C_CppPackage.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/C_CppPackage.java
new file mode 100644
index 00000000000..e58139c0869
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/C_CppPackage.java
@@ -0,0 +1,2980 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.C_CppFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface C_CppPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "C_Cpp"; //$NON-NLS-1$
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/papyrus/C_Cpp/1"; //$NON-NLS-1$
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "C_Cpp"; //$NON-NLS-1$
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ C_CppPackage eINSTANCE = org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.C_Cpp.impl.PtrImpl <em>Ptr</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.PtrImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getPtr()
+ * @generated
+ */
+ int PTR = 0;
+
+ /**
+ * The feature id for the '<em><b>Base parameter</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PTR__BASE_PARAMETER = 0;
+
+ /**
+ * The feature id for the '<em><b>Base property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PTR__BASE_PROPERTY = 1;
+
+ /**
+ * The feature id for the '<em><b>Declaration</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PTR__DECLARATION = 2;
+
+ /**
+ * The number of structural features of the '<em>Ptr</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PTR_FEATURE_COUNT = 3;
+
+ /**
+ * The number of operations of the '<em>Ptr</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PTR_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.C_Cpp.impl.IncludeImpl <em>Include</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.IncludeImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getInclude()
+ * @generated
+ */
+ int INCLUDE = 1;
+
+ /**
+ * The feature id for the '<em><b>Body</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INCLUDE__BODY = 0;
+
+ /**
+ * The feature id for the '<em><b>Pre Body</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INCLUDE__PRE_BODY = 1;
+
+ /**
+ * The feature id for the '<em><b>Header</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INCLUDE__HEADER = 2;
+
+ /**
+ * The feature id for the '<em><b>Base package</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INCLUDE__BASE_PACKAGE = 3;
+
+ /**
+ * The feature id for the '<em><b>Base class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INCLUDE__BASE_CLASS = 4;
+
+ /**
+ * The feature id for the '<em><b>Base Classifier</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INCLUDE__BASE_CLASSIFIER = 5;
+
+ /**
+ * The number of structural features of the '<em>Include</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INCLUDE_FEATURE_COUNT = 6;
+
+ /**
+ * The number of operations of the '<em>Include</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INCLUDE_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.C_Cpp.impl.ManualGenerationImpl <em>Manual Generation</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.ManualGenerationImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getManualGeneration()
+ * @generated
+ */
+ int MANUAL_GENERATION = 2;
+
+ /**
+ * The feature id for the '<em><b>Extension Body</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MANUAL_GENERATION__EXTENSION_BODY = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MANUAL_GENERATION__BASE_CLASS = 1;
+
+ /**
+ * The number of structural features of the '<em>Manual Generation</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MANUAL_GENERATION_FEATURE_COUNT = 2;
+
+ /**
+ * The number of operations of the '<em>Manual Generation</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MANUAL_GENERATION_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.C_Cpp.impl.ExternLibraryImpl <em>Extern Library</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.ExternLibraryImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getExternLibrary()
+ * @generated
+ */
+ int EXTERN_LIBRARY = 3;
+
+ /**
+ * The feature id for the '<em><b>Include Paths</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXTERN_LIBRARY__INCLUDE_PATHS = 0;
+
+ /**
+ * The feature id for the '<em><b>Base package</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXTERN_LIBRARY__BASE_PACKAGE = 1;
+
+ /**
+ * The feature id for the '<em><b>Lib Paths</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXTERN_LIBRARY__LIB_PATHS = 2;
+
+ /**
+ * The feature id for the '<em><b>Macros</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXTERN_LIBRARY__MACROS = 3;
+
+ /**
+ * The feature id for the '<em><b>Libs</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXTERN_LIBRARY__LIBS = 4;
+
+ /**
+ * The feature id for the '<em><b>Includes</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXTERN_LIBRARY__INCLUDES = 5;
+
+ /**
+ * The number of structural features of the '<em>Extern Library</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXTERN_LIBRARY_FEATURE_COUNT = 6;
+
+ /**
+ * The number of operations of the '<em>Extern Library</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXTERN_LIBRARY_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.C_Cpp.impl.NoCodeGenImpl <em>No Code Gen</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.NoCodeGenImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getNoCodeGen()
+ * @generated
+ */
+ int NO_CODE_GEN = 4;
+
+ /**
+ * The feature id for the '<em><b>Base element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NO_CODE_GEN__BASE_ELEMENT = 0;
+
+ /**
+ * The number of structural features of the '<em>No Code Gen</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NO_CODE_GEN_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>No Code Gen</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NO_CODE_GEN_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.C_Cpp.impl.CppRootImpl <em>Cpp Root</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.CppRootImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getCppRoot()
+ * @generated
+ */
+ int CPP_ROOT = 5;
+
+ /**
+ * The feature id for the '<em><b>Base package</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CPP_ROOT__BASE_PACKAGE = 0;
+
+ /**
+ * The number of structural features of the '<em>Cpp Root</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CPP_ROOT_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>Cpp Root</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CPP_ROOT_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.C_Cpp.impl.ArrayImpl <em>Array</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.ArrayImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getArray()
+ * @generated
+ */
+ int ARRAY = 6;
+
+ /**
+ * The feature id for the '<em><b>Base parameter</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARRAY__BASE_PARAMETER = 0;
+
+ /**
+ * The feature id for the '<em><b>Definition</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARRAY__DEFINITION = 1;
+
+ /**
+ * The feature id for the '<em><b>Base property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARRAY__BASE_PROPERTY = 2;
+
+ /**
+ * The feature id for the '<em><b>Base association</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARRAY__BASE_ASSOCIATION = 3;
+
+ /**
+ * The number of structural features of the '<em>Array</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARRAY_FEATURE_COUNT = 4;
+
+ /**
+ * The number of operations of the '<em>Array</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARRAY_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.C_Cpp.impl.ConstImpl <em>Const</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.ConstImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getConst()
+ * @generated
+ */
+ int CONST = 7;
+
+ /**
+ * The feature id for the '<em><b>Base parameter</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONST__BASE_PARAMETER = 0;
+
+ /**
+ * The feature id for the '<em><b>Base property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONST__BASE_PROPERTY = 1;
+
+ /**
+ * The feature id for the '<em><b>Base operation</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONST__BASE_OPERATION = 2;
+
+ /**
+ * The number of structural features of the '<em>Const</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONST_FEATURE_COUNT = 3;
+
+ /**
+ * The number of operations of the '<em>Const</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONST_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.C_Cpp.impl.RefImpl <em>Ref</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.RefImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getRef()
+ * @generated
+ */
+ int REF = 8;
+
+ /**
+ * The feature id for the '<em><b>Base parameter</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REF__BASE_PARAMETER = 0;
+
+ /**
+ * The feature id for the '<em><b>Base property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REF__BASE_PROPERTY = 1;
+
+ /**
+ * The number of structural features of the '<em>Ref</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REF_FEATURE_COUNT = 2;
+
+ /**
+ * The number of operations of the '<em>Ref</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REF_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.C_Cpp.impl.ExternalImpl <em>External</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.ExternalImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getExternal()
+ * @generated
+ */
+ int EXTERNAL = 9;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXTERNAL__NAME = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Classifier</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXTERNAL__BASE_CLASSIFIER = 1;
+
+ /**
+ * The number of structural features of the '<em>External</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXTERNAL_FEATURE_COUNT = 2;
+
+ /**
+ * The number of operations of the '<em>External</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXTERNAL_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.C_Cpp.impl.ConstInitImpl <em>Const Init</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.ConstInitImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getConstInit()
+ * @generated
+ */
+ int CONST_INIT = 10;
+
+ /**
+ * The feature id for the '<em><b>Initialisation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONST_INIT__INITIALISATION = 0;
+
+ /**
+ * The feature id for the '<em><b>Base operation</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONST_INIT__BASE_OPERATION = 1;
+
+ /**
+ * The number of structural features of the '<em>Const Init</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONST_INIT_FEATURE_COUNT = 2;
+
+ /**
+ * The number of operations of the '<em>Const Init</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONST_INIT_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.C_Cpp.impl.FriendImpl <em>Friend</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.FriendImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getFriend()
+ * @generated
+ */
+ int FRIEND = 11;
+
+ /**
+ * The feature id for the '<em><b>Base dependency</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FRIEND__BASE_DEPENDENCY = 0;
+
+ /**
+ * The feature id for the '<em><b>Base operation</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FRIEND__BASE_OPERATION = 1;
+
+ /**
+ * The number of structural features of the '<em>Friend</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FRIEND_FEATURE_COUNT = 2;
+
+ /**
+ * The number of operations of the '<em>Friend</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FRIEND_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.C_Cpp.impl.InlineImpl <em>Inline</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.InlineImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getInline()
+ * @generated
+ */
+ int INLINE = 12;
+
+ /**
+ * The feature id for the '<em><b>Base operation</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INLINE__BASE_OPERATION = 0;
+
+ /**
+ * The number of structural features of the '<em>Inline</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INLINE_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>Inline</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INLINE_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.C_Cpp.impl.VirtualImpl <em>Virtual</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.VirtualImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getVirtual()
+ * @generated
+ */
+ int VIRTUAL = 13;
+
+ /**
+ * The feature id for the '<em><b>Base operation</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIRTUAL__BASE_OPERATION = 0;
+
+ /**
+ * The number of structural features of the '<em>Virtual</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIRTUAL_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>Virtual</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIRTUAL_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.C_Cpp.impl.TypedefImpl <em>Typedef</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.TypedefImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getTypedef()
+ * @generated
+ */
+ int TYPEDEF = 14;
+
+ /**
+ * The feature id for the '<em><b>Definition</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TYPEDEF__DEFINITION = 0;
+
+ /**
+ * The feature id for the '<em><b>Base primitivetype</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TYPEDEF__BASE_PRIMITIVETYPE = 1;
+
+ /**
+ * The number of structural features of the '<em>Typedef</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TYPEDEF_FEATURE_COUNT = 2;
+
+ /**
+ * The number of operations of the '<em>Typedef</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TYPEDEF_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.C_Cpp.impl.VisibilityImpl <em>Visibility</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.VisibilityImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getVisibility()
+ * @generated
+ */
+ int VISIBILITY = 15;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VISIBILITY__VALUE = 0;
+
+ /**
+ * The feature id for the '<em><b>Base generalization</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VISIBILITY__BASE_GENERALIZATION = 1;
+
+ /**
+ * The number of structural features of the '<em>Visibility</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VISIBILITY_FEATURE_COUNT = 2;
+
+ /**
+ * The number of operations of the '<em>Visibility</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VISIBILITY_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.C_Cpp.impl.CppInitImpl <em>Cpp Init</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.CppInitImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getCppInit()
+ * @generated
+ */
+ int CPP_INIT = 16;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CPP_INIT__VALUE = 0;
+
+ /**
+ * The feature id for the '<em><b>Base enumerationliteral</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CPP_INIT__BASE_ENUMERATIONLITERAL = 1;
+
+ /**
+ * The number of structural features of the '<em>Cpp Init</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CPP_INIT_FEATURE_COUNT = 2;
+
+ /**
+ * The number of operations of the '<em>Cpp Init</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CPP_INIT_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.C_Cpp.impl.TemplateImpl <em>Template</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.TemplateImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getTemplate()
+ * @generated
+ */
+ int TEMPLATE = 17;
+
+ /**
+ * The feature id for the '<em><b>Declaration</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPLATE__DECLARATION = 0;
+
+ /**
+ * The feature id for the '<em><b>Base class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPLATE__BASE_CLASS = 1;
+
+ /**
+ * The number of structural features of the '<em>Template</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPLATE_FEATURE_COUNT = 2;
+
+ /**
+ * The number of operations of the '<em>Template</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPLATE_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.C_Cpp.impl.TemplateBindingImpl <em>Template Binding</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.TemplateBindingImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getTemplateBinding()
+ * @generated
+ */
+ int TEMPLATE_BINDING = 18;
+
+ /**
+ * The feature id for the '<em><b>Binding</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPLATE_BINDING__BINDING = 0;
+
+ /**
+ * The feature id for the '<em><b>Base templatebinding</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPLATE_BINDING__BASE_TEMPLATEBINDING = 1;
+
+ /**
+ * The number of structural features of the '<em>Template Binding</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPLATE_BINDING_FEATURE_COUNT = 2;
+
+ /**
+ * The number of operations of the '<em>Template Binding</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPLATE_BINDING_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.C_Cpp.impl.TemplateParameterImpl <em>Template Parameter</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.TemplateParameterImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getTemplateParameter()
+ * @generated
+ */
+ int TEMPLATE_PARAMETER = 19;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPLATE_PARAMETER__NAME = 0;
+
+ /**
+ * The feature id for the '<em><b>Base templateparameter</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPLATE_PARAMETER__BASE_TEMPLATEPARAMETER = 1;
+
+ /**
+ * The number of structural features of the '<em>Template Parameter</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPLATE_PARAMETER_FEATURE_COUNT = 2;
+
+ /**
+ * The number of operations of the '<em>Template Parameter</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPLATE_PARAMETER_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.C_Cpp.impl.UnionImpl <em>Union</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.UnionImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getUnion()
+ * @generated
+ */
+ int UNION = 20;
+
+ /**
+ * The feature id for the '<em><b>Base Data Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UNION__BASE_DATA_TYPE = 0;
+
+ /**
+ * The number of structural features of the '<em>Union</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UNION_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>Union</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UNION_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.C_Cpp.impl.StorageClassImpl <em>Storage Class</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.StorageClassImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getStorageClass()
+ * @generated
+ */
+ int STORAGE_CLASS = 21;
+
+ /**
+ * The feature id for the '<em><b>Storage Class</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STORAGE_CLASS__STORAGE_CLASS = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STORAGE_CLASS__BASE_PROPERTY = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Parameter</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STORAGE_CLASS__BASE_PARAMETER = 2;
+
+ /**
+ * The number of structural features of the '<em>Storage Class</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STORAGE_CLASS_FEATURE_COUNT = 3;
+
+ /**
+ * The number of operations of the '<em>Storage Class</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STORAGE_CLASS_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.C_Cpp.impl.VolatileImpl <em>Volatile</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.VolatileImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getVolatile()
+ * @generated
+ */
+ int VOLATILE = 22;
+
+ /**
+ * The feature id for the '<em><b>Base parameter</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VOLATILE__BASE_PARAMETER = 0;
+
+ /**
+ * The feature id for the '<em><b>Base property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VOLATILE__BASE_PROPERTY = 1;
+
+ /**
+ * The feature id for the '<em><b>Base operation</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VOLATILE__BASE_OPERATION = 2;
+
+ /**
+ * The number of structural features of the '<em>Volatile</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VOLATILE_FEATURE_COUNT = 3;
+
+ /**
+ * The number of operations of the '<em>Volatile</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VOLATILE_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.C_Cpp.impl.VariadicImpl <em>Variadic</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.VariadicImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getVariadic()
+ * @generated
+ */
+ int VARIADIC = 23;
+
+ /**
+ * The feature id for the '<em><b>Base operation</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIADIC__BASE_OPERATION = 0;
+
+ /**
+ * The number of structural features of the '<em>Variadic</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIADIC_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>Variadic</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIADIC_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.C_Cpp.impl.MutableImpl <em>Mutable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.MutableImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getMutable()
+ * @generated
+ */
+ int MUTABLE = 24;
+
+ /**
+ * The feature id for the '<em><b>Base property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MUTABLE__BASE_PROPERTY = 0;
+
+ /**
+ * The number of structural features of the '<em>Mutable</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MUTABLE_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>Mutable</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MUTABLE_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.C_Cpp.VisibilityKind <em>Visibility Kind</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.VisibilityKind
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getVisibilityKind()
+ * @generated
+ */
+ int VISIBILITY_KIND = 25;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.C_Cpp.EAccessKind <em>EAccess Kind</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.EAccessKind
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getEAccessKind()
+ * @generated
+ */
+ int EACCESS_KIND = 26;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.C_Cpp.EStorageClass <em>EStorage Class</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.EStorageClass
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getEStorageClass()
+ * @generated
+ */
+ int ESTORAGE_CLASS = 27;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.C_Cpp.Ptr <em>Ptr</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Ptr</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Ptr
+ * @generated
+ */
+ EClass getPtr();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.Ptr#getBase_parameter <em>Base parameter</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base parameter</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Ptr#getBase_parameter()
+ * @see #getPtr()
+ * @generated
+ */
+ EReference getPtr_Base_parameter();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.Ptr#getBase_property <em>Base property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base property</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Ptr#getBase_property()
+ * @see #getPtr()
+ * @generated
+ */
+ EReference getPtr_Base_property();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.C_Cpp.Ptr#getDeclaration <em>Declaration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Declaration</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Ptr#getDeclaration()
+ * @see #getPtr()
+ * @generated
+ */
+ EAttribute getPtr_Declaration();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.C_Cpp.Include <em>Include</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Include</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Include
+ * @generated
+ */
+ EClass getInclude();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.C_Cpp.Include#getBody <em>Body</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Body</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Include#getBody()
+ * @see #getInclude()
+ * @generated
+ */
+ EAttribute getInclude_Body();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.C_Cpp.Include#getPreBody <em>Pre Body</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Pre Body</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Include#getPreBody()
+ * @see #getInclude()
+ * @generated
+ */
+ EAttribute getInclude_PreBody();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.C_Cpp.Include#getHeader <em>Header</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Header</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Include#getHeader()
+ * @see #getInclude()
+ * @generated
+ */
+ EAttribute getInclude_Header();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.Include#getBase_package <em>Base package</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base package</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Include#getBase_package()
+ * @see #getInclude()
+ * @generated
+ */
+ EReference getInclude_Base_package();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.Include#getBase_class <em>Base class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base class</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Include#getBase_class()
+ * @see #getInclude()
+ * @generated
+ */
+ EReference getInclude_Base_class();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.Include#getBase_Classifier <em>Base Classifier</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Classifier</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Include#getBase_Classifier()
+ * @see #getInclude()
+ * @generated
+ */
+ EReference getInclude_Base_Classifier();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.C_Cpp.ManualGeneration <em>Manual Generation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Manual Generation</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.ManualGeneration
+ * @generated
+ */
+ EClass getManualGeneration();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.C_Cpp.ManualGeneration#getExtensionBody <em>Extension Body</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Extension Body</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.ManualGeneration#getExtensionBody()
+ * @see #getManualGeneration()
+ * @generated
+ */
+ EAttribute getManualGeneration_ExtensionBody();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.ManualGeneration#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.ManualGeneration#getBase_Class()
+ * @see #getManualGeneration()
+ * @generated
+ */
+ EReference getManualGeneration_Base_Class();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.C_Cpp.ExternLibrary <em>Extern Library</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Extern Library</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.ExternLibrary
+ * @generated
+ */
+ EClass getExternLibrary();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.C_Cpp.ExternLibrary#getIncludePaths <em>Include Paths</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Include Paths</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.ExternLibrary#getIncludePaths()
+ * @see #getExternLibrary()
+ * @generated
+ */
+ EAttribute getExternLibrary_IncludePaths();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.ExternLibrary#getBase_package <em>Base package</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base package</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.ExternLibrary#getBase_package()
+ * @see #getExternLibrary()
+ * @generated
+ */
+ EReference getExternLibrary_Base_package();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.C_Cpp.ExternLibrary#getLibPaths <em>Lib Paths</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Lib Paths</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.ExternLibrary#getLibPaths()
+ * @see #getExternLibrary()
+ * @generated
+ */
+ EAttribute getExternLibrary_LibPaths();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.C_Cpp.ExternLibrary#getMacros <em>Macros</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Macros</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.ExternLibrary#getMacros()
+ * @see #getExternLibrary()
+ * @generated
+ */
+ EAttribute getExternLibrary_Macros();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.C_Cpp.ExternLibrary#getLibs <em>Libs</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Libs</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.ExternLibrary#getLibs()
+ * @see #getExternLibrary()
+ * @generated
+ */
+ EAttribute getExternLibrary_Libs();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.C_Cpp.ExternLibrary#getIncludes <em>Includes</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Includes</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.ExternLibrary#getIncludes()
+ * @see #getExternLibrary()
+ * @generated
+ */
+ EAttribute getExternLibrary_Includes();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.C_Cpp.NoCodeGen <em>No Code Gen</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>No Code Gen</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.NoCodeGen
+ * @generated
+ */
+ EClass getNoCodeGen();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.NoCodeGen#getBase_element <em>Base element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base element</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.NoCodeGen#getBase_element()
+ * @see #getNoCodeGen()
+ * @generated
+ */
+ EReference getNoCodeGen_Base_element();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.C_Cpp.CppRoot <em>Cpp Root</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Cpp Root</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.CppRoot
+ * @generated
+ */
+ EClass getCppRoot();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.CppRoot#getBase_package <em>Base package</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base package</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.CppRoot#getBase_package()
+ * @see #getCppRoot()
+ * @generated
+ */
+ EReference getCppRoot_Base_package();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.C_Cpp.Array <em>Array</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Array</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Array
+ * @generated
+ */
+ EClass getArray();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.Array#getBase_parameter <em>Base parameter</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base parameter</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Array#getBase_parameter()
+ * @see #getArray()
+ * @generated
+ */
+ EReference getArray_Base_parameter();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.C_Cpp.Array#getDefinition <em>Definition</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Definition</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Array#getDefinition()
+ * @see #getArray()
+ * @generated
+ */
+ EAttribute getArray_Definition();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.Array#getBase_property <em>Base property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base property</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Array#getBase_property()
+ * @see #getArray()
+ * @generated
+ */
+ EReference getArray_Base_property();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.Array#getBase_association <em>Base association</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base association</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Array#getBase_association()
+ * @see #getArray()
+ * @generated
+ */
+ EReference getArray_Base_association();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.C_Cpp.Const <em>Const</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Const</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Const
+ * @generated
+ */
+ EClass getConst();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.Const#getBase_parameter <em>Base parameter</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base parameter</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Const#getBase_parameter()
+ * @see #getConst()
+ * @generated
+ */
+ EReference getConst_Base_parameter();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.Const#getBase_property <em>Base property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base property</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Const#getBase_property()
+ * @see #getConst()
+ * @generated
+ */
+ EReference getConst_Base_property();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.Const#getBase_operation <em>Base operation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base operation</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Const#getBase_operation()
+ * @see #getConst()
+ * @generated
+ */
+ EReference getConst_Base_operation();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.C_Cpp.Ref <em>Ref</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Ref</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Ref
+ * @generated
+ */
+ EClass getRef();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.Ref#getBase_parameter <em>Base parameter</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base parameter</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Ref#getBase_parameter()
+ * @see #getRef()
+ * @generated
+ */
+ EReference getRef_Base_parameter();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.Ref#getBase_property <em>Base property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base property</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Ref#getBase_property()
+ * @see #getRef()
+ * @generated
+ */
+ EReference getRef_Base_property();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.C_Cpp.External <em>External</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>External</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.External
+ * @generated
+ */
+ EClass getExternal();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.C_Cpp.External#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.External#getName()
+ * @see #getExternal()
+ * @generated
+ */
+ EAttribute getExternal_Name();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.External#getBase_Classifier <em>Base Classifier</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Classifier</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.External#getBase_Classifier()
+ * @see #getExternal()
+ * @generated
+ */
+ EReference getExternal_Base_Classifier();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.C_Cpp.ConstInit <em>Const Init</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Const Init</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.ConstInit
+ * @generated
+ */
+ EClass getConstInit();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.C_Cpp.ConstInit#getInitialisation <em>Initialisation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Initialisation</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.ConstInit#getInitialisation()
+ * @see #getConstInit()
+ * @generated
+ */
+ EAttribute getConstInit_Initialisation();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.ConstInit#getBase_operation <em>Base operation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base operation</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.ConstInit#getBase_operation()
+ * @see #getConstInit()
+ * @generated
+ */
+ EReference getConstInit_Base_operation();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.C_Cpp.Friend <em>Friend</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Friend</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Friend
+ * @generated
+ */
+ EClass getFriend();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.Friend#getBase_dependency <em>Base dependency</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base dependency</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Friend#getBase_dependency()
+ * @see #getFriend()
+ * @generated
+ */
+ EReference getFriend_Base_dependency();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.Friend#getBase_operation <em>Base operation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base operation</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Friend#getBase_operation()
+ * @see #getFriend()
+ * @generated
+ */
+ EReference getFriend_Base_operation();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.C_Cpp.Inline <em>Inline</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Inline</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Inline
+ * @generated
+ */
+ EClass getInline();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.Inline#getBase_operation <em>Base operation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base operation</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Inline#getBase_operation()
+ * @see #getInline()
+ * @generated
+ */
+ EReference getInline_Base_operation();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.C_Cpp.Virtual <em>Virtual</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Virtual</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Virtual
+ * @generated
+ */
+ EClass getVirtual();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.Virtual#getBase_operation <em>Base operation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base operation</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Virtual#getBase_operation()
+ * @see #getVirtual()
+ * @generated
+ */
+ EReference getVirtual_Base_operation();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.C_Cpp.Typedef <em>Typedef</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Typedef</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Typedef
+ * @generated
+ */
+ EClass getTypedef();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.C_Cpp.Typedef#getDefinition <em>Definition</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Definition</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Typedef#getDefinition()
+ * @see #getTypedef()
+ * @generated
+ */
+ EAttribute getTypedef_Definition();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.Typedef#getBase_primitivetype <em>Base primitivetype</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base primitivetype</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Typedef#getBase_primitivetype()
+ * @see #getTypedef()
+ * @generated
+ */
+ EReference getTypedef_Base_primitivetype();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.C_Cpp.Visibility <em>Visibility</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Visibility</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Visibility
+ * @generated
+ */
+ EClass getVisibility();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.C_Cpp.Visibility#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Visibility#getValue()
+ * @see #getVisibility()
+ * @generated
+ */
+ EAttribute getVisibility_Value();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.Visibility#getBase_generalization <em>Base generalization</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base generalization</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Visibility#getBase_generalization()
+ * @see #getVisibility()
+ * @generated
+ */
+ EReference getVisibility_Base_generalization();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.C_Cpp.CppInit <em>Cpp Init</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Cpp Init</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.CppInit
+ * @generated
+ */
+ EClass getCppInit();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.C_Cpp.CppInit#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.CppInit#getValue()
+ * @see #getCppInit()
+ * @generated
+ */
+ EAttribute getCppInit_Value();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.CppInit#getBase_enumerationliteral <em>Base enumerationliteral</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base enumerationliteral</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.CppInit#getBase_enumerationliteral()
+ * @see #getCppInit()
+ * @generated
+ */
+ EReference getCppInit_Base_enumerationliteral();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.C_Cpp.Template <em>Template</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Template</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Template
+ * @generated
+ */
+ EClass getTemplate();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.C_Cpp.Template#getDeclaration <em>Declaration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Declaration</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Template#getDeclaration()
+ * @see #getTemplate()
+ * @generated
+ */
+ EAttribute getTemplate_Declaration();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.Template#getBase_class <em>Base class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base class</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Template#getBase_class()
+ * @see #getTemplate()
+ * @generated
+ */
+ EReference getTemplate_Base_class();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.C_Cpp.TemplateBinding <em>Template Binding</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Template Binding</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.TemplateBinding
+ * @generated
+ */
+ EClass getTemplateBinding();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.C_Cpp.TemplateBinding#getBinding <em>Binding</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Binding</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.TemplateBinding#getBinding()
+ * @see #getTemplateBinding()
+ * @generated
+ */
+ EAttribute getTemplateBinding_Binding();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.TemplateBinding#getBase_templatebinding <em>Base templatebinding</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base templatebinding</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.TemplateBinding#getBase_templatebinding()
+ * @see #getTemplateBinding()
+ * @generated
+ */
+ EReference getTemplateBinding_Base_templatebinding();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.C_Cpp.TemplateParameter <em>Template Parameter</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Template Parameter</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.TemplateParameter
+ * @generated
+ */
+ EClass getTemplateParameter();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.C_Cpp.TemplateParameter#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.TemplateParameter#getName()
+ * @see #getTemplateParameter()
+ * @generated
+ */
+ EAttribute getTemplateParameter_Name();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.TemplateParameter#getBase_templateparameter <em>Base templateparameter</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base templateparameter</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.TemplateParameter#getBase_templateparameter()
+ * @see #getTemplateParameter()
+ * @generated
+ */
+ EReference getTemplateParameter_Base_templateparameter();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.C_Cpp.Union <em>Union</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Union</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Union
+ * @generated
+ */
+ EClass getUnion();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.Union#getBase_DataType <em>Base Data Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Data Type</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Union#getBase_DataType()
+ * @see #getUnion()
+ * @generated
+ */
+ EReference getUnion_Base_DataType();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.C_Cpp.StorageClass <em>Storage Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Storage Class</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.StorageClass
+ * @generated
+ */
+ EClass getStorageClass();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.C_Cpp.StorageClass#getStorageClass <em>Storage Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Storage Class</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.StorageClass#getStorageClass()
+ * @see #getStorageClass()
+ * @generated
+ */
+ EAttribute getStorageClass_StorageClass();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.StorageClass#getBase_Property <em>Base Property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Property</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.StorageClass#getBase_Property()
+ * @see #getStorageClass()
+ * @generated
+ */
+ EReference getStorageClass_Base_Property();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.StorageClass#getBase_Parameter <em>Base Parameter</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Parameter</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.StorageClass#getBase_Parameter()
+ * @see #getStorageClass()
+ * @generated
+ */
+ EReference getStorageClass_Base_Parameter();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.C_Cpp.Volatile <em>Volatile</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Volatile</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Volatile
+ * @generated
+ */
+ EClass getVolatile();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.Volatile#getBase_parameter <em>Base parameter</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base parameter</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Volatile#getBase_parameter()
+ * @see #getVolatile()
+ * @generated
+ */
+ EReference getVolatile_Base_parameter();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.Volatile#getBase_property <em>Base property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base property</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Volatile#getBase_property()
+ * @see #getVolatile()
+ * @generated
+ */
+ EReference getVolatile_Base_property();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.Volatile#getBase_operation <em>Base operation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base operation</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Volatile#getBase_operation()
+ * @see #getVolatile()
+ * @generated
+ */
+ EReference getVolatile_Base_operation();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.C_Cpp.Variadic <em>Variadic</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Variadic</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Variadic
+ * @generated
+ */
+ EClass getVariadic();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.Variadic#getBase_operation <em>Base operation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base operation</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Variadic#getBase_operation()
+ * @see #getVariadic()
+ * @generated
+ */
+ EReference getVariadic_Base_operation();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.C_Cpp.Mutable <em>Mutable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Mutable</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Mutable
+ * @generated
+ */
+ EClass getMutable();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.C_Cpp.Mutable#getBase_property <em>Base property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base property</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.Mutable#getBase_property()
+ * @see #getMutable()
+ * @generated
+ */
+ EReference getMutable_Base_property();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.papyrus.C_Cpp.VisibilityKind <em>Visibility Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Visibility Kind</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.VisibilityKind
+ * @generated
+ */
+ EEnum getVisibilityKind();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.papyrus.C_Cpp.EAccessKind <em>EAccess Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>EAccess Kind</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.EAccessKind
+ * @generated
+ */
+ EEnum getEAccessKind();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.papyrus.C_Cpp.EStorageClass <em>EStorage Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>EStorage Class</em>'.
+ * @see org.eclipse.papyrus.C_Cpp.EStorageClass
+ * @generated
+ */
+ EEnum getEStorageClass();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ C_CppFactory getC_CppFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.C_Cpp.impl.PtrImpl <em>Ptr</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.PtrImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getPtr()
+ * @generated
+ */
+ EClass PTR = eINSTANCE.getPtr();
+
+ /**
+ * The meta object literal for the '<em><b>Base parameter</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PTR__BASE_PARAMETER = eINSTANCE.getPtr_Base_parameter();
+
+ /**
+ * The meta object literal for the '<em><b>Base property</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PTR__BASE_PROPERTY = eINSTANCE.getPtr_Base_property();
+
+ /**
+ * The meta object literal for the '<em><b>Declaration</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PTR__DECLARATION = eINSTANCE.getPtr_Declaration();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.C_Cpp.impl.IncludeImpl <em>Include</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.IncludeImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getInclude()
+ * @generated
+ */
+ EClass INCLUDE = eINSTANCE.getInclude();
+
+ /**
+ * The meta object literal for the '<em><b>Body</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute INCLUDE__BODY = eINSTANCE.getInclude_Body();
+
+ /**
+ * The meta object literal for the '<em><b>Pre Body</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute INCLUDE__PRE_BODY = eINSTANCE.getInclude_PreBody();
+
+ /**
+ * The meta object literal for the '<em><b>Header</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute INCLUDE__HEADER = eINSTANCE.getInclude_Header();
+
+ /**
+ * The meta object literal for the '<em><b>Base package</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INCLUDE__BASE_PACKAGE = eINSTANCE.getInclude_Base_package();
+
+ /**
+ * The meta object literal for the '<em><b>Base class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INCLUDE__BASE_CLASS = eINSTANCE.getInclude_Base_class();
+
+ /**
+ * The meta object literal for the '<em><b>Base Classifier</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INCLUDE__BASE_CLASSIFIER = eINSTANCE.getInclude_Base_Classifier();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.C_Cpp.impl.ManualGenerationImpl <em>Manual Generation</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.ManualGenerationImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getManualGeneration()
+ * @generated
+ */
+ EClass MANUAL_GENERATION = eINSTANCE.getManualGeneration();
+
+ /**
+ * The meta object literal for the '<em><b>Extension Body</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MANUAL_GENERATION__EXTENSION_BODY = eINSTANCE.getManualGeneration_ExtensionBody();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MANUAL_GENERATION__BASE_CLASS = eINSTANCE.getManualGeneration_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.C_Cpp.impl.ExternLibraryImpl <em>Extern Library</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.ExternLibraryImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getExternLibrary()
+ * @generated
+ */
+ EClass EXTERN_LIBRARY = eINSTANCE.getExternLibrary();
+
+ /**
+ * The meta object literal for the '<em><b>Include Paths</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EXTERN_LIBRARY__INCLUDE_PATHS = eINSTANCE.getExternLibrary_IncludePaths();
+
+ /**
+ * The meta object literal for the '<em><b>Base package</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference EXTERN_LIBRARY__BASE_PACKAGE = eINSTANCE.getExternLibrary_Base_package();
+
+ /**
+ * The meta object literal for the '<em><b>Lib Paths</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EXTERN_LIBRARY__LIB_PATHS = eINSTANCE.getExternLibrary_LibPaths();
+
+ /**
+ * The meta object literal for the '<em><b>Macros</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EXTERN_LIBRARY__MACROS = eINSTANCE.getExternLibrary_Macros();
+
+ /**
+ * The meta object literal for the '<em><b>Libs</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EXTERN_LIBRARY__LIBS = eINSTANCE.getExternLibrary_Libs();
+
+ /**
+ * The meta object literal for the '<em><b>Includes</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EXTERN_LIBRARY__INCLUDES = eINSTANCE.getExternLibrary_Includes();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.C_Cpp.impl.NoCodeGenImpl <em>No Code Gen</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.NoCodeGenImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getNoCodeGen()
+ * @generated
+ */
+ EClass NO_CODE_GEN = eINSTANCE.getNoCodeGen();
+
+ /**
+ * The meta object literal for the '<em><b>Base element</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference NO_CODE_GEN__BASE_ELEMENT = eINSTANCE.getNoCodeGen_Base_element();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.C_Cpp.impl.CppRootImpl <em>Cpp Root</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.CppRootImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getCppRoot()
+ * @generated
+ */
+ EClass CPP_ROOT = eINSTANCE.getCppRoot();
+
+ /**
+ * The meta object literal for the '<em><b>Base package</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CPP_ROOT__BASE_PACKAGE = eINSTANCE.getCppRoot_Base_package();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.C_Cpp.impl.ArrayImpl <em>Array</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.ArrayImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getArray()
+ * @generated
+ */
+ EClass ARRAY = eINSTANCE.getArray();
+
+ /**
+ * The meta object literal for the '<em><b>Base parameter</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ARRAY__BASE_PARAMETER = eINSTANCE.getArray_Base_parameter();
+
+ /**
+ * The meta object literal for the '<em><b>Definition</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ARRAY__DEFINITION = eINSTANCE.getArray_Definition();
+
+ /**
+ * The meta object literal for the '<em><b>Base property</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ARRAY__BASE_PROPERTY = eINSTANCE.getArray_Base_property();
+
+ /**
+ * The meta object literal for the '<em><b>Base association</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ARRAY__BASE_ASSOCIATION = eINSTANCE.getArray_Base_association();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.C_Cpp.impl.ConstImpl <em>Const</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.ConstImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getConst()
+ * @generated
+ */
+ EClass CONST = eINSTANCE.getConst();
+
+ /**
+ * The meta object literal for the '<em><b>Base parameter</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONST__BASE_PARAMETER = eINSTANCE.getConst_Base_parameter();
+
+ /**
+ * The meta object literal for the '<em><b>Base property</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONST__BASE_PROPERTY = eINSTANCE.getConst_Base_property();
+
+ /**
+ * The meta object literal for the '<em><b>Base operation</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONST__BASE_OPERATION = eINSTANCE.getConst_Base_operation();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.C_Cpp.impl.RefImpl <em>Ref</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.RefImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getRef()
+ * @generated
+ */
+ EClass REF = eINSTANCE.getRef();
+
+ /**
+ * The meta object literal for the '<em><b>Base parameter</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference REF__BASE_PARAMETER = eINSTANCE.getRef_Base_parameter();
+
+ /**
+ * The meta object literal for the '<em><b>Base property</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference REF__BASE_PROPERTY = eINSTANCE.getRef_Base_property();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.C_Cpp.impl.ExternalImpl <em>External</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.ExternalImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getExternal()
+ * @generated
+ */
+ EClass EXTERNAL = eINSTANCE.getExternal();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EXTERNAL__NAME = eINSTANCE.getExternal_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Base Classifier</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference EXTERNAL__BASE_CLASSIFIER = eINSTANCE.getExternal_Base_Classifier();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.C_Cpp.impl.ConstInitImpl <em>Const Init</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.ConstInitImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getConstInit()
+ * @generated
+ */
+ EClass CONST_INIT = eINSTANCE.getConstInit();
+
+ /**
+ * The meta object literal for the '<em><b>Initialisation</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CONST_INIT__INITIALISATION = eINSTANCE.getConstInit_Initialisation();
+
+ /**
+ * The meta object literal for the '<em><b>Base operation</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONST_INIT__BASE_OPERATION = eINSTANCE.getConstInit_Base_operation();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.C_Cpp.impl.FriendImpl <em>Friend</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.FriendImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getFriend()
+ * @generated
+ */
+ EClass FRIEND = eINSTANCE.getFriend();
+
+ /**
+ * The meta object literal for the '<em><b>Base dependency</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FRIEND__BASE_DEPENDENCY = eINSTANCE.getFriend_Base_dependency();
+
+ /**
+ * The meta object literal for the '<em><b>Base operation</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FRIEND__BASE_OPERATION = eINSTANCE.getFriend_Base_operation();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.C_Cpp.impl.InlineImpl <em>Inline</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.InlineImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getInline()
+ * @generated
+ */
+ EClass INLINE = eINSTANCE.getInline();
+
+ /**
+ * The meta object literal for the '<em><b>Base operation</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INLINE__BASE_OPERATION = eINSTANCE.getInline_Base_operation();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.C_Cpp.impl.VirtualImpl <em>Virtual</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.VirtualImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getVirtual()
+ * @generated
+ */
+ EClass VIRTUAL = eINSTANCE.getVirtual();
+
+ /**
+ * The meta object literal for the '<em><b>Base operation</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference VIRTUAL__BASE_OPERATION = eINSTANCE.getVirtual_Base_operation();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.C_Cpp.impl.TypedefImpl <em>Typedef</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.TypedefImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getTypedef()
+ * @generated
+ */
+ EClass TYPEDEF = eINSTANCE.getTypedef();
+
+ /**
+ * The meta object literal for the '<em><b>Definition</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TYPEDEF__DEFINITION = eINSTANCE.getTypedef_Definition();
+
+ /**
+ * The meta object literal for the '<em><b>Base primitivetype</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TYPEDEF__BASE_PRIMITIVETYPE = eINSTANCE.getTypedef_Base_primitivetype();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.C_Cpp.impl.VisibilityImpl <em>Visibility</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.VisibilityImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getVisibility()
+ * @generated
+ */
+ EClass VISIBILITY = eINSTANCE.getVisibility();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute VISIBILITY__VALUE = eINSTANCE.getVisibility_Value();
+
+ /**
+ * The meta object literal for the '<em><b>Base generalization</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference VISIBILITY__BASE_GENERALIZATION = eINSTANCE.getVisibility_Base_generalization();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.C_Cpp.impl.CppInitImpl <em>Cpp Init</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.CppInitImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getCppInit()
+ * @generated
+ */
+ EClass CPP_INIT = eINSTANCE.getCppInit();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CPP_INIT__VALUE = eINSTANCE.getCppInit_Value();
+
+ /**
+ * The meta object literal for the '<em><b>Base enumerationliteral</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CPP_INIT__BASE_ENUMERATIONLITERAL = eINSTANCE.getCppInit_Base_enumerationliteral();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.C_Cpp.impl.TemplateImpl <em>Template</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.TemplateImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getTemplate()
+ * @generated
+ */
+ EClass TEMPLATE = eINSTANCE.getTemplate();
+
+ /**
+ * The meta object literal for the '<em><b>Declaration</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TEMPLATE__DECLARATION = eINSTANCE.getTemplate_Declaration();
+
+ /**
+ * The meta object literal for the '<em><b>Base class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TEMPLATE__BASE_CLASS = eINSTANCE.getTemplate_Base_class();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.C_Cpp.impl.TemplateBindingImpl <em>Template Binding</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.TemplateBindingImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getTemplateBinding()
+ * @generated
+ */
+ EClass TEMPLATE_BINDING = eINSTANCE.getTemplateBinding();
+
+ /**
+ * The meta object literal for the '<em><b>Binding</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TEMPLATE_BINDING__BINDING = eINSTANCE.getTemplateBinding_Binding();
+
+ /**
+ * The meta object literal for the '<em><b>Base templatebinding</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TEMPLATE_BINDING__BASE_TEMPLATEBINDING = eINSTANCE.getTemplateBinding_Base_templatebinding();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.C_Cpp.impl.TemplateParameterImpl <em>Template Parameter</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.TemplateParameterImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getTemplateParameter()
+ * @generated
+ */
+ EClass TEMPLATE_PARAMETER = eINSTANCE.getTemplateParameter();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TEMPLATE_PARAMETER__NAME = eINSTANCE.getTemplateParameter_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Base templateparameter</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TEMPLATE_PARAMETER__BASE_TEMPLATEPARAMETER = eINSTANCE.getTemplateParameter_Base_templateparameter();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.C_Cpp.impl.UnionImpl <em>Union</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.UnionImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getUnion()
+ * @generated
+ */
+ EClass UNION = eINSTANCE.getUnion();
+
+ /**
+ * The meta object literal for the '<em><b>Base Data Type</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference UNION__BASE_DATA_TYPE = eINSTANCE.getUnion_Base_DataType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.C_Cpp.impl.StorageClassImpl <em>Storage Class</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.StorageClassImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getStorageClass()
+ * @generated
+ */
+ EClass STORAGE_CLASS = eINSTANCE.getStorageClass();
+
+ /**
+ * The meta object literal for the '<em><b>Storage Class</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STORAGE_CLASS__STORAGE_CLASS = eINSTANCE.getStorageClass_StorageClass();
+
+ /**
+ * The meta object literal for the '<em><b>Base Property</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference STORAGE_CLASS__BASE_PROPERTY = eINSTANCE.getStorageClass_Base_Property();
+
+ /**
+ * The meta object literal for the '<em><b>Base Parameter</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference STORAGE_CLASS__BASE_PARAMETER = eINSTANCE.getStorageClass_Base_Parameter();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.C_Cpp.impl.VolatileImpl <em>Volatile</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.VolatileImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getVolatile()
+ * @generated
+ */
+ EClass VOLATILE = eINSTANCE.getVolatile();
+
+ /**
+ * The meta object literal for the '<em><b>Base parameter</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference VOLATILE__BASE_PARAMETER = eINSTANCE.getVolatile_Base_parameter();
+
+ /**
+ * The meta object literal for the '<em><b>Base property</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference VOLATILE__BASE_PROPERTY = eINSTANCE.getVolatile_Base_property();
+
+ /**
+ * The meta object literal for the '<em><b>Base operation</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference VOLATILE__BASE_OPERATION = eINSTANCE.getVolatile_Base_operation();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.C_Cpp.impl.VariadicImpl <em>Variadic</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.VariadicImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getVariadic()
+ * @generated
+ */
+ EClass VARIADIC = eINSTANCE.getVariadic();
+
+ /**
+ * The meta object literal for the '<em><b>Base operation</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference VARIADIC__BASE_OPERATION = eINSTANCE.getVariadic_Base_operation();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.C_Cpp.impl.MutableImpl <em>Mutable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.impl.MutableImpl
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getMutable()
+ * @generated
+ */
+ EClass MUTABLE = eINSTANCE.getMutable();
+
+ /**
+ * The meta object literal for the '<em><b>Base property</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MUTABLE__BASE_PROPERTY = eINSTANCE.getMutable_Base_property();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.C_Cpp.VisibilityKind <em>Visibility Kind</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.VisibilityKind
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getVisibilityKind()
+ * @generated
+ */
+ EEnum VISIBILITY_KIND = eINSTANCE.getVisibilityKind();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.C_Cpp.EAccessKind <em>EAccess Kind</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.EAccessKind
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getEAccessKind()
+ * @generated
+ */
+ EEnum EACCESS_KIND = eINSTANCE.getEAccessKind();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.C_Cpp.EStorageClass <em>EStorage Class</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.EStorageClass
+ * @see org.eclipse.papyrus.C_Cpp.impl.C_CppPackageImpl#getEStorageClass()
+ * @generated
+ */
+ EEnum ESTORAGE_CLASS = eINSTANCE.getEStorageClass();
+
+ }
+
+} // C_CppPackage
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Const.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Const.java
new file mode 100644
index 00000000000..62008d61ba0
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Const.java
@@ -0,0 +1,114 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Const</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.Const#getBase_parameter <em>Base parameter</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.Const#getBase_property <em>Base property</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.Const#getBase_operation <em>Base operation</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getConst()
+ * @model
+ * @generated
+ */
+public interface Const extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base parameter</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base parameter</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base parameter</em>' reference.
+ * @see #setBase_parameter(Parameter)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getConst_Base_parameter()
+ * @model ordered="false"
+ * @generated
+ */
+ Parameter getBase_parameter();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.Const#getBase_parameter <em>Base parameter</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base parameter</em>' reference.
+ * @see #getBase_parameter()
+ * @generated
+ */
+ void setBase_parameter(Parameter value);
+
+ /**
+ * Returns the value of the '<em><b>Base property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base property</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base property</em>' reference.
+ * @see #setBase_property(Property)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getConst_Base_property()
+ * @model ordered="false"
+ * @generated
+ */
+ Property getBase_property();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.Const#getBase_property <em>Base property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base property</em>' reference.
+ * @see #getBase_property()
+ * @generated
+ */
+ void setBase_property(Property value);
+
+ /**
+ * Returns the value of the '<em><b>Base operation</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base operation</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base operation</em>' reference.
+ * @see #setBase_operation(Operation)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getConst_Base_operation()
+ * @model ordered="false"
+ * @generated
+ */
+ Operation getBase_operation();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.Const#getBase_operation <em>Base operation</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base operation</em>' reference.
+ * @see #getBase_operation()
+ * @generated
+ */
+ void setBase_operation(Operation value);
+
+} // Const
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/ConstInit.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/ConstInit.java
new file mode 100644
index 00000000000..70939be35c4
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/ConstInit.java
@@ -0,0 +1,86 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Operation;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Const Init</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.ConstInit#getInitialisation <em>Initialisation</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.ConstInit#getBase_operation <em>Base operation</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getConstInit()
+ * @model
+ * @generated
+ */
+public interface ConstInit extends EObject {
+ /**
+ * Returns the value of the '<em><b>Initialisation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Initialisation</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Initialisation</em>' attribute.
+ * @see #setInitialisation(String)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getConstInit_Initialisation()
+ * @model unique="false" dataType="org.eclipse.uml2.types.String" required="true" ordered="false"
+ * @generated
+ */
+ String getInitialisation();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.ConstInit#getInitialisation <em>Initialisation</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Initialisation</em>' attribute.
+ * @see #getInitialisation()
+ * @generated
+ */
+ void setInitialisation(String value);
+
+ /**
+ * Returns the value of the '<em><b>Base operation</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base operation</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base operation</em>' reference.
+ * @see #setBase_operation(Operation)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getConstInit_Base_operation()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Operation getBase_operation();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.ConstInit#getBase_operation <em>Base operation</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base operation</em>' reference.
+ * @see #getBase_operation()
+ * @generated
+ */
+ void setBase_operation(Operation value);
+
+} // ConstInit
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/CppInit.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/CppInit.java
new file mode 100644
index 00000000000..8f239695d33
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/CppInit.java
@@ -0,0 +1,86 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.EnumerationLiteral;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Cpp Init</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.CppInit#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.CppInit#getBase_enumerationliteral <em>Base enumerationliteral</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getCppInit()
+ * @model
+ * @generated
+ */
+public interface CppInit extends EObject {
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Value</em>' attribute.
+ * @see #setValue(int)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getCppInit_Value()
+ * @model unique="false" dataType="org.eclipse.uml2.types.Integer" required="true" ordered="false"
+ * @generated
+ */
+ int getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.CppInit#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(int value);
+
+ /**
+ * Returns the value of the '<em><b>Base enumerationliteral</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base enumerationliteral</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base enumerationliteral</em>' reference.
+ * @see #setBase_enumerationliteral(EnumerationLiteral)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getCppInit_Base_enumerationliteral()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ EnumerationLiteral getBase_enumerationliteral();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.CppInit#getBase_enumerationliteral <em>Base enumerationliteral</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base enumerationliteral</em>' reference.
+ * @see #getBase_enumerationliteral()
+ * @generated
+ */
+ void setBase_enumerationliteral(EnumerationLiteral value);
+
+} // CppInit
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/CppRoot.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/CppRoot.java
new file mode 100644
index 00000000000..2f603ef6f4e
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/CppRoot.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Cpp Root</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Indicates that this package shoudl be a root package, i.e. its contents should appear on top level folder during generation. Currently not used
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.CppRoot#getBase_package <em>Base package</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getCppRoot()
+ * @model
+ * @generated
+ */
+public interface CppRoot extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base package</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base package</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base package</em>' reference.
+ * @see #setBase_package(org.eclipse.uml2.uml.Package)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getCppRoot_Base_package()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Package getBase_package();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.CppRoot#getBase_package <em>Base package</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base package</em>' reference.
+ * @see #getBase_package()
+ * @generated
+ */
+ void setBase_package(org.eclipse.uml2.uml.Package value);
+
+} // CppRoot
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/EAccessKind.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/EAccessKind.java
new file mode 100644
index 00000000000..57a8c292c1f
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/EAccessKind.java
@@ -0,0 +1,251 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>EAccess Kind</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getEAccessKind()
+ * @model
+ * @generated
+ */
+public enum EAccessKind implements Enumerator {
+ /**
+ * The '<em><b>Read</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #READ_VALUE
+ * @generated
+ * @ordered
+ */
+ READ(0, "read", "read"), //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Write</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WRITE_VALUE
+ * @generated
+ * @ordered
+ */
+ WRITE(1, "write", "write"), //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Read Write</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #READ_WRITE_VALUE
+ * @generated
+ * @ordered
+ */
+ READ_WRITE(2, "readWrite", "readWrite"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Read</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Read</b></em>' literal object isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #READ
+ * @model name="read"
+ * @generated
+ * @ordered
+ */
+ public static final int READ_VALUE = 0;
+
+ /**
+ * The '<em><b>Write</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Write</b></em>' literal object isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WRITE
+ * @model name="write"
+ * @generated
+ * @ordered
+ */
+ public static final int WRITE_VALUE = 1;
+
+ /**
+ * The '<em><b>Read Write</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Read Write</b></em>' literal object isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #READ_WRITE
+ * @model name="readWrite"
+ * @generated
+ * @ordered
+ */
+ public static final int READ_WRITE_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>EAccess Kind</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final EAccessKind[] VALUES_ARRAY =
+ new EAccessKind[] {
+ READ,
+ WRITE,
+ READ_WRITE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>EAccess Kind</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<EAccessKind> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>EAccess Kind</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param literal the literal.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static EAccessKind get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ EAccessKind result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>EAccess Kind</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param name the name.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static EAccessKind getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ EAccessKind result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>EAccess Kind</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the integer value.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static EAccessKind get(int value) {
+ switch (value) {
+ case READ_VALUE: return READ;
+ case WRITE_VALUE: return WRITE;
+ case READ_WRITE_VALUE: return READ_WRITE;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EAccessKind(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} // EAccessKind
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/EStorageClass.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/EStorageClass.java
new file mode 100644
index 00000000000..09807524d5a
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/EStorageClass.java
@@ -0,0 +1,251 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>EStorage Class</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getEStorageClass()
+ * @model
+ * @generated
+ */
+public enum EStorageClass implements Enumerator {
+ /**
+ * The '<em><b>Volatile</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VOLATILE_VALUE
+ * @generated
+ * @ordered
+ */
+ VOLATILE(0, "volatile", "volatile"), //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Register</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #REGISTER_VALUE
+ * @generated
+ * @ordered
+ */
+ REGISTER(1, "register", "register"), //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Extern</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #EXTERN_VALUE
+ * @generated
+ * @ordered
+ */
+ EXTERN(2, "extern", "extern"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Volatile</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Volatile</b></em>' literal object isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VOLATILE
+ * @model name="volatile"
+ * @generated
+ * @ordered
+ */
+ public static final int VOLATILE_VALUE = 0;
+
+ /**
+ * The '<em><b>Register</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Register</b></em>' literal object isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #REGISTER
+ * @model name="register"
+ * @generated
+ * @ordered
+ */
+ public static final int REGISTER_VALUE = 1;
+
+ /**
+ * The '<em><b>Extern</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Extern</b></em>' literal object isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #EXTERN
+ * @model name="extern"
+ * @generated
+ * @ordered
+ */
+ public static final int EXTERN_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>EStorage Class</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final EStorageClass[] VALUES_ARRAY =
+ new EStorageClass[] {
+ VOLATILE,
+ REGISTER,
+ EXTERN,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>EStorage Class</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<EStorageClass> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>EStorage Class</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param literal the literal.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static EStorageClass get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ EStorageClass result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>EStorage Class</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param name the name.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static EStorageClass getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ EStorageClass result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>EStorage Class</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the integer value.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static EStorageClass get(int value) {
+ switch (value) {
+ case VOLATILE_VALUE: return VOLATILE;
+ case REGISTER_VALUE: return REGISTER;
+ case EXTERN_VALUE: return EXTERN;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EStorageClass(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} // EStorageClass
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/ExternLibrary.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/ExternLibrary.java
new file mode 100644
index 00000000000..21811e3917f
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/ExternLibrary.java
@@ -0,0 +1,144 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Extern Library</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Mark a package as External Library. If this package is used, the associated CDT project will be configured accordingly.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.ExternLibrary#getIncludePaths <em>Include Paths</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.ExternLibrary#getBase_package <em>Base package</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.ExternLibrary#getLibPaths <em>Lib Paths</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.ExternLibrary#getMacros <em>Macros</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.ExternLibrary#getLibs <em>Libs</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.ExternLibrary#getIncludes <em>Includes</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getExternLibrary()
+ * @model
+ * @generated
+ */
+public interface ExternLibrary extends EObject {
+ /**
+ * Returns the value of the '<em><b>Include Paths</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Include Paths</em>' attribute list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Include Paths</em>' attribute list.
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getExternLibrary_IncludePaths()
+ * @model unique="false" dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ EList<String> getIncludePaths();
+
+ /**
+ * Returns the value of the '<em><b>Base package</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base package</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base package</em>' reference.
+ * @see #setBase_package(org.eclipse.uml2.uml.Package)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getExternLibrary_Base_package()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Package getBase_package();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.ExternLibrary#getBase_package <em>Base package</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base package</em>' reference.
+ * @see #getBase_package()
+ * @generated
+ */
+ void setBase_package(org.eclipse.uml2.uml.Package value);
+
+ /**
+ * Returns the value of the '<em><b>Lib Paths</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Lib Paths</em>' attribute list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Lib Paths</em>' attribute list.
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getExternLibrary_LibPaths()
+ * @model dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ EList<String> getLibPaths();
+
+ /**
+ * Returns the value of the '<em><b>Macros</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Macros</em>' attribute list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Macros</em>' attribute list.
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getExternLibrary_Macros()
+ * @model dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ EList<String> getMacros();
+
+ /**
+ * Returns the value of the '<em><b>Libs</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Libs</em>' attribute list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Libs</em>' attribute list.
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getExternLibrary_Libs()
+ * @model dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ EList<String> getLibs();
+
+ /**
+ * Returns the value of the '<em><b>Includes</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Includes</em>' attribute list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Includes</em>' attribute list.
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getExternLibrary_Includes()
+ * @model dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ EList<String> getIncludes();
+
+} // ExternLibrary
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/External.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/External.java
new file mode 100644
index 00000000000..26d9af0e307
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/External.java
@@ -0,0 +1,86 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Classifier;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>External</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.External#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.External#getBase_Classifier <em>Base Classifier</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getExternal()
+ * @model
+ * @generated
+ */
+public interface External extends EObject {
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getExternal_Name()
+ * @model unique="false" dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.External#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Base Classifier</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Classifier</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Classifier</em>' reference.
+ * @see #setBase_Classifier(Classifier)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getExternal_Base_Classifier()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Classifier getBase_Classifier();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.External#getBase_Classifier <em>Base Classifier</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Classifier</em>' reference.
+ * @see #getBase_Classifier()
+ * @generated
+ */
+ void setBase_Classifier(Classifier value);
+
+} // External
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Friend.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Friend.java
new file mode 100644
index 00000000000..3971ecf9257
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Friend.java
@@ -0,0 +1,87 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Dependency;
+import org.eclipse.uml2.uml.Operation;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Friend</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.Friend#getBase_dependency <em>Base dependency</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.Friend#getBase_operation <em>Base operation</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getFriend()
+ * @model
+ * @generated
+ */
+public interface Friend extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base dependency</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base dependency</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base dependency</em>' reference.
+ * @see #setBase_dependency(Dependency)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getFriend_Base_dependency()
+ * @model ordered="false"
+ * @generated
+ */
+ Dependency getBase_dependency();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.Friend#getBase_dependency <em>Base dependency</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base dependency</em>' reference.
+ * @see #getBase_dependency()
+ * @generated
+ */
+ void setBase_dependency(Dependency value);
+
+ /**
+ * Returns the value of the '<em><b>Base operation</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base operation</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base operation</em>' reference.
+ * @see #setBase_operation(Operation)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getFriend_Base_operation()
+ * @model ordered="false"
+ * @generated
+ */
+ Operation getBase_operation();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.Friend#getBase_operation <em>Base operation</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base operation</em>' reference.
+ * @see #getBase_operation()
+ * @generated
+ */
+ void setBase_operation(Operation value);
+
+} // Friend
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Include.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Include.java
new file mode 100644
index 00000000000..734252a47b3
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Include.java
@@ -0,0 +1,200 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Classifier;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Include</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * An arbitrary string that is added to header and body file. Although primarily intended for manual include directives, it can be used for arbitrary definitions.
+ * "preBody" is added to a C++ body file before automatic include statements, "body" after
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.Include#getBody <em>Body</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.Include#getPreBody <em>Pre Body</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.Include#getHeader <em>Header</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.Include#getBase_package <em>Base package</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.Include#getBase_class <em>Base class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.Include#getBase_Classifier <em>Base Classifier</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getInclude()
+ * @model
+ * @generated
+ */
+public interface Include extends EObject {
+ /**
+ * Returns the value of the '<em><b>Body</b></em>' attribute.
+ * The default value is <code>""</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Body</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Body</em>' attribute.
+ * @see #setBody(String)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getInclude_Body()
+ * @model default="" dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ String getBody();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.Include#getBody <em>Body</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Body</em>' attribute.
+ * @see #getBody()
+ * @generated
+ */
+ void setBody(String value);
+
+ /**
+ * Returns the value of the '<em><b>Pre Body</b></em>' attribute.
+ * The default value is <code>""</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Pre Body</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Pre Body</em>' attribute.
+ * @see #setPreBody(String)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getInclude_PreBody()
+ * @model default="" dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ String getPreBody();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.Include#getPreBody <em>Pre Body</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Pre Body</em>' attribute.
+ * @see #getPreBody()
+ * @generated
+ */
+ void setPreBody(String value);
+
+ /**
+ * Returns the value of the '<em><b>Header</b></em>' attribute.
+ * The default value is <code>""</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Header</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Header</em>' attribute.
+ * @see #setHeader(String)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getInclude_Header()
+ * @model default="" dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ String getHeader();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.Include#getHeader <em>Header</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Header</em>' attribute.
+ * @see #getHeader()
+ * @generated
+ */
+ void setHeader(String value);
+
+ /**
+ * Returns the value of the '<em><b>Base package</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base package</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base package</em>' reference.
+ * @see #setBase_package(org.eclipse.uml2.uml.Package)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getInclude_Base_package()
+ * @model ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Package getBase_package();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.Include#getBase_package <em>Base package</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base package</em>' reference.
+ * @see #getBase_package()
+ * @generated
+ */
+ void setBase_package(org.eclipse.uml2.uml.Package value);
+
+ /**
+ * Returns the value of the '<em><b>Base class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base class</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base class</em>' reference.
+ * @see #setBase_class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getInclude_Base_class()
+ * @model ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.Include#getBase_class <em>Base class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base class</em>' reference.
+ * @see #getBase_class()
+ * @generated
+ */
+ void setBase_class(org.eclipse.uml2.uml.Class value);
+
+ /**
+ * Returns the value of the '<em><b>Base Classifier</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Classifier</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Classifier</em>' reference.
+ * @see #setBase_Classifier(Classifier)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getInclude_Base_Classifier()
+ * @model ordered="false"
+ * @generated
+ */
+ Classifier getBase_Classifier();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.Include#getBase_Classifier <em>Base Classifier</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Classifier</em>' reference.
+ * @see #getBase_Classifier()
+ * @generated
+ */
+ void setBase_Classifier(Classifier value);
+
+} // Include
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Inline.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Inline.java
new file mode 100644
index 00000000000..737bc194134
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Inline.java
@@ -0,0 +1,60 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Operation;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Inline</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.Inline#getBase_operation <em>Base operation</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getInline()
+ * @model
+ * @generated
+ */
+public interface Inline extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base operation</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base operation</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base operation</em>' reference.
+ * @see #setBase_operation(Operation)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getInline_Base_operation()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Operation getBase_operation();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.Inline#getBase_operation <em>Base operation</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base operation</em>' reference.
+ * @see #getBase_operation()
+ * @generated
+ */
+ void setBase_operation(Operation value);
+
+} // Inline
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/ManualGeneration.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/ManualGeneration.java
new file mode 100644
index 00000000000..b28650aae64
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/ManualGeneration.java
@@ -0,0 +1,89 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Manual Generation</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Some toolkits require a quite particular way of use. For instance, LTTng requires the use of C (not C++) for the declaration of a trace provider and the header file is read several time with redefined macros. Therefore, the code generator supports a "manual" generation mode, in which primarily the contents of the CppInclude directive is written.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.ManualGeneration#getExtensionBody <em>Extension Body</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.ManualGeneration#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getManualGeneration()
+ * @model
+ * @generated
+ */
+public interface ManualGeneration extends EObject {
+ /**
+ * Returns the value of the '<em><b>Extension Body</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Extension Body</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Extension Body</em>' attribute.
+ * @see #setExtensionBody(String)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getManualGeneration_ExtensionBody()
+ * @model dataType="org.eclipse.uml2.types.String" required="true" ordered="false"
+ * @generated
+ */
+ String getExtensionBody();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.ManualGeneration#getExtensionBody <em>Extension Body</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Extension Body</em>' attribute.
+ * @see #getExtensionBody()
+ * @generated
+ */
+ void setExtensionBody(String value);
+
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getManualGeneration_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.ManualGeneration#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // ManualGeneration
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Mutable.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Mutable.java
new file mode 100644
index 00000000000..9ca0a41cd6a
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Mutable.java
@@ -0,0 +1,52 @@
+/**
+ */
+package org.eclipse.papyrus.C_Cpp;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Mutable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.Mutable#getBase_property <em>Base property</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getMutable()
+ * @model
+ * @generated
+ */
+public interface Mutable extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base property</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base property</em>' reference.
+ * @see #setBase_property(Property)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getMutable_Base_property()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Property getBase_property();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.Mutable#getBase_property <em>Base property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base property</em>' reference.
+ * @see #getBase_property()
+ * @generated
+ */
+ void setBase_property(Property value);
+
+} // Mutable
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/NoCodeGen.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/NoCodeGen.java
new file mode 100644
index 00000000000..2436e6bddc4
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/NoCodeGen.java
@@ -0,0 +1,64 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Element;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>No Code Gen</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * No code generation should be done for this element. This also means that no include directive is generated, if the class is referenced.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.NoCodeGen#getBase_element <em>Base element</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getNoCodeGen()
+ * @model
+ * @generated
+ */
+public interface NoCodeGen extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base element</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base element</em>' reference.
+ * @see #setBase_element(Element)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getNoCodeGen_Base_element()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Element getBase_element();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.NoCodeGen#getBase_element <em>Base element</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base element</em>' reference.
+ * @see #getBase_element()
+ * @generated
+ */
+ void setBase_element(Element value);
+
+} // NoCodeGen
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Ptr.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Ptr.java
new file mode 100644
index 00000000000..ce60c416a38
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Ptr.java
@@ -0,0 +1,117 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Ptr</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * "declaration" attribute should only be used, if more than one indirections of pointers (often "**")
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.Ptr#getBase_parameter <em>Base parameter</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.Ptr#getBase_property <em>Base property</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.Ptr#getDeclaration <em>Declaration</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getPtr()
+ * @model
+ * @generated
+ */
+public interface Ptr extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base parameter</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base parameter</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base parameter</em>' reference.
+ * @see #setBase_parameter(Parameter)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getPtr_Base_parameter()
+ * @model ordered="false"
+ * @generated
+ */
+ Parameter getBase_parameter();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.Ptr#getBase_parameter <em>Base parameter</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base parameter</em>' reference.
+ * @see #getBase_parameter()
+ * @generated
+ */
+ void setBase_parameter(Parameter value);
+
+ /**
+ * Returns the value of the '<em><b>Base property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base property</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base property</em>' reference.
+ * @see #setBase_property(Property)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getPtr_Base_property()
+ * @model ordered="false"
+ * @generated
+ */
+ Property getBase_property();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.Ptr#getBase_property <em>Base property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base property</em>' reference.
+ * @see #getBase_property()
+ * @generated
+ */
+ void setBase_property(Property value);
+
+ /**
+ * Returns the value of the '<em><b>Declaration</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Declaration</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Declaration</em>' attribute.
+ * @see #setDeclaration(String)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getPtr_Declaration()
+ * @model unique="false" dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ String getDeclaration();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.Ptr#getDeclaration <em>Declaration</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Declaration</em>' attribute.
+ * @see #getDeclaration()
+ * @generated
+ */
+ void setDeclaration(String value);
+
+} // Ptr
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Ref.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Ref.java
new file mode 100644
index 00000000000..535918f01cf
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Ref.java
@@ -0,0 +1,87 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Ref</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.Ref#getBase_parameter <em>Base parameter</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.Ref#getBase_property <em>Base property</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getRef()
+ * @model
+ * @generated
+ */
+public interface Ref extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base parameter</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base parameter</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base parameter</em>' reference.
+ * @see #setBase_parameter(Parameter)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getRef_Base_parameter()
+ * @model ordered="false"
+ * @generated
+ */
+ Parameter getBase_parameter();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.Ref#getBase_parameter <em>Base parameter</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base parameter</em>' reference.
+ * @see #getBase_parameter()
+ * @generated
+ */
+ void setBase_parameter(Parameter value);
+
+ /**
+ * Returns the value of the '<em><b>Base property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base property</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base property</em>' reference.
+ * @see #setBase_property(Property)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getRef_Base_property()
+ * @model ordered="false"
+ * @generated
+ */
+ Property getBase_property();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.Ref#getBase_property <em>Base property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base property</em>' reference.
+ * @see #getBase_property()
+ * @generated
+ */
+ void setBase_property(Property value);
+
+} // Ref
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/StorageClass.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/StorageClass.java
new file mode 100644
index 00000000000..478fd5e5fb6
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/StorageClass.java
@@ -0,0 +1,118 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Storage Class</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.StorageClass#getStorageClass <em>Storage Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.StorageClass#getBase_Property <em>Base Property</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.StorageClass#getBase_Parameter <em>Base Parameter</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getStorageClass()
+ * @model
+ * @generated
+ */
+public interface StorageClass extends EObject {
+ /**
+ * Returns the value of the '<em><b>Storage Class</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.papyrus.C_Cpp.EStorageClass}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Storage Class</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Storage Class</em>' attribute.
+ * @see org.eclipse.papyrus.C_Cpp.EStorageClass
+ * @see #setStorageClass(EStorageClass)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getStorageClass_StorageClass()
+ * @model unique="false" required="true" ordered="false"
+ * @generated
+ */
+ EStorageClass getStorageClass();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.StorageClass#getStorageClass <em>Storage Class</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Storage Class</em>' attribute.
+ * @see org.eclipse.papyrus.C_Cpp.EStorageClass
+ * @see #getStorageClass()
+ * @generated
+ */
+ void setStorageClass(EStorageClass value);
+
+ /**
+ * Returns the value of the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Property</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Property</em>' reference.
+ * @see #setBase_Property(Property)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getStorageClass_Base_Property()
+ * @model ordered="false"
+ * @generated
+ */
+ Property getBase_Property();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.StorageClass#getBase_Property <em>Base Property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Property</em>' reference.
+ * @see #getBase_Property()
+ * @generated
+ */
+ void setBase_Property(Property value);
+
+ /**
+ * Returns the value of the '<em><b>Base Parameter</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Parameter</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Parameter</em>' reference.
+ * @see #setBase_Parameter(Parameter)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getStorageClass_Base_Parameter()
+ * @model ordered="false"
+ * @generated
+ */
+ Parameter getBase_Parameter();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.StorageClass#getBase_Parameter <em>Base Parameter</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Parameter</em>' reference.
+ * @see #getBase_Parameter()
+ * @generated
+ */
+ void setBase_Parameter(Parameter value);
+
+} // StorageClass
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Template.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Template.java
new file mode 100644
index 00000000000..66d729cb018
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Template.java
@@ -0,0 +1,85 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Template</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.Template#getDeclaration <em>Declaration</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.Template#getBase_class <em>Base class</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getTemplate()
+ * @model
+ * @generated
+ */
+public interface Template extends EObject {
+ /**
+ * Returns the value of the '<em><b>Declaration</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Declaration</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Declaration</em>' attribute.
+ * @see #setDeclaration(String)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getTemplate_Declaration()
+ * @model unique="false" dataType="org.eclipse.uml2.types.String" required="true" ordered="false"
+ * @generated
+ */
+ String getDeclaration();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.Template#getDeclaration <em>Declaration</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Declaration</em>' attribute.
+ * @see #getDeclaration()
+ * @generated
+ */
+ void setDeclaration(String value);
+
+ /**
+ * Returns the value of the '<em><b>Base class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base class</em>' reference.
+ * @see #setBase_class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getTemplate_Base_class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.Template#getBase_class <em>Base class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base class</em>' reference.
+ * @see #getBase_class()
+ * @generated
+ */
+ void setBase_class(org.eclipse.uml2.uml.Class value);
+
+} // Template
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/TemplateBinding.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/TemplateBinding.java
new file mode 100644
index 00000000000..5f9e868c814
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/TemplateBinding.java
@@ -0,0 +1,85 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Template Binding</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.TemplateBinding#getBinding <em>Binding</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.TemplateBinding#getBase_templatebinding <em>Base templatebinding</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getTemplateBinding()
+ * @model
+ * @generated
+ */
+public interface TemplateBinding extends EObject {
+ /**
+ * Returns the value of the '<em><b>Binding</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Binding</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Binding</em>' attribute.
+ * @see #setBinding(String)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getTemplateBinding_Binding()
+ * @model unique="false" dataType="org.eclipse.uml2.types.String" required="true" ordered="false"
+ * @generated
+ */
+ String getBinding();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.TemplateBinding#getBinding <em>Binding</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Binding</em>' attribute.
+ * @see #getBinding()
+ * @generated
+ */
+ void setBinding(String value);
+
+ /**
+ * Returns the value of the '<em><b>Base templatebinding</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base templatebinding</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base templatebinding</em>' reference.
+ * @see #setBase_templatebinding(org.eclipse.uml2.uml.TemplateBinding)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getTemplateBinding_Base_templatebinding()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.TemplateBinding getBase_templatebinding();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.TemplateBinding#getBase_templatebinding <em>Base templatebinding</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base templatebinding</em>' reference.
+ * @see #getBase_templatebinding()
+ * @generated
+ */
+ void setBase_templatebinding(org.eclipse.uml2.uml.TemplateBinding value);
+
+} // TemplateBinding
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/TemplateParameter.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/TemplateParameter.java
new file mode 100644
index 00000000000..1c67ebfec79
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/TemplateParameter.java
@@ -0,0 +1,85 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Template Parameter</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.TemplateParameter#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.TemplateParameter#getBase_templateparameter <em>Base templateparameter</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getTemplateParameter()
+ * @model
+ * @generated
+ */
+public interface TemplateParameter extends EObject {
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getTemplateParameter_Name()
+ * @model unique="false" dataType="org.eclipse.uml2.types.String" required="true" ordered="false"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.TemplateParameter#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Base templateparameter</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base templateparameter</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base templateparameter</em>' reference.
+ * @see #setBase_templateparameter(org.eclipse.uml2.uml.TemplateParameter)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getTemplateParameter_Base_templateparameter()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.TemplateParameter getBase_templateparameter();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.TemplateParameter#getBase_templateparameter <em>Base templateparameter</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base templateparameter</em>' reference.
+ * @see #getBase_templateparameter()
+ * @generated
+ */
+ void setBase_templateparameter(org.eclipse.uml2.uml.TemplateParameter value);
+
+} // TemplateParameter
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Typedef.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Typedef.java
new file mode 100644
index 00000000000..99be18e2013
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Typedef.java
@@ -0,0 +1,86 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.PrimitiveType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Typedef</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.Typedef#getDefinition <em>Definition</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.Typedef#getBase_primitivetype <em>Base primitivetype</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getTypedef()
+ * @model
+ * @generated
+ */
+public interface Typedef extends EObject {
+ /**
+ * Returns the value of the '<em><b>Definition</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Definition</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Definition</em>' attribute.
+ * @see #setDefinition(String)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getTypedef_Definition()
+ * @model unique="false" dataType="org.eclipse.uml2.types.String" required="true" ordered="false"
+ * @generated
+ */
+ String getDefinition();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.Typedef#getDefinition <em>Definition</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Definition</em>' attribute.
+ * @see #getDefinition()
+ * @generated
+ */
+ void setDefinition(String value);
+
+ /**
+ * Returns the value of the '<em><b>Base primitivetype</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base primitivetype</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base primitivetype</em>' reference.
+ * @see #setBase_primitivetype(PrimitiveType)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getTypedef_Base_primitivetype()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ PrimitiveType getBase_primitivetype();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.Typedef#getBase_primitivetype <em>Base primitivetype</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base primitivetype</em>' reference.
+ * @see #getBase_primitivetype()
+ * @generated
+ */
+ void setBase_primitivetype(PrimitiveType value);
+
+} // Typedef
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Union.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Union.java
new file mode 100644
index 00000000000..1edfbd0d38a
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Union.java
@@ -0,0 +1,60 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.DataType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Union</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.Union#getBase_DataType <em>Base Data Type</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getUnion()
+ * @model
+ * @generated
+ */
+public interface Union extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Data Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Data Type</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Data Type</em>' reference.
+ * @see #setBase_DataType(DataType)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getUnion_Base_DataType()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ DataType getBase_DataType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.Union#getBase_DataType <em>Base Data Type</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Data Type</em>' reference.
+ * @see #getBase_DataType()
+ * @generated
+ */
+ void setBase_DataType(DataType value);
+
+} // Union
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Variadic.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Variadic.java
new file mode 100644
index 00000000000..37ead44821e
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Variadic.java
@@ -0,0 +1,52 @@
+/**
+ */
+package org.eclipse.papyrus.C_Cpp;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.Operation;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Variadic</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.Variadic#getBase_operation <em>Base operation</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getVariadic()
+ * @model
+ * @generated
+ */
+public interface Variadic extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base operation</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base operation</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base operation</em>' reference.
+ * @see #setBase_operation(Operation)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getVariadic_Base_operation()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Operation getBase_operation();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.Variadic#getBase_operation <em>Base operation</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base operation</em>' reference.
+ * @see #getBase_operation()
+ * @generated
+ */
+ void setBase_operation(Operation value);
+
+} // Variadic
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Virtual.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Virtual.java
new file mode 100644
index 00000000000..60b209bef50
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Virtual.java
@@ -0,0 +1,60 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Operation;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Virtual</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.Virtual#getBase_operation <em>Base operation</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getVirtual()
+ * @model
+ * @generated
+ */
+public interface Virtual extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base operation</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base operation</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base operation</em>' reference.
+ * @see #setBase_operation(Operation)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getVirtual_Base_operation()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Operation getBase_operation();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.Virtual#getBase_operation <em>Base operation</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base operation</em>' reference.
+ * @see #getBase_operation()
+ * @generated
+ */
+ void setBase_operation(Operation value);
+
+} // Virtual
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Visibility.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Visibility.java
new file mode 100644
index 00000000000..aea7299af55
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Visibility.java
@@ -0,0 +1,86 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Generalization;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Visibility</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.Visibility#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.Visibility#getBase_generalization <em>Base generalization</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getVisibility()
+ * @model
+ * @generated
+ */
+public interface Visibility extends EObject {
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Value</em>' attribute.
+ * @see #setValue(String)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getVisibility_Value()
+ * @model unique="false" dataType="org.eclipse.uml2.types.String" required="true" ordered="false"
+ * @generated
+ */
+ String getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.Visibility#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(String value);
+
+ /**
+ * Returns the value of the '<em><b>Base generalization</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base generalization</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base generalization</em>' reference.
+ * @see #setBase_generalization(Generalization)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getVisibility_Base_generalization()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Generalization getBase_generalization();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.Visibility#getBase_generalization <em>Base generalization</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base generalization</em>' reference.
+ * @see #getBase_generalization()
+ * @generated
+ */
+ void setBase_generalization(Generalization value);
+
+} // Visibility
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/VisibilityKind.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/VisibilityKind.java
new file mode 100644
index 00000000000..4ea258e178e
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/VisibilityKind.java
@@ -0,0 +1,251 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Visibility Kind</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getVisibilityKind()
+ * @model
+ * @generated
+ */
+public enum VisibilityKind implements Enumerator {
+ /**
+ * The '<em><b>Private</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PRIVATE_VALUE
+ * @generated
+ * @ordered
+ */
+ PRIVATE(0, "private", "private"), //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Protected</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PROTECTED_VALUE
+ * @generated
+ * @ordered
+ */
+ PROTECTED(1, "protected", "protected"), //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Public</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PUBLIC_VALUE
+ * @generated
+ * @ordered
+ */
+ PUBLIC(2, "public", "public"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Private</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Private</b></em>' literal object isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PRIVATE
+ * @model name="private"
+ * @generated
+ * @ordered
+ */
+ public static final int PRIVATE_VALUE = 0;
+
+ /**
+ * The '<em><b>Protected</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Protected</b></em>' literal object isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PROTECTED
+ * @model name="protected"
+ * @generated
+ * @ordered
+ */
+ public static final int PROTECTED_VALUE = 1;
+
+ /**
+ * The '<em><b>Public</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Public</b></em>' literal object isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PUBLIC
+ * @model name="public"
+ * @generated
+ * @ordered
+ */
+ public static final int PUBLIC_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Visibility Kind</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final VisibilityKind[] VALUES_ARRAY =
+ new VisibilityKind[] {
+ PRIVATE,
+ PROTECTED,
+ PUBLIC,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Visibility Kind</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<VisibilityKind> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Visibility Kind</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param literal the literal.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static VisibilityKind get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ VisibilityKind result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Visibility Kind</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param name the name.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static VisibilityKind getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ VisibilityKind result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Visibility Kind</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the integer value.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static VisibilityKind get(int value) {
+ switch (value) {
+ case PRIVATE_VALUE: return PRIVATE;
+ case PROTECTED_VALUE: return PROTECTED;
+ case PUBLIC_VALUE: return PUBLIC;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private VisibilityKind(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} // VisibilityKind
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Volatile.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Volatile.java
new file mode 100644
index 00000000000..6a80992fc11
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/Volatile.java
@@ -0,0 +1,104 @@
+/**
+ */
+package org.eclipse.papyrus.C_Cpp;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Volatile</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.Volatile#getBase_parameter <em>Base parameter</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.Volatile#getBase_property <em>Base property</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.Volatile#getBase_operation <em>Base operation</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getVolatile()
+ * @model
+ * @generated
+ */
+public interface Volatile extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base parameter</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base parameter</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base parameter</em>' reference.
+ * @see #setBase_parameter(Parameter)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getVolatile_Base_parameter()
+ * @model ordered="false"
+ * @generated
+ */
+ Parameter getBase_parameter();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.Volatile#getBase_parameter <em>Base parameter</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base parameter</em>' reference.
+ * @see #getBase_parameter()
+ * @generated
+ */
+ void setBase_parameter(Parameter value);
+
+ /**
+ * Returns the value of the '<em><b>Base property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base property</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base property</em>' reference.
+ * @see #setBase_property(Property)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getVolatile_Base_property()
+ * @model ordered="false"
+ * @generated
+ */
+ Property getBase_property();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.Volatile#getBase_property <em>Base property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base property</em>' reference.
+ * @see #getBase_property()
+ * @generated
+ */
+ void setBase_property(Property value);
+
+ /**
+ * Returns the value of the '<em><b>Base operation</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base operation</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base operation</em>' reference.
+ * @see #setBase_operation(Operation)
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#getVolatile_Base_operation()
+ * @model ordered="false"
+ * @generated
+ */
+ Operation getBase_operation();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.C_Cpp.Volatile#getBase_operation <em>Base operation</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base operation</em>' reference.
+ * @see #getBase_operation()
+ * @generated
+ */
+ void setBase_operation(Operation value);
+
+} // Volatile
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/ArrayImpl.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/ArrayImpl.java
new file mode 100644
index 00000000000..91a71d01d85
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/ArrayImpl.java
@@ -0,0 +1,362 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.papyrus.C_Cpp.Array;
+import org.eclipse.papyrus.C_Cpp.C_CppPackage;
+import org.eclipse.uml2.uml.Association;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Array</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.ArrayImpl#getBase_parameter <em>Base parameter</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.ArrayImpl#getDefinition <em>Definition</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.ArrayImpl#getBase_property <em>Base property</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.ArrayImpl#getBase_association <em>Base association</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ArrayImpl extends MinimalEObjectImpl.Container implements Array {
+ /**
+ * The cached value of the '{@link #getBase_parameter() <em>Base parameter</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_parameter()
+ * @generated
+ * @ordered
+ */
+ protected Parameter base_parameter;
+
+ /**
+ * The default value of the '{@link #getDefinition() <em>Definition</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDefinition()
+ * @generated
+ * @ordered
+ */
+ protected static final String DEFINITION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDefinition() <em>Definition</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDefinition()
+ * @generated
+ * @ordered
+ */
+ protected String definition = DEFINITION_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getBase_property() <em>Base property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_property()
+ * @generated
+ * @ordered
+ */
+ protected Property base_property;
+
+ /**
+ * The cached value of the '{@link #getBase_association() <em>Base association</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_association()
+ * @generated
+ * @ordered
+ */
+ protected Association base_association;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ArrayImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return C_CppPackage.Literals.ARRAY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Parameter getBase_parameter() {
+ if (base_parameter != null && base_parameter.eIsProxy()) {
+ InternalEObject oldBase_parameter = (InternalEObject)base_parameter;
+ base_parameter = (Parameter)eResolveProxy(oldBase_parameter);
+ if (base_parameter != oldBase_parameter) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.ARRAY__BASE_PARAMETER, oldBase_parameter, base_parameter));
+ }
+ }
+ return base_parameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Parameter basicGetBase_parameter() {
+ return base_parameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_parameter(Parameter newBase_parameter) {
+ Parameter oldBase_parameter = base_parameter;
+ base_parameter = newBase_parameter;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.ARRAY__BASE_PARAMETER, oldBase_parameter, base_parameter));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getDefinition() {
+ return definition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setDefinition(String newDefinition) {
+ String oldDefinition = definition;
+ definition = newDefinition;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.ARRAY__DEFINITION, oldDefinition, definition));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Property getBase_property() {
+ if (base_property != null && base_property.eIsProxy()) {
+ InternalEObject oldBase_property = (InternalEObject)base_property;
+ base_property = (Property)eResolveProxy(oldBase_property);
+ if (base_property != oldBase_property) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.ARRAY__BASE_PROPERTY, oldBase_property, base_property));
+ }
+ }
+ return base_property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property basicGetBase_property() {
+ return base_property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_property(Property newBase_property) {
+ Property oldBase_property = base_property;
+ base_property = newBase_property;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.ARRAY__BASE_PROPERTY, oldBase_property, base_property));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Association getBase_association() {
+ if (base_association != null && base_association.eIsProxy()) {
+ InternalEObject oldBase_association = (InternalEObject)base_association;
+ base_association = (Association)eResolveProxy(oldBase_association);
+ if (base_association != oldBase_association) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.ARRAY__BASE_ASSOCIATION, oldBase_association, base_association));
+ }
+ }
+ return base_association;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Association basicGetBase_association() {
+ return base_association;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_association(Association newBase_association) {
+ Association oldBase_association = base_association;
+ base_association = newBase_association;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.ARRAY__BASE_ASSOCIATION, oldBase_association, base_association));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case C_CppPackage.ARRAY__BASE_PARAMETER:
+ if (resolve) return getBase_parameter();
+ return basicGetBase_parameter();
+ case C_CppPackage.ARRAY__DEFINITION:
+ return getDefinition();
+ case C_CppPackage.ARRAY__BASE_PROPERTY:
+ if (resolve) return getBase_property();
+ return basicGetBase_property();
+ case C_CppPackage.ARRAY__BASE_ASSOCIATION:
+ if (resolve) return getBase_association();
+ return basicGetBase_association();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case C_CppPackage.ARRAY__BASE_PARAMETER:
+ setBase_parameter((Parameter)newValue);
+ return;
+ case C_CppPackage.ARRAY__DEFINITION:
+ setDefinition((String)newValue);
+ return;
+ case C_CppPackage.ARRAY__BASE_PROPERTY:
+ setBase_property((Property)newValue);
+ return;
+ case C_CppPackage.ARRAY__BASE_ASSOCIATION:
+ setBase_association((Association)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.ARRAY__BASE_PARAMETER:
+ setBase_parameter((Parameter)null);
+ return;
+ case C_CppPackage.ARRAY__DEFINITION:
+ setDefinition(DEFINITION_EDEFAULT);
+ return;
+ case C_CppPackage.ARRAY__BASE_PROPERTY:
+ setBase_property((Property)null);
+ return;
+ case C_CppPackage.ARRAY__BASE_ASSOCIATION:
+ setBase_association((Association)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.ARRAY__BASE_PARAMETER:
+ return base_parameter != null;
+ case C_CppPackage.ARRAY__DEFINITION:
+ return DEFINITION_EDEFAULT == null ? definition != null : !DEFINITION_EDEFAULT.equals(definition);
+ case C_CppPackage.ARRAY__BASE_PROPERTY:
+ return base_property != null;
+ case C_CppPackage.ARRAY__BASE_ASSOCIATION:
+ return base_association != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (definition: ");
+ result.append(definition);
+ result.append(')');
+ return result.toString();
+ }
+
+} // ArrayImpl
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/C_CppFactoryImpl.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/C_CppFactoryImpl.java
new file mode 100644
index 00000000000..e16267d1b13
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/C_CppFactoryImpl.java
@@ -0,0 +1,518 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.papyrus.C_Cpp.Array;
+import org.eclipse.papyrus.C_Cpp.C_CppFactory;
+import org.eclipse.papyrus.C_Cpp.C_CppPackage;
+import org.eclipse.papyrus.C_Cpp.Const;
+import org.eclipse.papyrus.C_Cpp.ConstInit;
+import org.eclipse.papyrus.C_Cpp.CppInit;
+import org.eclipse.papyrus.C_Cpp.CppRoot;
+import org.eclipse.papyrus.C_Cpp.EAccessKind;
+import org.eclipse.papyrus.C_Cpp.EStorageClass;
+import org.eclipse.papyrus.C_Cpp.ExternLibrary;
+import org.eclipse.papyrus.C_Cpp.External;
+import org.eclipse.papyrus.C_Cpp.Friend;
+import org.eclipse.papyrus.C_Cpp.Include;
+import org.eclipse.papyrus.C_Cpp.Inline;
+import org.eclipse.papyrus.C_Cpp.ManualGeneration;
+import org.eclipse.papyrus.C_Cpp.Mutable;
+import org.eclipse.papyrus.C_Cpp.NoCodeGen;
+import org.eclipse.papyrus.C_Cpp.Ptr;
+import org.eclipse.papyrus.C_Cpp.Ref;
+import org.eclipse.papyrus.C_Cpp.StorageClass;
+import org.eclipse.papyrus.C_Cpp.Template;
+import org.eclipse.papyrus.C_Cpp.TemplateBinding;
+import org.eclipse.papyrus.C_Cpp.TemplateParameter;
+import org.eclipse.papyrus.C_Cpp.Typedef;
+import org.eclipse.papyrus.C_Cpp.Union;
+import org.eclipse.papyrus.C_Cpp.Variadic;
+import org.eclipse.papyrus.C_Cpp.Virtual;
+import org.eclipse.papyrus.C_Cpp.Visibility;
+import org.eclipse.papyrus.C_Cpp.VisibilityKind;
+import org.eclipse.papyrus.C_Cpp.Volatile;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class C_CppFactoryImpl extends EFactoryImpl implements C_CppFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static C_CppFactory init() {
+ try {
+ C_CppFactory theC_CppFactory = (C_CppFactory)EPackage.Registry.INSTANCE.getEFactory(C_CppPackage.eNS_URI);
+ if (theC_CppFactory != null) {
+ return theC_CppFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new C_CppFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public C_CppFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case C_CppPackage.PTR: return createPtr();
+ case C_CppPackage.INCLUDE: return createInclude();
+ case C_CppPackage.MANUAL_GENERATION: return createManualGeneration();
+ case C_CppPackage.EXTERN_LIBRARY: return createExternLibrary();
+ case C_CppPackage.NO_CODE_GEN: return createNoCodeGen();
+ case C_CppPackage.CPP_ROOT: return createCppRoot();
+ case C_CppPackage.ARRAY: return createArray();
+ case C_CppPackage.CONST: return createConst();
+ case C_CppPackage.REF: return createRef();
+ case C_CppPackage.EXTERNAL: return createExternal();
+ case C_CppPackage.CONST_INIT: return createConstInit();
+ case C_CppPackage.FRIEND: return createFriend();
+ case C_CppPackage.INLINE: return createInline();
+ case C_CppPackage.VIRTUAL: return createVirtual();
+ case C_CppPackage.TYPEDEF: return createTypedef();
+ case C_CppPackage.VISIBILITY: return createVisibility();
+ case C_CppPackage.CPP_INIT: return createCppInit();
+ case C_CppPackage.TEMPLATE: return createTemplate();
+ case C_CppPackage.TEMPLATE_BINDING: return createTemplateBinding();
+ case C_CppPackage.TEMPLATE_PARAMETER: return createTemplateParameter();
+ case C_CppPackage.UNION: return createUnion();
+ case C_CppPackage.STORAGE_CLASS: return createStorageClass();
+ case C_CppPackage.VOLATILE: return createVolatile();
+ case C_CppPackage.VARIADIC: return createVariadic();
+ case C_CppPackage.MUTABLE: return createMutable();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object createFromString(EDataType eDataType, String initialValue) {
+ switch (eDataType.getClassifierID()) {
+ case C_CppPackage.VISIBILITY_KIND:
+ return createVisibilityKindFromString(eDataType, initialValue);
+ case C_CppPackage.EACCESS_KIND:
+ return createEAccessKindFromString(eDataType, initialValue);
+ case C_CppPackage.ESTORAGE_CLASS:
+ return createEStorageClassFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String convertToString(EDataType eDataType, Object instanceValue) {
+ switch (eDataType.getClassifierID()) {
+ case C_CppPackage.VISIBILITY_KIND:
+ return convertVisibilityKindToString(eDataType, instanceValue);
+ case C_CppPackage.EACCESS_KIND:
+ return convertEAccessKindToString(eDataType, instanceValue);
+ case C_CppPackage.ESTORAGE_CLASS:
+ return convertEStorageClassToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Ptr createPtr() {
+ PtrImpl ptr = new PtrImpl();
+ return ptr;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Include createInclude() {
+ IncludeImpl include = new IncludeImpl();
+ return include;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ManualGeneration createManualGeneration() {
+ ManualGenerationImpl manualGeneration = new ManualGenerationImpl();
+ return manualGeneration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ExternLibrary createExternLibrary() {
+ ExternLibraryImpl externLibrary = new ExternLibraryImpl();
+ return externLibrary;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NoCodeGen createNoCodeGen() {
+ NoCodeGenImpl noCodeGen = new NoCodeGenImpl();
+ return noCodeGen;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public CppRoot createCppRoot() {
+ CppRootImpl cppRoot = new CppRootImpl();
+ return cppRoot;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Array createArray() {
+ ArrayImpl array = new ArrayImpl();
+ return array;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Const createConst() {
+ ConstImpl const_ = new ConstImpl();
+ return const_;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Ref createRef() {
+ RefImpl ref = new RefImpl();
+ return ref;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public External createExternal() {
+ ExternalImpl external = new ExternalImpl();
+ return external;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ConstInit createConstInit() {
+ ConstInitImpl constInit = new ConstInitImpl();
+ return constInit;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Friend createFriend() {
+ FriendImpl friend = new FriendImpl();
+ return friend;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Inline createInline() {
+ InlineImpl inline = new InlineImpl();
+ return inline;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Virtual createVirtual() {
+ VirtualImpl virtual = new VirtualImpl();
+ return virtual;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Typedef createTypedef() {
+ TypedefImpl typedef = new TypedefImpl();
+ return typedef;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Visibility createVisibility() {
+ VisibilityImpl visibility = new VisibilityImpl();
+ return visibility;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public CppInit createCppInit() {
+ CppInitImpl cppInit = new CppInitImpl();
+ return cppInit;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Template createTemplate() {
+ TemplateImpl template = new TemplateImpl();
+ return template;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public TemplateBinding createTemplateBinding() {
+ TemplateBindingImpl templateBinding = new TemplateBindingImpl();
+ return templateBinding;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public TemplateParameter createTemplateParameter() {
+ TemplateParameterImpl templateParameter = new TemplateParameterImpl();
+ return templateParameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Union createUnion() {
+ UnionImpl union = new UnionImpl();
+ return union;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public StorageClass createStorageClass() {
+ StorageClassImpl storageClass = new StorageClassImpl();
+ return storageClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Volatile createVolatile() {
+ VolatileImpl volatile_ = new VolatileImpl();
+ return volatile_;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Variadic createVariadic() {
+ VariadicImpl variadic = new VariadicImpl();
+ return variadic;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Mutable createMutable() {
+ MutableImpl mutable = new MutableImpl();
+ return mutable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public VisibilityKind createVisibilityKindFromString(EDataType eDataType, String initialValue) {
+ VisibilityKind result = VisibilityKind.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertVisibilityKindToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAccessKind createEAccessKindFromString(EDataType eDataType, String initialValue) {
+ EAccessKind result = EAccessKind.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertEAccessKindToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EStorageClass createEStorageClassFromString(EDataType eDataType, String initialValue) {
+ EStorageClass result = EStorageClass.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertEStorageClassToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public C_CppPackage getC_CppPackage() {
+ return (C_CppPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static C_CppPackage getPackage() {
+ return C_CppPackage.eINSTANCE;
+ }
+
+} // C_CppFactoryImpl
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/C_CppPackageImpl.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/C_CppPackageImpl.java
new file mode 100644
index 00000000000..9d62fda5089
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/C_CppPackageImpl.java
@@ -0,0 +1,1464 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.papyrus.C_Cpp.Array;
+import org.eclipse.papyrus.C_Cpp.C_CppFactory;
+import org.eclipse.papyrus.C_Cpp.C_CppPackage;
+import org.eclipse.papyrus.C_Cpp.Const;
+import org.eclipse.papyrus.C_Cpp.ConstInit;
+import org.eclipse.papyrus.C_Cpp.CppInit;
+import org.eclipse.papyrus.C_Cpp.CppRoot;
+import org.eclipse.papyrus.C_Cpp.EAccessKind;
+import org.eclipse.papyrus.C_Cpp.EStorageClass;
+import org.eclipse.papyrus.C_Cpp.ExternLibrary;
+import org.eclipse.papyrus.C_Cpp.External;
+import org.eclipse.papyrus.C_Cpp.Friend;
+import org.eclipse.papyrus.C_Cpp.Include;
+import org.eclipse.papyrus.C_Cpp.Inline;
+import org.eclipse.papyrus.C_Cpp.ManualGeneration;
+import org.eclipse.papyrus.C_Cpp.Mutable;
+import org.eclipse.papyrus.C_Cpp.NoCodeGen;
+import org.eclipse.papyrus.C_Cpp.Ptr;
+import org.eclipse.papyrus.C_Cpp.Ref;
+import org.eclipse.papyrus.C_Cpp.StorageClass;
+import org.eclipse.papyrus.C_Cpp.Template;
+import org.eclipse.papyrus.C_Cpp.TemplateBinding;
+import org.eclipse.papyrus.C_Cpp.TemplateParameter;
+import org.eclipse.papyrus.C_Cpp.Typedef;
+import org.eclipse.papyrus.C_Cpp.Union;
+import org.eclipse.papyrus.C_Cpp.Variadic;
+import org.eclipse.papyrus.C_Cpp.Virtual;
+import org.eclipse.papyrus.C_Cpp.Visibility;
+import org.eclipse.papyrus.C_Cpp.VisibilityKind;
+import org.eclipse.papyrus.C_Cpp.Volatile;
+import org.eclipse.uml2.types.TypesPackage;
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class C_CppPackageImpl extends EPackageImpl implements C_CppPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass ptrEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass includeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass manualGenerationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass externLibraryEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass noCodeGenEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cppRootEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass arrayEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass constEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass refEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass externalEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass constInitEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass friendEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass inlineEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass virtualEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass typedefEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass visibilityEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cppInitEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass templateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass templateBindingEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass templateParameterEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass unionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass storageClassEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass volatileEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass variadicEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass mutableEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum visibilityKindEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum eAccessKindEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum eStorageClassEEnum = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private C_CppPackageImpl() {
+ super(eNS_URI, C_CppFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link C_CppPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static C_CppPackage init() {
+ if (isInited) return (C_CppPackage)EPackage.Registry.INSTANCE.getEPackage(C_CppPackage.eNS_URI);
+
+ // Obtain or create and register package
+ C_CppPackageImpl theC_CppPackage = (C_CppPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof C_CppPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new C_CppPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ UMLPackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theC_CppPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theC_CppPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theC_CppPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(C_CppPackage.eNS_URI, theC_CppPackage);
+ return theC_CppPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getPtr() {
+ return ptrEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getPtr_Base_parameter() {
+ return (EReference)ptrEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getPtr_Base_property() {
+ return (EReference)ptrEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getPtr_Declaration() {
+ return (EAttribute)ptrEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getInclude() {
+ return includeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getInclude_Body() {
+ return (EAttribute)includeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getInclude_PreBody() {
+ return (EAttribute)includeEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getInclude_Header() {
+ return (EAttribute)includeEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getInclude_Base_package() {
+ return (EReference)includeEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInclude_Base_class() {
+ return (EReference)includeEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInclude_Base_Classifier() {
+ return (EReference)includeEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getManualGeneration() {
+ return manualGenerationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getManualGeneration_ExtensionBody() {
+ return (EAttribute)manualGenerationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getManualGeneration_Base_Class() {
+ return (EReference)manualGenerationEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getExternLibrary() {
+ return externLibraryEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getExternLibrary_IncludePaths() {
+ return (EAttribute)externLibraryEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getExternLibrary_Base_package() {
+ return (EReference)externLibraryEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getExternLibrary_LibPaths() {
+ return (EAttribute)externLibraryEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getExternLibrary_Macros() {
+ return (EAttribute)externLibraryEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getExternLibrary_Libs() {
+ return (EAttribute)externLibraryEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getExternLibrary_Includes() {
+ return (EAttribute)externLibraryEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getNoCodeGen() {
+ return noCodeGenEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getNoCodeGen_Base_element() {
+ return (EReference)noCodeGenEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getCppRoot() {
+ return cppRootEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getCppRoot_Base_package() {
+ return (EReference)cppRootEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getArray() {
+ return arrayEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getArray_Base_parameter() {
+ return (EReference)arrayEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getArray_Definition() {
+ return (EAttribute)arrayEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getArray_Base_property() {
+ return (EReference)arrayEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getArray_Base_association() {
+ return (EReference)arrayEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getConst() {
+ return constEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getConst_Base_parameter() {
+ return (EReference)constEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getConst_Base_property() {
+ return (EReference)constEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getConst_Base_operation() {
+ return (EReference)constEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getRef() {
+ return refEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getRef_Base_parameter() {
+ return (EReference)refEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getRef_Base_property() {
+ return (EReference)refEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getExternal() {
+ return externalEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getExternal_Name() {
+ return (EAttribute)externalEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getExternal_Base_Classifier() {
+ return (EReference)externalEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getConstInit() {
+ return constInitEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getConstInit_Initialisation() {
+ return (EAttribute)constInitEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getConstInit_Base_operation() {
+ return (EReference)constInitEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getFriend() {
+ return friendEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getFriend_Base_dependency() {
+ return (EReference)friendEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getFriend_Base_operation() {
+ return (EReference)friendEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getInline() {
+ return inlineEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getInline_Base_operation() {
+ return (EReference)inlineEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getVirtual() {
+ return virtualEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getVirtual_Base_operation() {
+ return (EReference)virtualEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getTypedef() {
+ return typedefEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getTypedef_Definition() {
+ return (EAttribute)typedefEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getTypedef_Base_primitivetype() {
+ return (EReference)typedefEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getVisibility() {
+ return visibilityEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getVisibility_Value() {
+ return (EAttribute)visibilityEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getVisibility_Base_generalization() {
+ return (EReference)visibilityEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getCppInit() {
+ return cppInitEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getCppInit_Value() {
+ return (EAttribute)cppInitEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getCppInit_Base_enumerationliteral() {
+ return (EReference)cppInitEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getTemplate() {
+ return templateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getTemplate_Declaration() {
+ return (EAttribute)templateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getTemplate_Base_class() {
+ return (EReference)templateEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getTemplateBinding() {
+ return templateBindingEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getTemplateBinding_Binding() {
+ return (EAttribute)templateBindingEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getTemplateBinding_Base_templatebinding() {
+ return (EReference)templateBindingEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getTemplateParameter() {
+ return templateParameterEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getTemplateParameter_Name() {
+ return (EAttribute)templateParameterEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getTemplateParameter_Base_templateparameter() {
+ return (EReference)templateParameterEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getUnion() {
+ return unionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getUnion_Base_DataType() {
+ return (EReference)unionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getStorageClass() {
+ return storageClassEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getStorageClass_StorageClass() {
+ return (EAttribute)storageClassEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStorageClass_Base_Property() {
+ return (EReference)storageClassEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStorageClass_Base_Parameter() {
+ return (EReference)storageClassEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getVolatile() {
+ return volatileEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getVolatile_Base_parameter() {
+ return (EReference)volatileEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getVolatile_Base_property() {
+ return (EReference)volatileEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getVolatile_Base_operation() {
+ return (EReference)volatileEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getVariadic() {
+ return variadicEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getVariadic_Base_operation() {
+ return (EReference)variadicEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMutable() {
+ return mutableEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getMutable_Base_property() {
+ return (EReference)mutableEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EEnum getVisibilityKind() {
+ return visibilityKindEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EEnum getEAccessKind() {
+ return eAccessKindEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EEnum getEStorageClass() {
+ return eStorageClassEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public C_CppFactory getC_CppFactory() {
+ return (C_CppFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ ptrEClass = createEClass(PTR);
+ createEReference(ptrEClass, PTR__BASE_PARAMETER);
+ createEReference(ptrEClass, PTR__BASE_PROPERTY);
+ createEAttribute(ptrEClass, PTR__DECLARATION);
+
+ includeEClass = createEClass(INCLUDE);
+ createEAttribute(includeEClass, INCLUDE__BODY);
+ createEAttribute(includeEClass, INCLUDE__PRE_BODY);
+ createEAttribute(includeEClass, INCLUDE__HEADER);
+ createEReference(includeEClass, INCLUDE__BASE_PACKAGE);
+ createEReference(includeEClass, INCLUDE__BASE_CLASS);
+ createEReference(includeEClass, INCLUDE__BASE_CLASSIFIER);
+
+ manualGenerationEClass = createEClass(MANUAL_GENERATION);
+ createEAttribute(manualGenerationEClass, MANUAL_GENERATION__EXTENSION_BODY);
+ createEReference(manualGenerationEClass, MANUAL_GENERATION__BASE_CLASS);
+
+ externLibraryEClass = createEClass(EXTERN_LIBRARY);
+ createEAttribute(externLibraryEClass, EXTERN_LIBRARY__INCLUDE_PATHS);
+ createEReference(externLibraryEClass, EXTERN_LIBRARY__BASE_PACKAGE);
+ createEAttribute(externLibraryEClass, EXTERN_LIBRARY__LIB_PATHS);
+ createEAttribute(externLibraryEClass, EXTERN_LIBRARY__MACROS);
+ createEAttribute(externLibraryEClass, EXTERN_LIBRARY__LIBS);
+ createEAttribute(externLibraryEClass, EXTERN_LIBRARY__INCLUDES);
+
+ noCodeGenEClass = createEClass(NO_CODE_GEN);
+ createEReference(noCodeGenEClass, NO_CODE_GEN__BASE_ELEMENT);
+
+ cppRootEClass = createEClass(CPP_ROOT);
+ createEReference(cppRootEClass, CPP_ROOT__BASE_PACKAGE);
+
+ arrayEClass = createEClass(ARRAY);
+ createEReference(arrayEClass, ARRAY__BASE_PARAMETER);
+ createEAttribute(arrayEClass, ARRAY__DEFINITION);
+ createEReference(arrayEClass, ARRAY__BASE_PROPERTY);
+ createEReference(arrayEClass, ARRAY__BASE_ASSOCIATION);
+
+ constEClass = createEClass(CONST);
+ createEReference(constEClass, CONST__BASE_PARAMETER);
+ createEReference(constEClass, CONST__BASE_PROPERTY);
+ createEReference(constEClass, CONST__BASE_OPERATION);
+
+ refEClass = createEClass(REF);
+ createEReference(refEClass, REF__BASE_PARAMETER);
+ createEReference(refEClass, REF__BASE_PROPERTY);
+
+ externalEClass = createEClass(EXTERNAL);
+ createEAttribute(externalEClass, EXTERNAL__NAME);
+ createEReference(externalEClass, EXTERNAL__BASE_CLASSIFIER);
+
+ constInitEClass = createEClass(CONST_INIT);
+ createEAttribute(constInitEClass, CONST_INIT__INITIALISATION);
+ createEReference(constInitEClass, CONST_INIT__BASE_OPERATION);
+
+ friendEClass = createEClass(FRIEND);
+ createEReference(friendEClass, FRIEND__BASE_DEPENDENCY);
+ createEReference(friendEClass, FRIEND__BASE_OPERATION);
+
+ inlineEClass = createEClass(INLINE);
+ createEReference(inlineEClass, INLINE__BASE_OPERATION);
+
+ virtualEClass = createEClass(VIRTUAL);
+ createEReference(virtualEClass, VIRTUAL__BASE_OPERATION);
+
+ typedefEClass = createEClass(TYPEDEF);
+ createEAttribute(typedefEClass, TYPEDEF__DEFINITION);
+ createEReference(typedefEClass, TYPEDEF__BASE_PRIMITIVETYPE);
+
+ visibilityEClass = createEClass(VISIBILITY);
+ createEAttribute(visibilityEClass, VISIBILITY__VALUE);
+ createEReference(visibilityEClass, VISIBILITY__BASE_GENERALIZATION);
+
+ cppInitEClass = createEClass(CPP_INIT);
+ createEAttribute(cppInitEClass, CPP_INIT__VALUE);
+ createEReference(cppInitEClass, CPP_INIT__BASE_ENUMERATIONLITERAL);
+
+ templateEClass = createEClass(TEMPLATE);
+ createEAttribute(templateEClass, TEMPLATE__DECLARATION);
+ createEReference(templateEClass, TEMPLATE__BASE_CLASS);
+
+ templateBindingEClass = createEClass(TEMPLATE_BINDING);
+ createEAttribute(templateBindingEClass, TEMPLATE_BINDING__BINDING);
+ createEReference(templateBindingEClass, TEMPLATE_BINDING__BASE_TEMPLATEBINDING);
+
+ templateParameterEClass = createEClass(TEMPLATE_PARAMETER);
+ createEAttribute(templateParameterEClass, TEMPLATE_PARAMETER__NAME);
+ createEReference(templateParameterEClass, TEMPLATE_PARAMETER__BASE_TEMPLATEPARAMETER);
+
+ unionEClass = createEClass(UNION);
+ createEReference(unionEClass, UNION__BASE_DATA_TYPE);
+
+ storageClassEClass = createEClass(STORAGE_CLASS);
+ createEAttribute(storageClassEClass, STORAGE_CLASS__STORAGE_CLASS);
+ createEReference(storageClassEClass, STORAGE_CLASS__BASE_PROPERTY);
+ createEReference(storageClassEClass, STORAGE_CLASS__BASE_PARAMETER);
+
+ volatileEClass = createEClass(VOLATILE);
+ createEReference(volatileEClass, VOLATILE__BASE_PARAMETER);
+ createEReference(volatileEClass, VOLATILE__BASE_PROPERTY);
+ createEReference(volatileEClass, VOLATILE__BASE_OPERATION);
+
+ variadicEClass = createEClass(VARIADIC);
+ createEReference(variadicEClass, VARIADIC__BASE_OPERATION);
+
+ mutableEClass = createEClass(MUTABLE);
+ createEReference(mutableEClass, MUTABLE__BASE_PROPERTY);
+
+ // Create enums
+ visibilityKindEEnum = createEEnum(VISIBILITY_KIND);
+ eAccessKindEEnum = createEEnum(EACCESS_KIND);
+ eStorageClassEEnum = createEEnum(ESTORAGE_CLASS);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ UMLPackage theUMLPackage = (UMLPackage)EPackage.Registry.INSTANCE.getEPackage(UMLPackage.eNS_URI);
+ TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(ptrEClass, Ptr.class, "Ptr", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getPtr_Base_parameter(), theUMLPackage.getParameter(), null, "base_parameter", null, 0, 1, Ptr.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getPtr_Base_property(), theUMLPackage.getProperty(), null, "base_property", null, 0, 1, Ptr.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getPtr_Declaration(), theTypesPackage.getString(), "declaration", null, 0, 1, Ptr.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(includeEClass, Include.class, "Include", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getInclude_Body(), theTypesPackage.getString(), "body", "", 0, 1, Include.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getInclude_PreBody(), theTypesPackage.getString(), "preBody", "", 0, 1, Include.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getInclude_Header(), theTypesPackage.getString(), "header", "", 0, 1, Include.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getInclude_Base_package(), theUMLPackage.getPackage(), null, "base_package", null, 0, 1, Include.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getInclude_Base_class(), theUMLPackage.getClass_(), null, "base_class", null, 0, 1, Include.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getInclude_Base_Classifier(), theUMLPackage.getClassifier(), null, "base_Classifier", null, 0, 1, Include.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(manualGenerationEClass, ManualGeneration.class, "ManualGeneration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getManualGeneration_ExtensionBody(), theTypesPackage.getString(), "extensionBody", null, 1, 1, ManualGeneration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getManualGeneration_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, ManualGeneration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(externLibraryEClass, ExternLibrary.class, "ExternLibrary", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getExternLibrary_IncludePaths(), theTypesPackage.getString(), "includePaths", null, 0, -1, ExternLibrary.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getExternLibrary_Base_package(), theUMLPackage.getPackage(), null, "base_package", null, 1, 1, ExternLibrary.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getExternLibrary_LibPaths(), theTypesPackage.getString(), "libPaths", null, 0, -1, ExternLibrary.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getExternLibrary_Macros(), theTypesPackage.getString(), "macros", null, 0, -1, ExternLibrary.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getExternLibrary_Libs(), theTypesPackage.getString(), "libs", null, 0, -1, ExternLibrary.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getExternLibrary_Includes(), theTypesPackage.getString(), "includes", null, 0, -1, ExternLibrary.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(noCodeGenEClass, NoCodeGen.class, "NoCodeGen", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getNoCodeGen_Base_element(), theUMLPackage.getElement(), null, "base_element", null, 1, 1, NoCodeGen.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(cppRootEClass, CppRoot.class, "CppRoot", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getCppRoot_Base_package(), theUMLPackage.getPackage(), null, "base_package", null, 1, 1, CppRoot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(arrayEClass, Array.class, "Array", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getArray_Base_parameter(), theUMLPackage.getParameter(), null, "base_parameter", null, 0, 1, Array.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getArray_Definition(), theTypesPackage.getString(), "definition", null, 1, 1, Array.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getArray_Base_property(), theUMLPackage.getProperty(), null, "base_property", null, 0, 1, Array.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getArray_Base_association(), theUMLPackage.getAssociation(), null, "base_association", null, 0, 1, Array.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(constEClass, Const.class, "Const", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getConst_Base_parameter(), theUMLPackage.getParameter(), null, "base_parameter", null, 0, 1, Const.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getConst_Base_property(), theUMLPackage.getProperty(), null, "base_property", null, 0, 1, Const.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getConst_Base_operation(), theUMLPackage.getOperation(), null, "base_operation", null, 0, 1, Const.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(refEClass, Ref.class, "Ref", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getRef_Base_parameter(), theUMLPackage.getParameter(), null, "base_parameter", null, 0, 1, Ref.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getRef_Base_property(), theUMLPackage.getProperty(), null, "base_property", null, 0, 1, Ref.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(externalEClass, External.class, "External", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getExternal_Name(), theTypesPackage.getString(), "name", null, 0, 1, External.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getExternal_Base_Classifier(), theUMLPackage.getClassifier(), null, "base_Classifier", null, 1, 1, External.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(constInitEClass, ConstInit.class, "ConstInit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getConstInit_Initialisation(), theTypesPackage.getString(), "initialisation", null, 1, 1, ConstInit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getConstInit_Base_operation(), theUMLPackage.getOperation(), null, "base_operation", null, 1, 1, ConstInit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(friendEClass, Friend.class, "Friend", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getFriend_Base_dependency(), theUMLPackage.getDependency(), null, "base_dependency", null, 0, 1, Friend.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getFriend_Base_operation(), theUMLPackage.getOperation(), null, "base_operation", null, 0, 1, Friend.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(inlineEClass, Inline.class, "Inline", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getInline_Base_operation(), theUMLPackage.getOperation(), null, "base_operation", null, 1, 1, Inline.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(virtualEClass, Virtual.class, "Virtual", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getVirtual_Base_operation(), theUMLPackage.getOperation(), null, "base_operation", null, 1, 1, Virtual.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(typedefEClass, Typedef.class, "Typedef", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getTypedef_Definition(), theTypesPackage.getString(), "definition", null, 1, 1, Typedef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getTypedef_Base_primitivetype(), theUMLPackage.getPrimitiveType(), null, "base_primitivetype", null, 1, 1, Typedef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(visibilityEClass, Visibility.class, "Visibility", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getVisibility_Value(), theTypesPackage.getString(), "value", null, 1, 1, Visibility.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getVisibility_Base_generalization(), theUMLPackage.getGeneralization(), null, "base_generalization", null, 1, 1, Visibility.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(cppInitEClass, CppInit.class, "CppInit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getCppInit_Value(), theTypesPackage.getInteger(), "value", null, 1, 1, CppInit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getCppInit_Base_enumerationliteral(), theUMLPackage.getEnumerationLiteral(), null, "base_enumerationliteral", null, 1, 1, CppInit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(templateEClass, Template.class, "Template", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getTemplate_Declaration(), theTypesPackage.getString(), "declaration", null, 1, 1, Template.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getTemplate_Base_class(), theUMLPackage.getClass_(), null, "base_class", null, 1, 1, Template.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(templateBindingEClass, TemplateBinding.class, "TemplateBinding", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getTemplateBinding_Binding(), theTypesPackage.getString(), "binding", null, 1, 1, TemplateBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getTemplateBinding_Base_templatebinding(), theUMLPackage.getTemplateBinding(), null, "base_templatebinding", null, 1, 1, TemplateBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(templateParameterEClass, TemplateParameter.class, "TemplateParameter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getTemplateParameter_Name(), theTypesPackage.getString(), "name", null, 1, 1, TemplateParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getTemplateParameter_Base_templateparameter(), theUMLPackage.getTemplateParameter(), null, "base_templateparameter", null, 1, 1, TemplateParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(unionEClass, Union.class, "Union", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getUnion_Base_DataType(), theUMLPackage.getDataType(), null, "base_DataType", null, 1, 1, Union.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(storageClassEClass, StorageClass.class, "StorageClass", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getStorageClass_StorageClass(), this.getEStorageClass(), "storageClass", null, 1, 1, StorageClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getStorageClass_Base_Property(), theUMLPackage.getProperty(), null, "base_Property", null, 0, 1, StorageClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getStorageClass_Base_Parameter(), theUMLPackage.getParameter(), null, "base_Parameter", null, 0, 1, StorageClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(volatileEClass, Volatile.class, "Volatile", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getVolatile_Base_parameter(), theUMLPackage.getParameter(), null, "base_parameter", null, 0, 1, Volatile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getVolatile_Base_property(), theUMLPackage.getProperty(), null, "base_property", null, 0, 1, Volatile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getVolatile_Base_operation(), theUMLPackage.getOperation(), null, "base_operation", null, 0, 1, Volatile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(variadicEClass, Variadic.class, "Variadic", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getVariadic_Base_operation(), theUMLPackage.getOperation(), null, "base_operation", null, 1, 1, Variadic.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(mutableEClass, Mutable.class, "Mutable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getMutable_Base_property(), theUMLPackage.getProperty(), null, "base_property", null, 1, 1, Mutable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ // Initialize enums and add enum literals
+ initEEnum(visibilityKindEEnum, VisibilityKind.class, "VisibilityKind");
+ addEEnumLiteral(visibilityKindEEnum, VisibilityKind.PRIVATE);
+ addEEnumLiteral(visibilityKindEEnum, VisibilityKind.PROTECTED);
+ addEEnumLiteral(visibilityKindEEnum, VisibilityKind.PUBLIC);
+
+ initEEnum(eAccessKindEEnum, EAccessKind.class, "EAccessKind");
+ addEEnumLiteral(eAccessKindEEnum, EAccessKind.READ);
+ addEEnumLiteral(eAccessKindEEnum, EAccessKind.WRITE);
+ addEEnumLiteral(eAccessKindEEnum, EAccessKind.READ_WRITE);
+
+ initEEnum(eStorageClassEEnum, EStorageClass.class, "EStorageClass");
+ addEEnumLiteral(eStorageClassEEnum, EStorageClass.VOLATILE);
+ addEEnumLiteral(eStorageClassEEnum, EStorageClass.REGISTER);
+ addEEnumLiteral(eStorageClassEEnum, EStorageClass.EXTERN);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} // C_CppPackageImpl
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/ConstImpl.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/ConstImpl.java
new file mode 100644
index 00000000000..0f14741165d
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/ConstImpl.java
@@ -0,0 +1,292 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.papyrus.C_Cpp.C_CppPackage;
+import org.eclipse.papyrus.C_Cpp.Const;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Const</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.ConstImpl#getBase_parameter <em>Base parameter</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.ConstImpl#getBase_property <em>Base property</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.ConstImpl#getBase_operation <em>Base operation</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ConstImpl extends MinimalEObjectImpl.Container implements Const {
+ /**
+ * The cached value of the '{@link #getBase_parameter() <em>Base parameter</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_parameter()
+ * @generated
+ * @ordered
+ */
+ protected Parameter base_parameter;
+
+ /**
+ * The cached value of the '{@link #getBase_property() <em>Base property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_property()
+ * @generated
+ * @ordered
+ */
+ protected Property base_property;
+
+ /**
+ * The cached value of the '{@link #getBase_operation() <em>Base operation</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_operation()
+ * @generated
+ * @ordered
+ */
+ protected Operation base_operation;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConstImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return C_CppPackage.Literals.CONST;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Parameter getBase_parameter() {
+ if (base_parameter != null && base_parameter.eIsProxy()) {
+ InternalEObject oldBase_parameter = (InternalEObject)base_parameter;
+ base_parameter = (Parameter)eResolveProxy(oldBase_parameter);
+ if (base_parameter != oldBase_parameter) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.CONST__BASE_PARAMETER, oldBase_parameter, base_parameter));
+ }
+ }
+ return base_parameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Parameter basicGetBase_parameter() {
+ return base_parameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_parameter(Parameter newBase_parameter) {
+ Parameter oldBase_parameter = base_parameter;
+ base_parameter = newBase_parameter;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.CONST__BASE_PARAMETER, oldBase_parameter, base_parameter));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Property getBase_property() {
+ if (base_property != null && base_property.eIsProxy()) {
+ InternalEObject oldBase_property = (InternalEObject)base_property;
+ base_property = (Property)eResolveProxy(oldBase_property);
+ if (base_property != oldBase_property) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.CONST__BASE_PROPERTY, oldBase_property, base_property));
+ }
+ }
+ return base_property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property basicGetBase_property() {
+ return base_property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_property(Property newBase_property) {
+ Property oldBase_property = base_property;
+ base_property = newBase_property;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.CONST__BASE_PROPERTY, oldBase_property, base_property));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Operation getBase_operation() {
+ if (base_operation != null && base_operation.eIsProxy()) {
+ InternalEObject oldBase_operation = (InternalEObject)base_operation;
+ base_operation = (Operation)eResolveProxy(oldBase_operation);
+ if (base_operation != oldBase_operation) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.CONST__BASE_OPERATION, oldBase_operation, base_operation));
+ }
+ }
+ return base_operation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Operation basicGetBase_operation() {
+ return base_operation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_operation(Operation newBase_operation) {
+ Operation oldBase_operation = base_operation;
+ base_operation = newBase_operation;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.CONST__BASE_OPERATION, oldBase_operation, base_operation));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case C_CppPackage.CONST__BASE_PARAMETER:
+ if (resolve) return getBase_parameter();
+ return basicGetBase_parameter();
+ case C_CppPackage.CONST__BASE_PROPERTY:
+ if (resolve) return getBase_property();
+ return basicGetBase_property();
+ case C_CppPackage.CONST__BASE_OPERATION:
+ if (resolve) return getBase_operation();
+ return basicGetBase_operation();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case C_CppPackage.CONST__BASE_PARAMETER:
+ setBase_parameter((Parameter)newValue);
+ return;
+ case C_CppPackage.CONST__BASE_PROPERTY:
+ setBase_property((Property)newValue);
+ return;
+ case C_CppPackage.CONST__BASE_OPERATION:
+ setBase_operation((Operation)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.CONST__BASE_PARAMETER:
+ setBase_parameter((Parameter)null);
+ return;
+ case C_CppPackage.CONST__BASE_PROPERTY:
+ setBase_property((Property)null);
+ return;
+ case C_CppPackage.CONST__BASE_OPERATION:
+ setBase_operation((Operation)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.CONST__BASE_PARAMETER:
+ return base_parameter != null;
+ case C_CppPackage.CONST__BASE_PROPERTY:
+ return base_property != null;
+ case C_CppPackage.CONST__BASE_OPERATION:
+ return base_operation != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // ConstImpl
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/ConstInitImpl.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/ConstInitImpl.java
new file mode 100644
index 00000000000..0e0bfc786c3
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/ConstInitImpl.java
@@ -0,0 +1,236 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.papyrus.C_Cpp.C_CppPackage;
+import org.eclipse.papyrus.C_Cpp.ConstInit;
+import org.eclipse.uml2.uml.Operation;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Const Init</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.ConstInitImpl#getInitialisation <em>Initialisation</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.ConstInitImpl#getBase_operation <em>Base operation</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ConstInitImpl extends MinimalEObjectImpl.Container implements ConstInit {
+ /**
+ * The default value of the '{@link #getInitialisation() <em>Initialisation</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInitialisation()
+ * @generated
+ * @ordered
+ */
+ protected static final String INITIALISATION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getInitialisation() <em>Initialisation</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInitialisation()
+ * @generated
+ * @ordered
+ */
+ protected String initialisation = INITIALISATION_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getBase_operation() <em>Base operation</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_operation()
+ * @generated
+ * @ordered
+ */
+ protected Operation base_operation;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConstInitImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return C_CppPackage.Literals.CONST_INIT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getInitialisation() {
+ return initialisation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setInitialisation(String newInitialisation) {
+ String oldInitialisation = initialisation;
+ initialisation = newInitialisation;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.CONST_INIT__INITIALISATION, oldInitialisation, initialisation));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Operation getBase_operation() {
+ if (base_operation != null && base_operation.eIsProxy()) {
+ InternalEObject oldBase_operation = (InternalEObject)base_operation;
+ base_operation = (Operation)eResolveProxy(oldBase_operation);
+ if (base_operation != oldBase_operation) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.CONST_INIT__BASE_OPERATION, oldBase_operation, base_operation));
+ }
+ }
+ return base_operation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Operation basicGetBase_operation() {
+ return base_operation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_operation(Operation newBase_operation) {
+ Operation oldBase_operation = base_operation;
+ base_operation = newBase_operation;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.CONST_INIT__BASE_OPERATION, oldBase_operation, base_operation));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case C_CppPackage.CONST_INIT__INITIALISATION:
+ return getInitialisation();
+ case C_CppPackage.CONST_INIT__BASE_OPERATION:
+ if (resolve) return getBase_operation();
+ return basicGetBase_operation();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case C_CppPackage.CONST_INIT__INITIALISATION:
+ setInitialisation((String)newValue);
+ return;
+ case C_CppPackage.CONST_INIT__BASE_OPERATION:
+ setBase_operation((Operation)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.CONST_INIT__INITIALISATION:
+ setInitialisation(INITIALISATION_EDEFAULT);
+ return;
+ case C_CppPackage.CONST_INIT__BASE_OPERATION:
+ setBase_operation((Operation)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.CONST_INIT__INITIALISATION:
+ return INITIALISATION_EDEFAULT == null ? initialisation != null : !INITIALISATION_EDEFAULT.equals(initialisation);
+ case C_CppPackage.CONST_INIT__BASE_OPERATION:
+ return base_operation != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (initialisation: ");
+ result.append(initialisation);
+ result.append(')');
+ return result.toString();
+ }
+
+} // ConstInitImpl
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/CppInitImpl.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/CppInitImpl.java
new file mode 100644
index 00000000000..51cded9d983
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/CppInitImpl.java
@@ -0,0 +1,236 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.papyrus.C_Cpp.C_CppPackage;
+import org.eclipse.papyrus.C_Cpp.CppInit;
+import org.eclipse.uml2.uml.EnumerationLiteral;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Cpp Init</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.CppInitImpl#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.CppInitImpl#getBase_enumerationliteral <em>Base enumerationliteral</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class CppInitImpl extends MinimalEObjectImpl.Container implements CppInit {
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final int VALUE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected int value = VALUE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getBase_enumerationliteral() <em>Base enumerationliteral</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_enumerationliteral()
+ * @generated
+ * @ordered
+ */
+ protected EnumerationLiteral base_enumerationliteral;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CppInitImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return C_CppPackage.Literals.CPP_INIT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setValue(int newValue) {
+ int oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.CPP_INIT__VALUE, oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EnumerationLiteral getBase_enumerationliteral() {
+ if (base_enumerationliteral != null && base_enumerationliteral.eIsProxy()) {
+ InternalEObject oldBase_enumerationliteral = (InternalEObject)base_enumerationliteral;
+ base_enumerationliteral = (EnumerationLiteral)eResolveProxy(oldBase_enumerationliteral);
+ if (base_enumerationliteral != oldBase_enumerationliteral) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.CPP_INIT__BASE_ENUMERATIONLITERAL, oldBase_enumerationliteral, base_enumerationliteral));
+ }
+ }
+ return base_enumerationliteral;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EnumerationLiteral basicGetBase_enumerationliteral() {
+ return base_enumerationliteral;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_enumerationliteral(EnumerationLiteral newBase_enumerationliteral) {
+ EnumerationLiteral oldBase_enumerationliteral = base_enumerationliteral;
+ base_enumerationliteral = newBase_enumerationliteral;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.CPP_INIT__BASE_ENUMERATIONLITERAL, oldBase_enumerationliteral, base_enumerationliteral));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case C_CppPackage.CPP_INIT__VALUE:
+ return getValue();
+ case C_CppPackage.CPP_INIT__BASE_ENUMERATIONLITERAL:
+ if (resolve) return getBase_enumerationliteral();
+ return basicGetBase_enumerationliteral();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case C_CppPackage.CPP_INIT__VALUE:
+ setValue((Integer)newValue);
+ return;
+ case C_CppPackage.CPP_INIT__BASE_ENUMERATIONLITERAL:
+ setBase_enumerationliteral((EnumerationLiteral)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.CPP_INIT__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ case C_CppPackage.CPP_INIT__BASE_ENUMERATIONLITERAL:
+ setBase_enumerationliteral((EnumerationLiteral)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.CPP_INIT__VALUE:
+ return value != VALUE_EDEFAULT;
+ case C_CppPackage.CPP_INIT__BASE_ENUMERATIONLITERAL:
+ return base_enumerationliteral != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (value: ");
+ result.append(value);
+ result.append(')');
+ return result.toString();
+ }
+
+} // CppInitImpl
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/CppRootImpl.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/CppRootImpl.java
new file mode 100644
index 00000000000..99ecba8d819
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/CppRootImpl.java
@@ -0,0 +1,165 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.papyrus.C_Cpp.C_CppPackage;
+import org.eclipse.papyrus.C_Cpp.CppRoot;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Cpp Root</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.CppRootImpl#getBase_package <em>Base package</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class CppRootImpl extends MinimalEObjectImpl.Container implements CppRoot {
+ /**
+ * The cached value of the '{@link #getBase_package() <em>Base package</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_package()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Package base_package;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CppRootImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return C_CppPackage.Literals.CPP_ROOT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Package getBase_package() {
+ if (base_package != null && base_package.eIsProxy()) {
+ InternalEObject oldBase_package = (InternalEObject)base_package;
+ base_package = (org.eclipse.uml2.uml.Package)eResolveProxy(oldBase_package);
+ if (base_package != oldBase_package) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.CPP_ROOT__BASE_PACKAGE, oldBase_package, base_package));
+ }
+ }
+ return base_package;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Package basicGetBase_package() {
+ return base_package;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_package(org.eclipse.uml2.uml.Package newBase_package) {
+ org.eclipse.uml2.uml.Package oldBase_package = base_package;
+ base_package = newBase_package;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.CPP_ROOT__BASE_PACKAGE, oldBase_package, base_package));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case C_CppPackage.CPP_ROOT__BASE_PACKAGE:
+ if (resolve) return getBase_package();
+ return basicGetBase_package();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case C_CppPackage.CPP_ROOT__BASE_PACKAGE:
+ setBase_package((org.eclipse.uml2.uml.Package)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.CPP_ROOT__BASE_PACKAGE:
+ setBase_package((org.eclipse.uml2.uml.Package)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.CPP_ROOT__BASE_PACKAGE:
+ return base_package != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // CppRootImpl
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/ExternLibraryImpl.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/ExternLibraryImpl.java
new file mode 100644
index 00000000000..3be2fad1a1a
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/ExternLibraryImpl.java
@@ -0,0 +1,370 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeEList;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.papyrus.C_Cpp.C_CppPackage;
+import org.eclipse.papyrus.C_Cpp.ExternLibrary;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Extern Library</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.ExternLibraryImpl#getIncludePaths <em>Include Paths</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.ExternLibraryImpl#getBase_package <em>Base package</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.ExternLibraryImpl#getLibPaths <em>Lib Paths</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.ExternLibraryImpl#getMacros <em>Macros</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.ExternLibraryImpl#getLibs <em>Libs</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.ExternLibraryImpl#getIncludes <em>Includes</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ExternLibraryImpl extends MinimalEObjectImpl.Container implements ExternLibrary {
+ /**
+ * The cached value of the '{@link #getIncludePaths() <em>Include Paths</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIncludePaths()
+ * @generated
+ * @ordered
+ */
+ protected EList<String> includePaths;
+
+ /**
+ * The cached value of the '{@link #getBase_package() <em>Base package</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_package()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Package base_package;
+
+ /**
+ * The cached value of the '{@link #getLibPaths() <em>Lib Paths</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLibPaths()
+ * @generated
+ * @ordered
+ */
+ protected EList<String> libPaths;
+
+ /**
+ * The cached value of the '{@link #getMacros() <em>Macros</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMacros()
+ * @generated
+ * @ordered
+ */
+ protected EList<String> macros;
+
+ /**
+ * The cached value of the '{@link #getLibs() <em>Libs</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLibs()
+ * @generated
+ * @ordered
+ */
+ protected EList<String> libs;
+
+ /**
+ * The cached value of the '{@link #getIncludes() <em>Includes</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIncludes()
+ * @generated
+ * @ordered
+ */
+ protected EList<String> includes;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ExternLibraryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return C_CppPackage.Literals.EXTERN_LIBRARY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<String> getIncludePaths() {
+ if (includePaths == null) {
+ includePaths = new EDataTypeEList<String>(String.class, this, C_CppPackage.EXTERN_LIBRARY__INCLUDE_PATHS);
+ }
+ return includePaths;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Package getBase_package() {
+ if (base_package != null && base_package.eIsProxy()) {
+ InternalEObject oldBase_package = (InternalEObject)base_package;
+ base_package = (org.eclipse.uml2.uml.Package)eResolveProxy(oldBase_package);
+ if (base_package != oldBase_package) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.EXTERN_LIBRARY__BASE_PACKAGE, oldBase_package, base_package));
+ }
+ }
+ return base_package;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Package basicGetBase_package() {
+ return base_package;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_package(org.eclipse.uml2.uml.Package newBase_package) {
+ org.eclipse.uml2.uml.Package oldBase_package = base_package;
+ base_package = newBase_package;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.EXTERN_LIBRARY__BASE_PACKAGE, oldBase_package, base_package));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<String> getLibPaths() {
+ if (libPaths == null) {
+ libPaths = new EDataTypeUniqueEList<String>(String.class, this, C_CppPackage.EXTERN_LIBRARY__LIB_PATHS);
+ }
+ return libPaths;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<String> getMacros() {
+ if (macros == null) {
+ macros = new EDataTypeUniqueEList<String>(String.class, this, C_CppPackage.EXTERN_LIBRARY__MACROS);
+ }
+ return macros;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<String> getLibs() {
+ if (libs == null) {
+ libs = new EDataTypeUniqueEList<String>(String.class, this, C_CppPackage.EXTERN_LIBRARY__LIBS);
+ }
+ return libs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<String> getIncludes() {
+ if (includes == null) {
+ includes = new EDataTypeUniqueEList<String>(String.class, this, C_CppPackage.EXTERN_LIBRARY__INCLUDES);
+ }
+ return includes;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case C_CppPackage.EXTERN_LIBRARY__INCLUDE_PATHS:
+ return getIncludePaths();
+ case C_CppPackage.EXTERN_LIBRARY__BASE_PACKAGE:
+ if (resolve) return getBase_package();
+ return basicGetBase_package();
+ case C_CppPackage.EXTERN_LIBRARY__LIB_PATHS:
+ return getLibPaths();
+ case C_CppPackage.EXTERN_LIBRARY__MACROS:
+ return getMacros();
+ case C_CppPackage.EXTERN_LIBRARY__LIBS:
+ return getLibs();
+ case C_CppPackage.EXTERN_LIBRARY__INCLUDES:
+ return getIncludes();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case C_CppPackage.EXTERN_LIBRARY__INCLUDE_PATHS:
+ getIncludePaths().clear();
+ getIncludePaths().addAll((Collection<? extends String>)newValue);
+ return;
+ case C_CppPackage.EXTERN_LIBRARY__BASE_PACKAGE:
+ setBase_package((org.eclipse.uml2.uml.Package)newValue);
+ return;
+ case C_CppPackage.EXTERN_LIBRARY__LIB_PATHS:
+ getLibPaths().clear();
+ getLibPaths().addAll((Collection<? extends String>)newValue);
+ return;
+ case C_CppPackage.EXTERN_LIBRARY__MACROS:
+ getMacros().clear();
+ getMacros().addAll((Collection<? extends String>)newValue);
+ return;
+ case C_CppPackage.EXTERN_LIBRARY__LIBS:
+ getLibs().clear();
+ getLibs().addAll((Collection<? extends String>)newValue);
+ return;
+ case C_CppPackage.EXTERN_LIBRARY__INCLUDES:
+ getIncludes().clear();
+ getIncludes().addAll((Collection<? extends String>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.EXTERN_LIBRARY__INCLUDE_PATHS:
+ getIncludePaths().clear();
+ return;
+ case C_CppPackage.EXTERN_LIBRARY__BASE_PACKAGE:
+ setBase_package((org.eclipse.uml2.uml.Package)null);
+ return;
+ case C_CppPackage.EXTERN_LIBRARY__LIB_PATHS:
+ getLibPaths().clear();
+ return;
+ case C_CppPackage.EXTERN_LIBRARY__MACROS:
+ getMacros().clear();
+ return;
+ case C_CppPackage.EXTERN_LIBRARY__LIBS:
+ getLibs().clear();
+ return;
+ case C_CppPackage.EXTERN_LIBRARY__INCLUDES:
+ getIncludes().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.EXTERN_LIBRARY__INCLUDE_PATHS:
+ return includePaths != null && !includePaths.isEmpty();
+ case C_CppPackage.EXTERN_LIBRARY__BASE_PACKAGE:
+ return base_package != null;
+ case C_CppPackage.EXTERN_LIBRARY__LIB_PATHS:
+ return libPaths != null && !libPaths.isEmpty();
+ case C_CppPackage.EXTERN_LIBRARY__MACROS:
+ return macros != null && !macros.isEmpty();
+ case C_CppPackage.EXTERN_LIBRARY__LIBS:
+ return libs != null && !libs.isEmpty();
+ case C_CppPackage.EXTERN_LIBRARY__INCLUDES:
+ return includes != null && !includes.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (includePaths: ");
+ result.append(includePaths);
+ result.append(", libPaths: ");
+ result.append(libPaths);
+ result.append(", macros: ");
+ result.append(macros);
+ result.append(", libs: ");
+ result.append(libs);
+ result.append(", includes: ");
+ result.append(includes);
+ result.append(')');
+ return result.toString();
+ }
+
+} // ExternLibraryImpl
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/ExternalImpl.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/ExternalImpl.java
new file mode 100644
index 00000000000..02982a5840c
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/ExternalImpl.java
@@ -0,0 +1,236 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.papyrus.C_Cpp.C_CppPackage;
+import org.eclipse.papyrus.C_Cpp.External;
+import org.eclipse.uml2.uml.Classifier;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>External</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.ExternalImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.ExternalImpl#getBase_Classifier <em>Base Classifier</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ExternalImpl extends MinimalEObjectImpl.Container implements External {
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getBase_Classifier() <em>Base Classifier</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Classifier()
+ * @generated
+ * @ordered
+ */
+ protected Classifier base_Classifier;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ExternalImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return C_CppPackage.Literals.EXTERNAL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.EXTERNAL__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Classifier getBase_Classifier() {
+ if (base_Classifier != null && base_Classifier.eIsProxy()) {
+ InternalEObject oldBase_Classifier = (InternalEObject)base_Classifier;
+ base_Classifier = (Classifier)eResolveProxy(oldBase_Classifier);
+ if (base_Classifier != oldBase_Classifier) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.EXTERNAL__BASE_CLASSIFIER, oldBase_Classifier, base_Classifier));
+ }
+ }
+ return base_Classifier;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Classifier basicGetBase_Classifier() {
+ return base_Classifier;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Classifier(Classifier newBase_Classifier) {
+ Classifier oldBase_Classifier = base_Classifier;
+ base_Classifier = newBase_Classifier;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.EXTERNAL__BASE_CLASSIFIER, oldBase_Classifier, base_Classifier));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case C_CppPackage.EXTERNAL__NAME:
+ return getName();
+ case C_CppPackage.EXTERNAL__BASE_CLASSIFIER:
+ if (resolve) return getBase_Classifier();
+ return basicGetBase_Classifier();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case C_CppPackage.EXTERNAL__NAME:
+ setName((String)newValue);
+ return;
+ case C_CppPackage.EXTERNAL__BASE_CLASSIFIER:
+ setBase_Classifier((Classifier)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.EXTERNAL__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case C_CppPackage.EXTERNAL__BASE_CLASSIFIER:
+ setBase_Classifier((Classifier)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.EXTERNAL__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case C_CppPackage.EXTERNAL__BASE_CLASSIFIER:
+ return base_Classifier != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(')');
+ return result.toString();
+ }
+
+} // ExternalImpl
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/FriendImpl.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/FriendImpl.java
new file mode 100644
index 00000000000..128e37db5aa
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/FriendImpl.java
@@ -0,0 +1,229 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.papyrus.C_Cpp.C_CppPackage;
+import org.eclipse.papyrus.C_Cpp.Friend;
+import org.eclipse.uml2.uml.Dependency;
+import org.eclipse.uml2.uml.Operation;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Friend</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.FriendImpl#getBase_dependency <em>Base dependency</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.FriendImpl#getBase_operation <em>Base operation</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class FriendImpl extends MinimalEObjectImpl.Container implements Friend {
+ /**
+ * The cached value of the '{@link #getBase_dependency() <em>Base dependency</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_dependency()
+ * @generated
+ * @ordered
+ */
+ protected Dependency base_dependency;
+
+ /**
+ * The cached value of the '{@link #getBase_operation() <em>Base operation</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_operation()
+ * @generated
+ * @ordered
+ */
+ protected Operation base_operation;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FriendImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return C_CppPackage.Literals.FRIEND;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Dependency getBase_dependency() {
+ if (base_dependency != null && base_dependency.eIsProxy()) {
+ InternalEObject oldBase_dependency = (InternalEObject)base_dependency;
+ base_dependency = (Dependency)eResolveProxy(oldBase_dependency);
+ if (base_dependency != oldBase_dependency) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.FRIEND__BASE_DEPENDENCY, oldBase_dependency, base_dependency));
+ }
+ }
+ return base_dependency;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Dependency basicGetBase_dependency() {
+ return base_dependency;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_dependency(Dependency newBase_dependency) {
+ Dependency oldBase_dependency = base_dependency;
+ base_dependency = newBase_dependency;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.FRIEND__BASE_DEPENDENCY, oldBase_dependency, base_dependency));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Operation getBase_operation() {
+ if (base_operation != null && base_operation.eIsProxy()) {
+ InternalEObject oldBase_operation = (InternalEObject)base_operation;
+ base_operation = (Operation)eResolveProxy(oldBase_operation);
+ if (base_operation != oldBase_operation) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.FRIEND__BASE_OPERATION, oldBase_operation, base_operation));
+ }
+ }
+ return base_operation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Operation basicGetBase_operation() {
+ return base_operation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_operation(Operation newBase_operation) {
+ Operation oldBase_operation = base_operation;
+ base_operation = newBase_operation;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.FRIEND__BASE_OPERATION, oldBase_operation, base_operation));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case C_CppPackage.FRIEND__BASE_DEPENDENCY:
+ if (resolve) return getBase_dependency();
+ return basicGetBase_dependency();
+ case C_CppPackage.FRIEND__BASE_OPERATION:
+ if (resolve) return getBase_operation();
+ return basicGetBase_operation();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case C_CppPackage.FRIEND__BASE_DEPENDENCY:
+ setBase_dependency((Dependency)newValue);
+ return;
+ case C_CppPackage.FRIEND__BASE_OPERATION:
+ setBase_operation((Operation)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.FRIEND__BASE_DEPENDENCY:
+ setBase_dependency((Dependency)null);
+ return;
+ case C_CppPackage.FRIEND__BASE_OPERATION:
+ setBase_operation((Operation)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.FRIEND__BASE_DEPENDENCY:
+ return base_dependency != null;
+ case C_CppPackage.FRIEND__BASE_OPERATION:
+ return base_operation != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // FriendImpl
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/IncludeImpl.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/IncludeImpl.java
new file mode 100644
index 00000000000..e8d5bf7b6da
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/IncludeImpl.java
@@ -0,0 +1,468 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.papyrus.C_Cpp.C_CppPackage;
+import org.eclipse.papyrus.C_Cpp.Include;
+import org.eclipse.uml2.uml.Classifier;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Include</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.IncludeImpl#getBody <em>Body</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.IncludeImpl#getPreBody <em>Pre Body</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.IncludeImpl#getHeader <em>Header</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.IncludeImpl#getBase_package <em>Base package</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.IncludeImpl#getBase_class <em>Base class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.IncludeImpl#getBase_Classifier <em>Base Classifier</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class IncludeImpl extends MinimalEObjectImpl.Container implements Include {
+ /**
+ * The default value of the '{@link #getBody() <em>Body</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBody()
+ * @generated
+ * @ordered
+ */
+ protected static final String BODY_EDEFAULT = ""; //$NON-NLS-1$
+
+ /**
+ * The cached value of the '{@link #getBody() <em>Body</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBody()
+ * @generated
+ * @ordered
+ */
+ protected String body = BODY_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getPreBody() <em>Pre Body</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPreBody()
+ * @generated
+ * @ordered
+ */
+ protected static final String PRE_BODY_EDEFAULT = ""; //$NON-NLS-1$
+
+ /**
+ * The cached value of the '{@link #getPreBody() <em>Pre Body</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPreBody()
+ * @generated
+ * @ordered
+ */
+ protected String preBody = PRE_BODY_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getHeader() <em>Header</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHeader()
+ * @generated
+ * @ordered
+ */
+ protected static final String HEADER_EDEFAULT = ""; //$NON-NLS-1$
+
+ /**
+ * The cached value of the '{@link #getHeader() <em>Header</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHeader()
+ * @generated
+ * @ordered
+ */
+ protected String header = HEADER_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getBase_package() <em>Base package</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_package()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Package base_package;
+
+ /**
+ * The cached value of the '{@link #getBase_class() <em>Base class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_class;
+
+ /**
+ * The cached value of the '{@link #getBase_Classifier() <em>Base Classifier</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Classifier()
+ * @generated
+ * @ordered
+ */
+ protected Classifier base_Classifier;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IncludeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return C_CppPackage.Literals.INCLUDE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getBody() {
+ return body;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBody(String newBody) {
+ String oldBody = body;
+ body = newBody;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.INCLUDE__BODY, oldBody, body));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getPreBody() {
+ return preBody;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setPreBody(String newPreBody) {
+ String oldPreBody = preBody;
+ preBody = newPreBody;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.INCLUDE__PRE_BODY, oldPreBody, preBody));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getHeader() {
+ return header;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setHeader(String newHeader) {
+ String oldHeader = header;
+ header = newHeader;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.INCLUDE__HEADER, oldHeader, header));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Package getBase_package() {
+ if (base_package != null && base_package.eIsProxy()) {
+ InternalEObject oldBase_package = (InternalEObject)base_package;
+ base_package = (org.eclipse.uml2.uml.Package)eResolveProxy(oldBase_package);
+ if (base_package != oldBase_package) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.INCLUDE__BASE_PACKAGE, oldBase_package, base_package));
+ }
+ }
+ return base_package;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Package basicGetBase_package() {
+ return base_package;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_package(org.eclipse.uml2.uml.Package newBase_package) {
+ org.eclipse.uml2.uml.Package oldBase_package = base_package;
+ base_package = newBase_package;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.INCLUDE__BASE_PACKAGE, oldBase_package, base_package));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class getBase_class() {
+ if (base_class != null && base_class.eIsProxy()) {
+ InternalEObject oldBase_class = (InternalEObject)base_class;
+ base_class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_class);
+ if (base_class != oldBase_class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.INCLUDE__BASE_CLASS, oldBase_class, base_class));
+ }
+ }
+ return base_class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_class() {
+ return base_class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_class(org.eclipse.uml2.uml.Class newBase_class) {
+ org.eclipse.uml2.uml.Class oldBase_class = base_class;
+ base_class = newBase_class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.INCLUDE__BASE_CLASS, oldBase_class, base_class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Classifier getBase_Classifier() {
+ if (base_Classifier != null && base_Classifier.eIsProxy()) {
+ InternalEObject oldBase_Classifier = (InternalEObject)base_Classifier;
+ base_Classifier = (Classifier)eResolveProxy(oldBase_Classifier);
+ if (base_Classifier != oldBase_Classifier) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.INCLUDE__BASE_CLASSIFIER, oldBase_Classifier, base_Classifier));
+ }
+ }
+ return base_Classifier;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Classifier basicGetBase_Classifier() {
+ return base_Classifier;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Classifier(Classifier newBase_Classifier) {
+ Classifier oldBase_Classifier = base_Classifier;
+ base_Classifier = newBase_Classifier;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.INCLUDE__BASE_CLASSIFIER, oldBase_Classifier, base_Classifier));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case C_CppPackage.INCLUDE__BODY:
+ return getBody();
+ case C_CppPackage.INCLUDE__PRE_BODY:
+ return getPreBody();
+ case C_CppPackage.INCLUDE__HEADER:
+ return getHeader();
+ case C_CppPackage.INCLUDE__BASE_PACKAGE:
+ if (resolve) return getBase_package();
+ return basicGetBase_package();
+ case C_CppPackage.INCLUDE__BASE_CLASS:
+ if (resolve) return getBase_class();
+ return basicGetBase_class();
+ case C_CppPackage.INCLUDE__BASE_CLASSIFIER:
+ if (resolve) return getBase_Classifier();
+ return basicGetBase_Classifier();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case C_CppPackage.INCLUDE__BODY:
+ setBody((String)newValue);
+ return;
+ case C_CppPackage.INCLUDE__PRE_BODY:
+ setPreBody((String)newValue);
+ return;
+ case C_CppPackage.INCLUDE__HEADER:
+ setHeader((String)newValue);
+ return;
+ case C_CppPackage.INCLUDE__BASE_PACKAGE:
+ setBase_package((org.eclipse.uml2.uml.Package)newValue);
+ return;
+ case C_CppPackage.INCLUDE__BASE_CLASS:
+ setBase_class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ case C_CppPackage.INCLUDE__BASE_CLASSIFIER:
+ setBase_Classifier((Classifier)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.INCLUDE__BODY:
+ setBody(BODY_EDEFAULT);
+ return;
+ case C_CppPackage.INCLUDE__PRE_BODY:
+ setPreBody(PRE_BODY_EDEFAULT);
+ return;
+ case C_CppPackage.INCLUDE__HEADER:
+ setHeader(HEADER_EDEFAULT);
+ return;
+ case C_CppPackage.INCLUDE__BASE_PACKAGE:
+ setBase_package((org.eclipse.uml2.uml.Package)null);
+ return;
+ case C_CppPackage.INCLUDE__BASE_CLASS:
+ setBase_class((org.eclipse.uml2.uml.Class)null);
+ return;
+ case C_CppPackage.INCLUDE__BASE_CLASSIFIER:
+ setBase_Classifier((Classifier)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.INCLUDE__BODY:
+ return BODY_EDEFAULT == null ? body != null : !BODY_EDEFAULT.equals(body);
+ case C_CppPackage.INCLUDE__PRE_BODY:
+ return PRE_BODY_EDEFAULT == null ? preBody != null : !PRE_BODY_EDEFAULT.equals(preBody);
+ case C_CppPackage.INCLUDE__HEADER:
+ return HEADER_EDEFAULT == null ? header != null : !HEADER_EDEFAULT.equals(header);
+ case C_CppPackage.INCLUDE__BASE_PACKAGE:
+ return base_package != null;
+ case C_CppPackage.INCLUDE__BASE_CLASS:
+ return base_class != null;
+ case C_CppPackage.INCLUDE__BASE_CLASSIFIER:
+ return base_Classifier != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (body: ");
+ result.append(body);
+ result.append(", preBody: ");
+ result.append(preBody);
+ result.append(", header: ");
+ result.append(header);
+ result.append(')');
+ return result.toString();
+ }
+
+} // IncludeImpl
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/InlineImpl.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/InlineImpl.java
new file mode 100644
index 00000000000..091904f7416
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/InlineImpl.java
@@ -0,0 +1,166 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.papyrus.C_Cpp.C_CppPackage;
+import org.eclipse.papyrus.C_Cpp.Inline;
+import org.eclipse.uml2.uml.Operation;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Inline</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.InlineImpl#getBase_operation <em>Base operation</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class InlineImpl extends MinimalEObjectImpl.Container implements Inline {
+ /**
+ * The cached value of the '{@link #getBase_operation() <em>Base operation</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_operation()
+ * @generated
+ * @ordered
+ */
+ protected Operation base_operation;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InlineImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return C_CppPackage.Literals.INLINE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Operation getBase_operation() {
+ if (base_operation != null && base_operation.eIsProxy()) {
+ InternalEObject oldBase_operation = (InternalEObject)base_operation;
+ base_operation = (Operation)eResolveProxy(oldBase_operation);
+ if (base_operation != oldBase_operation) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.INLINE__BASE_OPERATION, oldBase_operation, base_operation));
+ }
+ }
+ return base_operation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Operation basicGetBase_operation() {
+ return base_operation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_operation(Operation newBase_operation) {
+ Operation oldBase_operation = base_operation;
+ base_operation = newBase_operation;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.INLINE__BASE_OPERATION, oldBase_operation, base_operation));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case C_CppPackage.INLINE__BASE_OPERATION:
+ if (resolve) return getBase_operation();
+ return basicGetBase_operation();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case C_CppPackage.INLINE__BASE_OPERATION:
+ setBase_operation((Operation)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.INLINE__BASE_OPERATION:
+ setBase_operation((Operation)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.INLINE__BASE_OPERATION:
+ return base_operation != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // InlineImpl
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/ManualGenerationImpl.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/ManualGenerationImpl.java
new file mode 100644
index 00000000000..4507d67ed3b
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/ManualGenerationImpl.java
@@ -0,0 +1,235 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.papyrus.C_Cpp.C_CppPackage;
+import org.eclipse.papyrus.C_Cpp.ManualGeneration;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Manual Generation</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.ManualGenerationImpl#getExtensionBody <em>Extension Body</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.ManualGenerationImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ManualGenerationImpl extends MinimalEObjectImpl.Container implements ManualGeneration {
+ /**
+ * The default value of the '{@link #getExtensionBody() <em>Extension Body</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExtensionBody()
+ * @generated
+ * @ordered
+ */
+ protected static final String EXTENSION_BODY_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getExtensionBody() <em>Extension Body</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExtensionBody()
+ * @generated
+ * @ordered
+ */
+ protected String extensionBody = EXTENSION_BODY_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ManualGenerationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return C_CppPackage.Literals.MANUAL_GENERATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getExtensionBody() {
+ return extensionBody;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setExtensionBody(String newExtensionBody) {
+ String oldExtensionBody = extensionBody;
+ extensionBody = newExtensionBody;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.MANUAL_GENERATION__EXTENSION_BODY, oldExtensionBody, extensionBody));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.MANUAL_GENERATION__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.MANUAL_GENERATION__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case C_CppPackage.MANUAL_GENERATION__EXTENSION_BODY:
+ return getExtensionBody();
+ case C_CppPackage.MANUAL_GENERATION__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case C_CppPackage.MANUAL_GENERATION__EXTENSION_BODY:
+ setExtensionBody((String)newValue);
+ return;
+ case C_CppPackage.MANUAL_GENERATION__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.MANUAL_GENERATION__EXTENSION_BODY:
+ setExtensionBody(EXTENSION_BODY_EDEFAULT);
+ return;
+ case C_CppPackage.MANUAL_GENERATION__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.MANUAL_GENERATION__EXTENSION_BODY:
+ return EXTENSION_BODY_EDEFAULT == null ? extensionBody != null : !EXTENSION_BODY_EDEFAULT.equals(extensionBody);
+ case C_CppPackage.MANUAL_GENERATION__BASE_CLASS:
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (extensionBody: ");
+ result.append(extensionBody);
+ result.append(')');
+ return result.toString();
+ }
+
+} // ManualGenerationImpl
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/MutableImpl.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/MutableImpl.java
new file mode 100644
index 00000000000..d0d2217c44d
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/MutableImpl.java
@@ -0,0 +1,157 @@
+/**
+ */
+package org.eclipse.papyrus.C_Cpp.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.C_Cpp.C_CppPackage;
+import org.eclipse.papyrus.C_Cpp.Mutable;
+
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Mutable</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.MutableImpl#getBase_property <em>Base property</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class MutableImpl extends MinimalEObjectImpl.Container implements Mutable {
+ /**
+ * The cached value of the '{@link #getBase_property() <em>Base property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_property()
+ * @generated
+ * @ordered
+ */
+ protected Property base_property;
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MutableImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return C_CppPackage.Literals.MUTABLE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property getBase_property() {
+ if (base_property != null && base_property.eIsProxy()) {
+ InternalEObject oldBase_property = (InternalEObject)base_property;
+ base_property = (Property)eResolveProxy(oldBase_property);
+ if (base_property != oldBase_property) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.MUTABLE__BASE_PROPERTY, oldBase_property, base_property));
+ }
+ }
+ return base_property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property basicGetBase_property() {
+ return base_property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_property(Property newBase_property) {
+ Property oldBase_property = base_property;
+ base_property = newBase_property;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.MUTABLE__BASE_PROPERTY, oldBase_property, base_property));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case C_CppPackage.MUTABLE__BASE_PROPERTY:
+ if (resolve) return getBase_property();
+ return basicGetBase_property();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case C_CppPackage.MUTABLE__BASE_PROPERTY:
+ setBase_property((Property)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.MUTABLE__BASE_PROPERTY:
+ setBase_property((Property)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.MUTABLE__BASE_PROPERTY:
+ return base_property != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //MutableImpl
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/NoCodeGenImpl.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/NoCodeGenImpl.java
new file mode 100644
index 00000000000..123867448aa
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/NoCodeGenImpl.java
@@ -0,0 +1,166 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.papyrus.C_Cpp.C_CppPackage;
+import org.eclipse.papyrus.C_Cpp.NoCodeGen;
+import org.eclipse.uml2.uml.Element;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>No Code Gen</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.NoCodeGenImpl#getBase_element <em>Base element</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class NoCodeGenImpl extends MinimalEObjectImpl.Container implements NoCodeGen {
+ /**
+ * The cached value of the '{@link #getBase_element() <em>Base element</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_element()
+ * @generated
+ * @ordered
+ */
+ protected Element base_element;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected NoCodeGenImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return C_CppPackage.Literals.NO_CODE_GEN;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Element getBase_element() {
+ if (base_element != null && base_element.eIsProxy()) {
+ InternalEObject oldBase_element = (InternalEObject)base_element;
+ base_element = (Element)eResolveProxy(oldBase_element);
+ if (base_element != oldBase_element) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.NO_CODE_GEN__BASE_ELEMENT, oldBase_element, base_element));
+ }
+ }
+ return base_element;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetBase_element() {
+ return base_element;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_element(Element newBase_element) {
+ Element oldBase_element = base_element;
+ base_element = newBase_element;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.NO_CODE_GEN__BASE_ELEMENT, oldBase_element, base_element));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case C_CppPackage.NO_CODE_GEN__BASE_ELEMENT:
+ if (resolve) return getBase_element();
+ return basicGetBase_element();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case C_CppPackage.NO_CODE_GEN__BASE_ELEMENT:
+ setBase_element((Element)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.NO_CODE_GEN__BASE_ELEMENT:
+ setBase_element((Element)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.NO_CODE_GEN__BASE_ELEMENT:
+ return base_element != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // NoCodeGenImpl
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/PtrImpl.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/PtrImpl.java
new file mode 100644
index 00000000000..e0d4cf2d577
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/PtrImpl.java
@@ -0,0 +1,299 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.papyrus.C_Cpp.C_CppPackage;
+import org.eclipse.papyrus.C_Cpp.Ptr;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Ptr</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.PtrImpl#getBase_parameter <em>Base parameter</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.PtrImpl#getBase_property <em>Base property</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.PtrImpl#getDeclaration <em>Declaration</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class PtrImpl extends MinimalEObjectImpl.Container implements Ptr {
+ /**
+ * The cached value of the '{@link #getBase_parameter() <em>Base parameter</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_parameter()
+ * @generated
+ * @ordered
+ */
+ protected Parameter base_parameter;
+
+ /**
+ * The cached value of the '{@link #getBase_property() <em>Base property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_property()
+ * @generated
+ * @ordered
+ */
+ protected Property base_property;
+
+ /**
+ * The default value of the '{@link #getDeclaration() <em>Declaration</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDeclaration()
+ * @generated
+ * @ordered
+ */
+ protected static final String DECLARATION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDeclaration() <em>Declaration</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDeclaration()
+ * @generated
+ * @ordered
+ */
+ protected String declaration = DECLARATION_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PtrImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return C_CppPackage.Literals.PTR;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Parameter getBase_parameter() {
+ if (base_parameter != null && base_parameter.eIsProxy()) {
+ InternalEObject oldBase_parameter = (InternalEObject)base_parameter;
+ base_parameter = (Parameter)eResolveProxy(oldBase_parameter);
+ if (base_parameter != oldBase_parameter) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.PTR__BASE_PARAMETER, oldBase_parameter, base_parameter));
+ }
+ }
+ return base_parameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Parameter basicGetBase_parameter() {
+ return base_parameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_parameter(Parameter newBase_parameter) {
+ Parameter oldBase_parameter = base_parameter;
+ base_parameter = newBase_parameter;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.PTR__BASE_PARAMETER, oldBase_parameter, base_parameter));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Property getBase_property() {
+ if (base_property != null && base_property.eIsProxy()) {
+ InternalEObject oldBase_property = (InternalEObject)base_property;
+ base_property = (Property)eResolveProxy(oldBase_property);
+ if (base_property != oldBase_property) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.PTR__BASE_PROPERTY, oldBase_property, base_property));
+ }
+ }
+ return base_property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property basicGetBase_property() {
+ return base_property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_property(Property newBase_property) {
+ Property oldBase_property = base_property;
+ base_property = newBase_property;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.PTR__BASE_PROPERTY, oldBase_property, base_property));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getDeclaration() {
+ return declaration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setDeclaration(String newDeclaration) {
+ String oldDeclaration = declaration;
+ declaration = newDeclaration;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.PTR__DECLARATION, oldDeclaration, declaration));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case C_CppPackage.PTR__BASE_PARAMETER:
+ if (resolve) return getBase_parameter();
+ return basicGetBase_parameter();
+ case C_CppPackage.PTR__BASE_PROPERTY:
+ if (resolve) return getBase_property();
+ return basicGetBase_property();
+ case C_CppPackage.PTR__DECLARATION:
+ return getDeclaration();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case C_CppPackage.PTR__BASE_PARAMETER:
+ setBase_parameter((Parameter)newValue);
+ return;
+ case C_CppPackage.PTR__BASE_PROPERTY:
+ setBase_property((Property)newValue);
+ return;
+ case C_CppPackage.PTR__DECLARATION:
+ setDeclaration((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.PTR__BASE_PARAMETER:
+ setBase_parameter((Parameter)null);
+ return;
+ case C_CppPackage.PTR__BASE_PROPERTY:
+ setBase_property((Property)null);
+ return;
+ case C_CppPackage.PTR__DECLARATION:
+ setDeclaration(DECLARATION_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.PTR__BASE_PARAMETER:
+ return base_parameter != null;
+ case C_CppPackage.PTR__BASE_PROPERTY:
+ return base_property != null;
+ case C_CppPackage.PTR__DECLARATION:
+ return DECLARATION_EDEFAULT == null ? declaration != null : !DECLARATION_EDEFAULT.equals(declaration);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (declaration: ");
+ result.append(declaration);
+ result.append(')');
+ return result.toString();
+ }
+
+} // PtrImpl
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/RefImpl.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/RefImpl.java
new file mode 100644
index 00000000000..59529e7d1e4
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/RefImpl.java
@@ -0,0 +1,229 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.papyrus.C_Cpp.C_CppPackage;
+import org.eclipse.papyrus.C_Cpp.Ref;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Ref</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.RefImpl#getBase_parameter <em>Base parameter</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.RefImpl#getBase_property <em>Base property</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class RefImpl extends MinimalEObjectImpl.Container implements Ref {
+ /**
+ * The cached value of the '{@link #getBase_parameter() <em>Base parameter</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_parameter()
+ * @generated
+ * @ordered
+ */
+ protected Parameter base_parameter;
+
+ /**
+ * The cached value of the '{@link #getBase_property() <em>Base property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_property()
+ * @generated
+ * @ordered
+ */
+ protected Property base_property;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RefImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return C_CppPackage.Literals.REF;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Parameter getBase_parameter() {
+ if (base_parameter != null && base_parameter.eIsProxy()) {
+ InternalEObject oldBase_parameter = (InternalEObject)base_parameter;
+ base_parameter = (Parameter)eResolveProxy(oldBase_parameter);
+ if (base_parameter != oldBase_parameter) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.REF__BASE_PARAMETER, oldBase_parameter, base_parameter));
+ }
+ }
+ return base_parameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Parameter basicGetBase_parameter() {
+ return base_parameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_parameter(Parameter newBase_parameter) {
+ Parameter oldBase_parameter = base_parameter;
+ base_parameter = newBase_parameter;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.REF__BASE_PARAMETER, oldBase_parameter, base_parameter));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Property getBase_property() {
+ if (base_property != null && base_property.eIsProxy()) {
+ InternalEObject oldBase_property = (InternalEObject)base_property;
+ base_property = (Property)eResolveProxy(oldBase_property);
+ if (base_property != oldBase_property) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.REF__BASE_PROPERTY, oldBase_property, base_property));
+ }
+ }
+ return base_property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property basicGetBase_property() {
+ return base_property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_property(Property newBase_property) {
+ Property oldBase_property = base_property;
+ base_property = newBase_property;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.REF__BASE_PROPERTY, oldBase_property, base_property));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case C_CppPackage.REF__BASE_PARAMETER:
+ if (resolve) return getBase_parameter();
+ return basicGetBase_parameter();
+ case C_CppPackage.REF__BASE_PROPERTY:
+ if (resolve) return getBase_property();
+ return basicGetBase_property();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case C_CppPackage.REF__BASE_PARAMETER:
+ setBase_parameter((Parameter)newValue);
+ return;
+ case C_CppPackage.REF__BASE_PROPERTY:
+ setBase_property((Property)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.REF__BASE_PARAMETER:
+ setBase_parameter((Parameter)null);
+ return;
+ case C_CppPackage.REF__BASE_PROPERTY:
+ setBase_property((Property)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.REF__BASE_PARAMETER:
+ return base_parameter != null;
+ case C_CppPackage.REF__BASE_PROPERTY:
+ return base_property != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // RefImpl
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/StorageClassImpl.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/StorageClassImpl.java
new file mode 100644
index 00000000000..e2300c07f8e
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/StorageClassImpl.java
@@ -0,0 +1,296 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.papyrus.C_Cpp.C_CppPackage;
+import org.eclipse.papyrus.C_Cpp.EStorageClass;
+import org.eclipse.papyrus.C_Cpp.StorageClass;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Storage Class</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.StorageClassImpl#getStorageClass <em>Storage Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.StorageClassImpl#getBase_Property <em>Base Property</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.StorageClassImpl#getBase_Parameter <em>Base Parameter</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class StorageClassImpl extends MinimalEObjectImpl.Container implements StorageClass {
+ /**
+ * The default value of the '{@link #getStorageClass() <em>Storage Class</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStorageClass()
+ * @generated
+ * @ordered
+ */
+ protected static final EStorageClass STORAGE_CLASS_EDEFAULT = EStorageClass.VOLATILE;
+
+ /**
+ * The cached value of the '{@link #getStorageClass() <em>Storage Class</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStorageClass()
+ * @generated
+ * @ordered
+ */
+ protected EStorageClass storageClass = STORAGE_CLASS_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getBase_Property() <em>Base Property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Property()
+ * @generated
+ * @ordered
+ */
+ protected Property base_Property;
+
+ /**
+ * The cached value of the '{@link #getBase_Parameter() <em>Base Parameter</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Parameter()
+ * @generated
+ * @ordered
+ */
+ protected Parameter base_Parameter;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StorageClassImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return C_CppPackage.Literals.STORAGE_CLASS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EStorageClass getStorageClass() {
+ return storageClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setStorageClass(EStorageClass newStorageClass) {
+ EStorageClass oldStorageClass = storageClass;
+ storageClass = newStorageClass == null ? STORAGE_CLASS_EDEFAULT : newStorageClass;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.STORAGE_CLASS__STORAGE_CLASS, oldStorageClass, storageClass));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property getBase_Property() {
+ if (base_Property != null && base_Property.eIsProxy()) {
+ InternalEObject oldBase_Property = (InternalEObject)base_Property;
+ base_Property = (Property)eResolveProxy(oldBase_Property);
+ if (base_Property != oldBase_Property) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.STORAGE_CLASS__BASE_PROPERTY, oldBase_Property, base_Property));
+ }
+ }
+ return base_Property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property basicGetBase_Property() {
+ return base_Property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Property(Property newBase_Property) {
+ Property oldBase_Property = base_Property;
+ base_Property = newBase_Property;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.STORAGE_CLASS__BASE_PROPERTY, oldBase_Property, base_Property));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Parameter getBase_Parameter() {
+ if (base_Parameter != null && base_Parameter.eIsProxy()) {
+ InternalEObject oldBase_Parameter = (InternalEObject)base_Parameter;
+ base_Parameter = (Parameter)eResolveProxy(oldBase_Parameter);
+ if (base_Parameter != oldBase_Parameter) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.STORAGE_CLASS__BASE_PARAMETER, oldBase_Parameter, base_Parameter));
+ }
+ }
+ return base_Parameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Parameter basicGetBase_Parameter() {
+ return base_Parameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Parameter(Parameter newBase_Parameter) {
+ Parameter oldBase_Parameter = base_Parameter;
+ base_Parameter = newBase_Parameter;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.STORAGE_CLASS__BASE_PARAMETER, oldBase_Parameter, base_Parameter));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case C_CppPackage.STORAGE_CLASS__STORAGE_CLASS:
+ return getStorageClass();
+ case C_CppPackage.STORAGE_CLASS__BASE_PROPERTY:
+ if (resolve) return getBase_Property();
+ return basicGetBase_Property();
+ case C_CppPackage.STORAGE_CLASS__BASE_PARAMETER:
+ if (resolve) return getBase_Parameter();
+ return basicGetBase_Parameter();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case C_CppPackage.STORAGE_CLASS__STORAGE_CLASS:
+ setStorageClass((EStorageClass)newValue);
+ return;
+ case C_CppPackage.STORAGE_CLASS__BASE_PROPERTY:
+ setBase_Property((Property)newValue);
+ return;
+ case C_CppPackage.STORAGE_CLASS__BASE_PARAMETER:
+ setBase_Parameter((Parameter)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.STORAGE_CLASS__STORAGE_CLASS:
+ setStorageClass(STORAGE_CLASS_EDEFAULT);
+ return;
+ case C_CppPackage.STORAGE_CLASS__BASE_PROPERTY:
+ setBase_Property((Property)null);
+ return;
+ case C_CppPackage.STORAGE_CLASS__BASE_PARAMETER:
+ setBase_Parameter((Parameter)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.STORAGE_CLASS__STORAGE_CLASS:
+ return storageClass != STORAGE_CLASS_EDEFAULT;
+ case C_CppPackage.STORAGE_CLASS__BASE_PROPERTY:
+ return base_Property != null;
+ case C_CppPackage.STORAGE_CLASS__BASE_PARAMETER:
+ return base_Parameter != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (storageClass: ");
+ result.append(storageClass);
+ result.append(')');
+ return result.toString();
+ }
+
+} // StorageClassImpl
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/TemplateBindingImpl.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/TemplateBindingImpl.java
new file mode 100644
index 00000000000..097340a211b
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/TemplateBindingImpl.java
@@ -0,0 +1,235 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.papyrus.C_Cpp.C_CppPackage;
+import org.eclipse.papyrus.C_Cpp.TemplateBinding;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Template Binding</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.TemplateBindingImpl#getBinding <em>Binding</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.TemplateBindingImpl#getBase_templatebinding <em>Base templatebinding</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class TemplateBindingImpl extends MinimalEObjectImpl.Container implements TemplateBinding {
+ /**
+ * The default value of the '{@link #getBinding() <em>Binding</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBinding()
+ * @generated
+ * @ordered
+ */
+ protected static final String BINDING_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getBinding() <em>Binding</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBinding()
+ * @generated
+ * @ordered
+ */
+ protected String binding = BINDING_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getBase_templatebinding() <em>Base templatebinding</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_templatebinding()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.TemplateBinding base_templatebinding;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TemplateBindingImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return C_CppPackage.Literals.TEMPLATE_BINDING;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getBinding() {
+ return binding;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBinding(String newBinding) {
+ String oldBinding = binding;
+ binding = newBinding;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.TEMPLATE_BINDING__BINDING, oldBinding, binding));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.TemplateBinding getBase_templatebinding() {
+ if (base_templatebinding != null && base_templatebinding.eIsProxy()) {
+ InternalEObject oldBase_templatebinding = (InternalEObject)base_templatebinding;
+ base_templatebinding = (org.eclipse.uml2.uml.TemplateBinding)eResolveProxy(oldBase_templatebinding);
+ if (base_templatebinding != oldBase_templatebinding) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.TEMPLATE_BINDING__BASE_TEMPLATEBINDING, oldBase_templatebinding, base_templatebinding));
+ }
+ }
+ return base_templatebinding;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.TemplateBinding basicGetBase_templatebinding() {
+ return base_templatebinding;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_templatebinding(org.eclipse.uml2.uml.TemplateBinding newBase_templatebinding) {
+ org.eclipse.uml2.uml.TemplateBinding oldBase_templatebinding = base_templatebinding;
+ base_templatebinding = newBase_templatebinding;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.TEMPLATE_BINDING__BASE_TEMPLATEBINDING, oldBase_templatebinding, base_templatebinding));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case C_CppPackage.TEMPLATE_BINDING__BINDING:
+ return getBinding();
+ case C_CppPackage.TEMPLATE_BINDING__BASE_TEMPLATEBINDING:
+ if (resolve) return getBase_templatebinding();
+ return basicGetBase_templatebinding();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case C_CppPackage.TEMPLATE_BINDING__BINDING:
+ setBinding((String)newValue);
+ return;
+ case C_CppPackage.TEMPLATE_BINDING__BASE_TEMPLATEBINDING:
+ setBase_templatebinding((org.eclipse.uml2.uml.TemplateBinding)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.TEMPLATE_BINDING__BINDING:
+ setBinding(BINDING_EDEFAULT);
+ return;
+ case C_CppPackage.TEMPLATE_BINDING__BASE_TEMPLATEBINDING:
+ setBase_templatebinding((org.eclipse.uml2.uml.TemplateBinding)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.TEMPLATE_BINDING__BINDING:
+ return BINDING_EDEFAULT == null ? binding != null : !BINDING_EDEFAULT.equals(binding);
+ case C_CppPackage.TEMPLATE_BINDING__BASE_TEMPLATEBINDING:
+ return base_templatebinding != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (binding: ");
+ result.append(binding);
+ result.append(')');
+ return result.toString();
+ }
+
+} // TemplateBindingImpl
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/TemplateImpl.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/TemplateImpl.java
new file mode 100644
index 00000000000..17a3a741071
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/TemplateImpl.java
@@ -0,0 +1,235 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.papyrus.C_Cpp.C_CppPackage;
+import org.eclipse.papyrus.C_Cpp.Template;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Template</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.TemplateImpl#getDeclaration <em>Declaration</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.TemplateImpl#getBase_class <em>Base class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class TemplateImpl extends MinimalEObjectImpl.Container implements Template {
+ /**
+ * The default value of the '{@link #getDeclaration() <em>Declaration</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDeclaration()
+ * @generated
+ * @ordered
+ */
+ protected static final String DECLARATION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDeclaration() <em>Declaration</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDeclaration()
+ * @generated
+ * @ordered
+ */
+ protected String declaration = DECLARATION_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getBase_class() <em>Base class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TemplateImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return C_CppPackage.Literals.TEMPLATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getDeclaration() {
+ return declaration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setDeclaration(String newDeclaration) {
+ String oldDeclaration = declaration;
+ declaration = newDeclaration;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.TEMPLATE__DECLARATION, oldDeclaration, declaration));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_class() {
+ if (base_class != null && base_class.eIsProxy()) {
+ InternalEObject oldBase_class = (InternalEObject)base_class;
+ base_class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_class);
+ if (base_class != oldBase_class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.TEMPLATE__BASE_CLASS, oldBase_class, base_class));
+ }
+ }
+ return base_class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_class() {
+ return base_class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_class(org.eclipse.uml2.uml.Class newBase_class) {
+ org.eclipse.uml2.uml.Class oldBase_class = base_class;
+ base_class = newBase_class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.TEMPLATE__BASE_CLASS, oldBase_class, base_class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case C_CppPackage.TEMPLATE__DECLARATION:
+ return getDeclaration();
+ case C_CppPackage.TEMPLATE__BASE_CLASS:
+ if (resolve) return getBase_class();
+ return basicGetBase_class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case C_CppPackage.TEMPLATE__DECLARATION:
+ setDeclaration((String)newValue);
+ return;
+ case C_CppPackage.TEMPLATE__BASE_CLASS:
+ setBase_class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.TEMPLATE__DECLARATION:
+ setDeclaration(DECLARATION_EDEFAULT);
+ return;
+ case C_CppPackage.TEMPLATE__BASE_CLASS:
+ setBase_class((org.eclipse.uml2.uml.Class)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.TEMPLATE__DECLARATION:
+ return DECLARATION_EDEFAULT == null ? declaration != null : !DECLARATION_EDEFAULT.equals(declaration);
+ case C_CppPackage.TEMPLATE__BASE_CLASS:
+ return base_class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (declaration: ");
+ result.append(declaration);
+ result.append(')');
+ return result.toString();
+ }
+
+} // TemplateImpl
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/TemplateParameterImpl.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/TemplateParameterImpl.java
new file mode 100644
index 00000000000..2ba65fbebfb
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/TemplateParameterImpl.java
@@ -0,0 +1,235 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.papyrus.C_Cpp.C_CppPackage;
+import org.eclipse.papyrus.C_Cpp.TemplateParameter;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Template Parameter</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.TemplateParameterImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.TemplateParameterImpl#getBase_templateparameter <em>Base templateparameter</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class TemplateParameterImpl extends MinimalEObjectImpl.Container implements TemplateParameter {
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getBase_templateparameter() <em>Base templateparameter</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_templateparameter()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.TemplateParameter base_templateparameter;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TemplateParameterImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return C_CppPackage.Literals.TEMPLATE_PARAMETER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.TEMPLATE_PARAMETER__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.TemplateParameter getBase_templateparameter() {
+ if (base_templateparameter != null && base_templateparameter.eIsProxy()) {
+ InternalEObject oldBase_templateparameter = (InternalEObject)base_templateparameter;
+ base_templateparameter = (org.eclipse.uml2.uml.TemplateParameter)eResolveProxy(oldBase_templateparameter);
+ if (base_templateparameter != oldBase_templateparameter) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.TEMPLATE_PARAMETER__BASE_TEMPLATEPARAMETER, oldBase_templateparameter, base_templateparameter));
+ }
+ }
+ return base_templateparameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.TemplateParameter basicGetBase_templateparameter() {
+ return base_templateparameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_templateparameter(org.eclipse.uml2.uml.TemplateParameter newBase_templateparameter) {
+ org.eclipse.uml2.uml.TemplateParameter oldBase_templateparameter = base_templateparameter;
+ base_templateparameter = newBase_templateparameter;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.TEMPLATE_PARAMETER__BASE_TEMPLATEPARAMETER, oldBase_templateparameter, base_templateparameter));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case C_CppPackage.TEMPLATE_PARAMETER__NAME:
+ return getName();
+ case C_CppPackage.TEMPLATE_PARAMETER__BASE_TEMPLATEPARAMETER:
+ if (resolve) return getBase_templateparameter();
+ return basicGetBase_templateparameter();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case C_CppPackage.TEMPLATE_PARAMETER__NAME:
+ setName((String)newValue);
+ return;
+ case C_CppPackage.TEMPLATE_PARAMETER__BASE_TEMPLATEPARAMETER:
+ setBase_templateparameter((org.eclipse.uml2.uml.TemplateParameter)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.TEMPLATE_PARAMETER__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case C_CppPackage.TEMPLATE_PARAMETER__BASE_TEMPLATEPARAMETER:
+ setBase_templateparameter((org.eclipse.uml2.uml.TemplateParameter)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.TEMPLATE_PARAMETER__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case C_CppPackage.TEMPLATE_PARAMETER__BASE_TEMPLATEPARAMETER:
+ return base_templateparameter != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(')');
+ return result.toString();
+ }
+
+} // TemplateParameterImpl
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/TypedefImpl.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/TypedefImpl.java
new file mode 100644
index 00000000000..dd30383f008
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/TypedefImpl.java
@@ -0,0 +1,236 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.papyrus.C_Cpp.C_CppPackage;
+import org.eclipse.papyrus.C_Cpp.Typedef;
+import org.eclipse.uml2.uml.PrimitiveType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Typedef</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.TypedefImpl#getDefinition <em>Definition</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.TypedefImpl#getBase_primitivetype <em>Base primitivetype</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class TypedefImpl extends MinimalEObjectImpl.Container implements Typedef {
+ /**
+ * The default value of the '{@link #getDefinition() <em>Definition</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDefinition()
+ * @generated
+ * @ordered
+ */
+ protected static final String DEFINITION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDefinition() <em>Definition</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDefinition()
+ * @generated
+ * @ordered
+ */
+ protected String definition = DEFINITION_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getBase_primitivetype() <em>Base primitivetype</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_primitivetype()
+ * @generated
+ * @ordered
+ */
+ protected PrimitiveType base_primitivetype;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TypedefImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return C_CppPackage.Literals.TYPEDEF;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getDefinition() {
+ return definition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setDefinition(String newDefinition) {
+ String oldDefinition = definition;
+ definition = newDefinition;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.TYPEDEF__DEFINITION, oldDefinition, definition));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public PrimitiveType getBase_primitivetype() {
+ if (base_primitivetype != null && base_primitivetype.eIsProxy()) {
+ InternalEObject oldBase_primitivetype = (InternalEObject)base_primitivetype;
+ base_primitivetype = (PrimitiveType)eResolveProxy(oldBase_primitivetype);
+ if (base_primitivetype != oldBase_primitivetype) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.TYPEDEF__BASE_PRIMITIVETYPE, oldBase_primitivetype, base_primitivetype));
+ }
+ }
+ return base_primitivetype;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PrimitiveType basicGetBase_primitivetype() {
+ return base_primitivetype;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_primitivetype(PrimitiveType newBase_primitivetype) {
+ PrimitiveType oldBase_primitivetype = base_primitivetype;
+ base_primitivetype = newBase_primitivetype;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.TYPEDEF__BASE_PRIMITIVETYPE, oldBase_primitivetype, base_primitivetype));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case C_CppPackage.TYPEDEF__DEFINITION:
+ return getDefinition();
+ case C_CppPackage.TYPEDEF__BASE_PRIMITIVETYPE:
+ if (resolve) return getBase_primitivetype();
+ return basicGetBase_primitivetype();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case C_CppPackage.TYPEDEF__DEFINITION:
+ setDefinition((String)newValue);
+ return;
+ case C_CppPackage.TYPEDEF__BASE_PRIMITIVETYPE:
+ setBase_primitivetype((PrimitiveType)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.TYPEDEF__DEFINITION:
+ setDefinition(DEFINITION_EDEFAULT);
+ return;
+ case C_CppPackage.TYPEDEF__BASE_PRIMITIVETYPE:
+ setBase_primitivetype((PrimitiveType)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.TYPEDEF__DEFINITION:
+ return DEFINITION_EDEFAULT == null ? definition != null : !DEFINITION_EDEFAULT.equals(definition);
+ case C_CppPackage.TYPEDEF__BASE_PRIMITIVETYPE:
+ return base_primitivetype != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (definition: ");
+ result.append(definition);
+ result.append(')');
+ return result.toString();
+ }
+
+} // TypedefImpl
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/UnionImpl.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/UnionImpl.java
new file mode 100644
index 00000000000..ece4ef86bb1
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/UnionImpl.java
@@ -0,0 +1,166 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.papyrus.C_Cpp.C_CppPackage;
+import org.eclipse.papyrus.C_Cpp.Union;
+import org.eclipse.uml2.uml.DataType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Union</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.UnionImpl#getBase_DataType <em>Base Data Type</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class UnionImpl extends MinimalEObjectImpl.Container implements Union {
+ /**
+ * The cached value of the '{@link #getBase_DataType() <em>Base Data Type</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_DataType()
+ * @generated
+ * @ordered
+ */
+ protected DataType base_DataType;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected UnionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return C_CppPackage.Literals.UNION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public DataType getBase_DataType() {
+ if (base_DataType != null && base_DataType.eIsProxy()) {
+ InternalEObject oldBase_DataType = (InternalEObject)base_DataType;
+ base_DataType = (DataType)eResolveProxy(oldBase_DataType);
+ if (base_DataType != oldBase_DataType) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.UNION__BASE_DATA_TYPE, oldBase_DataType, base_DataType));
+ }
+ }
+ return base_DataType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DataType basicGetBase_DataType() {
+ return base_DataType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_DataType(DataType newBase_DataType) {
+ DataType oldBase_DataType = base_DataType;
+ base_DataType = newBase_DataType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.UNION__BASE_DATA_TYPE, oldBase_DataType, base_DataType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case C_CppPackage.UNION__BASE_DATA_TYPE:
+ if (resolve) return getBase_DataType();
+ return basicGetBase_DataType();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case C_CppPackage.UNION__BASE_DATA_TYPE:
+ setBase_DataType((DataType)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.UNION__BASE_DATA_TYPE:
+ setBase_DataType((DataType)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.UNION__BASE_DATA_TYPE:
+ return base_DataType != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // UnionImpl
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/VariadicImpl.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/VariadicImpl.java
new file mode 100644
index 00000000000..d59834ca4ad
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/VariadicImpl.java
@@ -0,0 +1,157 @@
+/**
+ */
+package org.eclipse.papyrus.C_Cpp.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.C_Cpp.C_CppPackage;
+import org.eclipse.papyrus.C_Cpp.Variadic;
+
+import org.eclipse.uml2.uml.Operation;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Variadic</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.VariadicImpl#getBase_operation <em>Base operation</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class VariadicImpl extends MinimalEObjectImpl.Container implements Variadic {
+ /**
+ * The cached value of the '{@link #getBase_operation() <em>Base operation</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_operation()
+ * @generated
+ * @ordered
+ */
+ protected Operation base_operation;
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected VariadicImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return C_CppPackage.Literals.VARIADIC;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Operation getBase_operation() {
+ if (base_operation != null && base_operation.eIsProxy()) {
+ InternalEObject oldBase_operation = (InternalEObject)base_operation;
+ base_operation = (Operation)eResolveProxy(oldBase_operation);
+ if (base_operation != oldBase_operation) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.VARIADIC__BASE_OPERATION, oldBase_operation, base_operation));
+ }
+ }
+ return base_operation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Operation basicGetBase_operation() {
+ return base_operation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_operation(Operation newBase_operation) {
+ Operation oldBase_operation = base_operation;
+ base_operation = newBase_operation;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.VARIADIC__BASE_OPERATION, oldBase_operation, base_operation));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case C_CppPackage.VARIADIC__BASE_OPERATION:
+ if (resolve) return getBase_operation();
+ return basicGetBase_operation();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case C_CppPackage.VARIADIC__BASE_OPERATION:
+ setBase_operation((Operation)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.VARIADIC__BASE_OPERATION:
+ setBase_operation((Operation)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.VARIADIC__BASE_OPERATION:
+ return base_operation != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //VariadicImpl
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/VirtualImpl.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/VirtualImpl.java
new file mode 100644
index 00000000000..0455159368d
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/VirtualImpl.java
@@ -0,0 +1,166 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.papyrus.C_Cpp.C_CppPackage;
+import org.eclipse.papyrus.C_Cpp.Virtual;
+import org.eclipse.uml2.uml.Operation;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Virtual</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.VirtualImpl#getBase_operation <em>Base operation</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class VirtualImpl extends MinimalEObjectImpl.Container implements Virtual {
+ /**
+ * The cached value of the '{@link #getBase_operation() <em>Base operation</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_operation()
+ * @generated
+ * @ordered
+ */
+ protected Operation base_operation;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected VirtualImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return C_CppPackage.Literals.VIRTUAL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Operation getBase_operation() {
+ if (base_operation != null && base_operation.eIsProxy()) {
+ InternalEObject oldBase_operation = (InternalEObject)base_operation;
+ base_operation = (Operation)eResolveProxy(oldBase_operation);
+ if (base_operation != oldBase_operation) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.VIRTUAL__BASE_OPERATION, oldBase_operation, base_operation));
+ }
+ }
+ return base_operation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Operation basicGetBase_operation() {
+ return base_operation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_operation(Operation newBase_operation) {
+ Operation oldBase_operation = base_operation;
+ base_operation = newBase_operation;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.VIRTUAL__BASE_OPERATION, oldBase_operation, base_operation));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case C_CppPackage.VIRTUAL__BASE_OPERATION:
+ if (resolve) return getBase_operation();
+ return basicGetBase_operation();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case C_CppPackage.VIRTUAL__BASE_OPERATION:
+ setBase_operation((Operation)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.VIRTUAL__BASE_OPERATION:
+ setBase_operation((Operation)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.VIRTUAL__BASE_OPERATION:
+ return base_operation != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // VirtualImpl
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/VisibilityImpl.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/VisibilityImpl.java
new file mode 100644
index 00000000000..6d865b6a19e
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/VisibilityImpl.java
@@ -0,0 +1,236 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.papyrus.C_Cpp.C_CppPackage;
+import org.eclipse.papyrus.C_Cpp.Visibility;
+import org.eclipse.uml2.uml.Generalization;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Visibility</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.VisibilityImpl#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.VisibilityImpl#getBase_generalization <em>Base generalization</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class VisibilityImpl extends MinimalEObjectImpl.Container implements Visibility {
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final String VALUE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected String value = VALUE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getBase_generalization() <em>Base generalization</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_generalization()
+ * @generated
+ * @ordered
+ */
+ protected Generalization base_generalization;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected VisibilityImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return C_CppPackage.Literals.VISIBILITY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setValue(String newValue) {
+ String oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.VISIBILITY__VALUE, oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Generalization getBase_generalization() {
+ if (base_generalization != null && base_generalization.eIsProxy()) {
+ InternalEObject oldBase_generalization = (InternalEObject)base_generalization;
+ base_generalization = (Generalization)eResolveProxy(oldBase_generalization);
+ if (base_generalization != oldBase_generalization) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.VISIBILITY__BASE_GENERALIZATION, oldBase_generalization, base_generalization));
+ }
+ }
+ return base_generalization;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Generalization basicGetBase_generalization() {
+ return base_generalization;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_generalization(Generalization newBase_generalization) {
+ Generalization oldBase_generalization = base_generalization;
+ base_generalization = newBase_generalization;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.VISIBILITY__BASE_GENERALIZATION, oldBase_generalization, base_generalization));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case C_CppPackage.VISIBILITY__VALUE:
+ return getValue();
+ case C_CppPackage.VISIBILITY__BASE_GENERALIZATION:
+ if (resolve) return getBase_generalization();
+ return basicGetBase_generalization();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case C_CppPackage.VISIBILITY__VALUE:
+ setValue((String)newValue);
+ return;
+ case C_CppPackage.VISIBILITY__BASE_GENERALIZATION:
+ setBase_generalization((Generalization)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.VISIBILITY__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ case C_CppPackage.VISIBILITY__BASE_GENERALIZATION:
+ setBase_generalization((Generalization)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.VISIBILITY__VALUE:
+ return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+ case C_CppPackage.VISIBILITY__BASE_GENERALIZATION:
+ return base_generalization != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (value: ");
+ result.append(value);
+ result.append(')');
+ return result.toString();
+ }
+
+} // VisibilityImpl
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/VolatileImpl.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/VolatileImpl.java
new file mode 100644
index 00000000000..6ac65d9f088
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/impl/VolatileImpl.java
@@ -0,0 +1,291 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.C_Cpp.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.papyrus.C_Cpp.C_CppPackage;
+import org.eclipse.papyrus.C_Cpp.Volatile;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Volatile</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.VolatileImpl#getBase_parameter <em>Base parameter</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.VolatileImpl#getBase_property <em>Base property</em>}</li>
+ * <li>{@link org.eclipse.papyrus.C_Cpp.impl.VolatileImpl#getBase_operation <em>Base operation</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class VolatileImpl extends MinimalEObjectImpl.Container implements Volatile {
+ /**
+ * The cached value of the '{@link #getBase_parameter() <em>Base parameter</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_parameter()
+ * @generated
+ * @ordered
+ */
+ protected Parameter base_parameter;
+
+ /**
+ * The cached value of the '{@link #getBase_property() <em>Base property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_property()
+ * @generated
+ * @ordered
+ */
+ protected Property base_property;
+
+ /**
+ * The cached value of the '{@link #getBase_operation() <em>Base operation</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_operation()
+ * @generated
+ * @ordered
+ */
+ protected Operation base_operation;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected VolatileImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return C_CppPackage.Literals.VOLATILE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Parameter getBase_parameter() {
+ if (base_parameter != null && base_parameter.eIsProxy()) {
+ InternalEObject oldBase_parameter = (InternalEObject)base_parameter;
+ base_parameter = (Parameter)eResolveProxy(oldBase_parameter);
+ if (base_parameter != oldBase_parameter) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.VOLATILE__BASE_PARAMETER, oldBase_parameter, base_parameter));
+ }
+ }
+ return base_parameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Parameter basicGetBase_parameter() {
+ return base_parameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_parameter(Parameter newBase_parameter) {
+ Parameter oldBase_parameter = base_parameter;
+ base_parameter = newBase_parameter;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.VOLATILE__BASE_PARAMETER, oldBase_parameter, base_parameter));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Property getBase_property() {
+ if (base_property != null && base_property.eIsProxy()) {
+ InternalEObject oldBase_property = (InternalEObject)base_property;
+ base_property = (Property)eResolveProxy(oldBase_property);
+ if (base_property != oldBase_property) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.VOLATILE__BASE_PROPERTY, oldBase_property, base_property));
+ }
+ }
+ return base_property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property basicGetBase_property() {
+ return base_property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_property(Property newBase_property) {
+ Property oldBase_property = base_property;
+ base_property = newBase_property;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.VOLATILE__BASE_PROPERTY, oldBase_property, base_property));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Operation getBase_operation() {
+ if (base_operation != null && base_operation.eIsProxy()) {
+ InternalEObject oldBase_operation = (InternalEObject)base_operation;
+ base_operation = (Operation)eResolveProxy(oldBase_operation);
+ if (base_operation != oldBase_operation) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.VOLATILE__BASE_OPERATION, oldBase_operation, base_operation));
+ }
+ }
+ return base_operation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Operation basicGetBase_operation() {
+ return base_operation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_operation(Operation newBase_operation) {
+ Operation oldBase_operation = base_operation;
+ base_operation = newBase_operation;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.VOLATILE__BASE_OPERATION, oldBase_operation, base_operation));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case C_CppPackage.VOLATILE__BASE_PARAMETER:
+ if (resolve) return getBase_parameter();
+ return basicGetBase_parameter();
+ case C_CppPackage.VOLATILE__BASE_PROPERTY:
+ if (resolve) return getBase_property();
+ return basicGetBase_property();
+ case C_CppPackage.VOLATILE__BASE_OPERATION:
+ if (resolve) return getBase_operation();
+ return basicGetBase_operation();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case C_CppPackage.VOLATILE__BASE_PARAMETER:
+ setBase_parameter((Parameter)newValue);
+ return;
+ case C_CppPackage.VOLATILE__BASE_PROPERTY:
+ setBase_property((Property)newValue);
+ return;
+ case C_CppPackage.VOLATILE__BASE_OPERATION:
+ setBase_operation((Operation)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.VOLATILE__BASE_PARAMETER:
+ setBase_parameter((Parameter)null);
+ return;
+ case C_CppPackage.VOLATILE__BASE_PROPERTY:
+ setBase_property((Property)null);
+ return;
+ case C_CppPackage.VOLATILE__BASE_OPERATION:
+ setBase_operation((Operation)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case C_CppPackage.VOLATILE__BASE_PARAMETER:
+ return base_parameter != null;
+ case C_CppPackage.VOLATILE__BASE_PROPERTY:
+ return base_property != null;
+ case C_CppPackage.VOLATILE__BASE_OPERATION:
+ return base_operation != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // VolatileImpl
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/util/C_CppAdapterFactory.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/util/C_CppAdapterFactory.java
new file mode 100644
index 00000000000..b00c2921104
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/util/C_CppAdapterFactory.java
@@ -0,0 +1,584 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.C_Cpp.Array;
+import org.eclipse.papyrus.C_Cpp.C_CppPackage;
+import org.eclipse.papyrus.C_Cpp.Const;
+import org.eclipse.papyrus.C_Cpp.ConstInit;
+import org.eclipse.papyrus.C_Cpp.CppInit;
+import org.eclipse.papyrus.C_Cpp.CppRoot;
+import org.eclipse.papyrus.C_Cpp.ExternLibrary;
+import org.eclipse.papyrus.C_Cpp.External;
+import org.eclipse.papyrus.C_Cpp.Friend;
+import org.eclipse.papyrus.C_Cpp.Include;
+import org.eclipse.papyrus.C_Cpp.Inline;
+import org.eclipse.papyrus.C_Cpp.ManualGeneration;
+import org.eclipse.papyrus.C_Cpp.Mutable;
+import org.eclipse.papyrus.C_Cpp.NoCodeGen;
+import org.eclipse.papyrus.C_Cpp.Ptr;
+import org.eclipse.papyrus.C_Cpp.Ref;
+import org.eclipse.papyrus.C_Cpp.StorageClass;
+import org.eclipse.papyrus.C_Cpp.Template;
+import org.eclipse.papyrus.C_Cpp.TemplateBinding;
+import org.eclipse.papyrus.C_Cpp.TemplateParameter;
+import org.eclipse.papyrus.C_Cpp.Typedef;
+import org.eclipse.papyrus.C_Cpp.Union;
+import org.eclipse.papyrus.C_Cpp.Variadic;
+import org.eclipse.papyrus.C_Cpp.Virtual;
+import org.eclipse.papyrus.C_Cpp.Visibility;
+import org.eclipse.papyrus.C_Cpp.Volatile;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage
+ * @generated
+ */
+public class C_CppAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static C_CppPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public C_CppAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = C_CppPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected C_CppSwitch<Adapter> modelSwitch =
+ new C_CppSwitch<Adapter>() {
+ @Override
+ public Adapter casePtr(Ptr object) {
+ return createPtrAdapter();
+ }
+ @Override
+ public Adapter caseInclude(Include object) {
+ return createIncludeAdapter();
+ }
+ @Override
+ public Adapter caseManualGeneration(ManualGeneration object) {
+ return createManualGenerationAdapter();
+ }
+ @Override
+ public Adapter caseExternLibrary(ExternLibrary object) {
+ return createExternLibraryAdapter();
+ }
+ @Override
+ public Adapter caseNoCodeGen(NoCodeGen object) {
+ return createNoCodeGenAdapter();
+ }
+ @Override
+ public Adapter caseCppRoot(CppRoot object) {
+ return createCppRootAdapter();
+ }
+ @Override
+ public Adapter caseArray(Array object) {
+ return createArrayAdapter();
+ }
+ @Override
+ public Adapter caseConst(Const object) {
+ return createConstAdapter();
+ }
+ @Override
+ public Adapter caseRef(Ref object) {
+ return createRefAdapter();
+ }
+ @Override
+ public Adapter caseExternal(External object) {
+ return createExternalAdapter();
+ }
+ @Override
+ public Adapter caseConstInit(ConstInit object) {
+ return createConstInitAdapter();
+ }
+ @Override
+ public Adapter caseFriend(Friend object) {
+ return createFriendAdapter();
+ }
+ @Override
+ public Adapter caseInline(Inline object) {
+ return createInlineAdapter();
+ }
+ @Override
+ public Adapter caseVirtual(Virtual object) {
+ return createVirtualAdapter();
+ }
+ @Override
+ public Adapter caseTypedef(Typedef object) {
+ return createTypedefAdapter();
+ }
+ @Override
+ public Adapter caseVisibility(Visibility object) {
+ return createVisibilityAdapter();
+ }
+ @Override
+ public Adapter caseCppInit(CppInit object) {
+ return createCppInitAdapter();
+ }
+ @Override
+ public Adapter caseTemplate(Template object) {
+ return createTemplateAdapter();
+ }
+ @Override
+ public Adapter caseTemplateBinding(TemplateBinding object) {
+ return createTemplateBindingAdapter();
+ }
+ @Override
+ public Adapter caseTemplateParameter(TemplateParameter object) {
+ return createTemplateParameterAdapter();
+ }
+ @Override
+ public Adapter caseUnion(Union object) {
+ return createUnionAdapter();
+ }
+ @Override
+ public Adapter caseStorageClass(StorageClass object) {
+ return createStorageClassAdapter();
+ }
+ @Override
+ public Adapter caseVolatile(Volatile object) {
+ return createVolatileAdapter();
+ }
+ @Override
+ public Adapter caseVariadic(Variadic object) {
+ return createVariadicAdapter();
+ }
+ @Override
+ public Adapter caseMutable(Mutable object) {
+ return createMutableAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.C_Cpp.Ptr <em>Ptr</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.C_Cpp.Ptr
+ * @generated
+ */
+ public Adapter createPtrAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.C_Cpp.Include <em>Include</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.C_Cpp.Include
+ * @generated
+ */
+ public Adapter createIncludeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.C_Cpp.ManualGeneration <em>Manual Generation</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.C_Cpp.ManualGeneration
+ * @generated
+ */
+ public Adapter createManualGenerationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.C_Cpp.ExternLibrary <em>Extern Library</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.C_Cpp.ExternLibrary
+ * @generated
+ */
+ public Adapter createExternLibraryAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.C_Cpp.NoCodeGen <em>No Code Gen</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.C_Cpp.NoCodeGen
+ * @generated
+ */
+ public Adapter createNoCodeGenAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.C_Cpp.CppRoot <em>Cpp Root</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.C_Cpp.CppRoot
+ * @generated
+ */
+ public Adapter createCppRootAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.C_Cpp.Array <em>Array</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.C_Cpp.Array
+ * @generated
+ */
+ public Adapter createArrayAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.C_Cpp.Const <em>Const</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.C_Cpp.Const
+ * @generated
+ */
+ public Adapter createConstAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.C_Cpp.Ref <em>Ref</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.C_Cpp.Ref
+ * @generated
+ */
+ public Adapter createRefAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.C_Cpp.External <em>External</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.C_Cpp.External
+ * @generated
+ */
+ public Adapter createExternalAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.C_Cpp.ConstInit <em>Const Init</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.C_Cpp.ConstInit
+ * @generated
+ */
+ public Adapter createConstInitAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.C_Cpp.Friend <em>Friend</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.C_Cpp.Friend
+ * @generated
+ */
+ public Adapter createFriendAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.C_Cpp.Inline <em>Inline</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.C_Cpp.Inline
+ * @generated
+ */
+ public Adapter createInlineAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.C_Cpp.Virtual <em>Virtual</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.C_Cpp.Virtual
+ * @generated
+ */
+ public Adapter createVirtualAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.C_Cpp.Typedef <em>Typedef</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.C_Cpp.Typedef
+ * @generated
+ */
+ public Adapter createTypedefAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.C_Cpp.Visibility <em>Visibility</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.C_Cpp.Visibility
+ * @generated
+ */
+ public Adapter createVisibilityAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.C_Cpp.CppInit <em>Cpp Init</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.C_Cpp.CppInit
+ * @generated
+ */
+ public Adapter createCppInitAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.C_Cpp.Template <em>Template</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.C_Cpp.Template
+ * @generated
+ */
+ public Adapter createTemplateAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.C_Cpp.TemplateBinding <em>Template Binding</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.C_Cpp.TemplateBinding
+ * @generated
+ */
+ public Adapter createTemplateBindingAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.C_Cpp.TemplateParameter <em>Template Parameter</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.C_Cpp.TemplateParameter
+ * @generated
+ */
+ public Adapter createTemplateParameterAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.C_Cpp.Union <em>Union</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.C_Cpp.Union
+ * @generated
+ */
+ public Adapter createUnionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.C_Cpp.StorageClass <em>Storage Class</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.C_Cpp.StorageClass
+ * @generated
+ */
+ public Adapter createStorageClassAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.C_Cpp.Volatile <em>Volatile</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.C_Cpp.Volatile
+ * @generated
+ */
+ public Adapter createVolatileAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.C_Cpp.Variadic <em>Variadic</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.C_Cpp.Variadic
+ * @generated
+ */
+ public Adapter createVariadicAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.C_Cpp.Mutable <em>Mutable</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.C_Cpp.Mutable
+ * @generated
+ */
+ public Adapter createMutableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} // C_CppAdapterFactory
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/util/C_CppResourceFactoryImpl.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/util/C_CppResourceFactoryImpl.java
new file mode 100644
index 00000000000..606f055aab1
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/util/C_CppResourceFactoryImpl.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp.util;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.impl.ResourceFactoryImpl;
+import org.eclipse.emf.ecore.xmi.XMLResource;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Resource Factory</b> associated with the package.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.util.C_CppResourceImpl
+ * @generated
+ */
+public class C_CppResourceFactoryImpl extends ResourceFactoryImpl {
+ /**
+ * Creates an instance of the resource factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public C_CppResourceFactoryImpl() {
+ super();
+ }
+
+ /**
+ * Creates an instance of the resource.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Resource createResource(URI uri) {
+ XMLResource result = new C_CppResourceImpl(uri);
+ return result;
+ }
+
+} // C_CppResourceFactoryImpl
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/util/C_CppResourceImpl.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/util/C_CppResourceImpl.java
new file mode 100644
index 00000000000..c728ce68f13
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/util/C_CppResourceImpl.java
@@ -0,0 +1,37 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp.util;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Resource </b> associated with the package.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.util.C_CppResourceFactoryImpl
+ * @generated
+ */
+public class C_CppResourceImpl extends XMLResourceImpl {
+ /**
+ * Creates an instance of the resource.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param uri the URI of the new resource.
+ * @generated
+ */
+ public C_CppResourceImpl(URI uri) {
+ super(uri);
+ }
+
+} // C_CppResourceImpl
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/util/C_CppSwitch.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/util/C_CppSwitch.java
new file mode 100644
index 00000000000..cc3991bb0e4
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/util/C_CppSwitch.java
@@ -0,0 +1,646 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.papyrus.C_Cpp.Array;
+import org.eclipse.papyrus.C_Cpp.C_CppPackage;
+import org.eclipse.papyrus.C_Cpp.Const;
+import org.eclipse.papyrus.C_Cpp.ConstInit;
+import org.eclipse.papyrus.C_Cpp.CppInit;
+import org.eclipse.papyrus.C_Cpp.CppRoot;
+import org.eclipse.papyrus.C_Cpp.ExternLibrary;
+import org.eclipse.papyrus.C_Cpp.External;
+import org.eclipse.papyrus.C_Cpp.Friend;
+import org.eclipse.papyrus.C_Cpp.Include;
+import org.eclipse.papyrus.C_Cpp.Inline;
+import org.eclipse.papyrus.C_Cpp.ManualGeneration;
+import org.eclipse.papyrus.C_Cpp.Mutable;
+import org.eclipse.papyrus.C_Cpp.NoCodeGen;
+import org.eclipse.papyrus.C_Cpp.Ptr;
+import org.eclipse.papyrus.C_Cpp.Ref;
+import org.eclipse.papyrus.C_Cpp.StorageClass;
+import org.eclipse.papyrus.C_Cpp.Template;
+import org.eclipse.papyrus.C_Cpp.TemplateBinding;
+import org.eclipse.papyrus.C_Cpp.TemplateParameter;
+import org.eclipse.papyrus.C_Cpp.Typedef;
+import org.eclipse.papyrus.C_Cpp.Union;
+import org.eclipse.papyrus.C_Cpp.Variadic;
+import org.eclipse.papyrus.C_Cpp.Virtual;
+import org.eclipse.papyrus.C_Cpp.Visibility;
+import org.eclipse.papyrus.C_Cpp.Volatile;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)} to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.C_Cpp.C_CppPackage
+ * @generated
+ */
+public class C_CppSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static C_CppPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public C_CppSwitch() {
+ if (modelPackage == null) {
+ modelPackage = C_CppPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case C_CppPackage.PTR: {
+ Ptr ptr = (Ptr)theEObject;
+ T result = casePtr(ptr);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case C_CppPackage.INCLUDE: {
+ Include include = (Include)theEObject;
+ T result = caseInclude(include);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case C_CppPackage.MANUAL_GENERATION: {
+ ManualGeneration manualGeneration = (ManualGeneration)theEObject;
+ T result = caseManualGeneration(manualGeneration);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case C_CppPackage.EXTERN_LIBRARY: {
+ ExternLibrary externLibrary = (ExternLibrary)theEObject;
+ T result = caseExternLibrary(externLibrary);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case C_CppPackage.NO_CODE_GEN: {
+ NoCodeGen noCodeGen = (NoCodeGen)theEObject;
+ T result = caseNoCodeGen(noCodeGen);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case C_CppPackage.CPP_ROOT: {
+ CppRoot cppRoot = (CppRoot)theEObject;
+ T result = caseCppRoot(cppRoot);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case C_CppPackage.ARRAY: {
+ Array array = (Array)theEObject;
+ T result = caseArray(array);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case C_CppPackage.CONST: {
+ Const const_ = (Const)theEObject;
+ T result = caseConst(const_);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case C_CppPackage.REF: {
+ Ref ref = (Ref)theEObject;
+ T result = caseRef(ref);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case C_CppPackage.EXTERNAL: {
+ External external = (External)theEObject;
+ T result = caseExternal(external);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case C_CppPackage.CONST_INIT: {
+ ConstInit constInit = (ConstInit)theEObject;
+ T result = caseConstInit(constInit);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case C_CppPackage.FRIEND: {
+ Friend friend = (Friend)theEObject;
+ T result = caseFriend(friend);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case C_CppPackage.INLINE: {
+ Inline inline = (Inline)theEObject;
+ T result = caseInline(inline);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case C_CppPackage.VIRTUAL: {
+ Virtual virtual = (Virtual)theEObject;
+ T result = caseVirtual(virtual);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case C_CppPackage.TYPEDEF: {
+ Typedef typedef = (Typedef)theEObject;
+ T result = caseTypedef(typedef);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case C_CppPackage.VISIBILITY: {
+ Visibility visibility = (Visibility)theEObject;
+ T result = caseVisibility(visibility);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case C_CppPackage.CPP_INIT: {
+ CppInit cppInit = (CppInit)theEObject;
+ T result = caseCppInit(cppInit);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case C_CppPackage.TEMPLATE: {
+ Template template = (Template)theEObject;
+ T result = caseTemplate(template);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case C_CppPackage.TEMPLATE_BINDING: {
+ TemplateBinding templateBinding = (TemplateBinding)theEObject;
+ T result = caseTemplateBinding(templateBinding);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case C_CppPackage.TEMPLATE_PARAMETER: {
+ TemplateParameter templateParameter = (TemplateParameter)theEObject;
+ T result = caseTemplateParameter(templateParameter);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case C_CppPackage.UNION: {
+ Union union = (Union)theEObject;
+ T result = caseUnion(union);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case C_CppPackage.STORAGE_CLASS: {
+ StorageClass storageClass = (StorageClass)theEObject;
+ T result = caseStorageClass(storageClass);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case C_CppPackage.VOLATILE: {
+ Volatile volatile_ = (Volatile)theEObject;
+ T result = caseVolatile(volatile_);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case C_CppPackage.VARIADIC: {
+ Variadic variadic = (Variadic)theEObject;
+ T result = caseVariadic(variadic);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case C_CppPackage.MUTABLE: {
+ Mutable mutable = (Mutable)theEObject;
+ T result = caseMutable(mutable);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Ptr</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Ptr</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePtr(Ptr object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Include</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Include</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseInclude(Include object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Manual Generation</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Manual Generation</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseManualGeneration(ManualGeneration object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Extern Library</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Extern Library</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseExternLibrary(ExternLibrary object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>No Code Gen</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>No Code Gen</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNoCodeGen(NoCodeGen object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Cpp Root</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Cpp Root</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCppRoot(CppRoot object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Array</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Array</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseArray(Array object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Const</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Const</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConst(Const object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Ref</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Ref</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRef(Ref object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>External</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>External</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseExternal(External object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Const Init</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Const Init</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConstInit(ConstInit object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Friend</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Friend</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFriend(Friend object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Inline</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Inline</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseInline(Inline object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Virtual</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Virtual</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseVirtual(Virtual object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Typedef</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Typedef</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTypedef(Typedef object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Visibility</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Visibility</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseVisibility(Visibility object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Cpp Init</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Cpp Init</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCppInit(CppInit object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Template</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Template</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTemplate(Template object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Template Binding</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Template Binding</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTemplateBinding(TemplateBinding object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Template Parameter</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Template Parameter</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTemplateParameter(TemplateParameter object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Union</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Union</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseUnion(Union object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Storage Class</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Storage Class</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseStorageClass(StorageClass object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Volatile</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Volatile</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseVolatile(Volatile object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Variadic</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Variadic</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseVariadic(Variadic object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Mutable</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Mutable</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMutable(Mutable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} // C_CppSwitch
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/util/C_CppXMLProcessor.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/util/C_CppXMLProcessor.java
new file mode 100644
index 00000000000..e66da34caf6
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/C_Cpp/util/C_CppXMLProcessor.java
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.C_Cpp.util;
+
+import java.util.Map;
+
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.xmi.util.XMLProcessor;
+import org.eclipse.papyrus.C_Cpp.C_CppPackage;
+
+/**
+ * This class contains helper methods to serialize and deserialize XML documents
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class C_CppXMLProcessor extends XMLProcessor {
+
+ /**
+ * Public constructor to instantiate the helper.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public C_CppXMLProcessor() {
+ super((EPackage.Registry.INSTANCE));
+ C_CppPackage.eINSTANCE.eClass();
+ }
+
+ /**
+ * Register for "*" and "xml" file extensions the C_CppResourceFactoryImpl factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected Map<String, Resource.Factory> getRegistrations() {
+ if (registrations == null) {
+ super.getRegistrations();
+ registrations.put(XML_EXTENSION, new C_CppResourceFactoryImpl());
+ registrations.put(STAR_EXTENSION, new C_CppResourceFactoryImpl());
+ }
+ return registrations;
+ }
+
+} // C_CppXMLProcessor
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/cpp/profile/Activator.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/cpp/profile/Activator.java
new file mode 100644
index 00000000000..6e341a2a8dc
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.profile/src/org/eclipse/papyrus/cpp/profile/Activator.java
@@ -0,0 +1,30 @@
+package org.eclipse.papyrus.cpp.profile;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+public class Activator implements BundleActivator {
+
+ private static BundleContext context;
+
+ static BundleContext getContext() {
+ return context;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext bundleContext) throws Exception {
+ Activator.context = bundleContext;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext bundleContext) throws Exception {
+ Activator.context = null;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.test/.cproject b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.test/.cproject
new file mode 100644
index 00000000000..7625f2eab4a
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.test/.cproject
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?fileVersion 4.0.0?>
+
+<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
+ <storageModule moduleId="org.eclipse.cdt.core.settings">
+ <cconfiguration id="cdt.managedbuild.config.gnu.exe.debug.1576036530">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.debug.1576036530" moduleId="org.eclipse.cdt.core.settings" name="Debug">
+ <externalSettings/>
+ <extensions>
+ <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ </extensions>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.exe.debug.1576036530" name="Debug" parent="cdt.managedbuild.config.gnu.exe.debug">
+ <folderInfo id="cdt.managedbuild.config.gnu.exe.debug.1576036530." name="/" resourcePath="">
+ <toolChain id="cdt.managedbuild.toolchain.gnu.exe.debug.1785491718" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.debug">
+ <targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.debug.1606036725" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.debug"/>
+ <builder buildPath="${workspace_loc:/TestCDT/Debug}" id="cdt.managedbuild.target.gnu.builder.exe.debug.713711081" managedBuildOn="true" name="Gnu Make Builder.Debug" superClass="cdt.managedbuild.target.gnu.builder.exe.debug"/>
+ <tool id="cdt.managedbuild.tool.gnu.archiver.base.369722422" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
+ <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.1129670083" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug">
+ <option id="gnu.cpp.compiler.exe.debug.option.optimization.level.16542863" superClass="gnu.cpp.compiler.exe.debug.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
+ <option id="gnu.cpp.compiler.exe.debug.option.debugging.level.1554954869" superClass="gnu.cpp.compiler.exe.debug.option.debugging.level" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/>
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.521529555" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+ </tool>
+ <tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.debug.942163277" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.debug">
+ <option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.exe.debug.option.optimization.level.1609356105" superClass="gnu.c.compiler.exe.debug.option.optimization.level" valueType="enumerated"/>
+ <option id="gnu.c.compiler.exe.debug.option.debugging.level.411779137" superClass="gnu.c.compiler.exe.debug.option.debugging.level" value="gnu.c.debugging.level.max" valueType="enumerated"/>
+ <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1947804922" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+ </tool>
+ <tool id="cdt.managedbuild.tool.gnu.c.linker.exe.debug.431869141" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.debug"/>
+ <tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug.10534854" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug">
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.410068701" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
+ <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
+ <additionalInput kind="additionalinput" paths="$(LIBS)"/>
+ </inputType>
+ </tool>
+ <tool id="cdt.managedbuild.tool.gnu.assembler.exe.debug.1058532890" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.debug">
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.162711686" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+ </tool>
+ </toolChain>
+ </folderInfo>
+ </configuration>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+ </cconfiguration>
+ <cconfiguration id="cdt.managedbuild.config.gnu.exe.release.1473499814">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.release.1473499814" moduleId="org.eclipse.cdt.core.settings" name="Release">
+ <externalSettings/>
+ <extensions>
+ <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ </extensions>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.exe.release.1473499814" name="Release" parent="cdt.managedbuild.config.gnu.exe.release">
+ <folderInfo id="cdt.managedbuild.config.gnu.exe.release.1473499814." name="/" resourcePath="">
+ <toolChain id="cdt.managedbuild.toolchain.gnu.exe.release.411291517" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.release">
+ <targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.release.2018141521" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.release"/>
+ <builder buildPath="${workspace_loc:/TestCDT/Release}" id="cdt.managedbuild.target.gnu.builder.exe.release.1439345546" managedBuildOn="true" name="Gnu Make Builder.Release" superClass="cdt.managedbuild.target.gnu.builder.exe.release"/>
+ <tool id="cdt.managedbuild.tool.gnu.archiver.base.49741614" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
+ <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release.1569957362" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release">
+ <option id="gnu.cpp.compiler.exe.release.option.optimization.level.618435995" superClass="gnu.cpp.compiler.exe.release.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
+ <option id="gnu.cpp.compiler.exe.release.option.debugging.level.639696201" superClass="gnu.cpp.compiler.exe.release.option.debugging.level" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1188150969" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+ </tool>
+ <tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.release.1464120015" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.release">
+ <option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.exe.release.option.optimization.level.394285686" superClass="gnu.c.compiler.exe.release.option.optimization.level" valueType="enumerated"/>
+ <option id="gnu.c.compiler.exe.release.option.debugging.level.62851357" superClass="gnu.c.compiler.exe.release.option.debugging.level" value="gnu.c.debugging.level.none" valueType="enumerated"/>
+ <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1845167454" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+ </tool>
+ <tool id="cdt.managedbuild.tool.gnu.c.linker.exe.release.1340303317" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.release"/>
+ <tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.release.1838816792" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.release">
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.2134725796" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
+ <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
+ <additionalInput kind="additionalinput" paths="$(LIBS)"/>
+ </inputType>
+ </tool>
+ <tool id="cdt.managedbuild.tool.gnu.assembler.exe.release.1621699629" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.release">
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1078577239" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+ </tool>
+ </toolChain>
+ </folderInfo>
+ </configuration>
+ </storageModule>
+ </cconfiguration>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <project id="TestCDT.cdt.managedbuild.target.gnu.exe.1948151614" name="Executable" projectType="cdt.managedbuild.target.gnu.exe"/>
+ </storageModule>
+ <storageModule moduleId="scannerConfiguration">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+ <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.debug.1576036530;cdt.managedbuild.config.gnu.exe.debug.1576036530.;cdt.managedbuild.tool.gnu.c.compiler.exe.debug.942163277;cdt.managedbuild.tool.gnu.c.compiler.input.1947804922">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.release.1473499814;cdt.managedbuild.config.gnu.exe.release.1473499814.;cdt.managedbuild.tool.gnu.c.compiler.exe.release.1464120015;cdt.managedbuild.tool.gnu.c.compiler.input.1845167454">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.debug.1576036530;cdt.managedbuild.config.gnu.exe.debug.1576036530.;cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.1129670083;cdt.managedbuild.tool.gnu.cpp.compiler.input.521529555">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.release.1473499814;cdt.managedbuild.config.gnu.exe.release.1473499814.;cdt.managedbuild.tool.gnu.cpp.compiler.exe.release.1569957362;cdt.managedbuild.tool.gnu.cpp.compiler.input.1188150969">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/>
+ </scannerConfigBuildInfo>
+ </storageModule>
+</cproject>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.test/.gitignore b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.test/.gitignore
new file mode 100644
index 00000000000..b946e6f080e
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.test/.gitignore
@@ -0,0 +1,2 @@
+TestCDTintegration
+Debug
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.test/.project b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.test/.project
new file mode 100644
index 00000000000..81efcb02b14
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.test/.project
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.cpp.test</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+ <triggers>clean,full,incremental,</triggers>
+ <arguments>
+ <dictionary>
+ <key>?name?</key>
+ <value></value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.append_environment</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.autoBuildTarget</key>
+ <value>all</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.buildArguments</key>
+ <value></value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.buildCommand</key>
+ <value>make</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.buildLocation</key>
+ <value>${workspace_loc:/TestCDT/Debug}</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
+ <value>clean</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.contents</key>
+ <value>org.eclipse.cdt.make.core.activeConfigSettings</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.enableAutoBuild</key>
+ <value>false</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.enableCleanBuild</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.enableFullBuild</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.fullBuildTarget</key>
+ <value>all</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.stopOnError</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
+ <value>true</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+ <triggers>full,incremental,</triggers>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.cdt.core.cnature</nature>
+ <nature>org.eclipse.cdt.core.ccnature</nature>
+ <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+ <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.test/model/TestCCodeGen.di b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.test/model/TestCCodeGen.di
new file mode 100644
index 00000000000..b1b3ed6ae2a
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.test/model/TestCCodeGen.di
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi" xmi:id="_AfdmYPccEd-KM6l7lmIPkw">
+ <pageList xmi:id="_AfdmYfccEd-KM6l7lmIPkw">
+ <availablePage>
+ <emfPageIdentifier href="TestCDTintegration.notation"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="TestCDTintegration.notation"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="TestCDTintegration.notation"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="TestCDTintegration.notation#_JOw40PccEd-KM6l7lmIPkw"/>
+ </availablePage>
+ </pageList>
+ <sashModel xmi:id="_AfdmYvccEd-KM6l7lmIPkw" currentSelection="//@sashModel/@windows.0/@children.0">
+ <windows xmi:id="_AfdmY_ccEd-KM6l7lmIPkw">
+ <children xsi:type="di:TabFolder">
+ <children>
+ <emfPageIdentifier href="TestCCodeGen.notation#_JOw40PccEd-KM6l7lmIPkw"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="TestCDTintegration.notation#_JOw40PccEd-KM6l7lmIPkw"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+</di:SashWindowsMngr>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.test/model/TestCCodeGen.notation b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.test/model/TestCCodeGen.notation
new file mode 100644
index 00000000000..322e298d2d9
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.test/model/TestCCodeGen.notation
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:texteditormodel="http://www.eclipse.org/Papyrus/TextEditor/0.10.0/texteditormodel" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML">
+ <notation:Diagram xmi:id="_JOw40PccEd-KM6l7lmIPkw" type="PapyrusUMLClassDiagram" name="NewDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_iUAUQP6QEeKlg5tzGV3QVQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iUCwgP6QEeKlg5tzGV3QVQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iUCwgf6QEeKlg5tzGV3QVQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iUDXkP6QEeKlg5tzGV3QVQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iUDXkf6QEeKlg5tzGV3QVQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iUDXkv6QEeKlg5tzGV3QVQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iUDXk_6QEeKlg5tzGV3QVQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iUDXlP6QEeKlg5tzGV3QVQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_iUDXlf6QEeKlg5tzGV3QVQ" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_9v0FwBlCEeOWi_t2E10dLQ" type="3012" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Property" href="TestCCodeGen.uml#_9vmDUBlCEeOWi_t2E10dLQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9v0FwRlCEeOWi_t2E10dLQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_iUDXlv6QEeKlg5tzGV3QVQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_iUDXl_6QEeKlg5tzGV3QVQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_iUDXmP6QEeKlg5tzGV3QVQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iUDXmf6QEeKlg5tzGV3QVQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_iUD-oP6QEeKlg5tzGV3QVQ" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_jWd20P6QEeKlg5tzGV3QVQ" type="3013" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LOzoYP6SEeKlg5tzGV3QVQ" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LOzoYf6SEeKlg5tzGV3QVQ" key="CustomAppearance_MaskValue" value="6920"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="TestCCodeGen.uml#_TY18YB0LEeKlYLZOWTi6uw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jWd20f6QEeKlg5tzGV3QVQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_iUD-of6QEeKlg5tzGV3QVQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_iUD-ov6QEeKlg5tzGV3QVQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_iUD-o_6QEeKlg5tzGV3QVQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iUD-pP6QEeKlg5tzGV3QVQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_iUD-pf6QEeKlg5tzGV3QVQ" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_iUD-pv6QEeKlg5tzGV3QVQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_iUD-p_6QEeKlg5tzGV3QVQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_iUD-qP6QEeKlg5tzGV3QVQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iUD-qf6QEeKlg5tzGV3QVQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="TestCCodeGen.uml#_K8FLcB0LEeKlYLZOWTi6uw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iUAUQf6QEeKlg5tzGV3QVQ" x="45" y="88" width="280"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3PkE0BlCEeOWi_t2E10dLQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Pl6ABlCEeOWi_t2E10dLQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Pl6ARlCEeOWi_t2E10dLQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Pl6AhlCEeOWi_t2E10dLQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Pl6AxlCEeOWi_t2E10dLQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3PmhEBlCEeOWi_t2E10dLQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3PmhERlCEeOWi_t2E10dLQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3PmhEhlCEeOWi_t2E10dLQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3PmhExlCEeOWi_t2E10dLQ" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_peGDkBlDEeOWi_t2E10dLQ" type="3012" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Property" href="TestCCodeGen.uml#_pd7rgBlDEeOWi_t2E10dLQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_peGDkRlDEeOWi_t2E10dLQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3PmhFBlCEeOWi_t2E10dLQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3PmhFRlCEeOWi_t2E10dLQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3PmhFhlCEeOWi_t2E10dLQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3PmhFxlCEeOWi_t2E10dLQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3PmhGBlCEeOWi_t2E10dLQ" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_tcRwYBlDEeOWi_t2E10dLQ" type="3013" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="TestCCodeGen.uml#_tcJNgBlDEeOWi_t2E10dLQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tcRwYRlDEeOWi_t2E10dLQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3PmhGRlCEeOWi_t2E10dLQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3PmhGhlCEeOWi_t2E10dLQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3PmhGxlCEeOWi_t2E10dLQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3PmhHBlCEeOWi_t2E10dLQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3PmhHRlCEeOWi_t2E10dLQ" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3PmhHhlCEeOWi_t2E10dLQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3PmhHxlCEeOWi_t2E10dLQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3PmhIBlCEeOWi_t2E10dLQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3PmhIRlCEeOWi_t2E10dLQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="TestCCodeGen.uml#_419y0A7hEeKpbseGaEy1LA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3PkE0RlCEeOWi_t2E10dLQ" x="506" y="86" width="161"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_5FTB8BlDEeOWi_t2E10dLQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5FTpABlDEeOWi_t2E10dLQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5FTpARlDEeOWi_t2E10dLQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5FTpAhlDEeOWi_t2E10dLQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5FTpAxlDEeOWi_t2E10dLQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5FTpBBlDEeOWi_t2E10dLQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5FTpBRlDEeOWi_t2E10dLQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5FTpBhlDEeOWi_t2E10dLQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5FTpBxlDEeOWi_t2E10dLQ" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_9Gsa0BlDEeOWi_t2E10dLQ" type="3012" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Property" href="TestCCodeGen.uml#_9GkfABlDEeOWi_t2E10dLQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9Gsa0RlDEeOWi_t2E10dLQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5FTpCBlDEeOWi_t2E10dLQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5FTpCRlDEeOWi_t2E10dLQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5FTpChlDEeOWi_t2E10dLQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5FTpCxlDEeOWi_t2E10dLQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5FTpDBlDEeOWi_t2E10dLQ" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_78ClkBlDEeOWi_t2E10dLQ" type="3013" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="TestCCodeGen.uml#_777Q0BlDEeOWi_t2E10dLQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_78ClkRlDEeOWi_t2E10dLQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5FTpDRlDEeOWi_t2E10dLQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5FTpDhlDEeOWi_t2E10dLQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5FTpDxlDEeOWi_t2E10dLQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5FTpEBlDEeOWi_t2E10dLQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5FUQEBlDEeOWi_t2E10dLQ" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5FUQERlDEeOWi_t2E10dLQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5FUQEhlDEeOWi_t2E10dLQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5FUQExlDEeOWi_t2E10dLQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5FUQFBlDEeOWi_t2E10dLQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="TestCCodeGen.uml#_mp8XAA7QEeKcN-88BXIIKg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5FTB8RlDEeOWi_t2E10dLQ" x="514" y="227" width="153"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_JOw40fccEd-KM6l7lmIPkw"/>
+ <element xmi:type="uml:Model" href="TestCCodeGen.uml#_Ae6MwPccEd-KM6l7lmIPkw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_4ryLMBlCEeOWi_t2E10dLQ" type="4002" source="_iUAUQP6QEeKlg5tzGV3QVQ" target="_3PkE0BlCEeOWi_t2E10dLQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_4rzZUBlCEeOWi_t2E10dLQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4rzZURlCEeOWi_t2E10dLQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_4ryLMRlCEeOWi_t2E10dLQ" fontName="Sans Serif"/>
+ <element xmi:type="uml:Generalization" href="TestCCodeGen.uml#_4rHc0BlCEeOWi_t2E10dLQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4ryLMhlCEeOWi_t2E10dLQ" points="[42, -6, -190, 0]$[223, -7, -9, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4sXaABlCEeOWi_t2E10dLQ" id="(0.85,0.53)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4sXaARlCEeOWi_t2E10dLQ" id="(0.09,0.49)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7APEoBlDEeOWi_t2E10dLQ" type="4002" source="_iUAUQP6QEeKlg5tzGV3QVQ" target="_5FTB8BlDEeOWi_t2E10dLQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_7AQSwBlDEeOWi_t2E10dLQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7AQSwRlDEeOWi_t2E10dLQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_7APrsBlDEeOWi_t2E10dLQ" fontName="Sans Serif"/>
+ <element xmi:type="uml:Generalization" href="TestCCodeGen.uml#_7AHv4BlDEeOWi_t2E10dLQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7APrsRlDEeOWi_t2E10dLQ" points="[15, 6, -265, -117]$[357, 129, 77, 6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7AVyUBlDEeOWi_t2E10dLQ" id="(0.9464285714285714,0.66)"/>
+ </edges>
+ </notation:Diagram>
+ <texteditormodel:TextEditorModel xmi:id="_z3K2EA5UEeOvI9e-hgvtnQ" type="CDTEditorInPapyrus" name="CDT Class3">
+ <editedObject xmi:type="uml:Class" href="TestCDTintegration.uml#_K8FLcB0LEeKlYLZOWTi6uw"/></texteditormodel:TextEditorModel>
+</xmi:XMI>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.test/model/TestCCodeGen.uml b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.test/model/TestCCodeGen.uml
new file mode 100644
index 00000000000..46032827278
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.test/model/TestCCodeGen.uml
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Alloc="http://www.eclipse.org/papyrus/Alloc/1" xmlns:C_Cpp="http://www.eclipse.org/papyrus/C_Cpp/1" xmlns:Cpp="http://papyrus/CppProfile/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/papyrus/Alloc/1 http://www.eclipse.org/papyrus/MARTE/1#//Alloc">
+ <uml:Model xmi:id="_Ae6MwPccEd-KM6l7lmIPkw" name="TestCCodeGen">
+ <packageImport xmi:id="_GQ1SgP6SEeKlg5tzGV3QVQ">
+ <importedPackage xmi:type="uml:Model" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_DV8nkBv8EduZN5aJJITI5w"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Package" xmi:id="_wCdtcH_1EeGMcIDCiaPhww" name="implementation">
+ <ownedComment xmi:id="_13ZsYBhXEeKGC8dT0Hrc_A"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_KOvvIPccEd-KM6l7lmIPkw" clientDependency="_Edy9EBvREeKM2oNGoGF4uQ" name="Class0">
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_U_ezUMzYEeGcRfFFcVPhOg" name="operation1" specification="_mbXNMH8tEeGWNf8qHJJtnw">
+ <ownedParameter xmi:id="_42nn4BoKEeKjbYasGOLMuA" name="Parameter1">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusCpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_42o2ABoKEeKjbYasGOLMuA" name="Parameter2">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusCpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_42z1IBoKEeKjbYasGOLMuA" name="p3">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusCpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body></body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_a9tFQMzYEeGcRfFFcVPhOg" name="operation2" specification="_XC6DoMzYEeGcRfFFcVPhOg">
+ <language>C/C++</language>
+ <body>my Text</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_vZAVMBnOEeK5EK5DdRYilA" name="operation3" specification="_q1fIIBRnEeK2iINwXBL4pA">
+ <language>C/C++</language>
+ <body></body>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_mbXNMH8tEeGWNf8qHJJtnw" name="operation1" method="_U_ezUMzYEeGcRfFFcVPhOg">
+ <ownedParameter xmi:id="_42nA0BoKEeKjbYasGOLMuA" name="Parameter1">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusCpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_42oO8BoKEeKjbYasGOLMuA" name="Parameter2">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusCpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_42zOEBoKEeKjbYasGOLMuA" name="p3">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusCpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_XC6DoMzYEeGcRfFFcVPhOg" name="operation2" method="_a9tFQMzYEeGcRfFFcVPhOg"/>
+ <ownedOperation xmi:id="_q1fIIBRnEeK2iINwXBL4pA" name="operation3" method="_vZAVMBnOEeK5EK5DdRYilA"/>
+ <ownedOperation xmi:id="_BVivAB0LEeKlYLZOWTi6uw" name="Operation1"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_Edy9EBvREeKM2oNGoGF4uQ" name="Allocate1" client="_KOvvIPccEd-KM6l7lmIPkw" supplier="_mp8XAA7QEeKcN-88BXIIKg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_mp8XAA7QEeKcN-88BXIIKg" name="Class1">
+ <ownedAttribute xmi:id="_9GkfABlDEeOWi_t2E10dLQ" name="i" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-8RcYBlDEeOWi_t2E10dLQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-8fe0BlDEeOWi_t2E10dLQ" value="1"/>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_777Q0BlDEeOWi_t2E10dLQ" name="Operation1"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_419y0A7hEeKpbseGaEy1LA" name="Class2">
+ <ownedAttribute xmi:id="_pd7rgBlDEeOWi_t2E10dLQ" name="j" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sa39wBlDEeOWi_t2E10dLQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sbDj8BlDEeOWi_t2E10dLQ" value="1"/>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_tcJNgBlDEeOWi_t2E10dLQ" name="superClassOp"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_K8FLcB0LEeKlYLZOWTi6uw" name="Class3">
+ <generalization xmi:id="_4rHc0BlCEeOWi_t2E10dLQ" general="_419y0A7hEeKpbseGaEy1LA"/>
+ <generalization xmi:id="_7AHv4BlDEeOWi_t2E10dLQ" general="_mp8XAA7QEeKcN-88BXIIKg"/>
+ <ownedAttribute xmi:id="_9vmDUBlCEeOWi_t2E10dLQ" name="ch" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Dd8GMBlDEeOWi_t2E10dLQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DeDa8BlDEeOWi_t2E10dLQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_DeUgsBlDEeOWi_t2E10dLQ" name="dgdf" value="25&#xA;"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_kTVuwP6QEeKlg5tzGV3QVQ" name="Operation1" isReentrant="false" specification="_TY18YB0LEeKlYLZOWTi6uw">
+ <ownedParameter xmi:id="_Gz6-YC-bEeO2L7HZ7MAV3w" name="arg">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>// Now let's add some code
+arg[0] = 1;</body>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_TY18YB0LEeKlYLZOWTi6uw" name="Operation1" method="_kTVuwP6QEeKlg5tzGV3QVQ">
+ <ownedComment xmi:id="_II4ccP6WEeKlg5tzGV3QVQ" annotatedElement="_II4ccP6WEeKlg5tzGV3QVQ">
+ <body>Here you can document operation1</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_Gz6XUC-bEeO2L7HZ7MAV3w" name="arg">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <profileApplication xmi:id="_G5ec8CcLEeGC--E0ZVgUkg">
+ <eAnnotations xmi:id="_G6JLUCcLEeGC--E0ZVgUkg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/FCM/1#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://FCM_PROFILES/FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
+ </profileApplication>
+ <profileApplication xmi:id="_VN5k0CcLEeGC--E0ZVgUkg">
+ <eAnnotations xmi:id="_VRMJYCcLEeGC--E0ZVgUkg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_ar8OsAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ <profileApplication xmi:id="_WAm0ICcLEeGC--E0ZVgUkg">
+ <eAnnotations xmi:id="_WDDEICcLEeGC--E0ZVgUkg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//HLAM"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_yNSZIAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ <profileApplication xmi:id="_YgXbICcLEeGC--E0ZVgUkg">
+ <eAnnotations xmi:id="_Yi1gUCcLEeGC--E0ZVgUkg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//GCM"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_YgAioAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ <profileApplication xmi:id="_1PzP4P6QEeKlg5tzGV3QVQ">
+ <eAnnotations xmi:id="_1QM4gP6QEeKlg5tzGV3QVQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/C_Cpp/1#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
+ </profileApplication>
+ </uml:Model>
+ <Cpp:CppConst xmi:id="_1NjzwA1XEeK5O8LY525qvg"/>
+ <Cpp:CppPtr xmi:id="_1NpTUA1XEeK5O8LY525qvg"/>
+ <Cpp:CppConst xmi:id="_1O0_EA1XEeK5O8LY525qvg"/>
+ <Cpp:CppPtr xmi:id="_1O6eoA1XEeK5O8LY525qvg"/>
+ <Cpp:CppConst xmi:id="_LqnwQA4UEeK3V5UIs8bMtQ"/>
+ <Cpp:CppPtr xmi:id="_LqqMgA4UEeK3V5UIs8bMtQ"/>
+ <Cpp:CppConst xmi:id="_LqtP0A4UEeK3V5UIs8bMtQ"/>
+ <Cpp:CppPtr xmi:id="_LqvsEA4UEeK3V5UIs8bMtQ"/>
+ <Cpp:CppConst xmi:id="_cCEqYA4VEeKZ9ci_RaQQlQ"/>
+ <Cpp:CppPtr xmi:id="_cCKxAA4VEeKZ9ci_RaQQlQ"/>
+ <Cpp:CppConst xmi:id="_cClAsA4VEeKZ9ci_RaQQlQ"/>
+ <Cpp:CppPtr xmi:id="_cCwm4A4VEeKZ9ci_RaQQlQ"/>
+ <Cpp:CppConst xmi:id="_gKRO0A4VEeKZ9ci_RaQQlQ"/>
+ <Cpp:CppPtr xmi:id="_gKUSIA4VEeKZ9ci_RaQQlQ"/>
+ <Cpp:CppInclude xmi:id="_GV9Q8BoCEeKjbYasGOLMuA" base_class="_KOvvIPccEd-KM6l7lmIPkw" preBody="#define xytz"/>
+ <Cpp:CppConst xmi:id="_sKD1sBoKEeKjbYasGOLMuA"/>
+ <Cpp:CppPtr xmi:id="_sKHgEBoKEeKjbYasGOLMuA"/>
+ <Cpp:CppConst xmi:id="_sKO00BoKEeKjbYasGOLMuA"/>
+ <Cpp:CppPtr xmi:id="_sKSfMBoKEeKjbYasGOLMuA"/>
+ <Cpp:CppConst xmi:id="_3cU0IBoKEeKjbYasGOLMuA"/>
+ <Cpp:CppPtr xmi:id="_3cYegBoKEeKjbYasGOLMuA"/>
+ <Cpp:CppConst xmi:id="_3cgaUBoKEeKjbYasGOLMuA"/>
+ <Cpp:CppPtr xmi:id="_3ckEsBoKEeKjbYasGOLMuA"/>
+ <Cpp:CppConst xmi:id="_4alzMBoKEeKjbYasGOLMuA"/>
+ <Cpp:CppPtr xmi:id="_4arSwBoKEeKjbYasGOLMuA"/>
+ <Cpp:CppConst xmi:id="_4a1q0BoKEeKjbYasGOLMuA"/>
+ <Cpp:CppPtr xmi:id="_4a6jUBoKEeKjbYasGOLMuA"/>
+ <Cpp:CppConst xmi:id="_42hhQBoKEeKjbYasGOLMuA"/>
+ <Cpp:CppPtr xmi:id="_42lLoBoKEeKjbYasGOLMuA"/>
+ <Cpp:CppConst xmi:id="_42tHcBoKEeKjbYasGOLMuA" base_parameter="_42oO8BoKEeKjbYasGOLMuA"/>
+ <Cpp:CppPtr xmi:id="_42x_8BoKEeKjbYasGOLMuA" base_parameter="_42oO8BoKEeKjbYasGOLMuA"/>
+ <Alloc:Allocate xmi:id="_EpVesBvREeKM2oNGoGF4uQ" base_Abstraction="_Edy9EBvREeKM2oNGoGF4uQ"/>
+ <C_Cpp:Ptr xmi:id="_OtrjAP6SEeKlg5tzGV3QVQ"/>
+ <C_Cpp:Ptr xmi:id="_RcHfMP6SEeKlg5tzGV3QVQ"/>
+ <C_Cpp:Ptr xmi:id="_nvLRkP6SEeKlg5tzGV3QVQ"/>
+ <C_Cpp:Array xmi:id="_jzudwP6UEeKlg5tzGV3QVQ" definition="[25]"/>
+ <C_Cpp:Array xmi:id="_erFBkP6XEeKlg5tzGV3QVQ" definition="[267]"/>
+ <C_Cpp:Array xmi:id="_U3c_wP9lEeK-WfgwzfbGXg" definition="[25]"/>
+ <C_Cpp:Array xmi:id="_HJeEsAFFEeO6K_N_1OaJGA" definition="[25]"/>
+ <C_Cpp:Array xmi:id="_14-VwA5UEeOvI9e-hgvtnQ" definition="[25]"/>
+ <C_Cpp:Array xmi:id="_yHL1wBlCEeOWi_t2E10dLQ" definition="[25]"/>
+ <C_Cpp:Array xmi:id="_KUCbUBlDEeOWi_t2E10dLQ" definition="[25]"/>
+ <C_Cpp:Array xmi:id="_wABfgBlDEeOWi_t2E10dLQ" definition="[25]"/>
+ <C_Cpp:Array xmi:id="__WqSUBlDEeOWi_t2E10dLQ" definition="[25]"/>
+ <C_Cpp:Array xmi:id="_T6AakBlEEeOWi_t2E10dLQ" definition="[25]"/>
+ <C_Cpp:Array xmi:id="_ZD9-ABlEEeOWi_t2E10dLQ" definition="[25]"/>
+ <C_Cpp:Typedef xmi:id="_GSsl0C-JEeObJ6ARx67E0g" definition="int">
+ <base_primitivetype href="TestCDTintegration.uml#_DHJ24C-JEeObJ6ARx67E0g"/>
+ </C_Cpp:Typedef>
+ <C_Cpp:Array xmi:id="_NeBkEC-JEeObJ6ARx67E0g" definition="[25]"/>
+ <C_Cpp:Array xmi:id="_PZJ0AC-JEeObJ6ARx67E0g" definition="[25]"/>
+ <C_Cpp:Array xmi:id="_-e1fkC-WEeOlesq5lIESug" definition="[25]"/>
+ <C_Cpp:Array xmi:id="_AvLxkC-XEeOlesq5lIESug" definition="[25]"/>
+ <C_Cpp:Array xmi:id="_e8dogC-XEeOm_pHVqAkACg" definition="[25]"/>
+ <C_Cpp:Array xmi:id="_wpcnoC-XEeOm_pHVqAkACg" definition="[25]"/>
+ <C_Cpp:Array xmi:id="_xJ_v8C-XEeOm_pHVqAkACg" definition="[25]"/>
+ <C_Cpp:Array xmi:id="_xifvgC-XEeOm_pHVqAkACg" definition="[25]"/>
+ <C_Cpp:Array xmi:id="_ErNs0C-YEeOm_pHVqAkACg" definition="[25]"/>
+ <C_Cpp:Array xmi:id="_FLFfsC-YEeOm_pHVqAkACg" definition="[25]"/>
+ <C_Cpp:Array xmi:id="_kxBgwC-aEeO2L7HZ7MAV3w" definition="[25]"/>
+ <C_Cpp:Array xmi:id="_lL0mYC-aEeO2L7HZ7MAV3w" definition="[25]"/>
+ <C_Cpp:Array xmi:id="_mVwp8C-aEeO2L7HZ7MAV3w" definition="[25]"/>
+ <C_Cpp:Array xmi:id="_8OlXYC-aEeO2L7HZ7MAV3w" definition="[25]"/>
+ <C_Cpp:Array xmi:id="_CV-MYC-bEeO2L7HZ7MAV3w" definition="[25]"/>
+ <C_Cpp:Array xmi:id="_D_qHAC-bEeO2L7HZ7MAV3w" definition="[25]"/>
+ <C_Cpp:Array xmi:id="_Gz9aoC-bEeO2L7HZ7MAV3w" base_parameter="_Gz6XUC-bEeO2L7HZ7MAV3w" definition="[25]"/>
+</xmi:XMI>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.test/model/TestCDTintegration.di b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.test/model/TestCDTintegration.di
new file mode 100644
index 00000000000..3acfa5281bc
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.test/model/TestCDTintegration.di
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi">
+ <pageList>
+ <availablePage>
+ <emfPageIdentifier href="TestCDTintegration.notation#_8vp88DcVEeO6UdbIk03c9Q"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="TestCDTintegration.notation"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="TestCDTintegration.notation"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="TestCDTintegration.notation#_6nABcFG7EeOLNIKOajeerQ"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="TestCDTintegration.notation"/>
+ </availablePage>
+ </pageList>
+ <sashModel currentSelection="//@sashModel/@windows.0/@children.0">
+ <windows>
+ <children xsi:type="di:TabFolder">
+ <children>
+ <emfPageIdentifier href="TestCDTintegration.notation#_8vp88DcVEeO6UdbIk03c9Q"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="TestCDTintegration.notation#_6nABcFG7EeOLNIKOajeerQ"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+</di:SashWindowsMngr>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.test/model/TestCDTintegration.notation b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.test/model/TestCDTintegration.notation
new file mode 100644
index 00000000000..6c917c29662
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.test/model/TestCDTintegration.notation
@@ -0,0 +1,283 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:texteditormodel="http://www.eclipse.org/Papyrus/TextEditor/0.10.0/texteditormodel" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_8vp88DcVEeO6UdbIk03c9Q" type="PapyrusUMLClassDiagram" name="NewDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="__McvgDcVEeO6UdbIk03c9Q" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__Md9oDcVEeO6UdbIk03c9Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__MeksDcVEeO6UdbIk03c9Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__MeksTcVEeO6UdbIk03c9Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__MeksjcVEeO6UdbIk03c9Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__MekszcVEeO6UdbIk03c9Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__MektDcVEeO6UdbIk03c9Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="__MektTcVEeO6UdbIk03c9Q" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__MektjcVEeO6UdbIk03c9Q" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__MektzcVEeO6UdbIk03c9Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__MekuDcVEeO6UdbIk03c9Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__MekuTcVEeO6UdbIk03c9Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__MekujcVEeO6UdbIk03c9Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__MfLwDcVEeO6UdbIk03c9Q" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_A3SgsDcWEeO6UdbIk03c9Q" type="3013" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="TestCDTintegration.uml#_TY18YB0LEeKlYLZOWTi6uw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A3SgsTcWEeO6UdbIk03c9Q"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FDs_YExiEeOmZKwrWJYDKQ" type="3013" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="TestCDTintegration.uml#_jnWMADcmEeO6UdbIk03c9Q"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FDs_YUxiEeOmZKwrWJYDKQ" x="65" y="25"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="__MfLwTcVEeO6UdbIk03c9Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__MfLwjcVEeO6UdbIk03c9Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__MfLwzcVEeO6UdbIk03c9Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__MfLxDcVEeO6UdbIk03c9Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__MfLxTcVEeO6UdbIk03c9Q" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__MfLxjcVEeO6UdbIk03c9Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__MfLxzcVEeO6UdbIk03c9Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__MfLyDcVEeO6UdbIk03c9Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__MfLyTcVEeO6UdbIk03c9Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__MmggDcVEeO6UdbIk03c9Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__MmggTcVEeO6UdbIk03c9Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__MmggjcVEeO6UdbIk03c9Q"/>
+ </children>
+ <element xmi:type="uml:Class" href="TestCDTintegration.uml#_K8FLcB0LEeKlYLZOWTi6uw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__McvgTcVEeO6UdbIk03c9Q" x="63" y="18" width="217" height="91"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__kHooDcVEeO6UdbIk03c9Q" type="2007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__kIPsDcVEeO6UdbIk03c9Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__kIPsTcVEeO6UdbIk03c9Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__kIPsjcVEeO6UdbIk03c9Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__kIPszcVEeO6UdbIk03c9Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__kIPtDcVEeO6UdbIk03c9Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__kIPtTcVEeO6UdbIk03c9Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="__kIPtjcVEeO6UdbIk03c9Q" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="__kIPtzcVEeO6UdbIk03c9Q" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_B_6VoDcWEeO6UdbIk03c9Q" type="3026" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_B_6VojcWEeO6UdbIk03c9Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_B_6VozcWEeO6UdbIk03c9Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_B_6VpDcWEeO6UdbIk03c9Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_B_6VpTcWEeO6UdbIk03c9Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_B_68sDcWEeO6UdbIk03c9Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_B_68sTcWEeO6UdbIk03c9Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D6Uz4DcWEeO6UdbIk03c9Q" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D6Uz4TcWEeO6UdbIk03c9Q" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D6Uz4jcWEeO6UdbIk03c9Q" key="StereotypeList" value="C_Cpp::Typedef"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D6Uz4zcWEeO6UdbIk03c9Q" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D6Uz5DcWEeO6UdbIk03c9Q" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D6Uz5TcWEeO6UdbIk03c9Q" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_B_68sjcWEeO6UdbIk03c9Q" type="5058"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_B_68szcWEeO6UdbIk03c9Q" visible="false" type="7041">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_B_68tDcWEeO6UdbIk03c9Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_B_68tTcWEeO6UdbIk03c9Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_B_68tjcWEeO6UdbIk03c9Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_B_68tzcWEeO6UdbIk03c9Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_B_68uDcWEeO6UdbIk03c9Q" visible="false" type="7042">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_B_68uTcWEeO6UdbIk03c9Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_B_68ujcWEeO6UdbIk03c9Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_B_68uzcWEeO6UdbIk03c9Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_B_68vDcWEeO6UdbIk03c9Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CAGi4DcWEeO6UdbIk03c9Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CAGi4TcWEeO6UdbIk03c9Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CAGi4jcWEeO6UdbIk03c9Q"/>
+ </children>
+ <element xmi:type="uml:PrimitiveType" href="TestCDTintegration.uml#_DHJ24C-JEeObJ6ARx67E0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_B_6VoTcWEeO6UdbIk03c9Q" x="28" y="28" width="165" height="71"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="__kIPuDcVEeO6UdbIk03c9Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__kIPuTcVEeO6UdbIk03c9Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__kNIMDcVEeO6UdbIk03c9Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__kNIMTcVEeO6UdbIk03c9Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__kNIMjcVEeO6UdbIk03c9Q"/>
+ </children>
+ <element xmi:type="uml:Package" href="TestCDTintegration.uml#_-2_pQC-IEeObJ6ARx67E0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__kHooTcVEeO6UdbIk03c9Q" x="63" y="265" width="261" height="141"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_pdcfgFG7EeOLNIKOajeerQ" type="2008" fontName="" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pddGkFG7EeOLNIKOajeerQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pddGkVG7EeOLNIKOajeerQ" key="ShadowFigure_Value" value="true"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pddtoFG7EeOLNIKOajeerQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pddtoVG7EeOLNIKOajeerQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pddtolG7EeOLNIKOajeerQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pddto1G7EeOLNIKOajeerQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_pddtpFG7EeOLNIKOajeerQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_pddtpVG7EeOLNIKOajeerQ" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_pddtplG7EeOLNIKOajeerQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_pddtp1G7EeOLNIKOajeerQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_pddtqFG7EeOLNIKOajeerQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pddtqVG7EeOLNIKOajeerQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_pddtqlG7EeOLNIKOajeerQ" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_gi1fgFG8EeOLNIKOajeerQ" type="3013" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="TestCDTintegration.uml#_gixOEFG8EeOLNIKOajeerQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gi1fgVG8EeOLNIKOajeerQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_pddtq1G7EeOLNIKOajeerQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_pddtrFG7EeOLNIKOajeerQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_pddtrVG7EeOLNIKOajeerQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pddtrlG7EeOLNIKOajeerQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_pddtr1G7EeOLNIKOajeerQ" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_pddtsFG7EeOLNIKOajeerQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_pddtsVG7EeOLNIKOajeerQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_pddtslG7EeOLNIKOajeerQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pddts1G7EeOLNIKOajeerQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_pdm3kFG7EeOLNIKOajeerQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_pdm3kVG7EeOLNIKOajeerQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pdm3klG7EeOLNIKOajeerQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="TestCDTintegration.uml#_419y0A7hEeKpbseGaEy1LA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pdcfgVG7EeOLNIKOajeerQ" x="63" y="128" width="217" height="98"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_EcHscFG8EeOLNIKOajeerQ" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EcHsclG8EeOLNIKOajeerQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EcHsc1G8EeOLNIKOajeerQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EcHsdFG8EeOLNIKOajeerQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EcHsdVG8EeOLNIKOajeerQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EcITgFG8EeOLNIKOajeerQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EcITgVG8EeOLNIKOajeerQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_EcITglG8EeOLNIKOajeerQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="TestCDTintegration.uml#_EbtcwFG8EeOLNIKOajeerQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EcHscVG8EeOLNIKOajeerQ" x="308" y="110" width="98"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_8vp88TcVEeO6UdbIk03c9Q"/>
+ <element xmi:type="uml:Model" href="TestCDTintegration.uml#_Ae6MwPccEd-KM6l7lmIPkw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_Jia34FG8EeOLNIKOajeerQ" type="4013" source="_EcHscFG8EeOLNIKOajeerQ" target="_pdcfgFG7EeOLNIKOajeerQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Jia34VG8EeOLNIKOajeerQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Jia34lG8EeOLNIKOajeerQ" points="[-17, 9, 64, 0]$[-45, -1, 36, -10]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JifJUFG8EeOLNIKOajeerQ" id="(0.17346938775510204,0.6333333333333333)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JifJUVG8EeOLNIKOajeerQ" id="(0.8341013824884793,0.29591836734693877)"/>
+ </edges>
+ </notation:Diagram>
+ <texteditormodel:TextEditorModel xmi:id="_EItkYEG6EeOMv8cdTsw5Zg" type="CDTEditorInPapyrus" name="CDT Class3">
+ <editedObject xmi:type="uml:Class" href="TestCDTintegration.uml#_K8FLcB0LEeKlYLZOWTi6uw"/>
+ <selectedObject xmi:type="uml:Class" href="TestCDTintegration.uml#_K8FLcB0LEeKlYLZOWTi6uw"/></texteditormodel:TextEditorModel>
+ <notation:Diagram xmi:id="_6nABcFG7EeOLNIKOajeerQ" type="PapyrusUMLStateMachineDiagram" name="SmDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_6nABcVG7EeOLNIKOajeerQ" type="2000" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6nABclG7EeOLNIKOajeerQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6nABc1G7EeOLNIKOajeerQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6nABdFG7EeOLNIKOajeerQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6nABdVG7EeOLNIKOajeerQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6nABdlG7EeOLNIKOajeerQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6nABd1G7EeOLNIKOajeerQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6nABeFG7EeOLNIKOajeerQ" type="2001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6nABeVG7EeOLNIKOajeerQ" width="385" height="19"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6nABelG7EeOLNIKOajeerQ" type="2002">
+ <children xmi:type="notation:Shape" xmi:id="_6nABe1G7EeOLNIKOajeerQ" type="3000" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6nABfFG7EeOLNIKOajeerQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6nABfVG7EeOLNIKOajeerQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6nABflG7EeOLNIKOajeerQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6nABf1G7EeOLNIKOajeerQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6nABgFG7EeOLNIKOajeerQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6nABgVG7EeOLNIKOajeerQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6nABglG7EeOLNIKOajeerQ" source="RegionAnnotationKey">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6nABg1G7EeOLNIKOajeerQ" key="RegionZoneKey" value=""/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6nABhFG7EeOLNIKOajeerQ" type="3002">
+ <children xmi:type="notation:Shape" xmi:id="_TY3YkFG8EeOLNIKOajeerQ" type="6000" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TY3YklG8EeOLNIKOajeerQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TY3Yk1G8EeOLNIKOajeerQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TY3_oFG8EeOLNIKOajeerQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TY3_oVG8EeOLNIKOajeerQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TY3_olG8EeOLNIKOajeerQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TY3_o1G8EeOLNIKOajeerQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TY3_pFG8EeOLNIKOajeerQ" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T-JP4FG8EeOLNIKOajeerQ" width="87"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TY3_pVG8EeOLNIKOajeerQ" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TY3_plG8EeOLNIKOajeerQ" y="-1" width="87"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TY8REFG8EeOLNIKOajeerQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TY8REVG8EeOLNIKOajeerQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TY8RElG8EeOLNIKOajeerQ"/>
+ </children>
+ <element xmi:type="uml:State" href="TestCDTintegration.uml#_TYx5AFG8EeOLNIKOajeerQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TY3YkVG8EeOLNIKOajeerQ" x="186" y="23" width="87" height="46"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_UcYrEFG8EeOLNIKOajeerQ" type="8000" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UcZSIFG8EeOLNIKOajeerQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UcZ5MFG8EeOLNIKOajeerQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UcZ5MVG8EeOLNIKOajeerQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UcZ5MlG8EeOLNIKOajeerQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UcZ5M1G8EeOLNIKOajeerQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UcZ5NFG8EeOLNIKOajeerQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UcZ5NVG8EeOLNIKOajeerQ" type="8001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UcZ5NlG8EeOLNIKOajeerQ" x="23" y="-8"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UcagQFG8EeOLNIKOajeerQ" type="8002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UcagQVG8EeOLNIKOajeerQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Pseudostate" href="TestCDTintegration.uml#_UcSkcFG8EeOLNIKOajeerQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UcYrEVG8EeOLNIKOajeerQ" x="28" y="23"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6nABhVG7EeOLNIKOajeerQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_6rPBMFG7EeOLNIKOajeerQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_6rPBMVG7EeOLNIKOajeerQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6rPBMlG7EeOLNIKOajeerQ"/>
+ </children>
+ <element xmi:type="uml:Region" href="TestCDTintegration.uml#_6m9lMFG7EeOLNIKOajeerQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6nABhlG7EeOLNIKOajeerQ" width="385" height="174"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6nABh1G7EeOLNIKOajeerQ" y="19" width="385" height="174"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_6rNzEFG7EeOLNIKOajeerQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_6rNzEVG7EeOLNIKOajeerQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6rNzElG7EeOLNIKOajeerQ"/>
+ </children>
+ <element xmi:type="uml:StateMachine" href="TestCDTintegration.uml#_2lDO8FG7EeOLNIKOajeerQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6nABiFG7EeOLNIKOajeerQ" x="30" y="30" width="385" height="193"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_6nABiVG7EeOLNIKOajeerQ"/>
+ <element xmi:type="uml:StateMachine" href="TestCDTintegration.uml#_2lDO8FG7EeOLNIKOajeerQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_Z3ELEFG8EeOLNIKOajeerQ" type="7000" source="_UcYrEFG8EeOLNIKOajeerQ" target="_TY3YkFG8EeOLNIKOajeerQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Z3EyIFG8EeOLNIKOajeerQ" visible="false" type="7001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Z3EyIVG8EeOLNIKOajeerQ" x="-20" y="19"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Z3EyIlG8EeOLNIKOajeerQ" type="7002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Z3EyI1G8EeOLNIKOajeerQ" x="10" y="39"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Z3EyJFG8EeOLNIKOajeerQ" type="7003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Z3EyJVG8EeOLNIKOajeerQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Z3ELEVG8EeOLNIKOajeerQ" fontName="Sans Serif"/>
+ <element xmi:type="uml:Transition" href="TestCDTintegration.uml#_Z2_5oFG8EeOLNIKOajeerQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Z3ELElG8EeOLNIKOajeerQ" points="[10, 1, -113, -31]$[124, 9, 1, -23]"/>
+ </edges>
+ </notation:Diagram>
+ <texteditormodel:TextEditorModel xmi:id="_rGh10FG-EeOLNIKOajeerQ" type="CDTEditorInPapyrus" name="CDT Class2">
+ <editedObject xmi:type="uml:Class" href="TestCDTintegration.uml#_419y0A7hEeKpbseGaEy1LA"/>
+ <selectedObject xmi:type="uml:Transition" href="TestCDTintegration.uml#_Z2_5oFG8EeOLNIKOajeerQ"/></texteditormodel:TextEditorModel>
+</xmi:XMI>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.test/model/TestCDTintegration.uml b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.test/model/TestCDTintegration.uml
new file mode 100644
index 00000000000..968950faadb
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.cpp.test/model/TestCDTintegration.uml
@@ -0,0 +1,182 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:C_Cpp="http://www.eclipse.org/papyrus/C_Cpp/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <uml:Model xmi:id="_Ae6MwPccEd-KM6l7lmIPkw" name="TestCDTintegration">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_EbtcwFG8EeOLNIKOajeerQ" annotatedElement="_419y0A7hEeKpbseGaEy1LA">
+ <body>This class contains a state machine</body>
+ </ownedComment>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_GQ1SgP6SEeKlg5tzGV3QVQ">
+ <importedPackage xmi:type="uml:Model" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_DV8nkBv8EduZN5aJJITI5w"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Package" xmi:id="_wCdtcH_1EeGMcIDCiaPhww" name="implementation">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_13ZsYBhXEeKGC8dT0Hrc_A"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_KOvvIPccEd-KM6l7lmIPkw" name="Class0">
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_U_ezUMzYEeGcRfFFcVPhOg" name="operation1" specification="_mbXNMH8tEeGWNf8qHJJtnw">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_42nn4BoKEeKjbYasGOLMuA" name="Parameter1">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_42o2ABoKEeKjbYasGOLMuA" name="Parameter2">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_42z1IBoKEeKjbYasGOLMuA" name="p3">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body></body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_a9tFQMzYEeGcRfFFcVPhOg" name="operation2" specification="_XC6DoMzYEeGcRfFFcVPhOg">
+ <language>C/C++</language>
+ <body>my Text</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_vZAVMBnOEeK5EK5DdRYilA" name="operation3" specification="_q1fIIBRnEeK2iINwXBL4pA">
+ <language>C/C++</language>
+ <body></body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_mbXNMH8tEeGWNf8qHJJtnw" name="operation1" method="_U_ezUMzYEeGcRfFFcVPhOg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_42nA0BoKEeKjbYasGOLMuA" name="Parameter1">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_42oO8BoKEeKjbYasGOLMuA" name="Parameter2">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_42zOEBoKEeKjbYasGOLMuA" name="p3">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_XC6DoMzYEeGcRfFFcVPhOg" name="operation2" method="_a9tFQMzYEeGcRfFFcVPhOg"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_q1fIIBRnEeK2iINwXBL4pA" name="operation3" method="_vZAVMBnOEeK5EK5DdRYilA"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_BVivAB0LEeKlYLZOWTi6uw" name="Operation1"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_419y0A7hEeKpbseGaEy1LA" name="Class2">
+ <ownedBehavior xmi:type="uml:StateMachine" xmi:id="_2lDO8FG7EeOLNIKOajeerQ" name="StateMachine">
+ <region xmi:type="uml:Region" xmi:id="_6m9lMFG7EeOLNIKOajeerQ" name="Region1">
+ <transition xmi:type="uml:Transition" xmi:id="_Z2_5oFG8EeOLNIKOajeerQ" name="Transition0" source="_UcSkcFG8EeOLNIKOajeerQ" target="_TYx5AFG8EeOLNIKOajeerQ">
+ <effect xmi:type="uml:OpaqueBehavior" xmi:id="_OVqvAFG9EeOLNIKOajeerQ" name="effectBehavior" isAbstract="true">
+ <language>C/C++</language>
+ <body>// this effect is a C++
+// opaque behavior with several lines</body>
+ </effect>
+ <trigger xmi:type="uml:Trigger" xmi:id="__ExX0FG8EeOLNIKOajeerQ" name="Trigger"/>
+ </transition>
+ <subvertex xmi:type="uml:State" xmi:id="_TYx5AFG8EeOLNIKOajeerQ" name="State0"/>
+ <subvertex xmi:type="uml:Pseudostate" xmi:id="_UcSkcFG8EeOLNIKOajeerQ" name="Initial0"/>
+ </region>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_xe7iUFG-EeOLNIKOajeerQ" name="triggerOp" specification="_gixOEFG8EeOLNIKOajeerQ" isReentrant="false">
+ <language>C/C++</language>
+ <body>// Aber hier geht's, oder?
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_xe8JYVG-EeOLNIKOajeerQ" name="effectBehavior" specification="_xe8JYFG-EeOLNIKOajeerQ" isReentrant="false">
+ <language>C/C++</language>
+ <body>// this effect is a C++ np
+// opaque behavior with several lines</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_gixOEFG8EeOLNIKOajeerQ" name="triggerOp" method="_xe7iUFG-EeOLNIKOajeerQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xe8JYFG-EeOLNIKOajeerQ" name="effectBehavior" method="_xe8JYVG-EeOLNIKOajeerQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_K8FLcB0LEeKlYLZOWTi6uw" name="Class1">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_x0eUMPuWEeObXf7LzGwVbQ" name="constAttr">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_KyTqwPuXEeObXf7LzGwVbQ" name="FIVE" value="5"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_5WkzsPuWEeObXf7LzGwVbQ" name="volatileAttr">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_JkS_gPuXEeObXf7LzGwVbQ" name="FIVE" value="5"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_5chDoPuWEeObXf7LzGwVbQ" name="constVolatileAttr">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_IEKCcPuXEeObXf7LzGwVbQ" name="FIVE" value="5"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_5hUEEPuWEeObXf7LzGwVbQ" name="staticConstVolatileAttr" isStatic="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_Gph3gPuXEeObXf7LzGwVbQ" name="FIVE" value="5"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_kTVuwP6QEeKlg5tzGV3QVQ" name="Operation1" specification="_TY18YB0LEeKlYLZOWTi6uw" isReentrant="false">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_8cPkcVG-EeOLNIKOajeerQ" name="arg">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>// Now let's add some code
+cout &lt;&lt; &quot;value: &quot; &lt;&lt; arg;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_pX7DgDcmEeO6UdbIk03c9Q" name="Operation2" specification="_jnWMADcmEeO6UdbIk03c9Q" isReentrant="false">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_8cRZoVG-EeOLNIKOajeerQ" name="args">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>// Now let's add some code
+args[0] = 2;</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_TY18YB0LEeKlYLZOWTi6uw" name="Operation1" method="_kTVuwP6QEeKlg5tzGV3QVQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_II4ccP6WEeKlg5tzGV3QVQ" annotatedElement="_II4ccP6WEeKlg5tzGV3QVQ">
+ <body></body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_8cPkcFG-EeOLNIKOajeerQ" name="arg">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_jnWMADcmEeO6UdbIk03c9Q" name="Operation2" method="_pX7DgDcmEeO6UdbIk03c9Q">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_rH4lQDcmEeO6UdbIk03c9Q" annotatedElement="_rH4lQDcmEeO6UdbIk03c9Q">
+ <body></body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_8cRZoFG-EeOLNIKOajeerQ" name="args">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_NJkdEPuXEeObXf7LzGwVbQ" name="constOperation"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_P49bgPuXEeObXf7LzGwVbQ" name="volatileOperation"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_QCDGEPuXEeObXf7LzGwVbQ" name="constVolatileOperation"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_QGndAPuXEeObXf7LzGwVbQ" name="staticConstVolatileOperation" isStatic="true"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_-2_pQC-IEeObJ6ARx67E0g" name="Package1">
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_DHJ24C-JEeObJ6ARx67E0g" name="Test"/>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_G5ec8CcLEeGC--E0ZVgUkg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6JLUCcLEeGC--E0ZVgUkg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/FCM/1#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://FCM_PROFILES/FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_VN5k0CcLEeGC--E0ZVgUkg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VRMJYCcLEeGC--E0ZVgUkg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_ar8OsAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_WAm0ICcLEeGC--E0ZVgUkg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WDDEICcLEeGC--E0ZVgUkg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//HLAM"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_yNSZIAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_YgXbICcLEeGC--E0ZVgUkg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Yi1gUCcLEeGC--E0ZVgUkg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//GCM"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_YgAioAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_1PzP4P6QEeKlg5tzGV3QVQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1QM4gP6QEeKlg5tzGV3QVQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/C_Cpp/1#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
+ </profileApplication>
+ </uml:Model>
+ <C_Cpp:Typedef xmi:id="_D6FjUDcWEeO6UdbIk03c9Q" definition="int" base_primitivetype="_DHJ24C-JEeObJ6ARx67E0g"/>
+ <C_Cpp:Const xmi:id="_8cVEAFG-EeOLNIKOajeerQ" base_parameter="_8cRZoFG-EeOLNIKOajeerQ"/>
+ <C_Cpp:Ptr xmi:id="_8cYuYFG-EeOLNIKOajeerQ" base_parameter="_8cRZoFG-EeOLNIKOajeerQ"/>
+ <C_Cpp:Array xmi:id="_8cbxsFG-EeOLNIKOajeerQ" base_parameter="_8cRZoFG-EeOLNIKOajeerQ" definition="[5]"/>
+ <C_Cpp:Const xmi:id="_AwqmsPuXEeObXf7LzGwVbQ" base_property="_5chDoPuWEeObXf7LzGwVbQ"/>
+ <C_Cpp:Volatile xmi:id="_AxE2YPuXEeObXf7LzGwVbQ" base_property="_5chDoPuWEeObXf7LzGwVbQ"/>
+ <C_Cpp:Volatile xmi:id="_BnQ3gPuXEeObXf7LzGwVbQ" base_property="_5WkzsPuWEeObXf7LzGwVbQ"/>
+ <C_Cpp:Const xmi:id="_CrTHYPuXEeObXf7LzGwVbQ" base_property="_x0eUMPuWEeObXf7LzGwVbQ"/>
+ <C_Cpp:Const xmi:id="_ECotwPuXEeObXf7LzGwVbQ" base_property="_5hUEEPuWEeObXf7LzGwVbQ"/>
+ <C_Cpp:Volatile xmi:id="_EC3-UPuXEeObXf7LzGwVbQ" base_property="_5hUEEPuWEeObXf7LzGwVbQ"/>
+ <C_Cpp:Const xmi:id="_WK3ecPuXEeObXf7LzGwVbQ" base_operation="_QGndAPuXEeObXf7LzGwVbQ"/>
+ <C_Cpp:Volatile xmi:id="_WLBPcPuXEeObXf7LzGwVbQ" base_operation="_QGndAPuXEeObXf7LzGwVbQ"/>
+ <C_Cpp:Const xmi:id="_XOookPuXEeObXf7LzGwVbQ" base_operation="_QCDGEPuXEeObXf7LzGwVbQ"/>
+ <C_Cpp:Volatile xmi:id="_XO1c4PuXEeObXf7LzGwVbQ" base_operation="_QCDGEPuXEeObXf7LzGwVbQ"/>
+ <C_Cpp:Volatile xmi:id="_YBPxQPuXEeObXf7LzGwVbQ" base_operation="_P49bgPuXEeObXf7LzGwVbQ"/>
+ <C_Cpp:Const xmi:id="_YyNUIPuXEeObXf7LzGwVbQ" base_operation="_NJkdEPuXEeObXf7LzGwVbQ"/>
+</xmi:XMI>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/.classpath b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/.classpath
new file mode 100644
index 00000000000..ad32c83a788
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/.project b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/.project
new file mode 100644
index 00000000000..d1004a0c6d3
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.texteditor.cdt</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/META-INF/MANIFEST.MF b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..2317f744580
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/META-INF/MANIFEST.MF
@@ -0,0 +1,35 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.ui.editors;bundle-version="3.7.0",
+ org.eclipse.emf.ecore;bundle-version="2.7.0",
+ org.eclipse.uml2.uml;bundle-version="3.2.0",
+ org.eclipse.jface.text;bundle-version="3.7.0",
+ org.eclipse.gmf.runtime.emf.type.core,
+ org.eclipse.cdt.core;bundle-version="5.4.0",
+ org.eclipse.cdt.ui;bundle-version="5.4.0",
+ org.eclipse.cdt.codan.ui.cxx;bundle-version="3.2.0",
+ org.eclipse.papyrus.infra.core.log;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.core;bundle-version="1.2.0",
+ org.eclipse.papyrus.cpp.profile;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.tools;bundle-version="1.2.0",
+ org.eclipse.papyrus.texteditor.model;bundle-version="1.2.0",
+ org.eclipse.ui.ide;bundle-version="3.9.0",
+ org.eclipse.papyrus.infra.gmfdiag.commands;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.emf;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.widgets;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.tools.utils;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.diagram.common;bundle-version="1.2.0",
+ org.eclipse.papyrus.codegen.extensionpoints;bundle-version="1.2.0",
+ org.eclipse.papyrus.cpp.codegen;bundle-version="1.2.0",
+ org.eclipse.papyrus.qompass.ui;bundle-version="1.2.0"
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-Version: 1.2.0.qualifier
+Bundle-Localization: plugin
+Bundle-Name: %pluginName
+Bundle-Activator: org.eclipse.papyrus.texteditor.cdt.Activator
+Bundle-ManifestVersion: 2
+Bundle-Description: %pluginDescription
+Bundle-SymbolicName: org.eclipse.papyrus.texteditor.cdt;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/about.html b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/about.html
new file mode 100644
index 00000000000..82d49bf5f81
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/build.properties b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/build.properties
new file mode 100644
index 00000000000..dca8cd871c9
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/build.properties
@@ -0,0 +1,10 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ about.html,\
+ build.properties,\
+ icons/,\
+ plugin.properties
+src.includes = about.html
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/icons/texteditor.gif b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/icons/texteditor.gif
new file mode 100644
index 00000000000..0d1a28947ba
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/icons/texteditor.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/icons/texteditor.xcf b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/icons/texteditor.xcf
new file mode 100644
index 00000000000..1749c428883
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/icons/texteditor.xcf
Binary files differ
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/plugin.properties b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/plugin.properties
new file mode 100644
index 00000000000..7e334617814
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/plugin.properties
@@ -0,0 +1,14 @@
+###############################################################################
+# Copyright (c) 2013 CEA LIST.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# CEA LIST - initial API and implementation
+###############################################################################
+pluginName=Papyrus CDT editor integration (Incubation)
+providerName=Eclipse Modeling Project
+
+pluginDescription=This plugin provides a editor for uml.Comment. The informations are stored in the .notation \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/plugin.xml b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/plugin.xml
new file mode 100644
index 00000000000..56bc6713d41
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/plugin.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.papyrus.infra.core.model">
+ <model
+ classname="org.eclipse.papyrus.texteditor.cdt.modelresource.TextEditorModelSharedResource">
+ </model>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ description="Open a CDT Editor"
+ defaultHandler="org.eclipse.papyrus.texteditor.cdt.handler.PapyrusCDTEditorHandler"
+ id="org.eclipse.papyrus.exteditor.cdt.openeditor"
+ name="Open a CDT Editor">
+ </command>
+ </extension>
+ <extension
+ point="org.eclipse.papyrus.infra.core.papyrusDiagram">
+ <editorDiagram
+ factoryClass="org.eclipse.papyrus.texteditor.cdt.factory.PapyrusCDTEditorFactory"
+ icon="icons/texteditor.gif">
+ </editorDiagram>
+ </extension>
+ <extension
+ point="org.eclipse.ui.menus">
+ <menuContribution
+ allPopups="false"
+ locationURI="popup:org.eclipse.papyrus.qompass.popup?after=codegen">
+ <command
+ commandId="org.eclipse.papyrus.exteditor.cdt.openeditor"
+ id="org.eclipse.papyrus.exteditor.cdt.open"
+ icon="icons/texteditor.gif"
+ style="push">
+ <visibleWhen
+ checkEnabled="true">
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension
+ point="org.eclipse.papyrus.infra.core.modelListener">
+ <listener
+ name="org.eclipse.papyrus.exteditor.cdt.listener.ModelListener"
+ realization="org.eclipse.papyrus.texteditor.cdt.listener.ModelListener">
+ </listener>
+ </extension>
+</plugin>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/pom.xml b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/pom.xml
new file mode 100644
index 00000000000..6809579191e
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.texteditor.cdt</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/Activator.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/Activator.java
new file mode 100644
index 00000000000..f69ef78e6f2
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/Activator.java
@@ -0,0 +1,71 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) Vincent.Lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.texteditor.cdt;
+
+import org.eclipse.papyrus.infra.core.log.LogHelper;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.texteditor.cdt"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ public static LogHelper log;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ log = new LogHelper(this);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/AddProfileAndModelLibsHandler.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/AddProfileAndModelLibsHandler.java
new file mode 100644
index 00000000000..fa0e02c1594
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/AddProfileAndModelLibsHandler.java
@@ -0,0 +1,144 @@
+/*******************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - ansgar.radermacher@cea.fr CEA LIST - initial API and implementation
+ *
+ *******************************************************************************/
+
+package org.eclipse.papyrus.texteditor.cdt;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.emf.common.command.CommandStack;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.transaction.RecordingCommand;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.emf.transaction.util.TransactionUtil;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PackageImport;
+import org.eclipse.uml2.uml.Profile;
+import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.uml2.uml.resource.UMLResource;
+
+/**
+ * This class adds the C++ profile as well as the ANSI-C library to your model.
+ *
+ * TODO: currently not used.
+ */
+public class AddProfileAndModelLibsHandler {
+
+ static final String CPP_PROFILE_URI = "pathmap://CPP_PROFILES/C_Cpp.profile.uml"; //$NON-NLS-1$
+
+ static final String ANSIC_LIBRARY_URI = "pathmap://CPP_LIBRARIES/Ansi_C.library.uml"; //$NON-NLS-1$
+
+ /**
+ * Retrieve a model library from the repository
+ *
+ * @param uri
+ * the URI of the repository
+ *
+ * @return
+ */
+ public PackageImport getModelLibraryImportFromURI(URI uri, EditingDomain domain) {
+ // Try to reach model
+ Element root = getContent(uri, domain);
+ if (root instanceof Package) {
+
+ // Import model library
+ Package libToImport = (Package) root;
+ // create import package
+ PackageImport modelLibImport = UMLFactory.eINSTANCE.createPackageImport();
+ modelLibImport.setImportedPackage(libToImport);
+
+ return modelLibImport;
+ }
+ return null;
+ }
+
+ public static Element getContent(URI uri, EditingDomain domain) {
+ // Resource resource = getTransactionalEditingDomain ().getResourceSet().getResource (uri, true);
+ Resource resource = domain.getResourceSet().getResource(uri, true);
+ return getContent(resource);
+ }
+
+ public static Element getContent(Resource resource) {
+ EList<EObject> contentObj = resource.getContents();
+ if ((contentObj.size() > 0) && (contentObj.get(0) instanceof Element)) {
+ return (Element) contentObj.get(0);
+ }
+ return null;
+ }
+
+ /**
+ * Check whether a package import is already done
+ *
+ * @param selectedPkg
+ * @param pi
+ * @return
+ */
+ boolean isAlreadyImported(Package selectedPkg, PackageImport pi) {
+ for (PackageImport existingPI : selectedPkg.getPackageImports()) {
+ if ((existingPI.getImportedPackage() == null) ||
+ (pi.getImportedPackage() == null)) {
+ // import package are null (should not happen?!)
+ continue;
+ }
+ if ((existingPI.getImportedPackage().getName() == null) ||
+ (pi.getImportedPackage().getName() == null)) {
+ // import package name not set (should not happen?!)
+ continue;
+ } else if (existingPI.getImportedPackage().getName().equals(pi.getImportedPackage().getName())) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
+ */
+ /**
+ * {@inheritDoc}
+ */
+ public void addProfileAndImport(final Package selectedPkg) throws ExecutionException {
+
+ final TransactionalEditingDomain domain = TransactionUtil.getEditingDomain(selectedPkg);
+ CommandStack stack = domain.getCommandStack();
+ stack.execute(new RecordingCommand(domain, "Add C++ profile & ANSI-C library") { //$NON-NLS-1$
+ @Override
+ public void doExecute() {
+ // add primitive types
+ // create import package to primitiveType
+ PackageImport pi = getModelLibraryImportFromURI(URI.createURI(UMLResource.UML_PRIMITIVE_TYPES_LIBRARY_URI), domain);
+ selectedPkg.getPackageImports().add(pi);
+ addCppProfile(selectedPkg, domain);
+ };
+ });
+ }
+
+ public static void addCppProfile(Package selectedPkg, TransactionalEditingDomain domain) {
+
+ // Retrieve C++ profile
+ Profile cppProfile =
+ (Profile) getContent(URI.createURI(CPP_PROFILE_URI), domain);
+
+ // Apply C++ profile to model
+ if (cppProfile instanceof Profile) {
+ Profile profile = selectedPkg.getAppliedProfile(cppProfile.getQualifiedName());
+ if ((profile == null) && (!cppProfile.getOwnedStereotypes().isEmpty())) {
+ selectedPkg.applyProfile(cppProfile);
+ }
+ }
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/CommandSupport.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/CommandSupport.java
new file mode 100644
index 00000000000..a3e32434420
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/CommandSupport.java
@@ -0,0 +1,75 @@
+/*******************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - ansgar.radermacher@cea.fr CEA LIST - initial API and implementation
+ *
+ *******************************************************************************/
+
+package org.eclipse.papyrus.texteditor.cdt;
+
+import java.util.Collections;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.operations.IOperationHistory;
+import org.eclipse.core.commands.operations.OperationHistoryFactory;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.core.utils.ServiceUtilsForActionHandlers;
+
+/**
+ * Utility function. Allow execution of commands on a transactional command stack
+ */
+public class CommandSupport {
+
+ /**
+ * Execute the passed Runnable within a command
+ *
+ * @param label
+ * @param command
+ */
+ public static void exec(String label, final Runnable command) {
+ ServiceUtilsForActionHandlers serviceUtils = ServiceUtilsForActionHandlers.getInstance();
+ try {
+ exec(serviceUtils.getTransactionalEditingDomain(), label, command);
+ } catch (ServiceException e) {
+ // Log.log(Log.ERROR_MSG, Log.UTILS, "Can not get editing domain");
+ }
+ }
+
+ /**
+ * Execute the passed Runnable within a command
+ *
+ * @param label
+ * @param command
+ */
+ public static void exec(TransactionalEditingDomain domain, String label, final Runnable command) {
+ if (domain == null) {
+ command.run();
+ }
+ else {
+ IOperationHistory history = OperationHistoryFactory.getOperationHistory();
+ try {
+ history.execute(new AbstractTransactionalCommand(domain, label, Collections.EMPTY_LIST) {
+
+ @Override
+ public CommandResult doExecuteWithResult(IProgressMonitor dummy, IAdaptable info) {
+ command.run();
+ return CommandResult.newOKCommandResult();
+ }
+ }, null, null);
+ } catch (ExecutionException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/TextEditorConstants.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/TextEditorConstants.java
new file mode 100644
index 00000000000..2436b7373b5
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/TextEditorConstants.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - ansgar.radermacher@cea.fr CEA LIST - initial API and implementation
+ *
+ *******************************************************************************/
+
+package org.eclipse.papyrus.texteditor.cdt;
+
+import java.util.regex.Pattern;
+
+public class TextEditorConstants {
+
+ /**
+ * Regular expression for accepted language for compatible CDT code generators
+ */
+ public static final Pattern CPP = Pattern.compile("C\\+\\+|c\\+\\+|CPP|cpp|C|c"); //$NON-NLS-1$
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/Utils.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/Utils.java
new file mode 100644
index 00000000000..2beb89ab936
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/Utils.java
@@ -0,0 +1,187 @@
+/*******************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - ansgar.radermacher@cea.fr CEA LIST - initial API and implementation
+ *
+ *******************************************************************************/
+
+package org.eclipse.papyrus.texteditor.cdt;
+
+import org.eclipse.papyrus.codegen.extensionpoints.GenerationConstants;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Package;
+
+/**
+ * Collection of utility operations that are used by the CDT editor.
+ */
+public class Utils {
+
+ public static final String nsSep = "::"; //$NON-NLS-1$
+
+ /**
+ * Decrease the indentation of a text block. This function is used during synchronization, since
+ * the code within an opaque behavior is not indented, whereas the code of an operation within a
+ * file is indented with a tab.
+ */
+ public static String decreaseIndent(char[] contents, int start, int end) {
+ String newBlock = ""; //$NON-NLS-1$
+ boolean newLine = true;
+ int consume = 0;
+ for (int i = start; i < end; i++) {
+ char c = contents[i];
+
+ // consume either a tab or 4 spaces;
+ if (newLine && (c == '\t')) {
+ consume = 1;
+ }
+ if (newLine && (c == ' ')) {
+ consume = 4;
+ }
+
+ if (consume == 0) {
+ newBlock += c;
+ }
+ else if (c == ' ') {
+ consume--;
+ }
+ else {
+ consume = 0;
+ }
+ if ((c == '\n') || (c == '\r')) {
+ newLine = true;
+ }
+ else {
+ newLine = false;
+ }
+ }
+ return newBlock;
+ }
+
+ /**
+ * Get an element via its qualified name. Will find elements from the root
+ * model and elements in imported models. Also supports target model in
+ * which imports have been copied (while keeping the top-level name)
+ *
+ * @param root
+ * @param qualifiedName
+ * @return
+ */
+ public static NamedElement getQualifiedElement(Package root,
+ String qualifiedName) {
+ NamedElement namedElement = null;
+ int index = qualifiedName.indexOf(nsSep);
+ if (index != -1) {
+ // first try using a path without top element (since
+ // getQualifiedElement is typically used for
+ // imported elements)
+ String remainder = qualifiedName.substring(index + 2);
+ namedElement = getQualifiedElement(root, remainder, qualifiedName);
+ }
+ if (namedElement == null) {
+ // try with complete name as path name, but assume that the element
+ // has been copied into the model,
+ // i.e. qualifiedName is prefixed by model name
+ namedElement = getQualifiedElement(root, qualifiedName,
+ root.getName() + nsSep + qualifiedName);
+ }
+ return namedElement;
+ }
+
+ /**
+ * Retrieve an element via its qualified name within a package The segments
+ * of the package may be non unique due to imports
+ *
+ * @return the found element, if it exists
+ */
+ public static NamedElement getQualifiedElement(Package root,
+ String remainingPath, String qualifiedName) {
+ if (root == null) {
+ return null;
+ }
+ if (!remainingPath.contains(nsSep)) {
+ for (NamedElement candidate : root.getMembers()) {
+ String name = candidate.getName();
+ if ((name != null) && name.equals(remainingPath)) {
+ if (candidate.getQualifiedName().equals(qualifiedName)) {
+ return candidate;
+ }
+ }
+ }
+ } else {
+ String segment = remainingPath.split(nsSep)[0];
+ String remainder = remainingPath.substring(segment.length() + 2);
+ for (Element element : root.getMembers()) {
+ if (element instanceof Package) {
+ if (((NamedElement) element).getName().equals(segment)) {
+ NamedElement foundElement = getQualifiedElement(
+ (Package) element, remainder, qualifiedName);
+ // return, if not found
+ if (foundElement != null) {
+ return foundElement;
+ }
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
+ * return the top-level owner of an element. This function returns the same
+ * value as getModel, if the top-level element is a model. While this is the
+ * case for models, model libraries have a top-level package (not a model).
+ * In this case, getTop returns the top-level package whereas getModel would
+ * return null.
+ *
+ * @param element
+ * @return the top-level owning package
+ */
+ public static Package getTop(Element element) {
+ while (element != null) {
+ Element owner = element.getOwner();
+ if (owner == null) {
+ if (element instanceof Package) {
+ return (Package) element;
+ }
+ }
+ element = owner;
+ }
+ return null;
+ }
+
+ /**
+ * Remove generated code from a body (everything between the GENERATED_START flag
+ *
+ * @param bodyStr
+ * @return
+ */
+ public static String removeGenerated(String bodyStr) {
+ for (;;) {
+ int startPos = bodyStr.indexOf(GenerationConstants.GENERATED_START);
+ if (startPos == -1) {
+ break;
+ }
+ // search line break of previous line (if any)
+ while ((startPos > 0) && bodyStr.charAt(startPos) != '\r' && bodyStr.charAt(startPos) != '\n') {
+ startPos--;
+ }
+ int endPos = bodyStr.indexOf(GenerationConstants.GENERATED_END, startPos);
+ if (endPos == -1) {
+ break;
+ }
+ endPos += GenerationConstants.GENERATED_END.length();
+ // stop at first non white-space character after comment.
+ while ((endPos < bodyStr.length()) && Character.isWhitespace(bodyStr.charAt(endPos))) {
+ endPos++;
+ }
+ bodyStr = bodyStr.substring(0, startPos) + bodyStr.substring(endPos);
+ }
+ return bodyStr;
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/editor/DelegatingSourceViewer.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/editor/DelegatingSourceViewer.java
new file mode 100644
index 00000000000..f5d61481370
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/editor/DelegatingSourceViewer.java
@@ -0,0 +1,400 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) Ansgar.Radermacher@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.texteditor.cdt.editor;
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.jface.text.IAutoIndentStrategy;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.IEventConsumer;
+import org.eclipse.jface.text.IFindReplaceTarget;
+import org.eclipse.jface.text.IRegion;
+import org.eclipse.jface.text.ITextDoubleClickStrategy;
+import org.eclipse.jface.text.ITextHover;
+import org.eclipse.jface.text.ITextInputListener;
+import org.eclipse.jface.text.ITextListener;
+import org.eclipse.jface.text.ITextOperationTarget;
+import org.eclipse.jface.text.IUndoManager;
+import org.eclipse.jface.text.IViewportListener;
+import org.eclipse.jface.text.TextPresentation;
+import org.eclipse.jface.text.source.Annotation;
+import org.eclipse.jface.text.source.IAnnotationHover;
+import org.eclipse.jface.text.source.IAnnotationModel;
+import org.eclipse.jface.text.source.ISourceViewer;
+import org.eclipse.jface.text.source.SourceViewerConfiguration;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.uml2.uml.Classifier;
+
+/**
+ * Unsuccessful attempt to create a delegating source viewer that changes the implementation of
+ * the operation getSelectionProvider of a source viewer. This does not work in case of CDT since the
+ * source viewer is cast to CSourceViewer later.
+ *
+ * CURRENTLY NOT USED
+ */
+@Deprecated
+public class DelegatingSourceViewer implements ISourceViewer {
+
+ public DelegatingSourceViewer(ISourceViewer delegationTarget, Classifier classifier) {
+ // super(null, null, null, false, 0, null);
+ this.dt = delegationTarget;
+ this.cl = classifier;
+
+ sp = new ISelectionProvider() {
+
+ @Override
+ public void setSelection(ISelection selection) {
+ }
+
+ @Override
+ public void removeSelectionChangedListener(
+ ISelectionChangedListener listener) {
+ System.err.println("removeSelectionChangedListener");
+ }
+
+ @Override
+ public ISelection getSelection() {
+ return new IStructuredSelection() {
+
+ @Override
+ public boolean isEmpty() {
+ return false;
+ }
+
+ @Override
+ public List toList() {
+ List l = new BasicEList<Object>();
+ l.add(cl);
+ return l;
+ }
+
+ @Override
+ public Object[] toArray() {
+ return new Object[] { cl };
+ }
+
+ @Override
+ public int size() {
+ // TODO Auto-generated method stub
+ return 1;
+ }
+
+ @Override
+ public Iterator iterator() {
+ return null;
+ }
+
+ @Override
+ public Object getFirstElement() {
+ return cl;
+ }
+ };
+ }
+
+ @Override
+ public void addSelectionChangedListener(ISelectionChangedListener listener) {
+ // TODO Auto-generated method stub
+ System.err.println("add SelectionChangedListener");
+
+ }
+ };
+ }
+
+ ISourceViewer dt;
+
+ Classifier cl;
+
+ ISelectionProvider sp;
+
+ @Override
+ public StyledText getTextWidget() {
+ return dt.getTextWidget();
+ }
+
+ @Override
+ public void setUndoManager(IUndoManager undoManager) {
+ dt.setUndoManager(undoManager);
+ }
+
+ @Override
+ public void setTextDoubleClickStrategy(
+ ITextDoubleClickStrategy strategy, String contentType) {
+ dt.setTextDoubleClickStrategy(strategy, contentType);
+ }
+
+ @Override
+ public void setAutoIndentStrategy(IAutoIndentStrategy strategy,
+ String contentType) {
+ dt.setAutoIndentStrategy(strategy, contentType);
+ }
+
+ @Override
+ public void setTextHover(ITextHover textViewerHover,
+ String contentType) {
+ dt.setTextHover(textViewerHover, contentType);
+ }
+
+ @Override
+ public void activatePlugins() {
+ dt.activatePlugins();
+ }
+
+ @Override
+ public void resetPlugins() {
+ dt.resetPlugins();
+ }
+
+ @Override
+ public void addViewportListener(IViewportListener listener) {
+ dt.addViewportListener(listener);
+ }
+
+ @Override
+ public void removeViewportListener(IViewportListener listener) {
+ dt.removeViewportListener(listener);
+ }
+
+ @Override
+ public void addTextListener(ITextListener listener) {
+ dt.addTextListener(listener);
+ }
+
+ @Override
+ public void removeTextListener(ITextListener listener) {
+ dt.removeTextListener(listener);
+ }
+
+ @Override
+ public void addTextInputListener(ITextInputListener listener) {
+ dt.addTextInputListener(listener);
+ }
+
+ @Override
+ public void removeTextInputListener(ITextInputListener listener) {
+ dt.removeTextInputListener(listener);
+ }
+
+ @Override
+ public void setDocument(IDocument document) {
+ dt.setDocument(document);
+ }
+
+ @Override
+ public IDocument getDocument() {
+ return dt.getDocument();
+ }
+
+ @Override
+ public void setEventConsumer(IEventConsumer consumer) {
+ dt.setEventConsumer(consumer);
+
+ }
+
+ @Override
+ public void setEditable(boolean editable) {
+ dt.setEditable(editable);
+ }
+
+ @Override
+ public boolean isEditable() {
+ return dt.isEditable();
+ }
+
+ @Override
+ public void setDocument(IDocument document, int modelRangeOffset,
+ int modelRangeLength) {
+ dt.setDocument(document, modelRangeOffset, modelRangeLength);
+ }
+
+ @Override
+ public void setVisibleRegion(int offset, int length) {
+ dt.setVisibleRegion(offset, length);
+ }
+
+ @Override
+ public void resetVisibleRegion() {
+ dt.resetVisibleRegion();
+ }
+
+ @Override
+ public IRegion getVisibleRegion() {
+ return dt.getVisibleRegion();
+ }
+
+ @Override
+ public boolean overlapsWithVisibleRegion(int offset, int length) {
+ return dt.overlapsWithVisibleRegion(offset, length);
+ }
+
+ @Override
+ public void changeTextPresentation(TextPresentation presentation,
+ boolean controlRedraw) {
+ dt.changeTextPresentation(presentation, controlRedraw);
+ }
+
+ @Override
+ public void invalidateTextPresentation() {
+ dt.invalidateTextPresentation();
+
+ }
+
+ @Override
+ public void setTextColor(Color color) {
+ dt.setTextColor(color);
+ }
+
+ @Override
+ public void setTextColor(Color color, int offset, int length,
+ boolean controlRedraw) {
+ dt.setTextColor(color, offset, length, controlRedraw);
+ }
+
+ @Override
+ public ITextOperationTarget getTextOperationTarget() {
+ return dt.getTextOperationTarget();
+ }
+
+ @Override
+ public IFindReplaceTarget getFindReplaceTarget() {
+ return dt.getFindReplaceTarget();
+ }
+
+ @Override
+ public void setDefaultPrefixes(String[] defaultPrefixes,
+ String contentType) {
+ dt.setDefaultPrefixes(defaultPrefixes, contentType);
+
+ }
+
+ @Override
+ public void setIndentPrefixes(String[] indentPrefixes,
+ String contentType) {
+ dt.setIndentPrefixes(indentPrefixes, contentType);
+ }
+
+ @Override
+ public void setSelectedRange(int offset, int length) {
+ dt.setSelectedRange(offset, length);
+ }
+
+ @Override
+ public Point getSelectedRange() {
+ return dt.getSelectedRange();
+ }
+
+ @Override
+ public ISelectionProvider getSelectionProvider() {
+ return dt.getSelectionProvider();
+ }
+
+ @Override
+ public void revealRange(int offset, int length) {
+ dt.revealRange(offset, length);
+ }
+
+ @Override
+ public void setTopIndex(int index) {
+ dt.setTopIndex(index);
+ }
+
+ @Override
+ public int getTopIndex() {
+ return dt.getTopIndex();
+ }
+
+ @Override
+ public int getTopIndexStartOffset() {
+ return dt.getTopIndexStartOffset();
+ }
+
+ @Override
+ public int getBottomIndex() {
+ return dt.getBottomIndex();
+ }
+
+ @Override
+ public int getBottomIndexEndOffset() {
+ return dt.getBottomIndexEndOffset();
+ }
+
+ @Override
+ public int getTopInset() {
+ return dt.getTopInset();
+ }
+
+ @Override
+ public void configure(SourceViewerConfiguration configuration) {
+ dt.configure(configuration);
+ }
+
+ @Override
+ public void setAnnotationHover(IAnnotationHover annotationHover) {
+ dt.setAnnotationHover(annotationHover);
+ }
+
+ @Override
+ public void setDocument(IDocument document,
+ IAnnotationModel annotationModel) {
+ dt.setDocument(document, annotationModel);
+ }
+
+ @Override
+ public void setDocument(IDocument document,
+ IAnnotationModel annotationModel, int modelRangeOffset,
+ int modelRangeLength) {
+ dt.setDocument(document, annotationModel, modelRangeOffset, modelRangeLength);
+
+ }
+
+ @Override
+ public IAnnotationModel getAnnotationModel() {
+ return dt.getAnnotationModel();
+ }
+
+ @Override
+ public void setRangeIndicator(Annotation rangeIndicator) {
+ dt.setRangeIndicator(rangeIndicator);
+
+ }
+
+ @Override
+ public void setRangeIndication(int offset, int length,
+ boolean moveCursor) {
+ dt.setRangeIndication(offset, length, moveCursor);
+ }
+
+ @Override
+ public IRegion getRangeIndication() {
+ return dt.getRangeIndication();
+ }
+
+ @Override
+ public void removeRangeIndication() {
+ dt.removeRangeIndication();
+ }
+
+ @Override
+ public void showAnnotations(boolean show) {
+ dt.showAnnotations(show);
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/editor/PapyrusCDTEditor.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/editor/PapyrusCDTEditor.java
new file mode 100644
index 00000000000..4ae37530cac
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/editor/PapyrusCDTEditor.java
@@ -0,0 +1,395 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) Ansgar.Radermacher@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.texteditor.cdt.editor;
+
+import org.eclipse.cdt.codan.internal.ui.cxx.CodanCReconciler;
+import org.eclipse.cdt.core.model.ICElement;
+import org.eclipse.cdt.core.model.ISourceRange;
+import org.eclipse.cdt.core.model.ISourceReference;
+import org.eclipse.cdt.core.model.ITranslationUnit;
+import org.eclipse.cdt.internal.ui.editor.CEditor;
+import org.eclipse.cdt.ui.CDTUITools;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EValidator;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.text.ITextSelection;
+import org.eclipse.jface.text.source.ISourceViewer;
+import org.eclipse.jface.text.source.IVerticalRuler;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.papyrus.infra.core.lifecycleevents.DoSaveEvent;
+import org.eclipse.papyrus.infra.core.lifecycleevents.ILifeCycleEventsProvider;
+import org.eclipse.papyrus.infra.core.lifecycleevents.ISaveAndDirtyService;
+import org.eclipse.papyrus.infra.core.lifecycleevents.ISaveEventListener;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.core.services.ServicesRegistry;
+import org.eclipse.papyrus.texteditor.cdt.Activator;
+import org.eclipse.papyrus.texteditor.cdt.sync.ObtainICElement;
+import org.eclipse.papyrus.texteditor.cdt.sync.RevealCurrentOperation;
+import org.eclipse.papyrus.texteditor.cdt.sync.SyncCDTtoModel;
+import org.eclipse.papyrus.texteditor.cdt.sync.SyncModelToCDT;
+import org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.events.FocusEvent;
+import org.eclipse.swt.events.FocusListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.ide.IGotoMarker;
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.texteditor.ITextEditorActionConstants;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.NamedElement;
+
+/**
+ * A specialization of the CDT editor made for integration into Papyrus
+ *
+ */
+public class PapyrusCDTEditor extends CEditor {
+
+ /** the service registry */
+ protected final ServicesRegistry registry;
+
+ /** the papyrus text instance */
+ protected final TextEditorModel papyrusTextInstance;
+
+ /** the text listener */
+ protected FocusListener focusListener;
+
+ public static final String EDITOR_DEFAULT_NAME = "CDT Editor";
+
+ public static final String EDITOR_TYPE = "CDTEditorInPapyrus"; //$NON-NLS-1$
+
+ protected SyncCDTtoModel syncCpp;
+
+ protected RevealCurrentOperation reveal;
+
+ protected Adapter gotoListener;
+
+ /**
+ *
+ * Constructor.
+ *
+ * @param registry
+ * @param papyrusTextInstance
+ */
+ public PapyrusCDTEditor(final ServicesRegistry registry, final TextEditorModel papyrusTextInstance) {
+ super();
+ gotoListener = null;
+ this.registry = registry;
+ this.papyrusTextInstance = papyrusTextInstance;
+ try {
+ saveAndDirtyService = registry.getService(ISaveAndDirtyService.class);
+ saveAndDirtyService.registerIsaveablePart(this);
+ ILifeCycleEventsProvider lifeCycleEvents = registry.getService(ILifeCycleEventsProvider.class);
+ ISaveEventListener preSaveEvent = new ISaveEventListener() {
+
+ @Override
+ public void doSaveAs(DoSaveEvent event) {
+ // TODO Auto-generated method stub
+ }
+
+ @Override
+ public void doSave(DoSaveEvent event) {
+ syncCpp.syncCDTtoModel();
+ }
+ };
+ lifeCycleEvents.addAboutToDoSaveListener(preSaveEvent);
+ } catch (ServiceException e) {
+ Activator.log.error(e);
+ }
+ }
+
+ /**
+ * override method in order to save & restore action bars entries
+ */
+ @Override
+ public void createPartControl(Composite parent) {
+ // save Papyrus (GMF) handlers
+ IActionBars actionBars = getEditorSite().getActionBars();
+ if ((actionBars != null) && (gmfUndo == null)) {
+ gmfUndo = actionBars.getGlobalActionHandler(ITextEditorActionConstants.UNDO);
+ gmfRedo = actionBars.getGlobalActionHandler(ITextEditorActionConstants.REDO);
+ }
+
+ super.createPartControl(parent);
+
+ if (actionBars != null) {
+ // save CDT (textEditor) handlers
+ textUndo = actionBars.getGlobalActionHandler(ITextEditorActionConstants.UNDO);
+ textRedo = actionBars.getGlobalActionHandler(ITextEditorActionConstants.REDO);
+ // & restore Papyrus bar
+ actionBars.setGlobalActionHandler(ITextEditorActionConstants.UNDO, gmfUndo);
+ actionBars.setGlobalActionHandler(ITextEditorActionConstants.REDO, gmfRedo);
+ actionBars.updateActionBars();
+ }
+
+ gotoListener = new Adapter() {
+
+ // assure that gotoElement is called, if the element in the model gets updated
+ @Override
+ public void notifyChanged(Notification notification) {
+ if (notification.getEventType() == Notification.SET) {
+ Object newValue = notification.getNewValue();
+ if (newValue instanceof NamedElement) {
+ gotoElement((NamedElement) newValue);
+ }
+
+ }
+ }
+
+ @Override
+ public Notifier getTarget() {
+ return null;
+ }
+
+ @Override
+ public void setTarget(Notifier newTarget) {
+ }
+
+ @Override
+ public boolean isAdapterForType(Object type) {
+ return false;
+ }
+ };
+ papyrusTextInstance.eAdapters().add(gotoListener);
+
+ if (papyrusTextInstance.getSelectedObject() instanceof NamedElement) {
+ gotoElement((NamedElement) papyrusTextInstance.getSelectedObject());
+ }
+ }
+
+ /**
+ *
+ * @see org.eclipse.ui.texteditor.AbstractDecoratedTextEditor#createSourceViewer(org.eclipse.swt.widgets.Composite, org.eclipse.jface.text.source.IVerticalRuler, int)
+ *
+ * @param parent
+ * @param ruler
+ * @param styles
+ * @return
+ */
+ @Override
+ public ISourceViewer createSourceViewer(Composite parent, IVerticalRuler ruler, int styles) {
+
+ final ISourceViewer viewer = super.createSourceViewer(parent, ruler, styles);
+ // ISourceViewer viewer = new DelegatingSourceViewer(origViewer, (Classifier)papyrusTextInstance.getEditedObject());
+ focusListener = new FocusListener() {
+
+ @Override
+ public void focusLost(FocusEvent e) {
+ // potential problem for undo/redo!!
+ if (isDirty()) {
+ doSave(new NullProgressMonitor());
+ syncCpp.syncCDTtoModel();
+ Classifier classifier = (Classifier) papyrusTextInstance.getEditedObject();
+ // regenerate code. TODO: raises update dialog
+ // SyncModelToCDT.syncModelToCDT(classifier);
+ }
+ // restore handlers
+ IActionBars actionBars = getEditorSite().getActionBars();
+ if (actionBars != null) {
+ if ((gmfUndo != null) && (gmfRedo != null)) {
+ actionBars.setGlobalActionHandler(ITextEditorActionConstants.UNDO, gmfUndo);
+ actionBars.setGlobalActionHandler(ITextEditorActionConstants.REDO, gmfRedo);
+ actionBars.updateActionBars();
+ }
+ }
+ }
+
+ @Override
+ public void focusGained(FocusEvent e) {
+ // restore handlers
+ IActionBars actionBars = getEditorSite().getActionBars();
+ if (actionBars != null) {
+ if ((textUndo != null) && (textRedo != null)) {
+ actionBars.setGlobalActionHandler(ITextEditorActionConstants.UNDO, textUndo);
+ actionBars.setGlobalActionHandler(ITextEditorActionConstants.REDO, textRedo);
+ actionBars.updateActionBars();
+ }
+ }
+ }
+ };
+ // register focus listener
+ viewer.getTextWidget().addFocusListener(focusListener);
+ SelectionListener selectionListener = new SelectionListener() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ IEditorPart ep = getEditorSite().getPage().getActiveEditor();
+ ISelection selection = getSelectionProvider().getSelection();
+ if ((ep instanceof IGotoMarker) && (selection instanceof ITextSelection)) {
+ if (((ITextSelection) selection).getLength() > 0) {
+ // don't try to navigate during selection of a chunk of text.
+ return;
+ }
+ IMarker marker;
+ /*
+ * create a temporary validation marker on the
+ * srcFile file, call the gotoMarker operation of the editor
+ * and remove the marker afterwards.
+ * TODO: operation activates the model-explorer
+ */
+ try {
+ Element element = reveal.obtainSelectedElement((ITextSelection) selection);
+ String modelURI = EcoreUtil.getURI(element).toString();
+ marker = srcFile.createMarker(EValidator.MARKER);
+ marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_INFO); // set severity before URI to avoid marker update without associated icon
+ marker.setAttribute(EValidator.URI_ATTRIBUTE, modelURI);
+ IWorkbenchPage wbpage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+ IWorkbenchPart activePart = wbpage.getActivePart();
+ ((IGotoMarker) ep).gotoMarker(marker);
+ // reactivate this editor
+ wbpage.activate(activePart);
+ marker.delete();
+ } catch (CoreException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ }
+ }
+
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+ };
+
+ // TODO: don't add selection listener for the moment. It can cause deadlocks (setting a marker attribute while file is locked, reproducible with cut (^X) on selection)
+ // viewer.getTextWidget().addSelectionListener(selectionListener);
+
+ return viewer;
+ }
+
+ /**
+ * Goto a specific element within the text editor. Currently, only methods are supported.
+ *
+ * @param element
+ * @throws CoreException
+ */
+ public void gotoElement(NamedElement element) {
+ ICElement ice = CDTUITools.getEditorInputCElement(m_input);
+
+ if (ice instanceof ITranslationUnit) {
+ ITranslationUnit itu = (ITranslationUnit) ice;
+ ICElement icElement = ObtainICElement.getICElement(syncCpp.getCodeGen(), itu, element);
+ if (icElement instanceof ISourceReference) {
+ try {
+ ISourceRange range = ((ISourceReference) icElement).getSourceRange();
+
+ ISourceViewer viewer = getSourceViewer();
+ viewer.revealRange(range.getStartPos(), 1);
+ viewer.setSelectedRange(range.getStartPos(), range.getLength());
+ return;
+ } catch (CoreException e) {
+ Activator.log.error(e);
+ }
+ }
+ }
+ }
+
+ @Override
+ public boolean isDirty() {
+ boolean isDirty = super.isDirty();
+ if (isDirty != oldDirty) {
+ oldDirty = isDirty;
+ // hack. Normally, the saveAndDirtyService detects this itself (should find a solution how it can do that)
+ // ((SaveAndDirtyService) saveAndDirtyService).fireIsDirtyChanged();
+ }
+ return isDirty;
+ }
+
+ /**
+ * We override this method because setInput can't be overriden for TextEditor.
+ * We replace the default Papyrus input with the CPP file
+ *
+ * @see org.eclipse.ui.editors.text.TextEditor#doSetInput(org.eclipse.ui.IEditorInput)
+ *
+ * @param input
+ * @throws CoreException
+ */
+ @Override
+ protected void doSetInput(IEditorInput input) throws CoreException {
+
+ URI uri = papyrusTextInstance.eResource().getURI();
+ Classifier classifier = (Classifier) papyrusTextInstance.getEditedObject();
+ String generatorID = papyrusTextInstance.getGeneratorID();
+ srcFile = SyncModelToCDT.syncModelToCDT(classifier, generatorID);
+ if (srcFile == null || !srcFile.exists()) {
+ throw new PartInitException("Code generation before editing failed. Please check error log");
+ }
+ IEditorInput newInput = new FileEditorInput(srcFile);
+
+ // IStorage storage = new TextStorage(string);
+ super.doSetInput(newInput);
+
+ syncCpp = new SyncCDTtoModel(newInput, classifier, uri.segment(1), generatorID);
+ m_input = newInput;
+ reveal = new RevealCurrentOperation(newInput, classifier, uri.segment(1));
+
+ // add the reconciler to get syntax check and completion. (still no full checks)
+ addReconcileListener(new CodanCReconciler());
+ }
+
+ /**
+ *
+ * @see org.eclipse.ui.editors.text.TextEditor#dispose()
+ *
+ */
+ @Override
+ public void dispose() {
+
+ saveAndDirtyService.removeIsaveablePart(this);
+ if (gotoListener != null) {
+ papyrusTextInstance.eAdapters().remove(gotoListener);
+ }
+
+ // we remove the listener
+ StyledText st = getSourceViewer().getTextWidget();
+ st.removeFocusListener(focusListener);
+ super.dispose();
+ // assure that embedded text widget is disposed now. Otherwise, it will be closed
+ // later, when the editorSite is already set to null by Papyrus (mainEditorSite attribute in MultiPageEditorSite4x)
+ // resulting in a null pointer exception and resulting inconsistencies in the Papyrus editor.
+ st.dispose();
+ }
+
+ protected IAction gmfUndo, gmfRedo;
+
+ protected IAction textUndo, textRedo;
+
+ protected boolean oldDirty;
+
+ protected ISaveAndDirtyService saveAndDirtyService;
+
+ protected IFile srcFile;
+
+ protected ISelectionProvider sp;
+
+ protected IEditorInput m_input;
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/factory/PapyrusCDTEditorFactory.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/factory/PapyrusCDTEditorFactory.java
new file mode 100644
index 00000000000..f4f552858e7
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/factory/PapyrusCDTEditorFactory.java
@@ -0,0 +1,210 @@
+/*****************************************************************************
+ * Copyright (c) 2013, 2014 CEA LIST and others.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) Vincent.Lorenzo@cea.fr - Initial API and implementation
+ * Ansgar Radermacher (CEA LIST) - Minor adaptations
+ * Christian W. Damus (CEA) - bug 392301
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.texteditor.cdt.factory;
+
+import org.eclipse.papyrus.infra.core.editor.BackboneException;
+import org.eclipse.papyrus.infra.core.extension.diagrameditor.AbstractEditorFactory;
+import org.eclipse.papyrus.infra.core.multidiagram.actionbarcontributor.ActionBarContributorRegistry;
+import org.eclipse.papyrus.infra.core.sasheditor.contentprovider.IEditorModel;
+import org.eclipse.papyrus.infra.core.sasheditor.contentprovider.IPageModel;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.texteditor.cdt.Activator;
+import org.eclipse.papyrus.texteditor.cdt.editor.PapyrusCDTEditor;
+import org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.part.EditorActionBarContributor;
+
+
+public class PapyrusCDTEditorFactory extends AbstractEditorFactory {
+
+ /**
+ * Constructor.
+ */
+ public PapyrusCDTEditorFactory() {
+ super(PapyrusCDTEditor.class, PapyrusCDTEditor.EDITOR_TYPE);
+ }
+
+ /**
+ * Create the IPageModel that is used by the SashWindows to manage the editor.
+ *
+ * @see org.eclipse.papyrus.infra.core.editorsfactory.IEditorFactory#createIPageModel(java.lang.Object)
+ *
+ * @param pageIdentifier
+ * The model pushed in the sashmodel by the creation command
+ * @return A model implementing the IPageModel
+ */
+ @Override
+ public IPageModel createIPageModel(Object pageIdentifier) {
+ return new TextEditorModelDelegate(pageIdentifier);
+ }
+
+ /**
+ * @see org.eclipse.papyrus.infra.core.editorsfactory.IEditorFactory#isPageModelFactoryFor(java.lang.Object)
+ *
+ * @param pageIdentifier
+ * @return
+ */
+ @Override
+ public boolean isPageModelFactoryFor(Object pageIdentifier) {
+ if (pageIdentifier instanceof TextEditorModel) {
+ return ((TextEditorModel) pageIdentifier).getType().equals(this.getExpectedType());
+ }
+ return false;
+ }
+
+ /**
+ * IEditorModel used internally by the SashContainer. This model know how to handle IEditor creation.
+ *
+ */
+ class TextEditorModelDelegate implements IEditorModel {
+
+ /**
+ * The created editor.
+ */
+ private IEditorPart editor;
+
+ /**
+ * The raw model stored in the SashProvider.
+ */
+ private TextEditorModel rawEditorModel;
+
+ /**
+ *
+ * Constructor.
+ */
+ public TextEditorModelDelegate(Object pageIdentifier) {
+ rawEditorModel = (TextEditorModel) pageIdentifier;
+ }
+
+ /**
+ * Create the IEditor for the diagram.
+ *
+ * @see org.eclipse.papyrus.infra.core.sasheditor.contentprovider.IEditorModel#createIEditorPart()
+ * @return
+ * @throws PartInitException
+ *
+ */
+ @Override
+ public IEditorPart createIEditorPart() throws PartInitException {
+ try {
+ // we use this way when there is one factory for several editor types
+ // Constructor<?> c = getDiagramClass().getConstructor(ServicesRegistry.class, TextEditorModel.class);
+ // editor = (IEditorPart)c.newInstance(servicesRegistry, rawModel);
+
+ // we use this way when there is only one editor type
+ editor = new PapyrusCDTEditor(getServiceRegistry(), rawEditorModel);
+ return editor;
+
+ } catch (Exception e) {
+ // Lets propagate. This is an implementation problem that should be solved by
+ // programmer.
+ throw new PartInitException("Can't create TextEditor", e);
+ }
+
+ }
+
+ /**
+ * Get the action bar requested by the Editor.
+ *
+ * @see org.eclipse.papyrus.infra.core.sasheditor.contentprovider.IEditorModel#getActionBarContributor()
+ * @return
+ *
+ */
+ @Override
+ public EditorActionBarContributor getActionBarContributor() {
+
+ String actionBarId = editorDescriptor.getActionBarContributorId();
+
+ // Do nothing if no EditorActionBarContributor is specify.
+ if (actionBarId == null || actionBarId.length() == 0) {
+ return null;
+ }
+
+ // Try to get it.
+
+ // Get ServiceRegistry
+ // ServicesRegistry serviceRegistry = getServicesRegistry();
+ ActionBarContributorRegistry registry;
+ try {
+ registry = getServiceRegistry().getService(ActionBarContributorRegistry.class);
+ } catch (ServiceException e) {
+ // Service not found
+ Activator.log.error(e);
+ return null;
+ }
+
+ try {
+ return registry.getActionBarContributor(actionBarId);
+ } catch (BackboneException e) {
+ Activator.log.error(e);
+ return null;
+ }
+ }
+
+ /**
+ * Get the underlying RawModel. Return the TextEditor (normally returns a diagram)
+ *
+ * @see org.eclipse.papyrus.infra.core.sasheditor.contentprovider.IPageModel#getRawModel()
+ * @return
+ *
+ */
+ @Override
+ public Object getRawModel() {
+ return rawEditorModel;
+ }
+
+ /**
+ * Get the icon to be shown by Tabs
+ *
+ * @see org.eclipse.papyrus.infra.core.sasheditor.contentprovider.IPageModel#getTabIcon()
+ * @return
+ *
+ */
+ @Override
+ public Image getTabIcon() {
+ org.eclipse.papyrus.infra.widgets.Activator widgetsActivator =
+ org.eclipse.papyrus.infra.widgets.Activator.getDefault();
+ if (widgetsActivator == null) {
+ return null;
+ }
+ String path = getEditorDescriptor().getIconURL();
+ if (path.startsWith(Activator.PLUGIN_ID)) {
+ // remove PLUGIN-ID prefix from the path (since the image will be searched relative to plugin)
+ path = path.substring(Activator.PLUGIN_ID.length());
+ }
+ return widgetsActivator.getImage(Activator.PLUGIN_ID, path);
+ }
+
+ /**
+ * Get the title of the Diagram.
+ *
+ * @see org.eclipse.papyrus.infra.core.sasheditor.contentprovider.IPageModel#getTabTitle()
+ * @return
+ *
+ */
+ @Override
+ public String getTabTitle() {
+ return rawEditorModel.getName();
+ }
+
+ @Override
+ public void dispose() {
+ // Pass. The tab icon is a plugin-shared image
+ }
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/handler/PapyrusCDTEditorHandler.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/handler/PapyrusCDTEditorHandler.java
new file mode 100644
index 00000000000..7d6df1edfc4
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/handler/PapyrusCDTEditorHandler.java
@@ -0,0 +1,308 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) Vincent.Lorenzo@cea.fr - Initial API and implementation
+ * Ansgar Radermacher (CEA LIST) ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.texteditor.cdt.handler;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.emf.workspace.AbstractEMFOperation;
+import org.eclipse.papyrus.codegen.extensionpoints.ILangCodegen;
+import org.eclipse.papyrus.codegen.extensionpoints.LanguageCodegen;
+import org.eclipse.papyrus.commands.CheckedOperationHistory;
+import org.eclipse.papyrus.infra.core.resource.NotFoundException;
+import org.eclipse.papyrus.infra.core.sasheditor.contentprovider.IPageManager;
+import org.eclipse.papyrus.infra.core.sasheditor.contentprovider.ISashWindowsContentProvider;
+import org.eclipse.papyrus.infra.core.sasheditor.di.contentprovider.DiSashModelManager;
+import org.eclipse.papyrus.infra.core.sasheditor.editor.ISashWindowsContainer;
+import org.eclipse.papyrus.infra.core.sashwindows.di.PageRef;
+import org.eclipse.papyrus.infra.core.sashwindows.di.SashPanel;
+import org.eclipse.papyrus.infra.core.sashwindows.di.TabFolder;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.core.services.ServicesRegistry;
+import org.eclipse.papyrus.infra.core.utils.ServiceUtils;
+import org.eclipse.papyrus.infra.emf.utils.ServiceUtilsForHandlers;
+import org.eclipse.papyrus.texteditor.cdt.Activator;
+import org.eclipse.papyrus.texteditor.cdt.TextEditorConstants;
+import org.eclipse.papyrus.texteditor.cdt.editor.PapyrusCDTEditor;
+import org.eclipse.papyrus.texteditor.cdt.modelresource.TextEditorModelSharedResource;
+import org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel;
+import org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModelFactory;
+import org.eclipse.papyrus.uml.diagram.common.handlers.CmdHandler;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.uml2.uml.Behavior;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Transition;
+import org.eclipse.uml2.uml.UMLPackage;
+
+
+/**
+ * The handler creates a new CDT editor
+ */
+public class PapyrusCDTEditorHandler extends CmdHandler {
+
+
+ public PapyrusCDTEditorHandler() {
+ }
+
+ /**
+ *
+ * @see org.eclipse.infra.core.commands.AbstractHandler#isEnabled()
+ *
+ * @return
+ */
+ @Override
+ public boolean isEnabled() {
+ updateSelectedEObject();
+ // Filter Classes (including Behaviors, since Behavior inherits from Class), Operation and Transition
+ if (selectedEObject instanceof Class ||
+ selectedEObject instanceof Operation ||
+ selectedEObject instanceof Transition)
+ {
+ URI uri = selectedEObject.eResource().getURI();
+
+ // URIConverter uriConverter = resource.getResourceSet().getURIConverter();
+ IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+ if (uri.segmentCount() < 2) {
+ return false;
+ }
+ IProject modelProject = root.getProject(uri.segment(1));
+ return modelProject.exists();
+ }
+ return false;
+ }
+
+ /**
+ * @see org.eclipse.infra.core.commands.IHandler#execute(org.eclipse.infra.core.commands.ExecutionEvent)
+ *
+ * @param event
+ * @return
+ * @throws ExecutionException
+ */
+ @Override
+ public Object execute(final ExecutionEvent event) throws ExecutionException {
+ try {
+ final ServicesRegistry serviceRegistry = ServiceUtilsForHandlers.getInstance().getServiceRegistry(event);
+ TransactionalEditingDomain domain = ServiceUtils.getInstance().getTransactionalEditingDomain(serviceRegistry);
+
+ // Create the transactional command
+ AbstractEMFOperation command = new AbstractEMFOperation(domain, "Create CDT editor") {
+
+ @Override
+ protected IStatus doExecute(final IProgressMonitor monitor, final IAdaptable info) throws ExecutionException {
+ try {
+ PapyrusCDTEditorHandler.this.doExecute(serviceRegistry);
+ } catch (ServiceException e) {
+ Activator.log.error(e);
+ return Status.CANCEL_STATUS;
+ } catch (NotFoundException e) {
+ Activator.log.error(e);
+ return Status.CANCEL_STATUS;
+ }
+ return Status.OK_STATUS;
+ }
+ };
+
+ // Execute the command
+ CheckedOperationHistory.getInstance().execute(command, new NullProgressMonitor(), null);
+ } catch (ExecutionException e) {
+ Activator.log.error("Can't create a CDT editor", e);
+ } catch (ServiceException e) {
+ Activator.log.error("Service exception during creation of CDT editor", e);
+ }
+ return null;
+ }
+
+
+ /**
+ * Do the execution of the command.
+ *
+ * @param serviceRegistry
+ * @throws ServiceException
+ * @throws NotFoundException
+ */
+ public void doExecute(final ServicesRegistry serviceRegistry) throws ServiceException, NotFoundException {
+ // Get the page manager allowing to add/open an editor.
+ final IPageManager pageMngr = ServiceUtils.getInstance().getIPageManager(serviceRegistry);
+
+ Classifier classifierToEdit = getClassifierToEdit();
+ TextEditorModel editorModel = getEditorModel(serviceRegistry, classifierToEdit);
+ if (editorModel == null) {
+ // no editor exist for the given file => create
+ editorModel = createEditorModel(serviceRegistry, classifierToEdit);
+ if (editorModel == null) {
+ return;
+ }
+ }
+ ILangCodegen codegen = LanguageCodegen.getGenerator(TextEditorConstants.CPP, editorModel.getGeneratorID());
+
+ if (codegen.getTargetProject(classifierToEdit, true) == null) {
+ return;
+ }
+
+ if (selectedEObject instanceof Transition) {
+ Transition transition = (Transition) selectedEObject;
+ if (transition.getEffect() == null) {
+ Behavior effect = transition.createEffect("effectOf" + transition.getName(), UMLPackage.eINSTANCE.getOpaqueBehavior()); //$NON-NLS-1$
+ }
+ }
+ // add the new editor model to the sash.
+ editorModel.setSelectedObject(selectedEObject);
+
+ final TextEditorModel editorModelFinal = editorModel;
+ // open asynchronously to prevent handler cycles, see bug 434484
+ Display.getDefault().asyncExec(new Runnable() {
+
+ @Override
+ public void run() {
+ if (pageMngr.isOpen(editorModelFinal)) {
+ // select existing editor
+ pageMngr.selectPage(editorModelFinal);
+ }
+ else {
+ pageMngr.openPage(editorModelFinal);
+ }
+ try {
+ // move page to the RIGHT
+ DiSashModelManager modelMngr = ServiceUtils.getInstance().getService(DiSashModelManager.class, serviceRegistry);
+ ISashWindowsContentProvider sashContentProvider = modelMngr.getISashWindowsContentProvider();
+ Object rootModel = sashContentProvider.getRootModel();
+
+ if (rootModel instanceof TabFolder) {
+ // root = tabFolder, i.e. there is a single folder
+ ISashWindowsContainer sashContainer = ServiceUtils.getInstance().getISashWindowsContainer(serviceRegistry);
+ int index = lookupIndex((TabFolder) rootModel, editorModelFinal);
+ if (index != -1) {
+ sashContentProvider.createFolder(sashContainer.getSelectedTabFolderModel(), index, sashContainer.getSelectedTabFolderModel(), SWT.RIGHT);
+ }
+ }
+ else if (rootModel instanceof SashPanel) {
+ // multiple tab-folders exist. Find existing one and move editorModel to other
+ // TODO
+ // ISashWindowsContainer sashContainer = ServiceUtils.getInstance().getISashWindowsContainer(serviceRegistry);
+ // sashContentProvider.movePage(sashContainer.getSelectedTabFolderModel(), lookupIndex(sourceTab, editorModel), targetTabModel, -1);
+ }
+ } catch (ServiceException e) {
+
+ }
+ }
+
+ });
+
+ }
+
+ /**
+ * Create a model identifying the editor. This model will be saved with the sash
+ *
+ * @return
+ * @throws ServiceException
+ * @throws NotFoundException
+ * The model where to save the TableInstance is not found.
+ */
+ protected TextEditorModel createEditorModel(final ServicesRegistry serviceRegistry, Classifier classifierToEdit) throws ServiceException, NotFoundException {
+ TextEditorModel editorModel = TextEditorModelFactory.eINSTANCE.createTextEditorModel();
+
+ editorModel.setEditedObject(classifierToEdit);
+ editorModel.setType(PapyrusCDTEditor.EDITOR_TYPE);
+ editorModel.setName("CDT " + classifierToEdit.getName()); //$NON-NLS-1$
+ ILangCodegen codegen = LanguageCodegen.chooseGenerator(TextEditorConstants.CPP, classifierToEdit);
+ if (codegen == null) {
+ return null;
+ }
+ editorModel.setGeneratorID(LanguageCodegen.getID(codegen));
+ TextEditorModelSharedResource model = (TextEditorModelSharedResource)
+ ServiceUtils.getInstance().getModelSet(serviceRegistry).getModelChecked(TextEditorModelSharedResource.MODEL_ID);
+ model.addTextEditorModel(editorModel);
+
+ return editorModel;
+ }
+
+ /**
+ * The classifier to edit - corresponding to the selected object.
+ *
+ * @return
+ */
+ protected Classifier getClassifierToEdit() {
+ if (selectedEObject instanceof Operation) {
+ return ((Operation) selectedEObject).getFeaturingClassifiers().get(0);
+ }
+ else if (selectedEObject instanceof Transition) {
+ return ((Transition) selectedEObject).getContainer().getStateMachine().getContext();
+ }
+ else if (selectedEObject instanceof Behavior) {
+ Element owner = (Behavior) selectedEObject;
+ while (owner != null) {
+ owner = owner.getOwner();
+ if ((owner instanceof Classifier) && !(owner instanceof Behavior)) {
+ return (Classifier) owner;
+ }
+ }
+ return null;
+ }
+ else if (selectedEObject instanceof Classifier) {
+ // must be class or datatype
+ return (Classifier) selectedEObject;
+ }
+ return null;
+ }
+
+ /**
+ * return the editor model corresponding to an EObject
+ *
+ * @param serviceRegistry
+ * the service registry
+ * @param classifierToEdit
+ * The classifier for which a CDT editor should be opened
+ * @return
+ * @throws ServiceException
+ * @throws NotFoundException
+ */
+ protected TextEditorModel getEditorModel(final ServicesRegistry serviceRegistry, Classifier classifierToEdit) throws ServiceException, NotFoundException {
+ TextEditorModelSharedResource model = (TextEditorModelSharedResource)
+ ServiceUtils.getInstance().getModelSet(serviceRegistry).getModelChecked(TextEditorModelSharedResource.MODEL_ID);
+ return model.getTextEditorModel(classifierToEdit);
+ }
+
+ /**
+ * Recursively search in sash models for a FolderModel.
+ * Return the first encountered folder.
+ *
+ * @param panelModel
+ * @return
+ */
+ public static int lookupIndex(TabFolder folder, Object model) {
+
+ int index = 0;
+ for (PageRef pr : folder.getChildren()) {
+ if (pr.getPageIdentifier() == model) {
+ return index;
+ }
+ index++;
+ }
+ return -1;
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/listener/ChangeKind.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/listener/ChangeKind.java
new file mode 100644
index 00000000000..c6e407ed35f
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/listener/ChangeKind.java
@@ -0,0 +1,7 @@
+package org.eclipse.papyrus.texteditor.cdt.listener;
+
+public enum ChangeKind {
+ INTERFACE,
+ IMPLEMENTATION,
+ OPERATION
+};
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/listener/Closure.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/listener/Closure.java
new file mode 100644
index 00000000000..b81203d94bc
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/listener/Closure.java
@@ -0,0 +1,81 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) Ansgar.Radermacher@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.texteditor.cdt.listener;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+import org.eclipse.uml2.common.util.UML2Util;
+import org.eclipse.uml2.uml.Association;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Element;
+
+/**
+ * Calculate the closure of classifiers that need to be re-generated, if a
+ * classifier changes
+ *
+ * There are two different reasons for the need to re-generate a classifier:
+ * (1) one of the elements that it contains has changed
+ * (2) an element outside the containment close is changed. An example is a superclass
+ * that changes its name or an association target. In many cases, classifier depend
+ * on names of outside elements, but the also require a regeneration if the element
+ * is deleted.
+ * We need to take the change-kind into account. E.g. if the name of an operation in A changes, we need to
+ * re-generate class A, but we only need to regenerate class B (inheriting from A), if it actually
+ * redefines that operation.
+ */
+public class Closure {
+ public static EList<Classifier> calc(Classifier cl) {
+ EList<Classifier> list = new BasicEList<Classifier>();
+ calc(cl, list);
+ return list;
+ }
+
+ public static void calc(Classifier cl, EList<Classifier> list) {
+ if (cl != null) {
+ for (Setting setting : UML2Util.getNonNavigableInverseReferences(cl)) {
+ EObject eObj = setting.getEObject();
+ if (eObj instanceof Element) {
+ Classifier referencedCl = nearestClassifier(eObj);
+ if (!list.contains(referencedCl) && (!(referencedCl instanceof Association))) {
+ list.add(referencedCl);
+ calc(referencedCl, list);
+ }
+ }
+ }
+ }
+ }
+
+ public static boolean isContained(EObject parent, EObject possibleChild) {
+ while (possibleChild != null) {
+ if (parent == possibleChild) {
+ return true;
+ }
+ possibleChild = possibleChild.eContainer();
+ }
+ return false;
+ }
+
+ public static Classifier nearestClassifier(EObject eObj) {
+ while (eObj != null) {
+ if (eObj instanceof Classifier) {
+ return (Classifier) eObj;
+ }
+ eObj = eObj.eContainer();
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/listener/ModelListener.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/listener/ModelListener.java
new file mode 100644
index 00000000000..18bc74c536e
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/listener/ModelListener.java
@@ -0,0 +1,135 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) Ansgar.Radermacher@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.texteditor.cdt.listener;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.UniqueEList;
+import org.eclipse.papyrus.infra.core.listenerservice.IPapyrusListener;
+import org.eclipse.papyrus.uml.tools.listeners.PapyrusStereotypeListener;
+import org.eclipse.uml2.uml.Behavior;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.DirectedRelationship;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Feature;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.Parameter;
+
+/**
+ * Main listener for model changes (registered via plugin.xml). It will delegate
+ * to the sub-listeners for specific sub-elements (type, operation, port, ...) that
+ * can be found in this package
+ *
+ * @author ansgar
+ *
+ */
+public class ModelListener implements IPapyrusListener {
+
+ /**
+ * set to true, if a synchronization from an CDT editor to the model is active
+ */
+ public static boolean syncFromEditor;
+
+ @Override
+ public void notifyChanged(Notification notification) {
+ Object notifier = notification.getNotifier();
+ int eventType = notification.getEventType();
+ if (syncFromEditor) {
+ return;
+ }
+ if ((eventType == Notification.REMOVING_ADAPTER) ||
+ (eventType == Notification.RESOLVE)) {
+ // does not indicate a modification of the element
+ return;
+ }
+ // System.err.println(eventType + ": " + notifier);
+
+ OperationHistoryListener.init();
+ try {
+ // TODO: kind of get nearest classifier
+
+ if (notifier instanceof Classifier) {
+ Classifier classifier = (Classifier) notifier;
+ if ((eventType == Notification.REMOVE) ||
+ (eventType == PapyrusStereotypeListener.MODIFIED_STEREOTYPE)) {
+ regenList.add(classifier);
+ }
+ // don't treat addition here, since operations/properties do not have their final names yet
+ // IStorage storage = new TextStorage(string);
+ }
+ if (notifier instanceof Behavior) {
+ Behavior behavior = (Behavior) notifier;
+ if (eventType == Notification.SET) {
+ // name modification
+ if (behavior.getSpecification() == null) {
+ }
+ }
+ else if (eventType == Notification.ADD) {
+ // modification of an opaque behavior in Papyrus implied remove&add operations
+ Classifier nearestCl = getNearestClassifier(behavior);
+ if (nearestCl != null) {
+ regenList.add(nearestCl);
+ }
+ }
+ }
+
+ else if (notifier instanceof Feature) {
+ // if a feature is added, it is first generated with a dummy name, then the name is corrected.
+ Feature feature = (Feature) notifier;
+ Element owner = feature.getOwner();
+ if (owner instanceof Classifier) {
+ // System.out.println(owner);
+ regenList.add((Classifier) owner);
+ }
+ }
+ else if (notifier instanceof Parameter) {
+ Parameter parameter = (Parameter) notifier;
+ if (parameter.getOperation() != null) {
+ Element owner = parameter.getOperation().getOwner();
+ if (owner instanceof Classifier) {
+ // System.out.println(owner);
+ regenList.add((Classifier) owner);
+ }
+ }
+ }
+ else if (notifier instanceof DirectedRelationship) {
+ // if a feature is added, it is first generated with a dummy name, then the name is corrected.
+ DirectedRelationship dr = (DirectedRelationship) notifier;
+ for (Element client : dr.getSources()) {
+ if (client instanceof Classifier) {
+ // System.out.println(client);
+ regenList.add((Classifier) client);
+ }
+ }
+ }
+ else if (notifier instanceof Package) {
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ public static Classifier getNearestClassifier(Element element) {
+ while (element != null) {
+ if (!(element instanceof Behavior) && (element instanceof Classifier)) {
+ return (Classifier) element;
+ }
+ element = element.getOwner();
+ }
+ return null;
+ }
+
+ static EList<Classifier> regenList = new UniqueEList<Classifier>();
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/listener/OperationHistoryListener.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/listener/OperationHistoryListener.java
new file mode 100644
index 00000000000..ca34d6ab0ba
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/listener/OperationHistoryListener.java
@@ -0,0 +1,76 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) Ansgar.Radermacher@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.texteditor.cdt.listener;
+
+import org.eclipse.core.commands.operations.IOperationHistoryListener;
+import org.eclipse.core.commands.operations.OperationHistoryEvent;
+import org.eclipse.core.commands.operations.OperationHistoryFactory;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.infra.core.resource.NotFoundException;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.core.services.ServicesRegistry;
+import org.eclipse.papyrus.infra.core.utils.ServiceUtils;
+import org.eclipse.papyrus.infra.emf.utils.ServiceUtilsForEObject;
+import org.eclipse.papyrus.texteditor.cdt.Activator;
+import org.eclipse.papyrus.texteditor.cdt.modelresource.TextEditorModelSharedResource;
+import org.eclipse.papyrus.texteditor.cdt.sync.SyncModelToCDT;
+import org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel;
+import org.eclipse.uml2.uml.Classifier;
+
+public class OperationHistoryListener implements IOperationHistoryListener {
+
+ public static void init() {
+ if (ohl == null) {
+ ohl = new OperationHistoryListener();
+ OperationHistoryFactory.getOperationHistory().addOperationHistoryListener(ohl);
+ }
+ }
+
+ private static OperationHistoryListener ohl = null;
+
+ @Override
+ public void historyNotification(OperationHistoryEvent event) {
+ int eventType = event.getEventType();
+ if (eventType == OperationHistoryEvent.OPERATION_ADDED || eventType == OperationHistoryEvent.REDONE
+ || eventType == OperationHistoryEvent.UNDONE) {
+
+ EList<Classifier> regenListCopy = new BasicEList<Classifier>(ModelListener.regenList);
+ ModelListener.regenList.clear();
+
+ // re-generate files from list - if they are still in a resource
+ for (Classifier cl : regenListCopy) {
+ if (cl.eResource() != null) {
+ try {
+ ServicesRegistry serviceRegistry = ServiceUtilsForEObject.getInstance().getServiceRegistry(cl);
+ TextEditorModelSharedResource model = (TextEditorModelSharedResource) ServiceUtils.getInstance()
+ .getModelSet(serviceRegistry).getModelChecked(TextEditorModelSharedResource.MODEL_ID);
+
+ if (model != null) {
+ TextEditorModel tem = model.getTextEditorModel(cl);
+ if (tem != null) {
+ SyncModelToCDT.syncModelToCDT(cl, tem.getGeneratorID());
+ }
+ }
+ } catch (ServiceException e) {
+ Activator.log.error(e);
+ } catch (NotFoundException e) {
+ Activator.log.error(e);
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/modelresource/TextEditorModelSharedResource.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/modelresource/TextEditorModelSharedResource.java
new file mode 100644
index 00000000000..7781972dd12
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/modelresource/TextEditorModelSharedResource.java
@@ -0,0 +1,120 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) Vincent.Lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.texteditor.cdt.modelresource;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.infra.core.resource.AbstractModelWithSharedResource;
+import org.eclipse.papyrus.infra.core.resource.IModel;
+import org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel;
+
+
+public class TextEditorModelSharedResource extends AbstractModelWithSharedResource<TextEditorModel> implements IModel {
+
+
+ /**
+ * File extension used for notation.
+ */
+ public static final String NOTATION_FILE_EXTENSION = "notation"; //$NON-NLS-1$
+
+ /**
+ * Model ID.
+ */
+ public static final String MODEL_ID = "org.eclipse.papyrus.exteditor.cdt.CDTEditorModelSharedResource"; //$NON-NLS-1$
+
+
+ /**
+ *
+ * Constructor.
+ *
+ */
+ public TextEditorModelSharedResource() {
+
+ }
+
+
+ /**
+ * Get the file extension used for this model.
+ *
+ * @see org.eclipse.papyrus.infra.core.resource.AbstractBaseModel#getModelFileExtension()
+ *
+ * @return
+ */
+ @Override
+ protected String getModelFileExtension() {
+ return NOTATION_FILE_EXTENSION;
+ }
+
+ /**
+ * Get the identifier used to register this model.
+ *
+ * @see org.eclipse.papyrus.infra.core.resource.AbstractBaseModel#getIdentifier()
+ *
+ * @return
+ */
+ @Override
+ public String getIdentifier() {
+ return MODEL_ID;
+ }
+
+
+ /**
+ * Add a new initialized {@link TextEditorModel} to the model.
+ *
+ * @param textInstance
+ * The textInstance to add.
+ */
+ public void addTextEditorModel(TextEditorModel textInstance) {
+ getResource().getContents().add(textInstance);
+ }
+
+ /**
+ * Add a new initialized {@link PapyrustextInstance} to the model.
+ *
+ * @param textInstance
+ * The textInstance to add.
+ */
+ public void removeTextEditorModel(TextEditorModel textInstance) {
+ getResource().getContents().remove(textInstance);
+ }
+
+ /**
+ * @param editedObject
+ * an edited element
+ * @return an editor reference for a given object if an editor exists, or null
+ */
+ public TextEditorModel getTextEditorModel(EObject editedObject) {
+ for (EObject textInstanceEO : getResource().getContents()) {
+ if (textInstanceEO instanceof TextEditorModel) {
+ TextEditorModel textInstance = (TextEditorModel) textInstanceEO;
+ if (textInstance.getEditedObject() == editedObject) {
+ return textInstance;
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
+ *
+ * @see org.eclipse.papyrus.infra.core.resource.AbstractModelWithSharedResource#isModelRoot(org.eclipse.emf.ecore.EObject)
+ *
+ * @param object
+ * @return
+ */
+ @Override
+ protected boolean isModelRoot(EObject object) {
+ return false;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/preferences/CDTPreferenceConstants.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/preferences/CDTPreferenceConstants.java
new file mode 100644
index 00000000000..ca20cafca87
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/preferences/CDTPreferenceConstants.java
@@ -0,0 +1,33 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.texteditor.cdt.preferences;
+
+/**
+ * Constant definitions for plug-in preferences
+ */
+public class CDTPreferenceConstants {
+
+ /**
+ * Default option for opening the editor at a specified location. Store uses directly the SWT constants
+ */
+ public static final String P_OPEN_LOCATION = "openLocation"; //$NON-NLS-1$
+
+ /**
+ * For attributes, the default "aggregation kind" value is "none". When this option is set
+ * it will be treated as composite
+ */
+ public static final String P_SYNC_PERMANENTLY = "syncPermanently"; //$NON-NLS-1$
+
+ public static final String P_SYNC_ALL_FILES = "syncAllFiles"; //$NON-NLS-1$
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/preferences/CDTPreferenceInitializer.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/preferences/CDTPreferenceInitializer.java
new file mode 100644
index 00000000000..494838690c5
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/preferences/CDTPreferenceInitializer.java
@@ -0,0 +1,39 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.texteditor.cdt.preferences;
+
+import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.papyrus.texteditor.cdt.Activator;
+import org.eclipse.swt.SWT;
+
+/**
+ * Class used to initialize default preference values.
+ */
+public class CDTPreferenceInitializer extends AbstractPreferenceInitializer {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
+ */
+ @Override
+ public void initializeDefaultPreferences() {
+ IPreferenceStore store = Activator.getDefault().getPreferenceStore();
+ store.setDefault(CDTPreferenceConstants.P_OPEN_LOCATION, SWT.RIGHT);
+ store.setDefault(CDTPreferenceConstants.P_SYNC_ALL_FILES, false);
+ store.setDefault(CDTPreferenceConstants.P_SYNC_PERMANENTLY, false);
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/preferences/CDTPreferencePage.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/preferences/CDTPreferencePage.java
new file mode 100644
index 00000000000..efc94febace
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/preferences/CDTPreferencePage.java
@@ -0,0 +1,64 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.texteditor.cdt.preferences;
+
+import org.eclipse.jface.preference.BooleanFieldEditor;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.papyrus.texteditor.cdt.Activator;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+
+
+/**
+ * This class represents the EC3M preference page
+ * <p>
+ * This page is used to modify preferences only. They are stored in the preference store that belongs to the main plug-in class. That way, preferences can be accessed directly via the preference store.
+ */
+
+public class CDTPreferencePage
+ extends FieldEditorPreferencePage
+ implements IWorkbenchPreferencePage {
+
+ public CDTPreferencePage() {
+ super(GRID);
+ setPreferenceStore(Activator.getDefault().getPreferenceStore());
+ setDescription("CDT editor integration options"); //$NON-NLS-1$
+ }
+
+ /**
+ * Creates the field editors. Field editors are abstractions of
+ * the common GUI blocks needed to manipulate various types
+ * of preferences. Each field editor knows how to save and
+ * restore itself.
+ */
+ @Override
+ public void createFieldEditors() {
+ addField(new BooleanFieldEditor(
+ CDTPreferenceConstants.P_SYNC_PERMANENTLY, "&Synchronize permanently (otherwise only on demand)", //$NON-NLS-1$
+ getFieldEditorParent()));
+
+ addField(new BooleanFieldEditor(
+ CDTPreferenceConstants.P_SYNC_ALL_FILES, "Synchronize all classes (otherwise synchronize only classes with open editor)", //$NON-NLS-1$
+ getFieldEditorParent()));
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+ */
+ @Override
+ public void init(IWorkbench workbench) {
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/sync/FindTransition.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/sync/FindTransition.java
new file mode 100644
index 00000000000..e737e45abf3
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/sync/FindTransition.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - ansgar.radermacher@cea.fr CEA LIST - initial API and implementation
+ *
+ *******************************************************************************/
+
+package org.eclipse.papyrus.texteditor.cdt.sync;
+
+import org.eclipse.uml2.uml.Behavior;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Transition;
+
+/**
+ * Find the behavior in the model from a given method in the code. Used during the
+ * back synchronization from code to model.
+ */
+public class FindTransition {
+
+ private static final String UNDERSCORE = "_"; //$NON-NLS-1$
+
+ public static Behavior findBehavior(Classifier cl, String methodName) {
+ for (Element element : cl.allOwnedElements()) {
+ if (element instanceof Transition) {
+ Transition transition = (Transition) element;
+ Behavior effect = transition.getEffect();
+ if ((effect != null) && behaviorMatches(effect, methodName)) {
+ return transition.getEffect();
+ }
+ }
+ }
+ return null;
+ }
+
+ public static boolean behaviorMatches(Behavior behavior, String methodName) {
+ return
+ methodName.endsWith(NamedElement.SEPARATOR + behavior.getName()) ||
+ methodName.endsWith(UNDERSCORE + behavior.getName());
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/sync/ObtainICElement.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/sync/ObtainICElement.java
new file mode 100644
index 00000000000..e5457380c45
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/sync/ObtainICElement.java
@@ -0,0 +1,129 @@
+/*******************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - ansgar.radermacher@cea.fr CEA LIST - initial API and implementation
+ *
+ *******************************************************************************/
+
+package org.eclipse.papyrus.texteditor.cdt.sync;
+
+import java.util.Iterator;
+
+import org.eclipse.cdt.core.model.ICElement;
+import org.eclipse.cdt.core.model.IFunctionDeclaration;
+import org.eclipse.cdt.core.model.IParent;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.codegen.extensionpoints.ILangCodegen;
+import org.eclipse.papyrus.codegen.extensionpoints.ILangCodegen2;
+import org.eclipse.papyrus.codegen.extensionpoints.MethodInfo;
+import org.eclipse.uml2.uml.Behavior;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.ParameterDirectionKind;
+import org.eclipse.uml2.uml.Transition;
+
+
+/**
+ * This class is used to select the operation the user wants to edit after opening the editor.
+ * In case of transition, the selection is based on simple name only (either prefixed with the name separator or with an
+ * underscore - based on the assumption that scoped names are either kept or flattened using underscore as separator
+ *
+ */
+public class ObtainICElement {
+
+ /**
+ * Return the ICelement associated with a UML element. Currently, only methods are supported.
+ *
+ * @param parent
+ * the parent (typically the translation unit of a CDT file)
+ * @param element
+ * A named UML element
+ * @throws CoreException
+ */
+ public static ICElement getICElement(ILangCodegen codegen, IParent parent, NamedElement element) {
+ MethodInfo methodInfo = null;
+ NamedElement operationOrBehavior = element;
+ if (element instanceof Transition) {
+ operationOrBehavior = ((Transition) element).getEffect();
+ }
+
+ // no behavior found => not possible to locate element
+ if (operationOrBehavior == null) {
+ return null;
+ }
+
+ if (codegen instanceof ILangCodegen2) {
+ // get generator specific method info.
+ methodInfo = ((ILangCodegen2) codegen).getMethodInfo(operationOrBehavior);
+ }
+ if (methodInfo == null) {
+ // use default behavior.
+ if (element instanceof Behavior) {
+ methodInfo = MethodInfo.fromBehavior((Behavior) operationOrBehavior);
+ }
+ else if (element instanceof Operation) {
+ methodInfo = MethodInfo.fromOperation((Operation) operationOrBehavior);
+ }
+ else {
+ return null;
+ }
+ }
+
+ try {
+ for (ICElement child : parent.getChildren()) {
+ if (child instanceof IParent) {
+ return getICElement(codegen, (IParent) child, element);
+ }
+ if (child instanceof IFunctionDeclaration) {
+ IFunctionDeclaration function = (IFunctionDeclaration) child;
+
+ // does the element name match? (CDT provides className::methodName information). Since we are in the scope of
+ // the class, we only verify the postfix part of the name
+ if (child.getElementName().endsWith(NamedElement.SEPARATOR + methodInfo.getName())) {
+ // check, if parameters match. This handles most common overloading cases (it does not handle functions that
+ // only differ with respect to the modifiers
+ Iterator<String> paramIter = methodInfo.getParameterTypes().iterator();
+ boolean match = methodInfo.getParameterTypes().size() == function.getParameterTypes().length;
+ if (match) {
+ for (String cdtParamType : function.getParameterTypes()) {
+ String umlParamType = paramIter.next();
+ if (!cdtParamType.equals(umlParamType)) {
+ match = false;
+ break;
+ }
+ }
+ if (match) {
+ return child;
+ }
+ }
+ }
+ }
+ }
+ } catch (CoreException e) {
+ }
+ return null;
+ }
+
+ /**
+ * Count the number of parameters without taking the return parameter into account
+ *
+ * @param list
+ * @return
+ */
+ public static int countParameters(EList<Parameter> list) {
+ int params = 0;
+ for (Parameter par : list) {
+ if (par.getDirection() != ParameterDirectionKind.RETURN_LITERAL) {
+ params++;
+ }
+ }
+ return params;
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/sync/ParameterModifiers.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/sync/ParameterModifiers.java
new file mode 100644
index 00000000000..8601ac73484
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/sync/ParameterModifiers.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - ansgar.radermacher@cea.fr CEA LIST - initial API and implementation
+ *
+ *******************************************************************************/
+
+package org.eclipse.papyrus.texteditor.cdt.sync;
+
+/**
+ * Simple grouping of modifier related parameters
+ */
+public class ParameterModifiers {
+ public ParameterModifiers() {
+ isPointer = false;
+ isRef = false;
+ isRegister = false;
+ array = ""; //$NON-NLS-1$
+ }
+
+ /**
+ * true, if parameter is a pointer
+ */
+ boolean isPointer;
+
+ /**
+ * true, if parameter is a reference
+ */
+ boolean isRef;
+
+ /**
+ * true, if parameter is a register
+ */
+ boolean isRegister;
+
+ /**
+ * value of array modifiers (e.g. [2])
+ */
+ String array ;
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/sync/RevealCurrentOperation.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/sync/RevealCurrentOperation.java
new file mode 100644
index 00000000000..cf53a0b5468
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/sync/RevealCurrentOperation.java
@@ -0,0 +1,128 @@
+/*******************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - ansgar.radermacher@cea.fr CEA LIST - initial API and implementation
+ *
+ *******************************************************************************/
+
+package org.eclipse.papyrus.texteditor.cdt.sync;
+
+import org.eclipse.cdt.core.CCorePlugin;
+import org.eclipse.cdt.core.dom.ast.IASTNodeSelector;
+import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
+import org.eclipse.cdt.core.index.IIndex;
+import org.eclipse.cdt.core.model.CModelException;
+import org.eclipse.cdt.core.model.CoreModel;
+import org.eclipse.cdt.core.model.ICElement;
+import org.eclipse.cdt.core.model.ICProject;
+import org.eclipse.cdt.core.model.IFunctionDeclaration;
+import org.eclipse.cdt.core.model.IParent;
+import org.eclipse.cdt.core.model.ISourceRange;
+import org.eclipse.cdt.core.model.ISourceReference;
+import org.eclipse.cdt.core.model.ITranslationUnit;
+import org.eclipse.cdt.ui.CDTUITools;
+import org.eclipse.jface.text.ITextSelection;
+import org.eclipse.papyrus.infra.core.Activator;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Operation;
+
+
+public class RevealCurrentOperation {
+
+ public RevealCurrentOperation(IEditorInput input, Classifier classifier, String projectName) {
+ m_input = input;
+ m_classifier = classifier;
+ m_projectName = projectName;
+ }
+
+ public Element obtainSelectedElement(ITextSelection selection) {
+ ICElement ice = CDTUITools.getEditorInputCElement(m_input);
+
+ if (ice instanceof ITranslationUnit) {
+ ICProject project = CoreModel.getDefault().getCModel().getCProject(m_projectName);
+
+ IIndex index = null;
+ try {
+ index = CCorePlugin.getIndexManager().getIndex(project);
+ index.acquireReadLock();
+
+ // index = CCorePlugin.getIndexManager().getIndex(project);
+ ITranslationUnit itu = (ITranslationUnit) ice;
+ // hack: force re-evaluation of AST node, requires modified CDT!
+ // Seems to be no longer required.
+ // ASTProvider.getASTProvider().fCache.setActiveElement(itu);
+
+ IASTTranslationUnit ast = itu.getAST(index, ITranslationUnit.AST_SKIP_INDEXED_HEADERS);
+ IASTNodeSelector selector = ast.getNodeSelector(null);
+
+ String opName = findOperation(itu, selector, itu, selection);
+ if (opName != null) {
+ int sep = opName.lastIndexOf("::"); //$NON-NLS-1$
+ if (sep != -1) {
+ opName = opName.substring(sep + 2);
+ }
+ Operation operation = m_classifier.getOperation(opName, null, null);
+ if (operation != null) {
+ return operation;
+ }
+ }
+
+ } catch (CModelException e) {
+ Activator.getDefault().getLog().log(e.getStatus());
+ } catch (Exception e) {
+ System.err.println(e);
+ } finally {
+ if (index != null) {
+ index.releaseReadLock();
+ }
+ }
+ }
+ return m_classifier;
+ }
+
+ /**
+ * Examine the children of a translation unit in order to extract the methods that are defined within
+ * the unit
+ *
+ * @param itu
+ * @param selector
+ * @param parent
+ * @throws CModelException
+ */
+ public String findOperation(ITranslationUnit itu, IASTNodeSelector selector, IParent parent, ITextSelection selection) throws CModelException {
+
+ for (ICElement child : parent.getChildren()) {
+ if (child instanceof IParent) {
+ return findOperation(itu, selector, (IParent) child, selection);
+ }
+ ISourceRange range = null;
+ if (child instanceof ISourceReference) {
+ range = ((ISourceReference) child).getSourceRange();
+ }
+ if (child instanceof IFunctionDeclaration) {
+ // function declaration is a superclass for method declaration (but need to trace functions differently?)
+ String name = ((IFunctionDeclaration) child).getElementName();
+ int pos = selection.getOffset();
+ if ((pos >= range.getStartPos()) && (pos < range.getStartPos() + range.getLength())) {
+ return name;
+ }
+ }
+ }
+ return null;
+ }
+
+
+
+ protected IEditorInput m_input;
+
+ protected Classifier m_classifier;
+
+ protected String m_projectName;
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/sync/SyncCDTtoModel.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/sync/SyncCDTtoModel.java
new file mode 100644
index 00000000000..1a0d635b974
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/sync/SyncCDTtoModel.java
@@ -0,0 +1,635 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - ansgar.radermacher@cea.fr CEA LIST - initial API and implementation
+ *
+ *******************************************************************************/
+
+package org.eclipse.papyrus.texteditor.cdt.sync;
+
+import org.eclipse.cdt.core.CCorePlugin;
+import org.eclipse.cdt.core.dom.ast.ExpansionOverlapsBoundaryException;
+import org.eclipse.cdt.core.dom.ast.IASTCompoundStatement;
+import org.eclipse.cdt.core.dom.ast.IASTDeclSpecifier;
+import org.eclipse.cdt.core.dom.ast.IASTFileLocation;
+import org.eclipse.cdt.core.dom.ast.IASTFunctionDeclarator;
+import org.eclipse.cdt.core.dom.ast.IASTFunctionDefinition;
+import org.eclipse.cdt.core.dom.ast.IASTName;
+import org.eclipse.cdt.core.dom.ast.IASTNode;
+import org.eclipse.cdt.core.dom.ast.IASTNodeSelector;
+import org.eclipse.cdt.core.dom.ast.IASTParameterDeclaration;
+import org.eclipse.cdt.core.dom.ast.IASTStatement;
+import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
+import org.eclipse.cdt.core.index.IIndex;
+import org.eclipse.cdt.core.model.CModelException;
+import org.eclipse.cdt.core.model.CoreModel;
+import org.eclipse.cdt.core.model.ICElement;
+import org.eclipse.cdt.core.model.ICProject;
+import org.eclipse.cdt.core.model.IFunctionDeclaration;
+import org.eclipse.cdt.core.model.IMethodDeclaration;
+import org.eclipse.cdt.core.model.IParent;
+import org.eclipse.cdt.core.model.ISourceRange;
+import org.eclipse.cdt.core.model.ISourceReference;
+import org.eclipse.cdt.core.model.ITranslationUnit;
+import org.eclipse.cdt.core.model.IWorkingCopy;
+import org.eclipse.cdt.core.parser.IToken;
+import org.eclipse.cdt.ui.CDTUITools;
+import org.eclipse.cdt.ui.CUIPlugin;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.C_Cpp.Array;
+import org.eclipse.papyrus.C_Cpp.Const;
+import org.eclipse.papyrus.C_Cpp.EStorageClass;
+import org.eclipse.papyrus.C_Cpp.Include;
+import org.eclipse.papyrus.C_Cpp.Ptr;
+import org.eclipse.papyrus.C_Cpp.Ref;
+import org.eclipse.papyrus.C_Cpp.StorageClass;
+import org.eclipse.papyrus.C_Cpp.Volatile;
+import org.eclipse.papyrus.codegen.extensionpoints.ILangCodegen;
+import org.eclipse.papyrus.codegen.extensionpoints.ILangCodegen2;
+import org.eclipse.papyrus.codegen.extensionpoints.LanguageCodegen;
+import org.eclipse.papyrus.codegen.extensionpoints.SyncInformation;
+import org.eclipse.papyrus.cpp.codegen.Constants;
+import org.eclipse.papyrus.infra.core.Activator;
+import org.eclipse.papyrus.texteditor.cdt.CommandSupport;
+import org.eclipse.papyrus.texteditor.cdt.TextEditorConstants;
+import org.eclipse.papyrus.texteditor.cdt.Utils;
+import org.eclipse.papyrus.texteditor.cdt.listener.ModelListener;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.papyrus.uml.tools.utils.UMLUtil;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.uml2.uml.Behavior;
+import org.eclipse.uml2.uml.BehavioralFeature;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Comment;
+import org.eclipse.uml2.uml.DataType;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.OpaqueBehavior;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.UMLPackage;
+
+public class SyncCDTtoModel implements Runnable {
+
+ public static final String REGISTER = "register"; //$NON-NLS-1$
+
+ public static final String CONST = "const"; //$NON-NLS-1$
+
+ public static final String VOLATILE = "volatile"; //$NON-NLS-1$
+
+ public static final String sAtParam = "@param"; //$NON-NLS-1$
+
+ public static final String ansiCLib = "AnsiCLibrary"; //$NON-NLS-1$
+
+ public SyncCDTtoModel(IEditorInput input, Classifier classifier, String projectName, String generatorID) {
+ m_input = input;
+ m_classifier = classifier;
+ m_projectName = projectName;
+ m_codegen = LanguageCodegen.getGenerator(TextEditorConstants.CPP, generatorID);
+ }
+
+
+ public final String c_cpp_langID = "C/C++"; //$NON-NLS-1$
+
+ public void syncCDTtoModel() {
+ CommandSupport.exec("update model from CDT", this);
+ }
+
+ @Override
+ public void run() {
+ ICElement ice = CDTUITools.getEditorInputCElement(m_input);
+ ModelListener.syncFromEditor = true;
+
+ if (ice instanceof ITranslationUnit) {
+ ICProject project = CoreModel.getDefault().getCModel().getCProject(m_projectName);
+
+ IIndex index = null;
+ try {
+ index = CCorePlugin.getIndexManager().getIndex(project);
+ index.acquireReadLock();
+
+ // index = CCorePlugin.getIndexManager().getIndex(project);
+ ITranslationUnit itu = (ITranslationUnit) ice;
+ // hack: force re-evaluation of AST node, requires modified CDT!
+ // Seems to be no longer required.
+ // ASTProvider.getASTProvider().fCache.setActiveElement(itu);
+
+ IASTTranslationUnit ast = itu.getAST(index, ITranslationUnit.AST_SKIP_INDEXED_HEADERS);
+ IASTNodeSelector selector = ast.getNodeSelector(null);
+
+ examineChildren(itu, selector, itu);
+ updateCppInclude(itu);
+
+ CUIPlugin.getDefault().getProblemMarkerManager();
+ if (itu instanceof IWorkingCopy) {
+ // ((IWorkingCopy)itu).commit(true, new
+ // NullProgressMonitor());
+ // ((IWorkingCopy)itu).reconcile();
+ ((IWorkingCopy) itu).reconcile(true, new NullProgressMonitor());
+ // ((IWorkingCopy)itu).reconcile(true, true, new
+ // NullProgressMonitor());
+ }
+
+ } catch (CModelException e) {
+ Activator.getDefault().getLog().log(e.getStatus());
+ } catch (Exception e) {
+ System.err.println(e);
+ } finally {
+ if (index != null) {
+ index.releaseReadLock();
+ }
+ }
+ }
+ ModelListener.syncFromEditor = false;
+ }
+
+ /**
+ * Examine the children of a translation unit in order to extract the
+ * methods that are defined within hte unit
+ *
+ * @param itu
+ * @param selector
+ * @param parent
+ * @throws CModelException
+ */
+ public void examineChildren(ITranslationUnit itu, IASTNodeSelector selector, IParent parent)
+ throws CModelException {
+
+ int position = 0;
+ // if (parent instanceof Namespace) {
+ for (ICElement child : parent.getChildren()) {
+ if (child instanceof IParent) {
+ examineChildren(itu, selector, (IParent) child);
+ }
+ ISourceRange range = null;
+ if (child instanceof ISourceReference) {
+ range = ((ISourceReference) child).getSourceRange();
+ }
+ if (child instanceof IFunctionDeclaration) {
+ // function declaration is a superclass for method declaration
+ // (but need to trace functions differently?)
+ String name = ((IFunctionDeclaration) child).getElementName();
+ IASTNode node = selector.findEnclosingNode(range.getStartPos(), range.getLength());
+ if (node instanceof IASTFunctionDefinition) {
+ IASTFunctionDefinition definition = (IASTFunctionDefinition) node;
+ IASTFunctionDeclarator declarator = definition.getDeclarator();
+ String unfilteredBody = getBody(itu, definition);
+ // get additional information about method synchronization from generator
+ SyncInformation syncInfo = null;
+ if (m_codegen instanceof ILangCodegen2) {
+ syncInfo = ((ILangCodegen2) m_codegen).getSyncInformation(name, unfilteredBody);
+ }
+ String body = Utils.removeGenerated(unfilteredBody);
+ if (syncInfo == null || !syncInfo.isGenerated) {
+ // only update method, if it is not generated
+ NamedElement ne = updateMethod(position, parent, name, body, declarator, syncInfo);
+ updateComment(itu, definition, ne);
+ }
+ // System.err.println("body source <" + body + ">");
+ }
+ position++;
+ }
+ }
+ }
+
+ /**
+ * update the contents of the CppInclude directive
+ *
+ * @param itu
+ * the translation unit
+ */
+ public void updateCppInclude(ITranslationUnit itu) {
+ String contents = new String(itu.getContents());
+ int preBodyStart = contents.indexOf(Constants.cppIncPreBodyStart);
+ int preBodyEnd = contents.indexOf(Constants.cppIncPreBodyEnd);
+ String preBody = ""; //$NON-NLS-1$
+ String body = ""; //$NON-NLS-1$
+ if (preBodyStart != -1) {
+ preBodyStart += Constants.cppIncPreBodyStart.length();
+ if (preBodyEnd > preBodyStart) {
+ preBody = contents.substring(preBodyStart, preBodyEnd).trim();
+ }
+ }
+
+ int bodyStart = contents.indexOf(Constants.cppIncBodyStart);
+ int bodyEnd = contents.indexOf(Constants.cppIncBodyEnd);
+
+ if (bodyStart != -1) {
+ bodyStart += Constants.cppIncBodyStart.length() + 1;
+ if (bodyEnd > bodyStart) {
+ body = contents.substring(bodyStart, bodyEnd).trim();
+ }
+ }
+ if (body.length() > 0 || preBody.length() > 0) {
+ Include include = StereotypeUtil.applyApp(m_classifier, Include.class);
+ if (include != null) {
+ include.setPreBody(preBody);
+ include.setBody(body);
+ }
+ }
+ }
+
+ /**
+ * Update a method in the model based on the qualified name.
+ *
+ * @param position
+ * The position of the method within the file. Used to identify
+ * renaming operations
+ * @param parent
+ * the CDT parent which is used to get a list of children
+ * @param qualifiedName
+ * the qualified name of a method
+ * @param body
+ * the method body
+ * @param declarator
+ * the declarator for the method
+ * @return the operation or the behavior within the model that got updated. The latter is returned in
+ * case of behaviors that do not have a specification (e.g. the effect of a transition).
+ */
+ public NamedElement updateMethod(int position, IParent parent, String qualifiedName, String body,
+ IASTFunctionDeclarator declarator, SyncInformation syncInfo) {
+
+ String names[] = qualifiedName.split(Utils.nsSep);
+ String name = names[names.length - 1];
+
+ Operation operation = null;
+ Behavior behavior = null;
+
+ if (syncInfo == null || (syncInfo.behavior == null && syncInfo.createBehaviorName == null)) {
+ operation = getModelOperationFromName(name, parent, position);
+ if (operation != null) {
+ operation.setName(name);
+ } else {
+ // it is possible that the C++ method corresponds to the effect
+ // of a transition. try to locate the behavior (without using an operation)
+ behavior = FindTransition.findBehavior(m_classifier, name);
+ if (behavior == null) {
+ // still null => create new operation in model
+ if (m_classifier instanceof Class) {
+ operation = ((Class) m_classifier).createOwnedOperation(name, null, null);
+ } else if (m_classifier instanceof DataType) {
+ operation = ((DataType) m_classifier).createOwnedOperation(name, null, null);
+ }
+ }
+ }
+ }
+ else if (syncInfo.behavior != null) {
+ // operation is still null (=> does not enter operation != null case below)
+ behavior = syncInfo.behavior;
+ }
+ else if ((syncInfo.createBehaviorName != null) && (m_classifier instanceof Class)) {
+ Class clazz = (Class) m_classifier;
+ behavior = (OpaqueBehavior) clazz.createOwnedBehavior(syncInfo.createBehaviorName,
+ UMLPackage.eINSTANCE.getOpaqueBehavior().eClass());
+ }
+
+ if (operation != null) {
+ if (operation.getMethods().size() == 0) {
+ // operation exists, but does not have any method => create
+
+ if (m_classifier instanceof Class) {
+ behavior = ((Class) m_classifier).createOwnedBehavior(name, UMLPackage.eINSTANCE.getOpaqueBehavior());
+ } else if (m_classifier instanceof DataType) {
+ // ob = (OpaqueBehavior) ((DataType)
+ // m_classifier).createOwnedBehavior(name,
+ // UMLPackage.eINSTANCE.getOpaqueBehavior());
+ }
+ behavior.setSpecification(operation);
+ behavior.setIsReentrant(false);
+ }
+ else {
+ behavior = operation.getMethods().get(0);
+ // operation has at least one method, this may not be null.
+ if (!behavior.getName().equals(name)) {
+ behavior.setName(name);
+ }
+ }
+ }
+
+ // assertions: operation can be null, behavior is always non-null
+
+ // Remove all parameters from operation / behavior (they will be added later).
+ // Calling parameters.clear() is not sufficient. Otherwise stereotype
+ // applications to unresolved elements remain in the model
+ if (operation != null) {
+ UMLUtil.destroyElements(operation.getOwnedParameters());
+ }
+ UMLUtil.destroyElements(behavior.getOwnedParameters());
+
+ for (IASTNode declaratorChild : declarator.getChildren()) {
+ if (declaratorChild instanceof IASTParameterDeclaration) {
+ IASTParameterDeclaration parameter = (IASTParameterDeclaration) declaratorChild;
+ IASTName parameterName = parameter.getDeclarator().getName();
+ IASTDeclSpecifier parameterType = parameter.getDeclSpecifier();
+ ParameterModifiers modifiers = new ParameterModifiers();
+ String parameterTypeName = ""; //$NON-NLS-1$
+ try {
+ IToken token = parameter.getDeclarator().getSyntax();
+ while (token != null) {
+ String tokenStr = token.toString();
+ if (tokenStr.equals("*")) { //$NON-NLS-1$
+ modifiers.isPointer = true;
+ } else if (tokenStr.equals("&")) { //$NON-NLS-1$
+ modifiers.isRef = true;
+ } else if (tokenStr.equals("[")) { //$NON-NLS-1$
+ while (token != null) {
+ modifiers.array += token.toString();
+ token = token.getNext();
+ }
+ if (token == null) {
+ break;
+ }
+ }
+ token = token.getNext();
+ }
+
+ token = parameterType.getSyntax();
+ while (token != null) {
+ String tokenStr = token.toString();
+ if (tokenStr.equals("*")) { //$NON-NLS-1$
+ // TODO: check, if this can be called (depending on
+ // * position with different semantics?)
+ modifiers.isPointer = true;
+ } else if (tokenStr.equals("&")) { //$NON-NLS-1$
+ modifiers.isRef = true;
+ } else if (tokenStr.equals(REGISTER)) {
+ modifiers.isRegister = true;
+ } else if (tokenStr.equals(CONST) || tokenStr.equals(VOLATILE)) {
+ // do nothing (use isConst() or isVolatile() operation of parameterType)
+ // is not part of parameter type
+ } else {
+ if (parameterTypeName.length() > 0) {
+ parameterTypeName += " "; //$NON-NLS-1$
+ }
+ parameterTypeName += tokenStr;
+ }
+ token = token.getNext();
+ }
+ } catch (ExpansionOverlapsBoundaryException e) {
+ }
+
+ NamedElement namedElemParamType = Utils.getQualifiedElement(Utils.getTop(m_classifier),
+ parameterTypeName);
+ if (namedElemParamType == null) {
+ namedElemParamType = Utils.getQualifiedElement(Utils.getTop(m_classifier),
+ ansiCLib + Utils.nsSep + parameterTypeName);
+ }
+ if (parameterType.isRestrict()) {
+ }
+ Parameter umlParameter = null;
+ Type paramType = namedElemParamType instanceof Type ? (Type) namedElemParamType : null;
+ if (operation != null) {
+ umlParameter = operation.createOwnedParameter(parameterName.toString(), paramType);
+ applyParameterModifiers(parameterType, umlParameter, modifiers);
+ }
+ umlParameter = behavior.createOwnedParameter(parameterName.toString(), paramType);
+ applyParameterModifiers(parameterType, umlParameter, modifiers);
+ }
+ }
+
+ if (behavior instanceof OpaqueBehavior) {
+ OpaqueBehavior ob = (OpaqueBehavior) behavior;
+ if (ob.getBodies().size() == 0) {
+ ob.getLanguages().add(c_cpp_langID);
+ ob.getBodies().add(""); //$NON-NLS-1$
+ }
+ for (int i = 0; i < ob.getLanguages().size(); i++) {
+ // update first body of one of the languages supported by CDT. This implies that
+ // it is actually not possible to have separate C and C++ bodes in the same opaque
+ // behavior (which is rarely a good idea).
+ String language = ob.getLanguages().get(i);
+ if (TextEditorConstants.CPP.matcher(language).matches() || c_cpp_langID.equals(language)) {
+ if (i < ob.getBodies().size()) {
+ // should always be true, unless sync between
+ // languages/bodies is lost
+ ob.getBodies().set(i, body);
+ }
+ }
+ }
+ }
+ if (operation != null) {
+ return operation;
+ }
+ else {
+ return behavior;
+ }
+ }
+
+ /**
+ * Apply the modifiers for a parameter, notably the stereotypes of the C++ profile
+ *
+ * @param parameterType the CDT AST parameter specification
+ * @param umlParameter the UML parameter (to which a stereotype should be applied)
+ * @param modifiers the modifiers that should be applied (stored in an instance of class ParameterModifiers)
+ */
+ public void applyParameterModifiers(IASTDeclSpecifier parameterType, Parameter umlParameter, ParameterModifiers modifiers) {
+ if (parameterType.isConst()) {
+ StereotypeUtil.apply(umlParameter, Const.class);
+ }
+ if (parameterType.isVolatile()) {
+ StereotypeUtil.apply(umlParameter, Volatile.class);
+ }
+ if (modifiers.isRegister) {
+ StorageClass sc = StereotypeUtil.applyApp(umlParameter, StorageClass.class);
+ if (sc != null) {
+ sc.setStorageClass(EStorageClass.REGISTER);
+ }
+ }
+ if (modifiers.isPointer) {
+ StereotypeUtil.apply(umlParameter, Ptr.class);
+ } else if (modifiers.isRef) {
+ StereotypeUtil.apply(umlParameter, Ref.class);
+ }
+ if (modifiers.array.length() > 0) {
+ Array arraySt = StereotypeUtil.applyApp(umlParameter, Array.class);
+ if (arraySt != null && !modifiers.array.equals("[]") && (!modifiers.array.equals("[ ]"))) { //$NON-NLS-1$//$NON-NLS-2$
+ arraySt.setDefinition(modifiers.array);
+ }
+ }
+ }
+
+ /**
+ * Obtain an operation from the model by using the name of a CDT method.
+ * If an operation of the given name does not exist, it might indicate that
+ * the method has been renamed.
+ *
+ * @param name the operation name within CDT
+ * @param parent the parent of the CDT method within CDT editor model
+ * @param position the position within the other methods. This information is used to locate methods
+ * within the model that might have been renamed in the CDT editor.
+ * @return
+ */
+ public Operation getModelOperationFromName(String name, IParent parent, int position) {
+ Operation operation = m_classifier.getOperation(name, null, null);
+
+ if (operation == null) {
+ // operation is not found via name in the model. try to locate the operation in the model at the same
+ // "position" as the method in the file and
+ // verify that this method does not have the same name as any method
+ // in the CDT file.
+ if (position < m_classifier.getOperations().size()) {
+ operation = m_classifier.getOperations().get(position);
+ String modelName = operation.getName();
+ try {
+ for (ICElement child : parent.getChildren()) {
+ if (child instanceof IMethodDeclaration) {
+ String cdtName = ((IMethodDeclaration) child).getElementName();
+ if (cdtName.equals(modelName)) {
+ // an existing operation in the CDT file already
+ // has this name
+ operation = null;
+ break;
+ }
+ }
+ }
+ } catch (CModelException e) {
+ }
+ }
+ }
+ return operation;
+ }
+
+ public static String getBody(ITranslationUnit itu, IASTFunctionDefinition definition) {
+ IASTStatement body = definition.getBody();
+
+ if (body instanceof IASTCompoundStatement) {
+ IASTCompoundStatement bodyComp = (IASTCompoundStatement) body;
+
+ IASTFileLocation bodyLoc = bodyComp.getFileLocation();
+ int start = bodyLoc.getNodeOffset();
+ int end = start + bodyLoc.getNodeLength();
+ char contents[] = itu.getContents();
+ // body contains enclosing { } which we need to remove (+2, -2). We
+ // cannot use the
+ // first and last statement, since leading and trailing comments are
+ // not part of the AST tree.
+ return Utils.decreaseIndent(contents, start + 2, end - 2);
+ }
+ return ""; //$NON-NLS-1$
+ }
+
+ /**
+ * update a comment of a named element. Besides the comment of the element itself, comments on contained
+ * parameters are handled.
+ *
+ * @param itu a translation unit
+ * @param definition
+ * @param ne a named element that is either an operation or a behavior (in order to update parameters)
+ */
+ public void updateComment(ITranslationUnit itu, IASTFunctionDefinition definition, NamedElement ne) {
+ IASTFileLocation bodyLoc = definition.getFileLocation();
+ int start = bodyLoc.getNodeOffset() - 1;
+ int end = start;
+ char contents[] = itu.getContents();
+ String comment = ""; //$NON-NLS-1$
+ // backward scan for beginning /*
+ while (start > 0) {
+ if (contents[start] == '/' && contents[start + 1] == '*') {
+ start += "/**".length(); // TODO: common string //$NON-NLS-1$
+ // constants with generator
+ for (int i = start; i < end; i++) {
+ comment += contents[i];
+ }
+ comment = comment.replace("\n * ", "\n"). //$NON-NLS-1$//$NON-NLS-2$
+ replace("*/", "").trim(); //$NON-NLS-1$//$NON-NLS-2$
+ break;
+ }
+ start--;
+ }
+ if (comment.length() > 0) {
+ // filter @param
+ int atParam = comment.indexOf(sAtParam);
+ String commentMethodOnly = (atParam != -1) ? comment.substring(0, atParam).trim() : comment;
+
+ EList<Comment> commentsUML = ne.getOwnedComments();
+ Comment commentUML;
+ if (commentsUML.size() == 0) {
+ commentUML = ne.createOwnedComment();
+ commentUML.getAnnotatedElements().add(commentUML);
+ } else {
+ commentUML = commentsUML.get(0);
+ }
+ while (atParam != -1) {
+ int currentAtParam = atParam;
+ atParam = comment.indexOf(sAtParam, atParam + 1);
+ String commentParam = (atParam != -1) ? comment.substring(currentAtParam, atParam)
+ : comment.substring(currentAtParam);
+ Comment commentParamUML;
+ int atParamName = sAtParam.length();
+
+ while ((atParamName < commentParam.length())
+ && Character.isWhitespace(commentParam.charAt(atParamName))) {
+ atParamName++;
+ }
+ int atParamNameEnd = atParamName;
+ while ((atParamNameEnd < commentParam.length())
+ && !Character.isWhitespace(commentParam.charAt(atParamNameEnd))) {
+ atParamNameEnd++;
+ }
+ if (atParamNameEnd < commentParam.length() - 1) {
+ String parameterName = commentParam.substring(atParamName, atParamNameEnd);
+ String commentParamText = commentParam.substring(atParamNameEnd).trim();
+ Parameter parameter = null;
+ if (ne instanceof BehavioralFeature) {
+ parameter = ((BehavioralFeature) ne).getOwnedParameter(parameterName, null, false, false);
+ }
+ else if (ne instanceof Behavior) {
+ parameter = ((Behavior) ne).getOwnedParameter(parameterName, null, false, false);
+ }
+ if (parameter != null) {
+ EList<Comment> commentsParamUML = parameter.getOwnedComments();
+ if (commentsParamUML.size() == 0) {
+ commentParamUML = parameter.createOwnedComment();
+ commentParamUML.getAnnotatedElements().add(commentParamUML);
+ } else {
+ commentParamUML = commentsParamUML.get(0);
+ }
+ commentParamUML.setBody(commentParamText);
+ } else {
+ // parameter is not found in model, e.g. either renamed
+ // or not yet existing
+ // store comment in operation comment
+ commentMethodOnly += "\n " + sAtParam + parameterName + //$NON-NLS-1$
+ " not found(!) " + commentParamText; //$NON-NLS-1$
+ }
+ }
+ }
+ commentUML.setBody(commentMethodOnly);
+ }
+ }
+
+ /**
+ * Accessor
+ * @return value of codegen attribute
+ */
+ public ILangCodegen getCodeGen() {
+ return m_codegen;
+ }
+
+ /**
+ * input of the CDT editor. Used to obtain code within editor.
+ */
+ protected IEditorInput m_input;
+
+ /**
+ * The classifier (class) that is currently edited
+ */
+ protected Classifier m_classifier;
+
+ /**
+ * name of CDT project in which the generated code is stored.
+ */
+ protected String m_projectName;
+
+ /**
+ * reference to code generator
+ */
+ protected ILangCodegen m_codegen;
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/sync/SyncModelToCDT.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/sync/SyncModelToCDT.java
new file mode 100644
index 00000000000..207dfa013c9
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.texteditor.cdt/src/org/eclipse/papyrus/texteditor/cdt/sync/SyncModelToCDT.java
@@ -0,0 +1,80 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - ansgar.radermacher@cea.fr CEA LIST - initial API and implementation
+ *
+ *******************************************************************************/
+
+package org.eclipse.papyrus.texteditor.cdt.sync;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.papyrus.codegen.extensionpoints.ILangCodegen;
+import org.eclipse.papyrus.codegen.extensionpoints.ILangCodegen.FILE_KIND;
+import org.eclipse.papyrus.codegen.extensionpoints.ILangCodegen2;
+import org.eclipse.papyrus.codegen.extensionpoints.LanguageCodegen;
+import org.eclipse.papyrus.cpp.codegen.Constants;
+import org.eclipse.papyrus.infra.core.Activator;
+import org.eclipse.papyrus.texteditor.cdt.TextEditorConstants;
+import org.eclipse.uml2.uml.Classifier;
+
+/**
+ * Main listener for model changes (registered via plugin.xml). It will delegate
+ * to the sub-listeners for specific sub-elements (type, operation, port, ...) that
+ * can be found in this package
+ *
+ */
+public class SyncModelToCDT {
+
+ private static final String CPP_SUFFIX = "cpp"; //$NON-NLS-1$
+ /**
+ * set to true, if a synchronization from an CDT editor to the model is active
+ */
+ public static boolean syncFromEditor;
+
+ public static IFile syncModelToCDT(Classifier classifier, String generatorID) {
+ if ((classifier == null) || (classifier.eResource() == null)) {
+ return null;
+ }
+
+ ILangCodegen codegen = LanguageCodegen.getGenerator(TextEditorConstants.CPP, generatorID);
+
+ IProject modelProject = codegen.getTargetProject(classifier, false);
+ if (modelProject == null) {
+ return null;
+ }
+
+ IContainer srcPkg = null;
+ IFile cppFile = null;
+ try {
+ codegen.generateCode(modelProject, classifier, null); // need listener for sync in both directions!
+
+ String suffix = (codegen instanceof ILangCodegen2) ?
+ suffix = ((ILangCodegen2) codegen).getSuffix(FILE_KIND.BODY) : CPP_SUFFIX;
+
+ cppFile = modelProject.getFile(new Path(codegen.getFileName(modelProject, classifier) + Constants.DOT + suffix));
+
+ // IStorage storage = new TextStorage(string);
+ } finally {
+ // Refresh the container for the newly created files. This needs to be done even
+ // during error because of the possibility for partial results.
+ try {
+ if (srcPkg != null) {
+ srcPkg.refreshLocal(IResource.DEPTH_INFINITE, null);
+ }
+ } catch (CoreException e) {
+ Activator.log.error(e);
+ }
+ }
+ return cppFile;
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/.classpath b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/.classpath
new file mode 100644
index 00000000000..ad32c83a788
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/.project b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/.project
new file mode 100644
index 00000000000..c547cbe1809
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.views.cpp</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/.settings/org.eclipse.jdt.core.prefs b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..c537b63063c
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/META-INF/MANIFEST.MF b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..3e836907323
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/META-INF/MANIFEST.MF
@@ -0,0 +1,34 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.core.resources,
+ org.eclipse.uml2.uml,
+ org.eclipse.emf.ecore.edit,
+ org.eclipse.gmf.runtime.notation;bundle-version="1.4.0",
+ org.eclipse.gef;bundle-version="3.6.0",
+ org.eclipse.papyrus.cpp.profile;bundle-version="1.2.0",
+ org.eclipse.ui.editors;bundle-version="3.6.1",
+ org.eclipse.papyrus.infra.core;bundle-version="1.2.0",
+ org.eclipse.jface.text;bundle-version="3.8.0",
+ org.eclipse.emf.transaction;bundle-version="1.4.0",
+ org.eclipse.gmf.runtime.common.core;bundle-version="1.4.1",
+ org.eclipse.gmf.runtime.emf.commands.core;bundle-version="1.4.0",
+ org.eclipse.papyrus.uml.tools.utils;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.emf;bundle-version="1.2.0",
+ org.eclipse.uml2.uml.profile.standard;bundle-version="1.0.100"
+Export-Package: org.eclipse.papyrus.views.cpp; uses:="org.eclipse.ui,
+ com.cea.papyrus.views.panels,
+ org.eclipse.jface.viewers,
+ org.eclipse.ui.part,
+ org.eclipse.uml2.uml,
+ org.eclipse.swt.widgets"
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-ClassPath: .
+Bundle-Version: 1.2.0.qualifier
+Bundle-Localization: plugin
+Bundle-Name: %pluginName
+Bundle-Activator: org.eclipse.papyrus.views.cpp.Activator
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.views.cpp;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/about.html b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/about.html
new file mode 100644
index 00000000000..209103075a7
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>November 14, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/about.ini b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/about.ini
new file mode 100644
index 00000000000..9b4b2c53944
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/about.ini
@@ -0,0 +1,17 @@
+# about.ini
+
+# feature image (for about info...)
+featureImage = resources/icons/Papyrus_32x32.gif
+
+#about text
+aboutText =\
+Papyrus Cpp Code generation\n\
+\n\
+Version: 1.6.2\n\
+\n\
+(c) Copyright CEA 2006, 2007. All rights reserved.\n\
+\n\
+This program and the accompanying materials are made available under\n\
+the terms of the Eclipse Public License v1.0 which accompanies this\n\
+distribution, and is available at http://www.eclipse.org/legal/epl-v10.html\n\
+\ \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/build.properties b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/build.properties
new file mode 100644
index 00000000000..b961dfd1fd2
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/build.properties
@@ -0,0 +1,10 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.properties,\
+ plugin.xml,\
+ resources/,\
+ about.ini,\
+ about.html
+src.includes = about.html
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/plugin.properties b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/plugin.properties
new file mode 100644
index 00000000000..7ced719d446
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/plugin.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2013 CEA LIST.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# CEA LIST - initial API and implementation
+###############################################################################
+pluginName=Simple Papyrus C++ view (Incubation)
+providerName=Eclipse Modeling Project
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/plugin.xml b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/plugin.xml
new file mode 100644
index 00000000000..90b2f91a207
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/plugin.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.views">
+ <view
+ category="org.eclipse.papyrus.views.category"
+ class="org.eclipse.papyrus.views.cpp.CppPanelView"
+ icon="resources/icons/transfo_cpp.gif"
+ id="com.cea.papyrus.views.cpp"
+ name="C/C++"/>
+ </extension>
+</plugin>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/pom.xml b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/pom.xml
new file mode 100644
index 00000000000..088bc59db8a
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.views.cpp</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/resources/icons/Papyrus_32x32.gif b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/resources/icons/Papyrus_32x32.gif
new file mode 100644
index 00000000000..a57b9d92dee
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/resources/icons/Papyrus_32x32.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/resources/icons/save_edit.gif b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/resources/icons/save_edit.gif
new file mode 100644
index 00000000000..499dd0ca602
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/resources/icons/save_edit.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/resources/icons/transfo_cpp.gif b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/resources/icons/transfo_cpp.gif
new file mode 100644
index 00000000000..7caaa0fdae8
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/resources/icons/transfo_cpp.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/resources/icons/transfo_cpp_old.gif b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/resources/icons/transfo_cpp_old.gif
new file mode 100644
index 00000000000..4b39411daf5
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/resources/icons/transfo_cpp_old.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/resources/icons/undo_edit.gif b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/resources/icons/undo_edit.gif
new file mode 100644
index 00000000000..eae118ad168
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/resources/icons/undo_edit.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/cpp/AbstractCppPanelView.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/cpp/AbstractCppPanelView.java
new file mode 100644
index 00000000000..d04e1955e35
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/cpp/AbstractCppPanelView.java
@@ -0,0 +1,107 @@
+/*******************************************************************************
+ * Copyright (c) 2006 - 2010 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.views.cpp;
+
+import org.eclipse.papyrus.views.panels.CppAbstractPanel;
+import org.eclipse.papyrus.views.panels.PanelFactory;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.ISelectionListener;
+import org.eclipse.ui.part.ViewPart;
+import org.eclipse.uml2.uml.Element;
+
+
+/**
+ * This class extends <code>ViewPart</code>. This class draws the Accord/Cpp
+ * panel in the Modeling Perspective. It also implements <code>ISelectionListener</code> in order to know which element is selected
+ * in the workbench. In fact, the content of the view changes depending on the
+ * type of the element selected
+ * @deprecated This view will be replaced by an XWT view for the C++ profile
+ */
+@Deprecated
+public abstract class AbstractCppPanelView extends ViewPart implements ISelectionListener {
+
+ /** parent composite of the panels contained by this view */
+ protected Composite parent;
+
+ /** stores the current target */
+ protected Object currentTarget;
+
+ /** keeps the reference to the panel (abstract class) */
+ protected CppAbstractPanel panel;
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+ */
+ @Override
+ public void createPartControl(Composite parent) {
+ getViewSite().getPage().addSelectionListener(this);
+ this.parent = parent;
+ panel = createPanel(parent, 0, null);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
+ */
+ @Override
+ public void setFocus() {
+ // delegate focus to the panel
+ panel.setFocus();
+ }
+
+ /**
+ * Changes the panel displayed in the view, depending on the type of the
+ * newly selected element.
+ */
+ protected void switchUI() {
+ /*
+ * test to check if the panel is not disposed. Closing the panel
+ * view and open it again creates a second instance of panel, one of
+ * it is disposed, the new one is active
+ */
+ if (!panel.isDisposed()) {
+ panel.exitAction();
+ panel.dispose();
+
+ if (currentTarget != null && currentTarget instanceof Element) {
+ // creates the new panel given the current target
+ panel = createPanel(parent, 0, (Element) currentTarget);
+ } else {
+ panel = createPanel(parent, 0, null);
+ }
+
+ panel.setBounds(panel.getParent().getBounds());
+ panel.entryAction();
+ }
+ }
+
+
+ /**
+ * Creates the new panel, when switching UI.
+ * <p>
+ * This class should be overloaded when working with RSA or other tools, using a new PanelFactory
+ *
+ * @param parent
+ * the parent of the new panel
+ * @param style
+ * the SWT style of this panel
+ * @param element
+ * the element for which the panel is created
+ * @return the newly created panel
+ */
+ protected CppAbstractPanel createPanel(Composite parent, int style, Element element) {
+ return PanelFactory.eINSTANCE.createPanel(parent, 0, currentTarget);
+ }
+} \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/cpp/Activator.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/cpp/Activator.java
new file mode 100644
index 00000000000..589debbdf42
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/cpp/Activator.java
@@ -0,0 +1,160 @@
+/*******************************************************************************
+ * Copyright (c) 2006 - 2010 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.papyrus.views.cpp;
+
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.resource.ImageRegistry;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ * @deprecated This view will be replaced by an XWT view for the C++ profile
+ */
+@Deprecated
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.views.cpp";
+
+ // The shared instance
+ private static Activator plugin;
+
+ // Resource bundle.
+ public static final Font VIEW_FONT = new Font(null, "Bitstream Vera Sans Mono", 10, SWT.NORMAL);
+
+ private static final String RESOURCE_NAME = PLUGIN_ID + ".Activator";
+
+ public static final String ICONS_PATH = "resources/icons/";
+
+ public static final String DEFAULT_IMAGE = ICONS_PATH + "default.gif";
+
+ public static final String SAVE_IMAGE = ICONS_PATH + "save_edit.gif";
+
+ public static final String UNDO_IMAGE = ICONS_PATH + "undo_edit.gif";
+
+ public static final String WARNING_IMAGE = ICONS_PATH + "warning.gif";
+
+ private ResourceBundle resourceBundle;
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ plugin = this;
+ try {
+ resourceBundle = ResourceBundle.getBundle(RESOURCE_NAME);
+ } catch (MissingResourceException mre) {
+ // Log.exception(mre);
+ resourceBundle = null;
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the string from the plugin's resource bundle, or 'key' if not
+ * found.
+ */
+ public static String getResourceString(String key) {
+ ResourceBundle bundle = getDefault().getResourceBundle();
+ try {
+ return (bundle != null) ? bundle.getString(key) : key;
+ } catch (MissingResourceException e) {
+ return key;
+ }
+ }
+
+ /**
+ * Returns the plugin's resource bundle,
+ */
+ public ResourceBundle getResourceBundle() {
+ return resourceBundle;
+ }
+
+ /**
+ * Returns an <code>org.eclipse.swt.graphics.Image</code> identified by
+ * its key. <BR>
+ * By default, it returns a default image. This image is the image placed in
+ * the directory <em>resources/icons/default.gif</em>
+ *
+ * @param key
+ * the key of the image
+ * @return the Image
+ */
+ public static Image getImage(String key) {
+ ImageRegistry registry = getDefault().getImageRegistry();
+ Image image = registry.get(key);
+ if (image == null) {
+ ImageDescriptor desc = AbstractUIPlugin
+ .imageDescriptorFromPlugin(PLUGIN_ID, key);
+ registry.put(key, desc);
+ image = registry.get(key);
+ }
+ if (image == null && !key.equals(DEFAULT_IMAGE)) {
+ image = getImage(DEFAULT_IMAGE);
+ }
+
+ return image;
+ }
+
+ /**
+ * Log the given exception into the plugin log.
+ *
+ * @param e
+ * the exception to log
+ */
+ public static void log(Exception e) {
+ getDefault().getLog().log(new Status(
+ IStatus.ERROR,
+ PLUGIN_ID,
+ IStatus.OK,
+ "exception caught: " + e.getMessage(),
+ e));
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/cpp/Activator.properties b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/cpp/Activator.properties
new file mode 100644
index 00000000000..79979449eba
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/cpp/Activator.properties
@@ -0,0 +1,96 @@
+# Defaut Panel
+panel.default.text=Please select a UML item on diagram or in the Model explorer
+
+# Operation Panel
+panel.operation.button.save=Save
+panel.operation.button.save.tooltip=Save Cpp operation body into its method Activity
+panel.operation.button.cancel=Cancel
+panel.operation.button.cancel.tooltip=Ignore modifications made since last save action
+panel.operation.dialog.saveorignore.title=Warning : modifications not saved
+panel.operation.dialog.saveorignore.body=Do you want to save modifications for the body of this method ?
+panel.operation.dialog.saveorignore.button.save=Save
+panel.operation.dialog.saveorignore.button.ignore=Ignore
+
+# Class Panel
+panel.class.button.save=Save
+panel.class.button.save.tooltip=Save Cpp include associated to this class
+
+panel.class.button.cancel=Cancel
+panel.class.button.cancel.tooltip=Ignore modifications made since last save action
+
+panel.class.dialog.saveorignore.title=Warning : modifications not saved
+panel.class.dialog.saveorignore=Do you want to save modifications for the include declared in this class ?
+panel.class.dialog.saveorignore.button.save=Save
+panel.class.dialog.saveorignore.button.ignore=Ignore
+
+# Package Panel
+panel.package.button.save=Save
+panel.package.button.save.tooltip=Save Cpp include associated to this package
+
+panel.package.button.cancel=Cancel
+panel.package.button.cancel.tooltip=Ignore modifications made since last save action
+
+panel.package.dialog.saveorignore.title=Warning : modifications not saved
+panel.package.dialog.saveorignore=Do you want to save modifications for the include declared in this package ?
+panel.package.dialog.saveorignore.button.save=Save
+panel.package.dialog.saveorignore.button.ignore=Ignore
+
+# PrimitiveType Panel
+panel.type.button.save=Save
+panel.type.button.save.tooltip=Save Cpp type definition associated to this primitive type
+
+panel.type.button.cancel=Cancel
+panel.type.button.cancel.tooltip=Ignore modifications made since last save action
+
+panel.type.dialog.saveorignore.title=Warning : modifications not saved
+panel.type.dialog.saveorignore=Do you want to save modifications for the type defined here ?
+panel.type.dialog.saveorignore.button.save=Save
+panel.type.dialog.saveorignore.button.ignore=Ignore
+
+# Property Panel
+panel.property.button.save=Save
+panel.property.button.save.tooltip=Save Cpp Property informations
+
+panel.property.button.cancel=Cancel
+panel.property.button.cancel.tooltip=Ignore modifications made since last save action
+
+panel.property.dialog.saveorignore.title=Warning : modifications not saved
+panel.property.dialog.saveorignore=Do you want to save modifications for the Property defined here ?
+panel.property.dialog.saveorignore.button.save=Save
+panel.property.dialog.saveorignore.button.ignore=Ignore
+
+# Parameter Panel
+panel.parameter.button.save=Save
+panel.parameter.button.save.tooltip=Save Cpp Parameter informations
+
+panel.parameter.button.cancel=Cancel
+panel.parameter.button.cancel.tooltip=Ignore modifications made since last save action
+
+panel.parameter.dialog.saveorignore.title=Warning : modifications not saved
+panel.parameter.dialog.saveorignore=Do you want to save modifications for the Parameter defined here ?
+panel.parameter.dialog.saveorignore.button.save=Save
+panel.parameter.dialog.saveorignore.button.ignore=Ignore
+
+# TemplateBinding Panel
+panel.templatebinding.button.save=Save
+panel.templatebinding.button.save.tooltip=Save Cpp TemplateBinding informations
+
+panel.templatebinding.button.cancel=Cancel
+panel.templatebinding.button.cancel.tooltip=Ignore modifications made since last save action
+
+panel.templatebinding.dialog.saveorignore.title=Warning : modifications not saved
+panel.templatebinding.dialog.saveorignore=Do you want to save modifications for the TemplateBinding defined here ?
+panel.templatebinding.dialog.saveorignore.button.save=Save
+panel.templatebinding.dialog.saveorignore.button.ignore=Ignore
+
+# TemplateParameter Panel
+panel.templateparameter.button.save=Save
+panel.templateparameter.button.save.tooltip=Save Cpp TemplateParameter informations
+
+panel.templateparameter.button.cancel=Cancel
+panel.templateparameter.button.cancel.tooltip=Ignore modifications made since last save action
+
+panel.templateparameter.dialog.saveorignore.title=Warning : modifications not saved
+panel.templateparameter.dialog.saveorignore=Do you want to save modifications for the TemplateParameter defined here ?
+panel.templateparameter.dialog.saveorignore.button.save=Save
+panel.templateparameter.dialog.saveorignore.button.ignore=Ignore
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/cpp/CommandSupport.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/cpp/CommandSupport.java
new file mode 100644
index 00000000000..ab69b52fd0d
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/cpp/CommandSupport.java
@@ -0,0 +1,81 @@
+/*******************************************************************************
+ * Copyright (c) 2006 - 2010 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.views.cpp;
+
+import java.util.Collections;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.operations.IOperationHistory;
+import org.eclipse.core.commands.operations.OperationHistoryFactory;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand;
+import org.eclipse.papyrus.infra.core.utils.EditorUtils;
+
+/**
+ * Utility function. Allow adaption to command stack
+ *
+ * @author ansgar
+ * @deprecated This view will be replaced by an XWT view for the C++ profile
+ */
+@Deprecated
+public class CommandSupport
+{
+ /**
+ * Execute the passed Runnable within a command
+ *
+ * @param label
+ * @param command
+ */
+ public static void exec(String label, final Runnable command)
+ {
+ TransactionalEditingDomain domain = EditorUtils.getTransactionalEditingDomain();
+ IOperationHistory history = OperationHistoryFactory.getOperationHistory();
+ try {
+ history.execute(new AbstractTransactionalCommand(domain, label, Collections.EMPTY_LIST) {
+ @Override
+ public CommandResult doExecuteWithResult(IProgressMonitor dummy, IAdaptable info) {
+ command.run();
+ return CommandResult.newOKCommandResult();
+ }
+ }, null, null);
+ } catch (ExecutionException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * Execute the passed Runnable within a command
+ *
+ * @param label
+ * @param command
+ */
+ public static void exec(TransactionalEditingDomain domain, String label, final Runnable command)
+ {
+ // do works, undo does not (but is selectable in Papyrus Model explorer)
+ IOperationHistory history = OperationHistoryFactory.getOperationHistory();
+ try {
+ history.execute(new AbstractTransactionalCommand(domain, label, Collections.EMPTY_LIST) {
+ @Override
+ public CommandResult doExecuteWithResult(IProgressMonitor dummy, IAdaptable info) {
+ command.run();
+ return CommandResult.newOKCommandResult();
+ }
+ }, null, null);
+ } catch (ExecutionException e) {
+ e.printStackTrace();
+ }
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/cpp/CppPanelView.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/cpp/CppPanelView.java
new file mode 100644
index 00000000000..677adbf80db
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/cpp/CppPanelView.java
@@ -0,0 +1,91 @@
+/*******************************************************************************
+ * Copyright (c) 2006 - 2007 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.views.cpp;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.papyrus.infra.emf.utils.EMFHelper;
+import org.eclipse.papyrus.views.panels.CppAbstractPanel;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.uml2.uml.Element;
+
+
+/**
+ * This class extends <code>ViewPart</code>. This class draws the Accord/Cpp
+ * panel in the Modeling Perspective. It also implements <code>ISelectionListener</code> in order to know which element is selected
+ * in the workbench. In fact, the content of the view changes depending on the
+ * type of the element selected
+ * @deprecated This view will be replaced by an XWT view for the C++ profile
+ */
+@Deprecated
+public class CppPanelView extends AbstractCppPanelView {
+
+ /**
+ * Creates the new panel, when switching UI.
+ * <p>
+ * This class should be overloaded when working with RSA or other tools, using a new PanelFactory
+ *
+ * @param parent
+ * the parent of the new panel
+ * @param style
+ * the SWT style of this panel
+ * @param element
+ * the element for which the panel is created
+ * @return the newly created panel
+ */
+ @Override
+ protected CppAbstractPanel createPanel(Composite parent, int style,
+ Element element) {
+ return org.eclipse.papyrus.views.panels.PanelFactory.eINSTANCE
+ .createPanel(parent, 0, currentTarget);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui.IWorkbenchPart,
+ * org.eclipse.jface.viewers.ISelection)
+ */
+ @Override
+ public void selectionChanged(IWorkbenchPart part, ISelection selection) {
+
+ IStructuredSelection sSelection = null;
+ if (selection instanceof IStructuredSelection) {
+ sSelection = (IStructuredSelection) selection;
+ }
+
+ // exclude case of an empty selection which is not a Tree selection, since changing views provokes an
+ // empty selection (selection gets lost, although same element remains selected)
+ if ((selection != null) && (sSelection != null) && sSelection.isEmpty()) {
+ return;
+ }
+
+ // No available selection: switch to default panel
+ if ((sSelection == null) || (sSelection.size() != 1)) {
+ currentTarget = null;
+ switchUI();
+ return;
+ }
+
+ // Retrieve selected object
+ EObject currentObject = EMFHelper.getEObject(sSelection.getFirstElement());
+
+ if (currentObject instanceof Element) {
+ if (currentTarget != currentObject) {
+ currentTarget = currentObject;
+ switchUI();
+ }
+ }
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/listeners/UMLElementPanelListener.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/listeners/UMLElementPanelListener.java
new file mode 100644
index 00000000000..6c7f1b59a6c
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/listeners/UMLElementPanelListener.java
@@ -0,0 +1,90 @@
+/*******************************************************************************
+ * Copyright (c) 2006 - 2007 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.papyrus.views.listeners;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.papyrus.views.panels.CppAbstractPanel;
+
+
+
+/**
+ * Listener for a uml element, for a given AccordCppAbstractPanel.
+ * @deprecated This view will be replaced by an XWT view for the C++ profile
+ */
+@Deprecated
+public class UMLElementPanelListener implements Adapter {
+
+ /** element listened */
+ private Notifier target;
+
+ /** panel that listens to this element */
+ protected CppAbstractPanel panel;
+
+ /**
+ * Creates a new UMLElementListener for the given panel.
+ *
+ * @param panel
+ * the panel that describes this element
+ */
+ public UMLElementPanelListener(CppAbstractPanel panel) {
+ this.panel = panel;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.emf.common.notify.Adapter#notifyChanged(org.eclipse.emf.common.notify.Notification)
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ if (notification.getEventType() != Notification.REMOVING_ADAPTER) {
+ panel.reset(); // equivalent to a refresh
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.emf.common.notify.Adapter#getTarget()
+ */
+ @Override
+ public Notifier getTarget() {
+ return this.target;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.emf.common.notify.Adapter#setTarget(org.eclipse.emf.common.notify.Notifier)
+ */
+ @Override
+ public void setTarget(Notifier newTarget) {
+ this.target = newTarget;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.emf.common.notify.Adapter#isAdapterForType(java.lang.Object)
+ */
+ @Override
+ public boolean isAdapterForType(Object type) {
+ Class<? extends Notifier> class_ = target.getClass();
+ // if class is not null
+ if (class_ != null) {
+ return class_.equals(type);
+ }
+ // default case: it is not an adapter
+ return false;
+ }
+} \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppAbstractPanel.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppAbstractPanel.java
new file mode 100644
index 00000000000..7a7ee2cbaba
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppAbstractPanel.java
@@ -0,0 +1,447 @@
+/*******************************************************************************
+ * Copyright (c) 2006 - 2007 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.views.panels;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.text.Document;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.source.SourceViewer;
+import org.eclipse.papyrus.views.cpp.Activator;
+import org.eclipse.papyrus.views.listeners.UMLElementPanelListener;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.FormLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.uml2.uml.Element;
+
+
+/**
+ * @deprecated This view will be replaced by a XWT view for the C++ profile
+ */
+@Deprecated
+public abstract class CppAbstractPanel extends Composite {
+
+ static final Font pluginFont = new Font(null, "Bitstream Vera Sans Mono", 10, SWT.NORMAL);
+
+ public static final int H_SPACE = 10;
+
+ // string representing the ID of the language
+ // this is the string contained in the language attribute of Activity
+ protected static final String C_CPP_ID = "C/C++"; //$NON-NLS-1$
+
+ protected static final String CPP_ID = "C++"; //$NON-NLS-1$
+
+ protected static final String C_ID = "C"; //$NON-NLS-1$
+
+ // CppInclude text area
+ protected Button buttonSave;
+
+ protected Button buttonCancel;
+
+ /** Listener for modifications on the UML element */
+ protected UMLElementPanelListener umlListener = null;
+
+ public CppAbstractPanel(Composite parent, int style) {
+
+ super(parent, style);
+ this.setLayout(new FormLayout());
+ FormData layoutData = new FormData();
+ layoutData.top = new FormAttachment(0);
+ layoutData.bottom = new FormAttachment(100);
+ layoutData.left = new FormAttachment(0);
+ layoutData.right = new FormAttachment(100);
+ this.setLayoutData(layoutData);
+ this.setBackground(parent.getBackground());
+ this.setVisible(true);
+ }
+
+ public abstract Control createContent();
+
+
+ // /////////////////////////////////////////////////////////////////////
+ // Following method are used to create text area w/o coloration
+ // /////////////////////////////////////////////////////////////////////
+ // /**
+ // *
+ // */
+ // protected FastPartitioner createPartitioner() {
+ // FastPartitioner pluginPartitioner = new FastPartitioner(
+ // new CPartitionScanner(), new String[] {
+ // CPartitionScanner.C_SINGLE_LINE_COMMENT,
+ // CPartitionScanner.C_MULTILINE_COMMENT,
+ // CPartitionScanner.C_STRING
+ // }
+ // );
+ //
+ // return pluginPartitioner;
+ // }
+
+
+ /**
+ * Create a group for a text area
+ *
+ * @param textArea
+ * parent composite
+ * @param name
+ * of the group
+ * @param t_previous
+ * attached to top border
+ * @param l_previous
+ * attached to left border
+ * @param toRight
+ * should group reach right border of parent
+ * @param height
+ * of text in percent of group size
+ * @param width
+ * of text in percent of group size
+ * @param toBottom
+ * should group reach bottom of parent
+ * @return new Group
+ */
+ protected Group createGroup(
+ Composite textArea
+ , String name
+ , Control t_previous
+ , Control l_previous
+ , boolean toRight
+ , int height
+ , int width
+ , boolean toBottom) {
+
+ Group groupBody = new Group(textArea, SWT.NONE);
+
+ groupBody.setBackground(textArea.getBackground());
+ groupBody.setLayout(new FormLayout());
+ groupBody.setText(" " + name + " "); //$NON-NLS-1$ //$NON-NLS-2$
+ groupBody.setFont(Activator.VIEW_FONT);
+
+ FormData data = new FormData();
+ if (t_previous != null) {
+ data.top = new FormAttachment(t_previous, H_SPACE);
+ }
+
+ if (l_previous != null) {
+ data.left = new FormAttachment(l_previous, H_SPACE);
+ }
+
+ if (data.top == null) {
+ data.top = new FormAttachment(0, H_SPACE);
+ }
+
+ if (data.left == null) {
+ data.left = new FormAttachment(0, H_SPACE);
+ }
+
+ if (toBottom) {
+ data.bottom = new FormAttachment(100, -H_SPACE);
+ } else if (height != 0) {
+ data.bottom = new FormAttachment(height);
+ }
+
+ if (toRight) {
+ data.right = new FormAttachment(100, -H_SPACE);
+ } else {
+ data.right = new FormAttachment(width, 0);
+ }
+
+ groupBody.setLayoutData(data);
+ return groupBody;
+ }
+
+ /**
+ * Create a simple viewer without coloration
+ *
+ * @param doc
+ * @param group
+ * @return
+ */
+ protected SourceViewer createViewer(IDocument doc, Group group) {
+
+ SourceViewer viewer =
+ new SourceViewer(group, null, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
+
+ viewer.setDocument(doc);
+
+ viewer.getTextWidget().setLayout(new FormLayout());
+ FormData viewerData = new FormData();
+ viewerData.height = 20;
+ viewerData.top = new FormAttachment(0);
+ viewerData.bottom = new FormAttachment(100);
+ viewerData.left = new FormAttachment(0);
+ viewerData.right = new FormAttachment(100);
+ viewer.getTextWidget().setLayoutData(viewerData);
+
+ return viewer;
+ }
+
+ /**
+ *
+ * @param doc
+ * @param group
+ * @return
+ */
+ protected SourceViewer createViewerC(IDocument doc, Group group) {
+ return createViewer(doc, group);
+ }
+
+ /**
+ * Create a simple document
+ *
+ * @return
+ */
+ protected IDocument createDocument() {
+ IDocument doc = new Document();
+
+ return doc;
+ }
+
+ /**
+ * Create a C/C++ (see cdt) document
+ *
+ * @return
+ */
+ protected IDocument createDocumentC() {
+ return createDocument();
+ }
+
+ // /////////////////////////////////////////////////////////////////////
+
+ /**
+ * Create save and reset button in the top - right of the structure
+ *
+ */
+ protected void createSaveResetButtons() {
+
+ // ///////////////////////////////////////////////////////////////////////
+ // Create a composite that contain the "Save/Cancel" buttons
+ // ///////////////////////////////////////////////////////////////////////
+
+ buttonSave = new Button(this, SWT.PUSH);
+ buttonSave.setImage(Activator.getImage(Activator.SAVE_IMAGE));
+ buttonSave.setToolTipText(Activator.getResourceString("panel.class.button.save.tooltip")); //$NON-NLS-1$
+ buttonSave.addSelectionListener(new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent arg0) {
+ save();
+ }
+ });
+
+ buttonCancel = new Button(this, SWT.PUSH);
+ buttonCancel.setImage(Activator.getImage(Activator.UNDO_IMAGE));
+ buttonCancel.setToolTipText(Activator.getResourceString("panel.class.button.cancel.tooltip")); //$NON-NLS-1$
+ buttonCancel.addSelectionListener(new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent arg0) {
+ reset();
+ }
+ });
+
+ FormData dataC = new FormData();
+ dataC.right = new FormAttachment(100, -H_SPACE);
+ dataC.top = new FormAttachment(0, H_SPACE);
+ buttonCancel.setLayoutData(dataC);
+
+ FormData dataS = new FormData();
+ dataS.right = new FormAttachment(buttonCancel, -H_SPACE);
+ dataS.top = new FormAttachment(0, H_SPACE);
+ buttonSave.setLayoutData(dataS);
+ }
+
+ /**
+ * Create new button
+ *
+ * @param name
+ * of the button
+ * @param parent
+ * composite that owns the button
+ * @param previous
+ * structure on which button is left attached
+ * @return the newly created button
+ */
+ protected Button createButton(String name, Composite parent, Button previous) {
+ Button newButton = new Button(parent, SWT.CHECK);
+
+ newButton.setBackground(parent.getBackground());
+ newButton.setText(name);
+ FormData data = new FormData();
+
+ if (previous == null) {
+ data.left = new FormAttachment(0, H_SPACE);
+ } else {
+ data.left = new FormAttachment(previous, H_SPACE);
+ }
+
+ data.top = new FormAttachment(0, H_SPACE);
+ newButton.setLayoutData(data);
+
+ return newButton;
+ }
+
+ /**
+ * Selection listener that match button status and a particular stereotype
+ *
+ * @param button
+ * @param stereotypeName
+ */
+ protected void addStereotypeSelectionListener(final Button button, final String stereotypeName) {
+
+ button.addSelectionListener(
+ new SelectionListener() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+
+ updateModel();
+ refreshPanel();
+ }
+
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+ }
+ );
+ }
+
+ /**
+ * Action executed just after the panel is created for the specific element.
+ */
+ public void entryAction() {
+ reset();
+ }
+
+ /**
+ * Action executed just before moving to the new element.
+ */
+ public void exitAction() {
+ boolean modelChanged = false;
+
+ // check if model was modified (read only action)
+ modelChanged = checkModifications();
+
+ // model has change, must go in a write transaction => save
+ if (modelChanged) {
+ MessageDialog dialog = new MessageDialog(
+ Display.getCurrent().getActiveShell(),
+ Activator.getResourceString("panel.property.dialog.saveorignore.title"), //$NON-NLS-1$
+ Activator.getImage(Activator.WARNING_IMAGE),
+ Activator.getResourceString("panel.property.dialog.saveorignore"), //$NON-NLS-1$
+ 0,
+ new String[] {
+ Activator.getResourceString("panel.property.dialog.saveorignore.button.save"), //$NON-NLS-1$
+ Activator.getResourceString("panel.property.dialog.saveorignore.button.ignore") }, //$NON-NLS-1$
+ 0);
+ dialog.open();
+ if (dialog.getReturnCode() == 0) { // saveButton pressed
+ save();
+ }
+ }
+ }
+
+ /**
+ * Check if the content of the panel has modification against the corresponding UML element.
+ *
+ * @return <code>true</code> if the panel has modification against the model
+ */
+ public abstract boolean checkModifications();
+
+ /**
+ * Action executed when save button is pressed
+ */
+ public abstract void save();
+
+ /**
+ * Action executed when reset button is pressed
+ */
+ public void reset() {
+ boolean modelValid = true;
+ modelValid = isModelValid();
+ if (!modelValid) {
+ updateModel();
+ }
+ refreshPanel();
+ }
+
+ /**
+ * Refresh panel
+ */
+ protected abstract void refreshPanel();
+
+ /**
+ * Makes the model coherent with the AccordCpp Methodology
+ */
+ protected void updateModel() {
+ }
+
+ /**
+ * Check if model is coherent with the AccordCpp Methodology
+ *
+ * @return <code>true</code> if the model is coherent with the AccordCpp Methodology
+ */
+ protected boolean isModelValid() {
+ return true;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.swt.widgets.Widget#dispose()
+ */
+ @Override
+ public void dispose() {
+ if (getSelectedElement() != null && umlListener != null) {
+ getSelectedElement().eAdapters().remove(umlListener);
+ }
+ super.dispose();
+ }
+
+ /**
+ * Returns the selected element
+ * <p>
+ * Warning: it can be <code>null</code>
+ *
+ * @return the selected element
+ */
+ public abstract Element getSelectedElement();
+
+ /**
+ * Sets the new selected element
+ *
+ * @param newElement
+ * the new selected element
+ */
+ public void setSelectedElement(Element newElement) {
+ if (newElement != null && umlListener != null) {
+ newElement.eAdapters().add(umlListener);
+ }
+ }
+
+ protected static void openInformation(final String title, final String message)
+ {
+ Display.getDefault().syncExec(new Runnable() {
+ @Override
+ public void run() {
+ MessageDialog.openInformation(Display.getCurrent().getActiveShell(), title, message);
+ }
+ });
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppBehaviorPanel.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppBehaviorPanel.java
new file mode 100644
index 00000000000..00a143d0f99
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppBehaviorPanel.java
@@ -0,0 +1,275 @@
+/*******************************************************************************
+ * Copyright (c) 2006 - 2007 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.views.panels;
+
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.papyrus.C_Cpp.Virtual;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.papyrus.views.cpp.CommandSupport;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.uml2.uml.Behavior;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.OpaqueBehavior;
+
+
+/**
+ * Panel displayed when an Operation is selected
+ *
+ * TODO: instead of keeping isAbstract and pureVirtual Stereotype synchronized, pure virtual
+ * could be removed from the panel
+ * @deprecated This view will be replaced by a XWT view for the C++ profile
+ */
+@Deprecated
+public class CppBehaviorPanel extends CppAbstractPanel {
+
+ private Group groupBody;
+
+ // document used by the viewer
+ private IDocument docBody;
+
+ private Behavior selectedBehavior;
+
+ Element selectedEOwner;
+
+ protected String origBody;
+
+ public CppBehaviorPanel(Composite parent, int style) {
+ super(parent, style);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#getSelectedElement()
+ */
+ @Override
+ public Behavior getSelectedElement() {
+ return selectedBehavior;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#setSelectedElement(java.lang.Element)
+ */
+ @Override
+ public void setSelectedElement(Element newElement) {
+ super.setSelectedElement(newElement);
+ if (newElement instanceof Behavior) {
+ this.selectedBehavior = (Behavior) newElement;
+ // Retrieve the owner
+ this.selectedEOwner = selectedBehavior.getOwner();
+ }
+ else {
+ throw new RuntimeException("bad selection: " + newElement + " should be an uml2 Behavior");
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accorduml.ui.views.panels.AccordUMLAbstractPanel#createContent()
+ */
+ @Override
+ public Control createContent()
+ {
+ // /////////////////////////////////////////////////////////////////////
+ // Create save reset buttons with superclass method
+ // /////////////////////////////////////////////////////////////////////
+ createSaveResetButtons();
+
+ // /////////////////////////////////////////////////////////////////////
+ // Constructor init list
+ // /////////////////////////////////////////////////////////////////////
+
+ // /////////////////////////////////////////////////////////////////////
+ // Body
+ // /////////////////////////////////////////////////////////////////////
+
+ docBody = createDocumentC();
+ groupBody = createGroup(
+ this,
+ "Method body", //$NON-NLS-1$
+ buttonSave,
+ null,
+ true,
+ 0,
+ 0,
+ true);
+ // Use CDT CEditor coloration
+ createViewerC(docBody, groupBody);
+
+ // /////////////////////////////////////////////////////////////////////
+
+ return this;
+ }
+
+
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#save()
+ */
+ @Override
+ public void save()
+ {
+ if (selectedBehavior == null) {
+ /* Log.debug("saveBody : selectedOperation is null"); */
+ } else {
+ CommandSupport.exec("C++ behavior save", new Runnable() {
+
+ @Override
+ public void run() {
+ // Body
+ setCppBody(selectedBehavior, docBody.get());
+ origBody = docBody.get();
+ }
+ });
+ }
+
+ }
+
+ public static String getCppBody(Behavior behavior)
+ {
+ if (behavior instanceof OpaqueBehavior) {
+ OpaqueBehavior ob = (OpaqueBehavior) behavior;
+ int i = 0;
+ for (String language : ob.getLanguages()) {
+ if (language.equals(C_CPP_ID)) {
+ return ob.getBodies().get(i);
+ }
+ else if (language.equals(CPP_ID)) {
+ return ob.getBodies().get(i);
+ }
+ else if (language.equals(C_ID)) {
+ return ob.getBodies().get(i);
+ }
+ i++;
+ }
+ }
+ return "";
+ }
+
+ public static void setCppBody(Behavior behavior, String body)
+ {
+ boolean done = false;
+ if (behavior instanceof OpaqueBehavior) {
+ OpaqueBehavior ob = (OpaqueBehavior) behavior;
+ int i = 0;
+ for (String language : ob.getLanguages()) {
+ if (language.equals(C_CPP_ID) || language.equals(CPP_ID) || language.equals(C_ID)) {
+ done = true;
+ ob.getBodies().set(i, body);
+ break;
+ }
+ i++;
+ }
+ if (!done) {
+ ob.getLanguages().add(C_CPP_ID);
+ ob.getBodies().add(body);
+ }
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accorduml.ui.views.panels.AccordUMLAbstractPanel#entryAction()
+ */
+ @Override
+ public void entryAction() {
+ super.entryAction();
+ reset();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accorduml.ui.views.panels.AccordUMLAbstractPanel#exitAction()
+ */
+ @Override
+ public void exitAction() {
+ // do exit action, only if the owner is a class
+ if (selectedEOwner instanceof Class) {
+ super.exitAction();
+ }
+ }
+
+ @Override
+ public boolean checkModifications() {
+ if (!(docBody.get().equals(origBody))) {
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ protected void refreshPanel() {
+ if (selectedBehavior == null) {
+ /* Log.debug("resetBody : selectedOperation is null"); */
+ }
+ else {
+ String body = getCppBody(selectedBehavior);
+ origBody = body;
+ docBody.set(body);
+ }
+ }
+
+ @Override
+ protected boolean isModelValid() {
+ if (selectedBehavior == null) {
+ return true;
+ }
+ if (selectedEOwner instanceof Class) {
+
+ if (selectedBehavior.isAbstract()) {
+ if (!StereotypeUtil.isApplied(selectedBehavior, Virtual.class)) {
+ return false;
+ }
+ }
+ } else {
+ // owner is interface
+ if (!selectedBehavior.isAbstract()) {
+ return false;
+ }
+ if (StereotypeUtil.isApplied(selectedBehavior, Virtual.class)) {
+ return false;
+ }
+ }
+ return true;
+
+ }
+
+ @Override
+ protected void updateModel()
+ {
+ CommandSupport.exec("C++ behavior save", new Runnable() {
+
+ @Override
+ public void run()
+ {
+ if (selectedBehavior == null) {
+ return;
+ }
+ if (selectedEOwner instanceof Class) {
+ }
+ else {
+ selectedBehavior.setIsAbstract(true);
+ }
+ }
+ });
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppClassPanel.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppClassPanel.java
new file mode 100644
index 00000000000..7d3d6c40d07
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppClassPanel.java
@@ -0,0 +1,225 @@
+/*******************************************************************************
+ * Copyright (c) 2006 - 2007 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.views.panels;
+
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.source.SourceViewer;
+import org.eclipse.papyrus.C_Cpp.Include;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.papyrus.views.cpp.CommandSupport;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+
+
+/**
+ * Panel displayed when a Class is selected
+ * @deprecated This view will be replaced by a XWT view for the C++ profile
+ */
+@Deprecated
+public class CppClassPanel extends CppAbstractPanel {
+
+ // document used by the viewer for header include
+ private IDocument headerDocument;
+
+ @SuppressWarnings("unused")
+ private SourceViewer headerViewer;
+
+ private Group headerGroup;
+
+ // document used by the viewer for body include
+ private IDocument bodyDocument;
+
+ @SuppressWarnings("unused")
+ private SourceViewer bodyViewer;
+
+ private Group bodyGroup;
+
+ // Current selection
+ private Class selectedClass;
+
+ protected String origHeader;
+
+ protected String origBody;
+
+ public CppClassPanel(Composite parent, int style) {
+ super(parent, style);
+ }
+
+ /**
+ * @return Returns the selectedOperation.
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getSelectedElement() {
+ return selectedClass;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#setSelectedElement(java.lang.Object)
+ */
+ @Override
+ public void setSelectedElement(Element newElement) {
+ super.setSelectedElement(newElement);
+ if (newElement instanceof Class) {
+ this.selectedClass = (Class) newElement;
+ }
+ else {
+ throw new RuntimeException("bad selection: " + newElement + " should be an uml2 Class");
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accorduml.ui.views.panels.AccordUMLAbstractPanel#createContentHI()
+ */
+ @Override
+ public Control createContent() {
+
+ // /////////////////////////////////////////////////////////////////////
+ // Create save reset buttons with superclass method
+ // /////////////////////////////////////////////////////////////////////
+ createSaveResetButtons();
+
+ // ///////////////////////////////////////////////////////////////////////
+ // Create a Group for the header include declarations
+ // ///////////////////////////////////////////////////////////////////////
+ headerDocument = createDocumentC();
+ headerGroup = createGroup(
+ this
+ , "Header include declarations"
+ , buttonSave
+ , null
+ , true
+ , 50
+ , 0
+ , false);
+ // Use CDT CEditor coloration
+ headerViewer = createViewerC(headerDocument, headerGroup);
+ // ///////////////////////////////////////////////////////////////////////
+ // Create a Group for the body include declarations
+ // ///////////////////////////////////////////////////////////////////////
+ bodyDocument = createDocumentC();
+ bodyGroup = createGroup(
+ this
+ , "Body include declarations"
+ , headerGroup
+ , null
+ , true
+ , 0
+ , 0
+ , true);
+ // Use CDT CEditor coloration
+ bodyViewer = createViewerC(bodyDocument, bodyGroup);
+
+ // ///////////////////////////////////////////////////////////////////////
+
+ return this;
+ }
+
+ /**
+ * Saves the include declarations for a '<code>Class</code>'
+ */
+ @Override
+ public void save()
+ {
+ if (selectedClass == null) {
+ /* Log.debug("saveBody : selectedOperation is null"); */
+ } else {
+ CommandSupport.exec("C++ header/body save", new Runnable() {
+
+ @Override
+ public void run() {
+ if (headerDocument.get().equals("")
+ && bodyDocument.get().equals("")) {
+ StereotypeUtil.unapply(selectedClass, Include.class);
+ } else {
+ Include cppInclude = StereotypeUtil.applyApp(selectedClass, Include.class);
+ cppInclude.setHeader(headerDocument.get());
+ origHeader = headerDocument.get();
+ cppInclude.setBody(bodyDocument.get());
+ origBody = bodyDocument.get();
+ }
+ }
+ });
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#entryAction()
+ */
+ @Override
+ public void entryAction() {
+ super.entryAction();
+ reset();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#checkModifications()
+ */
+ @Override
+ public boolean checkModifications() {
+ // String headerInModel = "";
+ // String bodyInModel = "";
+
+ /*
+ Include cppInclude = UMLUtil.getStereotypeApplication(selectedClass, Include.class);
+ if (cppInclude != null) {
+ headerInModel = cppInclude.getHeader();
+ bodyInModel = cppInclude.getBody();
+ }
+ */
+
+ boolean headerChanged = !headerDocument.get().equals(origHeader);
+ boolean bodyChanged = !bodyDocument.get().equals(origBody);
+
+ return (headerChanged | bodyChanged);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#refreshPanel()
+ */
+ @Override
+ protected void refreshPanel() {
+ if (selectedClass == null) {
+ }
+ else {
+ Include cppInclude = UMLUtil.getStereotypeApplication(selectedClass, Include.class);
+ if (cppInclude != null) {
+ // get the text in the tagged value
+ String currentHI = cppInclude.getHeader();
+ origHeader = currentHI;
+ headerDocument.set(currentHI);
+ String currentBI = cppInclude.getBody();
+ origBody = currentBI;
+ bodyDocument.set(currentBI);
+ } else {
+ origHeader = ""; //$NON-NLS-1$
+ headerDocument.set(""); //$NON-NLS-1$
+ origBody = ""; //$NON-NLS-1$
+ bodyDocument.set(""); //$NON-NLS-1$
+ }
+ }
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppDefaultPanel.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppDefaultPanel.java
new file mode 100644
index 00000000000..2d0c1419e51
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppDefaultPanel.java
@@ -0,0 +1,104 @@
+/*******************************************************************************
+ * Copyright (c) 2006 - 2007 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.papyrus.views.panels;
+
+import org.eclipse.papyrus.views.cpp.Activator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.uml2.uml.Element;
+
+
+/**
+ * Default panel when selection is not relevant.
+ * @deprecated This view will be replaced by an XWT view for the C++ profile
+ */
+@Deprecated
+public class CppDefaultPanel extends CppAbstractPanel {
+
+ /** Label used to display text */
+ private Label label;
+
+ /**
+ * Constructs a new instance of this class given its parent and a style
+ * value describing its behavior and appearance.
+ *
+ * @param parent
+ * the composite parent of this element
+ * @param style
+ * the style for this panel
+ * @see SWT
+ */
+ public CppDefaultPanel(Composite parent, int style) {
+ super(parent, style);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#createContent()
+ */
+ @Override
+ public Control createContent() {
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 2;
+ this.setLayout(layout);
+
+ label = new Label(this, SWT.NONE);
+ label.setText(Activator.getResourceString("panel.default.text"));
+ GridData gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
+ gridData.horizontalSpan = 2;
+ label.setLayoutData(gridData);
+
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#save()
+ */
+ @Override
+ public void save() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#getSelectedElement()
+ */
+ @Override
+ public Element getSelectedElement() {
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#setSelectedElement(org.eclipse.uml2.uml.Element)
+ */
+ @Override
+ public void setSelectedElement(Element newElement) {
+ }
+
+ @Override
+ public boolean checkModifications() {
+ return false;
+ }
+
+ @Override
+ protected void refreshPanel() {
+
+ }
+} \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppGeneralizationPanel.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppGeneralizationPanel.java
new file mode 100644
index 00000000000..40fc2e0a61e
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppGeneralizationPanel.java
@@ -0,0 +1,268 @@
+/*******************************************************************************
+ * Copyright (c) 2006 - 2007 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.views.panels;
+
+import org.eclipse.papyrus.C_Cpp.Visibility;
+import org.eclipse.papyrus.views.cpp.Activator;
+import org.eclipse.papyrus.views.cpp.CommandSupport;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.layout.RowLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Generalization;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+
+
+/**
+ * Panel displayed when a Generalization is selected
+ * @deprecated This view will be replaced by an XWT view for the C++ profile
+ */
+@Deprecated
+public class CppGeneralizationPanel extends CppAbstractPanel {
+
+ private static final String PROTECTED = "protected"; //$NON-NLS-1$
+
+ private static final String PUBLIC = "public"; //$NON-NLS-1$
+
+ private static final String PRIVATE = "private"; //$NON-NLS-1$
+
+ /** Combo box to display visibility */
+ private Combo vPropCombo;
+
+ /** current selected generalization */
+ private Generalization selectedGeneralization;
+
+ public CppGeneralizationPanel(Composite parent, int style) {
+ super(parent, style);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#getSelectedElement()
+ */
+ @Override
+ public Generalization getSelectedElement() {
+ return selectedGeneralization;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#setSelectedElement(org.eclipse.uml2.uml.Element)
+ */
+ @Override
+ public void setSelectedElement(Element newElement) {
+ super.setSelectedElement(newElement);
+ if (newElement instanceof Generalization) {
+ this.selectedGeneralization = (Generalization) newElement;
+ } else {
+ throw new RuntimeException("bad selection: " + newElement + " should be a UML2 generalization");
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accorduml.ui.views.panels.AccordUMLAbstractPanel#createContent()
+ */
+ @Override
+ public Control createContent()
+ {
+ // creates a composite
+
+ GridLayout gridLayout = new GridLayout();
+ gridLayout.numColumns = 1;
+ this.setLayout(gridLayout);
+
+ // Contains checkboxes associated to stereotypes
+ Group qualifierGroup = new Group(this, 0);
+ qualifierGroup.setLayout(new RowLayout());
+ qualifierGroup.setText("Generalization visibility");
+
+ // Visibility properties combo box
+ vPropCombo = new Combo(qualifierGroup, SWT.DROP_DOWN | SWT.READ_ONLY);
+ String items[] = { PUBLIC, PROTECTED, PRIVATE };
+ vPropCombo.setItems(items);
+ vPropCombo.addSelectionListener(new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent event) {
+ checkVirtual();
+ }
+ });
+
+ this.pack();
+ return this;
+ }
+
+ /**
+ * Called when the visibility qualifier is modified
+ */
+ public void checkVirtual()
+ {
+ // Treat the generalization
+ int comboSelected = vPropCombo.getSelectionIndex();
+
+ final String visibilityVal;
+ switch (comboSelected) {
+ case 0: /* public */
+ visibilityVal = PUBLIC;
+ break;
+ case 1: /* protected */
+ visibilityVal = PROTECTED;
+ break;
+ case 2: /* private */
+ visibilityVal = PRIVATE;
+ break;
+ default: /* public */
+ visibilityVal = PUBLIC;
+ break;
+ }
+ final Visibility visibility = UMLUtil.getStereotypeApplication(selectedGeneralization, Visibility.class);
+ if (visibility != null) {
+ String vis = visibility.getValue();
+ if (!vis.equals(visibilityVal)) {
+ CommandSupport.exec("Set visibility for generalization", new Runnable() {
+
+ @Override
+ public void run() {
+ visibility.setValue(visibilityVal);
+ }
+ });
+ }
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accorduml.ui.views.panels.AccordUMLAbstractPanel#entryAction()
+ */
+ @Override
+ public void entryAction() {
+ super.entryAction();
+ reset();
+ }
+
+ // Required by super class
+ @Override
+ public void save() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#checkModifications()
+ */
+ @Override
+ public boolean checkModifications() {
+ // no specific stereotypes tagged value to save
+ return false;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#refreshPanel()
+ */
+ @Override
+ protected void refreshPanel()
+ {
+ if (selectedGeneralization != null) {
+ final Visibility visibility = UMLUtil.getStereotypeApplication(selectedGeneralization, Visibility.class);
+ if (visibility != null) {
+ String vis = visibility.getValue();
+
+ if (vis.equals(PUBLIC)) {
+ vPropCombo.select(0);
+ } else if (vis.equals(PROTECTED)) {
+ vPropCombo.select(1);
+ } else if (vis.equals(PRIVATE)) {
+ vPropCombo.select(2);
+ } else {
+ Activator.log(new RuntimeException("Generalization: should never happen, model should be corrected before"));
+ vPropCombo.select(0);
+ }
+ } else {
+ // no visibility applied, defaults to public
+ vPropCombo.select(0);
+ }
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#isModelValid()
+ */
+ @Override
+ protected boolean isModelValid()
+ {
+ if (selectedGeneralization == null) {
+ return true;
+ }
+
+ final Visibility visibility = UMLUtil.getStereotypeApplication(selectedGeneralization, Visibility.class);
+ if (visibility != null) {
+ String vis = visibility.getValue();
+
+ if ((vis.equals(PUBLIC) || vis.equals(PROTECTED)) || vis.equals(PRIVATE)) {
+ return true;
+ }
+ else {
+ return false;
+ }
+ }
+ else {
+ return false;
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#updateModel()
+ */
+ @Override
+ protected void updateModel() {
+ super.updateModel();
+ if (selectedGeneralization == null) {
+ return;
+ }
+
+ final Visibility visibility = UMLUtil.getStereotypeApplication(selectedGeneralization, Visibility.class);
+ if (visibility != null) {
+ if (!isModelValid()) {
+ CommandSupport.exec("Correct illegal visibility value", new Runnable() {
+
+ @Override
+ public void run() {
+ visibility.setValue(PUBLIC);
+ }
+ });
+ }
+ }
+ else {
+ // good idea? apply value, even if visibility unspecified
+ // GenUtils.setStereotype (selectedGeneralization, Visibility.class, true);
+ // GenUtils.setTaggedValue (selectedGeneralization, Visibility.class, "value", "public");
+ }
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppOperationPanel.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppOperationPanel.java
new file mode 100644
index 00000000000..25bfd8992ec
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppOperationPanel.java
@@ -0,0 +1,647 @@
+/*******************************************************************************
+ * Copyright (c) 2006 - 2007 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.views.panels;
+
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.source.ISourceViewer;
+import org.eclipse.papyrus.C_Cpp.Const;
+import org.eclipse.papyrus.C_Cpp.ConstInit;
+import org.eclipse.papyrus.C_Cpp.Friend;
+import org.eclipse.papyrus.C_Cpp.Inline;
+import org.eclipse.papyrus.C_Cpp.Virtual;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.papyrus.views.cpp.CommandSupport;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.uml2.uml.Behavior;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.OpaqueBehavior;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.profile.standard.Create;
+import org.eclipse.uml2.uml.profile.standard.Destroy;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+
+/**
+ * Panel displayed when an Operation is selected
+ *
+ * TODO: instead of keeping isAbstract and pureVirtual Stereotype synchronized, pure virtual
+ * could be removed from the panel
+ * @deprecated This view will be replaced by a XWT view for the C++ profile
+ */
+@Deprecated
+public class CppOperationPanel extends CppAbstractPanel {
+
+ @SuppressWarnings("unused")
+ private ISourceViewer viewerBody;
+
+ @SuppressWarnings("unused")
+ private ISourceViewer viewerConstInit;
+
+ private Group groupBody;
+
+ private Group groupCInit;
+
+ // document used by the viewer
+ private IDocument docBody;
+
+ private IDocument docConstInit;
+
+ private Button isStatic;
+
+ private Button isInline;
+
+ private Button isConst;
+
+ private Button isFriend;
+
+ private Button isCreate;
+
+ private Button isDestroy;
+
+ private Combo vPropCombo;
+
+ private Operation selectedOperation;
+
+ Element selectedEOwner;
+
+ protected String origBody;
+
+ public CppOperationPanel(Composite parent, int style) {
+ super(parent, style);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#getSelectedElement()
+ */
+ @Override
+ public Operation getSelectedElement() {
+ return selectedOperation;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#setSelectedElement(java.lang.Element)
+ */
+ @Override
+ public void setSelectedElement(Element newElement) {
+ super.setSelectedElement(newElement);
+ if (newElement instanceof Operation) {
+ this.selectedOperation = (Operation) newElement;
+ // Retrieve the owner
+ this.selectedEOwner = selectedOperation.getOwner();
+ }
+ else {
+ throw new RuntimeException("bad selection: " + newElement + " should be an uml2 Operation");
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accorduml.ui.views.panels.AccordUMLAbstractPanel#createContent()
+ */
+ @Override
+ public Control createContent()
+ {
+ // /////////////////////////////////////////////////////////////////////
+ // Create checkboxes
+ // /////////////////////////////////////////////////////////////////////
+ isStatic = createButton("isStatic", this, null);
+ isInline = createButton("isInline", this, isStatic);
+ isConst = createButton("isConst", this, isInline);
+ isFriend = createButton("isFriend", this, isConst);
+ isCreate = createButton("isCreate", this, isFriend);
+ isDestroy = createButton("isDestroy", this, isCreate);
+
+ // /////////////////////////////////////////////////////////////////////
+ // Add checkboxes listeners
+ // /////////////////////////////////////////////////////////////////////
+ isStatic.addSelectionListener(new SelectionListener() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ CommandSupport.exec("C++ operation save", new Runnable() {
+
+ @Override
+ public void run() {
+ updateModel();
+ }
+ });
+ }
+
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+ });
+
+ addStereotypeSelectionListener(isInline, "Inline");
+ addStereotypeSelectionListener(isConst, "Const");
+ addStereotypeSelectionListener(isFriend, "Friend");
+ addStereotypeSelectionListener(isCreate, "Create");
+ addStereotypeSelectionListener(isDestroy, "Destroy");
+
+ // /////////////////////////////////////////////////////////////////////
+ // Virtual properties combo box
+ // /////////////////////////////////////////////////////////////////////
+ vPropCombo = new Combo(this, SWT.DROP_DOWN | SWT.READ_ONLY);
+ String items[] = { "not virtual", "virtual", "pure virtual" };
+ vPropCombo.setItems(items);
+ vPropCombo.setText("Virtual operation qualifiers");
+ vPropCombo.addSelectionListener(
+ new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent event) {
+ checkVirtual();
+ reset();
+ }
+ });
+
+ FormData data = new FormData();
+ data.left = new FormAttachment(isDestroy, H_SPACE);
+ data.top = new FormAttachment(0, H_SPACE);
+ vPropCombo.setLayoutData(data);
+
+ // /////////////////////////////////////////////////////////////////////
+ // Create save reset buttons with superclass method
+ // /////////////////////////////////////////////////////////////////////
+ createSaveResetButtons();
+
+ // /////////////////////////////////////////////////////////////////////
+ // Constructor init list
+ // /////////////////////////////////////////////////////////////////////
+ docConstInit = createDocument();
+ groupCInit = createGroup(
+ this
+ , "Constructor initialisation list"
+ , isStatic
+ , null
+ , true
+ , 0
+ , 0
+ , false);
+
+ // Use CDT CEditor coloration
+ viewerConstInit = createViewer(docConstInit, groupCInit);
+
+ // /////////////////////////////////////////////////////////////////////
+ // Body
+ // /////////////////////////////////////////////////////////////////////
+
+ docBody = createDocumentC();
+ groupBody = createGroup(
+ this
+ , "Method body"
+ , groupCInit
+ , null
+ , true
+ , 0
+ , 0
+ , true);
+ // Use CDT CEditor coloration
+ viewerBody = createViewerC(docBody, groupBody);
+
+ // /////////////////////////////////////////////////////////////////////
+
+ return this;
+ }
+
+
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#save()
+ */
+ @Override
+ public void save()
+ {
+ if (selectedOperation == null) {
+ /* Log.debug("saveBody : selectedOperation is null"); */
+ } else {
+ CommandSupport.exec("C++ operation save", new Runnable() {
+
+ @Override
+ public void run() {
+ String newConstInit = docConstInit.get();
+ if (newConstInit.equals("")) { //$NON-NLS-1$
+ StereotypeUtil.unapply(selectedOperation, ConstInit.class);
+ } else {
+ ConstInit cppConstInit =
+ StereotypeUtil.applyApp(selectedOperation, ConstInit.class);
+ cppConstInit.setInitialisation(newConstInit);
+ }
+
+ // Body
+ setCppBody(selectedOperation, docBody.get());
+ origBody = docBody.get();
+ }
+ });
+ }
+
+ }
+
+ public static String getCppBody(Operation operation)
+ {
+ // get the body of the operation
+ for (Behavior behavior : operation.getMethods()) {
+ if (behavior instanceof OpaqueBehavior) {
+ OpaqueBehavior ob = (OpaqueBehavior) behavior;
+ int i = 0;
+ for (String language : ob.getLanguages()) {
+ if (language.equals(C_CPP_ID)) {
+ return ob.getBodies().get(i);
+ }
+ else if (language.equals(CPP_ID)) {
+ return ob.getBodies().get(i);
+ }
+ else if (language.equals(C_ID)) {
+ return ob.getBodies().get(i);
+ }
+ i++;
+ }
+ }
+ }
+ return ""; //$NON-NLS-1$
+ }
+
+ public static void setCppBody(Operation operation, String body)
+ {
+ boolean done = false;
+ for (Behavior behavior : operation.getMethods()) {
+ if (behavior instanceof OpaqueBehavior) {
+ OpaqueBehavior ob = (OpaqueBehavior) behavior;
+ int i = 0;
+ for (String language : ob.getLanguages()) {
+ if (language.equals(C_CPP_ID) || language.equals(CPP_ID) || language.equals(C_ID)) {
+ done = true;
+ ob.getBodies().set(i, body);
+ break;
+ }
+ i++;
+ }
+ }
+ if (done) {
+ break;
+ }
+ }
+ if (!done) {
+ OpaqueBehavior ob = (OpaqueBehavior)
+ operation.getClass_().createOwnedBehavior(operation.getName(), UMLPackage.eINSTANCE.getOpaqueBehavior());
+ ob.getLanguages().add(C_CPP_ID);
+ ob.getBodies().add(body);
+ ob.setSpecification(operation);
+ }
+
+ }
+
+ /**
+ * Called when the static checkbox is modified
+ */
+ protected void checkStatic()
+ {
+ boolean boxState = isStatic.getSelection();
+
+ selectedOperation.setIsStatic(boxState);
+ }
+
+ /**
+ * Called when the inline checkbox is modified
+ */
+ protected void checkInline() {
+ // get the text in the activity
+ boolean boxState = isInline.getSelection();
+
+ if (boxState != StereotypeUtil.isApplied(selectedOperation, Inline.class)) {
+ if (boxState) {
+ StereotypeUtil.apply(selectedOperation, Inline.class);
+ }
+ else {
+ StereotypeUtil.unapply(selectedOperation, Inline.class);
+ }
+ }
+ }
+
+ /**
+ * Called when the const checkbox is modified
+ */
+ protected void checkConst() {
+
+ boolean boxState = isConst.getSelection();
+
+ if (boxState != StereotypeUtil.isApplied(selectedOperation, Const.class)) {
+ if (boxState) {
+ StereotypeUtil.apply(selectedOperation, Const.class);
+ }
+ else {
+ StereotypeUtil.unapply(selectedOperation, Const.class);
+ }
+ }
+ }
+
+ /**
+ * Called when the friend checkbox is modified
+ */
+ protected void checkFriend() {
+
+ boolean boxState = isFriend.getSelection();
+
+ if (boxState != StereotypeUtil.isApplied(selectedOperation, Friend.class)) {
+ if (boxState) {
+ StereotypeUtil.apply(selectedOperation, Friend.class);
+ }
+ else {
+ StereotypeUtil.unapply(selectedOperation, Friend.class);
+ }
+ }
+ }
+
+ /**
+ * Called when the create checkbox is modified
+ */
+ protected void checkCreate() {
+ // get the text in the activity
+ boolean boxState = isCreate.getSelection();
+
+ if (boxState) {
+ StereotypeUtil.apply(selectedOperation, Create.class);
+ }
+ else {
+ StereotypeUtil.unapply(selectedOperation, ConstInit.class);
+ StereotypeUtil.unapply(selectedOperation, Create.class);
+ }
+
+ groupCInit.setEnabled(boxState);
+ }
+
+ /**
+ * Called when the destroy checkbox is modified
+ */
+ protected void checkDestroy() {
+ // get the text in the activity
+ boolean boxState = isDestroy.getSelection();
+
+ if (boxState) {
+ StereotypeUtil.apply(selectedOperation, Destroy.class);
+ }
+ else {
+ StereotypeUtil.unapply(selectedOperation, Destroy.class);
+ }
+ }
+
+ /**
+ * Called when the virtual qualifier is modified
+ */
+ protected void checkVirtual() {
+
+ // Treat the operation
+ int comboSelected = 2;
+
+ // If owner is a class
+ if (selectedEOwner instanceof org.eclipse.uml2.uml.Class) {
+ comboSelected = vPropCombo.getSelectionIndex();
+ } else {
+ // Assume this is an interface
+ comboSelected = 2;
+ }
+
+ if (comboSelected == 0 /* not virtual */) {
+
+ selectedOperation.setIsAbstract(false);
+ StereotypeUtil.unapply(selectedOperation, Virtual.class);
+ }
+ else if (comboSelected == 1 /* virtual */) {
+
+ selectedOperation.setIsAbstract(false);
+ StereotypeUtil.apply(selectedOperation, Virtual.class);
+ }
+ else if (comboSelected == 2 /* pure virtual */) {
+
+ selectedOperation.setIsAbstract(true);
+ StereotypeUtil.apply(selectedOperation, Virtual.class);
+ }
+
+ // Treat the owner class
+ if (selectedEOwner instanceof Class) {
+ Class ownerCl = (Class) selectedEOwner;
+
+ ownerCl.setIsAbstract(ownerCl.isAbstract());
+ } // else nothing
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accorduml.ui.views.panels.AccordUMLAbstractPanel#entryAction()
+ */
+ @Override
+ public void entryAction() {
+ super.entryAction();
+ reset();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accorduml.ui.views.panels.AccordUMLAbstractPanel#exitAction()
+ */
+ @Override
+ public void exitAction() {
+ // do exit action, only if the owner is a class
+ if (selectedEOwner instanceof Class) {
+ super.exitAction();
+ }
+ }
+
+ @Override
+ public boolean checkModifications() {
+ // check if ConstInit has changed
+ String valueConstInit = ""; //$NON-NLS-1$
+ ConstInit constInit = UMLUtil.getStereotypeApplication(selectedOperation, ConstInit.class);
+ if (constInit != null) {
+ valueConstInit = constInit.getInitialisation();
+ }
+ if (!docConstInit.get().equals(valueConstInit)) {
+ return true;
+ }
+
+ // String methodBody = getCppBody(selectedOperation);
+ if (!(docBody.get().equals(origBody))) {
+ return true;
+ }
+
+ return false;
+ }
+
+ @Override
+ protected void refreshPanel() {
+ if (selectedOperation == null) {
+ /* Log.debug("resetBody : selectedOperation is null"); */
+ } else {
+
+ // get the text in the activity if parent is a class
+ if (selectedEOwner instanceof Class) {
+
+ // This part is done for a class only
+ ConstInit constInit = UMLUtil.getStereotypeApplication(selectedOperation, ConstInit.class);
+ if (constInit != null) {
+ docConstInit.set(constInit.getInitialisation());
+ }
+
+ // Don't show this unless the operation is a constructor
+ if (isCreate.getSelection()) {
+ groupCInit.setEnabled(true);
+ } else {
+ docConstInit.set(""); //$NON-NLS-1$
+ groupCInit.setEnabled(false);
+ }
+
+ String body = getCppBody(selectedOperation);
+ origBody = body;
+ docBody.set(body);
+
+ // Combo Box
+ if (selectedOperation.isAbstract()) {
+ vPropCombo.select(2);
+ // Nothing in body and body unavailable
+ docBody.set(""); //$NON-NLS-1$
+ groupBody.setEnabled(false);
+ }
+ else {
+ if (StereotypeUtil.isApplied(selectedOperation, Virtual.class)) {
+ vPropCombo.select(1);
+ groupBody.setEnabled(true);
+ }
+ else {
+ vPropCombo.select(0);
+ groupBody.setEnabled(true);
+ }
+ }
+
+ // Inline
+ if (StereotypeUtil.isApplied(selectedOperation, Inline.class)) {
+ isInline.setSelection(true);
+ }
+
+ }
+ else {
+ // Don't show text areas nor buttons
+ groupBody.setVisible(false);
+ buttonSave.setVisible(false);
+ buttonCancel.setVisible(false);
+
+ // Methods are virtual pure
+ vPropCombo.select(2);
+ vPropCombo.setEnabled(false);
+
+ // Inline not visible
+ isInline.setVisible(false);
+ }
+
+ isStatic.setSelection(selectedOperation.isStatic());
+ isConst.setSelection(StereotypeUtil.isApplied(selectedOperation, Const.class));
+ isFriend.setSelection(StereotypeUtil.isApplied(selectedOperation, Friend.class));
+ isCreate.setSelection(StereotypeUtil.isApplied(selectedOperation, Create.class));
+ isDestroy.setSelection(StereotypeUtil.isApplied(selectedOperation, Destroy.class));
+ }
+ }
+
+ @Override
+ protected boolean isModelValid() {
+ if (selectedOperation == null) {
+ return true;
+ }
+ if (selectedEOwner instanceof Class) {
+
+ if (selectedOperation.isAbstract()) {
+ if (!StereotypeUtil.isApplied(selectedOperation, Virtual.class)) {
+ return false;
+ }
+ }
+ } else {
+ // owner is interface
+ if (!selectedOperation.isAbstract()) {
+ return false;
+ }
+ if (StereotypeUtil.isApplied(selectedOperation, Virtual.class)) {
+ return false;
+ }
+ }
+ return true;
+
+ }
+
+ @Override
+ protected void updateModel()
+ {
+ CommandSupport.exec("C++ operation save", new Runnable() {
+
+ @Override
+ public void run()
+ {
+ // Check button changes
+ checkStatic();
+ checkConst();
+ checkCreate();
+ checkDestroy();
+ checkInline();
+ checkFriend();
+
+ if (selectedOperation == null) {
+ return;
+ }
+ if (selectedEOwner instanceof Class) {
+ // toggle Stereotypes pure virtual if element is abstract
+ if (selectedOperation.isAbstract()) {
+ if (!StereotypeUtil.isApplied(selectedOperation, Virtual.class)) {
+ // selectedOperation.toggleStereotype("VirtualPure", true);
+ // selectedOperation.toggleStereotype("Virtual", false);
+ } else {
+ // selectedOperation.toggleStereotype("Virtual", false);
+ }
+ }
+
+ // if element is abstract and has VirtualPure, set to Virtual only
+ if (!selectedOperation.isAbstract()) {
+ if (StereotypeUtil.isApplied(selectedOperation, Virtual.class)) {
+ // selectedOperation.toggleStereotype("VirtualPure", false);
+ // selectedOperation.toggleStereotype("Virtual", true);
+ } else {
+ // selectedOperation.toggleStereotype("VirtualPure", false);
+ // selectedOperation.toggleStereotype("Virtual", false);
+ }
+ }
+ }
+ else {
+ selectedOperation.setIsAbstract(true);
+ // selectedOperation.toggleStereotype("Virtual", false);
+ // selectedOperation.toggleStereotype("VirtualPure", true);
+ }
+ }
+ });
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppPackagePanel.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppPackagePanel.java
new file mode 100644
index 00000000000..ef8b80141c4
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppPackagePanel.java
@@ -0,0 +1,183 @@
+/*******************************************************************************
+ * Copyright (c) 2006 - 2007 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.views.panels;
+
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.papyrus.C_Cpp.Include;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.papyrus.views.cpp.CommandSupport;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+
+/**
+ * Panel displayed when a Package is selected
+ * @deprecated This view will be replaced by an XWT view for the C++ profile
+ */
+@Deprecated
+public class CppPackagePanel extends CppAbstractPanel {
+
+ // document used by the viewer for header include
+ private IDocument headerDocument;
+
+ // private SourceViewer headerViewer;
+ private Group headerGroup;
+
+ // Current selection
+ private Package selectedPackage;
+
+ /**
+ * Default constructor
+ *
+ * @param parent
+ * the composite parent of this panel
+ * @param style
+ * the SWT style of this panel
+ */
+ public CppPackagePanel(Composite parent, int style) {
+ super(parent, style);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#getSelectedElement()
+ */
+ @Override
+ public org.eclipse.uml2.uml.Package getSelectedElement() {
+ return selectedPackage;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#setSelectedElement(java.lang.Element)
+ */
+ @Override
+ public void setSelectedElement(Element newElement) {
+ super.setSelectedElement(newElement);
+ if (newElement instanceof Package) {
+ this.selectedPackage = (Package) newElement;
+ }
+ else {
+ throw new RuntimeException("bad selection: " + newElement + " should be an uml2 Package");
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accorduml.ui.views.panels.AccordUMLAbstractPanel#createContentHI()
+ */
+ @Override
+ public Control createContent() {
+
+ // /////////////////////////////////////////////////////////////////////
+ // Create a composite that contain the "Save/Cancel" buttons
+ // /////////////////////////////////////////////////////////////////////
+ createSaveResetButtons();
+
+ // /////////////////////////////////////////////////////////////////////
+ // Package header declaration
+ // /////////////////////////////////////////////////////////////////////
+ headerDocument = createDocumentC();
+ headerGroup = createGroup(
+ this
+ , "Header include declarations"
+ , buttonSave
+ , null
+ , true
+ , 0
+ , 0
+ , true);
+ // Use CDT CEditor coloration
+ // headerViewer
+ createViewerC(headerDocument, headerGroup);
+
+ // /////////////////////////////////////////////////////////////////////
+ return this;
+ }
+
+ /**
+ * Saves the include declarations for a '<code>Package</code>'
+ */
+ @Override
+ public void save()
+ {
+ if (selectedPackage == null) {
+ /* Log.debug("saveBody : selectedPackage is null"); */
+ }
+ else {
+ CommandSupport.exec("C++ package save", new Runnable() {
+
+ @Override
+ public void run()
+ {
+ if (headerDocument.get().equals("")) {
+ StereotypeUtil.unapply(selectedPackage, Include.class);
+ } else {
+ Include cppInclude = StereotypeUtil.applyApp(selectedPackage, Include.class);
+ cppInclude.setHeader(headerDocument.get());
+ }
+ }
+ });
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#refreshPanel()
+ */
+ @Override
+ protected void refreshPanel() {
+ if (selectedPackage != null) {
+ Include cppInclude = UMLUtil.getStereotypeApplication(selectedPackage, Include.class);
+ if (cppInclude != null) {
+ headerDocument.set(cppInclude.getHeader());
+ }
+ else {
+ headerDocument.set("");
+ }
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accorduml.ui.views.panels.AccordUMLAbstractPanel#entryAction()
+ */
+ @Override
+ public void entryAction() {
+ super.entryAction();
+ reset();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#checkModifications()
+ */
+ @Override
+ public boolean checkModifications() {
+ String headerInModel = "";
+ Include cppInclude = UMLUtil.getStereotypeApplication(selectedPackage, Include.class);
+ if (cppInclude != null) {
+ headerInModel = cppInclude.getHeader();
+ }
+ return (!(headerDocument.get().equals(headerInModel)));
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppParameterPanel.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppParameterPanel.java
new file mode 100644
index 00000000000..15b1ff3bda2
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppParameterPanel.java
@@ -0,0 +1,346 @@
+/*******************************************************************************
+ * Copyright (c) 2006 - 2007 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.views.panels;
+
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.source.SourceViewer;
+import org.eclipse.papyrus.C_Cpp.Array;
+import org.eclipse.papyrus.C_Cpp.Const;
+import org.eclipse.papyrus.C_Cpp.Ptr;
+import org.eclipse.papyrus.C_Cpp.Ref;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.papyrus.views.cpp.CommandSupport;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Parameter;
+
+
+/**
+ * Panel displayed when a Parameter is selected
+ * @deprecated This view will be replaced by an XWT view for the C++ profile
+ */
+@Deprecated
+public class CppParameterPanel extends CppAbstractPanel {
+
+ private Button isConst;
+
+ private Parameter selectedParameter;
+
+ // document used by the viewer
+ private IDocument docPtr;
+
+ private IDocument docRef;
+
+ private IDocument docArray;
+
+ private IDocument docDefault;
+
+ @SuppressWarnings("unused")
+ private SourceViewer viewerPtr;
+
+ @SuppressWarnings("unused")
+ private SourceViewer viewerRef;
+
+ @SuppressWarnings("unused")
+ private SourceViewer viewerArray;
+
+ @SuppressWarnings("unused")
+ private SourceViewer viewerDefault;
+
+ private Group groupPtr;
+
+ private Group groupRef;
+
+ private Group groupArray;
+
+ private Group groupDefault;
+
+ public CppParameterPanel(Composite parent, int style) {
+ super(parent, style);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordAbstractPanel#getSelectedElement()
+ */
+ @Override
+ public org.eclipse.uml2.uml.Parameter getSelectedElement() {
+ return selectedParameter;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordAbstractPanel#setSelectedElement(java.lang.Element)
+ */
+ @Override
+ public void setSelectedElement(Element newElement) {
+ super.setSelectedElement(newElement);
+ if (newElement instanceof Parameter) {
+ this.selectedParameter = (Parameter) newElement;
+ }
+ else {
+ throw new RuntimeException("bad selection: " + newElement + " should be an uml2 Parameter");
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accorduml.ui.views.panels.AccordUMLAbstractPanel#createContent()
+ */
+ @Override
+ public Control createContent() {
+ // /////////////////////////////////////////////////////////////////////
+ // Create save reset buttons with superclass method
+ // /////////////////////////////////////////////////////////////////////
+ createSaveResetButtons();
+
+ // /////////////////////////////////////////////////////////////////////
+ // Create checkboxes
+ // /////////////////////////////////////////////////////////////////////
+ isConst = createButton("isConst", this, null);
+
+ // /////////////////////////////////////////////////////////////////////
+ // Add checkboxes listeners
+ // /////////////////////////////////////////////////////////////////////
+ addStereotypeSelectionListener(isConst, "Const");
+
+ // /////////////////////////////////////////////////////////////////////
+ // Pointer declaration
+ // /////////////////////////////////////////////////////////////////////
+ docPtr = createDocument();
+ groupPtr = createGroup(
+ this
+ , "Pointer declaration"
+ , buttonSave
+ , null
+ , false
+ , 0
+ , 25
+ , false);
+
+ // Use CDT CEditor coloration
+ viewerPtr = createViewer(docPtr, groupPtr);
+
+ // /////////////////////////////////////////////////////////////////////
+ // Pointer declaration
+ // /////////////////////////////////////////////////////////////////////
+ docRef = createDocument();
+ groupRef = createGroup(
+ this
+ , "Reference declaration"
+ , buttonSave
+ , groupPtr
+ , false
+ , 0
+ , 50
+ , false);
+
+ // Use CDT CEditor coloration
+ viewerRef = createViewer(docRef, groupRef);
+
+ // /////////////////////////////////////////////////////////////////////
+ // Pointer declaration
+ // /////////////////////////////////////////////////////////////////////
+ docDefault = createDocument();
+ groupDefault = createGroup(
+ this
+ , "Default value"
+ , buttonSave
+ , groupRef
+ , false
+ , 0
+ , 75
+ , false);
+
+ // Use CDT CEditor coloration
+ viewerDefault = createViewer(docDefault, groupDefault);
+
+ // /////////////////////////////////////////////////////////////////////
+ // Pointer declaration
+ // /////////////////////////////////////////////////////////////////////
+ docArray = createDocument();
+ groupArray = createGroup(
+ this
+ , "Array value ([...])"
+ , buttonSave
+ , groupDefault
+ , true
+ , 0
+ , 0
+ , false);
+
+ // Use CDT CEditor coloration
+ viewerArray = createViewer(docArray, groupArray);
+
+ // /////////////////////////////////////////////////////////////////////
+ // Return control
+ // /////////////////////////////////////////////////////////////////////
+
+ return this;
+ }
+
+ /**
+ * Saves the body for an '<code>Parameter</code>'
+ */
+ @Override
+ public void save()
+ {
+ if (selectedParameter == null) {
+ /* Log.debug("saveBody : selectedParameter is null"); */
+ }
+ else {
+ CommandSupport.exec("C++ parameter save", new Runnable() {
+
+ @Override
+ public void run()
+ {
+ // Treat Pointer
+ String newPtr = docPtr.get();
+ if (newPtr.equals("")) {
+ StereotypeUtil.unapply(selectedParameter, Ptr.class);
+ }
+ else {
+ StereotypeUtil.apply(selectedParameter, Ptr.class);
+ }
+
+ // Treat Reference
+ String newRef = docRef.get();
+ if (newRef.equals("")) {
+ StereotypeUtil.unapply(selectedParameter, Ref.class);
+ }
+ else {
+ StereotypeUtil.apply(selectedParameter, Ref.class);
+ }
+
+ // Treat DefaultValue
+ // need common class for facilitating this
+ // selectedParameter.setDefaultValue(selectedParameter.createDefaultValue("default", selectedParameter.getType(), null);
+
+ // Treat Array
+ String newArray = docArray.get();
+ if (newArray.equals("")) {
+ StereotypeUtil.unapply(selectedParameter, Array.class);
+ }
+ else {
+ StereotypeUtil.apply(selectedParameter, Array.class);
+ // StereotypeUtil.setTaggedValue(selectedParameter, Array.class, "definition", newArray);
+ }
+ }
+ });
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordAbstractPanel#refreshPanel()
+ */
+ @Override
+ protected void refreshPanel() {
+ if (selectedParameter != null) {
+ // Const
+
+ isConst.setSelection(StereotypeUtil.isApplied(selectedParameter, Const.class));
+ // TODO: examine effect;
+ // isConst.setSelection(selectedParameter.getEffect?);
+
+ docPtr.set(StereotypeUtil.isApplied(selectedParameter, Ptr.class) ? "*" : "");
+ docRef.set(StereotypeUtil.isApplied(selectedParameter, Ref.class) ? "&" : "");
+ docDefault.set(selectedParameter.getDefault());
+ docArray.set(StereotypeUtil.isApplied(selectedParameter, Array.class) ? "[]" : "");
+ // need definition?
+ }
+ }
+
+ /**
+ * Called when the static checkbox is modified
+ */
+ protected void checkConst() {
+
+ boolean boxState = isConst.getSelection();
+
+ if (boxState) {
+ if (!StereotypeUtil.isApplied(selectedParameter, Const.class)) {
+ StereotypeUtil.apply(selectedParameter, Const.class);
+ }
+ } else {
+ if (StereotypeUtil.isApplied(selectedParameter, Const.class)) {
+ StereotypeUtil.unapply(selectedParameter, Const.class);
+ }
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accorduml.ui.views.panels.AccordUMLAbstractPanel#entryAction()
+ */
+ @Override
+ public void entryAction() {
+ super.entryAction();
+ reset();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordAbstractPanel#checkModifications()
+ */
+ @Override
+ public boolean checkModifications() {
+ String ptrValue = StereotypeUtil.isApplied(selectedParameter, Ptr.class) ? "*" : "";
+ if (!docPtr.get().equals(ptrValue)) {
+ return true;
+ }
+
+ String refValue = StereotypeUtil.isApplied(selectedParameter, Ref.class) ? "&" : "";
+ if (!docRef.get().equals(refValue)) {
+ return true;
+ }
+
+ String defaultValue = selectedParameter.getDefault();
+ if (defaultValue == null) {
+ if (!docDefault.get().equals("")) {
+ return true;
+ }
+ }
+ else if (!docDefault.get().equals(defaultValue)) {
+ return true;
+ }
+
+ String arrayValue = StereotypeUtil.isApplied(selectedParameter, Array.class) ? "[]" : "";
+ if (!docArray.get().equals(arrayValue)) {
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ protected void updateModel() {
+
+ // Check button changes
+ CommandSupport.exec("C++ parameter update", new Runnable() {
+
+ @Override
+ public void run()
+ {
+ checkConst();
+ }
+ });
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppPrimitiveTypePanel.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppPrimitiveTypePanel.java
new file mode 100644
index 00000000000..adee09cef57
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppPrimitiveTypePanel.java
@@ -0,0 +1,167 @@
+/*******************************************************************************
+ * Copyright (c) 2006 - 2007 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.views.panels;
+
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.source.SourceViewer;
+import org.eclipse.papyrus.C_Cpp.Typedef;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.papyrus.views.cpp.CommandSupport;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.PrimitiveType;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+
+/**
+ * Panel displayed when a PrimitiveType is selected
+ * @deprecated This view will be replaced by an XWT view for the C++ profile
+ */
+@Deprecated
+public class CppPrimitiveTypePanel extends CppAbstractPanel {
+
+ // document used by the viewer for definition of the type
+ @SuppressWarnings("unused")
+ private SourceViewer typeViewer;
+
+ private Group typeGroup;
+
+ private IDocument typeDocument;
+
+ // Current selection
+ private PrimitiveType selectedPType;
+
+ public CppPrimitiveTypePanel(Composite parent, int style) {
+ super(parent, style);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#getSelectedElement()
+ */
+ @Override
+ public PrimitiveType getSelectedElement() {
+ return selectedPType;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#setSelectedElement(java.lang.Element)
+ */
+ @Override
+ public void setSelectedElement(Element newElement) {
+ super.setSelectedElement(newElement);
+ if (newElement instanceof PrimitiveType) {
+ this.selectedPType = (PrimitiveType) newElement;
+ }
+ else {
+ throw new RuntimeException("bad selection: " + newElement + " should be an uml2 PrimitiveType");
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accorduml.ui.views.panels.AccordUMLAbstractPanel#createContentHI()
+ */
+ @Override
+ public Control createContent() {
+
+ // /////////////////////////////////////////////////////////////////////
+ // Create save reset buttons with superclass method
+ // /////////////////////////////////////////////////////////////////////
+ createSaveResetButtons();
+
+ // /////////////////////////////////////////////////////////////////////
+ // Type definition text area
+ // /////////////////////////////////////////////////////////////////////
+
+ typeDocument = createDocumentC();
+ typeGroup = createGroup(this, "Type definition", buttonSave, null, true, 0, 0, true);
+ // Use CDT CEditor coloration
+ typeViewer = createViewerC(typeDocument, typeGroup);
+
+ // /////////////////////////////////////////////////////////////////////
+
+ return this;
+ }
+
+ /**
+ * Saves the include declarations for a '<code>PrimitiveType</code>'
+ */
+ @Override
+ public void save() {
+ if (selectedPType == null) {
+ /* Log.debug("saveBody : selectedOperation is null"); */
+ }
+ else {
+ CommandSupport.exec("C++ primitive type save", new Runnable() {
+
+ @Override
+ public void run()
+ {
+ if (typeDocument.get().equals("")) {
+ StereotypeUtil.unapply(selectedPType, Typedef.class);
+ }
+ else {
+ Typedef cppType = StereotypeUtil.applyApp(selectedPType, Typedef.class);
+ cppType.setDefinition(typeDocument.get());
+ }
+ }
+ });
+ }
+ }
+
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#refreshPanel()
+ */
+ @Override
+ protected void refreshPanel() {
+ if (selectedPType != null) {
+ Typedef cppType = UMLUtil.getStereotypeApplication(selectedPType, Typedef.class);
+ typeDocument.set(cppType != null ? cppType.getDefinition() : "");
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accorduml.ui.views.panels.AccordUMLAbstractPanel#entryAction()
+ */
+ @Override
+ public void entryAction() {
+ super.entryAction();
+ reset();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#checkModifications()
+ */
+ @Override
+ public boolean checkModifications() {
+ Typedef cppType = UMLUtil.getStereotypeApplication(selectedPType, Typedef.class);
+ String typeInModel = cppType != null ? cppType.getDefinition() : "";
+ if (!typeDocument.get().equals(typeInModel)) {
+ return true;
+ }
+ return false;
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppPropertyPanel.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppPropertyPanel.java
new file mode 100644
index 00000000000..2d449799e6e
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppPropertyPanel.java
@@ -0,0 +1,384 @@
+/*******************************************************************************
+ * Copyright (c) 2006 - 2007 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.papyrus.views.panels;
+
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.source.SourceViewer;
+import org.eclipse.papyrus.C_Cpp.Array;
+import org.eclipse.papyrus.C_Cpp.Const;
+import org.eclipse.papyrus.C_Cpp.Ptr;
+import org.eclipse.papyrus.C_Cpp.Ref;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.papyrus.views.cpp.CommandSupport;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Property;
+
+
+/**
+ * Panel displayed when a Property is selected
+ * @deprecated This view will be replaced by an XWT view for the C++ profile
+ */
+@Deprecated
+public class CppPropertyPanel extends CppAbstractPanel {
+
+ private Button isStatic;
+
+ private Button isConst;
+
+ private Property selectedProperty;
+
+ // document used by the viewer
+ private IDocument docPtr;
+
+ private IDocument docRef;
+
+ private IDocument docArray;
+
+ private IDocument docDefault;
+
+ @SuppressWarnings("unused")
+ private SourceViewer viewerPtr;
+
+ @SuppressWarnings("unused")
+ private SourceViewer viewerRef;
+
+ @SuppressWarnings("unused")
+ private SourceViewer viewerArray;
+
+ @SuppressWarnings("unused")
+ private SourceViewer viewerDefault;
+
+ private Group groupPtr;
+
+ private Group groupRef;
+
+ private Group groupArray;
+
+ private Group groupDefault;
+
+ public CppPropertyPanel(Composite parent, int style) {
+ super(parent, style);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#getSelectedElement()
+ */
+ @Override
+ public Property getSelectedElement() {
+ return selectedProperty;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#setSelectedElement(java.lang.Element)
+ */
+ @Override
+ public void setSelectedElement(Element newElement) {
+ super.setSelectedElement(newElement);
+ if (newElement instanceof Property) {
+ this.selectedProperty = (Property) newElement;
+ }
+ else {
+ throw new RuntimeException("bad selection: " + newElement + " should be an uml2 Property");
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accorduml.ui.views.panels.AccordUMLAbstractPanel#createContent()
+ */
+ @Override
+ public Control createContent() {
+ // /////////////////////////////////////////////////////////////////////
+ // Create save reset buttons with superclass method
+ // /////////////////////////////////////////////////////////////////////
+ createSaveResetButtons();
+
+ // /////////////////////////////////////////////////////////////////////
+ // Create checkboxes
+ // /////////////////////////////////////////////////////////////////////
+ isStatic = createButton("isStatic", this, null);
+ isConst = createButton("isConst", this, isStatic);
+
+ // /////////////////////////////////////////////////////////////////////
+ // Add checkboxes listeners
+ // /////////////////////////////////////////////////////////////////////
+ isStatic.addSelectionListener(new SelectionListener() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ updateModel();
+ }
+
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+ });
+ addStereotypeSelectionListener(isConst, "Const");
+
+ // /////////////////////////////////////////////////////////////////////
+ // Pointer declaration
+ // /////////////////////////////////////////////////////////////////////
+ docPtr = createDocument();
+ groupPtr = createGroup(
+ this
+ , "Pointer declaration"
+ , buttonSave
+ , null
+ , false
+ , 0
+ , 25
+ , false);
+
+ // Use CDT CEditor coloration
+ viewerPtr = createViewer(docPtr, groupPtr);
+
+ // /////////////////////////////////////////////////////////////////////
+ // Pointer declaration
+ // /////////////////////////////////////////////////////////////////////
+ docRef = createDocument();
+ groupRef = createGroup(
+ this
+ , "Reference declaration"
+ , buttonSave
+ , groupPtr
+ , false
+ , 0
+ , 50
+ , false);
+
+ // Use CDT CEditor coloration
+ viewerRef = createViewer(docRef, groupRef);
+
+ // /////////////////////////////////////////////////////////////////////
+ // Pointer declaration
+ // /////////////////////////////////////////////////////////////////////
+ docDefault = createDocument();
+ groupDefault = createGroup(
+ this
+ , "Default value"
+ , buttonSave
+ , groupRef
+ , false
+ , 0
+ , 75
+ , false);
+
+ // Use CDT CEditor coloration
+ viewerDefault = createViewer(docDefault, groupDefault);
+
+ // /////////////////////////////////////////////////////////////////////
+ // Pointer declaration
+ // /////////////////////////////////////////////////////////////////////
+ docArray = createDocument();
+ groupArray = createGroup(
+ this
+ , "Array value ([...])"
+ , buttonSave
+ , groupDefault
+ , true
+ , 0
+ , 0
+ , false);
+
+ // Use CDT CEditor coloration
+ viewerArray = createViewer(docArray, groupArray);
+
+ // /////////////////////////////////////////////////////////////////////
+ // Return control
+ // /////////////////////////////////////////////////////////////////////
+
+ return this;
+ }
+
+ /**
+ * Saves the body for an '<code>Property</code>'
+ */
+ @Override
+ public void save()
+ {
+ if (selectedProperty == null) {
+ /* Log.debug("saveBody : selectedProperty is null"); */
+ }
+ else {
+ CommandSupport.exec("C++ package save", new Runnable() {
+
+ @Override
+ public void run()
+ {
+ // Treat Pointer
+ String newPtr = docPtr.get();
+ if (newPtr.equals("")) {
+ StereotypeUtil.unapply(selectedProperty, Ptr.class);
+ }
+ else {
+ StereotypeUtil.apply(selectedProperty, Ptr.class);
+ }
+
+ // Treat Reference
+ String newRef = docRef.get();
+ if (newRef.equals("")) {
+ StereotypeUtil.unapply(selectedProperty, Ref.class);
+ }
+ else {
+ StereotypeUtil.apply(selectedProperty, Ref.class);
+ }
+
+ // Treat DefaultValue
+ // need common class for facilitating this
+ // selectedParameter.setDefaultValue(selectedParameter.createDefaultValue("default", selectedParameter.getType(), null);
+
+ // Treat Array
+ String newArray = docArray.get();
+ if (newArray.equals("")) {
+ StereotypeUtil.unapply(selectedProperty, Array.class);
+ }
+ else {
+ StereotypeUtil.apply(selectedProperty, Array.class);
+ }
+ }
+ });
+ }
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#refreshPanel()
+ */
+ @Override
+ protected void refreshPanel() {
+ if (selectedProperty == null) {
+ /* Log.debug("resetBody : selectedProperty is null"); */
+ }
+ else {
+ isStatic.setSelection(selectedProperty.isStatic());
+ isConst.setSelection(StereotypeUtil.isApplied(selectedProperty, Const.class));
+ docPtr.set(StereotypeUtil.isApplied(selectedProperty, Ptr.class) ? "*" : "");
+ docRef.set(StereotypeUtil.isApplied(selectedProperty, Ref.class) ? "&" : "");
+ docDefault.set(selectedProperty.getDefault());
+ docArray.set(StereotypeUtil.isApplied(selectedProperty, Array.class) ? "[]" : "");
+ }
+ }
+
+ /**
+ * Called when the static checkbox is modified
+ */
+ protected void checkStatic() {
+
+ boolean boxState = isStatic.getSelection();
+
+ selectedProperty.setIsStatic(boxState);
+ }
+
+ /**
+ * Called when the const checkbox is modified
+ */
+ protected void checkConst() {
+ boolean boxState = isConst.getSelection();
+
+ if (StereotypeUtil.isApplied(selectedProperty, Const.class) != boxState) {
+ if (boxState) {
+ StereotypeUtil.apply(selectedProperty, Const.class);
+ }
+ else {
+ StereotypeUtil.unapply(selectedProperty, Const.class);
+ }
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accorduml.ui.views.panels.AccordUMLAbstractPanel#entryAction()
+ */
+ @Override
+ public void entryAction() {
+ super.entryAction();
+ reset();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#exitAction()
+ */
+ @Override
+ public void exitAction() {
+ super.exitAction();
+ }
+
+ /**
+ * Checks if the content of the panel is different to the model
+ * <p>
+ * This is a read only operation
+ *
+ * @return <code>true</code> if one of the element of the model is not up-to-date
+ * with the content of the panel
+ */
+ @Override
+ public boolean checkModifications() {
+ String ptrValue = StereotypeUtil.isApplied(selectedProperty, Ptr.class) ? "*" : "";
+ if (!docPtr.get().equals(ptrValue)) {
+ return true;
+ }
+
+ String refValue = StereotypeUtil.isApplied(selectedProperty, Ref.class) ? "&" : "";
+ if (!docRef.get().equals(refValue)) {
+ return true;
+ }
+
+ String defaultValue = selectedProperty.getDefault();
+ if (defaultValue == null) {
+ if (!docDefault.get().equals("")) {
+ return true;
+ }
+ }
+ else if (!docDefault.get().equals(defaultValue)) {
+ return true;
+ }
+
+ String arrayValue = StereotypeUtil.isApplied(selectedProperty, Array.class) ? "[]" : "";
+ if (!docArray.get().equals(arrayValue)) {
+ return true;
+ }
+ return false;
+
+ }
+
+
+ @Override
+ protected void updateModel()
+ {
+ CommandSupport.exec("C++ property save", new Runnable() {
+
+ @Override
+ public void run()
+ {
+ // Check button changes
+ checkStatic();
+ checkConst();
+
+ }
+ });
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppTemplateBindingPanel.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppTemplateBindingPanel.java
new file mode 100644
index 00000000000..ff62c9613f1
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppTemplateBindingPanel.java
@@ -0,0 +1,178 @@
+/*******************************************************************************
+ * Copyright (c) 2006 - 2007 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.views.panels;
+
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.source.SourceViewer;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.papyrus.views.cpp.CommandSupport;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.TemplateBinding;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+
+/**
+ * Panel displayed when a TemplateBinding is selected
+ * @deprecated This view will be replaced by an XWT view for the C++ profile
+ */
+@Deprecated
+public class CppTemplateBindingPanel extends CppAbstractPanel {
+
+ private TemplateBinding selectedTB;
+
+ // document used by the viewer
+ private IDocument docBinding;
+
+ @SuppressWarnings("unused")
+ private SourceViewer viewerBinding;
+
+ private Group groupBinding;
+
+ public CppTemplateBindingPanel(Composite parent, int style) {
+ super(parent, style);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#getSelectedElement()
+ */
+ @Override
+ public TemplateBinding getSelectedElement() {
+ return selectedTB;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#setSelectedElement(java.lang.Element)
+ */
+ @Override
+ public void setSelectedElement(Element newElement) {
+ super.setSelectedElement(newElement);
+ if (newElement instanceof TemplateBinding) {
+ this.selectedTB = (TemplateBinding) newElement;
+ }
+ else {
+ throw new RuntimeException("bad selection: " + newElement + " should be an uml2 TemplateBinding");
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accorduml.ui.views.panels.AccordUMLAbstractPanel#createContent()
+ */
+ @Override
+ public Control createContent() {
+
+ // /////////////////////////////////////////////////////////////////////
+ // Create save reset buttons with superclass method
+ // /////////////////////////////////////////////////////////////////////
+ createSaveResetButtons();
+
+ // /////////////////////////////////////////////////////////////////////
+ // Body
+ // /////////////////////////////////////////////////////////////////////
+
+ docBinding = createDocumentC();
+ groupBinding = createGroup(
+ this
+ , "Binding declaration (<...>)"
+ , groupBinding
+ , null
+ , true
+ , 0
+ , 0
+ , true);
+ // Use CDT CEditor coloration
+ viewerBinding = createViewerC(docBinding, groupBinding);
+
+ // /////////////////////////////////////////////////////////////////////
+
+ return this;
+ }
+
+ /**
+ * Saves the body for an '<code>TemplateBinding</code>'
+ */
+ @Override
+ public void save()
+ {
+ if (selectedTB == null) {
+ /* Log.debug("saveBody : selectedTemplateBinding is null"); */
+ }
+ else {
+ CommandSupport.exec("C++ template binding save", new Runnable() {
+
+ @Override
+ public void run()
+ {
+ // Treat Pointer
+ String newB = docBinding.get();
+ if (newB.equals("")) {
+ StereotypeUtil.unapply(selectedTB, TemplateBinding.class);
+ } else {
+ org.eclipse.papyrus.C_Cpp.TemplateBinding templateBinding = StereotypeUtil.applyApp(selectedTB, org.eclipse.papyrus.C_Cpp.TemplateBinding.class);
+ // TODO: use UML template bindings?
+ templateBinding.setBinding(newB);
+ }
+ }
+ });
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#refreshPanel()
+ */
+ @Override
+ protected void refreshPanel() {
+ if (selectedTB != null) {
+ org.eclipse.papyrus.C_Cpp.TemplateBinding templateBinding = UMLUtil.getStereotypeApplication(selectedTB, org.eclipse.papyrus.C_Cpp.TemplateBinding.class);
+ // TODO: use UML template bindings?
+ docBinding.set(templateBinding != null ? templateBinding.getBinding() : "");
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#entryAction()
+ */
+ @Override
+ public void entryAction() {
+ super.entryAction();
+ reset();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#checkModifications()
+ */
+ @Override
+ public boolean checkModifications() {
+ org.eclipse.papyrus.C_Cpp.TemplateBinding templateBinding = UMLUtil.getStereotypeApplication(selectedTB, org.eclipse.papyrus.C_Cpp.TemplateBinding.class);
+ // TODO: use UML template bindings?
+ String bindingValue = templateBinding != null ? templateBinding.getBinding() : "";
+ if (!docBinding.get().equals(bindingValue)) {
+ return true;
+ }
+ return false;
+
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppTemplateParameterPanel.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppTemplateParameterPanel.java
new file mode 100644
index 00000000000..4726c644d03
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/CppTemplateParameterPanel.java
@@ -0,0 +1,181 @@
+/*******************************************************************************
+ * Copyright (c) 2006 - 2007 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.views.panels;
+
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.source.SourceViewer;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.papyrus.views.cpp.CommandSupport;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.TemplateParameter;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+
+/**
+ * Panel displayed when a TemplateParameter is selected
+ * @deprecated This view will be replaced by an XWT view for the C++ profile
+ */
+@Deprecated
+public class CppTemplateParameterPanel extends CppAbstractPanel {
+
+ private TemplateParameter selectedTP;
+
+ // document used by the viewer
+ @SuppressWarnings("unused")
+ private SourceViewer viewerParameter;
+
+ private Group groupParameter;
+
+ private IDocument docParameter;
+
+ public CppTemplateParameterPanel(Composite parent, int style) {
+ super(parent, style);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#getSelectedElement()
+ */
+ @Override
+ public TemplateParameter getSelectedElement() {
+ return selectedTP;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#setSelectedElement(java.lang.Element)
+ */
+ @Override
+ public void setSelectedElement(Element newElement) {
+ super.setSelectedElement(newElement);
+ if (newElement instanceof TemplateParameter) {
+ this.selectedTP = (TemplateParameter) newElement;
+ }
+ else {
+ throw new RuntimeException("bad selection: " + newElement + " should be an uml2 TemplateParameter");
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accorduml.ui.views.panels.AccordUMLAbstractPanel#createContent()
+ */
+ @Override
+ public Control createContent() {
+
+ // /////////////////////////////////////////////////////////////////////
+ // Create save reset buttons with superclass method
+ // /////////////////////////////////////////////////////////////////////
+ createSaveResetButtons();
+
+ // /////////////////////////////////////////////////////////////////////
+ // TemplateParameter declaration
+ // /////////////////////////////////////////////////////////////////////
+ docParameter = createDocumentC();
+ groupParameter = createGroup(
+ this
+ , "Parameter name"
+ , buttonSave
+ , null
+ , true
+ , 0
+ , 0
+ , true);
+ // Use CDT CEditor coloration
+ viewerParameter = createViewerC(docParameter, groupParameter);
+
+ // /////////////////////////////////////////////////////////////////////
+ // Return control on this composite
+ // /////////////////////////////////////////////////////////////////////
+
+ return this;
+ }
+
+ /**
+ * Saves the body for an '<code>Property</code>'
+ */
+ @Override
+ public void save()
+ {
+ if (selectedTP == null) {
+ /* Log.debug("saveBody : selectedProperty is null"); */
+ }
+ else {
+ CommandSupport.exec("C++ template parameter save", new Runnable() {
+
+ @Override
+ public void run()
+ {
+ // Treat Parameter name
+ String newB = docParameter.get();
+ if (newB.equals("")) {
+ StereotypeUtil.unapply(selectedTP, org.eclipse.papyrus.C_Cpp.TemplateParameter.class);
+ }
+ else {
+ org.eclipse.papyrus.C_Cpp.TemplateParameter templateParameter = StereotypeUtil.applyApp(selectedTP, org.eclipse.papyrus.C_Cpp.TemplateParameter.class);
+ templateParameter.setName(newB);
+ }
+ }
+ });
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#refreshPanel()
+ */
+ @Override
+ protected void refreshPanel() {
+ if (selectedTP == null) {
+ /* Log.debug("resetBody : selectedProperty is null"); */
+ } else {
+
+ org.eclipse.papyrus.C_Cpp.TemplateParameter templateParameter = UMLUtil.getStereotypeApplication(selectedTP, org.eclipse.papyrus.C_Cpp.TemplateParameter.class);
+ String parameterName = templateParameter != null ? templateParameter.getName() : "";
+ docParameter.set(parameterName);
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#entryAction()
+ */
+ @Override
+ public void entryAction() {
+ super.entryAction();
+ reset();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.accordcpp.core.ui.panels.AccordCppAbstractPanel#checkModifications()
+ */
+ @Override
+ public boolean checkModifications() {
+ org.eclipse.papyrus.C_Cpp.TemplateParameter templateParameter = UMLUtil.getStereotypeApplication(selectedTP, org.eclipse.papyrus.C_Cpp.TemplateParameter.class);
+ // TODO: use UML template bindings?
+ String parameterName = templateParameter != null ? templateParameter.getName() : "";
+ if (!docParameter.get().equals(parameterName)) {
+ return true;
+ }
+ return false;
+ }
+}
diff --git a/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/PanelFactory.java b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/PanelFactory.java
new file mode 100644
index 00000000000..ae12cb171da
--- /dev/null
+++ b/extraplugins/qompass/codegen/cpp/org.eclipse.papyrus.views.cpp/src/org/eclipse/papyrus/views/panels/PanelFactory.java
@@ -0,0 +1,144 @@
+/*******************************************************************************
+ * Copyright (c) 2006 - 2007 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.views.panels;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.uml2.uml.Behavior;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.OpaqueBehavior;
+import org.eclipse.uml2.uml.Transition;
+import org.eclipse.uml2.uml.UMLPackage;
+
+
+/**
+ * Factory that creates panel given element type.
+ * @deprecated This view will be replaced by an XWT view for the C++ profile
+ */
+@Deprecated
+public class PanelFactory {
+
+ /** Singleton instance for this factory */
+ public static PanelFactory eINSTANCE = new PanelFactory();
+
+ /**
+ * Default constructor (private visibility for singleton pattern)
+ */
+ protected PanelFactory() {
+ }
+
+ /**
+ * Creates a panel for the given object. The object should be an {@link Element}. If not,
+ * it returns a default panel.
+ *
+ * @param parent
+ * the composite parent for the new panel
+ * @param style
+ * the SWT style of the panel
+ * @param object
+ * the object for which the panel is created
+ * @return the newly created panel
+ */
+ public CppAbstractPanel createPanel(Composite parent, int style, Object object) {
+ CppAbstractPanel panel;
+ if (object instanceof Element) {
+ panel = createPanel(parent, style, (Element) object);
+ } else {
+ panel = createPanel(parent, style, null);
+ }
+ return panel;
+ }
+
+ /**
+ * Creates a panel for the given element.
+ *
+ * @param parent
+ * the composite parent for the new panel
+ * @param style
+ * the SWT style of the panel
+ * @param element
+ * the UML2 element for which the panel is created
+ * @return the newly created panel
+ */
+ public CppAbstractPanel createPanel(Composite parent, int style, Element element) {
+ CppAbstractPanel panel = null;
+ int metaclassID = -1; // -1 => default case
+ if (element instanceof Transition) {
+ // navigate from transition to effect, if it exists (and has an opaque behavior)
+ Behavior effect = ((Transition) element).getEffect();
+ if (effect instanceof OpaqueBehavior) {
+ element = effect;
+ }
+ }
+ if (element != null) {
+ metaclassID = element.eClass().getClassifierID();
+ }
+
+ switch (metaclassID) {
+
+ case UMLPackage.OPERATION:
+ panel = new CppOperationPanel(parent, style);
+ break;
+
+ case UMLPackage.OPAQUE_BEHAVIOR:
+ panel = new CppBehaviorPanel(parent, style);
+ break;
+
+ case UMLPackage.CLASS:
+ panel = new CppClassPanel(parent, style);
+ break;
+
+ case UMLPackage.PACKAGE:
+ panel = new CppPackagePanel(parent, style);
+ break;
+
+ case UMLPackage.MODEL:
+ panel = new CppPackagePanel(parent, style);
+ break;
+
+ case UMLPackage.PRIMITIVE_TYPE:
+ panel = new CppPrimitiveTypePanel(parent, style);
+ break;
+
+ // same panel for property and its child elements
+ case UMLPackage.PROPERTY:
+ case UMLPackage.EXTENSION_END:
+ case UMLPackage.PORT:
+ panel = new CppPropertyPanel(parent, style);
+ break;
+
+ case UMLPackage.PARAMETER:
+ panel = new CppParameterPanel(parent, style);
+ break;
+
+ case UMLPackage.TEMPLATE_PARAMETER:
+ panel = new CppTemplateParameterPanel(parent, style);
+ break;
+
+ case UMLPackage.TEMPLATE_BINDING:
+ panel = new CppTemplateBindingPanel(parent, style);
+ break;
+
+ case UMLPackage.GENERALIZATION:
+ panel = new CppGeneralizationPanel(parent, style);
+ break;
+
+ default:
+ panel = new CppDefaultPanel(parent, style);
+ break;
+ }
+
+ panel.createContent();
+ panel.setSelectedElement(element);
+ return panel;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java-updatesite/.project b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java-updatesite/.project
new file mode 100644
index 00000000000..0cc00efb223
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java-updatesite/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.java-updatesite</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.pde.UpdateSiteBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.UpdateSiteNature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java-updatesite/site.xml b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java-updatesite/site.xml
new file mode 100644
index 00000000000..7ca05aad69a
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java-updatesite/site.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<site>
+ <feature url="features/org.eclipse.papyrus.java.generator.feature_0.10.0.201305271555.jar" id="org.eclipse.papyrus.java.generator.feature" version="0.10.0.201305271555">
+ <category name="org.eclipse.papyrus.java.generator"/>
+ <category name="org.eclipse.papyrus.java"/>
+ </feature>
+ <feature url="features/org.eclipse.papyrus.java.reverse.feature_0.10.0.201305271555.jar" id="org.eclipse.papyrus.java.reverse.feature" version="0.10.0.201305271555">
+ <category name="org.eclipse.papyrus.java"/>
+ </feature>
+ <feature url="features/org.eclipse.papyrus.java.profile.feature_0.10.0.201305271555.jar" id="org.eclipse.papyrus.java.profile.feature" version="0.10.0.201305271555">
+ <category name="org.eclipse.papyrus.java.profile"/>
+ <category name="org.eclipse.papyrus.java"/>
+ </feature>
+ <category-def name="org.eclipse.papyrus.java.generator" label="Java Generator">
+ <description>
+ Java Classes generator. This feature allows to generate Java classes from Papyrus classes and packages. It also allows to generate projects.
+ </description>
+ </category-def>
+ <category-def name="org.eclipse.papyrus.java.profile" label="Java Profile for classes and project generation">
+ <description>
+ This profile is used by the Java generator and the Java reverse to add additional properties to the UML model. These properties allows to change the names, specify project target, source targets, ...
+ </description>
+ </category-def>
+ <category-def name="org.eclipse.papyrus.java" label="Java Tools For Papyrus">
+ <description>
+ Tools related to the Java language. This set of plugins allows to reverse java code to a Papyrus model, and to generate Java code from a Papyrus model.
+ </description>
+ </category-def>
+</site>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/.classpath b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/.classpath
new file mode 100644
index 00000000000..ad32c83a788
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/.project b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/.project
new file mode 100644
index 00000000000..189ce3e8668
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.java.generator.jdtsynchronizer</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/.settings/org.eclipse.jdt.core.prefs b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..94d61f00da6
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,291 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=260
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=false
+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=260
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=5
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/.settings/org.eclipse.jdt.ui.prefs b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 00000000000..954281dbc31
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,68 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_functional_interfaces=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=false
+cleanup.format_source_code=false
+cleanup.format_source_code_changes_only=false
+cleanup.insert_inferred_type_arguments=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=false
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_redundant_type_arguments=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_anonymous_class_creation=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_lambda=true
+cleanup.use_parentheses_in_expressions=false
+cleanup.use_this_for_non_static_field_access=false
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=false
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_type_arguments=false
+cleanup_profile=_Papyrus
+cleanup_settings_version=2
+eclipse.preferences.version=1
+formatter_profile=_Papyrus
+formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * Constructor.\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*****************************************************************************\n * Copyright (c) ${year} CEA LIST and others.\n * \n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n * CEA LIST - Initial API and implementation\n * \n *****************************************************************************/\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\n * ${see_to_overridden}\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${see_to_target}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/META-INF/MANIFEST.MF b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..9c9e594967b
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/META-INF/MANIFEST.MF
@@ -0,0 +1,19 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.uml2.uml,
+ org.eclipse.m2m.qvt.oml,
+ org.eclipse.papyrus.java.generator.metamodel.jdt;bundle-version="1.2.0",
+ org.eclipse.core.runtime,
+ org.eclipse.papyrus.java.generator.transfo.umltojdt;bundle-version="1.2.0",
+ org.eclipse.jdt.core,
+ org.eclipse.jface.text,
+ org.eclipse.jdt.launching,
+ org.eclipse.core.resources
+Export-Package: org.eclipse.papyrus.java.generator.jdtsynchronizer
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-Version: 1.2.0.qualifier
+Bundle-Localization: plugin
+Bundle-Name: %pluginName
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.java.generator.jdtsynchronizer;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/about.html b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/about.html
new file mode 100644
index 00000000000..82d49bf5f81
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/build.properties b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/build.properties
new file mode 100644
index 00000000000..81e0fbf3cff
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/build.properties
@@ -0,0 +1,8 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ icons/,\
+ about.html,\
+ plugin.properties
+src.includes = about.html
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/icons/generate.psd b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/icons/generate.psd
new file mode 100644
index 00000000000..9a555a938e1
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/icons/generate.psd
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/icons/generation.png b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/icons/generation.png
new file mode 100644
index 00000000000..6a55c438352
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/icons/generation.png
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/icons/sample.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/icons/sample.gif
new file mode 100644
index 00000000000..34fb3c9d8cb
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/icons/sample.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/plugin.properties b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/plugin.properties
new file mode 100644
index 00000000000..41b9da94450
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/plugin.properties
@@ -0,0 +1,18 @@
+#################################################################################
+# Copyright (c) 2011 Nicolas Deblock & Manuel Giles.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Nicolas Deblock nico.deblock@gmail.com - Initial API and implementation
+# Manuel Giles giles.manu@live.fr - Initial API and implementation
+# Cedric Dumoulin Cedric.dumoulin@lifl.fr - Idea of the java generator project & help for the conception
+#
+#################################################################################
+
+
+pluginName = Jdt Synchronizer (Incubation)
+providerName = Eclipse Modeling Project
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/pom.xml b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/pom.xml
new file mode 100644
index 00000000000..9361e773d27
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.java.generator.jdtsynchronizer</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/GeneratorPreference.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/GeneratorPreference.java
new file mode 100644
index 00000000000..56af682c908
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/GeneratorPreference.java
@@ -0,0 +1,77 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Initial API and implementation
+ * Manuel Giles giles.manu@live.fr - Initial API and implementation
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Idea of the java generator project & help for the conception
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.java.generator.jdtsynchronizer;
+
+public interface GeneratorPreference {
+
+ /**
+ * indicate if methods of inherits interfaces must be implement in a class
+ *
+ * @return
+ */
+ public boolean implementMethodsOfIntefaces();
+
+ /**
+ * indicate if methods of inherit abstract class must be implement in a class
+ *
+ * @return
+ */
+ public boolean implementMethodsOfAbstractClass();
+
+ /**
+ * indicate if getters must be create
+ *
+ * @return
+ */
+ public boolean generateGetters();
+
+ /**
+ * indicate if setters must be create
+ *
+ * @return
+ */
+ public boolean generateSetters();
+
+ /**
+ * indicate if a package must be generate
+ *
+ * @param packageQualifiedName
+ * package to generate
+ * @return
+ */
+ public boolean isPackageToGenerate(String packageQualifiedName);
+
+ /**
+ *
+ * @return generic class to use for the association * (multi-value)
+ */
+ public String genericClassForMultiValue();
+
+ /**
+ * Return true if we want to stop on first error, false if we want to continue anyway.
+ *
+ * @return
+ */
+ public boolean stopOnFirstError();
+
+ /**
+ *
+ * @return the default source folder name where the generator have to generate Java files and packages.
+ */
+ public String defaultSourceFolderName();
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/RunGenerator.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/RunGenerator.java
new file mode 100644
index 00000000000..4ff03a7e505
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/RunGenerator.java
@@ -0,0 +1,228 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Initial API and implementation
+ * Manuel Giles giles.manu@live.fr - Initial API and implementation
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Idea of the java generator project & help for the conception
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.java.generator.jdtsynchronizer;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.util.List;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EPackageRegistryImpl;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.URIConverter;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
+import org.eclipse.m2m.qvt.oml.BasicModelExtent;
+import org.eclipse.m2m.qvt.oml.ExecutionContextImpl;
+import org.eclipse.m2m.qvt.oml.ExecutionDiagnostic;
+import org.eclipse.m2m.qvt.oml.ModelExtent;
+import org.eclipse.m2m.qvt.oml.TransformationExecutor;
+import org.eclipse.papyrus.java.generator.jdtsynchronizer.impl.SynchJDTJavaModel;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.GeneratoroptionsmmFactory;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.Options;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaModel;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitor;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitorException;
+import org.eclipse.papyrus.java.generator.transfo.umltojdt.UmltojdtActivator;
+import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.resource.UMLResource;
+
+/**
+ * Class to Run the QVT Transformation, and then the Java generation
+ */
+public class RunGenerator {
+
+ /**
+ * This is the metamodele
+ */
+ private EList<EObject> inObjects;
+
+ /**
+ * Constructor of RunGenerator using .uml file
+ *
+ * @param UMLFileUrl
+ * the '.uml' file's url
+ * @throws FileNotFoundException
+ */
+ public RunGenerator(String umlFileUrl) throws FileNotFoundException {
+
+ // charge the model of the '.uml' file
+ inObjects = loadUmlModel(umlFileUrl);
+ }
+
+ /**
+ * Constructor of RunGenerator using EList<EObject> metamodel
+ *
+ * @param UMLFileUrl
+ * the '.uml' file's url
+ */
+ public RunGenerator(EList<EObject> inObjects) {
+ this.inObjects = inObjects;
+ }
+
+ /**
+ * run code generation using QVTo transformation
+ *
+ * @throws JDTVisitorException
+ */
+ public void runGeneration(GeneratorPreference preference) throws JDTVisitorException {
+ // Create an options model using the Eclipse Preferences
+ EList<EObject> inOptions = createOptionModelFromEclipsePreferences(preference);
+
+ // Refer to an existing transformation via URI
+ final URI scriptUri =
+ URI.createURI("platform:/plugin/" + UmltojdtActivator.PLUGIN_ID + UmltojdtActivator.PATH_QVT_FILE);
+
+ List<EObject> outObjects = runTransformation(scriptUri, inObjects, inOptions);
+
+ if (outObjects.size() == 0) {
+ throw new JDTVisitorException("No classes or packages produced from the transformation. Nothing is generated.");
+ }
+
+ if (outObjects.size() > 1) {
+ System.err.println("Warning, JDT modele has more than one root. Found root:");
+ for (EObject el : outObjects) {
+ System.err.println(((JDTJavaElement) el).getElementName());
+ }
+ System.err.println("-------");
+ }
+
+ // finally, we synchronize the JDT model with org.eclipse.jdt.core
+ if (outObjects.size() > 0) {
+ /*
+ * TODO : if metamodel have some root node, we make a loop
+ * JDTJavaElement proj = (JDTJavaElement) outObjects.get(0);
+ *
+ * JDTVisitor visitor = new SynchJDTJavaModel();
+ * proj.accept(visitor);
+ */
+ for (Object o : outObjects) {
+ if (o instanceof JDTJavaModel) {
+ JDTJavaElement proj = (JDTJavaElement) o;
+ JDTVisitor visitor = new SynchJDTJavaModel(preference);
+ proj.accept(visitor);
+ }
+
+ }
+ }
+ }
+
+ /**
+ * Create a new GeneratorOptions model and inject eclipse preferences on it.
+ *
+ * @param preference
+ * eclipse preferences
+ * @return a new instance of Options, where options.defaultSourceFolder have been initialized.
+ */
+ private EList<EObject> createOptionModelFromEclipsePreferences(GeneratorPreference preference) {
+ GeneratoroptionsmmFactory optionsFactory = GeneratoroptionsmmFactory.eINSTANCE;
+
+ // Create a new Options object and inject the default source folder name from Eclipse preferences
+ Options options = optionsFactory.createOptions();
+ options.setDefaultSourceFolder(preference.defaultSourceFolderName());
+
+ // Add options to the model
+ EList<EObject> optionsContents = new BasicEList<EObject>(1);
+ optionsContents.add(options);
+
+ return optionsContents;
+ }
+
+ /**
+ * Run QVTo transformation using the scriptUri and the inObjects model
+ *
+ * @param scriptUri
+ * The script QVTo
+ * @param inObjects
+ * The entry model
+ * @param inOptions2
+ * @return The output model
+ */
+ private List<EObject> runTransformation(URI scriptUri, EList<EObject> inObjects, EList<EObject> inOptions) {
+ // initialize the transformation
+ // First, you need to instantiate a Registry:
+ EPackage.Registry registry = new EPackageRegistryImpl(EPackage.Registry.INSTANCE);
+
+ // which is used to register the meta-models in E:\workspace\modelesUML\org.eclipse.papyrus.java.javagen.mmJDT\metaModel
+
+ JdtmmPackage mm1 = JdtmmPackage.eINSTANCE;
+ registry.put(mm1.getNsURI(), mm1);
+
+ // class which allow to execute the transformation
+ TransformationExecutor t = new TransformationExecutor(scriptUri, registry);
+ ExecutionContextImpl executionContext = new ExecutionContextImpl();
+
+ // allow to contains the model uml
+ ModelExtent input = new BasicModelExtent(inObjects);
+ ModelExtent inputOptions = new BasicModelExtent(inOptions);
+ ModelExtent output = new BasicModelExtent();
+ // make the transformation
+ ExecutionDiagnostic executionDiagnostic = t.execute(executionContext, input, inputOptions, output);
+
+ // the errors
+ System.out.println(executionDiagnostic.getMessage());
+ for (Diagnostic d : executionDiagnostic.getChildren()) {
+ System.out.println(d.getMessage());
+ }
+
+
+ // we take the out JDT model in a list
+ return output.getContents();
+ }
+
+
+ /**
+ * Allow to charge the uml model in a list
+ *
+ * @param url
+ * the '.uml' file's url
+ * @return the charge model
+ * @throws FileNotFoundException
+ */
+ private EList<EObject> loadUmlModel(String url) throws FileNotFoundException {
+
+ ResourceSet resourceSet = new ResourceSetImpl();
+
+ // charge the metamodel util for read the model
+ resourceSet.getPackageRegistry().put(UMLPackage.eNS_URI, UMLPackage.eINSTANCE);
+ resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(UMLResource.FILE_EXTENSION, UMLResource.Factory.INSTANCE);
+ // Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "uml", new UMLResourceFactoryImpl());
+
+ Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("*", new XMIResourceFactoryImpl());
+ URIConverter.URI_MAP.put(URI.createURI("pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml"), URI.createFileURI(System.getProperty("user.dir") + "/Model_Libs/UMLPrimitiveTypes.library.uml"));
+
+ // the '.uml' file's url
+ File file = new File(url);
+ if (!file.exists()) {
+ throw new FileNotFoundException("File " + new File(url).getAbsolutePath() + " not found");
+ }
+ URI fileURI = URI.createFileURI(new File(url).getAbsolutePath());
+
+ // demand load the resource for this file.
+ Resource resource = resourceSet.getResource(fileURI, true);
+
+ return resource.getContents();
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTCommentable.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTCommentable.java
new file mode 100644
index 00000000000..5a196a155b0
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTCommentable.java
@@ -0,0 +1,161 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Initial API and implementation
+ * Manuel Giles giles.manu@live.fr - Initial API and implementation
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Idea of the java generator project & help for the conception
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.java.generator.jdtsynchronizer.impl;
+
+import java.util.List;
+
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.core.dom.AST;
+import org.eclipse.jdt.core.dom.ASTParser;
+import org.eclipse.jdt.core.dom.BodyDeclaration;
+import org.eclipse.jdt.core.dom.CompilationUnit;
+import org.eclipse.jdt.core.dom.Javadoc;
+import org.eclipse.jdt.core.dom.TagElement;
+import org.eclipse.jdt.core.dom.TextElement;
+import org.eclipse.jdt.core.dom.TypeDeclaration;
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.Document;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitor;
+import org.eclipse.text.edits.MalformedTreeException;
+import org.eclipse.text.edits.TextEdit;
+
+/**
+ * Useful for class who have to generate Javadoc comment.
+ *
+ * @author Deblock Nicolas & Manuel Giles
+ *
+ */
+public abstract class SynchJDTCommentable implements JDTVisitor {
+
+
+ /**
+ * search the element to insert the Javadoc in compilation unit
+ *
+ * @param cu
+ * @param typeName
+ * @return
+ */
+ protected abstract BodyDeclaration searchElementToInsert(CompilationUnit cu, IJavaElement elementName);
+
+ /**
+ * return javaDoc tag to add. Call in function createJavaDocFor()
+ *
+ * @return javaDoc tag to add in a List<String> with String = "@tag comment"
+ */
+ protected abstract List<String> getJavadocTags();
+
+ /**
+ * Reads a ICompilationUnit and creates the AST DOM for manipulating the
+ * Java source file
+ *
+ * @param unit
+ * @return
+ */
+ private static CompilationUnit parse(ICompilationUnit unit) {
+ ASTParser parser = ASTParser.newParser(AST.JLS3);
+ parser.setKind(ASTParser.K_COMPILATION_UNIT);
+ parser.setSource(unit);
+ parser.setResolveBindings(true);
+ return (CompilationUnit) parser.createAST(null); // parse
+ }
+
+
+ /**
+ * Create a JavaDoc for a a objet who extends IJavaElement and IMethod
+ * (IType or IMethod by example)
+ *
+ * @param ielement
+ * the element you want add javadoc
+ * @param icu
+ * the compilation unit of ielement
+ * @param comment
+ * body of the comment
+ * @param auteur
+ * author of the compilation unit
+ * @throws JavaModelException
+ * @throws BadLocationException
+ * @throws MalformedTreeException
+ */
+ protected <U extends IJavaElement> void createJavaDocFor(U ielement, ICompilationUnit icu, String comment, String author) throws JavaModelException, MalformedTreeException, BadLocationException {
+
+ CompilationUnit cu = parse(icu);
+ // Authorize modification
+ cu.recordModifications();
+ // create document
+ Document document = new Document(icu.getBuffer().getContents());
+
+ // Creating the new JavaDoc node
+ AST ast = cu.getAST();
+ Javadoc jc = ast.newJavadoc();
+
+ TagElement tag = ast.newTagElement();
+ if (comment != null) {
+ TextElement te = ast.newTextElement();
+ tag.fragments().add(te);
+ te.setText(comment);
+ }
+ jc.tags().add(tag);
+
+ List<String> javadocTags = getJavadocTags();
+ if (javadocTags != null) {
+ for (String s : javadocTags) {
+ tag = ast.newTagElement();
+ tag.setTagName(s);
+ jc.tags().add(tag);
+ }
+ }
+ // add javadoc to type
+ BodyDeclaration classType = searchElementToInsert(cu, ielement);
+ if (classType != null) {
+ classType.setJavadoc(jc);
+ }
+
+ // Applying changes
+ TextEdit text = cu.rewrite(document, icu.getJavaProject().getOptions(true));
+ text.apply(document);
+
+ // set buffer of compilation unit
+ icu.getBuffer().setContents(document.get());
+
+ }
+
+ /**
+ * search type in type declaration
+ *
+ * @param classType
+ * type declaration
+ * @param typeName
+ * typeName type name research
+ * @return
+ */
+ protected TypeDeclaration searchType(TypeDeclaration classType, String typeName) {
+ if (classType.getName().toString().equals(typeName)) {
+ return classType;
+ }
+
+ for (Object objct : classType.getTypes()) {
+ TypeDeclaration ct = (TypeDeclaration) objct;
+ if (ct.getName().toString().equals(typeName)) {
+ return ct;
+ }
+ searchType(ct, typeName);
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTCompilationUnit.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTCompilationUnit.java
new file mode 100644
index 00000000000..1e6f34fb515
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTCompilationUnit.java
@@ -0,0 +1,95 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Initial API and implementation
+ * Manuel Giles giles.manu@live.fr - Initial API and implementation
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Idea of the java generator project & help for the conception
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.java.generator.jdtsynchronizer.impl;
+
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IPackageFragment;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.papyrus.java.generator.jdtsynchronizer.GeneratorPreference;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTCompilationUnit;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitor;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitorException;
+
+/**
+ * Allow to generate compilation Unit
+ *
+ * @author Deblock Nicolas & Manuel Giles
+ *
+ */
+public class SynchJDTCompilationUnit extends EObjectImpl implements JDTVisitor {
+
+ private IPackageFragment ipack;
+
+ private GeneratorPreference preference;
+
+ /**
+ * Constructor
+ *
+ * @param ipack
+ * the IPackageFragment parent
+ */
+ public SynchJDTCompilationUnit(IPackageFragment ipack, GeneratorPreference preference) {
+ super();
+ this.ipack = ipack;
+ this.preference = preference;
+ }
+
+ @Override
+ public void visit(JDTJavaElement element) throws JDTVisitorException {
+ // if element can't be generated, we stop all
+ if (!element.isGenerated()) {
+ return;
+ }
+ if (SynchTools.isPrimiveType(element.getElementName()) && !element.getElementName().equals("String")) {
+ return;
+ }
+
+ JDTCompilationUnit cu = (JDTCompilationUnit) element;
+ try {
+ ICompilationUnit icu = SynchTools.searchIJavaElement(ipack.getCompilationUnits(), cu.getElementName() + ".java");
+
+ if (icu == null) {
+ icu = ipack.createCompilationUnit(cu.getElementName() + ".java", "", true, null);
+ if (!ipack.getElementName().equals(IPackageFragment.DEFAULT_PACKAGE_NAME)) {
+ icu.createPackageDeclaration(ipack.getElementName(), null);
+ }
+ }
+
+ // call the children JDTType
+ JDTVisitor visitor = new SynchJDTType(icu, preference);
+
+ for (JDTType type : cu.getTypes()) {
+ type.accept(visitor);
+ }
+
+ // save the compilation unit
+ icu.save(null, true);
+ } catch (JavaModelException e) {
+ e.printStackTrace();
+ throw new JDTVisitorException(e.getMessage(), e.getCause());
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new JDTVisitorException(e.getMessage(), e.getCause());
+ }
+
+
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTField.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTField.java
new file mode 100644
index 00000000000..485ef9ce603
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTField.java
@@ -0,0 +1,217 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Initial API and implementation
+ * Manuel Giles giles.manu@live.fr - Initial API and implementation
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Idea of the java generator project & help for the conception
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.java.generator.jdtsynchronizer.impl;
+
+import java.util.List;
+
+import org.eclipse.jdt.core.IField;
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.core.dom.BodyDeclaration;
+import org.eclipse.jdt.core.dom.CompilationUnit;
+import org.eclipse.jdt.core.dom.FieldDeclaration;
+import org.eclipse.jdt.core.dom.TypeDeclaration;
+import org.eclipse.papyrus.java.generator.jdtsynchronizer.GeneratorPreference;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitorException;
+
+/**
+ * Allow to generate field in a type
+ *
+ * @author Deblock Nicolas & Manuel Giles
+ *
+ */
+public class SynchJDTField extends SynchJDTCommentable {
+
+ private IType itype;
+
+ private JDTField field;
+
+ private GeneratorPreference preference;
+
+ /**
+ * Constructor
+ *
+ * @param itype
+ * the type parent
+ */
+ public SynchJDTField(IType itype, GeneratorPreference preference) {
+ super();
+ this.itype = itype;
+ this.preference = preference;
+ }
+
+ @Override
+ public void visit(JDTJavaElement element) throws JDTVisitorException {
+ // if element can't be generated, we stop all
+ if (!element.isGenerated()) {
+ return;
+ }
+
+ field = (JDTField) element;
+
+ StringBuffer buffer = new StringBuffer();
+ try {
+ IField ifield = SynchTools.searchIJavaElement(itype.getFields(), field.getElementName());
+ if (ifield == null && field.getType() != null) {
+ // first : find the import package
+ // create import when it's not a primitive type
+ SynchTools.createImport(itype, field.getOwner(), field.getType());
+
+
+ // visibility
+ buffer.append("\n" + SynchTools.getVisibility(field).toString());
+
+ // // if it's an association *
+ if (field.isMultiValued()) {
+ buffer.append(SynchTools.getMultiValued(itype, field.getType().getElementName(), preference));
+ } else {
+ buffer.append(field.getType().getElementName());
+ }
+
+
+ // create type
+ buffer.append(" " + field.getElementName());
+
+ if (field.getValue() != null) {
+ buffer.append(" = ");
+ if (field.getType().getElementName().equals("char")) {
+ buffer.append("'" + field.getValue().toString() + "'");
+ } else if (field.getType().getElementName().equals("String")) {
+ buffer.append("\"" + field.getValue().toString() + "\"");
+ } else {
+ buffer.append(field.getValue().toString());
+ }
+ }
+
+ buffer.append(";");
+
+ // create type
+ ifield = itype.createField(buffer.toString(), null, true, null);
+
+ // add javadoc to method
+ createJavaDocFor(ifield, ifield.getCompilationUnit(), field.getComment(), "");
+ }
+ else if (field.getType() == null) {
+ System.err.println("No type specified for "
+ + field.getOwner().getQualifiedName()
+ + "." + field.getElementName());
+ }
+
+
+ // Generate explicit imports
+ generateExplicitImports(field, itype);
+
+ } catch (JavaModelException e) {
+ // e.printStackTrace();
+ String msg = "Can't generate field (class='"
+ + field.getOwner().getQualifiedName()
+ + "', msg= " + e.getMessage()
+ + ", buffer=" + buffer.toString()
+ + ")";
+ // System.err.println(msg);
+ // throw new JDTVisitorException( msg, e.getCause());
+ propagateException(msg, e);
+ } catch (Exception e) {
+ // e.printStackTrace();
+ // throw new JDTVisitorException(e.getMessage(), e.getCause());
+ propagateException(e.getMessage(), e);
+ }
+ }
+
+ /**
+ * Propagate a {@link JDTVisitorException} if the flag is not set
+ *
+ * @param msg
+ * @param e
+ * @throws JDTVisitorException
+ */
+ private void propagateException(String msg, Throwable e) throws JDTVisitorException {
+
+ if (preference.stopOnFirstError()) {
+ throw new JDTVisitorException(msg, e.getCause());
+ }
+ else {
+ // Show error
+ System.err.println(msg);
+ e.printStackTrace();
+ }
+ }
+
+ @Override
+ protected BodyDeclaration searchElementToInsert(CompilationUnit cu,
+ IJavaElement field) {
+
+ // search Itype parent
+ if (field.getParent() instanceof IType) {
+ IType itype = (IType) field.getParent();
+ // find the good type
+ TypeDeclaration type = searchType((TypeDeclaration) cu.types().get(0), itype.getElementName());
+
+ // search the method. Fortunately, there are no method getSignature() for the type FieldDeclaration.
+ // So, we search manually
+ for (FieldDeclaration fs : type.getFields()) {
+ if (fs.toString().contains((field.getElementName()))) {
+ return fs;
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ protected List<String> getJavadocTags() {
+ // any javadoc tag
+ return null;
+ }
+
+ /**
+ * Generate imports that are explicitly declared in the type
+ *
+ * @param field2
+ * The src type to be transformed
+ * @param destType
+ * The jdt dest type to be generated
+ * @throws JavaModelException
+ * @throws JDTVisitorException
+ */
+ private void generateExplicitImports(JDTField field2, IType destType) throws JDTVisitorException {
+
+
+ // Add explicit type
+ for (JDTType anImport : field2.getExplicitRequiredImports()) {
+ try {
+ destType.getCompilationUnit().createImport(anImport.getQualifiedName(), null, null);
+ } catch (Exception e) {
+ propagateException(destType.getFullyQualifiedName() + "Can't add explicit import " + anImport.getQualifiedName(), e);
+ }
+ }
+
+ // Add explicit plain text types
+ for (String anImport : field2.getExplicitPlainTextRequiredImports()) {
+ try {
+ destType.getCompilationUnit().createImport(anImport, null, null);
+ } catch (JavaModelException e) {
+ propagateException(destType.getFullyQualifiedName() + "Can't add explicit plain text import " + anImport, e);
+ }
+ }
+
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTGetterSetter.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTGetterSetter.java
new file mode 100644
index 00000000000..b1939423c7c
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTGetterSetter.java
@@ -0,0 +1,168 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Initial API and implementation
+ * Manuel Giles giles.manu@live.fr - Initial API and implementation
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Idea of the java generator project & help for the conception
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.java.generator.jdtsynchronizer.impl;
+
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.core.IMethod;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.core.dom.BodyDeclaration;
+import org.eclipse.jdt.core.dom.CompilationUnit;
+import org.eclipse.jdt.core.dom.MethodDeclaration;
+import org.eclipse.jdt.core.dom.TypeDeclaration;
+import org.eclipse.papyrus.java.generator.jdtsynchronizer.GeneratorPreference;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.TrueFalseDefault;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitorException;
+
+public class SynchJDTGetterSetter extends SynchJDTMethod {
+
+ private JDTField field;
+
+ private GeneratorPreference preference;
+
+ public SynchJDTGetterSetter(IType it, GeneratorPreference preference) {
+ super(it, preference);
+ this.preference = preference;
+ }
+
+
+ @Override
+ public void visit(JDTJavaElement element) throws JDTVisitorException {
+ this.field = (JDTField) element;
+ // error if field.getType() == null. indicate in console only
+ if (field.getType() == null) {
+ System.err.println("l31 SunchJDTGetterSetter : field.getType() est null pour " + field.getElementName() + " dans " + field.getOwner().getElementName());
+ return;
+ }
+
+
+ try {
+ // name of field
+ String fieldNameCap = field.getElementName().replaceFirst(".", (field.getElementName().charAt(0) + "").toUpperCase());
+
+ // generate getter
+ if (field.getGenerateGetter() == TrueFalseDefault.TRUE || // user demand generate getter
+ field.getGenerateGetter() == TrueFalseDefault.DEFAULT && preference.generateGetters()) { // or no demand, look at preferences
+ StringBuffer bufferGet = new StringBuffer();
+
+ bufferGet.append("public ");
+
+ // handle MultiValued
+ if (field.isMultiValued()) {
+ bufferGet.append(SynchTools.getMultiValued(itype, field.getType().getElementName(), preference));
+ } else {
+ bufferGet.append(field.getType().getElementName());
+ }
+
+
+ bufferGet.append(" get" + fieldNameCap + "() {\n "
+ + "\t return " + field.getElementName() + "; \n} \n");
+
+
+
+
+ IMethod imethod = SynchTools.searchIJavaElement(itype.getMethods(), "get" + fieldNameCap);
+ if (imethod == null) {
+ IMethod methodGet = itype.createMethod(bufferGet.toString(), null, true, null);
+ createJavaDocFor(methodGet, itype.getCompilationUnit(), "Getter of " + field.getElementName(), "");
+ }
+ }
+
+
+ // generate setter
+ if (field.getGenerateSetter() == TrueFalseDefault.TRUE || // user demand generate setter
+ field.getGenerateSetter() == TrueFalseDefault.DEFAULT && preference.generateSetters()) { // or no demand, look at preferences
+ StringBuffer bufferSet = new StringBuffer();
+
+ bufferSet.append("public void set" + fieldNameCap + "(");
+
+ // handle MultiValued
+ if (field.isMultiValued()) {
+ bufferSet.append(SynchTools.getMultiValued(itype, field.getType().getElementName(), preference));
+ } else {
+ bufferSet.append(field.getType().getElementName());
+ }
+
+ bufferSet.append(" " + field.getElementName() + ") { \n"
+ + "\t this." + field.getElementName() + " = " + field.getElementName() + "; \n} \n ");
+
+
+
+
+ IMethod imethod = SynchTools.searchIJavaElement(itype.getMethods(), "set" + fieldNameCap);
+ if (imethod == null) {
+ IMethod methodSet = itype.createMethod(bufferSet.toString(), null, true, null);
+ createJavaDocFor(methodSet, itype.getCompilationUnit(), "Setter of " + field.getElementName(), "");
+ }
+ }
+ } catch (JavaModelException e) {
+ e.printStackTrace();
+ throw new JDTVisitorException(e.getMessage(), e.getCause());
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new JDTVisitorException(e.getMessage(), e.getCause());
+ }
+ }
+
+
+ @Override
+ // search the method to insert Javadoc
+ protected BodyDeclaration searchElementToInsert(CompilationUnit cu,
+ IJavaElement method) {
+
+ // search Itype parent
+ if (method.getParent() instanceof IType) {
+ IType itype = (IType) method.getParent();
+ // find the good type
+ TypeDeclaration type = searchType((TypeDeclaration) cu.types().get(0), itype.getElementName());
+
+ // search the method. Fortunately, there are no method getSignature() for the type MethodDeclaration.
+ // So, we search manually
+ for (MethodDeclaration m : type.getMethods()) {
+ if (m.getName().toString().equals(method.getElementName())) {
+ // verify the signature
+ return m;
+ /*
+ * TODO
+ * if(m.parameters() !=null && m.parameters().size() == 0 && this.method.getParameters().size() == 0)
+ * return m;
+ * if(m.parameters().size() == this.method.getParameters().size()) {
+ * int numParam = 0;
+ * boolean goodSignature = true;
+ * for(Object paramObj : m.parameters()) {
+ * if(paramObj instanceof SingleVariableDeclaration) {
+ * SingleVariableDeclaration param = (SingleVariableDeclaration) paramObj;
+ * if(!param.getType().toString().equals(this.method.getParameters().get(numParam).getType().getElementName()))
+ * goodSignature = false;
+ *
+ * numParam++;
+ * }
+ * }
+ * if(goodSignature)
+ * return m;
+ * }
+ */
+ }
+ }
+ }
+
+ return null;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTJavaModel.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTJavaModel.java
new file mode 100644
index 00000000000..7dc71d9ccef
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTJavaModel.java
@@ -0,0 +1,73 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Initial API and implementation
+ * Manuel Giles giles.manu@live.fr - Initial API and implementation
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Idea of the java generator project & help for the conception
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.java.generator.jdtsynchronizer.impl;
+
+
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.jdt.core.IJavaModel;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.papyrus.java.generator.jdtsynchronizer.GeneratorPreference;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaModel;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaProject;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitor;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitorException;
+
+/**
+ * Allow to generate Code thanks to a JDT model
+ *
+ * @author Deblock Nicolas & Manuel Giles
+ *
+ */
+public class SynchJDTJavaModel implements JDTVisitor {
+
+ private GeneratorPreference preference;
+
+ /**
+ * Constructor
+ *
+ * @param modelJDT
+ * the model JDT to generate
+ */
+ public SynchJDTJavaModel(GeneratorPreference preference) {
+ this.preference = preference;
+ }
+
+ @Override
+ public void visit(JDTJavaElement element) throws JDTVisitorException {
+ // if element can't be generated, we stop all
+ // if(!element.isGenerated()) return ;
+
+ if (!(element instanceof JDTJavaModel)) {
+ return;
+ }
+ // cast element to JDTJavaModel
+ JDTJavaModel model = (JDTJavaModel) element;
+
+ // research the IJavaModel
+ IWorkspaceRoot iroot = ResourcesPlugin.getWorkspace().getRoot();
+ IJavaModel ijm = JavaCore.create(iroot);
+
+
+ // browse all JDTJavaProject and call the visit
+ JDTVisitor visitor = new SynchJDTJavaProject(ijm, iroot, preference);
+ for (JDTJavaProject root : model.getJavaProject()) {
+ root.accept(visitor);
+ }
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTJavaProject.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTJavaProject.java
new file mode 100644
index 00000000000..fa545843b69
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTJavaProject.java
@@ -0,0 +1,145 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Initial API and implementation
+ * Manuel Giles giles.manu@live.fr - Initial API and implementation
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Idea of the java generator project & help for the conception
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.java.generator.jdtsynchronizer.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IProjectDescription;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jdt.core.IClasspathEntry;
+import org.eclipse.jdt.core.IJavaModel;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.launching.IVMInstall;
+import org.eclipse.jdt.launching.JavaRuntime;
+import org.eclipse.papyrus.java.generator.jdtsynchronizer.GeneratorPreference;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaProject;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragmentRoot;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.util.JdtmmPreference;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitor;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitorException;
+
+/**
+ * Allow to generate Code thanks to a JDT model
+ *
+ * @author Deblock Nicolas & Manuel Giles
+ *
+ */
+public class SynchJDTJavaProject implements JDTVisitor {
+
+ private IJavaModel ijm;
+
+ private IWorkspaceRoot iroot;
+
+ private GeneratorPreference preference;
+
+ /**
+ * Constructor
+ *
+ * @param modelJDT
+ * the model JDT to generate
+ */
+ public SynchJDTJavaProject(IJavaModel ijm, IWorkspaceRoot iroot, GeneratorPreference preference) {
+ this.ijm = ijm;
+ this.iroot = iroot;
+ this.preference = preference;
+ }
+
+
+ @Override
+ public void visit(JDTJavaElement element) throws JDTVisitorException {
+ // if element can't be generated, we stop all
+ if (!element.isGenerated()) {
+ return;
+ }
+
+ if (!(element instanceof JDTJavaProject)) {
+ return;
+ }
+ // cast element to JDTJavaProject
+ JDTJavaProject project = (JDTJavaProject) element;
+
+ // set the multi-value for the metamodel
+ JdtmmPreference.setClassMultiValue(preference.genericClassForMultiValue().substring(preference.genericClassForMultiValue().lastIndexOf(".") + 1));
+
+
+ // search IJavaProject
+ // IProject projet = iroot.getProject(project.getElementName());
+ IJavaProject ijavaProjet = ijm.getJavaProject(project.getElementName());
+ IProject proj;
+
+ // if ijavaProjet don't exist, create this!
+ if (!ijavaProjet.exists()) {
+ try {
+ proj = iroot.getProject(project.getElementName());
+ if (!proj.exists()) {
+ proj.create(null);
+ proj.open(null);
+ } else if (!proj.isOpen()) {
+ proj.open(null);
+ }
+
+ // Specifies type of project
+ IProjectDescription description = proj.getDescription();
+ description.setNatureIds(new String[] { JavaCore.NATURE_ID });
+ proj.setDescription(description, null);
+ } catch (CoreException e) {
+ e.printStackTrace();
+ throw new JDTVisitorException(e.getMessage());
+ }
+
+ ijavaProjet = JavaCore.create(proj);
+ }
+
+ // include the default JRE library if don't exist
+ List<IClasspathEntry> entries = new ArrayList<IClasspathEntry>();
+ IVMInstall vmInstall = JavaRuntime.getDefaultVMInstall();
+ boolean creerJRE = true;
+
+
+ try {
+ // take libs to project class path
+ for (IClasspathEntry elem : ijavaProjet.getRawClasspath()) {
+ if (elem.getPath().toString().contains(JavaRuntime.JRE_CONTAINER)) {
+ creerJRE = false;
+ }
+ entries.add(elem);
+ }
+ // if jre don't exist, we add it to classpath
+ if (creerJRE) {
+ entries.add(JavaCore.newContainerEntry(JavaRuntime.newJREContainerPath(vmInstall)));
+ ijavaProjet.setRawClasspath(entries.toArray(new IClasspathEntry[entries.size()]), null);
+ }
+ } catch (JavaModelException e) {
+ e.printStackTrace();
+ throw new JDTVisitorException(e.getMessage(), e.getCause());
+ }
+
+
+
+ // browse all PackageFragmentRoot and call the visit
+ JDTVisitor visitor = new SynchJDTPackageFragmentRoot(ijavaProjet, preference);
+ for (JDTPackageFragmentRoot root : project.getPackageFragmentRoots()) {
+ root.accept(visitor);
+ }
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTMethod.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTMethod.java
new file mode 100644
index 00000000000..f7b07b36d9c
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTMethod.java
@@ -0,0 +1,387 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Initial API and implementation
+ * Manuel Giles giles.manu@live.fr - Initial API and implementation
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Idea of the java generator project & help for the conception
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.java.generator.jdtsynchronizer.impl;
+
+
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.jdt.core.Flags;
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.core.IMethod;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.core.dom.BodyDeclaration;
+import org.eclipse.jdt.core.dom.CompilationUnit;
+import org.eclipse.jdt.core.dom.MethodDeclaration;
+import org.eclipse.jdt.core.dom.SingleVariableDeclaration;
+import org.eclipse.jdt.core.dom.TagElement;
+import org.eclipse.jdt.core.dom.TypeDeclaration;
+import org.eclipse.papyrus.java.generator.jdtsynchronizer.GeneratorPreference;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethodBody;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitorException;
+
+
+/**
+ * Allow to generate Method in a IType
+ *
+ * @author Deblock Nicolas & Manuel Giles
+ *
+ */
+public class SynchJDTMethod extends SynchJDTCommentable {
+
+ protected IType itype;
+
+ private JDTMethod method;
+
+ private GeneratorPreference preference;
+
+ /**
+ * Constructor
+ *
+ * @param itype
+ * the type parent
+ */
+ public SynchJDTMethod(IType itype, GeneratorPreference preference) {
+ super();
+ this.itype = itype;
+ this.preference = preference;
+ }
+
+
+
+ @Override
+ public void visit(JDTJavaElement element) throws JDTVisitorException {
+ // if element can't be generated, we stop all
+ if (!element.isGenerated()) {
+ return;
+ }
+
+ method = (JDTMethod) element;
+ // IntroduceParameterObjectDescript
+ IMethod imethod = null;
+
+ try {
+ // See if the method exist
+ boolean createMethod = true;
+
+ for (IMethod m : itype.getMethods()) {
+ // if it's the same name, and the same parameterTypes, the method exist
+ if (m.getElementName().equals(method.getElementName()) && m.getSignature().equals(method.getJDTSignature())) {
+ // stop all
+ createMethod = false;
+ imethod = m;
+ break;
+ }
+ }
+
+ if (createMethod) {
+ StringBuffer methodStr = new StringBuffer("\n");
+
+ // visibility
+ if (itype.isInterface()) {
+ methodStr.append("public ");
+ } else {
+ methodStr.append(SynchTools.getVisibility(method).toString());
+ }
+
+ // if method is a constructor, no return Type, and name is class name
+ if (method.isConstructor()) {
+ methodStr.append(itype.getElementName() + "(");
+ }
+ else {
+ // return type
+ if (method.getReturnType() != null) {
+ // Compute the type, taken into account multivalue
+ String type = getTypeAsString(method.getReturnType());
+ // put the import package
+ SynchTools.createImport(itype, method.getOwner(), method.getReturnType().getType());
+
+ methodStr.append(type + " ");
+ }
+ else {
+ methodStr.append("void ");
+ }
+ // method name
+ methodStr.append(method.getElementName() + "(");
+ }
+ // parameters
+ // System.out.println(method.getParam() + " " + method.getParameterTypes());
+ int nbParam = 0;
+ for (JDTParameter p : method.getParameters()) {
+ String typeName = p.getElementName();
+ String type = "Undefined";
+ if (p.getType() != null) {
+ // Compute the type, taken into account multivalue
+ type = getTypeAsString(p);
+ // put the import package
+ SynchTools.createImport(itype, method.getOwner(), p.getType());
+ }
+
+
+ if (nbParam > 0) {
+ methodStr.append(", ");
+ }
+ methodStr.append(type + " " + typeName);
+ nbParam++;
+ }
+
+ // close
+ methodStr.append(")");
+
+ // throws
+ if (method.getExceptions() != null && method.getExceptions().size() > 0) {
+ methodStr.append(" throws ");
+ int nbExc = 0;
+ for (JDTType exception : method.getExceptions()) {
+ if (nbExc > 0) {
+ methodStr.append(", ");
+ }
+ methodStr.append(exception.getElementName());
+ if (!SynchTools.isPrimiveType(exception.getQualifiedName()) && exception.getQualifiedName().contains(".")) {
+ itype.getCompilationUnit().createImport(exception.getQualifiedName(), null, null);
+ }
+ nbExc++;
+ }
+ }
+
+
+ // Do we need a body ?
+ if (itype.isInterface() || Flags.isAbstract(method.getFlags())) {
+ methodStr.append(";");
+ }
+ else {
+ // Generate Body. Open the body
+ methodStr.append(" {");
+ // If there is a declared body, use it. Otherwise, use the default body.
+ if (method.getBodies().size() > 0) {
+
+ for (JDTMethodBody body : method.getBodies()) {
+ methodStr.append("\n\t");
+ methodStr.append(body.asText());
+ }
+ // methodStr.append("\n");
+ }
+ else {
+ // Default body
+ methodStr.append(" \n\t// TODO Auto-generated method");
+ if (method.getReturnType() != null) {
+ methodStr.append("\n\treturn " + SynchTools.defaultReturn(method.getReturnType().getType().getElementName()) + ";");
+ }
+
+ }
+ // Close the body
+ methodStr.append("\n }");
+ }
+
+ // create the method
+ imethod = itype.createMethod(methodStr.toString(), null, true, null);
+ }
+
+ // add javadoc to method
+ createJavaDocFor(imethod, imethod.getCompilationUnit(), method.getComment(), "");
+ // Add explicit imports
+ generateExplicitImports(method, itype);
+ } catch (JavaModelException e) {
+ // e.printStackTrace();
+ // throw new JDTVisitorException(e.getMessage(), e.getCause());
+ propagateException(e.getMessage(), e);
+ } catch (Exception e) {
+ // e.printStackTrace();
+ // throw new JDTVisitorException(e.getMessage(), e.getCause());
+ propagateException(e.getMessage(), e);
+ }
+
+
+ }
+
+
+ /**
+ * Get the type of the parameter as a String. Take into account the multivalue setting.
+ *
+ * @param p
+ * @return
+ * @throws JavaModelException
+ */
+ private String getTypeAsString(JDTParameter p) throws JavaModelException {
+ String type;
+ if (p.isMultiValued()) {
+ type = SynchTools.getMultiValued(itype, p.getType().getElementName(), preference);
+ } else {
+ type = p.getType().getElementName();
+ }
+ return type;
+ }
+
+
+
+
+
+ /** *************** methods override by SynchJDTCommentable ************** */
+
+
+ @Override
+ /**
+ * search the method to insert Javadoc
+ *
+ * @see org.eclipse.papyrus.java.generator.jdtsynchronizer.impl.SynchJDTCommentable#searchElementToInsert(org.eclipse.jdt.core.dom.CompilationUnit, org.eclipse.jdt.core.IJavaElement)
+ *
+ * @param cu
+ * @param method
+ * @return
+ */
+ protected BodyDeclaration searchElementToInsert(CompilationUnit cu, IJavaElement method) {
+
+ // search Itype parent
+ if (method.getParent() instanceof IType) {
+ IType itype = (IType) method.getParent();
+ // find the good type
+ TypeDeclaration type = searchType((TypeDeclaration) cu.types().get(0), itype.getElementName());
+
+ // search the method. Fortunately, there are no method getSignature() for the type MethodDeclaration.
+ // So, we search manually
+ for (MethodDeclaration m : type.getMethods()) {
+ if (m.getName().toString().equals(method.getElementName())) {
+ // verify the signature
+ if (m.parameters() != null && m.parameters().size() == 0 && this.method.getParameters().size() == 0) {
+ return m;
+ }
+ if (m.parameters().size() == this.method.getParameters().size()) {
+ int numParam = 0;
+ boolean goodSignature = true;
+ for (Object paramObj : m.parameters()) {
+ if (paramObj instanceof SingleVariableDeclaration) {
+ SingleVariableDeclaration param = (SingleVariableDeclaration) paramObj;
+ if (!param.getType().toString().equals(this.method.getParameters().get(numParam).getType().getElementName())) {
+ goodSignature = false;
+ }
+
+ numParam++;
+ }
+ }
+ if (goodSignature) {
+ return m;
+ }
+ }
+ }
+ }
+ }
+
+ return null;
+ }
+
+ @Override
+ protected List<String> getJavadocTags() {
+ List<String> lst = new LinkedList<String>();
+ if (method == null) {
+ return lst;
+ }
+
+ // parameters
+ for (JDTParameter param : method.getParameters()) {
+ String comment = param.getComment();
+ if (comment == null) {
+ comment = "";
+ }
+ lst.add(TagElement.TAG_PARAM + " " + param.getElementName() + " " + comment);
+ }
+
+ // return
+ if (method.getReturnType() != null) {
+ String comment = method.getReturnType().getComment();
+ if (comment == null) {
+ comment = "";
+ }
+ lst.add(TagElement.TAG_RETURN + " " + comment);
+ }
+
+ // exception
+ // TODO prendre en compte notion de commentaire
+ if (method.getExceptions() != null) {
+ for (JDTType exception : method.getExceptions()) {
+ // String comment = exception.getComment();
+ // if(comment == null) comment = "";
+ lst.add(TagElement.TAG_THROWS + " " + exception.getElementName());
+ }
+ }
+
+
+
+ return lst;
+ }
+
+
+
+ /**
+ * Propagate a {@link JDTVisitorException} if the flag is not set
+ *
+ * @param msg
+ * @param e
+ * @throws JDTVisitorException
+ */
+ private void propagateException(String msg, Throwable e) throws JDTVisitorException {
+
+ if (preference.stopOnFirstError()) {
+ throw new JDTVisitorException(msg, e.getCause());
+ }
+ else {
+ // Show error
+ System.err.println(msg);
+ e.printStackTrace();
+ }
+ }
+
+
+
+ /**
+ * Generate imports that are explicitly declared in the type
+ *
+ * @param srcType
+ * The src type to be transformed
+ * @param destType
+ * The jdt dest type to be generated
+ * @throws JavaModelException
+ * @throws JDTVisitorException
+ */
+ private void generateExplicitImports(JDTMethod srcType, IType destType) throws JDTVisitorException {
+
+
+ // Add explicit type
+ for (JDTType anImport : srcType.getExplicitRequiredImports()) {
+ try {
+ destType.getCompilationUnit().createImport(anImport.getQualifiedName(), null, null);
+ } catch (Exception e) {
+ propagateException(destType.getFullyQualifiedName() + "Can't add explicit import " + anImport.getQualifiedName(), e);
+ }
+ }
+
+ // Add explicit plain text types
+ for (String anImport : srcType.getExplicitPlainTextRequiredImports()) {
+ try {
+ destType.getCompilationUnit().createImport(anImport, null, null);
+ } catch (JavaModelException e) {
+ propagateException(destType.getFullyQualifiedName() + "Can't add explicit plain text import " + anImport, e);
+ }
+ }
+
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTPackageFragment.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTPackageFragment.java
new file mode 100644
index 00000000000..7426838392c
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTPackageFragment.java
@@ -0,0 +1,112 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Initial API and implementation
+ * Manuel Giles giles.manu@live.fr - Initial API and implementation
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Idea of the java generator project & help for the conception
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.java.generator.jdtsynchronizer.impl;
+
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.core.IPackageFragment;
+import org.eclipse.jdt.core.IPackageFragmentRoot;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.papyrus.java.generator.jdtsynchronizer.GeneratorPreference;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTCompilationUnit;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragment;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitor;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitorException;
+
+
+/**
+ * allow to generate package fragment
+ *
+ * @author Deblock Nicolas & Manuel Giles
+ *
+ */
+public class SynchJDTPackageFragment extends EObjectImpl implements JDTVisitor {
+
+ public IPackageFragmentRoot iroot;
+
+ private GeneratorPreference preference;
+
+ /**
+ * Constructor
+ *
+ * @param iroot
+ * the IPackageFragmentRoot parent
+ */
+ public SynchJDTPackageFragment(IPackageFragmentRoot iroot, GeneratorPreference preference) {
+ super();
+ this.iroot = iroot;
+ this.preference = preference;
+ }
+
+
+ @Override
+ public void visit(JDTJavaElement element) throws JDTVisitorException {
+ // if element can't be generated, we stop all
+ if (!element.isGenerated()) {
+ return;
+ }
+ if (!preference.isPackageToGenerate(element.getElementName())) {
+ return;
+ }
+
+ JDTPackageFragment packag = (JDTPackageFragment) element;
+
+ try {
+ // search the package
+ IJavaElement tmp = null;
+ IPackageFragment ipack = null;
+
+
+ if ((tmp = SynchTools.searchIJavaElement(iroot.getChildren(), packag.getElementName())) != null &&
+ tmp instanceof IPackageFragment) {
+ ipack = (IPackageFragment) tmp;
+ }
+
+ // if name=null, it's the default package
+ if (packag.getQualifiedName() == null) {
+ // generate Compilation unit without package
+ IJavaElement defaultPackageElement = SynchTools.searchIJavaElement(iroot.getChildren(), IPackageFragment.DEFAULT_PACKAGE_NAME);
+ if (defaultPackageElement != null) {
+ ipack = (IPackageFragment) defaultPackageElement;
+ }
+ }
+
+ // if the package don't exist, we create it!
+ if (ipack == null) {
+
+ // find the name of the package
+ ipack = iroot.createPackageFragment(packag.getQualifiedName(), true, null);
+
+ }
+
+ // call the children compilationUnit
+ JDTVisitor visitor = new SynchJDTCompilationUnit(ipack, preference);
+ for (JDTCompilationUnit cu : packag.getCompilationUnits()) {
+ cu.accept(visitor);
+ }
+
+ } catch (JavaModelException e) {
+ e.printStackTrace();
+ throw new JDTVisitorException(e.getMessage(), e.getCause());
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new JDTVisitorException(e.getMessage(), e.getCause());
+ }
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTPackageFragmentRoot.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTPackageFragmentRoot.java
new file mode 100644
index 00000000000..cf023088416
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTPackageFragmentRoot.java
@@ -0,0 +1,120 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Initial API and implementation
+ * Manuel Giles giles.manu@live.fr - Initial API and implementation
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Idea of the java generator project & help for the conception
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.java.generator.jdtsynchronizer.impl;
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jdt.core.IClasspathEntry;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IPackageFragmentRoot;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.papyrus.java.generator.jdtsynchronizer.GeneratorPreference;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragment;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragmentRoot;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitor;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitorException;
+
+
+/**
+ * allow to generate package fragment root
+ *
+ * @author Deblock Nicolas & Manuel Giles
+ *
+ */
+public class SynchJDTPackageFragmentRoot implements JDTVisitor {
+
+ private IJavaProject iprojet;
+
+ private GeneratorPreference preference;
+
+ /**
+ * Constructor
+ *
+ * @param iprojet
+ * the project parent
+ */
+ public SynchJDTPackageFragmentRoot(IJavaProject iprojet, GeneratorPreference preference) {
+ super();
+ this.iprojet = iprojet;
+ this.preference = preference;
+ }
+
+
+
+ @Override
+ public void visit(JDTJavaElement element) throws JDTVisitorException {
+ // if element can't be generated, we stop all
+ if (!element.isGenerated()) {
+ return;
+ }
+
+ JDTPackageFragmentRoot root = (JDTPackageFragmentRoot) element;
+
+ try {
+ // research JDTPackageFragmentRoot
+ IPackageFragmentRoot iroot = SynchTools.searchIJavaElement(iprojet.getAllPackageFragmentRoots(), root.getElementName());
+
+ // if IPackageFragmentRoot don't exist, we create this
+ if (iroot == null) {
+ // create the folder
+ IFolder sourceFolder = iprojet.getProject().getFolder(root.getElementName());
+ try {
+ sourceFolder.create(false, true, null);
+ } catch (CoreException e) {
+ // folder already exist
+ }
+
+ iroot = iprojet.getPackageFragmentRoot(sourceFolder);
+ IClasspathEntry[] oldEntries = iprojet.getRawClasspath();
+ List<IClasspathEntry> newEntries = new ArrayList<IClasspathEntry>();
+
+ // copy the old entries in new entries
+ for (int i = 0; i < oldEntries.length; i++) {
+ // don't take the /projectName, else an exception are throw
+ if (oldEntries[i] != null && !oldEntries[i].getPath().toString().equals("/" + iprojet.getElementName())) {
+ newEntries.add(oldEntries[i]);
+ }
+ }
+
+ // add the new packageFragmentRoot
+ newEntries.add(JavaCore.newSourceEntry(iroot.getPath()));
+
+ IClasspathEntry[] newEntriesArray = new IClasspathEntry[newEntries.size()];
+ newEntries.toArray(newEntriesArray);
+
+ iprojet.setRawClasspath(newEntriesArray, null);
+
+ }
+
+ // call children
+ JDTVisitor visitPackageFragment = new SynchJDTPackageFragment(iroot, preference);
+ for (JDTPackageFragment ipack : root.getPackageFragments()) {
+ ipack.accept(visitPackageFragment);
+ }
+
+ } catch (JavaModelException e) {
+ e.printStackTrace();
+ throw new JDTVisitorException(e.getMessage(), e.getCause());
+ }
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTType.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTType.java
new file mode 100644
index 00000000000..7d9560f1cc7
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTType.java
@@ -0,0 +1,435 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Initial API and implementation
+ * Manuel Giles giles.manu@live.fr - Initial API and implementation
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Idea of the java generator project & help for the conception
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.java.generator.jdtsynchronizer.impl;
+
+
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jdt.core.Flags;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.core.dom.CompilationUnit;
+import org.eclipse.jdt.core.dom.TagElement;
+import org.eclipse.jdt.core.dom.TypeDeclaration;
+import org.eclipse.papyrus.java.generator.jdtsynchronizer.GeneratorPreference;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitor;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitorException;
+
+
+/**
+ * Synchronize a JDTType with JDT.
+ * Can create a type to a ICompilationUnit or to a IType (useful for intern class).
+ *
+ * @author Deblock Nicolas & Giles Manuel
+ *
+ */
+public class SynchJDTType extends SynchJDTCommentable {
+
+ /**
+ * Useful to create a type in a ICompilationUnit
+ * If icu is null, itype can't be null
+ */
+ private ICompilationUnit icu;
+
+ private GeneratorPreference preference;
+
+ /**
+ * Useful to create a type in a IType
+ * If itype is null, icu can't be null
+ */
+ private IType itype;
+
+ /**
+ * Create a type to a ICompilationUnit
+ *
+ * @param icu
+ */
+ public SynchJDTType(ICompilationUnit icu, GeneratorPreference preference) {
+ super();
+ this.icu = icu;
+ this.preference = preference;
+ }
+
+ /**
+ * Create a type to a IType (useful for intern class)
+ *
+ * @param itype
+ */
+ public SynchJDTType(IType itype, GeneratorPreference preference) {
+ super();
+ this.itype = itype;
+ this.preference = preference;
+ }
+
+
+
+ @Override
+ public void visit(JDTJavaElement element) throws JDTVisitorException {
+ // if element can't be generated, we stop all
+ if (!element.isGenerated()) {
+ return;
+ }
+ if (SynchTools.isPrimiveType(element.getElementName()) && !element.getElementName().equals("String")) {
+ return;
+ }
+
+ JDTType type = (JDTType) element;
+
+ try {
+ IType it = SynchTools.searchIJavaElement(getTypes(), type.getElementName());
+
+ // generate type
+ if (it == null) {
+ StringBuffer buffer = new StringBuffer();
+
+ buffer.append(SynchTools.getVisibility(type));
+
+ // System.out.println("\n\n \t \t ####### " + type.isEnum());
+
+ if (type.isClass()) {
+ buffer.append("class ");
+ } else if (type.isInterface()) {
+ buffer.append("interface ");
+ } else if (type.isEnum()) {
+
+ // System.out.println( type.getFields());
+
+ // generate the field
+ StringBuffer fieldStr = new StringBuffer();
+ int i = 0;
+ for (JDTField field : type.getFields()) {
+ if (i > 0) {
+ fieldStr.append(",\n");
+ }
+ fieldStr.append("\t" + field.getElementName());
+ i++;
+ }
+ if (!type.getFields().isEmpty()) {
+ fieldStr.append(";\n\n");
+ }
+
+ it = createType("public enum " + type.getElementName() + " { \n" + fieldStr + " \n } ", null, true, null);
+ return;
+ /*
+ * it = createType("public enum " + type.getElementName() + " { \n" +
+ * fieldStr +
+ * "\tprivate final int value;\n\n"+
+ *
+ * "\tprivate "+ type.getElementName() +"(int value) {\n"+
+ * "\t\tthis.value = value;\n"+
+ * "\t}\n\n"+
+ *
+ * "\tpublic int getValue() {\n" +
+ * "\t\treturn this.value;\n" +
+ * "\t}\n" +
+ * "\n}", null, true, null);
+ * return;
+ */
+
+ }
+ // else, generate nothing
+ else {
+ return;
+ }
+
+ buffer.append(type.getElementName());
+
+ if (type.getSuperClass() != null) {
+ buffer.append(" extends ");
+ buffer.append(type.getSuperClass().getElementName());
+
+ }
+
+ if (type.getSuperInterfaces() != null && type.getSuperInterfaces().size() > 0) {
+ if (type.isInterface()) {
+ buffer.append(" extends ");
+ } else {
+ buffer.append(" implements ");
+ }
+
+ int i = 0;
+ for (JDTType superInterface : type.getSuperInterfaces()) {
+ if (i != 0) {
+ buffer.append(", ");
+ }
+ buffer.append(superInterface.getElementName());
+ i++;
+ }
+ }
+
+ it = createType(buffer.toString() + " { \n\n}", null, true, null);
+ }
+
+ // add imports
+ if (type.getSuperClass() != null) {
+ SynchTools.createImport(it, type, type.getSuperClass());
+ }
+
+ if (type.getSuperInterfaces() != null) {
+ for (JDTType superInterface : type.getSuperInterfaces()) {
+ SynchTools.createImport(it, type, superInterface);
+ }
+ }
+
+
+
+ // add javaDoc comment
+ if (type.getComment() != null && !type.getComment().isEmpty()) {
+ createJavaDocFor(it, it.getCompilationUnit(), type.getComment(), "");
+ }
+
+
+ // generate field
+ if (!type.isEnum()) {
+ JDTVisitor visitor = new SynchJDTField(it, preference);
+ for (JDTField field : type.getFields()) {
+ field.accept(visitor);
+ }
+ }
+
+ // generate getters and setters
+ JDTVisitor vgettersetter = new SynchJDTGetterSetter(it, preference);
+ if (type.isClass()) {
+ for (JDTField field : type.getFields()) {
+ field.accept(vgettersetter);
+ }
+ }
+
+
+ // generate method
+ JDTVisitor vmethod = new SynchJDTMethod(it, preference);
+ for (JDTMethod method : type.getMethods()) {
+ method.accept(vmethod);
+ }
+
+ // The class implements interface methods only if it's not an abstract class
+ if (!Flags.isAbstract(type.getFlags())) {
+
+ // recover the superclass
+ JDTType superClass = type.getSuperClass();
+
+ // recover the interfaces
+ List<JDTType> allSuperInterfaces = getAllSuperInterfaces(type);
+
+ // Implement the abstract methods of the superClass (recursive method)
+ if (preference.implementMethodsOfAbstractClass()) {
+ implementSuperClassAbstractMethods(it, superClass);
+ }
+
+ // implements interfaces methods of the super-interfaces
+ if (preference.implementMethodsOfIntefaces()) {
+ for (JDTType superInterface : allSuperInterfaces) {
+ for (JDTMethod superInterfaceMethod : superInterface.getMethods()) {
+ superInterfaceMethod.accept(vmethod);
+ }
+ }
+ }
+ }
+
+
+ // generate nested class
+ JDTVisitor vClass = new SynchJDTType(it, preference);
+ for (JDTType child : type.getTypes()) {
+ child.accept(vClass);
+ }
+
+ // Generate explicit imports
+ generateExplicitImports(type, it);
+
+ } catch (JavaModelException e) {
+ e.printStackTrace();
+ throw new JDTVisitorException(e.getMessage(), e.getCause());
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new JDTVisitorException(e.getMessage(), e.getCause());
+ }
+
+
+ }
+
+ /**
+ * Generate imports that are explicitly declared in the type
+ *
+ * @param it
+ * The jdt type to be generated
+ * @throws JavaModelException
+ * @throws JDTVisitorException
+ */
+ private void generateExplicitImports(JDTType containerType, IType it) throws JDTVisitorException {
+
+
+ // Add explicit type
+ for (JDTType anImport : containerType.getExplicitRequiredImports()) {
+ try {
+ it.getCompilationUnit().createImport(anImport.getQualifiedName(), null, null);
+ } catch (Exception e) {
+ propagateException(it.getFullyQualifiedName() + "Can't add explicit import " + anImport.getQualifiedName(), e);
+ }
+ }
+
+ // Add explicit plain text types
+ for (String anImport : containerType.getExplicitPlainTextRequiredImports()) {
+ try {
+ it.getCompilationUnit().createImport(anImport, null, null);
+ } catch (JavaModelException e) {
+ propagateException(it.getFullyQualifiedName() + "Can't add explicit plain text import " + anImport, e);
+ }
+ }
+
+ }
+
+ /**
+ * get current type
+ *
+ * @return
+ * @throws JavaModelException
+ */
+ private IType[] getTypes() throws JavaModelException {
+ if (icu != null) {
+ return icu.getTypes();
+ }
+ return itype.getTypes();
+ }
+
+ /**
+ * create type for a element 'sibling'
+ *
+ * @param contents
+ * the source contents of the type declaration to add
+ * @param sibling
+ * the existing element which the type will be inserted immediately before (if null, then this type will be inserted as the last type
+ * declaration
+ * @param force
+ * a flag in case the same name already exists in this type
+ * @param monitor
+ * the progress monitor to notify
+ * @return the newly inserted type
+ * @throws JavaModelException
+ */
+ private IType createType(String contents, IJavaElement sibling, boolean force, IProgressMonitor monitor) throws JavaModelException
+ {
+ if (icu != null) {
+ return icu.createType(contents, sibling, force, monitor);
+ }
+
+ return itype.createType(contents, sibling, force, monitor);
+ }
+
+
+ @Override
+ protected TypeDeclaration searchElementToInsert(CompilationUnit cu, IJavaElement typeName) {
+ if (!(cu.types().get(0) instanceof TypeDeclaration)) {
+ return null;
+ }
+ TypeDeclaration classType = (TypeDeclaration) cu.types().get(0);
+ return searchType(classType, typeName.getElementName());
+
+ }
+
+ @Override
+ protected List<String> getJavadocTags() {
+ List<String> lst = new LinkedList<String>();
+ lst.add(TagElement.TAG_AUTHOR);
+ return lst;
+ }
+
+ /**
+ * Collect all super interfaces from the super class and the super interfaces (JDTType). Recursive method.
+ *
+ * @param superClass
+ * @return List of all super interfaces
+ */
+ public List<JDTType> getAllSuperInterfaces(JDTType _type) {
+ List<JDTType> superInterfaces = new LinkedList<JDTType>();
+
+ // recover its own interfaces
+ superInterfaces.addAll(_type.getSuperInterfaces());
+
+ // add interfaces of the super class if it's abstract
+ if (_type.getSuperClass() != null && _type.getSuperClass().isAbstract()) {
+ superInterfaces.addAll(getAllSuperInterfaces(_type.getSuperClass()));
+ }
+
+ // add interfaces of the super interfaces
+ for (JDTType superInterface : _type.getSuperInterfaces()) {
+ superInterfaces.addAll(getAllSuperInterfaces(superInterface));
+ }
+
+ return superInterfaces;
+ }
+
+ /**
+ * Implement the abstract methods of the superClass if the superClass is abstract. It's a recursive method on the super class of the super class.
+ *
+ * @param it
+ * @param superClass
+ * @throws JDTVisitorException
+ */
+ public void implementSuperClassAbstractMethods(IType it, JDTType superClass) throws JDTVisitorException {
+ if (superClass == null) {
+ return;
+ }
+
+ JDTVisitor vmethod = new SynchJDTMethod(it, preference);
+
+ if (Flags.isAbstract(superClass.getFlags())) {
+ for (JDTMethod superClassAbstractMethod : superClass.getMethods()) {
+ // Skip if method is not abstract
+ if (!superClassAbstractMethod.isAbstract()) {
+ continue;
+ }
+ // Remove the abstract flag to not generate the method with the keyword "abstract"
+ superClassAbstractMethod.setAbstract(false);
+ superClassAbstractMethod.accept(vmethod);
+ superClassAbstractMethod.setAbstract(true);
+ }
+
+ // Recursive call on the super class of superClass
+ JDTType superClassSuperClass = superClass.getSuperClass();
+ if (superClassSuperClass != null) {
+ implementSuperClassAbstractMethods(it, superClassSuperClass);
+ }
+ }
+ }
+
+ /**
+ * Propagate a {@link JDTVisitorException} if the flag is not set
+ *
+ * @param msg
+ * @param e
+ * @throws JDTVisitorException
+ */
+ private void propagateException(String msg, Throwable e) throws JDTVisitorException {
+
+ if (preference.stopOnFirstError()) {
+ throw new JDTVisitorException(msg, e.getCause());
+ }
+ else {
+ // Show error
+ System.err.println(msg);
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchTools.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchTools.java
new file mode 100644
index 00000000000..89a4d4a586d
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchTools.java
@@ -0,0 +1,325 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Initial API and implementation
+ * Manuel Giles giles.manu@live.fr - Initial API and implementation
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Idea of the java generator project & help for the conception
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.java.generator.jdtsynchronizer.impl;
+
+
+
+import org.eclipse.jdt.core.Flags;
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.papyrus.java.generator.jdtsynchronizer.GeneratorPreference;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMember;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType;
+
+/**
+ * gathers all the util function to synchronize with JDT
+ *
+ * @author Nicolas Deblock and Manuel Giles
+ *
+ */
+public class SynchTools {
+
+
+ /**
+ * Find a IJavaElement in a list of IJavaElement
+ * It's util to search a children of a IJavaElement
+ *
+ * @param <U>
+ * a IJavaElement
+ * @param lstElement
+ * list of IJavaElement
+ * @param elementName
+ * name of IJavaElement which is search
+ * @return the element who is search, null if there is no element find
+ */
+ public static <U extends IJavaElement> U searchIJavaElement(U[] lstElement, String elementName) {
+ for (U e : lstElement) {
+ if (e.getElementName().equals(elementName)) {
+ return e;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * return the visibility of jdtMember :
+ * public or private or protected, abstract, static, final, synchronized
+ *
+ * @param jdtMember
+ * @return visibility of jdtMember
+ */
+ public static String getVisibility(JDTMember jdtMember) {
+ StringBuffer buffer = new StringBuffer();
+
+ if (Flags.isPublic(jdtMember.getFlags())) {
+ buffer.append("public ");
+ }
+ if (Flags.isPrivate(jdtMember.getFlags())) {
+ buffer.append("private ");
+ }
+ if (Flags.isProtected(jdtMember.getFlags())) {
+ buffer.append("protected ");
+ }
+
+ if (Flags.isAbstract(jdtMember.getFlags())) {
+ buffer.append("abstract ");
+ }
+
+ if (Flags.isStatic(jdtMember.getFlags())) {
+ buffer.append("static ");
+ }
+ if (Flags.isFinal(jdtMember.getFlags())) {
+ buffer.append("final ");
+ }
+ if (Flags.isSynchronized(jdtMember.getFlags())) {
+ buffer.append("synchronized ");
+ }
+ return buffer.toString();
+ }
+
+ /**
+ * allow to know if a type is primitive
+ *
+ * @param typename
+ * @return true if typename is a primive type
+ */
+ public static boolean isPrimiveType(String typename) {
+ if (typename.equals("byte")) {
+ return true;
+ }
+ if (typename.equals("char")) {
+ return true;
+ }
+ if (typename.equals("double")) {
+ return true;
+ }
+ if (typename.equals("float")) {
+ return true;
+ }
+ if (typename.equals("int")) {
+ return true;
+ }
+ if (typename.equals("long")) {
+ return true;
+ }
+ if (typename.equals("short")) {
+ return true;
+ }
+ if (typename.equals("boolean")) {
+ return true;
+ }
+ if (typename.equals("String")) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Check if a name represents a pure Java primitive type.
+ * Pure Java primitive type are Java primitive types that are keywords and not Classes (ie excluding String).
+ *
+ *
+ * @param typename
+ * @return true if typename is a primive type
+ */
+ public static boolean isPureJavaPrimiveType(String typename) {
+ if (typename.equals("byte")) {
+ return true;
+ }
+ if (typename.equals("char")) {
+ return true;
+ }
+ if (typename.equals("double")) {
+ return true;
+ }
+ if (typename.equals("float")) {
+ return true;
+ }
+ if (typename.equals("int")) {
+ return true;
+ }
+ if (typename.equals("long")) {
+ return true;
+ }
+ if (typename.equals("short")) {
+ return true;
+ }
+ if (typename.equals("boolean")) {
+ return true;
+ }
+ if (typename.equals("String")) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * return the default return of a type (ex: 0 for a int, false for a boolean, null for a class,...)
+ *
+ * @param typename
+ * @return true if typename is a primive type
+ */
+ public static String defaultReturn(String typename) {
+ if (typename.equals("byte")) {
+ return "0";
+ }
+ if (typename.equals("char")) {
+ return "0";
+ }
+ if (typename.equals("double")) {
+ return "0";
+ }
+ if (typename.equals("float")) {
+ return "0";
+ }
+ if (typename.equals("int")) {
+ return "0";
+ }
+ if (typename.equals("long")) {
+ return "0";
+ }
+ if (typename.equals("short")) {
+ return "0";
+ }
+ if (typename.equals("boolean")) {
+ return "false";
+ }
+
+ return "null";
+ }
+
+ /**
+ * return the Class of a primitive type (ex : int => Integer)
+ *
+ * @param typename
+ * @return true if typename is a primive type
+ */
+ private static String getPrimiveTypeClass(String typename) {
+ if (typename.equals("byte")) {
+ return "Byte";
+ }
+ if (typename.equals("char")) {
+ return "Character";
+ }
+ if (typename.equals("double")) {
+ return "Double";
+ }
+ if (typename.equals("float")) {
+ return "Float";
+ }
+ if (typename.equals("int")) {
+ return "Integer";
+ }
+ if (typename.equals("long")) {
+ return "Long";
+ }
+ if (typename.equals("short")) {
+ return "Short";
+ }
+ if (typename.equals("boolean")) {
+ return "Boolean";
+ }
+ return typename;
+ }
+
+
+ public static String getPackageFragment(JDTType type) {
+ try {
+ if (type.getCompilationUnit() != null) {
+ return type.getCompilationUnit().getPackageFragment().getQualifiedName();
+ } else {
+ return getPackageFragment(type.getOwner());
+ }
+ } catch (NullPointerException e) {
+ // id null pointer exception, we return null
+ return null;
+ }
+ }
+
+ public static void createImport(IType itype, JDTType currentType, JDTType importType) throws JavaModelException {
+ String packageCurrentType = getPackageFragment(currentType);
+ String packageImportType = getPackageFragment(importType);
+
+ // if no package to import, stop
+ if (packageImportType == null) {
+ return;
+ }
+
+
+ // if they have the same package, and if it is not a nested class, we stop
+ if (packageCurrentType != null && importType.getCompilationUnit() != null && packageCurrentType.equals(packageImportType)) {
+ return;
+ }
+
+ // Check if the last segment name is not a primitive name.
+ // Stop if it is the case (otherwise createImport() throw an exception)
+ if( isPureJavaPrimiveType(importType.getElementName())) {
+ return;
+ }
+
+ String _import = importType.getQualifiedName();
+ if (!SynchTools.isPrimiveType(_import) && _import.contains(".")) {
+ itype.getCompilationUnit().createImport(_import, null, null);
+ }
+ }
+
+ /**
+ * Get the multivalued declaration for the specified typeName.
+ *
+ * @param type
+ * The enclosing type that will contains the declaration. Requested to ajust import.
+ * @param typeName
+ * The type for wich a multivalued statement is requested
+ * @param preference
+ * The preferences
+ * @return The multivalued statement for the specified typeName.
+ *
+ * @throws JavaModelException
+ */
+ public static String getMultiValued(IType type, String typeName, GeneratorPreference preference) throws JavaModelException {
+ // create the import
+ String _classQualifiedName = preference.genericClassForMultiValue();
+ String _class = _classQualifiedName.substring(_classQualifiedName.lastIndexOf(".") + 1);
+
+ type.getCompilationUnit().createImport(_classQualifiedName, null, null);
+ return _class + "<" + getPrimiveTypeClass(typeName) + ">";
+ }
+
+ /**
+ * Get the multivalued declaration for the specified typeName.
+ *
+ * @param type
+ * The enclosing type that will contains the declaration. Requested to ajust import.
+ * @param typeName
+ * The type for wich a multivalued statement is requested
+ * @param preference
+ * The preferences
+ * @return The multivalued statement for the specified typeName.
+ *
+ * @throws JavaModelException
+ */
+ public static String getMultiValued(IType type, JDTType valueType, GeneratorPreference preference) throws JavaModelException {
+ // create the import
+ String _classQualifiedName = preference.genericClassForMultiValue();
+ String _class = _classQualifiedName.substring(_classQualifiedName.lastIndexOf(".") + 1);
+
+ type.getCompilationUnit().createImport(_classQualifiedName, null, null);
+ return _class + "<" + getPrimiveTypeClass(valueType.getElementName()) + ">";
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/.classpath b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/.classpath
new file mode 100644
index 00000000000..ad32c83a788
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/.project b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/.project
new file mode 100644
index 00000000000..0288cbb8ed8
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.java.generator.metamodel.jdt.edit</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/.settings/org.eclipse.jdt.core.prefs b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..94d61f00da6
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,291 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=260
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=false
+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=260
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=5
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/.settings/org.eclipse.jdt.ui.prefs b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 00000000000..954281dbc31
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,68 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_functional_interfaces=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=false
+cleanup.format_source_code=false
+cleanup.format_source_code_changes_only=false
+cleanup.insert_inferred_type_arguments=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=false
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_redundant_type_arguments=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_anonymous_class_creation=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_lambda=true
+cleanup.use_parentheses_in_expressions=false
+cleanup.use_this_for_non_static_field_access=false
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=false
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_type_arguments=false
+cleanup_profile=_Papyrus
+cleanup_settings_version=2
+eclipse.preferences.version=1
+formatter_profile=_Papyrus
+formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * Constructor.\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*****************************************************************************\n * Copyright (c) ${year} CEA LIST and others.\n * \n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n * CEA LIST - Initial API and implementation\n * \n *****************************************************************************/\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\n * ${see_to_overridden}\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${see_to_target}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/META-INF/MANIFEST.MF b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..22a5ba0c5dc
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/META-INF/MANIFEST.MF
@@ -0,0 +1,18 @@
+Manifest-Version: 1.0
+Export-Package: org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.provider,
+ org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.provider
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.papyrus.java.generator.metamodel.jdt;bundle-version="1.2.0";visibility:=reexport,
+ org.eclipse.emf.edit;visibility:=reexport,
+ org.eclipse.uml2.types;visibility:=reexport,
+ org.eclipse.uml2.common.edit;visibility:=reexport
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-ClassPath: .
+Bundle-Version: 1.2.0.qualifier
+Bundle-Name: %pluginName
+Bundle-Localization: plugin
+Bundle-ManifestVersion: 2
+Bundle-Activator: org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.provider.GeneratoroptionsmmEditPlugin$Implementation
+Bundle-SymbolicName: org.eclipse.papyrus.java.generator.metamodel.jdt.edit;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/about.html b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/about.html
new file mode 100644
index 00000000000..82d49bf5f81
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/build.properties b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/build.properties
new file mode 100644
index 00000000000..b686a6bcfc4
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/build.properties
@@ -0,0 +1,12 @@
+#
+
+bin.includes = .,\
+ icons/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties,\
+ about.html
+jars.compile.order = .
+source.. = src/
+output.. = bin/
+src.includes = about.html
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTCompilationUnit_types_JDTClass.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTCompilationUnit_types_JDTClass.gif
new file mode 100644
index 00000000000..5b6f7bd4d41
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTCompilationUnit_types_JDTClass.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTCompilationUnit_types_JDTEnum.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTCompilationUnit_types_JDTEnum.gif
new file mode 100644
index 00000000000..b7364612037
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTCompilationUnit_types_JDTEnum.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTCompilationUnit_types_JDTInterface.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTCompilationUnit_types_JDTInterface.gif
new file mode 100644
index 00000000000..fb66338ebff
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTCompilationUnit_types_JDTInterface.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTCompilationUnit_types_JDTType.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTCompilationUnit_types_JDTType.gif
new file mode 100644
index 00000000000..f7c61c23bbd
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTCompilationUnit_types_JDTType.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTJavaModel_javaProject_JDTJavaProject.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTJavaModel_javaProject_JDTJavaProject.gif
new file mode 100644
index 00000000000..41c86b3dbc1
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTJavaModel_javaProject_JDTJavaProject.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTJavaProject_packageFragmentRoots_JDTPackageFragmentRoot.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTJavaProject_packageFragmentRoots_JDTPackageFragmentRoot.gif
new file mode 100644
index 00000000000..07adaab9f3a
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTJavaProject_packageFragmentRoots_JDTPackageFragmentRoot.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTMember_typeParameters_JDTTypeParameter.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTMember_typeParameters_JDTTypeParameter.gif
new file mode 100644
index 00000000000..c3c4510a051
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTMember_typeParameters_JDTTypeParameter.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTMethod_bodies_JDTOpaqueBody.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTMethod_bodies_JDTOpaqueBody.gif
new file mode 100644
index 00000000000..e5d4d731cc6
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTMethod_bodies_JDTOpaqueBody.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTMethod_bodies_OpaqueMethodBody.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTMethod_bodies_OpaqueMethodBody.gif
new file mode 100644
index 00000000000..d5f8c8dbcfb
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTMethod_bodies_OpaqueMethodBody.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTMethod_parameters_JDTParameter.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTMethod_parameters_JDTParameter.gif
new file mode 100644
index 00000000000..d7724b60a25
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTMethod_parameters_JDTParameter.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTMethod_returnType_JDTParameter.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTMethod_returnType_JDTParameter.gif
new file mode 100644
index 00000000000..d7724b60a25
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTMethod_returnType_JDTParameter.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTPackageFragmentRoot_packageFragments_JDTPackageFragment.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTPackageFragmentRoot_packageFragments_JDTPackageFragment.gif
new file mode 100644
index 00000000000..932fde3646a
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTPackageFragmentRoot_packageFragments_JDTPackageFragment.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTPackageFragment_compilationUnits_JDTCompilationUnit.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTPackageFragment_compilationUnits_JDTCompilationUnit.gif
new file mode 100644
index 00000000000..953143344d9
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTPackageFragment_compilationUnits_JDTCompilationUnit.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTPackageFragment_packageFragments_JDTPackageFragment.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTPackageFragment_packageFragments_JDTPackageFragment.gif
new file mode 100644
index 00000000000..df3eebc9432
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTPackageFragment_packageFragments_JDTPackageFragment.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_fields_JDTField.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_fields_JDTField.gif
new file mode 100644
index 00000000000..2c2ef1ff95c
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_fields_JDTField.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_methods_JDTMethod.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_methods_JDTMethod.gif
new file mode 100644
index 00000000000..a64a033a18c
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_methods_JDTMethod.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_types_JDTClass.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_types_JDTClass.gif
new file mode 100644
index 00000000000..e5f323d1f47
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_types_JDTClass.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_types_JDTEnum.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_types_JDTEnum.gif
new file mode 100644
index 00000000000..a6e5cfd32c1
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_types_JDTEnum.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_types_JDTInterface.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_types_JDTInterface.gif
new file mode 100644
index 00000000000..2f6d3eba40f
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_types_JDTInterface.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_types_JDTType.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_types_JDTType.gif
new file mode 100644
index 00000000000..11148cf465f
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_types_JDTType.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTClass.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTClass.gif
new file mode 100644
index 00000000000..10d222998af
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTClass.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTCompilationUnit.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTCompilationUnit.gif
new file mode 100644
index 00000000000..05dc74ad5da
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTCompilationUnit.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTEnum.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTEnum.gif
new file mode 100644
index 00000000000..ed874747401
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTEnum.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTException.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTException.gif
new file mode 100644
index 00000000000..c4fb30e9687
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTException.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTField.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTField.gif
new file mode 100644
index 00000000000..1e5345fb323
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTField.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTImportContainer.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTImportContainer.gif
new file mode 100644
index 00000000000..53500daf98e
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTImportContainer.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTImportDeclaration.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTImportDeclaration.gif
new file mode 100644
index 00000000000..d3dc5a9ad81
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTImportDeclaration.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTInterface.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTInterface.gif
new file mode 100644
index 00000000000..c3370c7ddd5
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTInterface.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTJavaElement.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTJavaElement.gif
new file mode 100644
index 00000000000..94c953e013b
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTJavaElement.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTJavaModel.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTJavaModel.gif
new file mode 100644
index 00000000000..4365960a04b
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTJavaModel.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTJavaProject.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTJavaProject.gif
new file mode 100644
index 00000000000..a26660ec28f
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTJavaProject.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTMethod.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTMethod.gif
new file mode 100644
index 00000000000..30f0c48da8d
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTMethod.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTOpaqueBody.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTOpaqueBody.gif
new file mode 100644
index 00000000000..5a9bc7514fa
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTOpaqueBody.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTPackageFragment.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTPackageFragment.gif
new file mode 100644
index 00000000000..c414fe9f728
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTPackageFragment.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTPackageFragmentRoot.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTPackageFragmentRoot.gif
new file mode 100644
index 00000000000..48e3cf22687
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTPackageFragmentRoot.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTParameter.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTParameter.gif
new file mode 100644
index 00000000000..7c2aaac84ee
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTParameter.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTTypeParameter.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTTypeParameter.gif
new file mode 100644
index 00000000000..94c953e013b
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTTypeParameter.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/OpaqueMethodBody.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/OpaqueMethodBody.gif
new file mode 100644
index 00000000000..98b351f1c44
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/OpaqueMethodBody.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/Options.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/Options.gif
new file mode 100644
index 00000000000..cdd3b76e3c0
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/Options.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/plugin.properties b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/plugin.properties
new file mode 100644
index 00000000000..2f93b958827
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/plugin.properties
@@ -0,0 +1,22 @@
+#
+
+pluginName = Jdt metamodel Edit Support (Incubation)
+providerName = Eclipse Modeling Project
+
+_UI_CreateChild_text = {0}
+_UI_CreateChild_text2 = {1} {0}
+_UI_CreateChild_text3 = {1}
+_UI_CreateChild_tooltip = Create New {0} Under {1} Feature
+_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}.
+_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent.
+
+_UI_PropertyDescriptor_description = The {0} of the {1}
+
+_UI_Options_type = Options
+_UI_Unknown_type = Object
+
+_UI_Unknown_datatype= Value
+
+_UI_Options_defaultSourceFolder_feature = Default Source Folder
+_UI_Unknown_feature = Unspecified
+
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/plugin.xml b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/plugin.xml
new file mode 100644
index 00000000000..df8624cdbb7
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/plugin.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+ <!-- @generated generatoroptionsmm -->
+ <factory
+ uri="http:///GeneratorOptionsMM.ecore"
+ class="org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.provider.GeneratoroptionsmmItemProviderAdapterFactory"
+ supportedTypes=
+ "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+ org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+ org.eclipse.emf.edit.provider.ITreeItemContentProvider
+ org.eclipse.emf.edit.provider.IItemLabelProvider
+ org.eclipse.emf.edit.provider.IItemPropertySource"/>
+ </extension>
+
+</plugin>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/pom.xml b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/pom.xml
new file mode 100644
index 00000000000..15615586c14
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.java.generator.metamodel.jdt.edit</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/provider/GeneratoroptionsmmEditPlugin.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/provider/GeneratoroptionsmmEditPlugin.java
new file mode 100644
index 00000000000..3e8e80040f5
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/provider/GeneratoroptionsmmEditPlugin.java
@@ -0,0 +1,95 @@
+/**
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.provider;
+
+import org.eclipse.emf.common.EMFPlugin;
+import org.eclipse.emf.common.util.ResourceLocator;
+
+/**
+ * This is the central singleton for the Generatoroptionsmm edit plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public final class GeneratoroptionsmmEditPlugin extends EMFPlugin {
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static final GeneratoroptionsmmEditPlugin INSTANCE = new GeneratoroptionsmmEditPlugin();
+
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private static Implementation plugin;
+
+ /**
+ * Create the instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public GeneratoroptionsmmEditPlugin() {
+ super(new ResourceLocator[] {
+ });
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the singleton instance.
+ * @generated
+ */
+ @Override
+ public ResourceLocator getPluginResourceLocator() {
+ return plugin;
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the singleton instance.
+ * @generated
+ */
+ public static Implementation getPlugin() {
+ return plugin;
+ }
+
+ /**
+ * The actual implementation of the Eclipse <b>Plugin</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static class Implementation extends EclipsePlugin {
+ /**
+ * Creates an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Implementation() {
+ super();
+
+ // Remember the static instance.
+ //
+ plugin = this;
+ }
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/provider/GeneratoroptionsmmItemProviderAdapterFactory.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/provider/GeneratoroptionsmmItemProviderAdapterFactory.java
new file mode 100644
index 00000000000..88634641cf3
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/provider/GeneratoroptionsmmItemProviderAdapterFactory.java
@@ -0,0 +1,221 @@
+/**
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IDisposable;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.util.GeneratoroptionsmmAdapterFactory;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class GeneratoroptionsmmItemProviderAdapterFactory extends GeneratoroptionsmmAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable {
+ /**
+ * This keeps track of the root adapter factory that delegates to this adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ComposedAdapterFactory parentAdapterFactory;
+
+ /**
+ * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+ /**
+ * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Collection<Object> supportedTypes = new ArrayList<Object>();
+
+ /**
+ * This constructs an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public GeneratoroptionsmmItemProviderAdapterFactory() {
+ supportedTypes.add(IEditingDomainItemProvider.class);
+ supportedTypes.add(IStructuredItemContentProvider.class);
+ supportedTypes.add(ITreeItemContentProvider.class);
+ supportedTypes.add(IItemLabelProvider.class);
+ supportedTypes.add(IItemPropertySource.class);
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.Options} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected OptionsItemProvider optionsItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.Options}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Adapter createOptionsAdapter() {
+ if (optionsItemProvider == null) {
+ optionsItemProvider = new OptionsItemProvider(this);
+ }
+
+ return optionsItemProvider;
+ }
+
+ /**
+ * This returns the root adapter factory that contains this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public ComposeableAdapterFactory getRootAdapterFactory() {
+ return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+ }
+
+ /**
+ * This sets the composed adapter factory that contains this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
+ this.parentAdapterFactory = parentAdapterFactory;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object type) {
+ return supportedTypes.contains(type) || super.isFactoryForType(type);
+ }
+
+ /**
+ * This implementation substitutes the factory itself as the key for the adapter.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Adapter adapt(Notifier notifier, Object type) {
+ return super.adapt(notifier, this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object adapt(Object object, Object type) {
+ if (isFactoryForType(type)) {
+ Object adapter = super.adapt(object, type);
+ if (!(type instanceof Class<?>) || (((Class<?>) type).isInstance(adapter))) {
+ return adapter;
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * This adds a listener.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void addListener(INotifyChangedListener notifyChangedListener) {
+ changeNotifier.addListener(notifyChangedListener);
+ }
+
+ /**
+ * This removes a listener.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void removeListener(INotifyChangedListener notifyChangedListener) {
+ changeNotifier.removeListener(notifyChangedListener);
+ }
+
+ /**
+ * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void fireNotifyChanged(Notification notification) {
+ changeNotifier.fireNotifyChanged(notification);
+
+ if (parentAdapterFactory != null) {
+ parentAdapterFactory.fireNotifyChanged(notification);
+ }
+ }
+
+ /**
+ * This disposes all of the item providers created by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void dispose() {
+ if (optionsItemProvider != null) {
+ optionsItemProvider.dispose();
+ }
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/provider/OptionsItemProvider.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/provider/OptionsItemProvider.java
new file mode 100644
index 00000000000..57d2268c2de
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/provider/OptionsItemProvider.java
@@ -0,0 +1,164 @@
+/**
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.GeneratoroptionsmmPackage;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.Options;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.Options} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class OptionsItemProvider
+ extends ItemProviderAdapter
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public OptionsItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addDefaultSourceFolderPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Default Source Folder feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addDefaultSourceFolderPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Options_defaultSourceFolder_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Options_defaultSourceFolder_feature", "_UI_Options_type"),
+ GeneratoroptionsmmPackage.Literals.OPTIONS__DEFAULT_SOURCE_FOLDER,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns Options.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/Options"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((Options) object).getDefaultSourceFolder();
+ return label == null || label.length() == 0 ?
+ getString("_UI_Options_type") :
+ getString("_UI_Options_type") + " " + label;
+ }
+
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Options.class)) {
+ case GeneratoroptionsmmPackage.OPTIONS__DEFAULT_SOURCE_FOLDER:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return GeneratoroptionsmmEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTClassItemProvider.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTClassItemProvider.java
new file mode 100644
index 00000000000..a0298c0858e
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTClassItemProvider.java
@@ -0,0 +1,135 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTClass;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTClass} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JDTClassItemProvider
+ extends JDTTypeItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JDTClassItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns JDTClass.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/JDTClass"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((JDTClass) object).getElementName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_JDTClass_type") :
+ getString("_UI_JDTClass_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTCompilationUnitItemProvider.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTCompilationUnitItemProvider.java
new file mode 100644
index 00000000000..6f0ec9edd1c
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTCompilationUnitItemProvider.java
@@ -0,0 +1,242 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTCompilationUnit;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmFactory;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+import org.eclipse.uml2.common.edit.command.SubsetAddCommand;
+import org.eclipse.uml2.common.edit.command.SubsetSupersetReplaceCommand;
+import org.eclipse.uml2.common.edit.command.SupersetRemoveCommand;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTCompilationUnit} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JDTCompilationUnitItemProvider
+ extends JDTTypeRootItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JDTCompilationUnitItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(JdtmmPackage.Literals.JDT_COMPILATION_UNIT__TYPES);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns JDTCompilationUnit.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/JDTCompilationUnit"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((JDTCompilationUnit) object).getElementName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_JDTCompilationUnit_type") :
+ getString("_UI_JDTCompilationUnit_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(JDTCompilationUnit.class)) {
+ case JdtmmPackage.JDT_COMPILATION_UNIT__TYPES:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (JdtmmPackage.Literals.JDT_COMPILATION_UNIT__TYPES,
+ JdtmmFactory.eINSTANCE.createJDTClass()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (JdtmmPackage.Literals.JDT_COMPILATION_UNIT__TYPES,
+ JdtmmFactory.eINSTANCE.createJDTInterface()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (JdtmmPackage.Literals.JDT_COMPILATION_UNIT__TYPES,
+ JdtmmFactory.eINSTANCE.createJDTEnum()));
+ }
+
+ /**
+ * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#createAddCommand(org.eclipse.emf.edit.domain.EditingDomain, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EStructuralFeature, java.util.Collection, int)
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected Command createAddCommand(EditingDomain domain, EObject owner, EStructuralFeature feature, Collection<?> collection, int index) {
+ if (feature == JdtmmPackage.Literals.JDT_COMPILATION_UNIT__TYPES) {
+ return new SubsetAddCommand(domain, owner, feature, new EStructuralFeature[] { JdtmmPackage.Literals.JDT_PARENT__CHILDREN }, collection, index);
+ }
+ return super.createAddCommand(domain, owner, feature, collection, index);
+ }
+
+ /**
+ * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#createRemoveCommand(org.eclipse.emf.edit.domain.EditingDomain, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EStructuralFeature, java.util.Collection)
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected Command createRemoveCommand(EditingDomain domain, EObject owner, EStructuralFeature feature, Collection<?> collection) {
+ if (feature == JdtmmPackage.Literals.JDT_PARENT__CHILDREN) {
+ return new SupersetRemoveCommand(domain, owner, feature, new EStructuralFeature[] { JdtmmPackage.Literals.JDT_COMPILATION_UNIT__TYPES }, collection);
+ }
+ return super.createRemoveCommand(domain, owner, feature, collection);
+ }
+
+ /**
+ * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#createReplaceCommand(org.eclipse.emf.edit.domain.EditingDomain, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EStructuralFeature, org.eclipse.emf.ecore.EObject, java.util.Collection)
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected Command createReplaceCommand(EditingDomain domain, EObject owner, EStructuralFeature feature, EObject value, Collection<?> collection) {
+ if (feature == JdtmmPackage.Literals.JDT_COMPILATION_UNIT__TYPES) {
+ return new SubsetSupersetReplaceCommand(domain, owner, feature, new EStructuralFeature[] { JdtmmPackage.Literals.JDT_PARENT__CHILDREN }, null, value, collection);
+ }
+ if (feature == JdtmmPackage.Literals.JDT_PARENT__CHILDREN) {
+ return new SubsetSupersetReplaceCommand(domain, owner, feature, null, new EStructuralFeature[] { JdtmmPackage.Literals.JDT_COMPILATION_UNIT__TYPES }, value, collection);
+ }
+ return super.createReplaceCommand(domain, owner, feature, value, collection);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTEnumItemProvider.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTEnumItemProvider.java
new file mode 100644
index 00000000000..03cc577662b
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTEnumItemProvider.java
@@ -0,0 +1,135 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTEnum;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTEnum} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JDTEnumItemProvider
+ extends JDTTypeItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JDTEnumItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns JDTEnum.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/JDTEnum"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((JDTEnum) object).getElementName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_JDTEnum_type") :
+ getString("_UI_JDTEnum_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTExceptionItemProvider.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTExceptionItemProvider.java
new file mode 100644
index 00000000000..7425bf22b7a
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTExceptionItemProvider.java
@@ -0,0 +1,145 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTException} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JDTExceptionItemProvider
+ extends ItemProviderAdapter
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JDTExceptionItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns JDTException.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/JDTException"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ return getString("_UI_JDTException_type");
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return JdtmmEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTFieldItemProvider.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTFieldItemProvider.java
new file mode 100644
index 00000000000..06ce121e867
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTFieldItemProvider.java
@@ -0,0 +1,343 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JDTFieldItemProvider
+ extends JDTMemberItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JDTFieldItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addAbstractPropertyDescriptor(object);
+ addFinalPropertyDescriptor(object);
+ addStaticPropertyDescriptor(object);
+ addIsMultiValuedPropertyDescriptor(object);
+ addTypePropertyDescriptor(object);
+ addValuePropertyDescriptor(object);
+ addGenerateGetterPropertyDescriptor(object);
+ addGenerateSetterPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Abstract feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addAbstractPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTField_abstract_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTField_abstract_feature", "_UI_JDTField_type"),
+ JdtmmPackage.Literals.JDT_FIELD__ABSTRACT,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Final feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addFinalPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTField_final_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTField_final_feature", "_UI_JDTField_type"),
+ JdtmmPackage.Literals.JDT_FIELD__FINAL,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Static feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addStaticPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTField_static_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTField_static_feature", "_UI_JDTField_type"),
+ JdtmmPackage.Literals.JDT_FIELD__STATIC,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Is Multi Valued feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addIsMultiValuedPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTField_isMultiValued_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTField_isMultiValued_feature", "_UI_JDTField_type"),
+ JdtmmPackage.Literals.JDT_FIELD__IS_MULTI_VALUED,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Type feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addTypePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTField_type_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTField_type_feature", "_UI_JDTField_type"),
+ JdtmmPackage.Literals.JDT_FIELD__TYPE,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Value feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addValuePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTField_value_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTField_value_feature", "_UI_JDTField_type"),
+ JdtmmPackage.Literals.JDT_FIELD__VALUE,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Generate Getter feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addGenerateGetterPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTField_generateGetter_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTField_generateGetter_feature", "_UI_JDTField_type"),
+ JdtmmPackage.Literals.JDT_FIELD__GENERATE_GETTER,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Generate Setter feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addGenerateSetterPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTField_generateSetter_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTField_generateSetter_feature", "_UI_JDTField_type"),
+ JdtmmPackage.Literals.JDT_FIELD__GENERATE_SETTER,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns JDTField.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/JDTField"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((JDTField) object).getElementName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_JDTField_type") :
+ getString("_UI_JDTField_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(JDTField.class)) {
+ case JdtmmPackage.JDT_FIELD__ABSTRACT:
+ case JdtmmPackage.JDT_FIELD__FINAL:
+ case JdtmmPackage.JDT_FIELD__STATIC:
+ case JdtmmPackage.JDT_FIELD__IS_MULTI_VALUED:
+ case JdtmmPackage.JDT_FIELD__VALUE:
+ case JdtmmPackage.JDT_FIELD__GENERATE_GETTER:
+ case JdtmmPackage.JDT_FIELD__GENERATE_SETTER:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTImportContainerItemProvider.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTImportContainerItemProvider.java
new file mode 100644
index 00000000000..db59b9cf788
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTImportContainerItemProvider.java
@@ -0,0 +1,135 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTImportContainer;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTImportContainer} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JDTImportContainerItemProvider
+ extends JDTParentJavaElementItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JDTImportContainerItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns JDTImportContainer.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/JDTImportContainer"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((JDTImportContainer) object).getElementName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_JDTImportContainer_type") :
+ getString("_UI_JDTImportContainer_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTImportDeclarationItemProvider.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTImportDeclarationItemProvider.java
new file mode 100644
index 00000000000..00b887558c4
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTImportDeclarationItemProvider.java
@@ -0,0 +1,135 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTImportDeclaration;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTImportDeclaration} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JDTImportDeclarationItemProvider
+ extends JDTJavaElementItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JDTImportDeclarationItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns JDTImportDeclaration.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/JDTImportDeclaration"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((JDTImportDeclaration) object).getElementName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_JDTImportDeclaration_type") :
+ getString("_UI_JDTImportDeclaration_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTInterfaceItemProvider.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTInterfaceItemProvider.java
new file mode 100644
index 00000000000..53afb9f522a
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTInterfaceItemProvider.java
@@ -0,0 +1,135 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTInterface;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTInterface} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JDTInterfaceItemProvider
+ extends JDTTypeItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JDTInterfaceItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns JDTInterface.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/JDTInterface"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((JDTInterface) object).getElementName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_JDTInterface_type") :
+ getString("_UI_JDTInterface_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTJavaElementItemProvider.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTJavaElementItemProvider.java
new file mode 100644
index 00000000000..3b3ae3d9dab
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTJavaElementItemProvider.java
@@ -0,0 +1,270 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JDTJavaElementItemProvider
+ extends ItemProviderAdapter
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JDTJavaElementItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addElementNamePropertyDescriptor(object);
+ addElementTypePropertyDescriptor(object);
+ addCommentPropertyDescriptor(object);
+ addGeneratedPropertyDescriptor(object);
+ addParentPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Parent feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addParentPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTJavaElement_parent_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTJavaElement_parent_feature", "_UI_JDTJavaElement_type"),
+ JdtmmPackage.Literals.JDT_JAVA_ELEMENT__PARENT,
+ false,
+ false,
+ false,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Element Name feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addElementNamePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTJavaElement_elementName_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTJavaElement_elementName_feature", "_UI_JDTJavaElement_type"),
+ JdtmmPackage.Literals.JDT_JAVA_ELEMENT__ELEMENT_NAME,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Element Type feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addElementTypePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTJavaElement_elementType_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTJavaElement_elementType_feature", "_UI_JDTJavaElement_type"),
+ JdtmmPackage.Literals.JDT_JAVA_ELEMENT__ELEMENT_TYPE,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Comment feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addCommentPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTJavaElement_comment_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTJavaElement_comment_feature", "_UI_JDTJavaElement_type"),
+ JdtmmPackage.Literals.JDT_JAVA_ELEMENT__COMMENT,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Generated feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addGeneratedPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTJavaElement_generated_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTJavaElement_generated_feature", "_UI_JDTJavaElement_type"),
+ JdtmmPackage.Literals.JDT_JAVA_ELEMENT__GENERATED,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((JDTJavaElement) object).getElementName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_JDTJavaElement_type") :
+ getString("_UI_JDTJavaElement_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(JDTJavaElement.class)) {
+ case JdtmmPackage.JDT_JAVA_ELEMENT__ELEMENT_NAME:
+ case JdtmmPackage.JDT_JAVA_ELEMENT__ELEMENT_TYPE:
+ case JdtmmPackage.JDT_JAVA_ELEMENT__COMMENT:
+ case JdtmmPackage.JDT_JAVA_ELEMENT__GENERATED:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return JdtmmEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTJavaModelItemProvider.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTJavaModelItemProvider.java
new file mode 100644
index 00000000000..3c1c389f517
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTJavaModelItemProvider.java
@@ -0,0 +1,181 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaModel;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmFactory;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaModel} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JDTJavaModelItemProvider
+ extends JDTParentJavaElementItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JDTJavaModelItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(JdtmmPackage.Literals.JDT_JAVA_MODEL__JAVA_PROJECT);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns JDTJavaModel.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/JDTJavaModel"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((JDTJavaModel) object).getElementName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_JDTJavaModel_type") :
+ getString("_UI_JDTJavaModel_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(JDTJavaModel.class)) {
+ case JdtmmPackage.JDT_JAVA_MODEL__JAVA_PROJECT:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (JdtmmPackage.Literals.JDT_JAVA_MODEL__JAVA_PROJECT,
+ JdtmmFactory.eINSTANCE.createJDTJavaProject()));
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTJavaProjectItemProvider.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTJavaProjectItemProvider.java
new file mode 100644
index 00000000000..f1c6006b642
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTJavaProjectItemProvider.java
@@ -0,0 +1,232 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaProject;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmFactory;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+import org.eclipse.uml2.common.edit.command.SubsetAddCommand;
+import org.eclipse.uml2.common.edit.command.SubsetSupersetReplaceCommand;
+import org.eclipse.uml2.common.edit.command.SupersetRemoveCommand;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaProject} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JDTJavaProjectItemProvider
+ extends JDTParentJavaElementItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JDTJavaProjectItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(JdtmmPackage.Literals.JDT_JAVA_PROJECT__PACKAGE_FRAGMENT_ROOTS);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns JDTJavaProject.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/JDTJavaProject"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((JDTJavaProject) object).getElementName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_JDTJavaProject_type") :
+ getString("_UI_JDTJavaProject_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(JDTJavaProject.class)) {
+ case JdtmmPackage.JDT_JAVA_PROJECT__PACKAGE_FRAGMENT_ROOTS:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (JdtmmPackage.Literals.JDT_JAVA_PROJECT__PACKAGE_FRAGMENT_ROOTS,
+ JdtmmFactory.eINSTANCE.createJDTPackageFragmentRoot()));
+ }
+
+ /**
+ * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#createAddCommand(org.eclipse.emf.edit.domain.EditingDomain, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EStructuralFeature, java.util.Collection, int)
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected Command createAddCommand(EditingDomain domain, EObject owner, EStructuralFeature feature, Collection<?> collection, int index) {
+ if (feature == JdtmmPackage.Literals.JDT_JAVA_PROJECT__PACKAGE_FRAGMENT_ROOTS) {
+ return new SubsetAddCommand(domain, owner, feature, new EStructuralFeature[] { JdtmmPackage.Literals.JDT_PARENT__CHILDREN }, collection, index);
+ }
+ return super.createAddCommand(domain, owner, feature, collection, index);
+ }
+
+ /**
+ * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#createRemoveCommand(org.eclipse.emf.edit.domain.EditingDomain, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EStructuralFeature, java.util.Collection)
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected Command createRemoveCommand(EditingDomain domain, EObject owner, EStructuralFeature feature, Collection<?> collection) {
+ if (feature == JdtmmPackage.Literals.JDT_PARENT__CHILDREN) {
+ return new SupersetRemoveCommand(domain, owner, feature, new EStructuralFeature[] { JdtmmPackage.Literals.JDT_JAVA_PROJECT__PACKAGE_FRAGMENT_ROOTS }, collection);
+ }
+ return super.createRemoveCommand(domain, owner, feature, collection);
+ }
+
+ /**
+ * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#createReplaceCommand(org.eclipse.emf.edit.domain.EditingDomain, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EStructuralFeature, org.eclipse.emf.ecore.EObject, java.util.Collection)
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected Command createReplaceCommand(EditingDomain domain, EObject owner, EStructuralFeature feature, EObject value, Collection<?> collection) {
+ if (feature == JdtmmPackage.Literals.JDT_JAVA_PROJECT__PACKAGE_FRAGMENT_ROOTS) {
+ return new SubsetSupersetReplaceCommand(domain, owner, feature, new EStructuralFeature[] { JdtmmPackage.Literals.JDT_PARENT__CHILDREN }, null, value, collection);
+ }
+ if (feature == JdtmmPackage.Literals.JDT_PARENT__CHILDREN) {
+ return new SubsetSupersetReplaceCommand(domain, owner, feature, null, new EStructuralFeature[] { JdtmmPackage.Literals.JDT_JAVA_PROJECT__PACKAGE_FRAGMENT_ROOTS }, value, collection);
+ }
+ return super.createReplaceCommand(domain, owner, feature, value, collection);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTMemberItemProvider.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTMemberItemProvider.java
new file mode 100644
index 00000000000..28301611c75
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTMemberItemProvider.java
@@ -0,0 +1,247 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMember;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmFactory;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMember} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JDTMemberItemProvider
+ extends JDTParentJavaElementItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JDTMemberItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addVisibilityPropertyDescriptor(object);
+ addExplicitRequiredImportsPropertyDescriptor(object);
+ addExplicitPlainTextRequiredImportsPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Visibility feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addVisibilityPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTMember_visibility_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTMember_visibility_feature", "_UI_JDTMember_type"),
+ JdtmmPackage.Literals.JDT_MEMBER__VISIBILITY,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Explicit Required Imports feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addExplicitRequiredImportsPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTMember_explicitRequiredImports_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTMember_explicitRequiredImports_feature", "_UI_JDTMember_type"),
+ JdtmmPackage.Literals.JDT_MEMBER__EXPLICIT_REQUIRED_IMPORTS,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Explicit Plain Text Required Imports feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addExplicitPlainTextRequiredImportsPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTMember_explicitPlainTextRequiredImports_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTMember_explicitPlainTextRequiredImports_feature", "_UI_JDTMember_type"),
+ JdtmmPackage.Literals.JDT_MEMBER__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(JdtmmPackage.Literals.JDT_MEMBER__TYPE_PARAMETERS);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((JDTMember) object).getElementName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_JDTMember_type") :
+ getString("_UI_JDTMember_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(JDTMember.class)) {
+ case JdtmmPackage.JDT_MEMBER__VISIBILITY:
+ case JdtmmPackage.JDT_MEMBER__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case JdtmmPackage.JDT_MEMBER__TYPE_PARAMETERS:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (JdtmmPackage.Literals.JDT_MEMBER__TYPE_PARAMETERS,
+ JdtmmFactory.eINSTANCE.createJDTTypeParameter()));
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTMethodBodyItemProvider.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTMethodBodyItemProvider.java
new file mode 100644
index 00000000000..6e2cc034d23
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTMethodBodyItemProvider.java
@@ -0,0 +1,117 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethodBody} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JDTMethodBodyItemProvider
+ extends ItemProviderAdapter
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JDTMethodBodyItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ return getString("_UI_JDTMethodBody_type");
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return JdtmmEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTMethodItemProvider.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTMethodItemProvider.java
new file mode 100644
index 00000000000..c99f0c834ec
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTMethodItemProvider.java
@@ -0,0 +1,371 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmFactory;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JDTMethodItemProvider
+ extends JDTMemberItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JDTMethodItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addAbstractPropertyDescriptor(object);
+ addFinalPropertyDescriptor(object);
+ addStaticPropertyDescriptor(object);
+ addExceptionsPropertyDescriptor(object);
+ addSynchronizedPropertyDescriptor(object);
+ addConstructorPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Abstract feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addAbstractPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTMethod_abstract_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTMethod_abstract_feature", "_UI_JDTMethod_type"),
+ JdtmmPackage.Literals.JDT_METHOD__ABSTRACT,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Final feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addFinalPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTMethod_final_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTMethod_final_feature", "_UI_JDTMethod_type"),
+ JdtmmPackage.Literals.JDT_METHOD__FINAL,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Static feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addStaticPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTMethod_static_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTMethod_static_feature", "_UI_JDTMethod_type"),
+ JdtmmPackage.Literals.JDT_METHOD__STATIC,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Exceptions feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addExceptionsPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTMethod_exceptions_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTMethod_exceptions_feature", "_UI_JDTMethod_type"),
+ JdtmmPackage.Literals.JDT_METHOD__EXCEPTIONS,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Synchronized feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addSynchronizedPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTMethod_synchronized_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTMethod_synchronized_feature", "_UI_JDTMethod_type"),
+ JdtmmPackage.Literals.JDT_METHOD__SYNCHRONIZED,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Constructor feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addConstructorPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTMethod_constructor_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTMethod_constructor_feature", "_UI_JDTMethod_type"),
+ JdtmmPackage.Literals.JDT_METHOD__CONSTRUCTOR,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(JdtmmPackage.Literals.JDT_METHOD__RETURN_TYPE);
+ childrenFeatures.add(JdtmmPackage.Literals.JDT_METHOD__PARAMETERS);
+ childrenFeatures.add(JdtmmPackage.Literals.JDT_METHOD__BODIES);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns JDTMethod.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/JDTMethod"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((JDTMethod) object).getElementName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_JDTMethod_type") :
+ getString("_UI_JDTMethod_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(JDTMethod.class)) {
+ case JdtmmPackage.JDT_METHOD__ABSTRACT:
+ case JdtmmPackage.JDT_METHOD__FINAL:
+ case JdtmmPackage.JDT_METHOD__STATIC:
+ case JdtmmPackage.JDT_METHOD__SYNCHRONIZED:
+ case JdtmmPackage.JDT_METHOD__CONSTRUCTOR:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case JdtmmPackage.JDT_METHOD__RETURN_TYPE:
+ case JdtmmPackage.JDT_METHOD__PARAMETERS:
+ case JdtmmPackage.JDT_METHOD__BODIES:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (JdtmmPackage.Literals.JDT_METHOD__RETURN_TYPE,
+ JdtmmFactory.eINSTANCE.createJDTParameter()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (JdtmmPackage.Literals.JDT_METHOD__PARAMETERS,
+ JdtmmFactory.eINSTANCE.createJDTParameter()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (JdtmmPackage.Literals.JDT_METHOD__BODIES,
+ JdtmmFactory.eINSTANCE.createJDTOpaqueBody()));
+ }
+
+ /**
+ * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+ Object childFeature = feature;
+ Object childObject = child;
+
+ boolean qualify =
+ childFeature == JdtmmPackage.Literals.JDT_METHOD__RETURN_TYPE ||
+ childFeature == JdtmmPackage.Literals.JDT_METHOD__PARAMETERS;
+
+ if (qualify) {
+ return getString("_UI_CreateChild_text2",
+ new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+ }
+ return super.getCreateChildText(owner, feature, child, selection);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTOpaqueBodyItemProvider.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTOpaqueBodyItemProvider.java
new file mode 100644
index 00000000000..4f60a443ca8
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTOpaqueBodyItemProvider.java
@@ -0,0 +1,153 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTOpaqueBody;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTOpaqueBody} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JDTOpaqueBodyItemProvider
+ extends JDTMethodBodyItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JDTOpaqueBodyItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ add_bodyPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the body feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void add_bodyPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTOpaqueBody__body_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTOpaqueBody__body_feature", "_UI_JDTOpaqueBody_type"),
+ JdtmmPackage.Literals.JDT_OPAQUE_BODY__BODY,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns JDTOpaqueBody.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/JDTOpaqueBody"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((JDTOpaqueBody) object).get_body();
+ return label == null || label.length() == 0 ?
+ getString("_UI_JDTOpaqueBody_type") :
+ getString("_UI_JDTOpaqueBody_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(JDTOpaqueBody.class)) {
+ case JdtmmPackage.JDT_OPAQUE_BODY__BODY:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTPackageFragmentItemProvider.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTPackageFragmentItemProvider.java
new file mode 100644
index 00000000000..105e8771d7a
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTPackageFragmentItemProvider.java
@@ -0,0 +1,232 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragment;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmFactory;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+import org.eclipse.uml2.common.edit.command.SubsetAddCommand;
+import org.eclipse.uml2.common.edit.command.SubsetSupersetReplaceCommand;
+import org.eclipse.uml2.common.edit.command.SupersetRemoveCommand;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragment} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JDTPackageFragmentItemProvider
+ extends JDTParentJavaElementItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JDTPackageFragmentItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(JdtmmPackage.Literals.JDT_PACKAGE_FRAGMENT__COMPILATION_UNITS);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns JDTPackageFragment.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/JDTPackageFragment"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((JDTPackageFragment) object).getElementName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_JDTPackageFragment_type") :
+ getString("_UI_JDTPackageFragment_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(JDTPackageFragment.class)) {
+ case JdtmmPackage.JDT_PACKAGE_FRAGMENT__COMPILATION_UNITS:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (JdtmmPackage.Literals.JDT_PACKAGE_FRAGMENT__COMPILATION_UNITS,
+ JdtmmFactory.eINSTANCE.createJDTCompilationUnit()));
+ }
+
+ /**
+ * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#createAddCommand(org.eclipse.emf.edit.domain.EditingDomain, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EStructuralFeature, java.util.Collection, int)
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected Command createAddCommand(EditingDomain domain, EObject owner, EStructuralFeature feature, Collection<?> collection, int index) {
+ if (feature == JdtmmPackage.Literals.JDT_PACKAGE_FRAGMENT__COMPILATION_UNITS) {
+ return new SubsetAddCommand(domain, owner, feature, new EStructuralFeature[] { JdtmmPackage.Literals.JDT_PARENT__CHILDREN }, collection, index);
+ }
+ return super.createAddCommand(domain, owner, feature, collection, index);
+ }
+
+ /**
+ * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#createRemoveCommand(org.eclipse.emf.edit.domain.EditingDomain, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EStructuralFeature, java.util.Collection)
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected Command createRemoveCommand(EditingDomain domain, EObject owner, EStructuralFeature feature, Collection<?> collection) {
+ if (feature == JdtmmPackage.Literals.JDT_PARENT__CHILDREN) {
+ return new SupersetRemoveCommand(domain, owner, feature, new EStructuralFeature[] { JdtmmPackage.Literals.JDT_PACKAGE_FRAGMENT__COMPILATION_UNITS }, collection);
+ }
+ return super.createRemoveCommand(domain, owner, feature, collection);
+ }
+
+ /**
+ * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#createReplaceCommand(org.eclipse.emf.edit.domain.EditingDomain, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EStructuralFeature, org.eclipse.emf.ecore.EObject, java.util.Collection)
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected Command createReplaceCommand(EditingDomain domain, EObject owner, EStructuralFeature feature, EObject value, Collection<?> collection) {
+ if (feature == JdtmmPackage.Literals.JDT_PACKAGE_FRAGMENT__COMPILATION_UNITS) {
+ return new SubsetSupersetReplaceCommand(domain, owner, feature, new EStructuralFeature[] { JdtmmPackage.Literals.JDT_PARENT__CHILDREN }, null, value, collection);
+ }
+ if (feature == JdtmmPackage.Literals.JDT_PARENT__CHILDREN) {
+ return new SubsetSupersetReplaceCommand(domain, owner, feature, null, new EStructuralFeature[] { JdtmmPackage.Literals.JDT_PACKAGE_FRAGMENT__COMPILATION_UNITS }, value, collection);
+ }
+ return super.createReplaceCommand(domain, owner, feature, value, collection);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTPackageFragmentRootItemProvider.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTPackageFragmentRootItemProvider.java
new file mode 100644
index 00000000000..422c5ef7803
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTPackageFragmentRootItemProvider.java
@@ -0,0 +1,232 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragmentRoot;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmFactory;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+import org.eclipse.uml2.common.edit.command.SubsetAddCommand;
+import org.eclipse.uml2.common.edit.command.SubsetSupersetReplaceCommand;
+import org.eclipse.uml2.common.edit.command.SupersetRemoveCommand;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragmentRoot} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JDTPackageFragmentRootItemProvider
+ extends JDTParentJavaElementItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JDTPackageFragmentRootItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(JdtmmPackage.Literals.JDT_PACKAGE_FRAGMENT_ROOT__PACKAGE_FRAGMENTS);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns JDTPackageFragmentRoot.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/JDTPackageFragmentRoot"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((JDTPackageFragmentRoot) object).getElementName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_JDTPackageFragmentRoot_type") :
+ getString("_UI_JDTPackageFragmentRoot_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(JDTPackageFragmentRoot.class)) {
+ case JdtmmPackage.JDT_PACKAGE_FRAGMENT_ROOT__PACKAGE_FRAGMENTS:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (JdtmmPackage.Literals.JDT_PACKAGE_FRAGMENT_ROOT__PACKAGE_FRAGMENTS,
+ JdtmmFactory.eINSTANCE.createJDTPackageFragment()));
+ }
+
+ /**
+ * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#createAddCommand(org.eclipse.emf.edit.domain.EditingDomain, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EStructuralFeature, java.util.Collection, int)
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected Command createAddCommand(EditingDomain domain, EObject owner, EStructuralFeature feature, Collection<?> collection, int index) {
+ if (feature == JdtmmPackage.Literals.JDT_PACKAGE_FRAGMENT_ROOT__PACKAGE_FRAGMENTS) {
+ return new SubsetAddCommand(domain, owner, feature, new EStructuralFeature[] { JdtmmPackage.Literals.JDT_PARENT__CHILDREN }, collection, index);
+ }
+ return super.createAddCommand(domain, owner, feature, collection, index);
+ }
+
+ /**
+ * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#createRemoveCommand(org.eclipse.emf.edit.domain.EditingDomain, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EStructuralFeature, java.util.Collection)
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected Command createRemoveCommand(EditingDomain domain, EObject owner, EStructuralFeature feature, Collection<?> collection) {
+ if (feature == JdtmmPackage.Literals.JDT_PARENT__CHILDREN) {
+ return new SupersetRemoveCommand(domain, owner, feature, new EStructuralFeature[] { JdtmmPackage.Literals.JDT_PACKAGE_FRAGMENT_ROOT__PACKAGE_FRAGMENTS }, collection);
+ }
+ return super.createRemoveCommand(domain, owner, feature, collection);
+ }
+
+ /**
+ * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#createReplaceCommand(org.eclipse.emf.edit.domain.EditingDomain, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EStructuralFeature, org.eclipse.emf.ecore.EObject, java.util.Collection)
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected Command createReplaceCommand(EditingDomain domain, EObject owner, EStructuralFeature feature, EObject value, Collection<?> collection) {
+ if (feature == JdtmmPackage.Literals.JDT_PACKAGE_FRAGMENT_ROOT__PACKAGE_FRAGMENTS) {
+ return new SubsetSupersetReplaceCommand(domain, owner, feature, new EStructuralFeature[] { JdtmmPackage.Literals.JDT_PARENT__CHILDREN }, null, value, collection);
+ }
+ if (feature == JdtmmPackage.Literals.JDT_PARENT__CHILDREN) {
+ return new SubsetSupersetReplaceCommand(domain, owner, feature, null, new EStructuralFeature[] { JdtmmPackage.Literals.JDT_PACKAGE_FRAGMENT_ROOT__PACKAGE_FRAGMENTS }, value, collection);
+ }
+ return super.createReplaceCommand(domain, owner, feature, value, collection);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTParameterItemProvider.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTParameterItemProvider.java
new file mode 100644
index 00000000000..5b752d26f95
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTParameterItemProvider.java
@@ -0,0 +1,218 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JDTParameterItemProvider
+ extends JDTMemberItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JDTParameterItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addFinalPropertyDescriptor(object);
+ addIsMultiValuedPropertyDescriptor(object);
+ addTypePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Final feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addFinalPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTParameter_final_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTParameter_final_feature", "_UI_JDTParameter_type"),
+ JdtmmPackage.Literals.JDT_PARAMETER__FINAL,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Is Multi Valued feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addIsMultiValuedPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTParameter_isMultiValued_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTParameter_isMultiValued_feature", "_UI_JDTParameter_type"),
+ JdtmmPackage.Literals.JDT_PARAMETER__IS_MULTI_VALUED,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Type feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addTypePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTParameter_type_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTParameter_type_feature", "_UI_JDTParameter_type"),
+ JdtmmPackage.Literals.JDT_PARAMETER__TYPE,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns JDTParameter.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/JDTParameter"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((JDTParameter) object).getElementName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_JDTParameter_type") :
+ getString("_UI_JDTParameter_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(JDTParameter.class)) {
+ case JdtmmPackage.JDT_PARAMETER__FINAL:
+ case JdtmmPackage.JDT_PARAMETER__IS_MULTI_VALUED:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTParentItemProvider.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTParentItemProvider.java
new file mode 100644
index 00000000000..86e1fbe2a9f
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTParentItemProvider.java
@@ -0,0 +1,193 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParent;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParent} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JDTParentItemProvider
+ extends ItemProviderAdapter
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JDTParentItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addChildrenPropertyDescriptor(object);
+ addFlagsPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Flags feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addFlagsPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTParent_flags_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTParent_flags_feature", "_UI_JDTParent_type"),
+ JdtmmPackage.Literals.JDT_PARENT__FLAGS,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Children feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addChildrenPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTParent_children_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTParent_children_feature", "_UI_JDTParent_type"),
+ JdtmmPackage.Literals.JDT_PARENT__CHILDREN,
+ false,
+ false,
+ false,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ JDTParent jdtParent = (JDTParent) object;
+ return getString("_UI_JDTParent_type") + " " + jdtParent.getFlags();
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(JDTParent.class)) {
+ case JdtmmPackage.JDT_PARENT__FLAGS:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return JdtmmEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTParentJavaElementItemProvider.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTParentJavaElementItemProvider.java
new file mode 100644
index 00000000000..069b6c12c76
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTParentJavaElementItemProvider.java
@@ -0,0 +1,181 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParentJavaElement;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParentJavaElement} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JDTParentJavaElementItemProvider
+ extends JDTJavaElementItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JDTParentJavaElementItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addChildrenPropertyDescriptor(object);
+ addFlagsPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Flags feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addFlagsPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTParent_flags_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTParent_flags_feature", "_UI_JDTParent_type"),
+ JdtmmPackage.Literals.JDT_PARENT__FLAGS,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Children feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addChildrenPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTParent_children_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTParent_children_feature", "_UI_JDTParent_type"),
+ JdtmmPackage.Literals.JDT_PARENT__CHILDREN,
+ false,
+ false,
+ false,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((JDTParentJavaElement) object).getElementName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_JDTParentJavaElement_type") :
+ getString("_UI_JDTParentJavaElement_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(JDTParentJavaElement.class)) {
+ case JdtmmPackage.JDT_PARENT_JAVA_ELEMENT__FLAGS:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTTypeItemProvider.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTTypeItemProvider.java
new file mode 100644
index 00000000000..7a99105e5a1
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTTypeItemProvider.java
@@ -0,0 +1,508 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmFactory;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+import org.eclipse.uml2.common.edit.command.SubsetAddCommand;
+import org.eclipse.uml2.common.edit.command.SubsetSupersetReplaceCommand;
+import org.eclipse.uml2.common.edit.command.SupersetRemoveCommand;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JDTTypeItemProvider
+ extends JDTMemberItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JDTTypeItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addClassPropertyDescriptor(object);
+ addInterfacePropertyDescriptor(object);
+ addEnumPropertyDescriptor(object);
+ addAbstractPropertyDescriptor(object);
+ addFinalPropertyDescriptor(object);
+ addStaticPropertyDescriptor(object);
+ addSuperInterfacesPropertyDescriptor(object);
+ addSuperClassPropertyDescriptor(object);
+ addSuperInterfaceNamesPropertyDescriptor(object);
+ addSuperClassNamePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Class feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addClassPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTType_class_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTType_class_feature", "_UI_JDTType_type"),
+ JdtmmPackage.Literals.JDT_TYPE__CLASS,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Interface feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addInterfacePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTType_interface_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTType_interface_feature", "_UI_JDTType_type"),
+ JdtmmPackage.Literals.JDT_TYPE__INTERFACE,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Enum feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addEnumPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTType_enum_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTType_enum_feature", "_UI_JDTType_type"),
+ JdtmmPackage.Literals.JDT_TYPE__ENUM,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Abstract feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addAbstractPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTType_abstract_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTType_abstract_feature", "_UI_JDTType_type"),
+ JdtmmPackage.Literals.JDT_TYPE__ABSTRACT,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Final feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addFinalPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTType_final_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTType_final_feature", "_UI_JDTType_type"),
+ JdtmmPackage.Literals.JDT_TYPE__FINAL,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Static feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addStaticPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTType_static_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTType_static_feature", "_UI_JDTType_type"),
+ JdtmmPackage.Literals.JDT_TYPE__STATIC,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Super Interfaces feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addSuperInterfacesPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTType_superInterfaces_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTType_superInterfaces_feature", "_UI_JDTType_type"),
+ JdtmmPackage.Literals.JDT_TYPE__SUPER_INTERFACES,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Super Class feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addSuperClassPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTType_superClass_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTType_superClass_feature", "_UI_JDTType_type"),
+ JdtmmPackage.Literals.JDT_TYPE__SUPER_CLASS,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Super Interface Names feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addSuperInterfaceNamesPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTType_superInterfaceNames_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTType_superInterfaceNames_feature", "_UI_JDTType_type"),
+ JdtmmPackage.Literals.JDT_TYPE__SUPER_INTERFACE_NAMES,
+ false,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Super Class Name feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addSuperClassNamePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JDTType_superClassName_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JDTType_superClassName_feature", "_UI_JDTType_type"),
+ JdtmmPackage.Literals.JDT_TYPE__SUPER_CLASS_NAME,
+ false,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(JdtmmPackage.Literals.JDT_TYPE__METHODS);
+ childrenFeatures.add(JdtmmPackage.Literals.JDT_TYPE__FIELDS);
+ childrenFeatures.add(JdtmmPackage.Literals.JDT_TYPE__TYPES);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((JDTType) object).getElementName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_JDTType_type") :
+ getString("_UI_JDTType_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(JDTType.class)) {
+ case JdtmmPackage.JDT_TYPE__CLASS:
+ case JdtmmPackage.JDT_TYPE__INTERFACE:
+ case JdtmmPackage.JDT_TYPE__ENUM:
+ case JdtmmPackage.JDT_TYPE__ABSTRACT:
+ case JdtmmPackage.JDT_TYPE__FINAL:
+ case JdtmmPackage.JDT_TYPE__STATIC:
+ case JdtmmPackage.JDT_TYPE__SUPER_INTERFACE_NAMES:
+ case JdtmmPackage.JDT_TYPE__SUPER_CLASS_NAME:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case JdtmmPackage.JDT_TYPE__METHODS:
+ case JdtmmPackage.JDT_TYPE__FIELDS:
+ case JdtmmPackage.JDT_TYPE__TYPES:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (JdtmmPackage.Literals.JDT_TYPE__METHODS,
+ JdtmmFactory.eINSTANCE.createJDTMethod()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (JdtmmPackage.Literals.JDT_TYPE__FIELDS,
+ JdtmmFactory.eINSTANCE.createJDTField()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (JdtmmPackage.Literals.JDT_TYPE__TYPES,
+ JdtmmFactory.eINSTANCE.createJDTClass()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (JdtmmPackage.Literals.JDT_TYPE__TYPES,
+ JdtmmFactory.eINSTANCE.createJDTInterface()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (JdtmmPackage.Literals.JDT_TYPE__TYPES,
+ JdtmmFactory.eINSTANCE.createJDTEnum()));
+ }
+
+ /**
+ * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#createAddCommand(org.eclipse.emf.edit.domain.EditingDomain, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EStructuralFeature, java.util.Collection, int)
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected Command createAddCommand(EditingDomain domain, EObject owner, EStructuralFeature feature, Collection<?> collection, int index) {
+ if (feature == JdtmmPackage.Literals.JDT_TYPE__METHODS) {
+ return new SubsetAddCommand(domain, owner, feature, new EStructuralFeature[] { JdtmmPackage.Literals.JDT_PARENT__CHILDREN }, collection, index);
+ }
+ if (feature == JdtmmPackage.Literals.JDT_TYPE__FIELDS) {
+ return new SubsetAddCommand(domain, owner, feature, new EStructuralFeature[] { JdtmmPackage.Literals.JDT_PARENT__CHILDREN }, collection, index);
+ }
+ if (feature == JdtmmPackage.Literals.JDT_TYPE__TYPES) {
+ return new SubsetAddCommand(domain, owner, feature, new EStructuralFeature[] { JdtmmPackage.Literals.JDT_PARENT__CHILDREN }, collection, index);
+ }
+ return super.createAddCommand(domain, owner, feature, collection, index);
+ }
+
+ /**
+ * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#createRemoveCommand(org.eclipse.emf.edit.domain.EditingDomain, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EStructuralFeature, java.util.Collection)
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected Command createRemoveCommand(EditingDomain domain, EObject owner, EStructuralFeature feature, Collection<?> collection) {
+ if (feature == JdtmmPackage.Literals.JDT_PARENT__CHILDREN) {
+ return new SupersetRemoveCommand(domain, owner, feature, new EStructuralFeature[] { JdtmmPackage.Literals.JDT_TYPE__METHODS, JdtmmPackage.Literals.JDT_TYPE__FIELDS, JdtmmPackage.Literals.JDT_TYPE__TYPES }, collection);
+ }
+ return super.createRemoveCommand(domain, owner, feature, collection);
+ }
+
+ /**
+ * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#createReplaceCommand(org.eclipse.emf.edit.domain.EditingDomain, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EStructuralFeature, org.eclipse.emf.ecore.EObject, java.util.Collection)
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected Command createReplaceCommand(EditingDomain domain, EObject owner, EStructuralFeature feature, EObject value, Collection<?> collection) {
+ if (feature == JdtmmPackage.Literals.JDT_TYPE__METHODS) {
+ return new SubsetSupersetReplaceCommand(domain, owner, feature, new EStructuralFeature[] { JdtmmPackage.Literals.JDT_PARENT__CHILDREN }, null, value, collection);
+ }
+ if (feature == JdtmmPackage.Literals.JDT_TYPE__FIELDS) {
+ return new SubsetSupersetReplaceCommand(domain, owner, feature, new EStructuralFeature[] { JdtmmPackage.Literals.JDT_PARENT__CHILDREN }, null, value, collection);
+ }
+ if (feature == JdtmmPackage.Literals.JDT_TYPE__TYPES) {
+ return new SubsetSupersetReplaceCommand(domain, owner, feature, new EStructuralFeature[] { JdtmmPackage.Literals.JDT_PARENT__CHILDREN }, null, value, collection);
+ }
+ if (feature == JdtmmPackage.Literals.JDT_PARENT__CHILDREN) {
+ return new SubsetSupersetReplaceCommand(domain, owner, feature, null, new EStructuralFeature[] { JdtmmPackage.Literals.JDT_TYPE__METHODS, JdtmmPackage.Literals.JDT_TYPE__FIELDS, JdtmmPackage.Literals.JDT_TYPE__TYPES }, value, collection);
+ }
+ return super.createReplaceCommand(domain, owner, feature, value, collection);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTTypeParameterItemProvider.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTTypeParameterItemProvider.java
new file mode 100644
index 00000000000..855887da62c
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTTypeParameterItemProvider.java
@@ -0,0 +1,135 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTTypeParameter;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTTypeParameter} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JDTTypeParameterItemProvider
+ extends JDTJavaElementItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JDTTypeParameterItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns JDTTypeParameter.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/JDTTypeParameter"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((JDTTypeParameter) object).getElementName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_JDTTypeParameter_type") :
+ getString("_UI_JDTTypeParameter_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTTypeRootItemProvider.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTTypeRootItemProvider.java
new file mode 100644
index 00000000000..8863ab761cf
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTTypeRootItemProvider.java
@@ -0,0 +1,123 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTTypeRoot;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTTypeRoot} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JDTTypeRootItemProvider
+ extends JDTParentJavaElementItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JDTTypeRootItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((JDTTypeRoot) object).getElementName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_JDTTypeRoot_type") :
+ getString("_UI_JDTTypeRoot_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JdtmmEditPlugin.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JdtmmEditPlugin.java
new file mode 100644
index 00000000000..3dd25b4756d
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JdtmmEditPlugin.java
@@ -0,0 +1,115 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.provider;
+
+import org.eclipse.emf.common.EMFPlugin;
+import org.eclipse.emf.common.util.ResourceLocator;
+
+/**
+ * This is the central singleton for the Jdtmm edit plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public final class JdtmmEditPlugin extends EMFPlugin {
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static final JdtmmEditPlugin INSTANCE = new JdtmmEditPlugin();
+
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private static Implementation plugin;
+
+ /**
+ * Create the instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JdtmmEditPlugin() {
+ super(new ResourceLocator[] {
+ });
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the singleton instance.
+ * @generated
+ */
+ @Override
+ public ResourceLocator getPluginResourceLocator() {
+ return plugin;
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the singleton instance.
+ * @generated
+ */
+ public static Implementation getPlugin() {
+ return plugin;
+ }
+
+ /**
+ * The actual implementation of the Eclipse <b>Plugin</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static class Implementation extends EclipsePlugin {
+ /**
+ * Creates an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Implementation() {
+ super();
+
+ // Remember the static instance.
+ //
+ plugin = this;
+ }
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JdtmmItemProviderAdapterFactory.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JdtmmItemProviderAdapterFactory.java
new file mode 100644
index 00000000000..406acea650c
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JdtmmItemProviderAdapterFactory.java
@@ -0,0 +1,661 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IDisposable;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.util.JdtmmAdapterFactory;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JdtmmItemProviderAdapterFactory extends JdtmmAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable {
+ /**
+ * This keeps track of the root adapter factory that delegates to this adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ComposedAdapterFactory parentAdapterFactory;
+
+ /**
+ * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+ /**
+ * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Collection<Object> supportedTypes = new ArrayList<Object>();
+
+ /**
+ * This constructs an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JdtmmItemProviderAdapterFactory() {
+ supportedTypes.add(IEditingDomainItemProvider.class);
+ supportedTypes.add(IStructuredItemContentProvider.class);
+ supportedTypes.add(ITreeItemContentProvider.class);
+ supportedTypes.add(IItemLabelProvider.class);
+ supportedTypes.add(IItemPropertySource.class);
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTTypeParameter} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTTypeParameterItemProvider jdtTypeParameterItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTTypeParameter}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Adapter createJDTTypeParameterAdapter() {
+ if (jdtTypeParameterItemProvider == null) {
+ jdtTypeParameterItemProvider = new JDTTypeParameterItemProvider(this);
+ }
+
+ return jdtTypeParameterItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTFieldItemProvider jdtFieldItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Adapter createJDTFieldAdapter() {
+ if (jdtFieldItemProvider == null) {
+ jdtFieldItemProvider = new JDTFieldItemProvider(this);
+ }
+
+ return jdtFieldItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTMethodItemProvider jdtMethodItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Adapter createJDTMethodAdapter() {
+ if (jdtMethodItemProvider == null) {
+ jdtMethodItemProvider = new JDTMethodItemProvider(this);
+ }
+
+ return jdtMethodItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTParameterItemProvider jdtParameterItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Adapter createJDTParameterAdapter() {
+ if (jdtParameterItemProvider == null) {
+ jdtParameterItemProvider = new JDTParameterItemProvider(this);
+ }
+
+ return jdtParameterItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTCompilationUnit} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTCompilationUnitItemProvider jdtCompilationUnitItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTCompilationUnit}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Adapter createJDTCompilationUnitAdapter() {
+ if (jdtCompilationUnitItemProvider == null) {
+ jdtCompilationUnitItemProvider = new JDTCompilationUnitItemProvider(this);
+ }
+
+ return jdtCompilationUnitItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragment} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTPackageFragmentItemProvider jdtPackageFragmentItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragment}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Adapter createJDTPackageFragmentAdapter() {
+ if (jdtPackageFragmentItemProvider == null) {
+ jdtPackageFragmentItemProvider = new JDTPackageFragmentItemProvider(this);
+ }
+
+ return jdtPackageFragmentItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragmentRoot} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTPackageFragmentRootItemProvider jdtPackageFragmentRootItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragmentRoot}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Adapter createJDTPackageFragmentRootAdapter() {
+ if (jdtPackageFragmentRootItemProvider == null) {
+ jdtPackageFragmentRootItemProvider = new JDTPackageFragmentRootItemProvider(this);
+ }
+
+ return jdtPackageFragmentRootItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaProject} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTJavaProjectItemProvider jdtJavaProjectItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaProject}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Adapter createJDTJavaProjectAdapter() {
+ if (jdtJavaProjectItemProvider == null) {
+ jdtJavaProjectItemProvider = new JDTJavaProjectItemProvider(this);
+ }
+
+ return jdtJavaProjectItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaModel} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTJavaModelItemProvider jdtJavaModelItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaModel}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Adapter createJDTJavaModelAdapter() {
+ if (jdtJavaModelItemProvider == null) {
+ jdtJavaModelItemProvider = new JDTJavaModelItemProvider(this);
+ }
+
+ return jdtJavaModelItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTClass} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTClassItemProvider jdtClassItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTClass}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Adapter createJDTClassAdapter() {
+ if (jdtClassItemProvider == null) {
+ jdtClassItemProvider = new JDTClassItemProvider(this);
+ }
+
+ return jdtClassItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTInterface} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTInterfaceItemProvider jdtInterfaceItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTInterface}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Adapter createJDTInterfaceAdapter() {
+ if (jdtInterfaceItemProvider == null) {
+ jdtInterfaceItemProvider = new JDTInterfaceItemProvider(this);
+ }
+
+ return jdtInterfaceItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTEnum} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTEnumItemProvider jdtEnumItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTEnum}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Adapter createJDTEnumAdapter() {
+ if (jdtEnumItemProvider == null) {
+ jdtEnumItemProvider = new JDTEnumItemProvider(this);
+ }
+
+ return jdtEnumItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTImportDeclaration} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTImportDeclarationItemProvider jdtImportDeclarationItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTImportDeclaration}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Adapter createJDTImportDeclarationAdapter() {
+ if (jdtImportDeclarationItemProvider == null) {
+ jdtImportDeclarationItemProvider = new JDTImportDeclarationItemProvider(this);
+ }
+
+ return jdtImportDeclarationItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTImportContainer} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTImportContainerItemProvider jdtImportContainerItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTImportContainer}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Adapter createJDTImportContainerAdapter() {
+ if (jdtImportContainerItemProvider == null) {
+ jdtImportContainerItemProvider = new JDTImportContainerItemProvider(this);
+ }
+
+ return jdtImportContainerItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTException} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTExceptionItemProvider jdtExceptionItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTException}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Adapter createJDTExceptionAdapter() {
+ if (jdtExceptionItemProvider == null) {
+ jdtExceptionItemProvider = new JDTExceptionItemProvider(this);
+ }
+
+ return jdtExceptionItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTOpaqueBody} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTOpaqueBodyItemProvider jdtOpaqueBodyItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTOpaqueBody}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Adapter createJDTOpaqueBodyAdapter() {
+ if (jdtOpaqueBodyItemProvider == null) {
+ jdtOpaqueBodyItemProvider = new JDTOpaqueBodyItemProvider(this);
+ }
+
+ return jdtOpaqueBodyItemProvider;
+ }
+
+ /**
+ * This returns the root adapter factory that contains this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public ComposeableAdapterFactory getRootAdapterFactory() {
+ return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+ }
+
+ /**
+ * This sets the composed adapter factory that contains this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
+ this.parentAdapterFactory = parentAdapterFactory;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object type) {
+ return supportedTypes.contains(type) || super.isFactoryForType(type);
+ }
+
+ /**
+ * This implementation substitutes the factory itself as the key for the adapter.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Adapter adapt(Notifier notifier, Object type) {
+ return super.adapt(notifier, this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object adapt(Object object, Object type) {
+ if (isFactoryForType(type)) {
+ Object adapter = super.adapt(object, type);
+ if (!(type instanceof Class<?>) || (((Class<?>) type).isInstance(adapter))) {
+ return adapter;
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * This adds a listener.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void addListener(INotifyChangedListener notifyChangedListener) {
+ changeNotifier.addListener(notifyChangedListener);
+ }
+
+ /**
+ * This removes a listener.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void removeListener(INotifyChangedListener notifyChangedListener) {
+ changeNotifier.removeListener(notifyChangedListener);
+ }
+
+ /**
+ * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void fireNotifyChanged(Notification notification) {
+ changeNotifier.fireNotifyChanged(notification);
+
+ if (parentAdapterFactory != null) {
+ parentAdapterFactory.fireNotifyChanged(notification);
+ }
+ }
+
+ /**
+ * This disposes all of the item providers created by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void dispose() {
+ if (jdtMethodItemProvider != null) {
+ jdtMethodItemProvider.dispose();
+ }
+ if (jdtTypeParameterItemProvider != null) {
+ jdtTypeParameterItemProvider.dispose();
+ }
+ if (jdtFieldItemProvider != null) {
+ jdtFieldItemProvider.dispose();
+ }
+ if (jdtCompilationUnitItemProvider != null) {
+ jdtCompilationUnitItemProvider.dispose();
+ }
+ if (jdtPackageFragmentItemProvider != null) {
+ jdtPackageFragmentItemProvider.dispose();
+ }
+ if (jdtPackageFragmentRootItemProvider != null) {
+ jdtPackageFragmentRootItemProvider.dispose();
+ }
+ if (jdtJavaProjectItemProvider != null) {
+ jdtJavaProjectItemProvider.dispose();
+ }
+ if (jdtJavaModelItemProvider != null) {
+ jdtJavaModelItemProvider.dispose();
+ }
+ if (jdtParameterItemProvider != null) {
+ jdtParameterItemProvider.dispose();
+ }
+ if (jdtClassItemProvider != null) {
+ jdtClassItemProvider.dispose();
+ }
+ if (jdtInterfaceItemProvider != null) {
+ jdtInterfaceItemProvider.dispose();
+ }
+ if (jdtEnumItemProvider != null) {
+ jdtEnumItemProvider.dispose();
+ }
+ if (jdtImportDeclarationItemProvider != null) {
+ jdtImportDeclarationItemProvider.dispose();
+ }
+ if (jdtImportContainerItemProvider != null) {
+ jdtImportContainerItemProvider.dispose();
+ }
+ if (jdtExceptionItemProvider != null) {
+ jdtExceptionItemProvider.dispose();
+ }
+ if (jdtOpaqueBodyItemProvider != null) {
+ jdtOpaqueBodyItemProvider.dispose();
+ }
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/.classpath b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/.classpath
new file mode 100644
index 00000000000..ad32c83a788
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/.project b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/.project
new file mode 100644
index 00000000000..3d0615d9665
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.java.generator.metamodel.jdt.editor</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/.settings/org.eclipse.jdt.core.prefs b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..94d61f00da6
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,291 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=260
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=false
+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=260
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=5
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/.settings/org.eclipse.jdt.ui.prefs b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 00000000000..954281dbc31
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,68 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_functional_interfaces=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=false
+cleanup.format_source_code=false
+cleanup.format_source_code_changes_only=false
+cleanup.insert_inferred_type_arguments=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=false
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_redundant_type_arguments=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_anonymous_class_creation=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_lambda=true
+cleanup.use_parentheses_in_expressions=false
+cleanup.use_this_for_non_static_field_access=false
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=false
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_type_arguments=false
+cleanup_profile=_Papyrus
+cleanup_settings_version=2
+eclipse.preferences.version=1
+formatter_profile=_Papyrus
+formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * Constructor.\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*****************************************************************************\n * Copyright (c) ${year} CEA LIST and others.\n * \n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n * CEA LIST - Initial API and implementation\n * \n *****************************************************************************/\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\n * ${see_to_overridden}\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${see_to_target}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/META-INF/MANIFEST.MF b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..14f61d6d866
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/META-INF/MANIFEST.MF
@@ -0,0 +1,18 @@
+Manifest-Version: 1.0
+Export-Package: org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.presentation
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.core.resources;visibility:=reexport,
+ org.eclipse.papyrus.java.generator.metamodel.jdt.edit;bundle-version="1.2.0";visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;visibility:=reexport,
+ org.eclipse.emf.edit.ui;visibility:=reexport,
+ org.eclipse.ui.ide;visibility:=reexport
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-ClassPath: .
+Bundle-Version: 1.2.0.qualifier
+Bundle-Name: %pluginName
+Bundle-Localization: plugin
+Bundle-ManifestVersion: 2
+Bundle-Activator: org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.presentation.GeneratoroptionsmmEditorPlugin$Implementation
+Bundle-SymbolicName: org.eclipse.papyrus.java.generator.metamodel.jdt.editor;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/about.html b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/about.html
new file mode 100644
index 00000000000..82d49bf5f81
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/build.properties b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/build.properties
new file mode 100644
index 00000000000..f4610251623
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/build.properties
@@ -0,0 +1,12 @@
+#
+
+bin.includes = .,\
+ icons/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties,\
+ about.html
+jars.compile.order = .
+source.. = src/
+output.. = bin
+src.includes = about.html
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/icons/full/obj16/JdtmmModelFile.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/icons/full/obj16/JdtmmModelFile.gif
new file mode 100644
index 00000000000..a99fd8140c4
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/icons/full/obj16/JdtmmModelFile.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/icons/full/wizban/NewJdtmm.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/icons/full/wizban/NewJdtmm.gif
new file mode 100644
index 00000000000..897c9baa83c
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/icons/full/wizban/NewJdtmm.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/plugin.properties b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/plugin.properties
new file mode 100644
index 00000000000..e799174fb7c
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/plugin.properties
@@ -0,0 +1,53 @@
+#
+
+pluginName = Jdt metamodel Editor (Incubation)
+providerName = Eclipse Modeling Project
+
+_UI_GeneratoroptionsmmEditor_menu = &Generatoroptionsmm Editor
+
+_UI_CreateChild_menu_item = &New Child
+_UI_CreateSibling_menu_item = N&ew Sibling
+
+_UI_ShowPropertiesView_menu_item = Show &Properties View
+_UI_RefreshViewer_menu_item = &Refresh
+
+_UI_SelectionPage_label = Selection
+_UI_ParentPage_label = Parent
+_UI_ListPage_label = List
+_UI_TreePage_label = Tree
+_UI_TablePage_label = Table
+_UI_TreeWithColumnsPage_label = Tree with Columns
+_UI_ObjectColumn_label = Object
+_UI_SelfColumn_label = Self
+
+_UI_NoObjectSelected = Selected Nothing
+_UI_SingleObjectSelected = Selected Object: {0}
+_UI_MultiObjectSelected = Selected {0} Objects
+
+_UI_OpenEditorError_label = Open Editor
+
+_UI_Wizard_category = Example EMF Model Creation Wizards
+
+_UI_CreateModelError_message = Problems encountered in file "{0}"
+
+_UI_GeneratoroptionsmmModelWizard_label = Generatoroptionsmm Model
+_UI_GeneratoroptionsmmModelWizard_description = Create a new Generatoroptionsmm model
+
+_UI_GeneratoroptionsmmEditor_label = Generatoroptionsmm Model Editor
+
+_UI_GeneratoroptionsmmEditorFilenameDefaultBase = My
+_UI_GeneratoroptionsmmEditorFilenameExtensions = generatoroptionsmm
+
+_UI_Wizard_label = New
+
+_WARN_FilenameExtension = The file name must end in ''.{0}''
+_WARN_FilenameExtensions = The file name must have one of the following extensions: {0}
+
+_UI_ModelObject = &Model Object
+_UI_XMLEncoding = &XML Encoding
+_UI_XMLEncodingChoices = UTF-8 ASCII UTF-16 UTF-16BE UTF-16LE ISO-8859-1
+_UI_Wizard_initial_object_description = Select a model object to create
+
+_UI_FileConflict_label = File Conflict
+_WARN_FileConflict = There are unsaved changes that conflict with changes made outside the editor. Do you wish to discard this editor's changes?
+
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/plugin.xml b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/plugin.xml
new file mode 100644
index 00000000000..811f7e9bc6f
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/plugin.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.ui.newWizards">
+ <!-- @generated generatoroptionsmm -->
+ <category
+ id="org.eclipse.emf.ecore.Wizard.category.ID"
+ name="%_UI_Wizard_category"/>
+ <wizard
+ id="org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.presentation.GeneratoroptionsmmModelWizardID"
+ name="%_UI_GeneratoroptionsmmModelWizard_label"
+ class="org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.presentation.GeneratoroptionsmmModelWizard"
+ category="org.eclipse.emf.ecore.Wizard.category.ID"
+ icon="icons/full/obj16/GeneratoroptionsmmModelFile.gif">
+ <description>%_UI_GeneratoroptionsmmModelWizard_description</description>
+ <selection class="org.eclipse.core.resources.IResource"/>
+ </wizard>
+ </extension>
+
+ <extension point="org.eclipse.ui.editors">
+ <!-- @generated generatoroptionsmm -->
+ <editor
+ id="org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.presentation.GeneratoroptionsmmEditorID"
+ name="%_UI_GeneratoroptionsmmEditor_label"
+ icon="icons/full/obj16/GeneratoroptionsmmModelFile.gif"
+ extensions="generatoroptionsmm"
+ class="org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.presentation.GeneratoroptionsmmEditor"
+ contributorClass="org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.presentation.GeneratoroptionsmmActionBarContributor">
+ </editor>
+ </extension>
+
+</plugin>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/pom.xml b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/pom.xml
new file mode 100644
index 00000000000..fe4b79411ab
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.java.generator.metamodel.jdt.editor</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/presentation/GeneratoroptionsmmActionBarContributor.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/presentation/GeneratoroptionsmmActionBarContributor.java
new file mode 100644
index 00000000000..ba68a1509a8
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/presentation/GeneratoroptionsmmActionBarContributor.java
@@ -0,0 +1,441 @@
+/**
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.presentation;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+import org.eclipse.emf.edit.ui.action.ControlAction;
+import org.eclipse.emf.edit.ui.action.CreateChildAction;
+import org.eclipse.emf.edit.ui.action.CreateSiblingAction;
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+import org.eclipse.emf.edit.ui.action.LoadResourceAction;
+import org.eclipse.emf.edit.ui.action.ValidateAction;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.IContributionManager;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.action.SubContributionItem;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.PartInitException;
+
+/**
+ * This is the action bar contributor for the Generatoroptionsmm model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class GeneratoroptionsmmActionBarContributor
+ extends EditingDomainActionBarContributor
+ implements ISelectionChangedListener {
+ /**
+ * This keeps track of the active editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IEditorPart activeEditorPart;
+
+ /**
+ * This keeps track of the current selection provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ISelectionProvider selectionProvider;
+
+ /**
+ * This action opens the Properties view.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IAction showPropertiesViewAction =
+ new Action(GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_ShowPropertiesView_menu_item")) {
+ @Override
+ public void run() {
+ try {
+ getPage().showView("org.eclipse.ui.views.PropertySheet");
+ }
+ catch (PartInitException exception) {
+ GeneratoroptionsmmEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+ };
+
+ /**
+ * This action refreshes the viewer of the current editor if the editor
+ * implements {@link org.eclipse.emf.common.ui.viewer.IViewerProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IAction refreshViewerAction =
+ new Action(GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_RefreshViewer_menu_item")) {
+ @Override
+ public boolean isEnabled() {
+ return activeEditorPart instanceof IViewerProvider;
+ }
+
+ @Override
+ public void run() {
+ if (activeEditorPart instanceof IViewerProvider) {
+ Viewer viewer = ((IViewerProvider) activeEditorPart).getViewer();
+ if (viewer != null) {
+ viewer.refresh();
+ }
+ }
+ }
+ };
+
+ /**
+ * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateChildAction} corresponding to each descriptor
+ * generated for the current selection by the item provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Collection<IAction> createChildActions;
+
+ /**
+ * This is the menu manager into which menu contribution items should be added for CreateChild actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IMenuManager createChildMenuManager;
+
+ /**
+ * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} corresponding to each descriptor
+ * generated for the current selection by the item provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Collection<IAction> createSiblingActions;
+
+ /**
+ * This is the menu manager into which menu contribution items should be added for CreateSibling actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IMenuManager createSiblingMenuManager;
+
+ /**
+ * This creates an instance of the contributor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public GeneratoroptionsmmActionBarContributor() {
+ super(ADDITIONS_LAST_STYLE);
+ loadResourceAction = new LoadResourceAction();
+ validateAction = new ValidateAction();
+ controlAction = new ControlAction();
+ }
+
+ /**
+ * This adds Separators for editor additions to the tool bar.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void contributeToToolBar(IToolBarManager toolBarManager) {
+ toolBarManager.add(new Separator("generatoroptionsmm-settings"));
+ toolBarManager.add(new Separator("generatoroptionsmm-additions"));
+ }
+
+ /**
+ * This adds to the menu bar a menu and some separators for editor additions,
+ * as well as the sub-menus for object creation items.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void contributeToMenu(IMenuManager menuManager) {
+ super.contributeToMenu(menuManager);
+
+ IMenuManager submenuManager = new MenuManager(GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_GeneratoroptionsmmEditor_menu"), "org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmmMenuID");
+ menuManager.insertAfter("additions", submenuManager);
+ submenuManager.add(new Separator("settings"));
+ submenuManager.add(new Separator("actions"));
+ submenuManager.add(new Separator("additions"));
+ submenuManager.add(new Separator("additions-end"));
+
+ // Prepare for CreateChild item addition or removal.
+ //
+ createChildMenuManager = new MenuManager(GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+ submenuManager.insertBefore("additions", createChildMenuManager);
+
+ // Prepare for CreateSibling item addition or removal.
+ //
+ createSiblingMenuManager = new MenuManager(GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+ submenuManager.insertBefore("additions", createSiblingMenuManager);
+
+ // Force an update because Eclipse hides empty menus now.
+ //
+ submenuManager.addMenuListener
+ (new IMenuListener() {
+ @Override
+ public void menuAboutToShow(IMenuManager menuManager) {
+ menuManager.updateAll(true);
+ }
+ });
+
+ addGlobalActions(submenuManager);
+ }
+
+ /**
+ * When the active editor changes, this remembers the change and registers with it as a selection provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setActiveEditor(IEditorPart part) {
+ super.setActiveEditor(part);
+ activeEditorPart = part;
+
+ // Switch to the new selection provider.
+ //
+ if (selectionProvider != null) {
+ selectionProvider.removeSelectionChangedListener(this);
+ }
+ if (part == null) {
+ selectionProvider = null;
+ }
+ else {
+ selectionProvider = part.getSite().getSelectionProvider();
+ selectionProvider.addSelectionChangedListener(this);
+
+ // Fake a selection changed event to update the menus.
+ //
+ if (selectionProvider.getSelection() != null) {
+ selectionChanged(new SelectionChangedEvent(selectionProvider, selectionProvider.getSelection()));
+ }
+ }
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionChangedListener},
+ * handling {@link org.eclipse.jface.viewers.SelectionChangedEvent}s by querying for the children and siblings
+ * that can be added to the selected object and updating the menus accordingly.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void selectionChanged(SelectionChangedEvent event) {
+ // Remove any menu items for old selection.
+ //
+ if (createChildMenuManager != null) {
+ depopulateManager(createChildMenuManager, createChildActions);
+ }
+ if (createSiblingMenuManager != null) {
+ depopulateManager(createSiblingMenuManager, createSiblingActions);
+ }
+
+ // Query the new selection for appropriate new child/sibling descriptors
+ //
+ Collection<?> newChildDescriptors = null;
+ Collection<?> newSiblingDescriptors = null;
+
+ ISelection selection = event.getSelection();
+ if (selection instanceof IStructuredSelection && ((IStructuredSelection) selection).size() == 1) {
+ Object object = ((IStructuredSelection) selection).getFirstElement();
+
+ EditingDomain domain = ((IEditingDomainProvider) activeEditorPart).getEditingDomain();
+
+ newChildDescriptors = domain.getNewChildDescriptors(object, null);
+ newSiblingDescriptors = domain.getNewChildDescriptors(null, object);
+ }
+
+ // Generate actions for selection; populate and redraw the menus.
+ //
+ createChildActions = generateCreateChildActions(newChildDescriptors, selection);
+ createSiblingActions = generateCreateSiblingActions(newSiblingDescriptors, selection);
+
+ if (createChildMenuManager != null) {
+ populateManager(createChildMenuManager, createChildActions, null);
+ createChildMenuManager.update(true);
+ }
+ if (createSiblingMenuManager != null) {
+ populateManager(createSiblingMenuManager, createSiblingActions, null);
+ createSiblingMenuManager.update(true);
+ }
+ }
+
+ /**
+ * This generates a {@link org.eclipse.emf.edit.ui.action.CreateChildAction} for each object in <code>descriptors</code>,
+ * and returns the collection of these actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Collection<IAction> generateCreateChildActions(Collection<?> descriptors, ISelection selection) {
+ Collection<IAction> actions = new ArrayList<IAction>();
+ if (descriptors != null) {
+ for (Object descriptor : descriptors) {
+ actions.add(new CreateChildAction(activeEditorPart, selection, descriptor));
+ }
+ }
+ return actions;
+ }
+
+ /**
+ * This generates a {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} for each object in <code>descriptors</code>,
+ * and returns the collection of these actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Collection<IAction> generateCreateSiblingActions(Collection<?> descriptors, ISelection selection) {
+ Collection<IAction> actions = new ArrayList<IAction>();
+ if (descriptors != null) {
+ for (Object descriptor : descriptors) {
+ actions.add(new CreateSiblingAction(activeEditorPart, selection, descriptor));
+ }
+ }
+ return actions;
+ }
+
+ /**
+ * This populates the specified <code>manager</code> with {@link org.eclipse.jface.action.ActionContributionItem}s
+ * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection,
+ * by inserting them before the specified contribution item <code>contributionID</code>.
+ * If <code>contributionID</code> is <code>null</code>, they are simply added.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void populateManager(IContributionManager manager, Collection<? extends IAction> actions, String contributionID) {
+ if (actions != null) {
+ for (IAction action : actions) {
+ if (contributionID != null) {
+ manager.insertBefore(contributionID, action);
+ }
+ else {
+ manager.add(action);
+ }
+ }
+ }
+ }
+
+ /**
+ * This removes from the specified <code>manager</code> all {@link org.eclipse.jface.action.ActionContributionItem}s
+ * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void depopulateManager(IContributionManager manager, Collection<? extends IAction> actions) {
+ if (actions != null) {
+ IContributionItem[] items = manager.getItems();
+ for (int i = 0; i < items.length; i++) {
+ // Look into SubContributionItems
+ //
+ IContributionItem contributionItem = items[i];
+ while (contributionItem instanceof SubContributionItem) {
+ contributionItem = ((SubContributionItem) contributionItem).getInnerItem();
+ }
+
+ // Delete the ActionContributionItems with matching action.
+ //
+ if (contributionItem instanceof ActionContributionItem) {
+ IAction action = ((ActionContributionItem) contributionItem).getAction();
+ if (actions.contains(action)) {
+ manager.remove(contributionItem);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * This populates the pop-up menu before it appears.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void menuAboutToShow(IMenuManager menuManager) {
+ super.menuAboutToShow(menuManager);
+ MenuManager submenuManager = null;
+
+ submenuManager = new MenuManager(GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+ populateManager(submenuManager, createChildActions, null);
+ menuManager.insertBefore("edit", submenuManager);
+
+ submenuManager = new MenuManager(GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+ populateManager(submenuManager, createSiblingActions, null);
+ menuManager.insertBefore("edit", submenuManager);
+ }
+
+ /**
+ * This inserts global actions before the "additions-end" separator.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void addGlobalActions(IMenuManager menuManager) {
+ menuManager.insertAfter("additions-end", new Separator("ui-actions"));
+ menuManager.insertAfter("ui-actions", showPropertiesViewAction);
+
+ refreshViewerAction.setEnabled(refreshViewerAction.isEnabled());
+ menuManager.insertAfter("ui-actions", refreshViewerAction);
+
+ super.addGlobalActions(menuManager);
+ }
+
+ /**
+ * This ensures that a delete action will clean up all references to deleted objects.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected boolean removeAllReferencesOnDelete() {
+ return true;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/presentation/GeneratoroptionsmmEditor.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/presentation/GeneratoroptionsmmEditor.java
new file mode 100644
index 00000000000..61e6583d63e
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/presentation/GeneratoroptionsmmEditor.java
@@ -0,0 +1,1884 @@
+/**
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.presentation;
+
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.EventObject;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceChangeEvent;
+import org.eclipse.core.resources.IResourceChangeListener;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IResourceDeltaVisitor;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.CommandStack;
+import org.eclipse.emf.common.command.CommandStackListener;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.ui.MarkerHelper;
+import org.eclipse.emf.common.ui.ViewerPane;
+import org.eclipse.emf.common.ui.editor.ProblemEditorPart;
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.util.EContentAdapter;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor;
+import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter;
+import org.eclipse.emf.edit.ui.dnd.LocalTransfer;
+import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider;
+import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper;
+import org.eclipse.emf.edit.ui.util.EditUIUtil;
+import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IStatusLineManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+import org.eclipse.jface.util.LocalSelectionTransfer;
+import org.eclipse.jface.viewers.ColumnWeightData;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ListViewer;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.TableLayout;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.provider.GeneratoroptionsmmItemProviderAdapterFactory;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CTabFolder;
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.FileTransfer;
+import org.eclipse.swt.dnd.Transfer;
+import org.eclipse.swt.events.ControlAdapter;
+import org.eclipse.swt.events.ControlEvent;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeColumn;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IPartListener;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+import org.eclipse.ui.dialogs.SaveAsDialog;
+import org.eclipse.ui.ide.IGotoMarker;
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.MultiPageEditorPart;
+import org.eclipse.ui.views.contentoutline.ContentOutline;
+import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
+import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
+import org.eclipse.ui.views.properties.IPropertySheetPage;
+import org.eclipse.ui.views.properties.PropertySheet;
+import org.eclipse.ui.views.properties.PropertySheetPage;
+
+
+/**
+ * This is an example of a Generatoroptionsmm model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class GeneratoroptionsmmEditor
+ extends MultiPageEditorPart
+ implements IEditingDomainProvider, ISelectionProvider, IMenuListener, IViewerProvider, IGotoMarker {
+ /**
+ * This keeps track of the editing domain that is used to track all changes to the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected AdapterFactoryEditingDomain editingDomain;
+
+ /**
+ * This is the one adapter factory used for providing views of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ComposedAdapterFactory adapterFactory;
+
+ /**
+ * This is the content outline page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IContentOutlinePage contentOutlinePage;
+
+ /**
+ * This is a kludge...
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IStatusLineManager contentOutlineStatusLineManager;
+
+ /**
+ * This is the content outline page's viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected TreeViewer contentOutlineViewer;
+
+ /**
+ * This is the property sheet page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected List<PropertySheetPage> propertySheetPages = new ArrayList<PropertySheetPage>();
+
+ /**
+ * This is the viewer that shadows the selection in the content outline.
+ * The parent relation must be correctly defined for this to work.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected TreeViewer selectionViewer;
+
+ /**
+ * This inverts the roll of parent and child in the content provider and show parents as a tree.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected TreeViewer parentViewer;
+
+ /**
+ * This shows how a tree view works.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected TreeViewer treeViewer;
+
+ /**
+ * This shows how a list view works.
+ * A list viewer doesn't support icons.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ListViewer listViewer;
+
+ /**
+ * This shows how a table view works.
+ * A table can be used as a list with icons.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected TableViewer tableViewer;
+
+ /**
+ * This shows how a tree view with columns works.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected TreeViewer treeViewerWithColumns;
+
+ /**
+ * This keeps track of the active viewer pane, in the book.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ViewerPane currentViewerPane;
+
+ /**
+ * This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Viewer currentViewer;
+
+ /**
+ * This listens to which ever viewer is active.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ISelectionChangedListener selectionChangedListener;
+
+ /**
+ * This keeps track of all the {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are listening to this editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Collection<ISelectionChangedListener> selectionChangedListeners = new ArrayList<ISelectionChangedListener>();
+
+ /**
+ * This keeps track of the selection of the editor as a whole.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ISelection editorSelection = StructuredSelection.EMPTY;
+
+ /**
+ * The MarkerHelper is responsible for creating workspace resource markers presented
+ * in Eclipse's Problems View.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected MarkerHelper markerHelper = new EditUIMarkerHelper();
+
+ /**
+ * This listens for when the outline becomes active
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IPartListener partListener =
+ new IPartListener() {
+ @Override
+ public void partActivated(IWorkbenchPart p) {
+ if (p instanceof ContentOutline) {
+ if (((ContentOutline) p).getCurrentPage() == contentOutlinePage) {
+ getActionBarContributor().setActiveEditor(GeneratoroptionsmmEditor.this);
+
+ setCurrentViewer(contentOutlineViewer);
+ }
+ }
+ else if (p instanceof PropertySheet) {
+ if (propertySheetPages.contains(((PropertySheet) p).getCurrentPage())) {
+ getActionBarContributor().setActiveEditor(GeneratoroptionsmmEditor.this);
+ handleActivate();
+ }
+ }
+ else if (p == GeneratoroptionsmmEditor.this) {
+ handleActivate();
+ }
+ }
+
+ @Override
+ public void partBroughtToTop(IWorkbenchPart p) {
+ // Ignore.
+ }
+
+ @Override
+ public void partClosed(IWorkbenchPart p) {
+ // Ignore.
+ }
+
+ @Override
+ public void partDeactivated(IWorkbenchPart p) {
+ // Ignore.
+ }
+
+ @Override
+ public void partOpened(IWorkbenchPart p) {
+ // Ignore.
+ }
+ };
+
+ /**
+ * Resources that have been removed since last activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+ /**
+ * Resources that have been changed since last activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Collection<Resource> changedResources = new ArrayList<Resource>();
+
+ /**
+ * Resources that have been saved.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Collection<Resource> savedResources = new ArrayList<Resource>();
+
+ /**
+ * Map to store the diagnostic associated with a resource.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Map<Resource, Diagnostic> resourceToDiagnosticMap = new LinkedHashMap<Resource, Diagnostic>();
+
+ /**
+ * Controls whether the problem indication should be updated.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected boolean updateProblemIndication = true;
+
+ /**
+ * Adapter used to update the problem indication when resources are demanded loaded.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected EContentAdapter problemIndicationAdapter =
+ new EContentAdapter() {
+ @Override
+ public void notifyChanged(Notification notification) {
+ if (notification.getNotifier() instanceof Resource) {
+ switch (notification.getFeatureID(Resource.class)) {
+ case Resource.RESOURCE__IS_LOADED:
+ case Resource.RESOURCE__ERRORS:
+ case Resource.RESOURCE__WARNINGS: {
+ Resource resource = (Resource) notification.getNotifier();
+ Diagnostic diagnostic = analyzeResourceProblems(resource, null);
+ if (diagnostic.getSeverity() != Diagnostic.OK) {
+ resourceToDiagnosticMap.put(resource, diagnostic);
+ }
+ else {
+ resourceToDiagnosticMap.remove(resource);
+ }
+
+ if (updateProblemIndication) {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ @Override
+ public void run() {
+ updateProblemIndication();
+ }
+ });
+ }
+ break;
+ }
+ }
+ }
+ else {
+ super.notifyChanged(notification);
+ }
+ }
+
+ @Override
+ protected void setTarget(Resource target) {
+ basicSetTarget(target);
+ }
+
+ @Override
+ protected void unsetTarget(Resource target) {
+ basicUnsetTarget(target);
+ resourceToDiagnosticMap.remove(target);
+ if (updateProblemIndication) {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ @Override
+ public void run() {
+ updateProblemIndication();
+ }
+ });
+ }
+ }
+ };
+
+ /**
+ * This listens for workspace changes.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IResourceChangeListener resourceChangeListener =
+ new IResourceChangeListener() {
+ @Override
+ public void resourceChanged(IResourceChangeEvent event) {
+ IResourceDelta delta = event.getDelta();
+ try {
+ class ResourceDeltaVisitor implements IResourceDeltaVisitor {
+ protected ResourceSet resourceSet = editingDomain.getResourceSet();
+ protected Collection<Resource> changedResources = new ArrayList<Resource>();
+ protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+ @Override
+ public boolean visit(IResourceDelta delta) {
+ if (delta.getResource().getType() == IResource.FILE) {
+ if (delta.getKind() == IResourceDelta.REMOVED ||
+ delta.getKind() == IResourceDelta.CHANGED && delta.getFlags() != IResourceDelta.MARKERS) {
+ Resource resource = resourceSet.getResource(URI.createPlatformResourceURI(delta.getFullPath().toString(), true), false);
+ if (resource != null) {
+ if (delta.getKind() == IResourceDelta.REMOVED) {
+ removedResources.add(resource);
+ }
+ else if (!savedResources.remove(resource)) {
+ changedResources.add(resource);
+ }
+ }
+ }
+ return false;
+ }
+
+ return true;
+ }
+
+ public Collection<Resource> getChangedResources() {
+ return changedResources;
+ }
+
+ public Collection<Resource> getRemovedResources() {
+ return removedResources;
+ }
+ }
+
+ final ResourceDeltaVisitor visitor = new ResourceDeltaVisitor();
+ delta.accept(visitor);
+
+ if (!visitor.getRemovedResources().isEmpty()) {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ @Override
+ public void run() {
+ removedResources.addAll(visitor.getRemovedResources());
+ if (!isDirty()) {
+ getSite().getPage().closeEditor(GeneratoroptionsmmEditor.this, false);
+ }
+ }
+ });
+ }
+
+ if (!visitor.getChangedResources().isEmpty()) {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ @Override
+ public void run() {
+ changedResources.addAll(visitor.getChangedResources());
+ if (getSite().getPage().getActiveEditor() == GeneratoroptionsmmEditor.this) {
+ handleActivate();
+ }
+ }
+ });
+ }
+ }
+ catch (CoreException exception) {
+ GeneratoroptionsmmEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+ };
+
+ /**
+ * Handles activation of the editor or it's associated views.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void handleActivate() {
+ // Recompute the read only state.
+ //
+ if (editingDomain.getResourceToReadOnlyMap() != null) {
+ editingDomain.getResourceToReadOnlyMap().clear();
+
+ // Refresh any actions that may become enabled or disabled.
+ //
+ setSelection(getSelection());
+ }
+
+ if (!removedResources.isEmpty()) {
+ if (handleDirtyConflict()) {
+ getSite().getPage().closeEditor(GeneratoroptionsmmEditor.this, false);
+ }
+ else {
+ removedResources.clear();
+ changedResources.clear();
+ savedResources.clear();
+ }
+ }
+ else if (!changedResources.isEmpty()) {
+ changedResources.removeAll(savedResources);
+ handleChangedResources();
+ changedResources.clear();
+ savedResources.clear();
+ }
+ }
+
+ /**
+ * Handles what to do with changed resources on activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void handleChangedResources() {
+ if (!changedResources.isEmpty() && (!isDirty() || handleDirtyConflict())) {
+ if (isDirty()) {
+ changedResources.addAll(editingDomain.getResourceSet().getResources());
+ }
+ editingDomain.getCommandStack().flush();
+
+ updateProblemIndication = false;
+ for (Resource resource : changedResources) {
+ if (resource.isLoaded()) {
+ resource.unload();
+ try {
+ resource.load(Collections.EMPTY_MAP);
+ } catch (IOException exception) {
+ if (!resourceToDiagnosticMap.containsKey(resource)) {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ }
+ }
+ }
+
+ if (AdapterFactoryEditingDomain.isStale(editorSelection)) {
+ setSelection(StructuredSelection.EMPTY);
+ }
+
+ updateProblemIndication = true;
+ updateProblemIndication();
+ }
+ }
+
+ /**
+ * Updates the problems indication with the information described in the specified diagnostic.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void updateProblemIndication() {
+ if (updateProblemIndication) {
+ BasicDiagnostic diagnostic =
+ new BasicDiagnostic
+ (Diagnostic.OK,
+ "org.eclipse.papyrus.java.generator.metamodel.jdt.editor",
+ 0,
+ null,
+ new Object[] { editingDomain.getResourceSet() });
+ for (Diagnostic childDiagnostic : resourceToDiagnosticMap.values()) {
+ if (childDiagnostic.getSeverity() != Diagnostic.OK) {
+ diagnostic.add(childDiagnostic);
+ }
+ }
+
+ int lastEditorPage = getPageCount() - 1;
+ if (lastEditorPage >= 0 && getEditor(lastEditorPage) instanceof ProblemEditorPart) {
+ ((ProblemEditorPart) getEditor(lastEditorPage)).setDiagnostic(diagnostic);
+ if (diagnostic.getSeverity() != Diagnostic.OK) {
+ setActivePage(lastEditorPage);
+ }
+ }
+ else if (diagnostic.getSeverity() != Diagnostic.OK) {
+ ProblemEditorPart problemEditorPart = new ProblemEditorPart();
+ problemEditorPart.setDiagnostic(diagnostic);
+ problemEditorPart.setMarkerHelper(markerHelper);
+ try {
+ addPage(++lastEditorPage, problemEditorPart, getEditorInput());
+ setPageText(lastEditorPage, problemEditorPart.getPartName());
+ setActivePage(lastEditorPage);
+ showTabs();
+ } catch (PartInitException exception) {
+ GeneratoroptionsmmEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+
+ if (markerHelper.hasMarkers(editingDomain.getResourceSet())) {
+ markerHelper.deleteMarkers(editingDomain.getResourceSet());
+ if (diagnostic.getSeverity() != Diagnostic.OK) {
+ try {
+ markerHelper.createMarkers(diagnostic);
+ } catch (CoreException exception) {
+ GeneratoroptionsmmEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Shows a dialog that asks if conflicting changes should be discarded.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected boolean handleDirtyConflict() {
+ return MessageDialog.openQuestion
+ (getSite().getShell(),
+ getString("_UI_FileConflict_label"),
+ getString("_WARN_FileConflict"));
+ }
+
+ /**
+ * This creates a model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public GeneratoroptionsmmEditor() {
+ super();
+ initializeEditingDomain();
+ }
+
+ /**
+ * This sets up the editing domain for the model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void initializeEditingDomain() {
+ // Create an adapter factory that yields item providers.
+ //
+ adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
+
+ adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new GeneratoroptionsmmItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
+
+ // Create the command stack that will notify this editor as commands are executed.
+ //
+ BasicCommandStack commandStack = new BasicCommandStack();
+
+ // Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus.
+ //
+ commandStack.addCommandStackListener
+ (new CommandStackListener() {
+ @Override
+ public void commandStackChanged(final EventObject event) {
+ getContainer().getDisplay().asyncExec
+ (new Runnable() {
+ @Override
+ public void run() {
+ firePropertyChange(IEditorPart.PROP_DIRTY);
+
+ // Try to select the affected objects.
+ //
+ Command mostRecentCommand = ((CommandStack) event.getSource()).getMostRecentCommand();
+ if (mostRecentCommand != null) {
+ setSelectionToViewer(mostRecentCommand.getAffectedObjects());
+ }
+ for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext();) {
+ PropertySheetPage propertySheetPage = i.next();
+ if (propertySheetPage.getControl().isDisposed()) {
+ i.remove();
+ }
+ else {
+ propertySheetPage.refresh();
+ }
+ }
+ }
+ });
+ }
+ });
+
+ // Create the editing domain with a special command stack.
+ //
+ editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap<Resource, Boolean>());
+ }
+
+ /**
+ * This is here for the listener to be able to call it.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void firePropertyChange(int action) {
+ super.firePropertyChange(action);
+ }
+
+ /**
+ * This sets the selection into whichever viewer is active.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setSelectionToViewer(Collection<?> collection) {
+ final Collection<?> theSelection = collection;
+ // Make sure it's okay.
+ //
+ if (theSelection != null && !theSelection.isEmpty()) {
+ Runnable runnable =
+ new Runnable() {
+ @Override
+ public void run() {
+ // Try to select the items in the current content viewer of the editor.
+ //
+ if (currentViewer != null) {
+ currentViewer.setSelection(new StructuredSelection(theSelection.toArray()), true);
+ }
+ }
+ };
+ getSite().getShell().getDisplay().asyncExec(runnable);
+ }
+ }
+
+ /**
+ * This returns the editing domain as required by the {@link IEditingDomainProvider} interface.
+ * This is important for implementing the static methods of {@link AdapterFactoryEditingDomain} and for supporting {@link org.eclipse.emf.edit.ui.action.CommandAction}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EditingDomain getEditingDomain() {
+ return editingDomain;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public class ReverseAdapterFactoryContentProvider extends AdapterFactoryContentProvider {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public ReverseAdapterFactoryContentProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object[] getElements(Object object) {
+ Object parent = super.getParent(object);
+ return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object[] getChildren(Object object) {
+ Object parent = super.getParent(object);
+ return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean hasChildren(Object object) {
+ Object parent = super.getParent(object);
+ return parent != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object getParent(Object object) {
+ return null;
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setCurrentViewerPane(ViewerPane viewerPane) {
+ if (currentViewerPane != viewerPane) {
+ if (currentViewerPane != null) {
+ currentViewerPane.showFocus(false);
+ }
+ currentViewerPane = viewerPane;
+ }
+ setCurrentViewer(currentViewerPane.getViewer());
+ }
+
+ /**
+ * This makes sure that one content viewer, either for the current page or the outline view, if it has focus,
+ * is the current one.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setCurrentViewer(Viewer viewer) {
+ // If it is changing...
+ //
+ if (currentViewer != viewer) {
+ if (selectionChangedListener == null) {
+ // Create the listener on demand.
+ //
+ selectionChangedListener =
+ new ISelectionChangedListener() {
+ // This just notifies those things that are affected by the section.
+ //
+ @Override
+ public void selectionChanged(SelectionChangedEvent selectionChangedEvent) {
+ setSelection(selectionChangedEvent.getSelection());
+ }
+ };
+ }
+
+ // Stop listening to the old one.
+ //
+ if (currentViewer != null) {
+ currentViewer.removeSelectionChangedListener(selectionChangedListener);
+ }
+
+ // Start listening to the new one.
+ //
+ if (viewer != null) {
+ viewer.addSelectionChangedListener(selectionChangedListener);
+ }
+
+ // Remember it.
+ //
+ currentViewer = viewer;
+
+ // Set the editors selection based on the current viewer's selection.
+ //
+ setSelection(currentViewer == null ? StructuredSelection.EMPTY : currentViewer.getSelection());
+ }
+ }
+
+ /**
+ * This returns the viewer as required by the {@link IViewerProvider} interface.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Viewer getViewer() {
+ return currentViewer;
+ }
+
+ /**
+ * This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void createContextMenuFor(StructuredViewer viewer) {
+ MenuManager contextMenu = new MenuManager("#PopUp");
+ contextMenu.add(new Separator("additions"));
+ contextMenu.setRemoveAllWhenShown(true);
+ contextMenu.addMenuListener(this);
+ Menu menu = contextMenu.createContextMenu(viewer.getControl());
+ viewer.getControl().setMenu(menu);
+ getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));
+
+ int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
+ Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance(), LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance() };
+ viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
+ viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
+ }
+
+ /**
+ * This is the method called to load a resource into the editing domain's resource set based on the editor's input.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void createModel() {
+ URI resourceURI = EditUIUtil.getURI(getEditorInput());
+ Exception exception = null;
+ Resource resource = null;
+ try {
+ // Load the resource through the editing domain.
+ //
+ resource = editingDomain.getResourceSet().getResource(resourceURI, true);
+ } catch (Exception e) {
+ exception = e;
+ resource = editingDomain.getResourceSet().getResource(resourceURI, false);
+ }
+
+ Diagnostic diagnostic = analyzeResourceProblems(resource, exception);
+ if (diagnostic.getSeverity() != Diagnostic.OK) {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ editingDomain.getResourceSet().eAdapters().add(problemIndicationAdapter);
+ }
+
+ /**
+ * Returns a diagnostic describing the errors and warnings listed in the resource
+ * and the specified exception (if any).
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Diagnostic analyzeResourceProblems(Resource resource, Exception exception) {
+ if (!resource.getErrors().isEmpty() || !resource.getWarnings().isEmpty()) {
+ BasicDiagnostic basicDiagnostic =
+ new BasicDiagnostic
+ (Diagnostic.ERROR,
+ "org.eclipse.papyrus.java.generator.metamodel.jdt.editor",
+ 0,
+ getString("_UI_CreateModelError_message", resource.getURI()),
+ new Object[] { exception == null ? (Object) resource : exception });
+ basicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true));
+ return basicDiagnostic;
+ }
+ else if (exception != null) {
+ return new BasicDiagnostic(Diagnostic.ERROR,
+ "org.eclipse.papyrus.java.generator.metamodel.jdt.editor",
+ 0,
+ getString("_UI_CreateModelError_message", resource.getURI()),
+ new Object[] { exception });
+ }
+ else {
+ return Diagnostic.OK_INSTANCE;
+ }
+ }
+
+ /**
+ * This is the method used by the framework to install your own controls.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void createPages() {
+ // Creates the model from the editor input
+ //
+ createModel();
+
+ // Only creates the other pages if there is something that can be edited
+ //
+ if (!getEditingDomain().getResourceSet().getResources().isEmpty()) {
+ // Create a page for the selection tree view.
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), GeneratoroptionsmmEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ Tree tree = new Tree(composite, SWT.MULTI);
+ TreeViewer newTreeViewer = new TreeViewer(tree);
+ return newTreeViewer;
+ }
+
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+
+ selectionViewer = (TreeViewer) viewerPane.getViewer();
+ selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+
+ selectionViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+ selectionViewer.setInput(editingDomain.getResourceSet());
+ selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+ viewerPane.setTitle(editingDomain.getResourceSet());
+
+ new AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory);
+
+ createContextMenuFor(selectionViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_SelectionPage_label"));
+ }
+
+ // Create a page for the parent tree view.
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), GeneratoroptionsmmEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ Tree tree = new Tree(composite, SWT.MULTI);
+ TreeViewer newTreeViewer = new TreeViewer(tree);
+ return newTreeViewer;
+ }
+
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+
+ parentViewer = (TreeViewer) viewerPane.getViewer();
+ parentViewer.setAutoExpandLevel(30);
+ parentViewer.setContentProvider(new ReverseAdapterFactoryContentProvider(adapterFactory));
+ parentViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ createContextMenuFor(parentViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_ParentPage_label"));
+ }
+
+ // This is the page for the list viewer
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), GeneratoroptionsmmEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ return new ListViewer(composite);
+ }
+
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+ listViewer = (ListViewer) viewerPane.getViewer();
+ listViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ listViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ createContextMenuFor(listViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_ListPage_label"));
+ }
+
+ // This is the page for the tree viewer
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), GeneratoroptionsmmEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ return new TreeViewer(composite);
+ }
+
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+ treeViewer = (TreeViewer) viewerPane.getViewer();
+ treeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ new AdapterFactoryTreeEditor(treeViewer.getTree(), adapterFactory);
+
+ createContextMenuFor(treeViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_TreePage_label"));
+ }
+
+ // This is the page for the table viewer.
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), GeneratoroptionsmmEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ return new TableViewer(composite);
+ }
+
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+ tableViewer = (TableViewer) viewerPane.getViewer();
+
+ Table table = tableViewer.getTable();
+ TableLayout layout = new TableLayout();
+ table.setLayout(layout);
+ table.setHeaderVisible(true);
+ table.setLinesVisible(true);
+
+ TableColumn objectColumn = new TableColumn(table, SWT.NONE);
+ layout.addColumnData(new ColumnWeightData(3, 100, true));
+ objectColumn.setText(getString("_UI_ObjectColumn_label"));
+ objectColumn.setResizable(true);
+
+ TableColumn selfColumn = new TableColumn(table, SWT.NONE);
+ layout.addColumnData(new ColumnWeightData(2, 100, true));
+ selfColumn.setText(getString("_UI_SelfColumn_label"));
+ selfColumn.setResizable(true);
+
+ tableViewer.setColumnProperties(new String[] { "a", "b" });
+ tableViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ tableViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ createContextMenuFor(tableViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_TablePage_label"));
+ }
+
+ // This is the page for the table tree viewer.
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), GeneratoroptionsmmEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ return new TreeViewer(composite);
+ }
+
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+
+ treeViewerWithColumns = (TreeViewer) viewerPane.getViewer();
+
+ Tree tree = treeViewerWithColumns.getTree();
+ tree.setLayoutData(new FillLayout());
+ tree.setHeaderVisible(true);
+ tree.setLinesVisible(true);
+
+ TreeColumn objectColumn = new TreeColumn(tree, SWT.NONE);
+ objectColumn.setText(getString("_UI_ObjectColumn_label"));
+ objectColumn.setResizable(true);
+ objectColumn.setWidth(250);
+
+ TreeColumn selfColumn = new TreeColumn(tree, SWT.NONE);
+ selfColumn.setText(getString("_UI_SelfColumn_label"));
+ selfColumn.setResizable(true);
+ selfColumn.setWidth(200);
+
+ treeViewerWithColumns.setColumnProperties(new String[] { "a", "b" });
+ treeViewerWithColumns.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ treeViewerWithColumns.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ createContextMenuFor(treeViewerWithColumns);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_TreeWithColumnsPage_label"));
+ }
+
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ @Override
+ public void run() {
+ setActivePage(0);
+ }
+ });
+ }
+
+ // Ensures that this editor will only display the page's tab
+ // area if there are more than one page
+ //
+ getContainer().addControlListener
+ (new ControlAdapter() {
+ boolean guard = false;
+
+ @Override
+ public void controlResized(ControlEvent event) {
+ if (!guard) {
+ guard = true;
+ hideTabs();
+ guard = false;
+ }
+ }
+ });
+
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ @Override
+ public void run() {
+ updateProblemIndication();
+ }
+ });
+ }
+
+ /**
+ * If there is just one page in the multi-page editor part,
+ * this hides the single tab at the bottom.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void hideTabs() {
+ if (getPageCount() <= 1) {
+ setPageText(0, "");
+ if (getContainer() instanceof CTabFolder) {
+ ((CTabFolder) getContainer()).setTabHeight(1);
+ Point point = getContainer().getSize();
+ getContainer().setSize(point.x, point.y + 6);
+ }
+ }
+ }
+
+ /**
+ * If there is more than one page in the multi-page editor part,
+ * this shows the tabs at the bottom.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void showTabs() {
+ if (getPageCount() > 1) {
+ setPageText(0, getString("_UI_SelectionPage_label"));
+ if (getContainer() instanceof CTabFolder) {
+ ((CTabFolder) getContainer()).setTabHeight(SWT.DEFAULT);
+ Point point = getContainer().getSize();
+ getContainer().setSize(point.x, point.y - 6);
+ }
+ }
+ }
+
+ /**
+ * This is used to track the active viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void pageChange(int pageIndex) {
+ super.pageChange(pageIndex);
+
+ if (contentOutlinePage != null) {
+ handleContentOutlineSelection(contentOutlinePage.getSelection());
+ }
+ }
+
+ /**
+ * This is how the framework determines which interfaces we implement.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ @Override
+ public Object getAdapter(Class key) {
+ if (key.equals(IContentOutlinePage.class)) {
+ return showOutlineView() ? getContentOutlinePage() : null;
+ }
+ else if (key.equals(IPropertySheetPage.class)) {
+ return getPropertySheetPage();
+ }
+ else if (key.equals(IGotoMarker.class)) {
+ return this;
+ }
+ else {
+ return super.getAdapter(key);
+ }
+ }
+
+ /**
+ * This accesses a cached version of the content outliner.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public IContentOutlinePage getContentOutlinePage() {
+ if (contentOutlinePage == null) {
+ // The content outline is just a tree.
+ //
+ class MyContentOutlinePage extends ContentOutlinePage {
+ @Override
+ public void createControl(Composite parent) {
+ super.createControl(parent);
+ contentOutlineViewer = getTreeViewer();
+ contentOutlineViewer.addSelectionChangedListener(this);
+
+ // Set up the tree viewer.
+ //
+ contentOutlineViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ contentOutlineViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+ contentOutlineViewer.setInput(editingDomain.getResourceSet());
+
+ // Make sure our popups work.
+ //
+ createContextMenuFor(contentOutlineViewer);
+
+ if (!editingDomain.getResourceSet().getResources().isEmpty()) {
+ // Select the root object in the view.
+ //
+ contentOutlineViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+ }
+ }
+
+ @Override
+ public void makeContributions(IMenuManager menuManager, IToolBarManager toolBarManager, IStatusLineManager statusLineManager) {
+ super.makeContributions(menuManager, toolBarManager, statusLineManager);
+ contentOutlineStatusLineManager = statusLineManager;
+ }
+
+ @Override
+ public void setActionBars(IActionBars actionBars) {
+ super.setActionBars(actionBars);
+ getActionBarContributor().shareGlobalActions(this, actionBars);
+ }
+ }
+
+ contentOutlinePage = new MyContentOutlinePage();
+
+ // Listen to selection so that we can handle it is a special way.
+ //
+ contentOutlinePage.addSelectionChangedListener
+ (new ISelectionChangedListener() {
+ // This ensures that we handle selections correctly.
+ //
+ @Override
+ public void selectionChanged(SelectionChangedEvent event) {
+ handleContentOutlineSelection(event.getSelection());
+ }
+ });
+ }
+
+ return contentOutlinePage;
+ }
+
+ /**
+ * This accesses a cached version of the property sheet.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public IPropertySheetPage getPropertySheetPage() {
+ PropertySheetPage propertySheetPage =
+ new ExtendedPropertySheetPage(editingDomain) {
+ @Override
+ public void setSelectionToViewer(List<?> selection) {
+ GeneratoroptionsmmEditor.this.setSelectionToViewer(selection);
+ GeneratoroptionsmmEditor.this.setFocus();
+ }
+
+ @Override
+ public void setActionBars(IActionBars actionBars) {
+ super.setActionBars(actionBars);
+ getActionBarContributor().shareGlobalActions(this, actionBars);
+ }
+ };
+ propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
+ propertySheetPages.add(propertySheetPage);
+
+ return propertySheetPage;
+ }
+
+ /**
+ * This deals with how we want selection in the outliner to affect the other views.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void handleContentOutlineSelection(ISelection selection) {
+ if (currentViewerPane != null && !selection.isEmpty() && selection instanceof IStructuredSelection) {
+ Iterator<?> selectedElements = ((IStructuredSelection) selection).iterator();
+ if (selectedElements.hasNext()) {
+ // Get the first selected element.
+ //
+ Object selectedElement = selectedElements.next();
+
+ // If it's the selection viewer, then we want it to select the same selection as this selection.
+ //
+ if (currentViewerPane.getViewer() == selectionViewer) {
+ ArrayList<Object> selectionList = new ArrayList<Object>();
+ selectionList.add(selectedElement);
+ while (selectedElements.hasNext()) {
+ selectionList.add(selectedElements.next());
+ }
+
+ // Set the selection to the widget.
+ //
+ selectionViewer.setSelection(new StructuredSelection(selectionList));
+ }
+ else {
+ // Set the input to the widget.
+ //
+ if (currentViewerPane.getViewer().getInput() != selectedElement) {
+ currentViewerPane.getViewer().setInput(selectedElement);
+ currentViewerPane.setTitle(selectedElement);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * This is for implementing {@link IEditorPart} and simply tests the command stack.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isDirty() {
+ return ((BasicCommandStack) editingDomain.getCommandStack()).isSaveNeeded();
+ }
+
+ /**
+ * This is for implementing {@link IEditorPart} and simply saves the model file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void doSave(IProgressMonitor progressMonitor) {
+ // Save only resources that have actually changed.
+ //
+ final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
+ saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
+ saveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED);
+
+ // Do the work within an operation because this is a long running activity that modifies the workbench.
+ //
+ WorkspaceModifyOperation operation =
+ new WorkspaceModifyOperation() {
+ // This is the method that gets invoked when the operation runs.
+ //
+ @Override
+ public void execute(IProgressMonitor monitor) {
+ // Save the resources to the file system.
+ //
+ boolean first = true;
+ for (Resource resource : editingDomain.getResourceSet().getResources()) {
+ if ((first || !resource.getContents().isEmpty() || isPersisted(resource)) && !editingDomain.isReadOnly(resource)) {
+ try {
+ long timeStamp = resource.getTimeStamp();
+ resource.save(saveOptions);
+ if (resource.getTimeStamp() != timeStamp) {
+ savedResources.add(resource);
+ }
+ }
+ catch (Exception exception) {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ first = false;
+ }
+ }
+ }
+ };
+
+ updateProblemIndication = false;
+ try {
+ // This runs the options, and shows progress.
+ //
+ new ProgressMonitorDialog(getSite().getShell()).run(true, false, operation);
+
+ // Refresh the necessary state.
+ //
+ ((BasicCommandStack) editingDomain.getCommandStack()).saveIsDone();
+ firePropertyChange(IEditorPart.PROP_DIRTY);
+ } catch (Exception exception) {
+ // Something went wrong that shouldn't.
+ //
+ GeneratoroptionsmmEditorPlugin.INSTANCE.log(exception);
+ }
+ updateProblemIndication = true;
+ updateProblemIndication();
+ }
+
+ /**
+ * This returns whether something has been persisted to the URI of the specified resource.
+ * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected boolean isPersisted(Resource resource) {
+ boolean result = false;
+ try {
+ InputStream stream = editingDomain.getResourceSet().getURIConverter().createInputStream(resource.getURI());
+ if (stream != null) {
+ result = true;
+ stream.close();
+ }
+ } catch (IOException e) {
+ // Ignore
+ }
+ return result;
+ }
+
+ /**
+ * This always returns true because it is not currently supported.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isSaveAsAllowed() {
+ return true;
+ }
+
+ /**
+ * This also changes the editor's input.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void doSaveAs() {
+ SaveAsDialog saveAsDialog = new SaveAsDialog(getSite().getShell());
+ saveAsDialog.open();
+ IPath path = saveAsDialog.getResult();
+ if (path != null) {
+ IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
+ if (file != null) {
+ doSaveAs(URI.createPlatformResourceURI(file.getFullPath().toString(), true), new FileEditorInput(file));
+ }
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void doSaveAs(URI uri, IEditorInput editorInput) {
+ (editingDomain.getResourceSet().getResources().get(0)).setURI(uri);
+ setInputWithNotify(editorInput);
+ setPartName(editorInput.getName());
+ IProgressMonitor progressMonitor =
+ getActionBars().getStatusLineManager() != null ?
+ getActionBars().getStatusLineManager().getProgressMonitor() :
+ new NullProgressMonitor();
+ doSave(progressMonitor);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void gotoMarker(IMarker marker) {
+ List<?> targetObjects = markerHelper.getTargetObjects(editingDomain, marker);
+ if (!targetObjects.isEmpty()) {
+ setSelectionToViewer(targetObjects);
+ }
+ }
+
+ /**
+ * This is called during startup.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void init(IEditorSite site, IEditorInput editorInput) {
+ setSite(site);
+ setInputWithNotify(editorInput);
+ setPartName(editorInput.getName());
+ site.setSelectionProvider(this);
+ site.getPage().addPartListener(partListener);
+ ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setFocus() {
+ if (currentViewerPane != null) {
+ currentViewerPane.setFocus();
+ }
+ else {
+ getControl(getActivePage()).setFocus();
+ }
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void addSelectionChangedListener(ISelectionChangedListener listener) {
+ selectionChangedListeners.add(listener);
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void removeSelectionChangedListener(ISelectionChangedListener listener) {
+ selectionChangedListeners.remove(listener);
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to return this editor's overall selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public ISelection getSelection() {
+ return editorSelection;
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to set this editor's overall selection.
+ * Calling this result will notify the listeners.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setSelection(ISelection selection) {
+ editorSelection = selection;
+
+ for (ISelectionChangedListener listener : selectionChangedListeners) {
+ listener.selectionChanged(new SelectionChangedEvent(this, selection));
+ }
+ setStatusLineManager(selection);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setStatusLineManager(ISelection selection) {
+ IStatusLineManager statusLineManager = currentViewer != null && currentViewer == contentOutlineViewer ?
+ contentOutlineStatusLineManager : getActionBars().getStatusLineManager();
+
+ if (statusLineManager != null) {
+ if (selection instanceof IStructuredSelection) {
+ Collection<?> collection = ((IStructuredSelection) selection).toList();
+ switch (collection.size()) {
+ case 0: {
+ statusLineManager.setMessage(getString("_UI_NoObjectSelected"));
+ break;
+ }
+ case 1: {
+ String text = new AdapterFactoryItemDelegator(adapterFactory).getText(collection.iterator().next());
+ statusLineManager.setMessage(getString("_UI_SingleObjectSelected", text));
+ break;
+ }
+ default: {
+ statusLineManager.setMessage(getString("_UI_MultiObjectSelected", Integer.toString(collection.size())));
+ break;
+ }
+ }
+ }
+ else {
+ statusLineManager.setMessage("");
+ }
+ }
+ }
+
+ /**
+ * This looks up a string in the plugin's plugin.properties file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private static String getString(String key) {
+ return GeneratoroptionsmmEditorPlugin.INSTANCE.getString(key);
+ }
+
+ /**
+ * This looks up a string in plugin.properties, making a substitution.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private static String getString(String key, Object s1) {
+ return GeneratoroptionsmmEditorPlugin.INSTANCE.getString(key, new Object[] { s1 });
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.action.IMenuListener} to help fill the context menus with contributions from the Edit menu.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void menuAboutToShow(IMenuManager menuManager) {
+ ((IMenuListener) getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EditingDomainActionBarContributor getActionBarContributor() {
+ return (EditingDomainActionBarContributor) getEditorSite().getActionBarContributor();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public IActionBars getActionBars() {
+ return getActionBarContributor().getActionBars();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public AdapterFactory getAdapterFactory() {
+ return adapterFactory;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void dispose() {
+ updateProblemIndication = false;
+
+ ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener);
+
+ getSite().getPage().removePartListener(partListener);
+
+ adapterFactory.dispose();
+
+ if (getActionBarContributor().getActiveEditor() == this) {
+ getActionBarContributor().setActiveEditor(null);
+ }
+
+ for (PropertySheetPage propertySheetPage : propertySheetPages) {
+ propertySheetPage.dispose();
+ }
+
+ if (contentOutlinePage != null) {
+ contentOutlinePage.dispose();
+ }
+
+ super.dispose();
+ }
+
+ /**
+ * Returns whether the outline view should be presented to the user.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected boolean showOutlineView() {
+ return true;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/presentation/GeneratoroptionsmmEditorPlugin.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/presentation/GeneratoroptionsmmEditorPlugin.java
new file mode 100644
index 00000000000..b9c5d54c04b
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/presentation/GeneratoroptionsmmEditorPlugin.java
@@ -0,0 +1,96 @@
+/**
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.presentation;
+
+import org.eclipse.emf.common.EMFPlugin;
+import org.eclipse.emf.common.ui.EclipseUIPlugin;
+import org.eclipse.emf.common.util.ResourceLocator;
+
+/**
+ * This is the central singleton for the Generatoroptionsmm editor plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public final class GeneratoroptionsmmEditorPlugin extends EMFPlugin {
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static final GeneratoroptionsmmEditorPlugin INSTANCE = new GeneratoroptionsmmEditorPlugin();
+
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private static Implementation plugin;
+
+ /**
+ * Create the instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public GeneratoroptionsmmEditorPlugin() {
+ super(new ResourceLocator[] {
+ });
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the singleton instance.
+ * @generated
+ */
+ @Override
+ public ResourceLocator getPluginResourceLocator() {
+ return plugin;
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the singleton instance.
+ * @generated
+ */
+ public static Implementation getPlugin() {
+ return plugin;
+ }
+
+ /**
+ * The actual implementation of the Eclipse <b>Plugin</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static class Implementation extends EclipseUIPlugin {
+ /**
+ * Creates an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Implementation() {
+ super();
+
+ // Remember the static instance.
+ //
+ plugin = this;
+ }
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/presentation/GeneratoroptionsmmModelWizard.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/presentation/GeneratoroptionsmmModelWizard.java
new file mode 100644
index 00000000000..0eaf5624b1a
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/presentation/GeneratoroptionsmmModelWizard.java
@@ -0,0 +1,636 @@
+/**
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.presentation;
+
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.MissingResourceException;
+import java.util.StringTokenizer;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.emf.common.CommonPlugin;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.xmi.XMLResource;
+import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.GeneratoroptionsmmFactory;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.GeneratoroptionsmmPackage;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.provider.GeneratoroptionsmmEditPlugin;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.ISetSelectionTarget;
+
+
+/**
+ * This is a simple wizard for creating a new model file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class GeneratoroptionsmmModelWizard extends Wizard implements INewWizard {
+ /**
+ * The supported extensions for created files.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static final List<String> FILE_EXTENSIONS =
+ Collections.unmodifiableList(Arrays.asList(GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_GeneratoroptionsmmEditorFilenameExtensions").split("\\s*,\\s*")));
+
+ /**
+ * A formatted list of supported file extensions, suitable for display.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static final String FORMATTED_FILE_EXTENSIONS =
+ GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_GeneratoroptionsmmEditorFilenameExtensions").replaceAll("\\s*,\\s*", ", ");
+
+ /**
+ * This caches an instance of the model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected GeneratoroptionsmmPackage generatoroptionsmmPackage = GeneratoroptionsmmPackage.eINSTANCE;
+
+ /**
+ * This caches an instance of the model factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected GeneratoroptionsmmFactory generatoroptionsmmFactory = generatoroptionsmmPackage.getGeneratoroptionsmmFactory();
+
+ /**
+ * This is the file creation page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected GeneratoroptionsmmModelWizardNewFileCreationPage newFileCreationPage;
+
+ /**
+ * This is the initial object creation page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected GeneratoroptionsmmModelWizardInitialObjectCreationPage initialObjectCreationPage;
+
+ /**
+ * Remember the selection during initialization for populating the default container.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IStructuredSelection selection;
+
+ /**
+ * Remember the workbench during initialization.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IWorkbench workbench;
+
+ /**
+ * Caches the names of the types that can be created as the root object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected List<String> initialObjectNames;
+
+ /**
+ * This just records the information.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void init(IWorkbench workbench, IStructuredSelection selection) {
+ this.workbench = workbench;
+ this.selection = selection;
+ setWindowTitle(GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_Wizard_label"));
+ setDefaultPageImageDescriptor(ExtendedImageRegistry.INSTANCE.getImageDescriptor(GeneratoroptionsmmEditorPlugin.INSTANCE.getImage("full/wizban/NewGeneratoroptionsmm")));
+ }
+
+ /**
+ * Returns the names of the types that can be created as the root object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Collection<String> getInitialObjectNames() {
+ if (initialObjectNames == null) {
+ initialObjectNames = new ArrayList<String>();
+ for (EClassifier eClassifier : generatoroptionsmmPackage.getEClassifiers()) {
+ if (eClassifier instanceof EClass) {
+ EClass eClass = (EClass) eClassifier;
+ if (!eClass.isAbstract()) {
+ initialObjectNames.add(eClass.getName());
+ }
+ }
+ }
+ Collections.sort(initialObjectNames, CommonPlugin.INSTANCE.getComparator());
+ }
+ return initialObjectNames;
+ }
+
+ /**
+ * Create a new model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected EObject createInitialModel() {
+ EClass eClass = (EClass) generatoroptionsmmPackage.getEClassifier(initialObjectCreationPage.getInitialObjectName());
+ EObject rootObject = generatoroptionsmmFactory.create(eClass);
+ return rootObject;
+ }
+
+ /**
+ * Do the work after everything is specified.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean performFinish() {
+ try {
+ // Remember the file.
+ //
+ final IFile modelFile = getModelFile();
+
+ // Do the work within an operation.
+ //
+ WorkspaceModifyOperation operation =
+ new WorkspaceModifyOperation() {
+ @Override
+ protected void execute(IProgressMonitor progressMonitor) {
+ try {
+ // Create a resource set
+ //
+ ResourceSet resourceSet = new ResourceSetImpl();
+
+ // Get the URI of the model file.
+ //
+ URI fileURI = URI.createPlatformResourceURI(modelFile.getFullPath().toString(), true);
+
+ // Create a resource for this file.
+ //
+ Resource resource = resourceSet.createResource(fileURI);
+
+ // Add the initial model object to the contents.
+ //
+ EObject rootObject = createInitialModel();
+ if (rootObject != null) {
+ resource.getContents().add(rootObject);
+ }
+
+ // Save the contents of the resource to the file system.
+ //
+ Map<Object, Object> options = new HashMap<Object, Object>();
+ options.put(XMLResource.OPTION_ENCODING, initialObjectCreationPage.getEncoding());
+ resource.save(options);
+ }
+ catch (Exception exception) {
+ GeneratoroptionsmmEditorPlugin.INSTANCE.log(exception);
+ }
+ finally {
+ progressMonitor.done();
+ }
+ }
+ };
+
+ getContainer().run(false, false, operation);
+
+ // Select the new file resource in the current view.
+ //
+ IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
+ IWorkbenchPage page = workbenchWindow.getActivePage();
+ final IWorkbenchPart activePart = page.getActivePart();
+ if (activePart instanceof ISetSelectionTarget) {
+ final ISelection targetSelection = new StructuredSelection(modelFile);
+ getShell().getDisplay().asyncExec
+ (new Runnable() {
+ @Override
+ public void run() {
+ ((ISetSelectionTarget) activePart).selectReveal(targetSelection);
+ }
+ });
+ }
+
+ // Open an editor on the new file.
+ //
+ try {
+ page.openEditor
+ (new FileEditorInput(modelFile),
+ workbench.getEditorRegistry().getDefaultEditor(modelFile.getFullPath().toString()).getId());
+ } catch (PartInitException exception) {
+ MessageDialog.openError(workbenchWindow.getShell(), GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_OpenEditorError_label"), exception.getMessage());
+ return false;
+ }
+
+ return true;
+ } catch (Exception exception) {
+ GeneratoroptionsmmEditorPlugin.INSTANCE.log(exception);
+ return false;
+ }
+ }
+
+ /**
+ * This is the one page of the wizard.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public class GeneratoroptionsmmModelWizardNewFileCreationPage extends WizardNewFileCreationPage {
+ /**
+ * Pass in the selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public GeneratoroptionsmmModelWizardNewFileCreationPage(String pageId, IStructuredSelection selection) {
+ super(pageId, selection);
+ }
+
+ /**
+ * The framework calls this to see if the file is correct.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected boolean validatePage() {
+ if (super.validatePage()) {
+ String extension = new Path(getFileName()).getFileExtension();
+ if (extension == null || !FILE_EXTENSIONS.contains(extension)) {
+ String key = FILE_EXTENSIONS.size() > 1 ? "_WARN_FilenameExtensions" : "_WARN_FilenameExtension";
+ setErrorMessage(GeneratoroptionsmmEditorPlugin.INSTANCE.getString(key, new Object[] { FORMATTED_FILE_EXTENSIONS }));
+ return false;
+ }
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public IFile getModelFile() {
+ return ResourcesPlugin.getWorkspace().getRoot().getFile(getContainerFullPath().append(getFileName()));
+ }
+ }
+
+ /**
+ * This is the page where the type of object to create is selected.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public class GeneratoroptionsmmModelWizardInitialObjectCreationPage extends WizardPage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Combo initialObjectField;
+
+ /**
+ * @generated
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ protected List<String> encodings;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Combo encodingField;
+
+ /**
+ * Pass in the selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public GeneratoroptionsmmModelWizardInitialObjectCreationPage(String pageId) {
+ super(pageId);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void createControl(Composite parent) {
+ Composite composite = new Composite(parent, SWT.NONE);
+ {
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 1;
+ layout.verticalSpacing = 12;
+ composite.setLayout(layout);
+
+ GridData data = new GridData();
+ data.verticalAlignment = GridData.FILL;
+ data.grabExcessVerticalSpace = true;
+ data.horizontalAlignment = GridData.FILL;
+ composite.setLayoutData(data);
+ }
+
+ Label containerLabel = new Label(composite, SWT.LEFT);
+ {
+ containerLabel.setText(GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_ModelObject"));
+
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ containerLabel.setLayoutData(data);
+ }
+
+ initialObjectField = new Combo(composite, SWT.BORDER);
+ {
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ data.grabExcessHorizontalSpace = true;
+ initialObjectField.setLayoutData(data);
+ }
+
+ for (String objectName : getInitialObjectNames()) {
+ initialObjectField.add(getLabel(objectName));
+ }
+
+ if (initialObjectField.getItemCount() == 1) {
+ initialObjectField.select(0);
+ }
+ initialObjectField.addModifyListener(validator);
+
+ Label encodingLabel = new Label(composite, SWT.LEFT);
+ {
+ encodingLabel.setText(GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_XMLEncoding"));
+
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ encodingLabel.setLayoutData(data);
+ }
+ encodingField = new Combo(composite, SWT.BORDER);
+ {
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ data.grabExcessHorizontalSpace = true;
+ encodingField.setLayoutData(data);
+ }
+
+ for (String encoding : getEncodings()) {
+ encodingField.add(encoding);
+ }
+
+ encodingField.select(0);
+ encodingField.addModifyListener(validator);
+
+ setPageComplete(validatePage());
+ setControl(composite);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ModifyListener validator =
+ new ModifyListener() {
+ @Override
+ public void modifyText(ModifyEvent e) {
+ setPageComplete(validatePage());
+ }
+ };
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected boolean validatePage() {
+ return getInitialObjectName() != null && getEncodings().contains(encodingField.getText());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setVisible(boolean visible) {
+ super.setVisible(visible);
+ if (visible) {
+ if (initialObjectField.getItemCount() == 1) {
+ initialObjectField.clearSelection();
+ encodingField.setFocus();
+ }
+ else {
+ encodingField.clearSelection();
+ initialObjectField.setFocus();
+ }
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getInitialObjectName() {
+ String label = initialObjectField.getText();
+
+ for (String name : getInitialObjectNames()) {
+ if (getLabel(name).equals(label)) {
+ return name;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getEncoding() {
+ return encodingField.getText();
+ }
+
+ /**
+ * Returns the label for the specified type name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected String getLabel(String typeName) {
+ try {
+ return GeneratoroptionsmmEditPlugin.INSTANCE.getString("_UI_" + typeName + "_type");
+ } catch (MissingResourceException mre) {
+ GeneratoroptionsmmEditorPlugin.INSTANCE.log(mre);
+ }
+ return typeName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Collection<String> getEncodings() {
+ if (encodings == null) {
+ encodings = new ArrayList<String>();
+ for (StringTokenizer stringTokenizer = new StringTokenizer(GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_XMLEncodingChoices")); stringTokenizer.hasMoreTokens();) {
+ encodings.add(stringTokenizer.nextToken());
+ }
+ }
+ return encodings;
+ }
+ }
+
+ /**
+ * The framework calls this to create the contents of the wizard.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void addPages() {
+ // Create a page, set the title, and the initial model file name.
+ //
+ newFileCreationPage = new GeneratoroptionsmmModelWizardNewFileCreationPage("Whatever", selection);
+ newFileCreationPage.setTitle(GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_GeneratoroptionsmmModelWizard_label"));
+ newFileCreationPage.setDescription(GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_GeneratoroptionsmmModelWizard_description"));
+ newFileCreationPage.setFileName(GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_GeneratoroptionsmmEditorFilenameDefaultBase") + "." + FILE_EXTENSIONS.get(0));
+ addPage(newFileCreationPage);
+
+ // Try and get the resource selection to determine a current directory for the file dialog.
+ //
+ if (selection != null && !selection.isEmpty()) {
+ // Get the resource...
+ //
+ Object selectedElement = selection.iterator().next();
+ if (selectedElement instanceof IResource) {
+ // Get the resource parent, if its a file.
+ //
+ IResource selectedResource = (IResource) selectedElement;
+ if (selectedResource.getType() == IResource.FILE) {
+ selectedResource = selectedResource.getParent();
+ }
+
+ // This gives us a directory...
+ //
+ if (selectedResource instanceof IFolder || selectedResource instanceof IProject) {
+ // Set this for the container.
+ //
+ newFileCreationPage.setContainerFullPath(selectedResource.getFullPath());
+
+ // Make up a unique new name here.
+ //
+ String defaultModelBaseFilename = GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_GeneratoroptionsmmEditorFilenameDefaultBase");
+ String defaultModelFilenameExtension = FILE_EXTENSIONS.get(0);
+ String modelFilename = defaultModelBaseFilename + "." + defaultModelFilenameExtension;
+ for (int i = 1; ((IContainer) selectedResource).findMember(modelFilename) != null; ++i) {
+ modelFilename = defaultModelBaseFilename + i + "." + defaultModelFilenameExtension;
+ }
+ newFileCreationPage.setFileName(modelFilename);
+ }
+ }
+ }
+ initialObjectCreationPage = new GeneratoroptionsmmModelWizardInitialObjectCreationPage("Whatever2");
+ initialObjectCreationPage.setTitle(GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_GeneratoroptionsmmModelWizard_label"));
+ initialObjectCreationPage.setDescription(GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_Wizard_initial_object_description"));
+ addPage(initialObjectCreationPage);
+ }
+
+ /**
+ * Get the file from the page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public IFile getModelFile() {
+ return newFileCreationPage.getModelFile();
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/presentation/JdtmmActionBarContributor.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/presentation/JdtmmActionBarContributor.java
new file mode 100644
index 00000000000..e86713e1c5d
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/presentation/JdtmmActionBarContributor.java
@@ -0,0 +1,461 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.presentation;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+import org.eclipse.emf.edit.ui.action.ControlAction;
+import org.eclipse.emf.edit.ui.action.CreateChildAction;
+import org.eclipse.emf.edit.ui.action.CreateSiblingAction;
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+import org.eclipse.emf.edit.ui.action.LoadResourceAction;
+import org.eclipse.emf.edit.ui.action.ValidateAction;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.IContributionManager;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.action.SubContributionItem;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.PartInitException;
+
+/**
+ * This is the action bar contributor for the Jdtmm model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JdtmmActionBarContributor
+ extends EditingDomainActionBarContributor
+ implements ISelectionChangedListener {
+ /**
+ * This keeps track of the active editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IEditorPart activeEditorPart;
+
+ /**
+ * This keeps track of the current selection provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ISelectionProvider selectionProvider;
+
+ /**
+ * This action opens the Properties view.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IAction showPropertiesViewAction =
+ new Action(JdtmmEditorPlugin.INSTANCE.getString("_UI_ShowPropertiesView_menu_item")) {
+ @Override
+ public void run() {
+ try {
+ getPage().showView("org.eclipse.ui.views.PropertySheet");
+ }
+ catch (PartInitException exception) {
+ JdtmmEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+ };
+
+ /**
+ * This action refreshes the viewer of the current editor if the editor
+ * implements {@link org.eclipse.emf.common.ui.viewer.IViewerProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IAction refreshViewerAction =
+ new Action(JdtmmEditorPlugin.INSTANCE.getString("_UI_RefreshViewer_menu_item")) {
+ @Override
+ public boolean isEnabled() {
+ return activeEditorPart instanceof IViewerProvider;
+ }
+
+ @Override
+ public void run() {
+ if (activeEditorPart instanceof IViewerProvider) {
+ Viewer viewer = ((IViewerProvider) activeEditorPart).getViewer();
+ if (viewer != null) {
+ viewer.refresh();
+ }
+ }
+ }
+ };
+
+ /**
+ * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateChildAction} corresponding to each descriptor
+ * generated for the current selection by the item provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Collection<IAction> createChildActions;
+
+ /**
+ * This is the menu manager into which menu contribution items should be added for CreateChild actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IMenuManager createChildMenuManager;
+
+ /**
+ * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} corresponding to each descriptor
+ * generated for the current selection by the item provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Collection<IAction> createSiblingActions;
+
+ /**
+ * This is the menu manager into which menu contribution items should be added for CreateSibling actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IMenuManager createSiblingMenuManager;
+
+ /**
+ * This creates an instance of the contributor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JdtmmActionBarContributor() {
+ super(ADDITIONS_LAST_STYLE);
+ loadResourceAction = new LoadResourceAction();
+ validateAction = new ValidateAction();
+ controlAction = new ControlAction();
+ }
+
+ /**
+ * This adds Separators for editor additions to the tool bar.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void contributeToToolBar(IToolBarManager toolBarManager) {
+ toolBarManager.add(new Separator("jdtmm-settings"));
+ toolBarManager.add(new Separator("jdtmm-additions"));
+ }
+
+ /**
+ * This adds to the menu bar a menu and some separators for editor additions,
+ * as well as the sub-menus for object creation items.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void contributeToMenu(IMenuManager menuManager) {
+ super.contributeToMenu(menuManager);
+
+ IMenuManager submenuManager = new MenuManager(JdtmmEditorPlugin.INSTANCE.getString("_UI_JdtmmEditor_menu"), "org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmmMenuID");
+ menuManager.insertAfter("additions", submenuManager);
+ submenuManager.add(new Separator("settings"));
+ submenuManager.add(new Separator("actions"));
+ submenuManager.add(new Separator("additions"));
+ submenuManager.add(new Separator("additions-end"));
+
+ // Prepare for CreateChild item addition or removal.
+ //
+ createChildMenuManager = new MenuManager(JdtmmEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+ submenuManager.insertBefore("additions", createChildMenuManager);
+
+ // Prepare for CreateSibling item addition or removal.
+ //
+ createSiblingMenuManager = new MenuManager(JdtmmEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+ submenuManager.insertBefore("additions", createSiblingMenuManager);
+
+ // Force an update because Eclipse hides empty menus now.
+ //
+ submenuManager.addMenuListener
+ (new IMenuListener() {
+ @Override
+ public void menuAboutToShow(IMenuManager menuManager) {
+ menuManager.updateAll(true);
+ }
+ });
+
+ addGlobalActions(submenuManager);
+ }
+
+ /**
+ * When the active editor changes, this remembers the change and registers with it as a selection provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setActiveEditor(IEditorPart part) {
+ super.setActiveEditor(part);
+ activeEditorPart = part;
+
+ // Switch to the new selection provider.
+ //
+ if (selectionProvider != null) {
+ selectionProvider.removeSelectionChangedListener(this);
+ }
+ if (part == null) {
+ selectionProvider = null;
+ }
+ else {
+ selectionProvider = part.getSite().getSelectionProvider();
+ selectionProvider.addSelectionChangedListener(this);
+
+ // Fake a selection changed event to update the menus.
+ //
+ if (selectionProvider.getSelection() != null) {
+ selectionChanged(new SelectionChangedEvent(selectionProvider, selectionProvider.getSelection()));
+ }
+ }
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionChangedListener},
+ * handling {@link org.eclipse.jface.viewers.SelectionChangedEvent}s by querying for the children and siblings
+ * that can be added to the selected object and updating the menus accordingly.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void selectionChanged(SelectionChangedEvent event) {
+ // Remove any menu items for old selection.
+ //
+ if (createChildMenuManager != null) {
+ depopulateManager(createChildMenuManager, createChildActions);
+ }
+ if (createSiblingMenuManager != null) {
+ depopulateManager(createSiblingMenuManager, createSiblingActions);
+ }
+
+ // Query the new selection for appropriate new child/sibling descriptors
+ //
+ Collection<?> newChildDescriptors = null;
+ Collection<?> newSiblingDescriptors = null;
+
+ ISelection selection = event.getSelection();
+ if (selection instanceof IStructuredSelection && ((IStructuredSelection) selection).size() == 1) {
+ Object object = ((IStructuredSelection) selection).getFirstElement();
+
+ EditingDomain domain = ((IEditingDomainProvider) activeEditorPart).getEditingDomain();
+
+ newChildDescriptors = domain.getNewChildDescriptors(object, null);
+ newSiblingDescriptors = domain.getNewChildDescriptors(null, object);
+ }
+
+ // Generate actions for selection; populate and redraw the menus.
+ //
+ createChildActions = generateCreateChildActions(newChildDescriptors, selection);
+ createSiblingActions = generateCreateSiblingActions(newSiblingDescriptors, selection);
+
+ if (createChildMenuManager != null) {
+ populateManager(createChildMenuManager, createChildActions, null);
+ createChildMenuManager.update(true);
+ }
+ if (createSiblingMenuManager != null) {
+ populateManager(createSiblingMenuManager, createSiblingActions, null);
+ createSiblingMenuManager.update(true);
+ }
+ }
+
+ /**
+ * This generates a {@link org.eclipse.emf.edit.ui.action.CreateChildAction} for each object in <code>descriptors</code>,
+ * and returns the collection of these actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Collection<IAction> generateCreateChildActions(Collection<?> descriptors, ISelection selection) {
+ Collection<IAction> actions = new ArrayList<IAction>();
+ if (descriptors != null) {
+ for (Object descriptor : descriptors) {
+ actions.add(new CreateChildAction(activeEditorPart, selection, descriptor));
+ }
+ }
+ return actions;
+ }
+
+ /**
+ * This generates a {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} for each object in <code>descriptors</code>,
+ * and returns the collection of these actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Collection<IAction> generateCreateSiblingActions(Collection<?> descriptors, ISelection selection) {
+ Collection<IAction> actions = new ArrayList<IAction>();
+ if (descriptors != null) {
+ for (Object descriptor : descriptors) {
+ actions.add(new CreateSiblingAction(activeEditorPart, selection, descriptor));
+ }
+ }
+ return actions;
+ }
+
+ /**
+ * This populates the specified <code>manager</code> with {@link org.eclipse.jface.action.ActionContributionItem}s
+ * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection,
+ * by inserting them before the specified contribution item <code>contributionID</code>.
+ * If <code>contributionID</code> is <code>null</code>, they are simply added.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void populateManager(IContributionManager manager, Collection<? extends IAction> actions, String contributionID) {
+ if (actions != null) {
+ for (IAction action : actions) {
+ if (contributionID != null) {
+ manager.insertBefore(contributionID, action);
+ }
+ else {
+ manager.add(action);
+ }
+ }
+ }
+ }
+
+ /**
+ * This removes from the specified <code>manager</code> all {@link org.eclipse.jface.action.ActionContributionItem}s
+ * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void depopulateManager(IContributionManager manager, Collection<? extends IAction> actions) {
+ if (actions != null) {
+ IContributionItem[] items = manager.getItems();
+ for (int i = 0; i < items.length; i++) {
+ // Look into SubContributionItems
+ //
+ IContributionItem contributionItem = items[i];
+ while (contributionItem instanceof SubContributionItem) {
+ contributionItem = ((SubContributionItem) contributionItem).getInnerItem();
+ }
+
+ // Delete the ActionContributionItems with matching action.
+ //
+ if (contributionItem instanceof ActionContributionItem) {
+ IAction action = ((ActionContributionItem) contributionItem).getAction();
+ if (actions.contains(action)) {
+ manager.remove(contributionItem);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * This populates the pop-up menu before it appears.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void menuAboutToShow(IMenuManager menuManager) {
+ super.menuAboutToShow(menuManager);
+ MenuManager submenuManager = null;
+
+ submenuManager = new MenuManager(JdtmmEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+ populateManager(submenuManager, createChildActions, null);
+ menuManager.insertBefore("edit", submenuManager);
+
+ submenuManager = new MenuManager(JdtmmEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+ populateManager(submenuManager, createSiblingActions, null);
+ menuManager.insertBefore("edit", submenuManager);
+ }
+
+ /**
+ * This inserts global actions before the "additions-end" separator.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void addGlobalActions(IMenuManager menuManager) {
+ menuManager.insertAfter("additions-end", new Separator("ui-actions"));
+ menuManager.insertAfter("ui-actions", showPropertiesViewAction);
+
+ refreshViewerAction.setEnabled(refreshViewerAction.isEnabled());
+ menuManager.insertAfter("ui-actions", refreshViewerAction);
+
+ super.addGlobalActions(menuManager);
+ }
+
+ /**
+ * This ensures that a delete action will clean up all references to deleted objects.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected boolean removeAllReferencesOnDelete() {
+ return true;
+ }
+
+} \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/presentation/JdtmmEditor.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/presentation/JdtmmEditor.java
new file mode 100644
index 00000000000..fa9eb69be34
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/presentation/JdtmmEditor.java
@@ -0,0 +1,1897 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.presentation;
+
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.EventObject;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceChangeEvent;
+import org.eclipse.core.resources.IResourceChangeListener;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IResourceDeltaVisitor;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.CommandStack;
+import org.eclipse.emf.common.command.CommandStackListener;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.ui.MarkerHelper;
+import org.eclipse.emf.common.ui.ViewerPane;
+import org.eclipse.emf.common.ui.editor.ProblemEditorPart;
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EValidator;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.util.EContentAdapter;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor;
+import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter;
+import org.eclipse.emf.edit.ui.dnd.LocalTransfer;
+import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider;
+import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper;
+import org.eclipse.emf.edit.ui.util.EditUIUtil;
+import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IStatusLineManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+import org.eclipse.jface.viewers.ColumnWeightData;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ListViewer;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.TableLayout;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.provider.JdtmmItemProviderAdapterFactory;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CTabFolder;
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.Transfer;
+import org.eclipse.swt.events.ControlAdapter;
+import org.eclipse.swt.events.ControlEvent;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeColumn;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IPartListener;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+import org.eclipse.ui.dialogs.SaveAsDialog;
+import org.eclipse.ui.ide.IGotoMarker;
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.MultiPageEditorPart;
+import org.eclipse.ui.views.contentoutline.ContentOutline;
+import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
+import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
+import org.eclipse.ui.views.properties.IPropertySheetPage;
+import org.eclipse.ui.views.properties.PropertySheet;
+import org.eclipse.ui.views.properties.PropertySheetPage;
+
+
+/**
+ * This is an example of a Jdtmm model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JdtmmEditor
+ extends MultiPageEditorPart
+ implements IEditingDomainProvider, ISelectionProvider, IMenuListener, IViewerProvider, IGotoMarker {
+ /**
+ * This keeps track of the editing domain that is used to track all changes to the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected AdapterFactoryEditingDomain editingDomain;
+
+ /**
+ * This is the one adapter factory used for providing views of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ComposedAdapterFactory adapterFactory;
+
+ /**
+ * This is the content outline page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IContentOutlinePage contentOutlinePage;
+
+ /**
+ * This is a kludge...
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IStatusLineManager contentOutlineStatusLineManager;
+
+ /**
+ * This is the content outline page's viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected TreeViewer contentOutlineViewer;
+
+ /**
+ * This is the property sheet page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected PropertySheetPage propertySheetPage;
+
+ /**
+ * This is the viewer that shadows the selection in the content outline.
+ * The parent relation must be correctly defined for this to work.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected TreeViewer selectionViewer;
+
+ /**
+ * This inverts the roll of parent and child in the content provider and show parents as a tree.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected TreeViewer parentViewer;
+
+ /**
+ * This shows how a tree view works.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected TreeViewer treeViewer;
+
+ /**
+ * This shows how a list view works.
+ * A list viewer doesn't support icons.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ListViewer listViewer;
+
+ /**
+ * This shows how a table view works.
+ * A table can be used as a list with icons.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected TableViewer tableViewer;
+
+ /**
+ * This shows how a tree view with columns works.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected TreeViewer treeViewerWithColumns;
+
+ /**
+ * This keeps track of the active viewer pane, in the book.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ViewerPane currentViewerPane;
+
+ /**
+ * This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Viewer currentViewer;
+
+ /**
+ * This listens to which ever viewer is active.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ISelectionChangedListener selectionChangedListener;
+
+ /**
+ * This keeps track of all the {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are listening to this editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Collection<ISelectionChangedListener> selectionChangedListeners = new ArrayList<ISelectionChangedListener>();
+
+ /**
+ * This keeps track of the selection of the editor as a whole.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ISelection editorSelection = StructuredSelection.EMPTY;
+
+ /**
+ * The MarkerHelper is responsible for creating workspace resource markers presented
+ * in Eclipse's Problems View.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected MarkerHelper markerHelper = new EditUIMarkerHelper();
+
+ /**
+ * This listens for when the outline becomes active
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IPartListener partListener =
+ new IPartListener() {
+ @Override
+ public void partActivated(IWorkbenchPart p) {
+ if (p instanceof ContentOutline) {
+ if (((ContentOutline) p).getCurrentPage() == contentOutlinePage) {
+ getActionBarContributor().setActiveEditor(JdtmmEditor.this);
+
+ setCurrentViewer(contentOutlineViewer);
+ }
+ }
+ else if (p instanceof PropertySheet) {
+ if (((PropertySheet) p).getCurrentPage() == propertySheetPage) {
+ getActionBarContributor().setActiveEditor(JdtmmEditor.this);
+ handleActivate();
+ }
+ }
+ else if (p == JdtmmEditor.this) {
+ handleActivate();
+ }
+ }
+
+ @Override
+ public void partBroughtToTop(IWorkbenchPart p) {
+ // Ignore.
+ }
+
+ @Override
+ public void partClosed(IWorkbenchPart p) {
+ // Ignore.
+ }
+
+ @Override
+ public void partDeactivated(IWorkbenchPart p) {
+ // Ignore.
+ }
+
+ @Override
+ public void partOpened(IWorkbenchPart p) {
+ // Ignore.
+ }
+ };
+
+ /**
+ * Resources that have been removed since last activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+ /**
+ * Resources that have been changed since last activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Collection<Resource> changedResources = new ArrayList<Resource>();
+
+ /**
+ * Resources that have been saved.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Collection<Resource> savedResources = new ArrayList<Resource>();
+
+ /**
+ * Map to store the diagnostic associated with a resource.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Map<Resource, Diagnostic> resourceToDiagnosticMap = new LinkedHashMap<Resource, Diagnostic>();
+
+ /**
+ * Controls whether the problem indication should be updated.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected boolean updateProblemIndication = true;
+
+ /**
+ * Adapter used to update the problem indication when resources are demanded loaded.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected EContentAdapter problemIndicationAdapter =
+ new EContentAdapter() {
+ @Override
+ public void notifyChanged(Notification notification) {
+ if (notification.getNotifier() instanceof Resource) {
+ switch (notification.getFeatureID(Resource.class)) {
+ case Resource.RESOURCE__IS_LOADED:
+ case Resource.RESOURCE__ERRORS:
+ case Resource.RESOURCE__WARNINGS: {
+ Resource resource = (Resource) notification.getNotifier();
+ Diagnostic diagnostic = analyzeResourceProblems(resource, null);
+ if (diagnostic.getSeverity() != Diagnostic.OK) {
+ resourceToDiagnosticMap.put(resource, diagnostic);
+ }
+ else {
+ resourceToDiagnosticMap.remove(resource);
+ }
+
+ if (updateProblemIndication) {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ @Override
+ public void run() {
+ updateProblemIndication();
+ }
+ });
+ }
+ break;
+ }
+ }
+ }
+ else {
+ super.notifyChanged(notification);
+ }
+ }
+
+ @Override
+ protected void setTarget(Resource target) {
+ basicSetTarget(target);
+ }
+
+ @Override
+ protected void unsetTarget(Resource target) {
+ basicUnsetTarget(target);
+ }
+ };
+
+ /**
+ * This listens for workspace changes.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IResourceChangeListener resourceChangeListener =
+ new IResourceChangeListener() {
+ @Override
+ public void resourceChanged(IResourceChangeEvent event) {
+ IResourceDelta delta = event.getDelta();
+ try {
+ class ResourceDeltaVisitor implements IResourceDeltaVisitor {
+ protected ResourceSet resourceSet = editingDomain.getResourceSet();
+ protected Collection<Resource> changedResources = new ArrayList<Resource>();
+ protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+ @Override
+ public boolean visit(IResourceDelta delta) {
+ if (delta.getResource().getType() == IResource.FILE) {
+ if (delta.getKind() == IResourceDelta.REMOVED ||
+ delta.getKind() == IResourceDelta.CHANGED && delta.getFlags() != IResourceDelta.MARKERS) {
+ Resource resource = resourceSet.getResource(URI.createPlatformResourceURI(delta.getFullPath().toString(), true), false);
+ if (resource != null) {
+ if (delta.getKind() == IResourceDelta.REMOVED) {
+ removedResources.add(resource);
+ }
+ else if (!savedResources.remove(resource)) {
+ changedResources.add(resource);
+ }
+ }
+ }
+ }
+
+ return true;
+ }
+
+ public Collection<Resource> getChangedResources() {
+ return changedResources;
+ }
+
+ public Collection<Resource> getRemovedResources() {
+ return removedResources;
+ }
+ }
+
+ final ResourceDeltaVisitor visitor = new ResourceDeltaVisitor();
+ delta.accept(visitor);
+
+ if (!visitor.getRemovedResources().isEmpty()) {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ @Override
+ public void run() {
+ removedResources.addAll(visitor.getRemovedResources());
+ if (!isDirty()) {
+ getSite().getPage().closeEditor(JdtmmEditor.this, false);
+ }
+ }
+ });
+ }
+
+ if (!visitor.getChangedResources().isEmpty()) {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ @Override
+ public void run() {
+ changedResources.addAll(visitor.getChangedResources());
+ if (getSite().getPage().getActiveEditor() == JdtmmEditor.this) {
+ handleActivate();
+ }
+ }
+ });
+ }
+ }
+ catch (CoreException exception) {
+ JdtmmEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+ };
+
+ /**
+ * Handles activation of the editor or it's associated views.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void handleActivate() {
+ // Recompute the read only state.
+ //
+ if (editingDomain.getResourceToReadOnlyMap() != null) {
+ editingDomain.getResourceToReadOnlyMap().clear();
+
+ // Refresh any actions that may become enabled or disabled.
+ //
+ setSelection(getSelection());
+ }
+
+ if (!removedResources.isEmpty()) {
+ if (handleDirtyConflict()) {
+ getSite().getPage().closeEditor(JdtmmEditor.this, false);
+ }
+ else {
+ removedResources.clear();
+ changedResources.clear();
+ savedResources.clear();
+ }
+ }
+ else if (!changedResources.isEmpty()) {
+ changedResources.removeAll(savedResources);
+ handleChangedResources();
+ changedResources.clear();
+ savedResources.clear();
+ }
+ }
+
+ /**
+ * Handles what to do with changed resources on activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void handleChangedResources() {
+ if (!changedResources.isEmpty() && (!isDirty() || handleDirtyConflict())) {
+ if (isDirty()) {
+ changedResources.addAll(editingDomain.getResourceSet().getResources());
+ }
+ editingDomain.getCommandStack().flush();
+
+ updateProblemIndication = false;
+ for (Resource resource : changedResources) {
+ if (resource.isLoaded()) {
+ resource.unload();
+ try {
+ resource.load(Collections.EMPTY_MAP);
+ } catch (IOException exception) {
+ if (!resourceToDiagnosticMap.containsKey(resource)) {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ }
+ }
+ }
+
+ if (AdapterFactoryEditingDomain.isStale(editorSelection)) {
+ setSelection(StructuredSelection.EMPTY);
+ }
+
+ updateProblemIndication = true;
+ updateProblemIndication();
+ }
+ }
+
+ /**
+ * Updates the problems indication with the information described in the specified diagnostic.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void updateProblemIndication() {
+ if (updateProblemIndication) {
+ BasicDiagnostic diagnostic =
+ new BasicDiagnostic
+ (Diagnostic.OK,
+ "org.eclipse.papyrus.java.generator.metamodel.jdt.editor",
+ 0,
+ null,
+ new Object[] { editingDomain.getResourceSet() });
+ for (Diagnostic childDiagnostic : resourceToDiagnosticMap.values()) {
+ if (childDiagnostic.getSeverity() != Diagnostic.OK) {
+ diagnostic.add(childDiagnostic);
+ }
+ }
+
+ int lastEditorPage = getPageCount() - 1;
+ if (lastEditorPage >= 0 && getEditor(lastEditorPage) instanceof ProblemEditorPart) {
+ ((ProblemEditorPart) getEditor(lastEditorPage)).setDiagnostic(diagnostic);
+ if (diagnostic.getSeverity() != Diagnostic.OK) {
+ setActivePage(lastEditorPage);
+ }
+ }
+ else if (diagnostic.getSeverity() != Diagnostic.OK) {
+ ProblemEditorPart problemEditorPart = new ProblemEditorPart();
+ problemEditorPart.setDiagnostic(diagnostic);
+ problemEditorPart.setMarkerHelper(markerHelper);
+ try {
+ addPage(++lastEditorPage, problemEditorPart, getEditorInput());
+ setPageText(lastEditorPage, problemEditorPart.getPartName());
+ setActivePage(lastEditorPage);
+ showTabs();
+ } catch (PartInitException exception) {
+ JdtmmEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+
+ if (markerHelper.hasMarkers(editingDomain.getResourceSet())) {
+ markerHelper.deleteMarkers(editingDomain.getResourceSet());
+ if (diagnostic.getSeverity() != Diagnostic.OK) {
+ try {
+ markerHelper.createMarkers(diagnostic);
+ } catch (CoreException exception) {
+ JdtmmEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Shows a dialog that asks if conflicting changes should be discarded.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected boolean handleDirtyConflict() {
+ return MessageDialog.openQuestion
+ (getSite().getShell(),
+ getString("_UI_FileConflict_label"),
+ getString("_WARN_FileConflict"));
+ }
+
+ /**
+ * This creates a model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JdtmmEditor() {
+ super();
+ initializeEditingDomain();
+ }
+
+ /**
+ * This sets up the editing domain for the model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void initializeEditingDomain() {
+ // Create an adapter factory that yields item providers.
+ //
+ adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
+
+ adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new JdtmmItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
+
+ // Create the command stack that will notify this editor as commands are executed.
+ //
+ BasicCommandStack commandStack = new BasicCommandStack();
+
+ // Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus.
+ //
+ commandStack.addCommandStackListener
+ (new CommandStackListener() {
+ @Override
+ public void commandStackChanged(final EventObject event) {
+ getContainer().getDisplay().asyncExec
+ (new Runnable() {
+ @Override
+ public void run() {
+ firePropertyChange(IEditorPart.PROP_DIRTY);
+
+ // Try to select the affected objects.
+ //
+ Command mostRecentCommand = ((CommandStack) event.getSource()).getMostRecentCommand();
+ if (mostRecentCommand != null) {
+ setSelectionToViewer(mostRecentCommand.getAffectedObjects());
+ }
+ if (propertySheetPage != null && !propertySheetPage.getControl().isDisposed()) {
+ propertySheetPage.refresh();
+ }
+ }
+ });
+ }
+ });
+
+ // Create the editing domain with a special command stack.
+ //
+ editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap<Resource, Boolean>());
+ }
+
+ /**
+ * This is here for the listener to be able to call it.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void firePropertyChange(int action) {
+ super.firePropertyChange(action);
+ }
+
+ /**
+ * This sets the selection into whichever viewer is active.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setSelectionToViewer(Collection<?> collection) {
+ final Collection<?> theSelection = collection;
+ // Make sure it's okay.
+ //
+ if (theSelection != null && !theSelection.isEmpty()) {
+ Runnable runnable =
+ new Runnable() {
+ @Override
+ public void run() {
+ // Try to select the items in the current content viewer of the editor.
+ //
+ if (currentViewer != null) {
+ currentViewer.setSelection(new StructuredSelection(theSelection.toArray()), true);
+ }
+ }
+ };
+ getSite().getShell().getDisplay().asyncExec(runnable);
+ }
+ }
+
+ /**
+ * This returns the editing domain as required by the {@link IEditingDomainProvider} interface.
+ * This is important for implementing the static methods of {@link AdapterFactoryEditingDomain} and for supporting {@link org.eclipse.emf.edit.ui.action.CommandAction}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EditingDomain getEditingDomain() {
+ return editingDomain;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public class ReverseAdapterFactoryContentProvider extends AdapterFactoryContentProvider {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public ReverseAdapterFactoryContentProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object[] getElements(Object object) {
+ Object parent = super.getParent(object);
+ return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object[] getChildren(Object object) {
+ Object parent = super.getParent(object);
+ return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean hasChildren(Object object) {
+ Object parent = super.getParent(object);
+ return parent != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object getParent(Object object) {
+ return null;
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setCurrentViewerPane(ViewerPane viewerPane) {
+ if (currentViewerPane != viewerPane) {
+ if (currentViewerPane != null) {
+ currentViewerPane.showFocus(false);
+ }
+ currentViewerPane = viewerPane;
+ }
+ setCurrentViewer(currentViewerPane.getViewer());
+ }
+
+ /**
+ * This makes sure that one content viewer, either for the current page or the outline view, if it has focus,
+ * is the current one.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setCurrentViewer(Viewer viewer) {
+ // If it is changing...
+ //
+ if (currentViewer != viewer) {
+ if (selectionChangedListener == null) {
+ // Create the listener on demand.
+ //
+ selectionChangedListener =
+ new ISelectionChangedListener() {
+ // This just notifies those things that are affected by the section.
+ //
+ @Override
+ public void selectionChanged(SelectionChangedEvent selectionChangedEvent) {
+ setSelection(selectionChangedEvent.getSelection());
+ }
+ };
+ }
+
+ // Stop listening to the old one.
+ //
+ if (currentViewer != null) {
+ currentViewer.removeSelectionChangedListener(selectionChangedListener);
+ }
+
+ // Start listening to the new one.
+ //
+ if (viewer != null) {
+ viewer.addSelectionChangedListener(selectionChangedListener);
+ }
+
+ // Remember it.
+ //
+ currentViewer = viewer;
+
+ // Set the editors selection based on the current viewer's selection.
+ //
+ setSelection(currentViewer == null ? StructuredSelection.EMPTY : currentViewer.getSelection());
+ }
+ }
+
+ /**
+ * This returns the viewer as required by the {@link IViewerProvider} interface.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Viewer getViewer() {
+ return currentViewer;
+ }
+
+ /**
+ * This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void createContextMenuFor(StructuredViewer viewer) {
+ MenuManager contextMenu = new MenuManager("#PopUp");
+ contextMenu.add(new Separator("additions"));
+ contextMenu.setRemoveAllWhenShown(true);
+ contextMenu.addMenuListener(this);
+ Menu menu = contextMenu.createContextMenu(viewer.getControl());
+ viewer.getControl().setMenu(menu);
+ getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));
+
+ int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
+ Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance() };
+ viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
+ viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
+ }
+
+ /**
+ * This is the method called to load a resource into the editing domain's resource set based on the editor's input.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void createModel() {
+ URI resourceURI = EditUIUtil.getURI(getEditorInput());
+ Exception exception = null;
+ Resource resource = null;
+ try {
+ // Load the resource through the editing domain.
+ //
+ resource = editingDomain.getResourceSet().getResource(resourceURI, true);
+ } catch (Exception e) {
+ exception = e;
+ resource = editingDomain.getResourceSet().getResource(resourceURI, false);
+ }
+
+ Diagnostic diagnostic = analyzeResourceProblems(resource, exception);
+ if (diagnostic.getSeverity() != Diagnostic.OK) {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ editingDomain.getResourceSet().eAdapters().add(problemIndicationAdapter);
+ }
+
+ /**
+ * Returns a diagnostic describing the errors and warnings listed in the resource
+ * and the specified exception (if any).
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Diagnostic analyzeResourceProblems(Resource resource, Exception exception) {
+ if (!resource.getErrors().isEmpty() || !resource.getWarnings().isEmpty()) {
+ BasicDiagnostic basicDiagnostic =
+ new BasicDiagnostic
+ (Diagnostic.ERROR,
+ "org.eclipse.papyrus.java.generator.metamodel.jdt.editor",
+ 0,
+ getString("_UI_CreateModelError_message", resource.getURI()),
+ new Object[] { exception == null ? (Object) resource : exception });
+ basicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true));
+ return basicDiagnostic;
+ }
+ else if (exception != null) {
+ return new BasicDiagnostic(Diagnostic.ERROR,
+ "org.eclipse.papyrus.java.generator.metamodel.jdt.editor",
+ 0,
+ getString("_UI_CreateModelError_message", resource.getURI()),
+ new Object[] { exception });
+ }
+ else {
+ return Diagnostic.OK_INSTANCE;
+ }
+ }
+
+ /**
+ * This is the method used by the framework to install your own controls.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void createPages() {
+ // Creates the model from the editor input
+ //
+ createModel();
+
+ // Only creates the other pages if there is something that can be edited
+ //
+ if (!getEditingDomain().getResourceSet().getResources().isEmpty()) {
+ // Create a page for the selection tree view.
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), JdtmmEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ Tree tree = new Tree(composite, SWT.MULTI);
+ TreeViewer newTreeViewer = new TreeViewer(tree);
+ return newTreeViewer;
+ }
+
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+
+ selectionViewer = (TreeViewer) viewerPane.getViewer();
+ selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+
+ selectionViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+ selectionViewer.setInput(editingDomain.getResourceSet());
+ selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+ viewerPane.setTitle(editingDomain.getResourceSet());
+
+ new AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory);
+
+ createContextMenuFor(selectionViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_SelectionPage_label"));
+ }
+
+ // Create a page for the parent tree view.
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), JdtmmEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ Tree tree = new Tree(composite, SWT.MULTI);
+ TreeViewer newTreeViewer = new TreeViewer(tree);
+ return newTreeViewer;
+ }
+
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+
+ parentViewer = (TreeViewer) viewerPane.getViewer();
+ parentViewer.setAutoExpandLevel(30);
+ parentViewer.setContentProvider(new ReverseAdapterFactoryContentProvider(adapterFactory));
+ parentViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ createContextMenuFor(parentViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_ParentPage_label"));
+ }
+
+ // This is the page for the list viewer
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), JdtmmEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ return new ListViewer(composite);
+ }
+
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+ listViewer = (ListViewer) viewerPane.getViewer();
+ listViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ listViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ createContextMenuFor(listViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_ListPage_label"));
+ }
+
+ // This is the page for the tree viewer
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), JdtmmEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ return new TreeViewer(composite);
+ }
+
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+ treeViewer = (TreeViewer) viewerPane.getViewer();
+ treeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ new AdapterFactoryTreeEditor(treeViewer.getTree(), adapterFactory);
+
+ createContextMenuFor(treeViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_TreePage_label"));
+ }
+
+ // This is the page for the table viewer.
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), JdtmmEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ return new TableViewer(composite);
+ }
+
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+ tableViewer = (TableViewer) viewerPane.getViewer();
+
+ Table table = tableViewer.getTable();
+ TableLayout layout = new TableLayout();
+ table.setLayout(layout);
+ table.setHeaderVisible(true);
+ table.setLinesVisible(true);
+
+ TableColumn objectColumn = new TableColumn(table, SWT.NONE);
+ layout.addColumnData(new ColumnWeightData(3, 100, true));
+ objectColumn.setText(getString("_UI_ObjectColumn_label"));
+ objectColumn.setResizable(true);
+
+ TableColumn selfColumn = new TableColumn(table, SWT.NONE);
+ layout.addColumnData(new ColumnWeightData(2, 100, true));
+ selfColumn.setText(getString("_UI_SelfColumn_label"));
+ selfColumn.setResizable(true);
+
+ tableViewer.setColumnProperties(new String[] { "a", "b" });
+ tableViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ tableViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ createContextMenuFor(tableViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_TablePage_label"));
+ }
+
+ // This is the page for the table tree viewer.
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), JdtmmEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ return new TreeViewer(composite);
+ }
+
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+
+ treeViewerWithColumns = (TreeViewer) viewerPane.getViewer();
+
+ Tree tree = treeViewerWithColumns.getTree();
+ tree.setLayoutData(new FillLayout());
+ tree.setHeaderVisible(true);
+ tree.setLinesVisible(true);
+
+ TreeColumn objectColumn = new TreeColumn(tree, SWT.NONE);
+ objectColumn.setText(getString("_UI_ObjectColumn_label"));
+ objectColumn.setResizable(true);
+ objectColumn.setWidth(250);
+
+ TreeColumn selfColumn = new TreeColumn(tree, SWT.NONE);
+ selfColumn.setText(getString("_UI_SelfColumn_label"));
+ selfColumn.setResizable(true);
+ selfColumn.setWidth(200);
+
+ treeViewerWithColumns.setColumnProperties(new String[] { "a", "b" });
+ treeViewerWithColumns.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ treeViewerWithColumns.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ createContextMenuFor(treeViewerWithColumns);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_TreeWithColumnsPage_label"));
+ }
+
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ @Override
+ public void run() {
+ setActivePage(0);
+ }
+ });
+ }
+
+ // Ensures that this editor will only display the page's tab
+ // area if there are more than one page
+ //
+ getContainer().addControlListener
+ (new ControlAdapter() {
+ boolean guard = false;
+
+ @Override
+ public void controlResized(ControlEvent event) {
+ if (!guard) {
+ guard = true;
+ hideTabs();
+ guard = false;
+ }
+ }
+ });
+
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ @Override
+ public void run() {
+ updateProblemIndication();
+ }
+ });
+ }
+
+ /**
+ * If there is just one page in the multi-page editor part,
+ * this hides the single tab at the bottom.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void hideTabs() {
+ if (getPageCount() <= 1) {
+ setPageText(0, "");
+ if (getContainer() instanceof CTabFolder) {
+ ((CTabFolder) getContainer()).setTabHeight(1);
+ Point point = getContainer().getSize();
+ getContainer().setSize(point.x, point.y + 6);
+ }
+ }
+ }
+
+ /**
+ * If there is more than one page in the multi-page editor part,
+ * this shows the tabs at the bottom.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void showTabs() {
+ if (getPageCount() > 1) {
+ setPageText(0, getString("_UI_SelectionPage_label"));
+ if (getContainer() instanceof CTabFolder) {
+ ((CTabFolder) getContainer()).setTabHeight(SWT.DEFAULT);
+ Point point = getContainer().getSize();
+ getContainer().setSize(point.x, point.y - 6);
+ }
+ }
+ }
+
+ /**
+ * This is used to track the active viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void pageChange(int pageIndex) {
+ super.pageChange(pageIndex);
+
+ if (contentOutlinePage != null) {
+ handleContentOutlineSelection(contentOutlinePage.getSelection());
+ }
+ }
+
+ /**
+ * This is how the framework determines which interfaces we implement.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ @Override
+ public Object getAdapter(Class key) {
+ if (key.equals(IContentOutlinePage.class)) {
+ return showOutlineView() ? getContentOutlinePage() : null;
+ }
+ else if (key.equals(IPropertySheetPage.class)) {
+ return getPropertySheetPage();
+ }
+ else if (key.equals(IGotoMarker.class)) {
+ return this;
+ }
+ else {
+ return super.getAdapter(key);
+ }
+ }
+
+ /**
+ * This accesses a cached version of the content outliner.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public IContentOutlinePage getContentOutlinePage() {
+ if (contentOutlinePage == null) {
+ // The content outline is just a tree.
+ //
+ class MyContentOutlinePage extends ContentOutlinePage {
+ @Override
+ public void createControl(Composite parent) {
+ super.createControl(parent);
+ contentOutlineViewer = getTreeViewer();
+ contentOutlineViewer.addSelectionChangedListener(this);
+
+ // Set up the tree viewer.
+ //
+ contentOutlineViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ contentOutlineViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+ contentOutlineViewer.setInput(editingDomain.getResourceSet());
+
+ // Make sure our popups work.
+ //
+ createContextMenuFor(contentOutlineViewer);
+
+ if (!editingDomain.getResourceSet().getResources().isEmpty()) {
+ // Select the root object in the view.
+ //
+ contentOutlineViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+ }
+ }
+
+ @Override
+ public void makeContributions(IMenuManager menuManager, IToolBarManager toolBarManager, IStatusLineManager statusLineManager) {
+ super.makeContributions(menuManager, toolBarManager, statusLineManager);
+ contentOutlineStatusLineManager = statusLineManager;
+ }
+
+ @Override
+ public void setActionBars(IActionBars actionBars) {
+ super.setActionBars(actionBars);
+ getActionBarContributor().shareGlobalActions(this, actionBars);
+ }
+ }
+
+ contentOutlinePage = new MyContentOutlinePage();
+
+ // Listen to selection so that we can handle it is a special way.
+ //
+ contentOutlinePage.addSelectionChangedListener
+ (new ISelectionChangedListener() {
+ // This ensures that we handle selections correctly.
+ //
+ @Override
+ public void selectionChanged(SelectionChangedEvent event) {
+ handleContentOutlineSelection(event.getSelection());
+ }
+ });
+ }
+
+ return contentOutlinePage;
+ }
+
+ /**
+ * This accesses a cached version of the property sheet.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public IPropertySheetPage getPropertySheetPage() {
+ if (propertySheetPage == null) {
+ propertySheetPage =
+ new ExtendedPropertySheetPage(editingDomain) {
+ @Override
+ public void setSelectionToViewer(List<?> selection) {
+ JdtmmEditor.this.setSelectionToViewer(selection);
+ JdtmmEditor.this.setFocus();
+ }
+
+ @Override
+ public void setActionBars(IActionBars actionBars) {
+ super.setActionBars(actionBars);
+ getActionBarContributor().shareGlobalActions(this, actionBars);
+ }
+ };
+ propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
+ }
+
+ return propertySheetPage;
+ }
+
+ /**
+ * This deals with how we want selection in the outliner to affect the other views.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void handleContentOutlineSelection(ISelection selection) {
+ if (currentViewerPane != null && !selection.isEmpty() && selection instanceof IStructuredSelection) {
+ Iterator<?> selectedElements = ((IStructuredSelection) selection).iterator();
+ if (selectedElements.hasNext()) {
+ // Get the first selected element.
+ //
+ Object selectedElement = selectedElements.next();
+
+ // If it's the selection viewer, then we want it to select the same selection as this selection.
+ //
+ if (currentViewerPane.getViewer() == selectionViewer) {
+ ArrayList<Object> selectionList = new ArrayList<Object>();
+ selectionList.add(selectedElement);
+ while (selectedElements.hasNext()) {
+ selectionList.add(selectedElements.next());
+ }
+
+ // Set the selection to the widget.
+ //
+ selectionViewer.setSelection(new StructuredSelection(selectionList));
+ }
+ else {
+ // Set the input to the widget.
+ //
+ if (currentViewerPane.getViewer().getInput() != selectedElement) {
+ currentViewerPane.getViewer().setInput(selectedElement);
+ currentViewerPane.setTitle(selectedElement);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * This is for implementing {@link IEditorPart} and simply tests the command stack.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isDirty() {
+ return ((BasicCommandStack) editingDomain.getCommandStack()).isSaveNeeded();
+ }
+
+ /**
+ * This is for implementing {@link IEditorPart} and simply saves the model file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void doSave(IProgressMonitor progressMonitor) {
+ // Save only resources that have actually changed.
+ //
+ final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
+ saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
+
+ // Do the work within an operation because this is a long running activity that modifies the workbench.
+ //
+ WorkspaceModifyOperation operation =
+ new WorkspaceModifyOperation() {
+ // This is the method that gets invoked when the operation runs.
+ //
+ @Override
+ public void execute(IProgressMonitor monitor) {
+ // Save the resources to the file system.
+ //
+ boolean first = true;
+ for (Resource resource : editingDomain.getResourceSet().getResources()) {
+ if ((first || !resource.getContents().isEmpty() || isPersisted(resource)) && !editingDomain.isReadOnly(resource)) {
+ try {
+ long timeStamp = resource.getTimeStamp();
+ resource.save(saveOptions);
+ if (resource.getTimeStamp() != timeStamp) {
+ savedResources.add(resource);
+ }
+ }
+ catch (Exception exception) {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ first = false;
+ }
+ }
+ }
+ };
+
+ updateProblemIndication = false;
+ try {
+ // This runs the options, and shows progress.
+ //
+ new ProgressMonitorDialog(getSite().getShell()).run(true, false, operation);
+
+ // Refresh the necessary state.
+ //
+ ((BasicCommandStack) editingDomain.getCommandStack()).saveIsDone();
+ firePropertyChange(IEditorPart.PROP_DIRTY);
+ } catch (Exception exception) {
+ // Something went wrong that shouldn't.
+ //
+ JdtmmEditorPlugin.INSTANCE.log(exception);
+ }
+ updateProblemIndication = true;
+ updateProblemIndication();
+ }
+
+ /**
+ * This returns whether something has been persisted to the URI of the specified resource.
+ * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected boolean isPersisted(Resource resource) {
+ boolean result = false;
+ try {
+ InputStream stream = editingDomain.getResourceSet().getURIConverter().createInputStream(resource.getURI());
+ if (stream != null) {
+ result = true;
+ stream.close();
+ }
+ } catch (IOException e) {
+ // Ignore
+ }
+ return result;
+ }
+
+ /**
+ * This always returns true because it is not currently supported.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isSaveAsAllowed() {
+ return true;
+ }
+
+ /**
+ * This also changes the editor's input.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void doSaveAs() {
+ SaveAsDialog saveAsDialog = new SaveAsDialog(getSite().getShell());
+ saveAsDialog.open();
+ IPath path = saveAsDialog.getResult();
+ if (path != null) {
+ IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
+ if (file != null) {
+ doSaveAs(URI.createPlatformResourceURI(file.getFullPath().toString(), true), new FileEditorInput(file));
+ }
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void doSaveAs(URI uri, IEditorInput editorInput) {
+ (editingDomain.getResourceSet().getResources().get(0)).setURI(uri);
+ setInputWithNotify(editorInput);
+ setPartName(editorInput.getName());
+ IProgressMonitor progressMonitor =
+ getActionBars().getStatusLineManager() != null ?
+ getActionBars().getStatusLineManager().getProgressMonitor() :
+ new NullProgressMonitor();
+ doSave(progressMonitor);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void gotoMarker(IMarker marker) {
+ try {
+ if (marker.getType().equals(EValidator.MARKER)) {
+ String uriAttribute = marker.getAttribute(EValidator.URI_ATTRIBUTE, null);
+ if (uriAttribute != null) {
+ URI uri = URI.createURI(uriAttribute);
+ EObject eObject = editingDomain.getResourceSet().getEObject(uri, true);
+ if (eObject != null) {
+ setSelectionToViewer(Collections.singleton(editingDomain.getWrapper(eObject)));
+ }
+ }
+ }
+ } catch (CoreException exception) {
+ JdtmmEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+
+ /**
+ * This is called during startup.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void init(IEditorSite site, IEditorInput editorInput) {
+ setSite(site);
+ setInputWithNotify(editorInput);
+ setPartName(editorInput.getName());
+ site.setSelectionProvider(this);
+ site.getPage().addPartListener(partListener);
+ ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setFocus() {
+ if (currentViewerPane != null) {
+ currentViewerPane.setFocus();
+ }
+ else {
+ getControl(getActivePage()).setFocus();
+ }
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void addSelectionChangedListener(ISelectionChangedListener listener) {
+ selectionChangedListeners.add(listener);
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void removeSelectionChangedListener(ISelectionChangedListener listener) {
+ selectionChangedListeners.remove(listener);
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to return this editor's overall selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public ISelection getSelection() {
+ return editorSelection;
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to set this editor's overall selection.
+ * Calling this result will notify the listeners.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setSelection(ISelection selection) {
+ editorSelection = selection;
+
+ for (ISelectionChangedListener listener : selectionChangedListeners) {
+ listener.selectionChanged(new SelectionChangedEvent(this, selection));
+ }
+ setStatusLineManager(selection);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setStatusLineManager(ISelection selection) {
+ IStatusLineManager statusLineManager = currentViewer != null && currentViewer == contentOutlineViewer ?
+ contentOutlineStatusLineManager : getActionBars().getStatusLineManager();
+
+ if (statusLineManager != null) {
+ if (selection instanceof IStructuredSelection) {
+ Collection<?> collection = ((IStructuredSelection) selection).toList();
+ switch (collection.size()) {
+ case 0: {
+ statusLineManager.setMessage(getString("_UI_NoObjectSelected"));
+ break;
+ }
+ case 1: {
+ String text = new AdapterFactoryItemDelegator(adapterFactory).getText(collection.iterator().next());
+ statusLineManager.setMessage(getString("_UI_SingleObjectSelected", text));
+ break;
+ }
+ default: {
+ statusLineManager.setMessage(getString("_UI_MultiObjectSelected", Integer.toString(collection.size())));
+ break;
+ }
+ }
+ }
+ else {
+ statusLineManager.setMessage("");
+ }
+ }
+ }
+
+ /**
+ * This looks up a string in the plugin's plugin.properties file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private static String getString(String key) {
+ return JdtmmEditorPlugin.INSTANCE.getString(key);
+ }
+
+ /**
+ * This looks up a string in plugin.properties, making a substitution.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private static String getString(String key, Object s1) {
+ return JdtmmEditorPlugin.INSTANCE.getString(key, new Object[] { s1 });
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.action.IMenuListener} to help fill the context menus with contributions from the Edit menu.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void menuAboutToShow(IMenuManager menuManager) {
+ ((IMenuListener) getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EditingDomainActionBarContributor getActionBarContributor() {
+ return (EditingDomainActionBarContributor) getEditorSite().getActionBarContributor();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public IActionBars getActionBars() {
+ return getActionBarContributor().getActionBars();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public AdapterFactory getAdapterFactory() {
+ return adapterFactory;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void dispose() {
+ updateProblemIndication = false;
+
+ ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener);
+
+ getSite().getPage().removePartListener(partListener);
+
+ adapterFactory.dispose();
+
+ if (getActionBarContributor().getActiveEditor() == this) {
+ getActionBarContributor().setActiveEditor(null);
+ }
+
+ if (propertySheetPage != null) {
+ propertySheetPage.dispose();
+ }
+
+ if (contentOutlinePage != null) {
+ contentOutlinePage.dispose();
+ }
+
+ super.dispose();
+ }
+
+ /**
+ * Returns whether the outline view should be presented to the user.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected boolean showOutlineView() {
+ return true;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/presentation/JdtmmEditorPlugin.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/presentation/JdtmmEditorPlugin.java
new file mode 100644
index 00000000000..399c138dfb8
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/presentation/JdtmmEditorPlugin.java
@@ -0,0 +1,116 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.presentation;
+
+import org.eclipse.emf.common.EMFPlugin;
+import org.eclipse.emf.common.ui.EclipseUIPlugin;
+import org.eclipse.emf.common.util.ResourceLocator;
+
+/**
+ * This is the central singleton for the Jdtmm editor plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public final class JdtmmEditorPlugin extends EMFPlugin {
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static final JdtmmEditorPlugin INSTANCE = new JdtmmEditorPlugin();
+
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private static Implementation plugin;
+
+ /**
+ * Create the instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JdtmmEditorPlugin() {
+ super(new ResourceLocator[] {
+ });
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the singleton instance.
+ * @generated
+ */
+ @Override
+ public ResourceLocator getPluginResourceLocator() {
+ return plugin;
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the singleton instance.
+ * @generated
+ */
+ public static Implementation getPlugin() {
+ return plugin;
+ }
+
+ /**
+ * The actual implementation of the Eclipse <b>Plugin</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static class Implementation extends EclipseUIPlugin {
+ /**
+ * Creates an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Implementation() {
+ super();
+
+ // Remember the static instance.
+ //
+ plugin = this;
+ }
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/presentation/JdtmmModelWizard.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/presentation/JdtmmModelWizard.java
new file mode 100644
index 00000000000..3b0642514e6
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/presentation/JdtmmModelWizard.java
@@ -0,0 +1,656 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.presentation;
+
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.MissingResourceException;
+import java.util.StringTokenizer;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.emf.common.CommonPlugin;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.xmi.XMLResource;
+import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmFactory;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.provider.JdtmmEditPlugin;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.ISetSelectionTarget;
+
+
+/**
+ * This is a simple wizard for creating a new model file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JdtmmModelWizard extends Wizard implements INewWizard {
+ /**
+ * The supported extensions for created files.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static final List<String> FILE_EXTENSIONS =
+ Collections.unmodifiableList(Arrays.asList(JdtmmEditorPlugin.INSTANCE.getString("_UI_JdtmmEditorFilenameExtensions").split("\\s*,\\s*")));
+
+ /**
+ * A formatted list of supported file extensions, suitable for display.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static final String FORMATTED_FILE_EXTENSIONS =
+ JdtmmEditorPlugin.INSTANCE.getString("_UI_JdtmmEditorFilenameExtensions").replaceAll("\\s*,\\s*", ", ");
+
+ /**
+ * This caches an instance of the model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JdtmmPackage jdtmmPackage = JdtmmPackage.eINSTANCE;
+
+ /**
+ * This caches an instance of the model factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JdtmmFactory jdtmmFactory = jdtmmPackage.getJdtmmFactory();
+
+ /**
+ * This is the file creation page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JdtmmModelWizardNewFileCreationPage newFileCreationPage;
+
+ /**
+ * This is the initial object creation page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JdtmmModelWizardInitialObjectCreationPage initialObjectCreationPage;
+
+ /**
+ * Remember the selection during initialization for populating the default container.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IStructuredSelection selection;
+
+ /**
+ * Remember the workbench during initialization.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IWorkbench workbench;
+
+ /**
+ * Caches the names of the types that can be created as the root object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected List<String> initialObjectNames;
+
+ /**
+ * This just records the information.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void init(IWorkbench workbench, IStructuredSelection selection) {
+ this.workbench = workbench;
+ this.selection = selection;
+ setWindowTitle(JdtmmEditorPlugin.INSTANCE.getString("_UI_Wizard_label"));
+ setDefaultPageImageDescriptor(ExtendedImageRegistry.INSTANCE.getImageDescriptor(JdtmmEditorPlugin.INSTANCE.getImage("full/wizban/NewJdtmm")));
+ }
+
+ /**
+ * Returns the names of the types that can be created as the root object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Collection<String> getInitialObjectNames() {
+ if (initialObjectNames == null) {
+ initialObjectNames = new ArrayList<String>();
+ for (EClassifier eClassifier : jdtmmPackage.getEClassifiers()) {
+ if (eClassifier instanceof EClass) {
+ EClass eClass = (EClass) eClassifier;
+ if (!eClass.isAbstract()) {
+ initialObjectNames.add(eClass.getName());
+ }
+ }
+ }
+ Collections.sort(initialObjectNames, CommonPlugin.INSTANCE.getComparator());
+ }
+ return initialObjectNames;
+ }
+
+ /**
+ * Create a new model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected EObject createInitialModel() {
+ EClass eClass = (EClass) jdtmmPackage.getEClassifier(initialObjectCreationPage.getInitialObjectName());
+ EObject rootObject = jdtmmFactory.create(eClass);
+ return rootObject;
+ }
+
+ /**
+ * Do the work after everything is specified.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean performFinish() {
+ try {
+ // Remember the file.
+ //
+ final IFile modelFile = getModelFile();
+
+ // Do the work within an operation.
+ //
+ WorkspaceModifyOperation operation =
+ new WorkspaceModifyOperation() {
+ @Override
+ protected void execute(IProgressMonitor progressMonitor) {
+ try {
+ // Create a resource set
+ //
+ ResourceSet resourceSet = new ResourceSetImpl();
+
+ // Get the URI of the model file.
+ //
+ URI fileURI = URI.createPlatformResourceURI(modelFile.getFullPath().toString(), true);
+
+ // Create a resource for this file.
+ //
+ Resource resource = resourceSet.createResource(fileURI);
+
+ // Add the initial model object to the contents.
+ //
+ EObject rootObject = createInitialModel();
+ if (rootObject != null) {
+ resource.getContents().add(rootObject);
+ }
+
+ // Save the contents of the resource to the file system.
+ //
+ Map<Object, Object> options = new HashMap<Object, Object>();
+ options.put(XMLResource.OPTION_ENCODING, initialObjectCreationPage.getEncoding());
+ resource.save(options);
+ }
+ catch (Exception exception) {
+ JdtmmEditorPlugin.INSTANCE.log(exception);
+ }
+ finally {
+ progressMonitor.done();
+ }
+ }
+ };
+
+ getContainer().run(false, false, operation);
+
+ // Select the new file resource in the current view.
+ //
+ IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
+ IWorkbenchPage page = workbenchWindow.getActivePage();
+ final IWorkbenchPart activePart = page.getActivePart();
+ if (activePart instanceof ISetSelectionTarget) {
+ final ISelection targetSelection = new StructuredSelection(modelFile);
+ getShell().getDisplay().asyncExec
+ (new Runnable() {
+ @Override
+ public void run() {
+ ((ISetSelectionTarget) activePart).selectReveal(targetSelection);
+ }
+ });
+ }
+
+ // Open an editor on the new file.
+ //
+ try {
+ page.openEditor
+ (new FileEditorInput(modelFile),
+ workbench.getEditorRegistry().getDefaultEditor(modelFile.getFullPath().toString()).getId());
+ } catch (PartInitException exception) {
+ MessageDialog.openError(workbenchWindow.getShell(), JdtmmEditorPlugin.INSTANCE.getString("_UI_OpenEditorError_label"), exception.getMessage());
+ return false;
+ }
+
+ return true;
+ } catch (Exception exception) {
+ JdtmmEditorPlugin.INSTANCE.log(exception);
+ return false;
+ }
+ }
+
+ /**
+ * This is the one page of the wizard.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public class JdtmmModelWizardNewFileCreationPage extends WizardNewFileCreationPage {
+ /**
+ * Pass in the selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JdtmmModelWizardNewFileCreationPage(String pageId, IStructuredSelection selection) {
+ super(pageId, selection);
+ }
+
+ /**
+ * The framework calls this to see if the file is correct.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected boolean validatePage() {
+ if (super.validatePage()) {
+ String extension = new Path(getFileName()).getFileExtension();
+ if (extension == null || !FILE_EXTENSIONS.contains(extension)) {
+ String key = FILE_EXTENSIONS.size() > 1 ? "_WARN_FilenameExtensions" : "_WARN_FilenameExtension";
+ setErrorMessage(JdtmmEditorPlugin.INSTANCE.getString(key, new Object[] { FORMATTED_FILE_EXTENSIONS }));
+ return false;
+ }
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public IFile getModelFile() {
+ return ResourcesPlugin.getWorkspace().getRoot().getFile(getContainerFullPath().append(getFileName()));
+ }
+ }
+
+ /**
+ * This is the page where the type of object to create is selected.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public class JdtmmModelWizardInitialObjectCreationPage extends WizardPage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Combo initialObjectField;
+
+ /**
+ * @generated
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ protected List<String> encodings;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Combo encodingField;
+
+ /**
+ * Pass in the selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JdtmmModelWizardInitialObjectCreationPage(String pageId) {
+ super(pageId);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void createControl(Composite parent) {
+ Composite composite = new Composite(parent, SWT.NONE);
+ {
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 1;
+ layout.verticalSpacing = 12;
+ composite.setLayout(layout);
+
+ GridData data = new GridData();
+ data.verticalAlignment = GridData.FILL;
+ data.grabExcessVerticalSpace = true;
+ data.horizontalAlignment = GridData.FILL;
+ composite.setLayoutData(data);
+ }
+
+ Label containerLabel = new Label(composite, SWT.LEFT);
+ {
+ containerLabel.setText(JdtmmEditorPlugin.INSTANCE.getString("_UI_ModelObject"));
+
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ containerLabel.setLayoutData(data);
+ }
+
+ initialObjectField = new Combo(composite, SWT.BORDER);
+ {
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ data.grabExcessHorizontalSpace = true;
+ initialObjectField.setLayoutData(data);
+ }
+
+ for (String objectName : getInitialObjectNames()) {
+ initialObjectField.add(getLabel(objectName));
+ }
+
+ if (initialObjectField.getItemCount() == 1) {
+ initialObjectField.select(0);
+ }
+ initialObjectField.addModifyListener(validator);
+
+ Label encodingLabel = new Label(composite, SWT.LEFT);
+ {
+ encodingLabel.setText(JdtmmEditorPlugin.INSTANCE.getString("_UI_XMLEncoding"));
+
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ encodingLabel.setLayoutData(data);
+ }
+ encodingField = new Combo(composite, SWT.BORDER);
+ {
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ data.grabExcessHorizontalSpace = true;
+ encodingField.setLayoutData(data);
+ }
+
+ for (String encoding : getEncodings()) {
+ encodingField.add(encoding);
+ }
+
+ encodingField.select(0);
+ encodingField.addModifyListener(validator);
+
+ setPageComplete(validatePage());
+ setControl(composite);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ModifyListener validator =
+ new ModifyListener() {
+ @Override
+ public void modifyText(ModifyEvent e) {
+ setPageComplete(validatePage());
+ }
+ };
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected boolean validatePage() {
+ return getInitialObjectName() != null && getEncodings().contains(encodingField.getText());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setVisible(boolean visible) {
+ super.setVisible(visible);
+ if (visible) {
+ if (initialObjectField.getItemCount() == 1) {
+ initialObjectField.clearSelection();
+ encodingField.setFocus();
+ }
+ else {
+ encodingField.clearSelection();
+ initialObjectField.setFocus();
+ }
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getInitialObjectName() {
+ String label = initialObjectField.getText();
+
+ for (String name : getInitialObjectNames()) {
+ if (getLabel(name).equals(label)) {
+ return name;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getEncoding() {
+ return encodingField.getText();
+ }
+
+ /**
+ * Returns the label for the specified type name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected String getLabel(String typeName) {
+ try {
+ return JdtmmEditPlugin.INSTANCE.getString("_UI_" + typeName + "_type");
+ } catch (MissingResourceException mre) {
+ JdtmmEditorPlugin.INSTANCE.log(mre);
+ }
+ return typeName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Collection<String> getEncodings() {
+ if (encodings == null) {
+ encodings = new ArrayList<String>();
+ for (StringTokenizer stringTokenizer = new StringTokenizer(JdtmmEditorPlugin.INSTANCE.getString("_UI_XMLEncodingChoices")); stringTokenizer.hasMoreTokens();) {
+ encodings.add(stringTokenizer.nextToken());
+ }
+ }
+ return encodings;
+ }
+ }
+
+ /**
+ * The framework calls this to create the contents of the wizard.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void addPages() {
+ // Create a page, set the title, and the initial model file name.
+ //
+ newFileCreationPage = new JdtmmModelWizardNewFileCreationPage("Whatever", selection);
+ newFileCreationPage.setTitle(JdtmmEditorPlugin.INSTANCE.getString("_UI_JdtmmModelWizard_label"));
+ newFileCreationPage.setDescription(JdtmmEditorPlugin.INSTANCE.getString("_UI_JdtmmModelWizard_description"));
+ newFileCreationPage.setFileName(JdtmmEditorPlugin.INSTANCE.getString("_UI_JdtmmEditorFilenameDefaultBase") + "." + FILE_EXTENSIONS.get(0));
+ addPage(newFileCreationPage);
+
+ // Try and get the resource selection to determine a current directory for the file dialog.
+ //
+ if (selection != null && !selection.isEmpty()) {
+ // Get the resource...
+ //
+ Object selectedElement = selection.iterator().next();
+ if (selectedElement instanceof IResource) {
+ // Get the resource parent, if its a file.
+ //
+ IResource selectedResource = (IResource) selectedElement;
+ if (selectedResource.getType() == IResource.FILE) {
+ selectedResource = selectedResource.getParent();
+ }
+
+ // This gives us a directory...
+ //
+ if (selectedResource instanceof IFolder || selectedResource instanceof IProject) {
+ // Set this for the container.
+ //
+ newFileCreationPage.setContainerFullPath(selectedResource.getFullPath());
+
+ // Make up a unique new name here.
+ //
+ String defaultModelBaseFilename = JdtmmEditorPlugin.INSTANCE.getString("_UI_JdtmmEditorFilenameDefaultBase");
+ String defaultModelFilenameExtension = FILE_EXTENSIONS.get(0);
+ String modelFilename = defaultModelBaseFilename + "." + defaultModelFilenameExtension;
+ for (int i = 1; ((IContainer) selectedResource).findMember(modelFilename) != null; ++i) {
+ modelFilename = defaultModelBaseFilename + i + "." + defaultModelFilenameExtension;
+ }
+ newFileCreationPage.setFileName(modelFilename);
+ }
+ }
+ }
+ initialObjectCreationPage = new JdtmmModelWizardInitialObjectCreationPage("Whatever2");
+ initialObjectCreationPage.setTitle(JdtmmEditorPlugin.INSTANCE.getString("_UI_JdtmmModelWizard_label"));
+ initialObjectCreationPage.setDescription(JdtmmEditorPlugin.INSTANCE.getString("_UI_Wizard_initial_object_description"));
+ addPage(initialObjectCreationPage);
+ }
+
+ /**
+ * Get the file from the page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public IFile getModelFile() {
+ return newFileCreationPage.getModelFile();
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/.classpath b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/.classpath
new file mode 100644
index 00000000000..ad32c83a788
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/.project b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/.project
new file mode 100644
index 00000000000..6da221b42e4
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.java.generator.metamodel.jdt</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/.settings/org.eclipse.jdt.core.prefs b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..94d61f00da6
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,291 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=260
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=false
+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=260
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=5
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/.settings/org.eclipse.jdt.ui.prefs b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 00000000000..954281dbc31
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,68 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_functional_interfaces=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=false
+cleanup.format_source_code=false
+cleanup.format_source_code_changes_only=false
+cleanup.insert_inferred_type_arguments=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=false
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_redundant_type_arguments=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_anonymous_class_creation=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_lambda=true
+cleanup.use_parentheses_in_expressions=false
+cleanup.use_this_for_non_static_field_access=false
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=false
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_type_arguments=false
+cleanup_profile=_Papyrus
+cleanup_settings_version=2
+eclipse.preferences.version=1
+formatter_profile=_Papyrus
+formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * Constructor.\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*****************************************************************************\n * Copyright (c) ${year} CEA LIST and others.\n * \n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n * CEA LIST - Initial API and implementation\n * \n *****************************************************************************/\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\n * ${see_to_overridden}\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${see_to_target}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/META-INF/MANIFEST.MF b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..09af16320e6
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/META-INF/MANIFEST.MF
@@ -0,0 +1,22 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.uml2.common;bundle-version="1.5.0",
+ org.eclipse.jdt.core;bundle-version="3.6.0",
+ org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.eclipse.uml2.types;visibility:=reexport
+Export-Package: org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm,
+ org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.impl,
+ org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.util,
+ org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm,
+ org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl,
+ org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.util,
+ org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-ClassPath: .
+Bundle-Version: 1.2.0.qualifier
+Bundle-Localization: plugin
+Bundle-Name: %pluginName
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.java.generator.metamodel.jdt;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/about.html b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/about.html
new file mode 100644
index 00000000000..82d49bf5f81
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/build.properties b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/build.properties
new file mode 100644
index 00000000000..90dc876dc50
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/build.properties
@@ -0,0 +1,16 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+bin.includes = .,\
+ model/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties,\
+ about.html
+jars.compile.order = .
+source.. = src/
+output.. = bin/
+src.includes = about.html
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.di b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.di
new file mode 100644
index 00000000000..bf9abab340f
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.ecore b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.ecore
new file mode 100644
index 00000000000..94f441e8179
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.ecore
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="generatoroptionsmm" nsURI="http:///GeneratorOptionsMM.ecore"
+ nsPrefix="GeneratorOptionsMM">
+ <eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details key="originalName" value="GeneratorOptionsMM"/>
+ </eAnnotations>
+ <eClassifiers xsi:type="ecore:EClass" name="Options">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultSourceFolder" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.genmodel b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.genmodel
new file mode 100644
index 00000000000..185bb8cd48b
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.genmodel
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:genmodel="http://www.eclipse.org/uml2/2.2.0/GenModel"
+ modelDirectory="/org.eclipse.papyrus.java.generator.metamodel.jdt/src"
+ modelPluginID="org.eclipse.papyrus.java.generator.metamodel.jdt" modelName="Generatoroptionsmm"
+ rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" importerID="org.eclipse.uml2.uml.ecore.importer"
+ complianceLevel="6.0" copyrightFields="false" usedGenPackages="../../../org.eclipse.uml2.types/model/Types.genmodel#//types"
+ operationReflection="true" importOrganizing="true">
+ <genAnnotations source="http://www.eclipse.org/emf/2002/GenModel/importer/org.eclipse.uml2.uml.ecore.importer">
+ <details key="ECORE_TAGGED_VALUES" value="PROCESS"/>
+ <details key="UNION_PROPERTIES" value="REPORT"/>
+ <details key="UNTYPED_PROPERTIES" value="REPORT"/>
+ <details key="DUPLICATE_FEATURES" value="DISCARD"/>
+ <details key="SUBSETTING_PROPERTIES" value="REPORT"/>
+ <details key="VALIDATION_DELEGATES" value="IGNORE"/>
+ <details key="OPPOSITE_ROLE_NAMES" value="IGNORE"/>
+ <details key="COMMENTS" value="PROCESS"/>
+ <details key="DUPLICATE_FEATURE_INHERITANCE" value="DISCARD"/>
+ <details key="DUPLICATE_OPERATIONS" value="DISCARD"/>
+ <details key="PROPERTY_DEFAULT_EXPRESSIONS" value="IGNORE"/>
+ <details key="INVARIANT_CONSTRAINTS" value="PROCESS"/>
+ <details key="REDEFINING_PROPERTIES" value="REPORT"/>
+ <details key="ANNOTATION_DETAILS" value="PROCESS"/>
+ <details key="NON_API_INVARIANTS" value="IGNORE"/>
+ <details key="DUPLICATE_OPERATION_INHERITANCE" value="DISCARD"/>
+ <details key="REDEFINING_OPERATIONS" value="REPORT"/>
+ <details key="INVOCATION_DELEGATES" value="IGNORE"/>
+ <details key="DERIVED_FEATURES" value="PROCESS"/>
+ <details key="OPERATION_BODIES" value="IGNORE"/>
+ <details key="CAMEL_CASE_NAMES" value="IGNORE"/>
+ <details key="SUPER_CLASS_ORDER" value="PROCESS"/>
+ </genAnnotations>
+ <foreignModel>generatoroptionsmm.uml</foreignModel>
+ <genPackages xsi:type="genmodel:GenPackage" prefix="Generatoroptionsmm" basePackage="org.eclipse.papyrus.java.generator.metamodel.jdt"
+ disposableProviderFactory="true" ecorePackage="generatoroptionsmm.ecore#/">
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="generatoroptionsmm.ecore#//Options">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute generatoroptionsmm.ecore#//Options/defaultSourceFolder"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.notation b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.notation
new file mode 100644
index 00000000000..b9668edc339
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.notation
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_2ca9MPw6EeOA9cUxa0QbfA" type="PapyrusUMLClassDiagram" name="GeneratorOptionsMM" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_CFstcPw7EeOA9cUxa0QbfA" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CFt7kPw7EeOA9cUxa0QbfA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CFuioPw7EeOA9cUxa0QbfA" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_Dnw9IPw7EeOA9cUxa0QbfA" type="3012">
+ <element xmi:type="uml:Property" href="generatoroptionsmm.uml#_Dni6sPw7EeOA9cUxa0QbfA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Dnw9Ifw7EeOA9cUxa0QbfA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CFuiofw7EeOA9cUxa0QbfA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CFuiovw7EeOA9cUxa0QbfA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CFuio_w7EeOA9cUxa0QbfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CFuipPw7EeOA9cUxa0QbfA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CFuipfw7EeOA9cUxa0QbfA" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CFuipvw7EeOA9cUxa0QbfA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CFuip_w7EeOA9cUxa0QbfA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CFuiqPw7EeOA9cUxa0QbfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CFuiqfw7EeOA9cUxa0QbfA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CFuiqvw7EeOA9cUxa0QbfA" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CFuiq_w7EeOA9cUxa0QbfA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CFuirPw7EeOA9cUxa0QbfA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CFuirfw7EeOA9cUxa0QbfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CFuirvw7EeOA9cUxa0QbfA"/>
+ </children>
+ <element xmi:type="uml:Class" href="generatoroptionsmm.uml#_CE41IPw7EeOA9cUxa0QbfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CFstcfw7EeOA9cUxa0QbfA" x="448" y="88"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_2ca9Mfw6EeOA9cUxa0QbfA" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_2ca9Mvw6EeOA9cUxa0QbfA"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_2ca9M_w6EeOA9cUxa0QbfA">
+ <owner xmi:type="uml:Model" href="generatoroptionsmm.uml#_2YCzgPw6EeOA9cUxa0QbfA"/>
+ </styles>
+ <element xmi:type="uml:Model" href="generatoroptionsmm.uml#_2YCzgPw6EeOA9cUxa0QbfA"/>
+</notation:Diagram>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.uml b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.uml
new file mode 100644
index 00000000000..984402e4517
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.uml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/5" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
+ <uml:Model xmi:id="_2YCzgPw6EeOA9cUxa0QbfA" name="GeneratorOptionsMM">
+ <packagedElement xmi:type="uml:Class" xmi:id="_CE41IPw7EeOA9cUxa0QbfA" name="Options">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Dni6sPw7EeOA9cUxa0QbfA" name="defaultSourceFolder">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_6l8-YPw6EeOA9cUxa0QbfA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6qSr0Pw6EeOA9cUxa0QbfA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Ecore.profile.uml#_0"/>
+ </profileApplication>
+ </uml:Model>
+ <Ecore:EPackage xmi:id="_71WwwPw6EeOA9cUxa0QbfA" base_Package="_2YCzgPw6EeOA9cUxa0QbfA" packageName="generatoroptionsmm" basePackage="org.eclipse.papyrus.java.generator.metamodel.jdt"/>
+</xmi:XMI>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.di b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.di
new file mode 100644
index 00000000000..2ad562c2abc
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.di
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi">
+ <pageList>
+ <availablePage>
+ <emfPageIdentifier href="jdtmm.notation#_zfh1MWHXEeCX0Yi87Khu0A"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="jdtmm.notation#_7jQbEGHXEeCX0Yi87Khu0A"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="jdtmm.notation#_q89k8GHcEeCX0Yi87Khu0A"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="jdtmm.notation#_Ctp9gGHeEeCX0Yi87Khu0A"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="jdtmm.notation#_396V8GHgEeCX0Yi87Khu0A"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="jdtmm.notation#_EKRgwGQ0EeCX0Yi87Khu0A"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="jdtmm.notation#_CLF4QGaaEeCm5tXW4raF-A"/>
+ </availablePage>
+ </pageList>
+ <sashModel currentSelection="//@sashModel/@windows.0/@children.0">
+ <windows>
+ <children xsi:type="di:TabFolder">
+ <children>
+ <emfPageIdentifier href="jdtmm.notation#_zfh1MWHXEeCX0Yi87Khu0A"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="jdtmm.notation#_7jQbEGHXEeCX0Yi87Khu0A"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="jdtmm.notation#_q89k8GHcEeCX0Yi87Khu0A"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="jdtmm.notation#_Ctp9gGHeEeCX0Yi87Khu0A"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="jdtmm.notation#_396V8GHgEeCX0Yi87Khu0A"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="jdtmm.notation#_EKRgwGQ0EeCX0Yi87Khu0A"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="jdtmm.notation#_CLF4QGaaEeCm5tXW4raF-A"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+</di:SashWindowsMngr>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.ecore b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.ecore
new file mode 100644
index 00000000000..8d8c40c7c1b
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.ecore
@@ -0,0 +1,243 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="jdtmm"
+ nsURI="http:///jdtmm.ecore" nsPrefix="jdtmm">
+ <eClassifiers xsi:type="ecore:EClass" name="JDTMethodBody" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Can have different type of body: opaque, expr (not yet implemented, ...)"/>
+ </eAnnotations>
+ <eOperations name="asText" ordered="false" lowerBound="1" eType="#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="owner" ordered="false"
+ lowerBound="1" eType="#//JDTMethod" eOpposite="#//JDTMethod/bodies"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="JDTMethod" eSuperTypes="#//JDTMember">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="owner" ordered="false"
+ lowerBound="1" eType="#//JDTType" eOpposite="#//JDTType/methods">
+ <eAnnotations source="redefines" references="#//JDTJavaElement/parent"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="returnType" ordered="false"
+ eType="#//JDTParameter" containment="true" eOpposite="#//JDTParameter/returnOwner"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" ordered="false"
+ upperBound="-1" eType="#//JDTParameter" containment="true" eOpposite="#//JDTParameter/parameterOwner"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstract" ordered="false"
+ unique="false" lowerBound="1" eType="#//boolean" volatile="true" transient="true"
+ defaultValueLiteral="false" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="final" ordered="false"
+ unique="false" lowerBound="1" eType="#//boolean" volatile="true" transient="true"
+ defaultValueLiteral="false" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="static" ordered="false"
+ unique="false" lowerBound="1" eType="#//boolean" volatile="true" transient="true"
+ defaultValueLiteral="false" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="exceptions" ordered="false"
+ upperBound="-1" eType="#//JDTType"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="synchronized" ordered="false"
+ unique="false" lowerBound="1" eType="#//boolean" volatile="true" transient="true"
+ defaultValueLiteral="false" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="constructor" ordered="false"
+ lowerBound="1" eType="#//boolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="bodies" ordered="false"
+ upperBound="-1" eType="#//JDTMethodBody" containment="true" eOpposite="#//JDTMethodBody/owner"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="JDTMember" abstract="true" eSuperTypes="#//JDTParentJavaElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="typeParameters" ordered="false"
+ upperBound="-1" eType="#//JDTTypeParameter" containment="true" eOpposite="#//JDTTypeParameter/declaringMember"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="visibility" ordered="false"
+ unique="false" lowerBound="1" eType="#//VisibilityKind" volatile="true" transient="true"
+ defaultValueLiteral="public" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="explicitRequiredImports"
+ ordered="false" upperBound="-1" eType="#//JDTType"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="explicitPlainTextRequiredImports"
+ ordered="false" upperBound="-1" eType="#//String"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="JDTParentJavaElement" abstract="true"
+ eSuperTypes="#//JDTJavaElement #//JDTParent"/>
+ <eClassifiers xsi:type="ecore:EClass" name="JDTParent" abstract="true">
+ <eOperations name="setFlag" ordered="false" lowerBound="1">
+ <eParameters name="flag" ordered="false" lowerBound="1" eType="#//int"/>
+ <eParameters name="value" ordered="false" lowerBound="1" eType="#//boolean"/>
+ </eOperations>
+ <eOperations name="isFlagSet" ordered="false" lowerBound="1" eType="#//boolean">
+ <eParameters name="flag" ordered="false" lowerBound="1" eType="#//int"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="children" ordered="false"
+ upperBound="-1" eType="#//JDTJavaElement" changeable="false" volatile="true"
+ transient="true" eOpposite="#//JDTJavaElement/parent">
+ <eAnnotations source="union"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="flags" ordered="false"
+ unique="false" lowerBound="1" eType="#//int"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="JDTJavaElement" abstract="true">
+ <eOperations name="getQualifiedName" ordered="false" lowerBound="1" eType="#//String"/>
+ <eOperations name="accept" ordered="false" lowerBound="1" eExceptions="#//JDTVisitorException">
+ <eParameters name="visitor" ordered="false" lowerBound="1" eType="#//Visitor"/>
+ </eOperations>
+ <eOperations name="getJDTSignature" ordered="false" lowerBound="1" eType="#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementName" ordered="false"
+ unique="false" lowerBound="1" eType="#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementType" ordered="false"
+ unique="false" lowerBound="1" eType="#//int"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="comment" ordered="false"
+ unique="false" lowerBound="1" eType="#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="generated" ordered="false"
+ lowerBound="1" eType="#//boolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parent" ordered="false"
+ eType="#//JDTParent" changeable="false" transient="true" eOpposite="#//JDTParent/children"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="String" instanceClassName="java.lang.String"/>
+ <eClassifiers xsi:type="ecore:EDataType" name="int" instanceClassName="int"/>
+ <eClassifiers xsi:type="ecore:EDataType" name="boolean" instanceClassName="boolean"/>
+ <eClassifiers xsi:type="ecore:EDataType" name="JDTVisitorException" instanceClassName="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitorException"/>
+ <eClassifiers xsi:type="ecore:EDataType" name="Visitor" instanceClassName="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitor"/>
+ <eClassifiers xsi:type="ecore:EClass" name="JDTTypeParameter" eSuperTypes="#//JDTJavaElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="declaringMember" ordered="false"
+ eType="#//JDTMember" eOpposite="#//JDTMember/typeParameters"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="VisibilityKind">
+ <eLiterals name="public"/>
+ <eLiterals name="protected" value="1"/>
+ <eLiterals name="private" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="JDTType" abstract="true" eSuperTypes="#//JDTMember">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="methods" ordered="false"
+ upperBound="-1" eType="#//JDTMethod" containment="true" eOpposite="#//JDTMethod/owner">
+ <eAnnotations source="subsets" references="#//JDTParent/children"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="fields" ordered="false"
+ upperBound="-1" eType="#//JDTField" containment="true" eOpposite="#//JDTField/owner">
+ <eAnnotations source="subsets" references="#//JDTParent/children"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="compilationUnit" ordered="false"
+ eType="#//JDTCompilationUnit" eOpposite="#//JDTCompilationUnit/types">
+ <eAnnotations source="redefines" references="#//JDTJavaElement/parent"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="class" ordered="false"
+ unique="false" lowerBound="1" eType="#//boolean" defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="interface" ordered="false"
+ unique="false" lowerBound="1" eType="#//boolean" defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="enum" ordered="false" unique="false"
+ lowerBound="1" eType="#//boolean" defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstract" ordered="false"
+ unique="false" lowerBound="1" eType="#//boolean" volatile="true" transient="true"
+ defaultValueLiteral="false" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="final" ordered="false"
+ unique="false" lowerBound="1" eType="#//boolean" volatile="true" transient="true"
+ defaultValueLiteral="false" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="static" ordered="false"
+ unique="false" lowerBound="1" eType="#//boolean" volatile="true" transient="true"
+ defaultValueLiteral="false" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="types" ordered="false"
+ upperBound="-1" eType="#//JDTType" containment="true" eOpposite="#//JDTType/owner">
+ <eAnnotations source="subsets" references="#//JDTParent/children"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="owner" ordered="false"
+ eType="#//JDTType" eOpposite="#//JDTType/types">
+ <eAnnotations source="redefines" references="#//JDTJavaElement/parent"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="superInterfaces" ordered="false"
+ upperBound="-1" eType="#//JDTType"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="superClass" ordered="false"
+ eType="#//JDTType"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="superInterfaceNames" ordered="false"
+ unique="false" upperBound="-1" eType="#//String" changeable="false" volatile="true"
+ transient="true" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="superClassName" ordered="false"
+ unique="false" lowerBound="1" eType="#//String" changeable="false" volatile="true"
+ transient="true" derived="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="JDTField" eSuperTypes="#//JDTMember">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstract" ordered="false"
+ unique="false" lowerBound="1" eType="#//boolean" volatile="true" transient="true"
+ defaultValueLiteral="false" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="final" ordered="false"
+ unique="false" lowerBound="1" eType="#//boolean" volatile="true" transient="true"
+ defaultValueLiteral="false" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="static" ordered="false"
+ unique="false" lowerBound="1" eType="#//boolean" volatile="true" transient="true"
+ defaultValueLiteral="false" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isMultiValued" ordered="false"
+ unique="false" lowerBound="1" eType="#//boolean" defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" eType="#//JDTType"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" ordered="false"
+ lowerBound="1" eType="#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="generateGetter" ordered="false"
+ lowerBound="1" eType="#//TrueFalseDefault"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="generateSetter" ordered="false"
+ lowerBound="1" eType="#//TrueFalseDefault"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="owner" ordered="false"
+ lowerBound="1" eType="#//JDTType" eOpposite="#//JDTType/fields">
+ <eAnnotations source="redefines" references="#//JDTJavaElement/parent"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="TrueFalseDefault">
+ <eLiterals name="true"/>
+ <eLiterals name="false" value="1"/>
+ <eLiterals name="default" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="JDTCompilationUnit" eSuperTypes="#//JDTTypeRoot">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="packageFragment" ordered="false"
+ eType="#//JDTPackageFragment" eOpposite="#//JDTPackageFragment/compilationUnits">
+ <eAnnotations source="redefines" references="#//JDTJavaElement/parent"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="types" ordered="false"
+ upperBound="-1" eType="#//JDTType" containment="true" eOpposite="#//JDTType/compilationUnit">
+ <eAnnotations source="subsets" references="#//JDTParent/children"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="JDTTypeRoot" abstract="true" eSuperTypes="#//JDTParentJavaElement"/>
+ <eClassifiers xsi:type="ecore:EClass" name="JDTPackageFragment" eSuperTypes="#//JDTParentJavaElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="packageFragmentRoot" ordered="false"
+ eType="#//JDTPackageFragmentRoot" eOpposite="#//JDTPackageFragmentRoot/packageFragments">
+ <eAnnotations source="redefines" references="#//JDTJavaElement/parent"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="compilationUnits" ordered="false"
+ upperBound="-1" eType="#//JDTCompilationUnit" containment="true" eOpposite="#//JDTCompilationUnit/packageFragment">
+ <eAnnotations source="subsets" references="#//JDTParent/children"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="JDTPackageFragmentRoot" eSuperTypes="#//JDTParentJavaElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="javaProject" ordered="false"
+ eType="#//JDTJavaProject" eOpposite="#//JDTJavaProject/packageFragmentRoots">
+ <eAnnotations source="redefines" references="#//JDTJavaElement/parent"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="packageFragments" ordered="false"
+ upperBound="-1" eType="#//JDTPackageFragment" containment="true" eOpposite="#//JDTPackageFragment/packageFragmentRoot">
+ <eAnnotations source="subsets" references="#//JDTParent/children"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="JDTJavaProject" eSuperTypes="#//JDTParentJavaElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="javaModel" ordered="false"
+ eType="#//JDTJavaModel" eOpposite="#//JDTJavaModel/javaProject"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="packageFragmentRoots" ordered="false"
+ upperBound="-1" eType="#//JDTPackageFragmentRoot" containment="true" eOpposite="#//JDTPackageFragmentRoot/javaProject">
+ <eAnnotations source="subsets" references="#//JDTParent/children"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="JDTJavaModel" eSuperTypes="#//JDTParentJavaElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="javaProject" ordered="false"
+ upperBound="-1" eType="#//JDTJavaProject" containment="true" eOpposite="#//JDTJavaProject/javaModel"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="JDTParameter" eSuperTypes="#//JDTMember">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parameterOwner" ordered="false"
+ eType="#//JDTMethod" eOpposite="#//JDTMethod/parameters"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="final" ordered="false"
+ unique="false" lowerBound="1" eType="#//boolean" volatile="true" transient="true"
+ defaultValueLiteral="false" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isMultiValued" ordered="false"
+ unique="false" lowerBound="1" eType="#//boolean" defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" eType="#//JDTType"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="returnOwner" ordered="false"
+ eType="#//JDTMethod" eOpposite="#//JDTMethod/returnType"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="JDTClass" eSuperTypes="#//JDTType"/>
+ <eClassifiers xsi:type="ecore:EClass" name="JDTInterface" eSuperTypes="#//JDTType"/>
+ <eClassifiers xsi:type="ecore:EClass" name="JDTEnum" eSuperTypes="#//JDTType"/>
+ <eClassifiers xsi:type="ecore:EClass" name="JDTImportDeclaration" eSuperTypes="#//JDTJavaElement"/>
+ <eClassifiers xsi:type="ecore:EClass" name="JDTImportContainer" eSuperTypes="#//JDTParentJavaElement"/>
+ <eClassifiers xsi:type="ecore:EClass" name="JDTException"/>
+ <eClassifiers xsi:type="ecore:EClass" name="JDTOpaqueBody" eSuperTypes="#//JDTMethodBody">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="_body" ordered="false"
+ lowerBound="1" eType="#//String"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.genmodel b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.genmodel
new file mode 100644
index 00000000000..5661529e011
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.genmodel
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:genmodel="http://www.eclipse.org/uml2/2.2.0/GenModel" modelDirectory="/org.eclipse.papyrus.java.generator.metamodel.jdt/src"
+ modelPluginID="org.eclipse.papyrus.java.generator.metamodel.jdt" modelName="Jdtmm"
+ importerID="org.eclipse.uml2.uml.ecore.importer" complianceLevel="6.0" copyrightFields="false">
+ <genAnnotations source="http://www.eclipse.org/emf/2002/GenModel/importer/org.eclipse.uml2.uml.ecore.importer">
+ <details key="ECORE_TAGGED_VALUES" value="PROCESS"/>
+ <details key="UNION_PROPERTIES" value="PROCESS"/>
+ <details key="DUPLICATE_FEATURES" value="DISCARD"/>
+ <details key="SUBSETTING_PROPERTIES" value="PROCESS"/>
+ <details key="COMMENTS" value="PROCESS"/>
+ <details key="DUPLICATE_FEATURE_INHERITANCE" value="DISCARD"/>
+ <details key="DUPLICATE_OPERATIONS" value="DISCARD"/>
+ <details key="INVARIANT_CONSTRAINTS" value="PROCESS"/>
+ <details key="REDEFINING_PROPERTIES" value="PROCESS"/>
+ <details key="ANNOTATION_DETAILS" value="PROCESS"/>
+ <details key="DUPLICATE_OPERATION_INHERITANCE" value="DISCARD"/>
+ <details key="REDEFINING_OPERATIONS" value="REPORT"/>
+ <details key="DERIVED_FEATURES" value="PROCESS"/>
+ <details key="OPERATION_BODIES" value="IGNORE"/>
+ <details key="CAMEL_CASE_NAMES" value="IGNORE"/>
+ <details key="SUPER_CLASS_ORDER" value="PROCESS"/>
+ </genAnnotations>
+ <foreignModel>jdtmm.uml</foreignModel>
+ <genPackages xsi:type="genmodel:GenPackage" prefix="Jdtmm" basePackage="org.eclipse.papyrus.java.generator.metamodel.jdt"
+ disposableProviderFactory="true" ecorePackage="jdtmm.ecore#/">
+ <genEnums xsi:type="genmodel:GenEnum" typeSafeEnumCompatible="false" ecoreEnum="jdtmm.ecore#//VisibilityKind">
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="jdtmm.ecore#//VisibilityKind/public"/>
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="jdtmm.ecore#//VisibilityKind/protected"/>
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="jdtmm.ecore#//VisibilityKind/private"/>
+ </genEnums>
+ <genEnums xsi:type="genmodel:GenEnum" typeSafeEnumCompatible="false" ecoreEnum="jdtmm.ecore#//TrueFalseDefault">
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="jdtmm.ecore#//TrueFalseDefault/true"/>
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="jdtmm.ecore#//TrueFalseDefault/false"/>
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="jdtmm.ecore#//TrueFalseDefault/default"/>
+ </genEnums>
+ <genDataTypes xsi:type="genmodel:GenDataType" ecoreDataType="jdtmm.ecore#//String"/>
+ <genDataTypes xsi:type="genmodel:GenDataType" ecoreDataType="jdtmm.ecore#//int"/>
+ <genDataTypes xsi:type="genmodel:GenDataType" ecoreDataType="jdtmm.ecore#//boolean"/>
+ <genDataTypes xsi:type="genmodel:GenDataType" ecoreDataType="jdtmm.ecore#//JDTVisitorException"/>
+ <genDataTypes xsi:type="genmodel:GenDataType" ecoreDataType="jdtmm.ecore#//Visitor"/>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="jdtmm.ecore#//JDTMethodBody">
+ <genFeatures xsi:type="genmodel:GenFeature" property="None" notify="false" createChild="false"
+ ecoreFeature="ecore:EReference jdtmm.ecore#//JDTMethodBody/owner"/>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="jdtmm.ecore#//JDTMethodBody/asText"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="jdtmm.ecore#//JDTMethod">
+ <genFeatures xsi:type="genmodel:GenFeature" property="None" notify="false" createChild="false"
+ ecoreFeature="ecore:EReference jdtmm.ecore#//JDTMethod/owner"/>
+ <genFeatures xsi:type="genmodel:GenFeature" property="None" children="true"
+ createChild="true" ecoreFeature="ecore:EReference jdtmm.ecore#//JDTMethod/returnType"/>
+ <genFeatures xsi:type="genmodel:GenFeature" property="None" children="true"
+ createChild="true" ecoreFeature="ecore:EReference jdtmm.ecore#//JDTMethod/parameters"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute jdtmm.ecore#//JDTMethod/abstract"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute jdtmm.ecore#//JDTMethod/final"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute jdtmm.ecore#//JDTMethod/static"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference jdtmm.ecore#//JDTMethod/exceptions"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute jdtmm.ecore#//JDTMethod/synchronized"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute jdtmm.ecore#//JDTMethod/constructor"/>
+ <genFeatures xsi:type="genmodel:GenFeature" property="None" children="true"
+ createChild="true" ecoreFeature="ecore:EReference jdtmm.ecore#//JDTMethod/bodies"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="jdtmm.ecore#//JDTMember">
+ <genFeatures xsi:type="genmodel:GenFeature" property="None" children="true"
+ createChild="true" ecoreFeature="ecore:EReference jdtmm.ecore#//JDTMember/typeParameters"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute jdtmm.ecore#//JDTMember/visibility"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference jdtmm.ecore#//JDTMember/explicitRequiredImports"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute jdtmm.ecore#//JDTMember/explicitPlainTextRequiredImports"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="jdtmm.ecore#//JDTParentJavaElement"/>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="jdtmm.ecore#//JDTParent">
+ <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
+ createChild="false" ecoreFeature="ecore:EReference jdtmm.ecore#//JDTParent/children"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute jdtmm.ecore#//JDTParent/flags"/>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="jdtmm.ecore#//JDTParent/setFlag">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="jdtmm.ecore#//JDTParent/setFlag/flag"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="jdtmm.ecore#//JDTParent/setFlag/value"/>
+ </genOperations>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="jdtmm.ecore#//JDTParent/isFlagSet">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="jdtmm.ecore#//JDTParent/isFlagSet/flag"/>
+ </genOperations>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="jdtmm.ecore#//JDTJavaElement">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute jdtmm.ecore#//JDTJavaElement/elementName"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute jdtmm.ecore#//JDTJavaElement/elementType"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute jdtmm.ecore#//JDTJavaElement/comment"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute jdtmm.ecore#//JDTJavaElement/generated"/>
+ <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
+ createChild="false" ecoreFeature="ecore:EReference jdtmm.ecore#//JDTJavaElement/parent"/>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="jdtmm.ecore#//JDTJavaElement/getQualifiedName"/>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="jdtmm.ecore#//JDTJavaElement/accept">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="jdtmm.ecore#//JDTJavaElement/accept/visitor"/>
+ </genOperations>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="jdtmm.ecore#//JDTJavaElement/getJDTSignature"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="jdtmm.ecore#//JDTTypeParameter">
+ <genFeatures xsi:type="genmodel:GenFeature" property="None" notify="false" createChild="false"
+ ecoreFeature="ecore:EReference jdtmm.ecore#//JDTTypeParameter/declaringMember"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="jdtmm.ecore#//JDTType">
+ <genFeatures xsi:type="genmodel:GenFeature" property="None" children="true"
+ createChild="true" ecoreFeature="ecore:EReference jdtmm.ecore#//JDTType/methods"/>
+ <genFeatures xsi:type="genmodel:GenFeature" property="None" children="true"
+ createChild="true" ecoreFeature="ecore:EReference jdtmm.ecore#//JDTType/fields"/>
+ <genFeatures xsi:type="genmodel:GenFeature" property="None" notify="false" createChild="false"
+ ecoreFeature="ecore:EReference jdtmm.ecore#//JDTType/compilationUnit"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute jdtmm.ecore#//JDTType/class"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute jdtmm.ecore#//JDTType/interface"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute jdtmm.ecore#//JDTType/enum"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute jdtmm.ecore#//JDTType/abstract"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute jdtmm.ecore#//JDTType/final"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute jdtmm.ecore#//JDTType/static"/>
+ <genFeatures xsi:type="genmodel:GenFeature" property="None" children="true"
+ createChild="true" ecoreFeature="ecore:EReference jdtmm.ecore#//JDTType/types"/>
+ <genFeatures xsi:type="genmodel:GenFeature" property="None" notify="false" createChild="false"
+ ecoreFeature="ecore:EReference jdtmm.ecore#//JDTType/owner"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference jdtmm.ecore#//JDTType/superInterfaces"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference jdtmm.ecore#//JDTType/superClass"/>
+ <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" createChild="false"
+ ecoreFeature="ecore:EAttribute jdtmm.ecore#//JDTType/superInterfaceNames"/>
+ <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" createChild="false"
+ ecoreFeature="ecore:EAttribute jdtmm.ecore#//JDTType/superClassName"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="jdtmm.ecore#//JDTField">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute jdtmm.ecore#//JDTField/abstract"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute jdtmm.ecore#//JDTField/final"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute jdtmm.ecore#//JDTField/static"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute jdtmm.ecore#//JDTField/isMultiValued"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference jdtmm.ecore#//JDTField/type"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute jdtmm.ecore#//JDTField/value"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute jdtmm.ecore#//JDTField/generateGetter"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute jdtmm.ecore#//JDTField/generateSetter"/>
+ <genFeatures xsi:type="genmodel:GenFeature" property="None" notify="false" createChild="false"
+ ecoreFeature="ecore:EReference jdtmm.ecore#//JDTField/owner"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="jdtmm.ecore#//JDTCompilationUnit">
+ <genFeatures xsi:type="genmodel:GenFeature" property="None" notify="false" createChild="false"
+ ecoreFeature="ecore:EReference jdtmm.ecore#//JDTCompilationUnit/packageFragment"/>
+ <genFeatures xsi:type="genmodel:GenFeature" property="None" children="true"
+ createChild="true" ecoreFeature="ecore:EReference jdtmm.ecore#//JDTCompilationUnit/types"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="jdtmm.ecore#//JDTTypeRoot"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="jdtmm.ecore#//JDTPackageFragment">
+ <genFeatures xsi:type="genmodel:GenFeature" property="None" notify="false" createChild="false"
+ ecoreFeature="ecore:EReference jdtmm.ecore#//JDTPackageFragment/packageFragmentRoot"/>
+ <genFeatures xsi:type="genmodel:GenFeature" property="None" children="true"
+ createChild="true" ecoreFeature="ecore:EReference jdtmm.ecore#//JDTPackageFragment/compilationUnits"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="jdtmm.ecore#//JDTPackageFragmentRoot">
+ <genFeatures xsi:type="genmodel:GenFeature" property="None" notify="false" createChild="false"
+ ecoreFeature="ecore:EReference jdtmm.ecore#//JDTPackageFragmentRoot/javaProject"/>
+ <genFeatures xsi:type="genmodel:GenFeature" property="None" children="true"
+ createChild="true" ecoreFeature="ecore:EReference jdtmm.ecore#//JDTPackageFragmentRoot/packageFragments"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="jdtmm.ecore#//JDTJavaProject">
+ <genFeatures xsi:type="genmodel:GenFeature" property="None" notify="false" createChild="false"
+ ecoreFeature="ecore:EReference jdtmm.ecore#//JDTJavaProject/javaModel"/>
+ <genFeatures xsi:type="genmodel:GenFeature" property="None" children="true"
+ createChild="true" ecoreFeature="ecore:EReference jdtmm.ecore#//JDTJavaProject/packageFragmentRoots"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="jdtmm.ecore#//JDTJavaModel">
+ <genFeatures xsi:type="genmodel:GenFeature" property="None" children="true"
+ createChild="true" ecoreFeature="ecore:EReference jdtmm.ecore#//JDTJavaModel/javaProject"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="jdtmm.ecore#//JDTParameter">
+ <genFeatures xsi:type="genmodel:GenFeature" property="None" notify="false" createChild="false"
+ ecoreFeature="ecore:EReference jdtmm.ecore#//JDTParameter/parameterOwner"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute jdtmm.ecore#//JDTParameter/final"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute jdtmm.ecore#//JDTParameter/isMultiValued"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference jdtmm.ecore#//JDTParameter/type"/>
+ <genFeatures xsi:type="genmodel:GenFeature" property="None" notify="false" createChild="false"
+ ecoreFeature="ecore:EReference jdtmm.ecore#//JDTParameter/returnOwner"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="jdtmm.ecore#//JDTClass"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="jdtmm.ecore#//JDTInterface"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="jdtmm.ecore#//JDTEnum"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="jdtmm.ecore#//JDTImportDeclaration"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="jdtmm.ecore#//JDTImportContainer"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="jdtmm.ecore#//JDTException"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="jdtmm.ecore#//JDTOpaqueBody">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute jdtmm.ecore#//JDTOpaqueBody/_body"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.notation b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.notation
new file mode 100644
index 00000000000..a43c9740861
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.notation
@@ -0,0 +1,3094 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/3.0.0/UML">
+ <notation:Diagram xmi:id="_zfh1MWHXEeCX0Yi87Khu0A" type="PapyrusUMLClassDiagram" name="JavaElement Hierarchy" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_1HiU0GHXEeCX0Yi87Khu0A" type="2008" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1HiU0mHXEeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1HiU02HXEeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1HiU1GHXEeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1HiU1WHXEeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1HiU1mHXEeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1HiU12HXEeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1HiU2GHXEeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1HiU2WHXEeCX0Yi87Khu0A" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1HiU2mHXEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1HiU22HXEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1HiU3GHXEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1HiU3WHXEeCX0Yi87Khu0A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1HiU3mHXEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1HiU32HXEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1HiU4GHXEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1HiU4WHXEeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1HiU4mHXEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1HiU42HXEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1HiU5GHXEeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_1FwMIGHXEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1HiU0WHXEeCX0Yi87Khu0A" x="510" y="30"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FVjbkWHYEeCX0Yi87Khu0A" type="2008" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FVslgGHYEeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FVslgWHYEeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FVslgmHYEeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FVslg2HYEeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FVslhGHYEeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FVslhWHYEeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FVslhmHYEeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_FVslh2HYEeCX0Yi87Khu0A" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FVsliGHYEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FVsliWHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FVslimHYEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_FVsli2HYEeCX0Yi87Khu0A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FVsljGHYEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FVsljWHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FVsljmHYEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_FVslj2HYEeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FVslkGHYEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FVslkWHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FVslkmHYEeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_FVjbkGHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FVjbkmHYEeCX0Yi87Khu0A" x="408" y="336"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_IPhSUGHYEeCX0Yi87Khu0A" type="2008" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IPhSUmHYEeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IPhSU2HYEeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IPhSVGHYEeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IPhSVWHYEeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IPhSVmHYEeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IPhSV2HYEeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_IPhSWGHYEeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IPhSWWHYEeCX0Yi87Khu0A" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IPhSWmHYEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IPhSW2HYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IPhSXGHYEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IPhSXWHYEeCX0Yi87Khu0A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IPhSXmHYEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IPhSX2HYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IPhSYGHYEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IPhSYWHYEeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IPhSYmHYEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IPhSY2HYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IPhSZGHYEeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_IPXhUGHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IPhSUWHYEeCX0Yi87Khu0A" x="318" y="510"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_JO_yUWHYEeCX0Yi87Khu0A" type="2008" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JO_yU2HYEeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JO_yVGHYEeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JO_yVWHYEeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JO_yVmHYEeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JO_yV2HYEeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JO_yWGHYEeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JO_yWWHYEeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JO_yWmHYEeCX0Yi87Khu0A" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_JO_yW2HYEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_JO_yXGHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JO_yXWHYEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JO_yXmHYEeCX0Yi87Khu0A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_JO_yX2HYEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_JO_yYGHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JO_yYWHYEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JO_yYmHYEeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_JO_yY2HYEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_JO_yZGHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JO_yZWHYEeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_JO_yUGHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JO_yUmHYEeCX0Yi87Khu0A" x="444" y="510"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_KpJcIGHYEeCX0Yi87Khu0A" type="2008" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KpJcImHYEeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KpJcI2HYEeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KpJcJGHYEeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KpJcJWHYEeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KpJcJmHYEeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KpJcJ2HYEeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_KpJcKGHYEeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_KpJcKWHYEeCX0Yi87Khu0A" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_KpJcKmHYEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_KpJcK2HYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KpJcLGHYEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_KpJcLWHYEeCX0Yi87Khu0A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_KpJcLmHYEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_KpJcL2HYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KpJcMGHYEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_KpJcMWHYEeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_KpJcMmHYEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_KpJcM2HYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KpJcNGHYEeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_Ko2hMGHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KpJcIWHYEeCX0Yi87Khu0A" x="570" y="510"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Q1he0GHYEeCX0Yi87Khu0A" type="2008" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q1he0mHYEeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Q1he02HYEeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q1he1GHYEeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Q1he1WHYEeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q1he1mHYEeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Q1he12HYEeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Q1he2GHYEeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Q1he2WHYEeCX0Yi87Khu0A" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Q1he2mHYEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Q1he22HYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Q1he3GHYEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Q1he3WHYEeCX0Yi87Khu0A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Q1he3mHYEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Q1he32HYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Q1he4GHYEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Q1he4WHYEeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Q1he4mHYEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Q1he42HYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Q1he5GHYEeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_Q1Xt0GHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Q1he0WHYEeCX0Yi87Khu0A" x="468" y="690"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SJavoGHYEeCX0Yi87Khu0A" type="2008" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SJavomHYEeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SJavo2HYEeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SJavpGHYEeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SJavpWHYEeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SJavpmHYEeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SJavp2HYEeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SJavqGHYEeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SJavqWHYEeCX0Yi87Khu0A" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SJavqmHYEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SJavq2HYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SJavrGHYEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SJj5kGHYEeCX0Yi87Khu0A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SJj5kWHYEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SJj5kmHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SJj5k2HYEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SJj5lGHYEeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SJj5lWHYEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SJj5lmHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SJj5l2HYEeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_SJQ-oGHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SJavoWHYEeCX0Yi87Khu0A" x="606" y="690"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_T1JRoGHYEeCX0Yi87Khu0A" type="2008" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_T1JRomHYEeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_T1JRo2HYEeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_T1JRpGHYEeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_T1JRpWHYEeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_T1JRpmHYEeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_T1JRp2HYEeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_T1JRqGHYEeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_T1JRqWHYEeCX0Yi87Khu0A" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_T1JRqmHYEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_T1JRq2HYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T1JRrGHYEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_T1JRrWHYEeCX0Yi87Khu0A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_T1JRrmHYEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_T1JRr2HYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T1JRsGHYEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_T1JRsWHYEeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_T1JRsmHYEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_T1JRs2HYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T1JRtGHYEeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_T1AHsGHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T1JRoWHYEeCX0Yi87Khu0A" x="738" y="690"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_YYUh4WHYEeCX0Yi87Khu0A" type="2008" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YYUh42HYEeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YYUh5GHYEeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YYUh5WHYEeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YYUh5mHYEeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YYUh52HYEeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YYUh6GHYEeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YYUh6WHYEeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_YYUh6mHYEeCX0Yi87Khu0A" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_YYUh62HYEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_YYUh7GHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YYUh7WHYEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_YYUh7mHYEeCX0Yi87Khu0A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_YYUh72HYEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_YYUh8GHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YYUh8WHYEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_YYUh8mHYEeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_YYUh82HYEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_YYUh9GHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YYUh9WHYEeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_YYUh4GHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YYUh4mHYEeCX0Yi87Khu0A" x="738" y="342"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_aJtnAGHYEeCX0Yi87Khu0A" type="2008" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aJtnAmHYEeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aJtnA2HYEeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aJtnBGHYEeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aJtnBWHYEeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aJtnBmHYEeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aJtnB2HYEeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_aJtnCGHYEeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_aJtnCWHYEeCX0Yi87Khu0A" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_aJtnCmHYEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_aJtnC2HYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aJtnDGHYEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_aJtnDWHYEeCX0Yi87Khu0A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_aJtnDmHYEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_aJtnD2HYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aJtnEGHYEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_aJtnEWHYEeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_aJtnEmHYEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_aJtnE2HYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aJtnFGHYEeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_aJkdEGHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aJtnAWHYEeCX0Yi87Khu0A" x="738" y="510"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dyK7cWHYEeCX0Yi87Khu0A" type="2008" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dyUscGHYEeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dyUscWHYEeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dyUscmHYEeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dyUsc2HYEeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dyUsdGHYEeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dyUsdWHYEeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dyUsdmHYEeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dyUsd2HYEeCX0Yi87Khu0A" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dyUseGHYEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dyUseWHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dyUsemHYEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dyUse2HYEeCX0Yi87Khu0A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dyUsfGHYEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dyUsfWHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dyUsfmHYEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dyUsf2HYEeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dyUsgGHYEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dyUsgWHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dyUsgmHYEeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_dyK7cGHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dyK7cmHYEeCX0Yi87Khu0A" x="72" y="336"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_fiFZ4GHYEeCX0Yi87Khu0A" type="2008" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fiFZ4mHYEeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fiFZ42HYEeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fiFZ5GHYEeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fiFZ5WHYEeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fiFZ5mHYEeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fiFZ52HYEeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fiFZ6GHYEeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_fiFZ6WHYEeCX0Yi87Khu0A" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_fiFZ6mHYEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_fiFZ62HYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fiFZ7GHYEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_fiFZ7WHYEeCX0Yi87Khu0A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_fiFZ7mHYEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_fiFZ72HYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fiFZ8GHYEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_fiFZ8WHYEeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_fiFZ8mHYEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_fiFZ82HYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fiFZ9GHYEeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_fh7o4GHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fiFZ4WHYEeCX0Yi87Khu0A" x="576" y="342"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_DnZ64GHcEeCX0Yi87Khu0A" type="2008" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DnZ64mHcEeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DnZ642HcEeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DnZ65GHcEeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DnZ65WHcEeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Dnjr4GHcEeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Dnjr4WHcEeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Dnjr4mHcEeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Dnjr42HcEeCX0Yi87Khu0A" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Dnjr5GHcEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Dnjr5WHcEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Dnjr5mHcEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Dnjr52HcEeCX0Yi87Khu0A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Dnjr6GHcEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Dnjr6WHcEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Dnjr6mHcEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Dnjr62HcEeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Dnjr7GHcEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Dnjr7WHcEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Dnjr7mHcEeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_DnQw8GHcEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DnZ64WHcEeCX0Yi87Khu0A" x="186" y="510"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kYJqUGTgEeCLCuJcSSYRDQ" type="2008" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYJqUmTgEeCLCuJcSSYRDQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYJqU2TgEeCLCuJcSSYRDQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYJqVGTgEeCLCuJcSSYRDQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYJqVWTgEeCLCuJcSSYRDQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYJqVmTgEeCLCuJcSSYRDQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYJqV2TgEeCLCuJcSSYRDQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kYJqWGTgEeCLCuJcSSYRDQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kYJqWWTgEeCLCuJcSSYRDQ" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kYJqWmTgEeCLCuJcSSYRDQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kYJqW2TgEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kYJqXGTgEeCLCuJcSSYRDQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kYJqXWTgEeCLCuJcSSYRDQ" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kYJqXmTgEeCLCuJcSSYRDQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kYJqX2TgEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kYJqYGTgEeCLCuJcSSYRDQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kYJqYWTgEeCLCuJcSSYRDQ" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kYJqYmTgEeCLCuJcSSYRDQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kYJqY2TgEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kYJqZGTgEeCLCuJcSSYRDQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_kWqckGTgEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kYJqUWTgEeCLCuJcSSYRDQ" x="984" y="342"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LptIsGTiEeCLCuJcSSYRDQ" type="2008" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Lp25sGTiEeCLCuJcSSYRDQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Lp25sWTiEeCLCuJcSSYRDQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Lp25smTiEeCLCuJcSSYRDQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Lp25s2TiEeCLCuJcSSYRDQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Lp25tGTiEeCLCuJcSSYRDQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Lp25tWTiEeCLCuJcSSYRDQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Lp25tmTiEeCLCuJcSSYRDQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Lp25t2TiEeCLCuJcSSYRDQ" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Lp25uGTiEeCLCuJcSSYRDQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Lp25uWTiEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lp25umTiEeCLCuJcSSYRDQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Lp25u2TiEeCLCuJcSSYRDQ" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Lp25vGTiEeCLCuJcSSYRDQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Lp25vWTiEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lp25vmTiEeCLCuJcSSYRDQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Lp25v2TiEeCLCuJcSSYRDQ" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Lp25wGTiEeCLCuJcSSYRDQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Lp25wWTiEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lp25wmTiEeCLCuJcSSYRDQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_LpaNwGTiEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LptIsWTiEeCLCuJcSSYRDQ" x="864" y="342"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_x_EEkGTjEeCLCuJcSSYRDQ" type="2008" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_x_EEkmTjEeCLCuJcSSYRDQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_x_EEk2TjEeCLCuJcSSYRDQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_x_EElGTjEeCLCuJcSSYRDQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_x_EElWTjEeCLCuJcSSYRDQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_x_EElmTjEeCLCuJcSSYRDQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_x_EEl2TjEeCLCuJcSSYRDQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_x_EEmGTjEeCLCuJcSSYRDQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_x_EEmWTjEeCLCuJcSSYRDQ" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_x_EEmmTjEeCLCuJcSSYRDQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_x_EEm2TjEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x_EEnGTjEeCLCuJcSSYRDQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_x_EEnWTjEeCLCuJcSSYRDQ" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_x_EEnmTjEeCLCuJcSSYRDQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_x_EEn2TjEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x_EEoGTjEeCLCuJcSSYRDQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_x_EEoWTjEeCLCuJcSSYRDQ" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_x_EEomTjEeCLCuJcSSYRDQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_x_EEo2TjEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x_EEpGTjEeCLCuJcSSYRDQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_OtGLwGTjEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x_EEkWTjEeCLCuJcSSYRDQ" x="660" y="192"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_PabWYGTkEeCLCuJcSSYRDQ" type="2012" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PabWYmTkEeCLCuJcSSYRDQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PabWY2TkEeCLCuJcSSYRDQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PabWZGTkEeCLCuJcSSYRDQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PabWZWTkEeCLCuJcSSYRDQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PabWZmTkEeCLCuJcSSYRDQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PabWZ2TkEeCLCuJcSSYRDQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_PabWaGTkEeCLCuJcSSYRDQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="jdtmm.uml#_bCHAoGTjEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PabWYWTkEeCLCuJcSSYRDQ" x="810" y="175" width="235" height="108"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_35IWsGaNEeCm5tXW4raF-A" type="2008" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_35IWsmaNEeCm5tXW4raF-A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_35IWs2aNEeCm5tXW4raF-A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_35IWtGaNEeCm5tXW4raF-A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_35IWtWaNEeCm5tXW4raF-A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_35IWtmaNEeCm5tXW4raF-A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_35IWt2aNEeCm5tXW4raF-A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_35IWuGaNEeCm5tXW4raF-A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_35IWuWaNEeCm5tXW4raF-A" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_35IWumaNEeCm5tXW4raF-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_35IWu2aNEeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_35IWvGaNEeCm5tXW4raF-A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_35IWvWaNEeCm5tXW4raF-A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_35IWvmaNEeCm5tXW4raF-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_35IWv2aNEeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_35IWwGaNEeCm5tXW4raF-A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_35IWwWaNEeCm5tXW4raF-A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_35IWwmaNEeCm5tXW4raF-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_35IWw2aNEeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_35IWxGaNEeCm5tXW4raF-A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_3z6fgGaNEeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_35IWsWaNEeCm5tXW4raF-A" x="330" y="690"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_zS3gwGaOEeCm5tXW4raF-A" type="2008" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zS3gwmaOEeCm5tXW4raF-A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zS3gw2aOEeCm5tXW4raF-A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zS3gxGaOEeCm5tXW4raF-A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zS3gxWaOEeCm5tXW4raF-A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zS3gxmaOEeCm5tXW4raF-A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zS3gx2aOEeCm5tXW4raF-A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zS3gyGaOEeCm5tXW4raF-A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_zS3gyWaOEeCm5tXW4raF-A" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_zS3gymaOEeCm5tXW4raF-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_zS3gy2aOEeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zS3gzGaOEeCm5tXW4raF-A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_zS3gzWaOEeCm5tXW4raF-A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_zS3gzmaOEeCm5tXW4raF-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_zS3gz2aOEeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zS3g0GaOEeCm5tXW4raF-A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_zS3g0WaOEeCm5tXW4raF-A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_zS3g0maOEeCm5tXW4raF-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_zS3g02aOEeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zS3g1GaOEeCm5tXW4raF-A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_zStvwGaOEeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zS3gwWaOEeCm5tXW4raF-A" x="240" y="336" width="127"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_zfh1MmHXEeCX0Yi87Khu0A"/>
+ <element xmi:type="uml:Model" href="jdtmm.uml#_zfh1MGHXEeCX0Yi87Khu0A"/>
+ <edges xmi:type="notation:Connector" xmi:id="_HpE9YGHYEeCX0Yi87Khu0A" type="4002" source="_FVjbkWHYEeCX0Yi87Khu0A" target="_x_EEkGTjEeCLCuJcSSYRDQ" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_HpE9Y2HYEeCX0Yi87Khu0A" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_HpE9ZGHYEeCX0Yi87Khu0A" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_HpE9YWHYEeCX0Yi87Khu0A" fontName="Tempus Sans ITC" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_HoB0gGHYEeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HpE9YmHYEeCX0Yi87Khu0A" points="[9, 13, 9, 13]$[9, 13, 9, 13]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Hp0kQGHYEeCX0Yi87Khu0A" id="(0.45,0.05)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Hp0kQWHYEeCX0Yi87Khu0A" id="(0.7153846153846154,0.87)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_MjCV8GHYEeCX0Yi87Khu0A" type="4002" source="_IPhSUGHYEeCX0Yi87Khu0A" target="_FVjbkWHYEeCX0Yi87Khu0A" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_MjCV82HYEeCX0Yi87Khu0A" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MjCV9GHYEeCX0Yi87Khu0A" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_MjCV8WHYEeCX0Yi87Khu0A" fontName="Tempus Sans ITC" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_Mi5MAGHYEeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_MjCV8mHYEeCX0Yi87Khu0A" points="[3, -3, -137, 105]$[154, -203, 14, -95]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MjMG8GHYEeCX0Yi87Khu0A" id="(0.57,0.03)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MjMG8WHYEeCX0Yi87Khu0A" id="(0.43,0.95)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NG87UGHYEeCX0Yi87Khu0A" type="4002" source="_JO_yUWHYEeCX0Yi87Khu0A" target="_FVjbkWHYEeCX0Yi87Khu0A" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_NG87U2HYEeCX0Yi87Khu0A" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NG87VGHYEeCX0Yi87Khu0A" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_NG87UWHYEeCX0Yi87Khu0A" fontName="Tempus Sans ITC" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_NGzKUGHYEeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NG87UmHYEeCX0Yi87Khu0A" points="[-2, -5, 22, 106]$[-24, -103, 0, 8]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NHP2QGHYEeCX0Yi87Khu0A" id="(0.39,0.05)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NHP2QWHYEeCX0Yi87Khu0A" id="(0.51,0.92)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NyUMgWHYEeCX0Yi87Khu0A" type="4002" source="_KpJcIGHYEeCX0Yi87Khu0A" target="_FVjbkWHYEeCX0Yi87Khu0A" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_NyUMhGHYEeCX0Yi87Khu0A" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NyUMhWHYEeCX0Yi87Khu0A" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_NyUMgmHYEeCX0Yi87Khu0A" fontName="Tempus Sans ITC" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_NyUMgGHYEeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NyUMg2HYEeCX0Yi87Khu0A" points="[-19, -10, 185, 103]$[-203, -108, 1, 5]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Nyd9gGHYEeCX0Yi87Khu0A" id="(0.47,0.1)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Nyd9gWHYEeCX0Yi87Khu0A" id="(0.65,0.95)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WSp14GHYEeCX0Yi87Khu0A" type="4002" source="_Q1he0GHYEeCX0Yi87Khu0A" target="_KpJcIGHYEeCX0Yi87Khu0A" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_WSp142HYEeCX0Yi87Khu0A" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WSp15GHYEeCX0Yi87Khu0A" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_WSp14WHYEeCX0Yi87Khu0A" fontName="Tempus Sans ITC" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_WSgE4GHYEeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WSp14mHYEeCX0Yi87Khu0A" points="[7, -7, -90, 87]$[99, -187, 2, -93]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WSzm4GHYEeCX0Yi87Khu0A" id="(0.54,0.07)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WSzm4WHYEeCX0Yi87Khu0A" id="(0.49,0.93)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_W0ohkWHYEeCX0Yi87Khu0A" type="4002" source="_SJavoGHYEeCX0Yi87Khu0A" target="_KpJcIGHYEeCX0Yi87Khu0A" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_W0xrgGHYEeCX0Yi87Khu0A" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_W0xrgWHYEeCX0Yi87Khu0A" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_W0ohkmHYEeCX0Yi87Khu0A" fontName="Tempus Sans ITC" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_W0ohkGHYEeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_W0ohk2HYEeCX0Yi87Khu0A" points="[-3, -9, 21, 87]$[-24, -89, 0, 7]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_W07cgGHYEeCX0Yi87Khu0A" id="(0.39,0.09)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_W07cgWHYEeCX0Yi87Khu0A" id="(0.51,0.93)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XQDSQGHYEeCX0Yi87Khu0A" type="4002" source="_T1JRoGHYEeCX0Yi87Khu0A" target="_KpJcIGHYEeCX0Yi87Khu0A" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_XQDSQ2HYEeCX0Yi87Khu0A" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XQDSRGHYEeCX0Yi87Khu0A" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_XQDSQWHYEeCX0Yi87Khu0A" fontName="Tempus Sans ITC" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_XP5hQGHYEeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XQDSQmHYEeCX0Yi87Khu0A" points="[-18, -11, 136, 88]$[-152, -91, 2, 8]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XQWNMGHYEeCX0Yi87Khu0A" id="(0.5,0.11)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XQWNMWHYEeCX0Yi87Khu0A" id="(0.64,0.92)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_BUvxMGHbEeCX0Yi87Khu0A" type="4002" source="_YYUh4WHYEeCX0Yi87Khu0A" target="_x_EEkGTjEeCLCuJcSSYRDQ" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_BUvxM2HbEeCX0Yi87Khu0A" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BUvxNGHbEeCX0Yi87Khu0A" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_BUvxMWHbEeCX0Yi87Khu0A" fontName="Tempus Sans ITC" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_BUmnQGHbEeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BUvxMmHbEeCX0Yi87Khu0A" points="[4, 11, 4, 11]$[4, 11, 4, 11]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BVDTMGHbEeCX0Yi87Khu0A" id="(0.4,0.15)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BVDTMWHbEeCX0Yi87Khu0A" id="(0.6153846153846154,0.89)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_CLlSkGHbEeCX0Yi87Khu0A" type="4002" source="_aJtnAGHYEeCX0Yi87Khu0A" target="_YYUh4WHYEeCX0Yi87Khu0A" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CLlSk2HbEeCX0Yi87Khu0A" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CLlSlGHbEeCX0Yi87Khu0A" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_CLlSkWHbEeCX0Yi87Khu0A" fontName="Tempus Sans ITC" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_CLcIoGHbEeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CLlSkmHbEeCX0Yi87Khu0A" points="[0, -13, 0, 86]$[0, -93, 0, 6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CL40kGHbEeCX0Yi87Khu0A" id="(0.44144144144144143,0.13)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CL40kWHbEeCX0Yi87Khu0A" id="(0.55,0.94)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_LPRrMGHcEeCX0Yi87Khu0A" type="4002" source="_DnZ64GHcEeCX0Yi87Khu0A" target="_FVjbkWHYEeCX0Yi87Khu0A" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_LPRrM2HcEeCX0Yi87Khu0A" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LPRrNGHcEeCX0Yi87Khu0A" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_LPRrMWHcEeCX0Yi87Khu0A" fontName="Tempus Sans ITC" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_LPH6MGHcEeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LPRrMmHcEeCX0Yi87Khu0A" points="[5, -11, -143, 261]$[165, -365, 17, -93]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LPRrNWHcEeCX0Yi87Khu0A" id="(0.62,0.11)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LPRrNmHcEeCX0Yi87Khu0A" id="(0.42,0.93)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_MFEDsGHcEeCX0Yi87Khu0A" type="4002" source="_fiFZ4GHYEeCX0Yi87Khu0A" target="_x_EEkGTjEeCLCuJcSSYRDQ" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_MFEDs2HcEeCX0Yi87Khu0A" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MFEDtGHcEeCX0Yi87Khu0A" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_MFEDsWHcEeCX0Yi87Khu0A" fontName="Tempus Sans ITC" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_MEnXwGHcEeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_MFEDsmHcEeCX0Yi87Khu0A" points="[2, 4, 2, 4]$[2, 4, 2, 4]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MFW-oGHcEeCX0Yi87Khu0A" id="(0.47368421052631576,0.13)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MFW-oWHcEeCX0Yi87Khu0A" id="(0.7,0.96)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NdkuwGHcEeCX0Yi87Khu0A" type="4002" source="_dyK7cWHYEeCX0Yi87Khu0A" target="_1HiU0GHXEeCX0Yi87Khu0A" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Ndkuw2HcEeCX0Yi87Khu0A" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NdkuxGHcEeCX0Yi87Khu0A" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_NdkuwWHcEeCX0Yi87Khu0A" fontName="Tempus Sans ITC" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_Ndbk0GHcEeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NdkuwmHcEeCX0Yi87Khu0A" points="[0, 7, 0, 7]$[0, 7, 0, 7]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Nd4QwGHcEeCX0Yi87Khu0A" id="(0.5,0.07)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Nd4QwWHcEeCX0Yi87Khu0A" id="(0.56,0.93)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_pQerMGTgEeCLCuJcSSYRDQ" type="4002" source="_kYJqUGTgEeCLCuJcSSYRDQ" target="_x_EEkGTjEeCLCuJcSSYRDQ" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_pQerM2TgEeCLCuJcSSYRDQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_pQerNGTgEeCLCuJcSSYRDQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_pQerMWTgEeCLCuJcSSYRDQ" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_pO_dcGTgEeCLCuJcSSYRDQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pQerMmTgEeCLCuJcSSYRDQ" points="[-40, -80, -40, -80]$[-40, -80, -40, -80]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pQ7XIGTgEeCLCuJcSSYRDQ" id="(0.42,0.16)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pQ7XIWTgEeCLCuJcSSYRDQ" id="(0.6153846153846154,0.8)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NUsq4GTiEeCLCuJcSSYRDQ" type="4002" source="_LptIsGTiEeCLCuJcSSYRDQ" target="_x_EEkGTjEeCLCuJcSSYRDQ" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_NUsq42TiEeCLCuJcSSYRDQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NU2b4GTiEeCLCuJcSSYRDQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_NUsq4WTiEeCLCuJcSSYRDQ" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_NUi54GTiEeCLCuJcSSYRDQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NUsq4mTiEeCLCuJcSSYRDQ" points="[2, 10, 2, 10]$[2, 10, 2, 10]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NVJW0GTiEeCLCuJcSSYRDQ" id="(0.35,0.08)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NVJW0WTiEeCLCuJcSSYRDQ" id="(0.5846153846153846,0.9)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_y-_QgGTjEeCLCuJcSSYRDQ" type="4002" source="_x_EEkGTjEeCLCuJcSSYRDQ" target="_1HiU0GHXEeCX0Yi87Khu0A" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_y-_Qg2TjEeCLCuJcSSYRDQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y-_QhGTjEeCLCuJcSSYRDQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_y-_QgWTjEeCLCuJcSSYRDQ" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_Ya678GTjEeCLCuJcSSYRDQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_y-_QgmTjEeCLCuJcSSYRDQ" points="[65, -4, -136, 8]$[151, -10, -50, 2]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3ubtIGaOEeCm5tXW4raF-A" type="4002" source="_zS3gwGaOEeCm5tXW4raF-A" target="_1HiU0GHXEeCX0Yi87Khu0A" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3ubtI2aOEeCm5tXW4raF-A" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3uleIGaOEeCm5tXW4raF-A" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3ubtIWaOEeCm5tXW4raF-A" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_3sWpgGaOEeCm5tXW4raF-A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3ubtImaOEeCm5tXW4raF-A" points="[8, -7, -250, 212]$[264, -313, 6, -94]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3uvPIGaOEeCm5tXW4raF-A" id="(0.43119266055045874,0.07)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3uvPIWaOEeCm5tXW4raF-A" id="(0.47,0.94)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_7jQbEGHXEeCX0Yi87Khu0A" type="PapyrusUMLClassDiagram" name="datatype" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_8fKCoGHXEeCX0Yi87Khu0A" type="2009" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8fKComHXEeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8fKCo2HXEeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8fKCpGHXEeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8fKCpWHXEeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8fKCpmHXEeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8fKCp2HXEeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BAijIGHYEeCX0Yi87Khu0A" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_C6IiAGHYEeCX0Yi87Khu0A" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_C6IiAWHYEeCX0Yi87Khu0A" key="StereotypeList" value="Ecore::EDataType"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_C6IiAmHYEeCX0Yi87Khu0A" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_C6IiA2HYEeCX0Yi87Khu0A" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_C6IiBGHYEeCX0Yi87Khu0A" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8fKCqGHXEeCX0Yi87Khu0A" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="jdtmm.uml#_8e3HsGHXEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8fKCoWHXEeCX0Yi87Khu0A" x="168" y="126"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_W3rhcGQ8EeCX0Yi87Khu0A" type="2009" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_W3rhcmQ8EeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_W3rhc2Q8EeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_W3rhdGQ8EeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_W3rhdWQ8EeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_W3rhdmQ8EeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_W3rhd2Q8EeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YP5RkGQ8EeCX0Yi87Khu0A" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZfU5IGQ8EeCX0Yi87Khu0A" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZfU5IWQ8EeCX0Yi87Khu0A" key="StereotypeList" value="Ecore::EDataType"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZfU5ImQ8EeCX0Yi87Khu0A" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZfU5I2Q8EeCX0Yi87Khu0A" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZfU5JGQ8EeCX0Yi87Khu0A" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_W3rheGQ8EeCX0Yi87Khu0A" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="jdtmm.uml#_W3PckGQ8EeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_W3rhcWQ8EeCX0Yi87Khu0A" x="330" y="126"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9S2xcGQ9EeC0ouwfA8DHnA" type="2009" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9S2xcmQ9EeC0ouwfA8DHnA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9S2xc2Q9EeC0ouwfA8DHnA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9S2xdGQ9EeC0ouwfA8DHnA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9S2xdWQ9EeC0ouwfA8DHnA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9S2xdmQ9EeC0ouwfA8DHnA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9S2xd2Q9EeC0ouwfA8DHnA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ap4XoGQ-EeC0ouwfA8DHnA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lrw8oGRDEeC0ouwfA8DHnA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lrw8oWRDEeC0ouwfA8DHnA" key="StereotypeList" value="Ecore::EDataType"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lrw8omRDEeC0ouwfA8DHnA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lrw8o2RDEeC0ouwfA8DHnA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lrw8pGRDEeC0ouwfA8DHnA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9S2xeGQ9EeC0ouwfA8DHnA" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="jdtmm.uml#_9SaFgGQ9EeC0ouwfA8DHnA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9S2xcWQ9EeC0ouwfA8DHnA" x="540" y="126"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_R5C84GQ_EeC0ouwfA8DHnA" type="2009" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_R5C84mQ_EeC0ouwfA8DHnA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_R5C842Q_EeC0ouwfA8DHnA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_R5C85GQ_EeC0ouwfA8DHnA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_R5C85WQ_EeC0ouwfA8DHnA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_R5C85mQ_EeC0ouwfA8DHnA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_R5C852Q_EeC0ouwfA8DHnA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TbY5YGQ_EeC0ouwfA8DHnA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VPxBEGQ_EeC0ouwfA8DHnA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VPxBEWQ_EeC0ouwfA8DHnA" key="StereotypeList" value="Ecore::EDataType"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VPxBEmQ_EeC0ouwfA8DHnA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VPxBE2Q_EeC0ouwfA8DHnA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VPxBFGQ_EeC0ouwfA8DHnA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_R5C86GQ_EeC0ouwfA8DHnA" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="jdtmm.uml#_R4mQ8GQ_EeC0ouwfA8DHnA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_R5C84WQ_EeC0ouwfA8DHnA" x="177" y="278"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3hWjQGdmEeCm5tXW4raF-A" type="2009" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3hWjQmdmEeCm5tXW4raF-A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3hWjQ2dmEeCm5tXW4raF-A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3hWjRGdmEeCm5tXW4raF-A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3hWjRWdmEeCm5tXW4raF-A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3hWjRmdmEeCm5tXW4raF-A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3hWjR2dmEeCm5tXW4raF-A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5v9I0GdmEeCm5tXW4raF-A" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7e-PYGdmEeCm5tXW4raF-A" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7e-PYWdmEeCm5tXW4raF-A" key="StereotypeList" value="Ecore::EDataType"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7e-PYmdmEeCm5tXW4raF-A" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7e-PY2dmEeCm5tXW4raF-A" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7e-PZGdmEeCm5tXW4raF-A" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3hWjSGdmEeCm5tXW4raF-A" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="jdtmm.uml#_3gm8YGdmEeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3hWjQWdmEeCm5tXW4raF-A" x="366" y="276" width="145" height="67"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_n5eWIYXIEeCQsIB6sI2lFg" type="2006" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_n5eWI4XIEeCQsIB6sI2lFg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_n5eWJIXIEeCQsIB6sI2lFg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_n5eWJYXIEeCQsIB6sI2lFg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_n5eWJoXIEeCQsIB6sI2lFg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_n5eWJ4XIEeCQsIB6sI2lFg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_n5eWKIXIEeCQsIB6sI2lFg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_n5eWKYXIEeCQsIB6sI2lFg" type="5023"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_n5eWKoXIEeCQsIB6sI2lFg" type="7015">
+ <children xmi:type="notation:Shape" xmi:id="_sxTAsIXIEeCQsIB6sI2lFg" type="3017" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="jdtmm.uml#_sxJ2wIXIEeCQsIB6sI2lFg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sxTAsYXIEeCQsIB6sI2lFg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uFzVgIXIEeCQsIB6sI2lFg" type="3017" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="jdtmm.uml#_uFpkgIXIEeCQsIB6sI2lFg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uFzVgYXIEeCQsIB6sI2lFg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_vJpYIYXIEeCQsIB6sI2lFg" type="3017" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="jdtmm.uml#_vJpYIIXIEeCQsIB6sI2lFg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vJpYIoXIEeCQsIB6sI2lFg"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_n5eWK4XIEeCQsIB6sI2lFg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_n5eWLIXIEeCQsIB6sI2lFg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_n5eWLYXIEeCQsIB6sI2lFg"/>
+ </children>
+ <element xmi:type="uml:Enumeration" href="jdtmm.uml#_n5eWIIXIEeCQsIB6sI2lFg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_n5eWIoXIEeCQsIB6sI2lFg" x="667" y="227"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_7jaMEGHXEeCX0Yi87Khu0A"/>
+ <element xmi:type="uml:Model" href="jdtmm.uml#_zfh1MGHXEeCX0Yi87Khu0A"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_q89k8GHcEeCX0Yi87Khu0A" type="PapyrusUMLClassDiagram" name="Parent Hierarchy" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_tROtoGHcEeCX0Yi87Khu0A" type="2008" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tROtomHcEeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tROto2HcEeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tROtpGHcEeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tROtpWHcEeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tROtpmHcEeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tROtp2HcEeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tROtqGHcEeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tROtqWHcEeCX0Yi87Khu0A" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tROtqmHcEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tROtq2HcEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tROtrGHcEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tROtrWHcEeCX0Yi87Khu0A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tROtrmHcEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tROtr2HcEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tROtsGHcEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tROtsWHcEeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tROtsmHcEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tROts2HcEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tROttGHcEeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_tQ7LoGHcEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tROtoWHcEeCX0Yi87Khu0A" x="432" y="42"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_vKhKgGHcEeCX0Yi87Khu0A" type="2008" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vKhKgmHcEeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vKhKg2HcEeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vKhKhGHcEeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vKhKhWHcEeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vKhKhmHcEeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vKhKh2HcEeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vKhKiGHcEeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_vKhKiWHcEeCX0Yi87Khu0A" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_vKhKimHcEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_vKhKi2HcEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vKhKjGHcEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_vKhKjWHcEeCX0Yi87Khu0A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_vKhKjmHcEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_vKhKj2HcEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vKhKkGHcEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_vKhKkWHcEeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_vKhKkmHcEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_vKhKk2HcEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vKhKlGHcEeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_FVjbkGHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vKhKgWHcEeCX0Yi87Khu0A" x="282" y="354"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_x1lpoGHcEeCX0Yi87Khu0A" type="2008" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_x1lpomHcEeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_x1lpo2HcEeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_x1lppGHcEeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_x1lppWHcEeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_x1lppmHcEeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_x1lpp2HcEeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_x1lpqGHcEeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_x1lpqWHcEeCX0Yi87Khu0A" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_x1lpqmHcEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_x1lpq2HcEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x1lprGHcEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_x1lprWHcEeCX0Yi87Khu0A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_x1lprmHcEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_x1lpr2HcEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x1lpsGHcEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_x1lpsWHcEeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_x1lpsmHcEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_x1lps2HcEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x1lptGHcEeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_YYUh4GHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x1lpoWHcEeCX0Yi87Khu0A" x="444" y="354"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_zfFXAGHcEeCX0Yi87Khu0A" type="2008" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zfFXAmHcEeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zfFXA2HcEeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zfFXBGHcEeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zfFXBWHcEeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zfFXBmHcEeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zfFXB2HcEeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zfFXCGHcEeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_zfFXCWHcEeCX0Yi87Khu0A" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_zfFXCmHcEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_zfFXC2HcEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zfFXDGHcEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_zfFXDWHcEeCX0Yi87Khu0A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_zfFXDmHcEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_zfFXD2HcEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zfFXEGHcEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_zfFXEWHcEeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_zfFXEmHcEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_zfFXE2HcEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zfFXFGHcEeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_fh7o4GHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zfFXAWHcEeCX0Yi87Khu0A" x="144" y="354"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0q7fEGHcEeCX0Yi87Khu0A" type="2008" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0q7fEmHcEeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0q7fE2HcEeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0q7fFGHcEeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0q7fFWHcEeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0q7fFmHcEeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0q7fF2HcEeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0q7fGGHcEeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0q7fGWHcEeCX0Yi87Khu0A" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0q7fGmHcEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0q7fG2HcEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0q7fHGHcEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0q7fHWHcEeCX0Yi87Khu0A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0q7fHmHcEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0q7fH2HcEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0q7fIGHcEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0q7fIWHcEeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0q7fImHcEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0q7fI2HcEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0q7fJGHcEeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_0qyVIGHcEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0q7fEWHcEeCX0Yi87Khu0A" x="1026" y="354"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3JVbMGHcEeCX0Yi87Khu0A" type="2008" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3JVbMmHcEeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3JVbM2HcEeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3JVbNGHcEeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3JVbNWHcEeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3JVbNmHcEeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3JVbN2HcEeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3JVbOGHcEeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3JVbOWHcEeCX0Yi87Khu0A" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3JVbOmHcEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3JVbO2HcEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3JVbPGHcEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3JVbPWHcEeCX0Yi87Khu0A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3JVbPmHcEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3JVbP2HcEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3JVbQGHcEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3JVbQWHcEeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3JVbQmHcEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3JVbQ2HcEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3JVbRGHcEeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_3JLqMGHcEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3JVbMWHcEeCX0Yi87Khu0A" x="858" y="354"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CHUywGHdEeCX0Yi87Khu0A" type="2008" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CHUywmHdEeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CHUyw2HdEeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CHUyxGHdEeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CHUyxWHdEeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CHUyxmHdEeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CHUyx2HdEeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CHUyyGHdEeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CHUyyWHdEeCX0Yi87Khu0A" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CHUyymHdEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CHUyy2HdEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CHUyzGHdEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CHUyzWHdEeCX0Yi87Khu0A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CHUyzmHdEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CHUyz2HdEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CHUy0GHdEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CHUy0WHdEeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CHUy0mHdEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CHUy02HdEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CHUy1GHdEeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_IPXhUGHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CHUywWHdEeCX0Yi87Khu0A" x="156" y="516"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Eqy1EGHdEeCX0Yi87Khu0A" type="2008" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Eqy1EmHdEeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Eqy1E2HdEeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Eqy1FGHdEeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Eqy1FWHdEeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Eqy1FmHdEeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Eqy1F2HdEeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Eqy1GGHdEeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Eqy1GWHdEeCX0Yi87Khu0A" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Eqy1GmHdEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Eqy1G2HdEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Eqy1HGHdEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Eqy1HWHdEeCX0Yi87Khu0A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Eqy1HmHdEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Eqy1H2HdEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Eqy1IGHdEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Eqy1IWHdEeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Eqy1ImHdEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Eqy1I2HdEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Eqy1JGHdEeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_Ko2hMGHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Eqy1EWHdEeCX0Yi87Khu0A" x="276" y="516"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Hfi0oGHdEeCX0Yi87Khu0A" type="2008" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Hfi0omHdEeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Hfi0o2HdEeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Hfi0pGHdEeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Hfi0pWHdEeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Hfi0pmHdEeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Hfi0p2HdEeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Hfi0qGHdEeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Hfi0qWHdEeCX0Yi87Khu0A" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Hfi0qmHdEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Hfi0q2HdEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hfi0rGHdEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Hfi0rWHdEeCX0Yi87Khu0A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Hfi0rmHdEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Hfi0r2HdEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hfi0sGHdEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Hfi0sWHdEeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Hfi0smHdEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Hfi0s2HdEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hfi0tGHdEeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_JO_yUGHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hfi0oWHdEeCX0Yi87Khu0A" x="402" y="516"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_KMZccGHdEeCX0Yi87Khu0A" type="2008" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KMZccmHdEeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KMZcc2HdEeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KMZcdGHdEeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KMZcdWHdEeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KMZcdmHdEeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KMZcd2HdEeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_KMZceGHdEeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_KMZceWHdEeCX0Yi87Khu0A" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_KMZcemHdEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_KMZce2HdEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KMZcfGHdEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_KMZcfWHdEeCX0Yi87Khu0A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_KMZcfmHdEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_KMZcf2HdEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KMZcgGHdEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_KMZcgWHdEeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_KMZcgmHdEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_KMZcg2HdEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KMZchGHdEeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_aJkdEGHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KMZccWHdEeCX0Yi87Khu0A" x="534" y="516"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0VepsGTgEeCLCuJcSSYRDQ" type="2008" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0VepsmTgEeCLCuJcSSYRDQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0Veps2TgEeCLCuJcSSYRDQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0VeptGTgEeCLCuJcSSYRDQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0VeptWTgEeCLCuJcSSYRDQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0VeptmTgEeCLCuJcSSYRDQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0Vept2TgEeCLCuJcSSYRDQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0VepuGTgEeCLCuJcSSYRDQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0VepuWTgEeCLCuJcSSYRDQ" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0VepumTgEeCLCuJcSSYRDQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0Vepu2TgEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0VepvGTgEeCLCuJcSSYRDQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0VepvWTgEeCLCuJcSSYRDQ" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0VepvmTgEeCLCuJcSSYRDQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0Vepv2TgEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0VepwGTgEeCLCuJcSSYRDQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0VepwWTgEeCLCuJcSSYRDQ" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0VepwmTgEeCLCuJcSSYRDQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0Vepw2TgEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0VepxGTgEeCLCuJcSSYRDQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_kWqckGTgEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0VepsWTgEeCLCuJcSSYRDQ" x="738" y="354"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WfXDoGTiEeCLCuJcSSYRDQ" type="2008" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WfXDomTiEeCLCuJcSSYRDQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WfXDo2TiEeCLCuJcSSYRDQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WfXDpGTiEeCLCuJcSSYRDQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WfXDpWTiEeCLCuJcSSYRDQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WfXDpmTiEeCLCuJcSSYRDQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WfXDp2TiEeCLCuJcSSYRDQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WfXDqGTiEeCLCuJcSSYRDQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_WfXDqWTiEeCLCuJcSSYRDQ" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_WfXDqmTiEeCLCuJcSSYRDQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_WfXDq2TiEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WfXDrGTiEeCLCuJcSSYRDQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_WfXDrWTiEeCLCuJcSSYRDQ" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_WfXDrmTiEeCLCuJcSSYRDQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_WfXDr2TiEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WfXDsGTiEeCLCuJcSSYRDQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_WfXDsWTiEeCLCuJcSSYRDQ" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_WfXDsmTiEeCLCuJcSSYRDQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_WfXDs2TiEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WfXDtGTiEeCLCuJcSSYRDQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_LpaNwGTiEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WfXDoWTiEeCLCuJcSSYRDQ" x="618" y="354"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_X5t24GTkEeCLCuJcSSYRDQ" type="2008" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_X5t24mTkEeCLCuJcSSYRDQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_X5t242TkEeCLCuJcSSYRDQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_X5t25GTkEeCLCuJcSSYRDQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_X5t25WTkEeCLCuJcSSYRDQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_X5t25mTkEeCLCuJcSSYRDQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_X5t252TkEeCLCuJcSSYRDQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_X5t26GTkEeCLCuJcSSYRDQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_X5t26WTkEeCLCuJcSSYRDQ" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_X5t26mTkEeCLCuJcSSYRDQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_X5t262TkEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_X5t27GTkEeCLCuJcSSYRDQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_X5t27WTkEeCLCuJcSSYRDQ" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_X5t27mTkEeCLCuJcSSYRDQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_X5t272TkEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_X5t28GTkEeCLCuJcSSYRDQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_X5t28WTkEeCLCuJcSSYRDQ" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_X5t28mTkEeCLCuJcSSYRDQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_X5t282TkEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_X5t29GTkEeCLCuJcSSYRDQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_OtGLwGTjEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_X5t24WTkEeCLCuJcSSYRDQ" x="408" y="192"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_q89k8WHcEeCX0Yi87Khu0A"/>
+ <element xmi:type="uml:Model" href="jdtmm.uml#_zfh1MGHXEeCX0Yi87Khu0A"/>
+ <edges xmi:type="notation:Connector" xmi:id="_6TGBcGHcEeCX0Yi87Khu0A" type="4002" source="_0q7fEGHcEeCX0Yi87Khu0A" target="_X5t24GTkEeCLCuJcSSYRDQ" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_6TPycGHcEeCX0Yi87Khu0A" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6TPycWHcEeCX0Yi87Khu0A" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_6TGBcWHcEeCX0Yi87Khu0A" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_6SzGgGHcEeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_6TGBcmHcEeCX0Yi87Khu0A" points="[13, 8, 13, 8]$[13, 8, 13, 8]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6TseYGHcEeCX0Yi87Khu0A" id="(0.45161290322580644,0.12)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6TseYWHcEeCX0Yi87Khu0A" id="(0.9,0.85)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7HZMMGHcEeCX0Yi87Khu0A" type="4002" source="_3JVbMGHcEeCX0Yi87Khu0A" target="_X5t24GTkEeCLCuJcSSYRDQ" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_7HZMM2HcEeCX0Yi87Khu0A" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7HZMNGHcEeCX0Yi87Khu0A" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_7HZMMWHcEeCX0Yi87Khu0A" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_7HGRQGHcEeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7HZMMmHcEeCX0Yi87Khu0A" points="[12, 17, 12, 17]$[12, 17, 12, 17]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7H14IGHcEeCX0Yi87Khu0A" id="(0.5,0.11)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7H14IWHcEeCX0Yi87Khu0A" id="(0.6923076923076923,0.83)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_CHntsGHdEeCX0Yi87Khu0A" type="4002" source="_CHUywGHdEeCX0Yi87Khu0A" target="_vKhKgGHcEeCX0Yi87Khu0A" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CHnts2HdEeCX0Yi87Khu0A" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CHnttGHdEeCX0Yi87Khu0A" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_CHntsWHdEeCX0Yi87Khu0A" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_Mi5MAGHYEeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CHntsmHdEeCX0Yi87Khu0A" points="[0, 0, -386, -248]$[336, 215, -50, -33]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ErPhAGHdEeCX0Yi87Khu0A" type="4002" source="_Eqy1EGHdEeCX0Yi87Khu0A" target="_vKhKgGHcEeCX0Yi87Khu0A" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ErPhA2HdEeCX0Yi87Khu0A" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ErPhBGHdEeCX0Yi87Khu0A" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ErPhAWHdEeCX0Yi87Khu0A" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_NyUMgGHYEeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ErPhAmHdEeCX0Yi87Khu0A" points="[0, 0, -386, -248]$[336, 215, -50, -33]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Hf_gkGHdEeCX0Yi87Khu0A" type="4002" source="_Hfi0oGHdEeCX0Yi87Khu0A" target="_vKhKgGHcEeCX0Yi87Khu0A" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Hf_gk2HdEeCX0Yi87Khu0A" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Hf_glGHdEeCX0Yi87Khu0A" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Hf_gkWHdEeCX0Yi87Khu0A" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_NGzKUGHYEeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Hf_gkmHdEeCX0Yi87Khu0A" points="[0, 0, -386, -248]$[336, 215, -50, -33]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_KM_SUGHdEeCX0Yi87Khu0A" type="4002" source="_KMZccGHdEeCX0Yi87Khu0A" target="_x1lpoGHcEeCX0Yi87Khu0A" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_KM_SU2HdEeCX0Yi87Khu0A" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KM_SVGHdEeCX0Yi87Khu0A" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_KM_SUWHdEeCX0Yi87Khu0A" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_CLcIoGHbEeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KM_SUmHdEeCX0Yi87Khu0A" points="[0, 0, -548, -248]$[498, 225, -50, -23]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_X6UT0GTkEeCLCuJcSSYRDQ" type="4002" source="_X5t24GTkEeCLCuJcSSYRDQ" target="_tROtoGHcEeCX0Yi87Khu0A" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_X6eE0GTkEeCLCuJcSSYRDQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_X6eE0WTkEeCLCuJcSSYRDQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_X6UT0WTkEeCLCuJcSSYRDQ" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_WuJREGTjEeCLCuJcSSYRDQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_X6UT0mTkEeCLCuJcSSYRDQ" points="[0, 0, -536, -74]$[486, 67, -50, -7]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_HJBEYGTlEeCLCuJcSSYRDQ" type="4002" source="_vKhKgGHcEeCX0Yi87Khu0A" target="_X5t24GTkEeCLCuJcSSYRDQ" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_HJBEY2TlEeCLCuJcSSYRDQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_HJBEZGTlEeCLCuJcSSYRDQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_HJBEYWTlEeCLCuJcSSYRDQ" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_HoB0gGHYEeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HJBEYmTlEeCLCuJcSSYRDQ" points="[45, -50, -97, 106]$[96, -106, -46, 50]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Kkz10GTlEeCLCuJcSSYRDQ" type="4002" source="_x1lpoGHcEeCX0Yi87Khu0A" target="_X5t24GTkEeCLCuJcSSYRDQ" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Kkz102TlEeCLCuJcSSYRDQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Kkz11GTlEeCLCuJcSSYRDQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Kkz10WTlEeCLCuJcSSYRDQ" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_BUmnQGHbEeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Kkz10mTlEeCLCuJcSSYRDQ" points="[-7, -50, 13, 106]$[-14, -106, 6, 50]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_N2dz0GTlEeCLCuJcSSYRDQ" type="4002" source="_WfXDoGTiEeCLCuJcSSYRDQ" target="_X5t24GTkEeCLCuJcSSYRDQ" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_N2dz02TlEeCLCuJcSSYRDQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_N2dz1GTlEeCLCuJcSSYRDQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_N2dz0WTlEeCLCuJcSSYRDQ" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_NUi54GTiEeCLCuJcSSYRDQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_N2dz0mTlEeCLCuJcSSYRDQ" points="[-50, -41, 144, 115]$[-132, -106, 62, 50]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_PhAqEGTlEeCLCuJcSSYRDQ" type="4002" source="_0VepsGTgEeCLCuJcSSYRDQ" target="_X5t24GTkEeCLCuJcSSYRDQ" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_PhKbEGTlEeCLCuJcSSYRDQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_PhKbEWTlEeCLCuJcSSYRDQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_PhAqEWTlEeCLCuJcSSYRDQ" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_pO_dcGTgEeCLCuJcSSYRDQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_PhAqEmTlEeCLCuJcSSYRDQ" points="[-50, -25, 264, 131]$[-247, -123, 67, 33]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_RtOqAGTlEeCLCuJcSSYRDQ" type="4002" source="_zfFXAGHcEeCX0Yi87Khu0A" target="_X5t24GTkEeCLCuJcSSYRDQ" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_RtOqA2TlEeCLCuJcSSYRDQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RtOqBGTlEeCLCuJcSSYRDQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_RtOqAWTlEeCLCuJcSSYRDQ" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_MEnXwGHcEeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RtOqAmTlEeCLCuJcSSYRDQ" points="[57, -33, -216, 123]$[207, -119, -66, 37]"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_Ctp9gGHeEeCX0Yi87Khu0A" type="PapyrusUMLClassDiagram" name="JDTParent" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_D20lAGHeEeCX0Yi87Khu0A" type="2008" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D20lAmHeEeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D20lA2HeEeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D20lBGHeEeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D20lBWHeEeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D20lBmHeEeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D20lB2HeEeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_D20lCGHeEeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_D20lCWHeEeCX0Yi87Khu0A" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_JroPgGQ_EeC0ouwfA8DHnA" type="3012" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="jdtmm.uml#_JrLjkGQ_EeC0ouwfA8DHnA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JroPgWQ_EeC0ouwfA8DHnA"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_D20lCmHeEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_D20lC2HeEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D20lDGHeEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_D20lDWHeEeCX0Yi87Khu0A" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_LxzmIGRxEeC0ouwfA8DHnA" type="3013" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="jdtmm.uml#_LxNwQGRxEeC0ouwfA8DHnA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LxzmIWRxEeC0ouwfA8DHnA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NQIlUGRxEeC0ouwfA8DHnA" type="3013" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="jdtmm.uml#_NPiIYGRxEeC0ouwfA8DHnA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NQIlUWRxEeC0ouwfA8DHnA"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_D20lDmHeEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_D20lD2HeEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D20lEGHeEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_D20lEWHeEeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_D20lEmHeEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_D20lE2HeEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D20lFGHeEeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_tQ7LoGHcEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D20lAWHeEeCX0Yi87Khu0A" x="72" y="96" height="157"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Hb_78GHeEeCX0Yi87Khu0A" type="2008" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Hb_78mHeEeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Hb_782HeEeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Hb_79GHeEeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Hb_79WHeEeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Hb_79mHeEeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Hb_792HeEeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Hb_7-GHeEeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Hb_7-WHeEeCX0Yi87Khu0A" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_zg0sIGQ8EeC0ouwfA8DHnA" type="3012" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="jdtmm.uml#_NhspgGQ8EeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zg0sIWQ8EeC0ouwfA8DHnA" x="39" y="15"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0koSgGQ8EeC0ouwfA8DHnA" type="3012" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="jdtmm.uml#_0i1iwGQ8EeC0ouwfA8DHnA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0koSgWQ8EeC0ouwfA8DHnA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_YGPw4GQ9EeC0ouwfA8DHnA" type="3012" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="jdtmm.uml#_YFzE8GQ9EeC0ouwfA8DHnA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YGPw4WQ9EeC0ouwfA8DHnA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8d_acGkpEeCdmowH5XgRBA" type="3012" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:Property" href="jdtmm.uml#_8N7lMGkpEeCdmowH5XgRBA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8d_acWkpEeCdmowH5XgRBA"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Hb_7-mHeEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Hb_7-2HeEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hb_7_GHeEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Hb_7_WHeEeCX0Yi87Khu0A" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_heAxgGQ9EeC0ouwfA8DHnA" type="3013" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="jdtmm.uml#_hdksoGQ9EeC0ouwfA8DHnA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_heAxgWQ9EeC0ouwfA8DHnA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7OFdUGQ9EeC0ouwfA8DHnA" type="3013" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="jdtmm.uml#_7NoxYGQ9EeC0ouwfA8DHnA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7OFdUWQ9EeC0ouwfA8DHnA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Hwl4sGh9EeCx9v9J-w9ljA" type="3013" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="jdtmm.uml#_HskUUGh9EeCx9v9J-w9ljA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Hwl4sWh9EeCx9v9J-w9ljA"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Hb_7_mHeEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Hb_7_2HeEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hb_8AGHeEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Hb_8AWHeEeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Hb_8AmHeEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Hb_8A2HeEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hb_8BGHeEeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_1FwMIGHXEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hb_78WHeEeCX0Yi87Khu0A" x="492" y="96"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_OtZGsGTjEeCLCuJcSSYRDQ" type="2008" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OtZGsmTjEeCLCuJcSSYRDQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OtZGs2TjEeCLCuJcSSYRDQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OtZGtGTjEeCLCuJcSSYRDQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OtZGtWTjEeCLCuJcSSYRDQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OtZGtmTjEeCLCuJcSSYRDQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OtZGt2TjEeCLCuJcSSYRDQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_OtZGuGTjEeCLCuJcSSYRDQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_OtZGuWTjEeCLCuJcSSYRDQ" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_OtZGumTjEeCLCuJcSSYRDQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_OtZGu2TjEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OtZGvGTjEeCLCuJcSSYRDQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_OtZGvWTjEeCLCuJcSSYRDQ" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_OtZGvmTjEeCLCuJcSSYRDQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_OtZGv2TjEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OtZGwGTjEeCLCuJcSSYRDQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_OtZGwWTjEeCLCuJcSSYRDQ" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_OtZGwmTjEeCLCuJcSSYRDQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_OtZGw2TjEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OtZGxGTjEeCLCuJcSSYRDQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_OtGLwGTjEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OtZGsWTjEeCLCuJcSSYRDQ" x="348" y="396" width="211"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_sFnk8GTjEeCLCuJcSSYRDQ" type="2012" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sFnk8mTjEeCLCuJcSSYRDQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sFnk82TjEeCLCuJcSSYRDQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sFnk9GTjEeCLCuJcSSYRDQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sFnk9WTjEeCLCuJcSSYRDQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sFnk9mTjEeCLCuJcSSYRDQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sFnk92TjEeCLCuJcSSYRDQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_sFnk-GTjEeCLCuJcSSYRDQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="jdtmm.uml#_bCHAoGTjEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sFnk8WTjEeCLCuJcSSYRDQ" x="606" y="402" width="283" height="67"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Ctp9gWHeEeCX0Yi87Khu0A"/>
+ <element xmi:type="uml:Model" href="jdtmm.uml#_zfh1MGHXEeCX0Yi87Khu0A"/>
+ <edges xmi:type="notation:Connector" xmi:id="_Jr8lUGHeEeCX0Yi87Khu0A" type="4001" source="_D20lAGHeEeCX0Yi87Khu0A" target="_Hb_78GHeEeCX0Yi87Khu0A" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_JsFvQGHeEeCX0Yi87Khu0A" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JsFvQWHeEeCX0Yi87Khu0A" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JsFvQmHeEeCX0Yi87Khu0A" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JsFvQ2HeEeCX0Yi87Khu0A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JsFvRGHeEeCX0Yi87Khu0A" type="6003">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LwaXcGHeEeCX0Yi87Khu0A" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LwaXcWHeEeCX0Yi87Khu0A" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JsFvRWHeEeCX0Yi87Khu0A" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JsFvRmHeEeCX0Yi87Khu0A" type="6005">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MHXe4GHeEeCX0Yi87Khu0A" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MHXe4WHeEeCX0Yi87Khu0A" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JsFvR2HeEeCX0Yi87Khu0A" x="-7" y="19"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JsFvSGHeEeCX0Yi87Khu0A" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JsFvSWHeEeCX0Yi87Khu0A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JsFvSmHeEeCX0Yi87Khu0A" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JsFvS2HeEeCX0Yi87Khu0A" x="-20" y="-22"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Jr8lUWHeEeCX0Yi87Khu0A" fontHeight="8"/>
+ <element xmi:type="uml:Association" href="jdtmm.uml#_JrpDU2HeEeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Jr8lUmHeEeCX0Yi87Khu0A" points="[-4, 1, 208, 0]$[-304, 11, -92, 10]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JsZRQGHeEeCX0Yi87Khu0A" id="(0.04,0.44)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JsZRQWHeEeCX0Yi87Khu0A" id="(0.92,0.45)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WucMAGTjEeCLCuJcSSYRDQ" type="4002" source="_OtZGsGTjEeCLCuJcSSYRDQ" target="_D20lAGHeEeCX0Yi87Khu0A" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_WucMA2TjEeCLCuJcSSYRDQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WucMBGTjEeCLCuJcSSYRDQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_WucMAWTjEeCLCuJcSSYRDQ" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_WuJREGTjEeCLCuJcSSYRDQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WucMAmTjEeCLCuJcSSYRDQ" points="[-7, -10, 92, 148]$[-93, -153, 6, 5]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Wu438GTjEeCLCuJcSSYRDQ" id="(0.3175355450236967,0.1)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Wu438WTjEeCLCuJcSSYRDQ" id="(0.8152866242038217,0.9681528662420382)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_YbN24GTjEeCLCuJcSSYRDQ" type="4002" source="_OtZGsGTjEeCLCuJcSSYRDQ" target="_Hb_78GHeEeCX0Yi87Khu0A" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_YbN242TjEeCLCuJcSSYRDQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YbN25GTjEeCLCuJcSSYRDQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_YbN24WTjEeCLCuJcSSYRDQ" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_Ya678GTjEeCLCuJcSSYRDQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YbN24mTjEeCLCuJcSSYRDQ" points="[6, -12, -81, 155]$[145, -312, 58, -145]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Yb0T0GTjEeCLCuJcSSYRDQ" id="(0.5402843601895735,0.12)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Yb0T0WTjEeCLCuJcSSYRDQ" id="(0.3556701030927835,0.9602649006622517)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_396V8GHgEeCX0Yi87Khu0A" type="PapyrusUMLClassDiagram" name="JDTType" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_42iAAGHgEeCX0Yi87Khu0A" type="2008" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_42iAAmHgEeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_42iAA2HgEeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_42iABGHgEeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_42iABWHgEeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_42iABmHgEeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_42iAB2HgEeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_42iACGHgEeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_42iACWHgEeCX0Yi87Khu0A" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_PJzvcGQ_EeC0ouwfA8DHnA" type="3012" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_M7OikGRAEeC0ouwfA8DHnA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ONL5sGRAEeC0ouwfA8DHnA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ONL5sWRAEeC0ouwfA8DHnA" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ONL5smRAEeC0ouwfA8DHnA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ONL5s2RAEeC0ouwfA8DHnA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ONL5tGRAEeC0ouwfA8DHnA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="jdtmm.uml#_PJXDgGQ_EeC0ouwfA8DHnA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_PJzvcWQ_EeC0ouwfA8DHnA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZeXvgGQ_EeC0ouwfA8DHnA" type="3012" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="jdtmm.uml#_Zd7DkGQ_EeC0ouwfA8DHnA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZeXvgWQ_EeC0ouwfA8DHnA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_bcJDwGQ_EeC0ouwfA8DHnA" type="3012" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="jdtmm.uml#_bbim0GQ_EeC0ouwfA8DHnA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bcJDwWQ_EeC0ouwfA8DHnA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wJCh4GRFEeC0ouwfA8DHnA" type="3012" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="jdtmm.uml#_wIvm8GRFEeC0ouwfA8DHnA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wJCh4WRFEeC0ouwfA8DHnA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_yey4UGRFEeC0ouwfA8DHnA" type="3012" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="jdtmm.uml#_yeWMYGRFEeC0ouwfA8DHnA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yey4UWRFEeC0ouwfA8DHnA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AzuroGRIEeC0ouwfA8DHnA" type="3012" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="jdtmm.uml#_Azk6oGRIEeC0ouwfA8DHnA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AzuroWRIEeC0ouwfA8DHnA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ujkYsWaREeCm5tXW4raF-A" type="3012" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="jdtmm.uml#_ujkYsGaREeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ujkYsmaREeCm5tXW4raF-A"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_z6mHwWaREeCm5tXW4raF-A" type="3012" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="jdtmm.uml#_z6mHwGaREeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_z6mHwmaREeCm5tXW4raF-A"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_42iACmHgEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_42iAC2HgEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_42iADGHgEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_42iADWHgEeCX0Yi87Khu0A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_42iADmHgEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_42iAD2HgEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_42iAEGHgEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_42iAEWHgEeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_42iAEmHgEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_42iAE2HgEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_42iAFGHgEeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_Ko2hMGHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_42iAAWHgEeCX0Yi87Khu0A" x="444" y="456" width="178" height="343"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6ejGsGHgEeCX0Yi87Khu0A" type="2008" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6ejGsmHgEeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6ejGs2HgEeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6ejGtGHgEeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6ejGtWHgEeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6ejGtmHgEeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6ejGt2HgEeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6ejGuGHgEeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_6ejGuWHgEeCX0Yi87Khu0A" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_TNOIMGd5EeCm5tXW4raF-A" type="3012" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aoaucGd5EeCm5tXW4raF-A" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bz0KkGd5EeCm5tXW4raF-A" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bz0KkWd5EeCm5tXW4raF-A" key="StereotypeList" value="Ecore::EAttribute"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bz0Kkmd5EeCm5tXW4raF-A" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bz0Kk2d5EeCm5tXW4raF-A" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bz0KlGd5EeCm5tXW4raF-A" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="jdtmm.uml#_TMnrQGd5EeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TNOIMWd5EeCm5tXW4raF-A"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7ysS4H_4EeGqdId9TXdXhQ" type="3012" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:Property" href="jdtmm.uml#_7x3zgH_4EeGqdId9TXdXhQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7ysS4X_4EeGqdId9TXdXhQ"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_6ejGumHgEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_6ejGu2HgEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6ejGvGHgEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_6ejGvWHgEeCX0Yi87Khu0A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_6ejGvmHgEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_6ejGv2HgEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6ejGwGHgEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_6ejGwWHgEeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_6ejGwmHgEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_6ejGw2HgEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6ejGxGHgEeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_FVjbkGHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6ejGsWHgEeCX0Yi87Khu0A" x="444" y="300" width="178"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__b8NwGHgEeCX0Yi87Khu0A" type="2008" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__b8NwmHgEeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__b8Nw2HgEeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__b8NxGHgEeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__b8NxWHgEeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__b8NxmHgEeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__b8Nx2HgEeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="__b8NyGHgEeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__b8NyWHgEeCX0Yi87Khu0A" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="__b8NymHgEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__b8Ny2HgEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__b8NzGHgEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__b8NzWHgEeCX0Yi87Khu0A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="__b8NzmHgEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__b8Nz2HgEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__b8N0GHgEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__b8N0WHgEeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="__b8N0mHgEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__b8N02HgEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__b8N1GHgEeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_1FwMIGHXEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__b8NwWHgEeCX0Yi87Khu0A" x="648" y="30"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AEUcYGHhEeCX0Yi87Khu0A" type="2008" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AEUcYmHhEeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AEUcY2HhEeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AEUcZGHhEeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AEeNYGHhEeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AEeNYWHhEeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AEeNYmHhEeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AEeNY2HhEeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AEeNZGHhEeCX0Yi87Khu0A" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AEeNZWHhEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AEeNZmHhEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AEeNZ2HhEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AEeNaGHhEeCX0Yi87Khu0A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AEeNaWHhEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AEeNamHhEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AEeNa2HhEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AEeNbGHhEeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AEeNbWHhEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AEeNbmHhEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AEeNb2HhEeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_tQ7LoGHcEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AEUcYWHhEeCX0Yi87Khu0A" x="348" y="30"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_IfCJcGHiEeCX0Yi87Khu0A" type="2008" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IfCJcmHiEeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IfCJc2HiEeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IfCJdGHiEeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IfCJdWHiEeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IfCJdmHiEeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IfCJd2HiEeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_IfCJeGHiEeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IfCJeWHiEeCX0Yi87Khu0A" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IfCJemHiEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IfCJe2HiEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IfCJfGHiEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IfCJfWHiEeCX0Yi87Khu0A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IfCJfmHiEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IfCJf2HiEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IfCJgGHiEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IfLTYGHiEeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IfLTYWHiEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IfLTYmHiEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IfLTY2HiEeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_JO_yUGHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IfCJcWHiEeCX0Yi87Khu0A" x="846" y="437"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_JncjAGHiEeCX0Yi87Khu0A" type="2008" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JncjAmHiEeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JncjA2HiEeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JncjBGHiEeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JncjBWHiEeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JncjBmHiEeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JncjB2HiEeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JncjCGHiEeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JncjCWHiEeCX0Yi87Khu0A" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_JncjCmHiEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_JncjC2HiEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JncjDGHiEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JncjDWHiEeCX0Yi87Khu0A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_JncjDmHiEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_JncjD2HiEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JncjEGHiEeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JncjEWHiEeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_JncjEmHiEeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_JncjE2HiEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JncjFGHiEeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_IPXhUGHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JncjAWHiEeCX0Yi87Khu0A" x="846" y="570"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_A4riQGQ2EeCX0Yi87Khu0A" type="2008" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_A4riQmQ2EeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_A4riQ2Q2EeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_A4riRGQ2EeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_A4riRWQ2EeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_A4riRmQ2EeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_A4riR2Q2EeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_A4riSGQ2EeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_A4riSWQ2EeCX0Yi87Khu0A" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_A4riSmQ2EeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_A4riS2Q2EeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A4riTGQ2EeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_A4riTWQ2EeCX0Yi87Khu0A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_A4riTmQ2EeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_A4riT2Q2EeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A4riUGQ2EeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_A4riUWQ2EeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_A4riUmQ2EeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_A4riU2Q2EeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A4riVGQ2EeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_aJkdEGHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A4riQWQ2EeCX0Yi87Khu0A" x="204" y="462" height="163"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_54_YwGTkEeCLCuJcSSYRDQ" type="2008" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_54_YwmTkEeCLCuJcSSYRDQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_54_Yw2TkEeCLCuJcSSYRDQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_54_YxGTkEeCLCuJcSSYRDQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_54_YxWTkEeCLCuJcSSYRDQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_54_YxmTkEeCLCuJcSSYRDQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_54_Yx2TkEeCLCuJcSSYRDQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_54_YyGTkEeCLCuJcSSYRDQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_54_YyWTkEeCLCuJcSSYRDQ" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_54_YymTkEeCLCuJcSSYRDQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_54_Yy2TkEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_54_YzGTkEeCLCuJcSSYRDQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_54_YzWTkEeCLCuJcSSYRDQ" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_54_YzmTkEeCLCuJcSSYRDQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_54_Yz2TkEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_54_Y0GTkEeCLCuJcSSYRDQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_54_Y0WTkEeCLCuJcSSYRDQ" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_54_Y0mTkEeCLCuJcSSYRDQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_54_Y02TkEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_54_Y1GTkEeCLCuJcSSYRDQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_OtGLwGTjEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_54_YwWTkEeCLCuJcSSYRDQ" x="468" y="180"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_EZNWoGaPEeCm5tXW4raF-A" type="2008" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EZNWomaPEeCm5tXW4raF-A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EZNWo2aPEeCm5tXW4raF-A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EZNWpGaPEeCm5tXW4raF-A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EZNWpWaPEeCm5tXW4raF-A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EZNWpmaPEeCm5tXW4raF-A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EZNWp2aPEeCm5tXW4raF-A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_EZNWqGaPEeCm5tXW4raF-A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_EZNWqWaPEeCm5tXW4raF-A" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_EZNWqmaPEeCm5tXW4raF-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_EZNWq2aPEeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EZNWrGaPEeCm5tXW4raF-A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_EZNWrWaPEeCm5tXW4raF-A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_EZNWrmaPEeCm5tXW4raF-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_EZNWr2aPEeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EZNWsGaPEeCm5tXW4raF-A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_EZNWsWaPEeCm5tXW4raF-A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_EZNWsmaPEeCm5tXW4raF-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_EZNWs2aPEeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EZNWtGaPEeCm5tXW4raF-A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_zStvwGaOEeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EZNWoWaPEeCm5tXW4raF-A" x="852" y="288" width="133" height="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LzW-sGd5EeCm5tXW4raF-A" type="2006" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LzgvsGd5EeCm5tXW4raF-A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LzgvsWd5EeCm5tXW4raF-A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Lzgvsmd5EeCm5tXW4raF-A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Lzgvs2d5EeCm5tXW4raF-A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LzgvtGd5EeCm5tXW4raF-A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LzgvtWd5EeCm5tXW4raF-A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Lzgvtmd5EeCm5tXW4raF-A" type="5023"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Lzgvt2d5EeCm5tXW4raF-A" type="7015">
+ <children xmi:type="notation:Shape" xmi:id="_OnXXYGd5EeCm5tXW4raF-A" type="3017" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="jdtmm.uml#_OnEccGd5EeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OnXXYWd5EeCm5tXW4raF-A"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_PsqLgGd5EeCm5tXW4raF-A" type="3017" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="jdtmm.uml#_PsDukGd5EeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_PsqLgWd5EeCm5tXW4raF-A"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QlbmkGd5EeCm5tXW4raF-A" type="3017" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="jdtmm.uml#_Qk1JoGd5EeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QlbmkWd5EeCm5tXW4raF-A"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LzgvuGd5EeCm5tXW4raF-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LzgvuWd5EeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lzgvumd5EeCm5tXW4raF-A"/>
+ </children>
+ <element xmi:type="uml:Enumeration" href="jdtmm.uml#_LzEDwGd5EeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LzW-sWd5EeCm5tXW4raF-A" x="138" y="300"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_396V8WHgEeCX0Yi87Khu0A"/>
+ <element xmi:type="uml:Model" href="jdtmm.uml#_zfh1MGHXEeCX0Yi87Khu0A"/>
+ <edges xmi:type="notation:Connector" xmi:id="_6fI8kGHgEeCX0Yi87Khu0A" type="4002" source="_42iAAGHgEeCX0Yi87Khu0A" target="_6ejGsGHgEeCX0Yi87Khu0A" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_6fStkGHgEeCX0Yi87Khu0A" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6fStkWHgEeCX0Yi87Khu0A" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_6fI8kWHgEeCX0Yi87Khu0A" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_NyUMgGHYEeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_6fI8kmHgEeCX0Yi87Khu0A" points="[-50, -23, 504, 231]$[-554, -254, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_dB6XoGHiEeCX0Yi87Khu0A" type="4001" source="_42iAAGHgEeCX0Yi87Khu0A" target="_IfCJcGHiEeCX0Yi87Khu0A" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dCDhkGHiEeCX0Yi87Khu0A" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dCDhkWHiEeCX0Yi87Khu0A" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dCDhkmHiEeCX0Yi87Khu0A" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dCDhk2HiEeCX0Yi87Khu0A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dCDhlGHiEeCX0Yi87Khu0A" type="6003">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iIZJQGHiEeCX0Yi87Khu0A" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iIZJQWHiEeCX0Yi87Khu0A" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dCDhlWHiEeCX0Yi87Khu0A" x="6" y="-25"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dCDhlmHiEeCX0Yi87Khu0A" type="6005">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gKn1AGHiEeCX0Yi87Khu0A" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gKn1AWHiEeCX0Yi87Khu0A" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dCDhl2HiEeCX0Yi87Khu0A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dCDhmGHiEeCX0Yi87Khu0A" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dCDhmWHiEeCX0Yi87Khu0A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dCDhmmHiEeCX0Yi87Khu0A" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dCDhm2HiEeCX0Yi87Khu0A" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dB6XoWHiEeCX0Yi87Khu0A" fontHeight="8"/>
+ <element xmi:type="uml:Association" href="jdtmm.uml#_dBm1o2HiEeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dB6XomHiEeCX0Yi87Khu0A" points="[3, 1, -229, 0]$[227, 1, -5, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dCWcgGHiEeCX0Yi87Khu0A" id="(0.9943820224719101,0.10495626822157435)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dCWcgWHiEeCX0Yi87Khu0A" id="(0.05,0.52)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_eFG6AGHiEeCX0Yi87Khu0A" type="4001" source="_42iAAGHgEeCX0Yi87Khu0A" target="_JncjAGHiEeCX0Yi87Khu0A" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_eFQrAGHiEeCX0Yi87Khu0A" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eFQrAWHiEeCX0Yi87Khu0A" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_eFQrAmHiEeCX0Yi87Khu0A" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eFQrA2HiEeCX0Yi87Khu0A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_eFQrBGHiEeCX0Yi87Khu0A" type="6003">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gecv8GHiEeCX0Yi87Khu0A" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gecv8WHiEeCX0Yi87Khu0A" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eFQrBWHiEeCX0Yi87Khu0A" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_eFQrBmHiEeCX0Yi87Khu0A" type="6005">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_g2I3MGHiEeCX0Yi87Khu0A" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_g2I3MWHiEeCX0Yi87Khu0A" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eFQrB2HiEeCX0Yi87Khu0A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_eFQrCGHiEeCX0Yi87Khu0A" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eFQrCWHiEeCX0Yi87Khu0A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_eFQrCmHiEeCX0Yi87Khu0A" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eFQrC2HiEeCX0Yi87Khu0A" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_eFG6AWHiEeCX0Yi87Khu0A" fontHeight="8"/>
+ <element xmi:type="uml:Association" href="jdtmm.uml#_eEz_E2HiEeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_eFG6AmHiEeCX0Yi87Khu0A" points="[8, -1, -228, 30]$[130, -14, -106, 17]$[232, -31, -4, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eFtW8GHiEeCX0Yi87Khu0A" id="(0.9382022471910112,0.40524781341107874)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eFtW8WHiEeCX0Yi87Khu0A" id="(0.01,0.25)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_6JS9gGHiEeCX0Yi87Khu0A" type="4001" source="_AEUcYGHhEeCX0Yi87Khu0A" target="__b8NwGHgEeCX0Yi87Khu0A" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_6JS9g2HiEeCX0Yi87Khu0A" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6JS9hGHiEeCX0Yi87Khu0A" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6JS9hWHiEeCX0Yi87Khu0A" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6JS9hmHiEeCX0Yi87Khu0A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6JS9h2HiEeCX0Yi87Khu0A" type="6003">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7PfJgGHiEeCX0Yi87Khu0A" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7PfJgWHiEeCX0Yi87Khu0A" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6JS9iGHiEeCX0Yi87Khu0A" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6JS9iWHiEeCX0Yi87Khu0A" type="6005">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7uVBoGHiEeCX0Yi87Khu0A" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7uVBoWHiEeCX0Yi87Khu0A" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6JS9imHiEeCX0Yi87Khu0A" x="-7" y="18"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6JS9i2HiEeCX0Yi87Khu0A" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6JS9jGHiEeCX0Yi87Khu0A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6JS9jWHiEeCX0Yi87Khu0A" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6JS9jmHiEeCX0Yi87Khu0A" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_6JS9gWHiEeCX0Yi87Khu0A" fontHeight="8"/>
+ <element xmi:type="uml:Association" href="jdtmm.uml#_JrpDU2HeEeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_6JS9gmHiEeCX0Yi87Khu0A" points="[-50, -1, 274, 5]$[-274, -6, 50, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_bvqXUGQsEeCX0Yi87Khu0A" type="4002" source="_IfCJcGHiEeCX0Yi87Khu0A" target="_6ejGsGHgEeCX0Yi87Khu0A" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_bvqXU2QsEeCX0Yi87Khu0A" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bvqXVGQsEeCX0Yi87Khu0A" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_bvqXUWQsEeCX0Yi87Khu0A" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_NGzKUGHYEeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_bvqXUmQsEeCX0Yi87Khu0A" points="[0, -50, 280, 52]$[0, -102, 280, 0]$[-274, -102, 6, 0]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gWta8GQsEeCX0Yi87Khu0A" id="(0.9662921348314607,0.85)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_c-8N4GQsEeCX0Yi87Khu0A" type="4002" source="_JncjAGHiEeCX0Yi87Khu0A" target="_6ejGsGHgEeCX0Yi87Khu0A" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_c-8N42QsEeCX0Yi87Khu0A" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_c-8N5GQsEeCX0Yi87Khu0A" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_c-8N4WQsEeCX0Yi87Khu0A" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_Mi5MAGHYEeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_c-8N4mQsEeCX0Yi87Khu0A" points="[50, 1, 328, 260]$[139, 3, 417, 262]$[139, -259, 417, 0]$[-274, -259, 4, 0]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UuQdAGaQEeCm5tXW4raF-A" id="(0.9775280898876404,0.61)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_C38EQGQ2EeCX0Yi87Khu0A" type="4001" source="_A4riQGQ2EeCX0Yi87Khu0A" target="_42iAAGHgEeCX0Yi87Khu0A" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_C38EQ2Q2EeCX0Yi87Khu0A" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_C38ERGQ2EeCX0Yi87Khu0A" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_C38ERWQ2EeCX0Yi87Khu0A" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_C38ERmQ2EeCX0Yi87Khu0A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_C38ER2Q2EeCX0Yi87Khu0A" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_C38ESGQ2EeCX0Yi87Khu0A" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_C38ESWQ2EeCX0Yi87Khu0A" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_C38ESmQ2EeCX0Yi87Khu0A" x="-31" y="18"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_C38ES2Q2EeCX0Yi87Khu0A" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_C38ETGQ2EeCX0Yi87Khu0A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_C38ETWQ2EeCX0Yi87Khu0A" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_C38ETmQ2EeCX0Yi87Khu0A" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_C38EQWQ2EeCX0Yi87Khu0A" fontHeight="8"/>
+ <element xmi:type="uml:Association" href="jdtmm.uml#_C3L2U2Q2EeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_C38EQmQ2EeCX0Yi87Khu0A" points="[5, 0, -155, -89]$[134, 0, -26, -89]$[134, 0, -26, -89]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_C4h6IGQ2EeCX0Yi87Khu0A" id="(0.954954954954955,0.4926829268292683)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_C4h6IWQ2EeCX0Yi87Khu0A" id="(0.15,0.5118483412322274)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_5LC-AGR-EeC0ouwfA8DHnA" type="4001" source="_42iAAGHgEeCX0Yi87Khu0A" target="_42iAAGHgEeCX0Yi87Khu0A" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_5LC-A2R-EeC0ouwfA8DHnA" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5LC-BGR-EeC0ouwfA8DHnA" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5LC-BWR-EeC0ouwfA8DHnA" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5LC-BmR-EeC0ouwfA8DHnA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5LC-B2R-EeC0ouwfA8DHnA" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5LC-CGR-EeC0ouwfA8DHnA" x="16" y="-17"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5LC-CWR-EeC0ouwfA8DHnA" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5LC-CmR-EeC0ouwfA8DHnA" x="-2" y="-14"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5LC-C2R-EeC0ouwfA8DHnA" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5LC-DGR-EeC0ouwfA8DHnA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5LC-DWR-EeC0ouwfA8DHnA" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5LC-DmR-EeC0ouwfA8DHnA" x="13" y="-60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5LC-AWR-EeC0ouwfA8DHnA" fontHeight="8"/>
+ <element xmi:type="uml:Association" href="jdtmm.uml#_5KmSEGR-EeC0ouwfA8DHnA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5LC-AmR-EeC0ouwfA8DHnA" points="[-3, 0, -1, 36]$[-142, 5, -140, 41]$[-142, -36, -140, 0]$[-3, -36, -1, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5Loz4GR-EeC0ouwfA8DHnA" id="(0.016853932584269662,0.8688046647230321)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5Loz4WR-EeC0ouwfA8DHnA" id="(0.0056179775280898875,0.7638483965014577)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_55u_oGTkEeCLCuJcSSYRDQ" type="4002" source="_54_YwGTkEeCLCuJcSSYRDQ" target="_AEUcYGHhEeCX0Yi87Khu0A" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_55u_o2TkEeCLCuJcSSYRDQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_55u_pGTkEeCLCuJcSSYRDQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_55u_oWTkEeCLCuJcSSYRDQ" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_WuJREGTjEeCLCuJcSSYRDQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_55u_omTkEeCLCuJcSSYRDQ" points="[0, 0, -398, -116]$[348, 101, -50, -15]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7tElgGTkEeCLCuJcSSYRDQ" type="4002" source="_54_YwGTkEeCLCuJcSSYRDQ" target="__b8NwGHgEeCX0Yi87Khu0A" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_7tElg2TkEeCLCuJcSSYRDQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7tElhGTkEeCLCuJcSSYRDQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_7tElgWTkEeCLCuJcSSYRDQ" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_Ya678GTjEeCLCuJcSSYRDQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7tElgmTkEeCLCuJcSSYRDQ" points="[55, -50, -110, 100]$[115, -105, -50, 45]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_A4UiYGTlEeCLCuJcSSYRDQ" type="4002" source="_6ejGsGHgEeCX0Yi87Khu0A" target="_54_YwGTkEeCLCuJcSSYRDQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_A4UiY2TlEeCLCuJcSSYRDQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A4UiZGTlEeCLCuJcSSYRDQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_A4UiYWTlEeCLCuJcSSYRDQ" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_HoB0gGHYEeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_A4UiYmTlEeCLCuJcSSYRDQ" points="[0, -50, 0, 70]$[0, -70, 0, 50]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_v45e0GaPEeCm5tXW4raF-A" type="4001" source="_6ejGsGHgEeCX0Yi87Khu0A" target="_EZNWoGaPEeCm5tXW4raF-A" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_v45e02aPEeCm5tXW4raF-A" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_v45e1GaPEeCm5tXW4raF-A" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_v45e1WaPEeCm5tXW4raF-A" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_v45e1maPEeCm5tXW4raF-A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_v45e12aPEeCm5tXW4raF-A" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_v45e2GaPEeCm5tXW4raF-A" x="48" y="-21"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_v45e2WaPEeCm5tXW4raF-A" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_v45e2maPEeCm5tXW4raF-A" x="-40" y="21"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_v45e22aPEeCm5tXW4raF-A" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_v45e3GaPEeCm5tXW4raF-A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_v45e3WaPEeCm5tXW4raF-A" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_v45e3maPEeCm5tXW4raF-A" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_v45e0WaPEeCm5tXW4raF-A" fontHeight="8"/>
+ <element xmi:type="uml:Association" href="jdtmm.uml#_v4l80GaPEeCm5tXW4raF-A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_v45e0maPEeCm5tXW4raF-A" points="[-6, -1, 140, 8]$[-246, 21, -100, 30]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_v5pFsGaPEeCm5tXW4raF-A" id="(0.9269662921348315,0.12)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_v5pFsWaPEeCm5tXW4raF-A" id="(0.9174311926605505,0.36)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_mOO64GaQEeCm5tXW4raF-A" type="4001" source="_42iAAGHgEeCX0Yi87Khu0A" target="_42iAAGHgEeCX0Yi87Khu0A" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_mOO642aQEeCm5tXW4raF-A" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mOO65GaQEeCm5tXW4raF-A" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mOO65WaQEeCm5tXW4raF-A" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mOO65maQEeCm5tXW4raF-A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mOO652aQEeCm5tXW4raF-A" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mOO66GaQEeCm5tXW4raF-A" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mOO66WaQEeCm5tXW4raF-A" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mOO66maQEeCm5tXW4raF-A" x="-12" y="11"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mOO662aQEeCm5tXW4raF-A" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mOO67GaQEeCm5tXW4raF-A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mOO67WaQEeCm5tXW4raF-A" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mOO67maQEeCm5tXW4raF-A" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_mOO64WaQEeCm5tXW4raF-A" fontHeight="8"/>
+ <element xmi:type="uml:Association" href="jdtmm.uml#_mNyO82aQEeCm5tXW4raF-A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mOO64maQEeCm5tXW4raF-A" points="[166, 0, 5, -43]$[282, 0, 121, -43]$[282, 43, 121, 0]$[166, 43, 5, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mO0wwGaQEeCm5tXW4raF-A" id="(0.06741573033707865,0.577259475218659)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mO0wwWaQEeCm5tXW4raF-A" id="(0.9719101123595506,0.7026239067055393)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Yub4d2aREeCm5tXW4raF-A" type="4001" source="_42iAAGHgEeCX0Yi87Khu0A" target="_42iAAGHgEeCX0Yi87Khu0A" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Yub4emaREeCm5tXW4raF-A" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Yub4e2aREeCm5tXW4raF-A" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Yub4fGaREeCm5tXW4raF-A" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Yub4fWaREeCm5tXW4raF-A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Yub4fmaREeCm5tXW4raF-A" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Yub4f2aREeCm5tXW4raF-A" x="-2" y="-10"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Yub4gGaREeCm5tXW4raF-A" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Yub4gWaREeCm5tXW4raF-A" x="-19" y="12"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Yub4gmaREeCm5tXW4raF-A" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Yub4g2aREeCm5tXW4raF-A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Yub4hGaREeCm5tXW4raF-A" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Yub4hWaREeCm5tXW4raF-A" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Yub4eGaREeCm5tXW4raF-A" fontHeight="8"/>
+ <element xmi:type="uml:Association" href="jdtmm.uml#_Yub4c2aREeCm5tXW4raF-A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Yub4eWaREeCm5tXW4raF-A" points="[3, 0, 2, -32]$[119, 0, 118, -32]$[119, 32, 118, 0]$[3, 32, 2, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YulpcGaREeCm5tXW4raF-A" id="(0.9831460674157303,0.8221574344023324)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YulpcWaREeCm5tXW4raF-A" id="(0.9887640449438202,0.9154518950437318)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_unA7wH_4EeGqdId9TXdXhQ" type="4001" source="_6ejGsGHgEeCX0Yi87Khu0A" target="_42iAAGHgEeCX0Yi87Khu0A" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_unCw8H_4EeGqdId9TXdXhQ" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_unCw8X_4EeGqdId9TXdXhQ" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_unCw8n_4EeGqdId9TXdXhQ" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_unCw83_4EeGqdId9TXdXhQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_unCw9H_4EeGqdId9TXdXhQ" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_unDYAH_4EeGqdId9TXdXhQ" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_unDYAX_4EeGqdId9TXdXhQ" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_unDYAn_4EeGqdId9TXdXhQ" x="-18" y="107"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_unDYA3_4EeGqdId9TXdXhQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_unDYBH_4EeGqdId9TXdXhQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_unDYBX_4EeGqdId9TXdXhQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_unDYBn_4EeGqdId9TXdXhQ" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_unA7wX_4EeGqdId9TXdXhQ" fontName="Segoe UI"/>
+ <element xmi:type="uml:Association" href="jdtmm.uml#_ul4TUH_4EeGqdId9TXdXhQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_unA7wn_4EeGqdId9TXdXhQ" points="[-6, 13, 0, -60]$[-8, 69, -2, -4]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_uqftkH_4EeGqdId9TXdXhQ" id="(0.0898876404494382,0.87)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_uqftkX_4EeGqdId9TXdXhQ" id="(0.056179775280898875,0.011661807580174927)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_EKRgwGQ0EeCX0Yi87Khu0A" type="PapyrusUMLClassDiagram" name="Package Fragments" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_FMcIYGQ0EeCX0Yi87Khu0A" type="2008" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FMcIYmQ0EeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FMcIY2Q0EeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FMcIZGQ0EeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FMcIZWQ0EeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FMcIZmQ0EeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FMcIZ2Q0EeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FMcIaGQ0EeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_FMcIaWQ0EeCX0Yi87Khu0A" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FMcIamQ0EeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FMcIa2Q0EeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FMcIbGQ0EeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_FMcIbWQ0EeCX0Yi87Khu0A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FMcIbmQ0EeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FMcIb2Q0EeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FMcIcGQ0EeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_FMcIcWQ0EeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FMcIcmQ0EeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FMcIc2Q0EeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FMcIdGQ0EeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_3JLqMGHcEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FMcIYWQ0EeCX0Yi87Khu0A" x="420" y="360"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Frk7cGQ0EeCX0Yi87Khu0A" type="2008" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Frk7cmQ0EeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Frk7c2Q0EeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Frk7dGQ0EeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Frk7dWQ0EeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Frk7dmQ0EeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Frk7d2Q0EeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Frk7eGQ0EeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Frk7eWQ0EeCX0Yi87Khu0A" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Frk7emQ0EeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Frk7e2Q0EeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Frk7fGQ0EeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Frk7fWQ0EeCX0Yi87Khu0A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Frk7fmQ0EeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Frk7f2Q0EeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Frk7gGQ0EeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Frk7gWQ0EeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Frk7gmQ0EeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Frk7g2Q0EeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Frk7hGQ0EeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_0qyVIGHcEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Frk7cWQ0EeCX0Yi87Khu0A" x="816" y="360"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_G7wJ4GQ0EeCX0Yi87Khu0A" type="2008" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G7wJ4mQ0EeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G7wJ42Q0EeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G7wJ5GQ0EeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G7wJ5WQ0EeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G7wJ5mQ0EeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G7wJ52Q0EeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_G7wJ6GQ0EeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_G7wJ6WQ0EeCX0Yi87Khu0A" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_G7wJ6mQ0EeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_G7wJ62Q0EeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_G7wJ7GQ0EeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_G7wJ7WQ0EeCX0Yi87Khu0A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_G7wJ7mQ0EeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_G7wJ72Q0EeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_G7wJ8GQ0EeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_G7wJ8WQ0EeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_G7wJ8mQ0EeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_G7wJ82Q0EeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_G7wJ9GQ0EeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_tQ7LoGHcEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_G7wJ4WQ0EeCX0Yi87Khu0A" x="516" y="54"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_KzZw4GQ0EeCX0Yi87Khu0A" type="2008" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KzZw4mQ0EeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KzZw42Q0EeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KzZw5GQ0EeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KzZw5WQ0EeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KzZw5mQ0EeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KzZw52Q0EeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_KzZw6GQ0EeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_KzZw6WQ0EeCX0Yi87Khu0A" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_NicQYGQ8EeCX0Yi87Khu0A" type="3012" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="jdtmm.uml#_NhspgGQ8EeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NicQYWQ8EeCX0Yi87Khu0A"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_KzZw6mQ0EeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_KzZw62Q0EeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KzZw7GQ0EeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_KzZw7WQ0EeCX0Yi87Khu0A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_KzZw7mQ0EeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_KzZw72Q0EeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KzZw8GQ0EeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_KzZw8WQ0EeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_KzZw8mQ0EeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_KzZw82Q0EeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KzZw9GQ0EeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_1FwMIGHXEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KzZw4WQ0EeCX0Yi87Khu0A" x="840" y="54"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_YB-OgGQ1EeCX0Yi87Khu0A" type="2008" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YB-OgmQ1EeCX0Yi87Khu0A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YB-Og2Q1EeCX0Yi87Khu0A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YB-OhGQ1EeCX0Yi87Khu0A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YB-OhWQ1EeCX0Yi87Khu0A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YB-OhmQ1EeCX0Yi87Khu0A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YB-Oh2Q1EeCX0Yi87Khu0A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YB-OiGQ1EeCX0Yi87Khu0A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_YB-OiWQ1EeCX0Yi87Khu0A" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_YB-OimQ1EeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_YB-Oi2Q1EeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YB-OjGQ1EeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_YB-OjWQ1EeCX0Yi87Khu0A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_YB-OjmQ1EeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_YB-Oj2Q1EeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YB-OkGQ1EeCX0Yi87Khu0A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_YB-OkWQ1EeCX0Yi87Khu0A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_YB-OkmQ1EeCX0Yi87Khu0A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_YB-Ok2Q1EeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YB-OlGQ1EeCX0Yi87Khu0A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_aJkdEGHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YB-OgWQ1EeCX0Yi87Khu0A" x="1098" y="354"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_4TPfwGTgEeCLCuJcSSYRDQ" type="2008" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4TZQwGTgEeCLCuJcSSYRDQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4TZQwWTgEeCLCuJcSSYRDQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4TZQwmTgEeCLCuJcSSYRDQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4TZQw2TgEeCLCuJcSSYRDQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4TZQxGTgEeCLCuJcSSYRDQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4TZQxWTgEeCLCuJcSSYRDQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4TZQxmTgEeCLCuJcSSYRDQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4TZQx2TgEeCLCuJcSSYRDQ" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_4TZQyGTgEeCLCuJcSSYRDQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_4TZQyWTgEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4TZQymTgEeCLCuJcSSYRDQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4TZQy2TgEeCLCuJcSSYRDQ" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_4TZQzGTgEeCLCuJcSSYRDQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_4TZQzWTgEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4TZQzmTgEeCLCuJcSSYRDQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4TZQz2TgEeCLCuJcSSYRDQ" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_4TZQ0GTgEeCLCuJcSSYRDQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_4TZQ0WTgEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4TZQ0mTgEeCLCuJcSSYRDQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_kWqckGTgEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4TPfwWTgEeCLCuJcSSYRDQ" x="192" y="360"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-ReNMGTqEeCx-IU0sjGPKA" type="2008" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-ReNMmTqEeCx-IU0sjGPKA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-ReNM2TqEeCx-IU0sjGPKA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-ReNNGTqEeCx-IU0sjGPKA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-RnXIGTqEeCx-IU0sjGPKA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-RnXIWTqEeCx-IU0sjGPKA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-RnXImTqEeCx-IU0sjGPKA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-RnXI2TqEeCx-IU0sjGPKA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-RnXJGTqEeCx-IU0sjGPKA" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-RnXJWTqEeCx-IU0sjGPKA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-RnXJmTqEeCx-IU0sjGPKA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-RnXJ2TqEeCx-IU0sjGPKA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-RnXKGTqEeCx-IU0sjGPKA" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-RnXKWTqEeCx-IU0sjGPKA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-RnXKmTqEeCx-IU0sjGPKA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-RnXK2TqEeCx-IU0sjGPKA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-RnXLGTqEeCx-IU0sjGPKA" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-RnXLWTqEeCx-IU0sjGPKA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-RnXLmTqEeCx-IU0sjGPKA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-RnXL2TqEeCx-IU0sjGPKA"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_LpaNwGTiEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-ReNMWTqEeCx-IU0sjGPKA" x="12" y="360"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QCe9cGT7EeCx-IU0sjGPKA" type="2008" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QCe9cmT7EeCx-IU0sjGPKA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QCe9c2T7EeCx-IU0sjGPKA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QCe9dGT7EeCx-IU0sjGPKA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QCe9dWT7EeCx-IU0sjGPKA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QCe9dmT7EeCx-IU0sjGPKA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QCe9d2T7EeCx-IU0sjGPKA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QCe9eGT7EeCx-IU0sjGPKA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QCe9eWT7EeCx-IU0sjGPKA" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QCe9emT7EeCx-IU0sjGPKA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QCe9e2T7EeCx-IU0sjGPKA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QCe9fGT7EeCx-IU0sjGPKA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QCe9fWT7EeCx-IU0sjGPKA" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QCe9fmT7EeCx-IU0sjGPKA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QCe9f2T7EeCx-IU0sjGPKA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QCe9gGT7EeCx-IU0sjGPKA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QCe9gWT7EeCx-IU0sjGPKA" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QCe9gmT7EeCx-IU0sjGPKA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QCe9g2T7EeCx-IU0sjGPKA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QCe9hGT7EeCx-IU0sjGPKA"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_OtGLwGTjEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QCe9cWT7EeCx-IU0sjGPKA" x="666" y="204"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_EKRgwWQ0EeCX0Yi87Khu0A"/>
+ <element xmi:type="uml:Model" href="jdtmm.uml#_zfh1MGHXEeCX0Yi87Khu0A"/>
+ <edges xmi:type="notation:Connector" xmi:id="_K0JXwGQ0EeCX0Yi87Khu0A" type="4001" source="_G7wJ4GQ0EeCX0Yi87Khu0A" target="_KzZw4GQ0EeCX0Yi87Khu0A" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_K0JXw2Q0EeCX0Yi87Khu0A" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_K0JXxGQ0EeCX0Yi87Khu0A" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_K0JXxWQ0EeCX0Yi87Khu0A" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_K0JXxmQ0EeCX0Yi87Khu0A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_K0JXx2Q0EeCX0Yi87Khu0A" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_K0JXyGQ0EeCX0Yi87Khu0A" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_K0JXyWQ0EeCX0Yi87Khu0A" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_K0JXymQ0EeCX0Yi87Khu0A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_K0JXy2Q0EeCX0Yi87Khu0A" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_K0JXzGQ0EeCX0Yi87Khu0A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_K0JXzWQ0EeCX0Yi87Khu0A" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_K0JXzmQ0EeCX0Yi87Khu0A" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_K0JXwWQ0EeCX0Yi87Khu0A" fontHeight="8"/>
+ <element xmi:type="uml:Association" href="jdtmm.uml#_JrpDU2HeEeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_K0JXwmQ0EeCX0Yi87Khu0A" points="[-50, -11, 456, 99]$[-506, -110, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_R2A4AGQ0EeCX0Yi87Khu0A" type="4001" source="_FMcIYGQ0EeCX0Yi87Khu0A" target="_Frk7cGQ0EeCX0Yi87Khu0A" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_R2A4A2Q0EeCX0Yi87Khu0A" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_R2A4BGQ0EeCX0Yi87Khu0A" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_R2A4BWQ0EeCX0Yi87Khu0A" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_R2A4BmQ0EeCX0Yi87Khu0A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_R2A4B2Q0EeCX0Yi87Khu0A" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_R2A4CGQ0EeCX0Yi87Khu0A" x="59" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_R2A4CWQ0EeCX0Yi87Khu0A" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_R2A4CmQ0EeCX0Yi87Khu0A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_R2A4C2Q0EeCX0Yi87Khu0A" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_R2A4DGQ0EeCX0Yi87Khu0A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_R2A4DWQ0EeCX0Yi87Khu0A" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_R2A4DmQ0EeCX0Yi87Khu0A" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_R2A4AWQ0EeCX0Yi87Khu0A" fontHeight="8"/>
+ <element xmi:type="uml:Association" href="jdtmm.uml#_R1RRIGQ0EeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_R2A4AmQ0EeCX0Yi87Khu0A" points="[7, 2, -266, 0]$[389, 49, 116, 47]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_R2dj8GQ0EeCX0Yi87Khu0A" id="(0.9533333333333334,0.26)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_R2dj8WQ0EeCX0Yi87Khu0A" id="(0.06451612903225806,0.28)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_a3d08GQ1EeCX0Yi87Khu0A" type="4001" source="_Frk7cGQ0EeCX0Yi87Khu0A" target="_YB-OgGQ1EeCX0Yi87Khu0A" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_a3d082Q1EeCX0Yi87Khu0A" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_a3d09GQ1EeCX0Yi87Khu0A" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_a3d09WQ1EeCX0Yi87Khu0A" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_a3d09mQ1EeCX0Yi87Khu0A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_a3d092Q1EeCX0Yi87Khu0A" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_a3d0-GQ1EeCX0Yi87Khu0A" x="32" y="-32"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_a3d0-WQ1EeCX0Yi87Khu0A" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_a3d0-mQ1EeCX0Yi87Khu0A" x="-20" y="46"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_a3d0-2Q1EeCX0Yi87Khu0A" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_a3d0_GQ1EeCX0Yi87Khu0A" x="26" y="70"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_a3d0_WQ1EeCX0Yi87Khu0A" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_a3d0_mQ1EeCX0Yi87Khu0A" x="10" y="-56"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_a3d08WQ1EeCX0Yi87Khu0A" fontHeight="8"/>
+ <element xmi:type="uml:Association" href="jdtmm.uml#_a2kdE2Q1EeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_a3d08mQ1EeCX0Yi87Khu0A" points="[6, 1, -178, 0]$[170, -3, -14, -4]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_a3wv4GQ1EeCX0Yi87Khu0A" id="(0.9516129032258065,0.33)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_a3wv4WQ1EeCX0Yi87Khu0A" id="(0.12612612612612611,0.4)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9jHd8GTgEeCLCuJcSSYRDQ" type="4001" source="_4TPfwGTgEeCLCuJcSSYRDQ" target="_FMcIYGQ0EeCX0Yi87Khu0A" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_9jHd82TgEeCLCuJcSSYRDQ" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9jHd9GTgEeCLCuJcSSYRDQ" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9jHd9WTgEeCLCuJcSSYRDQ" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9jHd9mTgEeCLCuJcSSYRDQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9jHd92TgEeCLCuJcSSYRDQ" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9jHd-GTgEeCLCuJcSSYRDQ" x="41" y="-23"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9jHd-WTgEeCLCuJcSSYRDQ" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9jHd-mTgEeCLCuJcSSYRDQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9jHd-2TgEeCLCuJcSSYRDQ" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9jHd_GTgEeCLCuJcSSYRDQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9jHd_WTgEeCLCuJcSSYRDQ" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9jHd_mTgEeCLCuJcSSYRDQ" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_9jHd8WTgEeCLCuJcSSYRDQ" fontHeight="8"/>
+ <element xmi:type="uml:Association" href="jdtmm.uml#_9ihBA2TgEeCLCuJcSSYRDQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9jHd8mTgEeCLCuJcSSYRDQ" points="[7, 2, -142, 0]$[285, 17, 136, 15]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9jkJ4GTgEeCLCuJcSSYRDQ" id="(0.93,0.41)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9jkJ4WTgEeCLCuJcSSYRDQ" id="(0.09333333333333334,0.43)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_A5G90GTrEeCx-IU0sjGPKA" type="4001" source="_-ReNMGTqEeCx-IU0sjGPKA" target="_4TPfwGTgEeCLCuJcSSYRDQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_A5G902TrEeCx-IU0sjGPKA" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A5G91GTrEeCx-IU0sjGPKA" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_A5G91WTrEeCx-IU0sjGPKA" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A5G91mTrEeCx-IU0sjGPKA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_A5G912TrEeCx-IU0sjGPKA" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A5G92GTrEeCx-IU0sjGPKA" x="33" y="-45"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_A5G92WTrEeCx-IU0sjGPKA" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A5G92mTrEeCx-IU0sjGPKA" x="-3" y="27"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_A5G922TrEeCx-IU0sjGPKA" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A5G93GTrEeCx-IU0sjGPKA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_A5G93WTrEeCx-IU0sjGPKA" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A5G93mTrEeCx-IU0sjGPKA" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_A5G90WTrEeCx-IU0sjGPKA" fontHeight="8"/>
+ <element xmi:type="uml:Association" href="jdtmm.uml#_A36rAGTrEeCx-IU0sjGPKA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_A5G90mTrEeCx-IU0sjGPKA" points="[7, -1, -80, 0]$[187, 29, 100, 30]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_A5Z4wGTrEeCx-IU0sjGPKA" id="(0.93,0.36)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_A5Z4wWTrEeCx-IU0sjGPKA" id="(0.0,0.35)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_TYKf0GT7EeCx-IU0sjGPKA" type="4002" source="_QCe9cGT7EeCx-IU0sjGPKA" target="_G7wJ4GQ0EeCX0Yi87Khu0A" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_TYKf02T7EeCx-IU0sjGPKA" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TYUQ0GT7EeCx-IU0sjGPKA" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_TYKf0WT7EeCx-IU0sjGPKA" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_WuJREGTjEeCLCuJcSSYRDQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TYKf0mT7EeCx-IU0sjGPKA" points="[-55, -50, 110, 100]$[-115, -105, 50, 45]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_TsbfoGT7EeCx-IU0sjGPKA" type="4002" source="_QCe9cGT7EeCx-IU0sjGPKA" target="_KzZw4GQ0EeCX0Yi87Khu0A" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Tsbfo2T7EeCx-IU0sjGPKA" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TsbfpGT7EeCx-IU0sjGPKA" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_TsbfoWT7EeCx-IU0sjGPKA" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_Ya678GTjEeCLCuJcSSYRDQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TsbfomT7EeCx-IU0sjGPKA" points="[57, -50, -115, 100]$[114, -100, -58, 50]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_VOLmQGT7EeCx-IU0sjGPKA" type="4002" source="_4TPfwGTgEeCLCuJcSSYRDQ" target="_QCe9cGT7EeCx-IU0sjGPKA" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_VOLmQ2T7EeCx-IU0sjGPKA" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VOLmRGT7EeCx-IU0sjGPKA" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_VOLmQWT7EeCx-IU0sjGPKA" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_pO_dcGTgEeCLCuJcSSYRDQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_VOLmQmT7EeCx-IU0sjGPKA" points="[50, -16, -439, 140]$[424, -136, -65, 20]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WFwugGT7EeCx-IU0sjGPKA" type="4002" source="_-ReNMGTqEeCx-IU0sjGPKA" target="_QCe9cGT7EeCx-IU0sjGPKA" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_WFwug2T7EeCx-IU0sjGPKA" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WFwuhGT7EeCx-IU0sjGPKA" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_WFwugWT7EeCx-IU0sjGPKA" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_NUi54GTiEeCLCuJcSSYRDQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WFwugmT7EeCx-IU0sjGPKA" points="[50, -12, -619, 144]$[604, -141, -65, 15]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_YKFWsGT7EeCx-IU0sjGPKA" type="4002" source="_FMcIYGQ0EeCX0Yi87Khu0A" target="_QCe9cGT7EeCx-IU0sjGPKA" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_YKFWs2T7EeCx-IU0sjGPKA" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YKFWtGT7EeCx-IU0sjGPKA" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_YKFWsWT7EeCx-IU0sjGPKA" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_7HGRQGHcEeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YKFWsmT7EeCx-IU0sjGPKA" points="[75, -50, -161, 106]$[171, -114, -65, 42]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ZRdOcGT7EeCx-IU0sjGPKA" type="4002" source="_Frk7cGQ0EeCX0Yi87Khu0A" target="_QCe9cGT7EeCx-IU0sjGPKA" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZRdOc2T7EeCx-IU0sjGPKA" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZRdOdGT7EeCx-IU0sjGPKA" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ZRdOcWT7EeCx-IU0sjGPKA" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_6SzGgGHcEeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ZRdOcmT7EeCx-IU0sjGPKA" points="[-48, -50, 99, 106]$[-100, -106, 47, 50]"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_CLF4QGaaEeCm5tXW4raF-A" type="PapyrusUMLClassDiagram" name="JDTMethod" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_FVAPgGaaEeCm5tXW4raF-A" type="2008" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FVAPgmaaEeCm5tXW4raF-A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FVAPg2aaEeCm5tXW4raF-A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FVAPhGaaEeCm5tXW4raF-A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FVAPhWaaEeCm5tXW4raF-A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FVAPhmaaEeCm5tXW4raF-A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FVAPh2aaEeCm5tXW4raF-A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FVAPiGaaEeCm5tXW4raF-A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_FVAPiWaaEeCm5tXW4raF-A" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_G06bsGadEeCm5tXW4raF-A" type="3012" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="jdtmm.uml#_1-hGUGacEeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_G06bsWadEeCm5tXW4raF-A" x="51" y="18"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_G1NWoGadEeCm5tXW4raF-A" type="3012" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="jdtmm.uml#_1-hGVGacEeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_G1NWoWadEeCm5tXW4raF-A" x="51" y="18"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_G1qCkGadEeCm5tXW4raF-A" type="3012" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="jdtmm.uml#_1-hGWGacEeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_G1qCkWadEeCm5tXW4raF-A" x="51" y="18"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_xN-TcIXgEeCQsIB6sI2lFg" type="3012" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qO9oAIXiEeCQsIB6sI2lFg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OHt0AIXjEeCQsIB6sI2lFg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OHt0AYXjEeCQsIB6sI2lFg" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OHt0AoXjEeCQsIB6sI2lFg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OHt0A4XjEeCQsIB6sI2lFg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OHubEIXjEeCQsIB6sI2lFg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="jdtmm.uml#_xN4M0IXgEeCQsIB6sI2lFg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xN-TcYXgEeCQsIB6sI2lFg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_mpo-gJLEEeCLJqKiP0wqKg" type="3012" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:Property" href="jdtmm.uml#_mnykYJLEEeCLJqKiP0wqKg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mpo-gZLEEeCLJqKiP0wqKg"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FVAPimaaEeCm5tXW4raF-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FVAPi2aaEeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FVAPjGaaEeCm5tXW4raF-A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_FVAPjWaaEeCm5tXW4raF-A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FVAPjmaaEeCm5tXW4raF-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FVAPj2aaEeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FVAPkGaaEeCm5tXW4raF-A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_FVAPkWaaEeCm5tXW4raF-A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FVAPkmaaEeCm5tXW4raF-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FVAPk2aaEeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FVAPlGaaEeCm5tXW4raF-A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_JO_yUGHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FVAPgWaaEeCm5tXW4raF-A" x="270" y="390" height="271"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_H1yxQGaaEeCm5tXW4raF-A" type="2008" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H1yxQmaaEeCm5tXW4raF-A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H1yxQ2aaEeCm5tXW4raF-A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H1yxRGaaEeCm5tXW4raF-A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H1yxRWaaEeCm5tXW4raF-A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H1yxRmaaEeCm5tXW4raF-A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H1yxR2aaEeCm5tXW4raF-A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_H1yxSGaaEeCm5tXW4raF-A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_H1yxSWaaEeCm5tXW4raF-A" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_JDOGUGadEeCm5tXW4raF-A" type="3012" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="jdtmm.uml#_7J60NGacEeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JDOGUWadEeCm5tXW4raF-A" x="67" y="10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_PPvS8GadEeCm5tXW4raF-A" type="3012" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="jdtmm.uml#_PO_sEGadEeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_PPvS8WadEeCm5tXW4raF-A"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_H1yxSmaaEeCm5tXW4raF-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_H1yxS2aaEeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H1yxTGaaEeCm5tXW4raF-A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_H1yxTWaaEeCm5tXW4raF-A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_H1yxTmaaEeCm5tXW4raF-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_H1yxT2aaEeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H1yxUGaaEeCm5tXW4raF-A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_H1yxUWaaEeCm5tXW4raF-A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_H1yxUmaaEeCm5tXW4raF-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_H1yxU2aaEeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H1yxVGaaEeCm5tXW4raF-A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_DnQw8GHcEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H1yxQWaaEeCm5tXW4raF-A" x="576" y="384"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Iqin8GaaEeCm5tXW4raF-A" type="2008" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Iqin8maaEeCm5tXW4raF-A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Iqin82aaEeCm5tXW4raF-A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Iqin9GaaEeCm5tXW4raF-A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Iqin9WaaEeCm5tXW4raF-A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Iqin9maaEeCm5tXW4raF-A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Iqin92aaEeCm5tXW4raF-A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Iqin-GaaEeCm5tXW4raF-A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Iqin-WaaEeCm5tXW4raF-A" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Iqin-maaEeCm5tXW4raF-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Iqin-2aaEeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Iqin_GaaEeCm5tXW4raF-A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Iqin_WaaEeCm5tXW4raF-A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Iqin_maaEeCm5tXW4raF-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Iqin_2aaEeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IqioAGaaEeCm5tXW4raF-A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IqioAWaaEeCm5tXW4raF-A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IqioAmaaEeCm5tXW4raF-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IqioA2aaEeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IqioBGaaEeCm5tXW4raF-A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_Ko2hMGHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Iqin8WaaEeCm5tXW4raF-A" x="576" y="534" width="121" height="124"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_P0XfcGacEeCm5tXW4raF-A" type="2008" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_P0XfcmacEeCm5tXW4raF-A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_P0Xfc2acEeCm5tXW4raF-A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_P0XfdGacEeCm5tXW4raF-A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_P0XfdWacEeCm5tXW4raF-A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_P0XfdmacEeCm5tXW4raF-A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_P0Xfd2acEeCm5tXW4raF-A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_P0XfeGacEeCm5tXW4raF-A" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_P0XfeWacEeCm5tXW4raF-A" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_FlyWIGadEeCm5tXW4raF-A" type="3012" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="jdtmm.uml#_3j2FYGacEeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FlyWIWadEeCm5tXW4raF-A" x="51" y="23"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FmruAGadEeCm5tXW4raF-A" type="3012" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="jdtmm.uml#_3j2FZGacEeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FmruAWadEeCm5tXW4raF-A" x="51" y="23"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FnIZ8GadEeCm5tXW4raF-A" type="3012" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="jdtmm.uml#_3j2FaGacEeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FnIZ8WadEeCm5tXW4raF-A" x="51" y="23"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Zb0FYGadEeCm5tXW4raF-A" type="3012" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="jdtmm.uml#_XDFTcGadEeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Zb0FYWadEeCm5tXW4raF-A" x="31" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0NhQYICTEeCoCrzqIGrFSA" type="3012" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="jdtmm.uml#_0K3lAICTEeCoCrzqIGrFSA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0NhQYYCTEeCoCrzqIGrFSA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_hCl94IXIEeCQsIB6sI2lFg" type="3012" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:Property" href="jdtmm.uml#_hBsmAIXIEeCQsIB6sI2lFg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hCl94YXIEeCQsIB6sI2lFg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_5rJA8YXIEeCQsIB6sI2lFg" type="3012" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:Property" href="jdtmm.uml#_5rJA8IXIEeCQsIB6sI2lFg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5rJA8oXIEeCQsIB6sI2lFg"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_P0XfemacEeCm5tXW4raF-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_P0Xfe2acEeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_P0XffGacEeCm5tXW4raF-A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_P0XffWacEeCm5tXW4raF-A" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_P0XffmacEeCm5tXW4raF-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_P0Xff2acEeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_P0XfgGacEeCm5tXW4raF-A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_P0XfgWacEeCm5tXW4raF-A" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_P0XfgmacEeCm5tXW4raF-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_P0Xfg2acEeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_P0XfhGacEeCm5tXW4raF-A"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_IPXhUGHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_P0XfcWacEeCm5tXW4raF-A" x="846" y="534" height="223"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__JYmYHmsEeGZ7KofW4oPeQ" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__JeF8HmsEeGZ7KofW4oPeQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__JetAHmsEeGZ7KofW4oPeQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__JfUEHmsEeGZ7KofW4oPeQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__JfUEXmsEeGZ7KofW4oPeQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__Jf7IHmsEeGZ7KofW4oPeQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__Jf7IXmsEeGZ7KofW4oPeQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="__JgiMHmsEeGZ7KofW4oPeQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__JiXYHmsEeGZ7KofW4oPeQ" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_DV4cAHmtEeGZ7KofW4oPeQ" type="3012" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:Property" href="jdtmm.uml#_TMnrQGd5EeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DV4cAXmtEeGZ7KofW4oPeQ" x="42" y="15"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_DXp9oHmtEeGZ7KofW4oPeQ" type="3012" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:Property" href="jdtmm.uml#_v4cy4GaPEeCm5tXW4raF-A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DXp9oXmtEeGZ7KofW4oPeQ" x="42" y="15"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="__Ji-cHmsEeGZ7KofW4oPeQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__Ji-cXmsEeGZ7KofW4oPeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__Ji-cnmsEeGZ7KofW4oPeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__Ji-c3msEeGZ7KofW4oPeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__Ji-dHmsEeGZ7KofW4oPeQ" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__Ji-dXmsEeGZ7KofW4oPeQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__Ji-dnmsEeGZ7KofW4oPeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__Ji-d3msEeGZ7KofW4oPeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__Ji-eHmsEeGZ7KofW4oPeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__JjlgHmsEeGZ7KofW4oPeQ" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__JjlgXmsEeGZ7KofW4oPeQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__JjlgnmsEeGZ7KofW4oPeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__Jjlg3msEeGZ7KofW4oPeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__JjlhHmsEeGZ7KofW4oPeQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_FVjbkGHYEeCX0Yi87Khu0A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__JYmYXmsEeGZ7KofW4oPeQ" x="270" y="264" width="163" height="103"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Hayb4HmtEeGZ7KofW4oPeQ" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HazqAHmtEeGZ7KofW4oPeQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HazqAXmtEeGZ7KofW4oPeQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ha0REHmtEeGZ7KofW4oPeQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ha0REXmtEeGZ7KofW4oPeQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ha0REnmtEeGZ7KofW4oPeQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ha0RE3mtEeGZ7KofW4oPeQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Ha0RFHmtEeGZ7KofW4oPeQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Ha0RFXmtEeGZ7KofW4oPeQ" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Ha0RFnmtEeGZ7KofW4oPeQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Ha0RF3mtEeGZ7KofW4oPeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Ha0RGHmtEeGZ7KofW4oPeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ha0RGXmtEeGZ7KofW4oPeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Ha0RGnmtEeGZ7KofW4oPeQ" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Ha0RG3mtEeGZ7KofW4oPeQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Ha04IHmtEeGZ7KofW4oPeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Ha04IXmtEeGZ7KofW4oPeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ha04InmtEeGZ7KofW4oPeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Ha04I3mtEeGZ7KofW4oPeQ" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Ha04JHmtEeGZ7KofW4oPeQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Ha04JXmtEeGZ7KofW4oPeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Ha04JnmtEeGZ7KofW4oPeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ha04J3mtEeGZ7KofW4oPeQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_OtGLwGTjEeCLCuJcSSYRDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hayb4XmtEeGZ7KofW4oPeQ" x="270" y="144" width="169" height="97"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_UXzd8HpHEeGZ7KofW4oPeQ" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UX0sEHpHEeGZ7KofW4oPeQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UX1TIHpHEeGZ7KofW4oPeQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UX1TIXpHEeGZ7KofW4oPeQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UX1TInpHEeGZ7KofW4oPeQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UX1TI3pHEeGZ7KofW4oPeQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UX16MHpHEeGZ7KofW4oPeQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UX16MXpHEeGZ7KofW4oPeQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_UX16MnpHEeGZ7KofW4oPeQ" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_UX16M3pHEeGZ7KofW4oPeQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_UX16NHpHEeGZ7KofW4oPeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_UX16NXpHEeGZ7KofW4oPeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UX16NnpHEeGZ7KofW4oPeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_UX2hQHpHEeGZ7KofW4oPeQ" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_566WIHpLEeGZ7KofW4oPeQ" type="3013" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:Operation" href="jdtmm.uml#_564g8HpLEeGZ7KofW4oPeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_566WIXpLEeGZ7KofW4oPeQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_UX2hQXpHEeGZ7KofW4oPeQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_UX2hQnpHEeGZ7KofW4oPeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_UX2hQ3pHEeGZ7KofW4oPeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UX2hRHpHEeGZ7KofW4oPeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_UX2hRXpHEeGZ7KofW4oPeQ" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_UX2hRnpHEeGZ7KofW4oPeQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_UX2hR3pHEeGZ7KofW4oPeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_UX2hSHpHEeGZ7KofW4oPeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UX2hSXpHEeGZ7KofW4oPeQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_UXps8HpHEeGZ7KofW4oPeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UXzd8XpHEeGZ7KofW4oPeQ" x="71" y="535"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XnLkAHpHEeGZ7KofW4oPeQ" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XnMLEHpHEeGZ7KofW4oPeQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XnMLEXpHEeGZ7KofW4oPeQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XnMyIHpHEeGZ7KofW4oPeQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XnMyIXpHEeGZ7KofW4oPeQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XnMyInpHEeGZ7KofW4oPeQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XnMyI3pHEeGZ7KofW4oPeQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XnMyJHpHEeGZ7KofW4oPeQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_XnMyJXpHEeGZ7KofW4oPeQ" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_U3eDcHmtEeGZ7KofW4oPeQ" type="3012" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:Property" href="jdtmm.uml#_U2HYkHmtEeGZ7KofW4oPeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_U3eqgHmtEeGZ7KofW4oPeQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XnMyJnpHEeGZ7KofW4oPeQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_XnMyJ3pHEeGZ7KofW4oPeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_XnMyKHpHEeGZ7KofW4oPeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XnMyKXpHEeGZ7KofW4oPeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_XnMyKnpHEeGZ7KofW4oPeQ" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XnMyK3pHEeGZ7KofW4oPeQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_XnMyLHpHEeGZ7KofW4oPeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_XnMyLXpHEeGZ7KofW4oPeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XnMyLnpHEeGZ7KofW4oPeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_XnNZMHpHEeGZ7KofW4oPeQ" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XnNZMXpHEeGZ7KofW4oPeQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_XnNZMnpHEeGZ7KofW4oPeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_XnNZM3pHEeGZ7KofW4oPeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XnNZNHpHEeGZ7KofW4oPeQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="jdtmm.uml#_XnDBIHpHEeGZ7KofW4oPeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XnLkAXpHEeGZ7KofW4oPeQ" x="66" y="702"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3hXBoHpHEeGZ7KofW4oPeQ" type="2012" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3hYPwHpHEeGZ7KofW4oPeQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3hYPwXpHEeGZ7KofW4oPeQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3hYPwnpHEeGZ7KofW4oPeQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3hY20HpHEeGZ7KofW4oPeQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3hY20XpHEeGZ7KofW4oPeQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3hY20npHEeGZ7KofW4oPeQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3hY203pHEeGZ7KofW4oPeQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="jdtmm.uml#_3g9ZAHpHEeGZ7KofW4oPeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3hXBoXpHEeGZ7KofW4oPeQ" x="65" y="399" width="86" height="52"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_CLF4QWaaEeCm5tXW4raF-A"/>
+ <element xmi:type="uml:Model" href="jdtmm.uml#_zfh1MGHXEeCX0Yi87Khu0A"/>
+ <edges xmi:type="notation:Connector" xmi:id="_VkXaEGaaEeCm5tXW4raF-A" type="4001" source="_FVAPgGaaEeCm5tXW4raF-A" target="_H1yxQGaaEeCm5tXW4raF-A" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_VkXaE2aaEeCm5tXW4raF-A" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VkXaFGaaEeCm5tXW4raF-A" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VkXaFWaaEeCm5tXW4raF-A" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VkXaFmaaEeCm5tXW4raF-A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VkXaF2aaEeCm5tXW4raF-A" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VkXaGGaaEeCm5tXW4raF-A" x="46" y="-11"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VkXaGWaaEeCm5tXW4raF-A" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VkXaGmaaEeCm5tXW4raF-A" x="-20" y="19"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VkXaG2aaEeCm5tXW4raF-A" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VkXaHGaaEeCm5tXW4raF-A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VkXaHWaaEeCm5tXW4raF-A" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VkXaHmaaEeCm5tXW4raF-A" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_VkXaEWaaEeCm5tXW4raF-A" fontHeight="8"/>
+ <element xmi:type="uml:Association" href="jdtmm.uml#_Vj6uI2aaEeCm5tXW4raF-A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_VkXaEmaaEeCm5tXW4raF-A" points="[9, 0, -218, -3]$[215, 13, -12, 10]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Vk0GAGaaEeCm5tXW4raF-A" id="(0.99,0.3247232472324723)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Vk0GAWaaEeCm5tXW4raF-A" id="(0.12,0.82)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_hqe3UGaaEeCm5tXW4raF-A" type="4001" source="_FVAPgGaaEeCm5tXW4raF-A" target="_H1yxQGaaEeCm5tXW4raF-A" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_hqe3U2aaEeCm5tXW4raF-A" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hqe3VGaaEeCm5tXW4raF-A" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hqe3VWaaEeCm5tXW4raF-A" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hqe3VmaaEeCm5tXW4raF-A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hqe3V2aaEeCm5tXW4raF-A" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hqe3WGaaEeCm5tXW4raF-A" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hqe3WWaaEeCm5tXW4raF-A" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hqe3WmaaEeCm5tXW4raF-A" x="-31" y="23"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hqe3W2aaEeCm5tXW4raF-A" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hqe3XGaaEeCm5tXW4raF-A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hqe3XWaaEeCm5tXW4raF-A" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hqe3XmaaEeCm5tXW4raF-A" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_hqe3UWaaEeCm5tXW4raF-A" fontHeight="8"/>
+ <element xmi:type="uml:Association" href="jdtmm.uml#_hqCLY2aaEeCm5tXW4raF-A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hqe3UmaaEeCm5tXW4raF-A" points="[9, 2, -213, 0]$[65, 2, -157, 0]$[215, 2, -7, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hrEtMGaaEeCm5tXW4raF-A" id="(0.91,0.0931174089068826)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hrEtMWaaEeCm5tXW4raF-A" id="(0.07,0.31)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_xqCrUGaaEeCm5tXW4raF-A" type="4001" source="_FVAPgGaaEeCm5tXW4raF-A" target="_Iqin8GaaEeCm5tXW4raF-A" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_xqCrU2aaEeCm5tXW4raF-A" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xqCrVGaaEeCm5tXW4raF-A" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xqCrVWaaEeCm5tXW4raF-A" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xqCrVmaaEeCm5tXW4raF-A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xqCrV2aaEeCm5tXW4raF-A" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xqCrWGaaEeCm5tXW4raF-A" x="11" y="-21"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xqCrWWaaEeCm5tXW4raF-A" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xqCrWmaaEeCm5tXW4raF-A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xqCrW2aaEeCm5tXW4raF-A" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xqCrXGaaEeCm5tXW4raF-A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xqCrXWaaEeCm5tXW4raF-A" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xqCrXmaaEeCm5tXW4raF-A" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_xqCrUWaaEeCm5tXW4raF-A" fontHeight="8"/>
+ <element xmi:type="uml:Association" href="jdtmm.uml#_xpcOY2aaEeCm5tXW4raF-A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_xqCrUmaaEeCm5tXW4raF-A" points="[6, 0, -211, 0]$[312, 6, 95, 6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xqVmQGaaEeCm5tXW4raF-A" id="(0.94,0.7732793522267206)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xqVmQWaaEeCm5tXW4raF-A" id="(0.03,0.5241935483870968)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_-f15EGaaEeCm5tXW4raF-A" type="4001" source="_H1yxQGaaEeCm5tXW4raF-A" target="_Iqin8GaaEeCm5tXW4raF-A" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_-f15E2aaEeCm5tXW4raF-A" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-f15FGaaEeCm5tXW4raF-A" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-f15FWaaEeCm5tXW4raF-A" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-f15FmaaEeCm5tXW4raF-A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-f15F2aaEeCm5tXW4raF-A" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-f15GGaaEeCm5tXW4raF-A" x="8" y="-64"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-f15GWaaEeCm5tXW4raF-A" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-f15GmaaEeCm5tXW4raF-A" x="-3" y="-54"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-f15G2aaEeCm5tXW4raF-A" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-f15HGaaEeCm5tXW4raF-A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-f15HWaaEeCm5tXW4raF-A" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-f15HmaaEeCm5tXW4raF-A" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_-f15EWaaEeCm5tXW4raF-A" fontHeight="8"/>
+ <element xmi:type="uml:Association" href="jdtmm.uml#_-fPcI2aaEeCm5tXW4raF-A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-f15EmaaEeCm5tXW4raF-A" points="[0, 5, 0, -55]$[8, 155, 8, 95]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-gR98GaaEeCm5tXW4raF-A" id="(0.46,0.95)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-gR98WaaEeCm5tXW4raF-A" id="(0.46,0.05)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_RXmz0GacEeCm5tXW4raF-A" type="4001" source="_P0XfcGacEeCm5tXW4raF-A" target="_Iqin8GaaEeCm5tXW4raF-A" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_RXwk0GacEeCm5tXW4raF-A" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RXwk0WacEeCm5tXW4raF-A" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RXwk0macEeCm5tXW4raF-A" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RXwk02acEeCm5tXW4raF-A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RXwk1GacEeCm5tXW4raF-A" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RXwk1WacEeCm5tXW4raF-A" x="18" y="-17"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RXwk1macEeCm5tXW4raF-A" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RXwk12acEeCm5tXW4raF-A" x="-21" y="19"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RXwk2GacEeCm5tXW4raF-A" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RXwk2WacEeCm5tXW4raF-A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RXwk2macEeCm5tXW4raF-A" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RXwk22acEeCm5tXW4raF-A" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_RXmz0WacEeCm5tXW4raF-A" fontHeight="8"/>
+ <element xmi:type="uml:Association" href="jdtmm.uml#_RXA982acEeCm5tXW4raF-A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RXmz0macEeCm5tXW4raF-A" points="[-6, -1, 177, 2]$[-276, 12, -93, 15]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RYDfwGacEeCm5tXW4raF-A" id="(0.06,0.46)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RYDfwWacEeCm5tXW4raF-A" id="(0.99,0.4838709677419355)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="__M9e0HmsEeGZ7KofW4oPeQ" type="4002" source="_FVAPgGaaEeCm5tXW4raF-A" target="__JYmYHmsEeGZ7KofW4oPeQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="__M_7EHmsEeGZ7KofW4oPeQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__M_7EXmsEeGZ7KofW4oPeQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="__M9e0XmsEeGZ7KofW4oPeQ" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_NGzKUGHYEeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__M9e0nmsEeGZ7KofW4oPeQ" points="[-82, -55, 276, 182]$[-358, -237, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_HcrSQHmtEeGZ7KofW4oPeQ" type="4002" source="__JYmYHmsEeGZ7KofW4oPeQ" target="_Hayb4HmtEeGZ7KofW4oPeQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_HcsgYHmtEeGZ7KofW4oPeQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_HcsgYXmtEeGZ7KofW4oPeQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_HcrSQXmtEeGZ7KofW4oPeQ" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_HoB0gGHYEeCX0Yi87Khu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HcrSQnmtEeGZ7KofW4oPeQ" points="[-81, -30, 276, 102]$[-357, -132, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ca-DIHpHEeGZ7KofW4oPeQ" type="4002" source="_XnLkAHpHEeGZ7KofW4oPeQ" target="_UXzd8HpHEeGZ7KofW4oPeQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_cbAfYHpHEeGZ7KofW4oPeQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cbAfYXpHEeGZ7KofW4oPeQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ca-DIXpHEeGZ7KofW4oPeQ" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="jdtmm.uml#_ca4jkHpHEeGZ7KofW4oPeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ca-DInpHEeGZ7KofW4oPeQ" points="[-3, -14, 0, 73]$[-4, -81, -1, 6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cbF-8HpHEeGZ7KofW4oPeQ" id="(0.5285714285714286,0.1346153846153846)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cbF-8XpHEeGZ7KofW4oPeQ" id="(0.48,0.94)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_dv5OsHpHEeGZ7KofW4oPeQ" type="4001" source="_FVAPgGaaEeCm5tXW4raF-A" target="_UXzd8HpHEeGZ7KofW4oPeQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dv51wHpHEeGZ7KofW4oPeQ" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dv51wXpHEeGZ7KofW4oPeQ" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dv6c0HpHEeGZ7KofW4oPeQ" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dv6c0XpHEeGZ7KofW4oPeQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dv6c0npHEeGZ7KofW4oPeQ" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dv6c03pHEeGZ7KofW4oPeQ" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dv6c1HpHEeGZ7KofW4oPeQ" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dv6c1XpHEeGZ7KofW4oPeQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dv6c1npHEeGZ7KofW4oPeQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dv6c13pHEeGZ7KofW4oPeQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dv7D4HpHEeGZ7KofW4oPeQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dv7D4XpHEeGZ7KofW4oPeQ" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dv5OsXpHEeGZ7KofW4oPeQ" fontName="Segoe UI"/>
+ <element xmi:type="uml:Association" href="jdtmm.uml#_dvx58HpHEeGZ7KofW4oPeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dv5OsnpHEeGZ7KofW4oPeQ" points="[-6, 3, 109, 0]$[-105, -3, 10, -6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dwEN0HpHEeGZ7KofW4oPeQ" id="(0.03636363636363636,0.6236162361623616)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dwEN0XpHEeGZ7KofW4oPeQ" id="(0.9,0.27)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9xzsAHpHEeGZ7KofW4oPeQ" type="4013" source="_3hXBoHpHEeGZ7KofW4oPeQ" target="_UXzd8HpHEeGZ7KofW4oPeQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_9x0TEHpHEeGZ7KofW4oPeQ" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9x0TEXpHEeGZ7KofW4oPeQ" points="[-2, 60, 0, -96]$[-10, 136, -8, -20]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9x-rIHpHEeGZ7KofW4oPeQ" id="(0.10648148148148148,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9x-rIXpHEeGZ7KofW4oPeQ" id="(0.38,0.2)"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.uml b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.uml
new file mode 100644
index 00000000000..30b14aa8114
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.uml
@@ -0,0 +1,481 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/5" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/3.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
+ <uml:Model xmi:id="_zfh1MGHXEeCX0Yi87Khu0A" name="jdtmm">
+ <ownedComment xmi:id="_3g9ZAHpHEeGZ7KofW4oPeQ" annotatedElement="_UXps8HpHEeGZ7KofW4oPeQ">
+ <body>Can have different type of body: opaque, expr (not yet implemented, ...)</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_1FwMIGHXEeCX0Yi87Khu0A" name="JDTJavaElement" isAbstract="true">
+ <ownedAttribute xmi:id="_JrpDVGHeEeCX0Yi87Khu0A" name="parent" type="_tQ7LoGHcEeCX0Yi87Khu0A" isReadOnly="true" association="_JrpDU2HeEeCX0Yi87Khu0A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JrpDVWHeEeCX0Yi87Khu0A" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JrpDVmHeEeCX0Yi87Khu0A"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_NhspgGQ8EeCX0Yi87Khu0A" name="elementName" visibility="public" type="_8e3HsGHXEeCX0Yi87Khu0A" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_P3mw8GQ8EeCX0Yi87Khu0A" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_P3c_8GQ8EeCX0Yi87Khu0A" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_P3mw8WQ8EeCX0Yi87Khu0A">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0i1iwGQ8EeC0ouwfA8DHnA" name="elementType" visibility="public" type="_W3PckGQ8EeCX0Yi87Khu0A" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2p_cgGQ8EeC0ouwfA8DHnA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2p1rgGQ8EeC0ouwfA8DHnA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_2p_cgWQ8EeC0ouwfA8DHnA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_YFzE8GQ9EeC0ouwfA8DHnA" name="comment" visibility="public" type="_8e3HsGHXEeCX0Yi87Khu0A" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Z9dKIGQ9EeC0ouwfA8DHnA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Z9TZIGQ9EeC0ouwfA8DHnA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_Z9dKIWQ9EeC0ouwfA8DHnA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_8N7lMGkpEeCdmowH5XgRBA" name="generated" visibility="public" type="_R4mQ8GQ_EeC0ouwfA8DHnA">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A8JAwGkqEeCdmowH5XgRBA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A8CTEGkqEeCdmowH5XgRBA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_A8OgUGkqEeCdmowH5XgRBA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_hdksoGQ9EeC0ouwfA8DHnA" name="getQualifiedName">
+ <ownedParameter xmi:id="_kPCusGQ9EeC0ouwfA8DHnA" name="res" type="_8e3HsGHXEeCX0Yi87Khu0A" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_7NoxYGQ9EeC0ouwfA8DHnA" name="accept" raisedException="_3gm8YGdmEeCm5tXW4raF-A">
+ <ownedParameter xmi:id="_XL3W0GQ-EeC0ouwfA8DHnA" name="visitor" type="_9SaFgGQ9EeC0ouwfA8DHnA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_HskUUGh9EeCx9v9J-w9ljA" name="getJDTSignature">
+ <ownedParameter xmi:id="_QUpkcGh9EeCx9v9J-w9ljA" name="signature" type="_8e3HsGHXEeCX0Yi87Khu0A" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_8e3HsGHXEeCX0Yi87Khu0A" name="String"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_FVjbkGHYEeCX0Yi87Khu0A" name="JDTMember" isAbstract="true">
+ <generalization xmi:id="_HoB0gGHYEeCX0Yi87Khu0A" general="_OtGLwGTjEeCLCuJcSSYRDQ"/>
+ <ownedAttribute xmi:id="_v4cy4GaPEeCm5tXW4raF-A" name="typeParameters" type="_zStvwGaOEeCm5tXW4raF-A" aggregation="composite" association="_v4l80GaPEeCm5tXW4raF-A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_v4cy4WaPEeCm5tXW4raF-A" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_v4cy4maPEeCm5tXW4raF-A"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_TMnrQGd5EeCm5tXW4raF-A" name="visibility" visibility="public" type="_LzEDwGd5EeCm5tXW4raF-A" isUnique="false" isDerived="true">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Xm2a4Wd5EeCm5tXW4raF-A" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Xm2a4Gd5EeCm5tXW4raF-A" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_Xm2a4md5EeCm5tXW4raF-A" value="public"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ul0B4H_4EeGqdId9TXdXhQ" name="explicitRequiredImports" type="_Ko2hMGHYEeCX0Yi87Khu0A" association="_ul4TUH_4EeGqdId9TXdXhQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ul0B4X_4EeGqdId9TXdXhQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ul0B4n_4EeGqdId9TXdXhQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_7x3zgH_4EeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" type="_8e3HsGHXEeCX0Yi87Khu0A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BWhu4H_5EeGqdId9TXdXhQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BWf5sH_5EeGqdId9TXdXhQ"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_IPXhUGHYEeCX0Yi87Khu0A" name="JDTField">
+ <generalization xmi:id="_Mi5MAGHYEeCX0Yi87Khu0A" general="_FVjbkGHYEeCX0Yi87Khu0A"/>
+ <ownedAttribute xmi:id="_eEz_FGHiEeCX0Yi87Khu0A" name="owner" type="_Ko2hMGHYEeCX0Yi87Khu0A" redefinedProperty="_JrpDVGHeEeCX0Yi87Khu0A" association="_eEz_E2HiEeCX0Yi87Khu0A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eEz_FWHiEeCX0Yi87Khu0A" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eEz_FmHiEeCX0Yi87Khu0A" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_3j2FYGacEeCm5tXW4raF-A" name="abstract" visibility="public" type="_R4mQ8GQ_EeC0ouwfA8DHnA" isUnique="false" isDerived="true">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3j2FYWacEeCm5tXW4raF-A" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3j2FYmacEeCm5tXW4raF-A" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_3j2FY2acEeCm5tXW4raF-A" value="false"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_3j2FZGacEeCm5tXW4raF-A" name="final" visibility="public" type="_R4mQ8GQ_EeC0ouwfA8DHnA" isUnique="false" isDerived="true">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3j2FZWacEeCm5tXW4raF-A" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3j2FZmacEeCm5tXW4raF-A" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_3j2FZ2acEeCm5tXW4raF-A" value="false"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_3j2FaGacEeCm5tXW4raF-A" name="static" visibility="public" type="_R4mQ8GQ_EeC0ouwfA8DHnA" isUnique="false" isDerived="true">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3j2FaWacEeCm5tXW4raF-A" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3j2FamacEeCm5tXW4raF-A" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_3j2Fa2acEeCm5tXW4raF-A" value="false"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_XDFTcGadEeCm5tXW4raF-A" name="isMultiValued" visibility="public" type="_R4mQ8GQ_EeC0ouwfA8DHnA" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XDFTcWadEeCm5tXW4raF-A" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XDFTcmadEeCm5tXW4raF-A" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_XDFTc2adEeCm5tXW4raF-A" value="false"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_RXA98GacEeCm5tXW4raF-A" name="type" type="_Ko2hMGHYEeCX0Yi87Khu0A" association="_RXA982acEeCm5tXW4raF-A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_RXA98WacEeCm5tXW4raF-A" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_RXA98macEeCm5tXW4raF-A"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0K3lAICTEeCoCrzqIGrFSA" name="value" visibility="public" type="_8e3HsGHXEeCX0Yi87Khu0A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_RDtYkICUEeCoCrzqIGrFSA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_RDrjYICUEeCoCrzqIGrFSA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_zE85MmaREeCm5tXW4raF-A">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_hBsmAIXIEeCQsIB6sI2lFg" name="generateGetter" visibility="public" type="_n5eWIIXIEeCQsIB6sI2lFg">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kr3KoYXIEeCQsIB6sI2lFg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kr3KoIXIEeCQsIB6sI2lFg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_kr3KooXIEeCQsIB6sI2lFg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_5rJA8IXIEeCQsIB6sI2lFg" name="generateSetter" visibility="public" type="_n5eWIIXIEeCQsIB6sI2lFg">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_7_K5EYXIEeCQsIB6sI2lFg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_7_K5EIXIEeCQsIB6sI2lFg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_7_UqEIXIEeCQsIB6sI2lFg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_JO_yUGHYEeCX0Yi87Khu0A" name="JDTMethod">
+ <generalization xmi:id="_NGzKUGHYEeCX0Yi87Khu0A" general="_FVjbkGHYEeCX0Yi87Khu0A"/>
+ <ownedAttribute xmi:id="_dBm1pGHiEeCX0Yi87Khu0A" name="owner" type="_Ko2hMGHYEeCX0Yi87Khu0A" redefinedProperty="_JrpDVGHeEeCX0Yi87Khu0A" association="_dBm1o2HiEeCX0Yi87Khu0A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dBm1pWHiEeCX0Yi87Khu0A" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dBm1pmHiEeCX0Yi87Khu0A" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_Vj6uIGaaEeCm5tXW4raF-A" name="returnType" type="_DnQw8GHcEeCX0Yi87Khu0A" aggregation="composite" association="_Vj6uI2aaEeCm5tXW4raF-A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Vj6uIWaaEeCm5tXW4raF-A" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Vj6uImaaEeCm5tXW4raF-A"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_hqCLYGaaEeCm5tXW4raF-A" name="parameters" type="_DnQw8GHcEeCX0Yi87Khu0A" aggregation="composite" association="_hqCLY2aaEeCm5tXW4raF-A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hqCLYWaaEeCm5tXW4raF-A" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hqCLYmaaEeCm5tXW4raF-A"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_1-hGUGacEeCm5tXW4raF-A" name="abstract" visibility="public" type="_R4mQ8GQ_EeC0ouwfA8DHnA" isUnique="false" isDerived="true">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_1-hGUWacEeCm5tXW4raF-A" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_1-hGUmacEeCm5tXW4raF-A" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_1-hGU2acEeCm5tXW4raF-A" value="false"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_1-hGVGacEeCm5tXW4raF-A" name="final" visibility="public" type="_R4mQ8GQ_EeC0ouwfA8DHnA" isUnique="false" isDerived="true">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_1-hGVWacEeCm5tXW4raF-A" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_1-hGVmacEeCm5tXW4raF-A" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_1-hGV2acEeCm5tXW4raF-A" value="false"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_1-hGWGacEeCm5tXW4raF-A" name="static" visibility="public" type="_R4mQ8GQ_EeC0ouwfA8DHnA" isUnique="false" isDerived="true">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_1-hGWWacEeCm5tXW4raF-A" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_1-hGWmacEeCm5tXW4raF-A" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_1-hGW2acEeCm5tXW4raF-A" value="false"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_xpcOYGaaEeCm5tXW4raF-A" name="exceptions" type="_Ko2hMGHYEeCX0Yi87Khu0A" association="_xpcOY2aaEeCm5tXW4raF-A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xpcOYWaaEeCm5tXW4raF-A" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xpcOYmaaEeCm5tXW4raF-A"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_xN4M0IXgEeCQsIB6sI2lFg" name="synchronized" visibility="public" type="_R4mQ8GQ_EeC0ouwfA8DHnA" isUnique="false" isDerived="true">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zMkHEIXgEeCQsIB6sI2lFg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zMdZYIXgEeCQsIB6sI2lFg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_zMpmoIXgEeCQsIB6sI2lFg" value="false"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mnykYJLEEeCLJqKiP0wqKg" name="constructor" visibility="public" type="_R4mQ8GQ_EeC0ouwfA8DHnA">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_pZq2IJLEEeCLJqKiP0wqKg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_pZpA8JLEEeCLJqKiP0wqKg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_pZsrUJLEEeCLJqKiP0wqKg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_dvu2oHpHEeGZ7KofW4oPeQ" name="bodies" type="_UXps8HpHEeGZ7KofW4oPeQ" aggregation="composite" association="_dvx58HpHEeGZ7KofW4oPeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dvu2oXpHEeGZ7KofW4oPeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dvu2onpHEeGZ7KofW4oPeQ"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Ko2hMGHYEeCX0Yi87Khu0A" name="JDTType" isAbstract="true">
+ <generalization xmi:id="_NyUMgGHYEeCX0Yi87Khu0A" general="_FVjbkGHYEeCX0Yi87Khu0A"/>
+ <ownedAttribute xmi:id="_dBm1oGHiEeCX0Yi87Khu0A" name="methods" type="_JO_yUGHYEeCX0Yi87Khu0A" aggregation="composite" subsettedProperty="_JrpDUGHeEeCX0Yi87Khu0A" association="_dBm1o2HiEeCX0Yi87Khu0A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dBm1oWHiEeCX0Yi87Khu0A" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dBm1omHiEeCX0Yi87Khu0A"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_eEz_EGHiEeCX0Yi87Khu0A" name="fields" type="_IPXhUGHYEeCX0Yi87Khu0A" aggregation="composite" subsettedProperty="_JrpDUGHeEeCX0Yi87Khu0A" association="_eEz_E2HiEeCX0Yi87Khu0A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eEz_EWHiEeCX0Yi87Khu0A" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eEz_EmHiEeCX0Yi87Khu0A"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_C3L2VGQ2EeCX0Yi87Khu0A" name="compilationUnit" type="_aJkdEGHYEeCX0Yi87Khu0A" redefinedProperty="_JrpDVGHeEeCX0Yi87Khu0A" association="_C3L2U2Q2EeCX0Yi87Khu0A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3L2VWQ2EeCX0Yi87Khu0A" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3L2VmQ2EeCX0Yi87Khu0A"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_PJXDgGQ_EeC0ouwfA8DHnA" name="class" visibility="public" type="_R4mQ8GQ_EeC0ouwfA8DHnA" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_YyjyYWQ_EeC0ouwfA8DHnA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_YyjyYGQ_EeC0ouwfA8DHnA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_2d7kMGRBEeC0ouwfA8DHnA" value="false"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_Zd7DkGQ_EeC0ouwfA8DHnA" name="interface" visibility="public" type="_R4mQ8GQ_EeC0ouwfA8DHnA" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_a_OeQWQ_EeC0ouwfA8DHnA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_a_OeQGQ_EeC0ouwfA8DHnA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_3pCFYGRBEeC0ouwfA8DHnA" value="false"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_bbim0GQ_EeC0ouwfA8DHnA" name="enum" visibility="public" type="_R4mQ8GQ_EeC0ouwfA8DHnA" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_cgO-AWQ_EeC0ouwfA8DHnA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cgO-AGQ_EeC0ouwfA8DHnA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_zGdSEGRBEeC0ouwfA8DHnA" value="false"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_wIvm8GRFEeC0ouwfA8DHnA" name="abstract" visibility="public" type="_R4mQ8GQ_EeC0ouwfA8DHnA" isUnique="false" isDerived="true">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_x-KQcWRFEeC0ouwfA8DHnA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_x-KQcGRFEeC0ouwfA8DHnA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_x-KQcmRFEeC0ouwfA8DHnA" value="false"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_yeWMYGRFEeC0ouwfA8DHnA" name="final" visibility="public" type="_R4mQ8GQ_EeC0ouwfA8DHnA" isUnique="false" isDerived="true">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_1Y6gEWRFEeC0ouwfA8DHnA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_1Y6gEGRFEeC0ouwfA8DHnA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_1Y6gEmRFEeC0ouwfA8DHnA" value="false"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_Azk6oGRIEeC0ouwfA8DHnA" name="static" visibility="public" type="_R4mQ8GQ_EeC0ouwfA8DHnA" isUnique="false" isDerived="true">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CmK5oWRIEeC0ouwfA8DHnA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CmK5oGRIEeC0ouwfA8DHnA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_CmK5omRIEeC0ouwfA8DHnA" value="false"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_5KTXIGR-EeC0ouwfA8DHnA" name="types" type="_Ko2hMGHYEeCX0Yi87Khu0A" aggregation="composite" subsettedProperty="_JrpDUGHeEeCX0Yi87Khu0A" association="_5KmSEGR-EeC0ouwfA8DHnA">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_5KTXIWR-EeC0ouwfA8DHnA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_5KTXImR-EeC0ouwfA8DHnA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_5KmSEWR-EeC0ouwfA8DHnA" name="owner" type="_Ko2hMGHYEeCX0Yi87Khu0A" redefinedProperty="_JrpDVGHeEeCX0Yi87Khu0A" association="_5KmSEGR-EeC0ouwfA8DHnA">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_5KmSEmR-EeC0ouwfA8DHnA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_5KmSE2R-EeC0ouwfA8DHnA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mNyO8GaQEeCm5tXW4raF-A" name="superInterfaces" type="_Ko2hMGHYEeCX0Yi87Khu0A" association="_mNyO82aQEeCm5tXW4raF-A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mNyO8WaQEeCm5tXW4raF-A" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mNyO8maQEeCm5tXW4raF-A"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_Yub4cGaREeCm5tXW4raF-A" name="superClass" type="_Ko2hMGHYEeCX0Yi87Khu0A" association="_Yub4c2aREeCm5tXW4raF-A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Yub4cWaREeCm5tXW4raF-A" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Yub4cmaREeCm5tXW4raF-A"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ujkYsGaREeCm5tXW4raF-A" name="superInterfaceNames" visibility="public" type="_8e3HsGHXEeCX0Yi87Khu0A" isUnique="false" isReadOnly="true" isDerived="true">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zE85MWaREeCm5tXW4raF-A" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zE85MGaREeCm5tXW4raF-A"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_z6mHwGaREeCm5tXW4raF-A" name="superClassName" visibility="public" type="_8e3HsGHXEeCX0Yi87Khu0A" isUnique="false" isReadOnly="true" isDerived="true">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_24Sn8GaREeCm5tXW4raF-A" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_24I28GaREeCm5tXW4raF-A" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_24Sn8WaREeCm5tXW4raF-A">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Q1Xt0GHYEeCX0Yi87Khu0A" name="JDTClass">
+ <generalization xmi:id="_WSgE4GHYEeCX0Yi87Khu0A" general="_Ko2hMGHYEeCX0Yi87Khu0A"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_SJQ-oGHYEeCX0Yi87Khu0A" name="JDTInterface">
+ <generalization xmi:id="_W0ohkGHYEeCX0Yi87Khu0A" general="_Ko2hMGHYEeCX0Yi87Khu0A"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_T1AHsGHYEeCX0Yi87Khu0A" name="JDTEnum">
+ <generalization xmi:id="_XP5hQGHYEeCX0Yi87Khu0A" general="_Ko2hMGHYEeCX0Yi87Khu0A"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_YYUh4GHYEeCX0Yi87Khu0A" name="JDTTypeRoot" isAbstract="true">
+ <generalization xmi:id="_BUmnQGHbEeCX0Yi87Khu0A" general="_OtGLwGTjEeCLCuJcSSYRDQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_aJkdEGHYEeCX0Yi87Khu0A" name="JDTCompilationUnit">
+ <generalization xmi:id="_CLcIoGHbEeCX0Yi87Khu0A" general="_YYUh4GHYEeCX0Yi87Khu0A"/>
+ <ownedAttribute xmi:id="_a2kdFGQ1EeCX0Yi87Khu0A" name="packageFragment" type="_0qyVIGHcEeCX0Yi87Khu0A" redefinedProperty="_JrpDVGHeEeCX0Yi87Khu0A" association="_a2kdE2Q1EeCX0Yi87Khu0A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_a2kdFWQ1EeCX0Yi87Khu0A" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_a2kdFmQ1EeCX0Yi87Khu0A"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_C3L2UGQ2EeCX0Yi87Khu0A" name="types" type="_Ko2hMGHYEeCX0Yi87Khu0A" aggregation="composite" subsettedProperty="_JrpDUGHeEeCX0Yi87Khu0A" association="_C3L2U2Q2EeCX0Yi87Khu0A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3L2UWQ2EeCX0Yi87Khu0A" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3L2UmQ2EeCX0Yi87Khu0A"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_dyK7cGHYEeCX0Yi87Khu0A" name="JDTImportDeclaration">
+ <generalization xmi:id="_Ndbk0GHcEeCX0Yi87Khu0A" general="_1FwMIGHXEeCX0Yi87Khu0A"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_fh7o4GHYEeCX0Yi87Khu0A" name="JDTImportContainer">
+ <generalization xmi:id="_MEnXwGHcEeCX0Yi87Khu0A" general="_OtGLwGTjEeCLCuJcSSYRDQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_DnQw8GHcEeCX0Yi87Khu0A" name="JDTParameter">
+ <generalization xmi:id="_LPH6MGHcEeCX0Yi87Khu0A" general="_FVjbkGHYEeCX0Yi87Khu0A"/>
+ <ownedAttribute xmi:id="_Vj6uJGaaEeCm5tXW4raF-A" name="returnOwner" type="_JO_yUGHYEeCX0Yi87Khu0A" association="_Vj6uI2aaEeCm5tXW4raF-A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Vj6uJWaaEeCm5tXW4raF-A" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Vj6uJmaaEeCm5tXW4raF-A"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_hqCLZGaaEeCm5tXW4raF-A" name="parameterOwner" type="_JO_yUGHYEeCX0Yi87Khu0A" association="_hqCLY2aaEeCm5tXW4raF-A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hqCLZWaaEeCm5tXW4raF-A" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hqCLZmaaEeCm5tXW4raF-A"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_7J60NGacEeCm5tXW4raF-A" name="final" visibility="public" type="_R4mQ8GQ_EeC0ouwfA8DHnA" isUnique="false" isDerived="true">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_7J60NWacEeCm5tXW4raF-A" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_7J60NmacEeCm5tXW4raF-A" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_7J60N2acEeCm5tXW4raF-A" value="false"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_PO_sEGadEeCm5tXW4raF-A" name="isMultiValued" visibility="public" type="_R4mQ8GQ_EeC0ouwfA8DHnA" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_T2CvsGadEeCm5tXW4raF-A" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_T14-sGadEeCm5tXW4raF-A" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_T2CvsWadEeCm5tXW4raF-A" value="false"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_-fPcIGaaEeCm5tXW4raF-A" name="type" type="_Ko2hMGHYEeCX0Yi87Khu0A" association="_-fPcI2aaEeCm5tXW4raF-A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-fPcIWaaEeCm5tXW4raF-A" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-fPcImaaEeCm5tXW4raF-A"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_tQ7LoGHcEeCX0Yi87Khu0A" name="JDTParent" isAbstract="true">
+ <ownedAttribute xmi:id="_JrpDUGHeEeCX0Yi87Khu0A" name="children" type="_1FwMIGHXEeCX0Yi87Khu0A" isReadOnly="true" isDerivedUnion="true" association="_JrpDU2HeEeCX0Yi87Khu0A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JrpDUWHeEeCX0Yi87Khu0A" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JrpDUmHeEeCX0Yi87Khu0A"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_JrLjkGQ_EeC0ouwfA8DHnA" name="flags" visibility="public" type="_W3PckGQ8EeCX0Yi87Khu0A" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Kv36wWQ_EeC0ouwfA8DHnA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Kv36wGQ_EeC0ouwfA8DHnA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_KwBrwGQ_EeC0ouwfA8DHnA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_LxNwQGRxEeC0ouwfA8DHnA" name="setFlag">
+ <ownedParameter xmi:id="_TdsTwGRxEeC0ouwfA8DHnA" name="flag" type="_W3PckGQ8EeCX0Yi87Khu0A"/>
+ <ownedParameter xmi:id="_tcOgEGR2EeC0ouwfA8DHnA" name="value" type="_R4mQ8GQ_EeC0ouwfA8DHnA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_NPiIYGRxEeC0ouwfA8DHnA" name="isFlagSet">
+ <ownedParameter xmi:id="_ckoDEGRxEeC0ouwfA8DHnA" name="res" type="_R4mQ8GQ_EeC0ouwfA8DHnA" direction="return"/>
+ <ownedParameter xmi:id="_O1hj4GRzEeC0ouwfA8DHnA" name="flag" type="_W3PckGQ8EeCX0Yi87Khu0A" effect="create"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_0qyVIGHcEeCX0Yi87Khu0A" name="JDTPackageFragment">
+ <generalization xmi:id="_6SzGgGHcEeCX0Yi87Khu0A" general="_OtGLwGTjEeCLCuJcSSYRDQ"/>
+ <ownedAttribute xmi:id="_R1RRIWQ0EeCX0Yi87Khu0A" name="packageFragmentRoot" type="_3JLqMGHcEeCX0Yi87Khu0A" redefinedProperty="_JrpDVGHeEeCX0Yi87Khu0A" association="_R1RRIGQ0EeCX0Yi87Khu0A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_R1RRImQ0EeCX0Yi87Khu0A" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_R1RRI2Q0EeCX0Yi87Khu0A"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_a2kdEGQ1EeCX0Yi87Khu0A" name="compilationUnits" type="_aJkdEGHYEeCX0Yi87Khu0A" aggregation="composite" subsettedProperty="_JrpDUGHeEeCX0Yi87Khu0A" association="_a2kdE2Q1EeCX0Yi87Khu0A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_a2kdEWQ1EeCX0Yi87Khu0A" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_a2kdEmQ1EeCX0Yi87Khu0A"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_3JLqMGHcEeCX0Yi87Khu0A" name="JDTPackageFragmentRoot">
+ <generalization xmi:id="_7HGRQGHcEeCX0Yi87Khu0A" general="_OtGLwGTjEeCLCuJcSSYRDQ"/>
+ <ownedAttribute xmi:id="_R1IHMGQ0EeCX0Yi87Khu0A" name="packageFragments" type="_0qyVIGHcEeCX0Yi87Khu0A" aggregation="composite" subsettedProperty="_JrpDUGHeEeCX0Yi87Khu0A" association="_R1RRIGQ0EeCX0Yi87Khu0A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_R1IHMWQ0EeCX0Yi87Khu0A" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_R1IHMmQ0EeCX0Yi87Khu0A"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_9ihBBGTgEeCLCuJcSSYRDQ" name="javaProject" type="_kWqckGTgEeCLCuJcSSYRDQ" redefinedProperty="_JrpDVGHeEeCX0Yi87Khu0A" association="_9ihBA2TgEeCLCuJcSSYRDQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9ihBBWTgEeCLCuJcSSYRDQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9ihBBmTgEeCLCuJcSSYRDQ"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_JrpDU2HeEeCX0Yi87Khu0A" name="jDTParent_jDTJavaElement_0" memberEnd="_JrpDVGHeEeCX0Yi87Khu0A _JrpDUGHeEeCX0Yi87Khu0A"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_dBm1o2HiEeCX0Yi87Khu0A" name="jDTType_jDTMethod_0" memberEnd="_dBm1pGHiEeCX0Yi87Khu0A _dBm1oGHiEeCX0Yi87Khu0A"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_eEz_E2HiEeCX0Yi87Khu0A" name="jDTType_jDTField_0" memberEnd="_eEz_FGHiEeCX0Yi87Khu0A _eEz_EGHiEeCX0Yi87Khu0A"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_R1RRIGQ0EeCX0Yi87Khu0A" name="jDTPackageFragmentRoot_jDTPackageFragment_0" memberEnd="_R1RRIWQ0EeCX0Yi87Khu0A _R1IHMGQ0EeCX0Yi87Khu0A"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_a2kdE2Q1EeCX0Yi87Khu0A" name="jDTPackageFragment_jDTCompilationUnit_0" memberEnd="_a2kdFGQ1EeCX0Yi87Khu0A _a2kdEGQ1EeCX0Yi87Khu0A"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_C3L2U2Q2EeCX0Yi87Khu0A" name="jDTCompilationUnit_jDTType_0" memberEnd="_C3L2VGQ2EeCX0Yi87Khu0A _C3L2UGQ2EeCX0Yi87Khu0A"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_W3PckGQ8EeCX0Yi87Khu0A" name="int"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_9SaFgGQ9EeC0ouwfA8DHnA" name="Visitor"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_R4mQ8GQ_EeC0ouwfA8DHnA" name="boolean"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_5KmSEGR-EeC0ouwfA8DHnA" name="jDTType_jDTType_0" memberEnd="_5KmSEWR-EeC0ouwfA8DHnA _5KTXIGR-EeC0ouwfA8DHnA"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_kWqckGTgEeCLCuJcSSYRDQ" name="JDTJavaProject">
+ <generalization xmi:id="_pO_dcGTgEeCLCuJcSSYRDQ" general="_OtGLwGTjEeCLCuJcSSYRDQ"/>
+ <ownedAttribute xmi:id="_9ihBAGTgEeCLCuJcSSYRDQ" name="packageFragmentRoots" type="_3JLqMGHcEeCX0Yi87Khu0A" aggregation="composite" subsettedProperty="_JrpDUGHeEeCX0Yi87Khu0A" association="_9ihBA2TgEeCLCuJcSSYRDQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9ihBAWTgEeCLCuJcSSYRDQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9ihBAmTgEeCLCuJcSSYRDQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_A36rAWTrEeCx-IU0sjGPKA" name="javaModel" type="_LpaNwGTiEeCLCuJcSSYRDQ" association="_A36rAGTrEeCx-IU0sjGPKA">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A36rAmTrEeCx-IU0sjGPKA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A36rA2TrEeCx-IU0sjGPKA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_9ihBA2TgEeCLCuJcSSYRDQ" name="jDTJavaProject_jDTPackageFragmentRoot_0" memberEnd="_9ihBBGTgEeCLCuJcSSYRDQ _9ihBAGTgEeCLCuJcSSYRDQ"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_LpaNwGTiEeCLCuJcSSYRDQ" name="JDTJavaModel">
+ <generalization xmi:id="_NUi54GTiEeCLCuJcSSYRDQ" general="_OtGLwGTjEeCLCuJcSSYRDQ"/>
+ <ownedAttribute xmi:id="_A3nwEGTrEeCx-IU0sjGPKA" name="javaProject" type="_kWqckGTgEeCLCuJcSSYRDQ" aggregation="composite" association="_A36rAGTrEeCx-IU0sjGPKA">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A3nwEWTrEeCx-IU0sjGPKA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A3nwEmTrEeCx-IU0sjGPKA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_OtGLwGTjEeCLCuJcSSYRDQ" name="JDTParentJavaElement" isAbstract="true">
+ <ownedComment xmi:id="_bCHAoGTjEeCLCuJcSSYRDQ">
+ <body>This class is not part of JDT. It is added as a convenience to simplify the double inheritance from &#xD;
+JDTParent and JDTJavaElement</body>
+ </ownedComment>
+ <generalization xmi:id="_WuJREGTjEeCLCuJcSSYRDQ" general="_tQ7LoGHcEeCX0Yi87Khu0A"/>
+ <generalization xmi:id="_Ya678GTjEeCLCuJcSSYRDQ" general="_1FwMIGHXEeCX0Yi87Khu0A"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_A36rAGTrEeCx-IU0sjGPKA" name="jDTJavaModel_jDTJavaProject_0" memberEnd="_A36rAWTrEeCx-IU0sjGPKA _A3nwEGTrEeCx-IU0sjGPKA"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_3z6fgGaNEeCm5tXW4raF-A" name="JDTException"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_zStvwGaOEeCm5tXW4raF-A" name="JDTTypeParameter">
+ <generalization xmi:id="_3sWpgGaOEeCm5tXW4raF-A" general="_1FwMIGHXEeCX0Yi87Khu0A"/>
+ <ownedAttribute xmi:id="_v4l80WaPEeCm5tXW4raF-A" name="declaringMember" type="_FVjbkGHYEeCX0Yi87Khu0A" association="_v4l80GaPEeCm5tXW4raF-A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_v4l80maPEeCm5tXW4raF-A" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_v4l802aPEeCm5tXW4raF-A"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_v4l80GaPEeCm5tXW4raF-A" name="jDTType_jDTTypeParameter_0" memberEnd="_v4l80WaPEeCm5tXW4raF-A _v4cy4GaPEeCm5tXW4raF-A"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_mNyO82aQEeCm5tXW4raF-A" name="jDTType_jDTType_1" memberEnd="_mNyO9GaQEeCm5tXW4raF-A _mNyO8GaQEeCm5tXW4raF-A">
+ <ownedEnd xmi:id="_mNyO9GaQEeCm5tXW4raF-A" name="jDTType" type="_Ko2hMGHYEeCX0Yi87Khu0A" association="_mNyO82aQEeCm5tXW4raF-A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mNyO9WaQEeCm5tXW4raF-A" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mNyO9maQEeCm5tXW4raF-A" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_Yub4c2aREeCm5tXW4raF-A" name="jDTType_jDTType_2" memberEnd="_Yub4dGaREeCm5tXW4raF-A _Yub4cGaREeCm5tXW4raF-A">
+ <ownedEnd xmi:id="_Yub4dGaREeCm5tXW4raF-A" name="jDTType" type="_Ko2hMGHYEeCX0Yi87Khu0A" association="_Yub4c2aREeCm5tXW4raF-A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Yub4dWaREeCm5tXW4raF-A" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Yub4dmaREeCm5tXW4raF-A" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_Vj6uI2aaEeCm5tXW4raF-A" name="returnType" memberEnd="_Vj6uJGaaEeCm5tXW4raF-A _Vj6uIGaaEeCm5tXW4raF-A"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_hqCLY2aaEeCm5tXW4raF-A" name="sA_parameters" memberEnd="_hqCLZGaaEeCm5tXW4raF-A _hqCLYGaaEeCm5tXW4raF-A"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xpcOY2aaEeCm5tXW4raF-A" name="jDTMethod_jDTType_0" memberEnd="_xpcOZGaaEeCm5tXW4raF-A _xpcOYGaaEeCm5tXW4raF-A">
+ <ownedEnd xmi:id="_xpcOZGaaEeCm5tXW4raF-A" name="method" type="_JO_yUGHYEeCX0Yi87Khu0A" association="_xpcOY2aaEeCm5tXW4raF-A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xpcOZWaaEeCm5tXW4raF-A" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xpcOZmaaEeCm5tXW4raF-A"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_-fPcI2aaEeCm5tXW4raF-A" name="A_parameters" memberEnd="_-fPcJGaaEeCm5tXW4raF-A _-fPcIGaaEeCm5tXW4raF-A">
+ <ownedEnd xmi:id="_-fPcJGaaEeCm5tXW4raF-A" name="parameter" type="_DnQw8GHcEeCX0Yi87Khu0A" association="_-fPcI2aaEeCm5tXW4raF-A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-fPcJWaaEeCm5tXW4raF-A" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-fPcJmaaEeCm5tXW4raF-A"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_RXA982acEeCm5tXW4raF-A" name="A_fields" memberEnd="_RXA99GacEeCm5tXW4raF-A _RXA98GacEeCm5tXW4raF-A">
+ <ownedEnd xmi:id="_RXA99GacEeCm5tXW4raF-A" name="fields" type="_IPXhUGHYEeCX0Yi87Khu0A" association="_RXA982acEeCm5tXW4raF-A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_RXA99WacEeCm5tXW4raF-A" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_RXA99macEeCm5tXW4raF-A"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_3gm8YGdmEeCm5tXW4raF-A" name="JDTVisitorException"/>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_LzEDwGd5EeCm5tXW4raF-A" name="VisibilityKind">
+ <ownedLiteral xmi:id="_OnEccGd5EeCm5tXW4raF-A" name="public"/>
+ <ownedLiteral xmi:id="_PsDukGd5EeCm5tXW4raF-A" name="protected"/>
+ <ownedLiteral xmi:id="_Qk1JoGd5EeCm5tXW4raF-A" name="private"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_n5eWIIXIEeCQsIB6sI2lFg" name="TrueFalseDefault">
+ <ownedLiteral xmi:id="_sxJ2wIXIEeCQsIB6sI2lFg" name="true"/>
+ <ownedLiteral xmi:id="_uFpkgIXIEeCQsIB6sI2lFg" name="false"/>
+ <ownedLiteral xmi:id="_vJpYIIXIEeCQsIB6sI2lFg" name="default"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_UXps8HpHEeGZ7KofW4oPeQ" name="JDTMethodBody" isAbstract="true">
+ <ownedAttribute xmi:id="_dvx58XpHEeGZ7KofW4oPeQ" name="owner" type="_JO_yUGHYEeCX0Yi87Khu0A" association="_dvx58HpHEeGZ7KofW4oPeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dvx58npHEeGZ7KofW4oPeQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dvx583pHEeGZ7KofW4oPeQ" value="1"/>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_564g8HpLEeGZ7KofW4oPeQ" name="asText">
+ <ownedParameter xmi:id="_-6ToUHpLEeGZ7KofW4oPeQ" name="result" type="_8e3HsGHXEeCX0Yi87Khu0A" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_XnDBIHpHEeGZ7KofW4oPeQ" name="JDTOpaqueBody">
+ <generalization xmi:id="_ca4jkHpHEeGZ7KofW4oPeQ" general="_UXps8HpHEeGZ7KofW4oPeQ"/>
+ <ownedAttribute xmi:id="_U2HYkHmtEeGZ7KofW4oPeQ" name=" body" type="_8e3HsGHXEeCX0Yi87Khu0A"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_dvx58HpHEeGZ7KofW4oPeQ" name="jDTMethod_methodBody_0" memberEnd="_dvx58XpHEeGZ7KofW4oPeQ _dvu2oHpHEeGZ7KofW4oPeQ"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_ul4TUH_4EeGqdId9TXdXhQ" name="jDTMember_jDTType_0" memberEnd="_ul4TUX_4EeGqdId9TXdXhQ _ul0B4H_4EeGqdId9TXdXhQ">
+ <ownedEnd xmi:id="_ul4TUX_4EeGqdId9TXdXhQ" name="jDTMember" type="_FVjbkGHYEeCX0Yi87Khu0A" association="_ul4TUH_4EeGqdId9TXdXhQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ul4TUn_4EeGqdId9TXdXhQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ul4TU3_4EeGqdId9TXdXhQ" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <profileApplication xmi:id="__8ly0GHXEeCX0Yi87Khu0A">
+ <eAnnotations xmi:id="__-hsgGHXEeCX0Yi87Khu0A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Ecore.profile.uml#_0"/>
+ </profileApplication>
+ </uml:Model>
+ <Ecore:EDataType xmi:id="_BAPoMGHYEeCX0Yi87Khu0A" instanceClassName="java.lang.String" base_PrimitiveType="_8e3HsGHXEeCX0Yi87Khu0A"/>
+ <Ecore:EPackage xmi:id="_S1oCcGHlEeCX0Yi87Khu0A" base_Package="_zfh1MGHXEeCX0Yi87Khu0A" basePackage="org.eclipse.papyrus.java.generator.metamodel.jdt"/>
+ <Ecore:EReference xmi:id="_-Yea4GQrEeCX0Yi87Khu0A" isTransient="true" base_Property="_JrpDUGHeEeCX0Yi87Khu0A"/>
+ <Ecore:EReference xmi:id="_w9m7wGQsEeCX0Yi87Khu0A" isTransient="true" base_Property="_JrpDVGHeEeCX0Yi87Khu0A"/>
+ <Ecore:EDataType xmi:id="_YPJqsGQ8EeCX0Yi87Khu0A" instanceClassName="int" base_PrimitiveType="_W3PckGQ8EeCX0Yi87Khu0A"/>
+ <Ecore:EDataType xmi:id="_ApIwwGQ-EeC0ouwfA8DHnA" instanceClassName="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitor" base_PrimitiveType="_9SaFgGQ9EeC0ouwfA8DHnA"/>
+ <Ecore:EDataType xmi:id="_TbF-cGQ_EeC0ouwfA8DHnA" instanceClassName="boolean" base_PrimitiveType="_R4mQ8GQ_EeC0ouwfA8DHnA"/>
+ <Ecore:EAttribute xmi:id="__toIkGafEeCm5tXW4raF-A" isTransient="true" base_Property="_ujkYsGaREeCm5tXW4raF-A"/>
+ <Ecore:EAttribute xmi:id="_CcaqEGagEeCm5tXW4raF-A" isTransient="true" base_Property="_z6mHwGaREeCm5tXW4raF-A"/>
+ <Ecore:EAttribute xmi:id="_e_5RoGagEeCm5tXW4raF-A" isTransient="true" base_Property="_wIvm8GRFEeC0ouwfA8DHnA"/>
+ <Ecore:EAttribute xmi:id="_g9zv0GagEeCm5tXW4raF-A" isTransient="true" base_Property="_yeWMYGRFEeC0ouwfA8DHnA"/>
+ <Ecore:EAttribute xmi:id="_i45jgGagEeCm5tXW4raF-A" isTransient="true" base_Property="_Azk6oGRIEeC0ouwfA8DHnA"/>
+ <Ecore:EAttribute xmi:id="_lWtCsGagEeCm5tXW4raF-A" isTransient="true" base_Property="_1-hGUGacEeCm5tXW4raF-A"/>
+ <Ecore:EAttribute xmi:id="_nevtQGagEeCm5tXW4raF-A" isTransient="true" base_Property="_1-hGVGacEeCm5tXW4raF-A"/>
+ <Ecore:EAttribute xmi:id="_qR2uEGagEeCm5tXW4raF-A" isTransient="true" base_Property="_1-hGWGacEeCm5tXW4raF-A"/>
+ <Ecore:EAttribute xmi:id="_tSOu0GagEeCm5tXW4raF-A" isTransient="true" base_Property="_3j2FZGacEeCm5tXW4raF-A"/>
+ <Ecore:EAttribute xmi:id="_u04NUGagEeCm5tXW4raF-A" isTransient="true" base_Property="_3j2FaGacEeCm5tXW4raF-A"/>
+ <Ecore:EAttribute xmi:id="_wr71kGagEeCm5tXW4raF-A" isTransient="true" base_Property="_3j2FYGacEeCm5tXW4raF-A"/>
+ <Ecore:EAttribute xmi:id="_z-ytcGagEeCm5tXW4raF-A" isTransient="true" base_Property="_7J60NGacEeCm5tXW4raF-A"/>
+ <Ecore:EDataType xmi:id="_5vNh8GdmEeCm5tXW4raF-A" instanceClassName="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitorException" base_PrimitiveType="_3gm8YGdmEeCm5tXW4raF-A"/>
+ <Ecore:EAttribute xmi:id="_an-CgGd5EeCm5tXW4raF-A" isTransient="true" base_Property="_TMnrQGd5EeCm5tXW4raF-A"/>
+ <Ecore:EAttribute xmi:id="_qOyB0IXiEeCQsIB6sI2lFg" isTransient="true" base_Property="_xN4M0IXgEeCQsIB6sI2lFg"/>
+</xmi:XMI>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/reverse/reverseJDT.di b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/reverse/reverseJDT.di
new file mode 100644
index 00000000000..9084770dd56
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/reverse/reverseJDT.di
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="ASCII"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi">
+ <pageList>
+ <availablePage>
+ <emfPageIdentifier href="reverseJDT.notation#_OcvjQGEMEeCdEc4VzBeWeQ"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="reverseJDT.notation#_ytiUcGEPEeCdEc4VzBeWeQ"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="reverseJDT.notation#_hrDcEWHZEeCIr_fxSkYSJA"/>
+ </availablePage>
+ </pageList>
+ <sashModel currentSelection="//@sashModel/@windows.0/@children.0">
+ <windows>
+ <children xsi:type="di:TabFolder">
+ <children>
+ <emfPageIdentifier href="reverseJDT.notation#_OcvjQGEMEeCdEc4VzBeWeQ"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="reverseJDT.notation#_ytiUcGEPEeCdEc4VzBeWeQ"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="reverseJDT.notation#_hrDcEWHZEeCIr_fxSkYSJA"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+</di:SashWindowsMngr>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/reverse/reverseJDT.notation b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/reverse/reverseJDT.notation
new file mode 100644
index 00000000000..73830701e82
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/reverse/reverseJDT.notation
@@ -0,0 +1,1614 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/3.0.0/UML">
+ <notation:Diagram xmi:id="_OcvjQGEMEeCdEc4VzBeWeQ" type="PapyrusUMLClassDiagram" name="overview" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="__wgi4GEMEeCdEc4VzBeWeQ" type="2004" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__yvXgGEMEeCdEc4VzBeWeQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__yvXgWEMEeCdEc4VzBeWeQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__yvXgmEMEeCdEc4VzBeWeQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__yvXg2EMEeCdEc4VzBeWeQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__y5IgGEMEeCdEc4VzBeWeQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__y5IgWEMEeCdEc4VzBeWeQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="__y5IgmEMEeCdEc4VzBeWeQ" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__y5Ig2EMEeCdEc4VzBeWeQ" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="__y5IhGEMEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__y5IhWEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__y5IhmEMEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__y5Ih2EMEeCdEc4VzBeWeQ" type="7007">
+ <children xmi:type="notation:Shape" xmi:id="_uEWNsGENEeCdEc4VzBeWeQ" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_87A8cGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uEWNsWENEeCdEc4VzBeWeQ" x="61" y="14"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uFiggGENEeCdEc4VzBeWeQ" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_87KGYmEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uFiggWENEeCdEc4VzBeWeQ" x="61" y="14"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uGuzUGENEeCdEc4VzBeWeQ" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_87doYGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uGuzUWENEeCdEc4VzBeWeQ" x="61" y="14"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uHeaMGENEeCdEc4VzBeWeQ" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_87doY2EMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uHeaMWENEeCdEc4VzBeWeQ" x="61" y="14"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uIOBEGENEeCdEc4VzBeWeQ" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_87wjUWEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uIOBEWENEeCdEc4VzBeWeQ" x="61" y="14"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uJHY8GENEeCdEc4VzBeWeQ" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_875tQGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uJHY8WENEeCdEc4VzBeWeQ" x="61" y="14"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uJ2_0GENEeCdEc4VzBeWeQ" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_88DeQGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uJ2_0WENEeCdEc4VzBeWeQ" x="61" y="14"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uRAwsGENEeCdEc4VzBeWeQ" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_88NPQGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uRAwsWENEeCdEc4VzBeWeQ" x="61" y="14"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uRwXkGENEeCdEc4VzBeWeQ" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_88WZMWEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uRwXkWENEeCdEc4VzBeWeQ" x="61" y="14"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uSglgGENEeCdEc4VzBeWeQ" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_88p7MWEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uSglgWENEeCdEc4VzBeWeQ" x="61" y="14"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uTQMYGENEeCdEc4VzBeWeQ" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_8882IWEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uTQMYWENEeCdEc4VzBeWeQ" x="61" y="14"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uT_zQGENEeCdEc4VzBeWeQ" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_89GAEWEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uT_zQWENEeCdEc4VzBeWeQ" x="61" y="14"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__y5IiGEMEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__y5IiWEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__y5IimEMEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__y5Ii2EMEeCdEc4VzBeWeQ" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="__y5IjGEMEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__y5IjWEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__y5IjmEMEeCdEc4VzBeWeQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_j-plgGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__wgi4WEMEeCdEc4VzBeWeQ" x="786" y="432"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AarhQGENEeCdEc4VzBeWeQ" type="2004" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AarhQmENEeCdEc4VzBeWeQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AarhQ2ENEeCdEc4VzBeWeQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AarhRGENEeCdEc4VzBeWeQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AarhRWENEeCdEc4VzBeWeQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AarhRmENEeCdEc4VzBeWeQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AarhR2ENEeCdEc4VzBeWeQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AarhSGENEeCdEc4VzBeWeQ" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AarhSWENEeCdEc4VzBeWeQ" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AarhSmENEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AarhS2ENEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AarhTGENEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AarhTWENEeCdEc4VzBeWeQ" type="7007">
+ <children xmi:type="notation:Shape" xmi:id="_9N0HMGENEeCdEc4VzBeWeQ" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_kygrYGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9N0HMWENEeCdEc4VzBeWeQ" x="60" y="17"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9OtfEGENEeCdEc4VzBeWeQ" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_kygrY2EMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9OtfEWENEeCdEc4VzBeWeQ" x="60" y="17"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AarhTmENEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AarhT2ENEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AarhUGENEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AarhUWENEeCdEc4VzBeWeQ" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AarhUmENEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AarhU2ENEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AarhVGENEeCdEc4VzBeWeQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_kyNJYGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AarhQWENEeCdEc4VzBeWeQ" x="378" y="258"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BI4EAGENEeCdEc4VzBeWeQ" type="2004" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BI4EAmENEeCdEc4VzBeWeQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BI4EA2ENEeCdEc4VzBeWeQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BI4EBGENEeCdEc4VzBeWeQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BI4EBWENEeCdEc4VzBeWeQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BI4EBmENEeCdEc4VzBeWeQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BI4EB2ENEeCdEc4VzBeWeQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BI4ECGENEeCdEc4VzBeWeQ" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BI4ECWENEeCdEc4VzBeWeQ" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_BI4ECmENEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_BI4EC2ENEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BI4EDGENEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BI4EDWENEeCdEc4VzBeWeQ" type="7007">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_BI4EDmENEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_BI4ED2ENEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BI4EEGENEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BI4EEWENEeCdEc4VzBeWeQ" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_BI4EEmENEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_BI4EE2ENEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BI4EFGENEeCdEc4VzBeWeQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_ky8wQGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BI4EAWENEeCdEc4VzBeWeQ" x="738" y="224"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Bl7MYGENEeCdEc4VzBeWeQ" type="2004" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Bl7MYmENEeCdEc4VzBeWeQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Bl7MY2ENEeCdEc4VzBeWeQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Bl7MZGENEeCdEc4VzBeWeQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Bl7MZWENEeCdEc4VzBeWeQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Bl7MZmENEeCdEc4VzBeWeQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Bl7MZ2ENEeCdEc4VzBeWeQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Bl7MaGENEeCdEc4VzBeWeQ" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Bl7MaWENEeCdEc4VzBeWeQ" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Bl7MamENEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Bl7Ma2ENEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Bl7MbGENEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Bl7MbWENEeCdEc4VzBeWeQ" type="7007">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Bl7MbmENEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Bl7Mb2ENEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Bl7McGENEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Bl7McWENEeCdEc4VzBeWeQ" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Bl7McmENEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Bl7Mc2ENEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Bl7MdGENEeCdEc4VzBeWeQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_kssXQGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Bl7MYWENEeCdEc4VzBeWeQ" x="941" y="235"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_MFrIwGENEeCdEc4VzBeWeQ" type="2004" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MFrIwmENEeCdEc4VzBeWeQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MFrIw2ENEeCdEc4VzBeWeQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MFrIxGENEeCdEc4VzBeWeQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MFrIxWENEeCdEc4VzBeWeQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MFrIxmENEeCdEc4VzBeWeQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MFrIx2ENEeCdEc4VzBeWeQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_MFrIyGENEeCdEc4VzBeWeQ" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MFrIyWENEeCdEc4VzBeWeQ" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_MFrIymENEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_MFrIy2ENEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MFrIzGENEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MFrIzWENEeCdEc4VzBeWeQ" type="7007">
+ <children xmi:type="notation:Shape" xmi:id="_nh0o4GHeEeCIr_fxSkYSJA" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_kQPEwGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nh0o4WHeEeCIr_fxSkYSJA" x="29" y="13"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_niuAwGHeEeCIr_fxSkYSJA" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_kQYOsWEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_niuAwWHeEeCIr_fxSkYSJA" x="29" y="13"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_njUdsGHeEeCIr_fxSkYSJA" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_kQh_sGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_njUdsWHeEeCIr_fxSkYSJA" x="29" y="13"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nkEEkGHeEeCIr_fxSkYSJA" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_kQh_tGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nkEEkWHeEeCIr_fxSkYSJA" x="29" y="13"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nkp6cGHeEeCIr_fxSkYSJA" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_kQh_t2EMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nkp6cWHeEeCIr_fxSkYSJA" x="29" y="13"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nlQXYGHeEeCIr_fxSkYSJA" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_kQrwsGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nlQXYWHeEeCIr_fxSkYSJA" x="29" y="13"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nl_-QGHeEeCIr_fxSkYSJA" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_kQrws2EMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nl_-QWHeEeCIr_fxSkYSJA" x="29" y="13"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tu0hMGHfEeCIr_fxSkYSJA" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_szhWkWHfEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tu0hMWHfEeCIr_fxSkYSJA" x="166" y="111"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_MFrIzmENEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_MFrIz2ENEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MFrI0GENEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MFrI0WENEeCdEc4VzBeWeQ" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_MFrI0mENEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_MFrI02ENEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MFrI1GENEeCdEc4VzBeWeQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_kO5A8GEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MFrIwWENEeCdEc4VzBeWeQ" x="24" y="18"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_MrOF0GENEeCdEc4VzBeWeQ" type="2004" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrOF0mENEeCdEc4VzBeWeQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrOF02ENEeCdEc4VzBeWeQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrOF1GENEeCdEc4VzBeWeQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrOF1WENEeCdEc4VzBeWeQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrOF1mENEeCdEc4VzBeWeQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrOF12ENEeCdEc4VzBeWeQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_MrOF2GENEeCdEc4VzBeWeQ" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MrOF2WENEeCdEc4VzBeWeQ" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_MrOF2mENEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_MrOF22ENEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MrOF3GENEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MrOF3WENEeCdEc4VzBeWeQ" type="7007">
+ <children xmi:type="notation:Shape" xmi:id="_ld5VQGENEeCdEc4VzBeWeQ" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_kq6OkmEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ld5VQWENEeCdEc4VzBeWeQ" x="67" y="10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_loe0oGENEeCdEc4VzBeWeQ" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_krDYgmEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_loe0oWENEeCdEc4VzBeWeQ" x="67" y="10"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_MrOF3mENEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_MrOF32ENEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MrOF4GENEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MrOF4WENEeCdEc4VzBeWeQ" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_MrOF4mENEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_MrOF42ENEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MrOF5GENEeCdEc4VzBeWeQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_kq6OkGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MrOF0WENEeCdEc4VzBeWeQ" x="444" y="30"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NUzOUGENEeCdEc4VzBeWeQ" type="2004" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NUzOUmENEeCdEc4VzBeWeQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NUzOU2ENEeCdEc4VzBeWeQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NUzOVGENEeCdEc4VzBeWeQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NUzOVWENEeCdEc4VzBeWeQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NUzOVmENEeCdEc4VzBeWeQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NUzOV2ENEeCdEc4VzBeWeQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NUzOWGENEeCdEc4VzBeWeQ" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_NUzOWWENEeCdEc4VzBeWeQ" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_NUzOWmENEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_NUzOW2ENEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NUzOXGENEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_NUzOXWENEeCdEc4VzBeWeQ" type="7007">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_NUzOXmENEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_NUzOX2ENEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NUzOYGENEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_NUzOYWENEeCdEc4VzBeWeQ" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_NUzOYmENEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_NUzOY2ENEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NUzOZGENEeCdEc4VzBeWeQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_koX38GEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NUzOUWENEeCdEc4VzBeWeQ" x="696" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Sa1UAGENEeCdEc4VzBeWeQ" type="2004" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Sa1UAmENEeCdEc4VzBeWeQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Sa1UA2ENEeCdEc4VzBeWeQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Sa1UBGENEeCdEc4VzBeWeQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Sa1UBWENEeCdEc4VzBeWeQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Sa1UBmENEeCdEc4VzBeWeQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Sa1UB2ENEeCdEc4VzBeWeQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Sa1UCGENEeCdEc4VzBeWeQ" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Sa1UCWENEeCdEc4VzBeWeQ" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Sa1UCmENEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Sa1UC2ENEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Sa1UDGENEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Sa1UDWENEeCdEc4VzBeWeQ" type="7007">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Sa1UDmENEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Sa1UD2ENEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Sa1UEGENEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Sa1UEWENEeCdEc4VzBeWeQ" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Sa1UEmENEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Sa1UE2ENEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Sa1UFGENEeCdEc4VzBeWeQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_kuCbEGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Sa1UAWENEeCdEc4VzBeWeQ" x="894" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_deMTwGENEeCdEc4VzBeWeQ" type="2004" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_deMTwmENEeCdEc4VzBeWeQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_deMTw2ENEeCdEc4VzBeWeQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_deMTxGENEeCdEc4VzBeWeQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_deMTxWENEeCdEc4VzBeWeQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_deMTxmENEeCdEc4VzBeWeQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_deMTx2ENEeCdEc4VzBeWeQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_deMTyGENEeCdEc4VzBeWeQ" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_deMTyWENEeCdEc4VzBeWeQ" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_deMTymENEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_deMTy2ENEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_deMTzGENEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_deMTzWENEeCdEc4VzBeWeQ" type="7007">
+ <children xmi:type="notation:Shape" xmi:id="_1QWHAGHhEeCCRJbbKD_TsQ" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_w0eYoWHhEeCCRJbbKD_TsQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1QWHAWHhEeCCRJbbKD_TsQ" x="39" y="14"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1R1UwGHhEeCCRJbbKD_TsQ" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_w3TqMGHhEeCCRJbbKD_TsQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1R1UwWHhEeCCRJbbKD_TsQ" x="39" y="14"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1TLYkGHhEeCCRJbbKD_TsQ" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_w5ZU4WHhEeCCRJbbKD_TsQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1TLYkWHhEeCCRJbbKD_TsQ" x="39" y="14"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3ihlAGHhEeCCRJbbKD_TsQ" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_w7eYgWHhEeCCRJbbKD_TsQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3ihlAWHhEeCCRJbbKD_TsQ" x="89" y="54"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7zN-IGHhEeCCRJbbKD_TsQ" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_w0xTkWHhEeCCRJbbKD_TsQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7zN-IWHhEeCCRJbbKD_TsQ" x="71" y="83"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_EpdmEGHiEeCCRJbbKD_TsQ" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_w3mlIGHhEeCCRJbbKD_TsQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EpdmEWHiEeCCRJbbKD_TsQ" x="76" y="86"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_deMTzmENEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_deMTz2ENEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_deMT0GENEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_deMT0WENEeCdEc4VzBeWeQ" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_deMT0mENEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_deMT02ENEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_deMT1GENEeCdEc4VzBeWeQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_kvE84GEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_deMTwWENEeCdEc4VzBeWeQ" x="204" y="612"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dfFroGENEeCdEc4VzBeWeQ" type="2004" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dfFromENEeCdEc4VzBeWeQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dfFro2ENEeCdEc4VzBeWeQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dfFrpGENEeCdEc4VzBeWeQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dfFrpWENEeCdEc4VzBeWeQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dfFrpmENEeCdEc4VzBeWeQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dfFrp2ENEeCdEc4VzBeWeQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dfFrqGENEeCdEc4VzBeWeQ" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dfFrqWENEeCdEc4VzBeWeQ" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dfFrqmENEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dfFrq2ENEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dfFrrGENEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dfFrrWENEeCdEc4VzBeWeQ" type="7007">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dfFrrmENEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dfFrr2ENEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dfFrsGENEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dfFrsWENEeCdEc4VzBeWeQ" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dfFrsmENEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dfFrs2ENEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dfFrtGENEeCdEc4VzBeWeQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_klF6cGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dfFroWENEeCdEc4VzBeWeQ" x="275" y="421"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_N86hwGEOEeCdEc4VzBeWeQ" type="2004" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_N86hwmEOEeCdEc4VzBeWeQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_N86hw2EOEeCdEc4VzBeWeQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_N86hxGEOEeCdEc4VzBeWeQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_N86hxWEOEeCdEc4VzBeWeQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_N86hxmEOEeCdEc4VzBeWeQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_N86hx2EOEeCdEc4VzBeWeQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_N86hyGEOEeCdEc4VzBeWeQ" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_N86hyWEOEeCdEc4VzBeWeQ" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_N86hymEOEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_N86hy2EOEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_N86hzGEOEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_N86hzWEOEeCdEc4VzBeWeQ" type="7007">
+ <children xmi:type="notation:Shape" xmi:id="_SYyQIGEOEeCdEc4VzBeWeQ" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_knyCE2EMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SYyQIWEOEeCdEc4VzBeWeQ" x="57" y="17"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SZ-i8GEOEeCdEc4VzBeWeQ" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_knyCFmEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SZ-i8WEOEeCdEc4VzBeWeQ" x="57" y="17"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SakY0GEOEeCdEc4VzBeWeQ" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_kn7MAWEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SakY0WEOEeCdEc4VzBeWeQ" x="57" y="17"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SbK1wGEOEeCdEc4VzBeWeQ" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_koE9AGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SbK1wWEOEeCdEc4VzBeWeQ" x="57" y="17"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SbwroGEOEeCdEc4VzBeWeQ" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_koOG8GEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SbwroWEOEeCdEc4VzBeWeQ" x="57" y="17"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_N86hzmEOEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_N86hz2EOEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_N86h0GEOEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_N86h0WEOEeCdEc4VzBeWeQ" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_N86h0mEOEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_N86h02EOEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_N86h1GEOEeCdEc4VzBeWeQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_knoREGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_N86hwWEOEeCdEc4VzBeWeQ" x="516" y="612"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gvlWkGEOEeCdEc4VzBeWeQ" type="2004" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gvlWkmEOEeCdEc4VzBeWeQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gvlWk2EOEeCdEc4VzBeWeQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gvlWlGEOEeCdEc4VzBeWeQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gvlWlWEOEeCdEc4VzBeWeQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gvlWlmEOEeCdEc4VzBeWeQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gvlWl2EOEeCdEc4VzBeWeQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gvlWmGEOEeCdEc4VzBeWeQ" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gvlWmWEOEeCdEc4VzBeWeQ" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gvlWmmEOEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gvlWm2EOEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gvlWnGEOEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gvlWnWEOEeCdEc4VzBeWeQ" type="7007">
+ <children xmi:type="notation:Shape" xmi:id="_ls1TsGEOEeCdEc4VzBeWeQ" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_fjJYomEOEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ls1TsWEOEeCdEc4VzBeWeQ" x="55" y="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lt31gGEOEeCdEc4VzBeWeQ" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_fjSikWEOEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lt31gWEOEeCdEc4VzBeWeQ" x="55" y="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_luncYGEOEeCdEc4VzBeWeQ" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_fjmEkGEOEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_luncYWEOEeCdEc4VzBeWeQ" x="55" y="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lvEIUGEOEeCdEc4VzBeWeQ" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_fjvOgGEOEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lvEIUWEOEeCdEc4VzBeWeQ" x="55" y="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lvqlQGEOEeCdEc4VzBeWeQ" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_fjvOg2EOEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lvqlQWEOEeCdEc4VzBeWeQ" x="55" y="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lwQbIGEOEeCdEc4VzBeWeQ" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_fj4_gWEOEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lwQbIWEOEeCdEc4VzBeWeQ" x="55" y="20"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gvlWnmEOEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gvlWn2EOEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gvlWoGEOEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gvlWoWEOEeCdEc4VzBeWeQ" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gvlWomEOEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gvlWo2EOEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gvlWpGEOEeCdEc4VzBeWeQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_kNQCMGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gvlWkWEOEeCdEc4VzBeWeQ" x="12" y="612"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nGRWYGEPEeCdEc4VzBeWeQ" type="2004" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nGRWYmEPEeCdEc4VzBeWeQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nGRWY2EPEeCdEc4VzBeWeQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nGRWZGEPEeCdEc4VzBeWeQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nGRWZWEPEeCdEc4VzBeWeQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nGRWZmEPEeCdEc4VzBeWeQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nGRWZ2EPEeCdEc4VzBeWeQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_nGRWaGEPEeCdEc4VzBeWeQ" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nGRWaWEPEeCdEc4VzBeWeQ" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_nGRWamEPEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_nGRWa2EPEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nGRWbGEPEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nGRWbWEPEeCdEc4VzBeWeQ" type="7007">
+ <children xmi:type="notation:Shape" xmi:id="_ocsWwGEPEeCdEc4VzBeWeQ" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_8u2d0GEOEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ocsWwWEPEeCdEc4VzBeWeQ" x="65" y="9"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_odcksGEPEeCdEc4VzBeWeQ" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_8vAO0GEOEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_odcksWEPEeCdEc4VzBeWeQ" x="65" y="9"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_oeCakGEPEeCdEc4VzBeWeQ" type="3007" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="reverseJDT.uml#_8vAO02EOEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oeCakWEPEeCdEc4VzBeWeQ" x="65" y="9"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_nGRWbmEPEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_nGRWb2EPEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nGRWcGEPEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nGRWcWEPEeCdEc4VzBeWeQ" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_nGRWcmEPEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_nGRWc2EPEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nGRWdGEPEeCdEc4VzBeWeQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_kNjkMGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nGRWYWEPEeCdEc4VzBeWeQ" x="30" y="420"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_rDLbYGEQEeCdEc4VzBeWeQ" type="2004" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rDLbYmEQEeCdEc4VzBeWeQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rDLbY2EQEeCdEc4VzBeWeQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rDLbZGEQEeCdEc4VzBeWeQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rDLbZWEQEeCdEc4VzBeWeQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rDLbZmEQEeCdEc4VzBeWeQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rDLbZ2EQEeCdEc4VzBeWeQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_rDLbaGEQEeCdEc4VzBeWeQ" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_rDLbaWEQEeCdEc4VzBeWeQ" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_rDLbamEQEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_rDLba2EQEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rDLbbGEQEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_rDLbbWEQEeCdEc4VzBeWeQ" type="7007">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_rDLbbmEQEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_rDLbb2EQEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rDLbcGEQEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_rDLbcWEQEeCdEc4VzBeWeQ" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_rDLbcmEQEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_rDLbc2EQEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rDLbdGEQEeCdEc4VzBeWeQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_j2Jw0GEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rDLbYWEQEeCdEc4VzBeWeQ" x="522" y="444"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_OcvjQWEMEeCdEc4VzBeWeQ"/>
+ <element xmi:type="uml:Model" href="reverseJDT.uml#_LfM0EWEMEeCdEc4VzBeWeQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_AfvncGENEeCdEc4VzBeWeQ" type="4002" source="__wgi4GEMEeCdEc4VzBeWeQ" target="_AarhQGENEeCdEc4VzBeWeQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Afvnc2ENEeCdEc4VzBeWeQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AfvndGENEeCdEc4VzBeWeQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_AfvncWENEeCdEc4VzBeWeQ" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="reverseJDT.uml#_82Y7IGEMEeCdEc4VzBeWeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AfvncmENEeCdEc4VzBeWeQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_BKNgwGENEeCdEc4VzBeWeQ" type="4002" source="__wgi4GEMEeCdEc4VzBeWeQ" target="_BI4EAGENEeCdEc4VzBeWeQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_BKNgw2ENEeCdEc4VzBeWeQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BKNgxGENEeCdEc4VzBeWeQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_BKNgwWENEeCdEc4VzBeWeQ" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="reverseJDT.uml#_82isIGEMEeCdEc4VzBeWeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BKNgwmENEeCdEc4VzBeWeQ" points="[-29, -52, 234, 428]$[-263, -480, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Bm0kQGENEeCdEc4VzBeWeQ" type="4002" source="__wgi4GEMEeCdEc4VzBeWeQ" target="_Bl7MYGENEeCdEc4VzBeWeQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Bm0kQ2ENEeCdEc4VzBeWeQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Bm0kRGENEeCdEc4VzBeWeQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Bm0kQWENEeCdEc4VzBeWeQ" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="reverseJDT.uml#_82isIWEMEeCdEc4VzBeWeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Bm0kQmENEeCdEc4VzBeWeQ" points="[-29, -52, 234, 428]$[-263, -480, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_MG3bkGENEeCdEc4VzBeWeQ" type="4002" source="_AarhQGENEeCdEc4VzBeWeQ" target="_MFrIwGENEeCdEc4VzBeWeQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_MG3bk2ENEeCdEc4VzBeWeQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MG3blGENEeCdEc4VzBeWeQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_MG3bkWENEeCdEc4VzBeWeQ" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="reverseJDT.uml#_kyW6YWEMEeCdEc4VzBeWeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_MG3bkmENEeCdEc4VzBeWeQ" points="[-41, -52, 165, 216]$[-206, -268, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_MsaYoGENEeCdEc4VzBeWeQ" type="4002" source="_AarhQGENEeCdEc4VzBeWeQ" target="_MrOF0GENEeCdEc4VzBeWeQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_MsaYo2ENEeCdEc4VzBeWeQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MsaYpGENEeCdEc4VzBeWeQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_MsaYoWENEeCdEc4VzBeWeQ" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="reverseJDT.uml#_kyW6YmEMEeCdEc4VzBeWeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_MsaYomENEeCdEc4VzBeWeQ" points="[-41, -52, 165, 216]$[-206, -268, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NV_hIGENEeCdEc4VzBeWeQ" type="4002" source="_AarhQGENEeCdEc4VzBeWeQ" target="_NUzOUGENEeCdEc4VzBeWeQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_NV_hI2ENEeCdEc4VzBeWeQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NV_hJGENEeCdEc4VzBeWeQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_NV_hIWENEeCdEc4VzBeWeQ" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="reverseJDT.uml#_kyW6Y2EMEeCdEc4VzBeWeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NV_hImENEeCdEc4VzBeWeQ" points="[-41, -52, 165, 216]$[-206, -268, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ScBm0GENEeCdEc4VzBeWeQ" type="4002" source="_AarhQGENEeCdEc4VzBeWeQ" target="_Sa1UAGENEeCdEc4VzBeWeQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ScBm02ENEeCdEc4VzBeWeQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ScBm1GENEeCdEc4VzBeWeQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ScBm0WENEeCdEc4VzBeWeQ" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="reverseJDT.uml#_kyW6ZGEMEeCdEc4VzBeWeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ScBm0mENEeCdEc4VzBeWeQ" points="[-41, -52, 165, 216]$[-206, -268, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_dfrhgGENEeCdEc4VzBeWeQ" type="4002" source="_deMTwGENEeCdEc4VzBeWeQ" target="_dfFroGENEeCdEc4VzBeWeQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dfrhg2ENEeCdEc4VzBeWeQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dfrhhGENEeCdEc4VzBeWeQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dfrhgWENEeCdEc4VzBeWeQ" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="reverseJDT.uml#_kvOt4GEMEeCdEc4VzBeWeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dfrhgmENEeCdEc4VzBeWeQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_BC8lsGEOEeCdEc4VzBeWeQ" type="4002" source="_dfFroGENEeCdEc4VzBeWeQ" target="_MFrIwGENEeCdEc4VzBeWeQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_BC8ls2EOEeCdEc4VzBeWeQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BC8ltGEOEeCdEc4VzBeWeQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_BC8lsWEOEeCdEc4VzBeWeQ" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="reverseJDT.uml#_klPrcWEMEeCdEc4VzBeWeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BC8lsmEOEeCdEc4VzBeWeQ" points="[-50, -27, 616, 327]$[-616, -327, 50, 27]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_N-QlkGEOEeCdEc4VzBeWeQ" type="4002" source="_N86hwGEOEeCdEc4VzBeWeQ" target="_dfFroGENEeCdEc4VzBeWeQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_N-Qlk2EOEeCdEc4VzBeWeQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_N-QllGEOEeCdEc4VzBeWeQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_N-QlkWEOEeCdEc4VzBeWeQ" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="reverseJDT.uml#_knyCEWEMEeCdEc4VzBeWeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_N-QlkmEOEeCdEc4VzBeWeQ" points="[0, 0, -68, -466]$[60, 414, -8, -52]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_gweucGEOEeCdEc4VzBeWeQ" type="4002" source="_gvlWkGEOEeCdEc4VzBeWeQ" target="_dfFroGENEeCdEc4VzBeWeQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gweuc2EOEeCdEc4VzBeWeQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gweudGEOEeCdEc4VzBeWeQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_gweucWEOEeCdEc4VzBeWeQ" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="reverseJDT.uml#_fjJYoGEOEeCdEc4VzBeWeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gweucmEOEeCdEc4VzBeWeQ" points="[0, 0, -68, -466]$[60, 414, -8, -52]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_nHT4MGEPEeCdEc4VzBeWeQ" type="4002" source="_nGRWYGEPEeCdEc4VzBeWeQ" target="_MFrIwGENEeCdEc4VzBeWeQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_nHT4M2EPEeCdEc4VzBeWeQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nHT4NGEPEeCdEc4VzBeWeQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_nHT4MWEPEeCdEc4VzBeWeQ" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="reverseJDT.uml#_8utT4GEOEeCdEc4VzBeWeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nHT4MmEPEeCdEc4VzBeWeQ" points="[0, 0, -290, -82]$[240, 68, -50, -14]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_rEXuMGEQEeCdEc4VzBeWeQ" type="4002" source="_rDLbYGEQEeCdEc4VzBeWeQ" target="_AarhQGENEeCdEc4VzBeWeQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_rEXuM2EQEeCdEc4VzBeWeQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_rEXuNGEQEeCdEc4VzBeWeQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_rEXuMWEQEeCdEc4VzBeWeQ" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="reverseJDT.uml#_pnrtwGEQEeCdEc4VzBeWeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rEXuMmEQEeCdEc4VzBeWeQ" points="[0, 0, -532, -287]$[413, 223, -119, -64]"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_ytiUcGEPEeCdEc4VzBeWeQ" type="PapyrusUMLClassDiagram" name="JavaElement hierarchy" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_0kvtsGEPEeCdEc4VzBeWeQ" type="2004" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0kvtsmEPEeCdEc4VzBeWeQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0kvts2EPEeCdEc4VzBeWeQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0kvttGEPEeCdEc4VzBeWeQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0kvttWEPEeCdEc4VzBeWeQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0kvttmEPEeCdEc4VzBeWeQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0kvtt2EPEeCdEc4VzBeWeQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0kvtuGEPEeCdEc4VzBeWeQ" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0kvtuWEPEeCdEc4VzBeWeQ" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0kvtumEPEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0kvtu2EPEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0kvtvGEPEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0kvtvWEPEeCdEc4VzBeWeQ" type="7007">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0kvtvmEPEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0kvtv2EPEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0kvtwGEPEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0kvtwWEPEeCdEc4VzBeWeQ" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0kvtwmEPEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0kvtw2EPEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0kvtxGEPEeCdEc4VzBeWeQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_kNZzMGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0kvtsWEPEeCdEc4VzBeWeQ" x="342" y="444"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0lWKoGEPEeCdEc4VzBeWeQ" type="2004" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0lWKomEPEeCdEc4VzBeWeQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0lWKo2EPEeCdEc4VzBeWeQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0lWKpGEPEeCdEc4VzBeWeQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0lWKpWEPEeCdEc4VzBeWeQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0lWKpmEPEeCdEc4VzBeWeQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0lWKp2EPEeCdEc4VzBeWeQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0lWKqGEPEeCdEc4VzBeWeQ" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0lWKqWEPEeCdEc4VzBeWeQ" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0lWKqmEPEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0lWKq2EPEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0lWKrGEPEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0lWKrWEPEeCdEc4VzBeWeQ" type="7007">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0lWKrmEPEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0lWKr2EPEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0lWKsGEPEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0lWKsWEPEeCdEc4VzBeWeQ" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0lWKsmEPEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0lWKs2EPEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0lWKtGEPEeCdEc4VzBeWeQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_kO5A8GEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0lWKoWEPEeCdEc4VzBeWeQ" x="474" y="196"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1oGoIGEPEeCdEc4VzBeWeQ" type="2004" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1oGoImEPEeCdEc4VzBeWeQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1oGoI2EPEeCdEc4VzBeWeQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1oGoJGEPEeCdEc4VzBeWeQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1oGoJWEPEeCdEc4VzBeWeQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1oGoJmEPEeCdEc4VzBeWeQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1oGoJ2EPEeCdEc4VzBeWeQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1oGoKGEPEeCdEc4VzBeWeQ" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1oGoKWEPEeCdEc4VzBeWeQ" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1oGoKmEPEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1oGoK2EPEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1oGoLGEPEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1oGoLWEPEeCdEc4VzBeWeQ" type="7007">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1oGoLmEPEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1oGoL2EPEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1oGoMGEPEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1oGoMWEPEeCdEc4VzBeWeQ" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1oGoMmEPEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1oGoM2EPEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1oGoNGEPEeCdEc4VzBeWeQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_kNjkMGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1oGoIWEPEeCdEc4VzBeWeQ" x="162" y="444"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_4ihK0GEPEeCdEc4VzBeWeQ" type="2004" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4ihK0mEPEeCdEc4VzBeWeQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4ihK02EPEeCdEc4VzBeWeQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4ihK1GEPEeCdEc4VzBeWeQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4ihK1WEPEeCdEc4VzBeWeQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4ihK1mEPEeCdEc4VzBeWeQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4ihK12EPEeCdEc4VzBeWeQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4ihK2GEPEeCdEc4VzBeWeQ" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4ihK2WEPEeCdEc4VzBeWeQ" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_4ihK2mEPEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_4ihK22EPEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4ihK3GEPEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4ihK3WEPEeCdEc4VzBeWeQ" type="7007">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_4ihK3mEPEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_4ihK32EPEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4ihK4GEPEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4ihK4WEPEeCdEc4VzBeWeQ" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_4ihK4mEPEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_4ihK42EPEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4ihK5GEPEeCdEc4VzBeWeQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_klF6cGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4ihK0WEPEeCdEc4VzBeWeQ" x="516" y="444"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8KO4YGEPEeCdEc4VzBeWeQ" type="2004" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8KO4YmEPEeCdEc4VzBeWeQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8KO4Y2EPEeCdEc4VzBeWeQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8KO4ZGEPEeCdEc4VzBeWeQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8KO4ZWEPEeCdEc4VzBeWeQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8KO4ZmEPEeCdEc4VzBeWeQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8KO4Z2EPEeCdEc4VzBeWeQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8KO4aGEPEeCdEc4VzBeWeQ" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8KO4aWEPEeCdEc4VzBeWeQ" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8KO4amEPEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8KO4a2EPEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8KO4bGEPEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8KO4bWEPEeCdEc4VzBeWeQ" type="7007">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8KO4bmEPEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8KO4b2EPEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8KO4cGEPEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8KO4cWEPEeCdEc4VzBeWeQ" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8KO4cmEPEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8KO4c2EPEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8KO4dGEPEeCdEc4VzBeWeQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_kNQCMGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8KO4YWEPEeCdEc4VzBeWeQ" x="396" y="696"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-XMfMGEPEeCdEc4VzBeWeQ" type="2004" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-XMfMmEPEeCdEc4VzBeWeQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-XMfM2EPEeCdEc4VzBeWeQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-XMfNGEPEeCdEc4VzBeWeQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-XMfNWEPEeCdEc4VzBeWeQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-XMfNmEPEeCdEc4VzBeWeQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-XMfN2EPEeCdEc4VzBeWeQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-XMfOGEPEeCdEc4VzBeWeQ" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-XMfOWEPEeCdEc4VzBeWeQ" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-XMfOmEPEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-XMfO2EPEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-XMfPGEPEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-XMfPWEPEeCdEc4VzBeWeQ" type="7007">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-XMfPmEPEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-XMfP2EPEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-XMfQGEPEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-XMfQWEPEeCdEc4VzBeWeQ" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-XMfQmEPEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-XMfQ2EPEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-XMfRGEPEeCdEc4VzBeWeQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_knoREGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-XMfMWEPEeCdEc4VzBeWeQ" x="570" y="702"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_HTjWMGEQEeCdEc4VzBeWeQ" type="2004" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HTjWMmEQEeCdEc4VzBeWeQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HTjWM2EQEeCdEc4VzBeWeQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HTjWNGEQEeCdEc4VzBeWeQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HTjWNWEQEeCdEc4VzBeWeQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HTsgIGEQEeCdEc4VzBeWeQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HTsgIWEQEeCdEc4VzBeWeQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_HTsgImEQEeCdEc4VzBeWeQ" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_HTsgI2EQEeCdEc4VzBeWeQ" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_HTsgJGEQEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_HTsgJWEQEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HTsgJmEQEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_HTsgJ2EQEeCdEc4VzBeWeQ" type="7007">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_HTsgKGEQEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_HTsgKWEQEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HTsgKmEQEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_HTsgK2EQEeCdEc4VzBeWeQ" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_HTsgLGEQEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_HTsgLWEQEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HTsgLmEQEeCdEc4VzBeWeQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_kvE84GEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HTjWMWEQEeCdEc4VzBeWeQ" x="732" y="708"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Q5CCsGEQEeCdEc4VzBeWeQ" type="2004" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q5CCsmEQEeCdEc4VzBeWeQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Q5CCs2EQEeCdEc4VzBeWeQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q5CCtGEQEeCdEc4VzBeWeQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Q5CCtWEQEeCdEc4VzBeWeQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q5CCtmEQEeCdEc4VzBeWeQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Q5CCt2EQEeCdEc4VzBeWeQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Q5CCuGEQEeCdEc4VzBeWeQ" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Q5CCuWEQEeCdEc4VzBeWeQ" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Q5CCumEQEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Q5CCu2EQEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Q5CCvGEQEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Q5CCvWEQEeCdEc4VzBeWeQ" type="7007">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Q5CCvmEQEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Q5CCv2EQEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Q5CCwGEQEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Q5CCwWEQEeCdEc4VzBeWeQ" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Q5CCwmEQEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Q5CCw2EQEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Q5CCxGEQEeCdEc4VzBeWeQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_kyNJYGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Q5CCsWEQEeCdEc4VzBeWeQ" x="930" y="442"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TX4DsGEQEeCdEc4VzBeWeQ" type="2004" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TX4DsmEQEeCdEc4VzBeWeQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TX4Ds2EQEeCdEc4VzBeWeQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TX4DtGEQEeCdEc4VzBeWeQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TX4DtWEQEeCdEc4VzBeWeQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TX4DtmEQEeCdEc4VzBeWeQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TX4Dt2EQEeCdEc4VzBeWeQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TX4DuGEQEeCdEc4VzBeWeQ" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TX4DuWEQEeCdEc4VzBeWeQ" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TX4DumEQEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TX4Du2EQEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TX4DvGEQEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TX4DvWEQEeCdEc4VzBeWeQ" type="7007">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TX4DvmEQEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TX4Dv2EQEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TX4DwGEQEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TX4DwWEQEeCdEc4VzBeWeQ" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TX4DwmEQEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TX4Dw2EQEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TX4DxGEQEeCdEc4VzBeWeQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_j-plgGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TX4DsWEQEeCdEc4VzBeWeQ" x="936" y="708"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_W6E_IGEQEeCdEc4VzBeWeQ" type="2004" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_W6E_ImEQEeCdEc4VzBeWeQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_W6E_I2EQEeCdEc4VzBeWeQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_W6E_JGEQEeCdEc4VzBeWeQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_W6E_JWEQEeCdEc4VzBeWeQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_czqosmEQEeCdEc4VzBeWeQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_czqos2EQEeCdEc4VzBeWeQ" key="QualifiedNameDepth" value="3"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_W6E_KGEQEeCdEc4VzBeWeQ" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_W6E_KWEQEeCdEc4VzBeWeQ" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_W6E_KmEQEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_W6E_K2EQEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_W6E_LGEQEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_W6E_LWEQEeCdEc4VzBeWeQ" type="7007">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_W6E_LmEQEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_W6E_L2EQEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_W6E_MGEQEeCdEc4VzBeWeQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_W6E_MWEQEeCdEc4VzBeWeQ" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_W6E_MmEQEeCdEc4VzBeWeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_W6E_M2EQEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_W6E_NGEQEeCdEc4VzBeWeQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_kO5A8mEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_W6E_IWEQEeCdEc4VzBeWeQ" x="450" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ophq0WTeEeC9TdKVOBtICg" type="2004" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ophq02TeEeC9TdKVOBtICg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ophq1GTeEeC9TdKVOBtICg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ophq1WTeEeC9TdKVOBtICg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ophq1mTeEeC9TdKVOBtICg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ophq12TeEeC9TdKVOBtICg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ophq2GTeEeC9TdKVOBtICg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ophq2WTeEeC9TdKVOBtICg" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ophq2mTeEeC9TdKVOBtICg" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ophq22TeEeC9TdKVOBtICg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ophq3GTeEeC9TdKVOBtICg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ophq3WTeEeC9TdKVOBtICg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ophq3mTeEeC9TdKVOBtICg" type="7007">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ophq32TeEeC9TdKVOBtICg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ophq4GTeEeC9TdKVOBtICg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ophq4WTeEeC9TdKVOBtICg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ophq4mTeEeC9TdKVOBtICg" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ophq42TeEeC9TdKVOBtICg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ophq5GTeEeC9TdKVOBtICg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ophq5WTeEeC9TdKVOBtICg"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_kjmssGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ophq0mTeEeC9TdKVOBtICg" x="726" y="444"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_ytiUcWEPEeCdEc4VzBeWeQ"/>
+ <element xmi:type="uml:Model" href="reverseJDT.uml#_LfM0EWEMEeCdEc4VzBeWeQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_0mFxgGEPEeCdEc4VzBeWeQ" type="4002" source="_0kvtsGEPEeCdEc4VzBeWeQ" target="_0lWKoGEPEeCdEc4VzBeWeQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_0mFxg2EPEeCdEc4VzBeWeQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0mFxhGEPEeCdEc4VzBeWeQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_0mFxgWEPEeCdEc4VzBeWeQ" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="reverseJDT.uml#_swXycGEPEeCdEc4VzBeWeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0mFxgmEPEeCdEc4VzBeWeQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_1pAAAGEPEeCdEc4VzBeWeQ" type="4002" source="_1oGoIGEPEeCdEc4VzBeWeQ" target="_0lWKoGEPEeCdEc4VzBeWeQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1pAAA2EPEeCdEc4VzBeWeQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1pAABGEPEeCdEc4VzBeWeQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_1pAAAWEPEeCdEc4VzBeWeQ" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="reverseJDT.uml#_8utT4GEOEeCdEc4VzBeWeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1pAAAmEPEeCdEc4VzBeWeQ" points="[0, 0, -441, -214]$[391, 190, -50, -24]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_4-FFcGEPEeCdEc4VzBeWeQ" type="4002" source="_4ihK0GEPEeCdEc4VzBeWeQ" target="_0lWKoGEPEeCdEc4VzBeWeQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_4-FFc2EPEeCdEc4VzBeWeQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4-FFdGEPEeCdEc4VzBeWeQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_4-FFcWEPEeCdEc4VzBeWeQ" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="reverseJDT.uml#_klPrcWEMEeCdEc4VzBeWeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4-FFcmEPEeCdEc4VzBeWeQ" points="[-45, -52, 183, 215]$[-184, -214, 44, 53]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8K-fQGEPEeCdEc4VzBeWeQ" type="4002" source="_8KO4YGEPEeCdEc4VzBeWeQ" target="_4ihK0GEPEeCdEc4VzBeWeQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8K-fQ2EPEeCdEc4VzBeWeQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8K-fRGEPEeCdEc4VzBeWeQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8K-fQWEPEeCdEc4VzBeWeQ" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="reverseJDT.uml#_fjJYoGEOEeCdEc4VzBeWeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8K-fQmEPEeCdEc4VzBeWeQ" points="[0, 0, -572, -424]$[522, 387, -50, -37]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_-X8GEGEPEeCdEc4VzBeWeQ" type="4002" source="_-XMfMGEPEeCdEc4VzBeWeQ" target="_4ihK0GEPEeCdEc4VzBeWeQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_-X8GE2EPEeCdEc4VzBeWeQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-X8GFGEPEeCdEc4VzBeWeQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_-X8GEWEPEeCdEc4VzBeWeQ" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="reverseJDT.uml#_knyCEWEMEeCdEc4VzBeWeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-X8GEmEPEeCdEc4VzBeWeQ" points="[0, 0, -572, -424]$[522, 387, -50, -37]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_HUvpAGEQEeCdEc4VzBeWeQ" type="4002" source="_HTjWMGEQEeCdEc4VzBeWeQ" target="_4ihK0GEPEeCdEc4VzBeWeQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_HUvpA2EQEeCdEc4VzBeWeQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_HUvpBGEQEeCdEc4VzBeWeQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_HUvpAWEQEeCdEc4VzBeWeQ" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="reverseJDT.uml#_kvOt4GEMEeCdEc4VzBeWeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HUvpAmEQEeCdEc4VzBeWeQ" points="[0, 0, -572, -424]$[522, 387, -50, -37]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Q6EkgGEQEeCdEc4VzBeWeQ" type="4002" source="_Q5CCsGEQEeCdEc4VzBeWeQ" target="_0lWKoGEPEeCdEc4VzBeWeQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Q6Ekg2EQEeCdEc4VzBeWeQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Q6EkhGEQEeCdEc4VzBeWeQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Q6EkgWEQEeCdEc4VzBeWeQ" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="reverseJDT.uml#_kyW6YWEMEeCdEc4VzBeWeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Q6EkgmEQEeCdEc4VzBeWeQ" points="[0, 0, -441, -214]$[391, 190, -50, -24]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_TYxbkGEQEeCdEc4VzBeWeQ" type="4002" source="_TX4DsGEQEeCdEc4VzBeWeQ" target="_Q5CCsGEQEeCdEc4VzBeWeQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_TYxbk2EQEeCdEc4VzBeWeQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TYxblGEQEeCdEc4VzBeWeQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_TYxbkWEQEeCdEc4VzBeWeQ" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="reverseJDT.uml#_82Y7IGEMEeCdEc4VzBeWeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TYxbkmEQEeCdEc4VzBeWeQ" points="[0, 0, -986, -422]$[936, 401, -50, -21]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_W69v8GEQEeCdEc4VzBeWeQ" type="4002" source="_0lWKoGEPEeCdEc4VzBeWeQ" target="_W6E_IGEQEeCdEc4VzBeWeQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_W69v82EQEeCdEc4VzBeWeQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_W69v9GEQEeCdEc4VzBeWeQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_W69v8WEQEeCdEc4VzBeWeQ" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="reverseJDT.uml#_kO5A82EMEeCdEc4VzBeWeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_W69v8mEQEeCdEc4VzBeWeQ" points="[-50, -17, 480, 159]$[-530, -176, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_oxIHoGTeEeC9TdKVOBtICg" type="4002" source="_ophq0WTeEeC9TdKVOBtICg" target="_0lWKoGEPEeCdEc4VzBeWeQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_oxIHo2TeEeC9TdKVOBtICg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oxIHpGTeEeC9TdKVOBtICg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_oxIHoWTeEeC9TdKVOBtICg" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="reverseJDT.uml#_S-rRwGHaEeCIr_fxSkYSJA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_oxIHomTeEeC9TdKVOBtICg" points="[0, 0, -524, -248]$[474, 224, -50, -24]"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_hrDcEWHZEeCIr_fxSkYSJA" type="PapyrusUMLClassDiagram" name="IParent hierarchy" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_m13UEGHZEeCIr_fxSkYSJA" type="2004" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m13UEmHZEeCIr_fxSkYSJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m13UE2HZEeCIr_fxSkYSJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m13UFGHZEeCIr_fxSkYSJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m13UFWHZEeCIr_fxSkYSJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m2AeAGHZEeCIr_fxSkYSJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m2AeAWHZEeCIr_fxSkYSJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_m2AeAmHZEeCIr_fxSkYSJA" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_m2AeA2HZEeCIr_fxSkYSJA" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_m2AeBGHZEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_m2AeBWHZEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_m2AeBmHZEeCIr_fxSkYSJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_m2AeB2HZEeCIr_fxSkYSJA" type="7007">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_m2AeCGHZEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_m2AeCWHZEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_m2AeCmHZEeCIr_fxSkYSJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_m2AeC2HZEeCIr_fxSkYSJA" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_m2AeDGHZEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_m2AeDWHZEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_m2AeDmHZEeCIr_fxSkYSJA"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_klF6cGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_m13UEWHZEeCIr_fxSkYSJA" x="480" y="252"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_5eZVcGHZEeCIr_fxSkYSJA" type="2004" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5eZVcmHZEeCIr_fxSkYSJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5eZVc2HZEeCIr_fxSkYSJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5eZVdGHZEeCIr_fxSkYSJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5eZVdWHZEeCIr_fxSkYSJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5eZVdmHZEeCIr_fxSkYSJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5eZVd2HZEeCIr_fxSkYSJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5eZVeGHZEeCIr_fxSkYSJA" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5eZVeWHZEeCIr_fxSkYSJA" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5eZVemHZEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5eZVe2HZEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5eZVfGHZEeCIr_fxSkYSJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5eZVfWHZEeCIr_fxSkYSJA" type="7007">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5eZVfmHZEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5eZVf2HZEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5eZVgGHZEeCIr_fxSkYSJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5eZVgWHZEeCIr_fxSkYSJA" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5eZVgmHZEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5eZVg2HZEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5eZVhGHZEeCIr_fxSkYSJA"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_kq6OkGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5eZVcWHZEeCIr_fxSkYSJA" x="480" y="30"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AL_14GHaEeCIr_fxSkYSJA" type="2004" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AL_14mHaEeCIr_fxSkYSJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AL_142HaEeCIr_fxSkYSJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AL_15GHaEeCIr_fxSkYSJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AL_15WHaEeCIr_fxSkYSJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AL_15mHaEeCIr_fxSkYSJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AL_152HaEeCIr_fxSkYSJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AL_16GHaEeCIr_fxSkYSJA" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AL_16WHaEeCIr_fxSkYSJA" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AL_16mHaEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AL_162HaEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AL_17GHaEeCIr_fxSkYSJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AL_17WHaEeCIr_fxSkYSJA" type="7007">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AL_17mHaEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AL_172HaEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AL_18GHaEeCIr_fxSkYSJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AL_18WHaEeCIr_fxSkYSJA" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AL_18mHaEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AL_182HaEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AL_19GHaEeCIr_fxSkYSJA"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_knoREGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AL_14WHaEeCIr_fxSkYSJA" x="558" y="450"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_DRb80GHaEeCIr_fxSkYSJA" type="2004" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DRlt0GHaEeCIr_fxSkYSJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DRlt0WHaEeCIr_fxSkYSJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DRlt0mHaEeCIr_fxSkYSJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DRlt02HaEeCIr_fxSkYSJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DRlt1GHaEeCIr_fxSkYSJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DRlt1WHaEeCIr_fxSkYSJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_DRlt1mHaEeCIr_fxSkYSJA" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_DRlt12HaEeCIr_fxSkYSJA" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_DRlt2GHaEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_DRlt2WHaEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DRlt2mHaEeCIr_fxSkYSJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_DRlt22HaEeCIr_fxSkYSJA" type="7007">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_DRlt3GHaEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_DRlt3WHaEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DRlt3mHaEeCIr_fxSkYSJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_DRlt32HaEeCIr_fxSkYSJA" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_DRlt4GHaEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_DRlt4WHaEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DRlt4mHaEeCIr_fxSkYSJA"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_kvE84GEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DRb80WHaEeCIr_fxSkYSJA" x="414" y="450"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_IDXawGHaEeCIr_fxSkYSJA" type="2004" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IDXawmHaEeCIr_fxSkYSJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IDXaw2HaEeCIr_fxSkYSJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IDXaxGHaEeCIr_fxSkYSJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IDXaxWHaEeCIr_fxSkYSJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IDgksGHaEeCIr_fxSkYSJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IDgksWHaEeCIr_fxSkYSJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_IDgksmHaEeCIr_fxSkYSJA" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IDgks2HaEeCIr_fxSkYSJA" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IDgktGHaEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IDgktWHaEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IDgktmHaEeCIr_fxSkYSJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IDgkt2HaEeCIr_fxSkYSJA" type="7007">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IDgkuGHaEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IDgkuWHaEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IDgkumHaEeCIr_fxSkYSJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IDgku2HaEeCIr_fxSkYSJA" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IDgkvGHaEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IDgkvWHaEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IDgkvmHaEeCIr_fxSkYSJA"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_kNjkMmEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IDXawWHaEeCIr_fxSkYSJA" x="282" y="450"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_MaAq4GHaEeCIr_fxSkYSJA" type="2004" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MaAq4mHaEeCIr_fxSkYSJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MaAq42HaEeCIr_fxSkYSJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MaAq5GHaEeCIr_fxSkYSJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MaAq5WHaEeCIr_fxSkYSJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MaAq5mHaEeCIr_fxSkYSJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MaAq52HaEeCIr_fxSkYSJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_MaAq6GHaEeCIr_fxSkYSJA" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MaAq6WHaEeCIr_fxSkYSJA" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_MaAq6mHaEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_MaAq62HaEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MaAq7GHaEeCIr_fxSkYSJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MaAq7WHaEeCIr_fxSkYSJA" type="7007">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_MaAq7mHaEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_MaAq72HaEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MaAq8GHaEeCIr_fxSkYSJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MaAq8WHaEeCIr_fxSkYSJA" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_MaAq8mHaEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_MaAq82HaEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MaAq9GHaEeCIr_fxSkYSJA"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_kNQCMGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MaAq4WHaEeCIr_fxSkYSJA" x="702" y="450"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QnILkGHaEeCIr_fxSkYSJA" type="2004" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QnR8kGHaEeCIr_fxSkYSJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QnR8kWHaEeCIr_fxSkYSJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QnR8kmHaEeCIr_fxSkYSJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QnR8k2HaEeCIr_fxSkYSJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QnR8lGHaEeCIr_fxSkYSJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QnR8lWHaEeCIr_fxSkYSJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QnR8lmHaEeCIr_fxSkYSJA" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QnR8l2HaEeCIr_fxSkYSJA" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QnR8mGHaEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QnR8mWHaEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QnR8mmHaEeCIr_fxSkYSJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QnR8m2HaEeCIr_fxSkYSJA" type="7007">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QnR8nGHaEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QnR8nWHaEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QnR8nmHaEeCIr_fxSkYSJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QnR8n2HaEeCIr_fxSkYSJA" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QnR8oGHaEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QnR8oWHaEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QnR8omHaEeCIr_fxSkYSJA"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_kYbXcGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QnILkWHaEeCIr_fxSkYSJA" x="624" y="252"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_UIlgIGHaEeCIr_fxSkYSJA" type="2004" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UIlgImHaEeCIr_fxSkYSJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UIlgI2HaEeCIr_fxSkYSJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UIlgJGHaEeCIr_fxSkYSJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UIlgJWHaEeCIr_fxSkYSJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UIlgJmHaEeCIr_fxSkYSJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UIlgJ2HaEeCIr_fxSkYSJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UIlgKGHaEeCIr_fxSkYSJA" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_UIlgKWHaEeCIr_fxSkYSJA" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_UIlgKmHaEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_UIlgK2HaEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UIlgLGHaEeCIr_fxSkYSJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_UIlgLWHaEeCIr_fxSkYSJA" type="7007">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_UIlgLmHaEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_UIlgL2HaEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UIlgMGHaEeCIr_fxSkYSJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_UIlgMWHaEeCIr_fxSkYSJA" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_UIlgMmHaEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_UIlgM2HaEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UIlgNGHaEeCIr_fxSkYSJA"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_kjmssGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UIlgIWHaEeCIr_fxSkYSJA" x="774" y="252"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_YzDrMGHaEeCIr_fxSkYSJA" type="2004" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YzDrMmHaEeCIr_fxSkYSJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YzDrM2HaEeCIr_fxSkYSJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YzDrNGHaEeCIr_fxSkYSJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YzDrNWHaEeCIr_fxSkYSJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YzDrNmHaEeCIr_fxSkYSJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YzDrN2HaEeCIr_fxSkYSJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YzDrOGHaEeCIr_fxSkYSJA" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_YzDrOWHaEeCIr_fxSkYSJA" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_YzDrOmHaEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_YzDrO2HaEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YzDrPGHaEeCIr_fxSkYSJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_YzDrPWHaEeCIr_fxSkYSJA" type="7007">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_YzDrPmHaEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_YzDrP2HaEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YzDrQGHaEeCIr_fxSkYSJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_YzDrQWHaEeCIr_fxSkYSJA" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_YzDrQmHaEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_YzDrQ2HaEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YzDrRGHaEeCIr_fxSkYSJA"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_kNZzMGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YzDrMWHaEeCIr_fxSkYSJA" x="336" y="252"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dZgR4GHaEeCIr_fxSkYSJA" type="2004" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dZgR4mHaEeCIr_fxSkYSJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dZgR42HaEeCIr_fxSkYSJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dZgR5GHaEeCIr_fxSkYSJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dZgR5WHaEeCIr_fxSkYSJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dZgR5mHaEeCIr_fxSkYSJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dZgR52HaEeCIr_fxSkYSJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dZgR6GHaEeCIr_fxSkYSJA" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dZgR6WHaEeCIr_fxSkYSJA" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dZgR6mHaEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dZgR62HaEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dZgR7GHaEeCIr_fxSkYSJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dZgR7WHaEeCIr_fxSkYSJA" type="7007">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dZgR7mHaEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dZgR72HaEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dZgR8GHaEeCIr_fxSkYSJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dZgR8WHaEeCIr_fxSkYSJA" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dZgR8mHaEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dZgR82HaEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dZgR9GHaEeCIr_fxSkYSJA"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_kqTxoGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dZgR4WHaEeCIr_fxSkYSJA" x="216" y="252"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gihRQGHaEeCIr_fxSkYSJA" type="2004" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gihRQmHaEeCIr_fxSkYSJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gihRQ2HaEeCIr_fxSkYSJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gihRRGHaEeCIr_fxSkYSJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gihRRWHaEeCIr_fxSkYSJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gihRRmHaEeCIr_fxSkYSJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gihRR2HaEeCIr_fxSkYSJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gihRSGHaEeCIr_fxSkYSJA" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gihRSWHaEeCIr_fxSkYSJA" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gihRSmHaEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gihRS2HaEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gihRTGHaEeCIr_fxSkYSJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gihRTWHaEeCIr_fxSkYSJA" type="7007">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gihRTmHaEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gihRT2HaEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gihRUGHaEeCIr_fxSkYSJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gihRUWHaEeCIr_fxSkYSJA" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gihRUmHaEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gihRU2HaEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gihRVGHaEeCIr_fxSkYSJA"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_kqmskGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gihRQWHaEeCIr_fxSkYSJA" x="54" y="252"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_luqmAGHaEeCIr_fxSkYSJA" type="2004" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_luqmAmHaEeCIr_fxSkYSJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_luqmA2HaEeCIr_fxSkYSJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_luqmBGHaEeCIr_fxSkYSJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_luqmBWHaEeCIr_fxSkYSJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_luqmBmHaEeCIr_fxSkYSJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_luqmB2HaEeCIr_fxSkYSJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_luqmCGHaEeCIr_fxSkYSJA" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_luqmCWHaEeCIr_fxSkYSJA" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_luqmCmHaEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_luqmC2HaEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_luqmDGHaEeCIr_fxSkYSJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_luqmDWHaEeCIr_fxSkYSJA" type="7007">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_luqmDmHaEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_luqmD2HaEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_luqmEGHaEeCIr_fxSkYSJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_luqmEWHaEeCIr_fxSkYSJA" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_luqmEmHaEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_luqmE2HaEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_luqmFGHaEeCIr_fxSkYSJA"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_kyNJYGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_luqmAWHaEeCIr_fxSkYSJA" x="906" y="252"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_q3PCUGHaEeCIr_fxSkYSJA" type="2004" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_q3PCUmHaEeCIr_fxSkYSJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q3PCU2HaEeCIr_fxSkYSJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_q3PCVGHaEeCIr_fxSkYSJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q3PCVWHaEeCIr_fxSkYSJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_q3PCVmHaEeCIr_fxSkYSJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q3PCV2HaEeCIr_fxSkYSJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_q3PCWGHaEeCIr_fxSkYSJA" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_q3PCWWHaEeCIr_fxSkYSJA" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_q3PCWmHaEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_q3PCW2HaEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q3PCXGHaEeCIr_fxSkYSJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_q3PCXWHaEeCIr_fxSkYSJA" type="7007">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_q3PCXmHaEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_q3PCX2HaEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q3PCYGHaEeCIr_fxSkYSJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_q3PCYWHaEeCIr_fxSkYSJA" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_q3PCYmHaEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_q3PCY2HaEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q3PCZGHaEeCIr_fxSkYSJA"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_j-plgGEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q3PCUWHaEeCIr_fxSkYSJA" x="858" y="450"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_vg9mgGHaEeCIr_fxSkYSJA" type="2004" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vg9mgmHaEeCIr_fxSkYSJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vg9mg2HaEeCIr_fxSkYSJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vg9mhGHaEeCIr_fxSkYSJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vg9mhWHaEeCIr_fxSkYSJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vg9mhmHaEeCIr_fxSkYSJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vg9mh2HaEeCIr_fxSkYSJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vg9miGHaEeCIr_fxSkYSJA" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_vg9miWHaEeCIr_fxSkYSJA" type="7006">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_vg9mimHaEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_vg9mi2HaEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vg9mjGHaEeCIr_fxSkYSJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_vg9mjWHaEeCIr_fxSkYSJA" type="7007">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_vg9mjmHaEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_vg9mj2HaEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vg9mkGHaEeCIr_fxSkYSJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_vg9mkWHaEeCIr_fxSkYSJA" type="7008">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_vg9mkmHaEeCIr_fxSkYSJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_vg9mk2HaEeCIr_fxSkYSJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vg9mlGHaEeCIr_fxSkYSJA"/>
+ </children>
+ <element xmi:type="uml:Interface" href="reverseJDT.uml#_j2Jw0GEMEeCdEc4VzBeWeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vg9mgWHaEeCIr_fxSkYSJA" x="966" y="450"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_hrDcEmHZEeCIr_fxSkYSJA"/>
+ <element xmi:type="uml:Model" href="reverseJDT.uml#_LfM0EWEMEeCdEc4VzBeWeQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_5fceUGHZEeCIr_fxSkYSJA" type="4002" source="_m13UEGHZEeCIr_fxSkYSJA" target="_5eZVcGHZEeCIr_fxSkYSJA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_5fceU2HZEeCIr_fxSkYSJA" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5fceVGHZEeCIr_fxSkYSJA" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5fceUWHZEeCIr_fxSkYSJA" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="reverseJDT.uml#_4FJDgWHZEeCIr_fxSkYSJA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5fceUmHZEeCIr_fxSkYSJA" points="[-50, -32, 517, 327]$[-567, -359, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_AMvcwGHaEeCIr_fxSkYSJA" type="4002" source="_AL_14GHaEeCIr_fxSkYSJA" target="_m13UEGHZEeCIr_fxSkYSJA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AMvcw2HaEeCIr_fxSkYSJA" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AMvcxGHaEeCIr_fxSkYSJA" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_AMvcwWHaEeCIr_fxSkYSJA" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="reverseJDT.uml#_knyCEWEMEeCdEc4VzBeWeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AMvcwmHaEeCIr_fxSkYSJA" points="[0, 0, -548, -298]$[498, 271, -50, -27]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_DSoPoGHaEeCIr_fxSkYSJA" type="4002" source="_DRb80GHaEeCIr_fxSkYSJA" target="_m13UEGHZEeCIr_fxSkYSJA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_DSoPo2HaEeCIr_fxSkYSJA" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DSoPpGHaEeCIr_fxSkYSJA" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_DSoPoWHaEeCIr_fxSkYSJA" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="reverseJDT.uml#_kvOt4GEMEeCdEc4VzBeWeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_DSoPomHaEeCIr_fxSkYSJA" points="[0, 0, -548, -298]$[498, 271, -50, -27]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_IEjtkGHaEeCIr_fxSkYSJA" type="4002" source="_IDXawGHaEeCIr_fxSkYSJA" target="_m13UEGHZEeCIr_fxSkYSJA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_IEjtk2HaEeCIr_fxSkYSJA" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IEjtlGHaEeCIr_fxSkYSJA" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_IEjtkWHaEeCIr_fxSkYSJA" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="reverseJDT.uml#_G2eJ0GHaEeCIr_fxSkYSJA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IEjtkmHaEeCIr_fxSkYSJA" points="[0, 0, -548, -298]$[498, 271, -50, -27]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_MbDzwGHaEeCIr_fxSkYSJA" type="4002" source="_MaAq4GHaEeCIr_fxSkYSJA" target="_m13UEGHZEeCIr_fxSkYSJA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_MbDzw2HaEeCIr_fxSkYSJA" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MbDzxGHaEeCIr_fxSkYSJA" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_MbDzwWHaEeCIr_fxSkYSJA" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="reverseJDT.uml#_fjJYoGEOEeCdEc4VzBeWeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_MbDzwmHaEeCIr_fxSkYSJA" points="[0, 0, -548, -298]$[498, 271, -50, -27]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_QoKtYGHaEeCIr_fxSkYSJA" type="4002" source="_QnILkGHaEeCIr_fxSkYSJA" target="_5eZVcGHZEeCIr_fxSkYSJA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QoKtY2HaEeCIr_fxSkYSJA" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QoKtZGHaEeCIr_fxSkYSJA" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_QoKtYWHaEeCIr_fxSkYSJA" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="reverseJDT.uml#_QBlOgWHaEeCIr_fxSkYSJA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QoKtYmHaEeCIr_fxSkYSJA" points="[0, 0, -548, -136]$[498, 124, -50, -12]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_UJ684GHaEeCIr_fxSkYSJA" type="4002" source="_UIlgIGHaEeCIr_fxSkYSJA" target="_5eZVcGHZEeCIr_fxSkYSJA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_UJ6842HaEeCIr_fxSkYSJA" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UJ685GHaEeCIr_fxSkYSJA" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_UJ684WHaEeCIr_fxSkYSJA" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="reverseJDT.uml#_S-hgwGHaEeCIr_fxSkYSJA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UJ684mHaEeCIr_fxSkYSJA" points="[0, 0, -548, -136]$[498, 124, -50, -12]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Y0ZH8GHaEeCIr_fxSkYSJA" type="4002" source="_YzDrMGHaEeCIr_fxSkYSJA" target="_5eZVcGHZEeCIr_fxSkYSJA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Y0i48GHaEeCIr_fxSkYSJA" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Y0i48WHaEeCIr_fxSkYSJA" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Y0ZH8WHaEeCIr_fxSkYSJA" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="reverseJDT.uml#_swXycWEPEeCdEc4VzBeWeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Y0ZH8mHaEeCIr_fxSkYSJA" points="[0, 0, -548, -136]$[498, 124, -50, -12]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2Qy7kGHaEeCIr_fxSkYSJA" id="(0.5,0.10476190476190476)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_dasksGHaEeCIr_fxSkYSJA" type="4002" source="_dZgR4GHaEeCIr_fxSkYSJA" target="_5eZVcGHZEeCIr_fxSkYSJA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dasks2HaEeCIr_fxSkYSJA" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dasktGHaEeCIr_fxSkYSJA" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dasksWHaEeCIr_fxSkYSJA" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="reverseJDT.uml#_cQyWUGHaEeCIr_fxSkYSJA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dasksmHaEeCIr_fxSkYSJA" points="[0, 0, -548, -136]$[498, 124, -50, -12]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1YBggGHaEeCIr_fxSkYSJA" id="(0.5327102803738317,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_gjtkEGHaEeCIr_fxSkYSJA" type="4002" source="_gihRQGHaEeCIr_fxSkYSJA" target="_5eZVcGHZEeCIr_fxSkYSJA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gjtkE2HaEeCIr_fxSkYSJA" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gjtkFGHaEeCIr_fxSkYSJA" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_gjtkEWHaEeCIr_fxSkYSJA" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="reverseJDT.uml#_fa13gGHaEeCIr_fxSkYSJA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gjtkEmHaEeCIr_fxSkYSJA" points="[0, 0, -548, -136]$[498, 124, -50, -12]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_05ntQGHaEeCIr_fxSkYSJA" id="(0.6842105263157895,0.009523809523809525)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_lwACwGHaEeCIr_fxSkYSJA" type="4002" source="_luqmAGHaEeCIr_fxSkYSJA" target="_5eZVcGHZEeCIr_fxSkYSJA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_lwACw2HaEeCIr_fxSkYSJA" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lwACxGHaEeCIr_fxSkYSJA" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_lwACwWHaEeCIr_fxSkYSJA" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="reverseJDT.uml#_kyW6YmEMEeCdEc4VzBeWeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_lwACwmHaEeCIr_fxSkYSJA" points="[0, 0, -668, -82]$[618, 76, -50, -6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_202q4GHaEeCIr_fxSkYSJA" id="(0.51,0.0761904761904762)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_q304MGHaEeCIr_fxSkYSJA" type="4002" source="_q3PCUGHaEeCIr_fxSkYSJA" target="_luqmAGHaEeCIr_fxSkYSJA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_q304M2HaEeCIr_fxSkYSJA" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_q304NGHaEeCIr_fxSkYSJA" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_q304MWHaEeCIr_fxSkYSJA" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="reverseJDT.uml#_82Y7IGEMEeCdEc4VzBeWeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_q304MmHaEeCIr_fxSkYSJA" points="[0, 0, -1094, -298]$[1044, 284, -50, -14]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_vhjcYGHaEeCIr_fxSkYSJA" type="4002" source="_vg9mgGHaEeCIr_fxSkYSJA" target="_luqmAGHaEeCIr_fxSkYSJA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_vhtNYGHaEeCIr_fxSkYSJA" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vhtNYWHaEeCIr_fxSkYSJA" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_vhjcYWHaEeCIr_fxSkYSJA" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="reverseJDT.uml#_pnrtwGEQEeCdEc4VzBeWeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_vhjcYmHaEeCIr_fxSkYSJA" points="[0, 0, -1094, -298]$[1044, 284, -50, -14]"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/reverse/reverseJDT.uml b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/reverse/reverseJDT.uml
new file mode 100644
index 00000000000..0421e23299d
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/reverse/reverseJDT.uml
@@ -0,0 +1,20911 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:uml="http://www.eclipse.org/uml2/3.0.0/UML" xmi:id="_LfM0EWEMEeCdEc4VzBeWeQ" name="model">
+ <packagedElement xmi:type="uml:Model" xmi:id="_dBtBgGEMEeCdEc4VzBeWeQ" name="generated"/>
+ <packagedElement xmi:type="uml:Model" xmi:id="_dQTeMGEMEeCdEc4VzBeWeQ" name="jdt">
+ <packagedElement xmi:type="uml:Package" xmi:id="_dQTeMWEMEeCdEc4VzBeWeQ" name="org">
+ <packagedElement xmi:type="uml:Package" xmi:id="_dQTeMmEMEeCdEc4VzBeWeQ" name="eclipse">
+ <packagedElement xmi:type="uml:Package" xmi:id="_dQTeM2EMEeCdEc4VzBeWeQ" name="jdt">
+ <packagedElement xmi:type="uml:Package" xmi:id="_dQTeNGEMEeCdEc4VzBeWeQ" name="core">
+ <packagedElement xmi:type="uml:Class" xmi:id="_dR8c8GEMEeCdEc4VzBeWeQ" name="BindingKey" isLeaf="true">
+ <ownedComment xmi:id="_dR8c8WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Utility class to decode or create a binding key.
+ * &lt;p>
+ * This class is not intended to be subclassed by clients.
+ * &lt;/p>
+ *
+ * @see org.eclipse.jdt.core.dom.IBinding#getKey()
+ * @since 3.1
+ </body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_dTIvwGEMEeCdEc4VzBeWeQ" name="key" visibility="private" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false"/>
+ <ownedOperation xmi:id="_dT4WoGEMEeCdEc4VzBeWeQ" name="createArrayTypeBindingKey" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_dT4WoWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Creates a new array type binding key from the given type binding key and the given array dimension.
+ * &lt;p>
+ * For example:
+ * &lt;pre>
+ * &lt;code>
+ * createArrayTypeBindingKey(&quot;Ljava/lang/Object;&quot;, 1) -> &quot;[Ljava/lang/Object;&quot;
+ * createArrayTypeBindingKey(&quot;I&quot;, 2) -> &quot;[[I&quot;
+ * &lt;/code>
+ * &lt;/pre>
+ * &lt;/p>
+ *
+ * @param typeKey the binding key of the given type
+ * @param arrayDimension the given array dimension
+ * @return a new array type binding key
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_dUCHoGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_dULRkGEMEeCdEc4VzBeWeQ" name="typeKey" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_dULRkWEMEeCdEc4VzBeWeQ" name="arrayDimension" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_dULRkmEMEeCdEc4VzBeWeQ" name="createParameterizedTypeBindingKey" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_dULRk2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Creates a new parameterized type binding key from the given generic type binding key and the given argument type binding keys.
+ * If the argument type keys array is empty, then a raw type binding key is created.
+ * &lt;p>
+ * For example:
+ * &lt;pre>
+ * &lt;code>
+ * createParameterizedTypeBindingKey(
+ * &quot;Ljava/util/Map&amp;lt;TK;TV;&amp;gt;;&quot;,
+ * new String[] {&quot;Ljava/lang/String;&quot;, &quot;Ljava/lang/Object;&quot;}) -&amp;gt;
+ * &quot;Ljava/util/Map&amp;lt;Ljava/lang/String;Ljava/lang/Object;&amp;gt;;&quot;
+ * createParameterizedTypeBindingKey(
+ * &quot;Ljava/util/List&amp;lt;TE;&amp;gt;;&quot;, new String[] {}) -&amp;gt;
+ * &quot;Ljava/util/List&amp;lt;&amp;gt;;&quot;
+ * &lt;/code>
+ * &lt;/pre>
+ * &lt;/p>
+ *
+ * @param genericTypeKey the binding key of the generic type
+ * @param argumentTypeKeys the possibly empty list of binding keys of argument types
+ * @return a new parameterized type binding key
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_dULRlGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_dULRlWEMEeCdEc4VzBeWeQ" name="genericTypeKey" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_dULRlmEMEeCdEc4VzBeWeQ" name="argumentTypeKeys" type="_dSiS02EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dUezkWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dUezkGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_dUezkmEMEeCdEc4VzBeWeQ" name="createTypeBindingKey" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_dUezk2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Creates a new type binding key from the given type name. The type name must be either
+ * a fully qualified name, an array type name or a primitive type name.
+ * If the type name is fully qualified, then it is expected to be dot-based.
+ * Note that inner types, generic types and parameterized types are not supported.
+ * &lt;p>
+ * For example:
+ * &lt;pre>
+ * &lt;code>
+ * createTypeBindingKey(&quot;int&quot;) -> &quot;I&quot;
+ * createTypeBindingKey(&quot;java.lang.String&quot;) -> &quot;Ljava/lang/String;&quot;
+ * createTypeBindingKey(&quot;boolean[]&quot;) -> &quot;[Z&quot;
+ * &lt;/code>
+ * &lt;/pre>
+ * &lt;/p>
+ *
+ * @param typeName the possibly qualified type name
+ * @return a new type binding key
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_dUezlGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_dUezlWEMEeCdEc4VzBeWeQ" name="typeName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_dUezlmEMEeCdEc4VzBeWeQ" name="createTypeVariableBindingKey" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_dUezl2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Creates a new type variable binding key from the given type variable name and the given declaring key.
+ * The declaring key can either be a type binding key or a method binding key.
+ * &lt;p>
+ * For example:
+ * &lt;pre>
+ * &lt;code>
+ * createTypeVariableBindingKey(&quot;T&quot;, &quot;Ljava/util/List&amp;lt;TE;&amp;gt;;&quot;) -&amp;gt;
+ * &quot;Ljava/util/List&amp;lt;TE;&amp;gt;;:TT;&quot;
+ * createTypeVariableBindingKey(&quot;SomeTypeVariable&quot;, &quot;Lp/X;.foo()V&quot;) -&amp;gt;
+ * &quot;Lp/X;.foo()V:TSomeTypeVariable;&quot;
+ * &lt;/code>
+ * &lt;/pre>
+ * &lt;/p>
+ *
+ * @param typeVariableName the name of the given type variable
+ * @param declaringKey the binding key of the type or method the type variable belongs to
+ * @return a new type variable binding key
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_dUn9gGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_dUn9gWEMEeCdEc4VzBeWeQ" name="typeVariableName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_dUn9gmEMEeCdEc4VzBeWeQ" name="declaringKey" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_dUn9hGEMEeCdEc4VzBeWeQ" name="createWilcardTypeBindingKey" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_dUn9hWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Creates a new wildcard type binding key from the given type binding key and the given wildcard kind
+ * (one of {@link Signature#C_STAR}, {@link Signature#C_SUPER}, or {@link Signature#C_EXTENDS}.
+ * If the wildcard is {@link Signature#C_STAR}, the given type binding key is ignored.
+ * &lt;p>
+ * For example:
+ * &lt;pre>
+ * &lt;code>
+ * createWilcardTypeBindingKey(null, Signature.C_STAR) -&amp;gt; &quot;*&quot;
+ * createWilcardTypeBindingKey(&quot;Ljava/util/List&amp;lt;TE;&amp;gt;;&quot;,
+ * Signature.C_SUPER) -&amp;gt; &quot;-Ljava/util/List&amp;lt;TE;&amp;gt;;&quot;
+ * createWilcardTypeBindingKey(&quot;Ljava/util/ArrayList;&quot;, Signature.C_EXTENDS) -&amp;gt;
+ * &quot;+Ljava/util/ArrayList;&quot;
+ * &lt;/code>
+ * &lt;/pre>
+ * &lt;/p>
+ *
+ * @param typeKey the binding key of the given type
+ * @param kind one of {@link Signature#C_STAR}, {@link Signature#C_SUPER}, or {@link Signature#C_EXTENDS}
+ * @return a new wildcard type binding key
+ * @deprecated This method is missing crucial information necessary for proper wildcard binding key creation.
+ * @see org.eclipse.jdt.core.BindingKey#createWildcardTypeBindingKey(String, char, String, int)
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_dUxugGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_dU64cGEMEeCdEc4VzBeWeQ" name="typeKey" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_dU64cWEMEeCdEc4VzBeWeQ" name="kind" type="_dUn9g2EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_dU64cmEMEeCdEc4VzBeWeQ" name="createWildcardTypeBindingKey" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_dU64c2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Creates a new wildcard type binding key from the given generic type binding key, the given wildcard
+ * kind (one of {@link Signature#C_STAR}, {@link Signature#C_SUPER}, or {@link Signature#C_EXTENDS}
+ * the given bound type binding key and the given rank. If the wildcard kind is {@link Signature#C_STAR},
+ * the given bound type binding key is ignored.
+ * &lt;p>
+ * For example:
+ * &lt;pre>
+ * &lt;code>
+ * createWildcardTypeBindingKey(&quot;Ljava/util/ArrayList;&quot;, Signature.C_STAR, null, 0) -&amp;gt; &quot;Ljava/util/ArrayList;{0}*&quot;
+ * createWildcardTypeBindingKey(&quot;Ljava/util/ArrayList;&quot;, Signature.C_SUPER, &quot;Ljava/lang/String;&quot;, 0) -&amp;gt; &quot;Ljava/util/ArrayList;{0}-Ljava/lang/String;&quot;
+ * createWildcardTypeBindingKey(&quot;Ljava/util/HashMap;&quot;, Signature.C_EXTENDS, &quot;Ljava/lang/String;&quot;, 1) -&amp;gt;
+ * &quot;Ljava/util/HashMap;{1}+Ljava/lang/String;&quot;
+ * &lt;/code>
+ * &lt;/pre>
+ * &lt;/p>
+ *
+ * @param genericTypeKey the binding key of the generic type
+ * @param boundKind one of {@link Signature#C_STAR}, {@link Signature#C_SUPER}, or {@link Signature#C_EXTENDS}
+ * @param boundTypeKey the binding key of the bounding type.
+ * @param rank the relative position of this wild card type in the parameterization of the generic type.
+ * @return a new wildcard type binding key
+ * @since 3.5
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_dU64dGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_dU64dWEMEeCdEc4VzBeWeQ" name="genericTypeKey" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_dU64dmEMEeCdEc4VzBeWeQ" name="boundKind" type="_dUn9g2EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_dU64d2EMEeCdEc4VzBeWeQ" name="boundTypeKey" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_dVEpcGEMEeCdEc4VzBeWeQ" name="rank" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_dVEpcWEMEeCdEc4VzBeWeQ" name="getThrownExceptions" visibility="public">
+ <ownedComment xmi:id="_dVEpcmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the thrown exception signatures of the element represented by this binding key.
+ * If this binding key does not represent a method or does not throw any exception,
+ * returns an empty array.
+ *
+ * @return the thrown exceptions signatures
+ * @since 3.3
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_dVEpc2EMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dVEpdWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dVEpdGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_dVEpdmEMEeCdEc4VzBeWeQ" name="getTypeArguments" visibility="public">
+ <ownedComment xmi:id="_dVEpd2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the type argument signatures of the element represented by this binding key.
+ * If this binding key doesn't represent a parameterized type or a parameterized method,
+ * returns an empty array.
+ *
+ * @return the type argument signatures
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_dVEpeGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dVOacWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dVOacGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_dVOacmEMEeCdEc4VzBeWeQ" name="isRawType" visibility="public">
+ <ownedComment xmi:id="_dVOac2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether this binding key represents a raw type.
+ *
+ * @return whether this binding key represents a raw type
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_dVOadWEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_dVOadmEMEeCdEc4VzBeWeQ" name="isParameterizedType" visibility="public">
+ <ownedComment xmi:id="_dVOad2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether this binding key represents a parameterized type, or if its declaring type is a parameterized type.
+ *
+ * @return whether this binding key represents a parameterized type
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_dVOaeGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_dVOaeWEMEeCdEc4VzBeWeQ" name="isParameterizedMethod" visibility="public">
+ <ownedComment xmi:id="_dVOaemEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether this binding key represents a parameterized method, or if its declaring method is a parameterized method.
+ *
+ * @return whether this binding key represents a parameterized method
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_dVOae2EMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_dVOafGEMEeCdEc4VzBeWeQ" name="toSignature" visibility="public">
+ <ownedComment xmi:id="_dVOafWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Transforms this binding key into a resolved signature.
+ * If this binding key represents a field, the returned signature is
+ * the field type's signature.
+ *
+ * @return the resolved signature for this binding key
+ * @see Signature
+ * @since 3.2
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_dVOafmEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_dVXkYGEMEeCdEc4VzBeWeQ" name="toString" visibility="public">
+ <ownedParameter xmi:id="_dVXkYWEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_dV-BUGEMEeCdEc4VzBeWeQ" name="BufferChangedEvent">
+ <ownedComment xmi:id="_dV-BUWEMEeCdEc4VzBeWeQ">
+ <body>
+ * A buffer changed event describes how a buffer has changed. These events are
+ * used in &lt;code>IBufferChangedListener&lt;/code> notifications.
+ * &lt;p>
+ * For text insertions, &lt;code>getOffset&lt;/code> is the offset
+ * of the first inserted character, &lt;code>getText&lt;/code> is the
+ * inserted text, and &lt;code>getLength&lt;/code> is 0.
+ * &lt;/p>
+ * &lt;p>
+ * For text removals, &lt;code>getOffset&lt;/code> is the offset
+ * of the first removed character, &lt;code>getText&lt;/code> is &lt;code>null&lt;/code>,
+ * and &lt;code>getLength&lt;/code> is the length of the text that was removed.
+ * &lt;/p>
+ * &lt;p>
+ * For replacements (including &lt;code>IBuffer.setContents&lt;/code>),
+ * &lt;code>getOffset&lt;/code> is the offset
+ * of the first replaced character, &lt;code>getText&lt;/code> is the replacement
+ * text, and &lt;code>getLength&lt;/code> is the length of the original text
+ * that was replaced.
+ * &lt;/p>
+ * &lt;p>
+ * When a buffer is closed, &lt;code>getOffset&lt;/code> is 0, &lt;code>getLength&lt;/code>
+ * is 0, and &lt;code>getText&lt;/code> is &lt;code>null&lt;/code>.
+ * &lt;/p>
+ *
+ * @see IBuffer
+ * @noextend This class is not intended to be subclassed by clients.
+ </body>
+ </ownedComment>
+ <generalization xmi:id="_dWHLQGEMEeCdEc4VzBeWeQ" general="_dV-BU2EMEeCdEc4VzBeWeQ"/>
+ <ownedAttribute xmi:id="_dWHLQWEMEeCdEc4VzBeWeQ" name="length" visibility="private" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_dWQ8QGEMEeCdEc4VzBeWeQ">
+ <body>
+ * The length of text that has been modified in the buffer.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_dWatQGEMEeCdEc4VzBeWeQ" name="offset" visibility="private" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_dWatQWEMEeCdEc4VzBeWeQ">
+ <body>
+ * The offset into the buffer where the modification took place.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_dWatQmEMEeCdEc4VzBeWeQ" name="text" visibility="private" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_dWatQ2EMEeCdEc4VzBeWeQ">
+ <body>
+ * The text that was modified.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_dWatRWEMEeCdEc4VzBeWeQ" name="serialVersionUID" visibility="private" isLeaf="true" isStatic="true" type="_dWatRGEMEeCdEc4VzBeWeQ" isUnique="false"/>
+ <ownedOperation xmi:id="_dWatRmEMEeCdEc4VzBeWeQ" name="getBuffer" visibility="public">
+ <ownedComment xmi:id="_dWatR2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the buffer which has changed.
+ *
+ * @return the buffer affected by the change
+ </body>
+ </ownedComment>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_jlnacGEMEeCdEc4VzBeWeQ" name="ClasspathVariableInitializer" isAbstract="true">
+ <ownedComment xmi:id="_jlnacWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Abstract base implementation of all classpath variable initializers.
+ * Classpath variable initializers are used in conjunction with the
+ * &quot;org.eclipse.jdt.core.classpathVariableInitializer&quot; extension point.
+ * &lt;p>
+ * Clients should subclass this class to implement a specific classpath
+ * variable initializer. The subclass must have a public 0-argument
+ * constructor and a concrete implementation of &lt;code>initialize&lt;/code>.
+ *
+ * @see IClasspathEntry
+ * @since 2.0
+ </body>
+ </ownedComment>
+ <ownedOperation xmi:id="_jlnacmEMEeCdEc4VzBeWeQ" name="initialize" visibility="public" isAbstract="true">
+ <ownedComment xmi:id="_jlnac2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Binds a value to the workspace classpath variable with the given name,
+ * or fails silently if this cannot be done.
+ * &lt;p>
+ * A variable initializer is automatically activated whenever a variable value
+ * is needed and none has been recorded so far. The implementation of
+ * the initializer can set the corresponding variable using
+ * &lt;code>JavaCore#setClasspathVariable&lt;/code>.
+ *
+ * @param variable the name of the workspace classpath variable
+ * that requires a binding
+ *
+ * @see JavaCore#getClasspathVariable(String)
+ * @see JavaCore#setClasspathVariable(String, org.eclipse.core.runtime.IPath, org.eclipse.core.runtime.IProgressMonitor)
+ * @see JavaCore#setClasspathVariables(String[], org.eclipse.core.runtime.IPath[], org.eclipse.core.runtime.IProgressMonitor)
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jlxLcGEMEeCdEc4VzBeWeQ" name="variable" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_jlxLcWEMEeCdEc4VzBeWeQ" name="CompletionContext">
+ <ownedComment xmi:id="_jl6VYGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Completion context.
+ *
+ * Represent the context in which the completion occurs.
+ *
+ * @see CompletionRequestor#acceptContext(CompletionContext)
+ * @since 3.1
+ * @noinstantiate This class is not intended to be instantiated by clients.
+ </body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_jl6VYWEMEeCdEc4VzBeWeQ" name="TL_MEMBER_START" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jl6VYmEMEeCdEc4VzBeWeQ">
+ <body>
+ * The completed token is the first token of a member declaration.&lt;br>
+ * e.g.
+ * &lt;pre>
+ * public class X {
+ * Foo| // completion occurs at |
+ * }
+ * &lt;/pre>
+ *
+ * @see #getTokenLocation()
+ *
+ * @since 3.4
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jl6VY2EMEeCdEc4VzBeWeQ" name="TL_STATEMENT_START" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jl6VZGEMEeCdEc4VzBeWeQ">
+ <body>
+ * The completed token is the first token of a statement.&lt;br>
+ * e.g.
+ * &lt;pre>
+ * public class X {
+ * public void bar() {
+ * Foo| // completion occurs at |
+ * }
+ * }
+ * &lt;/pre>
+ *
+ * @see #getTokenLocation()
+ *
+ * @since 3.4
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jl6VZWEMEeCdEc4VzBeWeQ" name="TOKEN_KIND_UNKNOWN" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jl6VZmEMEeCdEc4VzBeWeQ">
+ <body>
+ * The completion token is unknown.
+ * @since 3.2
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jl6VZ2EMEeCdEc4VzBeWeQ" name="TOKEN_KIND_NAME" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jl6VaGEMEeCdEc4VzBeWeQ">
+ <body>
+ * The completion token is a name.
+ * @since 3.2
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jl6VaWEMEeCdEc4VzBeWeQ" name="TOKEN_KIND_STRING_LITERAL" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jl6VamEMEeCdEc4VzBeWeQ">
+ <body>
+ * The completion token is a string literal.
+ * The string literal ends quote can be not present the source.
+ * &lt;code>&quot;foo&quot;&lt;/code> or &lt;code>&quot;foo&lt;/code>.
+ * @since 3.2
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_jl6Va2EMEeCdEc4VzBeWeQ" name="isInJavadoc" visibility="public">
+ <ownedComment xmi:id="_jl6VbGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Tell user whether completion takes place in a javadoc comment or not.
+ *
+ * @return boolean true if completion takes place in a javadoc comment, false otherwise.
+ * @since 3.2
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jl6VbWEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jl6VbmEMEeCdEc4VzBeWeQ" name="isInJavadocText" visibility="public">
+ <ownedComment xmi:id="_jl6Vb2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Tell user whether completion takes place in text area of a javadoc comment or not.
+ *
+ * @return boolean true if completion takes place in a text area of a javadoc comment, false otherwise.
+ * @since 3.2
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jmEGYGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jmEGYWEMEeCdEc4VzBeWeQ" name="isInJavadocFormalReference" visibility="public">
+ <ownedComment xmi:id="_jmEGYmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Tell user whether completion takes place in a formal reference of a javadoc tag or not.
+ * Tags with formal reference are:
+ * &lt;ul>
+ * &lt;li>&amp;#64;see&lt;/li>
+ * &lt;li>&amp;#64;throws&lt;/li>
+ * &lt;li>&amp;#64;exception&lt;/li>
+ * &lt;li>{&amp;#64;link Object}&lt;/li>
+ * &lt;li>{&amp;#64;linkplain Object}&lt;/li>
+ * &lt;li>{&amp;#64;value} when compiler compliance is set at leats to 1.5&lt;/li>
+ * &lt;/ul>
+ *
+ * @return boolean true if completion takes place in formal reference of a javadoc tag, false otherwise.
+ * @since 3.2
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jmEGY2EMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jmN3YGEMEeCdEc4VzBeWeQ" name="isExtended" visibility="public">
+ <ownedComment xmi:id="_jmN3YWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether this completion context is an extended context.
+ * Some methods of this context can be used only if this context is an extended context but an extended context consumes more memory.
+ *
+ * @return &lt;code>true&lt;/code> if this completion context is an extended context.
+ *
+ * @since 3.4
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jmN3YmEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jmN3Y2EMEeCdEc4VzBeWeQ" name="getExpectedTypesSignatures" visibility="public">
+ <ownedComment xmi:id="_jmN3ZGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Return signatures of expected types of a potential completion proposal at the completion position.
+ *
+ * It's not mandatory to a completion proposal to respect this expectation.
+ *
+ * @return signatures expected types of a potential completion proposal at the completion position or
+ * &lt;code>null&lt;/code> if there is no expected types.
+ *
+ * @see Signature
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jmN3ZWEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jmN3Z2EMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jmN3ZmEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jmN3aGEMEeCdEc4VzBeWeQ" name="getExpectedTypesKeys" visibility="public">
+ <ownedComment xmi:id="_jmN3aWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Return keys of expected types of a potential completion proposal at the completion position.
+ *
+ * It's not mandatory to a completion proposal to respect this expectation.
+ *
+ * @return keys of expected types of a potential completion proposal at the completion position or
+ * &lt;code>null&lt;/code> if there is no expected types.
+ *
+ * @see org.eclipse.jdt.core.dom.ASTParser#createASTs(ICompilationUnit[], String[], org.eclipse.jdt.core.dom.ASTRequestor, org.eclipse.core.runtime.IProgressMonitor)
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jmN3amEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jmN3bGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jmN3a2EMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jmN3bWEMEeCdEc4VzBeWeQ" name="getToken" visibility="public">
+ <ownedComment xmi:id="_jmN3bmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the completed token.
+ * This token is either the identifier or Java language keyword
+ * or the string literal under, immediately preceding,
+ * the original request offset. If the original request offset
+ * is not within or immediately after an identifier or keyword or
+ * a string literal then the returned value is &lt;code>null&lt;/code>.
+ *
+ * @return completed token or &lt;code>null&lt;/code>
+ * @since 3.2
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jmN3b2EMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jmN3cWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jmN3cGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jmN3cmEMEeCdEc4VzBeWeQ" name="getTokenKind" visibility="public">
+ <ownedComment xmi:id="_jmN3c2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the kind of completion token being proposed.
+ * &lt;p>
+ * The set of different kinds of completion token is
+ * expected to change over time. It is strongly recommended
+ * that clients do &lt;b>not&lt;/b> assume that the kind is one of the
+ * ones they know about, and code defensively for the
+ * possibility of unexpected future growth.
+ * &lt;/p>
+ *
+ * @return the kind; one of the kind constants declared on
+ * this class whose name starts with &lt;code>TOKEN_KIND&lt;/code>,
+ * or possibly a kind unknown to the caller
+ * @since 3.2
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jmN3dGEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jmN3dWEMEeCdEc4VzBeWeQ" name="getTokenLocation" visibility="public">
+ <ownedComment xmi:id="_jmN3dmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the location of completion token being proposed.
+ * The returned location is a bit mask which can contain some values
+ * of the constants declared on this class whose name starts with &lt;code>TL&lt;/code>,
+ * or possibly values unknown to the caller.
+ *
+ * &lt;p>
+ * The set of different location values is expected to change over time.
+ * It is strongly recommended that clients do &lt;b>not&lt;/b> assume that
+ * the location contains only known value, and code defensively for
+ * the possibility of unexpected future growth.
+ * &lt;/p>
+ *
+ * @return the location
+ *
+ * @since 3.4
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jmXBUGEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jmXBUWEMEeCdEc4VzBeWeQ" name="getTokenStart" visibility="public">
+ <ownedComment xmi:id="_jmXBUmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the character index of the start of the
+ * subrange in the source file buffer containing the
+ * relevant token being completed. This
+ * token is either the identifier or Java language keyword
+ * under, or immediately preceding, the original request
+ * offset. If the original request offset is not within
+ * or immediately after an identifier or keyword, then the
+ * position returned is original request offset and the
+ * token range is empty.
+ *
+ * @return character index of token start position (inclusive)
+ * @since 3.2
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jmXBU2EMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jmXBVGEMEeCdEc4VzBeWeQ" name="getTokenEnd" visibility="public">
+ <ownedParameter xmi:id="_jmXBVWEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jmXBVmEMEeCdEc4VzBeWeQ" name="getOffset" visibility="public">
+ <ownedComment xmi:id="_jmXBV2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the offset position in the source file buffer
+ * after which code assist is requested.
+ *
+ * @return offset position in the source file buffer
+ * @since 3.2
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jmXBWGEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jmXBWWEMEeCdEc4VzBeWeQ" name="getEnclosingElement" visibility="public">
+ <ownedComment xmi:id="_jmXBWmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the innermost enclosing Java element which contains the completion location or &lt;code>null&lt;/code> if this element cannot be computed.
+ * The returned Java element and all Java elements in the same compilation unit which can be navigated to from the returned Java element are special Java elements:
+ * &lt;ul>
+ * &lt;li>they are based on the current content of the compilation unit's buffer, they are not the result of a reconcile operation&lt;/li>
+ * &lt;li>they are not updated if the buffer changes.&lt;/li>
+ * &lt;li>they do not contain local types which are not visible from the completion location.&lt;/li>
+ * &lt;li>they do not give information about categories. {@link IMember#getCategories()} will return an empty array&lt;/li>
+ * &lt;/ul>
+ *
+ * Reasons for returning &lt;code>null&lt;/code> include:
+ * &lt;ul>
+ * &lt;li>the compilation unit no longer exists&lt;/li>
+ * &lt;li>the completion occurred in a binary type. However this restriction might be relaxed in the future.&lt;/li>
+ * &lt;/ul>
+ *
+ * @return the innermost enclosing Java element which contains the completion location or &lt;code>null&lt;/code> if this element cannot be computed.
+ *
+ * @exception UnsupportedOperationException if the context is not an extended context
+ *
+ * @since 3.4
+ </body>
+ </ownedComment>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_jmgyUGEMEeCdEc4VzBeWeQ" name="CompletionFlags" isLeaf="true">
+ <ownedComment xmi:id="_jmgyUWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Utility class for decoding additional flags in completion proposal.
+ * &lt;p>
+ * This class provides static methods only; it is not intended to be
+ * instantiated or subclassed by clients.
+ * &lt;/p>
+ *
+ * @see CompletionProposal#getAdditionalFlags()
+ *
+ * @since 3.3
+ </body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_jmgyUmEMEeCdEc4VzBeWeQ" name="Default" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jmgyU2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant representing the absence of any flag
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jmp8QGEMEeCdEc4VzBeWeQ" name="StaticImport" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jmp8QWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant representing a static import
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_jmp8QmEMEeCdEc4VzBeWeQ" name="isStaticImport" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_jmp8Q2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether the given integer includes the {@link #StaticImport} flag.
+ *
+ * @param flags the flags
+ * @return &lt;code>true&lt;/code> if the {@link #StaticImport} flag is included
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jmp8RGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_jmp8RWEMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_jnQZMGEMEeCdEc4VzBeWeQ" name="CompletionProposal">
+ <ownedComment xmi:id="_jnQZMWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Completion proposal.
+ * &lt;p>
+ * In typical usage, the user working in a Java code editor issues
+ * a code assist command. This command results in a call to
+ * &lt;code>ICodeAssist.codeComplete(position, completionRequestor)&lt;/code>
+ * passing the current position in the source code. The code assist
+ * engine analyzes the code in the buffer, determines what kind of
+ * Java language construct is at that position, and proposes ways
+ * to complete that construct. These proposals are instances of
+ * the class &lt;code>CompletionProposal&lt;/code>. These proposals,
+ * perhaps after sorting and filtering, are presented to the user
+ * to make a choice.
+ * &lt;/p>
+ * &lt;p>
+ * The proposal is as follows: insert
+ * the {@linkplain #getCompletion() completion string} into the
+ * source file buffer, replacing the characters between
+ * {@linkplain #getReplaceStart() the start}
+ * and {@linkplain #getReplaceEnd() end}. The string
+ * can be arbitrary; for example, it might include not only the
+ * name of a method but a set of parentheses. Moreover, the source
+ * range may include source positions before or after the source
+ * position where &lt;code>ICodeAssist.codeComplete&lt;/code> was invoked.
+ * The rest of the information associated with the proposal is
+ * to provide context that may help a user to choose from among
+ * competing proposals.
+ * &lt;/p>
+ * &lt;p>
+ * The completion engine creates instances of this class.
+ * &lt;/p>
+ *
+ * @see ICodeAssist#codeComplete(int, CompletionRequestor)
+ * @since 3.0
+ * @noinstantiate This class is not intended to be instantiated by clients.
+ * @noextend This class is not intended to be subclassed by clients.
+ </body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_jnQZMmEMEeCdEc4VzBeWeQ" name="ANONYMOUS_CLASS_DECLARATION" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jnQZM2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Completion is a declaration of an anonymous class.
+ * This kind of completion might occur in a context like
+ * &lt;code>&quot;new List(^;&quot;&lt;/code> and complete it to
+ * &lt;code>&quot;new List() {}&quot;&lt;/code>.
+ * &lt;p>
+ * The following additional context information is available
+ * for this kind of completion proposal at little extra cost:
+ * &lt;ul>
+ * &lt;li>{@link #getDeclarationSignature()} -
+ * the type signature of the type being implemented or subclassed
+ * &lt;/li>
+ * &lt;li>{@link #getDeclarationKey()} -
+ * the type unique key of the type being implemented or subclassed
+ * &lt;/li>
+ * &lt;li>{@link #getSignature()} -
+ * the method signature of the constructor that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getKey()} -
+ * the method unique key of the constructor that is referenced
+ * if the declaring type is not an interface
+ * &lt;/li>
+ * &lt;li>{@link #getFlags()} -
+ * the modifiers flags of the constructor that is referenced
+ * &lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ *
+ * @see #getKind()
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jnQZNGEMEeCdEc4VzBeWeQ" name="FIELD_REF" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jnQZNWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Completion is a reference to a field.
+ * This kind of completion might occur in a context like
+ * &lt;code>&quot;this.ref^ = 0;&quot;&lt;/code> and complete it to
+ * &lt;code>&quot;this.refcount = 0;&quot;&lt;/code>.
+ * &lt;p>
+ * The following additional context information is available
+ * for this kind of completion proposal at little extra cost:
+ * &lt;ul>
+ * &lt;li>{@link #getDeclarationSignature()} -
+ * the type signature of the type that declares the field that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getFlags()} -
+ * the modifiers flags (including ACC_ENUM) of the field that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getName()} -
+ * the simple name of the field that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getSignature()} -
+ * the type signature of the field's type (as opposed to the
+ * signature of the type in which the referenced field
+ * is declared)
+ * &lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ *
+ * @see #getKind()
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jnQZNmEMEeCdEc4VzBeWeQ" name="KEYWORD" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jnQZN2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Completion is a keyword.
+ * This kind of completion might occur in a context like
+ * &lt;code>&quot;public cl^ Foo {}&quot;&lt;/code> and complete it to
+ * &lt;code>&quot;public class Foo {}&quot;&lt;/code>.
+ * &lt;p>
+ * The following additional context information is available
+ * for this kind of completion proposal at little extra cost:
+ * &lt;ul>
+ * &lt;li>{@link #getName()} -
+ * the keyword token
+ * &lt;/li>
+ * &lt;li>{@link #getFlags()} -
+ * the corresponding modifier flags if the keyword is a modifier
+ * &lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ *
+ * @see #getKind()
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jnaKMGEMEeCdEc4VzBeWeQ" name="LABEL_REF" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jnaKMWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Completion is a reference to a label.
+ * This kind of completion might occur in a context like
+ * &lt;code>&quot;break lo^;&quot;&lt;/code> and complete it to
+ * &lt;code>&quot;break loop;&quot;&lt;/code>.
+ * &lt;p>
+ * The following additional context information is available
+ * for this kind of completion proposal at little extra cost:
+ * &lt;ul>
+ * &lt;li>{@link #getName()} -
+ * the simple name of the label that is referenced
+ * &lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ *
+ * @see #getKind()
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jnaKMmEMEeCdEc4VzBeWeQ" name="LOCAL_VARIABLE_REF" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jnaKM2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Completion is a reference to a local variable.
+ * This kind of completion might occur in a context like
+ * &lt;code>&quot;ke^ = 4;&quot;&lt;/code> and complete it to
+ * &lt;code>&quot;keys = 4;&quot;&lt;/code>.
+ * &lt;p>
+ * The following additional context information is available
+ * for this kind of completion proposal at little extra cost:
+ * &lt;ul>
+ * &lt;li>{@link #getFlags()} -
+ * the modifiers flags of the local variable that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getName()} -
+ * the simple name of the local variable that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getSignature()} -
+ * the type signature of the local variable's type
+ * &lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ *
+ * @see #getKind()
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jnaKNGEMEeCdEc4VzBeWeQ" name="METHOD_REF" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jnaKNWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Completion is a reference to a method.
+ * This kind of completion might occur in a context like
+ * &lt;code>&quot;System.out.pr^();&quot;&lt;/code> and complete it to
+ * &lt;code>&quot;&quot;System.out.println();&quot;&lt;/code>.
+ * &lt;p>
+ * The following additional context information is available
+ * for this kind of completion proposal at little extra cost:
+ * &lt;ul>
+ * &lt;li>{@link #getDeclarationSignature()} -
+ * the type signature of the type that declares the method that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getFlags()} -
+ * the modifiers flags of the method that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getName()} -
+ * the simple name of the method that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getSignature()} -
+ * the method signature of the method that is referenced
+ * &lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ *
+ * @see #getKind()
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jnaKNmEMEeCdEc4VzBeWeQ" name="METHOD_DECLARATION" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jnjUIGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Completion is a declaration of a method.
+ * This kind of completion might occur in a context like
+ * &lt;code>&quot;new List() {si^};&quot;&lt;/code> and complete it to
+ * &lt;code>&quot;new List() {public int size() {} };&quot;&lt;/code>.
+ * &lt;p>
+ * The following additional context information is available
+ * for this kind of completion proposal at little extra cost:
+ * &lt;ul>
+ * &lt;li>{@link #getDeclarationSignature()} -
+ * the type signature of the type that declares the
+ * method that is being overridden or implemented
+ * &lt;/li>
+ * &lt;li>{@link #getDeclarationKey()} -
+ * the unique of the type that declares the
+ * method that is being overridden or implemented
+ * &lt;/li>
+ * &lt;li>{@link #getName()} -
+ * the simple name of the method that is being overridden
+ * or implemented
+ * &lt;/li>
+ * &lt;li>{@link #getSignature()} -
+ * the method signature of the method that is being
+ * overridden or implemented
+ * &lt;/li>
+ * &lt;li>{@link #getKey()} -
+ * the method unique key of the method that is being
+ * overridden or implemented
+ * &lt;/li>
+ * &lt;li>{@link #getFlags()} -
+ * the modifiers flags of the method that is being
+ * overridden or implemented
+ * &lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ *
+ * @see #getKind()
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jnjUIWEMEeCdEc4VzBeWeQ" name="PACKAGE_REF" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jnjUImEMEeCdEc4VzBeWeQ">
+ <body>
+ * Completion is a reference to a package.
+ * This kind of completion might occur in a context like
+ * &lt;code>&quot;import java.u^.*;&quot;&lt;/code> and complete it to
+ * &lt;code>&quot;import java.util.*;&quot;&lt;/code>.
+ * &lt;p>
+ * The following additional context information is available
+ * for this kind of completion proposal at little extra cost:
+ * &lt;ul>
+ * &lt;li>{@link #getDeclarationSignature()} -
+ * the dot-based package name of the package that is referenced
+ * &lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ *
+ * @see #getKind()
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jnjUI2EMEeCdEc4VzBeWeQ" name="TYPE_REF" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jnjUJGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Completion is a reference to a type. Any kind of type
+ * is allowed, including primitive types, reference types,
+ * array types, parameterized types, and type variables.
+ * This kind of completion might occur in a context like
+ * &lt;code>&quot;public static Str^ key;&quot;&lt;/code> and complete it to
+ * &lt;code>&quot;public static String key;&quot;&lt;/code>.
+ * &lt;p>
+ * The following additional context information is available
+ * for this kind of completion proposal at little extra cost:
+ * &lt;ul>
+ * &lt;li>{@link #getDeclarationSignature()} -
+ * the dot-based package name of the package that contains
+ * the type that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getSignature()} -
+ * the type signature of the type that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getFlags()} -
+ * the modifiers flags (including Flags.AccInterface, AccEnum,
+ * and AccAnnotation) of the type that is referenced
+ * &lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ *
+ * @see #getKind()
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jnjUJWEMEeCdEc4VzBeWeQ" name="VARIABLE_DECLARATION" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jnjUJmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Completion is a declaration of a variable (locals, parameters,
+ * fields, etc.).
+ * &lt;p>
+ * The following additional context information is available
+ * for this kind of completion proposal at little extra cost:
+ * &lt;ul>
+ * &lt;li>{@link #getName()} -
+ * the simple name of the variable being declared
+ * &lt;/li>
+ * &lt;li>{@link #getSignature()} -
+ * the type signature of the type of the variable
+ * being declared
+ * &lt;/li>
+ * &lt;li>{@link #getFlags()} -
+ * the modifiers flags of the variable being declared
+ * &lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ * @see #getKind()
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jnjUJ2EMEeCdEc4VzBeWeQ" name="POTENTIAL_METHOD_DECLARATION" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jnjUKGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Completion is a declaration of a new potential method.
+ * This kind of completion might occur in a context like
+ * &lt;code>&quot;new List() {si^};&quot;&lt;/code> and complete it to
+ * &lt;code>&quot;new List() {public int si() {} };&quot;&lt;/code>.
+ * &lt;p>
+ * The following additional context information is available
+ * for this kind of completion proposal at little extra cost:
+ * &lt;ul>
+ * &lt;li>{@link #getDeclarationSignature()} -
+ * the type signature of the type that declares the
+ * method that is being created
+ * &lt;/li>
+ * &lt;li>{@link #getName()} -
+ * the simple name of the method that is being created
+ * &lt;/li>
+ * &lt;li>{@link #getSignature()} -
+ * the method signature of the method that is being
+ * created
+ * &lt;/li>
+ * &lt;li>{@link #getFlags()} -
+ * the modifiers flags of the method that is being
+ * created
+ * &lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ *
+ * @see #getKind()
+ * @since 3.1
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jn2PEGEMEeCdEc4VzBeWeQ" name="METHOD_NAME_REFERENCE" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jn2PEWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Completion is a reference to a method name.
+ * This kind of completion might occur in a context like
+ * &lt;code>&quot;import p.X.fo^&quot;&lt;/code> and complete it to
+ * &lt;code>&quot;import p.X.foo;&quot;&lt;/code>.
+ * &lt;p>
+ * The following additional context information is available
+ * for this kind of completion proposal at little extra cost:
+ * &lt;ul>
+ * &lt;li>{@link #getDeclarationSignature()} -
+ * the type signature of the type that declares the method that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getFlags()} -
+ * the modifiers flags of the method that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getName()} -
+ * the simple name of the method that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getSignature()} -
+ * the method signature of the method that is referenced
+ * &lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ *
+ * @see #getKind()
+ * @since 3.1
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jn2PEmEMEeCdEc4VzBeWeQ" name="ANNOTATION_ATTRIBUTE_REF" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jn2PE2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Completion is a reference to annotation's attribute.
+ * This kind of completion might occur in a context like
+ * &lt;code>&quot;@Annot(attr^=value)&quot;&lt;/code> and complete it to
+ * &lt;code>&quot;@Annot(attribute^=value)&quot;&lt;/code>.
+ * &lt;p>
+ * The following additional context information is available
+ * for this kind of completion proposal at little extra cost:
+ * &lt;ul>
+ * &lt;li>{@link #getDeclarationSignature()} -
+ * the type signature of the annotation that declares the attribute that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getFlags()} -
+ * the modifiers flags of the attribute that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getName()} -
+ * the simple name of the attribute that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getSignature()} -
+ * the type signature of the attribute's type (as opposed to the
+ * signature of the type in which the referenced attribute
+ * is declared)
+ * &lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ *
+ * @see #getKind()
+ * @since 3.1
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jn2PFGEMEeCdEc4VzBeWeQ" name="JAVADOC_FIELD_REF" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jn2PFWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Completion is a link reference to a field in a javadoc text.
+ * This kind of completion might occur in a context like
+ * &lt;code>&quot; * blabla System.o^ blabla&quot;&lt;/code> and complete it to
+ * &lt;code>&quot; * blabla {&amp;#64;link System#out } blabla&quot;&lt;/code>.
+ * &lt;p>
+ * The following additional context information is available
+ * for this kind of completion proposal at little extra cost:
+ * &lt;ul>
+ * &lt;li>{@link #getDeclarationSignature()} -
+ * the type signature of the type that declares the field that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getFlags()} -
+ * the modifiers flags (including ACC_ENUM) of the field that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getName()} -
+ * the simple name of the field that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getSignature()} -
+ * the type signature of the field's type (as opposed to the
+ * signature of the type in which the referenced field
+ * is declared)
+ * &lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ *
+ * @see #getKind()
+ * @since 3.2
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jn2PFmEMEeCdEc4VzBeWeQ" name="JAVADOC_METHOD_REF" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jn2PF2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Completion is a link reference to a method in a javadoc text.
+ * This kind of completion might occur in a context like
+ * &lt;code>&quot; * blabla Runtime#get^ blabla&quot;&lt;/code> and complete it to
+ * &lt;code>&quot; * blabla {&amp;#64;link Runtime#getRuntime() }&quot;&lt;/code>.
+ * &lt;p>
+ * The following additional context information is available
+ * for this kind of completion proposal at little extra cost:
+ * &lt;ul>
+ * &lt;li>{@link #getDeclarationSignature()} -
+ * the type signature of the type that declares the method that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getFlags()} -
+ * the modifiers flags of the method that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getName()} -
+ * the simple name of the method that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getSignature()} -
+ * the method signature of the method that is referenced
+ * &lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ *
+ * @see #getKind()
+ * @since 3.2
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jn2PGGEMEeCdEc4VzBeWeQ" name="JAVADOC_TYPE_REF" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_joAAEGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Completion is a link reference to a type in a javadoc text.
+ * Any kind of type is allowed, including primitive types, reference types,
+ * array types, parameterized types, and type variables.
+ * This kind of completion might occur in a context like
+ * &lt;code>&quot; * blabla Str^ blabla&quot;&lt;/code> and complete it to
+ * &lt;code>&quot; * blabla {&amp;#64;link String } blabla&quot;&lt;/code>.
+ * &lt;p>
+ * The following additional context information is available
+ * for this kind of completion proposal at little extra cost:
+ * &lt;ul>
+ * &lt;li>{@link #getDeclarationSignature()} -
+ * the dot-based package name of the package that contains
+ * the type that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getSignature()} -
+ * the type signature of the type that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getFlags()} -
+ * the modifiers flags (including Flags.AccInterface, AccEnum,
+ * and AccAnnotation) of the type that is referenced
+ * &lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ *
+ * @see #getKind()
+ * @since 3.2
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_joAAEWEMEeCdEc4VzBeWeQ" name="JAVADOC_VALUE_REF" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_joAAEmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Completion is a value reference to a static field in a javadoc text.
+ * This kind of completion might occur in a context like
+ * &lt;code>&quot; * blabla System.o^ blabla&quot;&lt;/code> and complete it to
+ * &lt;code>&quot; * blabla {&amp;#64;value System#out } blabla&quot;&lt;/code>.
+ * &lt;p>
+ * The following additional context information is available
+ * for this kind of completion proposal at little extra cost:
+ * &lt;ul>
+ * &lt;li>{@link #getDeclarationSignature()} -
+ * the type signature of the type that declares the field that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getFlags()} -
+ * the modifiers flags (including ACC_ENUM) of the field that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getName()} -
+ * the simple name of the field that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getSignature()} -
+ * the type signature of the field's type (as opposed to the
+ * signature of the type in which the referenced field
+ * is declared)
+ * &lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ *
+ * @see #getKind()
+ * @since 3.2
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_joAAE2EMEeCdEc4VzBeWeQ" name="JAVADOC_PARAM_REF" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_joAAFGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Completion is a method argument or a class/method type parameter
+ * in javadoc param tag.
+ * This kind of completion might occur in a context like
+ * &lt;code>&quot; * @param arg^ blabla&quot;&lt;/code> and complete it to
+ * &lt;code>&quot; * @param argument blabla&quot;&lt;/code>.
+ * or
+ * &lt;code>&quot; * @param &amp;lt;T^ blabla&quot;&lt;/code> and complete it to
+ * &lt;code>&quot; * @param &amp;lt;TT&amp;gt; blabla&quot;&lt;/code>.
+ * &lt;p>
+ * The following additional context information is available
+ * for this kind of completion proposal at little extra cost:
+ * &lt;ul>
+ * &lt;li>{@link #getDeclarationSignature()} -
+ * the type signature of the type that declares the field that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getFlags()} -
+ * the modifiers flags (including ACC_ENUM) of the field that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getName()} -
+ * the simple name of the field that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getSignature()} -
+ * the type signature of the field's type (as opposed to the
+ * signature of the type in which the referenced field
+ * is declared)
+ * &lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ *
+ * @see #getKind()
+ * @since 3.2
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_joAAFWEMEeCdEc4VzBeWeQ" name="JAVADOC_BLOCK_TAG" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_joAAFmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Completion is a javadoc block tag.
+ * This kind of completion might occur in a context like
+ * &lt;code>&quot; * @s^ blabla&quot;&lt;/code> and complete it to
+ * &lt;code>&quot; * @see blabla&quot;&lt;/code>.
+ * &lt;p>
+ * The following additional context information is available
+ * for this kind of completion proposal at little extra cost:
+ * &lt;ul>
+ * &lt;li>{@link #getDeclarationSignature()} -
+ * the type signature of the type that declares the field that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getFlags()} -
+ * the modifiers flags (including ACC_ENUM) of the field that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getName()} -
+ * the simple name of the field that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getSignature()} -
+ * the type signature of the field's type (as opposed to the
+ * signature of the type in which the referenced field
+ * is declared)
+ * &lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ *
+ * @see #getKind()
+ * @since 3.2
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_joAAF2EMEeCdEc4VzBeWeQ" name="JAVADOC_INLINE_TAG" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_joAAGGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Completion is a javadoc inline tag.
+ * This kind of completion might occur in a context like
+ * &lt;code>&quot; * Insert @l^ Object&quot;&lt;/code> and complete it to
+ * &lt;code>&quot; * Insert {&amp;#64;link Object }&quot;&lt;/code>.
+ * &lt;p>
+ * The following additional context information is available
+ * for this kind of completion proposal at little extra cost:
+ * &lt;ul>
+ * &lt;li>{@link #getDeclarationSignature()} -
+ * the type signature of the type that declares the field that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getFlags()} -
+ * the modifiers flags (including ACC_ENUM) of the field that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getName()} -
+ * the simple name of the field that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getSignature()} -
+ * the type signature of the field's type (as opposed to the
+ * signature of the type in which the referenced field
+ * is declared)
+ * &lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ *
+ * @see #getKind()
+ * @since 3.2
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_joAAGWEMEeCdEc4VzBeWeQ" name="FIELD_IMPORT" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_joAAGmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Completion is an import of reference to a static field.
+ * &lt;p>
+ * The following additional context information is available
+ * for this kind of completion proposal at little extra cost:
+ * &lt;ul>
+ * &lt;li>{@link #getDeclarationSignature()} -
+ * the type signature of the type that declares the field that is imported
+ * &lt;/li>
+ * &lt;li>{@link #getFlags()} -
+ * the modifiers flags (including ACC_ENUM) of the field that is imported
+ * &lt;/li>
+ * &lt;li>{@link #getName()} -
+ * the simple name of the field that is imported
+ * &lt;/li>
+ * &lt;li>{@link #getSignature()} -
+ * the type signature of the field's type (as opposed to the
+ * signature of the type in which the referenced field
+ * is declared)
+ * &lt;/li>
+ * &lt;li>{@link #getAdditionalFlags()} -
+ * the completion flags (including ComletionFlags.StaticImport)
+ * of the proposed import
+ * &lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ *
+ * @see #getKind()
+ *
+ * @since 3.3
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_joAAG2EMEeCdEc4VzBeWeQ" name="METHOD_IMPORT" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_joJxEGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Completion is an import of reference to a static method.
+ * &lt;p>
+ * The following additional context information is available
+ * for this kind of completion proposal at little extra cost:
+ * &lt;ul>
+ * &lt;li>{@link #getDeclarationSignature()} -
+ * the type signature of the type that declares the method that is imported
+ * &lt;/li>
+ * &lt;li>{@link #getFlags()} -
+ * the modifiers flags of the method that is imported
+ * &lt;/li>
+ * &lt;li>{@link #getName()} -
+ * the simple name of the method that is imported
+ * &lt;/li>
+ * &lt;li>{@link #getSignature()} -
+ * the method signature of the method that is imported
+ * &lt;/li>
+ * &lt;li>{@link #getAdditionalFlags()} -
+ * the completion flags (including ComletionFlags.StaticImport)
+ * of the proposed import
+ * &lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ *
+ * @see #getKind()
+ *
+ * @since 3.3
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_joJxEWEMEeCdEc4VzBeWeQ" name="TYPE_IMPORT" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_joJxEmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Completion is an import of reference to a type.
+ * Only reference to reference types are allowed.
+ * &lt;p>
+ * The following additional context information is available
+ * for this kind of completion proposal at little extra cost:
+ * &lt;ul>
+ * &lt;li>{@link #getDeclarationSignature()} -
+ * the dot-based package name of the package that contains
+ * the type that is imported
+ * &lt;/li>
+ * &lt;li>{@link #getSignature()} -
+ * the type signature of the type that is imported
+ * &lt;/li>
+ * &lt;li>{@link #getFlags()} -
+ * the modifiers flags (including Flags.AccInterface, AccEnum,
+ * and AccAnnotation) of the type that is imported
+ * &lt;/li>
+ * &lt;li>{@link #getAdditionalFlags()} -
+ * the completion flags (including ComletionFlags.StaticImport)
+ * of the proposed import
+ * &lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ *
+ * @see #getKind()
+ *
+ * @since 3.3
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_joJxE2EMEeCdEc4VzBeWeQ" name="METHOD_REF_WITH_CASTED_RECEIVER" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_joJxFGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Completion is a reference to a method with a casted receiver.
+ * This kind of completion might occur in a context like
+ * &lt;code>&quot;receiver.fo^();&quot;&lt;/code> and complete it to
+ * &lt;code>&quot;&quot;((X)receiver).foo();&quot;&lt;/code>.
+ * &lt;p>
+ * The following additional context information is available
+ * for this kind of completion proposal at little extra cost:
+ * &lt;ul>
+ * &lt;li>{@link #getDeclarationSignature()} -
+ * the type signature of the type that declares the method that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getFlags()} -
+ * the modifiers flags of the method that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getName()} -
+ * the simple name of the method that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getReceiverSignature()} -
+ * the type signature of the receiver type. It's the type of the cast expression.
+ * &lt;/li>
+ * &lt;li>{@link #getSignature()} -
+ * the method signature of the method that is referenced
+ * &lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ *
+ * @see #getKind()
+ *
+ * @since 3.4
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_joJxFWEMEeCdEc4VzBeWeQ" name="FIELD_REF_WITH_CASTED_RECEIVER" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_joJxFmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Completion is a reference to a field with a casted receiver.
+ * This kind of completion might occur in a context like
+ * &lt;code>&quot;recevier.ref^ = 0;&quot;&lt;/code> and complete it to
+ * &lt;code>&quot;((X)receiver).refcount = 0;&quot;&lt;/code>.
+ * &lt;p>
+ * The following additional context information is available
+ * for this kind of completion proposal at little extra cost:
+ * &lt;ul>
+ * &lt;li>{@link #getDeclarationSignature()} -
+ * the type signature of the type that declares the field that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getFlags()} -
+ * the modifiers flags (including ACC_ENUM) of the field that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getName()} -
+ * the simple name of the field that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getReceiverSignature()} -
+ * the type signature of the receiver type. It's the type of the cast expression.
+ * &lt;/li>
+ * &lt;li>{@link #getSignature()} -
+ * the type signature of the field's type (as opposed to the
+ * signature of the type in which the referenced field
+ * is declared)
+ * &lt;/li>
+ *
+ * &lt;/ul>
+ * &lt;/p>
+ *
+ * @see #getKind()
+ *
+ * @since 3.4
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_joJxF2EMEeCdEc4VzBeWeQ" name="CONSTRUCTOR_INVOCATION" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_joJxGGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Completion is a reference to a constructor.
+ * This kind of completion might occur in a context like
+ * &lt;code>&quot;new Lis&quot;&lt;/code> and complete it to
+ * &lt;code>&quot;new List();&quot;&lt;/code> if List is a class that is not abstract.
+ * &lt;p>
+ * The following additional context information is available
+ * for this kind of completion proposal at little extra cost:
+ * &lt;ul>
+ * &lt;li>{@link #getDeclarationSignature()} -
+ * the type signature of the type that declares the constructor that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getFlags()} -
+ * the modifiers flags of the constructor that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getName()} -
+ * the simple name of the constructor that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getSignature()} -
+ * the method signature of the constructor that is referenced
+ * &lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ * &lt;p>
+ * This kind of proposal could require a long computation, so they are computed only if completion operation is called with a {@link IProgressMonitor}
+ * (e.g. {@link ICodeAssist#codeComplete(int, CompletionRequestor, IProgressMonitor)}).&lt;br>
+ * This kind of proposal is always is only proposals with a {@link #TYPE_REF} required proposal, so this kind of required proposal must be allowed:
+ * &lt;code>requestor.setAllowsRequiredProposals(CONSTRUCTOR_INVOCATION, TYPE_REF, true)&lt;/code>.
+ * &lt;/p>
+ *
+ * @see #getKind()
+ * @see CompletionRequestor#setAllowsRequiredProposals(int, int, boolean)
+ *
+ * @since 3.5
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_joJxGWEMEeCdEc4VzBeWeQ" name="ANONYMOUS_CLASS_CONSTRUCTOR_INVOCATION" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_joJxGmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Completion is a reference of a constructor of an anonymous class.
+ * This kind of completion might occur in a context like
+ * &lt;code>&quot;new Lis^;&quot;&lt;/code> and complete it to
+ * &lt;code>&quot;new List() {}&quot;&lt;/code> if List is an interface or abstract class.
+ * &lt;p>
+ * The following additional context information is available
+ * for this kind of completion proposal at little extra cost:
+ * &lt;ul>
+ * &lt;li>{@link #getDeclarationSignature()} -
+ * the type signature of the type being implemented or subclassed
+ * &lt;/li>
+ * &lt;li>{@link #getDeclarationKey()} -
+ * the type unique key of the type being implemented or subclassed
+ * &lt;/li>
+ * &lt;li>{@link #getSignature()} -
+ * the method signature of the constructor that is referenced
+ * &lt;/li>
+ * &lt;li>{@link #getKey()} -
+ * the method unique key of the constructor that is referenced
+ * if the declaring type is not an interface
+ * &lt;/li>
+ * &lt;li>{@link #getFlags()} -
+ * the modifiers flags of the constructor that is referenced
+ * &lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ * &lt;p>
+ * This kind of proposal could require a long computation, so they are computed only if completion operation is called with a {@link IProgressMonitor}
+ * (e.g. {@link ICodeAssist#codeComplete(int, CompletionRequestor, IProgressMonitor)})&lt;br>
+ * This kind of proposal is always is only proposals with a {@link #TYPE_REF} required proposal, so this kind of required proposal must be allowed:
+ * &lt;code>requestor.setAllowsRequiredProposals(CONSTRUCTOR_INVOCATION, TYPE_REF, true)&lt;/code>.
+ * &lt;/p>
+ *
+ * @see #getKind()
+ * @see CompletionRequestor#setAllowsRequiredProposals(int, int, boolean)
+ *
+ * @since 3.5
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_joJxG2EMEeCdEc4VzBeWeQ" name="FIRST_KIND" visibility="protected" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_joJxHGEMEeCdEc4VzBeWeQ">
+ <body>
+ * First valid completion kind.
+ *
+ * @since 3.1
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_joS7AGEMEeCdEc4VzBeWeQ" name="LAST_KIND" visibility="protected" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_joS7AWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Last valid completion kind.
+ *
+ * @since 3.1
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_joS7AmEMEeCdEc4VzBeWeQ" name="create" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_joS7A2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Creates a basic completion proposal. All instance
+ * field have plausible default values unless otherwise noted.
+ * &lt;p>
+ * Note that the constructors for this class are internal to the
+ * Java model implementation. Clients cannot directly create
+ * CompletionProposal objects.
+ * &lt;/p>
+ *
+ * @param kind one of the kind constants declared on this class
+ * @param completionOffset original offset of code completion request
+ * @return a new completion proposal
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_joS7BGEMEeCdEc4VzBeWeQ" type="_jnQZMGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_joS7BWEMEeCdEc4VzBeWeQ" name="kind" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_joS7BmEMEeCdEc4VzBeWeQ" name="completionOffset" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jocsAGEMEeCdEc4VzBeWeQ" name="getAdditionalFlags" visibility="public">
+ <ownedComment xmi:id="_jocsAWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the completion flags relevant in the context, or
+ * &lt;code>CompletionFlags.Default&lt;/code> if none.
+ * &lt;p>
+ * This field is available for the following kinds of
+ * completion proposals:
+ * &lt;ul>
+ * &lt;li>&lt;code>FIELD_IMPORT&lt;/code> - completion flags
+ * of the attribute that is referenced. Completion flags for
+ * this proposal kind can only include &lt;code>CompletionFlags.StaticImport&lt;/code>&lt;/li>
+ * &lt;li>&lt;code>METHOD_IMPORT&lt;/code> - completion flags
+ * of the attribute that is referenced. Completion flags for
+ * this proposal kind can only include &lt;code>CompletionFlags.StaticImport&lt;/code>&lt;/li>
+ * &lt;li>&lt;code>TYPE_IMPORT&lt;/code> - completion flags
+ * of the attribute that is referenced. Completion flags for
+ * this proposal kind can only include &lt;code>CompletionFlags.StaticImport&lt;/code>&lt;/li>
+ * &lt;/ul>
+ * For other kinds of completion proposals, this method returns
+ * &lt;code>CompletionFlags.Default&lt;/code>.
+ * &lt;/p>
+ *
+ * @return the completion flags, or
+ * &lt;code>CompletionFlags.Default&lt;/code> if none
+ * @see CompletionFlags
+ *
+ * @since 3.3
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jocsAmEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jocsA2EMEeCdEc4VzBeWeQ" name="setAdditionalFlags" visibility="public">
+ <ownedComment xmi:id="_jocsBGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Sets the completion flags relevant in the context.
+ * &lt;p>
+ * If not set, defaults to none.
+ * &lt;/p>
+ * &lt;p>
+ * The completion engine creates instances of this class and sets
+ * its properties; this method is not intended to be used by other clients.
+ * &lt;/p>
+ *
+ * @param additionalFlags the completion flags, or
+ * &lt;code>CompletionFlags.Default&lt;/code> if none
+ *
+ * @since 3.3
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jocsBWEMEeCdEc4VzBeWeQ" name="additionalFlags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jocsBmEMEeCdEc4VzBeWeQ" name="getKind" visibility="public">
+ <ownedComment xmi:id="_jocsB2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the kind of completion being proposed.
+ * &lt;p>
+ * The set of different kinds of completion proposals is
+ * expected to change over time. It is strongly recommended
+ * that clients do &lt;b>not&lt;/b> assume that the kind is one of the
+ * ones they know about, and code defensively for the
+ * possibility of unexpected future growth.
+ * &lt;/p>
+ *
+ * @return the kind; one of the kind constants
+ * declared on this class, or possibly a kind unknown
+ * to the caller
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jocsCGEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jocsCWEMEeCdEc4VzBeWeQ" name="getCompletionLocation" visibility="public">
+ <ownedParameter xmi:id="_jocsCmEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jocsC2EMEeCdEc4VzBeWeQ" name="getTokenStart" visibility="public">
+ <ownedComment xmi:id="_jocsDGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the character index of the start of the
+ * subrange in the source file buffer containing the
+ * relevant token being completed. This
+ * token is either the identifier or Java language keyword
+ * under, or immediately preceding, the original request
+ * offset. If the original request offset is not within
+ * or immediately after an identifier or keyword, then the
+ * position returned is original request offset and the
+ * token range is empty.
+ *
+ * @return character index of token start position (inclusive)
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jocsDWEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jocsDmEMEeCdEc4VzBeWeQ" name="getTokenEnd" visibility="public">
+ <ownedComment xmi:id="_jocsD2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the character index of the end (exclusive) of the subrange
+ * in the source file buffer containing the
+ * relevant token. When there is no relevant token, the
+ * range is empty
+ * (&lt;code>getEndToken() == getStartToken()&lt;/code>).
+ *
+ * @return character index of token end position (exclusive)
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jocsEGEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jocsEWEMEeCdEc4VzBeWeQ" name="setTokenRange" visibility="public">
+ <ownedComment xmi:id="_jocsEmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Sets the character indices of the subrange in the
+ * source file buffer containing the relevant token being
+ * completed. This token is either the identifier or
+ * Java language keyword under, or immediately preceding,
+ * the original request offset. If the original request
+ * offset is not within or immediately after an identifier
+ * or keyword, then the source range begins at original
+ * request offset and is empty.
+ * &lt;p>
+ * If not set, defaults to empty subrange at [0,0).
+ * &lt;/p>
+ *
+ * @param startIndex character index of token start position (inclusive)
+ * @param endIndex character index of token end position (exclusive)
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jocsE2EMEeCdEc4VzBeWeQ" name="startIndex" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_jocsFGEMEeCdEc4VzBeWeQ" name="endIndex" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jomdAGEMEeCdEc4VzBeWeQ" name="getCompletion" visibility="public">
+ <ownedComment xmi:id="_jomdAWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the proposed sequence of characters to insert into the
+ * source file buffer, replacing the characters at the specified
+ * source range. The string can be arbitrary; for example, it might
+ * include not only the name of a method but a set of parentheses.
+ * &lt;p>
+ * The client must not modify the array returned.
+ * &lt;/p>
+ *
+ * @return the completion string
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jomdAmEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jomdBGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jomdA2EMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jomdBWEMEeCdEc4VzBeWeQ" name="setCompletion" visibility="public">
+ <ownedComment xmi:id="_jomdBmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Sets the proposed sequence of characters to insert into the
+ * source file buffer, replacing the characters at the specified
+ * source range. The string can be arbitrary; for example, it might
+ * include not only the name of a method but a set of parentheses.
+ * &lt;p>
+ * If not set, defaults to an empty character array.
+ * &lt;/p>
+ * &lt;p>
+ * The completion engine creates instances of this class and sets
+ * its properties; this method is not intended to be used by other clients.
+ * &lt;/p>
+ *
+ * @param completion the completion string
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jomdB2EMEeCdEc4VzBeWeQ" name="completion" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jomdCWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jomdCGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jomdCmEMEeCdEc4VzBeWeQ" name="getReplaceStart" visibility="public">
+ <ownedComment xmi:id="_jomdC2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the character index of the start of the
+ * subrange in the source file buffer to be replaced
+ * by the completion string. If the subrange is empty
+ * (&lt;code>getReplaceEnd() == getReplaceStart()&lt;/code>),
+ * the completion string is to be inserted at this
+ * index.
+ * &lt;p>
+ * Note that while the token subrange is precisely
+ * specified, the replacement range is loosely
+ * constrained and may not bear any direct relation
+ * to the original request offset. For example,
+ * it would be possible for a type completion to
+ * propose inserting an import declaration at the
+ * top of the compilation unit; or the completion
+ * might include trailing parentheses and
+ * punctuation for a method completion.
+ * &lt;/p>
+ *
+ * @return replacement start position (inclusive)
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jomdDGEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jomdDWEMEeCdEc4VzBeWeQ" name="getReplaceEnd" visibility="public">
+ <ownedComment xmi:id="_jomdDmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the character index of the end of the
+ * subrange in the source file buffer to be replaced
+ * by the completion string. If the subrange is empty
+ * (&lt;code>getReplaceEnd() == getReplaceStart()&lt;/code>),
+ * the completion string is to be inserted at this
+ * index.
+ *
+ * @return replacement end position (exclusive)
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jomdD2EMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jovm8GEMEeCdEc4VzBeWeQ" name="setReplaceRange" visibility="public">
+ <ownedComment xmi:id="_jovm8WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Sets the character indices of the subrange in the
+ * source file buffer to be replaced by the completion
+ * string. If the subrange is empty
+ * (&lt;code>startIndex == endIndex&lt;/code>),
+ * the completion string is to be inserted at this
+ * index.
+ * &lt;p>
+ * If not set, defaults to empty subrange at [0,0).
+ * &lt;/p>
+ * &lt;p>
+ * The completion engine creates instances of this class and sets
+ * its properties; this method is not intended to be used by other clients.
+ * &lt;/p>
+ *
+ * @param startIndex character index of replacement start position (inclusive)
+ * @param endIndex character index of replacement end position (exclusive)
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jovm8mEMEeCdEc4VzBeWeQ" name="startIndex" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_jovm82EMEeCdEc4VzBeWeQ" name="endIndex" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jovm9GEMEeCdEc4VzBeWeQ" name="getRelevance" visibility="public">
+ <ownedComment xmi:id="_jovm9WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the relative relevance rating of this proposal.
+ *
+ * @return relevance rating of this proposal; ratings are positive; higher means better
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jovm9mEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jovm92EMEeCdEc4VzBeWeQ" name="setRelevance" visibility="public">
+ <ownedComment xmi:id="_jovm-GEMEeCdEc4VzBeWeQ">
+ <body>
+ * Sets the relative relevance rating of this proposal.
+ * &lt;p>
+ * If not set, defaults to the lowest possible rating (1).
+ * &lt;/p>
+ * &lt;p>
+ * The completion engine creates instances of this class and sets
+ * its properties; this method is not intended to be used by other clients.
+ * &lt;/p>
+ *
+ * @param rating relevance rating of this proposal; ratings are positive; higher means better
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jovm-WEMEeCdEc4VzBeWeQ" name="rating" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jovm-mEMEeCdEc4VzBeWeQ" name="getDeclarationSignature" visibility="public">
+ <ownedComment xmi:id="_jovm-2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the type signature or package name of the relevant
+ * declaration in the context, or &lt;code>null&lt;/code> if none.
+ * &lt;p>
+ * This field is available for the following kinds of
+ * completion proposals:
+ * &lt;ul>
+ * &lt;li>&lt;code>ANNOTATION_ATTRIBUT_REF&lt;/code> - type signature
+ * of the annotation that declares the attribute that is referenced&lt;/li>
+ * &lt;li>&lt;code>ANONYMOUS_CLASS_DECLARATION&lt;/code> - type signature
+ * of the type that is being subclassed or implemented&lt;/li>
+ * &lt;li>&lt;code>FIELD_IMPORT&lt;/code> - type signature
+ * of the type that declares the field that is imported&lt;/li>
+ * &lt;li>&lt;code>FIELD_REF&lt;/code> - type signature
+ * of the type that declares the field that is referenced&lt;/li>
+ * &lt;li>&lt;code>FIELD_REF_WITH_CASTED_RECEIVER&lt;/code> - type signature
+ * of the type that declares the field that is referenced&lt;/li>
+ * &lt;li>&lt;code>METHOD_IMPORT&lt;/code> - type signature
+ * of the type that declares the method that is imported&lt;/li>
+ * &lt;li>&lt;code>METHOD_REF&lt;/code> - type signature
+ * of the type that declares the method that is referenced&lt;/li>
+ * &lt;li>&lt;code>METHOD_REF_WITH_CASTED_RECEIVER&lt;/code> - type signature
+ * of the type that declares the method that is referenced&lt;/li>
+ * &lt;li>&lt;code>METHOD_DECLARATION&lt;/code> - type signature
+ * of the type that declares the method that is being
+ * implemented or overridden&lt;/li>
+ * &lt;li>&lt;code>PACKAGE_REF&lt;/code> - dot-based package
+ * name of the package that is referenced&lt;/li>
+ * &lt;li>&lt;code>TYPE_IMPORT&lt;/code> - dot-based package
+ * name of the package containing the type that is imported&lt;/li>
+ * &lt;li>&lt;code>TYPE_REF&lt;/code> - dot-based package
+ * name of the package containing the type that is referenced&lt;/li>
+ * &lt;li>&lt;code>POTENTIAL_METHOD_DECLARATION&lt;/code> - type signature
+ * of the type that declares the method that is being created&lt;/li>
+ * &lt;/ul>
+ * For kinds of completion proposals, this method returns
+ * &lt;code>null&lt;/code>. Clients must not modify the array
+ * returned.
+ * &lt;/p>
+ *
+ * @return a type signature or a package name (depending
+ * on the kind of completion), or &lt;code>null&lt;/code> if none
+ * @see Signature
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jovm_GEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jovm_mEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jovm_WEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jo5X8GEMEeCdEc4VzBeWeQ" name="getDeclarationKey" visibility="public">
+ <ownedComment xmi:id="_jo5X8WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the key of the relevant
+ * declaration in the context, or &lt;code>null&lt;/code> if none.
+ * &lt;p>
+ * This field is available for the following kinds of
+ * completion proposals:
+ * &lt;ul>
+ * &lt;li>&lt;code>ANONYMOUS_CLASS_DECLARATION&lt;/code> - key
+ * of the type that is being subclassed or implemented&lt;/li>
+ * &lt;li>&lt;code>METHOD_DECLARATION&lt;/code> - key
+ * of the type that declares the method that is being
+ * implemented or overridden&lt;/li>
+ * &lt;/ul>
+ * For kinds of completion proposals, this method returns
+ * &lt;code>null&lt;/code>. Clients must not modify the array
+ * returned.
+ * &lt;/p>
+ *
+ * @return a key, or &lt;code>null&lt;/code> if none
+ * @see org.eclipse.jdt.core.dom.ASTParser#createASTs(ICompilationUnit[], String[], org.eclipse.jdt.core.dom.ASTRequestor, IProgressMonitor)
+ * @since 3.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jo5X8mEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jo5X9GEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jo5X82EMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jo5X9WEMEeCdEc4VzBeWeQ" name="setDeclarationSignature" visibility="public">
+ <ownedComment xmi:id="_jo5X9mEMEeCdEc4VzBeWeQ">
+ <body>
+ * Sets the type or package signature of the relevant
+ * declaration in the context, or &lt;code>null&lt;/code> if none.
+ * &lt;p>
+ * If not set, defaults to none.
+ * &lt;/p>
+ * &lt;p>
+ * The completion engine creates instances of this class and sets
+ * its properties; this method is not intended to be used by other clients.
+ * &lt;/p>
+ *
+ * @param signature the type or package signature, or
+ * &lt;code>null&lt;/code> if none
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jo5X92EMEeCdEc4VzBeWeQ" name="signature" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jo5X-WEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jo5X-GEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jo5X-mEMEeCdEc4VzBeWeQ" name="setDeclarationKey" visibility="public">
+ <ownedComment xmi:id="_jo5X-2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Sets the type or package key of the relevant
+ * declaration in the context, or &lt;code>null&lt;/code> if none.
+ * &lt;p>
+ * If not set, defaults to none.
+ * &lt;/p>
+ * &lt;p>
+ * The completion engine creates instances of this class and sets
+ * its properties; this method is not intended to be used by other clients.
+ * &lt;/p>
+ *
+ * @param key the type or package key, or
+ * &lt;code>null&lt;/code> if none
+ * @since 3.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jo5X_GEMEeCdEc4VzBeWeQ" name="key" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jpCh4GEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jo5X_WEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jpCh4WEMEeCdEc4VzBeWeQ" name="getName" visibility="public">
+ <ownedComment xmi:id="_jpCh4mEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the simple name of the method, field,
+ * member, or variable relevant in the context, or
+ * &lt;code>null&lt;/code> if none.
+ * &lt;p>
+ * This field is available for the following kinds of
+ * completion proposals:
+ * &lt;ul>
+ * &lt;li>&lt;code>ANNOTATION_ATTRIBUT_REF&lt;/code> - the name of the attribute&lt;/li>
+ * &lt;li>&lt;code>FIELD_IMPORT&lt;/code> - the name of the field&lt;/li>
+ * &lt;li>&lt;code>FIELD_REF&lt;/code> - the name of the field&lt;/li>
+ * &lt;li>&lt;code>FIELD_REF_WITH_CASTED_RECEIVER&lt;/code> - the name of the field&lt;/li>
+ * &lt;li>&lt;code>KEYWORD&lt;/code> - the keyword&lt;/li>
+ * &lt;li>&lt;code>LABEL_REF&lt;/code> - the name of the label&lt;/li>
+ * &lt;li>&lt;code>LOCAL_VARIABLE_REF&lt;/code> - the name of the local variable&lt;/li>
+ * &lt;li>&lt;code>METHOD_IMPORT&lt;/code> - the name of the method&lt;/li>
+ * &lt;li>&lt;code>METHOD_REF&lt;/code> - the name of the method (the type simple name for constructor)&lt;/li>
+ * &lt;li>&lt;code>METHOD_REF_WITH_CASTED_RECEIVER&lt;/code> - the name of the method&lt;/li>
+ * &lt;li>&lt;code>METHOD_DECLARATION&lt;/code> - the name of the method (the type simple name for constructor)&lt;/li>
+ * &lt;li>&lt;code>VARIABLE_DECLARATION&lt;/code> - the name of the variable&lt;/li>
+ * &lt;li>&lt;code>POTENTIAL_METHOD_DECLARATION&lt;/code> - the name of the method&lt;/li>
+ * &lt;/ul>
+ * For kinds of completion proposals, this method returns
+ * &lt;code>null&lt;/code>. Clients must not modify the array
+ * returned.
+ * &lt;/p>
+ *
+ * @return the keyword, field, method, local variable, or member
+ * name, or &lt;code>null&lt;/code> if none
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jpCh42EMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jpCh5WEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jpCh5GEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jpCh5mEMEeCdEc4VzBeWeQ" name="setName" visibility="public">
+ <ownedComment xmi:id="_jpCh52EMEeCdEc4VzBeWeQ">
+ <body>
+ * Sets the simple name of the method (type simple name for constructor), field,
+ * member, or variable relevant in the context, or
+ * &lt;code>null&lt;/code> if none.
+ * &lt;p>
+ * If not set, defaults to none.
+ * &lt;/p>
+ * &lt;p>
+ * The completion engine creates instances of this class and sets
+ * its properties; this method is not intended to be used by other clients.
+ * &lt;/p>
+ *
+ * @param name the keyword, field, method, local variable,
+ * or member name, or &lt;code>null&lt;/code> if none
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jpCh6GEMEeCdEc4VzBeWeQ" name="name" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jpCh6mEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jpCh6WEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jpCh62EMEeCdEc4VzBeWeQ" name="getSignature" visibility="public">
+ <ownedComment xmi:id="_jpCh7GEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the signature of the method or type
+ * relevant in the context, or &lt;code>null&lt;/code> if none.
+ * &lt;p>
+ * This field is available for the following kinds of
+ * completion proposals:
+ * &lt;ul>
+ * &lt;li>&lt;code>ANNOTATION_ATTRIBUT_REF&lt;/code> - the type signature
+ * of the referenced attribute's type&lt;/li>
+ * &lt;li>&lt;code>ANONYMOUS_CLASS_DECLARATION&lt;/code> - method signature
+ * of the constructor that is being invoked&lt;/li>
+ * &lt;li>&lt;code>FIELD_IMPORT&lt;/code> - the type signature
+ * of the referenced field's type&lt;/li>
+ * &lt;li>&lt;code>FIELD_REF&lt;/code> - the type signature
+ * of the referenced field's type&lt;/li>
+ * &lt;li>&lt;code>FIELD_REF_WITH_CASTED_RECEIVER&lt;/code> - the type signature
+ * of the referenced field's type&lt;/li>
+ * &lt;li>&lt;code>LOCAL_VARIABLE_REF&lt;/code> - the type signature
+ * of the referenced local variable's type&lt;/li>
+ * &lt;li>&lt;code>METHOD_IMPORT&lt;/code> - method signature
+ * of the method that is imported&lt;/li>
+ * &lt;li>&lt;code>METHOD_REF&lt;/code> - method signature
+ * of the method that is referenced&lt;/li>
+ * &lt;li>&lt;code>METHOD_REF_WITH_CASTED_RECEIVER&lt;/code> - method signature
+ * of the method that is referenced&lt;/li>
+ * &lt;li>&lt;code>METHOD_DECLARATION&lt;/code> - method signature
+ * of the method that is being implemented or overridden&lt;/li>
+ * &lt;li>&lt;code>TYPE_IMPORT&lt;/code> - type signature
+ * of the type that is imported&lt;/li>
+ * &lt;li>&lt;code>TYPE_REF&lt;/code> - type signature
+ * of the type that is referenced&lt;/li>
+ * &lt;li>&lt;code>VARIABLE_DECLARATION&lt;/code> - the type signature
+ * of the type of the variable being declared&lt;/li>
+ * &lt;li>&lt;code>POTENTIAL_METHOD_DECLARATION&lt;/code> - method signature
+ * of the method that is being created&lt;/li>
+ * &lt;/ul>
+ * For kinds of completion proposals, this method returns
+ * &lt;code>null&lt;/code>. Clients must not modify the array
+ * returned.
+ * &lt;/p>
+ *
+ * @return the signature, or &lt;code>null&lt;/code> if none
+ * @see Signature
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jpCh7WEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jpCh72EMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jpCh7mEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jpCh8GEMEeCdEc4VzBeWeQ" name="getKey" visibility="public">
+ <ownedComment xmi:id="_jpCh8WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the key relevant in the context,
+ * or &lt;code>null&lt;/code> if none.
+ * &lt;p>
+ * This field is available for the following kinds of
+ * completion proposals:
+ * &lt;ul>
+ * &lt;li>&lt;code>ANONYMOUS_CLASS_DECLARATION&lt;/code> - method key
+ * of the constructor that is being invoked, or &lt;code>null&lt;/code> if
+ * the declaring type is an interface&lt;/li>
+ * &lt;li>&lt;code>METHOD_DECLARATION&lt;/code> - method key
+ * of the method that is being implemented or overridden&lt;/li>
+ * &lt;/ul>
+ * For kinds of completion proposals, this method returns
+ * &lt;code>null&lt;/code>. Clients must not modify the array
+ * returned.
+ * &lt;/p>
+ *
+ * @return the key, or &lt;code>null&lt;/code> if none
+ * @see org.eclipse.jdt.core.dom.ASTParser#createASTs(ICompilationUnit[], String[], org.eclipse.jdt.core.dom.ASTRequestor, IProgressMonitor)
+ * @since 3.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jpCh8mEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jpMS4WEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jpMS4GEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jpMS4mEMEeCdEc4VzBeWeQ" name="setSignature" visibility="public">
+ <ownedComment xmi:id="_jpMS42EMEeCdEc4VzBeWeQ">
+ <body>
+ * Sets the signature of the method, field type, member type,
+ * relevant in the context, or &lt;code>null&lt;/code> if none.
+ * &lt;p>
+ * If not set, defaults to none.
+ * &lt;/p>
+ * &lt;p>
+ * The completion engine creates instances of this class and sets
+ * its properties; this method is not intended to be used by other clients.
+ * &lt;/p>
+ *
+ * @param signature the signature, or &lt;code>null&lt;/code> if none
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jpMS5GEMEeCdEc4VzBeWeQ" name="signature" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jpMS5mEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jpMS5WEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jpMS52EMEeCdEc4VzBeWeQ" name="setKey" visibility="public">
+ <ownedComment xmi:id="_jpMS6GEMEeCdEc4VzBeWeQ">
+ <body>
+ * Sets the key of the method, field type, member type,
+ * relevant in the context, or &lt;code>null&lt;/code> if none.
+ * &lt;p>
+ * If not set, defaults to none.
+ * &lt;/p>
+ * &lt;p>
+ * The completion engine creates instances of this class and sets
+ * its properties; this method is not intended to be used by other clients.
+ * &lt;/p>
+ *
+ * @param key the key, or &lt;code>null&lt;/code> if none
+ * @since 3.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jpMS6WEMEeCdEc4VzBeWeQ" name="key" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jpMS62EMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jpMS6mEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jpMS7GEMEeCdEc4VzBeWeQ" name="getFlags" visibility="public">
+ <ownedComment xmi:id="_jpMS7WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the modifier flags relevant in the context, or
+ * &lt;code>Flags.AccDefault&lt;/code> if none.
+ * &lt;p>
+ * This field is available for the following kinds of
+ * completion proposals:
+ * &lt;ul>
+ * &lt;li>&lt;code>ANNOTATION_ATTRIBUT_REF&lt;/code> - modifier flags
+ * of the attribute that is referenced;
+ * &lt;li>&lt;code>ANONYMOUS_CLASS_DECLARATION&lt;/code> - modifier flags
+ * of the constructor that is referenced&lt;/li>
+ * &lt;li>&lt;code>FIELD_IMPORT&lt;/code> - modifier flags
+ * of the field that is imported.&lt;/li>
+ * &lt;li>&lt;code>FIELD_REF&lt;/code> - modifier flags
+ * of the field that is referenced;
+ * &lt;code>Flags.AccEnum&lt;/code> can be used to recognize
+ * references to enum constants
+ * &lt;/li>
+ * &lt;li>&lt;code>FIELD_REF_WITH_CASTED_RECEIVER&lt;/code> - modifier flags
+ * of the field that is referenced.
+ * &lt;/li>
+ * &lt;li>&lt;code>KEYWORD&lt;/code> - modifier flag
+ * corresponding to the modifier keyword&lt;/li>
+ * &lt;li>&lt;code>LOCAL_VARIABLE_REF&lt;/code> - modifier flags
+ * of the local variable that is referenced&lt;/li>
+ * &lt;li>&lt;code>METHOD_IMPORT&lt;/code> - modifier flags
+ * of the method that is imported;
+ * &lt;/li>
+ * &lt;li>&lt;code>METHOD_REF&lt;/code> - modifier flags
+ * of the method that is referenced;
+ * &lt;code>Flags.AccAnnotation&lt;/code> can be used to recognize
+ * references to annotation type members
+ * &lt;/li>
+ * &lt;li>&lt;code>METHOD_REF_WITH_CASTED_RECEIVER&lt;/code> - modifier flags
+ * of the method that is referenced.
+ * &lt;/li>
+ * &lt;li>&lt;code>METHOD_DECLARATION&lt;/code> - modifier flags
+ * for the method that is being implemented or overridden&lt;/li>
+ * &lt;li>&lt;code>TYPE_IMPORT&lt;/code> - modifier flags
+ * of the type that is imported; &lt;code>Flags.AccInterface&lt;/code>
+ * can be used to recognize references to interfaces,
+ * &lt;code>Flags.AccEnum&lt;/code> enum types,
+ * and &lt;code>Flags.AccAnnotation&lt;/code> annotation types&lt;/li>
+ * &lt;li>&lt;code>TYPE_REF&lt;/code> - modifier flags
+ * of the type that is referenced; &lt;code>Flags.AccInterface&lt;/code>
+ * can be used to recognize references to interfaces,
+ * &lt;code>Flags.AccEnum&lt;/code> enum types,
+ * and &lt;code>Flags.AccAnnotation&lt;/code> annotation types
+ * &lt;/li>
+ * &lt;li>&lt;code>VARIABLE_DECLARATION&lt;/code> - modifier flags
+ * for the variable being declared&lt;/li>
+ * &lt;li>&lt;code>POTENTIAL_METHOD_DECLARATION&lt;/code> - modifier flags
+ * for the method that is being created&lt;/li>
+ * &lt;/ul>
+ * For other kinds of completion proposals, this method returns
+ * &lt;code>Flags.AccDefault&lt;/code>.
+ * &lt;/p>
+ *
+ * @return the modifier flags, or
+ * &lt;code>Flags.AccDefault&lt;/code> if none
+ * @see Flags
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jpMS7mEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jpMS72EMEeCdEc4VzBeWeQ" name="setFlags" visibility="public">
+ <ownedComment xmi:id="_jpMS8GEMEeCdEc4VzBeWeQ">
+ <body>
+ * Sets the modifier flags relevant in the context.
+ * &lt;p>
+ * If not set, defaults to none.
+ * &lt;/p>
+ * &lt;p>
+ * The completion engine creates instances of this class and sets
+ * its properties; this method is not intended to be used by other clients.
+ * &lt;/p>
+ *
+ * @param flags the modifier flags, or
+ * &lt;code>Flags.AccDefault&lt;/code> if none
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jpMS8WEMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jpMS8mEMEeCdEc4VzBeWeQ" name="getRequiredProposals" visibility="public">
+ <ownedComment xmi:id="_jpMS82EMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the required completion proposals.
+ * The proposal can be apply only if these required completion proposals are also applied.
+ * If the required proposal aren't applied the completion could create completion problems.
+ *
+ * &lt;p>
+ * This field is available for the following kinds of
+ * completion proposals:
+ * &lt;ul>
+ * &lt;li>&lt;code>FIELD_REF&lt;/code> - The allowed required proposals for this kind are:
+ * &lt;ul>
+ * &lt;li>&lt;code>TYPE_REF&lt;/code>&lt;/li>
+ * &lt;li>&lt;code>TYPE_IMPORT&lt;/code>&lt;/li>
+ * &lt;li>&lt;code>FIELD_IMPORT&lt;/code>&lt;/li>
+ * &lt;/ul>
+ * &lt;/li>
+ * &lt;li>&lt;code>METHOD_REF&lt;/code> - The allowed required proposals for this kind are:
+ * &lt;ul>
+ * &lt;li>&lt;code>TYPE_REF&lt;/code>&lt;/li>
+ * &lt;li>&lt;code>TYPE_IMPORT&lt;/code>&lt;/li>
+ * &lt;li>&lt;code>METHOD_IMPORT&lt;/code>&lt;/li>
+ * &lt;/ul>
+ * &lt;/li>
+ * &lt;/li>
+ * &lt;li>&lt;code>TYPE_REF&lt;/code> - The allowed required proposals for this kind are:
+ * &lt;ul>
+ * &lt;li>&lt;code>TYPE_REF&lt;/code>&lt;/li>
+ * &lt;/ul>
+ * &lt;/li>
+ * &lt;li>&lt;code>CONSTRUCTOR_INVOCATION&lt;/code> - The allowed required proposals for this kind are:
+ * &lt;ul>
+ * &lt;li>&lt;code>TYPE_REF&lt;/code>&lt;/li>
+ * &lt;/ul>
+ * &lt;/li>
+ * &lt;li>&lt;code>ANONYMOUS_CLASS_CONSTRUCTOR_INVOCATION&lt;/code> - The allowed required proposals for this kind are:
+ * &lt;ul>
+ * &lt;li>&lt;code>TYPE_REF&lt;/code>&lt;/li>
+ * &lt;/ul>
+ * &lt;/li>
+ * &lt;li>&lt;code>ANONYMOUS_CLASS_DECLARATION&lt;/code> - The allowed required proposals for this kind are:
+ * &lt;ul>
+ * &lt;li>&lt;code>TYPE_REF&lt;/code>&lt;/li>
+ * &lt;/ul>
+ * &lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ * &lt;p>
+ * Other kinds of required proposals will be returned in the future, therefore clients of this
+ * API must allow with {@link CompletionRequestor#setAllowsRequiredProposals(int, int, boolean)}
+ * only kinds which are in this list to avoid unexpected results in the future.
+ * &lt;/p>
+ * &lt;p>
+ * A required proposal of a given kind is proposed even if {@link CompletionRequestor#isIgnored(int)}
+ * return &lt;code>true&lt;/code> for that kind.
+ * &lt;/p>
+ * &lt;p>
+ * A required completion proposal cannot have required completion proposals.
+ * &lt;/p>
+ *
+ * @return the required completion proposals, or &lt;code>null&lt;/code> if none.
+ *
+ * @see CompletionRequestor#setAllowsRequiredProposals(int, int,boolean)
+ *
+ * @since 3.3
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jpWD4GEMEeCdEc4VzBeWeQ" type="_jnQZMGEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jpWD4mEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jpWD4WEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jpWD42EMEeCdEc4VzBeWeQ" name="setRequiredProposals" visibility="public">
+ <ownedComment xmi:id="_jpWD5GEMEeCdEc4VzBeWeQ">
+ <body>
+ * Sets the list of required completion proposals, or &lt;code>null&lt;/code> if none.
+ * &lt;p>
+ * If not set, defaults to none.
+ * &lt;/p>
+ * &lt;p>
+ * The completion engine creates instances of this class and sets
+ * its properties; this method is not intended to be used by other clients.
+ * &lt;/p>
+ *
+ * @param proposals the list of required completion proposals, or
+ * &lt;code>null&lt;/code> if none
+ * @since 3.3
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jpWD5WEMEeCdEc4VzBeWeQ" name="proposals" type="_jnQZMGEMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jpWD52EMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jpWD5mEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jqFqwWEMEeCdEc4VzBeWeQ" name="findParameterNames" visibility="public">
+ <ownedComment xmi:id="_jqFqwmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Finds the method parameter names.
+ * This information is relevant to method reference (and
+ * method declaration proposals). Returns &lt;code>null&lt;/code>
+ * if not available or not relevant.
+ * &lt;p>
+ * The client must not modify the array returned.
+ * &lt;/p>
+ * &lt;p>
+ * &lt;b>Note that this is an expensive thing to compute, which may require
+ * parsing Java source files, etc. Use sparingly.&lt;/b>
+ * &lt;/p>
+ *
+ * @param monitor the progress monitor, or &lt;code>null&lt;/code> if none
+ * @return the parameter names, or &lt;code>null&lt;/code> if none
+ * or not available or not relevant
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jqFqw2EMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jqFqxWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jqFqxGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_jqFqxmEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jqFqx2EMEeCdEc4VzBeWeQ" name="setParameterNames" visibility="public">
+ <ownedComment xmi:id="_jqFqyGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Sets the method parameter names.
+ * This information is relevant to method reference (and
+ * method declaration proposals).
+ * &lt;p>
+ * The completion engine creates instances of this class and sets
+ * its properties; this method is not intended to be used by other clients.
+ * &lt;/p>
+ *
+ * @param parameterNames the parameter names, or &lt;code>null&lt;/code> if none
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jqFqyWEMEeCdEc4VzBeWeQ" name="parameterNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jqO0sWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jqO0sGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jqO0smEMEeCdEc4VzBeWeQ" name="getAccessibility" visibility="public">
+ <ownedComment xmi:id="_jqO0s2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the accessibility of the proposal.
+ * &lt;p>
+ * This field is available for the following kinds of
+ * completion proposals:
+ * &lt;ul>
+ * &lt;li>&lt;code>TYPE_REF&lt;/code> - accessibility of the type&lt;/li>
+ * &lt;/ul>
+ * For these kinds of completion proposals, this method returns
+ * {@link IAccessRule#K_ACCESSIBLE} or {@link IAccessRule#K_DISCOURAGED}
+ * or {@link IAccessRule#K_NON_ACCESSIBLE}.
+ * By default this method return {@link IAccessRule#K_ACCESSIBLE}.
+ * &lt;/p>
+ *
+ * @see IAccessRule
+ *
+ * @return the accessibility of the proposal
+ *
+ * @since 3.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jqO0tGEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jqO0tWEMEeCdEc4VzBeWeQ" name="isConstructor" visibility="public">
+ <ownedComment xmi:id="_jqO0tmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether this proposal is a constructor.
+ * &lt;p>
+ * This field is available for the following kinds of
+ * completion proposals:
+ * &lt;ul>
+ * &lt;li>&lt;code>METHOD_REF&lt;/code> - return &lt;code>true&lt;/code>
+ * if the referenced method is a constructor&lt;/li>
+ * &lt;li>&lt;code>METHOD_DECLARATION&lt;/code> - return &lt;code>true&lt;/code>
+ * if the declared method is a constructor&lt;/li>
+ * &lt;/ul>
+ * For kinds of completion proposals, this method returns
+ * &lt;code>false&lt;/code>.
+ * &lt;/p>
+ *
+ * @return &lt;code>true&lt;/code> if the proposal is a constructor.
+ * @since 3.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jqO0t2EMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jqO0uGEMEeCdEc4VzBeWeQ" name="getReceiverSignature" visibility="public">
+ <ownedComment xmi:id="_jqO0uWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the type signature or package name of the relevant
+ * receiver in the context, or &lt;code>null&lt;/code> if none.
+ * &lt;p>
+ * This field is available for the following kinds of
+ * completion proposals:
+ * &lt;ul>
+ * &lt;li>&lt;code>FIELD_REF_WITH_CASTED_RECEIVER&lt;/code> - type signature
+ * of the type that cast the receiver of the field that is referenced&lt;/li>
+ * &lt;li>&lt;code>METHOD_REF_WITH_CASTED_RECEIVER&lt;/code> - type signature
+ * of the type that cast the receiver of the method that is referenced&lt;/li>
+ * &lt;/ul>
+ * For kinds of completion proposals, this method returns
+ * &lt;code>null&lt;/code>. Clients must not modify the array
+ * returned.
+ * &lt;/p>
+ *
+ * @return a type signature or a package name (depending
+ * on the kind of completion), or &lt;code>null&lt;/code> if none
+ * @see Signature
+ *
+ * @since 3.4
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jqO0umEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jqO0vGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jqO0u2EMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jqO0vWEMEeCdEc4VzBeWeQ" name="getReceiverStart" visibility="public">
+ <ownedComment xmi:id="_jqO0vmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the character index of the start of the
+ * subrange in the source file buffer containing the
+ * relevant receiver of the member being completed. This
+ * receiver is an expression.
+ *
+ * &lt;p>
+ * This field is available for the following kinds of
+ * completion proposals:
+ * &lt;ul>
+ * &lt;li>&lt;code>FIELD_REF_WITH_CASTED_RECEIVER&lt;/code>&lt;/li>
+ * &lt;li>&lt;code>METHOD_REF_WITH_CASTED_RECEIVER&lt;/code>&lt;/li>
+ * &lt;/ul>
+ * For kinds of completion proposals, this method returns &lt;code>0&lt;/code>.
+ * &lt;/p>
+ *
+ * @return character index of receiver start position (inclusive)
+ *
+ * @since 3.4
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jqYlsGEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jqYlsWEMEeCdEc4VzBeWeQ" name="getReceiverEnd" visibility="public">
+ <ownedComment xmi:id="_jqYlsmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the character index of the end (exclusive) of the subrange
+ * in the source file buffer containing the
+ * relevant receiver of the member being completed.
+ *
+ * * &lt;p>
+ * This field is available for the following kinds of
+ * completion proposals:
+ * &lt;ul>
+ * &lt;li>&lt;code>FIELD_REF_WITH_CASTED_RECEIVER&lt;/code>&lt;/li>
+ * &lt;li>&lt;code>METHOD_REF_WITH_CASTED_RECEIVER&lt;/code>&lt;/li>
+ * &lt;/ul>
+ * For kinds of completion proposals, this method returns &lt;code>0&lt;/code>.
+ * &lt;/p>
+ *
+ * @return character index of receiver end position (exclusive)
+ *
+ * @since 3.4
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jqYls2EMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jqYltGEMEeCdEc4VzBeWeQ" name="setReceiverSignature" visibility="public">
+ <ownedComment xmi:id="_jqYltWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Sets the type or package signature of the relevant
+ * receiver in the context, or &lt;code>null&lt;/code> if none.
+ * &lt;p>
+ * If not set, defaults to none.
+ * &lt;/p>
+ * &lt;p>
+ * The completion engine creates instances of this class and sets
+ * its properties; this method is not intended to be used by other clients.
+ * &lt;/p>
+ *
+ * @param signature the type or package signature, or
+ * &lt;code>null&lt;/code> if none
+ *
+ * @since 3.4
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jqYltmEMEeCdEc4VzBeWeQ" name="signature" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jqYluGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jqYlt2EMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jqYluWEMEeCdEc4VzBeWeQ" name="setReceiverRange" visibility="public">
+ <ownedComment xmi:id="_jqYlumEMEeCdEc4VzBeWeQ">
+ <body>
+ * Sets the character indices of the subrange in the
+ * source file buffer containing the relevant receiver
+ * of the member being completed.
+ *
+ * &lt;p>
+ * If not set, defaults to empty subrange at [0,0).
+ * &lt;/p>
+ *
+ * @param startIndex character index of receiver start position (inclusive)
+ * @param endIndex character index of receiver end position (exclusive)
+ *
+ * @since 3.4
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jqiWsGEMEeCdEc4VzBeWeQ" name="startIndex" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_jqiWsWEMEeCdEc4VzBeWeQ" name="endIndex" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_jq_CoGEMEeCdEc4VzBeWeQ" name="CompletionRequestor" isAbstract="true">
+ <ownedComment xmi:id="_jq_CoWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Abstract base class for a completion requestor which is passed completion
+ * proposals as they are generated in response to a code assist request.
+ * &lt;p>
+ * This class is intended to be subclassed by clients.
+ * &lt;/p>
+ * &lt;p>
+ * The code assist engine normally invokes methods on completion
+ * requestor in the following sequence:
+ * &lt;pre>
+ * requestor.beginReporting();
+ * requestor.acceptContext(context);
+ * requestor.accept(proposal_1);
+ * requestor.accept(proposal_2);
+ * ...
+ * requestor.endReporting();
+ * &lt;/pre>
+ * If, however, the engine is unable to offer completion proposals
+ * for whatever reason, &lt;code>completionFailure&lt;/code> is called
+ * with a problem object describing why completions were unavailable.
+ * In this case, the sequence of calls is:
+ * &lt;pre>
+ * requestor.beginReporting();
+ * requestor.acceptContext(context);
+ * requestor.completionFailure(problem);
+ * requestor.endReporting();
+ * &lt;/pre>
+ * In either case, the bracketing &lt;code>beginReporting&lt;/code>
+ * &lt;code>endReporting&lt;/code> calls are always made as well as
+ * &lt;code>acceptContext&lt;/code> call.
+ * &lt;/p>
+ * &lt;p>
+ * The class was introduced in 3.0 as a more evolvable replacement
+ * for the &lt;code>ICompletionRequestor&lt;/code> interface.
+ * &lt;/p>
+ *
+ * @see ICodeAssist
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_jrIMkGEMEeCdEc4VzBeWeQ" name="ignoreSet" visibility="private" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jrIMkWEMEeCdEc4VzBeWeQ">
+ <body>
+ * The set of CompletionProposal kinds that this requestor
+ * ignores; &lt;code>0&lt;/code> means the set is empty.
+ * 1 &lt;&lt; completionProposalKind
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jrIMkmEMEeCdEc4VzBeWeQ" name="favoriteReferences" visibility="private" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jrIMlGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jrIMk2EMEeCdEc4VzBeWeQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jrIMlWEMEeCdEc4VzBeWeQ" name="requiredProposalAllowSet" visibility="private" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jrIMlmEMEeCdEc4VzBeWeQ">
+ <body>
+ * The set of CompletionProposal kinds that this requestor
+ * allows for required proposals; &lt;code>0&lt;/code> means the set is empty.
+ * 1 &lt;&lt; completionProposalKind
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jrIMl2EMEeCdEc4VzBeWeQ" name="requireExtendedContext" visibility="private" type="_dVOadGEMEeCdEc4VzBeWeQ" isUnique="false"/>
+ <ownedOperation xmi:id="_jrIMmGEMEeCdEc4VzBeWeQ" name="isIgnored" visibility="public">
+ <ownedComment xmi:id="_jrIMmWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether the given kind of completion proposal is ignored.
+ *
+ * @param completionProposalKind one of the kind constants declared
+ * on &lt;code>CompletionProposal&lt;/code>
+ * @return &lt;code>true&lt;/code> if the given kind of completion proposal
+ * is ignored by this requestor, and &lt;code>false&lt;/code> if it is of
+ * interest
+ * @see #setIgnored(int, boolean)
+ * @see CompletionProposal#getKind()
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jrIMmmEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_jrIMm2EMEeCdEc4VzBeWeQ" name="completionProposalKind" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jrR9kGEMEeCdEc4VzBeWeQ" name="setIgnored" visibility="public">
+ <ownedComment xmi:id="_jrR9kWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Sets whether the given kind of completion proposal is ignored.
+ *
+ * @param completionProposalKind one of the kind constants declared
+ * on &lt;code>CompletionProposal&lt;/code>
+ * @param ignore &lt;code>true&lt;/code> if the given kind of completion proposal
+ * is ignored by this requestor, and &lt;code>false&lt;/code> if it is of
+ * interest
+ * @see #isIgnored(int)
+ * @see CompletionProposal#getKind()
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jrR9kmEMEeCdEc4VzBeWeQ" name="completionProposalKind" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_jrR9k2EMEeCdEc4VzBeWeQ" name="ignore" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jrR9lGEMEeCdEc4VzBeWeQ" name="isAllowingRequiredProposals" visibility="public">
+ <ownedComment xmi:id="_jrR9lWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether a proposal of a given kind with a required proposal
+ * of the given kind is allowed.
+ *
+ * @param proposalKind one of the kind constants declared
+ * @param requiredProposalKind one of the kind constants declared
+ * on &lt;code>CompletionProposal&lt;/code>
+ * @return &lt;code>true&lt;/code> if a proposal of a given kind with a required proposal
+ * of the given kind is allowed by this requestor, and &lt;code>false&lt;/code>
+ * if it isn't of interest.
+ * &lt;p>
+ * By default, all kinds of required proposals aren't allowed.
+ * &lt;/p>
+ * @see #setAllowsRequiredProposals(int, int, boolean)
+ * @see CompletionProposal#getKind()
+ * @see CompletionProposal#getRequiredProposals()
+ *
+ * @since 3.3
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jrR9lmEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_jrR9l2EMEeCdEc4VzBeWeQ" name="proposalKind" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_jrbHgGEMEeCdEc4VzBeWeQ" name="requiredProposalKind" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jrbHgWEMEeCdEc4VzBeWeQ" name="setAllowsRequiredProposals" visibility="public">
+ <ownedComment xmi:id="_jrbHgmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Sets whether a proposal of a given kind with a required proposal
+ * of the given kind is allowed.
+ *
+ * A required proposal of a given kind is proposed even if {@link #isIgnored(int)}
+ * return &lt;code>true&lt;/code> for that kind.
+ *
+ * Currently only a subset of kinds support required proposals. To see what combinations
+ * are supported you must look at {@link CompletionProposal#getRequiredProposals()}
+ * documentation.
+ *
+ * @param proposalKind one of the kind constants declared
+ * @param requiredProposalKind one of the kind constants declared
+ * on &lt;code>CompletionProposal&lt;/code>
+ * @param allow &lt;code>true&lt;/code> if a proposal of a given kind with a required proposal
+ * of the given kind is allowed by this requestor, and &lt;code>false&lt;/code>
+ * if it isn't of interest
+ * @see #isAllowingRequiredProposals(int, int)
+ * @see CompletionProposal#getKind()
+ * @see CompletionProposal#getRequiredProposals()
+ *
+ * @since 3.3
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jrbHg2EMEeCdEc4VzBeWeQ" name="proposalKind" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_jrbHhGEMEeCdEc4VzBeWeQ" name="requiredProposalKind" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_jrbHhWEMEeCdEc4VzBeWeQ" name="allow" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jrbHhmEMEeCdEc4VzBeWeQ" name="getFavoriteReferences" visibility="public">
+ <ownedComment xmi:id="_jrbHh2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the favorite references which are used to compute some completion proposals.
+ * &lt;p>
+ * A favorite reference is a qualified reference as it can be seen in an import statement.&lt;br>
+ * e.g. &lt;code>{&quot;java.util.Arrays&quot;}&lt;/code>&lt;br>
+ * It can be an on demand reference.&lt;br>
+ * e.g. &lt;code>{&quot;java.util.Arrays.*&quot;}&lt;/code>
+ * It can be a reference to a static method or field (as in a static import)&lt;br>
+ * e.g. &lt;code>{&quot;java.util.Arrays.equals&quot;}&lt;/code>
+ * &lt;/p>
+ * &lt;p>
+ * Currently only on demand type references (&lt;code>&quot;java.util.Arrays.*&quot;&lt;/code>),
+ * references to a static method or a static field are used to compute completion proposals.
+ * Other kind of reference could be used in the future.
+ * &lt;/p>
+ * @return favorite imports
+ *
+ * @since 3.3
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jrbHiGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jrbHimEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jrbHiWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jrbHi2EMEeCdEc4VzBeWeQ" name="setFavoriteReferences" visibility="public">
+ <ownedComment xmi:id="_jrbHjGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Set the favorite references which will be used to compute some completion proposals.
+ * A favorite reference is a qualified reference as it can be seen in an import statement.&lt;br>
+ *
+ * @param favoriteImports
+ *
+ * @see #getFavoriteReferences()
+ *
+ * @since 3.3
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jrbHjWEMEeCdEc4VzBeWeQ" name="favoriteImports" type="_dSiS02EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jrbHj2EMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jrbHjmEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jrk4gGEMEeCdEc4VzBeWeQ" name="beginReporting" visibility="public">
+ <ownedComment xmi:id="_jrk4gWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Pro forma notification sent before reporting a batch of
+ * completion proposals.
+ * &lt;p>
+ * The default implementation of this method does nothing.
+ * Clients may override.
+ * &lt;/p>
+ </body>
+ </ownedComment>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jrk4gmEMEeCdEc4VzBeWeQ" name="endReporting" visibility="public">
+ <ownedComment xmi:id="_jrk4g2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Pro forma notification sent after reporting a batch of
+ * completion proposals.
+ * &lt;p>
+ * The default implementation of this method does nothing.
+ * Clients may override.
+ * &lt;/p>
+ </body>
+ </ownedComment>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jrk4hmEMEeCdEc4VzBeWeQ" name="completionFailure" visibility="public">
+ <ownedComment xmi:id="_jrk4h2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Notification of failure to produce any completions.
+ * The problem object explains what prevented completing.
+ * &lt;p>
+ * The default implementation of this method does nothing.
+ * Clients may override to receive this kind of notice.
+ * &lt;/p>
+ *
+ * @param problem the problem object
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jrk4iGEMEeCdEc4VzBeWeQ" name="problem" type="_jrk4hWEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jrk4iWEMEeCdEc4VzBeWeQ" name="accept" visibility="public" isAbstract="true">
+ <ownedComment xmi:id="_jrk4imEMEeCdEc4VzBeWeQ">
+ <body>
+ * Proposes a completion. Has no effect if the kind of proposal
+ * is being ignored by this requestor. Callers should consider
+ * checking {@link #isIgnored(int)} before avoid creating proposal
+ * objects that would only be ignored.
+ * &lt;p>
+ * Similarly, implementers should check
+ * {@link #isIgnored(int) isIgnored(proposal.getKind())}
+ * and ignore proposals that have been declared as uninteresting.
+ * The proposal object passed is only valid for the duration of
+ * completion operation.
+ *
+ * @param proposal the completion proposal
+ * @exception IllegalArgumentException if the proposal is null
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jrk4i2EMEeCdEc4VzBeWeQ" name="proposal" type="_jnQZMGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jrk4jGEMEeCdEc4VzBeWeQ" name="acceptContext" visibility="public">
+ <ownedComment xmi:id="_jrk4jWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Propose the context in which the completion occurs.
+ * &lt;p>
+ * This method is called one and only one time before any call to
+ * {@link #accept(CompletionProposal)}.
+ * The default implementation of this method does nothing.
+ * Clients may override.
+ * &lt;/p>
+ * @param context the completion context
+ *
+ * @since 3.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jrk4jmEMEeCdEc4VzBeWeQ" name="context" type="_jlxLcWEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jrk4j2EMEeCdEc4VzBeWeQ" name="isExtendedContextRequired" visibility="public">
+ <ownedComment xmi:id="_jrk4kGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether this requestor requires an extended context.
+ *
+ * By default this method return &lt;code>false&lt;/code>.
+ *
+ * @return &lt;code>true&lt;/code> if this requestor requires an extended context.
+ *
+ * @see CompletionContext#isExtended()
+ *
+ * @since 3.4
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jrupgGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jrupgWEMEeCdEc4VzBeWeQ" name="setRequireExtendedContext" visibility="public">
+ <ownedComment xmi:id="_jrupgmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Sets whether this requestor requires an extended context.
+ *
+ * @param require &lt;code>true&lt;/code> if this requestor requires an extended context.
+ *
+ * @see CompletionContext#isExtended()
+ *
+ * @since 3.4
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jrupg2EMEeCdEc4VzBeWeQ" name="require" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_jrk4hGEMEeCdEc4VzBeWeQ" name="compiler">
+ <packagedElement xmi:type="uml:Interface" xmi:id="_jrk4hWEMEeCdEc4VzBeWeQ" name="IProblem"/>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_nGVIIGEMEeCdEc4VzBeWeQ" name="IScanner"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_jsLVcGEMEeCdEc4VzBeWeQ" name="CompletionRequestorAdapter">
+ <ownedComment xmi:id="_jsLVcWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Adapter of the requestor interface &lt;code>ICompletionRequestor&lt;/code>.
+ * &lt;p>
+ * This class is intended to be instantiated and subclassed by clients.
+ * &lt;/p>
+ *
+ * @see ICompletionRequestor
+ * @since 2.0
+ * @deprecated Subclass {@link CompletionRequestor} instead.
+ </body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_jv5X0GEMEeCdEc4VzBeWeQ" name="CorrectionEngine">
+ <ownedComment xmi:id="_jv5X0WEMEeCdEc4VzBeWeQ">
+ <body>
+ * This class is the entry point for source corrections.
+ *
+ * This class is intended to be instantiated by clients.
+ *
+ * @since 2.0
+ * @noextend This class is not intended to be subclassed by clients.
+ </body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_jv5X0mEMEeCdEc4VzBeWeQ" name="correctionStart" visibility="protected" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jv5X02EMEeCdEc4VzBeWeQ">
+ <body>
+ * This field is not intended to be used by client.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jv5X1GEMEeCdEc4VzBeWeQ" name="correctionEnd" visibility="protected" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jv5X1WEMEeCdEc4VzBeWeQ">
+ <body>
+ * This field is not intended to be used by client.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jv5X1mEMEeCdEc4VzBeWeQ" name="prefixLength" visibility="protected" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jwDI0GEMEeCdEc4VzBeWeQ">
+ <body>
+ * This field is not intended to be used by client.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_jwf0wGEMEeCdEc4VzBeWeQ" name="ElementChangedEvent">
+ <ownedComment xmi:id="_jwf0wWEMEeCdEc4VzBeWeQ">
+ <body>
+ * An element changed event describes a change to the structure or contents
+ * of a tree of Java elements. The changes to the elements are described by
+ * the associated delta object carried by this event.
+ * &lt;p>
+ * This class is not intended to be instantiated or subclassed by clients.
+ * Instances of this class are automatically created by the Java model.
+ * &lt;/p>
+ *
+ * @see IElementChangedListener
+ * @see IJavaElementDelta
+ * @noinstantiate This class is not intended to be instantiated by clients.
+ * @noextend This class is not intended to be subclassed by clients.
+ </body>
+ </ownedComment>
+ <generalization xmi:id="_jwf0wmEMEeCdEc4VzBeWeQ" general="_dV-BU2EMEeCdEc4VzBeWeQ"/>
+ <ownedAttribute xmi:id="_jwo-sGEMEeCdEc4VzBeWeQ" name="POST_CHANGE" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jwo-sWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Event type constant (bit mask) indicating an after-the-fact
+ * report of creations, deletions, and modifications
+ * to one or more Java element(s) expressed as a hierarchical
+ * java element delta as returned by &lt;code>getDelta()&lt;/code>.
+ *
+ * Note: this notification occurs during the corresponding POST_CHANGE
+ * resource change notification, and contains a full delta accounting for
+ * any JavaModel operation and/or resource change.
+ *
+ * @see IJavaElementDelta
+ * @see org.eclipse.core.resources.IResourceChangeEvent
+ * @see #getDelta()
+ * @since 2.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jwo-smEMEeCdEc4VzBeWeQ" name="PRE_AUTO_BUILD" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jwo-s2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Event type constant (bit mask) indicating an after-the-fact
+ * report of creations, deletions, and modifications
+ * to one or more Java element(s) expressed as a hierarchical
+ * java element delta as returned by &lt;code>getDelta&lt;/code>.
+ *
+ * Note: this notification occurs during the corresponding PRE_AUTO_BUILD
+ * resource change notification. The delta, which is notified here, only contains
+ * information relative to the previous JavaModel operations (in other words,
+ * it ignores the possible resources which have changed outside Java operations).
+ * In particular, it is possible that the JavaModel be inconsistent with respect to
+ * resources, which got modified outside JavaModel operations (it will only be
+ * fully consistent once the POST_CHANGE notification has occurred).
+ *
+ * @see IJavaElementDelta
+ * @see org.eclipse.core.resources.IResourceChangeEvent
+ * @see #getDelta()
+ * @since 2.0
+ * @deprecated - no longer used, such deltas are now notified during POST_CHANGE
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jwo-tGEMEeCdEc4VzBeWeQ" name="POST_RECONCILE" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jwo-tWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Event type constant (bit mask) indicating an after-the-fact
+ * report of creations, deletions, and modifications
+ * to one or more Java element(s) expressed as a hierarchical
+ * java element delta as returned by &lt;code>getDelta&lt;/code>.
+ *
+ * Note: this notification occurs as a result of a working copy reconcile
+ * operation.
+ *
+ * @see IJavaElementDelta
+ * @see org.eclipse.core.resources.IResourceChangeEvent
+ * @see #getDelta()
+ * @since 2.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jwo-tmEMEeCdEc4VzBeWeQ" name="serialVersionUID" visibility="private" isLeaf="true" isStatic="true" type="_dWatRGEMEeCdEc4VzBeWeQ" isUnique="false"/>
+ <ownedAttribute xmi:id="_jwyvsGEMEeCdEc4VzBeWeQ" name="type" visibility="private" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false"/>
+ <ownedOperation xmi:id="_jwyvsWEMEeCdEc4VzBeWeQ" name="getDelta" visibility="public">
+ <ownedComment xmi:id="_jwyvsmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the delta describing the change.
+ *
+ * @return the delta describing the change
+ </body>
+ </ownedComment>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_jxYlkGEMEeCdEc4VzBeWeQ" name="Flags" isLeaf="true">
+ <ownedComment xmi:id="_jxYlkWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Utility class for decoding modifier flags in Java elements.
+ * &lt;p>
+ * This class provides static methods only.
+ * &lt;/p>
+ * &lt;p>
+ * Note that the numeric values of these flags match the ones for class files
+ * as described in the Java Virtual Machine Specification. The AST class
+ * &lt;code>Modifier&lt;/code> provides the same functionality as this class, only in
+ * the &lt;code>org.eclipse.jdt.core.dom&lt;/code> package.
+ * &lt;/p>
+ *
+ * @see IMember#getFlags()
+ * @noinstantiate This class is not intended to be instantiated by clients.
+ </body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_jxiWkGEMEeCdEc4VzBeWeQ" name="AccDefault" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jxiWkWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant representing the absence of any flag
+ * @since 3.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jxiWkmEMEeCdEc4VzBeWeQ" name="AccPublic" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jxiWk2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Public access flag. See The Java Virtual Machine Specification for more details.
+ * @since 2.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jxiWlGEMEeCdEc4VzBeWeQ" name="AccPrivate" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jxiWlWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Private access flag. See The Java Virtual Machine Specification for more details.
+ * @since 2.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jxsHkGEMEeCdEc4VzBeWeQ" name="AccProtected" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jx1RgGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Protected access flag. See The Java Virtual Machine Specification for more details.
+ * @since 2.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jx1RgWEMEeCdEc4VzBeWeQ" name="AccStatic" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jx1RgmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Static access flag. See The Java Virtual Machine Specification for more details.
+ * @since 2.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jx1Rg2EMEeCdEc4VzBeWeQ" name="AccFinal" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jx1RhGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Final access flag. See The Java Virtual Machine Specification for more details.
+ * @since 2.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jx1RhWEMEeCdEc4VzBeWeQ" name="AccSynchronized" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jx_CgGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Synchronized access flag. See The Java Virtual Machine Specification for more details.
+ * @since 2.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jx_CgWEMEeCdEc4VzBeWeQ" name="AccVolatile" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jx_CgmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Volatile property flag. See The Java Virtual Machine Specification for more details.
+ * @since 2.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jx_Cg2EMEeCdEc4VzBeWeQ" name="AccTransient" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jx_ChGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Transient property flag. See The Java Virtual Machine Specification for more details.
+ * @since 2.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jx_ChWEMEeCdEc4VzBeWeQ" name="AccNative" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jx_ChmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Native property flag. See The Java Virtual Machine Specification for more details.
+ * @since 2.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jyIzgGEMEeCdEc4VzBeWeQ" name="AccInterface" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jyIzgWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Interface property flag. See The Java Virtual Machine Specification for more details.
+ * @since 2.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jyIzgmEMEeCdEc4VzBeWeQ" name="AccAbstract" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jyIzg2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Abstract property flag. See The Java Virtual Machine Specification for more details.
+ * @since 2.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jyIzhGEMEeCdEc4VzBeWeQ" name="AccStrictfp" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jyIzhWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Strictfp property flag. See The Java Virtual Machine Specification for more details.
+ * @since 2.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jyR9cGEMEeCdEc4VzBeWeQ" name="AccSuper" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jyR9cWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Super property flag. See The Java Virtual Machine Specification for more details.
+ * @since 2.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jyR9cmEMEeCdEc4VzBeWeQ" name="AccSynthetic" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jyR9c2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Synthetic property flag. See The Java Virtual Machine Specification for more details.
+ * @since 2.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jyR9dGEMEeCdEc4VzBeWeQ" name="AccDeprecated" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jyR9dWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Deprecated property flag. See The Java Virtual Machine Specification for more details.
+ * @since 2.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jybucGEMEeCdEc4VzBeWeQ" name="AccBridge" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jybucWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Bridge method property flag (added in J2SE 1.5). Used to flag a compiler-generated
+ * bridge methods.
+ * See The Java Virtual Machine Specification for more details.
+ * @since 3.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jybucmEMEeCdEc4VzBeWeQ" name="AccVarargs" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jybuc2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Varargs method property flag (added in J2SE 1.5).
+ * Used to flag variable arity method declarations.
+ * See The Java Virtual Machine Specification for more details.
+ * @since 3.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jybudGEMEeCdEc4VzBeWeQ" name="AccEnum" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jybudWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Enum property flag (added in J2SE 1.5).
+ * See The Java Virtual Machine Specification for more details.
+ * @since 3.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jybudmEMEeCdEc4VzBeWeQ" name="AccAnnotation" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_jyk4YGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Annotation property flag (added in J2SE 1.5).
+ * See The Java Virtual Machine Specification for more details.
+ * @since 3.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_jyk4YWEMEeCdEc4VzBeWeQ" name="isAbstract" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_jyk4YmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether the given integer includes the &lt;code>abstract&lt;/code> modifier.
+ *
+ * @param flags the flags
+ * @return &lt;code>true&lt;/code> if the &lt;code>abstract&lt;/code> modifier is included
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jyk4Y2EMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_jy4aYGEMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jy4aYWEMEeCdEc4VzBeWeQ" name="isDeprecated" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_jy4aYmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether the given integer includes the indication that the
+ * element is deprecated (&lt;code>@deprecated&lt;/code> tag in Javadoc comment).
+ *
+ * @param flags the flags
+ * @return &lt;code>true&lt;/code> if the element is marked as deprecated
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jy4aY2EMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_jy4aZGEMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jy4aZWEMEeCdEc4VzBeWeQ" name="isFinal" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_jy4aZmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether the given integer includes the &lt;code>final&lt;/code> modifier.
+ *
+ * @param flags the flags
+ * @return &lt;code>true&lt;/code> if the &lt;code>final&lt;/code> modifier is included
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jzBkUGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_jzBkUWEMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jzBkUmEMEeCdEc4VzBeWeQ" name="isInterface" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_jzBkU2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether the given integer includes the &lt;code>interface&lt;/code> modifier.
+ *
+ * @param flags the flags
+ * @return &lt;code>true&lt;/code> if the &lt;code>interface&lt;/code> modifier is included
+ * @since 2.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jzBkVGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_jzBkVWEMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jzLVUGEMEeCdEc4VzBeWeQ" name="isNative" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_jzLVUWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether the given integer includes the &lt;code>native&lt;/code> modifier.
+ *
+ * @param flags the flags
+ * @return &lt;code>true&lt;/code> if the &lt;code>native&lt;/code> modifier is included
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jzLVUmEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_jzLVU2EMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jzLVVGEMEeCdEc4VzBeWeQ" name="isPackageDefault" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_jzLVVWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether the given integer does not include one of the
+ * &lt;code>public&lt;/code>, &lt;code>private&lt;/code>, or &lt;code>protected&lt;/code> flags.
+ *
+ * @param flags the flags
+ * @return &lt;code>true&lt;/code> if no visibility flag is set
+ * @since 3.2
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jzLVVmEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_jzLVV2EMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jzLVWGEMEeCdEc4VzBeWeQ" name="isPrivate" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_jzLVWWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether the given integer includes the &lt;code>private&lt;/code> modifier.
+ *
+ * @param flags the flags
+ * @return &lt;code>true&lt;/code> if the &lt;code>private&lt;/code> modifier is included
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jzVGUGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_jzVGUWEMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jzVGUmEMEeCdEc4VzBeWeQ" name="isProtected" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_jzVGU2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether the given integer includes the &lt;code>protected&lt;/code> modifier.
+ *
+ * @param flags the flags
+ * @return &lt;code>true&lt;/code> if the &lt;code>protected&lt;/code> modifier is included
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jzVGVGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_jzVGVWEMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jzVGVmEMEeCdEc4VzBeWeQ" name="isPublic" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_jzVGV2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether the given integer includes the &lt;code>public&lt;/code> modifier.
+ *
+ * @param flags the flags
+ * @return &lt;code>true&lt;/code> if the &lt;code>public&lt;/code> modifier is included
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jzeQQGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_jzeQQWEMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jzeQQmEMEeCdEc4VzBeWeQ" name="isStatic" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_jzeQQ2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether the given integer includes the &lt;code>static&lt;/code> modifier.
+ *
+ * @param flags the flags
+ * @return &lt;code>true&lt;/code> if the &lt;code>static&lt;/code> modifier is included
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jzeQRGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_jzeQRWEMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jzeQRmEMEeCdEc4VzBeWeQ" name="isSuper" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_jzeQR2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether the given integer includes the &lt;code>super&lt;/code> modifier.
+ *
+ * @param flags the flags
+ * @return &lt;code>true&lt;/code> if the &lt;code>super&lt;/code> modifier is included
+ * @since 3.2
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jzeQSGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_jzoBQGEMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jzoBQWEMEeCdEc4VzBeWeQ" name="isStrictfp" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_jzoBQmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether the given integer includes the &lt;code>strictfp&lt;/code> modifier.
+ *
+ * @param flags the flags
+ * @return &lt;code>true&lt;/code> if the &lt;code>strictfp&lt;/code> modifier is included
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jzoBQ2EMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_jzoBRGEMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jzoBRWEMEeCdEc4VzBeWeQ" name="isSynchronized" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_jzoBRmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether the given integer includes the &lt;code>synchronized&lt;/code> modifier.
+ *
+ * @param flags the flags
+ * @return &lt;code>true&lt;/code> if the &lt;code>synchronized&lt;/code> modifier is included
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jzoBR2EMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_jzoBSGEMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jzxLMGEMEeCdEc4VzBeWeQ" name="isSynthetic" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_jzxLMWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether the given integer includes the indication that the
+ * element is synthetic.
+ *
+ * @param flags the flags
+ * @return &lt;code>true&lt;/code> if the element is marked synthetic
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jzxLMmEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_jzxLM2EMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jzxLNGEMEeCdEc4VzBeWeQ" name="isTransient" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_jzxLNWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether the given integer includes the &lt;code>transient&lt;/code> modifier.
+ *
+ * @param flags the flags
+ * @return &lt;code>true&lt;/code> if the &lt;code>transient&lt;/code> modifier is included
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jzxLNmEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_jzxLN2EMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jzxLOGEMEeCdEc4VzBeWeQ" name="isVolatile" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_jzxLOWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether the given integer includes the &lt;code>volatile&lt;/code> modifier.
+ *
+ * @param flags the flags
+ * @return &lt;code>true&lt;/code> if the &lt;code>volatile&lt;/code> modifier is included
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jzxLOmEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_jz68MGEMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jz68MWEMEeCdEc4VzBeWeQ" name="isBridge" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_jz68MmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether the given integer has the &lt;code>AccBridge&lt;/code>
+ * bit set.
+ *
+ * @param flags the flags
+ * @return &lt;code>true&lt;/code> if the &lt;code>AccBridge&lt;/code> flag is included
+ * @see #AccBridge
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jz68M2EMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_jz68NGEMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jz68NWEMEeCdEc4VzBeWeQ" name="isVarargs" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_jz68NmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether the given integer has the &lt;code>AccVarargs&lt;/code>
+ * bit set.
+ *
+ * @param flags the flags
+ * @return &lt;code>true&lt;/code> if the &lt;code>AccVarargs&lt;/code> flag is included
+ * @see #AccVarargs
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jz68N2EMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_jz68OGEMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_j0EtMGEMEeCdEc4VzBeWeQ" name="isEnum" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_j0EtMWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether the given integer has the &lt;code>AccEnum&lt;/code>
+ * bit set.
+ *
+ * @param flags the flags
+ * @return &lt;code>true&lt;/code> if the &lt;code>AccEnum&lt;/code> flag is included
+ * @see #AccEnum
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j0EtMmEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_j0EtM2EMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_j0EtNGEMEeCdEc4VzBeWeQ" name="isAnnotation" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_j0EtNWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether the given integer has the &lt;code>AccAnnotation&lt;/code>
+ * bit set.
+ *
+ * @param flags the flags
+ * @return &lt;code>true&lt;/code> if the &lt;code>AccAnnotation&lt;/code> flag is included
+ * @see #AccAnnotation
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j0EtNmEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_j0EtN2EMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_j0EtOGEMEeCdEc4VzBeWeQ" name="toString" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_j0EtOWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns a standard string describing the given modifier flags.
+ * Only modifier flags are included in the output; deprecated,
+ * synthetic, bridge, etc. flags are ignored.
+ * &lt;p>
+ * The flags are output in the following order:
+ * &lt;pre>
+ * &lt;code>public&lt;/code> &lt;code>protected&lt;/code> &lt;code>private&lt;/code>
+ * &lt;code>static&lt;/code>
+ * &lt;code>abstract&lt;/code> &lt;code>final&lt;/code> &lt;code>native&lt;/code> &lt;code>synchronized&lt;/code> &lt;code>transient&lt;/code> &lt;code>volatile&lt;/code> &lt;code>strictfp&lt;/code>
+ * &lt;/pre>
+ * This is a compromise between the orders specified in sections 8.1.1,
+ * 8.3.1, 8.4.3, 8.8.3, 9.1.1, and 9.3 of &lt;em>The Java Language
+ * Specification, Second Edition&lt;/em> (JLS2).
+ * &lt;/p>
+ * &lt;p>
+ * Note that the flags of a method can include the AccVarargs flag that has no standard description. Since the AccVarargs flag has the same value as
+ * the AccTransient flag (valid for fields only), attempting to get the description of method modifiers with the AccVarargs flag set would result in an
+ * unexpected description. Clients should ensure that the AccVarargs is not included in the flags of a method as follows:
+ * &lt;pre>
+ * IMethod method = ...
+ * int flags = method.getFlags() &amp; ~Flags.AccVarargs;
+ * return Flags.toString(flags);
+ * &lt;/pre>
+ * &lt;/p>
+ * &lt;p>
+ * Examples results:
+ * &lt;pre>
+ * &lt;code>&quot;public static final&quot;&lt;/code>
+ * &lt;code>&quot;private native&quot;&lt;/code>
+ * &lt;/pre>
+ * &lt;/p>
+ *
+ * @param flags the flags
+ * @return the standard string representation of the given flags
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j0EtOmEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_j0N3IGEMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_j0hZIGEMEeCdEc4VzBeWeQ" name="IAccessRule">
+ <ownedComment xmi:id="_j0qjEGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Describes an access rule to source and class files on a classpath entry.
+ * An access rule is composed of a file pattern and a kind (accessible,
+ * non accessible, or discouraged).
+ * &lt;p>
+ * On a given classpath entry, the access rules are considered in the order given
+ * when the entry was created. When a source or class file matches an access
+ * rule's pattern, the access rule's kind define whether the file is considered
+ * accessible, non accessible, or its access is discouraged. If the source or class
+ * file doesn't match any accessible rule, it is considered accessible. A source or class
+ * file that is not accessible or discouraged can still be refered to but it is tagged as being not
+ * accessible - the Java builder will create a problem marker for example.
+ * The severity of the marker created from a non accessible rule is controled through
+ * the {@link JavaCore#COMPILER_PB_FORBIDDEN_REFERENCE} compiler option.
+ * The severity of the marker created from a discouraged rule is controled through
+ * the {@link JavaCore#COMPILER_PB_DISCOURAGED_REFERENCE} compiler option.
+ * Note this is different from inclusion and exclusion patterns on source classpath entries,
+ * where a source file that is excluded is not even compiled.
+ * Files patterns look like relative file paths with wildcards and are interpreted relative
+ * to each entry's path.
+ * File patterns are case-sensitive and they can contain '**', '*' or '?' wildcards (see
+ * {@link IClasspathEntry#getExclusionPatterns()} for the full description
+ * of their syntax and semantics).
+ * Note that file patterns must not include the file extension.
+ * &lt;code>com/xyz/tests/MyClass&lt;/code> is a valid file pattern, whereas
+ * &lt;code>com/xyz/tests/MyClass.class&lt;/code> is not valid.
+ * &lt;/p>
+ * &lt;p>
+ * For example, if one of the entry path is &lt;code>/Project/someLib.jar&lt;/code>,
+ * there are no accessible rules, and there is one non accessible rule whith pattern
+ * &lt;code>com/xyz/tests/&amp;#42;&amp;#42;&lt;/code>, then class files
+ * like &lt;code>/Project/someLib.jar/com/xyz/Foo.class&lt;/code>
+ * and &lt;code>/Project/someLib.jar/com/xyz/utils/Bar.class&lt;/code> would be accessible,
+ * whereas &lt;code>/Project/someLib.jar/com/xyz/tests/T1.class&lt;/code>
+ * and &lt;code>/Project/someLib.jar/com/xyz/tests/quick/T2.class&lt;/code> would not be
+ * accessible.
+ * &lt;/p>
+ * &lt;p>
+ * This interface is not intended to be implemented by clients.
+ * &lt;/p>
+ *
+ * @since 3.1
+ </body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_j0qjEWEMEeCdEc4VzBeWeQ" name="K_ACCESSIBLE" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_j0qjEmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant indicating that files matching the rule's pattern are accessible.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_j0qjE2EMEeCdEc4VzBeWeQ" name="K_NON_ACCESSIBLE" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_j0qjFGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant indicating that files matching the rule's pattern are non accessible.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_j0qjFWEMEeCdEc4VzBeWeQ" name="K_DISCOURAGED" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_j0qjFmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant indicating that access to the files matching the rule's pattern is discouraged.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_j0qjF2EMEeCdEc4VzBeWeQ" name="IGNORE_IF_BETTER" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_j0qjGGEMEeCdEc4VzBeWeQ">
+ <body>
+ * &lt;p>Flag indicating that whether a type matching this rule should be ignored iff a type with
+ * the same qualified name can be found on a later classpath entry with a better
+ * accessibility.&lt;/p>
+ * &lt;p>E.g. if a type p.X matches a rule K_NON_ACCESSIBLE | IGNORE_IF_BETTER
+ * on a library entry 'lib1' and another type p.X also matches a rule
+ * K_DISCOURAGED on library entry 'lib2' ('lib2' being after 'lib1' on the
+ * classpath), then p.X from 'lib2' will be used and reported as
+ * discouraged.&lt;/p>
+ *
+ * @since 3.2
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_j00UEGEMEeCdEc4VzBeWeQ" name="getPattern">
+ <ownedComment xmi:id="_j00UEWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the file pattern for this access rule.
+ *
+ * @return the file pattern for this access rule
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j00UE2EMEeCdEc4VzBeWeQ" type="_j00UEmEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_j00UFGEMEeCdEc4VzBeWeQ" name="getKind">
+ <ownedComment xmi:id="_j00UFWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the kind of this access rule (one of {@link #K_ACCESSIBLE}, {@link #K_NON_ACCESSIBLE}
+ * or {@link #K_DISCOURAGED}).
+ *
+ * @return the kind of this access rule
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j00UFmEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_j00UF2EMEeCdEc4VzBeWeQ" name="ignoreIfBetter">
+ <ownedComment xmi:id="_j00UGGEMEeCdEc4VzBeWeQ">
+ <body>
+ * &lt;p>Returns whether a type matching this rule should be ignored iff a type with
+ * the same qualified name can be found on a later classpath entry with a better
+ * accessibility.&lt;/p>
+ * &lt;p>E.g. if a type p.X matches a rule K_NON_ACCESSIBLE | IGNORE_IF_BETTER
+ * on a library entry 'lib1' and another type p.X also matches a rule
+ * K_DISCOURAGED on library entry 'lib2' ('lib2' being after 'lib1' on the
+ * classpath), then p.X from 'lib2' will be used and reported as
+ * discouraged.&lt;/p>
+ *
+ * @return whether a type matching this rule should be ignored iff a type
+ * with the same qualified name can be found on a later classpath
+ * entry with a better accessibility
+ * @since 3.2
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j00UGWEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_j09eAGEMEeCdEc4VzBeWeQ" name="IAnnotatable">
+ <ownedComment xmi:id="_j09eAWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Common protocol for Java elements that can be annotated.
+ * &lt;p>
+ * This interface is not intended to be implemented by clients.
+ * &lt;/p>
+ *
+ * @since 3.4
+ </body>
+ </ownedComment>
+ <ownedOperation xmi:id="_j09eAmEMEeCdEc4VzBeWeQ" name="getAnnotation">
+ <ownedComment xmi:id="_j09eA2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the annotation with the given name declared on this element.
+ * This is a handle-only method. The annotation may or may not exist.
+ *
+ * @param name the given simple name
+ * @return the annotation with the given name declared on this element
+ </body>
+ </ownedComment>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_j1HPAGEMEeCdEc4VzBeWeQ" name="IAnnotation">
+ <ownedComment xmi:id="_j1HPAWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Represents an annotation on a package declaration, a type, a method, a field
+ * or a local variable in a compilation unit or a class file.
+ * &lt;p>
+ * Annotations are obtained using {@link IAnnotatable#getAnnotation(String)}.
+ * &lt;/p>&lt;p>
+ * Note that annotations are not children of their declaring element.
+ * To get a list of the annotations use {@link IAnnotatable#getAnnotations()}.
+ * &lt;/p>
+ * &lt;p>
+ * This interface is not intended to be implemented or extended by clients.
+ * &lt;/p>
+ *
+ * @since 3.4
+ </body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_j1aJ8GEMEeCdEc4VzBeWeQ" name="IBuffer">
+ <ownedComment xmi:id="_j1aJ8WEMEeCdEc4VzBeWeQ">
+ <body>
+ * A buffer contains the text contents of a resource. It is not language-specific.
+ * The contents may be in the process of being edited, differing from the actual contents of the
+ * underlying resource. A buffer has an owner, which is an &lt;code>IOpenable&lt;/code>.
+ * If a buffer does not have an underlying resource, saving the buffer has no effect.
+ * Buffers can be read-only.
+ * &lt;p>
+ * Note that java model operations that manipulate an &lt;code>IBuffer&lt;/code> (for example,
+ * &lt;code>IType.createMethod(...)&lt;/code>) ensures that the same line delimiter
+ * (either &lt;code>&quot;\n&quot;&lt;/code> or &lt;code>&quot;\r&quot;&lt;/code> or &lt;code>&quot;\r\n&quot;&lt;/code>) is
+ * used across the whole buffer. Thus these operations may change the line delimiter(s)
+ * included in the string to be append, or replaced.
+ * However implementers of this interface should be aware that other clients of &lt;code>IBuffer&lt;/code>
+ * might not do such transformations beforehand.
+ * &lt;p>
+ * This interface may be implemented by clients.
+ * &lt;/p>
+ </body>
+ </ownedComment>
+ <nestedClassifier xmi:type="uml:Interface" xmi:id="_j1aJ8mEMEeCdEc4VzBeWeQ" name="ITextEditCapability">
+ <ownedComment xmi:id="_j1aJ82EMEeCdEc4VzBeWeQ">
+ <body>
+ * Implementors of {@link IBuffer} can additionally implement {@link IBuffer.ITextEditCapability}.
+ * This adds the capability to apply text edits to the buffer and will be used by
+ * {@link ICompilationUnit#applyTextEdit(TextEdit, IProgressMonitor)}.
+ *
+ * &lt;p>
+ * This interface may be implemented by clients.
+ * &lt;/p>
+ * @since 3.4
+ </body>
+ </ownedComment>
+ <ownedOperation xmi:id="_j1j68GEMEeCdEc4VzBeWeQ" name="applyTextEdit" visibility="public">
+ <ownedComment xmi:id="_j1j68WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Applies a text edit to this underlying buffer.
+ *
+ * @param edit the edit to apply
+ * @param monitor the progress monitor to use or &lt;code>null&lt;/code> if no progress should be reported
+ * @return the undo edit
+ * @throws JavaModelException if this edit can not be applied to the buffer. Reasons include:
+ * &lt;ul>
+ * &lt;li>The provided edit can not be applied as there is a problem with the text edit locations ({@link IJavaModelStatusConstants#BAD_TEXT_EDIT_LOCATION})}.&lt;/li>
+ * &lt;/ul>
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j1j682EMEeCdEc4VzBeWeQ" type="_j1j68mEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_j1j69GEMEeCdEc4VzBeWeQ" name="edit" type="_j1aJ-WEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_j1j69WEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ </nestedClassifier>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_j1214GEMEeCdEc4VzBeWeQ" name="IBufferChangedListener">
+ <ownedComment xmi:id="_j1214WEMEeCdEc4VzBeWeQ">
+ <body>
+ * A listener, which gets notified when the contents of a specific buffer
+ * have changed, or when the buffer is closed.
+ * When a buffer is closed, the listener is notified &lt;em>after&lt;/em> the buffer has been closed.
+ * A listener is not notified when a buffer is saved.
+ * &lt;p>
+ * This interface may be implemented by clients.
+ * &lt;/p>
+ </body>
+ </ownedComment>
+ <ownedOperation xmi:id="_j1214mEMEeCdEc4VzBeWeQ" name="bufferChanged" visibility="public">
+ <ownedComment xmi:id="_j12142EMEeCdEc4VzBeWeQ">
+ <body>
+ * Notifies that the given event has occurred.
+ *
+ * @param event the change event
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j1215GEMEeCdEc4VzBeWeQ" name="event" type="_dV-BUGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_j2Am4GEMEeCdEc4VzBeWeQ" name="IBufferFactory">
+ <ownedComment xmi:id="_j2Am4WEMEeCdEc4VzBeWeQ">
+ <body>
+ * A factory that creates &lt;code>IBuffer&lt;/code>s for openables.
+ * &lt;p>
+ * This interface may be implemented by clients.
+ * &lt;/p>
+ * @since 2.0
+ * @deprecated Use {@link WorkingCopyOwner} instead
+ </body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_j2Jw0GEMEeCdEc4VzBeWeQ" name="IClassFile">
+ <ownedComment xmi:id="_j2Jw0WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Represents an entire binary type (single &lt;code>.class&lt;/code> file).
+ * A class file has a single child of type &lt;code>IType&lt;/code>.
+ * Class file elements need to be opened before they can be navigated.
+ * If a class file cannot be parsed, its structure remains unknown. Use
+ * &lt;code>IJavaElement.isStructureKnown&lt;/code> to determine whether this is the
+ * case.
+ * &lt;p>
+ * Note: &lt;code>IClassFile&lt;/code> extends &lt;code>ISourceReference&lt;/code>.
+ * Source can be obtained for a class file if and only if source has been attached to this
+ * class file. The source associated with a class file is the source code of
+ * the compilation unit it was (nominally) generated from.
+ * &lt;/p>
+ *
+ * @see IPackageFragmentRoot#attachSource(org.eclipse.core.runtime.IPath, org.eclipse.core.runtime.IPath, IProgressMonitor)
+ * @noimplement This interface is not intended to be implemented by clients.
+ </body>
+ </ownedComment>
+ <generalization xmi:id="_pnrtwGEQEeCdEc4VzBeWeQ" general="_kyNJYGEMEeCdEc4VzBeWeQ"/>
+ <ownedOperation xmi:id="_pnrtwWEQEeCdEc4VzBeWeQ" name="becomeWorkingCopy">
+ <ownedComment xmi:id="_pnrtwmEQEeCdEc4VzBeWeQ">
+ <body>
+ * Changes this class file handle into a working copy. A new {@link IBuffer} is
+ * created using the given owner. Uses the primary owner if &lt;code>null&lt;/code> is
+ * specified.
+ * &lt;p>
+ * When switching to working copy mode, problems are reported to the given
+ * {@link IProblemRequestor}. Note that once in working copy mode, the given
+ * {@link IProblemRequestor} is ignored. Only the original {@link IProblemRequestor}
+ * is used to report subsequent problems.
+ * &lt;/p>
+ * &lt;p>
+ * Once in working copy mode, changes to this working copy or its children are done in memory.
+ * Only the new buffer is affected.
+ * &lt;/p>
+ * &lt;p>
+ * Using {@link ICompilationUnit#commitWorkingCopy(boolean, IProgressMonitor)} on the working copy
+ * will throw a &lt;code>JavaModelException&lt;/code> as a class file is implicetly read-only.
+ * &lt;/p>
+ * &lt;p>
+ * If this class file was already in working copy mode, an internal counter is incremented and no
+ * other action is taken on this working copy. To bring this working copy back into the original mode
+ * (where it reflects the underlying resource), {@link ICompilationUnit#discardWorkingCopy} must be call as many
+ * times as {@link #becomeWorkingCopy(IProblemRequestor, WorkingCopyOwner, IProgressMonitor)}.
+ * &lt;/p>
+ * &lt;p>
+ * The primary compilation unit of a class file's working copy does not exist if the class file is not
+ * in working copy mode (&lt;code>classFileWorkingCopy.getPrimary().exists() == false&lt;/code>).
+ * &lt;/p>
+ * &lt;p>
+ * The resource of a class file's working copy is &lt;code>null&lt;/code> if the class file is in an external jar file.
+ * &lt;/p>
+ *
+ * @param problemRequestor a requestor which will get notified of problems detected during
+ * reconciling as they are discovered. The requestor can be set to &lt;code>null&lt;/code> indicating
+ * that the client is not interested in problems.
+ * @param owner the given {@link WorkingCopyOwner}, or &lt;code>null&lt;/code> for the primary owner
+ * @param monitor a progress monitor used to report progress while opening this compilation unit
+ * or &lt;code>null&lt;/code> if no progress should be reported
+ * @return a working copy for this class file
+ * @throws JavaModelException if this compilation unit could not become a working copy.
+ * @see ICompilationUnit#discardWorkingCopy()
+ * @since 3.2
+ * @deprecated Use {@link ITypeRoot#getWorkingCopy(WorkingCopyOwner, IProgressMonitor)} instead.
+ * Note that if this deprecated method is used, problems will be reported to the given problem requestor
+ * as well as the problem requestor returned by the working copy owner (if not null).
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_pn03sGEQEeCdEc4VzBeWeQ" type="_j-plgGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_pn03sWEQEeCdEc4VzBeWeQ" name="problemRequestor" type="_krNJgGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_pn-osGEQEeCdEc4VzBeWeQ" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_pn-osWEQEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_poIZsGEQEeCdEc4VzBeWeQ" name="getBytes">
+ <ownedComment xmi:id="_poIZsWEQEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the bytes contained in this class file.
+ *
+ * @return the bytes contained in this class file
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ * @since 3.3
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_poIZs2EQEeCdEc4VzBeWeQ" type="_poIZsmEQEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_poRjoWEQEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_poRjoGEQEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_pobUoGEQEeCdEc4VzBeWeQ" name="getType">
+ <ownedComment xmi:id="_pobUoWEQEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the type contained in this class file.
+ * This is a handle-only method. The type may or may not exist.
+ *
+ * @return the type contained in this class file
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_pobUomEQEeCdEc4VzBeWeQ" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_pobUo2EQEeCdEc4VzBeWeQ" name="getWorkingCopy">
+ <ownedComment xmi:id="_pobUpGEQEeCdEc4VzBeWeQ">
+ <body>
+ * Returns a working copy on the source associated with this class file using the given
+ * factory to create the buffer, or &lt;code>null&lt;/code> if there is no source associated
+ * with the class file.
+ * &lt;p>
+ * The buffer will be automatically initialized with the source of the class file
+ * upon creation.
+ * &lt;p>
+ * The only valid operations on this working copy are &lt;code>getBuffer()&lt;/code> or &lt;code>getOriginalElement&lt;/code>.
+ *
+ * @param monitor a progress monitor used to report progress while opening this compilation unit
+ * or &lt;code>null&lt;/code> if no progress should be reported
+ * @param factory the factory that creates a buffer that is used to get the content of the working copy
+ * or &lt;code>null&lt;/code> if the internal factory should be used
+ * @return a a working copy on the source associated with this class file
+ * @exception JavaModelException if the source of this class file can
+ * not be determined. Reasons include:
+ * &lt;ul>
+ * &lt;li> This class file does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;/ul>
+ * @since 2.0
+ * @deprecated Use {@link ITypeRoot#getWorkingCopy(WorkingCopyOwner, IProgressMonitor)} instead
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_polFoGEQEeCdEc4VzBeWeQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_polFoWEQEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_pouPkGEQEeCdEc4VzBeWeQ" name="factory" type="_j2Am4GEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_pouPkWEQEeCdEc4VzBeWeQ" name="isClass">
+ <ownedComment xmi:id="_pouPkmEQEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether this type represents a class. This is not guaranteed to be
+ * instantaneous, as it may require parsing the underlying file.
+ *
+ * @return &lt;code>true&lt;/code> if the class file represents a class.
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_po4AkGEQEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_po4AkWEQEeCdEc4VzBeWeQ" name="isInterface">
+ <ownedComment xmi:id="_po4AkmEQEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether this type represents an interface. This is not guaranteed to
+ * be instantaneous, as it may require parsing the underlying file.
+ *
+ * @return &lt;code>true&lt;/code> if the class file represents an interface.
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_po4Ak2EQEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_j25-wGEMEeCdEc4VzBeWeQ" name="IClasspathAttribute">
+ <ownedComment xmi:id="_j25-wWEMEeCdEc4VzBeWeQ">
+ <body>
+ * A classpath attribute defines a name/value pair that can be persisted with a classpath entry. Such an attribute
+ * can be created using the factory method {@link JavaCore#newClasspathAttribute(String, String) newClasspathAttribute(String name, String value)}.
+ *
+ * @see JavaCore#newContainerEntry(
+ * org.eclipse.core.runtime.IPath containerPath,
+ * IAccessRule[] accessRules,
+ * IClasspathAttribute[] extraAttributes,
+ * boolean isExported)
+ * @see JavaCore#newLibraryEntry(
+ * org.eclipse.core.runtime.IPath path,
+ * org.eclipse.core.runtime.IPath sourceAttachmentPath,
+ * org.eclipse.core.runtime.IPath sourceAttachmentRootPath,
+ * IAccessRule[] accessRules,
+ * IClasspathAttribute[] extraAttributes,
+ * boolean isExported)
+ * @see JavaCore#newProjectEntry(
+ * org.eclipse.core.runtime.IPath path,
+ * IAccessRule[] accessRules,
+ * boolean combineAccessRestrictions,
+ * IClasspathAttribute[] extraAttributes,
+ * boolean isExported)
+ * @see JavaCore#newSourceEntry(
+ * org.eclipse.core.runtime.IPath path,
+ * org.eclipse.core.runtime.IPath[] inclusionPatterns,
+ * org.eclipse.core.runtime.IPath[] exclusionPatterns,
+ * org.eclipse.core.runtime.IPath specificOutputLocation,
+ * IClasspathAttribute[] extraAttributes)
+ * @see JavaCore#newVariableEntry(
+ * org.eclipse.core.runtime.IPath variablePath,
+ * org.eclipse.core.runtime.IPath variableSourceAttachmentPath,
+ * org.eclipse.core.runtime.IPath variableSourceAttachmentRootPath,
+ * IAccessRule[] accessRules,
+ * IClasspathAttribute[] extraAttributes,
+ * boolean isExported)
+ * @since 3.1
+ * @noimplement This interface is not intended to be implemented by clients.
+ </body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_j25-wmEMEeCdEc4VzBeWeQ" name="JAVADOC_LOCATION_ATTRIBUTE_NAME" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_j25-w2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant for the name of the javadoc location attribute.
+ *
+ * &lt;p>The value for this attribute has to be the string representation of a URL.&lt;/p>
+ *
+ * @since 3.1
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_j25-xGEMEeCdEc4VzBeWeQ" name="OPTIONAL" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_j25-xWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant for the name of the optional attribute. The possible values
+ * for this attribute are &lt;code>&quot;true&quot;&lt;/code> or &lt;code>&quot;false&quot;&lt;/code>.
+ * When not present, &lt;code>&quot;false&quot;&lt;/code> is assumed.
+ * If the value of this attribute is &lt;code>&quot;true&quot;&lt;/code>, the classpath entry
+ * is optional. If the underlying resource or jar file doesn't exist, no error
+ * is reported and the classpath entry is ignored.
+ *
+ * @since 3.2
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_j25-xmEMEeCdEc4VzBeWeQ" name="getName">
+ <ownedComment xmi:id="_j25-x2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the name of this classpath attribute.
+ *
+ * @return the name of this classpath attribute.
+ * @since 3.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j3DIsGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_j3DIsWEMEeCdEc4VzBeWeQ" name="getValue">
+ <ownedComment xmi:id="_j3DIsmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the value of this classpath attribute.
+ *
+ * @return the value of this classpath attribute.
+ * @since 3.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j3DIs2EMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_j3DItGEMEeCdEc4VzBeWeQ" name="IClasspathContainer">
+ <ownedComment xmi:id="_j3M5sGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Interface of a classpath container.
+ * A classpath container provides a way to indirectly reference a set of classpath entries through
+ * a classpath entry of kind &lt;code>CPE_CONTAINER&lt;/code>. Typically, a classpath container can
+ * be used to describe a complex library composed of multiple JARs or projects, considering also
+ * that containers can map to different set of entries on each project, in other words, several
+ * projects can reference the same generic container path, but have each of them actually bound
+ * to a different container object.
+ * &lt;p>
+ * The set of entries associated with a classpath container may contain any of the following:
+ * &lt;ul>
+ * &lt;li> library entries (&lt;code>CPE_LIBRARY&lt;/code>) &lt;/li>
+ * &lt;li> project entries (&lt;code>CPE_PROJECT&lt;/code>) &lt;/li>
+ * &lt;/ul>
+ * In particular, a classpath container can neither reference further classpath containers or classpath variables.
+ * &lt;p>
+ * A library entry can reference other libraries through the Class-Path section of the JAR's MANIFEST.MF file. If the
+ * container wants such referenced entries to be part of the classpath, the container must explicitly add them to the
+ * array returned from {@link #getClasspathEntries()}.
+ * &lt;p>
+ * Classpath container values are persisted locally to the workspace, but are not preserved from a
+ * session to another. It is thus highly recommended to register a &lt;code>ClasspathContainerInitializer&lt;/code>
+ * for each referenced container (through the extension point &quot;org.eclipse.jdt.core.ClasspathContainerInitializer&quot;).
+ * &lt;p>
+ * @see IClasspathEntry
+ * @since 2.0
+ </body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_j3M5sWEMEeCdEc4VzBeWeQ" name="K_APPLICATION" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_j3M5smEMEeCdEc4VzBeWeQ">
+ <body>
+ * Kind for a container mapping to an application library
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_j3M5s2EMEeCdEc4VzBeWeQ" name="K_SYSTEM" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_j3M5tGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Kind for a container mapping to a system library
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_j3M5tWEMEeCdEc4VzBeWeQ" name="K_DEFAULT_SYSTEM" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_j3M5tmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Kind for a container mapping to a default system library, implicitly contributed by the runtime
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_j3M5t2EMEeCdEc4VzBeWeQ" name="getClasspathEntries">
+ <ownedComment xmi:id="_j3M5uGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Answers the set of classpath entries this container is mapping to.
+ * &lt;p>
+ * The set of entries associated with a classpath container may contain any of the following:
+ * &lt;ul>
+ * &lt;li> library entries (&lt;code>CPE_LIBRARY&lt;/code>) &lt;/li>
+ * &lt;li> project entries (&lt;code>CPE_PROJECT&lt;/code>) &lt;/li>
+ * &lt;/ul>
+ * A classpath container can neither reference further classpath containers
+ * or classpath variables.
+ * &lt;p>
+ * A library entry can reference other libraries through the Class-Path section of the JAR's MANIFEST.MF file. If
+ * the container wants such referenced entries to be part of the classpath, the container must explicitly add them
+ * to the result.
+ * &lt;p>
+ * This method is called by the Java model when it needs to resolve this
+ * classpath container entry into a list of library and project entries.
+ * The method is typically called exactly once for a given Java project,
+ * and the resulting list of entries cached internally by the Java model.
+ * This method must not be called by other clients.
+ * &lt;p>
+ * There are a wide variety of conditions under which this method may be
+ * invoked. To ensure that the implementation does not interfere with
+ * correct functioning of the Java model, the implementation should use
+ * only the following Java model APIs:
+ * &lt;ul>
+ * &lt;li>{@link JavaCore#newLibraryEntry(IPath, IPath, IPath, boolean)} and variants&lt;/li>
+ * &lt;li>{@link JavaCore#newProjectEntry(IPath, boolean)} and variants&lt;/li>
+ * &lt;li>{@link JavaCore#create(org.eclipse.core.resources.IWorkspaceRoot)}&lt;/li>
+ * &lt;li>{@link JavaCore#create(org.eclipse.core.resources.IProject)}&lt;/li>
+ * &lt;li>{@link JavaCore#getReferencedClasspathEntries(IClasspathEntry, IJavaProject)} with &lt;code>null&lt;/code> as project&lt;/li>
+ * &lt;li>{@link IJavaModel#getJavaProjects()}&lt;/li>
+ * &lt;li>{@link IJavaProject#getRawClasspath()}&lt;/li>
+ * &lt;li>{@link IJavaProject#readRawClasspath()}&lt;/li>
+ * &lt;li>{@link IJavaProject#getOutputLocation()}&lt;/li>
+ * &lt;li>{@link IJavaProject#readOutputLocation()}&lt;/li>
+ * &lt;li>Java element operations marked as &quot;handle-only&quot;&lt;/li>
+ * &lt;/ul>
+ * The effects of using other Java model APIs are unspecified.
+ * &lt;/p>
+ *
+ * @return IClasspathEntry[] - the classpath entries this container represents
+ * @see IClasspathEntry
+ </body>
+ </ownedComment>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_j4GRkGEMEeCdEc4VzBeWeQ" name="IClasspathEntry">
+ <ownedComment xmi:id="_j4GRkWEMEeCdEc4VzBeWeQ">
+ <body>
+ * An entry on a Java project classpath identifying one or more package fragment
+ * roots. A classpath entry has a content kind (either source,
+ * {@link IPackageFragmentRoot#K_SOURCE}, or binary, {@link IPackageFragmentRoot#K_BINARY}), which is inherited
+ * by each package fragment root and package fragment associated with the entry.
+ * &lt;p>
+ * A classpath entry can refer to any of the following:&lt;ul>
+ *
+ * &lt;li>Source code in the current project. In this case, the entry identifies a
+ * root folder in the current project containing package fragments and
+ * source files with one of the {@link JavaCore#getJavaLikeExtensions()
+ * Java-like extensions}. The root folder itself represents a default
+ * package, subfolders represent package fragments, and files with a
+ * Java-like extension (e.g. &lt;code>.java&lt;/code> files)
+ * represent compilation units. All compilation units will be compiled when
+ * the project is built. The classpath entry must specify the
+ * absolute path to the root folder. Entries of this kind are
+ * associated with the {@link #CPE_SOURCE} constant.
+ * Source classpath entries can carry inclusion and exclusion patterns for
+ * selecting which source files appear as compilation
+ * units and get compiled when the project is built.
+ * &lt;/li>
+ *
+ * &lt;li>A binary library in the current project, in another project, or in the external
+ * file system. In this case the entry identifies a JAR (or root folder) containing
+ * package fragments and &lt;code>.class&lt;/code> files. The classpath entry
+ * must specify the absolute path to the JAR (or root folder), and in case it refers
+ * to an external JAR, then there is no associated resource in the workbench. Entries
+ * of this kind are associated with the {@link #CPE_LIBRARY} constant.&lt;/li>
+ *
+ * &lt;li>A required project. In this case the entry identifies another project in
+ * the workspace. The required project is used as a binary library when compiling
+ * (that is, the builder looks in the output location of the required project
+ * for required &lt;code>.class&lt;/code> files when building). When performing other
+ * &quot;development&quot; operations - such as code assist, code resolve, type hierarchy
+ * creation, etc. - the source code of the project is referred to. Thus, development
+ * is performed against a required project's source code, and compilation is
+ * performed against a required project's last built state. The
+ * classpath entry must specify the absolute path to the
+ * project. Entries of this kind are associated with the {@link #CPE_PROJECT}
+ * constant.
+ * Note: referencing a required project with a classpath entry refers to the source
+ * code or associated &lt;code>.class&lt;/code> files located in its output location.
+ * It will also automatically include any other libraries or projects that the required project's classpath
+ * refers to, iff the corresponding classpath entries are tagged as being exported
+ * ({@link IClasspathEntry#isExported}).
+ * Unless exporting some classpath entries, classpaths are not chained by default -
+ * each project must specify its own classpath in its entirety.&lt;/li>
+ *
+ * &lt;li> A path beginning in a classpath variable defined globally to the workspace.
+ * Entries of this kind are associated with the {@link #CPE_VARIABLE} constant.
+ * Classpath variables are created using {@link JavaCore#setClasspathVariable(String, IPath, org.eclipse.core.runtime.IProgressMonitor)},
+ * and gets resolved, to either a project or library entry, using
+ * {@link JavaCore#getResolvedClasspathEntry(IClasspathEntry)}.
+ * It is also possible to register an automatic initializer ({@link ClasspathVariableInitializer}),
+ * which will be invoked through the extension point &quot;org.eclipse.jdt.core.classpathVariableInitializer&quot;.
+ * After resolution, a classpath variable entry may either correspond to a project or a library entry. &lt;/li>
+ *
+ * &lt;li> A named classpath container identified by its container path.
+ * A classpath container provides a way to indirectly reference a set of classpath entries through
+ * a classpath entry of kind {@link #CPE_CONTAINER}. Typically, a classpath container can
+ * be used to describe a complex library composed of multiple JARs, projects or classpath variables,
+ * considering also that containers can be mapped differently on each project. Several projects can
+ * reference the same generic container path, but have each of them actually bound to a different
+ * container object.
+ * The container path is a formed by a first ID segment followed with extra segments,
+ * which can be used as additional hints for resolving this container reference. If no container was ever
+ * recorded for this container path onto this project (using {@link JavaCore#setClasspathContainer},
+ * then a {@link ClasspathContainerInitializer} will be activated if any was registered for this
+ * container ID onto the extension point &quot;org.eclipse.jdt.core.classpathContainerInitializer&quot;.
+ * A classpath container entry can be resolved explicitly using {@link JavaCore#getClasspathContainer}
+ * and the resulting container entries can contain any non-container entry. In particular, it may contain variable
+ * entries, which in turn needs to be resolved before being directly used.
+ * &lt;br> Also note that the container resolution APIs include an IJavaProject argument, so as to allow the same
+ * container path to be interpreted in different ways for different projects. &lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ * The result of {@link IJavaProject#getResolvedClasspath} will have all entries of type
+ * {@link #CPE_VARIABLE} and {@link #CPE_CONTAINER} resolved to a set of
+ * {@link #CPE_SOURCE}, {@link #CPE_LIBRARY} or {@link #CPE_PROJECT}
+ * classpath entries.
+ * &lt;p>
+ * Any classpath entry other than a source folder (kind {@link #CPE_SOURCE}) can
+ * be marked as being exported. Exported entries are automatically contributed to
+ * dependent projects, along with the project's default output folder, which is
+ * implicitly exported, and any auxiliary output folders specified on source
+ * classpath entries. The project's output folder(s) are always listed first,
+ * followed by the any exported entries.
+ * &lt;p>
+ * Classpath entries can be created via methods on {@link JavaCore}.
+ * &lt;/p>
+ *
+ * @see JavaCore#newLibraryEntry(org.eclipse.core.runtime.IPath, org.eclipse.core.runtime.IPath, org.eclipse.core.runtime.IPath)
+ * @see JavaCore#newProjectEntry(org.eclipse.core.runtime.IPath)
+ * @see JavaCore#newSourceEntry(org.eclipse.core.runtime.IPath)
+ * @see JavaCore#newVariableEntry(org.eclipse.core.runtime.IPath, org.eclipse.core.runtime.IPath, org.eclipse.core.runtime.IPath)
+ * @see JavaCore#newContainerEntry(org.eclipse.core.runtime.IPath)
+ * @see ClasspathVariableInitializer
+ * @see ClasspathContainerInitializer
+ * @noimplement This interface is not intended to be implemented by clients.
+ </body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_j4PbgGEMEeCdEc4VzBeWeQ" name="CPE_LIBRARY" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_j4PbgWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Entry kind constant describing a classpath entry identifying a
+ * library. A library is a folder or JAR containing package
+ * fragments consisting of pre-compiled binaries.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_j4PbgmEMEeCdEc4VzBeWeQ" name="CPE_PROJECT" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_j4Pbg2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Entry kind constant describing a classpath entry identifying a
+ * required project.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_j4PbhGEMEeCdEc4VzBeWeQ" name="CPE_SOURCE" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_j4ZMgGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Entry kind constant describing a classpath entry identifying a
+ * folder containing package fragments with source code
+ * to be compiled.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_j4ZMgWEMEeCdEc4VzBeWeQ" name="CPE_VARIABLE" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_j4ZMgmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Entry kind constant describing a classpath entry defined using
+ * a path that begins with a classpath variable reference.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_j4ZMg2EMEeCdEc4VzBeWeQ" name="CPE_CONTAINER" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_j4ZMhGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Entry kind constant describing a classpath entry representing
+ * a name classpath container.
+ *
+ * @since 2.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_j4ZMhWEMEeCdEc4VzBeWeQ" name="combineAccessRules">
+ <ownedComment xmi:id="_j4ZMhmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether the access rules of the project's exported entries should be combined with this entry's access rules.
+ * Returns true for container entries.
+ * Returns false otherwise.
+ *
+ * @return whether the access rules of the project's exported entries should be combined with this entry's access rules
+ * @since 3.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j4ZMh2EMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_j4ZMiGEMEeCdEc4VzBeWeQ" name="getAccessRules">
+ <ownedComment xmi:id="_j4ZMiWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the possibly empty list of access rules for this entry.
+ *
+ * @return the possibly empty list of access rules for this entry
+ * @since 3.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j4iWcGEMEeCdEc4VzBeWeQ" type="_j0hZIGEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j4iWcmEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j4iWcWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_j4iWc2EMEeCdEc4VzBeWeQ" name="getContentKind">
+ <ownedComment xmi:id="_j4iWdGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the kind of files found in the package fragments identified by this
+ * classpath entry.
+ *
+ * @return {@link IPackageFragmentRoot#K_SOURCE} for files containing
+ * source code, and {@link IPackageFragmentRoot#K_BINARY} for binary
+ * class files.
+ * There is no specified value for an entry denoting a variable ({@link #CPE_VARIABLE})
+ * or a classpath container ({@link #CPE_CONTAINER}).
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j4iWdWEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_j4iWdmEMEeCdEc4VzBeWeQ" name="getEntryKind">
+ <ownedComment xmi:id="_j4iWd2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the kind of this classpath entry.
+ *
+ * @return one of:
+ * &lt;ul>
+ * &lt;li>{@link #CPE_SOURCE} - this entry describes a source root in
+ its project
+ * &lt;li>{@link #CPE_LIBRARY} - this entry describes a folder or JAR
+ containing binaries
+ * &lt;li>{@link #CPE_PROJECT} - this entry describes another project
+ *
+ * &lt;li>{@link #CPE_VARIABLE} - this entry describes a project or library
+ * indirectly via a classpath variable in the first segment of the path
+ * *
+ * &lt;li>{@link #CPE_CONTAINER} - this entry describes set of entries
+ * referenced indirectly via a classpath container
+ * &lt;/ul>
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j4iWeGEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_j4iWeWEMEeCdEc4VzBeWeQ" name="getExclusionPatterns">
+ <ownedComment xmi:id="_j4iWemEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the set of patterns used to exclude resources or classes associated with
+ * this classpath entry.
+ * &lt;p>
+ * For source classpath entries,
+ * exclusion patterns allow specified portions of the resource tree rooted
+ * at this source entry's path to be filtered out. If no exclusion patterns
+ * are specified, this source entry includes all relevent files. Each path
+ * specified must be a relative path, and will be interpreted relative
+ * to this source entry's path. File patterns are case-sensitive. A file
+ * matched by one or more of these patterns is excluded from the
+ * corresponding package fragment root.
+ * Exclusion patterns have higher precedence than inclusion patterns;
+ * in other words, exclusion patterns can remove files for the ones that
+ * are to be included, not the other way around.
+ * &lt;/p>
+ * &lt;p>
+ * Note that there is no need to supply a pattern to exclude &quot;.class&quot; files
+ * because a source entry filters these out automatically.
+ * &lt;/p>
+ * &lt;p>
+ * The pattern mechanism is similar to Ant's. Each pattern is represented as
+ * a relative path. The path segments can be regular file or folder names or simple patterns
+ * involving standard wildcard characters.
+ * &lt;/p>
+ * &lt;p>
+ * '*' matches 0 or more characters within a segment. So
+ * &lt;code>*.java&lt;/code> matches &lt;code>.java&lt;/code>, &lt;code>a.java&lt;/code>
+ * and &lt;code>Foo.java&lt;/code>, but not &lt;code>Foo.properties&lt;/code>
+ * (does not end with &lt;code>.java&lt;/code>).
+ * &lt;/p>
+ * &lt;p>
+ * '?' matches 1 character within a segment. So &lt;code>?.java&lt;/code>
+ * matches &lt;code>a.java&lt;/code>, &lt;code>A.java&lt;/code>,
+ * but not &lt;code>.java&lt;/code> or &lt;code>xyz.java&lt;/code> (neither have
+ * just one character before &lt;code>.java&lt;/code>).
+ * &lt;/p>
+ * &lt;p>
+ * Combinations of *'s and ?'s are allowed.
+ * &lt;/p>
+ * &lt;p>
+ * The special pattern '**' matches zero or more segments. In a source entry,
+ * a path like &lt;code>tests/&lt;/code> that ends in a trailing separator is interpreted
+ * as &lt;code>tests/&amp;#42;&amp;#42;&lt;/code>, and would match everything under
+ * the folder named &lt;code>tests&lt;/code>.
+ * &lt;/p>
+ * &lt;p>
+ * Example patterns in source entries (assuming that &quot;java&quot; is the only {@link JavaCore#getJavaLikeExtensions() Java-like extension}):
+ * &lt;ul>
+ * &lt;li>
+ * &lt;code>tests/&amp;#42;&amp;#42;&lt;/code> (or simply &lt;code>tests/&lt;/code>)
+ * matches all files under a root folder
+ * named &lt;code>tests&lt;/code>. This includes &lt;code>tests/Foo.java&lt;/code>
+ * and &lt;code>tests/com/example/Foo.java&lt;/code>, but not
+ * &lt;code>com/example/tests/Foo.java&lt;/code> (not under a root folder named
+ * &lt;code>tests&lt;/code>).
+ * &lt;/li>
+ * &lt;li>
+ * &lt;code>tests/&amp;#42;&lt;/code> matches all files directly below a root
+ * folder named &lt;code>tests&lt;/code>. This includes &lt;code>tests/Foo.java&lt;/code>
+ * and &lt;code>tests/FooHelp.java&lt;/code>
+ * but not &lt;code>tests/com/example/Foo.java&lt;/code> (not directly under
+ * a folder named &lt;code>tests&lt;/code>) or
+ * &lt;code>com/Foo.java&lt;/code> (not under a folder named &lt;code>tests&lt;/code>).
+ * &lt;/li>
+ * &lt;li>
+ * &lt;code>&amp;#42;&amp;#42;/tests/&amp;#42;&amp;#42;&lt;/code> matches all files under any
+ * folder named &lt;code>tests&lt;/code>. This includes &lt;code>tests/Foo.java&lt;/code>,
+ * &lt;code>com/examples/tests/Foo.java&lt;/code>, and
+ * &lt;code>com/examples/tests/unit/Foo.java&lt;/code>, but not
+ * &lt;code>com/example/Foo.java&lt;/code> (not under a folder named
+ * &lt;code>tests&lt;/code>).
+ * &lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ *
+ * @return the possibly empty list of resource exclusion patterns
+ * associated with this classpath entry, or &lt;code>null&lt;/code> if this kind
+ * of classpath entry does not support exclusion patterns
+ * @since 2.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j4iWe2EMEeCdEc4VzBeWeQ" type="_j00UEmEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j4sHcWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j4sHcGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_j4sHcmEMEeCdEc4VzBeWeQ" name="getExtraAttributes">
+ <ownedComment xmi:id="_j4sHc2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the extra classpath attributes for this classpath entry. Returns an empty array if this entry
+ * has no extra attributes.
+ *
+ * @return the possibly empty list of extra classpath attributes for this classpath entry
+ * @since 3.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j4sHdGEMEeCdEc4VzBeWeQ" type="_j25-wGEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j4sHdmEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j4sHdWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_j4sHd2EMEeCdEc4VzBeWeQ" name="getInclusionPatterns">
+ <ownedComment xmi:id="_j4sHeGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the set of patterns used to explicitly define resources or classes
+ * to be included with this classpath entry.
+ * &lt;p>
+ * For source classpath entries,
+ * when no inclusion patterns are specified, the source entry includes all
+ * relevent files in the resource tree rooted at this source entry's path.
+ * Specifying one or more inclusion patterns means that only the specified
+ * portions of the resource tree are to be included. Each path specified
+ * must be a relative path, and will be interpreted relative to this source
+ * entry's path. File patterns are case-sensitive. A file matched by one or
+ * more of these patterns is included in the corresponding package fragment
+ * root unless it is excluded by one or more of this entrie's exclusion
+ * patterns. Exclusion patterns have higher precedence than inclusion
+ * patterns; in other words, exclusion patterns can remove files for the
+ * ones that are to be included, not the other way around.
+ * &lt;/p>
+ * &lt;p>
+ * See {@link #getExclusionPatterns()} for a discussion of the syntax and
+ * semantics of path patterns. The absence of any inclusion patterns is
+ * semantically equivalent to the explicit inclusion pattern
+ * &lt;code>&amp;#42;&amp;#42;&lt;/code>.
+ * &lt;/p>
+ * &lt;p>
+ * Example patterns in source entries:
+ * &lt;ul>
+ * &lt;li>
+ * The inclusion pattern &lt;code>src/&amp;#42;&amp;#42;&lt;/code> by itself includes all
+ * files under a root folder named &lt;code>src&lt;/code>.
+ * &lt;/li>
+ * &lt;li>
+ * The inclusion patterns &lt;code>src/&amp;#42;&amp;#42;&lt;/code> and
+ * &lt;code>tests/&amp;#42;&amp;#42;&lt;/code> includes all files under the root folders
+ * named &lt;code>src&lt;/code> and &lt;code>tests&lt;/code>.
+ * &lt;/li>
+ * &lt;li>
+ * The inclusion pattern &lt;code>src/&amp;#42;&amp;#42;&lt;/code> together with the
+ * exclusion pattern &lt;code>src/&amp;#42;&amp;#42;/Foo.java&lt;/code> includes all
+ * files under a root folder named &lt;code>src&lt;/code> except for ones
+ * named &lt;code>Foo.java&lt;/code>.
+ * &lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ *
+ * @return the possibly empty list of resource inclusion patterns
+ * associated with this classpath entry, or &lt;code>null&lt;/code> if this kind
+ * of classpath entry does not support inclusion patterns
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j4sHeWEMEeCdEc4VzBeWeQ" type="_j00UEmEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j4sHe2EMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j4sHemEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_j414cGEMEeCdEc4VzBeWeQ" name="getOutputLocation">
+ <ownedComment xmi:id="_j414cWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the full path to the specific location where the builder writes
+ * &lt;code>.class&lt;/code> files generated for this source entry
+ * (entry kind {@link #CPE_SOURCE}).
+ * &lt;p>
+ * Source entries can optionally be associated with a specific output location.
+ * If none is provided, the source entry will be implicitly associated with its project
+ * default output location (see {@link IJavaProject#getOutputLocation}).
+ * &lt;/p>&lt;p>
+ * NOTE: A specific output location cannot coincidate with another source/library entry.
+ * &lt;/p>
+ *
+ * @return the full path to the specific location where the builder writes
+ * &lt;code>.class&lt;/code> files for this source entry, or &lt;code>null&lt;/code>
+ * if using default output folder
+ * @since 2.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j414cmEMEeCdEc4VzBeWeQ" type="_j00UEmEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_j414c2EMEeCdEc4VzBeWeQ" name="getPath">
+ <ownedComment xmi:id="_j414dGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the path of this classpath entry.
+ *
+ * The meaning of the path of a classpath entry depends on its entry kind:&lt;ul>
+ * &lt;li>Source code in the current project ({@link #CPE_SOURCE}) -
+ * The path associated with this entry is the absolute path to the root folder. &lt;/li>
+ * &lt;li>A binary library in the current project ({@link #CPE_LIBRARY}) - the path
+ * associated with this entry is the absolute path to the JAR (or root folder), and
+ * in case it refers to an external library, then there is no associated resource in
+ * the workbench.
+ * &lt;li>A required project ({@link #CPE_PROJECT}) - the path of the entry denotes the
+ * path to the corresponding project resource.&lt;/li>
+ * &lt;li>A variable entry ({@link #CPE_VARIABLE}) - the first segment of the path
+ * is the name of a classpath variable. If this classpath variable
+ * is bound to the path &lt;i>P&lt;/i>, the path of the corresponding classpath entry
+ * is computed by appending to &lt;i>P&lt;/i> the segments of the returned
+ * path without the variable.&lt;/li>
+ * &lt;li> A container entry ({@link #CPE_CONTAINER}) - the path of the entry
+ * is the name of the classpath container, which can be bound indirectly to a set of classpath
+ * entries after resolution. The containerPath is a formed by a first ID segment followed with
+ * extra segments that can be used as additional hints for resolving this container
+ * reference (also see {@link IClasspathContainer}).
+ * &lt;/li>
+ * &lt;/ul>
+ *
+ * @return the path of this classpath entry
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j414dWEMEeCdEc4VzBeWeQ" type="_j00UEmEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_j414dmEMEeCdEc4VzBeWeQ" name="getSourceAttachmentPath">
+ <ownedComment xmi:id="_j414d2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the path to the source archive or folder associated with this
+ * classpath entry, or &lt;code>null&lt;/code> if this classpath entry has no
+ * source attachment.
+ * &lt;p>
+ * Only library and variable classpath entries may have source attachments.
+ * For library classpath entries, the result path (if present) locates a source
+ * archive or folder. This archive or folder can be located in a project of the
+ * workspace or outside the workspace. For variable classpath entries, the
+ * result path (if present) has an analogous form and meaning as the
+ * variable path, namely the first segment is the name of a classpath variable.
+ * &lt;/p>
+ *
+ * @return the path to the source archive or folder, or &lt;code>null&lt;/code> if none
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j414eGEMEeCdEc4VzBeWeQ" type="_j00UEmEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_j5IzYGEMEeCdEc4VzBeWeQ" name="getSourceAttachmentRootPath">
+ <ownedComment xmi:id="_j5IzYWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the path within the source archive or folder where package fragments
+ * are located. An empty path indicates that packages are located at
+ * the root of the source archive or folder. Returns a non-&lt;code>null&lt;/code> value
+ * if and only if {@link #getSourceAttachmentPath} returns
+ * a non-&lt;code>null&lt;/code> value.
+ *
+ * @return the path within the source archive or folder, or &lt;code>null&lt;/code> if
+ * not applicable
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j5IzYmEMEeCdEc4VzBeWeQ" type="_j00UEmEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_j5IzY2EMEeCdEc4VzBeWeQ" name="getReferencingEntry">
+ <ownedComment xmi:id="_j5IzZGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the classpath entry that is making a reference to this classpath entry. For entry kinds
+ * {@link #CPE_LIBRARY}, the return value is the entry that is representing the JAR that includes
+ * &lt;code>this&lt;/code> in the MANIFEST.MF file's Class-Path section. For entry kinds other than
+ * {@link #CPE_LIBRARY}, this returns &lt;code>null&lt;/code>. For those entries that are on the raw classpath already,
+ * this returns &lt;code>null&lt;/code>.
+ * &lt;p>
+ * It is possible that multiple library entries refer to the same entry
+ * via the MANIFEST.MF file. In those cases, this method returns the first classpath entry
+ * that appears in the raw classpath. However, this does not mean that the other referencing
+ * entries do not relate to their referenced entries.
+ * See {@link JavaCore#getReferencedClasspathEntries(IClasspathEntry, IJavaProject)} for
+ * more details.
+ * &lt;/p>
+ *
+ * @return the classpath entry that is referencing this entry or &lt;code>null&lt;/code> if
+ * not applicable.
+ * @since 3.6
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j5IzZWEMEeCdEc4VzBeWeQ" type="_j4GRkGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_j5IzZmEMEeCdEc4VzBeWeQ" name="isExported">
+ <ownedComment xmi:id="_j5IzZ2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether this entry is exported to dependent projects.
+ * Always returns &lt;code>false&lt;/code> for source entries (kind
+ * {@link #CPE_SOURCE}), which cannot be exported.
+ *
+ * @return &lt;code>true&lt;/code> if exported, and &lt;code>false&lt;/code> otherwise
+ * @since 2.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j5SkYGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_j5SkYWEMEeCdEc4VzBeWeQ" name="getResolvedEntry">
+ <ownedComment xmi:id="_j5SkYmEMEeCdEc4VzBeWeQ">
+ <body>
+ * This is a helper method, which returns the resolved classpath entry denoted
+ * by an entry (if it is a variable entry). It is obtained by resolving the variable
+ * reference in the first segment. Returns &lt;code>null&lt;/code> if unable to resolve using
+ * the following algorithm:
+ * &lt;ul>
+ * &lt;li> if variable segment cannot be resolved, returns &lt;code>null&lt;/code>&lt;/li>
+ * &lt;li> finds a project, JAR or binary folder in the workspace at the resolved path location&lt;/li>
+ * &lt;li> if none finds an external JAR file or folder outside the workspace at the resolved path location &lt;/li>
+ * &lt;li> if none returns &lt;code>null&lt;/code>&lt;/li>
+ * &lt;/ul>
+ * &lt;p>
+ * Variable source attachment is also resolved and recorded in the resulting classpath entry.
+ * &lt;p>
+ * @return the resolved library or project classpath entry, or &lt;code>null&lt;/code>
+ * if the given path could not be resolved to a classpath entry
+ * &lt;p>
+ * Note that this deprecated API doesn't handle CPE_CONTAINER entries.
+ *
+ * @deprecated Use {@link JavaCore#getResolvedClasspathEntry(IClasspathEntry)} instead
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j5SkY2EMEeCdEc4VzBeWeQ" type="_j4GRkGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_j54aQGEMEeCdEc4VzBeWeQ" name="ICodeAssist">
+ <ownedComment xmi:id="_j54aQWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Common protocol for Java elements that support source code assist and code
+ * resolve.
+ *
+ * @noimplement This interface is not intended to be implemented by clients.
+ </body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_j6LVMGEMEeCdEc4VzBeWeQ" name="ICodeCompletionRequestor">
+ <ownedComment xmi:id="_j6LVMWEMEeCdEc4VzBeWeQ">
+ <body>
+ * A completion requestor accepts results as they are computed and is aware
+ * of source positions to complete the various different results.
+ * &lt;p>
+ * This interface may be implemented by clients.
+ * &lt;/p>
+ *
+ * @see ICodeAssist
+ * @deprecated Use {@link CompletionRequestor} instead.
+ </body>
+ </ownedComment>
+ <ownedOperation xmi:id="_j6LVMmEMEeCdEc4VzBeWeQ" name="acceptClass">
+ <ownedComment xmi:id="_j6VGMGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist notification of a class completion.
+ *
+ * @param packageName Declaring package name of the class.
+ * @param className Name of the class.
+ * @param completionName The completion for the class.
+ * Can include ';' for imported classes.
+ * @param modifiers The modifiers of the class.
+ * @param completionStart The start position of insertion of the name of the class.
+ * @param completionEnd The end position of insertion of the name of the class.
+ *
+ * NOTE - All package and type names are presented in their readable form:
+ * Package names are in the form &quot;a.b.c&quot;.
+ * Nested type names are in the qualified form &quot;A.M&quot;.
+ * The default package is represented by an empty array.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j6VGMWEMEeCdEc4VzBeWeQ" name="packageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j6VGM2EMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j6VGMmEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_j6VGNGEMEeCdEc4VzBeWeQ" name="className" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j6VGNmEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j6VGNWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_j6VGN2EMEeCdEc4VzBeWeQ" name="completionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j6e3MWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j6e3MGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_j6e3MmEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_j6e3M2EMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_j6e3NGEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_j6oBIWEMEeCdEc4VzBeWeQ" name="acceptError">
+ <ownedComment xmi:id="_j6oBImEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist notification of a compilation error detected during completion.
+ * @param marker Only problems which are categorized as errors are notified to the requestor,
+ * warnings are silently ignored.
+ * In case an error got signaled, no other completions might be available,
+ * therefore the problem message should be presented to the user.
+ * The source positions of the problem are related to the source where it was
+ * detected (might be in another compilation unit, if it was indirectly requested
+ * during the code assist process).
+ * Note: the problem knows its originating file name.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j6oBI2EMEeCdEc4VzBeWeQ" name="marker" type="_j6oBIGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_j6oBJGEMEeCdEc4VzBeWeQ" name="acceptField">
+ <ownedComment xmi:id="_j6oBJWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist notification of a field completion.
+ *
+ * @param declaringTypePackageName Name of the package in which the type that contains this field is declared.
+ *
+ * @param declaringTypeName Name of the type declaring this new field.
+ *
+ * @param name Name of the field.
+ *
+ * @param typePackageName Name of the package in which the type of this field is declared.
+ *
+ * @param typeName Name of the type of this field.
+ *
+ * @param completionName The completion for the field.
+ *
+ * @param modifiers The modifiers of this field.
+ *
+ * @param completionStart The start position of insertion of the name of this field.
+ *
+ * @param completionEnd The end position of insertion of the name of this field.
+ *
+ * NOTE - All package and type names are presented in their readable form:
+ * Package names are in the form &quot;a.b.c&quot;.
+ * Base types are in the form &quot;int&quot; or &quot;boolean&quot;.
+ * Array types are in the qualified form &quot;M[]&quot; or &quot;int[]&quot;.
+ * Nested type names are in the qualified form &quot;A.M&quot;.
+ * The default package is represented by an empty array.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j6oBJmEMEeCdEc4VzBeWeQ" name="declaringTypePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j6xyIWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j6xyIGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_j6xyImEMEeCdEc4VzBeWeQ" name="declaringTypeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j6xyJGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j6xyI2EMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_j6xyJWEMEeCdEc4VzBeWeQ" name="name" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j6xyJ2EMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j6xyJmEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_j668EGEMEeCdEc4VzBeWeQ" name="typePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j668EmEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j668EWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_j668E2EMEeCdEc4VzBeWeQ" name="typeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j668FWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j668FGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_j668FmEMEeCdEc4VzBeWeQ" name="completionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j7EtEGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j668F2EMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_j7EtEWEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_j7EtEmEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_j7OeEGEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_j7XoAGEMEeCdEc4VzBeWeQ" name="acceptInterface">
+ <ownedComment xmi:id="_j7XoAWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist notification of an interface completion.
+ *
+ * @param packageName Declaring package name of the interface.
+ * @param interfaceName Name of the interface.
+ * @param completionName The completion for the interface.
+ * Can include ';' for imported interfaces.
+ * @param modifiers The modifiers of the interface.
+ * @param completionStart The start position of insertion of the name of the interface.
+ * @param completionEnd The end position of insertion of the name of the interface.
+ *
+ * NOTE - All package and type names are presented in their readable form:
+ * Package names are in the form &quot;a.b.c&quot;.
+ * Nested type names are in the qualified form &quot;A.M&quot;.
+ * The default package is represented by an empty array.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j7XoAmEMEeCdEc4VzBeWeQ" name="packageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j7XoBGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j7XoA2EMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_j7XoBWEMEeCdEc4VzBeWeQ" name="interfaceName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j7XoB2EMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j7XoBmEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_j7XoCGEMEeCdEc4VzBeWeQ" name="completionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j7hZAWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j7hZAGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_j7hZAmEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_j7hZA2EMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_j7hZBGEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_j7hZBWEMEeCdEc4VzBeWeQ" name="acceptKeyword">
+ <ownedComment xmi:id="_j7hZBmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist notification of a keyword completion.
+ *
+ * @param keywordName The keyword source.
+ * @param completionStart The start position of insertion of the name of this keyword.
+ * @param completionEnd The end position of insertion of the name of this keyword.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j7hZB2EMEeCdEc4VzBeWeQ" name="keywordName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j7rKAGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j7hZCGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_j7rKAWEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_j70T8GEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_j70T8WEMEeCdEc4VzBeWeQ" name="acceptLabel">
+ <ownedComment xmi:id="_j70T8mEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist notification of a label completion.
+ *
+ * @param labelName The label source.
+ * @param completionStart The start position of insertion of the name of this label.
+ * @param completionEnd The end position of insertion of the name of this label.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j70T82EMEeCdEc4VzBeWeQ" name="labelName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j70T9WEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j70T9GEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_j70T9mEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_j7-E8GEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_j7-E8WEMEeCdEc4VzBeWeQ" name="acceptLocalVariable">
+ <ownedComment xmi:id="_j7-E8mEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist notification of a local variable completion.
+ *
+ * @param name Name of the new local variable.
+ *
+ * @param typePackageName Name of the package in which the type of this new local variable is declared.
+ *
+ * @param typeName Name of the type of this new local variable.
+ *
+ * @param modifiers The modifiers of this new local variable.
+ *
+ * @param completionStart The start position of insertion of the name of this new local variable.
+ *
+ * @param completionEnd The end position of insertion of the name of this new local variable.
+ *
+ * NOTE - All package and type names are presented in their readable form:
+ * Package names are in the form &quot;a.b.c&quot;.
+ * Base types are in the form &quot;int&quot; or &quot;boolean&quot;.
+ * Array types are in the qualified form &quot;M[]&quot; or &quot;int[]&quot;.
+ * Nested type names are in the qualified form &quot;A.M&quot;.
+ * The default package is represented by an empty array.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j7-E82EMEeCdEc4VzBeWeQ" name="name" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j7-E9WEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j7-E9GEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_j7-E9mEMEeCdEc4VzBeWeQ" name="typePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j7-E-GEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j7-E92EMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_j8HO4GEMEeCdEc4VzBeWeQ" name="typeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j8HO4mEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j8HO4WEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_j8HO42EMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_j8HO5GEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_j8Q_4GEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_j8aw4GEMEeCdEc4VzBeWeQ" name="acceptMethod">
+ <ownedComment xmi:id="_j8aw4WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist notification of a method completion.
+ *
+ * @param declaringTypePackageName Name of the package in which the type that contains this new method is declared.
+ *
+ * @param declaringTypeName Name of the type declaring this new method.
+ *
+ * @param selector Name of the new method.
+ *
+ * @param parameterPackageNames Names of the packages in which the parameter types are declared.
+ * Should contain as many elements as parameterTypeNames.
+ *
+ * @param parameterTypeNames Names of the parameters types.
+ * Should contain as many elements as parameterPackageNames.
+ *
+ * @param returnTypePackageName Name of the package in which the return type is declared.
+ *
+ * @param returnTypeName Name of the return type of this new method, should be &lt;code>null&lt;/code> for a constructor.
+ *
+ * @param completionName The completion for the method.
+ * Can include zero, one or two brackets. If the closing bracket is included, then the cursor should be placed before it.
+ *
+ * @param modifiers The modifiers of this new method.
+ *
+ * @param completionStart The start position of insertion of the name of this new method.
+ *
+ * @param completionEnd The end position of insertion of the name of this new method.
+ *
+ * NOTE - All package and type names are presented in their readable form:
+ * Package names are in the form &quot;a.b.c&quot;.
+ * Base types are in the form &quot;int&quot; or &quot;boolean&quot;.
+ * Array types are in the qualified form &quot;M[]&quot; or &quot;int[]&quot;.
+ * Nested type names are in the qualified form &quot;A.M&quot;.
+ * The default package is represented by an empty array.
+ *
+ * NOTE: parameter names can be retrieved from the source model after the user selects a specific method.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j8aw4mEMEeCdEc4VzBeWeQ" name="declaringTypePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j8aw5GEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j8aw42EMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_j8aw5WEMEeCdEc4VzBeWeQ" name="declaringTypeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j8aw52EMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j8aw5mEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_j8j60GEMEeCdEc4VzBeWeQ" name="selector" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j8j60mEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j8j60WEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_j8j602EMEeCdEc4VzBeWeQ" name="parameterPackageNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j8j61WEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j8j61GEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_j8tr0GEMEeCdEc4VzBeWeQ" name="parameterTypeNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j8tr0mEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j8tr0WEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_j8tr02EMEeCdEc4VzBeWeQ" name="returnTypePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j83c0WEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j83c0GEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_j83c0mEMEeCdEc4VzBeWeQ" name="returnTypeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j83c1GEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j83c02EMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_j83c1WEMEeCdEc4VzBeWeQ" name="completionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j9AmwWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j9AmwGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_j9AmwmEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_j9Amw2EMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_j9AmxGEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_j9AmxWEMEeCdEc4VzBeWeQ" name="acceptModifier">
+ <ownedComment xmi:id="_j9AmxmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist notification of a modifier completion.
+ *
+ * @param modifierName The new modifier.
+ * @param completionStart The start position of insertion of the name of this new modifier.
+ * @param completionEnd The end position of insertion of the name of this new modifier.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j9Amx2EMEeCdEc4VzBeWeQ" name="modifierName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j9KXwWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j9KXwGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_j9KXwmEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_j9KXw2EMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_j9KXxGEMEeCdEc4VzBeWeQ" name="acceptPackage">
+ <ownedComment xmi:id="_j9KXxWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist notification of a package completion.
+ *
+ * @param packageName The package name.
+ * @param completionName The completion for the package.
+ * Can include '.*;' for imports.
+ * @param completionStart The start position of insertion of the name of this new package.
+ * @param completionEnd The end position of insertion of the name of this new package.
+ *
+ * NOTE - All package names are presented in their readable form:
+ * Package names are in the form &quot;a.b.c&quot;.
+ * The default package is represented by an empty array.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j9ThsGEMEeCdEc4VzBeWeQ" name="packageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j9ThsmEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j9ThsWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_j9Ths2EMEeCdEc4VzBeWeQ" name="completionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j9dSsWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j9dSsGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_j9dSsmEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_j9dSs2EMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_j9dStGEMEeCdEc4VzBeWeQ" name="acceptType">
+ <ownedComment xmi:id="_j9dStWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist notification of a type completion.
+ *
+ * @param packageName Declaring package name of the type.
+ * @param typeName Name of the type.
+ * @param completionName The completion for the type.
+ * Can include ';' for imported types.
+ * @param completionStart The start position of insertion of the name of the type.
+ * @param completionEnd The end position of insertion of the name of the type.
+ *
+ * NOTE - All package and type names are presented in their readable form:
+ * Package names are in the form &quot;a.b.c&quot;.
+ * Nested type names are in the qualified form &quot;A.M&quot;.
+ * The default package is represented by an empty array.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j9dStmEMEeCdEc4VzBeWeQ" name="packageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j9nDsWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j9nDsGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_j9nDsmEMEeCdEc4VzBeWeQ" name="typeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j9nDtGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j9nDs2EMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_j9nDtWEMEeCdEc4VzBeWeQ" name="completionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j9wNoGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j9nDtmEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_j9wNoWEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_j9wNomEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_j-M5kGEMEeCdEc4VzBeWeQ" name="ICodeFormatter">
+ <ownedComment xmi:id="_j-M5kWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Specification for a generic source code formatter. Client plug-ins can contribute
+ * an implementation for an ICodeFormatter, through the extension point &quot;org.eclipse.jdt.core.codeFormatter&quot;.
+ * In case none is found, a default formatter can be provided through the ToolFactory.
+ *
+ * @see ToolFactory#createCodeFormatter()
+ * @see ToolFactory#createDefaultCodeFormatter(java.util.Map options)
+ * @since 2.0
+ * @deprecated Use {@link org.eclipse.jdt.core.formatter.CodeFormatter} instead (note: options have changed)
+ </body>
+ </ownedComment>
+ <ownedOperation xmi:id="_j-M5kmEMEeCdEc4VzBeWeQ" name="format">
+ <ownedComment xmi:id="_j-M5k2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Formats the String &lt;code>sourceString&lt;/code>,
+ * and returns a string containing the formatted version.
+ *
+ * @param string the string to format
+ * @param indentationLevel the initial indentation level, used
+ * to shift left/right the entire source fragment. An initial indentation
+ * level of zero has no effect.
+ * @param positions an array of positions to map. These are
+ * character-based source positions inside the original source,
+ * arranged in non-decreasing order, for which corresponding positions in
+ * the formatted source will be computed (so as to relocate elements associated
+ * with the original source). It updates the positions array with updated
+ * positions. If set to &lt;code>null&lt;/code>, then no positions are mapped.
+ * @param lineSeparator the line separator to use in formatted source,
+ * if set to &lt;code>null&lt;/code>, then the platform default one will be used.
+ * @return the formatted output string.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j-M5lGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_j-M5lWEMEeCdEc4VzBeWeQ" name="string" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_j-M5lmEMEeCdEc4VzBeWeQ" name="indentationLevel" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_j-M5l2EMEeCdEc4VzBeWeQ" name="positions" type="_dTlbsGEMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j-WqkWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j-WqkGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_j-WqkmEMEeCdEc4VzBeWeQ" name="lineSeparator" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_j-plgGEMEeCdEc4VzBeWeQ" name="ICompilationUnit">
+ <ownedComment xmi:id="_j-zWgGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Represents an entire Java compilation unit (source file with one of the
+ * {@link JavaCore#getJavaLikeExtensions() Java-like extensions}).
+ * Compilation unit elements need to be opened before they can be navigated or manipulated.
+ * The children are of type {@link IPackageDeclaration},
+ * {@link IImportContainer}, and {@link IType},
+ * and appear in the order in which they are declared in the source.
+ * If a source file cannot be parsed, its structure remains unknown.
+ * Use {@link IJavaElement#isStructureKnown} to determine whether this is
+ * the case.
+ *
+ * @noimplement This interface is not intended to be implemented by clients.
+ </body>
+ </ownedComment>
+ <generalization xmi:id="_82Y7IGEMEeCdEc4VzBeWeQ" general="_kyNJYGEMEeCdEc4VzBeWeQ"/>
+ <generalization xmi:id="_82isIGEMEeCdEc4VzBeWeQ" general="_ky8wQGEMEeCdEc4VzBeWeQ"/>
+ <generalization xmi:id="_82isIWEMEeCdEc4VzBeWeQ" general="_kssXQGEMEeCdEc4VzBeWeQ"/>
+ <ownedAttribute xmi:id="_82isImEMEeCdEc4VzBeWeQ" name="NO_AST" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_82sdIGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant indicating that a reconcile operation should not return an AST.
+ * @since 3.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_821nEGEMEeCdEc4VzBeWeQ" name="FORCE_PROBLEM_DETECTION" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_82_YEGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant indicating that a reconcile operation should recompute the problems
+ * even if the source hasn't changed.
+ * @since 3.3
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_83IiAGEMEeCdEc4VzBeWeQ" name="ENABLE_STATEMENTS_RECOVERY" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_83IiAWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant indicating that a reconcile operation should enable the statements recovery.
+ * @see ASTParser#setStatementsRecovery(boolean)
+ * @since 3.3
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_83cEAGEMEeCdEc4VzBeWeQ" name="ENABLE_BINDINGS_RECOVERY" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_83lN8GEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant indicating that a reconcile operation should enable the bindings recovery
+ * @see ASTParser#setBindingsRecovery(boolean)
+ * @see IBinding#isRecovered()
+ * @since 3.3
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_83lN8WEMEeCdEc4VzBeWeQ" name="IGNORE_METHOD_BODIES" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_83u-8GEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant indicating that a reconcile operation could ignore to parse the method bodies.
+ * @see ASTParser#setIgnoreMethodBodies(boolean)
+ * @since 3.5.2
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_834v8GEMEeCdEc4VzBeWeQ" name="applyTextEdit" visibility="public">
+ <ownedComment xmi:id="_834v8WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Applies a text edit to the compilation unit's buffer.
+ * &lt;p>
+ * Note that the edit is simply applied to the compilation unit's buffer.
+ * In particular the undo edit is not grouped with previous undo edits
+ * if the buffer doesn't implement {@link IBuffer.ITextEditCapability}.
+ * If it does, the exact semantics for grouping undo edit depends
+ * on how {@link IBuffer.ITextEditCapability#applyTextEdit(TextEdit, IProgressMonitor)}
+ * is implemented.
+ * &lt;/p>
+ *
+ * @param edit the edit to apply
+ * @param monitor the progress monitor to use or &lt;code>null&lt;/code> if no progress should be reported
+ * @return the undo edit
+ * @throws JavaModelException if this edit can not be applied to the compilation unit's buffer. Reasons include:
+ * &lt;ul>
+ * &lt;li>This compilation unit does not exist ({@link IJavaModelStatusConstants#ELEMENT_DOES_NOT_EXIST}).&lt;/li>
+ * &lt;li>The provided edit can not be applied as there is a problem with the text edit locations ({@link IJavaModelStatusConstants#BAD_TEXT_EDIT_LOCATION}).&lt;/li>
+ * &lt;/ul>
+ *
+ * @since 3.4
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_84B54GEMEeCdEc4VzBeWeQ" type="_j1j68mEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_84B54WEMEeCdEc4VzBeWeQ" name="edit" type="_j1aJ-WEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_84Lq4GEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_84Lq4WEMEeCdEc4VzBeWeQ" name="becomeWorkingCopy">
+ <ownedComment xmi:id="_84Lq4mEMEeCdEc4VzBeWeQ">
+ <body>
+ * Changes this compilation unit handle into a working copy. A new {@link IBuffer} is
+ * created using this compilation unit handle's owner. Uses the primary owner if none was
+ * specified when this compilation unit handle was created.
+ * &lt;p>
+ * When switching to working copy mode, problems are reported to given
+ * {@link IProblemRequestor}. Note that once in working copy mode, the given
+ * {@link IProblemRequestor} is ignored. Only the original {@link IProblemRequestor}
+ * is used to report subsequent problems.
+ * &lt;/p>
+ * &lt;p>
+ * Once in working copy mode, changes to this compilation unit or its children are done in memory.
+ * Only the new buffer is affected. Using {@link #commitWorkingCopy(boolean, IProgressMonitor)}
+ * will bring the underlying resource in sync with this compilation unit.
+ * &lt;/p>
+ * &lt;p>
+ * If this compilation unit was already in working copy mode, an internal counter is incremented and no
+ * other action is taken on this compilation unit. To bring this compilation unit back into the original mode
+ * (where it reflects the underlying resource), {@link #discardWorkingCopy} must be call as many
+ * times as {@link #becomeWorkingCopy(IProblemRequestor, IProgressMonitor)}.
+ * &lt;/p>
+ *
+ * @param problemRequestor a requestor which will get notified of problems detected during
+ * reconciling as they are discovered. The requestor can be set to &lt;code>null&lt;/code> indicating
+ * that the client is not interested in problems.
+ * @param monitor a progress monitor used to report progress while opening this compilation unit
+ * or &lt;code>null&lt;/code> if no progress should be reported
+ * @throws JavaModelException if this compilation unit could not become a working copy.
+ * @see #discardWorkingCopy()
+ * @since 3.0
+ *
+ * @deprecated Use {@link #becomeWorkingCopy(IProgressMonitor)} instead.
+ * Note that if this deprecated method is used, problems will be reported to the given problem requestor
+ * as well as the problem requestor returned by the working copy owner (if not null).
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_84U00GEMEeCdEc4VzBeWeQ" name="problemRequestor" type="_krNJgGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_84U00WEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_84el0GEMEeCdEc4VzBeWeQ" name="becomeWorkingCopy">
+ <ownedComment xmi:id="_84el0WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Changes this compilation unit handle into a working copy. A new {@link IBuffer} is
+ * created using this compilation unit handle's owner. Uses the primary owner if none was
+ * specified when this compilation unit handle was created.
+ * &lt;p>
+ * When switching to working copy mode, problems are reported to the {@link IProblemRequestor
+ * problem requestor} of the {@link WorkingCopyOwner working copy owner}.
+ * &lt;/p>&lt;p>
+ * Once in working copy mode, changes to this compilation unit or its children are done in memory.
+ * Only the new buffer is affected. Using {@link #commitWorkingCopy(boolean, IProgressMonitor)}
+ * will bring the underlying resource in sync with this compilation unit.
+ * &lt;/p>&lt;p>
+ * If this compilation unit was already in working copy mode, an internal counter is incremented and no
+ * other action is taken on this compilation unit. To bring this compilation unit back into the original mode
+ * (where it reflects the underlying resource), {@link #discardWorkingCopy} must be call as many
+ * times as {@link #becomeWorkingCopy(IProblemRequestor, IProgressMonitor)}.
+ * &lt;/p>
+ *
+ * @param monitor a progress monitor used to report progress while opening this compilation unit
+ * or &lt;code>null&lt;/code> if no progress should be reported
+ * @throws JavaModelException if this compilation unit could not become a working copy.
+ * @see #discardWorkingCopy()
+ * @since 3.3
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_84el0mEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_84el02EMEeCdEc4VzBeWeQ" name="commitWorkingCopy">
+ <ownedComment xmi:id="_84el1GEMEeCdEc4VzBeWeQ">
+ <body>
+ * Commits the contents of this working copy to its underlying resource.
+ *
+ * &lt;p>It is possible that the contents of the original resource have changed
+ * since this working copy was created, in which case there is an update conflict.
+ * The value of the &lt;code>force&lt;/code> parameter affects the resolution of
+ * such a conflict:&lt;ul>
+ * &lt;li> &lt;code>true&lt;/code> - in this case the contents of this working copy are applied to
+ * the underlying resource even though this working copy was created before
+ * a subsequent change in the resource&lt;/li>
+ * &lt;li> &lt;code>false&lt;/code> - in this case a {@link JavaModelException} is thrown&lt;/li>
+ * &lt;/ul>
+ * &lt;p>
+ * Since 2.1, a working copy can be created on a not-yet existing compilation
+ * unit. In particular, such a working copy can then be committed in order to create
+ * the corresponding compilation unit.
+ * &lt;/p>
+ * @param force a flag to handle the cases when the contents of the original resource have changed
+ * since this working copy was created
+ * @param monitor the given progress monitor
+ * @throws JavaModelException if this working copy could not commit. Reasons include:
+ * &lt;ul>
+ * &lt;li> A {@link org.eclipse.core.runtime.CoreException} occurred while updating an underlying resource
+ * &lt;li> This element is not a working copy (INVALID_ELEMENT_TYPES)
+ * &lt;li> A update conflict (described above) (UPDATE_CONFLICT)
+ * &lt;/ul>
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_84oW0GEMEeCdEc4VzBeWeQ" name="force" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_84xgwGEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_847RwGEMEeCdEc4VzBeWeQ" name="createImport">
+ <ownedComment xmi:id="_847RwWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Creates and returns an non-static import declaration in this compilation unit
+ * with the given name. This method is equivalent to
+ * &lt;code>createImport(name, Flags.AccDefault, sibling, monitor)&lt;/code>.
+ *
+ * @param name the name of the import declaration to add as defined by JLS2 7.5. (For example: &lt;code>&quot;java.io.File&quot;&lt;/code> or
+ * &lt;code>&quot;java.awt.*&quot;&lt;/code>)
+ * @param sibling the existing element which the import declaration will be inserted immediately before (if
+ * &lt;code> null &lt;/code>, then this import will be inserted as the last import declaration.
+ * @param monitor the progress monitor to notify
+ * @return the newly inserted import declaration (or the previously existing one in case attempting to create a duplicate)
+ *
+ * @throws JavaModelException if the element could not be created. Reasons include:
+ * &lt;ul>
+ * &lt;li> This Java element does not exist or the specified sibling does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;li> A {@link org.eclipse.core.runtime.CoreException} occurred while updating an underlying resource
+ * &lt;li> The specified sibling is not a child of this compilation unit (INVALID_SIBLING)
+ * &lt;li> The name is not a valid import name (INVALID_NAME)
+ * &lt;/ul>
+ * @see #createImport(String, IJavaElement, int, IProgressMonitor)
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_847RwmEMEeCdEc4VzBeWeQ" type="_kNjkMGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_847Rw2EMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_85FCwGEMEeCdEc4VzBeWeQ" name="sibling" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_85FCwWEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_85X9sGEMEeCdEc4VzBeWeQ" name="createImport">
+ <ownedComment xmi:id="_85X9sWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Creates and returns an import declaration in this compilation unit
+ * with the given name.
+ * &lt;p>
+ * Optionally, the new element can be positioned before the specified
+ * sibling. If no sibling is specified, the element will be inserted
+ * as the last import declaration in this compilation unit.
+ * &lt;p>
+ * If the compilation unit already includes the specified import declaration,
+ * the import is not generated (it does not generate duplicates).
+ * Note that it is valid to specify both a single-type import and an on-demand import
+ * for the same package, for example &lt;code>&quot;java.io.File&quot;&lt;/code> and
+ * &lt;code>&quot;java.io.*&quot;&lt;/code>, in which case both are preserved since the semantics
+ * of this are not the same as just importing &lt;code>&quot;java.io.*&quot;&lt;/code>.
+ * Importing &lt;code>&quot;java.lang.*&quot;&lt;/code>, or the package in which the compilation unit
+ * is defined, are not treated as special cases. If they are specified, they are
+ * included in the result.
+ * &lt;p>
+ * Note: This API element is only needed for dealing with Java code that uses
+ * new language features of J2SE 5.0.
+ * &lt;/p>
+ *
+ * @param name the name of the import declaration to add as defined by JLS2 7.5. (For example: &lt;code>&quot;java.io.File&quot;&lt;/code> or
+ * &lt;code>&quot;java.awt.*&quot;&lt;/code>)
+ * @param sibling the existing element which the import declaration will be inserted immediately before (if
+ * &lt;code> null &lt;/code>, then this import will be inserted as the last import declaration.
+ * @param flags {@link Flags#AccStatic} for static imports, or
+ * {@link Flags#AccDefault} for regular imports; other modifier flags
+ * are ignored
+ * @param monitor the progress monitor to notify
+ * @return the newly inserted import declaration (or the previously existing one in case attempting to create a duplicate)
+ *
+ * @throws JavaModelException if the element could not be created. Reasons include:
+ * &lt;ul>
+ * &lt;li> This Java element does not exist or the specified sibling does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;li> A {@link org.eclipse.core.runtime.CoreException} occurred while updating an underlying resource
+ * &lt;li> The specified sibling is not a child of this compilation unit (INVALID_SIBLING)
+ * &lt;li> The name is not a valid import name (INVALID_NAME)
+ * &lt;/ul>
+ * @see Flags
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_85X9smEMEeCdEc4VzBeWeQ" type="_kNjkMGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_85X9s2EMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_85hHoGEMEeCdEc4VzBeWeQ" name="sibling" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_85hHoWEMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_85q4oGEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_85q4oWEMEeCdEc4VzBeWeQ" name="createPackageDeclaration">
+ <ownedComment xmi:id="_85q4omEMEeCdEc4VzBeWeQ">
+ <body>
+ * Creates and returns a package declaration in this compilation unit
+ * with the given package name.
+ *
+ * &lt;p>If the compilation unit already includes the specified package declaration,
+ * it is not generated (it does not generate duplicates).
+ *
+ * @param name the name of the package declaration to add as defined by JLS2 7.4. (For example, &lt;code>&quot;java.lang&quot;&lt;/code>)
+ * @param monitor the progress monitor to notify
+ * @return the newly inserted package declaration (or the previously existing one in case attempting to create a duplicate)
+ *
+ * @throws JavaModelException if the element could not be created. Reasons include:
+ * &lt;ul>
+ * &lt;li>This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;li> A {@link org.eclipse.core.runtime.CoreException} occurred while updating an underlying resource
+ * &lt;li> The name is not a valid package name (INVALID_NAME)
+ * &lt;/ul>
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_850poGEMEeCdEc4VzBeWeQ" type="_kqKnsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_850poWEMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_859zkGEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_859zkWEMEeCdEc4VzBeWeQ" name="createType">
+ <ownedComment xmi:id="_859zkmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Creates and returns a type in this compilation unit with the
+ * given contents. If this compilation unit does not exist, one
+ * will be created with an appropriate package declaration.
+ * &lt;p>
+ * Optionally, the new type can be positioned before the specified
+ * sibling. If &lt;code>sibling&lt;/code> is &lt;code>null&lt;/code>, the type will be appended
+ * to the end of this compilation unit.
+ *
+ * &lt;p>It is possible that a type with the same name already exists in this compilation unit.
+ * The value of the &lt;code>force&lt;/code> parameter affects the resolution of
+ * such a conflict:&lt;ul>
+ * &lt;li> &lt;code>true&lt;/code> - in this case the type is created with the new contents&lt;/li>
+ * &lt;li> &lt;code>false&lt;/code> - in this case a {@link JavaModelException} is thrown&lt;/li>
+ * &lt;/ul>
+ *
+ * @param contents the source contents of the type declaration to add.
+ * @param sibling the existing element which the type will be inserted immediately before (if
+ * &lt;code>null&lt;/code>, then this type will be inserted as the last type declaration.
+ * @param force a &lt;code>boolean&lt;/code> flag indicating how to deal with duplicates
+ * @param monitor the progress monitor to notify
+ * @return the newly inserted type
+ *
+ * @throws JavaModelException if the element could not be created. Reasons include:
+ * &lt;ul>
+ * &lt;li>The specified sibling element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;li> A {@link org.eclipse.core.runtime.CoreException} occurred while updating an underlying resource
+ * &lt;li> The specified sibling is not a child of this compilation unit (INVALID_SIBLING)
+ * &lt;li> The contents could not be recognized as a type declaration (INVALID_CONTENTS)
+ * &lt;li> There was a naming collision with an existing type (NAME_COLLISION)
+ * &lt;/ul>
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_859zk2EMEeCdEc4VzBeWeQ" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_86HkkGEMEeCdEc4VzBeWeQ" name="contents" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_86HkkWEMEeCdEc4VzBeWeQ" name="sibling" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_86RVkGEMEeCdEc4VzBeWeQ" name="force" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_86RVkWEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_86afgGEMEeCdEc4VzBeWeQ" name="discardWorkingCopy">
+ <ownedComment xmi:id="_86afgWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Changes this compilation unit in working copy mode back to its original mode.
+ * &lt;p>
+ * This has no effect if this compilation unit was not in working copy mode.
+ * &lt;/p>
+ * &lt;p>
+ * If {@link #becomeWorkingCopy(IProgressMonitor)} method was called several
+ * times on this compilation unit, {@link #discardWorkingCopy()} must be called
+ * as many times before it switches back to the original mode. Same as
+ * for method {@link #getWorkingCopy(IProgressMonitor)}.
+ * &lt;/p>
+ *
+ * @throws JavaModelException if this working copy could not return in its original mode.
+ * @see #becomeWorkingCopy(IProblemRequestor, IProgressMonitor)
+ * @since 3.0
+ </body>
+ </ownedComment>
+ </ownedOperation>
+ <ownedOperation xmi:id="_86afgmEMEeCdEc4VzBeWeQ" name="findElements">
+ <ownedComment xmi:id="_86afg2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Finds the elements in this compilation unit that correspond to
+ * the given element.
+ * An element A corresponds to an element B if:
+ * &lt;ul>
+ * &lt;li>A has the same element name as B.
+ * &lt;li>If A is a method, A must have the same number of arguments as
+ * B and the simple names of the argument types must be equals.
+ * &lt;li>The parent of A corresponds to the parent of B recursively up to
+ * their respective compilation units.
+ * &lt;li>A exists.
+ * &lt;/ul>
+ * Returns &lt;code>null&lt;/code> if no such java elements can be found
+ * or if the given element is not included in a compilation unit.
+ *
+ * @param element the given element
+ * @return the found elements in this compilation unit that correspond to the given element
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_86afhGEMEeCdEc4VzBeWeQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_86kQgWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_86kQgGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_86tacGEMEeCdEc4VzBeWeQ" name="element" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_86tacWEMEeCdEc4VzBeWeQ" name="findWorkingCopy">
+ <ownedComment xmi:id="_86tacmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Finds the working copy for this compilation unit, given a {@link WorkingCopyOwner}.
+ * If no working copy has been created for this compilation unit associated with this
+ * working copy owner, returns &lt;code>null&lt;/code>.
+ * &lt;p>
+ * Users of this method must not destroy the resulting working copy.
+ *
+ * @param owner the given {@link WorkingCopyOwner}
+ * @return the found working copy for this compilation unit, &lt;code>null&lt;/code> if none
+ * @see WorkingCopyOwner
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_86tac2EMEeCdEc4VzBeWeQ" type="_j-plgGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_863LcGEMEeCdEc4VzBeWeQ" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_87A8cGEMEeCdEc4VzBeWeQ" name="getAllTypes">
+ <ownedComment xmi:id="_87A8cWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns all types declared in this compilation unit in the order
+ * in which they appear in the source.
+ * This includes all top-level types and nested member types.
+ * It does NOT include local types (types defined in methods).
+ *
+ * @return the array of top-level and member types defined in a compilation unit, in declaration order.
+ * @throws JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_87A8cmEMEeCdEc4VzBeWeQ" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_87KGYWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_87KGYGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_87KGYmEMEeCdEc4VzBeWeQ" name="getImport">
+ <ownedComment xmi:id="_87KGY2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the first import declaration in this compilation unit with the given name.
+ * This is a handle-only method. The import declaration may or may not exist. This
+ * is a convenience method - imports can also be accessed from a compilation unit's
+ * import container.
+ *
+ * @param name the name of the import to find as defined by JLS2 7.5. (For example: &lt;code>&quot;java.io.File&quot;&lt;/code>
+ * or &lt;code>&quot;java.awt.*&quot;&lt;/code>)
+ * @return a handle onto the corresponding import declaration. The import declaration may or may not exist.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_87T3YGEMEeCdEc4VzBeWeQ" type="_kNjkMGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_87T3YWEMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_87doYGEMEeCdEc4VzBeWeQ" name="getImportContainer">
+ <ownedComment xmi:id="_87doYWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the import container for this compilation unit.
+ * This is a handle-only method. The import container may or
+ * may not exist. The import container can used to access the
+ * imports.
+ * @return a handle onto the corresponding import container. The
+ * import contain may or may not exist.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_87doYmEMEeCdEc4VzBeWeQ" type="_kNZzMGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_87doY2EMEeCdEc4VzBeWeQ" name="getImports">
+ <ownedComment xmi:id="_87doZGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the import declarations in this compilation unit
+ * in the order in which they appear in the source. This is
+ * a convenience method - import declarations can also be
+ * accessed from a compilation unit's import container.
+ *
+ * @return the import declarations in this compilation unit
+ * @throws JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_87myUGEMEeCdEc4VzBeWeQ" type="_kNjkMGEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_87wjUGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_87myUWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_87wjUWEMEeCdEc4VzBeWeQ" name="getPrimary">
+ <ownedComment xmi:id="_87wjUmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the primary compilation unit (whose owner is the primary owner)
+ * this working copy was created from, or this compilation unit if this a primary
+ * compilation unit.
+ * &lt;p>
+ * Note that the returned primary compilation unit can be in working copy mode.
+ * &lt;/p>
+ *
+ * @return the primary compilation unit this working copy was created from,
+ * or this compilation unit if it is primary
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_87wjU2EMEeCdEc4VzBeWeQ" type="_j-plgGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_875tQGEMEeCdEc4VzBeWeQ" name="getOwner">
+ <ownedComment xmi:id="_875tQWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns &lt;tt>null&lt;/tt> if this &lt;code>ICompilationUnit&lt;/code> is the primary
+ * working copy, or this &lt;code>ICompilationUnit&lt;/code> is not a working copy,
+ * otherwise the &lt;code>WorkingCopyOwner&lt;/code>
+ *
+ * @return &lt;tt>null&lt;/tt> if this &lt;code>ICompilationUnit&lt;/code> is the primary
+ * working copy, or this &lt;code>ICompilationUnit&lt;/code> is not a working copy,
+ * otherwise the &lt;code>WorkingCopyOwner&lt;/code>
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_875tQmEMEeCdEc4VzBeWeQ" type="_nI23sGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_88DeQGEMEeCdEc4VzBeWeQ" name="getPackageDeclaration">
+ <ownedComment xmi:id="_88DeQWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the first package declaration in this compilation unit with the given package name
+ * (there normally is at most one package declaration).
+ * This is a handle-only method. The package declaration may or may not exist.
+ *
+ * @param name the name of the package declaration as defined by JLS2 7.4. (For example, &lt;code>&quot;java.lang&quot;&lt;/code>)
+ * @return the first package declaration in this compilation unit with the given package name
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_88DeQmEMEeCdEc4VzBeWeQ" type="_kqKnsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_88DeQ2EMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_88NPQGEMEeCdEc4VzBeWeQ" name="getPackageDeclarations">
+ <ownedComment xmi:id="_88NPQWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the package declarations in this compilation unit
+ * in the order in which they appear in the source.
+ * There normally is at most one package declaration.
+ *
+ * @return an array of package declaration (normally of size one)
+ *
+ * @throws JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_88NPQmEMEeCdEc4VzBeWeQ" type="_kqKnsGEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_88WZMGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_88NPQ2EMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_88WZMWEMEeCdEc4VzBeWeQ" name="getType">
+ <ownedComment xmi:id="_88WZMmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the top-level type declared in this compilation unit with the given simple type name.
+ * The type name has to be a valid compilation unit name.
+ * This is a handle-only method. The type may or may not exist.
+ *
+ * @param name the simple name of the requested type in the compilation unit
+ * @return a handle onto the corresponding type. The type may or may not exist.
+ * @see JavaConventions#validateCompilationUnitName(String name, String sourceLevel, String complianceLevel)
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_88gKMGEMEeCdEc4VzBeWeQ" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_88p7MGEMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_88p7MWEMEeCdEc4VzBeWeQ" name="getTypes">
+ <ownedComment xmi:id="_88p7MmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the top-level types declared in this compilation unit
+ * in the order in which they appear in the source.
+ *
+ * @return the top-level types declared in this compilation unit
+ * @throws JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_88zFIGEMEeCdEc4VzBeWeQ" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8882IGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_88zFIWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_8882IWEMEeCdEc4VzBeWeQ" name="getWorkingCopy">
+ <ownedComment xmi:id="_8882ImEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns a new working copy of this compilation unit if it is a primary compilation unit,
+ * or this compilation unit if it is already a non-primary working copy.
+ * &lt;p>
+ * Note: if intending to share a working copy amongst several clients, then
+ * {@link #getWorkingCopy(WorkingCopyOwner, IProblemRequestor, IProgressMonitor)}
+ * should be used instead.
+ * &lt;/p>&lt;p>
+ * When the working copy instance is created, an ADDED IJavaElementDelta is
+ * reported on this working copy.
+ * &lt;/p>&lt;p>
+ * Once done with the working copy, users of this method must discard it using
+ * {@link #discardWorkingCopy()}.
+ * &lt;/p>&lt;p>
+ * Since 2.1, a working copy can be created on a not-yet existing compilation
+ * unit. In particular, such a working copy can then be committed in order to create
+ * the corresponding compilation unit.
+ * &lt;/p>
+ * @param monitor a progress monitor used to report progress while opening this compilation unit
+ * or &lt;code>null&lt;/code> if no progress should be reported
+ * @throws JavaModelException if the contents of this element can
+ * not be determined.
+ * @return a new working copy of this element if this element is not
+ * a working copy, or this element if this element is already a working copy
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_8882I2EMEeCdEc4VzBeWeQ" type="_j-plgGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_89GAEGEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_89GAEWEMEeCdEc4VzBeWeQ" name="getWorkingCopy">
+ <ownedComment xmi:id="_89GAEmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns a shared working copy on this compilation unit using the given working copy owner to create
+ * the buffer, or this compilation unit if it is already a non-primary working copy.
+ * This API can only answer an already existing working copy if it is based on the same
+ * original compilation unit AND was using the same working copy owner (that is, as defined by {@link Object#equals}).
+ * &lt;p>
+ * The life time of a shared working copy is as follows:
+ * &lt;ul>
+ * &lt;li>The first call to {@link #getWorkingCopy(WorkingCopyOwner, IProblemRequestor, IProgressMonitor)}
+ * creates a new working copy for this element&lt;/li>
+ * &lt;li>Subsequent calls increment an internal counter.&lt;/li>
+ * &lt;li>A call to {@link #discardWorkingCopy()} decrements the internal counter.&lt;/li>
+ * &lt;li>When this counter is 0, the working copy is discarded.
+ * &lt;/ul>
+ * So users of this method must discard exactly once the working copy.
+ * &lt;p>
+ * Note that the working copy owner will be used for the life time of this working copy, that is if the
+ * working copy is closed then reopened, this owner will be used.
+ * The buffer will be automatically initialized with the original's compilation unit content
+ * upon creation.
+ * &lt;p>
+ * When the shared working copy instance is created, an ADDED IJavaElementDelta is reported on this
+ * working copy.
+ * &lt;/p>&lt;p>
+ * Since 2.1, a working copy can be created on a not-yet existing compilation
+ * unit. In particular, such a working copy can then be committed in order to create
+ * the corresponding compilation unit.
+ * &lt;/p>
+ * @param owner the working copy owner that creates a buffer that is used to get the content
+ * of the working copy
+ * @param problemRequestor a requestor which will get notified of problems detected during
+ * reconciling as they are discovered. The requestor can be set to &lt;code>null&lt;/code> indicating
+ * that the client is not interested in problems.
+ * @param monitor a progress monitor used to report progress while opening this compilation unit
+ * or &lt;code>null&lt;/code> if no progress should be reported
+ * @throws JavaModelException if the contents of this element can
+ * not be determined.
+ * @return a new working copy of this element using the given factory to create
+ * the buffer, or this element if this element is already a working copy
+ * @since 3.0
+ * @deprecated Use {@link ITypeRoot#getWorkingCopy(WorkingCopyOwner, IProgressMonitor)} instead.
+ * Note that if this deprecated method is used, problems will be reported on the passed problem requester
+ * as well as on the problem requestor returned by the working copy owner (if not null).
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_89PxEGEMEeCdEc4VzBeWeQ" type="_j-plgGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_89PxEWEMEeCdEc4VzBeWeQ" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_89ZiEGEMEeCdEc4VzBeWeQ" name="problemRequestor" type="_krNJgGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_89ZiEWEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_89isAGEMEeCdEc4VzBeWeQ" name="hasResourceChanged" visibility="public">
+ <ownedComment xmi:id="_89isAWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether the resource of this working copy has changed since the
+ * inception of this working copy.
+ * Returns &lt;code>false&lt;/code> if this compilation unit is not in working copy mode.
+ *
+ * @return whether the resource has changed
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_89isAmEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_89sdAGEMEeCdEc4VzBeWeQ" name="isWorkingCopy">
+ <ownedComment xmi:id="_89sdAWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether this element is a working copy.
+ *
+ * @return true if this element is a working copy, false otherwise
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_89sdAmEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_89sdA2EMEeCdEc4VzBeWeQ" name="reconcile">
+ <ownedComment xmi:id="_89sdBGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Reconciles the contents of this working copy, sends out a Java delta
+ * notification indicating the nature of the change of the working copy since
+ * the last time it was either reconciled or made consistent
+ * ({@link IOpenable#makeConsistent(IProgressMonitor)}), and returns a
+ * compilation unit AST if requested.
+ * &lt;p>
+ * It performs the reconciliation by locally caching the contents of
+ * the working copy, updating the contents, then creating a delta
+ * over the cached contents and the new contents, and finally firing
+ * this delta.
+ * &lt;p>
+ * The boolean argument allows to force problem detection even if the
+ * working copy is already consistent.
+ * &lt;/p>
+ * &lt;p>
+ * This functionality allows to specify a working copy owner which is used
+ * during problem detection. All references contained in the working copy are
+ * resolved against other units; for which corresponding owned working copies
+ * are going to take precedence over their original compilation units. If
+ * &lt;code>null&lt;/code> is passed in, then the primary working copy owner is used.
+ * &lt;/p>
+ * &lt;p>
+ * Compilation problems found in the new contents are notified through the
+ * {@link IProblemRequestor} interface which was passed at
+ * creation, and no longer as transient markers.
+ * &lt;/p>
+ * &lt;p>
+ * Note: Since 3.0, added/removed/changed inner types generate change deltas.
+ * &lt;/p>
+ * &lt;p>
+ * If requested, a DOM AST representing the compilation unit is returned.
+ * Its bindings are computed only if the problem requestor is active.
+ * This method returns &lt;code>null&lt;/code> if the creation of the DOM AST was not requested,
+ * or if the requested level of AST API is not supported, or if the working copy was
+ * already consistent.
+ * &lt;/p>
+ *
+ * &lt;p>
+ * This method doesn't perform statements recovery. To recover statements with syntax
+ * errors, {@link #reconcile(int, boolean, boolean, WorkingCopyOwner, IProgressMonitor)} must be use.
+ * &lt;/p>
+ *
+ * @param astLevel either {@link #NO_AST} if no AST is wanted,
+ * or the {@linkplain AST#newAST(int) AST API level} of the AST if one is wanted
+ * @param forceProblemDetection boolean indicating whether problem should be
+ * recomputed even if the source hasn't changed
+ * @param owner the owner of working copies that take precedence over the
+ * original compilation units, or &lt;code>null&lt;/code> if the primary working
+ * copy owner should be used
+ * @param monitor a progress monitor
+ * @return the compilation unit AST or &lt;code>null&lt;/code> if not requested,
+ * or if the requested level of AST API is not supported,
+ * or if the working copy was consistent
+ * @throws JavaModelException if the contents of the original element
+ * cannot be accessed. Reasons include:
+ * &lt;ul>
+ * &lt;li> The original Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;/ul>
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_892OAGEMEeCdEc4VzBeWeQ" type="_kUjkE2EMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_892OAWEMEeCdEc4VzBeWeQ" name="astLevel" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_89_X8GEMEeCdEc4VzBeWeQ" name="forceProblemDetection" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_89_X8WEMEeCdEc4VzBeWeQ" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_8-JI8GEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_8-JI8WEMEeCdEc4VzBeWeQ" name="reconcile">
+ <ownedComment xmi:id="_8-JI8mEMEeCdEc4VzBeWeQ">
+ <body>
+ * Reconciles the contents of this working copy, sends out a Java delta
+ * notification indicating the nature of the change of the working copy since
+ * the last time it was either reconciled or made consistent
+ * ({@link IOpenable#makeConsistent(IProgressMonitor)}), and returns a
+ * compilation unit AST if requested.
+ * &lt;p>
+ * It performs the reconciliation by locally caching the contents of
+ * the working copy, updating the contents, then creating a delta
+ * over the cached contents and the new contents, and finally firing
+ * this delta.
+ * &lt;p>
+ * The boolean argument allows to force problem detection even if the
+ * working copy is already consistent.
+ * &lt;/p>
+ * &lt;p>
+ * This functionality allows to specify a working copy owner which is used
+ * during problem detection. All references contained in the working copy are
+ * resolved against other units; for which corresponding owned working copies
+ * are going to take precedence over their original compilation units. If
+ * &lt;code>null&lt;/code> is passed in, then the primary working copy owner is used.
+ * &lt;/p>
+ * &lt;p>
+ * Compilation problems found in the new contents are notified through the
+ * {@link IProblemRequestor} interface which was passed at
+ * creation, and no longer as transient markers.
+ * &lt;/p>
+ * &lt;p>
+ * Note: Since 3.0, added/removed/changed inner types generate change deltas.
+ * &lt;/p>
+ * &lt;p>
+ * If requested, a DOM AST representing the compilation unit is returned.
+ * Its bindings are computed only if the problem requestor is active.
+ * This method returns &lt;code>null&lt;/code> if the creation of the DOM AST was not requested,
+ * or if the requested level of AST API is not supported, or if the working copy was
+ * already consistent.
+ * &lt;/p>
+ *
+ * &lt;p>
+ * If statements recovery is enabled then this method tries to rebuild statements
+ * with syntax error. Otherwise statements with syntax error won't be present in
+ * the returning DOM AST.
+ * &lt;/p>
+ *
+ * @param astLevel either {@link #NO_AST} if no AST is wanted,
+ * or the {@linkplain AST#newAST(int) AST API level} of the AST if one is wanted
+ * @param forceProblemDetection boolean indicating whether problem should be
+ * recomputed even if the source hasn't changed
+ * @param enableStatementsRecovery if &lt;code>true&lt;/code> statements recovery is enabled.
+ * @param owner the owner of working copies that take precedence over the
+ * original compilation units, or &lt;code>null&lt;/code> if the primary working
+ * copy owner should be used
+ * @param monitor a progress monitor
+ * @return the compilation unit AST or &lt;code>null&lt;/code> if not requested,
+ * or if the requested level of AST API is not supported,
+ * or if the working copy was consistent
+ * @throws JavaModelException if the contents of the original element
+ * cannot be accessed. Reasons include:
+ * &lt;ul>
+ * &lt;li> The original Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;/ul>
+ * @since 3.2
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_8-JI82EMEeCdEc4VzBeWeQ" type="_kUjkE2EMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_8-SS4GEMEeCdEc4VzBeWeQ" name="astLevel" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_8-cD4GEMEeCdEc4VzBeWeQ" name="forceProblemDetection" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_8-cD4WEMEeCdEc4VzBeWeQ" name="enableStatementsRecovery" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_8-l04GEMEeCdEc4VzBeWeQ" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_8-l04WEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_8-u-0GEMEeCdEc4VzBeWeQ" name="reconcile">
+ <ownedComment xmi:id="_8-u-0WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Reconciles the contents of this working copy, sends out a Java delta
+ * notification indicating the nature of the change of the working copy since
+ * the last time it was either reconciled or made consistent
+ * ({@link IOpenable#makeConsistent(IProgressMonitor)}), and returns a
+ * compilation unit AST if requested.
+ *
+ * &lt;p>
+ * If the problem detection is forced by passing the {@link #FORCE_PROBLEM_DETECTION} bit in the given reconcile flag,
+ * problem detection is run even if the working copy is already consistent.
+ * &lt;/p>
+ *
+ * &lt;p>
+ * It performs the reconciliation by locally caching the contents of
+ * the working copy, updating the contents, then creating a delta
+ * over the cached contents and the new contents, and finally firing
+ * this delta.&lt;/p>
+ *
+ * &lt;p>
+ * This functionality allows to specify a working copy owner which is used
+ * during problem detection. All references contained in the working copy are
+ * resolved against other units; for which corresponding owned working copies
+ * are going to take precedence over their original compilation units. If
+ * &lt;code>null&lt;/code> is passed in, then the primary working copy owner is used.
+ * &lt;/p>
+ * &lt;p>
+ * Compilation problems found in the new contents are notified through the
+ * {@link IProblemRequestor} interface which was passed at
+ * creation, and no longer as transient markers.
+ * &lt;/p>
+ * &lt;p>
+ * Note: Since 3.0, added/removed/changed inner types generate change deltas.
+ * &lt;/p>
+ * &lt;p>
+ * If requested, a DOM AST representing the compilation unit is returned.
+ * Its bindings are computed only if the problem requestor is active.
+ * This method returns &lt;code>null&lt;/code> if the creation of the DOM AST was not requested,
+ * or if the requested level of AST API is not supported, or if the working copy was
+ * already consistent.
+ * &lt;/p>
+ *
+ * &lt;p>
+ * If statements recovery is enabled by passing the {@link #ENABLE_STATEMENTS_RECOVERY} bit in the given reconcile flag
+ * then this method tries to rebuild statements with syntax error. Otherwise statements with syntax error won't be
+ * present in the returning DOM AST.&lt;/p>
+ * &lt;p>
+ * If bindings recovery is enabled by passing the {@link #ENABLE_BINDINGS_RECOVERY} bit in the given reconcile flag
+ * then this method tries to resolve bindings even if the type resolution contains errors.&lt;/p>
+ * &lt;p>
+ * The given reconcile flags is a bit-mask of the different constants ({@link #ENABLE_BINDINGS_RECOVERY},
+ * {@link #ENABLE_STATEMENTS_RECOVERY}, {@link #FORCE_PROBLEM_DETECTION}). Unspecified values are left for future use.
+ * &lt;/p>
+ *
+ * @param astLevel either {@link #NO_AST} if no AST is wanted,
+ * or the {@linkplain AST#newAST(int) AST API level} of the AST if one is wanted
+ * @param reconcileFlags the given reconcile flags
+ * @param owner the owner of working copies that take precedence over the
+ * original compilation units, or &lt;code>null&lt;/code> if the primary working
+ * copy owner should be used
+ * @param monitor a progress monitor
+ * @return the compilation unit AST or &lt;code>null&lt;/code> if not requested,
+ * or if the requested level of AST API is not supported,
+ * or if the working copy was consistent
+ * @throws JavaModelException if the contents of the original element
+ * cannot be accessed. Reasons include:
+ * &lt;ul>
+ * &lt;li> The original Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;/ul>
+ * @see #FORCE_PROBLEM_DETECTION
+ * @see #ENABLE_BINDINGS_RECOVERY
+ * @see #ENABLE_STATEMENTS_RECOVERY
+ * @since 3.3
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_8-u-0mEMEeCdEc4VzBeWeQ" type="_kUjkE2EMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_8-4v0GEMEeCdEc4VzBeWeQ" name="astLevel" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_8_Cg0GEMEeCdEc4VzBeWeQ" name="reconcileFlags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_8_Cg0WEMEeCdEc4VzBeWeQ" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_8_LqwGEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_8_LqwWEMEeCdEc4VzBeWeQ" name="restore">
+ <ownedComment xmi:id="_8_LqwmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Restores the contents of this working copy to the current contents of
+ * this working copy's original element. Has no effect if this element
+ * is not a working copy.
+ *
+ * &lt;p>Note: This is the inverse of committing the content of the
+ * working copy to the original element with {@link #commitWorkingCopy(boolean, IProgressMonitor)}.
+ *
+ * @throws JavaModelException if the contents of the original element
+ * cannot be accessed. Reasons include:
+ * &lt;ul>
+ * &lt;li> The original Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;/ul>
+ * @since 3.0
+ </body>
+ </ownedComment>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_j_i9YGEMEeCdEc4VzBeWeQ" name="ICompletionRequestor">
+ <ownedComment xmi:id="_j_i9YWEMEeCdEc4VzBeWeQ">
+ <body>
+ * A completion requestor accepts results as they are computed and is aware
+ * of source positions to complete the various different results.
+ * &lt;p>
+ * This interface may be implemented by clients.
+ * &lt;/p>
+ *
+ * @see ICodeAssist
+ * @since 2.0
+ * @deprecated Use {@link CompletionRequestor} instead.
+ </body>
+ </ownedComment>
+ <ownedOperation xmi:id="_j_i9YmEMEeCdEc4VzBeWeQ" name="acceptAnonymousType">
+ <ownedComment xmi:id="_j_i9Y2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist notification of an anonymous type declaration completion.
+ * @param superTypePackageName Name of the package that contains the super type of this
+ * new anonymous type declaration.
+ * @param superTypeName Name of the super type of this new anonymous type declaration.
+ * @param parameterPackageNames Names of the packages in which the parameter types are declared.
+ * Should contain as many elements as parameterTypeNames.
+ * @param parameterTypeNames Names of the parameter types.
+ * Should contain as many elements as parameterPackageNames.
+ * @param parameterNames Names of the parameters.
+ * Should contain as many elements as parameterPackageNames.
+ * @param completionName The completion for the anonymous type declaration.
+ * Can include zero, one or two brackets. If the closing bracket is included,
+ * then the cursor should be placed before it.
+ * @param modifiers The modifiers of the constructor.
+ * @param completionStart The start position of insertion of the name of this new anonymous type declaration.
+ * @param completionEnd The end position of insertion of the name of this new anonymous type declaration.
+ * @param relevance The relevance of the completion proposal
+ * It is a positive integer which are used for determine if this proposal is more relevant than another proposal.
+ * This value can only be used for compare relevance. A proposal is more relevant than another if his relevance
+ * value is higher.
+ *
+ * NOTE - All package and type names are presented in their readable form:
+ * Package names are in the form &quot;a.b.c&quot;.
+ * Base types are in the form &quot;int&quot; or &quot;boolean&quot;.
+ * Array types are in the qualified form &quot;M[]&quot; or &quot;int[]&quot;.
+ * Nested type names are in the qualified form &quot;A.M&quot;.
+ * The default package is represented by an empty array.
+ *
+ * NOTE: parameter names can be retrieved from the source model after the user selects a specific method.
+ *
+ * @deprecated Use {@link CompletionRequestor#accept(CompletionProposal)} instead.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j_i9ZGEMEeCdEc4VzBeWeQ" name="superTypePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j_i9ZmEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j_i9ZWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_j_sHUGEMEeCdEc4VzBeWeQ" name="superTypeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j_sHUmEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j_sHUWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_j_sHU2EMEeCdEc4VzBeWeQ" name="parameterPackageNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j_sHVWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j_sHVGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_j_sHVmEMEeCdEc4VzBeWeQ" name="parameterTypeNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j_14UWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j_14UGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kAlfMGEMEeCdEc4VzBeWeQ" name="parameterNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kAlfMmEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kAlfMWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kAvQMGEMEeCdEc4VzBeWeQ" name="completionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kAvQMmEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kAvQMWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kAvQM2EMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kBCLIGEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kBCLIWEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kBCLImEMEeCdEc4VzBeWeQ" name="relevance" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kBCLI2EMEeCdEc4VzBeWeQ" name="acceptClass">
+ <ownedComment xmi:id="_kBCLJGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist notification of a class completion.
+ *
+ * @param packageName Declaring package name of the class.
+ * @param className Name of the class.
+ * @param completionName The completion for the class. Can include ';' for imported classes.
+ * @param modifiers The modifiers of the class.
+ * @param completionStart The start position of insertion of the name of the class.
+ * @param completionEnd The end position of insertion of the name of the class.
+ * @param relevance The relevance of the completion proposal
+ * It is a positive integer which are used for determine if this proposal is more relevant than another proposal.
+ * This value can only be used for compare relevance. A proposal is more relevant than another if his relevance
+ * value is higher.
+ *
+ * NOTE - All package and type names are presented in their readable form:
+ * Package names are in the form &quot;a.b.c&quot;.
+ * Nested type names are in the qualified form &quot;A.M&quot;.
+ * The default package is represented by an empty array.
+ *
+ * @deprecated Use {@link CompletionRequestor#accept(CompletionProposal)} instead.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kBVGEGEMEeCdEc4VzBeWeQ" name="packageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kBVGEmEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kBVGEWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kBVGE2EMEeCdEc4VzBeWeQ" name="className" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kBVGFWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kBVGFGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kBe3EGEMEeCdEc4VzBeWeQ" name="completionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kBe3EmEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kBe3EWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kBe3E2EMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kBe3FGEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kBe3FWEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kBooEGEMEeCdEc4VzBeWeQ" name="relevance" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kBooEWEMEeCdEc4VzBeWeQ" name="acceptError">
+ <ownedComment xmi:id="_kBooEmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist notification of a compilation error detected during completion.
+ * @param error Only problems which are categorized as non-syntax errors are notified to the
+ * requestor, warnings are silently ignored.
+ * In case an error got signalled, no other completions might be available,
+ * therefore the problem message should be presented to the user.
+ * The source positions of the problem are related to the source where it was
+ * detected (might be in another compilation unit, if it was indirectly requested
+ * during the code assist process).
+ * Note: the problem knows its originating file name.
+ *
+ * @deprecated Use {@link CompletionRequestor#completionFailure(IProblem)} instead.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kBooE2EMEeCdEc4VzBeWeQ" name="error" type="_jrk4hWEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kBooFGEMEeCdEc4VzBeWeQ" name="acceptField">
+ <ownedComment xmi:id="_kBooFWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist notification of a field completion.
+ *
+ * @param declaringTypePackageName Name of the package in which the type that contains this field is declared.
+ * @param declaringTypeName Name of the type declaring this new field.
+ * @param name Name of the field.
+ * @param typePackageName Name of the package in which the type of this field is declared.
+ * @param typeName Name of the type of this field.
+ * @param completionName The completion for the field.
+ * @param modifiers The modifiers of this field.
+ * @param completionStart The start position of insertion of the name of this field.
+ * @param completionEnd The end position of insertion of the name of this field.
+ * @param relevance The relevance of the completion proposal
+ * It is a positive integer which are used for determine if this proposal is more relevant than another proposal.
+ * This value can only be used for compare relevance. A proposal is more relevant than another if his relevance
+ * value is higher.
+ *
+ * NOTE - All package and type names are presented in their readable form:
+ * Package names are in the form &quot;a.b.c&quot;.
+ * Base types are in the form &quot;int&quot; or &quot;boolean&quot;.
+ * Array types are in the qualified form &quot;M[]&quot; or &quot;int[]&quot;.
+ * Nested type names are in the qualified form &quot;A.M&quot;.
+ * The default package is represented by an empty array.
+ *
+ * @deprecated Use {@link CompletionRequestor#accept(CompletionProposal)} instead.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kBooFmEMEeCdEc4VzBeWeQ" name="declaringTypePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kBooGGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kBooF2EMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kBxyAGEMEeCdEc4VzBeWeQ" name="declaringTypeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kBxyAmEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kBxyAWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kBxyA2EMEeCdEc4VzBeWeQ" name="name" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kBxyBWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kBxyBGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kB7jAGEMEeCdEc4VzBeWeQ" name="typePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kB7jAmEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kB7jAWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kB7jA2EMEeCdEc4VzBeWeQ" name="typeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kCEs8GEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kB7jBGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kCEs8WEMEeCdEc4VzBeWeQ" name="completionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kCEs82EMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kCEs8mEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kCEs9GEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kCEs9WEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kCOd8GEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kCOd8WEMEeCdEc4VzBeWeQ" name="relevance" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kCOd8mEMEeCdEc4VzBeWeQ" name="acceptInterface">
+ <ownedComment xmi:id="_kCOd82EMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist notification of an interface completion.
+ *
+ * @param packageName Declaring package name of the interface.
+ * @param interfaceName Name of the interface.
+ * @param completionName The completion for the interface. Can include ';' for imported interfaces.
+ * @param modifiers The modifiers of the interface.
+ * @param completionStart The start position of insertion of the name of the interface.
+ * @param completionEnd The end position of insertion of the name of the interface.
+ * @param relevance The relevance of the completion proposal
+ * It is a positive integer which are used for determine if this proposal is more relevant than another proposal.
+ * This value can only be used for compare relevance. A proposal is more relevant than another if his relevance
+ * value is higher.
+ *
+ * NOTE - All package and type names are presented in their readable form:
+ * Package names are in the form &quot;a.b.c&quot;.
+ * Nested type names are in the qualified form &quot;A.M&quot;.
+ * The default package is represented by an empty array.
+ *
+ * @deprecated Use {@link CompletionRequestor#accept(CompletionProposal)} instead.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kCOd9GEMEeCdEc4VzBeWeQ" name="packageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kCOd9mEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kCOd9WEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kCOd92EMEeCdEc4VzBeWeQ" name="interfaceName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kCYO8WEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kCYO8GEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kCYO8mEMEeCdEc4VzBeWeQ" name="completionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kCYO9GEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kCYO82EMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kChY4GEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kChY4WEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kChY4mEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kCrJ4GEMEeCdEc4VzBeWeQ" name="relevance" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kCrJ4WEMEeCdEc4VzBeWeQ" name="acceptKeyword">
+ <ownedComment xmi:id="_kCrJ4mEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist notification of a keyword completion.
+ * @param keywordName The keyword source.
+ * @param completionStart The start position of insertion of the name of this keyword.
+ * @param completionEnd The end position of insertion of the name of this keyword.
+ * @param relevance The relevance of the completion proposal
+ * It is a positive integer which are used for determine if this proposal is more relevant than another proposal.
+ * This value can only be used for compare relevance. A proposal is more relevant than another if his relevance
+ * value is higher.
+ * @deprecated Use {@link CompletionRequestor#accept(CompletionProposal)} instead.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kCrJ42EMEeCdEc4VzBeWeQ" name="keywordName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kCrJ5WEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kCrJ5GEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kCrJ5mEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kC-E0GEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kDH10GEMEeCdEc4VzBeWeQ" name="relevance" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kDH10WEMEeCdEc4VzBeWeQ" name="acceptLabel">
+ <ownedComment xmi:id="_kDH10mEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist notification of a label completion.
+ *
+ * @param labelName The label source.
+ * @param completionStart The start position of insertion of the name of this label.
+ * @param completionEnd The end position of insertion of the name of this label.
+ * @param relevance The relevance of the completion proposal
+ * It is a positive integer which are used for determine if this proposal is more relevant than another proposal.
+ * This value can only be used for compare relevance. A proposal is more relevant than another if his relevance
+ * value is higher.
+ * @deprecated Use {@link CompletionRequestor#accept(CompletionProposal)} instead.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kDH102EMEeCdEc4VzBeWeQ" name="labelName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kDH11WEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kDH11GEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kDH11mEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kDQ_wGEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kDQ_wWEMEeCdEc4VzBeWeQ" name="relevance" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kDQ_wmEMEeCdEc4VzBeWeQ" name="acceptLocalVariable">
+ <ownedComment xmi:id="_kDQ_w2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist notification of a local variable completion.
+ *
+ * @param name Name of the new local variable.
+ * @param typePackageName Name of the package in which the type of this new local variable is declared.
+ * @param typeName Name of the type of this new local variable.
+ * @param modifiers The modifiers of this new local variable.
+ * @param completionStart The start position of insertion of the name of this new local variable.
+ * @param completionEnd The end position of insertion of the name of this new local variable.
+ * @param relevance The relevance of the completion proposal
+ * It is a positive integer which are used for determine if this proposal is more relevant than another proposal.
+ * This value can only be used for compare relevance. A proposal is more relevant than another if his relevance
+ * value is higher.
+ *
+ * NOTE - All package and type names are presented in their readable form:
+ * Package names are in the form &quot;a.b.c&quot;.
+ * Base types are in the form &quot;int&quot; or &quot;boolean&quot;.
+ * Array types are in the qualified form &quot;M[]&quot; or &quot;int[]&quot;.
+ * Nested type names are in the qualified form &quot;A.M&quot;.
+ * The default package is represented by an empty array.
+ *
+ * @deprecated Use {@link CompletionRequestor#accept(CompletionProposal)} instead.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kDQ_xGEMEeCdEc4VzBeWeQ" name="name" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kDawwGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kDQ_xWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kDawwWEMEeCdEc4VzBeWeQ" name="typePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kDaww2EMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kDawwmEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kDawxGEMEeCdEc4VzBeWeQ" name="typeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kDawxmEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kDawxWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kDtrsGEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kDtrsWEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kDtrsmEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kDtrs2EMEeCdEc4VzBeWeQ" name="relevance" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kDtrtGEMEeCdEc4VzBeWeQ" name="acceptMethod">
+ <ownedComment xmi:id="_kDtrtWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist notification of a method completion.
+ *
+ * @param declaringTypePackageName Name of the package in which the type that contains this new method is declared.
+ * @param declaringTypeName Name of the type declaring this new method.
+ * @param selector Name of the new method.
+ * @param parameterPackageNames Names of the packages in which the parameter types are declared.
+ * Should contain as many elements as parameterTypeNames.
+ * @param parameterTypeNames Names of the parameter types.
+ * Should contain as many elements as parameterPackageNames.
+ * @param parameterNames Names of the parameters.
+ * Should contain as many elements as parameterPackageNames.
+ * @param returnTypePackageName Name of the package in which the return type is declared.
+ * @param returnTypeName Name of the return type of this new method, should be &lt;code>null&lt;/code> for a constructor.
+ * @param completionName The completion for the method. Can include zero, one or two brackets. If the closing bracket is included, then the cursor should be placed before it.
+ * @param modifiers The modifiers of this new method.
+ * @param completionStart The start position of insertion of the name of this new method.
+ * @param completionEnd The end position of insertion of the name of this new method.
+ * @param relevance The relevance of the completion proposal
+ * It is a positive integer which are used for determine if this proposal is more relevant than another proposal.
+ * This value can only be used for compare relevance. A proposal is more relevant than another if his relevance
+ * value is higher.
+ *
+ * NOTE - All package and type names are presented in their readable form:
+ * Package names are in the form &quot;a.b.c&quot;.
+ * Base types are in the form &quot;int&quot; or &quot;boolean&quot;.
+ * Array types are in the qualified form &quot;M[]&quot; or &quot;int[]&quot;.
+ * Nested type names are in the qualified form &quot;A.M&quot;.
+ * The default package is represented by an empty array.
+ *
+ * NOTE: parameter names can be retrieved from the source model after the user selects a specific method.
+ *
+ * @deprecated Use {@link CompletionRequestor#accept(CompletionProposal)} instead.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kEBNsGEMEeCdEc4VzBeWeQ" name="declaringTypePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kEKXoWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kEKXoGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kEKXomEMEeCdEc4VzBeWeQ" name="declaringTypeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kEKXpGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kEKXo2EMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kEUIoGEMEeCdEc4VzBeWeQ" name="selector" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kEUIomEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kEUIoWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kEUIo2EMEeCdEc4VzBeWeQ" name="parameterPackageNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kEdSkGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kEUIpGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kEdSkWEMEeCdEc4VzBeWeQ" name="parameterTypeNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kEdSk2EMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kEdSkmEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kEdSlGEMEeCdEc4VzBeWeQ" name="parameterNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kEnDkWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kEnDkGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kEnDkmEMEeCdEc4VzBeWeQ" name="returnTypePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kEnDlGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kEnDk2EMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kEnDlWEMEeCdEc4VzBeWeQ" name="returnTypeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kEw0kWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kEw0kGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kFDvgGEMEeCdEc4VzBeWeQ" name="completionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kFNggGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kFDvgWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kFWqcGEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kFWqcWEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kFWqcmEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kFWqc2EMEeCdEc4VzBeWeQ" name="relevance" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kFgbcGEMEeCdEc4VzBeWeQ" name="acceptMethodDeclaration">
+ <ownedComment xmi:id="_kFgbcWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist notification of a method completion.
+ *
+ * @param declaringTypePackageName Name of the package in which the type that contains this new method is declared.
+ * @param declaringTypeName Name of the type declaring this new method.
+ * @param selector Name of the new method.
+ * @param parameterPackageNames Names of the packages in which the parameter types are declared.
+ * Should contain as many elements as parameterTypeNames.
+ * @param parameterTypeNames Names of the parameter types.
+ * Should contain as many elements as parameterPackageNames.
+ * @param parameterNames Names of the parameters.
+ * Should contain as many elements as parameterPackageNames.
+ * @param returnTypePackageName Name of the package in which the return type is declared.
+ * @param returnTypeName Name of the return type of this new method, should be &lt;code>null&lt;/code> for a constructor.
+ * @param completionName The completion for the method. Can include zero, one or two brackets. If the closing bracket is included, then the cursor should be placed before it.
+ * @param modifiers The modifiers of this new method.
+ * @param completionStart The start position of insertion of the name of this new method.
+ * @param completionEnd The end position of insertion of the name of this new method.
+ * @param relevance The relevance of the completion proposal
+ * It is a positive integer which are used for determine if this proposal is more relevant than another proposal.
+ * This value can only be used for compare relevance. A proposal is more relevant than another if his relevance
+ * value is higher.
+ *
+ * NOTE - All package and type names are presented in their readable form:
+ * Package names are in the form &quot;a.b.c&quot;.
+ * Base types are in the form &quot;int&quot; or &quot;boolean&quot;.
+ * Array types are in the qualified form &quot;M[]&quot; or &quot;int[]&quot;.
+ * Nested type names are in the qualified form &quot;A.M&quot;.
+ * The default package is represented by an empty array.
+ *
+ * NOTE: parameter names can be retrieved from the source model after the user selects a specific method.
+ *
+ * @deprecated Use {@link CompletionRequestor#accept(CompletionProposal)} instead.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kFgbcmEMEeCdEc4VzBeWeQ" name="declaringTypePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kFgbdGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kFgbc2EMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kFplYGEMEeCdEc4VzBeWeQ" name="declaringTypeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kFplYmEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kFplYWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kFzWYGEMEeCdEc4VzBeWeQ" name="selector" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kFzWYmEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kFzWYWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kFzWY2EMEeCdEc4VzBeWeQ" name="parameterPackageNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kFzWZWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kFzWZGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kGGRUGEMEeCdEc4VzBeWeQ" name="parameterTypeNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kGQCUGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kGGRUWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kGQCUWEMEeCdEc4VzBeWeQ" name="parameterNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kGQCU2EMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kGQCUmEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kGQCVGEMEeCdEc4VzBeWeQ" name="returnTypePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kGZzUGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kGQCVWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kGZzUWEMEeCdEc4VzBeWeQ" name="returnTypeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kGZzU2EMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kGZzUmEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kGZzVGEMEeCdEc4VzBeWeQ" name="completionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kGsuQGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kGi9QGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kGsuQWEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kGsuQmEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kGsuQ2EMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kGsuRGEMEeCdEc4VzBeWeQ" name="relevance" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kG14MGEMEeCdEc4VzBeWeQ" name="acceptModifier">
+ <ownedComment xmi:id="_kG14MWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist notification of a modifier completion.
+ *
+ * @param modifierName The new modifier.
+ * @param completionStart The start position of insertion of the name of this new modifier.
+ * @param completionEnd The end position of insertion of the name of this new modifier.
+ * @param relevance The relevance of the completion proposal
+ * It is a positive integer which are used for determine if this proposal is more relevant than another proposal.
+ * This value can only be used for compare relevance. A proposal is more relevant than another if his relevance
+ * value is higher.
+ * @deprecated Use {@link CompletionRequestor#accept(CompletionProposal)} instead.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kG14MmEMEeCdEc4VzBeWeQ" name="modifierName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kG14NGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kG14M2EMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kG14NWEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kG14NmEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kG_pMGEMEeCdEc4VzBeWeQ" name="relevance" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kHJaMGEMEeCdEc4VzBeWeQ" name="acceptPackage">
+ <ownedComment xmi:id="_kHJaMWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist notification of a package completion.
+ *
+ * @param packageName The package name.
+ * @param completionName The completion for the package. Can include '.*;' for imports.
+ * @param completionStart The start position of insertion of the name of this new package.
+ * @param completionEnd The end position of insertion of the name of this new package.
+ * @param relevance The relevance of the completion proposal
+ * It is a positive integer which are used for determine if this proposal is more relevant than another proposal.
+ * This value can only be used for compare relevance. A proposal is more relevant than another if his relevance
+ * value is higher.
+ *
+ * NOTE - All package names are presented in their readable form:
+ * Package names are in the form &quot;a.b.c&quot;.
+ * The default package is represented by an empty array.
+ * @deprecated Use {@link CompletionRequestor#accept(CompletionProposal)} instead.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kHJaMmEMEeCdEc4VzBeWeQ" name="packageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kHJaNGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kHJaM2EMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kHJaNWEMEeCdEc4VzBeWeQ" name="completionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kHJaN2EMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kHJaNmEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kHSkIGEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kHSkIWEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kHSkImEMEeCdEc4VzBeWeQ" name="relevance" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kHSkI2EMEeCdEc4VzBeWeQ" name="acceptType">
+ <ownedComment xmi:id="_kHSkJGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist notification of a type completion.
+ *
+ * @param packageName Declaring package name of the type.
+ * @param typeName Name of the type.
+ * @param completionName The completion for the type. Can include ';' for imported types.
+ * @param completionStart The start position of insertion of the name of the type.
+ * @param completionEnd The end position of insertion of the name of the type.
+ * @param relevance The relevance of the completion proposal
+ * It is a positive integer which are used for determine if this proposal is more relevant than another proposal.
+ * This value can only be used for compare relevance. A proposal is more relevant than another if his relevance
+ * value is higher.
+ *
+ * NOTE - All package and type names are presented in their readable form:
+ * Package names are in the form &quot;a.b.c&quot;.
+ * Nested type names are in the qualified form &quot;A.M&quot;.
+ * The default package is represented by an empty array.
+ * @deprecated Use {@link CompletionRequestor#accept(CompletionProposal)} instead.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kHSkJWEMEeCdEc4VzBeWeQ" name="packageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kHcVIWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kHcVIGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kHcVImEMEeCdEc4VzBeWeQ" name="typeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kHcVJGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kHcVI2EMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kHmGIGEMEeCdEc4VzBeWeQ" name="completionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kHmGImEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kHmGIWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kHvQEGEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kHvQEWEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kH5BEGEMEeCdEc4VzBeWeQ" name="relevance" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kH5BEWEMEeCdEc4VzBeWeQ" name="acceptVariableName">
+ <ownedComment xmi:id="_kH5BEmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist notification of a variable name completion.
+ *
+ * @param typePackageName Name of the package in which the type of this variable is declared.
+ * @param typeName Name of the type of this variable.
+ * @param name Name of the variable.
+ * @param completionName The completion for the variable.
+ * @param completionStart The start position of insertion of the name of this variable.
+ * @param completionEnd The end position of insertion of the name of this variable.
+ * @param relevance The relevance of the completion proposal
+ * It is a positive integer which are used for determine if this proposal is more relevant than another proposal.
+ * This value can only be used for compare relevance. A proposal is more relevant than another if his relevance
+ * value is higher.
+ *
+ * NOTE - All package and type names are presented in their readable form:
+ * Package names are in the form &quot;a.b.c&quot;.
+ * Base types are in the form &quot;int&quot; or &quot;boolean&quot;.
+ * Array types are in the qualified form &quot;M[]&quot; or &quot;int[]&quot;.
+ * Nested type names are in the qualified form &quot;A.M&quot;.
+ * The default package is represented by an empty array.
+ * @deprecated Use {@link CompletionRequestor#accept(CompletionProposal)} instead.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kH5BE2EMEeCdEc4VzBeWeQ" name="typePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kH5BFWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kH5BFGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kICLAGEMEeCdEc4VzBeWeQ" name="typeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kICLAmEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kICLAWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kICLA2EMEeCdEc4VzBeWeQ" name="name" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kIL8AWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kIL8AGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kIL8AmEMEeCdEc4VzBeWeQ" name="completionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kIL8BGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kIL8A2EMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kIVtAGEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kIVtAWEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kIVtAmEMEeCdEc4VzBeWeQ" name="relevance" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_kI7i4GEMEeCdEc4VzBeWeQ" name="ICorrectionRequestor">
+ <ownedComment xmi:id="_kI7i4WEMEeCdEc4VzBeWeQ">
+ <body>
+ * A callback interface for receiving java problem correction.
+ *
+ * @since 2.0
+ </body>
+ </ownedComment>
+ <ownedOperation xmi:id="_kI7i4mEMEeCdEc4VzBeWeQ" name="acceptClass">
+ <ownedComment xmi:id="_kI7i42EMEeCdEc4VzBeWeQ">
+ <body>
+ * Notification of a class correction.
+ *
+ * @param packageName Declaring package name of the class.
+ * @param className Name of the class.
+ * @param correctionName The correction for the class.
+ * @param modifiers The modifiers of the class.
+ * @param correctionStart The start position of insertion of the correction of the class.
+ * @param correctionEnd The end position of insertion of the correction of the class.
+ *
+ * NOTE - All package and type names are presented in their readable form:
+ * Package names are in the form &quot;a.b.c&quot;.
+ * Nested type names are in the qualified form &quot;A.M&quot;.
+ * The default package is represented by an empty array.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kJFT4GEMEeCdEc4VzBeWeQ" name="packageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kJFT4mEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kJFT4WEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kJFT42EMEeCdEc4VzBeWeQ" name="className" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kJOd0GEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kJFT5GEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kJOd0WEMEeCdEc4VzBeWeQ" name="correctionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kJOd02EMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kJOd0mEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kJOd1GEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kJYO0GEMEeCdEc4VzBeWeQ" name="correctionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kJYO0WEMEeCdEc4VzBeWeQ" name="correctionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kJYO0mEMEeCdEc4VzBeWeQ" name="acceptField">
+ <ownedComment xmi:id="_kJYO02EMEeCdEc4VzBeWeQ">
+ <body>
+ * Notification of a field correction.
+ *
+ * @param declaringTypePackageName Name of the package in which the type that contains this field is declared.
+ * @param declaringTypeName Name of the type declaring this field.
+ * @param name Name of the field.
+ * @param typePackageName Name of the package in which the type of this field is declared.
+ * @param typeName Name of the type of this field.
+ * @param correctionName The correction for the field.
+ * @param modifiers The modifiers of this field.
+ * @param correctionStart The start position of insertion of the correction of this field.
+ * @param correctionEnd The end position of insertion of the correction of this field.
+ *
+ * NOTE - All package and type names are presented in their readable form:
+ * Package names are in the form &quot;a.b.c&quot;.
+ * Base types are in the form &quot;int&quot; or &quot;boolean&quot;.
+ * Array types are in the qualified form &quot;M[]&quot; or &quot;int[]&quot;.
+ * Nested type names are in the qualified form &quot;A.M&quot;.
+ * The default package is represented by an empty array.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kJYO1GEMEeCdEc4VzBeWeQ" name="declaringTypePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kJYO1mEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kJYO1WEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kJh_0GEMEeCdEc4VzBeWeQ" name="declaringTypeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kJh_0mEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kJh_0WEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kJh_02EMEeCdEc4VzBeWeQ" name="name" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kJrJwWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kJrJwGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kJrJwmEMEeCdEc4VzBeWeQ" name="typePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kJrJxGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kJrJw2EMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kJ06wGEMEeCdEc4VzBeWeQ" name="typeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kJ06wmEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kJ06wWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kJ06w2EMEeCdEc4VzBeWeQ" name="correctionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kJ-rwGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kJ06xGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kJ-rwWEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kJ-rwmEMEeCdEc4VzBeWeQ" name="correctionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kJ-rw2EMEeCdEc4VzBeWeQ" name="correctionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kJ-rxGEMEeCdEc4VzBeWeQ" name="acceptInterface">
+ <ownedComment xmi:id="_kJ-rxWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Notification of an interface correction.
+ *
+ * @param packageName Declaring package name of the interface.
+ * @param interfaceName Name of the interface.
+ * @param correctionName The correction for the interface.
+ * Can include ';' for imported interfaces.
+ * @param modifiers The modifiers of the interface.
+ * @param correctionStart The start position of insertion of the correction of the interface.
+ * @param correctionEnd The end position of insertion of the correction of the interface.
+ *
+ * NOTE - All package and type names are presented in their readable form:
+ * Package names are in the form &quot;a.b.c&quot;.
+ * Nested type names are in the qualified form &quot;A.M&quot;.
+ * The default package is represented by an empty array.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kKH1sGEMEeCdEc4VzBeWeQ" name="packageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kKH1smEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kKH1sWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kKH1s2EMEeCdEc4VzBeWeQ" name="interfaceName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kKRmsWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kKRmsGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kKRmsmEMEeCdEc4VzBeWeQ" name="correctionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kKawoGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kKRms2EMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kKawoWEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kKawomEMEeCdEc4VzBeWeQ" name="correctionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kKawo2EMEeCdEc4VzBeWeQ" name="correctionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kKkhoGEMEeCdEc4VzBeWeQ" name="acceptLocalVariable">
+ <ownedComment xmi:id="_kKkhoWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Notification of a local variable correction.
+ *
+ * @param name Name of the local variable.
+ * @param typePackageName Name of the package in which the type of this local variable is declared.
+ * @param typeName Name of the type of this local variable.
+ * @param modifiers The modifiers of this local variable.
+ * @param correctionStart The start position of insertion of the correction of this local variable.
+ * @param correctionEnd The end position of insertion of the correction of this local variable.
+ *
+ * NOTE - All package and type names are presented in their readable form:
+ * Package names are in the form &quot;a.b.c&quot;.
+ * Base types are in the form &quot;int&quot; or &quot;boolean&quot;.
+ * Array types are in the qualified form &quot;M[]&quot; or &quot;int[]&quot;.
+ * Nested type names are in the qualified form &quot;A.M&quot;.
+ * The default package is represented by an empty array.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kKkhomEMEeCdEc4VzBeWeQ" name="name" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kKkhpGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kKkho2EMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kKuSoGEMEeCdEc4VzBeWeQ" name="typePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kKuSomEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kKuSoWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kKuSo2EMEeCdEc4VzBeWeQ" name="typeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kK3ckWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kK3ckGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kK3ckmEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kLBNkGEMEeCdEc4VzBeWeQ" name="correctionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kLBNkWEMEeCdEc4VzBeWeQ" name="correctionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kLBNkmEMEeCdEc4VzBeWeQ" name="acceptMethod">
+ <ownedComment xmi:id="_kLBNk2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Notification of a method correction.
+ *
+ * @param declaringTypePackageName Name of the package in which the type that contains this method is declared.
+ * @param declaringTypeName Name of the type declaring this method.
+ * @param selector Name of the method.
+ * @param parameterPackageNames Names of the packages in which the parameter types are declared.
+ * Should contain as many elements as parameterTypeNames.
+ * @param parameterTypeNames Names of the parameter types.
+ * Should contain as many elements as parameterPackageNames.
+ * @param parameterNames Names of the parameters.
+ * Should contain as many elements as parameterPackageNames.
+ * @param returnTypePackageName Name of the package in which the return type is declared.
+ * @param returnTypeName Name of the return type of this method, should be &lt;code>null&lt;/code> for a constructor.
+ * @param correctionName The correction for the method.
+ * Can include zero, one or two brackets. If the closing bracket is included, then the cursor should be placed before it.
+ * @param modifiers The modifiers of this method.
+ * @param correctionStart The start position of insertion of the correction of this method.
+ * @param correctionEnd The end position of insertion of the correction of this method.
+ *
+ * NOTE - All package and type names are presented in their readable form:
+ * Package names are in the form &quot;a.b.c&quot;.
+ * Base types are in the form &quot;int&quot; or &quot;boolean&quot;.
+ * Array types are in the qualified form &quot;M[]&quot; or &quot;int[]&quot;.
+ * Nested type names are in the qualified form &quot;A.M&quot;.
+ * The default package is represented by an empty array.
+ *
+ * NOTE: parameter names can be retrieved from the source model after the user selects a specific method.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kLBNlGEMEeCdEc4VzBeWeQ" name="declaringTypePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kLBNlmEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kLBNlWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kLK-kGEMEeCdEc4VzBeWeQ" name="declaringTypeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kLK-kmEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kLK-kWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kLK-k2EMEeCdEc4VzBeWeQ" name="selector" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kLUIgWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kLUIgGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kLUIgmEMEeCdEc4VzBeWeQ" name="parameterPackageNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kLUIhGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kLUIg2EMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kLd5gGEMEeCdEc4VzBeWeQ" name="parameterTypeNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kLnDcWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kLnDcGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kLnDcmEMEeCdEc4VzBeWeQ" name="parameterNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kLnDdGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kLnDc2EMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kLw0cGEMEeCdEc4VzBeWeQ" name="returnTypePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kLw0cmEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kLw0cWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kLw0c2EMEeCdEc4VzBeWeQ" name="returnTypeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kL6lcGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kLw0dGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kL6lcWEMEeCdEc4VzBeWeQ" name="correctionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kL6lc2EMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kL6lcmEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kMDvYGEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kMDvYWEMEeCdEc4VzBeWeQ" name="correctionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kMDvYmEMEeCdEc4VzBeWeQ" name="correctionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kMDvY2EMEeCdEc4VzBeWeQ" name="acceptPackage">
+ <ownedComment xmi:id="_kMDvZGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Notification of a package correction.
+ *
+ * @param packageName The package name.
+ * @param correctionName The correction for the package.
+ * Can include '.*;' for imports.
+ * @param correctionStart The start position of insertion of the correction of this package.
+ * @param correctionEnd The end position of insertion of the correction of this package.
+ *
+ * NOTE - All package names are presented in their readable form:
+ * Package names are in the form &quot;a.b.c&quot;.
+ * The default package is represented by an empty array.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kMDvZWEMEeCdEc4VzBeWeQ" name="packageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kMNgYGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kMDvZmEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kMNgYWEMEeCdEc4VzBeWeQ" name="correctionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kMXRYWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kMXRYGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kMXRYmEMEeCdEc4VzBeWeQ" name="correctionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kMXRY2EMEeCdEc4VzBeWeQ" name="correctionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_kM9HQGEMEeCdEc4VzBeWeQ" name="IElementChangedListener">
+ <ownedComment xmi:id="_kM9HQWEMEeCdEc4VzBeWeQ">
+ <body>
+ * An element changed listener receives notification of changes to Java elements
+ * maintained by the Java model.
+ * &lt;p>
+ * This interface may be implemented by clients.
+ * &lt;/p>
+ </body>
+ </ownedComment>
+ <ownedOperation xmi:id="_kM9HQmEMEeCdEc4VzBeWeQ" name="elementChanged" visibility="public">
+ <ownedComment xmi:id="_kM9HQ2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Notifies that one or more attributes of one or more Java elements have changed.
+ * The specific details of the change are described by the given event.
+ *
+ * @param event the change event
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kM9HRGEMEeCdEc4VzBeWeQ" name="event" type="_jwf0wGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_kNQCMGEMEeCdEc4VzBeWeQ" name="IField">
+ <ownedComment xmi:id="_kNQCMWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Represents a field declared in a type.
+ *
+ * @noimplement This interface is not intended to be implemented by clients.
+ </body>
+ </ownedComment>
+ <generalization xmi:id="_fjJYoGEOEeCdEc4VzBeWeQ" general="_klF6cGEMEeCdEc4VzBeWeQ"/>
+ <generalization xmi:id="_fjJYoWEOEeCdEc4VzBeWeQ" general="_j09eAGEMEeCdEc4VzBeWeQ"/>
+ <ownedOperation xmi:id="_fjJYomEOEeCdEc4VzBeWeQ" name="getConstant" visibility="public">
+ <ownedComment xmi:id="_fjJYo2EOEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the constant value associated with this field
+ * or &lt;code>null&lt;/code> if this field has none. The field needs to be static and final to have
+ * a constant value.
+ * Returns an instance of the wrapper type corresponding to the the type of the field.
+ * &lt;table border=&quot;1&quot;>
+ * &lt;tr>
+ * &lt;th>field type&lt;/th>
+ * &lt;th>wrapper type&lt;/th>
+ * &lt;/tr>
+ * &lt;tr>
+ * &lt;td>int
+ * &lt;/td>
+ * &lt;td>java.lang.Integer
+ * &lt;/td>
+ * &lt;/tr>
+ * &lt;tr>
+ * &lt;td>byte
+ * &lt;/td>
+ * &lt;td>java.lang.Byte
+ * &lt;/td>
+ * &lt;/tr>
+ * &lt;tr>
+ * &lt;td>boolean
+ * &lt;/td>
+ * &lt;td>java.lang.Boolean
+ * &lt;/td>
+ * &lt;/tr>
+ * &lt;tr>
+ * &lt;td>char
+ * &lt;/td>
+ * &lt;td>java.lang.Character
+ * &lt;/td>
+ * &lt;/tr>
+ * &lt;tr>
+ * &lt;td>double
+ * &lt;/td>
+ * &lt;td>java.lang.Double
+ * &lt;/td>
+ * &lt;/tr>
+ * &lt;tr>
+ * &lt;td>float
+ * &lt;/td>
+ * &lt;td>java.lang.Float
+ * &lt;/td>
+ * &lt;/tr>
+ * &lt;tr>
+ * &lt;td>long
+ * &lt;/td>
+ * &lt;td>java.lang.Long
+ * &lt;/td>
+ * &lt;/tr>
+ * &lt;tr>
+ * &lt;td>short
+ * &lt;/td>
+ * &lt;td>java.lang.Short
+ * &lt;/td>
+ * &lt;/tr>
+ * &lt;tr>
+ * &lt;td>java.lang.String
+ * &lt;/td>
+ * &lt;td>java.lang.String
+ * &lt;/td>
+ * &lt;/tr>
+ * &lt;/table>
+ *
+ * @return the constant value associated with this field or &lt;code>null&lt;/code> if this field has none.
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_fjSikGEOEeCdEc4VzBeWeQ" type="_kOcVAmEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_fjSikWEOEeCdEc4VzBeWeQ" name="getElementName">
+ <ownedComment xmi:id="_fjSikmEOEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the simple name of this field.
+ * @return the simple name of this field.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_fjcTkGEOEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_fjmEkGEOEeCdEc4VzBeWeQ" name="getKey">
+ <ownedComment xmi:id="_fjmEkWEOEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the binding key for this field only if the given field is {@link #isResolved() resolved}.
+ * A binding key is a key that uniquely identifies this field. It allows access to generic info
+ * for parameterized fields.
+ *
+ * &lt;p>If the given field is not resolved, the returned key is simply the java element's key.
+ * &lt;/p>
+ * @return the binding key for this field
+ * @see org.eclipse.jdt.core.dom.IBinding#getKey()
+ * @see BindingKey
+ * @see #isResolved()
+ * @since 3.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_fjmEkmEOEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_fjvOgGEOEeCdEc4VzBeWeQ" name="getTypeSignature">
+ <ownedComment xmi:id="_fjvOgWEOEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the type signature of this field. For enum constants,
+ * this returns the signature of the declaring enum class.
+ * &lt;p>
+ * The type signature may be either unresolved (for source types)
+ * or resolved (for binary types), and either basic (for basic types)
+ * or rich (for parameterized types). See {@link Signature} for details.
+ * &lt;/p>
+ *
+ * @return the type signature of this field
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ * @see Signature
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_fjvOgmEOEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_fjvOg2EOEeCdEc4VzBeWeQ" name="isEnumConstant">
+ <ownedComment xmi:id="_fjvOhGEOEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether this field represents an enum constant.
+ *
+ * @return whether this field represents an enum constant
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ * @since 3.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_fj4_gGEOEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_fj4_gWEOEeCdEc4VzBeWeQ" name="isResolved">
+ <ownedComment xmi:id="_fj4_gmEOEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether this field represents a resolved field.
+ * If a field is resolved, its key contains resolved information.
+ *
+ * @return whether this field represents a resolved field.
+ * @since 3.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_fj4_g2EOEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_kNZzMGEMEeCdEc4VzBeWeQ" name="IImportContainer">
+ <ownedComment xmi:id="_kNZzMWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Represents an import container is a child of a Java compilation unit that contains
+ * all (and only) the import declarations. If a compilation unit has no import
+ * declarations, no import container will be present.
+ *
+ * @noimplement This interface is not intended to be implemented by clients.
+ </body>
+ </ownedComment>
+ <generalization xmi:id="_swXycGEPEeCdEc4VzBeWeQ" general="_kO5A8GEMEeCdEc4VzBeWeQ"/>
+ <generalization xmi:id="_swXycWEPEeCdEc4VzBeWeQ" general="_kq6OkGEMEeCdEc4VzBeWeQ"/>
+ <generalization xmi:id="_swg8YGEPEeCdEc4VzBeWeQ" general="_kuCbEGEMEeCdEc4VzBeWeQ"/>
+ <ownedOperation xmi:id="_swg8YWEPEeCdEc4VzBeWeQ" name="getImport">
+ <ownedComment xmi:id="_swg8YmEPEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the first import declaration in this import container with the given name.
+ * This is a handle-only method. The import declaration may or may not exist.
+ *
+ * @param name the given name
+ *
+ * @return the first import declaration in this import container with the given name
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_swg8Y2EPEeCdEc4VzBeWeQ" type="_kNjkMGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_swqtYGEPEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_kNjkMGEMEeCdEc4VzBeWeQ" name="IImportDeclaration">
+ <ownedComment xmi:id="_kNjkMWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Represents an import declaration in Java compilation unit.
+ *
+ * @noimplement This interface is not intended to be implemented by clients.
+ </body>
+ </ownedComment>
+ <generalization xmi:id="_8utT4GEOEeCdEc4VzBeWeQ" general="_kO5A8GEMEeCdEc4VzBeWeQ"/>
+ <generalization xmi:id="_8utT4WEOEeCdEc4VzBeWeQ" general="_kuCbEGEMEeCdEc4VzBeWeQ"/>
+ <generalization xmi:id="_8utT4mEOEeCdEc4VzBeWeQ" general="_kssXQGEMEeCdEc4VzBeWeQ"/>
+ <ownedOperation xmi:id="_8u2d0GEOEeCdEc4VzBeWeQ" name="getElementName">
+ <ownedComment xmi:id="_8u2d0WEOEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the name that has been imported.
+ * For an on-demand import, this includes the trailing &lt;code>&quot;.*&quot;&lt;/code>.
+ * For example, for the statement &lt;code>&quot;import java.util.*&quot;&lt;/code>,
+ * this returns &lt;code>&quot;java.util.*&quot;&lt;/code>.
+ * For the statement &lt;code>&quot;import java.util.Hashtable&quot;&lt;/code>,
+ * this returns &lt;code>&quot;java.util.Hashtable&quot;&lt;/code>.
+ *
+ * @return the name that has been imported
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_8u2d0mEOEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_8vAO0GEOEeCdEc4VzBeWeQ" name="getFlags">
+ <ownedComment xmi:id="_8vAO0WEOEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the modifier flags for this import. The flags can be examined using class
+ * &lt;code>Flags&lt;/code>. Only the static flag is meaningful for import declarations.
+ *
+ * @return the modifier flags for this import
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @see Flags
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_8vAO0mEOEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_8vAO02EOEeCdEc4VzBeWeQ" name="isOnDemand">
+ <ownedComment xmi:id="_8vAO1GEOEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether the import is on-demand. An import is on-demand if it ends
+ * with &lt;code>&quot;.*&quot;&lt;/code>.
+ * @return true if the import is on-demand, false otherwise
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_8vJ_0GEOEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_kNjkMmEMEeCdEc4VzBeWeQ" name="IInitializer">
+ <ownedComment xmi:id="_kNjkM2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Represents a stand-alone instance or class (static) initializer in a type.
+ *
+ * @noimplement This interface is not intended to be implemented by clients.
+ </body>
+ </ownedComment>
+ <generalization xmi:id="_G2eJ0GHaEeCIr_fxSkYSJA" general="_klF6cGEMEeCdEc4VzBeWeQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_kOJaEGEMEeCdEc4VzBeWeQ" name="IJarEntryResource">
+ <ownedComment xmi:id="_kOJaEWEMEeCdEc4VzBeWeQ">
+ <body>
+ * A jar entry corresponding to a non-Java resource in an archive {@link IPackageFragment} or {@link IPackageFragmentRoot}.
+ * &lt;p>
+ * One can navigate the non-Java resource tree using the {@link #getChildren()} and {@link #getParent()} methods.
+ * Jar entry resources are either files ({@link #isFile()} returns true) or directories ({@link #isFile()} returns false).
+ * Files don't have any children and the returned array is always empty.
+ * &lt;/p>&lt;p>
+ * Jar entry resources that refer to the same element are guaranteed to be equal, but not necessarily identical.
+ * &lt;p>
+ *
+ * @since 3.3
+ </body>
+ </ownedComment>
+ <generalization xmi:id="_kOJaE2EMEeCdEc4VzBeWeQ" general="_kOJaEmEMEeCdEc4VzBeWeQ"/>
+ <ownedOperation xmi:id="_kOTLEGEMEeCdEc4VzBeWeQ" name="getChildren">
+ <ownedComment xmi:id="_kOTLEWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the list of children of this jar entry resource.
+ * Returns an empty array if this jar entry is a file, or if this jar entry is a directory and it has no children.
+ *
+ * @return the children of this jar entry resource
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kOTLEmEMEeCdEc4VzBeWeQ" type="_kOJaEGEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kOTLFGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kOTLE2EMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kOTLFWEMEeCdEc4VzBeWeQ" name="getFullPath">
+ <ownedComment xmi:id="_kOTLFmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the full, absolute path of this jar entry resource relative to the archive this jar
+ * entry belongs to.
+ * &lt;p>
+ * A jar entry resource's full path indicates the route from the root of the archive
+ * to the jar entry resource. Within an archive, there is exactly one such path
+ * for any given jar entry resource. &lt;/p>
+ * &lt;p>
+ * The returned path is absolute (i.e. it starts with a separator) and it never has a trailing separator.
+ * &lt;/p>
+ *
+ * @return the absolute path of this jar entry resource
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kOTLF2EMEeCdEc4VzBeWeQ" type="_j00UEmEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kOcVAGEMEeCdEc4VzBeWeQ" name="getParent">
+ <ownedComment xmi:id="_kOcVAWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the parent of this jar entry resource. This is either an {@link IJarEntryResource}, an {@link IPackageFragment}
+ * or an {@link IPackageFragmentRoot}.
+ *
+ * @return the parent of this jar entry resource
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kOcVA2EMEeCdEc4VzBeWeQ" type="_kOcVAmEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kOcVBGEMEeCdEc4VzBeWeQ" name="getPackageFragmentRoot">
+ <ownedComment xmi:id="_kOcVBWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the package fragment root this jar entry resource belongs to.
+ *
+ * @return the package fragment root this jar entry resource belongs to.
+ </body>
+ </ownedComment>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_kO5A8GEMEeCdEc4VzBeWeQ" name="IJavaElement">
+ <ownedComment xmi:id="_kO5A8WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Common protocol for all elements provided by the Java model.
+ * Java model elements are exposed to clients as handles to the actual underlying element.
+ * The Java model may hand out any number of handles for each element. Handles
+ * that refer to the same element are guaranteed to be equal, but not necessarily identical.
+ * &lt;p>
+ * Methods annotated as &quot;handle-only&quot; do not require underlying elements to exist.
+ * Methods that require underlying elements to exist throw
+ * a &lt;code>JavaModelException&lt;/code> when an underlying element is missing.
+ * &lt;code>JavaModelException.isDoesNotExist&lt;/code> can be used to recognize
+ * this common special case.
+ * &lt;/p>
+ * @noimplement This interface is not intended to be implemented by clients.
+ </body>
+ </ownedComment>
+ <generalization xmi:id="_kO5A82EMEeCdEc4VzBeWeQ" general="_kO5A8mEMEeCdEc4VzBeWeQ"/>
+ <ownedAttribute xmi:id="_kO5A9GEMEeCdEc4VzBeWeQ" name="JAVA_MODEL" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kPCx8GEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant representing a Java model (workspace level object).
+ * A Java element with this type can be safely cast to {@link IJavaModel}.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kPCx8WEMEeCdEc4VzBeWeQ" name="JAVA_PROJECT" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kPCx8mEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant representing a Java project.
+ * A Java element with this type can be safely cast to {@link IJavaProject}.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kPCx82EMEeCdEc4VzBeWeQ" name="PACKAGE_FRAGMENT_ROOT" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kPCx9GEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant representing a package fragment root.
+ * A Java element with this type can be safely cast to {@link IPackageFragmentRoot}.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kPL74GEMEeCdEc4VzBeWeQ" name="PACKAGE_FRAGMENT" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kPL74WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant representing a package fragment.
+ * A Java element with this type can be safely cast to {@link IPackageFragment}.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kPL74mEMEeCdEc4VzBeWeQ" name="COMPILATION_UNIT" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kPL742EMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant representing a Java compilation unit.
+ * A Java element with this type can be safely cast to {@link ICompilationUnit}.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kPL75GEMEeCdEc4VzBeWeQ" name="CLASS_FILE" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kPVs4GEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant representing a class file.
+ * A Java element with this type can be safely cast to {@link IClassFile}.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kPVs4WEMEeCdEc4VzBeWeQ" name="TYPE" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kPVs4mEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant representing a type (a class or interface).
+ * A Java element with this type can be safely cast to {@link IType}.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kPVs42EMEeCdEc4VzBeWeQ" name="FIELD" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kPfd4GEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant representing a field.
+ * A Java element with this type can be safely cast to {@link IField}.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kPfd4WEMEeCdEc4VzBeWeQ" name="METHOD" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kPfd4mEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant representing a method or constructor.
+ * A Java element with this type can be safely cast to {@link IMethod}.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kPon0GEMEeCdEc4VzBeWeQ" name="INITIALIZER" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kPon0WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant representing a stand-alone instance or class initializer.
+ * A Java element with this type can be safely cast to {@link IInitializer}.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kPyY0GEMEeCdEc4VzBeWeQ" name="PACKAGE_DECLARATION" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kPyY0WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant representing a package declaration within a compilation unit.
+ * A Java element with this type can be safely cast to {@link IPackageDeclaration}.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kPyY0mEMEeCdEc4VzBeWeQ" name="IMPORT_CONTAINER" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kPyY02EMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant representing all import declarations within a compilation unit.
+ * A Java element with this type can be safely cast to {@link IImportContainer}.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kPyY1GEMEeCdEc4VzBeWeQ" name="IMPORT_DECLARATION" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kP8J0GEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant representing an import declaration within a compilation unit.
+ * A Java element with this type can be safely cast to {@link IImportDeclaration}.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kP8J0WEMEeCdEc4VzBeWeQ" name="LOCAL_VARIABLE" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kP8J0mEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant representing a local variable declaration.
+ * A Java element with this type can be safely cast to {@link ILocalVariable}.
+ * @since 3.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kP8J02EMEeCdEc4VzBeWeQ" name="TYPE_PARAMETER" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kP8J1GEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant representing a type parameter declaration.
+ * A Java element with this type can be safely cast to {@link ITypeParameter}.
+ * @since 3.1
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kP8J1WEMEeCdEc4VzBeWeQ" name="ANNOTATION" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kQFTwGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant representing an annotation.
+ * A Java element with this type can be safely cast to {@link IAnnotation}.
+ * @since 3.4
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_kQFTwWEMEeCdEc4VzBeWeQ" name="exists">
+ <ownedComment xmi:id="_kQFTwmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether this Java element exists in the model.
+ * &lt;p>
+ * Java elements are handle objects that may or may not be backed by an
+ * actual element. Java elements that are backed by an actual element are
+ * said to &quot;exist&quot;, and this method returns &lt;code>true&lt;/code>. For Java
+ * elements that are not working copies, it is always the case that if the
+ * element exists, then its parent also exists (provided it has one) and
+ * includes the element as one of its children. It is therefore possible
+ * to navigated to any existing Java element from the root of the Java model
+ * along a chain of existing Java elements. On the other hand, working
+ * copies are said to exist until they are destroyed (with
+ * &lt;code>IWorkingCopy.destroy&lt;/code>). Unlike regular Java elements, a
+ * working copy never shows up among the children of its parent element
+ * (which may or may not exist).
+ * &lt;/p>
+ *
+ * @return &lt;code>true&lt;/code> if this element exists in the Java model, and
+ * &lt;code>false&lt;/code> if this element does not exist
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kQFTw2EMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kQPEwGEMEeCdEc4VzBeWeQ" name="getAncestor">
+ <ownedComment xmi:id="_kQPEwWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the first ancestor of this Java element that has the given type.
+ * Returns &lt;code>null&lt;/code> if no such an ancestor can be found.
+ * This is a handle-only method.
+ *
+ * @param ancestorType the given type
+ * @return the first ancestor of this Java element that has the given type, null if no such an ancestor can be found
+ * @since 2.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kQPEwmEMEeCdEc4VzBeWeQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_kQYOsGEMEeCdEc4VzBeWeQ" name="ancestorType" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kQYOsWEMEeCdEc4VzBeWeQ" name="getAttachedJavadoc">
+ <ownedComment xmi:id="_kQYOsmEMEeCdEc4VzBeWeQ">
+ <body>
+ * &lt;p>Returns the Javadoc as an html source if this element has an attached javadoc,
+ * null otherwise.&lt;/p>
+ * &lt;p>This should be used only for binary elements. Source elements will always return null.&lt;/p>
+ * &lt;p>The encoding used to read the javadoc is the one defined by the content type of the
+ * file. If none is defined, then the project's encoding of this java element is used. If the project's
+ * encoding cannot be retrieved, then the platform encoding is used.&lt;/p>
+ * &lt;p>In case of the javadoc doesn't exist for this element, null is returned.&lt;/p>
+ *
+ * &lt;p>The html is extracted from the attached javadoc and provided as is. No
+ * transformation or validation is done.&lt;/p>
+ *
+ * @param monitor the given progress monitor
+ * @exception JavaModelException if:&lt;ul>
+ * &lt;li>this element does not exist&lt;/li>
+ * &lt;li>retrieving the attached javadoc fails (timed-out, invalid URL, ...)&lt;/li>
+ * &lt;li>the format of the javadoc doesn't match expected standards (different anchors,...)&lt;/li>
+ * &lt;/ul>
+ * @return the extracted javadoc from the attached javadoc, null if none
+ * @see IClasspathAttribute#JAVADOC_LOCATION_ATTRIBUTE_NAME
+ * @since 3.2
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kQYOs2EMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_kQYOtGEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kQh_sGEMEeCdEc4VzBeWeQ" name="getCorrespondingResource">
+ <ownedComment xmi:id="_kQh_sWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the resource that corresponds directly to this element,
+ * or &lt;code>null&lt;/code> if there is no resource that corresponds to
+ * this element.
+ * &lt;p>
+ * For example, the corresponding resource for an &lt;code>ICompilationUnit&lt;/code>
+ * is its underlying &lt;code>IFile&lt;/code>. The corresponding resource for
+ * an &lt;code>IPackageFragment&lt;/code> that is not contained in an archive
+ * is its underlying &lt;code>IFolder&lt;/code>. An &lt;code>IPackageFragment&lt;/code>
+ * contained in an archive has no corresponding resource. Similarly, there
+ * are no corresponding resources for &lt;code>IMethods&lt;/code>,
+ * &lt;code>IFields&lt;/code>, etc.
+ * &lt;p>
+ *
+ * @return the corresponding resource, or &lt;code>null&lt;/code> if none
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kQh_s2EMEeCdEc4VzBeWeQ" type="_kQh_smEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kQh_tGEMEeCdEc4VzBeWeQ" name="getElementName">
+ <ownedComment xmi:id="_kQh_tWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the name of this element. This is a handle-only method.
+ *
+ * @return the element name
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kQh_tmEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kQh_t2EMEeCdEc4VzBeWeQ" name="getElementType">
+ <ownedComment xmi:id="_kQh_uGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns this element's kind encoded as an integer.
+ * This is a handle-only method.
+ *
+ * @return the kind of element; one of the constants declared in
+ * &lt;code>IJavaElement&lt;/code>
+ * @see IJavaElement
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kQh_uWEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kQrwsGEMEeCdEc4VzBeWeQ" name="getHandleIdentifier">
+ <ownedComment xmi:id="_kQrwsWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns a string representation of this element handle. The format of
+ * the string is not specified; however, the identifier is stable across
+ * workspace sessions, and can be used to recreate this handle via the
+ * &lt;code>JavaCore.create(String)&lt;/code> method.
+ *
+ * @return the string handle identifier
+ * @see JavaCore#create(java.lang.String)
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kQrwsmEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kQrws2EMEeCdEc4VzBeWeQ" name="getJavaModel">
+ <ownedComment xmi:id="_kQrwtGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the Java model.
+ * This is a handle-only method.
+ *
+ * @return the Java model
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_szN0kGHfEeCIr_fxSkYSJA" type="_kYbXcGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_szXlkGHfEeCIr_fxSkYSJA" name="getJavaProject">
+ <ownedComment xmi:id="_szXlkWHfEeCIr_fxSkYSJA">
+ <body>
+ * Returns the Java project this element is contained in,
+ * or &lt;code>null&lt;/code> if this element is not contained in any Java project
+ * (for instance, the &lt;code>IJavaModel&lt;/code> is not contained in any Java
+ * project).
+ * This is a handle-only method.
+ *
+ * @return the containing Java project, or &lt;code>null&lt;/code> if this element is
+ * not contained in a Java project
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_szXlkmHfEeCIr_fxSkYSJA" type="_kjmssGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_szXlk2HfEeCIr_fxSkYSJA" name="getOpenable">
+ <ownedComment xmi:id="_szXllGHfEeCIr_fxSkYSJA">
+ <body>
+ * Returns the first openable parent. If this element is openable, the element
+ * itself is returned. Returns &lt;code>null&lt;/code> if this element doesn't have
+ * an openable parent.
+ * This is a handle-only method.
+ *
+ * @return the first openable parent or &lt;code>null&lt;/code> if this element doesn't have
+ * an openable parent.
+ * @since 2.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_szhWkGHfEeCIr_fxSkYSJA" type="_koX38GEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_szhWkWHfEeCIr_fxSkYSJA" name="getParent">
+ <ownedComment xmi:id="_szhWkmHfEeCIr_fxSkYSJA">
+ <body>
+ * Returns the element directly containing this element,
+ * or &lt;code>null&lt;/code> if this element has no parent.
+ * This is a handle-only method.
+ *
+ * @return the parent element, or &lt;code>null&lt;/code> if this element has no parent
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_szqggGHfEeCIr_fxSkYSJA" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_szqggWHfEeCIr_fxSkYSJA" name="getPath">
+ <ownedComment xmi:id="_szqggmHfEeCIr_fxSkYSJA">
+ <body>
+ * Returns the path to the innermost resource enclosing this element.
+ * If this element is not included in an external library,
+ * the path returned is the full, absolute path to the underlying resource,
+ * relative to the workbench.
+ * If this element is included in an external library,
+ * the path returned is the absolute path to the archive or to the
+ * folder in the file system.
+ * This is a handle-only method.
+ *
+ * @return the path to the innermost resource enclosing this element
+ * @since 2.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_sz0RgGHfEeCIr_fxSkYSJA" type="_j00UEmEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_sz0RgWHfEeCIr_fxSkYSJA" name="getPrimaryElement">
+ <ownedComment xmi:id="_sz0RgmHfEeCIr_fxSkYSJA">
+ <body>
+ * Returns the primary element (whose compilation unit is the primary compilation unit)
+ * this working copy element was created from, or this element if it is a descendant of a
+ * primary compilation unit or if it is not a descendant of a working copy (e.g. it is a
+ * binary member).
+ * The returned element may or may not exist.
+ *
+ * @return the primary element this working copy element was created from, or this
+ * element.
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_sz0Rg2HfEeCIr_fxSkYSJA" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_sz9bcGHfEeCIr_fxSkYSJA" name="getResource">
+ <ownedComment xmi:id="_sz9bcWHfEeCIr_fxSkYSJA">
+ <body>
+ * Returns the innermost resource enclosing this element.
+ * If this element is included in an archive and this archive is not external,
+ * this is the underlying resource corresponding to the archive.
+ * If this element is included in an external library, &lt;code>null&lt;/code>
+ * is returned.
+ * This is a handle-only method.
+ *
+ * @return the innermost resource enclosing this element, &lt;code>null&lt;/code> if this
+ * element is included in an external archive
+ * @since 2.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_sz9bcmHfEeCIr_fxSkYSJA" type="_kQh_smEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_s0HMcGHfEeCIr_fxSkYSJA" name="getSchedulingRule">
+ <ownedComment xmi:id="_s0HMcWHfEeCIr_fxSkYSJA">
+ <body>
+ * Returns the scheduling rule associated with this Java element.
+ * This is a handle-only method.
+ *
+ * @return the scheduling rule associated with this Java element
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_s0Q9cGHfEeCIr_fxSkYSJA" type="_s0HMc2HfEeCIr_fxSkYSJA" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_s0Q9cWHfEeCIr_fxSkYSJA" name="getUnderlyingResource">
+ <ownedComment xmi:id="_s0Q9cmHfEeCIr_fxSkYSJA">
+ <body>
+ * Returns the smallest underlying resource that contains
+ * this element, or &lt;code>null&lt;/code> if this element is not contained
+ * in a resource.
+ *
+ * @return the underlying resource, or &lt;code>null&lt;/code> if none
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its underlying resource
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_s0Q9c2HfEeCIr_fxSkYSJA" type="_kQh_smEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_s0aHYGHfEeCIr_fxSkYSJA" name="isReadOnly">
+ <ownedComment xmi:id="_s0aHYWHfEeCIr_fxSkYSJA">
+ <body>
+ * Returns whether this Java element is read-only. An element is read-only
+ * if its structure cannot be modified by the java model.
+ * &lt;p>
+ * Note this is different from IResource.isReadOnly(). For example, .jar
+ * files are read-only as the java model doesn't know how to add/remove
+ * elements in this file, but the underlying IFile can be writable.
+ * &lt;p>
+ * This is a handle-only method.
+ *
+ * @return &lt;code>true&lt;/code> if this element is read-only
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_s0aHYmHfEeCIr_fxSkYSJA" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_s0j4YGHfEeCIr_fxSkYSJA" name="isStructureKnown">
+ <ownedParameter xmi:id="_s0j4YWHfEeCIr_fxSkYSJA" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_kRkhgGEMEeCdEc4VzBeWeQ" name="IJavaElementDelta">
+ <ownedComment xmi:id="_kRkhgWEMEeCdEc4VzBeWeQ">
+ <body>
+ * A Java element delta describes changes in Java element between two discrete
+ * points in time. Given a delta, clients can access the element that has
+ * changed, and any children that have changed.
+ * &lt;p>
+ * Deltas have a different status depending on the kind of change they represent.
+ * The list below summarizes each status (as returned by {@link #getKind})
+ * and its meaning (see individual constants for a more detailled description):
+ * &lt;ul>
+ * &lt;li>{@link #ADDED} - The element described by the delta has been added.&lt;/li>
+ * &lt;li>{@link #REMOVED} - The element described by the delta has been removed.&lt;/li>
+ * &lt;li>{@link #CHANGED} - The element described by the delta has been changed in some way.
+ * Specification of the type of change is provided by {@link #getFlags} which returns the following values:
+ * &lt;ul>
+ * &lt;li>{@link #F_ADDED_TO_CLASSPATH} - A classpath entry corresponding to the element
+ * has been added to the project's classpath. This flag is only valid if the element is an
+ * {@link IPackageFragmentRoot}.&lt;/li>
+ * &lt;li>{@link #F_ARCHIVE_CONTENT_CHANGED} - The contents of an archive
+ * has changed in some way. This flag is only valid if the element is an {@link IPackageFragmentRoot}
+ * which is an archive.&lt;/li>
+ * &lt;li>{@link #F_CHILDREN} - A child of the element has changed in some way. This flag
+ * is only valid if the element is an {@link IParent}.&lt;/li>
+ * &lt;li>{@link #F_CLASSPATH_REORDER} - A classpath entry corresponding to the element
+ * has changed position in the project's classpath. This flag is only valid if the element is an
+ * {@link IPackageFragmentRoot}.&lt;/li>
+ * &lt;li>{@link #F_CLOSED} - The underlying {@link org.eclipse.core.resources.IProject}
+ * has been closed. This flag is only valid if the element is an {@link IJavaProject}.&lt;/li>
+ * &lt;li>{@link #F_CONTENT} - The contents of the element have been altered. This flag
+ * is only valid for elements which correspond to files.&lt;/li>
+ *&lt;li>{@link #F_FINE_GRAINED} - The delta is a fine-grained delta, that is, an analysis down
+ * to the members level was done to determine if there were structural changes to members of the element.&lt;/li>
+ * &lt;li>{@link #F_MODIFIERS} - The modifiers on the element have changed in some way.
+ * This flag is only valid if the element is an {@link IMember}.&lt;/li>
+ * &lt;li>{@link #F_OPENED} - The underlying {@link org.eclipse.core.resources.IProject}
+ * has been opened. This flag is only valid if the element is an {@link IJavaProject}.&lt;/li>
+ * &lt;li>{@link #F_REMOVED_FROM_CLASSPATH} - A classpath entry corresponding to the element
+ * has been removed from the project's classpath. This flag is only valid if the element is an
+ * {@link IPackageFragmentRoot}.&lt;/li>
+ * &lt;li>{@link #F_SOURCEATTACHED} - The source attachment path or the source attachment root path
+ * of a classpath entry corresponding to the element was added. This flag is only valid if the element is an
+ * {@link IPackageFragmentRoot}.&lt;/li>
+ * &lt;li>{@link #F_SOURCEDETACHED} - The source attachment path or the source attachment root path
+ * of a classpath entry corresponding to the element was removed. This flag is only valid if the element is an
+ * {@link IPackageFragmentRoot}.&lt;/li>
+ * &lt;li>{@link #F_SUPER_TYPES} - One of the supertypes of an {@link IType} has changed&lt;/li>.
+ * &lt;/ul>
+ * &lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ * &lt;p>
+ * Move operations are indicated by other change flags, layered on top
+ * of the change flags described above. If element A is moved to become B,
+ * the delta for the change in A will have status {@link #REMOVED},
+ * with change flag {@link #F_MOVED_TO}. In this case,
+ * {@link #getMovedToElement} on delta A will return the handle for B.
+ * The delta for B will have status {@link #ADDED}, with change flag
+ * {@link #F_MOVED_FROM}, and {@link #getMovedFromElement} on delta
+ * B will return the handle for A. (Note, the handle to A in this case represents
+ * an element that no longer exists).
+ * &lt;/p>
+ * &lt;p>
+ * Note that the move change flags only describe the changes to a single element, they
+ * do not imply anything about the parent or children of the element.
+ * &lt;/p>
+ * &lt;p>
+ * The {@link #F_ADDED_TO_CLASSPATH}, {@link #F_REMOVED_FROM_CLASSPATH} and
+ * {@link #F_CLASSPATH_REORDER} flags are triggered by changes to a project's classpath. They do not mean that
+ * the underlying resource was added, removed or changed. For example, if a project P already contains a folder src, then
+ * adding a classpath entry with the 'P/src' path to the project's classpath will result in an {@link IJavaElementDelta}
+ * with the {@link #F_ADDED_TO_CLASSPATH} flag for the {@link IPackageFragmentRoot} P/src.
+ * On the contrary, if a resource is physically added, removed or changed and this resource corresponds to a classpath
+ * entry of the project, then an {@link IJavaElementDelta} with the {@link #ADDED},
+ * {@link #REMOVED}, or {@link #CHANGED} kind will be fired.
+ * &lt;/p>
+ * &lt;p>
+ * Note that when a source attachment path or a source attachment root path is changed, then the flags of the delta contain
+ * both {@link #F_SOURCEATTACHED} and {@link #F_SOURCEDETACHED}.
+ * &lt;/p>
+ * &lt;p>
+ * No assumptions should be made on whether the java element delta tree is rooted at the {@link IJavaModel}
+ * level or not.
+ * &lt;/p>
+ * &lt;p>
+ * {@link IJavaElementDelta} object are not valid outside the dynamic scope
+ * of the notification.
+ * &lt;/p>
+ *
+ * @noimplement This interface is not intended to be implemented by clients.
+ </body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_kRkhgmEMEeCdEc4VzBeWeQ" name="ADDED" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kRkhg2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating that the element has been added.
+ * Note that an added java element delta has no children, as they are all implicitely added.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kRuSgGEMEeCdEc4VzBeWeQ" name="REMOVED" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kR4DgGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating that the element has been removed.
+ * Note that a removed java element delta has no children, as they are all implicitely removed.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kR4DgWEMEeCdEc4VzBeWeQ" name="CHANGED" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kR4DgmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating that the element has been changed,
+ * as described by the change flags.
+ *
+ * @see #getFlags()
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kR4Dg2EMEeCdEc4VzBeWeQ" name="F_CONTENT" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kSBNcGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Change flag indicating that the content of the element has changed.
+ * This flag is only valid for elements which correspond to files.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kSBNcWEMEeCdEc4VzBeWeQ" name="F_MODIFIERS" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kSBNcmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Change flag indicating that the modifiers of the element have changed.
+ * This flag is only valid if the element is an {@link IMember}.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kSBNc2EMEeCdEc4VzBeWeQ" name="F_CHILDREN" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kSK-cGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Change flag indicating that there are changes to the children of the element.
+ * This flag is only valid if the element is an {@link IParent}.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kSK-cWEMEeCdEc4VzBeWeQ" name="F_MOVED_FROM" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kSUvcGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Change flag indicating that the element was moved from another location.
+ * The location of the old element can be retrieved using {@link #getMovedFromElement}.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kSUvcWEMEeCdEc4VzBeWeQ" name="F_MOVED_TO" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kSd5YGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Change flag indicating that the element was moved to another location.
+ * The location of the new element can be retrieved using {@link #getMovedToElement}.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kSd5YWEMEeCdEc4VzBeWeQ" name="F_ADDED_TO_CLASSPATH" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kSd5YmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Change flag indicating that a classpath entry corresponding to the element has been added to the project's classpath.
+ * This flag is only valid if the element is an {@link IPackageFragmentRoot}.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kSnqYGEMEeCdEc4VzBeWeQ" name="F_REMOVED_FROM_CLASSPATH" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kSnqYWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Change flag indicating that a classpath entry corresponding to the element has been removed from the project's
+ * classpath. This flag is only valid if the element is an {@link IPackageFragmentRoot}.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kSnqYmEMEeCdEc4VzBeWeQ" name="F_CLASSPATH_REORDER" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kSnqY2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Change flag indicating that a classpath entry corresponding to the element has changed position in the project's
+ * classpath. This flag is only valid if the element is an {@link IPackageFragmentRoot}.
+ * @deprecated Use {@link #F_REORDER} instead.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kSw0UGEMEeCdEc4VzBeWeQ" name="F_REORDER" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kSw0UWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Change flag indicating that the element has changed position relatively to its siblings.
+ * If the element is an {@link IPackageFragmentRoot}, a classpath entry corresponding
+ * to the element has changed position in the project's classpath.
+ *
+ * @since 2.1
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kSw0UmEMEeCdEc4VzBeWeQ" name="F_OPENED" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kSw0U2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Change flag indicating that the underlying {@link org.eclipse.core.resources.IProject} has been
+ * opened. This flag is only valid if the element is an {@link IJavaProject}.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kS6lUGEMEeCdEc4VzBeWeQ" name="F_CLOSED" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kS6lUWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Change flag indicating that the underlying {@link org.eclipse.core.resources.IProject} has been
+ * closed. This flag is only valid if the element is an {@link IJavaProject}.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kS6lUmEMEeCdEc4VzBeWeQ" name="F_SUPER_TYPES" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kTEWUGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Change flag indicating that one of the supertypes of an {@link IType}
+ * has changed.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kTEWUWEMEeCdEc4VzBeWeQ" name="F_SOURCEATTACHED" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kTEWUmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Change flag indicating that the source attachment path or the source attachment root path of a classpath entry
+ * corresponding to the element was added. This flag is only valid if the element is an
+ * {@link IPackageFragmentRoot}.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kTEWU2EMEeCdEc4VzBeWeQ" name="F_SOURCEDETACHED" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kTNgQGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Change flag indicating that the source attachment path or the source attachment root path of a classpath entry
+ * corresponding to the element was removed. This flag is only valid if the element is an
+ * {@link IPackageFragmentRoot}.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kTNgQWEMEeCdEc4VzBeWeQ" name="F_FINE_GRAINED" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kTNgQmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Change flag indicating that this is a fine-grained delta, that is, an analysis down
+ * to the members level was done to determine if there were structural changes to
+ * members.
+ * &lt;p>
+ * Clients can use this flag to find out if a compilation unit
+ * that have a {@link #F_CONTENT} change should assume that there are
+ * no finer grained changes ({@link #F_FINE_GRAINED} is set) or if
+ * finer grained changes were not considered ({@link #F_FINE_GRAINED}
+ * is not set).
+ *
+ * @since 2.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kTXRQGEMEeCdEc4VzBeWeQ" name="F_ARCHIVE_CONTENT_CHANGED" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kTXRQWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Change flag indicating that the element's archive content on the classpath has changed.
+ * This flag is only valid if the element is an {@link IPackageFragmentRoot}
+ * which is an archive.
+ *
+ * @see IPackageFragmentRoot#isArchive()
+ * @since 2.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kTXRQmEMEeCdEc4VzBeWeQ" name="F_PRIMARY_WORKING_COPY" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kThCQGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Change flag indicating that a compilation unit has become a primary working copy, or that a
+ * primary working copy has reverted to a compilation unit.
+ * This flag is only valid if the element is an {@link ICompilationUnit}.
+ *
+ * @since 3.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kThCQWEMEeCdEc4VzBeWeQ" name="F_CLASSPATH_CHANGED" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kThCQmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Change flag indicating that the {@link IJavaProject#getRawClasspath() raw classpath}
+ * (or the {@link IJavaProject#getOutputLocation() output folder}) of a project has changed.
+ * This flag is only valid if the element is an {@link IJavaProject}.
+ * Also see {@link #F_RESOLVED_CLASSPATH_CHANGED}, which indicates that there is a
+ * change to the {@link IJavaProject#getResolvedClasspath(boolean) resolved class path}.
+ * The resolved classpath can change without the raw classpath changing (e.g.
+ * if a container resolves to a different set of classpath entries).
+ * And conversely, it is possible to construct a case where the raw classpath
+ * can change without the resolved classpath changing.
+ *
+ * @since 3.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kThCQ2EMEeCdEc4VzBeWeQ" name="F_PRIMARY_RESOURCE" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kTqMMGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Change flag indicating that the resource of a primary compilation unit has changed.
+ * This flag is only valid if the element is a primary {@link ICompilationUnit}.
+ *
+ * @since 3.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kTqMMWEMEeCdEc4VzBeWeQ" name="F_AST_AFFECTED" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kTz9MGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Change flag indicating that a reconcile operation has affected the compilation unit AST created in a
+ * previous reconcile operation. Use {@link #getCompilationUnitAST()} to retrieve the AST (if any is available).
+ * This flag is only valid if the element is an {@link ICompilationUnit} in working copy mode.
+ *
+ * @since 3.2
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kTz9MWEMEeCdEc4VzBeWeQ" name="F_CATEGORIES" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kTz9MmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Change flag indicating that the categories of the element have changed.
+ * This flag is only valid if the element is an {@link IMember}.
+ *
+ * @since 3.2
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kT9HIGEMEeCdEc4VzBeWeQ" name="F_RESOLVED_CLASSPATH_CHANGED" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kT9HIWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Change flag indicating that the {@link IJavaProject#getResolvedClasspath(boolean)
+ * resolved classpath} of a project has changed.
+ * This flag is only valid if the element is an {@link IJavaProject}.
+ * Also see {@link #F_CLASSPATH_CHANGED}, which indicates that there is a
+ * change to the {@link IJavaProject#getRawClasspath() raw class path}.
+ * The resolved classpath can change without the raw classpath changing (e.g.
+ * if a container resolves to a different set of classpath entries).
+ * And conversely, it is possible to construct a case where the raw classpath
+ * can change without the resolved classpath changing.
+ *
+ * @since 3.4
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kT9HImEMEeCdEc4VzBeWeQ" name="F_ANNOTATIONS" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kUG4IGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Change flag indicating that the annotations of the element have changed.
+ * Use {@link #getAnnotationDeltas()} to get the added/removed/changed annotations.
+ * This flag is only valid if the element is an {@link IAnnotatable}.
+ *
+ * @since 3.4
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_kUG4IWEMEeCdEc4VzBeWeQ" name="getAddedChildren" visibility="public">
+ <ownedComment xmi:id="_kUG4ImEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns deltas for the children that have been added.
+ * @return deltas for the children that have been added
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kUG4I2EMEeCdEc4VzBeWeQ" type="_kRkhgGEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kUQpIGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kUG4JGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kUQpIWEMEeCdEc4VzBeWeQ" name="getAffectedChildren" visibility="public">
+ <ownedComment xmi:id="_kUQpImEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns deltas for the affected (added, removed, or changed) children.
+ * @return deltas for the affected (added, removed, or changed) children
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kUQpI2EMEeCdEc4VzBeWeQ" type="_kRkhgGEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kUQpJWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kUQpJGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kUZzEGEMEeCdEc4VzBeWeQ" name="getAnnotationDeltas" visibility="public">
+ <ownedComment xmi:id="_kUZzEWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns deltas for affected annotations (added, removed, or changed).
+ * Returns an empty array if no annotations was affected, or if this delta's element is not
+ * an {@link IAnnotatable}.
+ *
+ * @return deltas for affected annotations (added, removed, or changed)
+ *
+ * @since 3.4
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kUZzEmEMEeCdEc4VzBeWeQ" type="_kRkhgGEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kUZzFGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kUZzE2EMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kUjkEGEMEeCdEc4VzBeWeQ" name="getCompilationUnitAST" visibility="public">
+ <ownedComment xmi:id="_kUjkEWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the compilation unit AST created by the last reconcile operation on this delta's element.
+ * This returns a non-null value if and only if:
+ * &lt;ul>
+ * &lt;li>the last reconcile operation on this working copy requested an AST&lt;/li>
+ * &lt;li>this delta's element is an {@link ICompilationUnit} in working copy mode&lt;/li>
+ * &lt;li>the delta comes from a {@link ElementChangedEvent#POST_RECONCILE} event
+ * &lt;/ul>
+ *
+ * @return the AST created during the last reconcile operation
+ * @see ICompilationUnit#reconcile(int, boolean, WorkingCopyOwner, org.eclipse.core.runtime.IProgressMonitor)
+ * @see #F_AST_AFFECTED
+ * @since 3.2
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kUjkFGEMEeCdEc4VzBeWeQ" type="_kUjkE2EMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kUjkFWEMEeCdEc4VzBeWeQ" name="getChangedChildren" visibility="public">
+ <ownedComment xmi:id="_kUjkFmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns deltas for the children which have changed.
+ * @return deltas for the children which have changed
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kUjkF2EMEeCdEc4VzBeWeQ" type="_kRkhgGEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kUtVEWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kUtVEGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kUtVEmEMEeCdEc4VzBeWeQ" name="getElement" visibility="public">
+ <ownedComment xmi:id="_kUtVE2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the element that this delta describes a change to.
+ * @return the element that this delta describes a change to
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kUtVFGEMEeCdEc4VzBeWeQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kUtVFWEMEeCdEc4VzBeWeQ" name="getFlags" visibility="public">
+ <ownedComment xmi:id="_kUtVFmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns flags that describe how an element has changed.
+ * Such flags should be tested using the &lt;code>&amp;&lt;/code> operand. For example:
+ * &lt;pre>
+ * if ((delta.getFlags() &amp; IJavaElementDelta.F_CONTENT) != 0) {
+ * // the delta indicates a content change
+ * }
+ * &lt;/pre>
+ *
+ * @return flags that describe how an element has changed
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kU2fAGEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kU2fAWEMEeCdEc4VzBeWeQ" name="getKind" visibility="public">
+ <ownedComment xmi:id="_kU2fAmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the kind of this delta - one of {@link #ADDED}, {@link #REMOVED},
+ * or {@link #CHANGED}.
+ *
+ * @return the kind of this delta
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kU2fA2EMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kU2fBGEMEeCdEc4VzBeWeQ" name="getMovedFromElement" visibility="public">
+ <ownedComment xmi:id="_kU2fBWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns an element describing this element before it was moved
+ * to its current location, or &lt;code>null&lt;/code> if the
+ * {@link #F_MOVED_FROM} change flag is not set.
+ *
+ * @return an element describing this element before it was moved
+ * to its current location, or &lt;code>null&lt;/code> if the
+ * {@link #F_MOVED_FROM} change flag is not set
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kVTK8GEMEeCdEc4VzBeWeQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kVTK8WEMEeCdEc4VzBeWeQ" name="getMovedToElement" visibility="public">
+ <ownedComment xmi:id="_kVTK8mEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns an element describing this element in its new location,
+ * or &lt;code>null&lt;/code> if the {@link #F_MOVED_TO} change
+ * flag is not set.
+ *
+ * @return an element describing this element in its new location,
+ * or &lt;code>null&lt;/code> if the {@link #F_MOVED_TO} change
+ * flag is not set
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kVc78GEMEeCdEc4VzBeWeQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kWCx0GEMEeCdEc4VzBeWeQ" name="getRemovedChildren" visibility="public">
+ <ownedComment xmi:id="_kWCx0WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns deltas for the children which have been removed.
+ *
+ * @return deltas for the children which have been removed
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kWCx0mEMEeCdEc4VzBeWeQ" type="_kRkhgGEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kWCx1GEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kWCx02EMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kWCx1WEMEeCdEc4VzBeWeQ" name="getResourceDeltas" visibility="public">
+ <ownedComment xmi:id="_kWCx1mEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the collection of resource deltas.
+ * &lt;p>
+ * Note that resource deltas, like Java element deltas, are generally only valid
+ * for the dynamic scope of an event notification. Clients must not hang on to
+ * these objects.
+ * &lt;/p>
+ *
+ * @return the underlying resource deltas, or &lt;code>null&lt;/code> if none
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kWMi0WEMEeCdEc4VzBeWeQ" type="_kWMi0GEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kWMi02EMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kWMi0mEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_kUjkEmEMEeCdEc4VzBeWeQ" name="dom">
+ <packagedElement xmi:type="uml:Class" xmi:id="_kUjkE2EMEeCdEc4VzBeWeQ" name="CompilationUnit"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_kYbXcGEMEeCdEc4VzBeWeQ" name="IJavaModel">
+ <ownedComment xmi:id="_kYbXcWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Represent the root Java element corresponding to the workspace.
+ * Since there is only one such root element, it is commonly referred to as
+ * &lt;em>the&lt;/em> Java model element.
+ * The Java model element needs to be opened before it can be navigated or manipulated.
+ * The Java model element has no parent (it is the root of the Java element
+ * hierarchy). Its children are &lt;code>IJavaProject&lt;/code>s.
+ * &lt;p>
+ * This interface provides methods for performing copy, move, rename, and
+ * delete operations on multiple Java elements.
+ * &lt;/p>
+ * &lt;p>
+ * An instance of one of these handles can be created via
+ * &lt;code>JavaCore.create(workspace.getRoot())&lt;/code>.
+ * &lt;/p>
+ *
+ * @see JavaCore#create(org.eclipse.core.resources.IWorkspaceRoot)
+ * @noimplement This interface is not intended to be implemented by clients.
+ </body>
+ </ownedComment>
+ <generalization xmi:id="_kYlIcGEMEeCdEc4VzBeWeQ" general="_kO5A8GEMEeCdEc4VzBeWeQ"/>
+ <generalization xmi:id="_QBlOgGHaEeCIr_fxSkYSJA" general="_koX38GEMEeCdEc4VzBeWeQ"/>
+ <generalization xmi:id="_QBlOgWHaEeCIr_fxSkYSJA" general="_kq6OkGEMEeCdEc4VzBeWeQ"/>
+ <ownedOperation xmi:id="_QBuYcGHaEeCIr_fxSkYSJA" name="contains">
+ <ownedComment xmi:id="_QBuYcWHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns whether this Java model contains an &lt;code>IJavaElement&lt;/code> whose
+ * resource is the given resource or a non-Java resource which is the given resource.
+ * &lt;p>
+ * Note: no existency check is performed on the argument resource. If it is not accessible
+ * (see &lt;code>IResource.isAccessible()&lt;/code>) yet but would be located in Java model
+ * range, then it will return &lt;code>true&lt;/code>.
+ * &lt;/p>&lt;p>
+ * If the resource is accessible, it can be reached by navigating the Java model down using the
+ * &lt;code>getChildren()&lt;/code> and/or &lt;code>getNonJavaResources()&lt;/code> methods.
+ * &lt;/p>
+ * @param resource the resource to check
+ * @return true if the resource is accessible through the Java model
+ * @since 2.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_QBuYcmHaEeCIr_fxSkYSJA" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_QB4JcGHaEeCIr_fxSkYSJA" name="resource" type="_kQh_smEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_QB4JcWHaEeCIr_fxSkYSJA" name="copy">
+ <ownedComment xmi:id="_QB4JcmHaEeCIr_fxSkYSJA">
+ <body>
+ * Copies the given elements to the specified container(s).
+ * If one container is specified, all elements are copied to that
+ * container. If more than one container is specified, the number of
+ * elements and containers must match, and each element is copied to
+ * its associated container.
+ * &lt;p>
+ * Optionally, each copy can positioned before a sibling
+ * element. If &lt;code>null&lt;/code> is specified for a given sibling, the copy
+ * is inserted as the last child of its associated container.
+ * &lt;/p>
+ * &lt;p>
+ * Optionally, each copy can be renamed. If
+ * &lt;code>null&lt;/code> is specified for the new name, the copy
+ * is not renamed.
+ * &lt;/p>
+ * &lt;p>
+ * Optionally, any existing child in the destination container with
+ * the same name can be replaced by specifying &lt;code>true&lt;/code> for
+ * force. Otherwise an exception is thrown in the event that a name
+ * collision occurs.
+ * &lt;/p>
+ *
+ * @param elements the elements to copy
+ * @param containers the container, or list of containers
+ * @param siblings the list of siblings element any of which may be
+ * &lt;code>null&lt;/code>; or &lt;code>null&lt;/code>
+ * @param renamings the list of new names any of which may be
+ * &lt;code>null&lt;/code>; or &lt;code>null&lt;/code>
+ * @param replace &lt;code>true&lt;/code> if any existing child in a target container
+ * with the target name should be replaced, and &lt;code>false&lt;/code> to throw an
+ * exception in the event of a name collision
+ * @param monitor a progress monitor
+ * @exception JavaModelException if an element could not be copied. Reasons include:
+ * &lt;ul>
+ * &lt;li> There is no element to process (NO_ELEMENTS_TO_PROCESS). The given elements is null or empty&lt;/li>
+ * &lt;li> A specified element, container, or sibling does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;li> A &lt;code>CoreException&lt;/code> occurred while updating an underlying resource&lt;/li>
+ * &lt;li> A container is of an incompatible type (&lt;code>INVALID_DESTINATION&lt;/code>)&lt;/li>
+ * &lt;li> A sibling is not a child of it associated container (&lt;code>INVALID_SIBLING&lt;/code>)&lt;/li>
+ * &lt;li> A new name is invalid (&lt;code>INVALID_NAME&lt;/code>)&lt;/li>
+ * &lt;li> A child in its associated container already exists with the same
+ * name and &lt;code>replace&lt;/code> has been specified as &lt;code>false&lt;/code> (&lt;code>NAME_COLLISION&lt;/code>)&lt;/li>
+ * &lt;li> A container or element is read-only (&lt;code>READ_ONLY&lt;/code>) &lt;/li>
+ * &lt;/ul>
+ * @see org.eclipse.jdt.core.IJavaModelStatusConstants#INVALID_DESTINATION
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_QB4Jc2HaEeCIr_fxSkYSJA" name="elements" type="_kO5A8GEMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QCBTYWHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QCBTYGHaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_QCLEYGHaEeCIr_fxSkYSJA" name="containers" type="_kO5A8GEMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QCU1YGHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QCLEYWHaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_QCd_UGHaEeCIr_fxSkYSJA" name="siblings" type="_kO5A8GEMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QCnwUGHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QCd_UWHaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_QCxhUGHaEeCIr_fxSkYSJA" name="renamings" type="_dSiS02EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QCxhUmHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QCxhUWHaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_QC6rQGHaEeCIr_fxSkYSJA" name="replace" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_QDEcQGHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_QDEcQWHaEeCIr_fxSkYSJA" name="delete">
+ <ownedComment xmi:id="_QDEcQmHaEeCIr_fxSkYSJA">
+ <body>
+ * Deletes the given elements, forcing the operation if necessary and specified.
+ *
+ * @param elements the elements to delete
+ * @param force a flag controlling whether underlying resources that are not
+ * in sync with the local file system will be tolerated
+ * @param monitor a progress monitor
+ * @exception JavaModelException if an element could not be deleted. Reasons include:
+ * &lt;ul>
+ * &lt;li> There is no element to process (NO_ELEMENTS_TO_PROCESS). The given elements is null or empty&lt;/li>
+ * &lt;li> A specified element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;li> A &lt;code>CoreException&lt;/code> occurred while updating an underlying resource&lt;/li>
+ * &lt;li> An element is read-only (&lt;code>READ_ONLY&lt;/code>) &lt;/li>
+ * &lt;/ul>
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_QDNmMGHaEeCIr_fxSkYSJA" name="elements" type="_kO5A8GEMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QDXXMGHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QDNmMWHaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_QDXXMWHaEeCIr_fxSkYSJA" name="force" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_QDhIMGHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_QDhIMWHaEeCIr_fxSkYSJA" name="getJavaProject">
+ <ownedComment xmi:id="_QDhIMmHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns the Java project with the given name. The given name must be a valid
+ * path segment as defined by {@link IPath#isValidSegment(String)}.
+ * This is a handle-only method.
+ * The project may or may not exist.
+ *
+ * @param name the name of the Java project
+ * @return the Java project with the given name
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_QDhIM2HaEeCIr_fxSkYSJA" type="_kjmssGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_QDqSIGHaEeCIr_fxSkYSJA" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_QDqSIWHaEeCIr_fxSkYSJA" name="getJavaProjects">
+ <ownedComment xmi:id="_QDqSImHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns the Java projects in this Java model, or an empty array if there
+ * are none.
+ *
+ * @return the Java projects in this Java model, or an empty array if there
+ * are none
+ * @exception JavaModelException if this request fails.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_QD0DIGHaEeCIr_fxSkYSJA" type="_kjmssGEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QD90IWHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QD90IGHaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_QEG-EGHaEeCIr_fxSkYSJA" name="getNonJavaResources">
+ <ownedComment xmi:id="_QEG-EWHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns an array of non-Java resources (that is, non-Java projects) in
+ * the workspace.
+ * &lt;p>
+ * Non-Java projects include all projects that are closed (even if they have the
+ * Java nature).
+ * &lt;/p>
+ *
+ * @return an array of non-Java projects (&lt;code>IProject&lt;/code>s) contained
+ * in the workspace.
+ * @throws JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ * @since 2.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_QEG-EmHaEeCIr_fxSkYSJA" type="_kOcVAmEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QEQvEGHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QEG-E2HaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_QEQvEWHaEeCIr_fxSkYSJA" name="getWorkspace">
+ <ownedComment xmi:id="_QEQvEmHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns the workspace associated with this Java model.
+ *
+ * @return the workspace associated with this Java model
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_QEZ5AWHaEeCIr_fxSkYSJA" type="_QEZ5AGHaEeCIr_fxSkYSJA" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_QEjqAGHaEeCIr_fxSkYSJA" name="move">
+ <ownedComment xmi:id="_QEjqAWHaEeCIr_fxSkYSJA">
+ <body>
+ * Moves the given elements to the specified container(s).
+ * If one container is specified, all elements are moved to that
+ * container. If more than one container is specified, the number of
+ * elements and containers must match, and each element is moved to
+ * its associated container.
+ * &lt;p>
+ * Optionally, each element can positioned before a sibling
+ * element. If &lt;code>null&lt;/code> is specified for sibling, the element
+ * is inserted as the last child of its associated container.
+ * &lt;/p>
+ * &lt;p>
+ * Optionally, each element can be renamed. If
+ * &lt;code>null&lt;/code> is specified for the new name, the element
+ * is not renamed.
+ * &lt;/p>
+ * &lt;p>
+ * Optionally, any existing child in the destination container with
+ * the same name can be replaced by specifying &lt;code>true&lt;/code> for
+ * force. Otherwise an exception is thrown in the event that a name
+ * collision occurs.
+ * &lt;/p>
+ *
+ * @param elements the elements to move
+ * @param containers the container, or list of containers
+ * @param siblings the list of siblings element any of which may be
+ * &lt;code>null&lt;/code>; or &lt;code>null&lt;/code>
+ * @param renamings the list of new names any of which may be
+ * &lt;code>null&lt;/code>; or &lt;code>null&lt;/code>
+ * @param replace &lt;code>true&lt;/code> if any existing child in a target container
+ * with the target name should be replaced, and &lt;code>false&lt;/code> to throw an
+ * exception in the event of a name collision
+ * @param monitor a progress monitor
+ * @exception JavaModelException if an element could not be moved. Reasons include:
+ * &lt;ul>
+ * &lt;li> There is no element to process (NO_ELEMENTS_TO_PROCESS). The given elements is null or empty&lt;/li>
+ * &lt;li> A specified element, container, or sibling does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;li> A &lt;code>CoreException&lt;/code> occurred while updating an underlying resource&lt;/li>
+ * &lt;li> A container is of an incompatible type (&lt;code>INVALID_DESTINATION&lt;/code>)&lt;/li>
+ * &lt;li> A sibling is not a child of it associated container (&lt;code>INVALID_SIBLING&lt;/code>)&lt;/li>
+ * &lt;li> A new name is invalid (&lt;code>INVALID_NAME&lt;/code>)&lt;/li>
+ * &lt;li> A child in its associated container already exists with the same
+ * name and &lt;code>replace&lt;/code> has been specified as &lt;code>false&lt;/code> (&lt;code>NAME_COLLISION&lt;/code>)&lt;/li>
+ * &lt;li> A container or element is read-only (&lt;code>READ_ONLY&lt;/code>) &lt;/li>
+ * &lt;/ul>
+ *
+ * @exception IllegalArgumentException any element or container is &lt;code>null&lt;/code>
+ * @see org.eclipse.jdt.core.IJavaModelStatusConstants#INVALID_DESTINATION
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_QEjqAmHaEeCIr_fxSkYSJA" name="elements" type="_kO5A8GEMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QEtbAGHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QEjqA2HaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_QEtbAWHaEeCIr_fxSkYSJA" name="containers" type="_kO5A8GEMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QE2k8WHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QE2k8GHaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_QFAV8GHaEeCIr_fxSkYSJA" name="siblings" type="_kO5A8GEMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QFKG8GHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QFAV8WHaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_QFKG8WHaEeCIr_fxSkYSJA" name="renamings" type="_dSiS02EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QFdB4GHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QFTQ4GHaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_QFdB4WHaEeCIr_fxSkYSJA" name="replace" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_QFmL0GHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_QFmL0WHaEeCIr_fxSkYSJA" name="refreshExternalArchives">
+ <ownedComment xmi:id="_QFmL0mHaEeCIr_fxSkYSJA">
+ <body>
+ * Triggers an update of the JavaModel with respect to the referenced external archives.
+ * This operation will issue a JavaModel delta describing the discovered changes, in term
+ * of Java element package fragment roots added, removed or changed.
+ * Note that a collection of elements can be passed so as to narrow the set of archives
+ * to refresh (passing &lt;code>null&lt;/code> along is equivalent to refreshing the entire mode).
+ * The elements can be:
+ * &lt;ul>
+ * &lt;li> package fragment roots corresponding to external archives
+ * &lt;li> Java projects, which referenced external archives will be refreshed
+ * &lt;li> Java model, all referenced external archives will be refreshed.
+ * &lt;/ul>
+ * &lt;p> In case an archive is used by multiple projects, the delta issued will account for
+ * all of them. This means that even if a project was not part of the elements scope, it
+ * may still be notified of changes if it is referencing a library comprised in the scope.
+ * &lt;p>
+ * &lt;b>Since 3.7&lt;/b>, a project refresh automatically triggers a refresh of external archives.
+ * Hence, this method doesn't need to be explicitly called after a project refresh.
+ * &lt;p>
+ * @param elementsScope - a collection of elements defining the scope of the refresh
+ * @param monitor - a progress monitor used to report progress
+ * @exception JavaModelException in one of the corresponding situation:
+ * &lt;ul>
+ * &lt;li> an exception occurs while accessing project resources &lt;/li>
+ * &lt;/ul>
+ *
+ * @see IJavaElementDelta
+ * @since 2.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_QFv80GHaEeCIr_fxSkYSJA" name="elementsScope" type="_kO5A8GEMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QF5t0GHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QFv80WHaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_QF5t0WHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_QGC3wGHaEeCIr_fxSkYSJA" name="rename">
+ <ownedComment xmi:id="_QGC3wWHaEeCIr_fxSkYSJA">
+ <body>
+ * Renames the given elements as specified.
+ * If one container is specified, all elements are renamed within that
+ * container. If more than one container is specified, the number of
+ * elements and containers must match, and each element is renamed within
+ * its associated container.
+ *
+ * @param elements the elements to rename
+ * @param destinations the container, or list of containers
+ * @param names the list of new names
+ * @param replace &lt;code>true&lt;/code> if an existing child in a target container
+ * with the target name should be replaced, and &lt;code>false&lt;/code> to throw an
+ * exception in the event of a name collision
+ * @param monitor a progress monitor
+ * @exception JavaModelException if an element could not be renamed. Reasons include:
+ * &lt;ul>
+ * &lt;li> There is no element to process (NO_ELEMENTS_TO_PROCESS). The given elements is null or empty&lt;/li>
+ * &lt;li> A specified element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;li> A &lt;code>CoreException&lt;/code> occurred while updating an underlying resource
+ * &lt;li> A new name is invalid (&lt;code>INVALID_NAME&lt;/code>)
+ * &lt;li> A child already exists with the same name and &lt;code>replace&lt;/code> has been specified as &lt;code>false&lt;/code> (&lt;code>NAME_COLLISION&lt;/code>)
+ * &lt;li> An element is read-only (&lt;code>READ_ONLY&lt;/code>)
+ * &lt;/ul>
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_QGC3wmHaEeCIr_fxSkYSJA" name="elements" type="_kO5A8GEMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QGMowWHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QGMowGHaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_QGWZwGHaEeCIr_fxSkYSJA" name="destinations" type="_kO5A8GEMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QGfjsWHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QGfjsGHaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_QGpUsGHaEeCIr_fxSkYSJA" name="names" type="_dSiS02EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QGyeoGHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QGpUsWHaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_QG8PoGHaEeCIr_fxSkYSJA" name="replace" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_QG8PoWHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_kZB0YGEMEeCdEc4VzBeWeQ" name="IJavaModelMarker">
+ <ownedComment xmi:id="_kZB0YWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Markers used by the Java model.
+ * &lt;p>
+ * This interface declares constants only.
+ * &lt;/p>
+ * @noimplement This interface is not intended to be implemented by clients.
+ </body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_kZK-UGEMEeCdEc4VzBeWeQ" name="JAVA_MODEL_PROBLEM_MARKER" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kZK-UWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Java model problem marker type (value
+ * &lt;code>&quot;org.eclipse.jdt.core.problem&quot;&lt;/code>). This can be used to
+ * recognize those markers in the workspace that flag problems detected by
+ * the Java tooling during compilation.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kZK-UmEMEeCdEc4VzBeWeQ" name="TRANSIENT_PROBLEM" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kZK-U2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Java model transient problem marker type (value
+ * &lt;code>&quot;org.eclipse.jdt.core.transient_problem&quot;&lt;/code>). This can be
+ * used to recognize those markers in the workspace that flag transient
+ * problems detected by the Java tooling (such as a problem detected by the
+ * outliner, or a problem detected during a code completion). Since 1.0,
+ * transient problems are reported as &lt;code>IProblem&lt;/code> through
+ * various API. Only the evaluation API is still producing markers for
+ * transient problems.
+ *
+ * @see org.eclipse.jdt.core.compiler.IProblem
+ * @see org.eclipse.jdt.core.eval.ICodeSnippetRequestor#acceptProblem(org.eclipse.core.resources.IMarker,String,
+ * int)
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kZK-VGEMEeCdEc4VzBeWeQ" name="TASK_MARKER" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kZUvUGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Java model task marker type (value
+ * &lt;code>&quot;org.eclipse.jdt.core.task&quot;&lt;/code>). This can be used to
+ * recognize task markers in the workspace that correspond to tasks
+ * specified in Java source comments and detected during compilation (for
+ * example, 'TO-DO: ...'). Tasks are identified by a task tag, which can be
+ * customized through &lt;code>JavaCore&lt;/code> option
+ * &lt;code>&quot;org.eclipse.jdt.core.compiler.taskTag&quot;&lt;/code>.
+ *
+ * @since 2.1
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kZUvUWEMEeCdEc4VzBeWeQ" name="ARGUMENTS" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kZUvUmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Id marker attribute (value &lt;code>&quot;arguments&quot;&lt;/code>). Arguments are
+ * concatenated into one String, prefixed with an argument count (followed
+ * with colon separator) and separated with '#' characters. For example: {
+ * &quot;foo&quot;, &quot;bar&quot; } is encoded as &quot;2:foo#bar&quot;, { } is encoded as &quot;0:&quot;.
+ * &lt;p>Empty argument is encoded as three spaces (&quot; &quot;).&lt;/p>
+ * &lt;p>If the argument contains a '#', the character is doubled.&lt;br>
+ * {&quot;foo#test&quot;, &quot;bar&quot; } is encoded as &quot;2:foo##test#bar&quot;
+ * &lt;/p>
+ *
+ * @since 2.0
+ * @see CorrectionEngine#getProblemArguments(IMarker)
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kZUvU2EMEeCdEc4VzBeWeQ" name="ID" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kZegUGEMEeCdEc4VzBeWeQ">
+ <body>
+ * ID marker attribute (value &lt;code>&quot;id&quot;&lt;/code>).
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kZnqQGEMEeCdEc4VzBeWeQ" name="CATEGORY_ID" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kZnqQWEMEeCdEc4VzBeWeQ">
+ <body>
+ * ID category marker attribute (value &lt;code>&quot;categoryId&quot;&lt;/code>)
+ * @since 3.2
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kZnqQmEMEeCdEc4VzBeWeQ" name="FLAGS" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kZxbQGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Flags marker attribute (value &lt;code>&quot;flags&quot;&lt;/code>). Reserved for
+ * future use.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kZxbQWEMEeCdEc4VzBeWeQ" name="CYCLE_DETECTED" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kZxbQmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Cycle detected marker attribute (value &lt;code>&quot;cycleDetected&quot;&lt;/code>).
+ * Used only on buildpath problem markers. The value of this attribute is
+ * either &quot;true&quot; or &quot;false&quot;.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kZxbQ2EMEeCdEc4VzBeWeQ" name="BUILDPATH_PROBLEM_MARKER" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kZ6lMGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Build path problem marker type (value
+ * &lt;code>&quot;org.eclipse.jdt.core.buildpath_problem&quot;&lt;/code>). This can be
+ * used to recognize those markers in the workspace that flag problems
+ * detected by the Java tooling during classpath setting.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kZ6lMWEMEeCdEc4VzBeWeQ" name="CLASSPATH_FILE_FORMAT" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kZ6lMmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Classpath file format marker attribute (value
+ * &lt;code>&quot;classpathFileFormat&quot;&lt;/code>). Used only on buildpath problem
+ * markers. The value of this attribute is either &quot;true&quot; or &quot;false&quot;.
+ *
+ * @since 2.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_kaEWMGEMEeCdEc4VzBeWeQ" name="IJavaModelStatus">
+ <ownedComment xmi:id="_kaOHMGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Represents the outcome of an Java model operation. Status objects are
+ * used inside &lt;code>JavaModelException&lt;/code> objects to indicate what went
+ * wrong.
+ * &lt;p>
+ * Java model status object are distinguished by their plug-in id:
+ * &lt;code>getPlugin&lt;/code> returns &lt;code>&quot;org.eclipse.jdt.core&quot;&lt;/code>.
+ * &lt;code>getCode&lt;/code> returns one of the status codes declared in
+ * &lt;code>IJavaModelStatusConstants&lt;/code>.
+ * &lt;/p>
+ * &lt;p>
+ * A Java model status may also carry additional information (that is, in
+ * addition to the information defined in &lt;code>IStatus&lt;/code>):
+ * &lt;ul>
+ * &lt;li>elements - optional handles to Java elements associated with the failure&lt;/li>
+ * &lt;li>string - optional string associated with the failure&lt;/li>
+ * &lt;/ul>
+ *
+ * @see org.eclipse.core.runtime.IStatus
+ * @see IJavaModelStatusConstants
+ * @noimplement This interface is not intended to be implemented by clients.
+ </body>
+ </ownedComment>
+ <generalization xmi:id="_kaOHMmEMEeCdEc4VzBeWeQ" general="_kaOHMWEMEeCdEc4VzBeWeQ"/>
+ <ownedOperation xmi:id="_kaOHM2EMEeCdEc4VzBeWeQ" name="getElements">
+ <ownedComment xmi:id="_kaOHNGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns any Java elements associated with the failure (see specification
+ * of the status code), or an empty array if no elements are related to this
+ * particular status code.
+ *
+ * @return the list of Java element culprits
+ * @see IJavaModelStatusConstants
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kaOHNWEMEeCdEc4VzBeWeQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kaXRIWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kaXRIGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kaXRImEMEeCdEc4VzBeWeQ" name="getPath">
+ <ownedComment xmi:id="_kaXRI2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the path associated with the failure (see specification
+ * of the status code), or &lt;code>null&lt;/code> if the failure is not
+ * one of &lt;code>DEVICE_PATH&lt;/code>, &lt;code>INVALID_PATH&lt;/code>,
+ * &lt;code>PATH_OUTSIDE_PROJECT&lt;/code>, or &lt;code>RELATIVE_PATH&lt;/code>.
+ *
+ * @return the path that caused the failure, or &lt;code>null&lt;/code> if none
+ * @see IJavaModelStatusConstants#DEVICE_PATH
+ * @see IJavaModelStatusConstants#INVALID_PATH
+ * @see IJavaModelStatusConstants#PATH_OUTSIDE_PROJECT
+ * @see IJavaModelStatusConstants#RELATIVE_PATH
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kaXRJGEMEeCdEc4VzBeWeQ" type="_j00UEmEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kaXRJWEMEeCdEc4VzBeWeQ" name="getString">
+ <ownedComment xmi:id="_kaXRJmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the string associated with the failure (see specification
+ * of the status code), or &lt;code>null&lt;/code> if no string is related to this
+ * particular status code.
+ *
+ * @return the string culprit, or &lt;code>null&lt;/code> if none
+ * @see IJavaModelStatusConstants
+ * @deprecated Use {@link IStatus#getMessage()} instead
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kaXRJ2EMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kahCIGEMEeCdEc4VzBeWeQ" name="isDoesNotExist">
+ <ownedComment xmi:id="_kahCIWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether this status indicates that a Java model element does not exist.
+ * This convenience method is equivalent to
+ * &lt;code>getCode() == IJavaModelStatusConstants.ELEMENT_DOES_NOT_EXIST&lt;/code>.
+ *
+ * @return &lt;code>true&lt;/code> if the status code indicates that a Java model
+ * element does not exist
+ * @see IJavaModelStatusConstants#ELEMENT_DOES_NOT_EXIST
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kahCImEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_kbG4AGEMEeCdEc4VzBeWeQ" name="IJavaModelStatusConstants">
+ <ownedComment xmi:id="_kbG4AWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status codes used with Java model status objects.
+ * &lt;p>
+ * This interface declares constants only.
+ * &lt;/p>
+ *
+ * @see IJavaModelStatus
+ * @see org.eclipse.core.runtime.IStatus#getCode()
+ * @noimplement This interface is not intended to be implemented by clients.
+ </body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_kbQpAGEMEeCdEc4VzBeWeQ" name="INVALID_CP_CONTAINER_ENTRY" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kbQpAWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating that a container path was resolved
+ * to invalid entries (null or container).
+ *
+ * @since 2.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kbQpAmEMEeCdEc4VzBeWeQ" name="CP_CONTAINER_PATH_UNBOUND" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kbaaAGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating that a container path was not resolvable
+ * indicating either the referred container is undefined, unbound.
+ *
+ * @since 2.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kbaaAWEMEeCdEc4VzBeWeQ" name="INVALID_CLASSPATH" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kbaaAmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating that a classpath entry was invalid
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kbjj8GEMEeCdEc4VzBeWeQ" name="CP_VARIABLE_PATH_UNBOUND" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kbjj8WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating that a variable path was not resolvable
+ * indicating either the referred variable is undefined, unbound or the resolved
+ * variable path does not correspond to an existing file or folder.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kbtU8GEMEeCdEc4VzBeWeQ" name="CORE_EXCEPTION" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kbtU8WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating a core exception occurred.
+ * Use &lt;code>getException&lt;/code> to retrieve a &lt;code>CoreException&lt;/code>.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kb3F8GEMEeCdEc4VzBeWeQ" name="INVALID_ELEMENT_TYPES" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kb3F8WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating one or more of the elements
+ * supplied are not of a valid type for the operation to
+ * process.
+ * The element(s) can be retrieved using &lt;code>getElements&lt;/code> on the status object.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kcAP4GEMEeCdEc4VzBeWeQ" name="NO_ELEMENTS_TO_PROCESS" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kcAP4WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating that no elements were
+ * provided to the operation for processing.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kcAP4mEMEeCdEc4VzBeWeQ" name="ELEMENT_DOES_NOT_EXIST" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kcKA4GEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating that one or more elements
+ * supplied do not exist.
+ * The element(s) can be retrieved using &lt;code>getElements&lt;/code> on the status object.
+ *
+ * @see IJavaModelStatus#isDoesNotExist()
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kcKA4WEMEeCdEc4VzBeWeQ" name="NULL_PATH" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kcKA4mEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating that a &lt;code>null&lt;/code> path was
+ * supplied to the operation.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kcTK0GEMEeCdEc4VzBeWeQ" name="PATH_OUTSIDE_PROJECT" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kcTK0WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating that a path outside of the
+ * project was supplied to the operation. The path can be retrieved using
+ * &lt;code>getPath&lt;/code> on the status object.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kcc70GEMEeCdEc4VzBeWeQ" name="RELATIVE_PATH" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kcc70WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating that a relative path
+ * was supplied to the operation when an absolute path is
+ * required. The path can be retrieved using &lt;code>getPath&lt;/code> on the
+ * status object.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kcc70mEMEeCdEc4VzBeWeQ" name="DEVICE_PATH" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kcms0GEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating that a path specifying a device
+ * was supplied to the operation when a path with no device is
+ * required. The path can be retrieved using &lt;code>getPath&lt;/code> on the
+ * status object.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kcv2wGEMEeCdEc4VzBeWeQ" name="NULL_STRING" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kcv2wWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating that a string
+ * was supplied to the operation that was &lt;code>null&lt;/code>.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kc5nwGEMEeCdEc4VzBeWeQ" name="READ_ONLY" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kc5nwWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating that the operation encountered
+ * a read-only element.
+ * The element(s) can be retrieved using &lt;code>getElements&lt;/code> on the status object.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kc5nwmEMEeCdEc4VzBeWeQ" name="NAME_COLLISION" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kdDYwGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating that a naming collision would occur
+ * if the operation proceeded.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kdMisGEMEeCdEc4VzBeWeQ" name="INVALID_DESTINATION" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kdMisWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating that a destination provided for a copy/move/rename operation
+ * is invalid. The destination for a package fragment must be a package fragment root; the
+ * destination for a compilation unit must be a package fragment; the destination for
+ * a package declaration or import declaration must be a compilation unit; the
+ * destination for a type must be a type or compilation unit; the destination for any
+ * type member (other than a type) must be a type. &lt;br>
+ *
+ * The destination element can be retrieved using &lt;code>getElements&lt;/code> on the status object.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kdWTsGEMEeCdEc4VzBeWeQ" name="INVALID_PATH" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kdWTsWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating that a path provided to an operation
+ * is invalid. The path can be retrieved using &lt;code>getPath&lt;/code> on the
+ * status object.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kdfdoGEMEeCdEc4VzBeWeQ" name="INDEX_OUT_OF_BOUNDS" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kdfdoWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating the given source position is out of bounds.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kdfdomEMEeCdEc4VzBeWeQ" name="UPDATE_CONFLICT" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kdpOoGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating there is an update conflict
+ * for a working copy. The compilation unit on which the
+ * working copy is based has changed since the working copy
+ * was created.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kdy_oGEMEeCdEc4VzBeWeQ" name="NULL_NAME" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kdy_oWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating that &lt;code>null&lt;/code> was specified
+ * as a name argument.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kd8JkGEMEeCdEc4VzBeWeQ" name="INVALID_NAME" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kd8JkWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating that a name provided is not syntactically correct.
+ * The name can be retrieved from &lt;code>getString&lt;/code>.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kd8JkmEMEeCdEc4VzBeWeQ" name="INVALID_CONTENTS" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_keF6kGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating that the specified contents
+ * are not valid.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_keF6kWEMEeCdEc4VzBeWeQ" name="IO_EXCEPTION" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_keF6kmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating that an &lt;code>java.io.IOException&lt;/code>
+ * occurred.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kePrkGEMEeCdEc4VzBeWeQ" name="DOM_EXCEPTION" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_keY1gGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating that a &lt;code>DOMException&lt;/code>
+ * occurred.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kerwcGEMEeCdEc4VzBeWeQ" name="TARGET_EXCEPTION" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_ke1hcGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating that a &lt;code>TargetException&lt;/code>
+ * occurred.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ke1hcWEMEeCdEc4VzBeWeQ" name="BUILDER_INITIALIZATION_ERROR" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_ke_ScGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating that the Java builder
+ * could not be initialized.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ke_ScWEMEeCdEc4VzBeWeQ" name="BUILDER_SERIALIZATION_ERROR" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_ke_ScmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating that the Java builder's last built state
+ * could not be serialized or deserialized.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kfIcYGEMEeCdEc4VzBeWeQ" name="EVALUATION_ERROR" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kfIcYWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating that an error was encountered while
+ * trying to evaluate a code snippet, or other item.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kfSNYGEMEeCdEc4VzBeWeQ" name="INVALID_SIBLING" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kfSNYWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating that a sibling specified is not valid.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kfSNYmEMEeCdEc4VzBeWeQ" name="INVALID_RESOURCE" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kfb-YGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status indicating that a Java element could not be created because
+ * the underlying resource is invalid.
+ * @see JavaCore
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kfb-YWEMEeCdEc4VzBeWeQ" name="INVALID_RESOURCE_TYPE" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kflIUGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status indicating that a Java element could not be created because
+ * the underlying resource is not of an appropriate type.
+ * @see JavaCore
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kflIUWEMEeCdEc4VzBeWeQ" name="INVALID_PROJECT" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kflIUmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status indicating that a Java element could not be created because
+ * the project owning underlying resource does not have the Java nature.
+ * @see JavaCore
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kfu5UGEMEeCdEc4VzBeWeQ" name="INVALID_PACKAGE" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kfu5UWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status indicating that the package declaration in a &lt;code>ICompilationUnit&lt;/code>
+ * does not correspond to the &lt;code>IPackageFragment&lt;/code> it belongs to.
+ * The &lt;code>getString&lt;/code> method of the associated status object
+ * gives the name of the package in which the &lt;code>ICompilationUnit&lt;/code> is
+ * declared.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kf4DQGEMEeCdEc4VzBeWeQ" name="NO_LOCAL_CONTENTS" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kf4DQWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status indicating that the corresponding resource has no local contents yet.
+ * This might happen when attempting to use a resource before its contents
+ * has been made locally available.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kgB0QGEMEeCdEc4VzBeWeQ" name="INVALID_CLASSPATH_FILE_FORMAT" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kgB0QWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status indicating that a .classpath file is ill-formed, and thus cannot
+ * be read/written successfully.
+ * @since 2.1
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kgLlQGEMEeCdEc4VzBeWeQ" name="CLASSPATH_CYCLE" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kgLlQWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status indicating that a project is involved in a build path cycle.
+ * @since 2.1
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kgUvMGEMEeCdEc4VzBeWeQ" name="DISABLED_CP_EXCLUSION_PATTERNS" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kgUvMWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating that an inclusion or an exclusion pattern got specified
+ * on a classpath source entry, though it was explicitely disabled
+ * according to its project preference settings.
+ * @see org.eclipse.jdt.core.IJavaProject#getOptions(boolean)
+ * @since 2.1
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kgUvMmEMEeCdEc4VzBeWeQ" name="DISABLED_CP_MULTIPLE_OUTPUT_LOCATIONS" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kgegMGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating that a specific output location got associated
+ * with a source entry, though it was explicitely disabled according to its project
+ * preference settings.
+ * @see org.eclipse.jdt.core.IJavaProject#getOptions(boolean)
+ * @since 2.1
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kgegMWEMEeCdEc4VzBeWeQ" name="INCOMPATIBLE_JDK_LEVEL" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kgoRMGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating that a project is prerequisiting some library for which the
+ * classfile JDK version level is more recent than the project JDK target level setting.
+ * This can indicate some binary incompatibility issues later on.
+ * @since 3.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kgoRMWEMEeCdEc4VzBeWeQ" name="COMPILER_FAILURE" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kgoRMmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating that a compiler failure occurred.
+ * @since 3.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kgxbIGEMEeCdEc4VzBeWeQ" name="ELEMENT_NOT_ON_CLASSPATH" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kgxbIWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Status constant indicating that an element is not on its project's claspath.
+ * @since 3.1
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kg7MIGEMEeCdEc4VzBeWeQ" name="CANNOT_RETRIEVE_ATTACHED_JAVADOC" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kg7MIWEMEeCdEc4VzBeWeQ">
+ <body>
+ * &lt;p>Status constant indicating that the attached javadoc content cannot be retrieved due to multiple reasons:
+ * invalid url, incorrect proxy, wrong authentication,...&lt;/p>
+ *
+ * @since 3.2
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kg7MImEMEeCdEc4VzBeWeQ" name="UNKNOWN_JAVADOC_FORMAT" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_khEWEGEMEeCdEc4VzBeWeQ">
+ <body>
+ * &lt;p>Status constant indicating that the attached javadoc content format is unrecognized.&lt;/p>
+ *
+ * @since 3.2
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_khEWEWEMEeCdEc4VzBeWeQ" name="DEPRECATED_VARIABLE" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_khOHEGEMEeCdEc4VzBeWeQ">
+ <body>
+ * &lt;p>Status constant indicating that the variable is deprecated.&lt;/p>
+ *
+ * @since 3.3
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_khOHEWEMEeCdEc4VzBeWeQ" name="BAD_TEXT_EDIT_LOCATION" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_khOHEmEMEeCdEc4VzBeWeQ">
+ <body>
+ * &lt;p>Status constant indicating that a text edit can not be applied as there
+ * is a problem with the text edit location.&lt;/p>
+ *
+ * @since 3.4
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_khX4EGEMEeCdEc4VzBeWeQ" name="CANNOT_RETRIEVE_ATTACHED_JAVADOC_TIMEOUT" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_khX4EWEMEeCdEc4VzBeWeQ">
+ <body>
+ * &lt;p>Status constant indicating that the attached javadoc content cannot be retrieved due to timeout
+ * @since 3.7
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_kjmssGEMEeCdEc4VzBeWeQ" name="IJavaProject">
+ <ownedComment xmi:id="_kjmssWEMEeCdEc4VzBeWeQ">
+ <body>
+ * A Java project represents a view of a project resource in terms of Java
+ * elements such as package fragments, types, methods and fields.
+ * A project may contain several package roots, which contain package fragments.
+ * A package root corresponds to an underlying folder or JAR.
+ * &lt;p>
+ * Each Java project has a classpath, defining which folders contain source code and
+ * where required libraries are located. Each Java project also has an output location,
+ * defining where the builder writes &lt;code>.class&lt;/code> files. A project that
+ * references packages in another project can access the packages by including
+ * the required project in a classpath entry. The Java model will present the
+ * source elements in the required project; when building, the compiler will use
+ * the corresponding generated class files from the required project's output
+ * location(s)). The classpath format is a sequence of classpath entries
+ * describing the location and contents of package fragment roots.
+ * &lt;/p>
+ * Java project elements need to be opened before they can be navigated or manipulated.
+ * The children of a Java project are the package fragment roots that are
+ * defined by the classpath and contained in this project (in other words, it
+ * does not include package fragment roots for other projects).
+ * &lt;/p>
+ * &lt;p>
+ * An instance of one of these handles can be created via
+ * &lt;code>JavaCore.create(project)&lt;/code>.
+ * &lt;/p>
+ *
+ * @see JavaCore#create(org.eclipse.core.resources.IProject)
+ * @see IClasspathEntry
+ * @noimplement This interface is not intended to be implemented by clients.
+ </body>
+ </ownedComment>
+ <generalization xmi:id="_S-hgwGHaEeCIr_fxSkYSJA" general="_kq6OkGEMEeCdEc4VzBeWeQ"/>
+ <generalization xmi:id="_S-rRwGHaEeCIr_fxSkYSJA" general="_kO5A8GEMEeCdEc4VzBeWeQ"/>
+ <generalization xmi:id="_S-rRwWHaEeCIr_fxSkYSJA" general="_koX38GEMEeCdEc4VzBeWeQ"/>
+ <ownedOperation xmi:id="_S-rRwmHaEeCIr_fxSkYSJA" name="decodeClasspathEntry">
+ <ownedComment xmi:id="_S-0bsGHaEeCIr_fxSkYSJA">
+ <body>
+ * Decodes the classpath entry that has been encoded in the given string
+ * in the context of this project.
+ * Returns null if the encoded entry is malformed.
+ *
+ * @param encodedEntry the encoded classpath entry
+ * @return the decoded classpath entry, or &lt;code>null&lt;/code> if unable to decode it
+ * @since 3.2
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_S-0bsWHaEeCIr_fxSkYSJA" type="_j4GRkGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_S-0bsmHaEeCIr_fxSkYSJA" name="encodedEntry" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_S--MsGHaEeCIr_fxSkYSJA" name="encodeClasspathEntry">
+ <ownedComment xmi:id="_S--MsWHaEeCIr_fxSkYSJA">
+ <body>
+ * Encodes the given classpath entry into a string in the context of this project.
+ *
+ * @param classpathEntry the classpath entry to encode
+ * @return the encoded classpath entry
+ * @since 3.2
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_S--MsmHaEeCIr_fxSkYSJA" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_S_H9sGHaEeCIr_fxSkYSJA" name="classpathEntry" type="_j4GRkGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_S_H9sWHaEeCIr_fxSkYSJA" name="findElement">
+ <ownedComment xmi:id="_S_H9smHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns the &lt;code>IJavaElement&lt;/code> corresponding to the given
+ * classpath-relative path, or &lt;code>null&lt;/code> if no such
+ * &lt;code>IJavaElement&lt;/code> is found. The result is one of an
+ * &lt;code>ICompilationUnit&lt;/code>, &lt;code>IClassFile&lt;/code>, or
+ * &lt;code>IPackageFragment&lt;/code>.
+ * &lt;p>
+ * When looking for a package fragment, there might be several potential
+ * matches; only one of them is returned.
+ *
+ * &lt;p>For example, the path &quot;java/lang/Object.java&quot;, would result in the
+ * &lt;code>ICompilationUnit&lt;/code> or &lt;code>IClassFile&lt;/code> corresponding to
+ * &quot;java.lang.Object&quot;. The path &quot;java/lang&quot; would result in the
+ * &lt;code>IPackageFragment&lt;/code> for &quot;java.lang&quot;.
+ * @param path the given classpath-relative path
+ * @exception JavaModelException if the given path is &lt;code>null&lt;/code>
+ * or absolute
+ * @return the &lt;code>IJavaElement&lt;/code> corresponding to the given
+ * classpath-relative path, or &lt;code>null&lt;/code> if no such
+ * &lt;code>IJavaElement&lt;/code> is found
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_S_H9s2HaEeCIr_fxSkYSJA" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_S_RHoGHaEeCIr_fxSkYSJA" name="path" type="_j00UEmEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_S_a4oGHaEeCIr_fxSkYSJA" name="findElement">
+ <ownedComment xmi:id="_S_a4oWHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns the &lt;code>IJavaElement&lt;/code> corresponding to the given
+ * classpath-relative path, or &lt;code>null&lt;/code> if no such
+ * &lt;code>IJavaElement&lt;/code> is found. The result is one of an
+ * &lt;code>ICompilationUnit&lt;/code>, &lt;code>IClassFile&lt;/code>, or
+ * &lt;code>IPackageFragment&lt;/code>. If it is an &lt;code>ICompilationUnit&lt;/code>,
+ * its owner is the given owner.
+ * &lt;p>
+ * When looking for a package fragment, there might be several potential
+ * matches; only one of them is returned.
+ *
+ * &lt;p>For example, the path &quot;java/lang/Object.java&quot;, would result in the
+ * &lt;code>ICompilationUnit&lt;/code> or &lt;code>IClassFile&lt;/code> corresponding to
+ * &quot;java.lang.Object&quot;. The path &quot;java/lang&quot; would result in the
+ * &lt;code>IPackageFragment&lt;/code> for &quot;java.lang&quot;.
+ * @param path the given classpath-relative path
+ * @param owner the owner of the returned compilation unit, ignored if it is
+ * not a compilation unit.
+ * @exception JavaModelException if the given path is &lt;code>null&lt;/code>
+ * or absolute
+ * @return the &lt;code>IJavaElement&lt;/code> corresponding to the given
+ * classpath-relative path, or &lt;code>null&lt;/code> if no such
+ * &lt;code>IJavaElement&lt;/code> is found
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_S_a4omHaEeCIr_fxSkYSJA" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_S_a4o2HaEeCIr_fxSkYSJA" name="path" type="_j00UEmEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_S_kCkGHaEeCIr_fxSkYSJA" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_S_kCkWHaEeCIr_fxSkYSJA" name="findElement">
+ <ownedComment xmi:id="_S_kCkmHaEeCIr_fxSkYSJA">
+ <body>
+ * Finds the Java element corresponding to the given binding key if any,
+ * else returns &lt;code>null&lt;/code>. Elements are looked up using this
+ * project's classpath. The first element corresponding to
+ * the given key on this project's classpath is returned.
+ * &lt;p>Possible elements are:
+ * &lt;ul>
+ * &lt;li>{@link IPackageFragment} for a binding key from an
+ * {@link IPackageBinding}&lt;/li>
+ * &lt;li>{@link IType} for a binding key from an {@link ITypeBinding}&lt;/li>
+ * &lt;li>{@link IMethod} for a binding key from an {@link IMethodBinding}&lt;/li>
+ * &lt;li>{@link IField} for a binding key from an {@link IVariableBinding}
+ * representing a {@link IVariableBinding#isField() field}&lt;/li>
+ * &lt;li>{@link ITypeParameter} for a binding key from an {@link ITypeBinding}
+ * representing a {@link ITypeBinding#isTypeVariable() type
+ * variable}&lt;/li>
+ * &lt;li>{@link IAnnotation} for a binding key from an
+ * {@link IAnnotationBinding}&lt;/li>
+ * &lt;/ul>&lt;/p>
+ * &lt;p>Note: if two methods correspond to the binding key because their
+ * parameter types' simple names are the same, then the first one is returned.
+ * For example, if a class defines two methods &lt;code>foo(p1.Y, String)&lt;/code>
+ * and &lt;code>foo(p2.Y, String)&lt;/code>, in both cases the parameter type's
+ * simple names are &lt;code>{&quot;Y&quot;, &quot;String&quot;}&lt;/code>. Thus
+ * &lt;code>foo(p1.Y, String)&lt;/code> is returned.&lt;/p>
+ *
+ * @param bindingKey the given binding key
+ * @param owner the owner of the returned element's compilation unit,
+ * or &lt;code>null&lt;/code> if the default working copy owner must be
+ * used
+ * @exception JavaModelException if this project does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ * @return the Java element corresponding to the given key,
+ * or &lt;code>null&lt;/code> if no such Java element is found
+ * @since 3.4
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_S_tzkGHaEeCIr_fxSkYSJA" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_S_tzkWHaEeCIr_fxSkYSJA" name="bindingKey" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_S_3kkGHaEeCIr_fxSkYSJA" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TAAugGHaEeCIr_fxSkYSJA" name="findPackageFragment">
+ <ownedComment xmi:id="_TAAugWHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns the first existing package fragment on this project's classpath
+ * whose path matches the given (absolute) path, or &lt;code>null&lt;/code> if none
+ * exist.
+ * The path can be:
+ * - internal to the workbench: &quot;/Project/src&quot;
+ * - external to the workbench: &quot;c:/jdk/classes.zip/java/lang&quot;
+ * @param path the given absolute path
+ * @exception JavaModelException if this project does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ * @return the first existing package fragment on this project's classpath
+ * whose path matches the given (absolute) path, or &lt;code>null&lt;/code> if none
+ * exist
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TAAugmHaEeCIr_fxSkYSJA" type="_kqTxoGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_TAKfgGHaEeCIr_fxSkYSJA" name="path" type="_j00UEmEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TAKfgWHaEeCIr_fxSkYSJA" name="findPackageFragmentRoot">
+ <ownedComment xmi:id="_TAKfgmHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns the existing package fragment root on this project's classpath
+ * whose path matches the given (absolute) path, or &lt;code>null&lt;/code> if
+ * one does not exist.
+ * The path can be:
+ * - internal to the workbench: &quot;/Compiler/src&quot;
+ * - external to the workbench: &quot;c:/jdk/classes.zip&quot;
+ * @param path the given absolute path
+ * @exception JavaModelException if this project does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ * @return the existing package fragment root on this project's classpath
+ * whose path matches the given (absolute) path, or &lt;code>null&lt;/code> if
+ * one does not exist
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TAKfg2HaEeCIr_fxSkYSJA" type="_kqmskGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_TAUQgGHaEeCIr_fxSkYSJA" name="path" type="_j00UEmEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TAUQgWHaEeCIr_fxSkYSJA" name="findPackageFragmentRoots">
+ <ownedComment xmi:id="_TAUQgmHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns the existing package fragment roots identified by the given entry.
+ * A classpath entry within the current project identifies a single root.
+ * &lt;p>
+ * If the classpath entry denotes a variable, it will be resolved and return
+ * the roots of the target entry (empty if not resolvable).
+ * &lt;p>
+ * If the classpath entry denotes a container, it will be resolved and return
+ * the roots corresponding to the set of container entries (empty if not resolvable).
+ * &lt;p>
+ * The result does not include package fragment roots in other projects
+ * referenced on this project's classpath.
+ *
+ * @param entry the given entry
+ * @return the existing package fragment roots identified by the given entry
+ * @see IClasspathContainer
+ * @since 2.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TAdacGHaEeCIr_fxSkYSJA" type="_kqmskGEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TAnLcGHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TAdacWHaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_TAnLcWHaEeCIr_fxSkYSJA" name="entry" type="_j4GRkGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TAwVYGHaEeCIr_fxSkYSJA" name="findType">
+ <ownedComment xmi:id="_TAwVYWHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns the first type found following this project's classpath
+ * with the given fully qualified name or &lt;code>null&lt;/code> if none is found.
+ * The fully qualified name is a dot-separated name. For example,
+ * a class B defined as a member type of a class A in package x.y should have a
+ * the fully qualified name &quot;x.y.A.B&quot;.
+ *
+ * Note that in order to be found, a type name (or its toplevel enclosing
+ * type name) must match its corresponding compilation unit name. As a
+ * consequence, secondary types cannot be found using this functionality.
+ * To find secondary types use {@link #findType(String, IProgressMonitor)} instead.
+ *
+ * @param fullyQualifiedName the given fully qualified name
+ * @exception JavaModelException if this project does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ * @return the first type found following this project's classpath
+ * with the given fully qualified name or &lt;code>null&lt;/code> if none is found
+ * @see IType#getFullyQualifiedName(char)
+ * @since 2.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TAwVYmHaEeCIr_fxSkYSJA" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_TAwVY2HaEeCIr_fxSkYSJA" name="fullyQualifiedName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TBWyUGHaEeCIr_fxSkYSJA" name="findType">
+ <ownedComment xmi:id="_TBWyUWHaEeCIr_fxSkYSJA">
+ <body>
+ * Same functionality as {@link #findType(String)} but also look for secondary
+ * types if given name does not match a compilation unit name.
+ *
+ * @param fullyQualifiedName the given fully qualified name
+ * @param progressMonitor the progress monitor to report progress to,
+ * or &lt;code>null&lt;/code> if no progress monitor is provided
+ * @exception JavaModelException if this project does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ * @return the first type found following this project's classpath
+ * with the given fully qualified name or &lt;code>null&lt;/code> if none is found
+ * @see IType#getFullyQualifiedName(char)
+ * @since 3.2
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TBWyUmHaEeCIr_fxSkYSJA" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_TBgjUGHaEeCIr_fxSkYSJA" name="fullyQualifiedName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_TBgjUWHaEeCIr_fxSkYSJA" name="progressMonitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TBptQGHaEeCIr_fxSkYSJA" name="findType">
+ <ownedComment xmi:id="_TBptQWHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns the first type found following this project's classpath
+ * with the given fully qualified name or &lt;code>null&lt;/code> if none is found.
+ * The fully qualified name is a dot-separated name. For example,
+ * a class B defined as a member type of a class A in package x.y should have a
+ * the fully qualified name &quot;x.y.A.B&quot;.
+ * If the returned type is part of a compilation unit, its owner is the given
+ * owner.
+ *
+ * Note that in order to be found, a type name (or its toplevel enclosing
+ * type name) must match its corresponding compilation unit name. As a
+ * consequence, secondary types cannot be found using this functionality.
+ * To find secondary types use {@link #findType(String, WorkingCopyOwner, IProgressMonitor)}
+ * instead.
+ *
+ * @param fullyQualifiedName the given fully qualified name
+ * @param owner the owner of the returned type's compilation unit
+ * @exception JavaModelException if this project does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ * @return the first type found following this project's classpath
+ * with the given fully qualified name or &lt;code>null&lt;/code> if none is found
+ * @see IType#getFullyQualifiedName(char)
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TBptQmHaEeCIr_fxSkYSJA" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_TBzeQGHaEeCIr_fxSkYSJA" name="fullyQualifiedName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_TB8oMGHaEeCIr_fxSkYSJA" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TCZUIGHaEeCIr_fxSkYSJA" name="findType">
+ <ownedComment xmi:id="_TCZUIWHaEeCIr_fxSkYSJA">
+ <body>
+ * Same functionality as {@link #findType(String, WorkingCopyOwner)}
+ * but also look for secondary types if given name does not match
+ * a compilation unit name.
+ *
+ * @param fullyQualifiedName the given fully qualified name
+ * @param owner the owner of the returned type's compilation unit
+ * @param progressMonitor the progress monitor to report progress to,
+ * or &lt;code>null&lt;/code> if no progress monitor is provided
+ * @exception JavaModelException if this project does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ * @return the first type found following this project's classpath
+ * with the given fully qualified name or &lt;code>null&lt;/code> if none is found
+ * @see IType#getFullyQualifiedName(char)
+ * @since 3.2
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TCjFIGHaEeCIr_fxSkYSJA" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_TCjFIWHaEeCIr_fxSkYSJA" name="fullyQualifiedName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_TCs2IGHaEeCIr_fxSkYSJA" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_TCs2IWHaEeCIr_fxSkYSJA" name="progressMonitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TC2AEGHaEeCIr_fxSkYSJA" name="findType">
+ <ownedComment xmi:id="_TC2AEWHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns the first type found following this project's classpath
+ * with the given package name and type qualified name
+ * or &lt;code>null&lt;/code> if none is found.
+ * The package name is a dot-separated name.
+ * The type qualified name is also a dot-separated name. For example,
+ * a class B defined as a member type of a class A should have the
+ * type qualified name &quot;A.B&quot;.
+ *
+ * Note that in order to be found, a type name (or its toplevel enclosing
+ * type name) must match its corresponding compilation unit name. As a
+ * consequence, secondary types cannot be found using this functionality.
+ * To find secondary types use {@link #findType(String, String, IProgressMonitor)}
+ * instead.
+ *
+ * @param packageName the given package name
+ * @param typeQualifiedName the given type qualified name
+ * @exception JavaModelException if this project does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ * @return the first type found following this project's classpath
+ * with the given package name and type qualified name
+ * or &lt;code>null&lt;/code> if none is found
+ * @see IType#getTypeQualifiedName(char)
+ * @since 2.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TC2AEmHaEeCIr_fxSkYSJA" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_TC_xEGHaEeCIr_fxSkYSJA" name="packageName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_TC_xEWHaEeCIr_fxSkYSJA" name="typeQualifiedName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TDI7AGHaEeCIr_fxSkYSJA" name="findType">
+ <ownedComment xmi:id="_TDI7AWHaEeCIr_fxSkYSJA">
+ <body>
+ * Same functionality as {@link #findType(String, String)} but also look for
+ * secondary types if given name does not match a compilation unit name.
+ *
+ * @param packageName the given package name
+ * @param typeQualifiedName the given type qualified name
+ * @param progressMonitor the progress monitor to report progress to,
+ * or &lt;code>null&lt;/code> if no progress monitor is provided
+ * @exception JavaModelException if this project does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ * @return the first type found following this project's classpath
+ * with the given fully qualified name or &lt;code>null&lt;/code> if none is found
+ * @see IType#getFullyQualifiedName(char)
+ * @since 3.2
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TDI7AmHaEeCIr_fxSkYSJA" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_TDI7A2HaEeCIr_fxSkYSJA" name="packageName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_TDSsAGHaEeCIr_fxSkYSJA" name="typeQualifiedName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_TDSsAWHaEeCIr_fxSkYSJA" name="progressMonitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TDcdAGHaEeCIr_fxSkYSJA" name="findType">
+ <ownedComment xmi:id="_TDcdAWHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns the first type found following this project's classpath
+ * with the given package name and type qualified name
+ * or &lt;code>null&lt;/code> if none is found.
+ * The package name is a dot-separated name.
+ * The type qualified name is also a dot-separated name. For example,
+ * a class B defined as a member type of a class A should have the
+ * type qualified name &quot;A.B&quot;.
+ * If the returned type is part of a compilation unit, its owner is the given
+ * owner.
+ *
+ * Note that in order to be found, a type name (or its toplevel enclosing
+ * type name) must match its corresponding compilation unit name. As a
+ * consequence, secondary types cannot be found using this functionality.
+ * To find secondary types use {@link #findType(String, String, WorkingCopyOwner, IProgressMonitor)}
+ * instead.
+ *
+ * @param packageName the given package name
+ * @param typeQualifiedName the given type qualified name
+ * @param owner the owner of the returned type's compilation unit
+ * @exception JavaModelException if this project does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ * @return the first type found following this project's classpath
+ * with the given package name and type qualified name
+ * or &lt;code>null&lt;/code> if none is found
+ * @see IType#getTypeQualifiedName(char)
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TDcdAmHaEeCIr_fxSkYSJA" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_TDlm8GHaEeCIr_fxSkYSJA" name="packageName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_TDvX8GHaEeCIr_fxSkYSJA" name="typeQualifiedName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_TD5I8GHaEeCIr_fxSkYSJA" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TEVN0GHaEeCIr_fxSkYSJA" name="findType">
+ <ownedComment xmi:id="_TEVN0WHaEeCIr_fxSkYSJA">
+ <body>
+ * Same functionality as {@link #findType(String, String, WorkingCopyOwner)}
+ * but also look for secondary types if given name does not match a compilation unit name.
+ *
+ * @param packageName the given package name
+ * @param typeQualifiedName the given type qualified name
+ * @param owner the owner of the returned type's compilation unit
+ * @param progressMonitor the progress monitor to report progress to,
+ * or &lt;code>null&lt;/code> if no progress monitor is provided
+ * @exception JavaModelException if this project does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ * @return the first type found following this project's classpath
+ * with the given fully qualified name or &lt;code>null&lt;/code> if none is found
+ * @see IType#getFullyQualifiedName(char)
+ * @since 3.2
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TEe-0GHaEeCIr_fxSkYSJA" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_TEe-0WHaEeCIr_fxSkYSJA" name="packageName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_TEov0GHaEeCIr_fxSkYSJA" name="typeQualifiedName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_TEov0WHaEeCIr_fxSkYSJA" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_TEx5wGHaEeCIr_fxSkYSJA" name="progressMonitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TEx5wWHaEeCIr_fxSkYSJA" name="getAllPackageFragmentRoots">
+ <ownedComment xmi:id="_TEx5wmHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns all of the existing package fragment roots that exist
+ * on the classpath, in the order they are defined by the classpath.
+ *
+ * @return all of the existing package fragment roots that exist
+ * on the classpath
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TE7qwGHaEeCIr_fxSkYSJA" type="_kqmskGEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TFFbwGHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TE7qwWHaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TFFbwWHaEeCIr_fxSkYSJA" name="getNonJavaResources">
+ <ownedComment xmi:id="_TFFbwmHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns an array of non-Java resources directly contained in this project.
+ * It does not transitively answer non-Java resources contained in folders;
+ * these would have to be explicitly iterated over.
+ * &lt;p>
+ * Non-Java resources includes other files and folders located in the
+ * project not accounted for by any of it source or binary package fragment
+ * roots. If the project is a source folder itself, resources excluded from the
+ * corresponding source classpath entry by one or more exclusion patterns
+ * are considered non-Java resources and will appear in the result
+ * (possibly in a folder)
+ * &lt;/p>
+ *
+ * @return an array of non-Java resources (&lt;code>IFile&lt;/code>s and/or
+ * &lt;code>IFolder&lt;/code>s) directly contained in this project
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TFFbw2HaEeCIr_fxSkYSJA" type="_kOcVAmEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TFYWsGHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TFOlsGHaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TFYWsWHaEeCIr_fxSkYSJA" name="getOption">
+ <ownedComment xmi:id="_TFYWsmHaEeCIr_fxSkYSJA">
+ <body>
+ * Helper method for returning one option value only. Equivalent to &lt;code>(String)this.getOptions(inheritJavaCoreOptions).get(optionName)&lt;/code>
+ * Note that it may answer &lt;code>null&lt;/code> if this option does not exist, or if there is no custom value for it.
+ * &lt;p>
+ * For a complete description of the configurable options, see &lt;code>JavaCore#getDefaultOptions&lt;/code>.
+ * &lt;/p>
+ *
+ * @param optionName the name of an option
+ * @param inheritJavaCoreOptions - boolean indicating whether JavaCore options should be inherited as well
+ * @return the String value of a given option
+ * @see JavaCore#getDefaultOptions()
+ * @since 2.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TFYWs2HaEeCIr_fxSkYSJA" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_TFhgoGHaEeCIr_fxSkYSJA" name="optionName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_TFhgoWHaEeCIr_fxSkYSJA" name="inheritJavaCoreOptions" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TFrRoGHaEeCIr_fxSkYSJA" name="getOptions">
+ <ownedComment xmi:id="_TFrRoWHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns the table of the current custom options for this project. Projects remember their custom options,
+ * in other words, only the options different from the the JavaCore global options for the workspace.
+ * A boolean argument allows to directly merge the project options with global ones from &lt;code>JavaCore&lt;/code>.
+ * &lt;p>
+ * For a complete description of the configurable options, see &lt;code>JavaCore#getDefaultOptions&lt;/code>.
+ * &lt;/p>
+ *
+ * @param inheritJavaCoreOptions - boolean indicating whether JavaCore options should be inherited as well
+ * @return table of current settings of all options
+ * (key type: &lt;code>String&lt;/code>; value type: &lt;code>String&lt;/code>)
+ * @see JavaCore#getDefaultOptions()
+ * @since 2.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TF1CoGHaEeCIr_fxSkYSJA" type="_l1aS0WEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_TF1CoWHaEeCIr_fxSkYSJA" name="inheritJavaCoreOptions" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TF-MkGHaEeCIr_fxSkYSJA" name="getOutputLocation">
+ <ownedComment xmi:id="_TF-MkWHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns the default output location for this project as a workspace-
+ * relative absolute path.
+ * &lt;p>
+ * The default output location is where class files are ordinarily generated
+ * (and resource files, copied). Each source classpath entry can also
+ * specify an output location for the generated class files (and copied
+ * resource files) corresponding to compilation units under that source
+ * folder. This makes it possible to arrange generated class files for
+ * different source folders in different output folders, and not
+ * necessarily the default output folder. This means that the generated
+ * class files for the project may end up scattered across several folders,
+ * rather than all in the default output folder (which is more standard).
+ * &lt;/p>
+ *
+ * @return the workspace-relative absolute path of the default output folder
+ * @exception JavaModelException if this element does not exist
+ * @see #setOutputLocation(org.eclipse.core.runtime.IPath, IProgressMonitor)
+ * @see IClasspathEntry#getOutputLocation()
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TF-MkmHaEeCIr_fxSkYSJA" type="_j00UEmEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TGH9kGHaEeCIr_fxSkYSJA" name="getPackageFragmentRoot">
+ <ownedComment xmi:id="_TGH9kWHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns a package fragment root for an external library
+ * (a ZIP archive - e.g. a &lt;code>.jar&lt;/code>, a &lt;code>.zip&lt;/code> file, etc. -
+ * or - since 3.4 - a class folder) at the specified file system path.
+ * This is a handle-only method. The underlying &lt;code>java.io.File&lt;/code>
+ * may or may not exist. No resource is associated with this local library
+ * package fragment root.
+ *
+ * @param externalLibraryPath the library's file system path
+ * @return a package fragment root for the external library at the specified file system path
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TGH9kmHaEeCIr_fxSkYSJA" type="_kqmskGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_TGH9k2HaEeCIr_fxSkYSJA" name="externalLibraryPath" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TGRukGHaEeCIr_fxSkYSJA" name="getPackageFragmentRoot">
+ <ownedComment xmi:id="_TGRukWHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns a package fragment root for the given resource, which
+ * must either be a folder representing the top of a package hierarchy,
+ * or a ZIP archive (e.g. a &lt;code>.jar&lt;/code>, a &lt;code>.zip&lt;/code> file, etc.)
+ * This is a handle-only method. The underlying resource may or may not exist.
+ *
+ * @param resource the given resource
+ * @return a package fragment root for the given resource, which
+ * must either be a folder representing the top of a package hierarchy,
+ * or a ZIP archive (e.g. a &lt;code>.jar&lt;/code>, a &lt;code>.zip&lt;/code> file, etc.)
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TGRukmHaEeCIr_fxSkYSJA" type="_kqmskGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_TGa4gGHaEeCIr_fxSkYSJA" name="resource" type="_kQh_smEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TGa4gWHaEeCIr_fxSkYSJA" name="getPackageFragmentRoots">
+ <ownedComment xmi:id="_TGa4gmHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns all of the package fragment roots contained in this
+ * project, identified on this project's resolved classpath. The result
+ * does not include package fragment roots in other projects referenced
+ * on this project's classpath.
+ *
+ * &lt;p>NOTE: This is equivalent to &lt;code>getChildren()&lt;/code>.
+ *
+ * @return all of the package fragment roots contained in this
+ * project, identified on this project's resolved classpath
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TGkpgGHaEeCIr_fxSkYSJA" type="_kqmskGEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TGtzcGHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TGkpgWHaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_THKfYGHaEeCIr_fxSkYSJA" name="getPackageFragmentRoots">
+ <ownedComment xmi:id="_THKfYWHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns the existing package fragment roots identified by the given entry.
+ * A classpath entry within the current project identifies a single root.
+ * &lt;p>
+ * If the classpath entry denotes a variable, it will be resolved and return
+ * the roots of the target entry (empty if not resolvable).
+ * &lt;p>
+ * If the classpath entry denotes a container, it will be resolved and return
+ * the roots corresponding to the set of container entries (empty if not resolvable).
+ * &lt;p>
+ * The result does not include package fragment roots in other projects
+ * referenced on this project's classpath.
+ *
+ * @param entry the given entry
+ * @return the existing package fragment roots identified by the given entry
+ * @see IClasspathContainer
+ * @deprecated Use {@link IJavaProject#findPackageFragmentRoots(IClasspathEntry)} instead
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_THKfYmHaEeCIr_fxSkYSJA" type="_kqmskGEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_THeBYGHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_THUQYGHaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_THnLUGHaEeCIr_fxSkYSJA" name="entry" type="_j4GRkGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_THw8UGHaEeCIr_fxSkYSJA" name="getPackageFragments">
+ <ownedComment xmi:id="_THw8UWHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns all package fragments in all package fragment roots contained
+ * in this project. This is a convenience method.
+ *
+ * Note that the package fragment roots corresponds to the resolved
+ * classpath of the project.
+ *
+ * @return all package fragments in all package fragment roots contained
+ * in this project
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TH6GQGHaEeCIr_fxSkYSJA" type="_kqTxoGEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TID3QGHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TH6GQWHaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TID3QWHaEeCIr_fxSkYSJA" name="getProject">
+ <ownedComment xmi:id="_TID3QmHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns the &lt;code>IProject&lt;/code> on which this &lt;code>IJavaProject&lt;/code>
+ * was created. This is handle-only method.
+ *
+ * @return the &lt;code>IProject&lt;/code> on which this &lt;code>IJavaProject&lt;/code>
+ * was created
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TIWyMGHaEeCIr_fxSkYSJA" type="_TINoQGHaEeCIr_fxSkYSJA" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TIWyMWHaEeCIr_fxSkYSJA" name="getRawClasspath">
+ <ownedComment xmi:id="_TIWyMmHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns the raw classpath for the project, as a list of classpath
+ * entries. This corresponds to the exact set of entries which were assigned
+ * using &lt;code>setRawClasspath&lt;/code>, in particular such a classpath may
+ * contain classpath variable and classpath container entries. Classpath
+ * variable and classpath container entries can be resolved using the
+ * helper method &lt;code>getResolvedClasspath&lt;/code>; classpath variable
+ * entries also can be resolved individually using
+ * &lt;code>JavaCore#getClasspathVariable&lt;/code>).
+ * &lt;p>
+ * Both classpath containers and classpath variables provides a level of
+ * indirection that can make the &lt;code>.classpath&lt;/code> file stable across
+ * workspaces.
+ * As an example, classpath variables allow a classpath to no longer refer
+ * directly to external JARs located in some user specific location.
+ * The classpath can simply refer to some variables defining the proper
+ * locations of these external JARs. Similarly, classpath containers
+ * allows classpath entries to be computed dynamically by the plug-in that
+ * defines that kind of classpath container.
+ * &lt;/p>
+ * &lt;p>
+ * Note that in case the project isn't yet opened, the classpath will
+ * be read directly from the associated &lt;tt>.classpath&lt;/tt> file.
+ * &lt;/p>
+ *
+ * @return the raw classpath for the project, as a list of classpath entries
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ * @see IClasspathEntry
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TIWyM2HaEeCIr_fxSkYSJA" type="_j4GRkGEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TIgjMWHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TIgjMGHaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TIqUMGHaEeCIr_fxSkYSJA" name="getRequiredProjectNames">
+ <ownedComment xmi:id="_TIqUMWHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns the names of the projects that are directly required by this
+ * project. A project is required if it is in its classpath.
+ * &lt;p>
+ * The project names are returned in the order they appear on the classpath.
+ *
+ * @return the names of the projects that are directly required by this
+ * project in classpath order
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TIqUMmHaEeCIr_fxSkYSJA" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TIzeIWHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TIzeIGHaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TI9PIGHaEeCIr_fxSkYSJA" name="getResolvedClasspath">
+ <ownedComment xmi:id="_TI9PIWHaEeCIr_fxSkYSJA">
+ <body>
+ * This is a helper method returning the resolved classpath for the project
+ * as a list of simple (non-variable, non-container) classpath entries.
+ * All classpath variable and classpath container entries in the project's
+ * raw classpath will be replaced by the simple classpath entries they
+ * resolve to.
+ * &lt;p>
+ * The resulting resolved classpath is accurate for the given point in time.
+ * If the project's raw classpath is later modified, or if classpath
+ * variables are changed, the resolved classpath can become out of date.
+ * Because of this, hanging on resolved classpath is not recommended.
+ * &lt;/p>
+ * &lt;p>
+ * Note that if the resolution creates duplicate entries
+ * (i.e. {@link IClasspathEntry entries} which are {@link Object#equals(Object)}),
+ * only the first one is added to the resolved classpath.
+ * &lt;/p>
+ *
+ * @param ignoreUnresolvedEntry indicates how to handle unresolvable
+ * variables and containers; &lt;code>true&lt;/code> indicates that missing
+ * variables and unresolvable classpath containers should be silently
+ * ignored, and that the resulting list should consist only of the
+ * entries that could be successfully resolved; &lt;code>false&lt;/code> indicates
+ * that a &lt;code>JavaModelException&lt;/code> should be thrown for the first
+ * unresolved variable or container
+ * @return the resolved classpath for the project as a list of simple
+ * classpath entries, where all classpath variable and container entries
+ * have been resolved and substituted with their final target entries
+ * @exception JavaModelException in one of the corresponding situation:
+ * &lt;ul>
+ * &lt;li>this element does not exist&lt;/li>
+ * &lt;li>an exception occurs while accessing its corresponding resource&lt;/li>
+ * &lt;li>a classpath variable or classpath container was not resolvable
+ * and &lt;code>ignoreUnresolvedEntry&lt;/code> is &lt;code>false&lt;/code>.&lt;/li>
+ * &lt;/ul>
+ * @see IClasspathEntry
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TI9PImHaEeCIr_fxSkYSJA" type="_j4GRkGEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TJGZEGHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TI9PI2HaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_TJGZEWHaEeCIr_fxSkYSJA" name="ignoreUnresolvedEntry" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TJQKEGHaEeCIr_fxSkYSJA" name="hasBuildState">
+ <ownedComment xmi:id="_TJQKEWHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns whether this project has been built at least once and thus whether it has a build state.
+ * @return true if this project has been built at least once, false otherwise
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TJZ7EGHaEeCIr_fxSkYSJA" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TJZ7EWHaEeCIr_fxSkYSJA" name="hasClasspathCycle">
+ <ownedComment xmi:id="_TJZ7EmHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns whether setting this project's classpath to the given classpath entries
+ * would result in a cycle.
+ *
+ * If the set of entries contains some variables, those are resolved in order to determine
+ * cycles.
+ *
+ * @param entries the given classpath entries
+ * @return true if the given classpath entries would result in a cycle, false otherwise
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TJjFAGHaEeCIr_fxSkYSJA" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_TJjFAWHaEeCIr_fxSkYSJA" name="entries" type="_j4GRkGEMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TJs2AWHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TJs2AGHaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TJ2nAGHaEeCIr_fxSkYSJA" name="isOnClasspath">
+ <ownedComment xmi:id="_TJ2nAWHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns whether the given element is on the classpath of this project,
+ * that is, referenced from a classpath entry and not explicitly excluded
+ * using an exclusion pattern.
+ *
+ * @param element the given element
+ * @return &lt;code>true&lt;/code> if the given element is on the classpath of
+ * this project, &lt;code>false&lt;/code> otherwise
+ * @see IClasspathEntry#getInclusionPatterns()
+ * @see IClasspathEntry#getExclusionPatterns()
+ * @since 2.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TJ2nAmHaEeCIr_fxSkYSJA" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_TJ_w8GHaEeCIr_fxSkYSJA" name="element" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TJ_w8WHaEeCIr_fxSkYSJA" name="isOnClasspath">
+ <ownedComment xmi:id="_TJ_w8mHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns whether the given resource is on the classpath of this project,
+ * that is, referenced from a classpath entry and not explicitly excluded
+ * using an exclusion pattern.
+ *
+ * @param resource the given resource
+ * @return &lt;code>true&lt;/code> if the given resource is on the classpath of
+ * this project, &lt;code>false&lt;/code> otherwise
+ * @see IClasspathEntry#getInclusionPatterns()
+ * @see IClasspathEntry#getExclusionPatterns()
+ * @since 2.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TJ_w82HaEeCIr_fxSkYSJA" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_TKJh8GHaEeCIr_fxSkYSJA" name="resource" type="_kQh_smEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TKSr4GHaEeCIr_fxSkYSJA" name="newEvaluationContext">
+ <ownedComment xmi:id="_TKSr4WHaEeCIr_fxSkYSJA">
+ <body>
+ * Creates a new evaluation context.
+ * @return a new evaluation context.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TKSr5GHaEeCIr_fxSkYSJA" type="_TKSr42HaEeCIr_fxSkYSJA" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TKcc4GHaEeCIr_fxSkYSJA" name="newTypeHierarchy">
+ <ownedComment xmi:id="_TKcc4WHaEeCIr_fxSkYSJA">
+ <body>
+ * Creates and returns a type hierarchy for all types in the given
+ * region, considering subtypes within that region.
+ *
+ * @param monitor the given progress monitor
+ * @param region the given region
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ * @exception IllegalArgumentException if region is &lt;code>null&lt;/code>
+ * @return a type hierarchy for all types in the given
+ * region, considering subtypes within that region
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TKcc4mHaEeCIr_fxSkYSJA" type="_kwkKoGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_TKmN4GHaEeCIr_fxSkYSJA" name="region" type="_krp1cGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_TKvX0GHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TK5I0GHaEeCIr_fxSkYSJA" name="newTypeHierarchy">
+ <ownedComment xmi:id="_TK5I0WHaEeCIr_fxSkYSJA">
+ <body>
+ * Creates and returns a type hierarchy for all types in the given
+ * region, considering subtypes within that region and considering types in the
+ * working copies with the given owner.
+ * In other words, the owner's working copies will take
+ * precedence over their original compilation units in the workspace.
+ * &lt;p>
+ * Note that if a working copy is empty, it will be as if the original compilation
+ * unit had been deleted.
+ * &lt;p>
+ *
+ * @param monitor the given progress monitor
+ * @param region the given region
+ * @param owner the owner of working copies that take precedence over their original compilation units
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ * @exception IllegalArgumentException if region is &lt;code>null&lt;/code>
+ * @return a type hierarchy for all types in the given
+ * region, considering subtypes within that region
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TK5I0mHaEeCIr_fxSkYSJA" type="_kwkKoGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_TLC50GHaEeCIr_fxSkYSJA" name="region" type="_krp1cGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_TLC50WHaEeCIr_fxSkYSJA" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_TLMDwGHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TLMDwWHaEeCIr_fxSkYSJA" name="newTypeHierarchy">
+ <ownedComment xmi:id="_TLMDwmHaEeCIr_fxSkYSJA">
+ <body>
+ * Creates and returns a type hierarchy for the given type considering
+ * subtypes in the specified region.
+ *
+ * @param type the given type
+ * @param region the given region
+ * @param monitor the given monitor
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ *
+ * @exception IllegalArgumentException if type or region is &lt;code>null&lt;/code>
+ * @return a type hierarchy for the given type considering
+ * subtypes in the specified region
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TLMDw2HaEeCIr_fxSkYSJA" type="_kwkKoGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_TLV0wGHaEeCIr_fxSkYSJA" name="type" type="_kvE84GEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_TLV0wWHaEeCIr_fxSkYSJA" name="region" type="_krp1cGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_TLe-sGHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TLovsGHaEeCIr_fxSkYSJA" name="newTypeHierarchy">
+ <ownedComment xmi:id="_TLovsWHaEeCIr_fxSkYSJA">
+ <body>
+ * Creates and returns a type hierarchy for the given type considering
+ * subtypes in the specified region and considering types in the
+ * working copies with the given owner.
+ * In other words, the owner's working copies will take
+ * precedence over their original compilation units in the workspace.
+ * &lt;p>
+ * Note that if a working copy is empty, it will be as if the original compilation
+ * unit had been deleted.
+ * &lt;p>
+ *
+ * @param type the given type
+ * @param region the given region
+ * @param monitor the given monitor
+ * @param owner the owner of working copies that take precedence over their original compilation units
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ *
+ * @exception IllegalArgumentException if type or region is &lt;code>null&lt;/code>
+ * @return a type hierarchy for the given type considering
+ * subtypes in the specified region
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TLovsmHaEeCIr_fxSkYSJA" type="_kwkKoGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_TLovs2HaEeCIr_fxSkYSJA" name="type" type="_kvE84GEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_TLygsGHaEeCIr_fxSkYSJA" name="region" type="_krp1cGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_TLygsWHaEeCIr_fxSkYSJA" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_TL7qoGHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TL7qoWHaEeCIr_fxSkYSJA" name="readOutputLocation">
+ <ownedComment xmi:id="_TMFboGHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns the default output location for the project as defined by its &lt;code>.classpath&lt;/code> file from disk, or &lt;code>null&lt;/code>
+ * if unable to read the file.
+ * &lt;p>
+ * This output location may differ from the in-memory one returned by &lt;code>getOutputLocation&lt;/code>, in case the
+ * automatic reconciliation mechanism has not been performed yet. Usually, any change to the &lt;code>.classpath&lt;/code> file
+ * is automatically noticed and reconciled at the next resource change notification event.
+ * However, if the file is modified within an operation, where this change needs to be taken into account before the
+ * operation ends, then the output location from disk can be read using this method, and further assigned to the project
+ * using &lt;code>setRawClasspath(...)&lt;/code>.
+ * &lt;p>
+ * The default output location is where class files are ordinarily generated
+ * (and resource files, copied). Each source classpath entry can also
+ * specify an output location for the generated class files (and copied
+ * resource files) corresponding to compilation units under that source
+ * folder. This makes it possible to arrange generated class files for
+ * different source folders in different output folders, and not
+ * necessarily the default output folder. This means that the generated
+ * class files for the project may end up scattered across several folders,
+ * rather than all in the default output folder (which is more standard).
+ * &lt;p>
+ * In order to manually force a project classpath refresh, one can simply assign the project classpath using the result of this
+ * method, as follows:
+ * &lt;code>proj.setRawClasspath(proj.readRawClasspath(), proj.readOutputLocation(), monitor)&lt;/code>
+ * (note that the &lt;code>readRawClasspath/readOutputLocation&lt;/code> methods could return &lt;code>null&lt;/code>).
+ * &lt;p>
+ * @return the workspace-relative absolute path of the default output folder
+ * @see #getOutputLocation()
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TMFboWHaEeCIr_fxSkYSJA" type="_j00UEmEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TMFbomHaEeCIr_fxSkYSJA" name="readRawClasspath">
+ <ownedComment xmi:id="_TMFbo2HaEeCIr_fxSkYSJA">
+ <body>
+ * Returns the raw classpath for the project as defined by its
+ * &lt;code>.classpath&lt;/code> file from disk, or &lt;code>null&lt;/code>
+ * if unable to read the file.
+ * &lt;p>
+ * This classpath may differ from the in-memory classpath returned by
+ * &lt;code>getRawClasspath&lt;/code>, in case the automatic reconciliation
+ * mechanism has not been performed yet. Usually, any change to the
+ * &lt;code>.classpath&lt;/code> file is automatically noticed and reconciled at
+ * the next resource change notification event. However, if the file is
+ * modified within an operation, where this change needs to be taken into
+ * account before the operation ends, then the classpath from disk can be
+ * read using this method, and further assigned to the project using
+ * &lt;code>setRawClasspath(...)&lt;/code>.
+ * &lt;/p>
+ * &lt;p>
+ * Classpath variable and classpath container entries can be resolved using
+ * the helper method &lt;code>getResolvedClasspath&lt;/code>; classpath variable
+ * entries also can be resolved individually using
+ * &lt;code>JavaCore#getClasspathVariable&lt;/code>).
+ * &lt;/p>
+ * &lt;p>
+ * Note that no check is performed whether the project has the Java nature
+ * set, allowing an existing &lt;code>.classpath&lt;/code> file to be considered
+ * independantly (unlike &lt;code>getRawClasspath&lt;/code> which requires the
+ * Java nature to be associated with the project).
+ * &lt;/p>
+ * &lt;p>
+ * In order to manually force a project classpath refresh, one can simply
+ * assign the project classpath using the result of this method, as follows:
+ * &lt;code>proj.setRawClasspath(proj.readRawClasspath(), proj.readOutputLocation(), monitor)&lt;/code>
+ * (note that the &lt;code>readRawClasspath/readOutputLocation&lt;/code> methods
+ * could return &lt;code>null&lt;/code>).
+ * &lt;/p>
+ *
+ * @return the raw classpath from disk for the project, as a list of
+ * classpath entries
+ * @see #getRawClasspath()
+ * @see IClasspathEntry
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TMPMoGHaEeCIr_fxSkYSJA" type="_j4GRkGEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TMYWkWHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TMYWkGHaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TMiHkGHaEeCIr_fxSkYSJA" name="setOption">
+ <ownedComment xmi:id="_TMiHkWHaEeCIr_fxSkYSJA">
+ <body>
+ * Helper method for setting one option value only.
+ *&lt;p>
+ * Equivalent to:
+ * &lt;pre>
+ * Map options = this.getOptions(false);
+ * map.put(optionName, optionValue);
+ * this.setOptions(map)
+ * &lt;/pre>
+ * &lt;p>
+ * For a complete description of the configurable options, see &lt;code>JavaCore#getDefaultOptions&lt;/code>.
+ * &lt;/p>
+ *
+ * @param optionName the name of an option
+ * @param optionValue the value of the option to set. If &lt;code>null&lt;/code>, then the option
+ * is removed from project preferences.
+ * @throws NullPointerException if &lt;code>optionName&lt;/code> is &lt;code>null&lt;/code>
+ * (see {@link org.osgi.service.prefs.Preferences#put(String, String)}).
+ * @see JavaCore#getDefaultOptions()
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TMiHkmHaEeCIr_fxSkYSJA" name="optionName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_TMrRgGHaEeCIr_fxSkYSJA" name="optionValue" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TMrRgWHaEeCIr_fxSkYSJA" name="setOptions">
+ <ownedComment xmi:id="_TMrRgmHaEeCIr_fxSkYSJA">
+ <body>
+ * Sets the project custom options. All and only the options explicitly included in the given table
+ * are remembered; all previous option settings are forgotten, including ones not explicitly
+ * mentioned.
+ * &lt;p>
+ * For a complete description of the configurable options, see &lt;code>JavaCore#getDefaultOptions&lt;/code>.
+ * &lt;/p>
+ *
+ * @param newOptions the new options (key type: &lt;code>String&lt;/code>; value type: &lt;code>String&lt;/code>),
+ * or &lt;code>null&lt;/code> to flush all custom options (clients will automatically get the global JavaCore options).
+ * @see JavaCore#getDefaultOptions()
+ * @since 2.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TMrRg2HaEeCIr_fxSkYSJA" name="newOptions" type="_l1aS0WEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TM1CgGHaEeCIr_fxSkYSJA" name="setOutputLocation">
+ <ownedComment xmi:id="_TM1CgWHaEeCIr_fxSkYSJA">
+ <body>
+ * Sets the default output location of this project to the location
+ * described by the given workspace-relative absolute path.
+ * &lt;p>
+ * The default output location is where class files are ordinarily generated
+ * (and resource files, copied). Each source classpath entries can also
+ * specify an output location for the generated class files (and copied
+ * resource files) corresponding to compilation units under that source
+ * folder. This makes it possible to arrange that generated class files for
+ * different source folders to end up in different output folders, and not
+ * necessarily the default output folder. This means that the generated
+ * class files for the project may end up scattered across several folders,
+ * rather than all in the default output folder (which is more standard).
+ * &lt;/p>
+ *
+ * @param path the workspace-relative absolute path of the default output
+ * folder
+ * @param monitor the progress monitor
+ *
+ * @exception JavaModelException if the classpath could not be set. Reasons include:
+ * &lt;ul>
+ * &lt;li> This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;li> The path refers to a location not contained in this project (&lt;code>PATH_OUTSIDE_PROJECT&lt;/code>)
+ * &lt;li> The path is not an absolute path (&lt;code>RELATIVE_PATH&lt;/code>)
+ * &lt;li> The path is nested inside a package fragment root of this project (&lt;code>INVALID_PATH&lt;/code>)
+ * &lt;li> The output location is being modified during resource change event notification (CORE_EXCEPTION)
+ * &lt;/ul>
+ * @see #getOutputLocation()
+ * @see IClasspathEntry#getOutputLocation()
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TM1CgmHaEeCIr_fxSkYSJA" name="path" type="_j00UEmEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_TM-zgGHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TM-zgWHaEeCIr_fxSkYSJA" name="setRawClasspath">
+ <ownedComment xmi:id="_TM-zgmHaEeCIr_fxSkYSJA">
+ <body>
+ * Sets both the classpath of this project and its default output
+ * location at once. The classpath is defined using a list of classpath
+ * entries. In particular such a classpath may contain classpath variable entries.
+ * Classpath variable entries can be resolved individually ({@link JavaCore#getClasspathVariable(String)}),
+ * or the full classpath can be resolved at once using the helper method {@link #getResolvedClasspath(boolean)}.
+ * &lt;p>
+ * A classpath variable provides an indirection level for better sharing a classpath. As an example, it allows
+ * a classpath to no longer refer directly to external JARs located in some user specific location. The classpath
+ * can simply refer to some variables defining the proper locations of these external JARs.
+ * &lt;/p>&lt;p>
+ * If it is specified that this operation cannot modify resources, the .classpath file will not be written to disk
+ * and no error marker will be generated. To synchronize the .classpath with the in-memory classpath,
+ * one can use &lt;code>setRawClasspath(readRawClasspath(), true, monitor)&lt;/code>.
+ * &lt;/p>&lt;p>
+ * Setting the classpath to &lt;code>null&lt;/code> specifies a default classpath
+ * (the project root). Setting the classpath to an empty array specifies an
+ * empty classpath.
+ * &lt;/p>&lt;p>
+ * If a cycle is detected while setting this classpath (and if resources can be modified), an error marker will be added
+ * to the project closing the cycle.
+ * To avoid this problem, use {@link #hasClasspathCycle(IClasspathEntry[])}
+ * before setting the classpath.
+ * &lt;p>
+ * This operation acquires a lock on the workspace's root.
+ *
+ * @param entries a list of classpath entries
+ * @param outputLocation the default output location
+ * @param canModifyResources whether resources should be written to disk if needed
+ * @param monitor the given progress monitor
+ * @exception JavaModelException if the classpath could not be set. Reasons include:
+ * &lt;ul>
+ * &lt;li> This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;li> The classpath is being modified during resource change event notification (CORE_EXCEPTION)
+ * &lt;li> The classpath failed the validation check as defined by {@link JavaConventions#validateClasspath(IJavaProject, IClasspathEntry[], IPath)}
+ * &lt;/ul>
+ * @see IClasspathEntry
+ * @since 3.2
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TM-zg2HaEeCIr_fxSkYSJA" name="entries" type="_j4GRkGEMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TNRucGHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TNH9cGHaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_TNRucWHaEeCIr_fxSkYSJA" name="outputLocation" type="_j00UEmEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_TNbfcGHaEeCIr_fxSkYSJA" name="canModifyResources" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_TNbfcWHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TNkpYGHaEeCIr_fxSkYSJA" name="setRawClasspath">
+ <ownedComment xmi:id="_TNkpYWHaEeCIr_fxSkYSJA">
+ <body>
+ * Sets the classpath of this project using a list of classpath entries. In particular such a classpath may contain
+ * classpath variable entries. Classpath variable entries can be resolved individually ({@link JavaCore#getClasspathVariable(String)}),
+ * or the full classpath can be resolved at once using the helper method {@link #getResolvedClasspath(boolean)}.
+ * &lt;p>
+ * A classpath variable provides an indirection level for better sharing a classpath. As an example, it allows
+ * a classpath to no longer refer directly to external JARs located in some user specific location. The classpath
+ * can simply refer to some variables defining the proper locations of these external JARs.
+ * &lt;/p>&lt;p>
+ * If it is specified that this operation cannot modify resources, the .classpath file will not be written to disk
+ * and no error marker will be generated. To synchronize the .classpath with the in-memory classpath,
+ * one can use &lt;code>setRawClasspath(readRawClasspath(), true, monitor)&lt;/code>.
+ * &lt;/p>&lt;p>
+ * Setting the classpath to &lt;code>null&lt;/code> specifies a default classpath
+ * (the project root). Setting the classpath to an empty array specifies an
+ * empty classpath.
+ * &lt;/p>&lt;p>
+ * If a cycle is detected while setting this classpath (and if resources can be modified), an error marker will be added
+ * to the project closing the cycle.
+ * To avoid this problem, use {@link #hasClasspathCycle(IClasspathEntry[])}
+ * before setting the classpath.
+ * &lt;p>
+ * This operation acquires a lock on the workspace's root.
+ *
+ * @param entries a list of classpath entries
+ * @param canModifyResources whether resources should be written to disk if needed
+ * @param monitor the given progress monitor
+ * @exception JavaModelException if the classpath could not be set. Reasons include:
+ * &lt;ul>
+ * &lt;li> This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;li> The classpath is being modified during resource change event notification (CORE_EXCEPTION)
+ * &lt;li> The classpath failed the validation check as defined by {@link JavaConventions#validateClasspath(IJavaProject, IClasspathEntry[], IPath)}
+ * &lt;/ul>
+ * @see IClasspathEntry
+ * @since 3.2
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TNkpYmHaEeCIr_fxSkYSJA" name="entries" type="_j4GRkGEMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TN3kUGHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TNuaYGHaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_TN3kUWHaEeCIr_fxSkYSJA" name="canModifyResources" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_TOBVUGHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TOBVUWHaEeCIr_fxSkYSJA" name="setRawClasspath">
+ <ownedComment xmi:id="_TOBVUmHaEeCIr_fxSkYSJA">
+ <body>
+ * Works similar to {@link #setRawClasspath(IClasspathEntry[], IPath, IProgressMonitor)} and
+ * additionally allows persisting the given array of referenced entries for this project.
+ * The referenced entries and their attributes are stored in the .classpath file of this
+ * project. For details on referenced entries, see
+ * {@link JavaCore#getReferencedClasspathEntries(IClasspathEntry, IJavaProject)}
+ * and {@link IClasspathEntry#getReferencingEntry()}.
+ * &lt;p>
+ * Since the referenced entries are stored in the .classpath file, clients can store additional
+ * information that belong to these entries and retrieve them across sessions, though the referenced
+ * entries themselves may not be present in the raw classpath. By passing a &lt;code>null&lt;/code>
+ * referencedEntries, clients can choose not to modify the already persisted referenced entries,
+ * which is fully equivalent to {@link #setRawClasspath(IClasspathEntry[], IPath, IProgressMonitor)}.
+ * If an empty array is passed as referencedEntries, the already persisted referenced entries,
+ * if any, will be cleared.
+ * &lt;/p> &lt;p>
+ * If there are duplicates of a referenced entry or if any of the &lt;code>referencedEntries&lt;/code>
+ * is already present in the raw classpath(&lt;code>entries&lt;/code>) those referenced entries will
+ * be excluded and not be persisted.
+ *&lt;/p>
+ * @param entries a list of classpath entries
+ * @param referencedEntries the list of referenced classpath entries to be persisted
+ * @param outputLocation the default output location
+ * @param monitor the given progress monitor
+ * @exception JavaModelException if the classpath could not be set. Reasons include:
+ * &lt;ul>
+ * &lt;li> This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;li> The classpath is being modified during resource change event notification (CORE_EXCEPTION)
+ * &lt;li> The classpath failed the validation check as defined by {@link JavaConventions#validateClasspath(IJavaProject, IClasspathEntry[], IPath)}
+ * &lt;/ul>
+ * @see IClasspathEntry
+ * @see #getReferencedClasspathEntries()
+ * @since 3.6
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TOLGUGHaEeCIr_fxSkYSJA" name="entries" type="_j4GRkGEMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TOUQQGHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TOLGUWHaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_TOUQQWHaEeCIr_fxSkYSJA" name="referencedEntries" type="_j4GRkGEMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TOeBQWHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TOeBQGHaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_TOnyQGHaEeCIr_fxSkYSJA" name="outputLocation" type="_j00UEmEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_TOw8MGHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TOw8MWHaEeCIr_fxSkYSJA" name="getReferencedClasspathEntries">
+ <ownedComment xmi:id="_TOw8MmHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns the list of referenced classpath entries stored in the .classpath file of &lt;code>this&lt;/code>
+ * java project. Clients can store the referenced classpath entries using
+ * {@link #setRawClasspath(IClasspathEntry[], IClasspathEntry[], IPath, IProgressMonitor)}
+ * If the client has not stored any referenced entries for this project, an empty array is returned.
+ *
+ * @throws JavaModelException
+ * @return an array of referenced classpath entries stored for this java project or an empty array if none
+ * stored earlier.
+ * @since 3.6
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TOw8M2HaEeCIr_fxSkYSJA" type="_j4GRkGEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TO6tMWHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TO6tMGHaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TPD3IGHaEeCIr_fxSkYSJA" name="setRawClasspath">
+ <ownedComment xmi:id="_TPD3IWHaEeCIr_fxSkYSJA">
+ <body>
+ * Sets the classpath of this project using a list of classpath entries. In particular such a classpath may contain
+ * classpath variable entries. Classpath variable entries can be resolved individually ({@link JavaCore#getClasspathVariable(String)}),
+ * or the full classpath can be resolved at once using the helper method {@link #getResolvedClasspath(boolean)}.
+ * &lt;p>
+ * A classpath variable provides an indirection level for better sharing a classpath. As an example, it allows
+ * a classpath to no longer refer directly to external JARs located in some user specific location. The classpath
+ * can simply refer to some variables defining the proper locations of these external JARs.
+ * &lt;p>
+ * Setting the classpath to &lt;code>null&lt;/code> specifies a default classpath
+ * (the project root). Setting the classpath to an empty array specifies an
+ * empty classpath.
+ * &lt;p>
+ * If a cycle is detected while setting this classpath, an error marker will be added
+ * to the project closing the cycle.
+ * To avoid this problem, use {@link #hasClasspathCycle(IClasspathEntry[])}
+ * before setting the classpath.
+ * &lt;p>
+ * This operation acquires a lock on the workspace's root.
+ *
+ * @param entries a list of classpath entries
+ * @param monitor the given progress monitor
+ * @exception JavaModelException if the classpath could not be set. Reasons include:
+ * &lt;ul>
+ * &lt;li> This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;li> The classpath is being modified during resource change event notification (CORE_EXCEPTION)
+ * &lt;li> The classpath failed the validation check as defined by {@link JavaConventions#validateClasspath(IJavaProject, IClasspathEntry[], IPath)}
+ * &lt;/ul>
+ * @see IClasspathEntry
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TPNoIGHaEeCIr_fxSkYSJA" name="entries" type="_j4GRkGEMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TPXZIGHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TPNoIWHaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_TPXZIWHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TPgjEGHaEeCIr_fxSkYSJA" name="setRawClasspath">
+ <ownedComment xmi:id="_TPgjEWHaEeCIr_fxSkYSJA">
+ <body>
+ * Sets the both the classpath of this project and its default output
+ * location at once. The classpath is defined using a list of classpath
+ * entries. In particular, such a classpath may contain classpath variable
+ * entries. Classpath variable entries can be resolved individually (see
+ * ({@link JavaCore#getClasspathVariable(String)}), or the full classpath can be
+ * resolved at once using the helper method
+ * {@link #getResolvedClasspath(boolean)}.
+ * &lt;p>
+ * A classpath variable provides an indirection level for better sharing a
+ * classpath. As an example, it allows a classpath to no longer refer
+ * directly to external JARs located in some user specific location. The
+ * classpath can simply refer to some variables defining the proper
+ * locations of these external JARs.
+ * &lt;/p>
+ * &lt;p>
+ * Setting the classpath to &lt;code>null&lt;/code> specifies a default classpath
+ * (the project root). Setting the classpath to an empty array specifies an
+ * empty classpath.
+ * &lt;/p>
+ * &lt;p>
+ * If a cycle is detected while setting this classpath, an error marker will
+ * be added to the project closing the cycle. To avoid this problem, use
+ * {@link #hasClasspathCycle(IClasspathEntry[])} before setting
+ * the classpath.
+ * &lt;/p>
+ * &lt;p>
+ * This operation acquires a lock on the workspace's root.
+ * &lt;/p>
+ *
+ * @param entries a list of classpath entries
+ * @param monitor the progress monitor
+ * @param outputLocation the default output location
+ * @exception JavaModelException if the classpath could not be set. Reasons
+ * include:
+ * &lt;ul>
+ * &lt;li> This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;li> Two or more entries specify source roots with the same or overlapping paths (NAME_COLLISION)
+ * &lt;li> A entry of kind &lt;code>CPE_PROJECT&lt;/code> refers to this project (INVALID_PATH)
+ * &lt;li>This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;li>The output location path refers to a location not contained in this project (&lt;code>PATH_OUTSIDE_PROJECT&lt;/code>)
+ * &lt;li>The output location path is not an absolute path (&lt;code>RELATIVE_PATH&lt;/code>)
+ * &lt;li>The output location path is nested inside a package fragment root of this project (&lt;code>INVALID_PATH&lt;/code>)
+ * &lt;li> The classpath is being modified during resource change event notification (CORE_EXCEPTION)
+ * &lt;/ul>
+ * @see IClasspathEntry
+ * @since 2.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_TPgjEmHaEeCIr_fxSkYSJA" name="entries" type="_j4GRkGEMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TPqUEWHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TPqUEGHaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_TP0FEGHaEeCIr_fxSkYSJA" name="outputLocation" type="_j00UEmEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_TP0FEWHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_kkWTkGEMEeCdEc4VzBeWeQ" name="ILocalVariable">
+ <ownedComment xmi:id="_kkWTkWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Represents a local variable declared in a method or an initializer.
+ * &lt;code>ILocalVariable&lt;/code> are pseudo-elements created as the result of a &lt;code>ICodeAssist.codeSelect(...)&lt;/code>
+ * operation. They are not part of the Java model (&lt;code>exists()&lt;/code> returns whether the parent exists rather than
+ * whether the local variable exists in the parent) and they are not included in the children of an &lt;code>IMethod&lt;/code>
+ * or an &lt;code>IInitializer&lt;/code>.
+ * &lt;p>
+ * In particular such a pseudo-element should not be used as a handle. For example its name range won't be updated
+ * if the underlying source changes.
+ * &lt;/p>
+ *
+ * @since 3.0
+ * @noimplement This interface is not intended to be implemented by clients.
+ </body>
+ </ownedComment>
+ <generalization xmi:id="_kkWTkmEMEeCdEc4VzBeWeQ" general="_kO5A8GEMEeCdEc4VzBeWeQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_klF6cGEMEeCdEc4VzBeWeQ" name="IMember">
+ <ownedComment xmi:id="_klPrcGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Common protocol for Java elements that can be members of types.
+ * This set consists of &lt;code>IType&lt;/code>, &lt;code>IMethod&lt;/code>,
+ * &lt;code>IField&lt;/code>, and &lt;code>IInitializer&lt;/code>.
+ * &lt;p>
+ * The children are listed in the order in which they appear in the source or class file.
+ * &lt;/p>
+ *
+ * @noimplement This interface is not intended to be implemented by clients.
+ </body>
+ </ownedComment>
+ <generalization xmi:id="_klPrcWEMEeCdEc4VzBeWeQ" general="_kO5A8GEMEeCdEc4VzBeWeQ"/>
+ <generalization xmi:id="_4E_SgGHZEeCIr_fxSkYSJA" general="_kuCbEGEMEeCdEc4VzBeWeQ"/>
+ <generalization xmi:id="_4FJDgGHZEeCIr_fxSkYSJA" general="_kssXQGEMEeCdEc4VzBeWeQ"/>
+ <generalization xmi:id="_4FJDgWHZEeCIr_fxSkYSJA" general="_kq6OkGEMEeCdEc4VzBeWeQ"/>
+ <ownedOperation xmi:id="_4FlvcGHZEeCIr_fxSkYSJA" name="getCategories">
+ <ownedComment xmi:id="_4FlvcWHZEeCIr_fxSkYSJA">
+ <body>
+ * Returns the categories defined by this member's Javadoc. A category is the identifier
+ * following the tag &lt;code>@category&lt;/code> in the member's Javadoc.
+ * Returns an empty array if no category is defined in this member's Javadoc.
+ *
+ * @return the categories defined by this member's doc
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @since 3.2
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_4GCbYGHZEeCIr_fxSkYSJA" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_4GLlUGHZEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_4GCbYWHZEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_4GLlUWHZEeCIr_fxSkYSJA" name="getClassFile">
+ <ownedComment xmi:id="_4GLlUmHZEeCIr_fxSkYSJA">
+ <body>
+ * Returns the class file in which this member is declared, or &lt;code>null&lt;/code>
+ * if this member is not declared in a class file (for example, a source type).
+ * This is a handle-only method.
+ *
+ * @return the class file in which this member is declared, or &lt;code>null&lt;/code>
+ * if this member is not declared in a class file (for example, a source type)
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_4GVWUGHZEeCIr_fxSkYSJA" type="_j2Jw0GEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_4GfHUGHZEeCIr_fxSkYSJA" name="getCompilationUnit">
+ <ownedComment xmi:id="_4GfHUWHZEeCIr_fxSkYSJA">
+ <body>
+ * Returns the compilation unit in which this member is declared, or &lt;code>null&lt;/code>
+ * if this member is not declared in a compilation unit (for example, a binary type).
+ * This is a handle-only method.
+ *
+ * @return the compilation unit in which this member is declared, or &lt;code>null&lt;/code>
+ * if this member is not declared in a compilation unit (for example, a binary type)
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_4GfHUmHZEeCIr_fxSkYSJA" type="_j-plgGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_4GoRQGHZEeCIr_fxSkYSJA" name="getDeclaringType">
+ <ownedComment xmi:id="_4GoRQWHZEeCIr_fxSkYSJA">
+ <body>
+ * Returns the type in which this member is declared, or &lt;code>null&lt;/code>
+ * if this member is not declared in a type (for example, a top-level type).
+ * This is a handle-only method.
+ *
+ * @return the type in which this member is declared, or &lt;code>null&lt;/code>
+ * if this member is not declared in a type (for example, a top-level type)
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_4GoRQmHZEeCIr_fxSkYSJA" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_4GyCQGHZEeCIr_fxSkYSJA" name="getFlags">
+ <ownedComment xmi:id="_4GyCQWHZEeCIr_fxSkYSJA">
+ <body>
+ * Returns the modifier flags for this member. The flags can be examined using class
+ * &lt;code>Flags&lt;/code>.
+ * &lt;p>
+ * Note that only flags as indicated in the source are returned. Thus if an interface
+ * defines a method &lt;code>void myMethod();&lt;/code> the flags don't include the
+ * 'public' flag.
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return the modifier flags for this member
+ * @see Flags
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_4G7zQGHZEeCIr_fxSkYSJA" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_4G7zQWHZEeCIr_fxSkYSJA" name="getJavadocRange">
+ <ownedComment xmi:id="_4G7zQmHZEeCIr_fxSkYSJA">
+ <body>
+ * Returns the Javadoc range if this element is from source or if this element
+ * is a binary element with an attached source, null otherwise.
+ *
+ * &lt;p>If this element is from source, the javadoc range is
+ * extracted from the corresponding source.&lt;/p>
+ * &lt;p>If this element is from a binary, the javadoc is extracted from the
+ * attached source if present.&lt;/p>
+ * &lt;p>If this element's openable is not consistent, then null is returned.&lt;/p>
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return a source range corresponding to the javadoc source or &lt;code>null&lt;/code>
+ * if no source is available, this element has no javadoc comment or
+ * this element's openable is not consistent
+ * @see IOpenable#isConsistent()
+ * @since 3.2
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_4HE9MGHZEeCIr_fxSkYSJA" type="_ktlvIGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_4HE9MWHZEeCIr_fxSkYSJA" name="getOccurrenceCount">
+ <ownedComment xmi:id="_4HE9MmHZEeCIr_fxSkYSJA">
+ <body>
+ * Returns the position relative to the order this member is defined in the source.
+ * Numbering starts at 1 (thus the first occurrence is occurrence 1, not occurrence 0).
+ * &lt;p>
+ * Two members m1 and m2 that are equal (e.g. 2 fields with the same name in
+ * the same type) can be distinguished using their occurrence counts. If member
+ * m1 appears first in the source, it will have an occurrence count of 1. If member
+ * m2 appears right after member m1, it will have an occurrence count of 2.
+ * &lt;/p>&lt;p>
+ * The occurrence count can be used to distinguish initializers inside a type
+ * or anonymous types inside a method.
+ * &lt;/p>&lt;p>
+ * This is a handle-only method. The member may or may not be present.
+ * &lt;/p>
+ *
+ * @return the position relative to the order this member is defined in the source
+ * @since 3.2
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_4HE9M2HZEeCIr_fxSkYSJA" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_4HOuMGHZEeCIr_fxSkYSJA" name="getTypeRoot">
+ <ownedComment xmi:id="_4HOuMWHZEeCIr_fxSkYSJA">
+ <body>
+ * Returns the Java type root in which this member is declared.
+ * This is a handle-only method.
+ *
+ * @return the Java type root in which this member is declared.
+ * @since 3.3
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_4HOuMmHZEeCIr_fxSkYSJA" type="_kyNJYGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_4H0kEGHZEeCIr_fxSkYSJA" name="getType">
+ <ownedComment xmi:id="_4H0kEWHZEeCIr_fxSkYSJA">
+ <body>
+ * Returns the local or anonymous type declared in this source member with the given simple name and/or
+ * with the specified position relative to the order they are defined in the source.
+ * The name is empty if it is an anonymous type.
+ * Numbering starts at 1 (thus the first occurrence is occurrence 1, not occurrence 0).
+ * This is a handle-only method. The type may or may not exist.
+ * Throws a &lt;code>RuntimeException&lt;/code> if this member is not a source member.
+ *
+ * @param name the given simple name
+ * @param occurrenceCount the specified position
+ * @return the type with the given name and/or with the specified position relative to the order they are defined in the source
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_4H0kEmHZEeCIr_fxSkYSJA" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_4H-VEGHZEeCIr_fxSkYSJA" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_4H-VEWHZEeCIr_fxSkYSJA" name="occurrenceCount" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_4IIGEGHZEeCIr_fxSkYSJA" name="isBinary">
+ <ownedComment xmi:id="_4IIGEWHZEeCIr_fxSkYSJA">
+ <body>
+ * Returns whether this member is from a class file.
+ * This is a handle-only method.
+ *
+ * @return &lt;code>true&lt;/code> if from a class file, and &lt;code>false&lt;/code> if
+ * from a compilation unit
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_4IIGEmHZEeCIr_fxSkYSJA" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_klimYGEMEeCdEc4VzBeWeQ" name="IMemberValuePair">
+ <ownedComment xmi:id="_klimYWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Represents a member-value pair of an annotation.
+ * The {@link #getValue() value} is represented by an {@link Object}. To get the exact
+ * type of this object, use its {@link #getValueKind() value kind}. If this value is an array,
+ * {@link #getValue()} returns an instance of {@link Object}[] and the value kind returns
+ * the kind of the elements in this array.
+ * &lt;p>
+ * This interface is not intended to be implemented or extended by clients.
+ * &lt;/p>
+ *
+ * @since 3.4
+ </body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_klimYmEMEeCdEc4VzBeWeQ" name="K_INT" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_klsXYGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant indicating that the value kind is an &lt;code>int&lt;/code> represented by
+ * an instance of {@link Integer}.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_klsXYWEMEeCdEc4VzBeWeQ" name="K_BYTE" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_klsXYmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant indicating that the value kind is a &lt;code>byte&lt;/code> represented by
+ * an instance of {@link Byte}.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kl1hUGEMEeCdEc4VzBeWeQ" name="K_SHORT" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kl1hUWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant indicating that the value kind is a &lt;code>short&lt;/code> represented by
+ * an instance of {@link Short}.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kl1hUmEMEeCdEc4VzBeWeQ" name="K_CHAR" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kl1hU2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant indicating that the value kind is a &lt;code>char&lt;/code> represented by
+ * an instance of {@link Character}.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kl1hVGEMEeCdEc4VzBeWeQ" name="K_FLOAT" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kl_SUGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant indicating that the value kind is a &lt;code>float&lt;/code> represented by
+ * an instance of {@link Float}.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kl_SUWEMEeCdEc4VzBeWeQ" name="K_DOUBLE" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kl_SUmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant indicating that the value kind is a &lt;code>double&lt;/code> represented by
+ * an instance of {@link Double}.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kl_SU2EMEeCdEc4VzBeWeQ" name="K_LONG" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kmSNQGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant indicating that the value kind is a &lt;code>long&lt;/code> represented by
+ * an instance of {@link Long}.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kmSNQWEMEeCdEc4VzBeWeQ" name="K_BOOLEAN" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kmSNQmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant indicating that the value kind is a &lt;code>boolean&lt;/code> represented by
+ * an instance of {@link Boolean}.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kmSNQ2EMEeCdEc4VzBeWeQ" name="K_STRING" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kmSNRGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant indicating that the value kind is a {@link String} represented by
+ * the corresponding {@link String}.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kmb-QGEMEeCdEc4VzBeWeQ" name="K_ANNOTATION" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kmb-QWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant indicating that the value kind is an annotation represented by
+ * an instance of {@link IAnnotation}.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kmb-QmEMEeCdEc4VzBeWeQ" name="K_CLASS" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kmb-Q2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant indicating that the value kind is a {@link Class} represented by
+ * the name of the class (i.e. a {@link String}. If the member-value pair is coming from
+ * a compilation unit, this is either a simple name (e.g. for &lt;code>MyType.class&lt;/code>,
+ * the name is &quot;MyType&quot;), or a qualified name (e.g. for &lt;code>x.y.MyType.MyNestedType.class&lt;/code>,
+ * the name is &quot;x.y.MyType.MyNestedType&quot;). If the member-value pair is coming from a class file, this is
+ * always a fully qualified name.
+ * &lt;p>
+ * Note that one can use {@link IType#resolveType(String)} and e.g.
+ * {@link IJavaProject#findType(String, String, org.eclipse.core.runtime.IProgressMonitor)}
+ * to find the corresponding {@link IType}.
+ * &lt;/p>
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kmlvQGEMEeCdEc4VzBeWeQ" name="K_QUALIFIED_NAME" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kmu5MGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant indicating that the value is a qualified name represented by a
+ * {@link String}. The qualified name refers to an enum constant or another
+ * compile-time constant if the code is correct (e.g. &quot;MyEnum.FIRST&quot;).
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kmu5MWEMEeCdEc4VzBeWeQ" name="K_SIMPLE_NAME" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_kmu5MmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant indicating that the value is a simple name represented by a
+ * {@link String}. The simple name refers to an enum constant or another
+ * compile-time constant if the code is correct (e.g. &quot;FIRST&quot; when there is
+ * a static import for &quot;MyEnum.FIRST&quot;).
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kmu5M2EMEeCdEc4VzBeWeQ" name="K_UNKNOWN" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_km4qMGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Constant indicating that the value kind is unknown at this stage. The value is unknown in the
+ * following cases:
+ * &lt;ul>
+ * &lt;li>the value is an expression that would need to be further analyzed to determine its kind. For
+ * example, in &lt;code>@MyAnnot(1 + 2.3)&lt;/code> the kind of the expression &quot;1 + 2.3&quot; is
+ * unknown&lt;/li>
+ * &lt;li>the value is an array of size 0, e.g. &lt;code>@MyAnnot({})&lt;/code>&lt;/li>
+ * &lt;li>the value is an array that contains at least one expression that would need to be further
+ * analyzed to determine its kind. For example, in &lt;code>@MyAnnot({3.4, 1 + 2.3})&lt;/code>,
+ * the kind of the second element &quot;1 + 2.3&quot; is unknown.&lt;/li>
+ * &lt;li>the value is an array that contains heterogeneous values, e.g.
+ * &lt;code>@MyAnnot({1, 2.3, &quot;abc&quot;})&lt;/code>&lt;/li>
+ * &lt;/ul>
+ * If the value kind is unknown, the returned value is always either &lt;code>null&lt;/code>, or an
+ * array containing {@link Object}s and/or &lt;code>null&lt;/code>s for unknown elements.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_km4qMWEMEeCdEc4VzBeWeQ" name="getMemberName">
+ <ownedComment xmi:id="_km4qMmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the member's name of this member-value pair.
+ *
+ * @return the member's name of this member-value pair.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_km4qM2EMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_km4qNGEMEeCdEc4VzBeWeQ" name="getValue">
+ <ownedComment xmi:id="_km4qNWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the value of this member-value pair. The type of this value
+ * is function of this member-value pair's {@link #getValueKind() value kind}. It is an
+ * instance of {@link Object}[] if the value is an array.
+ * &lt;p>
+ * If the value kind is {@link #K_UNKNOWN} and the value is not an array, then the
+ * value is &lt;code>null&lt;/code>.
+ * If the value kind is {@link #K_UNKNOWN} and the value is an array, then the
+ * value is an array containing {@link Object}s and/or &lt;code>null&lt;/code>s for
+ * unknown elements.
+ * See {@link #K_UNKNOWN} for more details.
+ * &lt;/p>
+ * @return the value of this member-value pair.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_km4qNmEMEeCdEc4VzBeWeQ" type="_kOcVAmEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_knB0IGEMEeCdEc4VzBeWeQ" name="getValueKind">
+ <ownedComment xmi:id="_knB0IWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the value kind of this member-value pair. This indicates the instance of
+ * the returned {@link #getValue() value}, or the instance of the elements if the value
+ * is an array. The value kind is one of the following constants:
+ * {@link #K_ANNOTATION}, {@link #K_BOOLEAN}, {@link #K_BYTE}, {@link #K_CHAR},
+ * {@link #K_CLASS}, {@link #K_DOUBLE}, {@link #K_FLOAT}, {@link #K_INT}, {@link #K_LONG},
+ * {@link #K_QUALIFIED_NAME}, {@link #K_SIMPLE_NAME}, {@link #K_SHORT}, {@link #K_STRING},
+ * {@link #K_UNKNOWN}.
+ *
+ * @return the value kind of this member-value pair
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_knB0ImEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_knoREGEMEeCdEc4VzBeWeQ" name="IMethod">
+ <ownedComment xmi:id="_knyCEGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Represents a method (or constructor) declared in a type.
+ *
+ * @noimplement This interface is not intended to be implemented by clients.
+ </body>
+ </ownedComment>
+ <generalization xmi:id="_knyCEWEMEeCdEc4VzBeWeQ" general="_klF6cGEMEeCdEc4VzBeWeQ"/>
+ <generalization xmi:id="_knyCEmEMEeCdEc4VzBeWeQ" general="_j09eAGEMEeCdEc4VzBeWeQ"/>
+ <ownedOperation xmi:id="_knyCE2EMEeCdEc4VzBeWeQ" name="getDefaultValue">
+ <ownedComment xmi:id="_knyCFGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns a {@link IMemberValuePair member value pair} representing the default
+ * value of this method if any, or &lt;code>null&lt;/code> if this method's parent is
+ * not an annotation type, or else if this method does not have a default value.
+ * &lt;p>
+ * Note that {@link IMemberValuePair#getValue()} might return &lt;code>null&lt;/code>.
+ * Please see this method for more details.
+ * &lt;/p>
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return a member pair value if any, or &lt;code>null&lt;/code> if none
+ * @since 3.4
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_knyCFWEMEeCdEc4VzBeWeQ" type="_klimYGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_knyCFmEMEeCdEc4VzBeWeQ" name="getElementName">
+ <ownedComment xmi:id="_knyCF2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the simple name of this method.
+ * For a constructor, this returns the simple name of the declaring type.
+ * Note: This holds whether the constructor appears in a source or binary type
+ * (even though class files internally define constructor names to be &lt;code>&quot;&amp;lt;init&amp;gt;&quot;&lt;/code>).
+ * For the class initialization methods in binary types, this returns
+ * the special name &lt;code>&quot;&amp;lt;clinit&amp;gt;&quot;&lt;/code>.
+ * This is a handle-only method.
+ * @return the simple name of this method
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kn7MAGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kn7MAWEMEeCdEc4VzBeWeQ" name="getExceptionTypes">
+ <ownedComment xmi:id="_kn7MAmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the type signatures of the exceptions this method throws,
+ * in the order declared in the source. Returns an empty array
+ * if this method throws no exceptions.
+ * &lt;p>
+ * For example, a source method declaring &lt;code>&quot;throws IOException&quot;&lt;/code>,
+ * would return the array &lt;code>{&quot;QIOException;&quot;}&lt;/code>.
+ * &lt;/p>
+ * &lt;p>
+ * The type signatures may be either unresolved (for source types)
+ * or resolved (for binary types), and either basic (for basic types)
+ * or rich (for parameterized types). See {@link Signature} for details.
+ * &lt;/p>
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return the type signatures of the exceptions this method throws,
+ * in the order declared in the source, an empty array if this method throws no exceptions
+ * @see Signature
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kn7MA2EMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kn7MBWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kn7MBGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_koE9AGEMEeCdEc4VzBeWeQ" name="getTypeParameterSignatures">
+ <ownedComment xmi:id="_koE9AWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the formal type parameter signatures for this method.
+ * Returns an empty array if this method has no formal type parameters.
+ * &lt;p>
+ * The formal type parameter signatures may be either unresolved (for source
+ * types) or resolved (for binary types). See {@link Signature} for details.
+ * &lt;/p>
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return the formal type parameter signatures of this method,
+ * in the order declared in the source, an empty array if none
+ * @see Signature
+ * @since 3.0
+ * @deprecated Use {@link #getTypeParameters()} instead
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_koE9AmEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_koE9BGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_koE9A2EMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_koOG8GEMEeCdEc4VzBeWeQ" name="getTypeParameters">
+ <ownedComment xmi:id="_koOG8WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the formal type parameters for this method.
+ * Returns an empty array if this method has no formal type parameters.
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return the formal type parameters of this method,
+ * in the order declared in the source, an empty array if none
+ * @since 3.1
+ </body>
+ </ownedComment>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_koX38GEMEeCdEc4VzBeWeQ" name="IOpenable">
+ <ownedComment xmi:id="_koX38WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Common protocol for Java elements that must be opened before they can be
+ * navigated or modified. Opening a textual element (such as a compilation unit)
+ * involves opening a buffer on its contents. While open, any changes to the buffer
+ * can be reflected in the element's structure;
+ * see {@link #isConsistent} and {@link #makeConsistent(IProgressMonitor)}.
+ * &lt;p>
+ * To reduce complexity in clients, elements are automatically opened
+ * by the Java model as element properties are accessed. The Java model maintains
+ * an LRU cache of open elements, and automatically closes elements as they
+ * are swapped out of the cache to make room for other elements. Elements with
+ * unsaved changes are never removed from the cache, and thus, if the client
+ * maintains many open elements with unsaved
+ * changes, the LRU cache can grow in size (in this case the cache is not
+ * bounded). However, as elements are saved, the cache will shrink back to its
+ * original bounded size.
+ * &lt;/p>
+ * &lt;p>
+ * To open an element, all openable parent elements must be open.
+ * The Java model automatically opens parent elements, as it automatically opens elements.
+ * Opening an element may provide access to direct children and other descendants,
+ * but does not automatically open any descendents which are themselves {@link IOpenable}.
+ * For example, opening a compilation unit provides access to all its constituent elements,
+ * but opening a package fragment does not open all compilation units in the package fragment.
+ * &lt;/p>
+ *
+ * @noimplement This interface is not intended to be implemented by clients.
+ </body>
+ </ownedComment>
+ <ownedOperation xmi:id="_koX38mEMEeCdEc4VzBeWeQ" name="close" visibility="public">
+ <ownedComment xmi:id="_koX382EMEeCdEc4VzBeWeQ">
+ <body>
+ * Closes this element and its buffer (if any).
+ * Closing an element which is not open has no effect.
+ *
+ * &lt;p>Note: although {@link #close} is exposed in the API, clients are
+ * not expected to open and close elements - the Java model does this automatically
+ * as elements are accessed.
+ *
+ * @exception JavaModelException if an error occurs closing this element
+ </body>
+ </ownedComment>
+ </ownedOperation>
+ <ownedOperation xmi:id="_koX39GEMEeCdEc4VzBeWeQ" name="findRecommendedLineSeparator" visibility="public">
+ <ownedComment xmi:id="_koX39WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Finds and returns the recommended line separator for this element.
+ * The element's buffer is first searched and the first line separator in this buffer is returned if any.
+ * Otherwise the preference {@link org.eclipse.core.runtime.Platform#PREF_LINE_SEPARATOR}
+ * on this element's project or workspace is returned.
+ * Finally if no such preference is set, the system line separator is returned.
+ *
+ * @return the recommended line separator for this element
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @since 3.2
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_koX39mEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_koho8GEMEeCdEc4VzBeWeQ" name="getBuffer" visibility="public">
+ <ownedComment xmi:id="_koho8WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the buffer opened for this element, or &lt;code>null&lt;/code>
+ * if this element does not have a buffer.
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return the buffer opened for this element, or &lt;code>null&lt;/code>
+ * if this element does not have a buffer
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_koho8mEMEeCdEc4VzBeWeQ" type="_j1aJ8GEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_koho82EMEeCdEc4VzBeWeQ" name="hasUnsavedChanges">
+ <ownedComment xmi:id="_koho9GEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns &lt;code>true&lt;/code> if this element is open and:
+ * &lt;ul>
+ * &lt;li>its buffer has unsaved changes, or
+ * &lt;li>one of its descendants has unsaved changes, or
+ * &lt;li>a working copy has been created on one of this
+ * element's children and has not yet destroyed
+ * &lt;/ul>
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return &lt;code>true&lt;/code> if this element is open and:
+ * &lt;ul>
+ * &lt;li>its buffer has unsaved changes, or
+ * &lt;li>one of its descendants has unsaved changes, or
+ * &lt;li>a working copy has been created on one of this
+ * element's children and has not yet destroyed
+ * &lt;/ul>
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_koho9WEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_koqy4GEMEeCdEc4VzBeWeQ" name="isConsistent">
+ <ownedComment xmi:id="_koqy4WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether the element is consistent with its underlying resource or buffer.
+ * The element is consistent when opened, and is consistent if the underlying resource
+ * or buffer has not been modified since it was last consistent.
+ *
+ * &lt;p>NOTE: Child consistency is not considered. For example, a package fragment
+ * responds &lt;code>true&lt;/code> when it knows about all of its
+ * compilation units present in its underlying folder. However, one or more of
+ * the compilation units could be inconsistent.
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return true if the element is consistent with its underlying resource or buffer, false otherwise.
+ * @see IOpenable#makeConsistent(IProgressMonitor)
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_koqy4mEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_koqy42EMEeCdEc4VzBeWeQ" name="isOpen">
+ <ownedComment xmi:id="_koqy5GEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether this openable is open. This is a handle-only method.
+ * @return true if this openable is open, false otherwise
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_koqy5WEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_koqy5mEMEeCdEc4VzBeWeQ" name="makeConsistent">
+ <ownedComment xmi:id="_koqy52EMEeCdEc4VzBeWeQ">
+ <body>
+ * Makes this element consistent with its underlying resource or buffer
+ * by updating the element's structure and properties as necessary.
+ *&lt;p>
+ * Note: Using this functionality on a working copy will interfere with any
+ * subsequent reconciling operation. Indeed, the next
+ * {@link ICompilationUnit#reconcile(int, boolean, WorkingCopyOwner, IProgressMonitor)} or
+ * {@link ICompilationUnit#reconcile(int, boolean, boolean, WorkingCopyOwner, IProgressMonitor)}
+ * operation will not account for changes which occurred before an
+ * explicit use of {@link #makeConsistent(IProgressMonitor)}
+ * &lt;p>
+ * @param progress the given progress monitor
+ * @exception JavaModelException if the element is unable to access the contents
+ * of its underlying resource. Reasons include:
+ * &lt;ul>
+ * &lt;li>This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;/ul>
+ * @see IOpenable#isConsistent()
+ * @see ICompilationUnit#reconcile(int, boolean, WorkingCopyOwner, IProgressMonitor)
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_koqy6GEMEeCdEc4VzBeWeQ" name="progress" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ko0j4GEMEeCdEc4VzBeWeQ" name="open" visibility="public">
+ <ownedComment xmi:id="_ko0j4WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Opens this element and all parent elements that are not already open.
+ * For compilation units, a buffer is opened on the contents of the underlying resource.
+ *
+ * &lt;p>Note: although {@link #open} is exposed in the API, clients are
+ * not expected to open and close elements - the Java model does this automatically
+ * as elements are accessed.
+ *
+ * @param progress the given progress monitor
+ * @exception JavaModelException if an error occurs accessing the contents
+ * of its underlying resource. Reasons include:
+ * &lt;ul>
+ * &lt;li>This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;/ul>
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_ko0j4mEMEeCdEc4VzBeWeQ" name="progress" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ko-U4GEMEeCdEc4VzBeWeQ" name="save" visibility="public">
+ <ownedComment xmi:id="_ko-U4WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Saves any changes in this element's buffer to its underlying resource
+ * via a workspace resource operation. This has no effect if the element has no underlying
+ * buffer, or if there are no unsaved changed in the buffer.
+ * &lt;p>
+ * The &lt;code>force&lt;/code> parameter controls how this method deals with
+ * cases where the workbench is not completely in sync with the local file system.
+ * If &lt;code>false&lt;/code> is specified, this method will only attempt
+ * to overwrite a corresponding file in the local file system provided
+ * it is in sync with the workbench. This option ensures there is no
+ * unintended data loss; it is the recommended setting.
+ * However, if &lt;code>true&lt;/code> is specified, an attempt will be made
+ * to write a corresponding file in the local file system,
+ * overwriting any existing one if need be.
+ * In either case, if this method succeeds, the resource will be marked
+ * as being local (even if it wasn't before).
+ * &lt;p>
+ * As a result of this operation, the element is consistent with its underlying
+ * resource or buffer.
+ *
+ * @param progress the given progress monitor
+ * @param force it controls how this method deals with
+ * cases where the workbench is not completely in sync with the local file system
+ * @exception JavaModelException if an error occurs accessing the contents
+ * of its underlying resource. Reasons include:
+ * &lt;ul>
+ * &lt;li>This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;li>This Java element is read-only (READ_ONLY)&lt;/li>
+ * &lt;/ul>
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kpaZwGEMEeCdEc4VzBeWeQ" name="progress" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kpkKwGEMEeCdEc4VzBeWeQ" name="force" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_kqKnsGEMEeCdEc4VzBeWeQ" name="IPackageDeclaration">
+ <ownedComment xmi:id="_kqKnsWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Represents a package declaration in Java compilation unit.
+ *
+ * @noimplement This interface is not intended to be implemented by clients.
+ </body>
+ </ownedComment>
+ <generalization xmi:id="_kqKnsmEMEeCdEc4VzBeWeQ" general="_kO5A8GEMEeCdEc4VzBeWeQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_kqTxoGEMEeCdEc4VzBeWeQ" name="IPackageFragment">
+ <ownedComment xmi:id="_kqTxoWEMEeCdEc4VzBeWeQ">
+ <body>
+ * A package fragment is a portion of the workspace corresponding to an entire package,
+ * or to a portion thereof. The distinction between a package fragment and a package
+ * is that a package with some name is the union of all package fragments in the class path
+ * which have the same name.
+ * &lt;p>
+ * Package fragments elements need to be opened before they can be navigated or manipulated.
+ * The children are of type &lt;code>ICompilationUnit&lt;/code> (representing a source file) or
+ * &lt;code>IClassFile&lt;/code> (representing a binary class file).
+ * The children are listed in no particular order.
+ * &lt;/p>
+ *
+ * @noimplement This interface is not intended to be implemented by clients.
+ </body>
+ </ownedComment>
+ <generalization xmi:id="_cQyWUGHaEeCIr_fxSkYSJA" general="_kq6OkGEMEeCdEc4VzBeWeQ"/>
+ <generalization xmi:id="_cQyWUWHaEeCIr_fxSkYSJA" general="_kO5A8GEMEeCdEc4VzBeWeQ"/>
+ <generalization xmi:id="_cQyWUmHaEeCIr_fxSkYSJA" general="_koX38GEMEeCdEc4VzBeWeQ"/>
+ <generalization xmi:id="_cQ7gQGHaEeCIr_fxSkYSJA" general="_kssXQGEMEeCdEc4VzBeWeQ"/>
+ <ownedAttribute xmi:id="_cQ7gQWHaEeCIr_fxSkYSJA" name="DEFAULT_PACKAGE_NAME" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_cRFRQGHaEeCIr_fxSkYSJA">
+ <body>
+ * &lt;p>
+ * The name of package fragment for the default package (value: the empty
+ * string, &lt;code>&quot;&quot;&lt;/code>).
+ * &lt;/p>
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_cRObMGHaEeCIr_fxSkYSJA" name="containsJavaResources">
+ <ownedComment xmi:id="_cRObMWHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns whether this fragment contains at least one Java resource.
+ * @return true if this fragment contains at least one Java resource, false otherwise
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_cRYMMGHaEeCIr_fxSkYSJA" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_cRYMMWHaEeCIr_fxSkYSJA" name="createCompilationUnit">
+ <ownedComment xmi:id="_cRYMMmHaEeCIr_fxSkYSJA">
+ <body>
+ * Creates and returns a compilation unit in this package fragment
+ * with the specified name and contents. No verification is performed
+ * on the contents.
+ *
+ * &lt;p>It is possible that a compilation unit with the same name already exists in this
+ * package fragment.
+ * The value of the &lt;code>force&lt;/code> parameter affects the resolution of
+ * such a conflict:&lt;ul>
+ * &lt;li> &lt;code>true&lt;/code> - in this case the compilation is created with the new contents&lt;/li>
+ * &lt;li> &lt;code>false&lt;/code> - in this case a &lt;code>JavaModelException&lt;/code> is thrown&lt;/li>
+ * &lt;/ul>
+ *
+ * @param contents the given contents
+ * @param force specify how to handle conflict is the same name already exists
+ * @param monitor the given progress monitor
+ * @param name the given name
+ * @exception JavaModelException if the element could not be created. Reasons include:
+ * &lt;ul>
+ * &lt;li> This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;li> A &lt;code>CoreException&lt;/code> occurred while creating an underlying resource
+ * &lt;li> The name is not a valid compilation unit name (INVALID_NAME)
+ * &lt;li> The contents are &lt;code>null&lt;/code> (INVALID_CONTENTS)
+ * &lt;/ul>
+ * @return a compilation unit in this package fragment
+ * with the specified name and contents
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_cRh9MGHaEeCIr_fxSkYSJA" type="_j-plgGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_cRh9MWHaEeCIr_fxSkYSJA" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_cRrHIGHaEeCIr_fxSkYSJA" name="contents" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_cR04IGHaEeCIr_fxSkYSJA" name="force" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_cR04IWHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_cR-pIGHaEeCIr_fxSkYSJA" name="getClassFile">
+ <ownedComment xmi:id="_cR-pIWHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns the class file with the specified name
+ * in this package (for example, &lt;code>&quot;Object.class&quot;&lt;/code>).
+ * The &quot;.class&quot; suffix is required.
+ * This is a handle-only method. The class file may or may not be present.
+ * @param name the given name
+ * @return the class file with the specified name in this package
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_cR-pImHaEeCIr_fxSkYSJA" type="_j2Jw0GEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_cSHzEGHaEeCIr_fxSkYSJA" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_cSRkEGHaEeCIr_fxSkYSJA" name="getClassFiles">
+ <ownedComment xmi:id="_cSRkEWHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns all of the class files in this package fragment.
+ *
+ * &lt;p>Note: it is possible that a package fragment contains only
+ * compilation units (in other words, its kind is &lt;code>K_SOURCE&lt;/code>), in
+ * which case this method returns an empty collection.
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return all of the class files in this package fragment
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_cSRkEmHaEeCIr_fxSkYSJA" type="_j2Jw0GEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_cSauAGHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cSRkE2HaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_cSauAWHaEeCIr_fxSkYSJA" name="getCompilationUnit">
+ <ownedComment xmi:id="_cSkfAGHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns the compilation unit with the specified name
+ * in this package (for example, &lt;code>&quot;Object.java&quot;&lt;/code>).
+ * The name has to be a valid compilation unit name.
+ * This is a handle-only method. The compilation unit may or may not be present.
+ *
+ * @param name the given name
+ * @return the compilation unit with the specified name in this package
+ * @see JavaConventions#validateCompilationUnitName(String name, String sourceLevel, String complianceLevel)
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_cSkfAWHaEeCIr_fxSkYSJA" type="_j-plgGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_cSkfAmHaEeCIr_fxSkYSJA" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_cSuQAGHaEeCIr_fxSkYSJA" name="getCompilationUnits">
+ <ownedComment xmi:id="_cSuQAWHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns all of the compilation units in this package fragment.
+ *
+ * &lt;p>Note: it is possible that a package fragment contains only
+ * class files (in other words, its kind is &lt;code>K_BINARY&lt;/code>), in which
+ * case this method returns an empty collection.
+ * &lt;/p>
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return all of the compilation units in this package fragment
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_cSuQAmHaEeCIr_fxSkYSJA" type="_j-plgGEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_cS3Z8WHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cS3Z8GHaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_cTd24GHaEeCIr_fxSkYSJA" name="getCompilationUnits">
+ <ownedComment xmi:id="_cTd24WHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns all of the compilation units in this package fragment that are
+ * in working copy mode and that have the given owner.
+ * &lt;p>
+ * Only existing working copies are returned. So a compilation unit handle that has no
+ * corresponding resource on disk will be included if and only if is in working copy mode.
+ * &lt;/p>
+ * &lt;p>Note: it is possible that a package fragment contains only
+ * class files (in other words, its kind is &lt;code>K_BINARY&lt;/code>), in which
+ * case this method returns an empty collection.
+ * &lt;/p>
+ *
+ * @param owner the owner of the returned compilation units
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return all of the compilation units in this package fragment
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_cTd24mHaEeCIr_fxSkYSJA" type="_j-plgGEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_cTwx0GHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cTnA0GHaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_cTwx0WHaEeCIr_fxSkYSJA" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_cT6i0GHaEeCIr_fxSkYSJA" name="getElementName">
+ <ownedComment xmi:id="_cT6i0WHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns the dot-separated package name of this fragment, for example
+ * &lt;code>&quot;java.lang&quot;&lt;/code>, or &lt;code>&quot;&quot;&lt;/code> (the empty string),
+ * for the default package.
+ *
+ * @return the dot-separated package name of this fragment
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_cT6i0mHaEeCIr_fxSkYSJA" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_cUDswGHaEeCIr_fxSkYSJA" name="getKind">
+ <ownedComment xmi:id="_cUDswWHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns this package fragment's root kind encoded as an integer.
+ * A package fragment can contain source files (i.e. files with one of
+ * the {@link JavaCore#getJavaLikeExtensions() Java-like extensions}),
+ * or &lt;code>.class&lt;/code> files. This is a convenience method.
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return this package fragment's root kind encoded as an integer
+ * @see IPackageFragmentRoot#K_SOURCE
+ * @see IPackageFragmentRoot#K_BINARY
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_cUDswmHaEeCIr_fxSkYSJA" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_cUDsw2HaEeCIr_fxSkYSJA" name="getNonJavaResources">
+ <ownedComment xmi:id="_cUDsxGHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns an array of non-Java resources contained in this package fragment.
+ * &lt;p>
+ * Non-Java resources includes other files and folders located in the same
+ * directory as the compilation units or class files for this package
+ * fragment. Source files excluded from this package by virtue of
+ * inclusion/exclusion patterns on the corresponding source classpath entry
+ * are considered non-Java resources and will appear in the result
+ * (possibly in a folder).
+ * &lt;/p>&lt;p>
+ * Since 3.3, if this package fragment is inside an archive, the non-Java resources
+ * are a tree of {@link IJarEntryResource}s. One can navigate this tree using
+ * the {@link IJarEntryResource#getChildren()} and
+ * {@link IJarEntryResource#getParent()} methods.
+ * &lt;/p>
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return an array of non-Java resources (&lt;code>IFile&lt;/code>s,
+ * &lt;code>IFolder&lt;/code>s, or &lt;code>IStorage&lt;/code>s if the
+ * package fragment is in an archive) contained in this package
+ * fragment
+ * @see IClasspathEntry#getInclusionPatterns()
+ * @see IClasspathEntry#getExclusionPatterns()
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_cUNdwGHaEeCIr_fxSkYSJA" type="_kOcVAmEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_cUXOwGHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cUNdwWHaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_cUgYsGHaEeCIr_fxSkYSJA" name="hasSubpackages">
+ <ownedComment xmi:id="_cUgYsWHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns whether this package fragment's name is
+ * a prefix of other package fragments in this package fragment's
+ * root.
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return true if this package fragment's name is a prefix of other package fragments in this package fragment's root, false otherwise
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_cUgYsmHaEeCIr_fxSkYSJA" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_cUgYs2HaEeCIr_fxSkYSJA" name="isDefaultPackage">
+ <ownedComment xmi:id="_cUgYtGHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns whether this package fragment is a default package.
+ * This is a handle-only method.
+ *
+ * @return true if this package fragment is a default package
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_cUqJsGHaEeCIr_fxSkYSJA" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_kqmskGEMEeCdEc4VzBeWeQ" name="IPackageFragmentRoot">
+ <ownedComment xmi:id="_kqmskWEMEeCdEc4VzBeWeQ">
+ <body>
+ * A package fragment root contains a set of package fragments.
+ * It corresponds to an underlying resource which is either a folder,
+ * JAR, or zip. In the case of a folder, all descendant folders represent
+ * package fragments. For a given child folder representing a package fragment,
+ * the corresponding package name is composed of the folder names between the folder
+ * for this root and the child folder representing the package, separated by '.'.
+ * In the case of a JAR or zip, the contents of the archive dictates
+ * the set of package fragments in an analogous manner.
+ * Package fragment roots need to be opened before they can be navigated or manipulated.
+ * The children are of type &lt;code>IPackageFragment&lt;/code>, and are in no particular order.
+ *
+ * @noimplement This interface is not intended to be implemented by clients.
+ </body>
+ </ownedComment>
+ <generalization xmi:id="_fa13gGHaEeCIr_fxSkYSJA" general="_kq6OkGEMEeCdEc4VzBeWeQ"/>
+ <generalization xmi:id="_fa13gWHaEeCIr_fxSkYSJA" general="_kO5A8GEMEeCdEc4VzBeWeQ"/>
+ <generalization xmi:id="_fa_ogGHaEeCIr_fxSkYSJA" general="_koX38GEMEeCdEc4VzBeWeQ"/>
+ <ownedAttribute xmi:id="_fa_ogWHaEeCIr_fxSkYSJA" name="K_SOURCE" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_fbIycGHaEeCIr_fxSkYSJA">
+ <body>
+ * Kind constant for a source path root. Indicates this root
+ * only contains source files.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_fbSjcGHaEeCIr_fxSkYSJA" name="K_BINARY" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_fbcUcGHaEeCIr_fxSkYSJA">
+ <body>
+ * Kind constant for a binary path root. Indicates this
+ * root only contains binary files.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_fbcUcWHaEeCIr_fxSkYSJA" name="DEFAULT_PACKAGEROOT_PATH" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_fbleYGHaEeCIr_fxSkYSJA">
+ <body>
+ * Empty root path
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_fbleYWHaEeCIr_fxSkYSJA" name="NO_RESOURCE_MODIFICATION" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_fbvPYGHaEeCIr_fxSkYSJA">
+ <body>
+ * Update model flag constant (bit mask value 1) indicating that the operation
+ * is to not copy/move/delete the package fragment root resource.
+ * @since 2.1
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_fbvPYWHaEeCIr_fxSkYSJA" name="ORIGINATING_PROJECT_CLASSPATH" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_fb4ZUGHaEeCIr_fxSkYSJA">
+ <body>
+ * Update model flag constant (bit mask value 2) indicating that the operation
+ * is to update the classpath of the originating project.
+ * @since 2.1
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_fb4ZUWHaEeCIr_fxSkYSJA" name="OTHER_REFERRING_PROJECTS_CLASSPATH" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_fcCKUGHaEeCIr_fxSkYSJA">
+ <body>
+ * Update model flag constant (bit mask value 4) indicating that the operation
+ * is to update the classpath of all referring projects except the originating project.
+ * @since 2.1
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_fcL7UGHaEeCIr_fxSkYSJA" name="DESTINATION_PROJECT_CLASSPATH" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_fcL7UWHaEeCIr_fxSkYSJA">
+ <body>
+ * Update model flag constant (bit mask value 8) indicating that the operation
+ * is to update the classpath of the destination project.
+ * @since 2.1
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_fcVFQGHaEeCIr_fxSkYSJA" name="REPLACE" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_fce2QGHaEeCIr_fxSkYSJA">
+ <body>
+ * Update model flag constant (bit mask value 16) indicating that the operation
+ * is to replace the resource and the destination project's classpath entry.
+ * @since 2.1
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_fce2QWHaEeCIr_fxSkYSJA" name="attachSource">
+ <ownedComment xmi:id="_fce2QmHaEeCIr_fxSkYSJA">
+ <body>
+ * Attaches the source archive identified by the given absolute path to this
+ * binary package fragment root. &lt;code>rootPath&lt;/code> specifies the location
+ * of the root within the archive or folder (empty specifies the default root
+ * and &lt;code>null&lt;/code> specifies the root path should be detected).
+ * Once a source archive or folder is attached to the package fragment root,
+ * the &lt;code>getSource&lt;/code> and &lt;code>getSourceRange&lt;/code>
+ * methods become operational for binary types/members.
+ * To detach a source archive or folder from a package fragment root, specify
+ * &lt;code>null&lt;/code> as the source path.
+ *
+ * @param sourcePath the given absolute path to the source archive or folder
+ * @param rootPath specifies the location of the root within the archive
+ * (empty specifies the default root and &lt;code>null&lt;/code> specifies
+ * automatic detection of the root path)
+ * @param monitor the given progress monitor
+ * @exception JavaModelException if this operation fails. Reasons include:
+ * &lt;ul>
+ * &lt;li> This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;li> A &lt;code>CoreException&lt;/code> occurred while updating a server property
+ * &lt;li> This package fragment root is not of kind binary (INVALID_ELEMENT_TYPES)
+ * &lt;li> The path provided is not absolute (RELATIVE_PATH)
+ * &lt;/ul>
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_fce2Q2HaEeCIr_fxSkYSJA" name="sourcePath" type="_j00UEmEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_fconQGHaEeCIr_fxSkYSJA" name="rootPath" type="_j00UEmEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_fcxxMGHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_fc7iMGHaEeCIr_fxSkYSJA" name="copy">
+ <ownedComment xmi:id="_fc7iMWHaEeCIr_fxSkYSJA">
+ <body>
+ * Copies the resource of this package fragment root to the destination path
+ * as specified by &lt;code>IResource.copy(IPath, int, IProgressMonitor)&lt;/code>
+ * but excluding nested source folders.
+ * &lt;p>
+ * If &lt;code>NO_RESOURCE_MODIFICATION&lt;/code> is specified in
+ * &lt;code>updateModelFlags&lt;/code> or if this package fragment root is external,
+ * this operation doesn't copy the resource. &lt;code>updateResourceFlags&lt;/code>
+ * is then ignored.
+ * &lt;/p>&lt;p>
+ * If &lt;code>DESTINATION_PROJECT_CLASSPATH&lt;/code> is specified in
+ * &lt;code>updateModelFlags&lt;/code>, updates the classpath of the
+ * destination's project (if it is a Java project). If a non-&lt;code>null&lt;/code>
+ * sibling is specified, a copy of this root's classpath entry is inserted before the
+ * sibling on the destination project's raw classpath. If &lt;code>null&lt;/code> is
+ * specified, the classpath entry is added at the end of the raw classpath.
+ * &lt;/p>&lt;p>
+ * If &lt;code>REPLACE&lt;/code> is specified in &lt;code>updateModelFlags&lt;/code>,
+ * overwrites the resource at the destination path if any.
+ * If the same classpath entry already exists on the destination project's raw
+ * classpath, then the sibling is ignored and the new classpath entry replaces the
+ * existing one.
+ * &lt;/p>&lt;p>
+ * If no flags is specified in &lt;code>updateModelFlags&lt;/code> (using
+ * &lt;code>IResource.NONE&lt;/code>), the default behavior applies: the
+ * resource is copied (if this package fragment root is not external) and the
+ * classpath is not updated.
+ * &lt;/p>
+ *
+ * @param destination the destination path
+ * @param updateResourceFlags bit-wise or of update resource flag constants
+ * (&lt;code>IResource.FORCE&lt;/code> and &lt;code>IResource.SHALLOW&lt;/code>)
+ * @param updateModelFlags bit-wise or of update resource flag constants
+ * (&lt;code>DESTINATION_PROJECT_CLASSPATH&lt;/code> and
+ * &lt;code>NO_RESOURCE_MODIFICATION&lt;/code>)
+ * @param sibling the classpath entry before which a copy of the classpath
+ * entry should be inserted or &lt;code>null&lt;/code> if the classpath entry should
+ * be inserted at the end
+ * @param monitor a progress monitor
+ *
+ * @exception JavaModelException if this root could not be copied. Reasons
+ * include:
+ * &lt;ul>
+ * &lt;li> This root does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;li> A &lt;code>CoreException&lt;/code> occurred while copying the
+ * resource or updating a classpath&lt;/li>
+ * &lt;li>
+ * The destination is not inside an existing project and &lt;code>updateModelFlags&lt;/code>
+ * has been specified as &lt;code>DESTINATION_PROJECT_CLASSPATH&lt;/code>
+ * (INVALID_DESTINATION)&lt;/li>
+ * &lt;li> The sibling is not a classpath entry on the destination project's
+ * raw classpath (INVALID_SIBLING)&lt;/li>
+ * &lt;li> The same classpath entry already exists on the destination project's
+ * classpath (NAME_COLLISION) and &lt;code>updateModelFlags&lt;/code>
+ * has not been specified as &lt;code>REPLACE&lt;/code>&lt;/li>
+ * &lt;/ul>
+ * @see org.eclipse.core.resources.IResource#copy(IPath, boolean, IProgressMonitor)
+ * @since 2.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_fc7iMmHaEeCIr_fxSkYSJA" name="destination" type="_j00UEmEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_fdEsIGHaEeCIr_fxSkYSJA" name="updateResourceFlags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_fdOdIGHaEeCIr_fxSkYSJA" name="updateModelFlags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_fdOdIWHaEeCIr_fxSkYSJA" name="sibling" type="_j4GRkGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_fdYOIGHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_fdYOIWHaEeCIr_fxSkYSJA" name="createPackageFragment">
+ <ownedComment xmi:id="_fdYOImHaEeCIr_fxSkYSJA">
+ <body>
+ * Creates and returns a package fragment in this root with the
+ * given dot-separated package name. An empty string specifies the default package.
+ * This has the side effect of creating all package
+ * fragments that are a prefix of the new package fragment which
+ * do not exist yet. If the package fragment already exists, this
+ * has no effect.
+ *
+ * For a description of the &lt;code>force&lt;/code> flag, see &lt;code>IFolder.create&lt;/code>.
+ *
+ * @param name the given dot-separated package name
+ * @param force a flag controlling how to deal with resources that
+ * are not in sync with the local file system
+ * @param monitor the given progress monitor
+ * @exception JavaModelException if the element could not be created. Reasons include:
+ * &lt;ul>
+ * &lt;li> This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;li> A &lt;code>CoreException&lt;/code> occurred while creating an underlying resource
+ * &lt;li> This package fragment root is read only (READ_ONLY)
+ * &lt;li> The name is not a valid package name (INVALID_NAME)
+ * &lt;/ul>
+ * @return a package fragment in this root with the given dot-separated package name
+ * @see org.eclipse.core.resources.IFolder#create(boolean, boolean, IProgressMonitor)
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_fdhYEGHaEeCIr_fxSkYSJA" type="_kqTxoGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_fdhYEWHaEeCIr_fxSkYSJA" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_fdrJEGHaEeCIr_fxSkYSJA" name="force" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_fdrJEWHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_fd06EGHaEeCIr_fxSkYSJA" name="delete">
+ <ownedComment xmi:id="_fd06EWHaEeCIr_fxSkYSJA">
+ <body>
+ * Deletes the resource of this package fragment root as specified by
+ * &lt;code>IResource.delete(int, IProgressMonitor)&lt;/code> but excluding nested
+ * source folders.
+ * &lt;p>
+ * If &lt;code>NO_RESOURCE_MODIFICATION&lt;/code> is specified in
+ * &lt;code>updateModelFlags&lt;/code> or if this package fragment root is external,
+ * this operation doesn't delete the resource. &lt;code>updateResourceFlags&lt;/code>
+ * is then ignored.
+ * &lt;/p>&lt;p>
+ * If &lt;code>ORIGINATING_PROJECT_CLASSPATH&lt;/code> is specified in
+ * &lt;code>updateModelFlags&lt;/code>, update the raw classpath of this package
+ * fragment root's project by removing the corresponding classpath entry.
+ * &lt;/p>&lt;p>
+ * If &lt;code>OTHER_REFERRING_PROJECTS_CLASSPATH&lt;/code> is specified in
+ * &lt;code>updateModelFlags&lt;/code>, update the raw classpaths of all other Java
+ * projects referring to this root's resource by removing the corresponding classpath
+ * entries.
+ * &lt;/p>&lt;p>
+ * If no flags is specified in &lt;code>updateModelFlags&lt;/code> (using
+ * &lt;code>IResource.NONE&lt;/code>), the default behavior applies: the
+ * resource is deleted (if this package fragment root is not external) and no
+ * classpaths are updated.
+ * &lt;/p>
+ *
+ * @param updateResourceFlags bit-wise or of update resource flag constants
+ * (&lt;code>IResource.FORCE&lt;/code> and &lt;code>IResource.KEEP_HISTORY&lt;/code>)
+ * @param updateModelFlags bit-wise or of update resource flag constants
+ * (&lt;code>ORIGINATING_PROJECT_CLASSPATH&lt;/code>,
+ * &lt;code>OTHER_REFERRING_PROJECTS_CLASSPATH&lt;/code> and
+ * &lt;code>NO_RESOURCE_MODIFICATION&lt;/code>)
+ * @param monitor a progress monitor
+ *
+ * @exception JavaModelException if this root could not be deleted. Reasons
+ * include:
+ * &lt;ul>
+ * &lt;li> This root does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;li> A &lt;code>CoreException&lt;/code> occurred while deleting the resource
+ * or updating a classpath
+ * &lt;/li>
+ * &lt;/ul>
+ * @see org.eclipse.core.resources.IResource#delete(boolean, IProgressMonitor)
+ * @since 2.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_fd06EmHaEeCIr_fxSkYSJA" name="updateResourceFlags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_fd-EAGHaEeCIr_fxSkYSJA" name="updateModelFlags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_feH1AGHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_feH1AWHaEeCIr_fxSkYSJA" name="getKind">
+ <ownedComment xmi:id="_feH1AmHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns this package fragment root's kind encoded as an integer.
+ * A package fragment root can contain source files (i.e. files with one
+ * of the {@link JavaCore#getJavaLikeExtensions() Java-like extensions},
+ * or &lt;code>.class&lt;/code> files, but not both.
+ * If the underlying folder or archive contains other kinds of files, they are ignored.
+ * In particular, &lt;code>.class&lt;/code> files are ignored under a source package fragment root,
+ * and source files are ignored under a binary package fragment root.
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return this package fragment root's kind encoded as an integer
+ * @see IPackageFragmentRoot#K_SOURCE
+ * @see IPackageFragmentRoot#K_BINARY
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_feH1A2HaEeCIr_fxSkYSJA" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_feQ-8GHaEeCIr_fxSkYSJA" name="getNonJavaResources">
+ <ownedComment xmi:id="_feQ-8WHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns an array of non-Java resources contained in this package fragment root.
+ * &lt;p>
+ * Non-Java resources includes other files and folders located in the same
+ * directories as the compilation units or class files under this package
+ * fragment root. Resources excluded from this package fragment root
+ * by virtue of inclusion/exclusion patterns on the corresponding source classpath
+ * entry are considered non-Java resources and will appear in the result
+ * (possibly in a folder). Thus when a nested source folder is excluded, it will appear
+ * in the non-Java resources of the outer folder.
+ * &lt;/p>&lt;p>
+ * Since 3.3, if this package fragment root is an archive, the non-Java resources
+ * are a tree of {@link IJarEntryResource}s. One can navigate this tree using
+ * the {@link IJarEntryResource#getChildren()} and
+ * {@link IJarEntryResource#getParent()} methods.
+ * &lt;/p>
+ *
+ * @return an array of non-Java resources (&lt;code>IFile&lt;/code>s,
+ * &lt;code>IFolder&lt;/code>s, or &lt;code>IStorage&lt;/code>s if the
+ * package fragment root is in archive) contained in this package
+ * fragment root
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @see IClasspathEntry#getInclusionPatterns()
+ * @see IClasspathEntry#getExclusionPatterns()
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_feav8GHaEeCIr_fxSkYSJA" type="_kOcVAmEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_fekg8GHaEeCIr_fxSkYSJA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_feav8WHaEeCIr_fxSkYSJA"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_fetq4GHaEeCIr_fxSkYSJA" name="getPackageFragment">
+ <ownedComment xmi:id="_fetq4WHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns the package fragment with the given package name.
+ * An empty string indicates the default package.
+ * This is a handle-only operation. The package fragment
+ * may or may not exist.
+ *
+ * @param packageName the given package name
+ * @return the package fragment with the given package name
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_fetq4mHaEeCIr_fxSkYSJA" type="_kqTxoGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_fetq42HaEeCIr_fxSkYSJA" name="packageName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_fe3b4GHaEeCIr_fxSkYSJA" name="getRawClasspathEntry">
+ <ownedComment xmi:id="_fe3b4WHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns the first raw classpath entry that corresponds to this package
+ * fragment root.
+ * A raw classpath entry corresponds to a package fragment root if once resolved
+ * this entry's path is equal to the root's path.
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return the first raw classpath entry that corresponds to this package fragment root
+ * @since 2.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_fe3b4mHaEeCIr_fxSkYSJA" type="_j4GRkGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ffBM4GHaEeCIr_fxSkYSJA" name="getResolvedClasspathEntry">
+ <ownedComment xmi:id="_ffBM4WHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns the first resolved classpath entry that corresponds to this package fragment root.
+ * A resolved classpath entry is said to correspond to a root if the path of the resolved
+ * entry is equal to the root's path.
+ *
+ * @return the first resolved classpath entry that corresponds to this package fragment root
+ * @throws JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @since 3.6
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_ffBM4mHaEeCIr_fxSkYSJA" type="_j4GRkGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ffKW0GHaEeCIr_fxSkYSJA" name="getSourceAttachmentPath">
+ <ownedComment xmi:id="_ffKW0WHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns the absolute path to the source archive attached to
+ * this package fragment root's binary archive.
+ *
+ * @return the absolute path to the corresponding source archive,
+ * or &lt;code>null&lt;/code> if this package fragment root's binary archive
+ * has no corresponding source archive, or if this package fragment root
+ * is not a binary archive
+ * @exception JavaModelException if this operation fails
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_ffKW0mHaEeCIr_fxSkYSJA" type="_j00UEmEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ffUH0GHaEeCIr_fxSkYSJA" name="getSourceAttachmentRootPath">
+ <ownedComment xmi:id="_ffUH0WHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns the path within this package fragment root's source archive.
+ * An empty path indicates that packages are located at the root of the
+ * source archive.
+ *
+ * @return the path within the corresponding source archive,
+ * or &lt;code>null&lt;/code> if this package fragment root's binary archive
+ * has no corresponding source archive, or if this package fragment root
+ * is not a binary archive
+ * @exception JavaModelException if this operation fails
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_ffUH0mHaEeCIr_fxSkYSJA" type="_j00UEmEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ffdRwGHaEeCIr_fxSkYSJA" name="isArchive" visibility="public">
+ <ownedComment xmi:id="_ffdRwWHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns whether this package fragment root's underlying
+ * resource is a binary archive (a JAR or zip file).
+ * &lt;p>
+ * This is a handle-only method.
+ * &lt;/p>
+ *
+ * @return true if this package fragment root's underlying resource is a binary archive, false otherwise
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_ffnCwGHaEeCIr_fxSkYSJA" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ffnCwWHaEeCIr_fxSkYSJA" name="isExternal">
+ <ownedComment xmi:id="_ffnCwmHaEeCIr_fxSkYSJA">
+ <body>
+ * Returns whether this package fragment root is external
+ * to the workbench (that is, a local file), and has no
+ * underlying resource.
+ * &lt;p>
+ * This is a handle-only method.
+ * &lt;/p>
+ *
+ * @return true if this package fragment root is external
+ * to the workbench (that is, a local file), and has no
+ * underlying resource, false otherwise
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_ffnCw2HaEeCIr_fxSkYSJA" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ffwzwGHaEeCIr_fxSkYSJA" name="move">
+ <ownedComment xmi:id="_ffwzwWHaEeCIr_fxSkYSJA">
+ <body>
+ * Moves the resource of this package fragment root to the destination path
+ * as specified by &lt;code>IResource.move(IPath,int,IProgressMonitor)&lt;/code>
+ * but excluding nested source folders.
+ * &lt;p>
+ * If &lt;code>NO_RESOURCE_MODIFICATION&lt;/code> is specified in
+ * &lt;code>updateModelFlags&lt;/code> or if this package fragment root is external,
+ * this operation doesn't move the resource. &lt;code>updateResourceFlags&lt;/code>
+ * is then ignored.
+ * &lt;/p>&lt;p>
+ * If &lt;code>DESTINATION_PROJECT_CLASSPATH&lt;/code> is specified in
+ * &lt;code>updateModelFlags&lt;/code>, updates the classpath of the
+ * destination's project (if it is a Java project). If a non-&lt;code>null&lt;/code>
+ * sibling is specified, a copy of this root's classpath entry is inserted before the
+ * sibling on the destination project's raw classpath. If &lt;code>null&lt;/code> is
+ * specified, the classpath entry is added at the end of the raw classpath.
+ * &lt;/p>&lt;p>
+ * If &lt;code>ORIGINATING_PROJECT_CLASSPATH&lt;/code> is specified in
+ * &lt;code>updateModelFlags&lt;/code>, update the raw classpath of this package
+ * fragment root's project by removing the corresponding classpath entry.
+ * &lt;/p>&lt;p>
+ * If &lt;code>OTHER_REFERRING_PROJECTS_CLASSPATH&lt;/code> is specified in
+ * &lt;code>updateModelFlags&lt;/code>, update the raw classpaths of all other Java
+ * projects referring to this root's resource by removing the corresponding classpath
+ * entries.
+ * &lt;/p>&lt;p>
+ * If &lt;code>REPLACE&lt;/code> is specified in &lt;code>updateModelFlags&lt;/code>,
+ * overwrites the resource at the destination path if any.
+ * If the same classpath entry already exists on the destination project's raw
+ * classpath, then the sibling is ignored and the new classpath entry replaces the
+ * existing one.
+ * &lt;/p>&lt;p>
+ * If no flags is specified in &lt;code>updateModelFlags&lt;/code> (using
+ * &lt;code>IResource.NONE&lt;/code>), the default behavior applies: the
+ * resource is moved (if this package fragment root is not external) and no
+ * classpaths are updated.
+ * &lt;/p>
+ *
+ * @param destination the destination path
+ * @param updateResourceFlags bit-wise or of update flag constants
+ * (&lt;code>IResource.FORCE&lt;/code>, &lt;code>IResource.KEEP_HISTORY&lt;/code>
+ * and &lt;code>IResource.SHALLOW&lt;/code>)
+ * @param updateModelFlags bit-wise or of update resource flag constants
+ * (&lt;code>DESTINATION_PROJECT_CLASSPATH&lt;/code>,
+ * &lt;code>ORIGINATING_PROJECT_CLASSPATH&lt;/code>,
+ * &lt;code>OTHER_REFERRING_PROJECTS_CLASSPATH&lt;/code> and
+ * &lt;code>NO_RESOURCE_MODIFICATION&lt;/code>)
+ * @param sibling the classpath entry before which a copy of the classpath
+ * entry should be inserted or &lt;code>null&lt;/code> if the classpath entry should
+ * be inserted at the end
+ * @param monitor a progress monitor
+ *
+ * @exception JavaModelException if this root could not be moved. Reasons
+ * include:
+ * &lt;ul>
+ * &lt;li> This root does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;li> A &lt;code>CoreException&lt;/code> occurred while copying the
+ * resource or updating a classpath&lt;/li>
+ * &lt;li>
+ * The destination is not inside an existing project and &lt;code>updateModelFlags&lt;/code>
+ * has been specified as &lt;code>DESTINATION_PROJECT_CLASSPATH&lt;/code>
+ * (INVALID_DESTINATION)&lt;/li>
+ * &lt;li> The sibling is not a classpath entry on the destination project's
+ * raw classpath (INVALID_SIBLING)&lt;/li>
+ * &lt;li> The same classpath entry already exists on the destination project's
+ * classpath (NAME_COLLISION) and &lt;code>updateModelFlags&lt;/code>
+ * has not been specified as &lt;code>REPLACE&lt;/code>&lt;/li>
+ * &lt;/ul>
+ * @see org.eclipse.core.resources.IResource#move(IPath, boolean, IProgressMonitor)
+ * @since 2.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_ff59sGHaEeCIr_fxSkYSJA" name="destination" type="_j00UEmEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_fgDusGHaEeCIr_fxSkYSJA" name="updateResourceFlags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_fgDusWHaEeCIr_fxSkYSJA" name="updateModelFlags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_fgNfsGHaEeCIr_fxSkYSJA" name="sibling" type="_j4GRkGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_fgWpoGHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_kq6OkGEMEeCdEc4VzBeWeQ" name="IParent">
+ <ownedComment xmi:id="_kq6OkWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Common protocol for Java elements that contain other Java elements.
+ *
+ * @noimplement This interface is not intended to be implemented by clients.
+ </body>
+ </ownedComment>
+ <ownedOperation xmi:id="_kq6OkmEMEeCdEc4VzBeWeQ" name="getChildren">
+ <ownedComment xmi:id="_kq6Ok2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the immediate children of this element.
+ * Unless otherwise specified by the implementing element,
+ * the children are in no particular order.
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ * @return the immediate children of this element
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kq6OlGEMEeCdEc4VzBeWeQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_krDYgWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDYgGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_krDYgmEMEeCdEc4VzBeWeQ" name="hasChildren">
+ <ownedComment xmi:id="_krDYg2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether this element has one or more immediate children.
+ * This is a convenience method, and may be more efficient than
+ * testing whether &lt;code>getChildren&lt;/code> is an empty array.
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ * @return true if the immediate children of this element, false otherwise
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_krDYhGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_krNJgGEMEeCdEc4VzBeWeQ" name="IProblemRequestor">
+ <ownedComment xmi:id="_krNJgWEMEeCdEc4VzBeWeQ">
+ <body>
+ * A callback interface for receiving java problem as they are discovered
+ * by some Java operation.
+ *
+ * @see IProblem
+ * @since 2.0
+ </body>
+ </ownedComment>
+ <ownedOperation xmi:id="_krW6gGEMEeCdEc4VzBeWeQ" name="acceptProblem">
+ <ownedComment xmi:id="_krW6gWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Notification of a Java problem.
+ *
+ * @param problem IProblem - The discovered Java problem.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_krW6gmEMEeCdEc4VzBeWeQ" name="problem" type="_jrk4hWEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_krW6g2EMEeCdEc4VzBeWeQ" name="beginReporting">
+ <ownedComment xmi:id="_krW6hGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Notification sent before starting the problem detection process.
+ * Typically, this would tell a problem collector to clear previously recorded problems.
+ </body>
+ </ownedComment>
+ </ownedOperation>
+ <ownedOperation xmi:id="_krW6hWEMEeCdEc4VzBeWeQ" name="endReporting">
+ <ownedComment xmi:id="_krW6hmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Notification sent after having completed problem detection process.
+ * Typically, this would tell a problem collector that no more problems should be expected in this
+ * iteration.
+ </body>
+ </ownedComment>
+ </ownedOperation>
+ <ownedOperation xmi:id="_krW6h2EMEeCdEc4VzBeWeQ" name="isActive">
+ <ownedComment xmi:id="_krW6iGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Predicate allowing the problem requestor to signal whether or not it is currently
+ * interested by problem reports. When answering &lt;code>false&lt;/code>, problem will
+ * not be discovered any more until the next iteration.
+ *
+ * This predicate will be invoked once prior to each problem detection iteration.
+ *
+ * @return boolean - indicates whether the requestor is currently interested by problems.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_krW6iWEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_krp1cGEMEeCdEc4VzBeWeQ" name="IRegion">
+ <ownedComment xmi:id="_kry_YGEMEeCdEc4VzBeWeQ">
+ <body>
+ * A Java model region describes a hierarchical set of elements.
+ * Regions are often used to describe a set of elements to be considered
+ * when performing operations; for example, the set of elements to be
+ * considered during a search. A region may include elements from different
+ * projects.
+ * &lt;p>
+ * When an element is included in a region, all of its children
+ * are considered to be included. Children of an included element
+ * &lt;b>cannot&lt;/b> be selectively excluded.
+ * &lt;/p>
+ * &lt;p>
+ * Instances can be created via the &lt;code>JavaCore.newRegion&lt;/code>.
+ * &lt;/p>
+ *
+ * @see JavaCore#newRegion()
+ * @noimplement This interface is not intended to be implemented by clients.
+ </body>
+ </ownedComment>
+ <ownedOperation xmi:id="_kry_YWEMEeCdEc4VzBeWeQ" name="add">
+ <ownedComment xmi:id="_kry_YmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Adds the given element and all of its descendents to this region.
+ * If the specified element is already included, or one of its
+ * ancestors is already included, this has no effect. If the element
+ * being added is an ancestor of an element already contained in this
+ * region, the ancestor subsumes the descendent.
+ *
+ * @param element the given element
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kry_Y2EMEeCdEc4VzBeWeQ" name="element" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kry_ZGEMEeCdEc4VzBeWeQ" name="contains">
+ <ownedComment xmi:id="_kry_ZWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether the given element is contained in this region.
+ *
+ * @param element the given element
+ * @return true if the given element is contained in this region, false otherwise
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kry_ZmEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_kr8wYGEMEeCdEc4VzBeWeQ" name="element" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kr8wYWEMEeCdEc4VzBeWeQ" name="getElements">
+ <ownedComment xmi:id="_kr8wYmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the top level elements in this region.
+ * All descendents of these elements are also included in this region.
+ *
+ * @return the top level elements in this region
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kr8wY2EMEeCdEc4VzBeWeQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kr8wZWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kr8wZGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ksGhYGEMEeCdEc4VzBeWeQ" name="remove">
+ <ownedComment xmi:id="_ksGhYWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Removes the specified element from the region and returns
+ * &lt;code>true&lt;/code> if successful, &lt;code>false&lt;/code> if the remove
+ * fails. If an ancestor of the given element is included, the
+ * remove fails (in other words, it is not possible to selectively
+ * exclude descendants of included ancestors).
+ *
+ * @param element the given element
+ * @return &lt;code>true&lt;/code> if successful, &lt;code>false&lt;/code> if the remove fails
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_ksGhYmEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_ksGhY2EMEeCdEc4VzBeWeQ" name="element" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_kssXQGEMEeCdEc4VzBeWeQ" name="ISourceManipulation">
+ <ownedComment xmi:id="_kssXQWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Common protocol for Java elements that support source code manipulations such
+ * as copy, move, rename, and delete.
+ *
+ * @noimplement This interface is not intended to be implemented by clients.
+ </body>
+ </ownedComment>
+ <ownedOperation xmi:id="_kssXQmEMEeCdEc4VzBeWeQ" name="copy">
+ <ownedComment xmi:id="_kssXQ2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Copies this element to the given container.
+ *
+ * @param container the container
+ * @param sibling the sibling element before which the copy should be inserted,
+ * or &lt;code>null&lt;/code> if the copy should be inserted as the last child of
+ * the container
+ * @param rename the new name for the element, or &lt;code>null&lt;/code> if the copy
+ * retains the name of this element
+ * @param replace &lt;code>true&lt;/code> if any existing child in the container with
+ * the target name should be replaced, and &lt;code>false&lt;/code> to throw an
+ * exception in the event of a name collision
+ * @param monitor a progress monitor
+ * @exception JavaModelException if this element could not be copied. Reasons include:
+ * &lt;ul>
+ * &lt;li> This Java element, container element, or sibling does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;li> A &lt;code>CoreException&lt;/code> occurred while updating an underlying resource
+ * &lt;li> The container is of an incompatible type (INVALID_DESTINATION)
+ * &lt;li> The sibling is not a child of the given container (INVALID_SIBLING)
+ * &lt;li> The new name is invalid (INVALID_NAME)
+ * &lt;li> A child in the container already exists with the same name (NAME_COLLISION)
+ * and &lt;code>replace&lt;/code> has been specified as &lt;code>false&lt;/code>
+ * &lt;li> The container or this element is read-only (READ_ONLY)
+ * &lt;/ul>
+ *
+ * @exception IllegalArgumentException if container is &lt;code>null&lt;/code>
+ * @see org.eclipse.jdt.core.IJavaModelStatusConstants#INVALID_DESTINATION
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kssXRGEMEeCdEc4VzBeWeQ" name="container" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_ks2IQGEMEeCdEc4VzBeWeQ" name="sibling" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_ks2IQWEMEeCdEc4VzBeWeQ" name="rename" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_ks2IQmEMEeCdEc4VzBeWeQ" name="replace" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_ks_SMGEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ks_SMWEMEeCdEc4VzBeWeQ" name="delete">
+ <ownedComment xmi:id="_ks_SMmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Deletes this element, forcing if specified and necessary.
+ *
+ * @param force a flag controlling whether underlying resources that are not
+ * in sync with the local file system will be tolerated (same as the force flag
+ * in IResource operations).
+ * @param monitor a progress monitor
+ * @exception JavaModelException if this element could not be deleted. Reasons include:
+ * &lt;ul>
+ * &lt;li> This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;li> A &lt;code>CoreException&lt;/code> occurred while updating an underlying resource (CORE_EXCEPTION)&lt;/li>
+ * &lt;li> This element is read-only (READ_ONLY)&lt;/li>
+ * &lt;/ul>
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_ks_SM2EMEeCdEc4VzBeWeQ" name="force" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_ks_SNGEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ks_SNWEMEeCdEc4VzBeWeQ" name="move">
+ <ownedComment xmi:id="_ks_SNmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Moves this element to the given container.
+ *
+ * @param container the container
+ * @param sibling the sibling element before which the element should be inserted,
+ * or &lt;code>null&lt;/code> if the element should be inserted as the last child of
+ * the container
+ * @param rename the new name for the element, or &lt;code>null&lt;/code> if the
+ * element retains its name
+ * @param replace &lt;code>true&lt;/code> if any existing child in the container with
+ * the target name should be replaced, and &lt;code>false&lt;/code> to throw an
+ * exception in the event of a name collision
+ * @param monitor a progress monitor
+ * @exception JavaModelException if this element could not be moved. Reasons include:
+ * &lt;ul>
+ * &lt;li> This Java element, container element, or sibling does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;li> A &lt;code>CoreException&lt;/code> occurred while updating an underlying resource
+ * &lt;li> The container is of an incompatible type (INVALID_DESTINATION)
+ * &lt;li> The sibling is not a child of the given container (INVALID_SIBLING)
+ * &lt;li> The new name is invalid (INVALID_NAME)
+ * &lt;li> A child in the container already exists with the same name (NAME_COLLISION)
+ * and &lt;code>replace&lt;/code> has been specified as &lt;code>false&lt;/code>
+ * &lt;li> The container or this element is read-only (READ_ONLY)
+ * &lt;/ul>
+ *
+ * @exception IllegalArgumentException if container is &lt;code>null&lt;/code>
+ * @see org.eclipse.jdt.core.IJavaModelStatusConstants#INVALID_DESTINATION
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_ktJDMGEMEeCdEc4VzBeWeQ" name="container" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_ktJDMWEMEeCdEc4VzBeWeQ" name="sibling" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_ktJDMmEMEeCdEc4VzBeWeQ" name="rename" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_ktJDM2EMEeCdEc4VzBeWeQ" name="replace" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_ktS0MGEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ktS0MWEMEeCdEc4VzBeWeQ" name="rename">
+ <ownedComment xmi:id="_ktS0MmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Renames this element to the given name.
+ *
+ * @param name the new name for the element
+ * @param replace &lt;code>true&lt;/code> if any existing element with the target name
+ * should be replaced, and &lt;code>false&lt;/code> to throw an exception in the
+ * event of a name collision
+ * @param monitor a progress monitor
+ * @exception JavaModelException if this element could not be renamed. Reasons include:
+ * &lt;ul>
+ * &lt;li> This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;li> A &lt;code>CoreException&lt;/code> occurred while updating an underlying resource
+ * &lt;li> The new name is invalid (INVALID_NAME)
+ * &lt;li> A child in the container already exists with the same name (NAME_COLLISION)
+ * and &lt;code>replace&lt;/code> has been specified as &lt;code>false&lt;/code>
+ * &lt;li> This element is read-only (READ_ONLY)
+ * &lt;/ul>
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_ktS0M2EMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_ktS0NGEMEeCdEc4VzBeWeQ" name="replace" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_ktb-IGEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_ktlvIGEMEeCdEc4VzBeWeQ" name="ISourceRange">
+ <ownedComment xmi:id="_ktlvIWEMEeCdEc4VzBeWeQ">
+ <body>
+ * A source range defines an element's source coordinates relative to
+ * its source buffer.
+ *
+ * &lt;p>Clients may use the method {@link org.eclipse.jdt.core.SourceRange#isAvailable(ISourceRange)}
+ * in order to find out if a source range is available. This method returns &lt;code>false&lt;/code>
+ * when the source range offset is equals to &lt;code>-1&lt;/code>.&lt;/p>
+ *
+ * &lt;p>Clients may use the default implementation provided by {@link SourceRange}.&lt;/p>
+ *
+ * @see SourceRange
+ * @noimplement This interface is not intended to be implemented by clients.
+ </body>
+ </ownedComment>
+ <ownedOperation xmi:id="_ktlvImEMEeCdEc4VzBeWeQ" name="getLength">
+ <ownedComment xmi:id="_ktlvI2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the number of characters of the source code for this element,
+ * relative to the source buffer in which this element is contained.
+ *
+ * @return the number of characters of the source code for this element,
+ * relative to the source buffer in which this element is contained
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_ktlvJGEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ktlvJWEMEeCdEc4VzBeWeQ" name="getOffset">
+ <ownedComment xmi:id="_ktlvJmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the 0-based index of the first character of the source code for this element,
+ * relative to the source buffer in which this element is contained. However, if the element
+ * has no associated source code, an implementation may return -1.
+ *
+ * @return the 0-based index of the first character of the source code for this element,
+ * relative to the source buffer in which this element is contained. However, if the element
+ * has no associated source code, an implementation may return -1.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_ktvgIGEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_kuCbEGEMEeCdEc4VzBeWeQ" name="ISourceReference">
+ <ownedComment xmi:id="_kuCbEWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Common protocol for Java elements that have associated source code.
+ * This set consists of {@link IClassFile}, {@link ICompilationUnit},
+ * {@link IPackageDeclaration}, {@link IImportDeclaration},
+ * {@link IImportContainer}, {@link IType}, {@link IField},
+ * {@link IMethod}, {@link IInitializer}, {@link ITypeParameter},
+ * {@link ILocalVariable}, and {@link IAnnotation}.
+ * &lt;p>
+ * Note: For &lt;code>IClassFile&lt;/code>, &lt;code>IType&lt;/code> and other members
+ * derived from a binary type, the implementation returns source iff the
+ * element has attached source code.
+ * &lt;/p>
+ * &lt;p>
+ * Source reference elements may be working copies if they were created from
+ * a compilation unit that is a working copy.
+ * &lt;/p>
+ *
+ * @see IPackageFragmentRoot#attachSource(org.eclipse.core.runtime.IPath, org.eclipse.core.runtime.IPath, org.eclipse.core.runtime.IProgressMonitor)
+ * @noimplement This interface is not intended to be implemented by clients.
+ </body>
+ </ownedComment>
+ <ownedOperation xmi:id="_kuLlAGEMEeCdEc4VzBeWeQ" name="exists">
+ <ownedComment xmi:id="_kuLlAWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether this element exists in the model.
+ *
+ * @return &lt;code>true&lt;/code> if this element exists in the Java model
+ * @since 2.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kuLlAmEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kuLlA2EMEeCdEc4VzBeWeQ" name="getSource">
+ <ownedComment xmi:id="_kuLlBGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the source code associated with this element.
+ * This extracts the substring from the source buffer containing this source
+ * element. This corresponds to the source range that would be returned by
+ * &lt;code>getSourceRange&lt;/code>.
+ * &lt;p>
+ * For class files, this returns the source of the entire compilation unit
+ * associated with the class file (if there is one).
+ * &lt;/p>
+ *
+ * @return the source code, or &lt;code>null&lt;/code> if this element has no
+ * associated source code
+ * @exception JavaModelException if an exception occurs while accessing its corresponding resource
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kuLlBWEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kuLlBmEMEeCdEc4VzBeWeQ" name="getSourceRange">
+ <ownedComment xmi:id="_kuLlB2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the source range associated with this element.
+ * &lt;p>
+ * For class files, this returns the range of the entire compilation unit
+ * associated with the class file (if there is one).
+ * &lt;/p>
+ * &lt;p>
+ * If this element has no associated source code, either &lt;code>null&lt;/code> is returned,
+ * or a source range with a -1 offset and a 0 length. {@link SourceRange#isAvailable(ISourceRange)}
+ * can be used to detect that case.
+ * &lt;/p>
+ *
+ * @return the source range, or either &lt;code>null&lt;/code> or [-1, 0] if this element has no
+ * associated source code
+ * @exception JavaModelException if an exception occurs while accessing its corresponding resource
+ * @see SourceRange#isAvailable(ISourceRange)
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kuLlCGEMEeCdEc4VzBeWeQ" type="_ktlvIGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kuVWAGEMEeCdEc4VzBeWeQ" name="getNameRange">
+ <ownedComment xmi:id="_kuVWAWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the name range associated with this element.
+ *
+ * &lt;p>If the element is an {@link IMember}, it returns
+ * the source range of this member's simple name,
+ * or &lt;code>null&lt;/code> if this member does not have a name
+ * (for example, an initializer), or if this member does not have
+ * associated source code (for example, a binary type).&lt;/p>
+ *
+ * &lt;p>If this element is an {@link IImportDeclaration}, the source range
+ * of this import declaration's name, or &lt;code>null&lt;/code> if this import
+ * declaration does not have associated source code (for example, a binary type).
+ * &lt;br>The source range for the name includes the trailing '*' if the call to
+ * {@link IImportDeclaration#isOnDemand()} returns true.
+ * &lt;/p>
+ *
+ * &lt;p>If this element is an {@link IPackageDeclaration}, the source range of
+ * this package declaration's name, or &lt;code>null&lt;/code> if this package
+ * declaration does not have associated source code (for example, a binary type).&lt;/p>
+ *
+ * &lt;p>If this element is an {@link IAnnotation}, the source range of
+ * this annotation's name, or &lt;code>null&lt;/code> if this annotation does not have
+ * associated source code (for example, in a binary type).&lt;/p>
+ *
+ * &lt;p>If this element is an {@link ITypeParameter}, the source range of this
+ * type parameter's name, or &lt;code>null&lt;/code> if this type parameter does not have
+ * associated source code (for example, in a binary type).&lt;/p>
+ *
+ * &lt;p>If this element is an {@link ITypeRoot} or {@link IImportContainer}, it
+ * returns null.&lt;/p>
+ *
+ * @return the name range associated with this element, or &lt;code>null&lt;/code> if
+ * not available
+ *
+ * @since 3.7
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kuVWAmEMEeCdEc4VzBeWeQ" type="_ktlvIGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_kvE84GEMEeCdEc4VzBeWeQ" name="IType">
+ <ownedComment xmi:id="_kvE84WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Represents either a source type in a compilation unit (either a top-level
+ * type, a member type, a local type or an anonymous type)
+ * or a binary type in a class file. Enumeration classes and annotation
+ * types are subkinds of classes and interfaces, respectively.
+ * &lt;p>
+ * Note that the element name of an anonymous source type is always empty.
+ * &lt;/p>&lt;p>
+ * If a binary type cannot be parsed, its structure remains unknown.
+ * Use &lt;code>IJavaElement.isStructureKnown&lt;/code> to determine whether this
+ * is the case.
+ * &lt;/p>
+ * &lt;p>
+ * The children are of type &lt;code>IMember&lt;/code>, which includes &lt;code>IField&lt;/code>,
+ * &lt;code>IMethod&lt;/code>, &lt;code>IInitializer&lt;/code> and &lt;code>IType&lt;/code>.
+ * The children are listed in the order in which they appear in the source or class file.
+ * &lt;/p>
+ *
+ * @noimplement This interface is not intended to be implemented by clients.
+ </body>
+ </ownedComment>
+ <generalization xmi:id="_kvOt4GEMEeCdEc4VzBeWeQ" general="_klF6cGEMEeCdEc4VzBeWeQ"/>
+ <generalization xmi:id="_kvOt4WEMEeCdEc4VzBeWeQ" general="_j09eAGEMEeCdEc4VzBeWeQ"/>
+ <ownedOperation xmi:id="_kvOt4mEMEeCdEc4VzBeWeQ" name="codeComplete">
+ <ownedComment xmi:id="_kvOt42EMEeCdEc4VzBeWeQ">
+ <body>
+ * Do code completion inside a code snippet in the context of the current type.
+ *
+ * If the type has access to its source code and the insertion position is valid,
+ * then completion is performed against the source. Otherwise the completion is performed
+ * against the type structure and the given locals variables.
+ *
+ * @param snippet the code snippet
+ * @param insertion the position with in source where the snippet
+ * is inserted. This position must not be in comments.
+ * A possible value is -1, if the position is not known.
+ * @param position the position within snippet where the user
+ * is performing code assist.
+ * @param localVariableTypeNames an array (possibly empty) of fully qualified
+ * type names of local variables visible at the current scope
+ * @param localVariableNames an array (possibly empty) of local variable names
+ * that are visible at the current scope
+ * @param localVariableModifiers an array (possible empty) of modifiers for
+ * local variables
+ * @param isStatic whether the current scope is in a static context
+ * @param requestor the completion requestor
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @since 2.0
+ * @deprecated Use {@link #codeComplete(char[],int,int,char[][],char[][],int[],boolean,CompletionRequestor)} instead.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kvOt5GEMEeCdEc4VzBeWeQ" name="snippet" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kvX30GEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kvOt5WEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kvX30WEMEeCdEc4VzBeWeQ" name="insertion" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kvX30mEMEeCdEc4VzBeWeQ" name="position" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kvho0GEMEeCdEc4VzBeWeQ" name="localVariableTypeNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kvho0mEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kvho0WEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kvho02EMEeCdEc4VzBeWeQ" name="localVariableNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kvrZ0WEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kvrZ0GEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kvrZ0mEMEeCdEc4VzBeWeQ" name="localVariableModifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kv0jwWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kv0jwGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kv0jwmEMEeCdEc4VzBeWeQ" name="isStatic" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kv-UwGEMEeCdEc4VzBeWeQ" name="requestor" type="_j_i9YGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_wmBF4WHhEeCCRJbbKD_TsQ" name="codeComplete">
+ <ownedComment xmi:id="_wmBF4mHhEeCCRJbbKD_TsQ">
+ <body>
+ * Do code completion inside a code snippet in the context of the current type.
+ * It considers types in the working copies with the given owner first. In other words,
+ * the owner's working copies will take precedence over their original compilation units
+ * in the workspace.
+ * &lt;p>
+ * Note that if a working copy is empty, it will be as if the original compilation
+ * unit had been deleted.
+ * &lt;/p>&lt;p>
+ * If the type has access to its source code and the insertion position is valid,
+ * then completion is performed against the source. Otherwise the completion is performed
+ * against the type structure and the given locals variables.
+ * &lt;/p>
+ *
+ * @param snippet the code snippet
+ * @param insertion the position with in source where the snippet
+ * is inserted. This position must not be in comments.
+ * A possible value is -1, if the position is not known.
+ * @param position the position with in snippet where the user
+ * is performing code assist.
+ * @param localVariableTypeNames an array (possibly empty) of fully qualified
+ * type names of local variables visible at the current scope
+ * @param localVariableNames an array (possibly empty) of local variable names
+ * that are visible at the current scope
+ * @param localVariableModifiers an array (possible empty) of modifiers for
+ * local variables
+ * @param isStatic whether the current scope is in a static context
+ * @param requestor the completion requestor
+ * @param owner the owner of working copies that take precedence over their original compilation units
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @since 3.0
+ * @deprecated Use {@link #codeComplete(char[],int,int,char[][],char[][],int[],boolean,CompletionRequestor,WorkingCopyOwner)} instead.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_wmBF42HhEeCCRJbbKD_TsQ" name="snippet" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wmK24WHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wmK24GHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_wmdx0GHhEeCCRJbbKD_TsQ" name="insertion" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_wmni0GHhEeCCRJbbKD_TsQ" name="position" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_wmni0WHhEeCCRJbbKD_TsQ" name="localVariableTypeNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wm6dwGHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wmxT0GHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_wm6dwWHhEeCCRJbbKD_TsQ" name="localVariableNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wnNYsGHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wnEOwGHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_wnNYsWHhEeCCRJbbKD_TsQ" name="localVariableModifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wnXJsWHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wnXJsGHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_wng6sGHhEeCCRJbbKD_TsQ" name="isStatic" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_wnqEoGHhEeCCRJbbKD_TsQ" name="requestor" type="_j_i9YGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_wnz1oGHhEeCCRJbbKD_TsQ" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_wnz1oWHhEeCCRJbbKD_TsQ" name="codeComplete">
+ <ownedComment xmi:id="_wnz1omHhEeCCRJbbKD_TsQ">
+ <body>
+ * Do code completion inside a code snippet in the context of the current type.
+ *
+ * If the type has access to its source code and the insertion position is valid,
+ * then completion is performed against the source. Otherwise the completion is performed
+ * against the type structure and the given locals variables.
+ *
+ * @param snippet the code snippet
+ * @param insertion the position with in source where the snippet
+ * is inserted. This position must not be in comments.
+ * A possible value is -1, if the position is not known.
+ * @param position the position within snippet where the user
+ * is performing code assist.
+ * @param localVariableTypeNames an array (possibly empty) of fully qualified
+ * type names of local variables visible at the current scope
+ * @param localVariableNames an array (possibly empty) of local variable names
+ * that are visible at the current scope
+ * @param localVariableModifiers an array (possible empty) of modifiers for
+ * local variables
+ * @param isStatic whether the current scope is in a static context
+ * @param requestor the completion requestor
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @since 3.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_wnz1o2HhEeCCRJbbKD_TsQ" name="snippet" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_woQhkGHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_woGwkGHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_woQhkWHhEeCCRJbbKD_TsQ" name="insertion" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_woZrgGHhEeCCRJbbKD_TsQ" name="position" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_wojcgGHhEeCCRJbbKD_TsQ" name="localVariableTypeNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wotNgWHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wotNgGHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_wo2XcGHhEeCCRJbbKD_TsQ" name="localVariableNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wpAIcGHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wo2XcWHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_wpJ5cGHhEeCCRJbbKD_TsQ" name="localVariableModifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wpTDYGHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wpJ5cWHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_wpTDYWHhEeCCRJbbKD_TsQ" name="isStatic" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_wpc0YGHhEeCCRJbbKD_TsQ" name="requestor" type="_jq_CoGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_wp5gUGHhEeCCRJbbKD_TsQ" name="codeComplete">
+ <ownedComment xmi:id="_wp5gUWHhEeCCRJbbKD_TsQ">
+ <body>
+ * Do code completion inside a code snippet in the context of the current type.
+ *
+ * If the type has access to its source code and the insertion position is valid,
+ * then completion is performed against the source. Otherwise the completion is performed
+ * against the type structure and the given locals variables.
+ * &lt;p>
+ * If {@link IProgressMonitor} is not &lt;code>null&lt;/code> then some proposals which
+ * can be very long to compute are proposed. To avoid that the code assist operation
+ * take too much time a {@link IProgressMonitor} which automatically cancel the code
+ * assist operation when a specified amount of time is reached could be used.
+ *
+ * &lt;pre>
+ * new IProgressMonitor() {
+ * private final static int TIMEOUT = 500; //ms
+ * private long endTime;
+ * public void beginTask(String name, int totalWork) {
+ * fEndTime= System.currentTimeMillis() + TIMEOUT;
+ * }
+ * public boolean isCanceled() {
+ * return endTime &lt;= System.currentTimeMillis();
+ * }
+ * ...
+ * };
+ * &lt;/pre>
+ * &lt;p>
+ *
+ * @param snippet the code snippet
+ * @param insertion the position with in source where the snippet
+ * is inserted. This position must not be in comments.
+ * A possible value is -1, if the position is not known.
+ * @param position the position within snippet where the user
+ * is performing code assist.
+ * @param localVariableTypeNames an array (possibly empty) of fully qualified
+ * type names of local variables visible at the current scope
+ * @param localVariableNames an array (possibly empty) of local variable names
+ * that are visible at the current scope
+ * @param localVariableModifiers an array (possible empty) of modifiers for
+ * local variables
+ * @param isStatic whether the current scope is in a static context
+ * @param requestor the completion requestor
+ * @param monitor the progress monitor used to report progress
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @since 3.5
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_wqCqQGHhEeCCRJbbKD_TsQ" name="snippet" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wqWMQGHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wqMbQGHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_wqWMQWHhEeCCRJbbKD_TsQ" name="insertion" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_wqfWMGHhEeCCRJbbKD_TsQ" name="position" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_wqpHMGHhEeCCRJbbKD_TsQ" name="localVariableTypeNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wqyRIGHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wqpHMWHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_wq8CIGHhEeCCRJbbKD_TsQ" name="localVariableNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wrFzIGHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wq8CIWHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_wrFzIWHhEeCCRJbbKD_TsQ" name="localVariableModifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wrYuEGHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wrO9EGHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_wrYuEWHhEeCCRJbbKD_TsQ" name="isStatic" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_wrifEGHhEeCCRJbbKD_TsQ" name="requestor" type="_jq_CoGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_wrrpAGHhEeCCRJbbKD_TsQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_wsSF8GHhEeCCRJbbKD_TsQ" name="codeComplete">
+ <ownedComment xmi:id="_wsSF8WHhEeCCRJbbKD_TsQ">
+ <body>
+ * Do code completion inside a code snippet in the context of the current type.
+ * It considers types in the working copies with the given owner first. In other words,
+ * the owner's working copies will take precedence over their original compilation units
+ * in the workspace.
+ * &lt;p>
+ * Note that if a working copy is empty, it will be as if the original compilation
+ * unit had been deleted.
+ * &lt;/p>&lt;p>
+ * If the type has access to its source code and the insertion position is valid,
+ * then completion is performed against the source. Otherwise the completion is performed
+ * against the type structure and the given locals variables.
+ * &lt;/p>
+ *
+ * @param snippet the code snippet
+ * @param insertion the position with in source where the snippet
+ * is inserted. This position must not be in comments.
+ * A possible value is -1, if the position is not known.
+ * @param position the position with in snippet where the user
+ * is performing code assist.
+ * @param localVariableTypeNames an array (possibly empty) of fully qualified
+ * type names of local variables visible at the current scope
+ * @param localVariableNames an array (possibly empty) of local variable names
+ * that are visible at the current scope
+ * @param localVariableModifiers an array (possible empty) of modifiers for
+ * local variables
+ * @param isStatic whether the current scope is in a static context
+ * @param requestor the completion requestor
+ * @param owner the owner of working copies that take precedence over their original compilation units
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @since 3.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_wsSF8mHhEeCCRJbbKD_TsQ" name="snippet" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wsbP4WHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wsbP4GHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_wslA4GHhEeCCRJbbKD_TsQ" name="insertion" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_wsux4GHhEeCCRJbbKD_TsQ" name="position" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_wsux4WHhEeCCRJbbKD_TsQ" name="localVariableTypeNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ws370WHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ws370GHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_wtK2wGHhEeCCRJbbKD_TsQ" name="localVariableNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wtUnwWHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wtUnwGHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_wteYwGHhEeCCRJbbKD_TsQ" name="localVariableModifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wtnisGHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wteYwWHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_wt7EsGHhEeCCRJbbKD_TsQ" name="isStatic" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_wt7EsWHhEeCCRJbbKD_TsQ" name="requestor" type="_jq_CoGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_wuEOoGHhEeCCRJbbKD_TsQ" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_wuqrkGHhEeCCRJbbKD_TsQ" name="codeComplete">
+ <ownedComment xmi:id="_wuqrkWHhEeCCRJbbKD_TsQ">
+ <body>
+ * Do code completion inside a code snippet in the context of the current type.
+ * It considers types in the working copies with the given owner first. In other words,
+ * the owner's working copies will take precedence over their original compilation units
+ * in the workspace.
+ * &lt;p>
+ * Note that if a working copy is empty, it will be as if the original compilation
+ * unit had been deleted.
+ * &lt;/p>&lt;p>
+ * If the type has access to its source code and the insertion position is valid,
+ * then completion is performed against the source. Otherwise the completion is performed
+ * against the type structure and the given locals variables.
+ * &lt;/p>
+ * &lt;p>
+ * If {@link IProgressMonitor} is not &lt;code>null&lt;/code> then some proposals which
+ * can be very long to compute are proposed. To avoid that the code assist operation
+ * take too much time a {@link IProgressMonitor} which automatically cancel the code
+ * assist operation when a specified amount of time is reached could be used.
+ *
+ * &lt;pre>
+ * new IProgressMonitor() {
+ * private final static int TIMEOUT = 500; //ms
+ * private long endTime;
+ * public void beginTask(String name, int totalWork) {
+ * endTime= System.currentTimeMillis() + TIMEOUT;
+ * }
+ * public boolean isCanceled() {
+ * return endTime &lt;= System.currentTimeMillis();
+ * }
+ * ...
+ * };
+ * &lt;/pre>
+ * &lt;p>
+ *
+ * @param snippet the code snippet
+ * @param insertion the position with in source where the snippet
+ * is inserted. This position must not be in comments.
+ * A possible value is -1, if the position is not known.
+ * @param position the position with in snippet where the user
+ * is performing code assist.
+ * @param localVariableTypeNames an array (possibly empty) of fully qualified
+ * type names of local variables visible at the current scope
+ * @param localVariableNames an array (possibly empty) of local variable names
+ * that are visible at the current scope
+ * @param localVariableModifiers an array (possible empty) of modifiers for
+ * local variables
+ * @param isStatic whether the current scope is in a static context
+ * @param requestor the completion requestor
+ * @param owner the owner of working copies that take precedence over their original compilation units
+ * @param monitor the progress monitor used to report progress
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @since 3.5
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_wuqrkmHhEeCCRJbbKD_TsQ" name="snippet" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wuz1gWHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wuz1gGHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_wu9mgGHhEeCCRJbbKD_TsQ" name="insertion" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_wvHXgGHhEeCCRJbbKD_TsQ" name="position" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_wvHXgWHhEeCCRJbbKD_TsQ" name="localVariableTypeNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wvQhcWHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wvQhcGHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_wvaScGHhEeCCRJbbKD_TsQ" name="localVariableNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wvjcYWHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wvjcYGHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_wv2-YGHhEeCCRJbbKD_TsQ" name="localVariableModifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wwAIUGHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wv2-YWHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_wwJ5UGHhEeCCRJbbKD_TsQ" name="isStatic" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_wwTqUGHhEeCCRJbbKD_TsQ" name="requestor" type="_jq_CoGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_wwTqUWHhEeCCRJbbKD_TsQ" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_wwc0QGHhEeCCRJbbKD_TsQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_wwmlQGHhEeCCRJbbKD_TsQ" name="createField">
+ <ownedComment xmi:id="_wwmlQWHhEeCCRJbbKD_TsQ">
+ <body>
+ * Creates and returns a field in this type with the
+ * given contents.
+ * &lt;p>
+ * Optionally, the new element can be positioned before the specified
+ * sibling. If no sibling is specified, the element will be inserted
+ * as the last field declaration in this type.&lt;/p>
+ *
+ * &lt;p>It is possible that a field with the same name already exists in this type.
+ * The value of the &lt;code>force&lt;/code> parameter affects the resolution of
+ * such a conflict:&lt;ul>
+ * &lt;li> &lt;code>true&lt;/code> - in this case the field is created with the new contents&lt;/li>
+ * &lt;li> &lt;code>false&lt;/code> - in this case a &lt;code>JavaModelException&lt;/code> is thrown&lt;/li>
+ * &lt;/ul>&lt;/p>
+ *
+ * @param contents the given contents
+ * @param sibling the given sibling
+ * @param force a flag in case the same name already exists in this type
+ * @param monitor the given progress monitor
+ * @exception JavaModelException if the element could not be created. Reasons include:
+ * &lt;ul>
+ * &lt;li> This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;li> A &lt;code>CoreException&lt;/code> occurred while updating an underlying resource
+ * &lt;li> The specified sibling is not a child of this type (INVALID_SIBLING)
+ * &lt;li> The contents could not be recognized as a field declaration (INVALID_CONTENTS)
+ * &lt;li> This type is read-only (binary) (READ_ONLY)
+ * &lt;li> There was a naming collision with an existing field (NAME_COLLISION)
+ * &lt;/ul>
+ * @return a field in this type with the given contents
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_ww5gMGHhEeCCRJbbKD_TsQ" type="_kNQCMGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_wxDRMGHhEeCCRJbbKD_TsQ" name="contents" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_wxMbIGHhEeCCRJbbKD_TsQ" name="sibling" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_wxMbIWHhEeCCRJbbKD_TsQ" name="force" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_wxWMIGHhEeCCRJbbKD_TsQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_wxf9IGHhEeCCRJbbKD_TsQ" name="createInitializer">
+ <ownedComment xmi:id="_wxf9IWHhEeCCRJbbKD_TsQ">
+ <body>
+ * Creates and returns a static initializer in this type with the
+ * given contents.
+ * &lt;p>
+ * Optionally, the new element can be positioned before the specified
+ * sibling. If no sibling is specified, the new initializer is positioned
+ * after the last existing initializer declaration, or as the first member
+ * in the type if there are no initializers.&lt;/p>
+ *
+ * @param contents the given contents
+ * @param sibling the given sibling
+ * @param monitor the given progress monitor
+ * @exception JavaModelException if the element could not be created. Reasons include:
+ * &lt;ul>
+ * &lt;li> This element does not exist
+ * &lt;li> A &lt;code>CoreException&lt;/code> occurred while updating an underlying resource
+ * &lt;li> The specified sibling is not a child of this type (INVALID_SIBLING)
+ * &lt;li> The contents could not be recognized as an initializer declaration (INVALID_CONTENTS)
+ * &lt;li> This type is read-only (binary) (READ_ONLY)
+ * &lt;/ul>
+ * @return a static initializer in this type with the given contents
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_wxf9ImHhEeCCRJbbKD_TsQ" type="_kNjkMmEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_wxpHEGHhEeCCRJbbKD_TsQ" name="contents" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_wxpHEWHhEeCCRJbbKD_TsQ" name="sibling" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_wyPkAGHhEeCCRJbbKD_TsQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_wyPkAWHhEeCCRJbbKD_TsQ" name="createMethod">
+ <ownedComment xmi:id="_wyPkAmHhEeCCRJbbKD_TsQ">
+ <body>
+ * Creates and returns a method or constructor in this type with the
+ * given contents.
+ * &lt;p>
+ * Optionally, the new element can be positioned before the specified
+ * sibling. If no sibling is specified, the element will be appended
+ * to this type.
+ *
+ * &lt;p>It is possible that a method with the same signature already exists in this type.
+ * The value of the &lt;code>force&lt;/code> parameter affects the resolution of
+ * such a conflict:&lt;ul>
+ * &lt;li> &lt;code>true&lt;/code> - in this case the method is created with the new contents&lt;/li>
+ * &lt;li> &lt;code>false&lt;/code> - in this case a &lt;code>JavaModelException&lt;/code> is thrown&lt;/li>
+ * &lt;/ul>&lt;/p>
+ *
+ * @param contents the given contents
+ * @param sibling the given sibling
+ * @param force a flag in case the same name already exists in this type
+ * @param monitor the given progress monitor
+ * @exception JavaModelException if the element could not be created. Reasons include:
+ * &lt;ul>
+ * &lt;li> This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;li> A &lt;code>CoreException&lt;/code> occurred while updating an underlying resource
+ * &lt;li> The specified sibling is not a child of this type (INVALID_SIBLING)
+ * &lt;li> The contents could not be recognized as a method or constructor
+ * declaration (INVALID_CONTENTS)
+ * &lt;li> This type is read-only (binary) (READ_ONLY)
+ * &lt;li> There was a naming collision with an existing method (NAME_COLLISION)
+ * &lt;/ul>
+ * @return a method or constructor in this type with the given contents
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_wyYt8GHhEeCCRJbbKD_TsQ" type="_knoREGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_wyYt8WHhEeCCRJbbKD_TsQ" name="contents" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_wyie8GHhEeCCRJbbKD_TsQ" name="sibling" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_wyie8WHhEeCCRJbbKD_TsQ" name="force" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_wysP8GHhEeCCRJbbKD_TsQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_wy1Z4GHhEeCCRJbbKD_TsQ" name="createType">
+ <ownedComment xmi:id="_wy1Z4WHhEeCCRJbbKD_TsQ">
+ <body>
+ * Creates and returns a type in this type with the
+ * given contents.
+ * &lt;p>
+ * Optionally, the new type can be positioned before the specified
+ * sibling. If no sibling is specified, the type will be appended
+ * to this type.&lt;/p>
+ *
+ * &lt;p>It is possible that a type with the same name already exists in this type.
+ * The value of the &lt;code>force&lt;/code> parameter affects the resolution of
+ * such a conflict:&lt;ul>
+ * &lt;li> &lt;code>true&lt;/code> - in this case the type is created with the new contents&lt;/li>
+ * &lt;li> &lt;code>false&lt;/code> - in this case a &lt;code>JavaModelException&lt;/code> is thrown&lt;/li>
+ * &lt;/ul>&lt;/p>
+ *
+ * @param contents the given contents
+ * @param sibling the given sibling
+ * @param force a flag in case the same name already exists in this type
+ * @param monitor the given progress monitor
+ * @exception JavaModelException if the element could not be created. Reasons include:
+ * &lt;ul>
+ * &lt;li> This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;li> A &lt;code>CoreException&lt;/code> occurred while updating an underlying resource
+ * &lt;li> The specified sibling is not a child of this type (INVALID_SIBLING)
+ * &lt;li> The contents could not be recognized as a type declaration (INVALID_CONTENTS)
+ * &lt;li> This type is read-only (binary) (READ_ONLY)
+ * &lt;li> There was a naming collision with an existing field (NAME_COLLISION)
+ * &lt;/ul>
+ * @return a type in this type with the given contents
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_wy1Z4mHhEeCCRJbbKD_TsQ" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_wy1Z42HhEeCCRJbbKD_TsQ" name="contents" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_wy_K4GHhEeCCRJbbKD_TsQ" name="sibling" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_wzIU0GHhEeCCRJbbKD_TsQ" name="force" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_wzIU0WHhEeCCRJbbKD_TsQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_wzSF0GHhEeCCRJbbKD_TsQ" name="findMethods">
+ <ownedComment xmi:id="_wzSF0WHhEeCCRJbbKD_TsQ">
+ <body>
+ * Finds the methods in this type that correspond to
+ * the given method.
+ * A method m1 corresponds to another method m2 if:
+ * &lt;ul>
+ * &lt;li>m1 has the same element name as m2.
+ * &lt;li>m1 has the same number of arguments as m2 and
+ * the simple names of the argument types must be equals.
+ * &lt;li>m1 exists.
+ * &lt;/ul>
+ * @param method the given method
+ * @return the found method or &lt;code>null&lt;/code> if no such methods can be found.
+ *
+ * @since 2.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_wzSF0mHhEeCCRJbbKD_TsQ" type="_knoREGEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wzlAwGHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wzb20GHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_wzuxwGHhEeCCRJbbKD_TsQ" name="method" type="_knoREGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_wzuxwWHhEeCCRJbbKD_TsQ" name="getChildrenForCategory">
+ <ownedComment xmi:id="_wzuxwmHhEeCCRJbbKD_TsQ">
+ <body>
+ * Returns the children of this type that have the given category as a &lt;code>@category&lt;/code> tag.
+ * Returns an empty array if no children with this category exist.
+ *
+ * &lt;p>
+ * The results are listed in the order in which they appear in the source or class file.
+ * &lt;/p>
+ *
+ * @return the children for the given category.
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @since 3.2
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_wz4iwGHhEeCCRJbbKD_TsQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w0BssGHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wz4iwWHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_w0BssWHhEeCCRJbbKD_TsQ" name="category" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w0LdsGHhEeCCRJbbKD_TsQ" name="getElementName">
+ <ownedComment xmi:id="_w0LdsWHhEeCCRJbbKD_TsQ">
+ <body>
+ * Returns the simple name of this type, unqualified by package or enclosing type.
+ * This is a handle-only method.
+ *
+ * @return the simple name of this type
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w0LdsmHhEeCCRJbbKD_TsQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w0UnoGHhEeCCRJbbKD_TsQ" name="getField">
+ <ownedComment xmi:id="_w0UnoWHhEeCCRJbbKD_TsQ">
+ <body>
+ * Returns the field with the specified name
+ * in this type (for example, &lt;code>&quot;bar&quot;&lt;/code>).
+ * This is a handle-only method. The field may or may not exist.
+ *
+ * @param name the given name
+ * @return the field with the specified name in this type
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w0UnomHhEeCCRJbbKD_TsQ" type="_kNQCMGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_w0eYoGHhEeCCRJbbKD_TsQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w0eYoWHhEeCCRJbbKD_TsQ" name="getFields">
+ <ownedComment xmi:id="_w0eYomHhEeCCRJbbKD_TsQ">
+ <body>
+ * Returns the fields declared by this type in the order in which they appear
+ * in the source or class file. For binary types, this includes synthetic fields.
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return the fields declared by this type
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w0oJoGHhEeCCRJbbKD_TsQ" type="_kNQCMGEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w0xTkGHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w0oJoWHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w0xTkWHhEeCCRJbbKD_TsQ" name="getFullyQualifiedName">
+ <ownedComment xmi:id="_w0xTkmHhEeCCRJbbKD_TsQ">
+ <body>
+ * Returns the fully qualified name of this type,
+ * including qualification for any containing types and packages.
+ * This is the name of the package, followed by &lt;code>'.'&lt;/code>,
+ * followed by the type-qualified name.
+ * &lt;p>
+ * &lt;b>Note&lt;/b>: The enclosing type separator used in the type-qualified
+ * name is &lt;code>'$'&lt;/code>, not &lt;code>'.'&lt;/code>.
+ * &lt;/p>
+ * This method is fully equivalent to &lt;code>getFullyQualifiedName('$')&lt;/code>.
+ * This is a handle-only method.
+ *
+ * @see IType#getTypeQualifiedName()
+ * @see IType#getFullyQualifiedName(char)
+ * @return the fully qualified name of this type
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w07EkGHhEeCCRJbbKD_TsQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w1g6cGHhEeCCRJbbKD_TsQ" name="getFullyQualifiedName">
+ <ownedComment xmi:id="_w1g6cWHhEeCCRJbbKD_TsQ">
+ <body>
+ * Returns the fully qualified name of this type,
+ * including qualification for any containing types and packages.
+ * This is the name of the package, followed by &lt;code>'.'&lt;/code>,
+ * followed by the type-qualified name using the &lt;code>enclosingTypeSeparator&lt;/code>.
+ *
+ * For example:
+ * &lt;ul>
+ * &lt;li>the fully qualified name of a class B defined as a member of a class A in a compilation unit A.java
+ * in a package x.y using the '.' separator is &quot;x.y.A.B&quot;&lt;/li>
+ * &lt;li>the fully qualified name of a class B defined as a member of a class A in a compilation unit A.java
+ * in a package x.y using the '$' separator is &quot;x.y.A$B&quot;&lt;/li>
+ * &lt;li>the fully qualified name of a binary type whose class file is x/y/A$B.class
+ * using the '.' separator is &quot;x.y.A.B&quot;&lt;/li>
+ * &lt;li>the fully qualified name of a binary type whose class file is x/y/A$B.class
+ * using the '$' separator is &quot;x.y.A$B&quot;&lt;/li>
+ * &lt;li>the fully qualified name of an anonymous binary type whose class file is x/y/A$1.class
+ * using the '.' separator is &quot;x.y.A.1&quot;&lt;/li>
+ * &lt;/ul>
+ *
+ * This is a handle-only method.
+ *
+ * @param enclosingTypeSeparator the given enclosing type separator
+ * @return the fully qualified name of this type, including qualification for any containing types and packages
+ * @see IType#getTypeQualifiedName(char)
+ * @since 2.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w1qrcGHhEeCCRJbbKD_TsQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_w1qrcWHhEeCCRJbbKD_TsQ" name="enclosingTypeSeparator" type="_dUn9g2EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w10ccGHhEeCCRJbbKD_TsQ" name="getFullyQualifiedParameterizedName">
+ <ownedComment xmi:id="_w10ccWHhEeCCRJbbKD_TsQ">
+ <body>
+ * Returns this type's fully qualified name using a '.' enclosing type separator
+ * followed by its type parameters between angle brackets if it is a generic type.
+ * For example, &quot;p.X&amp;lt;T&amp;gt;&quot;, &quot;java.util.Map&amp;lt;java.lang.String, p.X&amp;gt;&quot;
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return the fully qualified parameterized representation of this type
+ * @since 3.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w10ccmHhEeCCRJbbKD_TsQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w19mYGHhEeCCRJbbKD_TsQ" name="getInitializer">
+ <ownedComment xmi:id="_w19mYWHhEeCCRJbbKD_TsQ">
+ <body>
+ * Returns the initializer with the specified position relative to
+ * the order they are defined in the source.
+ * Numbering starts at 1 (thus the first occurrence is occurrence 1, not occurrence 0).
+ * This is a handle-only method. The initializer may or may not be present.
+ *
+ * @param occurrenceCount the specified position
+ * @return the initializer with the specified position relative to the order they are defined in the source
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w19mYmHhEeCCRJbbKD_TsQ" type="_kNjkMmEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_w2HXYGHhEeCCRJbbKD_TsQ" name="occurrenceCount" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w2RIYGHhEeCCRJbbKD_TsQ" name="getInitializers">
+ <ownedComment xmi:id="_w2RIYWHhEeCCRJbbKD_TsQ">
+ <body>
+ * Returns the initializers declared by this type. For binary types this is an
+ * empty collection. For source types, the results are listed in the order in
+ * which they appear in the source.
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return the initializers declared by this type
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w2RIYmHhEeCCRJbbKD_TsQ" type="_kNjkMmEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w2aSUWHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w2aSUGHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w2kDUGHhEeCCRJbbKD_TsQ" name="getKey">
+ <ownedComment xmi:id="_w2kDUWHhEeCCRJbbKD_TsQ">
+ <body>
+ * Returns the binding key for this type only if the given type is {@link #isResolved() resolved}.
+ * A binding key is a key that uniquely identifies this type. It allows access
+ * to generic info for parameterized types.
+ *
+ * &lt;p>If the given type is not resolved, the returned key is simply the java element's key.
+ * &lt;/p>
+ * @return the binding key for this type
+ * @see org.eclipse.jdt.core.dom.IBinding#getKey()
+ * @see BindingKey
+ * @since 3.1
+ * @see #isResolved()
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w2kDUmHhEeCCRJbbKD_TsQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w2tNQGHhEeCCRJbbKD_TsQ" name="getMethod">
+ <ownedComment xmi:id="_w2tNQWHhEeCCRJbbKD_TsQ">
+ <body>
+ * Returns the method with the specified name and parameter types
+ * in this type (for example, &lt;code>&quot;foo&quot;, {&quot;I&quot;, &quot;QString;&quot;}&lt;/code>).
+ * To get the handle for a constructor, the name specified must be the
+ * simple name of the enclosing type.
+ * This is a handle-only method. The method may or may not be present.
+ * &lt;p>
+ * The type signatures may be either unresolved (for source types)
+ * or resolved (for binary types), and either basic (for basic types)
+ * or rich (for parameterized types). See {@link Signature} for details.
+ * &lt;/p>
+ *
+ * @param name the given name
+ * @param parameterTypeSignatures the given parameter types
+ * @return the method with the specified name and parameter types in this type
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w2tNQmHhEeCCRJbbKD_TsQ" type="_knoREGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_w22-QGHhEeCCRJbbKD_TsQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_w3AvQGHhEeCCRJbbKD_TsQ" name="parameterTypeSignatures" type="_dSiS02EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w3J5MWHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w3J5MGHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w3TqMGHhEeCCRJbbKD_TsQ" name="getMethods">
+ <ownedComment xmi:id="_w3TqMWHhEeCCRJbbKD_TsQ">
+ <body>
+ * Returns the methods and constructors declared by this type.
+ * For binary types, this may include the special &lt;code>&amp;lt;clinit&amp;gt;&lt;/code> method
+ * and synthetic methods.
+ * &lt;p>
+ * The results are listed in the order in which they appear in the source or class file.
+ * &lt;/p>
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return the methods and constructors declared by this type
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w3TqMmHhEeCCRJbbKD_TsQ" type="_knoREGEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w3dbMWHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w3dbMGHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w3mlIGHhEeCCRJbbKD_TsQ" name="getPackageFragment">
+ <ownedComment xmi:id="_w3mlIWHhEeCCRJbbKD_TsQ">
+ <body>
+ * Returns the package fragment in which this element is defined.
+ * This is a handle-only method.
+ *
+ * @return the package fragment in which this element is defined
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w3mlImHhEeCCRJbbKD_TsQ" type="_kqTxoGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w3wWIGHhEeCCRJbbKD_TsQ" name="getSuperclassName">
+ <ownedComment xmi:id="_w3wWIWHhEeCCRJbbKD_TsQ">
+ <body>
+ * Returns the name of this type's superclass, or &lt;code>null&lt;/code>
+ * for source types that do not specify a superclass.
+ * &lt;p>
+ * For interfaces, the superclass name is always &lt;code>&quot;java.lang.Object&quot;&lt;/code>.
+ * For source types, the name as declared is returned, for binary types,
+ * the resolved, qualified name is returned.
+ * For anonymous types, the superclass name is the name appearing after the 'new' keyword'.
+ * If the superclass is a parameterized type, the string
+ * may include its type arguments enclosed in &quot;&amp;lt;&amp;gt;&quot;.
+ * If the returned string is needed for anything other than display
+ * purposes, use {@link #getSuperclassTypeSignature()} which returns
+ * a structured type signature string containing more precise information.
+ * &lt;/p>
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return the name of this type's superclass, or &lt;code>null&lt;/code> for source types that do not specify a superclass
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w3wWImHhEeCCRJbbKD_TsQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w35gEGHhEeCCRJbbKD_TsQ" name="getSuperclassTypeSignature">
+ <ownedComment xmi:id="_w35gEWHhEeCCRJbbKD_TsQ">
+ <body>
+ * Returns the type signature of this type's superclass, or
+ * &lt;code>null&lt;/code> if none.
+ * &lt;p>
+ * The type signature may be either unresolved (for source types)
+ * or resolved (for binary types), and either basic (for basic types)
+ * or rich (for parameterized types). See {@link Signature} for details.
+ * &lt;/p>
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return the type signature of this type's superclass, or
+ * &lt;code>null&lt;/code> if none
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w35gEmHhEeCCRJbbKD_TsQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w4DREGHhEeCCRJbbKD_TsQ" name="getSuperInterfaceTypeSignatures">
+ <ownedComment xmi:id="_w4DREWHhEeCCRJbbKD_TsQ">
+ <body>
+ * Returns the type signatures of the interfaces that this type
+ * implements or extends, in the order in which they are listed in the
+ * source.
+ * &lt;p>
+ * For classes and enum types, this gives the interfaces that this
+ * class implements. For interfaces and annotation types,
+ * this gives the interfaces that this interface extends.
+ * An empty collection is returned if this type does not implement or
+ * extend any interfaces. For anonymous types, an empty collection is
+ * always returned.
+ * &lt;/p>
+ * &lt;p>
+ * The type signatures may be either unresolved (for source types)
+ * or resolved (for binary types), and either basic (for basic types)
+ * or rich (for parameterized types). See {@link Signature} for details.
+ * &lt;/p>
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return the type signatures of interfaces that this type implements
+ * or extends, in the order in which they are listed in the source,
+ * an empty collection if none
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w4DREmHhEeCCRJbbKD_TsQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w4NCEWHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w4NCEGHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w4WMAGHhEeCCRJbbKD_TsQ" name="getSuperInterfaceNames">
+ <ownedComment xmi:id="_w4WMAWHhEeCCRJbbKD_TsQ">
+ <body>
+ * Returns the names of interfaces that this type implements or extends,
+ * in the order in which they are listed in the source.
+ * &lt;p>
+ * For classes, this gives the interfaces that this class implements.
+ * For interfaces, this gives the interfaces that this interface extends.
+ * An empty collection is returned if this type does not implement or
+ * extend any interfaces. For source types, simple names are returned,
+ * for binary types, qualified names are returned.
+ * For anonymous types, an empty collection is always returned.
+ * If the list of supertypes includes parameterized types,
+ * the string may include type arguments enclosed in &quot;&amp;lt;&amp;gt;&quot;.
+ * If the result is needed for anything other than display
+ * purposes, use {@link #getSuperInterfaceTypeSignatures()} which returns
+ * structured signature strings containing more precise information.
+ * &lt;/p>
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return the names of interfaces that this type implements or extends, in the order in which they are listed in the source,
+ * an empty collection if none
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w4WMAmHhEeCCRJbbKD_TsQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w4puAWHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w4puAGHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w4y38GHhEeCCRJbbKD_TsQ" name="getTypeParameterSignatures">
+ <ownedComment xmi:id="_w4y38WHhEeCCRJbbKD_TsQ">
+ <body>
+ * Returns the formal type parameter signatures for this type.
+ * Returns an empty array if this type has no formal type parameters.
+ * &lt;p>
+ * The formal type parameter signatures may be either unresolved (for source
+ * types) or resolved (for binary types). See {@link Signature} for details.
+ * &lt;/p>
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return the formal type parameter signatures of this type,
+ * in the order declared in the source, an empty array if none
+ * @see Signature
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w4y38mHhEeCCRJbbKD_TsQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w48o8WHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w48o8GHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w5Fy4GHhEeCCRJbbKD_TsQ" name="getTypeParameters">
+ <ownedComment xmi:id="_w5Fy4WHhEeCCRJbbKD_TsQ">
+ <body>
+ * Returns the formal type parameters for this type.
+ * Returns an empty array if this type has no formal type parameters.
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return the formal type parameters of this type,
+ * in the order declared in the source, an empty array if none
+ * @since 3.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w5Fy4mHhEeCCRJbbKD_TsQ" type="_kxKnkGEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w5ZU4GHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w5Pj4GHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w5ZU4WHhEeCCRJbbKD_TsQ" name="getType">
+ <ownedComment xmi:id="_w5ZU4mHhEeCCRJbbKD_TsQ">
+ <body>
+ * Returns the member type declared in this type with the given simple name.
+ * This is a handle-only method. The type may or may not exist.
+ *
+ * @param name the given simple name
+ * @return the member type declared in this type with the given simple name
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w5ie0GHhEeCCRJbbKD_TsQ" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_w5ie0WHhEeCCRJbbKD_TsQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w5sP0GHhEeCCRJbbKD_TsQ" name="getTypeParameter">
+ <ownedComment xmi:id="_w5sP0WHhEeCCRJbbKD_TsQ">
+ <body>
+ * Returns the type parameter declared in this type with the given name.
+ * This is a handle-only method. The type parameter may or may not exist.
+ *
+ * @param name the given simple name
+ * @return the type parameter declared in this type with the given name
+ * @since 3.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w5sP0mHhEeCCRJbbKD_TsQ" type="_kxKnkGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_w5_KwGHhEeCCRJbbKD_TsQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w6I7wGHhEeCCRJbbKD_TsQ" name="getTypeQualifiedName">
+ <ownedComment xmi:id="_w6I7wWHhEeCCRJbbKD_TsQ">
+ <body>
+ * Returns the type-qualified name of this type,
+ * including qualification for any enclosing types,
+ * but not including package qualification.
+ * For source types, this consists of the simple names of any enclosing types,
+ * separated by &lt;code>'$'&lt;/code>, followed by the simple name of this type
+ * or the occurrence count of this type if it is anonymous.
+ * For binary types, this is the name of the class file without the &quot;.class&quot; suffix.
+ * This method is fully equivalent to &lt;code>getTypeQualifiedName('$')&lt;/code>.
+ * This is a handle-only method.
+ *
+ * @see #getTypeQualifiedName(char)
+ * @return the type-qualified name of this type
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w6SFsGHhEeCCRJbbKD_TsQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w64ioGHhEeCCRJbbKD_TsQ" name="getTypeQualifiedName">
+ <ownedComment xmi:id="_w64ioWHhEeCCRJbbKD_TsQ">
+ <body>
+ * Returns the type-qualified name of this type,
+ * including qualification for any enclosing types,
+ * but not including package qualification.
+ * For source types, this consists of the simple names of any enclosing types,
+ * separated by &lt;code>enclosingTypeSeparator&lt;/code>, followed by the
+ * simple name of this type or the occurrence count of this type if it is anonymous.
+ * For binary types, this is the name of the class file without the &quot;.class&quot; suffix,
+ * and - since 3.4 - the '$' characters in the class file name are replaced with the
+ * &lt;code>enclosingTypeSeparator&lt;/code> character.
+ *
+ * For example:
+ * &lt;ul>
+ * &lt;li>the type qualified name of a class B defined as a member of a class A
+ * using the '.' separator is &quot;A.B&quot;&lt;/li>
+ * &lt;li>the type qualified name of a class B defined as a member of a class A
+ * using the '$' separator is &quot;A$B&quot;&lt;/li>
+ * &lt;li>the type qualified name of a binary type whose class file is A$B.class
+ * using the '.' separator is &quot;A.B&quot;&lt;/li>
+ * &lt;li>the type qualified name of a binary type whose class file is A$B.class
+ * using the '$' separator is &quot;A$B&quot;&lt;/li>
+ * &lt;li>the type qualified name of an anonymous binary type whose class file is A$1.class
+ * using the '.' separator is &quot;A.1&quot;&lt;/li>
+ * &lt;/ul>
+ *
+ * This is a handle-only method.
+ *
+ * @param enclosingTypeSeparator the specified enclosing type separator
+ * @return the type-qualified name of this type
+ * @since 2.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w64iomHhEeCCRJbbKD_TsQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_w7eYgGHhEeCCRJbbKD_TsQ" name="enclosingTypeSeparator" type="_dUn9g2EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w7eYgWHhEeCCRJbbKD_TsQ" name="getTypes">
+ <ownedComment xmi:id="_w7eYgmHhEeCCRJbbKD_TsQ">
+ <body>
+ * Returns the immediate member types declared by this type.
+ * The results are listed in the order in which they appear in the source or class file.
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return the immediate member types declared by this type
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w7oJgGHhEeCCRJbbKD_TsQ" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w7x6gGHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w7oJgWHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w77EcGHhEeCCRJbbKD_TsQ" name="isAnonymous">
+ <ownedComment xmi:id="_w77EcWHhEeCCRJbbKD_TsQ">
+ <body>
+ * Returns whether this type represents an anonymous type.
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return true if this type represents an anonymous type, false otherwise
+ * @since 2.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w77EcmHhEeCCRJbbKD_TsQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w8E1cGHhEeCCRJbbKD_TsQ" name="isClass">
+ <ownedComment xmi:id="_w8E1cWHhEeCCRJbbKD_TsQ">
+ <body>
+ * Returns whether this type represents a class.
+ * &lt;p>
+ * Note that a class can neither be an interface, an enumeration class, nor an annotation type.
+ * &lt;/p>
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return true if this type represents a class, false otherwise
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w8E1cmHhEeCCRJbbKD_TsQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w8OmcGHhEeCCRJbbKD_TsQ" name="isEnum">
+ <ownedComment xmi:id="_w8OmcWHhEeCCRJbbKD_TsQ">
+ <body>
+ * Returns whether this type represents an enumeration class.
+ * &lt;p>
+ * Note that an enumeration class can neither be a class, an interface, nor an annotation type.
+ * &lt;/p>
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return true if this type represents an enumeration class,
+ * false otherwise
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w8OmcmHhEeCCRJbbKD_TsQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w8XwYGHhEeCCRJbbKD_TsQ" name="isInterface">
+ <ownedComment xmi:id="_w8XwYWHhEeCCRJbbKD_TsQ">
+ <body>
+ * Returns whether this type represents an interface.
+ * &lt;p>
+ * Note that an interface can also be an annotation type, but it can neither be a class nor an enumeration class.
+ * &lt;/p>
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return true if this type represents an interface, false otherwise
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w8XwYmHhEeCCRJbbKD_TsQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w8hhYGHhEeCCRJbbKD_TsQ" name="isAnnotation">
+ <ownedComment xmi:id="_w8hhYWHhEeCCRJbbKD_TsQ">
+ <body>
+ * Returns whether this type represents an annotation type.
+ * &lt;p>
+ * Note that an annotation type is also an interface, but it can neither be a class nor an enumeration class.
+ * &lt;/p>
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return true if this type represents an annotation type,
+ * false otherwise
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w8hhYmHhEeCCRJbbKD_TsQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w8qrUGHhEeCCRJbbKD_TsQ" name="isLocal">
+ <ownedComment xmi:id="_w8qrUWHhEeCCRJbbKD_TsQ">
+ <body>
+ * Returns whether this type represents a local type.
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return true if this type represents a local type, false otherwise
+ * @since 2.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w8qrUmHhEeCCRJbbKD_TsQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w80cUGHhEeCCRJbbKD_TsQ" name="isMember">
+ <ownedComment xmi:id="_w80cUWHhEeCCRJbbKD_TsQ">
+ <body>
+ * Returns whether this type represents a member type.
+ *
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return true if this type represents a member type, false otherwise
+ * @since 2.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w80cUmHhEeCCRJbbKD_TsQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w8-NUGHhEeCCRJbbKD_TsQ" name="isResolved">
+ <ownedComment xmi:id="_w8-NUWHhEeCCRJbbKD_TsQ">
+ <body>
+ * Returns whether this type represents a resolved type.
+ * If a type is resolved, its key contains resolved information.
+ *
+ * @return whether this type represents a resolved type.
+ * @since 3.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w8-NUmHhEeCCRJbbKD_TsQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w9HXQGHhEeCCRJbbKD_TsQ" name="loadTypeHierachy">
+ <ownedComment xmi:id="_w9HXQWHhEeCCRJbbKD_TsQ">
+ <body>
+ * Loads a previously saved ITypeHierarchy from an input stream. A type hierarchy can
+ * be stored using ITypeHierachy#store(OutputStream).
+ *
+ * Only hierarchies originally created by the following methods can be loaded:
+ * &lt;ul>
+ * &lt;li>IType#newSupertypeHierarchy(IProgressMonitor)&lt;/li>
+ * &lt;li>IType#newTypeHierarchy(IJavaProject, IProgressMonitor)&lt;/li>
+ * &lt;li>IType#newTypeHierarchy(IProgressMonitor)&lt;/li>
+ * &lt;/ul>
+ *
+ * @param input stream where hierarchy will be read
+ * @param monitor the given progress monitor
+ * @return the stored hierarchy
+ * @exception JavaModelException if the hierarchy could not be restored, reasons include:
+ * - type is not the focus of the hierarchy or
+ * - unable to read the input stream (wrong format, IOException during reading, ...)
+ * @see ITypeHierarchy#store(java.io.OutputStream, IProgressMonitor)
+ * @since 2.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w9HXQmHhEeCCRJbbKD_TsQ" type="_kwkKoGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_w9RIQGHhEeCCRJbbKD_TsQ" name="input" type="_nDyxgGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_w9a5QGHhEeCCRJbbKD_TsQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w9a5QWHhEeCCRJbbKD_TsQ" name="newSupertypeHierarchy">
+ <ownedComment xmi:id="_w9a5QmHhEeCCRJbbKD_TsQ">
+ <body>
+ * Creates and returns a type hierarchy for this type containing
+ * this type and all of its supertypes.
+ *
+ * @param monitor the given progress monitor
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return a type hierarchy for this type containing this type and all of its supertypes
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w9kDMGHhEeCCRJbbKD_TsQ" type="_kwkKoGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_w9t0MGHhEeCCRJbbKD_TsQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w92-IGHhEeCCRJbbKD_TsQ" name="newSupertypeHierarchy">
+ <ownedComment xmi:id="_w92-IWHhEeCCRJbbKD_TsQ">
+ <body>
+ * Creates and returns a type hierarchy for this type containing
+ * this type and all of its supertypes, considering types in the given
+ * working copies. In other words, the list of working copies will take
+ * precedence over their original compilation units in the workspace.
+ * &lt;p>
+ * Note that passing an empty working copy will be as if the original compilation
+ * unit had been deleted.
+ * &lt;/p>
+ *
+ * @param workingCopies the working copies that take precedence over their original compilation units
+ * @param monitor the given progress monitor
+ * @return a type hierarchy for this type containing this type and all of its supertypes
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w92-ImHhEeCCRJbbKD_TsQ" type="_kwkKoGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_w-AvIGHhEeCCRJbbKD_TsQ" name="workingCopies" type="_j-plgGEMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w-KgIGHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w-AvIWHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_w-TqEGHhEeCCRJbbKD_TsQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w-TqEWHhEeCCRJbbKD_TsQ" name="newSupertypeHierarchy">
+ <ownedComment xmi:id="_w-TqEmHhEeCCRJbbKD_TsQ">
+ <body>
+ * Creates and returns a type hierarchy for this type containing
+ * this type and all of its supertypes, considering types in the given
+ * working copies. In other words, the list of working copies will take
+ * precedence over their original compilation units in the workspace.
+ * &lt;p>
+ * Note that passing an empty working copy will be as if the original compilation
+ * unit had been deleted.
+ * &lt;/p>
+ *
+ * @param workingCopies the working copies that take precedence over their original compilation units
+ * @param monitor the given progress monitor
+ * @return a type hierarchy for this type containing this type and all of its supertypes
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @since 2.0
+ * @deprecated Use {@link #newSupertypeHierarchy(ICompilationUnit[], IProgressMonitor)} instead
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w-dbEGHhEeCCRJbbKD_TsQ" type="_kwkKoGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_w-nMEGHhEeCCRJbbKD_TsQ" name="workingCopies" type="_ky8wQGEMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w-wWAGHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w-nMEWHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_w-6HAGHhEeCCRJbbKD_TsQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w-6HAWHhEeCCRJbbKD_TsQ" name="newSupertypeHierarchy">
+ <ownedComment xmi:id="_w-6HAmHhEeCCRJbbKD_TsQ">
+ <body>
+ * Creates and returns a type hierarchy for this type containing
+ * this type and all of its supertypes, considering types in the
+ * working copies with the given owner.
+ * In other words, the owner's working copies will take
+ * precedence over their original compilation units in the workspace.
+ * &lt;p>
+ * Note that if a working copy is empty, it will be as if the original compilation
+ * unit had been deleted.
+ * &lt;p>
+ *
+ * @param owner the owner of working copies that take precedence over their original compilation units
+ * @param monitor the given progress monitor
+ * @return a type hierarchy for this type containing this type and all of its supertypes
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w_DQ8GHhEeCCRJbbKD_TsQ" type="_kwkKoGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_w_DQ8WHhEeCCRJbbKD_TsQ" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_w_NB8GHhEeCCRJbbKD_TsQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w_Wy8GHhEeCCRJbbKD_TsQ" name="newTypeHierarchy">
+ <ownedComment xmi:id="_w_Wy8WHhEeCCRJbbKD_TsQ">
+ <body>
+ * Creates and returns a type hierarchy for this type containing
+ * this type, all of its supertypes, and all its subtypes
+ * in the context of the given project.
+ *
+ * @param project the given project
+ * @param monitor the given progress monitor
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return a type hierarchy for this type containing
+ * this type, all of its supertypes, and all its subtypes
+ * in the context of the given project
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w_Wy8mHhEeCCRJbbKD_TsQ" type="_kwkKoGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_w_f84GHhEeCCRJbbKD_TsQ" name="project" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_w_pt4GHhEeCCRJbbKD_TsQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w_pt4WHhEeCCRJbbKD_TsQ" name="newTypeHierarchy">
+ <ownedComment xmi:id="_w_pt4mHhEeCCRJbbKD_TsQ">
+ <body>
+ * Creates and returns a type hierarchy for this type containing
+ * this type, all of its supertypes, and all its subtypes
+ * in the context of the given project, considering types in the
+ * working copies with the given owner.
+ * In other words, the owner's working copies will take
+ * precedence over their original compilation units in the workspace.
+ * &lt;p>
+ * Note that if a working copy is empty, it will be as if the original compilation
+ * unit had been deleted.
+ * &lt;p>
+ *
+ * @param project the given project
+ * @param owner the owner of working copies that take precedence over their original compilation units
+ * @param monitor the given progress monitor
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return a type hierarchy for this type containing
+ * this type, all of its supertypes, and all its subtypes
+ * in the context of the given project
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w_ze4GHhEeCCRJbbKD_TsQ" type="_kwkKoGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_w_8o0GHhEeCCRJbbKD_TsQ" name="project" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_w_8o0WHhEeCCRJbbKD_TsQ" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_xAGZ0GHhEeCCRJbbKD_TsQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_xAPjwGHhEeCCRJbbKD_TsQ" name="newTypeHierarchy">
+ <ownedComment xmi:id="_xAPjwWHhEeCCRJbbKD_TsQ">
+ <body>
+ * Creates and returns a type hierarchy for this type containing
+ * this type, all of its supertypes, and all its subtypes in the workspace.
+ *
+ * @param monitor the given progress monitor
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @return a type hierarchy for this type containing
+ * this type, all of its supertypes, and all its subtypes in the workspace
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_xAPjwmHhEeCCRJbbKD_TsQ" type="_kwkKoGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_xAZUwGHhEeCCRJbbKD_TsQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_xAjFwGHhEeCCRJbbKD_TsQ" name="newTypeHierarchy">
+ <ownedComment xmi:id="_xAjFwWHhEeCCRJbbKD_TsQ">
+ <body>
+ * Creates and returns a type hierarchy for this type containing
+ * this type, all of its supertypes, and all its subtypes in the workspace,
+ * considering types in the given working copies. In other words, the list of working
+ * copies that will take precedence over their original compilation units in the workspace.
+ * &lt;p>
+ * Note that passing an empty working copy will be as if the original compilation
+ * unit had been deleted.
+ *
+ * @param workingCopies the working copies that take precedence over their original compilation units
+ * @param monitor the given progress monitor
+ * @return a type hierarchy for this type containing
+ * this type, all of its supertypes, and all its subtypes in the workspace
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_xAjFwmHhEeCCRJbbKD_TsQ" type="_kwkKoGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_xAsPsGHhEeCCRJbbKD_TsQ" name="workingCopies" type="_j-plgGEMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xA2AsGHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xAsPsWHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_xA2AsWHhEeCCRJbbKD_TsQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_xA_xsGHhEeCCRJbbKD_TsQ" name="newTypeHierarchy">
+ <ownedComment xmi:id="_xA_xsWHhEeCCRJbbKD_TsQ">
+ <body>
+ * Creates and returns a type hierarchy for this type containing
+ * this type, all of its supertypes, and all its subtypes in the workspace,
+ * considering types in the given working copies. In other words, the list of working
+ * copies that will take precedence over their original compilation units in the workspace.
+ * &lt;p>
+ * Note that passing an empty working copy will be as if the original compilation
+ * unit had been deleted.
+ *
+ * @param workingCopies the working copies that take precedence over their original compilation units
+ * @param monitor the given progress monitor
+ * @return a type hierarchy for this type containing
+ * this type, all of its supertypes, and all its subtypes in the workspace
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @since 2.0
+ * @deprecated Use {@link #newTypeHierarchy(ICompilationUnit[], IProgressMonitor)} instead
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_xBI7oGHhEeCCRJbbKD_TsQ" type="_kwkKoGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_xBI7oWHhEeCCRJbbKD_TsQ" name="workingCopies" type="_ky8wQGEMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xBb2kGHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xBSsoGHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_xBlnkGHhEeCCRJbbKD_TsQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_xBlnkWHhEeCCRJbbKD_TsQ" name="newTypeHierarchy">
+ <ownedComment xmi:id="_xBlnkmHhEeCCRJbbKD_TsQ">
+ <body>
+ * Creates and returns a type hierarchy for this type containing
+ * this type, all of its supertypes, and all its subtypes in the workspace,
+ * considering types in the working copies with the given owner.
+ * In other words, the owner's working copies will take
+ * precedence over their original compilation units in the workspace.
+ * &lt;p>
+ * Note that if a working copy is empty, it will be as if the original compilation
+ * unit had been deleted.
+ * &lt;p>
+ *
+ * @param owner the owner of working copies that take precedence over their original compilation units
+ * @param monitor the given progress monitor
+ * @return a type hierarchy for this type containing
+ * this type, all of its supertypes, and all its subtypes in the workspace
+ * @exception JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource.
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_xBvYkGHhEeCCRJbbKD_TsQ" type="_kwkKoGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_xBvYkWHhEeCCRJbbKD_TsQ" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_xB4igGHhEeCCRJbbKD_TsQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_xCCTgGHhEeCCRJbbKD_TsQ" name="resolveType">
+ <ownedComment xmi:id="_xCCTgWHhEeCCRJbbKD_TsQ">
+ <body>
+ * Resolves the given type name within the context of this type (depending on the type hierarchy
+ * and its imports).
+ * &lt;p>
+ * Multiple answers might be found in case there are ambiguous matches.
+ * &lt;/p>
+ * &lt;p>
+ * Each matching type name is decomposed as an array of two strings, the first denoting the package
+ * name (dot-separated) and the second being the type name. The package name is empty if it is the
+ * default package. The type name is the type qualified name using a '.' enclosing type separator.
+ * &lt;/p>
+ * &lt;p>
+ * Returns &lt;code>null&lt;/code> if unable to find any matching type.
+ * &lt;/p>
+ *&lt;p>
+ * For example, resolution of &lt;code>&quot;Object&quot;&lt;/code> would typically return
+ * &lt;code>{{&quot;java.lang&quot;, &quot;Object&quot;}}&lt;/code>. Another resolution that returns
+ * &lt;code>{{&quot;&quot;, &quot;X.Inner&quot;}}&lt;/code> represents the inner type Inner defined in type X in the
+ * default package.
+ * &lt;/p>
+ *
+ * @param typeName the given type name
+ * @exception JavaModelException if code resolve could not be performed.
+ * @return the resolved type names or &lt;code>null&lt;/code> if unable to find any matching type
+ * @see #getTypeQualifiedName(char)
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_xCCTgmHhEeCCRJbbKD_TsQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xCMEgWHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xCMEgGHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_xCVOcGHhEeCCRJbbKD_TsQ" name="typeName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_xCx6YGHhEeCCRJbbKD_TsQ" name="resolveType">
+ <ownedComment xmi:id="_xCx6YWHhEeCCRJbbKD_TsQ">
+ <body>
+ * Resolves the given type name within the context of this type (depending on the type hierarchy
+ * and its imports) and using the given owner's working copies, considering types in the
+ * working copies with the given owner. In other words, the owner's working copies will take
+ * precedence over their original compilation units in the workspace.
+ * &lt;p>
+ * Note that if a working copy is empty, it will be as if the original compilation
+ * unit had been deleted.
+ * &lt;/p>
+ * &lt;p>Multiple answers might be found in case there are ambiguous matches.
+ * &lt;/p>
+ * &lt;p>
+ * Each matching type name is decomposed as an array of two strings, the first denoting the package
+ * name (dot-separated) and the second being the type name. The package name is empty if it is the
+ * default package. The type name is the type qualified name using a '.' enclosing type separator.
+ * &lt;/p>
+ * &lt;p>
+ * Returns &lt;code>null&lt;/code> if unable to find any matching type.
+ *&lt;/p>
+ *&lt;p>
+ * For example, resolution of &lt;code>&quot;Object&quot;&lt;/code> would typically return
+ * &lt;code>{{&quot;java.lang&quot;, &quot;Object&quot;}}&lt;/code>. Another resolution that returns
+ * &lt;code>{{&quot;&quot;, &quot;X.Inner&quot;}}&lt;/code> represents the inner type Inner defined in type X in the
+ * default package.
+ * &lt;/p>
+ *
+ * @param typeName the given type name
+ * @param owner the owner of working copies that take precedence over their original compilation units
+ * @exception JavaModelException if code resolve could not be performed.
+ * @return the resolved type names or &lt;code>null&lt;/code> if unable to find any matching type
+ * @see #getTypeQualifiedName(char)
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_xCx6YmHhEeCCRJbbKD_TsQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xDE1UGHhEeCCRJbbKD_TsQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xC7rYGHhEeCCRJbbKD_TsQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_xDOmUGHhEeCCRJbbKD_TsQ" name="typeName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_xDYXUGHhEeCCRJbbKD_TsQ" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_kwkKoGEMEeCdEc4VzBeWeQ" name="ITypeHierarchy">
+ <ownedComment xmi:id="_kwt7oGEMEeCdEc4VzBeWeQ">
+ <body>
+ * A type hierarchy provides navigations between a type and its resolved
+ * supertypes and subtypes for a specific type or for all types within a region.
+ * Supertypes may extend outside of the type hierarchy's region in which it was
+ * created such that the root of the hierarchy is always included. For example, if a type
+ * hierarchy is created for a &lt;code>java.io.File&lt;/code>, and the region the hierarchy was
+ * created in is the package fragment &lt;code>java.io&lt;/code>, the supertype
+ * &lt;code>java.lang.Object&lt;/code> will still be included. As a historical quirk,
+ * &lt;code>java.lang.Object&lt;/code> has always been included in type hierarchies
+ * created on interface types.
+ * &lt;p>
+ * A type hierarchy is static and can become stale. Although consistent when
+ * created, it does not automatically track changes in the model.
+ * As changes in the model potentially invalidate the hierarchy, change notifications
+ * are sent to registered &lt;code>ITypeHierarchyChangedListener&lt;/code>s. Listeners should
+ * use the &lt;code>exists&lt;/code> method to determine if the hierarchy has become completely
+ * invalid (for example, when the type or project the hierarchy was created on
+ * has been removed). To refresh a hierarchy, use the &lt;code>refresh&lt;/code> method.
+ * &lt;/p>
+ * &lt;p>
+ * The type hierarchy may contain cycles due to malformed supertype declarations.
+ * Most type hierarchy queries are oblivious to cycles; the &lt;code>getAll* &lt;/code>
+ * methods are implemented such that they are unaffected by cycles.
+ * &lt;/p>
+ *
+ * @noimplement This interface is not intended to be implemented by clients.
+ </body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_kwt7oWEMEeCdEc4VzBeWeQ" name="ITypeHierarchyChangedListener">
+ <ownedComment xmi:id="_kw3soGEMEeCdEc4VzBeWeQ">
+ <body>
+ * A listener which gets notified when a particular type hierarchy object
+ * changes.
+ * &lt;p>
+ * This interface may be implemented by clients.
+ * &lt;/p>
+ </body>
+ </ownedComment>
+ <ownedOperation xmi:id="_kw3soWEMEeCdEc4VzBeWeQ" name="typeHierarchyChanged">
+ <ownedComment xmi:id="_kw3somEMEeCdEc4VzBeWeQ">
+ <body>
+ * Notifies that the given type hierarchy has changed in some way and should
+ * be refreshed at some point to make it consistent with the current state of
+ * the Java model.
+ *
+ * @param typeHierarchy the given type hierarchy
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kw3so2EMEeCdEc4VzBeWeQ" name="typeHierarchy" type="_kwkKoGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_kxKnkGEMEeCdEc4VzBeWeQ" name="ITypeParameter">
+ <ownedComment xmi:id="_kxKnkWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Represents a type parameter defined by a type or a method
+ * in a compilation unit or a class file.
+ * &lt;p>
+ * Type parameters are obtained using {@link IType#getTypeParameter(String)} and
+ * {@link IMethod#getTypeParameter(String)}.
+ * &lt;/p>&lt;p>
+ * Note that type parameters are not children of their declaring type or method. To get a list
+ * of the type parameters use {@link IType#getTypeParameters()} for a type and use
+ * {@link IMethod#getTypeParameters()} for a method.
+ * &lt;/p>
+ *
+ * @since 3.1
+ * @noimplement This interface is not intended to be implemented by clients.
+ </body>
+ </ownedComment>
+ <generalization xmi:id="_kxKnkmEMEeCdEc4VzBeWeQ" general="_kO5A8GEMEeCdEc4VzBeWeQ"/>
+ <generalization xmi:id="_kxKnk2EMEeCdEc4VzBeWeQ" general="_kuCbEGEMEeCdEc4VzBeWeQ"/>
+ <ownedOperation xmi:id="_kxUYkGEMEeCdEc4VzBeWeQ" name="getBounds">
+ <ownedComment xmi:id="_kxUYkWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the names of the class and interface bounds of this type parameter. Returns an empty
+ * array if this type parameter has no bounds. A bound name is the name as it appears in the
+ * source (without the &lt;code>extends&lt;/code> keyword) if the type parameter comes from a
+ * compilation unit. It is the dot-separated fully qualified name of the bound if the type
+ * parameter comes from a class file.
+ *
+ * @return the names of the bounds
+ * @throws JavaModelException if this element does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kxUYkmEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kxUYlGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kxUYk2EMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kxUYlWEMEeCdEc4VzBeWeQ" name="getBoundsSignatures">
+ <ownedComment xmi:id="_kxUYlmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the signatures for this type parameter's bounds. The type parameter may have
+ * been declared as part of a type or a method. The signatures represent only the individual
+ * bounds and do not include the type variable name or the &lt;code>extends&lt;/code> keyword.
+ * The signatures may be either unresolved (for source types) or resolved (for binary types).
+ * See {@link Signature} for details.
+ *
+ * @return the signatures for the bounds of this formal type parameter
+ * @throws JavaModelException
+ * if this element does not exist or if an exception occurs while accessing its corresponding resource.
+ * @see Signature
+ * @since 3.6
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kxdigGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kxdigmEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kxdigWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kxdig2EMEeCdEc4VzBeWeQ" name="getDeclaringMember">
+ <ownedComment xmi:id="_kxdihGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the declaring member of this type parameter. This can be either an &lt;code>IType&lt;/code>
+ * or an &lt;code>IMethod&lt;/code>.
+ * &lt;p>
+ * This is a handle-only method.
+ * &lt;/p>
+ *
+ * @return the declaring member of this type parameter.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kxnTgGEMEeCdEc4VzBeWeQ" type="_klF6cGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kxnTgWEMEeCdEc4VzBeWeQ" name="getTypeRoot">
+ <ownedComment xmi:id="_kxnTgmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the Java type root in which this type parameter is declared.
+ * &lt;p>
+ * This is a handle-only method.
+ * &lt;/p>
+ *
+ * @return the Java type root in which this type parameter is declared
+ * @since 3.7
+ </body>
+ </ownedComment>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_kyNJYGEMEeCdEc4VzBeWeQ" name="ITypeRoot">
+ <ownedComment xmi:id="_kyW6YGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Represents an entire Java type root (either an &lt;code>ICompilationUnit&lt;/code>
+ * or an &lt;code>IClassFile&lt;/code>).
+ *
+ * @see ICompilationUnit Note that methods {@link #findPrimaryType()} and {@link #getElementAt(int)}
+ * were already implemented in this interface respectively since version 3.0 and version 1.0.
+ * @see IClassFile Note that method {@link #getWorkingCopy(WorkingCopyOwner, IProgressMonitor)}
+ * was already implemented in this interface since version 3.0.
+ * @since 3.3
+ * @noimplement This interface is not intended to be implemented by clients.
+ </body>
+ </ownedComment>
+ <generalization xmi:id="_kyW6YWEMEeCdEc4VzBeWeQ" general="_kO5A8GEMEeCdEc4VzBeWeQ"/>
+ <generalization xmi:id="_kyW6YmEMEeCdEc4VzBeWeQ" general="_kq6OkGEMEeCdEc4VzBeWeQ"/>
+ <generalization xmi:id="_kyW6Y2EMEeCdEc4VzBeWeQ" general="_koX38GEMEeCdEc4VzBeWeQ"/>
+ <generalization xmi:id="_kyW6ZGEMEeCdEc4VzBeWeQ" general="_kuCbEGEMEeCdEc4VzBeWeQ"/>
+ <generalization xmi:id="_kyW6ZWEMEeCdEc4VzBeWeQ" general="_j54aQGEMEeCdEc4VzBeWeQ"/>
+ <ownedOperation xmi:id="_kygrYGEMEeCdEc4VzBeWeQ" name="findPrimaryType">
+ <ownedComment xmi:id="_kygrYWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Finds the primary type of this Java type root (that is, the type with the same name as the
+ * compilation unit, or the type of a class file), or &lt;code>null&lt;/code> if no such a type exists.
+ *
+ * @return the found primary type of this Java type root, or &lt;code>null&lt;/code> if no such a type exists
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kygrYmEMEeCdEc4VzBeWeQ" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kygrY2EMEeCdEc4VzBeWeQ" name="getElementAt">
+ <ownedComment xmi:id="_kygrZGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the smallest element within this Java type root that
+ * includes the given source position (that is, a method, field, etc.), or
+ * &lt;code>null&lt;/code> if there is no element other than the Java type root
+ * itself at the given position, or if the given position is not
+ * within the source range of the source of this Java type root.
+ *
+ * @param position a source position inside the Java type root
+ * @return the innermost Java element enclosing a given source position or &lt;code>null&lt;/code>
+ * if none (excluding the Java type root).
+ * @throws JavaModelException if the Java type root does not exist or if an
+ * exception occurs while accessing its corresponding resource
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kygrZWEMEeCdEc4VzBeWeQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_kyp1UGEMEeCdEc4VzBeWeQ" name="position" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_ky8wQGEMEeCdEc4VzBeWeQ" name="IWorkingCopy">
+ <ownedComment xmi:id="_kzGhQGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Common protocol for Java elements that support working copies.
+ * &lt;p>
+ * A working copy of a Java element acts just like a regular element (handle),
+ * except it is not attached to an underlying resource. A working copy is not
+ * visible to the rest of the Java model. Changes in a working copy's
+ * buffer are not realized in a resource. To bring the Java model up-to-date with a working
+ * copy's contents, an explicit commit must be performed on the working copy.
+ * Other operations performed on a working copy update the
+ * contents of the working copy's buffer but do not commit the contents
+ * of the working copy.
+ * &lt;/p>
+ * &lt;p>
+ * Note: The contents of a working copy is determined when a working
+ * copy is created, based on the current content of the element the working
+ * copy is created from. If a working copy is an &lt;code>IOpenable&lt;/code> and is explicitly
+ * closed, the working copy's buffer will be thrown away. However, clients should not
+ * explicitly open and close working copies.
+ * &lt;/p>
+ * &lt;p>
+ * The client that creates a working copy is responsible for
+ * destroying the working copy. The Java model will never automatically
+ * destroy or close a working copy. (Note that destroying a working copy
+ * does not commit it to the model, it only frees up the memory occupied by
+ * the element). After a working copy is destroyed, the working copy cannot
+ * be accessed again. Non-handle methods will throw a
+ * &lt;code>JavaModelException&lt;/code> indicating the Java element does not exist.
+ * &lt;/p>
+ * &lt;p>
+ * A working copy cannot be created from another working copy.
+ * Calling &lt;code>getWorkingCopy&lt;/code> on a working copy returns the receiver.
+ * &lt;/p>
+ *
+ * @deprecated Use {@link ICompilationUnit} instead
+ * @noimplement This interface is not intended to be implemented by clients.
+ </body>
+ </ownedComment>
+ <ownedOperation xmi:id="_kzGhQWEMEeCdEc4VzBeWeQ" name="commit">
+ <ownedComment xmi:id="_kzGhQmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Commits the contents of this working copy to its original element
+ * and underlying resource, bringing the Java model up-to-date with
+ * the current contents of the working copy.
+ *
+ * &lt;p>It is possible that the contents of the original resource have changed
+ * since this working copy was created, in which case there is an update conflict.
+ * The value of the &lt;code>force&lt;/code> parameter affects the resolution of
+ * such a conflict:&lt;ul>
+ * &lt;li> &lt;code>true&lt;/code> - in this case the contents of this working copy are applied to
+ * the underlying resource even though this working copy was created before
+ * a subsequent change in the resource&lt;/li>
+ * &lt;li> &lt;code>false&lt;/code> - in this case a &lt;code>JavaModelException&lt;/code> is thrown&lt;/li>
+ * &lt;/ul>
+ * &lt;p>
+ * Since 2.1, a working copy can be created on a not-yet existing compilation
+ * unit. In particular, such a working copy can then be committed in order to create
+ * the corresponding compilation unit.
+ * &lt;/p>
+ * @param force a flag to handle the cases when the contents of the original resource have changed
+ * since this working copy was created
+ * @param monitor the given progress monitor
+ * @exception JavaModelException if this working copy could not commit. Reasons include:
+ * &lt;ul>
+ * &lt;li> A &lt;code>CoreException&lt;/code> occurred while updating an underlying resource
+ * &lt;li> This element is not a working copy (INVALID_ELEMENT_TYPES)
+ * &lt;li> A update conflict (described above) (UPDATE_CONFLICT)
+ * &lt;/ul>
+ * @deprecated Use {@link ICompilationUnit#commitWorkingCopy(boolean, IProgressMonitor)} instead.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kzGhQ2EMEeCdEc4VzBeWeQ" name="force" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kzGhRGEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kzQSQGEMEeCdEc4VzBeWeQ" name="destroy">
+ <ownedComment xmi:id="_kzQSQWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Destroys this working copy, closing its buffer and discarding
+ * its structure. Subsequent attempts to access non-handle information
+ * for this working copy will result in &lt;code>IJavaModelException&lt;/code>s. Has
+ * no effect if this element is not a working copy.
+ * &lt;p>
+ * If this working copy is shared, it is destroyed only when the number of calls to
+ * &lt;code>destroy()&lt;/code> is the same as the number of calls to &lt;code>
+ * getSharedWorkingCopy(IProgressMonitor, IBufferFactory)&lt;/code>.
+ * &lt;/p>&lt;p>
+ * When it is destroyed, a REMOVED IJavaElementDelta is reported on this
+ * working copy.
+ * &lt;/p>
+ * @deprecated Use {@link ICompilationUnit#discardWorkingCopy()} instead.
+ </body>
+ </ownedComment>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kzQSQmEMEeCdEc4VzBeWeQ" name="findSharedWorkingCopy">
+ <ownedComment xmi:id="_kzQSQ2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Finds the shared working copy for this element, given a &lt;code>IBuffer&lt;/code> factory.
+ * If no working copy has been created for this element associated with this
+ * buffer factory, returns &lt;code>null&lt;/code>.
+ * &lt;p>
+ * Users of this method must not destroy the resulting working copy.
+ *
+ * @param bufferFactory the given &lt;code>IBuffer&lt;/code> factory
+ * @return the found shared working copy for this element, &lt;code>null&lt;/code> if none
+ * @see IBufferFactory
+ * @since 2.0
+ *
+ * @deprecated Use {@link ICompilationUnit#findWorkingCopy(WorkingCopyOwner)} instead.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kzQSRGEMEeCdEc4VzBeWeQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_kzQSRWEMEeCdEc4VzBeWeQ" name="bufferFactory" type="_j2Am4GEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kzZcMGEMEeCdEc4VzBeWeQ" name="getOriginal">
+ <ownedComment xmi:id="_kzZcMWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the original element the specified working copy element was created from,
+ * or &lt;code>null&lt;/code> if this is not a working copy element. This is a handle
+ * only method, the returned element may or may not exist.
+ *
+ * @param workingCopyElement the specified working copy element
+ * @return the original element the specified working copy element was created from,
+ * or &lt;code>null&lt;/code> if this is not a working copy element
+ *
+ * @deprecated Use {@link IJavaElement#getPrimaryElement()} instead.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kzZcMmEMEeCdEc4VzBeWeQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_kzZcM2EMEeCdEc4VzBeWeQ" name="workingCopyElement" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kzZcNGEMEeCdEc4VzBeWeQ" name="getOriginalElement">
+ <ownedComment xmi:id="_kzZcNWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the original element this working copy was created from,
+ * or &lt;code>null&lt;/code> if this is not a working copy.
+ *
+ * @return the original element this working copy was created from,
+ * or &lt;code>null&lt;/code> if this is not a working copy
+ *
+ * @deprecated Use {@link ICompilationUnit#getPrimaryElement()} instead.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kzZcNmEMEeCdEc4VzBeWeQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kzjNMGEMEeCdEc4VzBeWeQ" name="findElements">
+ <ownedComment xmi:id="_kzjNMWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Finds the elements in this compilation unit that correspond to
+ * the given element.
+ * An element A corresponds to an element B if:
+ * &lt;ul>
+ * &lt;li>A has the same element name as B.
+ * &lt;li>If A is a method, A must have the same number of arguments as
+ * B and the simple names of the argument types must be equals.
+ * &lt;li>The parent of A corresponds to the parent of B recursively up to
+ * their respective compilation units.
+ * &lt;li>A exists.
+ * &lt;/ul>
+ * Returns &lt;code>null&lt;/code> if no such java elements can be found
+ * or if the given element is not included in a compilation unit.
+ *
+ * @param element the given element
+ * @return the found elements in this compilation unit that correspond to the given element
+ * @since 2.0
+ *
+ * @deprecated Use {@link ICompilationUnit#findElements(IJavaElement)} instead.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kzjNMmEMEeCdEc4VzBeWeQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kzjNNGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kzjNM2EMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kzs-MGEMEeCdEc4VzBeWeQ" name="element" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kzs-MWEMEeCdEc4VzBeWeQ" name="findPrimaryType">
+ <ownedComment xmi:id="_kzs-MmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Finds the primary type of this compilation unit (that is, the type with the same name as the
+ * compilation unit), or &lt;code>null&lt;/code> if no such a type exists.
+ *
+ * @return the found primary type of this compilation unit, or &lt;code>null&lt;/code> if no such a type exists
+ * @since 2.0
+ *
+ * @deprecated Use {@link ITypeRoot#findPrimaryType()} instead.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kzs-M2EMEeCdEc4VzBeWeQ" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kzs-NGEMEeCdEc4VzBeWeQ" name="getSharedWorkingCopy">
+ <ownedComment xmi:id="_kzs-NWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns a shared working copy on this element using the given factory to create
+ * the buffer, or this element if this element is already a working copy.
+ * This API can only answer an already existing working copy if it is based on the same
+ * original compilation unit AND was using the same buffer factory (that is, as defined by &lt;code>Object.equals&lt;/code>).
+ * &lt;p>
+ * The life time of a shared working copy is as follows:
+ * &lt;ul>
+ * &lt;li>The first call to &lt;code>getSharedWorkingCopy(...)&lt;/code> creates a new working copy for this
+ * element&lt;/li>
+ * &lt;li>Subsequent calls increment an internal counter.&lt;/li>
+ * &lt;li>A call to &lt;code>destroy()&lt;/code> decrements the internal counter.&lt;/li>
+ * &lt;li>When this counter is 0, the working copy is destroyed.
+ * &lt;/ul>
+ * So users of this method must destroy exactly once the working copy.
+ * &lt;p>
+ * Note that the buffer factory will be used for the life time of this working copy, that is if the
+ * working copy is closed then reopened, this factory will be used.
+ * The buffer will be automatically initialized with the original's compilation unit content
+ * upon creation.
+ * &lt;p>
+ * When the shared working copy instance is created, an ADDED IJavaElementDelta is reported on this
+ * working copy.
+ *
+ * @param monitor a progress monitor used to report progress while opening this compilation unit
+ * or &lt;code>null&lt;/code> if no progress should be reported
+ * @param factory the factory that creates a buffer that is used to get the content of the working copy
+ * or &lt;code>null&lt;/code> if the internal factory should be used
+ * @param problemRequestor a requestor which will get notified of problems detected during
+ * reconciling as they are discovered. The requestor can be set to &lt;code>null&lt;/code> indicating
+ * that the client is not interested in problems.
+ * @exception JavaModelException if the contents of this element can
+ * not be determined.
+ * @return a shared working copy on this element using the given factory to create
+ * the buffer, or this element if this element is already a working copy
+ * @see IBufferFactory
+ * @see IProblemRequestor
+ * @since 2.0
+ *
+ * @deprecated Use {@link ICompilationUnit#getWorkingCopy(WorkingCopyOwner, IProblemRequestor, IProgressMonitor)} instead.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kz2IIGEMEeCdEc4VzBeWeQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_kz2IIWEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kz2IImEMEeCdEc4VzBeWeQ" name="factory" type="_j2Am4GEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_kz2II2EMEeCdEc4VzBeWeQ" name="problemRequestor" type="_krNJgGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kz_5IGEMEeCdEc4VzBeWeQ" name="getWorkingCopy">
+ <ownedComment xmi:id="_kz_5IWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns a new working copy of this element if this element is not
+ * a working copy, or this element if this element is already a working copy.
+ * &lt;p>
+ * Note: if intending to share a working copy amongst several clients, then
+ * &lt;code>#getSharedWorkingCopy&lt;/code> should be used instead.
+ * &lt;/p>&lt;p>
+ * When the working copy instance is created, an ADDED IJavaElementDelta is
+ * reported on this working copy.
+ * &lt;/p>&lt;p>
+ * Since 2.1, a working copy can be created on a not-yet existing compilation
+ * unit. In particular, such a working copy can then be committed in order to create
+ * the corresponding compilation unit.
+ * &lt;/p>
+ * @exception JavaModelException if the contents of this element can
+ * not be determined.
+ * @return a new working copy of this element if this element is not
+ * a working copy, or this element if this element is already a working copy
+ *
+ * @deprecated Use {@link ICompilationUnit#getWorkingCopy(IProgressMonitor)} instead.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_kz_5ImEMEeCdEc4VzBeWeQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_k0clEGEMEeCdEc4VzBeWeQ" name="getWorkingCopy">
+ <ownedComment xmi:id="_k0clEWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns a new working copy of this element using the given factory to create
+ * the buffer, or this element if this element is already a working copy.
+ * Note that this factory will be used for the life time of this working copy, that is if the
+ * working copy is closed then reopened, this factory will be reused.
+ * The buffer will be automatically initialized with the original's compilation unit content
+ * upon creation.
+ * &lt;p>
+ * Note: if intending to share a working copy amongst several clients, then
+ * &lt;code>#getSharedWorkingCopy&lt;/code> should be used instead.
+ * &lt;/p>&lt;p>
+ * When the working copy instance is created, an ADDED IJavaElementDelta is
+ * reported on this working copy.
+ * &lt;/p>&lt;p>
+ * Since 2.1, a working copy can be created on a not-yet existing compilation
+ * unit. In particular, such a working copy can then be committed in order to create
+ * the corresponding compilation unit.
+ * &lt;/p>
+ * @param monitor a progress monitor used to report progress while opening this compilation unit
+ * or &lt;code>null&lt;/code> if no progress should be reported
+ * @param factory the factory that creates a buffer that is used to get the content of the working copy
+ * or &lt;code>null&lt;/code> if the internal factory should be used
+ * @param problemRequestor a requestor which will get notified of problems detected during
+ * reconciling as they are discovered. The requestor can be set to &lt;code>null&lt;/code> indicating
+ * that the client is not interested in problems.
+ * @exception JavaModelException if the contents of this element can
+ * not be determined.
+ * @return a new working copy of this element using the given factory to create
+ * the buffer, or this element if this element is already a working copy
+ * @since 2.0
+ *
+ * @deprecated Use {@link ICompilationUnit#getWorkingCopy(WorkingCopyOwner, IProblemRequestor, IProgressMonitor)} instead.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_k0clEmEMEeCdEc4VzBeWeQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_k0clE2EMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_k0lvAGEMEeCdEc4VzBeWeQ" name="factory" type="_j2Am4GEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_k0lvAWEMEeCdEc4VzBeWeQ" name="problemRequestor" type="_krNJgGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_k0lvAmEMEeCdEc4VzBeWeQ" name="isBasedOn">
+ <ownedComment xmi:id="_k0lvA2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether this working copy's original element's content
+ * has not changed since the inception of this working copy.
+ *
+ * @param resource this working copy's resource
+ * @return true if this working copy's original element's content
+ * has not changed since the inception of this working copy, false otherwise
+ *
+ * @deprecated Use {@link ICompilationUnit#hasResourceChanged()} instead.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_k0vgAGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_k0vgAWEMEeCdEc4VzBeWeQ" name="resource" type="_kQh_smEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_k0vgAmEMEeCdEc4VzBeWeQ" name="isWorkingCopy">
+ <ownedComment xmi:id="_k0vgA2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether this element is a working copy.
+ *
+ * @return true if this element is a working copy, false otherwise
+ *
+ * @deprecated Use {@link ICompilationUnit#isWorkingCopy()} instead.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_k0vgBGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_k05RAGEMEeCdEc4VzBeWeQ" name="reconcile">
+ <ownedComment xmi:id="_k05RAWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Reconciles the contents of this working copy.
+ * It performs the reconciliation by locally caching the contents of
+ * the working copy, updating the contents, then creating a delta
+ * over the cached contents and the new contents, and finally firing
+ * this delta.
+ * &lt;p>
+ * If the working copy hasn't changed, then no problem will be detected,
+ * this is equivalent to &lt;code>IWorkingCopy#reconcile(false, null)&lt;/code>.&lt;/p>
+ * &lt;p>
+ * Compilation problems found in the new contents are notified through the
+ * &lt;code>IProblemRequestor&lt;/code> interface which was passed at
+ * creation, and no longer as transient markers. Therefore this API will
+ * return &lt;code>null&lt;/code>.&lt;/p>
+ * &lt;p>
+ * Note: Since 3.0 added/removed/changed inner types generate change deltas.&lt;/p>
+ *
+ * @exception JavaModelException if the contents of the original element
+ * cannot be accessed. Reasons include:
+ * &lt;ul>
+ * &lt;li> The original Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;/ul>
+ * @return &lt;code>null&lt;/code>
+ *
+ * @deprecated Use {@link ICompilationUnit#reconcile(int, boolean, WorkingCopyOwner, IProgressMonitor)} instead.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_k05RAmEMEeCdEc4VzBeWeQ" type="_j6oBIGEMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_k05RBGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_k05RA2EMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_k1Ca8GEMEeCdEc4VzBeWeQ" name="reconcile">
+ <ownedComment xmi:id="_k1Ca8WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Reconciles the contents of this working copy.
+ * It performs the reconciliation by locally caching the contents of
+ * the working copy, updating the contents, then creating a delta
+ * over the cached contents and the new contents, and finally firing
+ * this delta.
+ * &lt;p>
+ * The boolean argument allows to force problem detection even if the
+ * working copy is already consistent.&lt;/p>
+ * &lt;p>
+ * Compilation problems found in the new contents are notified through the
+ * &lt;code>IProblemRequestor&lt;/code> interface which was passed at
+ * creation, and no longer as transient markers. Therefore this API answers
+ * nothing.&lt;/p>
+ * &lt;p>
+ * Note: Since 3.0 added/removed/changed inner types generate change deltas.&lt;/p>
+ *
+ * @param forceProblemDetection boolean indicating whether problem should be recomputed
+ * even if the source hasn't changed.
+ * @param monitor a progress monitor
+ * @exception JavaModelException if the contents of the original element
+ * cannot be accessed. Reasons include:
+ * &lt;ul>
+ * &lt;li> The original Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;/ul>
+ * @since 2.0
+ *
+ * @deprecated Use {@link ICompilationUnit#reconcile(int, boolean, WorkingCopyOwner, IProgressMonitor)} instead.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_k1Ca8mEMEeCdEc4VzBeWeQ" name="forceProblemDetection" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_k1Ca82EMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_k1Ca9GEMEeCdEc4VzBeWeQ" name="restore">
+ <ownedComment xmi:id="_k1Ca9WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Restores the contents of this working copy to the current contents of
+ * this working copy's original element. Has no effect if this element
+ * is not a working copy.
+ *
+ * &lt;p>Note: This is the inverse of committing the content of the
+ * working copy to the original element with &lt;code>commit(boolean, IProgressMonitor)&lt;/code>.
+ *
+ * @exception JavaModelException if the contents of the original element
+ * cannot be accessed. Reasons include:
+ * &lt;ul>
+ * &lt;li> The original Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
+ * &lt;/ul>
+ * @deprecated Use {@link ICompilationUnit#restore()} instead.
+ </body>
+ </ownedComment>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_k3bAkGEMEeCdEc4VzBeWeQ" name="JavaConventions" isLeaf="true">
+ <ownedComment xmi:id="_k3kxkGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Provides methods for checking Java-specific conventions such as name syntax.
+ * &lt;p>
+ * This class provides static methods and constants only.
+ * &lt;/p>
+ * @noinstantiate This class is not intended to be instantiated by clients.
+ </body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_k3kxkWEMEeCdEc4VzBeWeQ" name="DOT" visibility="private" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false"/>
+ <ownedAttribute xmi:id="_k3t7gGEMEeCdEc4VzBeWeQ" name="PACKAGE_INFO" visibility="private" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false"/>
+ <ownedAttribute xmi:id="_k33shGEMEeCdEc4VzBeWeQ" name="SCANNER" visibility="private" isLeaf="true" isStatic="true" type="_k33sg2EMEeCdEc4VzBeWeQ" isUnique="false"/>
+ <ownedOperation xmi:id="_k4BdgGEMEeCdEc4VzBeWeQ" name="isOverlappingRoots" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_k4BdgWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether the given package fragment root paths are considered
+ * to overlap.
+ * &lt;p>
+ * Two root paths overlap if one is a prefix of the other, or they point to
+ * the same location. However, a JAR is allowed to be nested in a root.
+ *
+ * @param rootPath1 the first root path
+ * @param rootPath2 the second root path
+ * @return true if the given package fragment root paths are considered to overlap, false otherwise
+ * @deprecated Overlapping roots are allowed in 2.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_k4KncGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_k4UYcGEMEeCdEc4VzBeWeQ" name="rootPath1" type="_j00UEmEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_k4UYcWEMEeCdEc4VzBeWeQ" name="rootPath2" type="_j00UEmEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_k4UYcmEMEeCdEc4VzBeWeQ" name="scannedIdentifier" visibility="private" isStatic="true">
+ <ownedParameter xmi:id="_k4UYc2EMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_k4eJcWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_k4eJcGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_k4eJcmEMEeCdEc4VzBeWeQ" name="id" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_k4nTYGEMEeCdEc4VzBeWeQ" name="sourceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_k4nTYWEMEeCdEc4VzBeWeQ" name="complianceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_k4nTYmEMEeCdEc4VzBeWeQ" name="validateCompilationUnitName" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_k4nTY2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Validate the given compilation unit name.
+ * &lt;p>
+ * A compilation unit name must obey the following rules:
+ * &lt;ul>
+ * &lt;li> it must not be null
+ * &lt;li> it must be suffixed by a dot ('.') followed by one of the
+ * {@link JavaCore#getJavaLikeExtensions() Java-like extensions}
+ * &lt;li> its prefix must be a valid identifier
+ * &lt;li> it must not contain any characters or substrings that are not valid
+ * on the file system on which workspace root is located.
+ * &lt;/ul>
+ * &lt;/p>
+ * @param name the name of a compilation unit
+ * @return a status object with code &lt;code>IStatus.OK&lt;/code> if
+ * the given name is valid as a compilation unit name, otherwise a status
+ * object indicating what is wrong with the name
+ * @deprecated Use {@link #validateCompilationUnitName(String id, String sourceLevel, String complianceLevel)} instead
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_k4xEYGEMEeCdEc4VzBeWeQ" type="_kaOHMWEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_k4xEYWEMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_k5D_UGEMEeCdEc4VzBeWeQ" name="validateCompilationUnitName" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_k5D_UWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Validate the given compilation unit name for the given source and compliance levels.
+ * &lt;p>
+ * A compilation unit name must obey the following rules:
+ * &lt;ul>
+ * &lt;li> it must not be null
+ * &lt;li> it must be suffixed by a dot ('.') followed by one of the
+ * {@link JavaCore#getJavaLikeExtensions() Java-like extensions}
+ * &lt;li> its prefix must be a valid identifier
+ * &lt;li> it must not contain any characters or substrings that are not valid
+ * on the file system on which workspace root is located.
+ * &lt;/ul>
+ * &lt;/p>
+ * @param name the name of a compilation unit
+ * @param sourceLevel the source level
+ * @param complianceLevel the compliance level
+ * @return a status object with code &lt;code>IStatus.OK&lt;/code> if
+ * the given name is valid as a compilation unit name, otherwise a status
+ * object indicating what is wrong with the name
+ * @since 3.3
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_k5NwUGEMEeCdEc4VzBeWeQ" type="_kaOHMWEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_k5NwUWEMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_k5NwUmEMEeCdEc4VzBeWeQ" name="sourceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_k5W6QGEMEeCdEc4VzBeWeQ" name="complianceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_k5W6QWEMEeCdEc4VzBeWeQ" name="validateClassFileName" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_k5W6QmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Validate the given .class file name.
+ * &lt;p>
+ * A .class file name must obey the following rules:
+ * &lt;ul>
+ * &lt;li> it must not be null
+ * &lt;li> it must include the &lt;code>&quot;.class&quot;&lt;/code> suffix
+ * &lt;li> its prefix must be a valid identifier
+ * &lt;li> it must not contain any characters or substrings that are not valid
+ * on the file system on which workspace root is located.
+ * &lt;/ul>
+ * &lt;/p>
+ * @param name the name of a .class file
+ * @return a status object with code &lt;code>IStatus.OK&lt;/code> if
+ * the given name is valid as a .class file name, otherwise a status
+ * object indicating what is wrong with the name
+ * @since 2.0
+ * @deprecated Use {@link #validateClassFileName(String id, String sourceLevel, String complianceLevel)} instead
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_k5grQGEMEeCdEc4VzBeWeQ" type="_kaOHMWEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_k5grQWEMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_k5grQmEMEeCdEc4VzBeWeQ" name="validateClassFileName" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_k5grQ2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Validate the given .class file name for the given source and compliance levels.
+ * &lt;p>
+ * A .class file name must obey the following rules:
+ * &lt;ul>
+ * &lt;li> it must not be null
+ * &lt;li> it must include the &lt;code>&quot;.class&quot;&lt;/code> suffix
+ * &lt;li> its prefix must be a valid identifier
+ * &lt;li> it must not contain any characters or substrings that are not valid
+ * on the file system on which workspace root is located.
+ * &lt;/ul>
+ * &lt;/p>
+ * @param name the name of a .class file
+ * @param sourceLevel the source level
+ * @param complianceLevel the compliance level
+ * @return a status object with code &lt;code>IStatus.OK&lt;/code> if
+ * the given name is valid as a .class file name, otherwise a status
+ * object indicating what is wrong with the name
+ * @since 3.3
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_k5qcQGEMEeCdEc4VzBeWeQ" type="_kaOHMWEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_k5qcQWEMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_k5qcQmEMEeCdEc4VzBeWeQ" name="sourceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_k5zmMGEMEeCdEc4VzBeWeQ" name="complianceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_k5zmMWEMEeCdEc4VzBeWeQ" name="validateFieldName" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_k5zmMmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Validate the given field name.
+ * &lt;p>
+ * Syntax of a field name corresponds to VariableDeclaratorId (JLS2 8.3).
+ * For example, &lt;code>&quot;x&quot;&lt;/code>.
+ *
+ * @param name the name of a field
+ * @return a status object with code &lt;code>IStatus.OK&lt;/code> if
+ * the given name is valid as a field name, otherwise a status
+ * object indicating what is wrong with the name
+ * @deprecated Use {@link #validateFieldName(String id, String sourceLevel, String complianceLevel)} instead
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_k5zmM2EMEeCdEc4VzBeWeQ" type="_kaOHMWEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_k59XMGEMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_k59XMWEMEeCdEc4VzBeWeQ" name="validateFieldName" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_k59XMmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Validate the given field name for the given source and compliance levels.
+ * &lt;p>
+ * Syntax of a field name corresponds to VariableDeclaratorId (JLS2 8.3).
+ * For example, &lt;code>&quot;x&quot;&lt;/code>.
+ *
+ * @param name the name of a field
+ * @param sourceLevel the source level
+ * @param complianceLevel the compliance level
+ * @return a status object with code &lt;code>IStatus.OK&lt;/code> if
+ * the given name is valid as a field name, otherwise a status
+ * object indicating what is wrong with the name
+ * @since 3.3
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_k6GhIGEMEeCdEc4VzBeWeQ" type="_kaOHMWEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_k6GhIWEMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_k6QSIGEMEeCdEc4VzBeWeQ" name="sourceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_k6QSIWEMEeCdEc4VzBeWeQ" name="complianceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_k6QSImEMEeCdEc4VzBeWeQ" name="validateIdentifier" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_k6QSI2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Validate the given Java identifier.
+ * The identifier must not have the same spelling as a Java keyword,
+ * boolean literal (&lt;code>&quot;true&quot;&lt;/code>, &lt;code>&quot;false&quot;&lt;/code>), or null literal (&lt;code>&quot;null&quot;&lt;/code>).
+ * See section 3.8 of the &lt;em>Java Language Specification, Second Edition&lt;/em> (JLS2).
+ * A valid identifier can act as a simple type name, method name or field name.
+ *
+ * @param id the Java identifier
+ * @return a status object with code &lt;code>IStatus.OK&lt;/code> if
+ * the given identifier is a valid Java identifier, otherwise a status
+ * object indicating what is wrong with the identifier
+ * @deprecated Use {@link #validateIdentifier(String id, String sourceLevel, String complianceLevel)} instead
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_k6aDIGEMEeCdEc4VzBeWeQ" type="_kaOHMWEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_k6s-EGEMEeCdEc4VzBeWeQ" name="id" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_k7JqAGEMEeCdEc4VzBeWeQ" name="validateIdentifier" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_k7JqAWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Validate the given Java identifier for the given source and compliance levels
+ * The identifier must not have the same spelling as a Java keyword,
+ * boolean literal (&lt;code>&quot;true&quot;&lt;/code>, &lt;code>&quot;false&quot;&lt;/code>), or null literal (&lt;code>&quot;null&quot;&lt;/code>).
+ * See section 3.8 of the &lt;em>Java Language Specification, Second Edition&lt;/em> (JLS2).
+ * A valid identifier can act as a simple type name, method name or field name.
+ *
+ * @param id the Java identifier
+ * @param sourceLevel the source level
+ * @param complianceLevel the compliance level
+ * @return a status object with code &lt;code>IStatus.OK&lt;/code> if
+ * the given identifier is a valid Java identifier, otherwise a status
+ * object indicating what is wrong with the identifier
+ * @since 3.3
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_k7JqAmEMEeCdEc4VzBeWeQ" type="_kaOHMWEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_k7Sz8GEMEeCdEc4VzBeWeQ" name="id" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_k7Sz8WEMEeCdEc4VzBeWeQ" name="sourceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_k7Sz8mEMEeCdEc4VzBeWeQ" name="complianceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_k7ck8GEMEeCdEc4VzBeWeQ" name="validateImportDeclaration" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_k7ck8WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Validate the given import declaration name.
+ * &lt;p>
+ * The name of an import corresponds to a fully qualified type name
+ * or an on-demand package name as defined by ImportDeclaration (JLS2 7.5).
+ * For example, &lt;code>&quot;java.util.*&quot;&lt;/code> or &lt;code>&quot;java.util.Hashtable&quot;&lt;/code>.
+ *
+ * @param name the import declaration
+ * @return a status object with code &lt;code>IStatus.OK&lt;/code> if
+ * the given name is valid as an import declaration, otherwise a status
+ * object indicating what is wrong with the name
+ * @deprecated Use {@link #validateImportDeclaration(String id, String sourceLevel, String complianceLevel)} instead
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_k7ck8mEMEeCdEc4VzBeWeQ" type="_kaOHMWEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_k7ck82EMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_k7mV8GEMEeCdEc4VzBeWeQ" name="validateImportDeclaration" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_k7mV8WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Validate the given import declaration name for the given source and compliance levels.
+ * &lt;p>
+ * The name of an import corresponds to a fully qualified type name
+ * or an on-demand package name as defined by ImportDeclaration (JLS2 7.5).
+ * For example, &lt;code>&quot;java.util.*&quot;&lt;/code> or &lt;code>&quot;java.util.Hashtable&quot;&lt;/code>.
+ *
+ * @param name the import declaration
+ * @param sourceLevel the source level
+ * @param complianceLevel the compliance level
+ * @return a status object with code &lt;code>IStatus.OK&lt;/code> if
+ * the given name is valid as an import declaration, otherwise a status
+ * object indicating what is wrong with the name
+ * @since 3.3
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_k7mV8mEMEeCdEc4VzBeWeQ" type="_kaOHMWEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_k7mV82EMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_k7vf4GEMEeCdEc4VzBeWeQ" name="sourceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_k7vf4WEMEeCdEc4VzBeWeQ" name="complianceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_k7vf4mEMEeCdEc4VzBeWeQ" name="validateJavaTypeName" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_k7vf42EMEeCdEc4VzBeWeQ">
+ <body>
+ * Validate the given Java type name, either simple or qualified.
+ * For example, &lt;code>&quot;java.lang.Object&quot;&lt;/code>, or &lt;code>&quot;Object&quot;&lt;/code>.
+ * &lt;p>
+ *
+ * @param name the name of a type
+ * @return a status object with code &lt;code>IStatus.OK&lt;/code> if
+ * the given name is valid as a Java type name,
+ * a status with code &lt;code>IStatus.WARNING&lt;/code>
+ * indicating why the given name is discouraged,
+ * otherwise a status object indicating what is wrong with
+ * the name
+ * @deprecated Use {@link #validateJavaTypeName(String id, String sourceLevel, String complianceLevel)} instead
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_k75Q4GEMEeCdEc4VzBeWeQ" type="_kaOHMWEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_k75Q4WEMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_k75Q4mEMEeCdEc4VzBeWeQ" name="validateJavaTypeName" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_k75Q42EMEeCdEc4VzBeWeQ">
+ <body>
+ * Validate the given Java type name, either simple or qualified, for the given source and compliance levels.
+ *
+ * &lt;p>For example, &lt;code>&quot;java.lang.Object&quot;&lt;/code>, or &lt;code>&quot;Object&quot;&lt;/code>.&lt;/p>
+ *
+ * &lt;p>The source level and compliance level values should be taken from the constant defined inside
+ * {@link JavaCore} class. The constants are named &lt;code>JavaCore#VERSION_1_x&lt;/code>, x being set
+ * between '1' and '7'.
+ * &lt;/p>
+ *
+ * @param name the name of a type
+ * @param sourceLevel the source level
+ * @param complianceLevel the compliance level
+ * @return a status object with code &lt;code>IStatus.OK&lt;/code> if
+ * the given name is valid as a Java type name,
+ * a status with code &lt;code>IStatus.WARNING&lt;/code>
+ * indicating why the given name is discouraged,
+ * otherwise a status object indicating what is wrong with
+ * the name
+ * @since 3.3
+ * @see JavaCore#VERSION_1_1
+ * @see JavaCore#VERSION_1_2
+ * @see JavaCore#VERSION_1_3
+ * @see JavaCore#VERSION_1_4
+ * @see JavaCore#VERSION_1_5
+ * @see JavaCore#VERSION_1_6
+ * @see JavaCore#VERSION_1_7
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_k8DB4GEMEeCdEc4VzBeWeQ" type="_kaOHMWEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_k8DB4WEMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_k8ML0GEMEeCdEc4VzBeWeQ" name="sourceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_k8ML0WEMEeCdEc4VzBeWeQ" name="complianceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_k8ML0mEMEeCdEc4VzBeWeQ" name="validateMethodName" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_k8ML02EMEeCdEc4VzBeWeQ">
+ <body>
+ * Validate the given method name.
+ * The special names &quot;&amp;lt;init&amp;gt;&quot; and &quot;&amp;lt;clinit&amp;gt;&quot; are not valid.
+ * &lt;p>
+ * The syntax for a method name is defined by Identifier
+ * of MethodDeclarator (JLS2 8.4). For example &quot;println&quot;.
+ *
+ * @param name the name of a method
+ * @return a status object with code &lt;code>IStatus.OK&lt;/code> if
+ * the given name is valid as a method name, otherwise a status
+ * object indicating what is wrong with the name
+ * @deprecated Use {@link #validateMethodName(String id, String sourceLevel, String complianceLevel)} instead
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_k8V80GEMEeCdEc4VzBeWeQ" type="_kaOHMWEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_k8V80WEMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_k8yowGEMEeCdEc4VzBeWeQ" name="validateMethodName" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_k8yowWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Validate the given method name for the given source and compliance levels.
+ * The special names &quot;&amp;lt;init&amp;gt;&quot; and &quot;&amp;lt;clinit&amp;gt;&quot; are not valid.
+ * &lt;p>
+ * The syntax for a method name is defined by Identifier
+ * of MethodDeclarator (JLS2 8.4). For example &quot;println&quot;.
+ *
+ * @param name the name of a method
+ * @param sourceLevel the source level
+ * @param complianceLevel the compliance level
+ * @return a status object with code &lt;code>IStatus.OK&lt;/code> if
+ * the given name is valid as a method name, otherwise a status
+ * object indicating what is wrong with the name
+ * @since 3.3
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_k8yowmEMEeCdEc4VzBeWeQ" type="_kaOHMWEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_k87ysGEMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_k87ysWEMEeCdEc4VzBeWeQ" name="sourceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_k87ysmEMEeCdEc4VzBeWeQ" name="complianceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_k9FjsGEMEeCdEc4VzBeWeQ" name="validatePackageName" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_k9FjsWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Validate the given package name.
+ * &lt;p>
+ * The syntax of a package name corresponds to PackageName as
+ * defined by PackageDeclaration (JLS2 7.4). For example, &lt;code>&quot;java.lang&quot;&lt;/code>.
+ * &lt;p>
+ * Note that the given name must be a non-empty package name (that is, attempting to
+ * validate the default package will return an error status.)
+ * Also it must not contain any characters or substrings that are not valid
+ * on the file system on which workspace root is located.
+ *
+ * @param name the name of a package
+ * @return a status object with code &lt;code>IStatus.OK&lt;/code> if
+ * the given name is valid as a package name, otherwise a status
+ * object indicating what is wrong with the name
+ * @deprecated Use {@link #validatePackageName(String id, String sourceLevel, String complianceLevel)} instead
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_k9FjsmEMEeCdEc4VzBeWeQ" type="_kaOHMWEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_k9Fjs2EMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_k9PUsGEMEeCdEc4VzBeWeQ" name="validatePackageName" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_k9PUsWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Validate the given package name for the given source and compliance levels.
+ * &lt;p>
+ * The syntax of a package name corresponds to PackageName as
+ * defined by PackageDeclaration (JLS2 7.4). For example, &lt;code>&quot;java.lang&quot;&lt;/code>.
+ * &lt;p>
+ * Note that the given name must be a non-empty package name (that is, attempting to
+ * validate the default package will return an error status.)
+ * Also it must not contain any characters or substrings that are not valid
+ * on the file system on which workspace root is located.
+ *
+ * @param name the name of a package
+ * @param sourceLevel the source level
+ * @param complianceLevel the compliance level
+ * @return a status object with code &lt;code>IStatus.OK&lt;/code> if
+ * the given name is valid as a package name, otherwise a status
+ * object indicating what is wrong with the name
+ * @since 3.3
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_k9PUsmEMEeCdEc4VzBeWeQ" type="_kaOHMWEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_k9PUs2EMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_k9YeoGEMEeCdEc4VzBeWeQ" name="sourceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_k9YeoWEMEeCdEc4VzBeWeQ" name="complianceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_k9YeomEMEeCdEc4VzBeWeQ" name="validateClasspath" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_k9Yeo2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Validate a given classpath and output location for a project, using the following rules:
+ * &lt;ul>
+ * &lt;li> Classpath entries cannot collide with each other; that is, all entry paths must be unique.
+ * &lt;li> The project output location path cannot be null, must be absolute and located inside the project.
+ * &lt;li> Specific output locations (specified on source entries) can be null, if not they must be located inside the project,
+ * &lt;li> A project entry cannot refer to itself directly (that is, a project cannot prerequisite itself).
+ * &lt;li> Classpath entries or output locations cannot coincidate or be nested in each other, except for the following scenarii listed below:
+ * &lt;ul>&lt;li> A source folder can coincidate with its own output location, in which case this output can then contain library archives.
+ * However, a specific output location cannot coincidate with any library or a distinct source folder than the one referring to it. &lt;/li>
+ * &lt;li> A source/library folder can be nested in any source folder as long as the nested folder is excluded from the enclosing one. &lt;/li>
+ * &lt;li> An output location can be nested in a source folder, if the source folder coincidates with the project itself, or if the output
+ * location is excluded from the source folder.
+ * &lt;/ul>
+ * &lt;/ul>
+ *
+ * Note that the classpath entries are not validated automatically. Only bound variables or containers are considered
+ * in the checking process (this allows to perform a consistency check on a classpath which has references to
+ * yet non existing projects, folders, ...).
+ * &lt;p>
+ * This validation is intended to anticipate classpath issues prior to assigning it to a project. In particular, it will automatically
+ * be performed during the classpath setting operation (if validation fails, the classpath setting will not complete).
+ * &lt;p>
+ * @param javaProject the given java project
+ * @param rawClasspath the given classpath
+ * @param projectOutputLocation the given output location
+ * @return a status object with code &lt;code>IStatus.OK&lt;/code> if
+ * the given classpath and output location are compatible, otherwise a status
+ * object indicating what is wrong with the classpath or output location
+ * @since 2.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_k9iPoGEMEeCdEc4VzBeWeQ" type="_kaEWMGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_k9iPoWEMEeCdEc4VzBeWeQ" name="javaProject" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_k9rZkGEMEeCdEc4VzBeWeQ" name="rawClasspath" type="_j4GRkGEMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_k9rZkmEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_k9rZkWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_k9rZk2EMEeCdEc4VzBeWeQ" name="projectOutputLocation" type="_j00UEmEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_k91KkGEMEeCdEc4VzBeWeQ" name="validateClasspathEntry" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_k91KkWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns a Java model status describing the problem related to this classpath entry if any,
+ * a status object with code &lt;code>IStatus.OK&lt;/code> if the entry is fine (that is, if the
+ * given classpath entry denotes a valid element to be referenced onto a classpath).
+ *
+ * @param project the given java project
+ * @param entry the given classpath entry
+ * @param checkSourceAttachment a flag to determine if source attachment should be checked
+ * @return a java model status describing the problem related to this classpath entry if any, a status object with code &lt;code>IStatus.OK&lt;/code> if the entry is fine
+ * @since 2.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_k91KkmEMEeCdEc4VzBeWeQ" type="_kaEWMGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_k9-7kGEMEeCdEc4VzBeWeQ" name="project" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_k9-7kWEMEeCdEc4VzBeWeQ" name="entry" type="_j4GRkGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_k9-7kmEMEeCdEc4VzBeWeQ" name="checkSourceAttachment" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_k9-7k2EMEeCdEc4VzBeWeQ" name="validateTypeVariableName" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_k9-7lGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Validate the given type variable name.
+ * &lt;p>
+ * Syntax of a type variable name corresponds to a Java identifier (JLS3 4.3).
+ * For example, &lt;code>&quot;E&quot;&lt;/code>.
+ *
+ * @param name the name of a type variable
+ * @return a status object with code &lt;code>IStatus.OK&lt;/code> if
+ * the given name is valid as a type variable name, otherwise a status
+ * object indicating what is wrong with the name
+ * @since 3.1
+ * @deprecated Use {@link #validateTypeVariableName(String id, String sourceLevel, String complianceLevel)} instead
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_k-IFgGEMEeCdEc4VzBeWeQ" type="_kaOHMWEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_k-R2gGEMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_k-kxcGEMEeCdEc4VzBeWeQ" name="validateTypeVariableName" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_k-kxcWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Validate the given type variable name for the given source and compliance levels.
+ * &lt;p>
+ * Syntax of a type variable name corresponds to a Java identifier (JLS3 4.3).
+ * For example, &lt;code>&quot;E&quot;&lt;/code>.
+ *
+ * @param name the name of a type variable
+ * @param sourceLevel the source level
+ * @param complianceLevel the compliance level
+ * @return a status object with code &lt;code>IStatus.OK&lt;/code> if
+ * the given name is valid as a type variable name, otherwise a status
+ * object indicating what is wrong with the name
+ * @since 3.3
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_k-uicGEMEeCdEc4VzBeWeQ" type="_kaOHMWEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_k-uicWEMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_k-uicmEMEeCdEc4VzBeWeQ" name="sourceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_k-uic2EMEeCdEc4VzBeWeQ" name="complianceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_lIjz4GEMEeCdEc4VzBeWeQ" name="JavaCore" isLeaf="true">
+ <ownedComment xmi:id="_lIjz4WEMEeCdEc4VzBeWeQ">
+ <body>
+ * The plug-in runtime class for the Java model plug-in containing the core
+ * (UI-free) support for Java projects.
+ * &lt;p>
+ * Like all plug-in runtime classes (subclasses of &lt;code>Plugin&lt;/code>), this
+ * class is automatically instantiated by the platform when the plug-in gets
+ * activated. Clients must not attempt to instantiate plug-in runtime classes
+ * directly.
+ * &lt;/p>
+ * &lt;p>
+ * The single instance of this class can be accessed from any plug-in declaring
+ * the Java model plug-in as a prerequisite via
+ * &lt;code>JavaCore.getJavaCore()&lt;/code>. The Java model plug-in will be activated
+ * automatically if not already active.
+ * &lt;/p>
+ * @noinstantiate This class is not intended to be instantiated by clients.
+ </body>
+ </ownedComment>
+ <generalization xmi:id="_lIjz42EMEeCdEc4VzBeWeQ" general="_lIjz4mEMEeCdEc4VzBeWeQ"/>
+ <ownedAttribute xmi:id="_lItk4GEMEeCdEc4VzBeWeQ" name="NO_GENERATED_RESOURCES" visibility="private" isLeaf="true" isStatic="true" type="_kQh_smEMEeCdEc4VzBeWeQ" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lI2u0WEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lI2u0GEMEeCdEc4VzBeWeQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lI2u0mEMEeCdEc4VzBeWeQ" name="JAVA_CORE_PLUGIN" visibility="private" isStatic="true" type="_lIjz4mEMEeCdEc4VzBeWeQ" isUnique="false"/>
+ <ownedAttribute xmi:id="_lJAf0GEMEeCdEc4VzBeWeQ" name="PLUGIN_ID" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lJAf0WEMEeCdEc4VzBeWeQ">
+ <body>
+ * The plug-in identifier of the Java core support
+ * (value &lt;code>&quot;org.eclipse.jdt.core&quot;&lt;/code>).
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lJTawGEMEeCdEc4VzBeWeQ" name="BUILDER_ID" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lJTawWEMEeCdEc4VzBeWeQ">
+ <body>
+ * The identifier for the Java builder
+ * (value &lt;code>&quot;org.eclipse.jdt.core.javabuilder&quot;&lt;/code>).
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lJdLwGEMEeCdEc4VzBeWeQ" name="MODEL_ID" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lJmVsGEMEeCdEc4VzBeWeQ">
+ <body>
+ * The identifier for the Java model
+ * (value &lt;code>&quot;org.eclipse.jdt.core.javamodel&quot;&lt;/code>).
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lJmVsWEMEeCdEc4VzBeWeQ" name="NATURE_ID" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lJwGsGEMEeCdEc4VzBeWeQ">
+ <body>
+ * The identifier for the Java nature
+ * (value &lt;code>&quot;org.eclipse.jdt.core.javanature&quot;&lt;/code>).
+ * The presence of this nature on a project indicates that it is
+ * Java-capable.
+ *
+ * @see org.eclipse.core.resources.IProject#hasNature(java.lang.String)
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lJwGsWEMEeCdEc4VzBeWeQ" name="ATT_HANDLE_ID" visibility="protected" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lJ53sGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Name of the handle id attribute in a Java marker.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lKDBoGEMEeCdEc4VzBeWeQ" name="USER_LIBRARY_CONTAINER_ID" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lKDBoWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Name of the User Library Container id.
+ * @since 3.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lKMyoGEMEeCdEc4VzBeWeQ" name="COMPILER_LOCAL_VARIABLE_ATTR" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lKWjoGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Generating Local Variable Debug Attribute.
+ * &lt;p>When generated, this attribute will enable local variable names
+ * to be displayed in debugger, only in place where variables are
+ * definitely assigned (.class file is then bigger).
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.debug.localVariable&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;generate&quot;, &quot;do not generate&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;generate&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lKWjoWEMEeCdEc4VzBeWeQ" name="COMPILER_LINE_NUMBER_ATTR" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lKftkGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Generating Line Number Debug Attribute.
+ * &lt;p>When generated, this attribute will enable source code highlighting in debugger
+ * (.class file is then bigger).
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.debug.lineNumber&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;generate&quot;, &quot;do not generate&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;generate&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lKpekGEMEeCdEc4VzBeWeQ" name="COMPILER_SOURCE_FILE_ATTR" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lKpekWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Generating Source Debug Attribute.
+ * &lt;p>When generated, this attribute will enable the debugger to present the
+ * corresponding source code.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.debug.sourceFile&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;generate&quot;, &quot;do not generate&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;generate&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lKyogGEMEeCdEc4VzBeWeQ" name="COMPILER_CODEGEN_UNUSED_LOCAL" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lKyogWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Preserving Unused Local Variables.
+ * &lt;p>Unless requested to preserve unused local variables (that is, never read), the
+ * compiler will optimize them out, potentially altering debugging.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.codegen.unusedLocal&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;preserve&quot;, &quot;optimize out&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;preserve&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lK8ZgGEMEeCdEc4VzBeWeQ" name="COMPILER_CODEGEN_TARGET_PLATFORM" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lLGKgGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Defining Target Java Platform.
+ * &lt;p>For binary compatibility reason, .class files can be tagged to with certain VM versions and later.
+ * &lt;p>Note that &lt;code>&quot;1.4&quot;&lt;/code> target requires to toggle compliance mode to &lt;code>&quot;1.4&quot;&lt;/code>, &lt;code>&quot;1.5&quot;&lt;/code> target requires
+ * to toggle compliance mode to &lt;code>&quot;1.5&quot;&lt;/code>, &lt;code>&quot;1.6&quot;&lt;/code> target requires to toggle compliance mode to &lt;code>&quot;1.6&quot;&lt;/code> and
+ * &lt;code>&quot;1.7&quot;&lt;/code> target requires to toggle compliance mode to &lt;code>&quot;1.7&quot;&lt;/code>.
+ * &lt;code>&quot;cldc1.1&quot;&lt;/code> requires the source version to be &lt;code>&quot;1.3&quot;&lt;/code> and the compliance version to be &lt;code>&quot;1.4&quot;&lt;/code> or lower.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.codegen.targetPlatform&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;1.1&quot;, &quot;1.2&quot;, &quot;1.3&quot;, &quot;1.4&quot;, &quot;1.5&quot;, &quot;1.6&quot;, &quot;1.7&quot;, &quot;cldc1.1&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;1.2&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lLGKgWEMEeCdEc4VzBeWeQ" name="COMPILER_CODEGEN_INLINE_JSR_BYTECODE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lLPUcGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Inline JSR Bytecode Instruction.
+ * &lt;p>When enabled, the compiler will no longer generate JSR instructions, but rather inline corresponding
+ * subroutine code sequences (mostly corresponding to try finally blocks). The generated code will thus
+ * get bigger, but will load faster on virtual machines since the verification process is then much simpler.
+ * &lt;p>This mode is anticipating support for the Java Specification Request 202.
+ * &lt;p>Note that JSR inlining is optional only for target platform lesser than 1.5. From 1.5 on, the JSR
+ * inlining is mandatory (also see related setting {@link #COMPILER_CODEGEN_TARGET_PLATFORM}).
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.0
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lLPUcWEMEeCdEc4VzBeWeQ" name="COMPILER_DOC_COMMENT_SUPPORT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lLZFcGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Javadoc Comment Support.
+ * &lt;p>When this support is disabled, the compiler will ignore all javadoc problems options settings
+ * and will not report any javadoc problem. It will also not find any reference in javadoc comment and
+ * DOM AST Javadoc node will be only a flat text instead of having structured tag elements.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.doc.comment.support&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;enabled&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.0
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lLZFcWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNREACHABLE_CODE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lLi2cGEMEeCdEc4VzBeWeQ">
+ <body>
+ * @deprecated Discontinued since turning off would violate language specs.
+ * @category DeprecatedOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lLi2cWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_INVALID_IMPORT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lLsAYGEMEeCdEc4VzBeWeQ">
+ <body>
+ * @deprecated Discontinued since turning off would violate language specs.
+ * @category DeprecatedOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lL1xYGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_OVERRIDING_PACKAGE_DEFAULT_METHOD" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lL1xYWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Attempt to Override Package Visible Method.
+ * &lt;p>A package visible method, which is any method that is not explicitly
+ * declared as public, protected or private, is not visible from other
+ * packages, and thus cannot be overridden from another package.
+ * Attempting to override a package visible method from another package
+ * introduces a new method that is unrelated to the original one. When
+ * enabling this option, the compiler will signal such situations as an
+ * error or a warning.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lL-7UGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_METHOD_WITH_CONSTRUCTOR_NAME" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lL-7UWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Method With Constructor Name.
+ * &lt;p>Naming a method with a constructor name is generally considered poor
+ * style programming. When enabling this option, the compiler will signal such
+ * scenarii either as an error or a warning.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.methodWithConstructorName&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lMIsUGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_DEPRECATION" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lMIsUWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Deprecation.
+ * &lt;p>When enabled, the compiler will signal use of deprecated API either as an
+ * error or a warning.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.deprecation&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lMSdUGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lMbnQGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Deprecation Inside Deprecated Code.
+ * &lt;p>When enabled, the compiler will signal use of deprecated API inside deprecated code.
+ * &lt;p>The severity of the problem is controlled with option {@link #COMPILER_PB_DEPRECATION}.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 2.1
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lMlYQGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_DEPRECATION_WHEN_OVERRIDING_DEPRECATED_METHOD" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lMlYQWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Deprecation When Overriding Deprecated Method.
+ * &lt;p>When enabled, the compiler will signal the declaration of a method overriding a deprecated one.
+ * &lt;p>The severity of the problem is controlled with option {@link #COMPILER_PB_DEPRECATION}.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.0
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lMvJQGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_HIDDEN_CATCH_BLOCK" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lMvJQWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Hidden Catch Block.
+ * &lt;p>Locally to a try statement, some catch blocks may hide others. For example,
+ * &lt;pre>
+ * try { throw new java.io.CharConversionException();
+ * } catch (java.io.CharConversionException e) {
+ * } catch (java.io.IOException e) {}.
+ * &lt;/pre>
+ * When enabling this option, the compiler will issue an error or a warning for hidden
+ * catch blocks corresponding to checked exceptions.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lM4TMGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNUSED_LOCAL" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lNCEMGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Unused Local.
+ * &lt;p>When enabled, the compiler will issue an error or a warning for unused local
+ * variables (that is, variables never read from).
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unusedLocal&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lNCEMWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNUSED_PARAMETER" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lNLOIGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Unused Parameter.
+ * &lt;p>When enabled, the compiler will issue an error or a warning for unused method
+ * parameters (that is, parameters never read from).
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unusedParameter&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lNLOIWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNUSED_PARAMETER_WHEN_IMPLEMENTING_ABSTRACT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lNU_IGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Unused Parameter if Implementing Abstract Method.
+ * &lt;p>When enabled, the compiler will signal unused parameters in abstract method implementations.
+ * &lt;p>The severity of the problem is controlled with option {@link #COMPILER_PB_UNUSED_PARAMETER}.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 2.1
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lNU_IWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNUSED_PARAMETER_WHEN_OVERRIDING_CONCRETE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lNewIGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Unused Parameter if Overriding Concrete Method.
+ * &lt;p>When enabled, the compiler will signal unused parameters in methods overriding concrete ones.
+ * &lt;p>The severity of the problem is controlled with option {@link #COMPILER_PB_UNUSED_PARAMETER}.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 2.1
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lNewIWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNUSED_PARAMETER_INCLUDE_DOC_COMMENT_REFERENCE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lNn6EGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Consider Reference in Doc Comment for Unused Parameter Check.
+ * &lt;p>When enabled, the compiler will consider doc comment references to parameters (i.e. &lt;code>@param&lt;/code> clauses) for the unused
+ * parameter check. Thus, documented parameters will be considered as mandated as per doc contract.
+ * &lt;p>The severity of the unused parameter problem is controlled with option {@link #COMPILER_PB_UNUSED_PARAMETER}.
+ * &lt;p>Note: this option has no effect until the doc comment support is enabled according to the
+ * option {@link #COMPILER_DOC_COMMENT_SUPPORT}.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;enabled&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.3
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lNn6EWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNUSED_IMPORT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lNxrEGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Unused Import.
+ * &lt;p>When enabled, the compiler will issue an error or a warning for unused import
+ * reference.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unusedImport&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 2.0
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lNxrEWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNUSED_TYPE_ARGUMENTS_FOR_METHOD_INVOCATION" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lN7cEGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Presence of Type Arguments for a Non-Generic Method Invocation.
+ * &lt;p>When enabled, the compiler will issue an error or a warning whenever type arguments are encountered for a
+ * non-generic method invocation. Note that prior to compliance level is &lt;code>&quot;1.7&quot;&lt;/code>, this situation would automatically result
+ * in an error. From Java7 on, unused type arguments are being tolerated, and optionally warned against.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unusedTypeArgumentsForMethodInvocation&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.4
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lOEmAGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_SYNTHETIC_ACCESS_EMULATION" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lOOXAGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Synthetic Access Emulation.
+ * &lt;p>When enabled, the compiler will issue an error or a warning whenever it emulates
+ * access to a non-accessible member of an enclosing type. Such access can have
+ * performance implications.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lOXg8GEMEeCdEc4VzBeWeQ" name="COMPILER_PB_NON_NLS_STRING_LITERAL" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lOXg8WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Non-Externalized String Literal.
+ * &lt;p>When enabled, the compiler will issue an error or a warning for non externalized
+ * String literal (that is, not tagged with &lt;code>//$NON-NLS-&amp;lt;n&amp;gt;$&lt;/code>).
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 2.0
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lUxq8GEMEeCdEc4VzBeWeQ" name="COMPILER_PB_ASSERT_IDENTIFIER" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lUxq8WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Usage of &lt;code>'assert'&lt;/code> Identifier.
+ * &lt;p>When enabled, the compiler will issue an error or a warning whenever &lt;code>'assert'&lt;/code> is
+ * used as an identifier (reserved keyword in 1.4).
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.assertIdentifier&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 2.0
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lU7b8GEMEeCdEc4VzBeWeQ" name="COMPILER_PB_ENUM_IDENTIFIER" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lU7b8WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Usage of &lt;code>'enum'&lt;/code> Identifier.
+ * &lt;p>When enabled, the compiler will issue an error or a warning whenever &lt;code>'enum'&lt;/code> is
+ * used as an identifier (reserved keyword in 1.5).
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.enumIdentifier&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.1
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lVFM8GEMEeCdEc4VzBeWeQ" name="COMPILER_PB_STATIC_ACCESS_RECEIVER" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lVFM8WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Non-Static Reference to a Static Member.
+ * &lt;p>When enabled, the compiler will issue an error or a warning whenever a static field
+ * or method is accessed with an expression receiver. A reference to a static member should
+ * be qualified with a type name.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.staticAccessReceiver&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 2.1
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lVOW4GEMEeCdEc4VzBeWeQ" name="COMPILER_PB_INDIRECT_STATIC_ACCESS" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lVYH4GEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Indirect Reference to a Static Member.
+ * &lt;p>When enabled, the compiler will issue an error or a warning whenever a static field
+ * or method is accessed in an indirect way. A reference to a static member should
+ * preferably be qualified with its declaring type name.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.indirectStaticAccess&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.0
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lVYH4WEMEeCdEc4VzBeWeQ" name="COMPILER_PB_NO_EFFECT_ASSIGNMENT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lVhR0GEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Assignment with no Effect.
+ * &lt;p>When enabled, the compiler will issue an error or a warning whenever an assignment
+ * has no effect (e.g &lt;code>'x = x'&lt;/code>).
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.noEffectAssignment&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 2.1
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lVhR0WEMEeCdEc4VzBeWeQ" name="COMPILER_PB_INCOMPATIBLE_NON_INHERITED_INTERFACE_METHOD" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lVrC0GEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Interface Method not Compatible with non-Inherited Methods.
+ * &lt;p>When enabled, the compiler will issue an error or a warning whenever an interface
+ * defines a method incompatible with a non-inherited &lt;code>Object&lt;/code> method. Until this conflict
+ * is resolved, such an interface cannot be implemented, For example,
+ * &lt;pre>
+ * interface I {
+ * int clone();
+ * }
+ * &lt;/pre>
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 2.1
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lV0z0GEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNUSED_PRIVATE_MEMBER" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lV99wGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Unused Private Members.
+ * &lt;p>When enabled, the compiler will issue an error or a warning whenever a private
+ * method or field is declared but never used within the same unit.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unusedPrivateMember&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 2.1
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lV99wWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_LOCAL_VARIABLE_HIDING" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lWHuwGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Local Variable Declaration Hiding another Variable.
+ * &lt;p>When enabled, the compiler will issue an error or a warning whenever a local variable
+ * declaration is hiding some field or local variable (either locally, inherited or defined in enclosing type).
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.localVariableHiding&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.0
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lWHuwWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_SPECIAL_PARAMETER_HIDING_FIELD" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lWRfwGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Special Parameter Hiding another Field.
+ * &lt;p>When enabled, the compiler will signal cases where a constructor or setter method parameter declaration
+ * is hiding some field (either locally, inherited or defined in enclosing type).
+ * &lt;p>The severity of the problem is controlled with option {@link #COMPILER_PB_LOCAL_VARIABLE_HIDING}.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.specialParameterHidingField&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.0
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lWapsGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_FIELD_HIDING" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lWapsWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Field Declaration Hiding another Variable.
+ * &lt;p>When enabled, the compiler will issue an error or a warning whenever a field
+ * declaration is hiding some field or local variable (either locally, inherited or defined in enclosing type).
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.fieldHiding&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.0
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lWkasGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_TYPE_PARAMETER_HIDING" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lWtkoGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Type Declaration Hiding another Type.
+ * &lt;p>When enabled, the compiler will issue an error or a warning in situations where a type parameter
+ * declaration is hiding some type, when a nested type is hiding some type parameter, or when
+ * a nested type is hiding another nested type defined in same unit.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.typeParameterHiding&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.1
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lWtkoWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_POSSIBLE_ACCIDENTAL_BOOLEAN_ASSIGNMENT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lW3VoGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Possible Accidental Boolean Assignment.
+ * &lt;p>When enabled, the compiler will issue an error or a warning if a boolean assignment is acting as the condition
+ * of a control statement (where it probably was meant to be a boolean comparison).
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.0
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lW3VoWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_FALLTHROUGH_CASE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lXBGoGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Switch Fall-Through Case.
+ * &lt;p>When enabled, the compiler will issue an error or a warning if a case may be
+ * entered by falling through previous case. Empty cases are allowed.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.fallthroughCase&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.2
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lXBGoWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_EMPTY_STATEMENT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lXKQkGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Empty Statements and Unnecessary Semicolons.
+ * &lt;p>When enabled, the compiler will issue an error or a warning if an empty statement or a
+ * unnecessary semicolon is encountered.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.emptyStatement&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.0
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lXKQkWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_BOOLEAN_METHOD_THROWING_EXCEPTION" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lXUBkGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.booleanMethodThrowingException&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.0
+ * @category CompilerOptionID
+ * @deprecated - this option has no effect
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lXdykGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNNECESSARY_TYPE_CHECK" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lXdykWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Unnecessary Type Check.
+ * &lt;p>When enabled, the compiler will issue an error or a warning when a cast or an &lt;code>instanceof&lt;/code> operation
+ * is unnecessary.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.0
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lXm8gGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNNECESSARY_ELSE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lXm8gWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Unnecessary Else.
+ * &lt;p>When enabled, the compiler will issue an error or a warning when a statement is unnecessarily
+ * nested within an &lt;code>else&lt;/code> clause (in situation where then clause is not completing normally).
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unnecessaryElse&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.0
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lXwtgGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNDOCUMENTED_EMPTY_BLOCK" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lX53cGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Undocumented Empty Block.
+ * &lt;p>When enabled, the compiler will issue an error or a warning when an empty block is detected and it is not
+ * documented with any comment.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.0
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lX53cWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_FINALLY_BLOCK_NOT_COMPLETING" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lYDocGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Finally Blocks Not Completing Normally.
+ * &lt;p>When enabled, the compiler will issue an error or a warning when a finally block does not complete normally.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.0
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lYDocWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lYNZcGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Unused Declared Thrown Exception.
+ * &lt;p>When enabled, the compiler will issue an error or a warning when a
+ * method or a constructor is declaring a checked exception as thrown,
+ * but its body actually raises neither that exception, nor any other
+ * exception extending it.
+ * &lt;p>This diagnostic is further tuned by options
+ * {@link #COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION_INCLUDE_DOC_COMMENT_REFERENCE},
+ * {@link #COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION_EXEMPT_EXCEPTION_AND_THROWABLE},
+ * and {@link #COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION_WHEN_OVERRIDING}.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.0
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lYNZcWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION_WHEN_OVERRIDING" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lYgUYGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Unused Declared Thrown Exception in Overriding Method.
+ * &lt;p>When disabled, the compiler will report unused declared thrown
+ * exceptions neither on overriding methods nor on implementing methods.
+ * &lt;p>The severity of the unused declared thrown exception problem is
+ * controlled with option {@link #COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION}.
+ * &lt;p>This diagnostic is further tuned by options
+ * {@link #COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION_INCLUDE_DOC_COMMENT_REFERENCE} and
+ * {@link #COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION_EXEMPT_EXCEPTION_AND_THROWABLE}.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.0
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lYqFYGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION_INCLUDE_DOC_COMMENT_REFERENCE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lYzPUGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Consider Reference in Doc Comment for Unused Declared Thrown Exception Check.
+ * &lt;p>When enabled, the compiler will consider doc comment references to
+ * exceptions (i.e. &lt;code>@throws&lt;/code> clauses) for the unused
+ * declared thrown exception check. Thus, documented exceptions will be
+ * considered as mandated as per doc contract.
+ * &lt;p>The severity of the unused declared thrown exception problem is controlled with option {@link #COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION}.
+ * &lt;p>Note: this option has no effect until the doc comment support is enabled according to the
+ * option {@link #COMPILER_DOC_COMMENT_SUPPORT}.
+ * &lt;p>This diagnostic is further tuned by options
+ * {@link #COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION_EXEMPT_EXCEPTION_AND_THROWABLE}
+ * and {@link #COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION_WHEN_OVERRIDING}.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;enabled&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.4
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lYzPUWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION_EXEMPT_EXCEPTION_AND_THROWABLE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lY9AUGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Unused Declared Thrown Exception Exempts Exception And Throwable.
+ * &lt;p>When enabled, the compiler will issue an error or a warning when a
+ * method or a constructor is declaring a checked exception else than
+ * {@link java.lang.Throwable} or {@link java.lang.Exception} as thrown,
+ * but its body actually raises neither that exception, nor any other
+ * exception extending it. When disabled, the compiler will issue an
+ * error or a warning when a method or a constructor is declaring a
+ * checked exception (including {@link java.lang.Throwable} and
+ * {@link java.lang.Exception}) as thrown, but its body actually raises
+ * neither that exception, nor any other exception extending it.
+ * &lt;p>The severity of the unused declared thrown exception problem is
+ * controlled with option
+ * {@link #COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION}.
+ * &lt;p>This diagnostic is further tuned by options
+ * {@link #COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION_INCLUDE_DOC_COMMENT_REFERENCE}
+ * and {@link #COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION_WHEN_OVERRIDING}.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;enabled&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.4
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lZGKQGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNQUALIFIED_FIELD_ACCESS" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lZGKQWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Unqualified Access to Field.
+ * &lt;p>When enabled, the compiler will issue an error or a warning when a field is access without any qualification.
+ * In order to improve code readability, it should be qualified, e.g. &lt;code>'x'&lt;/code> should rather be written &lt;code>'this.x'&lt;/code>.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.0
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lZP7QGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNSAFE_TYPE_OPERATION" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lZZsQGEMEeCdEc4VzBeWeQ">
+ <body>
+ * @deprecated Use {@link #COMPILER_PB_UNCHECKED_TYPE_OPERATION} instead.
+ * @since 3.1
+ * @category DeprecatedOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lZZsQWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNCHECKED_TYPE_OPERATION" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lZi2MGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Unchecked Type Operation.
+ * &lt;p>When enabled, the compiler will issue an error or a warning whenever an operation involves generic types, and potentially
+ * invalidates type safety since involving raw types (e.g. invoking &lt;code>#foo(X&amp;lt;String&amp;gt;)&lt;/code> with arguments &lt;code>(X)&lt;/code>).
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.1
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lZi2MWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_RAW_TYPE_REFERENCE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lZsnMGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Raw Type Reference.
+ * &lt;p>When enabled, the compiler will issue an error or a warning when detecting references to raw types. Raw types are
+ * discouraged, and are intended to help interfacing with legacy code. In the future, the language specification may
+ * reject raw references to generic types.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.rawTypeReference&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.2
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lZ_iIGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNAVOIDABLE_GENERIC_TYPE_PROBLEMS" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_laJTIGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting of Unavoidable Generic Type Problems.
+ * &lt;p> When enabled, the compiler will issue an error or warning even when it detects a generic type problem
+ * that could not have been avoided by the programmer. As an example, a type may be forced to use raw types
+ * in its method signatures and return types because the methods it overrides from a super type are declared to
+ * use raw types in the first place.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;enabled&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.7
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_laJTIWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_FINAL_PARAMETER_BOUND" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_laSdEGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting final Bound for Type Parameter.
+ * &lt;p>When enabled, the compiler will issue an error or a warning whenever a generic type parameter is associated with a
+ * bound corresponding to a final type; since final types cannot be further extended, the parameter is pretty useless.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.finalParameterBound&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.1
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_laSdEWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MISSING_SERIAL_VERSION" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lacOEGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Missing Declaration of serialVersionUID Field on Serializable Class.
+ * &lt;p>When enabled, the compiler will issue an error or a warning whenever a serializable class is missing a local declaration
+ * of a &lt;code>serialVersionUID&lt;/code> field. This field must be declared as static final and be of type &lt;code>long&lt;/code>.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.missingSerialVersion&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.1
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lal_EGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_VARARGS_ARGUMENT_NEED_CAST" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lal_EWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Varargs Argument Needing a Cast in Method/Constructor Invocation.
+ * &lt;p>When enabled, the compiler will issue an error or a warning whenever a varargs arguments should be cast
+ * when passed to a method/constructor invocation. (e.g. &lt;code>Class.getMethod(String name, Class ... args )&lt;/code>
+ * invoked with arguments &lt;code>(&quot;foo&quot;, null)&lt;/code>).
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.1
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lavJAGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_AUTOBOXING" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_la46AGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Boxing/Unboxing Conversion.
+ * &lt;p>When enabled, the compiler will issue an error or a warning whenever a boxing or an unboxing
+ * conversion is performed.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.autoboxing&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.1
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_la46AWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_ANNOTATION_SUPER_INTERFACE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lbCrAGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Use of Annotation Type as Super Interface.
+ * &lt;p>When enabled, the compiler will issue an error or a warning whenever an annotation type is used
+ * as a super-interface. Though legal, this is discouraged.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.annotationSuperInterface&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.1
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lbL08GEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MISSING_OVERRIDE_ANNOTATION" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lbL08WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Missing &lt;code>@Override&lt;/code> Annotation.
+ * &lt;p>When enabled, the compiler will issue an error or a warning whenever encountering a method
+ * declaration which overrides a superclass method but has no &lt;code>@Override&lt;/code> annotation.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.1
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lbVl8GEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MISSING_OVERRIDE_ANNOTATION_FOR_INTERFACE_METHOD_IMPLEMENTATION" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lbVl8WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Missing &lt;code>@Override&lt;/code> Annotation for interface method implementation.
+ * &lt;p>When enabled, the compiler will issue an error or a warning whenever encountering a method
+ * declaration which overrides or implements a superinterface method but has no &lt;code>@Override&lt;/code> annotation.&lt;/p>
+ * &lt;p>This option only has an effect if the compiler compliance is 1.6 or greater.&lt;/p>
+ * &lt;p>The severity of the problem is controlled with option {@link #COMPILER_PB_MISSING_OVERRIDE_ANNOTATION}.&lt;/p>
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;enabled&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.6
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lbev4GEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MISSING_DEPRECATED_ANNOTATION" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lbog4GEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Missing &lt;code>@Deprecated&lt;/code> Annotation.
+ * &lt;p>When enabled, the compiler will issue an error or a warning whenever encountering a declaration
+ * carrying a &lt;code>@deprecated&lt;/code> doc tag but having no corresponding &lt;code>@Deprecated&lt;/code> annotation.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.1
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lbyR4GEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MISSING_HASHCODE_METHOD" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lbyR4WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Missing HashCode Method.
+ * &lt;p>When enabled, the compiler will issue an error or a warning if a type
+ * overrides Object.equals(Object) but does not override hashCode().
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.5
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lb7b0GEMEeCdEc4VzBeWeQ" name="COMPILER_PB_DEAD_CODE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lcFM0GEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Dead Code.
+ * &lt;p>When enabled, the compiler will issue an error or a warning if some non fatal dead code is detected. For instance, &lt;code>if (false) foo();&lt;/code>
+ * is not reported as truly unreachable code by the Java Language Specification. If this diagnostic is enabled, then the invocation of &lt;code>foo()&lt;/code> is
+ * going to be signaled as being dead code.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.deadCode&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.5
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lcFM0WEMEeCdEc4VzBeWeQ" name="COMPILER_PB_DEAD_CODE_IN_TRIVIAL_IF_STATEMENT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lcO90GEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Dead Code Inside Trivial If Statement.
+ * &lt;p>When enabled, the compiler will signal presence of dead code inside trivial IF statement, e.g. &lt;code>if (DEBUG)...&lt;/code>..
+ * &lt;p>The severity of the problem is controlled with option {@link #COMPILER_PB_DEAD_CODE}.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.deadCodeInTrivialIfStatement&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.5
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lcO90WEMEeCdEc4VzBeWeQ" name="COMPILER_PB_INCOMPLETE_ENUM_SWITCH" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lcYHwGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Incomplete Enum Switch.
+ * &lt;p>When enabled, the compiler will issue an error or a warning whenever
+ * an enum constant has no corresponding case label in an enum switch
+ * statement.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.1
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lch4wGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_INCONSISTENT_NULL_CHECK" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lch4wWEMEeCdEc4VzBeWeQ">
+ <body>
+ * @since 3.1
+ * @deprecated Use {@link #COMPILER_PB_NULL_REFERENCE} instead.
+ * @category DeprecatedOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lcrCsGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNUSED_LABEL" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lc0zsGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Unreferenced Label.
+ * &lt;p>When enabled, the compiler will issue an error or a warning when encountering a labeled statement which label
+ * is never explicitly referenced. A label is considered to be referenced if its name explicitly appears behind a break
+ * or continue statement; for instance the following label would be considered unreferenced:
+ * &lt;code>LABEL: { break; }&lt;/code>
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unusedLabel&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.2
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lc0zsWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_INVALID_JAVADOC" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lc-ksGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Invalid Javadoc Comment.
+ * &lt;p>This is the generic control for the severity of Javadoc problems.
+ * When enabled, the compiler will issue an error or a warning for a problem in Javadoc.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.invalidJavadoc&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.0
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lc-ksWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_INVALID_JAVADOC_TAGS" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_ldHuoGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Invalid Javadoc Tags.
+ * &lt;p>When enabled, the compiler will signal unbound or unexpected reference tags in Javadoc.
+ * A &lt;code>@throws&lt;/code> tag referencing an undeclared exception would be considered as unexpected.
+ * &lt;p>Note that this diagnosis can be enabled based on the visibility of the construct associated with the Javadoc;
+ * also see the setting {@link #COMPILER_PB_INVALID_JAVADOC_TAGS_VISIBILITY}.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.invalidJavadocTags&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.0
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ldRfoGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_INVALID_JAVADOC_TAGS__DEPRECATED_REF" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_ldRfoWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Invalid Javadoc Tags with Deprecated References.
+ * &lt;p>Specify whether the compiler will report deprecated references used in Javadoc tags.
+ * &lt;p>Note that this diagnosis can be enabled based on the visibility of the construct associated with the Javadoc;
+ * also see the setting {@link #COMPILER_PB_INVALID_JAVADOC_TAGS_VISIBILITY}.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.1
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ldbQoGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_INVALID_JAVADOC_TAGS__NOT_VISIBLE_REF" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_ldbQoWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Invalid Javadoc Tags with Not Visible References.
+ * &lt;p>Specify whether the compiler will report non-visible references used in Javadoc tags.
+ * &lt;p>Note that this diagnosis can be enabled based on the visibility of the construct associated with the Javadoc;
+ * also see the setting {@link #COMPILER_PB_INVALID_JAVADOC_TAGS_VISIBILITY}.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.1
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ldkakGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_INVALID_JAVADOC_TAGS_VISIBILITY" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_ldkakWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Visibility Level For Invalid Javadoc Tags.
+ * &lt;p>Set the minimum visibility level for Javadoc tag problems. Below this level problems will be ignored.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;public&quot;, &quot;protected&quot;, &quot;default&quot;, &quot;private&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;public&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.0
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lduLkGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MISSING_JAVADOC_TAG_DESCRIPTION" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_ld3VgGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting missing tag description.
+ * &lt;p>When enabled, the compiler will report a warning or an error for any Javadoc tag missing a required description.
+ * &lt;p>The severity of the problem is controlled with option {@link #COMPILER_PB_INVALID_JAVADOC}.
+ * &lt;p>It does not depend on option {@link #COMPILER_PB_INVALID_JAVADOC_TAGS}.
+ * &lt;p>When this option is valued to {@link #COMPILER_PB_MISSING_JAVADOC_TAG_DESCRIPTION_ALL_STANDARD_TAGS},
+ * a subset of the standard &lt;a href=&quot;http://java.sun.com/javase/6/docs/technotes/tools/windows/javadoc.html#javadoctags&quot;>Javadoc tags&lt;/a>
+ * that have a description, text or label are checked. While this set may grow in the future, note that user-defined tags are not and will not be checked.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;return_tag&quot;, &quot;all_standard_tags&quot;, &quot;no_tag&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;return_tag&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.4
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ld3VgWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MISSING_JAVADOC_TAGS" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_leBGgGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Missing Javadoc Tags.
+ * &lt;p>This is the generic control for the severity of Javadoc missing tag problems.
+ * When enabled, the compiler will issue an error or a warning when tags are missing in Javadoc comments.
+ * &lt;p>Note that this diagnosis can be enabled based on the visibility of the construct associated with the Javadoc;
+ * also see the setting {@link #COMPILER_PB_MISSING_JAVADOC_TAGS_VISIBILITY}.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.missingJavadocTags&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.0
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_leK3gGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MISSING_JAVADOC_TAGS_VISIBILITY" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_leK3gWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Visibility Level For Missing Javadoc Tags.
+ * &lt;p>Set the minimum visibility level for Javadoc missing tag problems. Below this level problems will be ignored.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;public&quot;, &quot;protected&quot;, &quot;default&quot;, &quot;private&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;public&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.0
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_leUBcGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MISSING_JAVADOC_TAGS_OVERRIDING" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_leUBcWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Missing Javadoc Tags on Overriding Methods.
+ * &lt;p>Specify whether the compiler will verify overriding methods in order to report Javadoc missing tag problems.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.0
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ledycGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MISSING_JAVADOC_TAGS_METHOD_TYPE_PARAMETERS" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lenjcGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Missing Javadoc Tags for Method Type Parameters.
+ * &lt;p>Specify whether a missing &lt;code>@param&lt;/code> for a type parameter in a method declaration should be reported.
+ * When enabled, the compiler will issue a missing Javadoc tag error or warning for a type parameter without a
+ * corresponding &lt;code>@param&lt;/code> tag.&lt;/p>
+ * &lt;p>This option only has an effect if the compiler compliance is 1.5 or greater.&lt;/p>
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.7
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lenjcWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MISSING_JAVADOC_COMMENTS" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lewtYGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Missing Javadoc Comments.
+ * &lt;p>This is the generic control for the severity of missing Javadoc comment problems.
+ * When enabled, the compiler will issue an error or a warning when Javadoc comments are missing.
+ * &lt;p>Note that this diagnosis can be enabled based on the visibility of the construct associated with the expected Javadoc;
+ * also see the setting {@link #COMPILER_PB_MISSING_JAVADOC_COMMENTS_VISIBILITY}.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.missingJavadocComments&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.0
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_le6eYGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MISSING_JAVADOC_COMMENTS_VISIBILITY" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_le6eYWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Visibility Level For Missing Javadoc Comments.
+ * &lt;p>Set the minimum visibility level for missing Javadoc problems. Below this level problems will be ignored.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;public&quot;, &quot;protected&quot;, &quot;default&quot;, &quot;private&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;public&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.0
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lfNZUGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MISSING_JAVADOC_COMMENTS_OVERRIDING" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lfNZUWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Missing Javadoc Comments on Overriding Methods.
+ * &lt;p>Specify whether the compiler will verify overriding methods in order to report missing Javadoc comment problems.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.0
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lfXKUGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_CHAR_ARRAY_IN_STRING_CONCATENATION" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lfXKUWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Usage of &lt;code>char[]&lt;/code> Expressions in String Concatenations.
+ * &lt;p>When enabled, the compiler will issue an error or a warning whenever a &lt;code>char[]&lt;/code> expression
+ * is used in String concatenations (for example, &lt;code>&quot;hello&quot; + new char[]{'w','o','r','l','d'}&lt;/code>).
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 2.1
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lfgUQGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MAX_PER_UNIT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lfqFQGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Maximum Number of Problems Reported per Compilation Unit.
+ * &lt;p>Specify the maximum number of problems reported on each compilation unit.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.maxProblemPerUnit&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>&quot;&amp;lt;n&amp;gt;&quot;&lt;/code> where &lt;code>&amp;lt;n&amp;gt;&lt;/code> is zero or a positive integer (if zero then all problems are reported).&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;100&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 2.0
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lfz2QGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_FATAL_OPTIONAL_ERROR" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lf9AMGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Treating Optional Error as Fatal.
+ * &lt;p>When enabled, optional errors (i.e. optional problems which severity is set to &lt;code>&quot;error&quot;&lt;/code>) will be treated as standard
+ * compiler errors, yielding problem methods/types preventing from running offending code until the issue got resolved.&lt;/p>
+ * &lt;p>When disabled, optional errors are only considered as warnings, still carrying an error indication to make them more
+ * severe. Note that by default, optional errors are not fatal. Non-optional errors are
+ * always fatal.&lt;/p>
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.fatalOptionalError&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.2
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lgGxMGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_PARAMETER_ASSIGNMENT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lgGxMWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Parameter Assignment.
+ * &lt;p>When enabled, the compiler will issue an error or a warning if a parameter is
+ * assigned to.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.parameterAssignment&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.2
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lgP7IGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MISSING_STATIC_ON_METHOD" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lgZsIGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting a method that qualifies as static, but not declared static.
+ * &lt;p>When enabled, the compiler will issue an error or a warning if a method has
+ * not been declared as &lt;code>static&lt;/code>, even though it qualifies as one.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.7
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lgjdIGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_POTENTIALLY_MISSING_STATIC_ON_METHOD" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lgsnEGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting a method that may qualify as static, but not declared static.
+ * &lt;p>When enabled, the compiler will issue an error or a warning if a method has
+ * not been declared as &lt;code>static&lt;/code>, even though it may qualify as one,
+ * when another method doesn't override it.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.7
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lgsnEWEMEeCdEc4VzBeWeQ" name="COMPILER_SOURCE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lg2YEGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Setting Source Compatibility Mode.
+ * &lt;p>Specify whether which source level compatibility is used. From 1.4 on, &lt;code>'assert'&lt;/code> is a keyword
+ * reserved for assertion support. Also note, than when toggling to 1.4 mode, the target VM
+ * level should be set to &lt;code>&quot;1.4&quot;&lt;/code> and the compliance mode should be &lt;code>&quot;1.4&quot;&lt;/code>.
+ * &lt;p>Source level 1.5 is necessary to enable generics, autoboxing, covariance, annotations, enumerations
+ * enhanced for loop, static imports and varargs. Once toggled, the target VM level should be set to &lt;code>&quot;1.5&quot;&lt;/code>
+ * and the compliance mode should be &lt;code>&quot;1.5&quot;&lt;/code>.
+ * &lt;p>Source level 1.6 is necessary to enable the computation of stack map tables. Once toggled, the target
+ * VM level should be set to &lt;code>&quot;1.6&quot;&lt;/code> and the compliance mode should be &lt;code>&quot;1.6&quot;&lt;/code>.
+ * &lt;p>Once the source level 1.7 is toggled, the target VM level should be set to &lt;code>&quot;1.7&quot;&lt;/code> and the compliance mode
+ * should be &lt;code>&quot;1.7&quot;&lt;/code>.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.source&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;1.3&quot;, &quot;1.4&quot;, &quot;1.5&quot;, &quot;1.6&quot;, &quot;1.7&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;1.3&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 2.0
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lhAJEGEMEeCdEc4VzBeWeQ" name="COMPILER_COMPLIANCE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lhAJEWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Setting Compliance Level.
+ * &lt;p>Select the compliance level for the compiler. In &lt;code>&quot;1.3&quot;&lt;/code> mode, source and target settings
+ * should not go beyond &lt;code>&quot;1.3&quot;&lt;/code> level.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.compliance&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;1.3&quot;, &quot;1.4&quot;, &quot;1.5&quot;, &quot;1.6&quot;, &quot;1.7&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;1.4&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 2.0
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lhJTAGEMEeCdEc4VzBeWeQ" name="COMPILER_TASK_PRIORITIES" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lhJTAWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Defining the Automatic Task Priorities.
+ * &lt;p>In parallel with the Automatic Task Tags, this list defines the priorities (high, normal or low)
+ * of the task markers issued by the compiler.
+ * If the default is specified, the priority of each task marker is &lt;code>&quot;NORMAL&quot;&lt;/code>.&lt;/p>
+ * &lt;p>Task Priorities and task tags must have the same length. If task priorities are set, then task tags should also
+ * be set.&lt;/p>
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.taskPriorities&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;&amp;lt;priority&amp;gt;[,&amp;lt;priority&amp;gt;]*&quot; }&lt;/code> where &lt;code>&amp;lt;priority&amp;gt;&lt;/code> is one of &lt;code>&quot;HIGH&quot;&lt;/code>, &lt;code>&quot;NORMAL&quot;&lt;/code> or &lt;code>&quot;LOW&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;NORMAL,HIGH,NORMAL&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 2.1
+ * @category CompilerOptionID
+ * @see #COMPILER_TASK_TAGS
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lhTEAGEMEeCdEc4VzBeWeQ" name="COMPILER_TASK_TAGS" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lhTEAWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Defining the Automatic Task Tags.
+ * &lt;p>When the tag list is not empty, the compiler will issue a task marker whenever it encounters
+ * one of the corresponding tags inside any comment in Java source code.
+ * &lt;p>Generated task messages will start with the tag, and range until the next line separator,
+ * comment ending, or tag.&lt;/p>
+ * &lt;p>When a given line of code bears multiple tags, each tag will be reported separately.
+ * Moreover, a tag immediately followed by another tag will be reported using the contents of the
+ * next non-empty tag of the line, if any.&lt;/p>
+ * &lt;p>Note that tasks messages are trimmed. If a tag is starting with a letter or digit, then it cannot be leaded by
+ * another letter or digit to be recognized (&lt;code>&quot;fooToDo&quot;&lt;/code> will not be recognized as a task for tag &lt;code>&quot;ToDo&quot;&lt;/code>, but &lt;code>&quot;foo#ToDo&quot;&lt;/code>
+ * will be detected for either tag &lt;code>&quot;ToDo&quot;&lt;/code> or &lt;code>&quot;#ToDo&quot;&lt;/code>). Respectively, a tag ending with a letter or digit cannot be followed
+ * by a letter or digit to be recognized (&lt;code>&quot;ToDofoo&quot;&lt;/code> will not be recognized as a task for tag &lt;code>&quot;ToDo&quot;&lt;/code>, but &lt;code>&quot;ToDo:foo&quot;&lt;/code> will
+ * be detected either for tag &lt;code>&quot;ToDo&quot;&lt;/code> or &lt;code>&quot;ToDo:&quot;&lt;/code>).&lt;/p>
+ * &lt;p>Task Priorities and task tags must have the same length. If task tags are set, then task priorities should also
+ * be set.&lt;/p>
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.taskTags&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;&amp;lt;tag&amp;gt;[,&amp;lt;tag&amp;gt;]*&quot; }&lt;/code> where &lt;code>&amp;lt;tag&amp;gt;&lt;/code> is a String without any wild-card or leading/trailing spaces&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;TODO,FIXME,XXX&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 2.1
+ * @category CompilerOptionID
+ * @see #COMPILER_TASK_PRIORITIES
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lhl-8GEMEeCdEc4VzBeWeQ" name="COMPILER_TASK_CASE_SENSITIVE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lhl-8WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Determining whether task tags are case-sensitive.
+ * &lt;p>When enabled, task tags are considered in a case-sensitive way.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.taskCaseSensitive&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;enabled&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.0
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lhvv8GEMEeCdEc4VzBeWeQ" name="COMPILER_PB_FORBIDDEN_REFERENCE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lhvv8WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Forbidden Reference to Type with Restricted Access.
+ * &lt;p>When enabled, the compiler will issue an error or a warning when referring to a type that is non accessible, as defined according
+ * to the access rule specifications.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.forbiddenReference&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;error&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.1
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lh454GEMEeCdEc4VzBeWeQ" name="COMPILER_PB_DISCOURAGED_REFERENCE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_liCq4GEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Discouraged Reference to Type with Restricted Access.
+ * &lt;p>When enabled, the compiler will issue an error or a warning when referring to a type with discouraged access, as defined according
+ * to the access rule specifications.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.discouragedReference&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.1
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_liCq4WEMEeCdEc4VzBeWeQ" name="COMPILER_PB_SUPPRESS_WARNINGS" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_liMb4GEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Determining Effect of &lt;code>@SuppressWarnings&lt;/code>.
+ * &lt;p>When enabled, the &lt;code>@SuppressWarnings&lt;/code> annotation can be used to suppress some compiler warnings.
+ * &lt;p>When disabled, all &lt;code>@SupressWarnings&lt;/code> annotations are ignored; i.e., warnings are reported.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.suppressWarnings&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;enabled&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.1
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_liVl0GEMEeCdEc4VzBeWeQ" name="COMPILER_PB_INCLUDE_ASSERTS_IN_NULL_ANALYSIS" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_liVl0WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Raise null related errors or warnings arising because of assert statements.
+ * &lt;p>When enabled, the compiler will flag all null related errors or warnings that have been enabled by the user,
+ * irrespective of whether a variable occurred in an assert statement.&lt;/p>
+ * &lt;p>When disabled, the compiler will not flag null related errors or warnings on variables that got marked as maybe or definitely
+ * &lt;code>null&lt;/code> in an assert statement upstream.&lt;/p>
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.7
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lifW0GEMEeCdEc4VzBeWeQ" name="COMPILER_PB_SUPPRESS_OPTIONAL_ERRORS" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lifW0WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Further Determining the Effect of &lt;code>@SuppressWarnings&lt;/code> if also
+ * {@link #COMPILER_PB_SUPPRESS_WARNINGS} is enabled.
+ * &lt;p>When enabled, the &lt;code>@SuppressWarnings&lt;/code> annotation can additionally be used to suppress
+ * optional compiler diagnostics that have been configured as {@link #ERROR}.
+ * &lt;p>When disabled, all &lt;code>@SuppressWarnings&lt;/code> annotations only affects warnings.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.6
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_liogwGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNHANDLED_WARNING_TOKEN" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_liyRwGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Unhandled Warning Token for &lt;code>@SuppressWarnings&lt;/code>.
+ * &lt;p>When enabled, the compiler will issue an error or a warning when encountering a token
+ * it cannot handle inside a &lt;code>@SuppressWarnings&lt;/code> annotation.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unhandledWarningToken&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.1
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_li8CwGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNUSED_WARNING_TOKEN" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_li8CwWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Unnecessary &lt;code>@SuppressWarnings&lt;/code>.
+ * &lt;p>When enabled, the compiler will issue an error or a warning when encountering &lt;code>@SuppressWarnings&lt;/code> annotation
+ * for which no corresponding warning got detected in the code. This diagnostic is provided to help developers to get
+ * rid of transient &lt;code>@SuppressWarnings&lt;/code> no longer needed. Note that &lt;code>@SuppressWarnings(&quot;all&quot;)&lt;/code> is still
+ * silencing the warning for unnecessary &lt;code>@SuppressWarnings&lt;/code>, as it is the master switch to silence ALL warnings.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unusedWarningToken&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.4
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ljFMsGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_NULL_REFERENCE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_ljFMsWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Null Dereference.
+ * &lt;p>When enabled, the compiler will issue an error or a warning whenever a
+ * variable that is statically known to hold a null value is used to
+ * access a field or method.&lt;/p>
+ * &lt;p>Assert statements are ignored unless {@link #COMPILER_PB_INCLUDE_ASSERTS_IN_NULL_ANALYSIS}
+ * is enabled.&lt;/p>
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.nullReference&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.2
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ljO9sGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_POTENTIAL_NULL_REFERENCE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_ljYusGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Potential Null Dereference.
+ * &lt;p>When enabled, the compiler will issue an error or a warning whenever a
+ * variable that has formerly been tested against null but is not (no more)
+ * statically known to hold a non-null value is used to access a field or
+ * method.&lt;/p>
+ * &lt;p>Assert statements are ignored unless {@link #COMPILER_PB_INCLUDE_ASSERTS_IN_NULL_ANALYSIS}
+ * is enabled.&lt;/p>
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.potentialNullReference&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.3
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ljYusWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_REDUNDANT_NULL_CHECK" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_ljh4oGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Redundant Null Check.
+ * &lt;p>When enabled, the compiler will issue an error or a warning whenever a
+ * variable that is statically known to hold a null or a non-null value
+ * is tested against null.&lt;/p>
+ * &lt;p>Assert statements are ignored unless {@link #COMPILER_PB_INCLUDE_ASSERTS_IN_NULL_ANALYSIS}
+ * is enabled.&lt;/p>
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.redundantNullCheck&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.3
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ljh4oWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_OVERRIDING_METHOD_WITHOUT_SUPER_INVOCATION" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_ljrpoGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Overriding method that doesn't call the super method invocation.
+ * &lt;p>When enabled, the compiler will issue an error or a warning if a method is overriding a method without calling
+ * the super invocation.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.overridingMethodWithoutSuperInvocation&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.3
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lj0zkGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_REDUNDANT_SUPERINTERFACE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lj0zkWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Redundant Superinterface.
+ * &lt;p>When enabled, the compiler will issue an error or a warning if a type
+ * explicitly implements an interface that is already implemented by any
+ * of its supertypes.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.redundantSuperinterface&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.4
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lj-kkGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_COMPARING_IDENTICAL" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lj-kkWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Comparison of Identical Expressions.
+ * &lt;p>When enabled, the compiler will issue an error or a warning if a comparison
+ * is involving identical operands (e.g &lt;code>'x == x'&lt;/code>).
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.comparingIdentical&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.5
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lkIVkGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MISSING_SYNCHRONIZED_ON_INHERITED_METHOD" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lkIVkWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Missing Synchronized Modifier On Inherited Method.
+ * &lt;p>When enabled, the compiler will issue an error or a warning if a method
+ * overrides a synchronized method without having a synchronized modifier.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.5
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lkRfgGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNUSED_OBJECT_ALLOCATION" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lkbQgGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Compiler option ID: Reporting Allocation of an Unused Object.
+ * &lt;p>When enabled, the compiler will issue an error or a warning if an object is allocated but never used,
+ * neither by holding a reference nor by invoking one of the object's methods.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.6
+ * @category CompilerOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lkbQgWEMEeCdEc4VzBeWeQ" name="CORE_JAVA_BUILD_ORDER" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lklBgGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Core option ID: Computing Project Build Order.
+ * &lt;p>Indicate whether JavaCore should enforce the project build order to be based on
+ * the classpath prerequisite chain. When requesting to compute, this takes over
+ * the platform default order (based on project references).
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.computeJavaBuildOrder&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;compute&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @category CoreOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lkuLcGEMEeCdEc4VzBeWeQ" name="CORE_JAVA_BUILD_RESOURCE_COPY_FILTER" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lkuLcWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Core option ID: Specifying Filters for Resource Copying Control.
+ * &lt;p>Allow to specify some filters to control the resource copy process.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.builder.resourceCopyExclusionFilter&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;&amp;lt;name&amp;gt;[,&amp;lt;name&amp;gt;]* }&lt;/code> where &lt;code>&amp;lt;name&amp;gt;&lt;/code> is a file name pattern (* and ? wild-cards allowed)
+ * or the name of a folder which ends with &lt;code>'/'&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 2.0
+ * @category CoreOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lk38cGEMEeCdEc4VzBeWeQ" name="CORE_JAVA_BUILD_DUPLICATE_RESOURCE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_llBGYGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Core option ID: Reporting Duplicate Resources.
+ * &lt;p>Indicate the severity of the problem reported when more than one occurrence
+ * of a resource is to be copied into the output location.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.builder.duplicateResourceTask&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 2.1
+ * @category CoreOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_llBGYWEMEeCdEc4VzBeWeQ" name="CORE_JAVA_BUILD_CLEAN_OUTPUT_FOLDER" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_llK3YGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Core option ID: Cleaning Output Folder(s).
+ * &lt;p>Indicate whether the JavaBuilder is allowed to clean the output folders
+ * when performing full build operations.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.builder.cleanOutputFolder&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;clean&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;clean&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 2.1
+ * @category CoreOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_llUoYGEMEeCdEc4VzBeWeQ" name="CORE_JAVA_BUILD_RECREATE_MODIFIED_CLASS_FILES_IN_OUTPUT_FOLDER" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_llUoYWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Core option ID: Recreate Modified class files in Output Folder.
+ * &lt;p>Indicate whether the JavaBuilder should check for any changes to .class files
+ * in the output folders while performing incremental build operations. If changes
+ * are detected to managed .class files, then a full build is performed, otherwise
+ * the changes are left as is. Tools further altering generated .class files, like optimizers,
+ * should ensure this option remains set in its default state of ignore.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.2
+ * @category CoreOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lldyUGEMEeCdEc4VzBeWeQ" name="CORE_INCOMPLETE_CLASSPATH" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lldyUWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Core option ID: Reporting Incomplete Classpath.
+ * &lt;p>Indicate the severity of the problem reported when an entry on the classpath does not exist,
+ * is not legite or is not visible (for example, a referenced project is closed).
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.incompleteClasspath&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;}&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;error&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 2.1
+ * @category CoreOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_llnjUGEMEeCdEc4VzBeWeQ" name="CORE_CIRCULAR_CLASSPATH" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_llxUUGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Core option ID: Reporting Classpath Cycle.
+ * &lt;p>Indicate the severity of the problem reported when a project is involved in a cycle.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.circularClasspath&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;error&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 2.1
+ * @category CoreOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_llxUUWEMEeCdEc4VzBeWeQ" name="CORE_INCOMPATIBLE_JDK_LEVEL" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_ll6eQGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Core option ID: Reporting Incompatible JDK Level for Required Binaries.
+ * &lt;p>Indicate the severity of the problem reported when a project prerequisites another project
+ * or library with an incompatible target JDK level (e.g. project targeting 1.1 vm, but compiled against 1.4 libraries).
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.incompatibleJDKLevel&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.0
+ * @category CoreOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lmEPQGEMEeCdEc4VzBeWeQ" name="CORE_JAVA_BUILD_INVALID_CLASSPATH" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lmEPQWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Core option ID: Abort if Invalid Classpath.
+ * &lt;p>Allow to toggle the builder to abort if the classpath is invalid.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.builder.invalidClasspath&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;abort&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;abort&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 2.0
+ * @category CoreOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lmNZMGEMEeCdEc4VzBeWeQ" name="CORE_ENCODING" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lmXKMGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Core option ID: Default Source Encoding Format.
+ * &lt;p>Get the default encoding format of source files. This value is
+ * immutable and preset to the result of &lt;code>ResourcesPlugin.getEncoding()&lt;/code>.
+ * &lt;p>It is offered as a convenience shortcut only.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.encoding&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>value:&lt;/dt>&lt;dd>&lt;code>&amp;lt;immutable, platform default value&amp;gt;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 2.0
+ * @category CoreOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lmXKMWEMEeCdEc4VzBeWeQ" name="CORE_ENABLE_CLASSPATH_EXCLUSION_PATTERNS" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lmg7MGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Core option ID: Enabling Usage of Classpath Exclusion Patterns.
+ * &lt;p>When disabled, no entry on a project classpath can be associated with
+ * an exclusion pattern.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.classpath.exclusionPatterns&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;enabled&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 2.1
+ * @category CoreOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lmqFIGEMEeCdEc4VzBeWeQ" name="CORE_ENABLE_CLASSPATH_MULTIPLE_OUTPUT_LOCATIONS" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lmqFIWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Core option ID: Enabling Usage of Classpath Multiple Output Locations.
+ * &lt;p>When disabled, no entry on a project classpath can be associated with
+ * a specific output location, preventing thus usage of multiple output locations.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.classpath.multipleOutputLocations&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;enabled&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 2.1
+ * @category CoreOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lmz2IGEMEeCdEc4VzBeWeQ" name="TIMEOUT_FOR_PARAMETER_NAME_FROM_ATTACHED_JAVADOC" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lmz2IWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Core option ID: Set the timeout value for retrieving the method's parameter names from javadoc.
+ * &lt;p>Timeout in milliseconds to retrieve the method's parameter names from javadoc.
+ * &lt;p>If the value is &lt;code>0&lt;/code>, the parameter names are not fetched and the raw names are returned.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.timeoutForParameterNameFromAttachedJavadoc&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>&quot;&amp;lt;n&amp;gt;&quot;&lt;/code>, where &lt;code>n&lt;/code> is an integer greater than or equal to &lt;code>0&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;50&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.2
+ * @category CoreOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lm9nIGEMEeCdEc4VzBeWeQ" name="FORMATTER_NEWLINE_OPENING_BRACE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lnGxEGEMEeCdEc4VzBeWeQ">
+ <body>
+ * @since 2.0
+ * @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION},
+ * {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_BRACE_POSITION_FOR_BLOCK} ,
+ * {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION},
+ * {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION},
+ * {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_BRACE_POSITION_FOR_SWITCH},
+ * {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION} instead.
+ * @category DeprecatedOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lnGxEWEMEeCdEc4VzBeWeQ" name="FORMATTER_NEWLINE_CONTROL" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lnQiEGEMEeCdEc4VzBeWeQ">
+ <body>
+ * @since 2.0
+ * @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT},
+ * {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT},
+ * {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT},
+ * {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT} instead.
+ * @category DeprecatedOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lnZsAGEMEeCdEc4VzBeWeQ" name="FORMATTER_NEWLINE_ELSE_IF" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lnZsAWEMEeCdEc4VzBeWeQ">
+ <body>
+ * @since 2.0
+ * @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_COMPACT_ELSE_IF} instead.
+ * @category DeprecatedOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lnjdAGEMEeCdEc4VzBeWeQ" name="FORMATTER_NEWLINE_EMPTY_BLOCK" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lntOAGEMEeCdEc4VzBeWeQ">
+ <body>
+ * @since 2.0
+ * @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_INSERT_NEW_LINE_IN_EMPTY_BLOCK} instead.
+ * @category DeprecatedOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ln2X8GEMEeCdEc4VzBeWeQ" name="FORMATTER_CLEAR_BLANK_LINES" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_ln2X8WEMEeCdEc4VzBeWeQ">
+ <body>
+ * @since 2.0
+ * @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_NUMBER_OF_EMPTY_LINES_TO_PRESERVE} instead.
+ * @category DeprecatedOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_loAI8GEMEeCdEc4VzBeWeQ" name="FORMATTER_LINE_SPLIT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_loAI8WEMEeCdEc4VzBeWeQ">
+ <body>
+ * @since 2.0
+ * @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_LINE_SPLIT} instead
+ * @category DeprecatedOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_loJ58GEMEeCdEc4VzBeWeQ" name="FORMATTER_COMPACT_ASSIGNMENT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_loTD4GEMEeCdEc4VzBeWeQ">
+ <body>
+ * @since 2.0
+ * @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_INSERT_SPACE_BEFORE_ASSIGNMENT_OPERATOR} instead.
+ * @category DeprecatedOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_loTD4WEMEeCdEc4VzBeWeQ" name="FORMATTER_TAB_CHAR" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_loc04GEMEeCdEc4VzBeWeQ">
+ <body>
+ * @since 2.0
+ * @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_TAB_CHAR} instead.
+ * @category DeprecatedOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lol-0GEMEeCdEc4VzBeWeQ" name="FORMATTER_TAB_SIZE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lol-0WEMEeCdEc4VzBeWeQ">
+ <body>
+ * @since 2.0
+ * @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_TAB_SIZE} instead.
+ * @category DeprecatedOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lovv0GEMEeCdEc4VzBeWeQ" name="FORMATTER_SPACE_CASTEXPRESSION" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lovv0WEMEeCdEc4VzBeWeQ">
+ <body>
+ * @since 2.1
+ * @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_INSERT_SPACE_AFTER_CLOSING_PAREN_IN_CAST} instead.
+ * @category DeprecatedOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lo5g0GEMEeCdEc4VzBeWeQ" name="CODEASSIST_VISIBILITY_CHECK" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lpCqwGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist option ID: Activate Visibility Sensitive Completion.
+ * &lt;p>When active, completion doesn't show that you can not see
+ * (for example, you can not see private methods of a super class).
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.codeComplete.visibilityCheck&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 2.0
+ * @category CodeAssistOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lpMbwGEMEeCdEc4VzBeWeQ" name="CODEASSIST_DEPRECATION_CHECK" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lpMbwWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist option ID: Activate Deprecation Sensitive Completion.
+ * &lt;p>When enabled, completion doesn't propose deprecated members and types.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.codeComplete.deprecationCheck&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.2
+ * @category CodeAssistOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lpWMwGEMEeCdEc4VzBeWeQ" name="CODEASSIST_CAMEL_CASE_MATCH" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lpfWsGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist option ID: Activate Camel Case Sensitive Completion.
+ * &lt;p>When enabled, completion shows proposals whose name match the CamelCase
+ * pattern.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.codeComplete.camelCaseMatch&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;enabled&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.2
+ * @category CodeAssistOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lpfWsWEMEeCdEc4VzBeWeQ" name="CODEASSIST_IMPLICIT_QUALIFICATION" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lppHsGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist option ID: Automatic Qualification of Implicit Members.
+ * &lt;p>When active, completion automatically qualifies completion on implicit
+ * field references and message expressions.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.codeComplete.forceImplicitQualification&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 2.0
+ * @category CodeAssistOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lpyRoGEMEeCdEc4VzBeWeQ" name="CODEASSIST_FIELD_PREFIXES" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lpyRoWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist option ID: Define the Prefixes for Field Name.
+ * &lt;p>When the prefixes is non empty, completion for field name will begin with
+ * one of the proposed prefixes.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.codeComplete.fieldPrefixes&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;&amp;lt;prefix&amp;gt;[,&amp;lt;prefix&amp;gt;]*&quot; }&lt;/code> where &lt;code>&amp;lt;prefix&amp;gt;&lt;/code> is a String without any wild-card&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 2.1
+ * @category CodeAssistOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lp8CoGEMEeCdEc4VzBeWeQ" name="CODEASSIST_STATIC_FIELD_PREFIXES" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lp8CoWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist option ID: Define the Prefixes for Static Field Name.
+ * &lt;p>When the prefixes is non empty, completion for static field name will begin with
+ * one of the proposed prefixes.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.codeComplete.staticFieldPrefixes&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;&amp;lt;prefix&amp;gt;[,&amp;lt;prefix&amp;gt;]*&quot; }&lt;/code> where &lt;code>&amp;lt;prefix&amp;gt;&lt;/code> is a String without any wild-card&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 2.1
+ * @category CodeAssistOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lqFzoGEMEeCdEc4VzBeWeQ" name="CODEASSIST_STATIC_FINAL_FIELD_PREFIXES" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lqO9kGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist option ID: Define the Prefixes for Static Final Field Name.
+ * &lt;p>When the prefixes is non empty, completion for static final field name will begin with
+ * one of the proposed prefixes.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;&amp;lt;prefix&amp;gt;[,&amp;lt;prefix&amp;gt;]*&quot; }&lt;/code> where &lt;code>&amp;lt;prefix&amp;gt;&lt;/code> is a String without any wild-card&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.5
+ * @category CodeAssistOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lqO9kWEMEeCdEc4VzBeWeQ" name="CODEASSIST_LOCAL_PREFIXES" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lqYukGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist option ID: Define the Prefixes for Local Variable Name.
+ * &lt;p>When the prefixes is non empty, completion for local variable name will begin with
+ * one of the proposed prefixes.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.codeComplete.localPrefixes&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;&amp;lt;prefix&amp;gt;[,&amp;lt;prefix&amp;gt;]*&quot; }&lt;/code> where &lt;code>&amp;lt;prefix&amp;gt;&lt;/code> is a String without any wild-card&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 2.1
+ * @category CodeAssistOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lqifkGEMEeCdEc4VzBeWeQ" name="CODEASSIST_ARGUMENT_PREFIXES" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lqifkWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist option ID: Define the Prefixes for Argument Name.
+ * &lt;p>When the prefixes is non empty, completion for argument name will begin with
+ * one of the proposed prefixes.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.codeComplete.argumentPrefixes&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;&amp;lt;prefix&amp;gt;[,&amp;lt;prefix&amp;gt;]*&quot; }&lt;/code> where &lt;code>&amp;lt;prefix&amp;gt;&lt;/code> is a String without any wild-card&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 2.1
+ * @category CodeAssistOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lqrpgGEMEeCdEc4VzBeWeQ" name="CODEASSIST_FIELD_SUFFIXES" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lq1agGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist option ID: Define the Suffixes for Field Name.
+ * &lt;p>When the suffixes is non empty, completion for field name will end with
+ * one of the proposed suffixes.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.codeComplete.fieldSuffixes&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;&amp;lt;suffix&amp;gt;[,&amp;lt;suffix&amp;gt;]*&quot; }&lt;/code> where &lt;code>&amp;lt;suffix&amp;gt;&lt;/code> is a String without any wild-card&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 2.1
+ * @category CodeAssistOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lq1agWEMEeCdEc4VzBeWeQ" name="CODEASSIST_STATIC_FIELD_SUFFIXES" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lq-kcGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist option ID: Define the Suffixes for Static Field Name.
+ * &lt;p>When the suffixes is non empty, completion for static field name will end with
+ * one of the proposed suffixes.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.codeComplete.staticFieldSuffixes&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;&amp;lt;suffix&amp;gt;[,&amp;lt;suffix&amp;gt;]*&quot; }&lt;/code>&lt; where &lt;code>&amp;lt;suffix&amp;gt;&lt;/code> is a String without any wild-card&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 2.1
+ * @category CodeAssistOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lrIVcGEMEeCdEc4VzBeWeQ" name="CODEASSIST_STATIC_FINAL_FIELD_SUFFIXES" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lrIVcWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist option ID: Define the Suffixes for Static Final Field Name.
+ * &lt;p>When the suffixes is non empty, completion for static final field name will end with
+ * one of the proposed suffixes.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;&amp;lt;suffix&amp;gt;[,&amp;lt;suffix&amp;gt;]*&quot; }&lt;/code>&lt; where &lt;code>&amp;lt;suffix&amp;gt;&lt;/code> is a String without any wild-card&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.5
+ * @category CodeAssistOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lrSGcGEMEeCdEc4VzBeWeQ" name="CODEASSIST_LOCAL_SUFFIXES" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lrbQYGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist option ID: Define the Suffixes for Local Variable Name.
+ * &lt;p>When the suffixes is non empty, completion for local variable name will end with
+ * one of the proposed suffixes.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.codeComplete.localSuffixes&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;&amp;lt;suffix&amp;gt;[,&amp;lt;suffix&amp;gt;]*&quot; }&lt;/code> where &lt;code>&amp;lt;suffix&amp;gt;&lt;/code> is a String without any wild-card&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 2.1
+ * @category CodeAssistOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lrbQYWEMEeCdEc4VzBeWeQ" name="CODEASSIST_ARGUMENT_SUFFIXES" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lrlBYGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist option ID: Define the Suffixes for Argument Name.
+ * &lt;p>When the suffixes is non empty, completion for argument name will end with
+ * one of the proposed suffixes.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.codeComplete.argumentSuffixes&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;&amp;lt;suffix&amp;gt;[,&amp;lt;suffix&amp;gt;]*&quot; }&lt;/code> where &lt;code>&amp;lt;suffix&amp;gt;&lt;/code> is a String without any wild-card&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 2.1
+ * @category CodeAssistOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lruyYGEMEeCdEc4VzBeWeQ" name="CODEASSIST_FORBIDDEN_REFERENCE_CHECK" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lruyYWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist option ID: Activate Forbidden Reference Sensitive Completion.
+ * &lt;p>When enabled, completion doesn't propose elements which match a
+ * forbidden reference rule.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.codeComplete.forbiddenReferenceCheck&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;enabled&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.1
+ * @category CodeAssistOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lr38UGEMEeCdEc4VzBeWeQ" name="CODEASSIST_DISCOURAGED_REFERENCE_CHECK" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lr38UWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist option ID: Activate Discouraged Reference Sensitive Completion.
+ * &lt;p>When enabled, completion doesn't propose elements which match a
+ * discouraged reference rule.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.codeComplete.discouragedReferenceCheck&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.1
+ * @category CodeAssistOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lsBtUGEMEeCdEc4VzBeWeQ" name="CODEASSIST_SUGGEST_STATIC_IMPORTS" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lsK3QGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Code assist option ID: Activate Suggestion of Static Import.
+ * &lt;p>When enabled, completion proposals can contain static import
+ * pattern.
+ * &lt;dl>
+ * &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.codeComplete.suggestStaticImports&quot;&lt;/code>&lt;/dd>
+ * &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
+ * &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;enabled&quot;&lt;/code>&lt;/dd>
+ * &lt;/dl>
+ * @since 3.3
+ * @category CodeAssistOptionID
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lsUoQGEMEeCdEc4VzBeWeQ" name="DEFAULT_TASK_TAG" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lsUoQWEMEeCdEc4VzBeWeQ">
+ <body>
+ * @deprecated Use {@link #DEFAULT_TASK_TAGS} instead.
+ * @since 2.1
+ * @category DeprecatedOptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lseZQGEMEeCdEc4VzBeWeQ" name="DEFAULT_TASK_PRIORITY" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lseZQWEMEeCdEc4VzBeWeQ">
+ <body>
+ * @deprecated Use {@link #DEFAULT_TASK_PRIORITIES} instead.
+ * @since 2.1
+ * @category DeprecatedOptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lsnjMGEMEeCdEc4VzBeWeQ" name="DEFAULT_TASK_TAGS" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lsxUMGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @since 3.0
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lsxUMWEMEeCdEc4VzBeWeQ" name="DEFAULT_TASK_PRIORITIES" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_ls7FMGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @since 3.0
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ls7FMWEMEeCdEc4VzBeWeQ" name="GENERATE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_ltEPIGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ltOAIGEMEeCdEc4VzBeWeQ" name="DO_NOT_GENERATE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_ltOAIWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ltXKEGEMEeCdEc4VzBeWeQ" name="PRESERVE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_ltXKEWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ltg7EGEMEeCdEc4VzBeWeQ" name="OPTIMIZE_OUT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_ltqsEGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ltz2AGEMEeCdEc4VzBeWeQ" name="COMPILER_TASK_PRIORITY_HIGH" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_ltz2AWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value for {@link #COMPILER_TASK_PRIORITIES}: {@value}.
+ * @since 2.1
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lt9nAGEMEeCdEc4VzBeWeQ" name="COMPILER_TASK_PRIORITY_LOW" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_luHYAGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value for {@link #COMPILER_TASK_PRIORITIES}: {@value}.
+ * @since 2.1
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_luHYAWEMEeCdEc4VzBeWeQ" name="COMPILER_TASK_PRIORITY_NORMAL" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_luQh8GEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value for {@link #COMPILER_TASK_PRIORITIES}: {@value}.
+ * @since 2.1
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_luaS8GEMEeCdEc4VzBeWeQ" name="VERSION_1_1" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_luaS8WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lujc4GEMEeCdEc4VzBeWeQ" name="VERSION_1_2" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lujc4WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lutN4GEMEeCdEc4VzBeWeQ" name="VERSION_1_3" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lu2-4GEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @since 2.0
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lu2-4WEMEeCdEc4VzBeWeQ" name="VERSION_1_4" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lvAI0GEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @since 2.0
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lvAI0WEMEeCdEc4VzBeWeQ" name="VERSION_1_5" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lvJ50GEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @since 3.0
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lvTq0GEMEeCdEc4VzBeWeQ" name="VERSION_1_6" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lvTq0WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @since 3.2
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lvc0wGEMEeCdEc4VzBeWeQ" name="VERSION_1_7" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lvmlwGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @since 3.3
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lvmlwWEMEeCdEc4VzBeWeQ" name="VERSION_CLDC_1_1" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lvvvsGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @since 3.4
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lv5gsGEMEeCdEc4VzBeWeQ" name="ABORT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lv5gsWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @since 2.0
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lwDRsGEMEeCdEc4VzBeWeQ" name="ERROR" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lwDRsWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lwMboGEMEeCdEc4VzBeWeQ" name="WARNING" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lwWMoGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lwWMoWEMEeCdEc4VzBeWeQ" name="IGNORE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lwf9oGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lwpHkGEMEeCdEc4VzBeWeQ" name="COMPUTE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lwy4kGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lw8CgGEMEeCdEc4VzBeWeQ" name="INSERT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lw8CgWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @since 2.0
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lxFzgGEMEeCdEc4VzBeWeQ" name="DO_NOT_INSERT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lxFzgWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @since 2.0
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lxPkgGEMEeCdEc4VzBeWeQ" name="PRESERVE_ONE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lxYucGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @since 2.0
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lxYucWEMEeCdEc4VzBeWeQ" name="CLEAR_ALL" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lxifcGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @since 2.0
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lxifcWEMEeCdEc4VzBeWeQ" name="NORMAL" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lxsQcGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @since 2.0
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lx1aYGEMEeCdEc4VzBeWeQ" name="COMPACT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lx1aYWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @since 2.0
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lx_LYGEMEeCdEc4VzBeWeQ" name="TAB" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lx_LYWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @since 2.0
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lyIVUGEMEeCdEc4VzBeWeQ" name="SPACE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lySGUGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @since 2.0
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lyb3UGEMEeCdEc4VzBeWeQ" name="ENABLED" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lylBQGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @since 2.0
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lylBQWEMEeCdEc4VzBeWeQ" name="DISABLED" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lyuyQGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @since 2.0
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lyuyQWEMEeCdEc4VzBeWeQ" name="CLEAN" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_ly4jQGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @since 2.1
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lzBtMGEMEeCdEc4VzBeWeQ" name="PUBLIC" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lzBtMWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @since 3.0
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lzLeMGEMEeCdEc4VzBeWeQ" name="PROTECTED" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lzUoIGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @since 3.0
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lzUoIWEMEeCdEc4VzBeWeQ" name="DEFAULT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lzeZIGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @since 3.0
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lzoKIGEMEeCdEc4VzBeWeQ" name="PRIVATE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lzxUEGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @since 3.0
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lzxUEWEMEeCdEc4VzBeWeQ" name="NEVER" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_lz7FEGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @since 3.1
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_l0E2EGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MISSING_JAVADOC_TAG_DESCRIPTION_NO_TAG" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_l0E2EWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @since 3.4
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_l0OAAGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MISSING_JAVADOC_TAG_DESCRIPTION_RETURN_TAG" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_l0OAAWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @since 3.4
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_l0XxAGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MISSING_JAVADOC_TAG_DESCRIPTION_ALL_STANDARD_TAGS" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_l0XxAWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Configurable option value: {@value}.
+ * @since 3.4
+ * @category OptionValue
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_l0g68GEMEeCdEc4VzBeWeQ" name="JAVA_SOURCE_CONTENT_TYPE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_l0qr8GEMEeCdEc4VzBeWeQ">
+ <body>
+ * Value of the content-type for Java source files. Use this value to retrieve the Java content type
+ * from the content type manager, and to add new Java-like extensions to this content type.
+ *
+ * @see org.eclipse.core.runtime.content.IContentTypeManager#getContentType(String)
+ * @see #getJavaLikeExtensions()
+ * @since 3.2
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_l0qr8WEMEeCdEc4VzBeWeQ" name="addElementChangedListener" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_l0qr8mEMEeCdEc4VzBeWeQ">
+ <body>
+ * Adds the given listener for changes to Java elements.
+ * Has no effect if an identical listener is already registered.
+ *
+ * This listener will only be notified during the POST_CHANGE resource change notification
+ * and any reconcile operation (POST_RECONCILE).
+ * For finer control of the notification, use &lt;code>addElementChangedListener(IElementChangedListener,int)&lt;/code>,
+ * which allows to specify a different eventMask.
+ *
+ * @param listener the listener
+ * @see ElementChangedEvent
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_l00c8GEMEeCdEc4VzBeWeQ" name="listener" type="_kM9HQGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_l1RI4GEMEeCdEc4VzBeWeQ" name="addElementChangedListener" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_l1RI4WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Adds the given listener for changes to Java elements.
+ * Has no effect if an identical listener is already registered.
+ * After completion of this method, the given listener will be registered for exactly
+ * the specified events. If they were previously registered for other events, they
+ * will be deregistered.
+ * &lt;p>
+ * Once registered, a listener starts receiving notification of changes to
+ * java elements in the model. The listener continues to receive
+ * notifications until it is replaced or removed.
+ * &lt;/p>
+ * &lt;p>
+ * Listeners can listen for several types of event as defined in &lt;code>ElementChangeEvent&lt;/code>.
+ * Clients are free to register for any number of event types however if they register
+ * for more than one, it is their responsibility to ensure they correctly handle the
+ * case where the same java element change shows up in multiple notifications.
+ * Clients are guaranteed to receive only the events for which they are registered.
+ * &lt;/p>
+ *
+ * @param listener the listener
+ * @param eventMask the bit-wise OR of all event types of interest to the listener
+ * @see IElementChangedListener
+ * @see ElementChangedEvent
+ * @see #removeElementChangedListener(IElementChangedListener)
+ * @since 2.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_l1RI4mEMEeCdEc4VzBeWeQ" name="listener" type="_kM9HQGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_l1aS0GEMEeCdEc4VzBeWeQ" name="eventMask" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_l1aS0mEMEeCdEc4VzBeWeQ" name="addJavaElementMarkerAttributes" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_l1aS02EMEeCdEc4VzBeWeQ">
+ <body>
+ * Configures the given marker attribute map for the given Java element.
+ * Used for markers, which denote a Java element rather than a resource.
+ *
+ * @param attributes the mutable marker attribute map (key type: &lt;code>String&lt;/code>,
+ * value type: &lt;code>String&lt;/code>)
+ * @param element the Java element for which the marker needs to be configured
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_l1kD0GEMEeCdEc4VzBeWeQ" name="attributes" type="_l1aS0WEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_l1kD0WEMEeCdEc4VzBeWeQ" name="element" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_l1tNwmEMEeCdEc4VzBeWeQ" name="addNonJavaResources" visibility="private" isStatic="true">
+ <ownedParameter xmi:id="_l1tNw2EMEeCdEc4VzBeWeQ" name="nonJavaResources" type="_kOcVAmEMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_l12-wWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_l12-wGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_l12-wmEMEeCdEc4VzBeWeQ" name="container" type="_l1tNwGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_l2AvwGEMEeCdEc4VzBeWeQ" name="rootPathSegmentCounts" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_l2AvwWEMEeCdEc4VzBeWeQ" name="collector" type="_l1tNwWEMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_l2J5sWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_l2J5sGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_l2TqsGEMEeCdEc4VzBeWeQ" name="addPreProcessingResourceChangedListener" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_l2TqsWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Adds the given listener for POST_CHANGE resource change events to the Java core.
+ * The listener is guaranteed to be notified of the POST_CHANGE resource change event before
+ * the Java core starts processing the resource change event itself.
+ * &lt;p>
+ * Has no effect if an identical listener is already registered.
+ * &lt;/p>
+ *
+ * @param listener the listener
+ * @see #removePreProcessingResourceChangedListener(IResourceChangeListener)
+ * @since 3.0
+ * @deprecated use addPreProcessingResourceChangedListener(listener, IResourceChangeEvent.POST_CHANGE) instead
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_l2TqsmEMEeCdEc4VzBeWeQ" name="listener" type="_l2J5smEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_l2wWoGEMEeCdEc4VzBeWeQ" name="addPreProcessingResourceChangedListener" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_l2wWoWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Adds the given listener for resource change events of the given types to the Java core.
+ * The listener is guaranteed to be notified of the resource change event before
+ * the Java core starts processing the resource change event itself.
+ * &lt;p>
+ * If an identical listener is already registered, the given event types are added to the event types
+ * of interest to the listener.
+ * &lt;/p>
+ * &lt;p>
+ * Supported event types are:
+ * &lt;ul>
+ * &lt;li>{@link IResourceChangeEvent#PRE_BUILD}&lt;/li>
+ * &lt;li>{@link IResourceChangeEvent#POST_BUILD}&lt;/li>
+ * &lt;li>{@link IResourceChangeEvent#POST_CHANGE}&lt;/li>
+ * &lt;li>{@link IResourceChangeEvent#PRE_DELETE}&lt;/li>
+ * &lt;li>{@link IResourceChangeEvent#PRE_CLOSE}&lt;/li>
+ * &lt;/ul>
+ * This list may increase in the future.
+ * &lt;/p>
+ *
+ * @param listener the listener
+ * @param eventMask the bit-wise OR of all event types of interest to the
+ * listener
+ * @see #removePreProcessingResourceChangedListener(IResourceChangeListener)
+ * @see IResourceChangeEvent
+ * @since 3.2
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_l25gkGEMEeCdEc4VzBeWeQ" name="listener" type="_l2J5smEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_l25gkWEMEeCdEc4VzBeWeQ" name="eventMask" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_l25gkmEMEeCdEc4VzBeWeQ" name="configureJavaElementMarker" visibility="public">
+ <ownedComment xmi:id="_l25gk2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Configures the given marker for the given Java element.
+ * Used for markers, which denote a Java element rather than a resource.
+ *
+ * @param marker the marker to be configured
+ * @param element the Java element for which the marker needs to be configured
+ * @exception CoreException if the &lt;code>IMarker.setAttribute&lt;/code> on the marker fails
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_l3DRkGEMEeCdEc4VzBeWeQ" name="marker" type="_j6oBIGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_l3NCkGEMEeCdEc4VzBeWeQ" name="element" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_l3NCkWEMEeCdEc4VzBeWeQ" name="create" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_l3NCkmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the Java model element corresponding to the given handle identifier
+ * generated by &lt;code>IJavaElement.getHandleIdentifier()&lt;/code>, or
+ * &lt;code>null&lt;/code> if unable to create the associated element.
+ *
+ * @param handleIdentifier the given handle identifier
+ * @return the Java element corresponding to the handle identifier
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_l3WMgGEMEeCdEc4VzBeWeQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_l3f9gGEMEeCdEc4VzBeWeQ" name="handleIdentifier" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_l4ifUGEMEeCdEc4VzBeWeQ" name="JavaModelException">
+ <ownedComment xmi:id="_l4ifUWEMEeCdEc4VzBeWeQ">
+ <body>
+ * A checked exception representing a failure in the Java model.
+ * Java model exceptions contain a Java-specific status object describing the
+ * cause of the exception.
+ * &lt;p>
+ * Instances of this class are automatically created by the Java model
+ * when problems arise, so there is generally no need for clients to create
+ * instances.
+ * &lt;/p>
+ *
+ * @see IJavaModelStatus
+ * @see IJavaModelStatusConstants
+ *
+ * @noextend This class is not intended to be subclassed by clients.
+ </body>
+ </ownedComment>
+ <generalization xmi:id="_l4sQUGEMEeCdEc4VzBeWeQ" general="_l4ifUmEMEeCdEc4VzBeWeQ"/>
+ <ownedAttribute xmi:id="_l4_LQGEMEeCdEc4VzBeWeQ" name="serialVersionUID" visibility="private" isLeaf="true" isStatic="true" type="_dWatRGEMEeCdEc4VzBeWeQ" isUnique="false"/>
+ <ownedAttribute xmi:id="_l5I8QGEMEeCdEc4VzBeWeQ" name="nestedCoreException" type="_l4ifUmEMEeCdEc4VzBeWeQ" isUnique="false"/>
+ <ownedOperation xmi:id="_l5SGMGEMEeCdEc4VzBeWeQ" name="getException" visibility="public">
+ <ownedComment xmi:id="_l5SGMWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the underlying &lt;code>Throwable&lt;/code> that caused the failure.
+ *
+ * @return the wrappered &lt;code>Throwable&lt;/code>, or &lt;code>null&lt;/code> if the
+ * direct case of the failure was at the Java model layer
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_l5SGM2EMEeCdEc4VzBeWeQ" type="_l5SGMmEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_l5b3MGEMEeCdEc4VzBeWeQ" name="getJavaModelStatus" visibility="public">
+ <ownedComment xmi:id="_l5b3MWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the Java model status object for this exception.
+ * Equivalent to &lt;code>(IJavaModelStatus) getStatus()&lt;/code>.
+ *
+ * @return a status object
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_l5b3MmEMEeCdEc4VzBeWeQ" type="_kaEWMGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_l5b3M2EMEeCdEc4VzBeWeQ" name="isDoesNotExist" visibility="public">
+ <ownedComment xmi:id="_l5loMGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether this exception indicates that a Java model element does not
+ * exist. Such exceptions have a status with a code of
+ * &lt;code>IJavaModelStatusConstants.ELEMENT_DOES_NOT_EXIST&lt;/code> or
+ * &lt;code>IJavaModelStatusConstants.ELEMENT_NOT_ON_CLASSPATH&lt;/code>.
+ * This is a convenience method.
+ *
+ * @return &lt;code>true&lt;/code> if this exception indicates that a Java model
+ * element does not exist
+ * @see IJavaModelStatus#isDoesNotExist()
+ * @see IJavaModelStatusConstants#ELEMENT_DOES_NOT_EXIST
+ * @see IJavaModelStatusConstants#ELEMENT_NOT_ON_CLASSPATH
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_l5uyIGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_l54jIGEMEeCdEc4VzBeWeQ" name="printStackTrace" visibility="public">
+ <ownedComment xmi:id="_l54jIWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Prints this exception's stack trace to the given print stream.
+ *
+ * @param output the print stream
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_l54jImEMEeCdEc4VzBeWeQ" name="output" type="_l5uyImEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_l6CUIGEMEeCdEc4VzBeWeQ" name="printStackTrace" visibility="public">
+ <ownedComment xmi:id="_l6CUIWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Prints this exception's stack trace to the given print writer.
+ *
+ * @param output the print writer
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_l6CUImEMEeCdEc4VzBeWeQ" name="output" type="_l54jI2EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_l6CUI2EMEeCdEc4VzBeWeQ" name="toString" visibility="public">
+ <ownedParameter xmi:id="_l6LeEGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_l96HgGEMEeCdEc4VzBeWeQ" name="NamingConventions" isLeaf="true">
+ <ownedComment xmi:id="_l-DRcGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Provides methods for computing Java-specific names.
+ * &lt;p>
+ * The behavior of the methods is dependent of several JavaCore options.
+ * &lt;p>
+ * The possible options are :
+ * &lt;ul>
+ * &lt;li> {@link JavaCore#CODEASSIST_FIELD_PREFIXES} : Define the Prefixes for Field Name.&lt;/li>
+ * &lt;li> {@link JavaCore#CODEASSIST_FIELD_SUFFIXES} : Define the Suffixes for Field Name.&lt;/li>
+ *
+ * &lt;li> {@link JavaCore#CODEASSIST_STATIC_FIELD_PREFIXES} : Define the Prefixes for Static Field Name.&lt;/li>
+ * &lt;li> {@link JavaCore#CODEASSIST_STATIC_FIELD_SUFFIXES} : Define the Suffixes for Static Field Name.&lt;/li>
+ *
+ * &lt;li> {@link JavaCore#CODEASSIST_STATIC_FINAL_FIELD_PREFIXES} : Define the Prefixes for Static Final Field Name.&lt;/li>
+ * &lt;li> {@link JavaCore#CODEASSIST_STATIC_FINAL_FIELD_SUFFIXES} : Define the Suffixes for Static Final Field Name.&lt;/li>
+ *
+ * &lt;li> {@link JavaCore#CODEASSIST_LOCAL_PREFIXES} : Define the Prefixes for Local Variable Name.&lt;/li>
+ * &lt;li> {@link JavaCore#CODEASSIST_LOCAL_SUFFIXES} : Define the Suffixes for Local Variable Name.&lt;/li>
+ *
+ * &lt;li> {@link JavaCore#CODEASSIST_ARGUMENT_PREFIXES} : Define the Prefixes for Argument Name.&lt;/li>
+ * &lt;li> {@link JavaCore#CODEASSIST_ARGUMENT_SUFFIXES} : Define the Suffixes for Argument Name.&lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ * &lt;p>
+ * For a complete description of the configurable options, see {@link JavaCore#getDefaultOptions()}.
+ * To programmatically change these options, see {@link JavaCore#setOptions(java.util.Hashtable)}.
+ * &lt;/p>
+ * &lt;p>
+ * This class provides static methods and constants only.
+ * &lt;/p>
+ *
+ * @see JavaCore#setOptions(java.util.Hashtable)
+ * @see JavaCore#getDefaultOptions()
+ * @since 2.1
+ * @noinstantiate This class is not intended to be instantiated by clients.
+ </body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_mEKggGEMEeCdEc4VzBeWeQ" name="GETTER_BOOL_NAME" visibility="private" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mEURgWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mEURgGEMEeCdEc4VzBeWeQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mEURgmEMEeCdEc4VzBeWeQ" name="GETTER_NAME" visibility="private" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mEnMcWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mEnMcGEMEeCdEc4VzBeWeQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mEnMcmEMEeCdEc4VzBeWeQ" name="SETTER_NAME" visibility="private" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mE6HYWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mE6HYGEMEeCdEc4VzBeWeQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mFD4YGEMEeCdEc4VzBeWeQ" name="VK_STATIC_FIELD" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mFD4YWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Variable kind which represents a static field.
+ *
+ * @since 3.5
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mFNCUGEMEeCdEc4VzBeWeQ" name="VK_INSTANCE_FIELD" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mFWzUGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Variable kind which represents an instance field.
+ *
+ * @since 3.5
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mFgkUGEMEeCdEc4VzBeWeQ" name="VK_STATIC_FINAL_FIELD" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mFgkUWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Variable kind which represents a static final field.
+ *
+ * @since 3.5
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mFpuQGEMEeCdEc4VzBeWeQ" name="VK_PARAMETER" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mFzfQGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Variable kind which represents an argument.
+ *
+ * @since 3.5
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mFzfQWEMEeCdEc4VzBeWeQ" name="VK_LOCAL" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mF9QQGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Variable kind which represents a local variable.
+ *
+ * @since 3.5
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mGGaMGEMEeCdEc4VzBeWeQ" name="BK_NAME" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mGGaMWEMEeCdEc4VzBeWeQ">
+ <body>
+ * The base name associated to this base name kind is a simple name.
+ * When this base name is used the whole name is considered.
+ *
+ * @see #suggestVariableNames(int, int, String, IJavaProject, int, String[], boolean)
+ *
+ * @since 3.5
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mGQLMGEMEeCdEc4VzBeWeQ" name="BK_TYPE_NAME" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mGZVIGEMEeCdEc4VzBeWeQ">
+ <body>
+ * The base name associated to this base name kind is a simple type name.
+ * When this base name is used all the words of the name are considered.
+ *
+ * @see #suggestVariableNames(int, int, String, IJavaProject, int, String[], boolean)
+ *
+ * @since 3.5
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_l-DRcWEMEeCdEc4VzBeWeQ" name="NamingRequestor" clientDependency="_l-8pUGEMEeCdEc4VzBeWeQ">
+ <ownedAttribute xmi:id="_l_GaUGEMEeCdEc4VzBeWeQ" name="SIZE" visibility="private" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false"/>
+ <ownedAttribute xmi:id="_l_PkQGEMEeCdEc4VzBeWeQ" name="firstPrefixAndFirstSuffixResults" visibility="private" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_l_ZVQWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_l_ZVQGEMEeCdEc4VzBeWeQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_l_ZVQmEMEeCdEc4VzBeWeQ" name="firstPrefixAndFirstSuffixResultsCount" visibility="private" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false"/>
+ <ownedAttribute xmi:id="_l_jGQGEMEeCdEc4VzBeWeQ" name="firstPrefixAndSuffixResults" visibility="private" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_l_sQMWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_l_sQMGEMEeCdEc4VzBeWeQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_l_2BMGEMEeCdEc4VzBeWeQ" name="firstPrefixAndSuffixResultsCount" visibility="private" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false"/>
+ <ownedAttribute xmi:id="_l__yMGEMEeCdEc4VzBeWeQ" name="prefixAndFirstSuffixResults" visibility="private" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mAI8IGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_l__yMWEMEeCdEc4VzBeWeQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mAI8IWEMEeCdEc4VzBeWeQ" name="prefixAndFirstSuffixResultsCount" visibility="private" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false"/>
+ <ownedAttribute xmi:id="_mAStIGEMEeCdEc4VzBeWeQ" name="prefixAndSuffixResults" visibility="private" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mAloEGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mAb3EGEMEeCdEc4VzBeWeQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mAloEWEMEeCdEc4VzBeWeQ" name="prefixAndSuffixResultsCount" visibility="private" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false"/>
+ <ownedAttribute xmi:id="_mAvZEGEMEeCdEc4VzBeWeQ" name="firstPrefixResults" visibility="private" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mA4jAWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mA4jAGEMEeCdEc4VzBeWeQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mA4jAmEMEeCdEc4VzBeWeQ" name="firstPrefixResultsCount" visibility="private" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false"/>
+ <ownedAttribute xmi:id="_mBCUAGEMEeCdEc4VzBeWeQ" name="prefixResults" visibility="private" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mBMFAWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mBMFAGEMEeCdEc4VzBeWeQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mBVO8GEMEeCdEc4VzBeWeQ" name="prefixResultsCount" visibility="private" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false"/>
+ <ownedAttribute xmi:id="_mBe_8GEMEeCdEc4VzBeWeQ" name="firstSuffixResults" visibility="private" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mBoJ4GEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mBe_8WEMEeCdEc4VzBeWeQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mBoJ4WEMEeCdEc4VzBeWeQ" name="firstSuffixResultsCount" visibility="private" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false"/>
+ <ownedAttribute xmi:id="_mBx64GEMEeCdEc4VzBeWeQ" name="suffixResults" visibility="private" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mCE10GEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mB7r4GEMEeCdEc4VzBeWeQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mCE10WEMEeCdEc4VzBeWeQ" name="suffixResultsCount" visibility="private" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false"/>
+ <ownedAttribute xmi:id="_mCOm0GEMEeCdEc4VzBeWeQ" name="otherResults" visibility="private" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mCYX0WEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mCYX0GEMEeCdEc4VzBeWeQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mCYX0mEMEeCdEc4VzBeWeQ" name="otherResultsCount" visibility="private" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false"/>
+ <interfaceRealization xmi:id="_l-8pUGEMEeCdEc4VzBeWeQ" name="NamingRequestor implements INamingRequestor" supplier="_l-NCcGEMEeCdEc4VzBeWeQ" client="_l-DRcWEMEeCdEc4VzBeWeQ" contract="_l-NCcGEMEeCdEc4VzBeWeQ"/>
+ <ownedOperation xmi:id="_mChhwGEMEeCdEc4VzBeWeQ" name="acceptNameWithoutPrefixAndSuffix" visibility="public">
+ <ownedParameter xmi:id="_mChhwWEMEeCdEc4VzBeWeQ" name="name" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mCrSwWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mCrSwGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mC0csGEMEeCdEc4VzBeWeQ" name="reusedCharacters" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_mC0csWEMEeCdEc4VzBeWeQ" name="acceptNameWithPrefix" visibility="public">
+ <ownedParameter xmi:id="_mC-NsGEMEeCdEc4VzBeWeQ" name="name" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mC-NsmEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mC-NsWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mDH-sGEMEeCdEc4VzBeWeQ" name="isFirstPrefix" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mDH-sWEMEeCdEc4VzBeWeQ" name="reusedCharacters" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_mDH-smEMEeCdEc4VzBeWeQ" name="acceptNameWithPrefixAndSuffix" visibility="public">
+ <ownedParameter xmi:id="_mDRIoGEMEeCdEc4VzBeWeQ" name="name" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mDRIomEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mDRIoWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mDa5oGEMEeCdEc4VzBeWeQ" name="isFirstPrefix" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mDa5oWEMEeCdEc4VzBeWeQ" name="isFirstSuffix" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mDkqoGEMEeCdEc4VzBeWeQ" name="reusedCharacters" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_mDkqoWEMEeCdEc4VzBeWeQ" name="acceptNameWithSuffix" visibility="public">
+ <ownedParameter xmi:id="_mDkqomEMEeCdEc4VzBeWeQ" name="name" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mDt0kWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mDt0kGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mDt0kmEMEeCdEc4VzBeWeQ" name="isFirstSuffix" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mD3lkGEMEeCdEc4VzBeWeQ" name="reusedCharacters" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_mD3lkWEMEeCdEc4VzBeWeQ" name="getResults" visibility="public">
+ <ownedParameter xmi:id="_mD3lkmEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mEAvgWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mEAvgGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ </nestedClassifier>
+ <ownedOperation xmi:id="_mGjGIGEMEeCdEc4VzBeWeQ" name="convertCharsToString" visibility="private" isStatic="true">
+ <ownedParameter xmi:id="_mGjGIWEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mGs3IWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mGs3IGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mGs3ImEMEeCdEc4VzBeWeQ" name="c" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mG2BEWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mG2BEGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_mG_yEGEMEeCdEc4VzBeWeQ" name="convertStringToChars" visibility="private" isStatic="true">
+ <ownedParameter xmi:id="_mG_yEWEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mHJjEGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mG_yEmEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mHln8GEMEeCdEc4VzBeWeQ" name="s" type="_dSiS02EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mHvY8GEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mHln8WEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_mHvY8WEMEeCdEc4VzBeWeQ" name="removePrefixAndSuffixForArgumentName" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_mHvY8mEMEeCdEc4VzBeWeQ">
+ <body>
+ * Remove prefix and suffix from an argument name.
+ * &lt;p>
+ * If argument name prefix is &lt;code>pre&lt;/code> and argument name suffix is &lt;code>suf&lt;/code>
+ * then for an argument named &lt;code>preArgsuf&lt;/code> the result of this method is &lt;code>arg&lt;/code>.
+ * If there is no prefix or suffix defined in JavaCore options the result is the unchanged
+ * name &lt;code>preArgsuf&lt;/code>.
+ * &lt;/p>
+ * &lt;p>
+ * This method is affected by the following JavaCore options : {@link JavaCore#CODEASSIST_ARGUMENT_PREFIXES} and
+ * {@link JavaCore#CODEASSIST_ARGUMENT_SUFFIXES}.
+ * &lt;/p>
+ * &lt;p>
+ * For a complete description of these configurable options, see &lt;code>getDefaultOptions&lt;/code>.
+ * For programmaticaly change these options, see &lt;code>JavaCore#setOptions()&lt;/code>.
+ * &lt;/p>
+ *
+ * @param javaProject project which contains the argument.
+ * @param argumentName argument's name.
+ * @return char[] the name without prefix and suffix.
+ * @see JavaCore#setOptions(java.util.Hashtable)
+ * @see JavaCore#getDefaultOptions()
+ *
+ * @deprecated Use {@link #getBaseName(int, String, IJavaProject)} instead with {@link #VK_PARAMETER} as variable kind.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_mH5J8GEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mH5J8mEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mH5J8WEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mIME4GEMEeCdEc4VzBeWeQ" name="javaProject" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mIV14GEMEeCdEc4VzBeWeQ" name="argumentName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mIV14mEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mIV14WEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_mIe_0GEMEeCdEc4VzBeWeQ" name="removePrefixAndSuffixForArgumentName" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_mIe_0WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Remove prefix and suffix from an argument name.
+ * &lt;p>
+ * If argument name prefix is &lt;code>pre&lt;/code> and argument name suffix is &lt;code>suf&lt;/code>
+ * then for an argument named &lt;code>preArgsuf&lt;/code> the result of this method is &lt;code>arg&lt;/code>.
+ * If there is no prefix or suffix defined in JavaCore options the result is the unchanged
+ * name &lt;code>preArgsuf&lt;/code>.
+ * &lt;/p>
+ * &lt;p>
+ * This method is affected by the following JavaCore options : {@link JavaCore#CODEASSIST_ARGUMENT_PREFIXES} and
+ * {@link JavaCore#CODEASSIST_ARGUMENT_SUFFIXES}.
+ * &lt;/p>
+ * &lt;p>
+ * For a complete description of these configurable options, see &lt;code>getDefaultOptions&lt;/code>.
+ * For programmaticaly change these options, see &lt;code>JavaCore#setOptions()&lt;/code>.
+ * &lt;/p>
+ *
+ * @param javaProject project which contains the argument.
+ * @param argumentName argument's name.
+ * @return char[] the name without prefix and suffix.
+ * @see JavaCore#setOptions(java.util.Hashtable)
+ * @see JavaCore#getDefaultOptions()
+ *
+ * @deprecated Use {@link #getBaseName(int, String, IJavaProject)} instead with {@link #VK_PARAMETER} as variable kind.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_mIow0GEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_mI7rwGEMEeCdEc4VzBeWeQ" name="javaProject" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mI7rwWEMEeCdEc4VzBeWeQ" name="argumentName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_mJFcwGEMEeCdEc4VzBeWeQ" name="removePrefixAndSuffixForFieldName" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_mJFcwWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Remove prefix and suffix from a field name.
+ * &lt;p>
+ * If field name prefix is &lt;code>pre&lt;/code> and field name suffix is &lt;code>suf&lt;/code>
+ * then for a field named &lt;code>preFieldsuf&lt;/code> the result of this method is &lt;code>field&lt;/code>.
+ * If there is no prefix or suffix defined in JavaCore options the result is the unchanged
+ * name &lt;code>preFieldsuf&lt;/code>.
+ * &lt;/p>
+ * &lt;p>
+ * This method is affected by the following JavaCore options : {@link JavaCore#CODEASSIST_FIELD_PREFIXES} } ,
+ * {@link JavaCore#CODEASSIST_FIELD_SUFFIXES} for instance field and {@link JavaCore#CODEASSIST_STATIC_FIELD_PREFIXES},
+ * {@link JavaCore#CODEASSIST_STATIC_FIELD_SUFFIXES} for static field.
+ * &lt;/p>
+ * &lt;p>
+ * For a complete description of these configurable options, see &lt;code>getDefaultOptions&lt;/code>.
+ * For programmaticaly change these options, see &lt;code>JavaCore#setOptions()&lt;/code>.
+ * &lt;/p>
+ *
+ * @param javaProject project which contains the field.
+ * @param fieldName field's name.
+ * @param modifiers field's modifiers as defined by the class
+ * &lt;code>Flags&lt;/code>.
+ * @return char[] the name without prefix and suffix.
+ * @see Flags
+ * @see JavaCore#setOptions(java.util.Hashtable)
+ * @see JavaCore#getDefaultOptions()
+ *
+ * @deprecated Use {@link #getBaseName(int, String, IJavaProject)} instead
+ * with {@link #VK_INSTANCE_FIELD} or {@link #VK_STATIC_FIELD} as variable kind.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_mJFcwmEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mJOmsWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mJOmsGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mJOmsmEMEeCdEc4VzBeWeQ" name="javaProject" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mJYXsGEMEeCdEc4VzBeWeQ" name="fieldName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mJiIsGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mJYXsWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mJiIsWEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_mJrSoGEMEeCdEc4VzBeWeQ" name="removePrefixAndSuffixForFieldName" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_mJrSoWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Remove prefix and suffix from a field name.
+ * &lt;p>
+ * If field name prefix is &lt;code>pre&lt;/code> and field name suffix is &lt;code>suf&lt;/code>
+ * then for a field named &lt;code>preFieldsuf&lt;/code> the result of this method is &lt;code>field&lt;/code>.
+ * If there is no prefix or suffix defined in JavaCore options the result is the unchanged
+ * name &lt;code>preFieldsuf&lt;/code>.
+ * &lt;/p>
+ * &lt;p>
+ * This method is affected by the following JavaCore options : {@link JavaCore#CODEASSIST_FIELD_PREFIXES},
+ * {@link JavaCore#CODEASSIST_FIELD_SUFFIXES} for instance field and {@link JavaCore#CODEASSIST_STATIC_FIELD_PREFIXES},
+ * {@link JavaCore#CODEASSIST_STATIC_FIELD_SUFFIXES} for static field.
+ * &lt;/p>
+ * &lt;p>
+ * For a complete description of these configurable options, see &lt;code>getDefaultOptions&lt;/code>.
+ * For programmaticaly change these options, see &lt;code>JavaCore#setOptions()&lt;/code>.
+ * &lt;/p>
+ *
+ * @param javaProject project which contains the field.
+ * @param fieldName field's name.
+ * @param modifiers field's modifiers as defined by the class
+ * &lt;code>Flags&lt;/code>.
+ * @return char[] the name without prefix and suffix.
+ * @see Flags
+ * @see JavaCore#setOptions(java.util.Hashtable)
+ * @see JavaCore#getDefaultOptions()
+ *
+ * @deprecated Use {@link #getBaseName(int, String, IJavaProject)} instead
+ * with {@link #VK_INSTANCE_FIELD} or {@link #VK_STATIC_FIELD} as variable kind.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_mJrSomEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_mJ1DoGEMEeCdEc4VzBeWeQ" name="javaProject" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mJ1DoWEMEeCdEc4VzBeWeQ" name="fieldName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mJ1DomEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_mJ-NkGEMEeCdEc4VzBeWeQ" name="removePrefixAndSuffixForLocalVariableName" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_mJ-NkWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Remove prefix and suffix from a local variable name.
+ * &lt;p>
+ * If local variable name prefix is &lt;code>pre&lt;/code> and local variable name suffix is &lt;code>suf&lt;/code>
+ * then for a local variable named &lt;code>preLocalsuf&lt;/code> the result of this method is &lt;code>local&lt;/code>.
+ * If there is no prefix or suffix defined in JavaCore options the result is the unchanged
+ * name &lt;code>preLocalsuf&lt;/code>.
+ * &lt;/p>
+ * &lt;p>
+ * This method is affected by the following JavaCore options : {@link JavaCore#CODEASSIST_LOCAL_PREFIXES} and
+ * {@link JavaCore#CODEASSIST_LOCAL_SUFFIXES}.
+ * &lt;/p>
+ * &lt;p>
+ * For a complete description of these configurable options, see &lt;code>getDefaultOptions&lt;/code>.
+ * For programmaticaly change these options, see &lt;code>JavaCore#setOptions()&lt;/code>.
+ * &lt;/p>
+ *
+ * @param javaProject project which contains the variable.
+ * @param localName variable's name.
+ * @return char[] the name without prefix and suffix.
+ * @see JavaCore#setOptions(java.util.Hashtable)
+ * @see JavaCore#getDefaultOptions()
+ *
+ * @deprecated Use {@link #getBaseName(int, String, IJavaProject)} instead with {@link #VK_LOCAL} as variable kind.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_mJ-NkmEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mKH-kWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mKH-kGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mKH-kmEMEeCdEc4VzBeWeQ" name="javaProject" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mKRvkGEMEeCdEc4VzBeWeQ" name="localName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mKa5gWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mKa5gGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_mKa5gmEMEeCdEc4VzBeWeQ" name="removePrefixAndSuffixForLocalVariableName" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_mKa5g2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Remove prefix and suffix from a local variable name.
+ * &lt;p>
+ * If local variable name prefix is &lt;code>pre&lt;/code> and local variable name suffix is &lt;code>suf&lt;/code>
+ * then for a local variable named &lt;code>preLocalsuf&lt;/code> the result of this method is &lt;code>local&lt;/code>.
+ * If there is no prefix or suffix defined in JavaCore options the result is the unchanged
+ * name &lt;code>preLocalsuf&lt;/code>.
+ * &lt;/p>
+ * &lt;p>
+ * This method is affected by the following JavaCore options : {@link JavaCore#CODEASSIST_LOCAL_PREFIXES} and
+ * {@link JavaCore#CODEASSIST_LOCAL_SUFFIXES}.
+ * &lt;/p>
+ * &lt;p>
+ * For a complete description of these configurable options, see &lt;code>getDefaultOptions&lt;/code>.
+ * For programmaticaly change these options, see &lt;code>JavaCore#setOptions()&lt;/code>.
+ * &lt;/p>
+ *
+ * @param javaProject project which contains the variable.
+ * @param localName variable's name.
+ * @return char[] the name without prefix and suffix.
+ * @see JavaCore#setOptions(java.util.Hashtable)
+ * @see JavaCore#getDefaultOptions()
+ *
+ * @deprecated Use {@link #getBaseName(int, String, IJavaProject)} instead with {@link #VK_LOCAL} as variable kind.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_mKkqgGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_mKkqgWEMEeCdEc4VzBeWeQ" name="javaProject" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mKubgGEMEeCdEc4VzBeWeQ" name="localName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_mKubgWEMEeCdEc4VzBeWeQ" name="getBaseName" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_mKubgmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns a base name which could be used to generate the given variable name with {@link #suggestVariableNames(int, int, String, IJavaProject, int, String[], boolean)}.
+ * &lt;p>
+ * e.g.&lt;br>
+ * If the variable is a {@link #VK_LOCAL} and the variable name is &lt;code>variableName&lt;/code> then the base name will be &lt;code>variableName&lt;/code>.&lt;br>
+ * If the variable is a {@link #VK_STATIC_FINAL_FIELD} and the variable name is &lt;code>VARIABLE_NAME&lt;/code> then the base name will be &lt;code>variableName&lt;/code>.&lt;br>
+ * &lt;/p>
+ * &lt;p>
+ * Prefixes and suffixes defined in JavaCore options will be also removed from the variable name.&lt;br>
+ * Each variable kind is affected by the following JavaCore options:
+ * &lt;ul>
+ * &lt;li>{@link #VK_PARAMETER}: {@link JavaCore#CODEASSIST_ARGUMENT_PREFIXES} and {@link JavaCore#CODEASSIST_ARGUMENT_SUFFIXES}&lt;/li>
+ * &lt;li>{@link #VK_LOCAL}: {@link JavaCore#CODEASSIST_LOCAL_PREFIXES} and {@link JavaCore#CODEASSIST_LOCAL_SUFFIXES}&lt;/li>
+ * &lt;li>{@link #VK_INSTANCE_FIELD}: {@link JavaCore#CODEASSIST_FIELD_PREFIXES} and {@link JavaCore#CODEASSIST_FIELD_SUFFIXES}&lt;/li>
+ * &lt;li>{@link #VK_STATIC_FIELD}: {@link JavaCore#CODEASSIST_STATIC_FIELD_PREFIXES} and {@link JavaCore#CODEASSIST_STATIC_FIELD_SUFFIXES}&lt;/li>
+ * &lt;li>{@link #VK_STATIC_FINAL_FIELD}: {@link JavaCore#CODEASSIST_STATIC_FINAL_FIELD_PREFIXES} and {@link JavaCore#CODEASSIST_STATIC_FINAL_FIELD_SUFFIXES}&lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ * &lt;p>
+ * e.g.&lt;br>
+ * If the variable is a {@link #VK_LOCAL}, the variable name is &lt;code>preVariableNamesuf&lt;/code>, a possible prefix is &lt;code>pre&lt;/code> and a possible suffix is &lt;code>suf&lt;/code>
+ * then the base name will be &lt;code>variableName&lt;/code>.&lt;br>
+ * &lt;/p>
+ *
+ * @param variableKind specifies what type the variable is: {@link #VK_LOCAL}, {@link #VK_PARAMETER}, {@link #VK_STATIC_FIELD},
+ * {@link #VK_INSTANCE_FIELD} or {@link #VK_STATIC_FINAL_FIELD}.
+ * @param variableName a variable name
+ * @param javaProject project which contains the variable or &lt;code>null&lt;/code> to take into account only workspace settings.
+ *
+ * @see #suggestVariableNames(int, int, String, IJavaProject, int, String[], boolean)
+ * @since 3.5
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_mK3lcGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_mK3lcWEMEeCdEc4VzBeWeQ" name="variableKind" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mLBWcGEMEeCdEc4VzBeWeQ" name="variableName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mLBWcWEMEeCdEc4VzBeWeQ" name="javaProject" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_mLKgYGEMEeCdEc4VzBeWeQ" name="getFieldVariableKind" visibility="private" isStatic="true">
+ <ownedParameter xmi:id="_mLKgYWEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_mLURYGEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_mLURYWEMEeCdEc4VzBeWeQ" name="suggestAccessorName" visibility="private" isStatic="true">
+ <ownedParameter xmi:id="_mLURYmEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mLeCYWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mLeCYGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mLnMUGEMEeCdEc4VzBeWeQ" name="project" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mLnMUWEMEeCdEc4VzBeWeQ" name="fieldName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mLw9UGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mLnMUmEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mL6uUGEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_mL6uUWEMEeCdEc4VzBeWeQ" name="suggestArgumentNames" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_mL6uUmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Suggest names for an argument. The name is computed from argument's type
+ * and possible prefixes or suffixes are added.
+ * &lt;p>
+ * If the type of the argument is &lt;code>TypeName&lt;/code>, the prefix for argument is &lt;code>pre&lt;/code>
+ * and the suffix for argument is &lt;code>suf&lt;/code> then the proposed names are &lt;code>preTypeNamesuf&lt;/code>
+ * and &lt;code>preNamesuf&lt;/code>. If there is no prefix or suffix the proposals are &lt;code>typeName&lt;/code>
+ * and &lt;code>name&lt;/code>.
+ * &lt;/p>
+ * &lt;p>
+ * This method is affected by the following JavaCore options : {@link JavaCore#CODEASSIST_ARGUMENT_PREFIXES} and
+ * {@link JavaCore#CODEASSIST_ARGUMENT_SUFFIXES}.
+ * &lt;/p>
+ * &lt;p>
+ * For a complete description of these configurable options, see &lt;code>getDefaultOptions&lt;/code>.
+ * For programmaticaly change these options, see &lt;code>JavaCore#setOptions()&lt;/code>.
+ * &lt;/p>
+ *
+ * @param javaProject project which contains the argument.
+ * @param packageName package of the argument's type.
+ * @param qualifiedTypeName argument's type.
+ * @param dim argument's dimension (0 if the argument is not an array).
+ * @param excludedNames a list of names which cannot be suggested (already used names).
+ * Can be &lt;code>null&lt;/code> if there is no excluded names.
+ * @return char[][] an array of names.
+ * @see JavaCore#setOptions(java.util.Hashtable)
+ * @see JavaCore#getDefaultOptions()
+ *
+ * @deprecated Use {@link #suggestVariableNames(int, int, String, IJavaProject, int, String[], boolean)} instead with {@link #VK_PARAMETER} as variable kind.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_mMD4QGEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mMD4QmEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mMD4QWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mMNpQGEMEeCdEc4VzBeWeQ" name="javaProject" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mMNpQWEMEeCdEc4VzBeWeQ" name="packageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mMWzMWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mMWzMGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mMWzMmEMEeCdEc4VzBeWeQ" name="qualifiedTypeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mMgkMWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mMgkMGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mMqVMGEMEeCdEc4VzBeWeQ" name="dim" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mMqVMWEMEeCdEc4VzBeWeQ" name="excludedNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mMzfIGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mMqVMmEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_mMzfIWEMEeCdEc4VzBeWeQ" name="suggestArgumentNames" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_mMzfImEMEeCdEc4VzBeWeQ">
+ <body>
+ * Suggest names for an argument. The name is computed from argument's type
+ * and possible prefixes or suffixes are added.
+ * &lt;p>
+ * If the type of the argument is &lt;code>TypeName&lt;/code>, the prefix for argument is &lt;code>pre&lt;/code>
+ * and the suffix for argument is &lt;code>suf&lt;/code> then the proposed names are &lt;code>preTypeNamesuf&lt;/code>
+ * and &lt;code>preNamesuf&lt;/code>. If there is no prefix or suffix the proposals are &lt;code>typeName&lt;/code>
+ * and &lt;code>name&lt;/code>.
+ * &lt;/p>
+ * &lt;p>
+ * This method is affected by the following JavaCore options : {@link JavaCore#CODEASSIST_ARGUMENT_PREFIXES} and
+ * {@link JavaCore#CODEASSIST_ARGUMENT_SUFFIXES}.
+ * &lt;/p>
+ * &lt;p>
+ * For a complete description of these configurable options, see &lt;code>getDefaultOptions&lt;/code>.
+ * For programmaticaly change these options, see &lt;code>JavaCore#setOptions()&lt;/code>.
+ * &lt;/p>
+ *
+ * @param javaProject project which contains the argument.
+ * @param packageName package of the argument's type.
+ * @param qualifiedTypeName argument's type.
+ * @param dim argument's dimension (0 if the argument is not an array).
+ * @param excludedNames a list of names which cannot be suggested (already used names).
+ * Can be &lt;code>null&lt;/code> if there is no excluded names.
+ * @return char[][] an array of names.
+ * @see JavaCore#setOptions(java.util.Hashtable)
+ * @see JavaCore#getDefaultOptions()
+ *
+ * @deprecated Use {@link #suggestVariableNames(int, int, String, IJavaProject, int, String[], boolean)} instead with {@link #VK_PARAMETER} as variable kind.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_mM9QIGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mNHBIGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mM9QIWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mNHBIWEMEeCdEc4VzBeWeQ" name="javaProject" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mNQLEGEMEeCdEc4VzBeWeQ" name="packageName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mNZ8EGEMEeCdEc4VzBeWeQ" name="qualifiedTypeName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mNZ8EWEMEeCdEc4VzBeWeQ" name="dim" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mNZ8EmEMEeCdEc4VzBeWeQ" name="excludedNames" type="_dSiS02EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mNjGAWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mNjGAGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_mN2oAGEMEeCdEc4VzBeWeQ" name="suggestFieldNames" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_mN2oAWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Suggest names for a field. The name is computed from field's type
+ * and possible prefixes or suffixes are added.
+ * &lt;p>
+ * If the type of the field is &lt;code>TypeName&lt;/code>, the prefix for field is &lt;code>pre&lt;/code>
+ * and the suffix for field is &lt;code>suf&lt;/code> then the proposed names are &lt;code>preTypeNamesuf&lt;/code>
+ * and &lt;code>preNamesuf&lt;/code>. If there is no prefix or suffix the proposals are &lt;code>typeName&lt;/code>
+ * and &lt;code>name&lt;/code>.
+ * &lt;/p>
+ * &lt;p>
+ * This method is affected by the following JavaCore options : {@link JavaCore#CODEASSIST_FIELD_PREFIXES},
+ * {@link JavaCore#CODEASSIST_FIELD_SUFFIXES} and for instance field and {@link JavaCore#CODEASSIST_STATIC_FIELD_PREFIXES},
+ * {@link JavaCore#CODEASSIST_STATIC_FIELD_SUFFIXES} for static field.
+ * &lt;/p>
+ * &lt;p>
+ * For a complete description of these configurable options, see &lt;code>getDefaultOptions&lt;/code>.
+ * For programmaticaly change these options, see &lt;code>JavaCore#setOptions()&lt;/code>.
+ * &lt;/p>
+ *
+ * @param javaProject project which contains the field.
+ * @param packageName package of the field's type.
+ * @param qualifiedTypeName field's type.
+ * @param dim field's dimension (0 if the field is not an array).
+ * @param modifiers field's modifiers as defined by the class
+ * &lt;code>Flags&lt;/code>.
+ * @param excludedNames a list of names which cannot be suggested (already used names).
+ * Can be &lt;code>null&lt;/code> if there is no excluded names.
+ * @return char[][] an array of names.
+ * @see Flags
+ * @see JavaCore#setOptions(java.util.Hashtable)
+ * @see JavaCore#getDefaultOptions()
+ *
+ * @deprecated Use {@link #suggestVariableNames(int, int, String, IJavaProject, int, String[], boolean)} instead
+ * with {@link #VK_INSTANCE_FIELD} or {@link #VK_STATIC_FIELD} as variable kind.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_mN2oAmEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mN_x8WEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mN_x8GEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mOJi8GEMEeCdEc4VzBeWeQ" name="javaProject" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mOJi8WEMEeCdEc4VzBeWeQ" name="packageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mOTT8WEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mOTT8GEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mOTT8mEMEeCdEc4VzBeWeQ" name="qualifiedTypeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mOcd4WEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mOcd4GEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mOmO4GEMEeCdEc4VzBeWeQ" name="dim" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mOvY0GEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mOvY0WEMEeCdEc4VzBeWeQ" name="excludedNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mO5J0WEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mO5J0GEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_mO5J0mEMEeCdEc4VzBeWeQ" name="suggestFieldNames" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_mO5J02EMEeCdEc4VzBeWeQ">
+ <body>
+ * Suggest names for a field. The name is computed from field's type
+ * and possible prefixes or suffixes are added.
+ * &lt;p>
+ * If the type of the field is &lt;code>TypeName&lt;/code>, the prefix for field is &lt;code>pre&lt;/code>
+ * and the suffix for field is &lt;code>suf&lt;/code> then the proposed names are &lt;code>preTypeNamesuf&lt;/code>
+ * and &lt;code>preNamesuf&lt;/code>. If there is no prefix or suffix the proposals are &lt;code>typeName&lt;/code>
+ * and &lt;code>name&lt;/code>.
+ * &lt;/p>
+ * &lt;p>
+ * This method is affected by the following JavaCore options : {@link JavaCore#CODEASSIST_FIELD_PREFIXES},
+ * {@link JavaCore#CODEASSIST_FIELD_SUFFIXES} and for instance field and {@link JavaCore#CODEASSIST_STATIC_FIELD_PREFIXES},
+ * {@link JavaCore#CODEASSIST_STATIC_FIELD_SUFFIXES} for static field.
+ * &lt;/p>
+ * &lt;p>
+ * For a complete description of these configurable options, see &lt;code>getDefaultOptions&lt;/code>.
+ * For programmaticaly change these options, see &lt;code>JavaCore#setOptions()&lt;/code>.
+ * &lt;/p>
+ *
+ * @param javaProject project which contains the field.
+ * @param packageName package of the field's type.
+ * @param qualifiedTypeName field's type.
+ * @param dim field's dimension (0 if the field is not an array).
+ * @param modifiers field's modifiers as defined by the class
+ * &lt;code>Flags&lt;/code>.
+ * @param excludedNames a list of names which cannot be suggested (already used names).
+ * Can be &lt;code>null&lt;/code> if there is no excluded names.
+ * @return char[][] an array of names.
+ * @see Flags
+ * @see JavaCore#setOptions(java.util.Hashtable)
+ * @see JavaCore#getDefaultOptions()
+ *
+ * @deprecated Use {@link #suggestVariableNames(int, int, String, IJavaProject, int, String[], boolean)} instead
+ * with {@link #VK_INSTANCE_FIELD} or {@link #VK_STATIC_FIELD} as variable kind.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_mPMEwGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mPV1wGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mPMEwWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mPV1wWEMEeCdEc4VzBeWeQ" name="javaProject" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mPfmwGEMEeCdEc4VzBeWeQ" name="packageName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mPfmwWEMEeCdEc4VzBeWeQ" name="qualifiedTypeName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mPowsGEMEeCdEc4VzBeWeQ" name="dim" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mPyhsGEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mPyhsWEMEeCdEc4VzBeWeQ" name="excludedNames" type="_dSiS02EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mP7roGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mPyhsmEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_mP7roWEMEeCdEc4VzBeWeQ" name="suggestGetterName" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_mP7romEMEeCdEc4VzBeWeQ">
+ <body>
+ * Suggest name for a getter method. The name is computed from field's name
+ * and possible prefixes or suffixes are removed.
+ * &lt;p>
+ * If the field name is &lt;code>preFieldNamesuf&lt;/code> and the prefix for field is &lt;code>pre&lt;/code> and
+ * the suffix for field is &lt;code>suf&lt;/code> then the prosposed name is &lt;code>isFieldName&lt;/code> for boolean field or
+ * &lt;code>getFieldName&lt;/code> for others. If there is no prefix and suffix the proposal is &lt;code>isPreFieldNamesuf&lt;/code>
+ * for boolean field or &lt;code>getPreFieldNamesuf&lt;/code> for others.
+ * &lt;/p>
+ * &lt;p>
+ * This method is affected by the following JavaCore options : {@link JavaCore#CODEASSIST_FIELD_PREFIXES},
+ * {@link JavaCore#CODEASSIST_FIELD_SUFFIXES} for instance field and {@link JavaCore#CODEASSIST_STATIC_FIELD_PREFIXES},
+ * {@link JavaCore#CODEASSIST_STATIC_FIELD_SUFFIXES} for static field.
+ * &lt;/p>
+ * &lt;p>
+ * For a complete description of these configurable options, see &lt;code>getDefaultOptions&lt;/code>.
+ * For programmaticaly change these options, see &lt;code>JavaCore#setOptions()&lt;/code>.
+ * &lt;/p>
+ *
+ * @param project project which contains the field.
+ * @param fieldName field's name's.
+ * @param modifiers field's modifiers as defined by the class
+ * &lt;code>Flags&lt;/code>.
+ * @param isBoolean &lt;code>true&lt;/code> if the field's type is boolean
+ * @param excludedNames a list of names which cannot be suggested (already used names).
+ * Can be &lt;code>null&lt;/code> if there is no excluded names.
+ * @return char[] a name.
+ * @see Flags
+ * @see JavaCore#setOptions(java.util.Hashtable)
+ * @see JavaCore#getDefaultOptions()
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_mQFcoGEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mQPNoGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mQFcoWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mQYXkGEMEeCdEc4VzBeWeQ" name="project" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mQYXkWEMEeCdEc4VzBeWeQ" name="fieldName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mQiIkGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mQYXkmEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mQiIkWEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mQr5kGEMEeCdEc4VzBeWeQ" name="isBoolean" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mQr5kWEMEeCdEc4VzBeWeQ" name="excludedNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mQ1DgGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mQr5kmEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_mQ-0gGEMEeCdEc4VzBeWeQ" name="suggestGetterName" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_mQ-0gWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Suggest name for a getter method. The name is computed from field's name
+ * and possible prefixes or suffixes are removed.
+ * &lt;p>
+ * If the field name is &lt;code>preFieldNamesuf&lt;/code> and the prefix for field is &lt;code>pre&lt;/code> and
+ * the suffix for field is &lt;code>suf&lt;/code> then the prosposed name is &lt;code>isFieldName&lt;/code> for boolean field or
+ * &lt;code>getFieldName&lt;/code> for others. If there is no prefix and suffix the proposal is &lt;code>isPreFieldNamesuf&lt;/code>
+ * for boolean field or &lt;code>getPreFieldNamesuf&lt;/code> for others.
+ * &lt;/p>
+ * &lt;p>
+ * This method is affected by the following JavaCore options : {@link JavaCore#CODEASSIST_FIELD_PREFIXES},
+ * {@link JavaCore#CODEASSIST_FIELD_SUFFIXES} for instance field and {@link JavaCore#CODEASSIST_STATIC_FIELD_PREFIXES},
+ * {@link JavaCore#CODEASSIST_STATIC_FIELD_SUFFIXES} for static field.
+ * &lt;/p>
+ * &lt;p>
+ * For a complete description of these configurable options, see &lt;code>getDefaultOptions&lt;/code>.
+ * For programmaticaly change these options, see &lt;code>JavaCore#setOptions()&lt;/code>.
+ * &lt;/p>
+ *
+ * @param project project which contains the field.
+ * @param fieldName field's name's.
+ * @param modifiers field's modifiers as defined by the class
+ * &lt;code>Flags&lt;/code>.
+ * @param isBoolean &lt;code>true&lt;/code> if the field's type is boolean
+ * @param excludedNames a list of names which cannot be suggested (already used names).
+ * Can be &lt;code>null&lt;/code> if there is no excluded names.
+ * @return char[] a name.
+ * @see Flags
+ * @see JavaCore#setOptions(java.util.Hashtable)
+ * @see JavaCore#getDefaultOptions()
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_mQ-0gmEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_mRH-cGEMEeCdEc4VzBeWeQ" name="project" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mRH-cWEMEeCdEc4VzBeWeQ" name="fieldName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mRRvcGEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mRRvcWEMEeCdEc4VzBeWeQ" name="isBoolean" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mRbgcGEMEeCdEc4VzBeWeQ" name="excludedNames" type="_dSiS02EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mRbgcmEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mRbgcWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_mRkqYGEMEeCdEc4VzBeWeQ" name="suggestLocalVariableNames" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_mRkqYWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Suggest names for a local variable. The name is computed from variable's type
+ * and possible prefixes or suffixes are added.
+ * &lt;p>
+ * If the type of the local variable is &lt;code>TypeName&lt;/code>, the prefix for local variable is &lt;code>pre&lt;/code>
+ * and the suffix for local variable is &lt;code>suf&lt;/code> then the proposed names are &lt;code>preTypeNamesuf&lt;/code>
+ * and &lt;code>preNamesuf&lt;/code>. If there is no prefix or suffix the proposals are &lt;code>typeName&lt;/code>
+ * and &lt;code>name&lt;/code>.
+ * &lt;/p>
+ * &lt;p>
+ * This method is affected by the following JavaCore options : {@link JavaCore#CODEASSIST_LOCAL_PREFIXES} and
+ * {@link JavaCore#CODEASSIST_LOCAL_SUFFIXES}.
+ * &lt;/p>
+ * &lt;p>
+ * For a complete description of these configurable options, see &lt;code>getDefaultOptions&lt;/code>.
+ * For programmaticaly change these options, see &lt;code>JavaCore#setOptions()&lt;/code>.
+ * &lt;/p>
+ *
+ * @param javaProject project which contains the variable.
+ * @param packageName package of the variable's type.
+ * @param qualifiedTypeName variable's type.
+ * @param dim variable's dimension (0 if the variable is not an array).
+ * @param excludedNames a list of names which cannot be suggested (already used names).
+ * Can be &lt;code>null&lt;/code> if there is no excluded names.
+ * @return char[][] an array of names.
+ * @see JavaCore#setOptions(java.util.Hashtable)
+ * @see JavaCore#getDefaultOptions()
+ *
+ * @deprecated Use {@link #suggestVariableNames(int, int, String, IJavaProject, int, String[], boolean)} instead with {@link #VK_LOCAL} as variable kind.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_mRkqYmEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mR4MYGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mRubYGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mR4MYWEMEeCdEc4VzBeWeQ" name="javaProject" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mSBWUGEMEeCdEc4VzBeWeQ" name="packageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mSBWUmEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mSBWUWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mSLHUGEMEeCdEc4VzBeWeQ" name="qualifiedTypeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mSURQGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mSLHUWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mSURQWEMEeCdEc4VzBeWeQ" name="dim" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mSeCQGEMEeCdEc4VzBeWeQ" name="excludedNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mSnzQGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mSeCQWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_mSnzQWEMEeCdEc4VzBeWeQ" name="suggestLocalVariableNames" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_mSnzQmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Suggest names for a local variable. The name is computed from variable's type
+ * and possible prefixes or suffixes are added.
+ * &lt;p>
+ * If the type of the local variable is &lt;code>TypeName&lt;/code>, the prefix for local variable is &lt;code>pre&lt;/code>
+ * and the suffix for local variable is &lt;code>suf&lt;/code> then the proposed names are &lt;code>preTypeNamesuf&lt;/code>
+ * and &lt;code>preNamesuf&lt;/code>. If there is no prefix or suffix the proposals are &lt;code>typeName&lt;/code>
+ * and &lt;code>name&lt;/code>.
+ * &lt;/p>
+ * &lt;p>
+ * This method is affected by the following JavaCore options : {@link JavaCore#CODEASSIST_LOCAL_PREFIXES} and
+ * {@link JavaCore#CODEASSIST_LOCAL_SUFFIXES}.
+ * &lt;/p>
+ * &lt;p>
+ * For a complete description of these configurable options, see &lt;code>getDefaultOptions&lt;/code>.
+ * For programmaticaly change these options, see &lt;code>JavaCore#setOptions()&lt;/code>.
+ * &lt;/p>
+ *
+ * @param javaProject project which contains the variable.
+ * @param packageName package of the variable's type.
+ * @param qualifiedTypeName variable's type.
+ * @param dim variable's dimension (0 if the variable is not an array).
+ * @param excludedNames a list of names which cannot be suggested (already used names).
+ * Can be &lt;code>null&lt;/code> if there is no excluded names.
+ * @return char[][] an array of names.
+ * @see JavaCore#setOptions(java.util.Hashtable)
+ * @see JavaCore#getDefaultOptions()
+ *
+ * @deprecated Use {@link #suggestVariableNames(int, int, String, IJavaProject, int, String[], boolean)} instead with {@link #VK_LOCAL} as variable kind.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_mSw9MGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mS6uMGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mSw9MWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mTEfMGEMEeCdEc4VzBeWeQ" name="javaProject" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mTEfMWEMEeCdEc4VzBeWeQ" name="packageName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mTNpIGEMEeCdEc4VzBeWeQ" name="qualifiedTypeName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mTNpIWEMEeCdEc4VzBeWeQ" name="dim" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mTNpImEMEeCdEc4VzBeWeQ" name="excludedNames" type="_dSiS02EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mTXaIWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mTXaIGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_mTgkEGEMEeCdEc4VzBeWeQ" name="suggestNewName" visibility="private" isStatic="true">
+ <ownedParameter xmi:id="_mTgkEWEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mTqVEGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mTgkEmEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mTqVEWEMEeCdEc4VzBeWeQ" name="name" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mT0GEWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mT0GEGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mT9QAGEMEeCdEc4VzBeWeQ" name="excludedNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mUHBAGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mT9QAWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_mUHBAWEMEeCdEc4VzBeWeQ" name="suggestSetterName" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_mUHBAmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Suggest name for a setter method. The name is computed from field's name
+ * and possible prefixes or suffixes are removed.
+ * &lt;p>
+ * If the field name is &lt;code>preFieldNamesuf&lt;/code> and the prefix for field is &lt;code>pre&lt;/code> and
+ * the suffix for field is &lt;code>suf&lt;/code> then the proposed name is &lt;code>setFieldName&lt;/code>.
+ * If there is no prefix and suffix the proposal is &lt;code>setPreFieldNamesuf&lt;/code>.
+ * &lt;/p>
+ * &lt;p>
+ * This method is affected by the following JavaCore options : {@link JavaCore#CODEASSIST_FIELD_PREFIXES},
+ * {@link JavaCore#CODEASSIST_FIELD_SUFFIXES} for instance field and {@link JavaCore#CODEASSIST_STATIC_FIELD_PREFIXES},
+ * {@link JavaCore#CODEASSIST_STATIC_FIELD_SUFFIXES} for static field.
+ * &lt;/p>
+ * &lt;p>
+ * For a complete description of these configurable options, see &lt;code>getDefaultOptions&lt;/code>.
+ * For programmaticaly change these options, see &lt;code>JavaCore#setOptions()&lt;/code>.
+ * &lt;/p>
+ *
+ * @param project project which contains the field.
+ * @param fieldName field's name's.
+ * @param modifiers field's modifiers as defined by the class
+ * &lt;code>Flags&lt;/code>.
+ * @param isBoolean &lt;code>true&lt;/code> if the field's type is boolean
+ * @param excludedNames a list of names which cannot be suggested (already used names).
+ * Can be &lt;code>null&lt;/code> if there is no excluded names.
+ * @return char[] a name.
+ * @see Flags
+ * @see JavaCore#setOptions(java.util.Hashtable)
+ * @see JavaCore#getDefaultOptions()
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_mUQyAGEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mUjs8GEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mUZ78GEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mUjs8WEMEeCdEc4VzBeWeQ" name="project" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mUjs8mEMEeCdEc4VzBeWeQ" name="fieldName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mUs24WEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mUs24GEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mU2n4GEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mU2n4WEMEeCdEc4VzBeWeQ" name="isBoolean" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mU2n4mEMEeCdEc4VzBeWeQ" name="excludedNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mVAY4WEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mVAY4GEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_mVJi0GEMEeCdEc4VzBeWeQ" name="suggestSetterName" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_mVJi0WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Suggest name for a setter method. The name is computed from field's name
+ * and possible prefixes or suffixes are removed.
+ * &lt;p>
+ * If the field name is &lt;code>preFieldNamesuf&lt;/code> and the prefix for field is &lt;code>pre&lt;/code> and
+ * the suffix for field is &lt;code>suf&lt;/code> then the proposed name is &lt;code>setFieldName&lt;/code>.
+ * If there is no prefix and suffix the proposal is &lt;code>setPreFieldNamesuf&lt;/code>.
+ * &lt;/p>
+ * &lt;p>
+ * This method is affected by the following JavaCore options : {@link JavaCore#CODEASSIST_FIELD_PREFIXES},
+ * {@link JavaCore#CODEASSIST_FIELD_SUFFIXES} for instance field and {@link JavaCore#CODEASSIST_STATIC_FIELD_PREFIXES},
+ * {@link JavaCore#CODEASSIST_STATIC_FIELD_SUFFIXES} for static field.
+ * &lt;/p>
+ * &lt;p>
+ * For a complete description of these configurable options, see &lt;code>getDefaultOptions&lt;/code>.
+ * For programmaticaly change these options, see &lt;code>JavaCore#setOptions()&lt;/code>.
+ * &lt;/p>
+ *
+ * @param project project which contains the field.
+ * @param fieldName field's name's.
+ * @param modifiers field's modifiers as defined by the class
+ * &lt;code>Flags&lt;/code>.
+ * @param isBoolean &lt;code>true&lt;/code> if the field's type is boolean
+ * @param excludedNames a list of names which cannot be suggested (already used names).
+ * Can be &lt;code>null&lt;/code> if there is no excluded names.
+ * @return char[] a name.
+ * @see Flags
+ * @see JavaCore#setOptions(java.util.Hashtable)
+ * @see JavaCore#getDefaultOptions()
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_mVJi0mEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_mVTT0GEMEeCdEc4VzBeWeQ" name="project" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mVTT0WEMEeCdEc4VzBeWeQ" name="fieldName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mVdE0GEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mVdE0WEMEeCdEc4VzBeWeQ" name="isBoolean" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mVdE0mEMEeCdEc4VzBeWeQ" name="excludedNames" type="_dSiS02EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mVmOwWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mVmOwGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_mVv_wGEMEeCdEc4VzBeWeQ" name="suggestVariableNames" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_mVv_wWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Suggests names for a variable. The name is computed from a base name and possible prefixes or suffixes are added.
+ *
+ * &lt;p>
+ * The base name is used to compute the variable name.
+ * Some different kinds of base names are possible and each kind is associated to a different heuristic to compute variable names.&lt;br>
+ * The heuristic depends also on the kind of the variable. Each kind of variable is identified by a constant starting with &lt;code>VK_&lt;/code>.&lt;br>
+ * When a prefix and a suffix can be added then all combinations of prefix and suffix are suggested.
+ * If the name is &lt;code>name&lt;/code>, the prefix is &lt;code>pre&lt;/code> and the suffix is &lt;code>suf&lt;/code> then the suggested names will be
+ * &lt;code>prenamesuf&lt;/code>, &lt;code>prename&lt;/code>, &lt;code>namesuf&lt;/code> and &lt;code>name&lt;/code>.&lt;br>
+ * &lt;br>
+ * The different kinds of base names are:
+ * &lt;ul>
+ * &lt;li>{@link #BK_NAME}: the base name is a Java name and the whole base name is considered to compute the variable names. A prefix and a suffix can be added.&lt;br>
+ * There is a heuristic by variable kind.
+ * &lt;ul>
+ * &lt;li>{@link #VK_PARAMETER}, {@link #VK_LOCAL}, {@link #VK_INSTANCE_FIELD} and {@link #VK_STATIC_FIELD}:&lt;br>
+ * In this case the first word will be converted to lower case and the other characters won't be changed.&lt;br>
+ * If the base name is &lt;code>SimpleName&lt;/code> then the suggested name will be &lt;code>simpleName&lt;/code>.&lt;br>&lt;/li>
+ * &lt;li>{@link #VK_STATIC_FINAL_FIELD} :&lt;br>
+ * In this case all letters of the name will be converted to upper case and words will be separated by an underscore (&lt;code>&quot;_&quot;&lt;/code>).&lt;br>
+ * If the base name is &lt;code>SimpleName&lt;/code> then the suggested name will be &lt;code>SIMPLE_NAME&lt;/code>.&lt;/li>
+ * &lt;/ul>&lt;/li>
+ * &lt;li>{@link #BK_TYPE_NAME}: the base name is a Java simple type name (e.g. &lt;code>HashMap&lt;/code>) and all the words of the base name are considered to compute the variable names. A prefix and a suffix can be added to these names.&lt;br>
+ * There is a heuristic by variable kind.
+ * &lt;ul>
+ * &lt;li>{@link #VK_PARAMETER}, {@link #VK_LOCAL}, {@link #VK_INSTANCE_FIELD} and {@link #VK_STATIC_FIELD}:&lt;br>
+ * In this case a variable name will contain some words of the base name and the first word will be converted to lower case.&lt;br>
+ * If the type is &lt;code>TypeName&lt;/code> then the suggested names will be &lt;code>typeName&lt;/code> and &lt;code>name&lt;/code>.&lt;/li>
+ * &lt;li>{@link #VK_STATIC_FINAL_FIELD} :&lt;br>
+ * In this case a variable name will contain some words of the base name, all letters of the name will be converted to upper case and segments will be separated by a underscore (&lt;code>&quot;_&quot;&lt;/code>).&lt;br>
+ * If the base name is &lt;code>TypeName&lt;/code> then the suggested name will be &lt;code>TYPE_NAME&lt;/code> and &lt;code>NAME&lt;/code>.&lt;/li>
+ * &lt;/ul>&lt;/li>
+ * &lt;/ul>
+ * Some other kinds could be added in the future.
+ * &lt;/p>
+ * &lt;p>
+ * Each variable kind is affected by the following JavaCore options:
+ * &lt;ul>
+ * &lt;li>{@link #VK_PARAMETER}: {@link JavaCore#CODEASSIST_ARGUMENT_PREFIXES} and {@link JavaCore#CODEASSIST_ARGUMENT_SUFFIXES}&lt;/li>
+ * &lt;li>{@link #VK_LOCAL}: {@link JavaCore#CODEASSIST_LOCAL_PREFIXES} and {@link JavaCore#CODEASSIST_LOCAL_SUFFIXES}&lt;/li>
+ * &lt;li>{@link #VK_INSTANCE_FIELD}: {@link JavaCore#CODEASSIST_FIELD_PREFIXES} and {@link JavaCore#CODEASSIST_FIELD_SUFFIXES}&lt;/li>
+ * &lt;li>{@link #VK_STATIC_FIELD}: {@link JavaCore#CODEASSIST_STATIC_FIELD_PREFIXES} and {@link JavaCore#CODEASSIST_STATIC_FIELD_SUFFIXES}&lt;/li>
+ * &lt;li>{@link #VK_STATIC_FINAL_FIELD}: {@link JavaCore#CODEASSIST_STATIC_FINAL_FIELD_PREFIXES} and {@link JavaCore#CODEASSIST_STATIC_FINAL_FIELD_SUFFIXES}&lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ * &lt;p>
+ * For a complete description of these configurable options, see {@link JavaCore#getDefaultOptions()}.
+ * To programmatically change these options, see {@link JavaCore#setOptions(java.util.Hashtable)} and {@link IJavaProject#setOptions(java.util.Map)}
+ * &lt;/p>
+ * &lt;p>
+ * Proposed names are sorted by relevance (best proposal first).&lt;br>
+ * The names are proposed in the following order:
+ * &lt;ol>
+ * &lt;li>Names with prefix and suffix. Longer names are proposed first&lt;/li>
+ * &lt;li>Names with prefix. Longer names are proposed first&lt;/li>
+ * &lt;li>Names with suffix. Longer names are proposed first&lt;/li>
+ * &lt;li>Names without prefix and suffix. Longer names are proposed first&lt;/li>
+ * &lt;/ol>
+ * &lt;/p>
+ *
+ * @param variableKind specifies what type the variable is: {@link #VK_LOCAL}, {@link #VK_PARAMETER}, {@link #VK_STATIC_FIELD},
+ * {@link #VK_INSTANCE_FIELD} or {@link #VK_STATIC_FINAL_FIELD}.
+ * @param baseNameKind specifies what type the base name is: {@link #BK_NAME} or {@link #BK_TYPE_NAME}
+ * @param baseName name used to compute the suggested names.
+ * @param javaProject project which contains the variable or &lt;code>null&lt;/code> to take into account only workspace settings.
+ * @param dim variable dimension (0 if the field is not an array).
+ * @param excluded a list of names which cannot be suggested (already used names).
+ * Can be &lt;code>null&lt;/code> if there are no excluded names.
+ * @param evaluateDefault if &lt;code>true&lt;/code>, the result is guaranteed to contain at least one result. If &lt;code>false&lt;/code>, the result can be an empty array.
+ * @return String[] an array of names.
+ * @see JavaCore#setOptions(java.util.Hashtable)
+ * @see JavaCore#getDefaultOptions()
+ *
+ * @since 3.5
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_mV5JsGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mV5JsmEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mV5JsWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mWC6sGEMEeCdEc4VzBeWeQ" name="variableKind" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mWC6sWEMEeCdEc4VzBeWeQ" name="baseNameKind" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mWMrsGEMEeCdEc4VzBeWeQ" name="baseName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mWMrsWEMEeCdEc4VzBeWeQ" name="javaProject" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mWMrsmEMEeCdEc4VzBeWeQ" name="dim" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mWV1oGEMEeCdEc4VzBeWeQ" name="excluded" type="_dSiS02EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mWfmoGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mWV1oWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mWfmoWEMEeCdEc4VzBeWeQ" name="evaluateDefault" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_mc5woGEMEeCdEc4VzBeWeQ" name="Signature" isLeaf="true">
+ <ownedComment xmi:id="_mc5woWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Provides methods for encoding and decoding type and method signature strings.
+ * &lt;p>
+ * Signatures obtained from parsing source files (i.e. files with one of the
+ * {@link JavaCore#getJavaLikeExtensions() Java-like extensions}) differ subtly
+ * from ones obtained from pre-compiled binary (&quot;.class&quot;) files in class names are
+ * usually left unresolved in the former. For example, the normal resolved form
+ * of the type &quot;String&quot; embeds the class's package name (&quot;Ljava.lang.String;&quot;
+ * or &quot;Ljava/lang/String;&quot;), whereas the unresolved form contains only what is
+ * written &quot;QString;&quot;.
+ * &lt;/p>
+ * &lt;p>
+ * Generic types introduce to the Java language in J2SE 1.5 add three new
+ * facets to signatures: type variables, parameterized types with type arguments,
+ * and formal type parameters. &lt;i>Rich&lt;/i> signatures containing these facets
+ * only occur when dealing with code that makes overt use of the new language
+ * features. All other code, and certainly all Java code written or compiled
+ * with J2SE 1.4 or earlier, involved only &lt;i>simple&lt;/i> signatures.
+ * &lt;/p>
+ * &lt;p>
+ * Note that the &quot;Q&quot; and &quot;!&quot; formats are specific to Eclipse; the remainder
+ * are specified in the JVM spec.
+ * &lt;/p>
+ * &lt;p>
+ * The syntax for a type signature is:
+ * &lt;pre>
+ * TypeSignature ::=
+ * &quot;B&quot; // byte
+ * | &quot;C&quot; // char
+ * | &quot;D&quot; // double
+ * | &quot;F&quot; // float
+ * | &quot;I&quot; // int
+ * | &quot;J&quot; // long
+ * | &quot;S&quot; // short
+ * | &quot;V&quot; // void
+ * | &quot;Z&quot; // boolean
+ * | &quot;T&quot; + Identifier + &quot;;&quot; // type variable
+ * | &quot;[&quot; + TypeSignature // array X[]
+ * | &quot;!&quot; + TypeSignature // capture-of ?
+ * | ResolvedClassTypeSignature
+ * | UnresolvedClassTypeSignature
+ *
+ * ResolvedClassTypeSignature ::= // resolved named type (in compiled code)
+ * &quot;L&quot; + Identifier + OptionalTypeArguments
+ * ( ( &quot;.&quot; | &quot;/&quot; ) + Identifier + OptionalTypeArguments )* + &quot;;&quot;
+ * | OptionalTypeParameters + &quot;L&quot; + Identifier +
+ * ( ( &quot;.&quot; | &quot;/&quot; ) + Identifier )* + &quot;;&quot;
+ *
+ * UnresolvedClassTypeSignature ::= // unresolved named type (in source code)
+ * &quot;Q&quot; + Identifier + OptionalTypeArguments
+ * ( ( &quot;.&quot; | &quot;/&quot; ) + Identifier + OptionalTypeArguments )* + &quot;;&quot;
+ * | OptionalTypeParameters &quot;Q&quot; + Identifier +
+ * ( ( &quot;.&quot; | &quot;/&quot; ) + Identifier )* + &quot;;&quot;
+ *
+ * OptionalTypeArguments ::=
+ * &quot;&amp;lt;&quot; + TypeArgument+ + &quot;&amp;gt;&quot;
+ * |
+ *
+ * TypeArgument ::=
+ * | TypeSignature
+ * | &quot;*&quot; // wildcard ?
+ * | &quot;+&quot; TypeSignature // wildcard ? extends X
+ * | &quot;-&quot; TypeSignature // wildcard ? super X
+ *
+ * OptionalTypeParameters ::=
+ * &quot;&amp;lt;&quot; + FormalTypeParameterSignature+ + &quot;&amp;gt;&quot;
+ * |
+ * &lt;/pre>
+ * &lt;/p>
+ * &lt;p>
+ * Examples:
+ * &lt;ul>
+ * &lt;li>&lt;code>&quot;[[I&quot;&lt;/code> denotes &lt;code>int[][]&lt;/code>&lt;/li>
+ * &lt;li>&lt;code>&quot;Ljava.lang.String;&quot;&lt;/code> denotes &lt;code>java.lang.String&lt;/code> in compiled code&lt;/li>
+ * &lt;li>&lt;code>&quot;QString;&quot;&lt;/code> denotes &lt;code>String&lt;/code> in source code&lt;/li>
+ * &lt;li>&lt;code>&quot;Qjava.lang.String;&quot;&lt;/code> denotes &lt;code>java.lang.String&lt;/code> in source code&lt;/li>
+ * &lt;li>&lt;code>&quot;[QString;&quot;&lt;/code> denotes &lt;code>String[]&lt;/code> in source code&lt;/li>
+ * &lt;li>&lt;code>&quot;QMap&amp;lt;QString;*&amp;gt;;&quot;&lt;/code> denotes &lt;code>Map&amp;lt;String,?&amp;gt;&lt;/code> in source code&lt;/li>
+ * &lt;li>&lt;code>&quot;Qjava.util.List&amp;ltTV;&amp;gt;;&quot;&lt;/code> denotes &lt;code>java.util.List&amp;lt;V&amp;gt;&lt;/code> in source code&lt;/li>
+ * &lt;li>&lt;code>&quot;&amp;ltE;&amp;gt;Ljava.util.List;&quot;&lt;/code> denotes &lt;code>&amp;lt;E&amp;gt;java.util.List&lt;/code> in source code&lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ * &lt;p>
+ * The syntax for a method signature is:
+ * &lt;pre>
+ * MethodSignature ::= OptionalTypeParameters + &quot;(&quot; + ParamTypeSignature* + &quot;)&quot; + ReturnTypeSignature
+ * ParamTypeSignature ::= TypeSignature
+ * ReturnTypeSignature ::= TypeSignature
+ * &lt;/pre>
+ * &lt;p>
+ * Examples:
+ * &lt;ul>
+ * &lt;li>&lt;code>&quot;()I&quot;&lt;/code> denotes &lt;code>int foo()&lt;/code>&lt;/li>
+ * &lt;li>&lt;code>&quot;([Ljava.lang.String;)V&quot;&lt;/code> denotes &lt;code>void foo(java.lang.String[])&lt;/code> in compiled code&lt;/li>
+ * &lt;li>&lt;code>&quot;(QString;)QObject;&quot;&lt;/code> denotes &lt;code>Object foo(String)&lt;/code> in source code&lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ * &lt;p>
+ * The syntax for a formal type parameter signature is:
+ * &lt;pre>
+ * FormalTypeParameterSignature ::=
+ * TypeVariableName + OptionalClassBound + InterfaceBound*
+ * TypeVariableName ::= Identifier
+ * OptionalClassBound ::=
+ * &quot;:&quot;
+ * | &quot;:&quot; + TypeSignature
+ * InterfaceBound ::=
+ * &quot;:&quot; + TypeSignature
+ * &lt;/pre>
+ * &lt;p>
+ * Examples:
+ * &lt;ul>
+ * &lt;li>&lt;code>&quot;X:&quot;&lt;/code> denotes &lt;code>X&lt;/code>&lt;/li>
+ * &lt;li>&lt;code>&quot;X:QReader;&quot;&lt;/code> denotes &lt;code>X extends Reader&lt;/code> in source code&lt;/li>
+ * &lt;li>&lt;code>&quot;X:QReader;:QSerializable;&quot;&lt;/code> denotes &lt;code>X extends Reader &amp; Serializable&lt;/code> in source code&lt;/li>
+ * &lt;/ul>
+ * &lt;/p>
+ * &lt;p>
+ * This class provides static methods and constants only.
+ * &lt;/p>
+ * &lt;p>Note: An empty signature is considered to be syntactically incorrect. So most methods will throw
+ * an IllegalArgumentException if an empty signature is provided.&lt;/p>
+ *
+ * @noinstantiate This class is not intended to be instantiated by clients.
+ </body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_mc5womEMEeCdEc4VzBeWeQ" name="C_BOOLEAN" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mdMrkGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Character constant indicating the primitive type boolean in a signature.
+ * Value is &lt;code>'Z'&lt;/code>.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mdWckGEMEeCdEc4VzBeWeQ" name="C_BYTE" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mdfmgGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Character constant indicating the primitive type byte in a signature.
+ * Value is &lt;code>'B'&lt;/code>.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mdpXgGEMEeCdEc4VzBeWeQ" name="C_CHAR" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mdzIgGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Character constant indicating the primitive type char in a signature.
+ * Value is &lt;code>'C'&lt;/code>.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mdzIgWEMEeCdEc4VzBeWeQ" name="C_DOUBLE" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_md8ScGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Character constant indicating the primitive type double in a signature.
+ * Value is &lt;code>'D'&lt;/code>.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_meGDcGEMEeCdEc4VzBeWeQ" name="C_FLOAT" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mePNYGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Character constant indicating the primitive type float in a signature.
+ * Value is &lt;code>'F'&lt;/code>.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_meY-YGEMEeCdEc4VzBeWeQ" name="C_INT" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_meY-YWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Character constant indicating the primitive type int in a signature.
+ * Value is &lt;code>'I'&lt;/code>.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_meivYGEMEeCdEc4VzBeWeQ" name="C_SEMICOLON" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mer5UGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Character constant indicating the semicolon in a signature.
+ * Value is &lt;code>';'&lt;/code>.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_me1qUGEMEeCdEc4VzBeWeQ" name="C_COLON" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_me_bUGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Character constant indicating the colon in a signature.
+ * Value is &lt;code>':'&lt;/code>.
+ * @since 3.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mfIlQGEMEeCdEc4VzBeWeQ" name="C_LONG" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mfIlQWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Character constant indicating the primitive type long in a signature.
+ * Value is &lt;code>'J'&lt;/code>.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mfSWQGEMEeCdEc4VzBeWeQ" name="C_SHORT" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mfbgMGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Character constant indicating the primitive type short in a signature.
+ * Value is &lt;code>'S'&lt;/code>.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mflRMGEMEeCdEc4VzBeWeQ" name="C_VOID" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mflRMWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Character constant indicating result type void in a signature.
+ * Value is &lt;code>'V'&lt;/code>.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mfvCMGEMEeCdEc4VzBeWeQ" name="C_TYPE_VARIABLE" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mf4MIGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Character constant indicating the start of a resolved type variable in a
+ * signature. Value is &lt;code>'T'&lt;/code>.
+ * @since 3.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mgB9IGEMEeCdEc4VzBeWeQ" name="C_STAR" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mgLuIGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Character constant indicating an unbound wildcard type argument
+ * in a signature.
+ * Value is &lt;code>'*'&lt;/code>.
+ * @since 3.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mgU4EGEMEeCdEc4VzBeWeQ" name="C_EXCEPTION_START" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mgepEGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Character constant indicating an exception in a signature.
+ * Value is &lt;code>'^'&lt;/code>.
+ * @since 3.1
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mgnzAGEMEeCdEc4VzBeWeQ" name="C_EXTENDS" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mgnzAWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Character constant indicating a bound wildcard type argument
+ * in a signature with extends clause.
+ * Value is &lt;code>'+'&lt;/code>.
+ * @since 3.1
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mgxkAGEMEeCdEc4VzBeWeQ" name="C_SUPER" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mg7VAGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Character constant indicating a bound wildcard type argument
+ * in a signature with super clause.
+ * Value is &lt;code>'-'&lt;/code>.
+ * @since 3.1
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mhEe8GEMEeCdEc4VzBeWeQ" name="C_DOT" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mhOP8GEMEeCdEc4VzBeWeQ">
+ <body>
+ * Character constant indicating the dot in a signature.
+ * Value is &lt;code>'.'&lt;/code>.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mhOP8WEMEeCdEc4VzBeWeQ" name="C_DOLLAR" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mhYA8GEMEeCdEc4VzBeWeQ">
+ <body>
+ * Character constant indicating the dollar in a signature.
+ * Value is &lt;code>'$'&lt;/code>.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mhhK4GEMEeCdEc4VzBeWeQ" name="C_ARRAY" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mhq74GEMEeCdEc4VzBeWeQ">
+ <body>
+ * Character constant indicating an array type in a signature.
+ * Value is &lt;code>'['&lt;/code>.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mh0F0GEMEeCdEc4VzBeWeQ" name="C_RESOLVED" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mh0F0WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Character constant indicating the start of a resolved, named type in a
+ * signature. Value is &lt;code>'L'&lt;/code>.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mh920GEMEeCdEc4VzBeWeQ" name="C_UNRESOLVED" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_miHn0GEMEeCdEc4VzBeWeQ">
+ <body>
+ * Character constant indicating the start of an unresolved, named type in a
+ * signature. Value is &lt;code>'Q'&lt;/code>.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_miQxwGEMEeCdEc4VzBeWeQ" name="C_NAME_END" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_miaiwGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Character constant indicating the end of a named type in a signature.
+ * Value is &lt;code>';'&lt;/code>.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mikTwGEMEeCdEc4VzBeWeQ" name="C_PARAM_START" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mitdsGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Character constant indicating the start of a parameter type list in a
+ * signature. Value is &lt;code>'('&lt;/code>.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mi3OsGEMEeCdEc4VzBeWeQ" name="C_PARAM_END" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mi3OsWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Character constant indicating the end of a parameter type list in a
+ * signature. Value is &lt;code>')'&lt;/code>.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mjAYoGEMEeCdEc4VzBeWeQ" name="C_GENERIC_START" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mjKJoGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Character constant indicating the start of a formal type parameter
+ * (or type argument) list in a signature. Value is &lt;code>'&amp;lt;'&lt;/code>.
+ * @since 3.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mjT6oGEMEeCdEc4VzBeWeQ" name="C_GENERIC_END" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mjdEkGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Character constant indicating the end of a generic type list in a
+ * signature. Value is &lt;code>'&amp;gt;'&lt;/code>.
+ * @since 3.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mjm1kGEMEeCdEc4VzBeWeQ" name="C_CAPTURE" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mjm1kWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Character constant indicating a capture of a wildcard type in a
+ * signature. Value is &lt;code>'!'&lt;/code>.
+ * @since 3.1
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mjwmkGEMEeCdEc4VzBeWeQ" name="SIG_BOOLEAN" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mj5wgGEMEeCdEc4VzBeWeQ">
+ <body>
+ * String constant for the signature of the primitive type boolean.
+ * Value is &lt;code>&quot;Z&quot;&lt;/code>.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mkDhgGEMEeCdEc4VzBeWeQ" name="SIG_BYTE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mkDhgWEMEeCdEc4VzBeWeQ">
+ <body>
+ * String constant for the signature of the primitive type byte.
+ * Value is &lt;code>&quot;B&quot;&lt;/code>.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mkMrcGEMEeCdEc4VzBeWeQ" name="SIG_CHAR" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mkWccGEMEeCdEc4VzBeWeQ">
+ <body>
+ * String constant for the signature of the primitive type char.
+ * Value is &lt;code>&quot;C&quot;&lt;/code>.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mkgNcGEMEeCdEc4VzBeWeQ" name="SIG_DOUBLE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mkgNcWEMEeCdEc4VzBeWeQ">
+ <body>
+ * String constant for the signature of the primitive type double.
+ * Value is &lt;code>&quot;D&quot;&lt;/code>.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mkpXYGEMEeCdEc4VzBeWeQ" name="SIG_FLOAT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mkzIYGEMEeCdEc4VzBeWeQ">
+ <body>
+ * String constant for the signature of the primitive type float.
+ * Value is &lt;code>&quot;F&quot;&lt;/code>.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mk85YGEMEeCdEc4VzBeWeQ" name="SIG_INT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mlGDUGEMEeCdEc4VzBeWeQ">
+ <body>
+ * String constant for the signature of the primitive type int.
+ * Value is &lt;code>&quot;I&quot;&lt;/code>.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mlGDUWEMEeCdEc4VzBeWeQ" name="SIG_LONG" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mlP0UGEMEeCdEc4VzBeWeQ">
+ <body>
+ * String constant for the signature of the primitive type long.
+ * Value is &lt;code>&quot;J&quot;&lt;/code>.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mlY-QGEMEeCdEc4VzBeWeQ" name="SIG_SHORT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mlY-QWEMEeCdEc4VzBeWeQ">
+ <body>
+ * String constant for the signature of the primitive type short.
+ * Value is &lt;code>&quot;S&quot;&lt;/code>.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mlivQGEMEeCdEc4VzBeWeQ" name="SIG_VOID" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mlsgQGEMEeCdEc4VzBeWeQ">
+ <body> String constant for the signature of result type void.
+ * Value is &lt;code>&quot;V&quot;&lt;/code>.
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ml1qMGEMEeCdEc4VzBeWeQ" name="CLASS_TYPE_SIGNATURE" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_ml1qMWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Kind constant for a class type signature.
+ * @see #getTypeSignatureKind(String)
+ * @since 3.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ml_bMGEMEeCdEc4VzBeWeQ" name="BASE_TYPE_SIGNATURE" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mmJMMGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Kind constant for a base (primitive or void) type signature.
+ * @see #getTypeSignatureKind(String)
+ * @since 3.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mmSWIGEMEeCdEc4VzBeWeQ" name="TYPE_VARIABLE_SIGNATURE" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mmcHIGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Kind constant for a type variable signature.
+ * @see #getTypeSignatureKind(String)
+ * @since 3.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mmlREGEMEeCdEc4VzBeWeQ" name="ARRAY_TYPE_SIGNATURE" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mmlREWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Kind constant for an array type signature.
+ * @see #getTypeSignatureKind(String)
+ * @since 3.0
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mmvCEGEMEeCdEc4VzBeWeQ" name="WILDCARD_TYPE_SIGNATURE" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mm4zEGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Kind constant for a wildcard type signature.
+ * @see #getTypeSignatureKind(String)
+ * @since 3.1
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mnB9AGEMEeCdEc4VzBeWeQ" name="CAPTURE_TYPE_SIGNATURE" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_mnB9AWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Kind constant for the capture of a wildcard type signature.
+ * @see #getTypeSignatureKind(String)
+ * @since 3.1
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mnLuAGEMEeCdEc4VzBeWeQ" name="BOOLEAN" visibility="private" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mneo8GEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mnVfAGEMEeCdEc4VzBeWeQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mneo8WEMEeCdEc4VzBeWeQ" name="BYTE" visibility="private" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mnxj4GEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mnoZ8GEMEeCdEc4VzBeWeQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mn7U4GEMEeCdEc4VzBeWeQ" name="CHAR" visibility="private" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_moFF4WEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_moFF4GEMEeCdEc4VzBeWeQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_moOP0GEMEeCdEc4VzBeWeQ" name="DOUBLE" visibility="private" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_moYA0WEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_moYA0GEMEeCdEc4VzBeWeQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mu7UwGEMEeCdEc4VzBeWeQ" name="FLOAT" visibility="private" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mvO2wGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mvFFwGEMEeCdEc4VzBeWeQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mvO2wWEMEeCdEc4VzBeWeQ" name="INT" visibility="private" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mvhxsGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mvYAsGEMEeCdEc4VzBeWeQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mvrisGEMEeCdEc4VzBeWeQ" name="LONG" visibility="private" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mv-doGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mv0soGEMEeCdEc4VzBeWeQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mv-doWEMEeCdEc4VzBeWeQ" name="SHORT" visibility="private" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mwRYkGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mwHnkGEMEeCdEc4VzBeWeQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mwRYkWEMEeCdEc4VzBeWeQ" name="VOID" visibility="private" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mwkTgWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mwkTgGEMEeCdEc4VzBeWeQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mwkTgmEMEeCdEc4VzBeWeQ" name="EXTENDS" visibility="private" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mw31gWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mw31gGEMEeCdEc4VzBeWeQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mw31gmEMEeCdEc4VzBeWeQ" name="SUPER" visibility="private" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mxT6YGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mxKwcGEMEeCdEc4VzBeWeQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mxT6YWEMEeCdEc4VzBeWeQ" name="CAPTURE" visibility="private" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mxncYGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mxdrYGEMEeCdEc4VzBeWeQ"/>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_mxncYWEMEeCdEc4VzBeWeQ" name="checkName" visibility="private" isStatic="true">
+ <ownedParameter xmi:id="_mxncYmEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_mxwmUGEMEeCdEc4VzBeWeQ" name="name" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mx6XUGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mxwmUWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mx6XUWEMEeCdEc4VzBeWeQ" name="typeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_myEIUWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_myEIUGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_myNSQGEMEeCdEc4VzBeWeQ" name="pos" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_myNSQWEMEeCdEc4VzBeWeQ" name="length" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_myXDQGEMEeCdEc4VzBeWeQ" name="createArraySignature" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_myXDQWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Creates a new type signature with the given amount of array nesting added
+ * to the given type signature.
+ *
+ * @param typeSignature the type signature
+ * @param arrayCount the desired number of levels of array nesting
+ * @return the encoded array type signature
+ *
+ * @since 2.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_myXDQmEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mygNMWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mygNMGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_myp-MGEMEeCdEc4VzBeWeQ" name="typeSignature" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_myzvMGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_myp-MWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_myzvMWEMEeCdEc4VzBeWeQ" name="arrayCount" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_my85IGEMEeCdEc4VzBeWeQ" name="createArraySignature" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_my85IWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Creates a new type signature with the given amount of array nesting added
+ * to the given type signature.
+ *
+ * @param typeSignature the type signature
+ * @param arrayCount the desired number of levels of array nesting
+ * @return the encoded array type signature
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_my85ImEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_mzGqIGEMEeCdEc4VzBeWeQ" name="typeSignature" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_mzGqIWEMEeCdEc4VzBeWeQ" name="arrayCount" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_mzGqImEMEeCdEc4VzBeWeQ" name="createMethodSignature" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_mzGqI2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Creates a method signature from the given parameter and return type
+ * signatures. The encoded method signature is dot-based.
+ *
+ * @param parameterTypes the list of parameter type signatures
+ * @param returnType the return type signature
+ * @return the encoded method signature
+ *
+ * @since 2.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_mzQbIGEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mzZlEWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mzZlEGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mzZlEmEMEeCdEc4VzBeWeQ" name="parameterTypes" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mzjWEWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mzjWEGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mzsgAGEMEeCdEc4VzBeWeQ" name="returnType" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mz2RAGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mzsgAWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_mz2RAWEMEeCdEc4VzBeWeQ" name="createMethodSignature" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_mz2RAmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Creates a method signature from the given parameter and return type
+ * signatures. The encoded method signature is dot-based. This method
+ * is equivalent to
+ * &lt;code>createMethodSignature(parameterTypes, returnType)&lt;/code>.
+ *
+ * @param parameterTypes the list of parameter type signatures
+ * @param returnType the return type signature
+ * @return the encoded method signature
+ * @see Signature#createMethodSignature(char[][], char[])
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_m0ACAGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_m0ACAWEMEeCdEc4VzBeWeQ" name="parameterTypes" type="_dSiS02EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_m0JL8WEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_m0JL8GEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_m0S88GEMEeCdEc4VzBeWeQ" name="returnType" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_m0S88WEMEeCdEc4VzBeWeQ" name="createTypeParameterSignature" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_m0S88mEMEeCdEc4VzBeWeQ">
+ <body>
+ * Creates a new type parameter signature with the given name and bounds.
+ *
+ * @param typeParameterName the type parameter name
+ * @param boundSignatures the signatures of associated bounds or empty array if none
+ * @return the encoded type parameter signature
+ *
+ * @since 3.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_m0ct8GEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_m0l34GEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_m0ct8WEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_m0l34WEMEeCdEc4VzBeWeQ" name="typeParameterName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_m0vo4WEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_m0vo4GEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_m0vo4mEMEeCdEc4VzBeWeQ" name="boundSignatures" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_m04y0WEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_m04y0GEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_m1Cj0GEMEeCdEc4VzBeWeQ" name="createTypeParameterSignature" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_m1Cj0WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Creates a new type parameter signature with the given name and bounds.
+ *
+ * @param typeParameterName the type parameter name
+ * @param boundSignatures the signatures of associated bounds or empty array if none
+ * @return the encoded type parameter signature
+ *
+ * @since 3.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_m1Cj0mEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_m1MU0GEMEeCdEc4VzBeWeQ" name="typeParameterName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_m1MU0WEMEeCdEc4VzBeWeQ" name="boundSignatures" type="_dSiS02EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_m1fPwGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_m1VewGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_m1fPwWEMEeCdEc4VzBeWeQ" name="createTypeSignature" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_m1fPwmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Creates a new type signature from the given type name encoded as a character
+ * array. The type name may contain primitive types, array types or parameterized types.
+ * This method is equivalent to
+ * &lt;code>createTypeSignature(new String(typeName),isResolved)&lt;/code>, although
+ * more efficient for callers with character arrays rather than strings. If the
+ * type name is qualified, then it is expected to be dot-based.
+ *
+ * @param typeName the possibly qualified type name
+ * @param isResolved &lt;code>true&lt;/code> if the type name is to be considered
+ * resolved (for example, a type name from a binary class file), and
+ * &lt;code>false&lt;/code> if the type name is to be considered unresolved
+ * (for example, a type name found in source code)
+ * @return the encoded type signature
+ * @see #createTypeSignature(java.lang.String,boolean)
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_m1pAwGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_m1yKsGEMEeCdEc4VzBeWeQ" name="typeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_m177sGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_m1yKsWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_m177sWEMEeCdEc4VzBeWeQ" name="isResolved" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_m177smEMEeCdEc4VzBeWeQ" name="createCharArrayTypeSignature" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_m177s2EMEeCdEc4VzBeWeQ">
+ <body>
+ * Creates a new type signature from the given type name encoded as a character
+ * array. The type name may contain primitive types or array types or parameterized types.
+ * This method is equivalent to
+ * &lt;code>createTypeSignature(new String(typeName),isResolved).toCharArray()&lt;/code>,
+ * although more efficient for callers with character arrays rather than strings.
+ * If the type name is qualified, then it is expected to be dot-based.
+ *
+ * @param typeName the possibly qualified type name
+ * @param isResolved &lt;code>true&lt;/code> if the type name is to be considered
+ * resolved (for example, a type name from a binary class file), and
+ * &lt;code>false&lt;/code> if the type name is to be considered unresolved
+ * (for example, a type name found in source code)
+ * @return the encoded type signature
+ * @see #createTypeSignature(java.lang.String,boolean)
+ *
+ * @since 2.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_m2FFoGEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_m2O2oGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_m2FFoWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_m2O2oWEMEeCdEc4VzBeWeQ" name="typeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_m2YnoWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_m2YnoGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_m2hxkGEMEeCdEc4VzBeWeQ" name="isResolved" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_m2hxkWEMEeCdEc4VzBeWeQ" name="consumeWhitespace" visibility="private" isStatic="true">
+ <ownedParameter xmi:id="_m2rikGEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_m2rikWEMEeCdEc4VzBeWeQ" name="typeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_m21TkGEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_m2rikmEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_m21TkWEMEeCdEc4VzBeWeQ" name="pos" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_m2-dgGEMEeCdEc4VzBeWeQ" name="length" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_m3uEYGEMEeCdEc4VzBeWeQ" name="SourceRange" clientDependency="_m3uEYmEMEeCdEc4VzBeWeQ" isLeaf="true">
+ <ownedComment xmi:id="_m3uEYWEMEeCdEc4VzBeWeQ">
+ <body>
+ * A source range defines an element's source coordinates relative to
+ * its source buffer.
+ *
+ * @see ISourceRange
+ * @since 3.6
+ </body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_m4drQGEMEeCdEc4VzBeWeQ" name="offset" visibility="private" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false"/>
+ <ownedAttribute xmi:id="_m4drQWEMEeCdEc4VzBeWeQ" name="length" visibility="private" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false"/>
+ <interfaceRealization xmi:id="_m3uEYmEMEeCdEc4VzBeWeQ" name="SourceRange implements ISourceRange" supplier="_ktlvIGEMEeCdEc4VzBeWeQ" client="_m3uEYGEMEeCdEc4VzBeWeQ" contract="_ktlvIGEMEeCdEc4VzBeWeQ"/>
+ <ownedOperation xmi:id="_m4KwUGEMEeCdEc4VzBeWeQ" name="isAvailable" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_m4KwUWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Helper method that answers whether a valid source range is available
+ * in the given ISourceRange. When an element has no associated source
+ * code, Java Model APIs may return either &lt;code>null&lt;/code> or a range of
+ * [-1, 0] to indicate an invalid range. This utility method can be used
+ * to detect that case.
+ *
+ * @param range a source range, can be &lt;code>null&lt;/code>
+ * @return &lt;code>true&lt;/code> iff range is not null and range.getOffset() is not -1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_m4UhUGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_m4UhUWEMEeCdEc4VzBeWeQ" name="range" type="_ktlvIGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_m46XMGEMEeCdEc4VzBeWeQ" name="equals" visibility="public">
+ <ownedParameter xmi:id="_m46XMWEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_m5EIMGEMEeCdEc4VzBeWeQ" name="obj" type="_kOcVAmEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_m5EIMWEMEeCdEc4VzBeWeQ" name="getLength" visibility="public">
+ <ownedComment xmi:id="_m5EIMmEMEeCdEc4VzBeWeQ">
+ <body>
+ * @see ISourceRange
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_m5N5MGEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_m5N5MWEMEeCdEc4VzBeWeQ" name="getOffset" visibility="public">
+ <ownedComment xmi:id="_m5N5MmEMEeCdEc4VzBeWeQ">
+ <body>
+ * @see ISourceRange
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_m5g0IGEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_m5g0IWEMEeCdEc4VzBeWeQ" name="hashCode" visibility="public">
+ <ownedParameter xmi:id="_m5g0ImEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_m5p-EGEMEeCdEc4VzBeWeQ" name="toString" visibility="public">
+ <ownedParameter xmi:id="_m5p-EWEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_m8yxoGEMEeCdEc4VzBeWeQ" name="ToolFactory">
+ <ownedComment xmi:id="_m877kGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Factory for creating various compiler tools, such as scanners, parsers and compilers.
+ * &lt;p>
+ * This class provides static methods only.
+ * &lt;/p>
+ *
+ * @since 2.0
+ * @noinstantiate This class is not intended to be instantiated by clients.
+ * @noextend This class is not intended to be subclassed by clients.
+ </body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_m877kWEMEeCdEc4VzBeWeQ" name="M_FORMAT_NEW" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_m9FskGEMEeCdEc4VzBeWeQ">
+ <body>
+ * This mode is used for formatting new code when some formatter options should not be used.
+ * In particular, options that preserve the indentation of comments are not used.
+ * In the future, newly added options may be ignored as well.
+ * &lt;p>Clients that are formatting new code are recommended to use this mode.
+ * &lt;/p>
+ *
+ * @see DefaultCodeFormatterConstants#FORMATTER_NEVER_INDENT_BLOCK_COMMENTS_ON_FIRST_COLUMN
+ * @see DefaultCodeFormatterConstants#FORMATTER_NEVER_INDENT_LINE_COMMENTS_ON_FIRST_COLUMN
+ * @see #createCodeFormatter(Map, int)
+ * @since 3.3
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_m9FskWEMEeCdEc4VzBeWeQ" name="M_FORMAT_EXISTING" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
+ <ownedComment xmi:id="_m9O2gGEMEeCdEc4VzBeWeQ">
+ <body>
+ * This mode is used for formatting existing code when all formatter options should be used.
+ * In particular, options that preserve the indentation of comments are used.
+ * &lt;p>Clients that are formatting existing code are recommended to use this mode.
+ * &lt;/p>
+ *
+ * @see DefaultCodeFormatterConstants#FORMATTER_NEVER_INDENT_BLOCK_COMMENTS_ON_FIRST_COLUMN
+ * @see DefaultCodeFormatterConstants#FORMATTER_NEVER_INDENT_LINE_COMMENTS_ON_FIRST_COLUMN
+ * @see #createCodeFormatter(Map, int)
+ * @since 3.3
+ </body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_m9YngGEMEeCdEc4VzBeWeQ" name="createCodeFormatter" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_m9YngWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Create an instance of a code formatter. A code formatter implementation can be contributed via the
+ * extension point &quot;org.eclipse.jdt.core.codeFormatter&quot;. If unable to find a registered extension, the factory
+ * will default to using the default code formatter.
+ *
+ * @return an instance of a code formatter
+ * @see ICodeFormatter
+ * @see ToolFactory#createDefaultCodeFormatter(Map)
+ * @deprecated The extension point has been deprecated, use {@link #createCodeFormatter(Map)} instead.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_m9iYgGEMEeCdEc4VzBeWeQ" type="_j-M5kGEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_m9ricGEMEeCdEc4VzBeWeQ" name="createCodeFormatter" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_m9ricWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Create an instance of the built-in code formatter.
+ * &lt;p>The given options should at least provide the source level ({@link JavaCore#COMPILER_SOURCE}),
+ * the compiler compliance level ({@link JavaCore#COMPILER_COMPLIANCE}) and the target platform
+ * ({@link JavaCore#COMPILER_CODEGEN_TARGET_PLATFORM}).
+ * Without these options, it is not possible for the code formatter to know what kind of source it needs to format.
+ * &lt;/p>&lt;p>
+ * Note this is equivalent to &lt;code>createCodeFormatter(options, M_FORMAT_NEW)&lt;/code>. Thus some code formatter options
+ * may be ignored. See @{link {@link #M_FORMAT_NEW} for more details.
+ * &lt;/p>
+ * @param options - the options map to use for formatting with the default code formatter. Recognized options
+ * are documented on &lt;code>JavaCore#getDefaultOptions()&lt;/code>. If set to &lt;code>null&lt;/code>, then use
+ * the current settings from &lt;code>JavaCore#getOptions&lt;/code>.
+ * @return an instance of the built-in code formatter
+ * @see CodeFormatter
+ * @see JavaCore#getOptions()
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_nAEIEGEMEeCdEc4VzBeWeQ" type="_m_UhMWEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_nAXqEGEMEeCdEc4VzBeWeQ" name="options" type="_l1aS0WEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_nAqlAGEMEeCdEc4VzBeWeQ" name="createCodeFormatter" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_nAzu8GEMEeCdEc4VzBeWeQ">
+ <body>
+ * Create an instance of the built-in code formatter.
+ * &lt;p>The given options should at least provide the source level ({@link JavaCore#COMPILER_SOURCE}),
+ * the compiler compliance level ({@link JavaCore#COMPILER_COMPLIANCE}) and the target platform
+ * ({@link JavaCore#COMPILER_CODEGEN_TARGET_PLATFORM}).
+ * Without these options, it is not possible for the code formatter to know what kind of source it needs to format.
+ * &lt;/p>
+ * &lt;p>The given mode determines what options should be enabled when formatting the code. It can have the following
+ * values: {@link #M_FORMAT_NEW}, {@link #M_FORMAT_EXISTING}, but other values may be added in the future.
+ * &lt;/p>
+ *
+ * @param options the options map to use for formatting with the default code formatter. Recognized options
+ * are documented on &lt;code>JavaCore#getDefaultOptions()&lt;/code>. If set to &lt;code>null&lt;/code>, then use
+ * the current settings from &lt;code>JavaCore#getOptions&lt;/code>.
+ * @param mode the given mode to modify the given options.
+ *
+ * @return an instance of the built-in code formatter
+ * @see CodeFormatter
+ * @see JavaCore#getOptions()
+ * @since 3.3
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_nBHQ8GEMEeCdEc4VzBeWeQ" type="_m_UhMWEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_nBHQ8WEMEeCdEc4VzBeWeQ" name="options" type="_l1aS0WEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_nBaL4GEMEeCdEc4VzBeWeQ" name="mode" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_nBaL4WEMEeCdEc4VzBeWeQ" name="createDefaultClassFileBytesDisassembler" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_nBaL4mEMEeCdEc4VzBeWeQ">
+ <body>
+ * Create a classfile bytecode disassembler, able to produce a String representation of a given classfile.
+ *
+ * @return a classfile bytecode disassembler
+ * @see ClassFileBytesDisassembler
+ * @since 2.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_nBtG0GEMEeCdEc4VzBeWeQ" type="_nBj84WEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_nBtG0WEMEeCdEc4VzBeWeQ" name="createDefaultClassFileDisassembler" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_nBtG0mEMEeCdEc4VzBeWeQ">
+ <body>
+ * Create a classfile bytecode disassembler, able to produce a String representation of a given classfile.
+ *
+ * @return a classfile bytecode disassembler
+ * @see org.eclipse.jdt.core.util.IClassFileDisassembler
+ * @deprecated Use {@link #createDefaultClassFileBytesDisassembler()} instead
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_nC5ZoGEMEeCdEc4VzBeWeQ" type="_nCwPsWEMEeCdEc4VzBeWeQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_nC5ZoWEMEeCdEc4VzBeWeQ" name="createDefaultClassFileReader" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_nC5ZomEMEeCdEc4VzBeWeQ">
+ <body>
+ * Create a classfile reader onto a classfile Java element.
+ * Create a default classfile reader, able to expose the internal representation of a given classfile
+ * according to the decoding flag used to initialize the reader.
+ * Answer null if the file named fileName doesn't represent a valid .class file.
+ *
+ * The decoding flags are described in IClassFileReader.
+ *
+ * @param classfile the classfile element to introspect
+ * @param decodingFlag the flag used to decode the class file reader.
+ * @return a default classfile reader
+ *
+ * @see IClassFileReader
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_nDDKoWEMEeCdEc4VzBeWeQ" type="_nDDKoGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_nDMUkGEMEeCdEc4VzBeWeQ" name="classfile" type="_j2Jw0GEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_nDpAgGEMEeCdEc4VzBeWeQ" name="decodingFlag" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_nDyxgWEMEeCdEc4VzBeWeQ" name="createDefaultClassFileReader" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_nDyxgmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Create a default classfile reader, able to expose the internal representation of a given classfile
+ * according to the decoding flag used to initialize the reader.
+ * Answer null if the input stream contents cannot be retrieved
+ *
+ * The decoding flags are described in IClassFileReader.
+ *
+ * @param stream the given input stream to read
+ * @param decodingFlag the flag used to decode the class file reader.
+ * @return a default classfile reader
+ *
+ * @see IClassFileReader
+ * @since 3.2
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_nD8igGEMEeCdEc4VzBeWeQ" type="_nDDKoGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_nEFscGEMEeCdEc4VzBeWeQ" name="stream" type="_nDyxgGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_nEYnYGEMEeCdEc4VzBeWeQ" name="decodingFlag" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_nEYnYWEMEeCdEc4VzBeWeQ" name="createDefaultClassFileReader" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_nE_EUGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Create a default classfile reader, able to expose the internal representation of a given classfile
+ * according to the decoding flag used to initialize the reader.
+ * Answer null if the file named fileName doesn't represent a valid .class file.
+ * The fileName has to be an absolute OS path to the given .class file.
+ *
+ * The decoding flags are described in IClassFileReader.
+ *
+ * @param fileName the name of the file to be read
+ * @param decodingFlag the flag used to decode the class file reader.
+ * @return a default classfile reader
+ *
+ * @see IClassFileReader
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_nFI1UGEMEeCdEc4VzBeWeQ" type="_nDDKoGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_nFR_QGEMEeCdEc4VzBeWeQ" name="fileName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_nFR_QWEMEeCdEc4VzBeWeQ" name="decodingFlag" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_nFbwQGEMEeCdEc4VzBeWeQ" name="createDefaultClassFileReader" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_nFbwQWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Create a default classfile reader, able to expose the internal representation of a given classfile
+ * according to the decoding flag used to initialize the reader.
+ * Answer null if the file named zipFileName doesn't represent a valid zip file or if the zipEntryName
+ * is not a valid entry name for the specified zip file or if the bytes don't represent a valid
+ * .class file according to the JVM specifications.
+ *
+ * The decoding flags are described in IClassFileReader.
+ *
+ * @param zipFileName the name of the zip file
+ * @param zipEntryName the name of the entry in the zip file to be read
+ * @param decodingFlag the flag used to decode the class file reader.
+ * @return a default classfile reader
+ * @see IClassFileReader
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_nFbwQmEMEeCdEc4VzBeWeQ" type="_nDDKoGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_nFurMGEMEeCdEc4VzBeWeQ" name="zipFileName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_nFurMWEMEeCdEc4VzBeWeQ" name="zipEntryName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_nF4cMGEMEeCdEc4VzBeWeQ" name="decodingFlag" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_nF4cMWEMEeCdEc4VzBeWeQ" name="createDefaultCodeFormatter" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_nF4cMmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Create an instance of the default code formatter.
+ *
+ * @param options - the options map to use for formatting with the default code formatter. Recognized options
+ * are documented on &lt;code>JavaCore#getDefaultOptions()&lt;/code>. If set to &lt;code>null&lt;/code>, then use
+ * the current settings from &lt;code>JavaCore#getOptions&lt;/code>.
+ * @return an instance of the built-in code formatter
+ * @see ICodeFormatter
+ * @see ToolFactory#createCodeFormatter()
+ * @see JavaCore#getOptions()
+ * @deprecated Use {@link #createCodeFormatter(Map)} instead but note the different options
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_nGBmIGEMEeCdEc4VzBeWeQ" type="_j-M5kGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_nGLXIGEMEeCdEc4VzBeWeQ" name="options" type="_l1aS0WEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_nGLXIWEMEeCdEc4VzBeWeQ" name="createScanner" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_nGLXImEMEeCdEc4VzBeWeQ">
+ <body>
+ * Create a scanner, indicating the level of detail requested for tokenizing. The scanner can then be
+ * used to tokenize some source in a Java aware way.
+ * Here is a typical scanning loop:
+ *
+ * &lt;code>
+ * &lt;pre>
+ * IScanner scanner = ToolFactory.createScanner(false, false, false, false);
+ * scanner.setSource(&quot;int i = 0;&quot;.toCharArray());
+ * while (true) {
+ * int token = scanner.getNextToken();
+ * if (token == ITerminalSymbols.TokenNameEOF) break;
+ * System.out.println(token + &quot; : &quot; + new String(scanner.getCurrentTokenSource()));
+ * }
+ * &lt;/pre>
+ * &lt;/code>
+ *
+ * &lt;p>By default the compliance used to create the scanner is the workspace's compliance when running inside the IDE
+ * or 1.4 if running from outside of a headless eclipse.
+ * &lt;/p>
+ *
+ * @param tokenizeComments if set to &lt;code>false&lt;/code>, comments will be silently consumed
+ * @param tokenizeWhiteSpace if set to &lt;code>false&lt;/code>, white spaces will be silently consumed,
+ * @param assertMode if set to &lt;code>false&lt;/code>, occurrences of 'assert' will be reported as identifiers
+ * ({@link ITerminalSymbols#TokenNameIdentifier}), whereas if set to &lt;code>true&lt;/code>, it
+ * would report assert keywords ({@link ITerminalSymbols#TokenNameassert}). Java 1.4 has introduced
+ * a new 'assert' keyword.
+ * @param recordLineSeparator if set to &lt;code>true&lt;/code>, the scanner will record positions of encountered line
+ * separator ends. In case of multi-character line separators, the last character position is considered. These positions
+ * can then be extracted using {@link IScanner#getLineEnds()}. Only non-unicode escape sequences are
+ * considered as valid line separators.
+ * @return a scanner
+ * @see org.eclipse.jdt.core.compiler.IScanner
+ * @see #createScanner(boolean, boolean, boolean, String, String)
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_nGVIIWEMEeCdEc4VzBeWeQ" type="_nGVIIGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_nGeSEGEMEeCdEc4VzBeWeQ" name="tokenizeComments" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_nGeSEWEMEeCdEc4VzBeWeQ" name="tokenizeWhiteSpace" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_nGoDEGEMEeCdEc4VzBeWeQ" name="assertMode" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_nGoDEWEMEeCdEc4VzBeWeQ" name="recordLineSeparator" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_nGxNAGEMEeCdEc4VzBeWeQ" name="createScanner" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_nGxNAWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Create a scanner, indicating the level of detail requested for tokenizing. The scanner can then be
+ * used to tokenize some source in a Java aware way.
+ * Here is a typical scanning loop:
+ *
+ * &lt;code>
+ * &lt;pre>
+ * IScanner scanner = ToolFactory.createScanner(false, false, false, false);
+ * scanner.setSource(&quot;int i = 0;&quot;.toCharArray());
+ * while (true) {
+ * int token = scanner.getNextToken();
+ * if (token == ITerminalSymbols.TokenNameEOF) break;
+ * System.out.println(token + &quot; : &quot; + new String(scanner.getCurrentTokenSource()));
+ * }
+ * &lt;/pre>
+ * &lt;/code>
+ *
+ * &lt;p>By default the compliance used to create the scanner is the workspace's compliance when running inside the IDE
+ * or 1.4 if running from outside of a headless eclipse.
+ * &lt;/p>
+ *
+ * @param tokenizeComments if set to &lt;code>false&lt;/code>, comments will be silently consumed
+ * @param tokenizeWhiteSpace if set to &lt;code>false&lt;/code>, white spaces will be silently consumed,
+ * @param recordLineSeparator if set to &lt;code>true&lt;/code>, the scanner will record positions of encountered line
+ * separator ends. In case of multi-character line separators, the last character position is considered. These positions
+ * can then be extracted using {@link IScanner#getLineEnds()}. Only non-unicode escape sequences are
+ * considered as valid line separators.
+ * @param sourceLevel if set to &lt;code>&amp;quot;1.3&amp;quot;&lt;/code> or &lt;code>null&lt;/code>, occurrences of 'assert' will be reported as identifiers
+ * ({@link ITerminalSymbols#TokenNameIdentifier}), whereas if set to &lt;code>&amp;quot;1.4&amp;quot;&lt;/code>, it
+ * would report assert keywords ({@link ITerminalSymbols#TokenNameassert}). Java 1.4 has introduced
+ * a new 'assert' keyword.
+ * @return a scanner
+ * @see org.eclipse.jdt.core.compiler.IScanner
+ * @see #createScanner(boolean, boolean, boolean, String, String)
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_nG6-AGEMEeCdEc4VzBeWeQ" type="_nGVIIGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_nHEvAGEMEeCdEc4VzBeWeQ" name="tokenizeComments" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_nHEvAWEMEeCdEc4VzBeWeQ" name="tokenizeWhiteSpace" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_nHN48GEMEeCdEc4VzBeWeQ" name="recordLineSeparator" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_nHXp8GEMEeCdEc4VzBeWeQ" name="sourceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_nH0V4GEMEeCdEc4VzBeWeQ" name="createScanner" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_nH0V4WEMEeCdEc4VzBeWeQ">
+ <body>
+ * Create a scanner, indicating the level of detail requested for tokenizing. The scanner can then be
+ * used to tokenize some source in a Java aware way.
+ * Here is a typical scanning loop:
+ *
+ * &lt;code>
+ * &lt;pre>
+ * IScanner scanner = ToolFactory.createScanner(false, false, false, false);
+ * scanner.setSource(&quot;int i = 0;&quot;.toCharArray());
+ * while (true) {
+ * int token = scanner.getNextToken();
+ * if (token == ITerminalSymbols.TokenNameEOF) break;
+ * System.out.println(token + &quot; : &quot; + new String(scanner.getCurrentTokenSource()));
+ * }
+ * &lt;/pre>
+ * &lt;/code>
+ *
+ * @param tokenizeComments if set to &lt;code>false&lt;/code>, comments will be silently consumed
+ * @param tokenizeWhiteSpace if set to &lt;code>false&lt;/code>, white spaces will be silently consumed,
+ * @param recordLineSeparator if set to &lt;code>true&lt;/code>, the scanner will record positions of encountered line
+ * separator ends. In case of multi-character line separators, the last character position is considered. These positions
+ * can then be extracted using {@link IScanner#getLineEnds()}. Only non-unicode escape sequences are
+ * considered as valid line separators.
+ * @param sourceLevel if set to &lt;code>&amp;quot;1.3&amp;quot;&lt;/code> or &lt;code>null&lt;/code>, occurrences of 'assert' will be reported as identifiers
+ * ({@link ITerminalSymbols#TokenNameIdentifier}), whereas if set to &lt;code>&amp;quot;1.4&amp;quot;&lt;/code>, it
+ * would report assert keywords ({@link ITerminalSymbols#TokenNameassert}). Java 1.4 has introduced
+ * a new 'assert' keyword.
+ * @param complianceLevel This is used to support the Unicode 4.0 character sets. if set to 1.5 or above,
+ * the Unicode 4.0 is supporte, otherwise Unicode 3.0 is supported.
+ * @return a scanner
+ * @see org.eclipse.jdt.core.compiler.IScanner
+ *
+ * @since 3.1
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_nH9f0GEMEeCdEc4VzBeWeQ" type="_nGVIIGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_nH9f0WEMEeCdEc4VzBeWeQ" name="tokenizeComments" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_nIHQ0GEMEeCdEc4VzBeWeQ" name="tokenizeWhiteSpace" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_nIHQ0WEMEeCdEc4VzBeWeQ" name="recordLineSeparator" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_nIHQ0mEMEeCdEc4VzBeWeQ" name="sourceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_nIRB0GEMEeCdEc4VzBeWeQ" name="complianceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_m_UhMGEMEeCdEc4VzBeWeQ" name="formatter">
+ <packagedElement xmi:type="uml:Class" xmi:id="_m_UhMWEMEeCdEc4VzBeWeQ" name="CodeFormatter"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_nBj84GEMEeCdEc4VzBeWeQ" name="util">
+ <packagedElement xmi:type="uml:Class" xmi:id="_nBj84WEMEeCdEc4VzBeWeQ" name="ClassFileBytesDisassembler"/>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_nDDKoGEMEeCdEc4VzBeWeQ" name="IClassFileReader"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_nB230GEMEeCdEc4VzBeWeQ" name="org">
+ <packagedElement xmi:type="uml:Package" xmi:id="_nCABwGEMEeCdEc4VzBeWeQ" name="eclipse">
+ <packagedElement xmi:type="uml:Package" xmi:id="_nCABwWEMEeCdEc4VzBeWeQ" name="jdt">
+ <packagedElement xmi:type="uml:Package" xmi:id="_nCABwmEMEeCdEc4VzBeWeQ" name="core">
+ <packagedElement xmi:type="uml:Package" xmi:id="_nCwPsGEMEeCdEc4VzBeWeQ" name="util">
+ <packagedElement xmi:type="uml:Interface" xmi:id="_nCwPsWEMEeCdEc4VzBeWeQ" name="IClassFileDisassembler"/>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_nI23sGEMEeCdEc4VzBeWeQ" name="WorkingCopyOwner" isAbstract="true">
+ <ownedComment xmi:id="_nI23sWEMEeCdEc4VzBeWeQ">
+ <body>
+ * The owner of an {@link ICompilationUnit} handle in working copy mode.
+ * An owner is used to identify a working copy and to create its buffer.
+ * &lt;p>
+ * Clients should subclass this class to instantiate a working copy owner that is specific to their need and that
+ * they can pass in to various APIs (e.g. {@link IType#resolveType(String, WorkingCopyOwner)}.
+ * Clients can also override the default implementation of {@link #createBuffer(ICompilationUnit)}.
+ * &lt;/p>&lt;p>
+ * Note: even though this class has no abstract method, which means that it provides functional default behavior,
+ * it is still an abstract class, as clients are intended to own their owner implementation.
+ * &lt;/p>
+ * @see ICompilationUnit#becomeWorkingCopy(org.eclipse.core.runtime.IProgressMonitor)
+ * @see ICompilationUnit#discardWorkingCopy()
+ * @see ICompilationUnit#getWorkingCopy(org.eclipse.core.runtime.IProgressMonitor)
+ * @since 3.0
+ </body>
+ </ownedComment>
+ <ownedOperation xmi:id="_nJAosGEMEeCdEc4VzBeWeQ" name="setPrimaryBufferProvider" visibility="public" isStatic="true">
+ <ownedComment xmi:id="_nJAosWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Sets the buffer provider of the primary working copy owner. Note that even if the
+ * buffer provider is a working copy owner, only its &lt;code>createBuffer(ICompilationUnit)&lt;/code>
+ * method is used by the primary working copy owner. It doesn't replace the internal primary
+ * working owner.
+ * &lt;p>
+ * This method is for internal use by the jdt-related plug-ins.
+ * Clients outside of the jdt should not reference this method.
+ * &lt;/p>
+ *
+ * @param primaryBufferProvider the primary buffer provider
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_nJAosmEMEeCdEc4VzBeWeQ" name="primaryBufferProvider" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_nJJyoGEMEeCdEc4VzBeWeQ" name="createBuffer" visibility="public">
+ <ownedComment xmi:id="_nJJyoWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Creates a buffer for the given working copy.
+ * The new buffer will be initialized with the contents of the underlying file
+ * if and only if it was not already initialized by the compilation owner (a buffer is
+ * uninitialized if its content is &lt;code>null&lt;/code>).
+ * &lt;p>
+ * Note: This buffer will be associated to the working copy for its entire life-cycle. Another
+ * working copy on same unit but owned by a different owner would not share the same buffer
+ * unless its owner decided to implement such a sharing behaviour.
+ * &lt;/p>
+ *
+ * @param workingCopy the working copy of the buffer
+ * @return IBuffer the created buffer for the given working copy
+ * @see IBuffer
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_nJJyomEMEeCdEc4VzBeWeQ" type="_j1aJ8GEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_nJTjoGEMEeCdEc4VzBeWeQ" name="workingCopy" type="_j-plgGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_nJdUoGEMEeCdEc4VzBeWeQ" name="getProblemRequestor" visibility="public">
+ <ownedComment xmi:id="_nJdUoWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the problem requestor used by a working copy of this working copy owner.
+ * &lt;p>
+ * By default, no problem requestor is configured. Clients can override this
+ * method to provide a requestor.
+ * &lt;/p>
+ *
+ * @param workingCopy The problem requestor used for the given working copy.
+ * @return the problem requestor to be used by working copies of this working
+ * copy owner or &lt;code>null&lt;/code> if no problem requestor is configured.
+ *
+ * @since 3.3
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_nJdUomEMEeCdEc4VzBeWeQ" type="_krNJgGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_nJmekGEMEeCdEc4VzBeWeQ" name="workingCopy" type="_j-plgGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_nJwPkGEMEeCdEc4VzBeWeQ" name="findSource" visibility="public">
+ <ownedComment xmi:id="_nJwPkWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns the source of the compilation unit that defines the given type in
+ * the given package, or &lt;code>null&lt;/code> if the type is unknown to this
+ * owner.
+ * &lt;p>This method is called before the normal lookup (i.e. before looking
+ * at the project's classpath and before looking at the working copies of this
+ * owner.)&lt;/p>
+ * &lt;p>This allows to provide types that are not normally available, or to hide
+ * types that would normally be available by returning an empty source for
+ * the given type and package.&lt;/p>
+ * &lt;p>Example of use:
+ * &lt;pre>
+ * WorkingCopyOwner owner = new WorkingCopyOwner() {
+ * public String findSource(String typeName, String packageName) {
+ * if (&quot;to.be&quot;.equals(packageName) &amp;&amp; &quot;Generated&quot;.equals(typeName)) {
+ * return
+ * &quot;package to.be;\n&quot; +
+ * &quot;public class Generated {\n&quot; +
+ * &quot;}&quot;;
+ * }
+ * return super.findSource(typeName, packageName);
+ * }
+ * public boolean isPackage(String[] pkg) {
+ * switch (pkg.length) {
+ * case 1:
+ * return &quot;to&quot;.equals(pkg[0]);
+ * case 2:
+ * return &quot;to&quot;.equals(pkg[0]) &amp;&amp; &quot;be&quot;.equals(pkg[1]);
+ * }
+ * return false;
+ * }
+ * };
+ * // Working copy on X.java with the following contents:
+ * // public class X extends to.be.Generated {
+ * // }
+ * ICompilationUnit workingCopy = ...
+ * ASTParser parser = ASTParser.newParser(AST.JLS3);
+ * parser.setSource(workingCopy);
+ * parser.setResolveBindings(true);
+ * parser.setWorkingCopyOwner(owner);
+ * CompilationUnit cu = (CompilationUnit) parser.createAST(null);
+ * assert cu.getProblems().length == 0;
+ * &lt;/pre>
+ * &lt;/p>
+ *
+ * @param typeName the simple name of the type to lookup
+ * @param packageName the dot-separated name of the package of type
+ * @return the source of the compilation unit that defines the given type in
+ * the given package, or &lt;code>null&lt;/code> if the type is unknown
+ * @see #isPackage(String[])
+ * @since 3.5
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_nJ6AkGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_nJ6AkWEMEeCdEc4VzBeWeQ" name="typeName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_nKDKgGEMEeCdEc4VzBeWeQ" name="packageName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_nKDKgWEMEeCdEc4VzBeWeQ" name="isPackage" visibility="public">
+ <ownedComment xmi:id="_nKDKgmEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns whether the given package segments represent a package.
+ * &lt;p>This method is called before the normal lookup (i.e. before looking
+ * at the project's classpath and before looking at the working copies of this
+ * owner.)&lt;/p>
+ * &lt;p>This allows to provide packages that are not normally available.&lt;/p>
+ * &lt;p>If &lt;code>false&lt;/code> is returned, then normal lookup is used on
+ * this package.&lt;/p>
+ *
+ * @param pkg the segments of a package to lookup
+ * @return whether the given package segments represent a package.
+ * @see #findSource(String, String)
+ * @since 3.5
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_nKM7gGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_nKM7gWEMEeCdEc4VzBeWeQ" name="pkg" type="_dSiS02EMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nKWFcWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nKWFcGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_nKWFcmEMEeCdEc4VzBeWeQ" name="newWorkingCopy" visibility="public" isLeaf="true">
+ <ownedComment xmi:id="_nKf2cGEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns a new working copy with the given name using this working copy owner to
+ * create its buffer.
+ * &lt;p>
+ * This working copy always belongs to the default package in a package
+ * fragment root that corresponds to its Java project, and this Java project never exists.
+ * However this Java project has the given classpath that is used when resolving names
+ * in this working copy.
+ * &lt;/p>&lt;p>
+ * A DOM AST created using this working copy will have bindings resolved using the given
+ * classpath, and problem are reported to the given problem requestor.
+ * &lt;p>&lt;/p>
+ * &lt;code>JavaCore#getOptions()&lt;/code> is used to create the DOM AST as it is not
+ * possible to set the options on the non-existing Java project.
+ * &lt;/p>&lt;p>
+ * When the working copy instance is created, an {@link IJavaElementDelta#ADDED added delta} is
+ * reported on this working copy.
+ * &lt;/p>&lt;p>
+ * Once done with the working copy, users of this method must discard it using
+ * {@link ICompilationUnit#discardWorkingCopy()}.
+ * &lt;/p>&lt;p>
+ * Note that when such working copy is committed, only its buffer is saved (see
+ * {@link IBuffer#save(IProgressMonitor, boolean)}) but no resource is created.
+ * &lt;/p>&lt;p>
+ * This method is not intended to be overriden by clients.
+ * &lt;/p>
+ *
+ * @param name the name of the working copy (e.g. &quot;X.java&quot;)
+ * @param classpath the classpath used to resolve names in this working copy
+ * @param problemRequestor a requestor which will get notified of problems detected during
+ * reconciling as they are discovered. The requestor can be set to &lt;code>null&lt;/code> indicating
+ * that the client is not interested in problems.
+ * @param monitor a progress monitor used to report progress while opening the working copy
+ * or &lt;code>null&lt;/code> if no progress should be reported
+ * @throws JavaModelException if the contents of this working copy can
+ * not be determined.
+ * @return a new working copy
+ * @see ICompilationUnit#becomeWorkingCopy(IProblemRequestor, IProgressMonitor)
+ * @since 3.2
+ *
+ * @deprecated Use {@link #newWorkingCopy(String, IClasspathEntry[], IProgressMonitor)} instead.
+ * Note that if this deprecated method is used, problems may be reported twice
+ * if the given requestor is not the same as the current working copy owner one.
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_nKf2cWEMEeCdEc4VzBeWeQ" type="_j-plgGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_nKpncGEMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_nKpncWEMEeCdEc4VzBeWeQ" name="classpath" type="_j4GRkGEMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nKyxYWEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nKyxYGEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nK8iYGEMEeCdEc4VzBeWeQ" name="problemRequestor" type="_krNJgGEMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_nK8iYWEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_nLGTYGEMEeCdEc4VzBeWeQ" name="newWorkingCopy" visibility="public" isLeaf="true">
+ <ownedComment xmi:id="_nLGTYWEMEeCdEc4VzBeWeQ">
+ <body>
+ * Returns a new working copy with the given name using this working copy owner to
+ * create its buffer.
+ * &lt;p>
+ * This working copy always belongs to the default package in a package
+ * fragment root that corresponds to its Java project, and this Java project never exists.
+ * However this Java project has the given classpath that is used when resolving names
+ * in this working copy.
+ * &lt;/p>&lt;p>
+ * If a DOM AST is created using this working copy, then given classpath will be used
+ * if bindings need to be resolved. Problems will be reported to the problem requestor
+ * of the current working copy owner problem if it is not &lt;code>null&lt;/code>.
+ * &lt;p>&lt;/p>
+ * Options used to create the DOM AST are got from {@link JavaCore#getOptions()}
+ * as it is not possible to set the options on a non-existing Java project.
+ * &lt;/p>&lt;p>
+ * When the working copy instance is created, an {@link IJavaElementDelta#ADDED added delta} is
+ * reported on this working copy.
+ * &lt;/p>&lt;p>
+ * Once done with the working copy, users of this method must discard it using
+ * {@link ICompilationUnit#discardWorkingCopy()}.
+ * &lt;/p>&lt;p>
+ * Note that when such working copy is committed, only its buffer is saved (see
+ * {@link IBuffer#save(IProgressMonitor, boolean)}) but no resource is created.
+ * &lt;/p>&lt;p>
+ * This method is not intended to be overriden by clients.
+ * &lt;/p>
+ *
+ * @param name the name of the working copy (e.g. &quot;X.java&quot;)
+ * @param classpath the classpath used to resolve names in this working copy
+ * @param monitor a progress monitor used to report progress while opening the working copy
+ * or &lt;code>null&lt;/code> if no progress should be reported
+ * @throws JavaModelException if the contents of this working copy can
+ * not be determined.
+ * @return a new working copy
+ * @see ICompilationUnit#becomeWorkingCopy(IProgressMonitor)
+ *
+ * @since 3.3
+ </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_nLGTYmEMEeCdEc4VzBeWeQ" type="_j-plgGEMEeCdEc4VzBeWeQ" direction="return"/>
+ <ownedParameter xmi:id="_nLPdUGEMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
+ <ownedParameter xmi:id="_nLZOUGEMEeCdEc4VzBeWeQ" name="classpath" type="_j4GRkGEMEeCdEc4VzBeWeQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nLZOUmEMEeCdEc4VzBeWeQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nLZOUWEMEeCdEc4VzBeWeQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nLiYQGEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_TKSr4mHaEeCIr_fxSkYSJA" name="eval">
+ <packagedElement xmi:type="uml:Interface" xmi:id="_TKSr42HaEeCIr_fxSkYSJA" name="IEvaluationContext"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_k33sgGEMEeCdEc4VzBeWeQ" name="internal">
+ <packagedElement xmi:type="uml:Package" xmi:id="_k33sgWEMEeCdEc4VzBeWeQ" name="compiler">
+ <packagedElement xmi:type="uml:Package" xmi:id="_k33sgmEMEeCdEc4VzBeWeQ" name="parser">
+ <packagedElement xmi:type="uml:Class" xmi:id="_k33sg2EMEeCdEc4VzBeWeQ" name="Scanner"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_l-DRcmEMEeCdEc4VzBeWeQ" name="core">
+ <packagedElement xmi:type="uml:Interface" xmi:id="_l-NCcGEMEeCdEc4VzBeWeQ" name="INamingRequestor"/>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Model" xmi:id="_dSiS0GEMEeCdEc4VzBeWeQ" name="java">
+ <packagedElement xmi:type="uml:Package" xmi:id="_dSiS0WEMEeCdEc4VzBeWeQ" name="java">
+ <packagedElement xmi:type="uml:Package" xmi:id="_dSiS0mEMEeCdEc4VzBeWeQ" name="lang">
+ <packagedElement xmi:type="uml:Class" xmi:id="_dSiS02EMEeCdEc4VzBeWeQ" name="String"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_kOcVAmEMEeCdEc4VzBeWeQ" name="Object"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_l5SGMmEMEeCdEc4VzBeWeQ" name="Throwable"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_dV-BUmEMEeCdEc4VzBeWeQ" name="util">
+ <packagedElement xmi:type="uml:Class" xmi:id="_dV-BU2EMEeCdEc4VzBeWeQ" name="EventObject"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_l1aS0WEMEeCdEc4VzBeWeQ" name="Map"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_l1tNwWEMEeCdEc4VzBeWeQ" name="ArrayList"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_l5uyIWEMEeCdEc4VzBeWeQ" name="io">
+ <packagedElement xmi:type="uml:Class" xmi:id="_l5uyImEMEeCdEc4VzBeWeQ" name="PrintStream"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_l54jI2EMEeCdEc4VzBeWeQ" name="PrintWriter"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_nDyxgGEMEeCdEc4VzBeWeQ" name="InputStream"/>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Model" xmi:id="_dTbqsGEMEeCdEc4VzBeWeQ" name="datatype">
+ <packagedElement xmi:type="uml:Package" xmi:id="_dTbqsWEMEeCdEc4VzBeWeQ" name="datatype">
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_dTlbsGEMEeCdEc4VzBeWeQ" name="Integer"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_dUn9g2EMEeCdEc4VzBeWeQ" name="Char"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_dVOadGEMEeCdEc4VzBeWeQ" name="Boolean"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_dWatRGEMEeCdEc4VzBeWeQ" name="Long"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_poIZsmEQEeCdEc4VzBeWeQ" name="Byte"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Model" xmi:id="_jpWD6GEMEeCdEc4VzBeWeQ" name="core">
+ <packagedElement xmi:type="uml:Package" xmi:id="_jpWD6WEMEeCdEc4VzBeWeQ" name="org">
+ <packagedElement xmi:type="uml:Package" xmi:id="_jpWD6mEMEeCdEc4VzBeWeQ" name="eclipse">
+ <packagedElement xmi:type="uml:Package" xmi:id="_jpWD62EMEeCdEc4VzBeWeQ" name="core">
+ <packagedElement xmi:type="uml:Package" xmi:id="_jpWD7GEMEeCdEc4VzBeWeQ" name="runtime">
+ <packagedElement xmi:type="uml:Interface" xmi:id="_jqFqwGEMEeCdEc4VzBeWeQ" name="IProgressMonitor"/>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_j00UEmEMEeCdEc4VzBeWeQ" name="IPath"/>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_kO5A8mEMEeCdEc4VzBeWeQ" name="IAdaptable"/>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_kaOHMWEMEeCdEc4VzBeWeQ" name="IStatus"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_lIjz4mEMEeCdEc4VzBeWeQ" name="Plugin"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_l4ifUmEMEeCdEc4VzBeWeQ" name="CoreException"/>
+ <packagedElement xmi:type="uml:Package" xmi:id="_s0HMcmHfEeCIr_fxSkYSJA" name="jobs">
+ <packagedElement xmi:type="uml:Interface" xmi:id="_s0HMc2HfEeCIr_fxSkYSJA" name="ISchedulingRule"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_j6e3NWEMEeCdEc4VzBeWeQ" name="resources">
+ <packagedElement xmi:type="uml:Interface" xmi:id="_j6oBIGEMEeCdEc4VzBeWeQ" name="IMarker"/>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_kOJaEmEMEeCdEc4VzBeWeQ" name="IStorage"/>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_kQh_smEMEeCdEc4VzBeWeQ" name="IResource"/>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_kWMi0GEMEeCdEc4VzBeWeQ" name="IResourceDelta"/>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_l1tNwGEMEeCdEc4VzBeWeQ" name="IContainer"/>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_l2J5smEMEeCdEc4VzBeWeQ" name="IResourceChangeListener"/>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_QEZ5AGHaEeCIr_fxSkYSJA" name="IWorkspace"/>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_TINoQGHaEeCIr_fxSkYSJA" name="IProject"/>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Model" xmi:id="_j1aJ9GEMEeCdEc4VzBeWeQ" name="text">
+ <packagedElement xmi:type="uml:Package" xmi:id="_j1aJ9WEMEeCdEc4VzBeWeQ" name="org">
+ <packagedElement xmi:type="uml:Package" xmi:id="_j1aJ9mEMEeCdEc4VzBeWeQ" name="eclipse">
+ <packagedElement xmi:type="uml:Package" xmi:id="_j1aJ92EMEeCdEc4VzBeWeQ" name="text">
+ <packagedElement xmi:type="uml:Package" xmi:id="_j1aJ-GEMEeCdEc4VzBeWeQ" name="edits">
+ <packagedElement xmi:type="uml:Class" xmi:id="_j1aJ-WEMEeCdEc4VzBeWeQ" name="TextEdit"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_j1j68mEMEeCdEc4VzBeWeQ" name="UndoEdit"/>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+</uml:Model>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/plugin.properties b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/plugin.properties
new file mode 100644
index 00000000000..0a19e739f6a
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/plugin.properties
@@ -0,0 +1,19 @@
+#################################################################################
+# Copyright (c) 2011 Nicolas Deblock & Manuel Giles.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Nicolas Deblock nico.deblock@gmail.com - Initial API and implementation
+# Manuel Giles giles.manu@live.fr - Initial API and implementation
+# Cedric Dumoulin Cedric.dumoulin@lifl.fr - Idea of the java generator project & help for the conception
+#
+#################################################################################
+
+
+pluginName = Jdt metamodel (Incubation)
+providerName = Eclipse Modeling Project
+
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/plugin.xml b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/plugin.xml
new file mode 100644
index 00000000000..1d95f211dfb
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/plugin.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ <copyright>
+ </copyright>
+
+ $Id$
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri="http:///jdtmm.ecore"
+ class="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage"
+ genModel="model/jdtmm.genmodel"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated generatorOptionsMM -->
+ <package
+ uri="http:///GeneratorOptionsMM.ecore"
+ class="org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.GeneratoroptionsmmPackage"
+ genModel="model/generatorOptions/generatoroptionsmm.genmodel"/>
+ </extension>
+
+</plugin>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/pom.xml b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/pom.xml
new file mode 100644
index 00000000000..8fd67e862bf
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.java.generator.metamodel.jdt</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/GeneratoroptionsmmFactory.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/GeneratoroptionsmmFactory.java
new file mode 100644
index 00000000000..574aafc167a
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/GeneratoroptionsmmFactory.java
@@ -0,0 +1,57 @@
+/*****************************************************************************
+ * Copyright (c) 2014 Jonathan Geoffroy
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Jonathan Geoffroy geoffroy.jonathan@gmail.com - Meta-model conception
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.GeneratoroptionsmmPackage
+ * @generated
+ */
+public interface GeneratoroptionsmmFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ GeneratoroptionsmmFactory eINSTANCE = org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.impl.GeneratoroptionsmmFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Options</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Options</em>'.
+ * @generated
+ */
+ Options createOptions();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the package supported by this factory.
+ * @generated
+ */
+ GeneratoroptionsmmPackage getGeneratoroptionsmmPackage();
+
+} // GeneratoroptionsmmFactory
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/GeneratoroptionsmmPackage.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/GeneratoroptionsmmPackage.java
new file mode 100644
index 00000000000..d67b1c8d5b3
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/GeneratoroptionsmmPackage.java
@@ -0,0 +1,187 @@
+/*****************************************************************************
+ * Copyright (c) 2014 Jonathan Geoffroy
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Jonathan Geoffroy geoffroy.jonathan@gmail.com - Meta-model conception
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.GeneratoroptionsmmFactory
+ * @model kind="package"
+ * annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='GeneratorOptionsMM'"
+ * @generated
+ */
+public interface GeneratoroptionsmmPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ String eNAME = "generatoroptionsmm";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ String eNS_URI = "http:///GeneratorOptionsMM.ecore";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ String eNS_PREFIX = "GeneratorOptionsMM";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ GeneratoroptionsmmPackage eINSTANCE = org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.impl.GeneratoroptionsmmPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.impl.OptionsImpl <em>Options</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.impl.OptionsImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.impl.GeneratoroptionsmmPackageImpl#getOptions()
+ * @generated
+ */
+ int OPTIONS = 0;
+
+ /**
+ * The feature id for the '<em><b>Default Source Folder</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int OPTIONS__DEFAULT_SOURCE_FOLDER = 0;
+
+ /**
+ * The number of structural features of the '<em>Options</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int OPTIONS_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>Options</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int OPTIONS_OPERATION_COUNT = 0;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.Options <em>Options</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Options</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.Options
+ * @generated
+ */
+ EClass getOptions();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.Options#getDefaultSourceFolder <em>Default Source Folder</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Default Source Folder</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.Options#getDefaultSourceFolder()
+ * @see #getOptions()
+ * @generated
+ */
+ EAttribute getOptions_DefaultSourceFolder();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ GeneratoroptionsmmFactory getGeneratoroptionsmmFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.impl.OptionsImpl <em>Options</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.impl.OptionsImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.impl.GeneratoroptionsmmPackageImpl#getOptions()
+ * @generated
+ */
+ EClass OPTIONS = eINSTANCE.getOptions();
+
+ /**
+ * The meta object literal for the '<em><b>Default Source Folder</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute OPTIONS__DEFAULT_SOURCE_FOLDER = eINSTANCE.getOptions_DefaultSourceFolder();
+
+ }
+
+} // GeneratoroptionsmmPackage
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/Options.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/Options.java
new file mode 100644
index 00000000000..d2940a2afc6
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/Options.java
@@ -0,0 +1,63 @@
+/*****************************************************************************
+ * Copyright (c) 2014 Jonathan Geoffroy
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Jonathan Geoffroy geoffroy.jonathan@gmail.com - Meta-model conception
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Options</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.Options#getDefaultSourceFolder <em>Default Source Folder</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.GeneratoroptionsmmPackage#getOptions()
+ * @model
+ * @generated
+ */
+public interface Options extends EObject {
+ /**
+ * Returns the value of the '<em><b>Default Source Folder</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Default Source Folder</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Default Source Folder</em>' attribute.
+ * @see #setDefaultSourceFolder(String)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.GeneratoroptionsmmPackage#getOptions_DefaultSourceFolder()
+ * @model dataType="org.eclipse.uml2.types.String" required="true" ordered="false"
+ * @generated
+ */
+ String getDefaultSourceFolder();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.Options#getDefaultSourceFolder <em>Default Source Folder</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Default Source Folder</em>' attribute.
+ * @see #getDefaultSourceFolder()
+ * @generated
+ */
+ void setDefaultSourceFolder(String value);
+
+} // Options
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/impl/GeneratoroptionsmmFactoryImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/impl/GeneratoroptionsmmFactoryImpl.java
new file mode 100644
index 00000000000..04e8b13c3c9
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/impl/GeneratoroptionsmmFactoryImpl.java
@@ -0,0 +1,114 @@
+/*****************************************************************************
+ * Copyright (c) 2014 Jonathan Geoffroy
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Jonathan Geoffroy geoffroy.jonathan@gmail.com - Meta-model conception
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.GeneratoroptionsmmFactory;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.GeneratoroptionsmmPackage;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.Options;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class GeneratoroptionsmmFactoryImpl extends EFactoryImpl implements GeneratoroptionsmmFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static GeneratoroptionsmmFactory init() {
+ try {
+ GeneratoroptionsmmFactory theGeneratoroptionsmmFactory = (GeneratoroptionsmmFactory) EPackage.Registry.INSTANCE.getEFactory(GeneratoroptionsmmPackage.eNS_URI);
+ if (theGeneratoroptionsmmFactory != null) {
+ return theGeneratoroptionsmmFactory;
+ }
+ } catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new GeneratoroptionsmmFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public GeneratoroptionsmmFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case GeneratoroptionsmmPackage.OPTIONS:
+ return createOptions();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Options createOptions() {
+ OptionsImpl options = new OptionsImpl();
+ return options;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public GeneratoroptionsmmPackage getGeneratoroptionsmmPackage() {
+ return (GeneratoroptionsmmPackage) getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static GeneratoroptionsmmPackage getPackage() {
+ return GeneratoroptionsmmPackage.eINSTANCE;
+ }
+
+} // GeneratoroptionsmmFactoryImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/impl/GeneratoroptionsmmPackageImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/impl/GeneratoroptionsmmPackageImpl.java
new file mode 100644
index 00000000000..1ff4792db08
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/impl/GeneratoroptionsmmPackageImpl.java
@@ -0,0 +1,229 @@
+/*****************************************************************************
+ * Copyright (c) 2014 Jonathan Geoffroy
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Jonathan Geoffroy geoffroy.jonathan@gmail.com - Meta-model conception
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.GeneratoroptionsmmFactory;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.GeneratoroptionsmmPackage;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.Options;
+import org.eclipse.uml2.types.TypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class GeneratoroptionsmmPackageImpl extends EPackageImpl implements GeneratoroptionsmmPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass optionsEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>
+ * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also performs initialization of the package, or returns the registered package, if one already exists. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.GeneratoroptionsmmPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private GeneratoroptionsmmPackageImpl() {
+ super(eNS_URI, GeneratoroptionsmmFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>
+ * This method is used to initialize {@link GeneratoroptionsmmPackage#eINSTANCE} when that field is accessed. Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static GeneratoroptionsmmPackage init() {
+ if (isInited) {
+ return (GeneratoroptionsmmPackage) EPackage.Registry.INSTANCE.getEPackage(GeneratoroptionsmmPackage.eNS_URI);
+ }
+
+ // Obtain or create and register package
+ GeneratoroptionsmmPackageImpl theGeneratoroptionsmmPackage = (GeneratoroptionsmmPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof GeneratoroptionsmmPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI)
+ : new GeneratoroptionsmmPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ TypesPackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theGeneratoroptionsmmPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theGeneratoroptionsmmPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theGeneratoroptionsmmPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(GeneratoroptionsmmPackage.eNS_URI, theGeneratoroptionsmmPackage);
+ return theGeneratoroptionsmmPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getOptions() {
+ return optionsEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getOptions_DefaultSourceFolder() {
+ return (EAttribute) optionsEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public GeneratoroptionsmmFactory getGeneratoroptionsmmFactory() {
+ return (GeneratoroptionsmmFactory) getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) {
+ return;
+ }
+ isCreated = true;
+
+ // Create classes and their features
+ optionsEClass = createEClass(OPTIONS);
+ createEAttribute(optionsEClass, OPTIONS__DEFAULT_SOURCE_FOLDER);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) {
+ return;
+ }
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ TypesPackage theTypesPackage = (TypesPackage) EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(optionsEClass, Options.class, "Options", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getOptions_DefaultSourceFolder(), theTypesPackage.getString(), "defaultSourceFolder", null, 1, 1, Options.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // http://www.eclipse.org/uml2/2.0.0/UML
+ createUMLAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>http://www.eclipse.org/uml2/2.0.0/UML</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void createUMLAnnotations() {
+ String source = "http://www.eclipse.org/uml2/2.0.0/UML";
+ addAnnotation(this,
+ source,
+ new String[] {
+ "originalName", "GeneratorOptionsMM"
+ });
+ }
+
+} // GeneratoroptionsmmPackageImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/impl/OptionsImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/impl/OptionsImpl.java
new file mode 100644
index 00000000000..da0c05436b7
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/impl/OptionsImpl.java
@@ -0,0 +1,187 @@
+/*****************************************************************************
+ * Copyright (c) 2014 Jonathan Geoffroy
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Jonathan Geoffroy geoffroy.jonathan@gmail.com - Meta-model conception
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.GeneratoroptionsmmPackage;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.Options;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Options</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.impl.OptionsImpl#getDefaultSourceFolder <em>Default Source Folder</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class OptionsImpl extends MinimalEObjectImpl.Container implements Options {
+ /**
+ * The default value of the '{@link #getDefaultSourceFolder() <em>Default Source Folder</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getDefaultSourceFolder()
+ * @generated
+ * @ordered
+ */
+ protected static final String DEFAULT_SOURCE_FOLDER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDefaultSourceFolder() <em>Default Source Folder</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getDefaultSourceFolder()
+ * @generated
+ * @ordered
+ */
+ protected String defaultSourceFolder = DEFAULT_SOURCE_FOLDER_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected OptionsImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return GeneratoroptionsmmPackage.Literals.OPTIONS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getDefaultSourceFolder() {
+ return defaultSourceFolder;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setDefaultSourceFolder(String newDefaultSourceFolder) {
+ String oldDefaultSourceFolder = defaultSourceFolder;
+ defaultSourceFolder = newDefaultSourceFolder;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, GeneratoroptionsmmPackage.OPTIONS__DEFAULT_SOURCE_FOLDER, oldDefaultSourceFolder, defaultSourceFolder));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case GeneratoroptionsmmPackage.OPTIONS__DEFAULT_SOURCE_FOLDER:
+ return getDefaultSourceFolder();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case GeneratoroptionsmmPackage.OPTIONS__DEFAULT_SOURCE_FOLDER:
+ setDefaultSourceFolder((String) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case GeneratoroptionsmmPackage.OPTIONS__DEFAULT_SOURCE_FOLDER:
+ setDefaultSourceFolder(DEFAULT_SOURCE_FOLDER_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case GeneratoroptionsmmPackage.OPTIONS__DEFAULT_SOURCE_FOLDER:
+ return DEFAULT_SOURCE_FOLDER_EDEFAULT == null ? defaultSourceFolder != null : !DEFAULT_SOURCE_FOLDER_EDEFAULT.equals(defaultSourceFolder);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) {
+ return super.toString();
+ }
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (defaultSourceFolder: ");
+ result.append(defaultSourceFolder);
+ result.append(')');
+ return result.toString();
+ }
+
+} // OptionsImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/util/GeneratoroptionsmmAdapterFactory.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/util/GeneratoroptionsmmAdapterFactory.java
new file mode 100644
index 00000000000..b3559f01418
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/util/GeneratoroptionsmmAdapterFactory.java
@@ -0,0 +1,139 @@
+/*****************************************************************************
+ * Copyright (c) 2014 Jonathan Geoffroy
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Jonathan Geoffroy geoffroy.jonathan@gmail.com - Meta-model conception
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.GeneratoroptionsmmPackage;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.Options;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.GeneratoroptionsmmPackage
+ * @generated
+ */
+public class GeneratoroptionsmmAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected static GeneratoroptionsmmPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public GeneratoroptionsmmAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = GeneratoroptionsmmPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ *
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject) object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected GeneratoroptionsmmSwitch<Adapter> modelSwitch =
+ new GeneratoroptionsmmSwitch<Adapter>() {
+ @Override
+ public Adapter caseOptions(Options object) {
+ return createOptionsAdapter();
+ }
+
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param target
+ * the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject) target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.Options <em>Options</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.Options
+ * @generated
+ */
+ public Adapter createOptionsAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} // GeneratoroptionsmmAdapterFactory
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/util/GeneratoroptionsmmSwitch.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/util/GeneratoroptionsmmSwitch.java
new file mode 100644
index 00000000000..e4b8935cc3a
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/util/GeneratoroptionsmmSwitch.java
@@ -0,0 +1,131 @@
+/*****************************************************************************
+ * Copyright (c) 2014 Jonathan Geoffroy
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Jonathan Geoffroy geoffroy.jonathan@gmail.com - Meta-model conception
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.GeneratoroptionsmmPackage;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.Options;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)} to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.GeneratoroptionsmmPackage
+ * @generated
+ */
+public class GeneratoroptionsmmSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected static GeneratoroptionsmmPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public GeneratoroptionsmmSwitch() {
+ if (modelPackage == null) {
+ modelPackage = GeneratoroptionsmmPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case GeneratoroptionsmmPackage.OPTIONS: {
+ Options options = (Options) theEObject;
+ T result = caseOptions(options);
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ default:
+ return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Options</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Options</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseOptions(Options object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} // GeneratoroptionsmmSwitch
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTClass.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTClass.java
new file mode 100644
index 00000000000..2479b25ad4e
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTClass.java
@@ -0,0 +1,37 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>JDT Class</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTClass()
+ * @model
+ * @generated
+ */
+public interface JDTClass extends JDTType {
+} // JDTClass
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTCompilationUnit.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTCompilationUnit.java
new file mode 100644
index 00000000000..c9cace0f946
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTCompilationUnit.java
@@ -0,0 +1,106 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm;
+
+import org.eclipse.emf.common.util.EList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>JDT Compilation Unit</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTCompilationUnit#getPackageFragment <em>Package Fragment</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTCompilationUnit#getTypes <em>Types</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTCompilationUnit()
+ * @model
+ * @generated
+ */
+public interface JDTCompilationUnit extends JDTTypeRoot {
+
+ /**
+ * Returns the value of the '<em><b>Package Fragment</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragment#getCompilationUnits <em>Compilation Units</em>}'.
+ * <p>
+ * This feature redefines the following features:
+ * <ul>
+ * <li>'{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement#getParent() <em>Parent</em>}'</li>
+ * </ul>
+ * </p>
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Package Fragment</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Package Fragment</em>' container reference.
+ * @see #setPackageFragment(JDTPackageFragment)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTCompilationUnit_PackageFragment()
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragment#getCompilationUnits
+ * @model opposite="compilationUnits" transient="false" ordered="false"
+ * @generated
+ */
+ JDTPackageFragment getPackageFragment();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTCompilationUnit#getPackageFragment <em>Package Fragment</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Package Fragment</em>' container reference.
+ * @see #getPackageFragment()
+ * @generated
+ */
+ void setPackageFragment(JDTPackageFragment value);
+
+ /**
+ * Returns the value of the '<em><b>Types</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getCompilationUnit <em>Compilation Unit</em>}'.
+ * <p>
+ * This feature subsets the following features:
+ * <ul>
+ * <li>'{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParent#getChildren() <em>Children</em>}'</li>
+ * </ul>
+ * </p>
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Types</em>' reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Types</em>' containment reference list.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTCompilationUnit_Types()
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getCompilationUnit
+ * @model opposite="compilationUnit" containment="true" ordered="false"
+ * @generated
+ */
+ EList<JDTType> getTypes();
+} // JDTCompilationUnit
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTEnum.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTEnum.java
new file mode 100644
index 00000000000..2a762c988be
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTEnum.java
@@ -0,0 +1,37 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>JDT Enum</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTEnum()
+ * @model
+ * @generated
+ */
+public interface JDTEnum extends JDTType {
+} // JDTEnum
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTException.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTException.java
new file mode 100644
index 00000000000..bb72424f0f7
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTException.java
@@ -0,0 +1,38 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>JDT Exception</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTException()
+ * @model
+ * @generated
+ */
+public interface JDTException extends EObject {
+} // JDTException
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTField.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTField.java
new file mode 100644
index 00000000000..39c29010ee8
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTField.java
@@ -0,0 +1,322 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>JDT Field</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#isAbstract <em>Abstract</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#isFinal <em>Final</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#isStatic <em>Static</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#isMultiValued <em>Is Multi Valued</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#getGenerateGetter <em>Generate Getter</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#getGenerateSetter <em>Generate Setter</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#getOwner <em>Owner</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTField()
+ * @model
+ * @generated
+ */
+public interface JDTField extends JDTMember {
+
+ /**
+ * Returns the value of the '<em><b>Owner</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getFields <em>Fields</em>}'.
+ * <p>
+ * This feature redefines the following features:
+ * <ul>
+ * <li>'{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement#getParent() <em>Parent</em>}'</li>
+ * </ul>
+ * </p>
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Owner</em>' container reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Owner</em>' container reference.
+ * @see #setOwner(JDTType)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTField_Owner()
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getFields
+ * @model opposite="fields" required="true" transient="false" ordered="false"
+ * @generated
+ */
+ JDTType getOwner();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#getOwner <em>Owner</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Owner</em>' container reference.
+ * @see #getOwner()
+ * @generated
+ */
+ void setOwner(JDTType value);
+
+ /**
+ * Returns the value of the '<em><b>Abstract</b></em>' attribute.
+ * The default value is <code>"false"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Abstract</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Abstract</em>' attribute.
+ * @see #setAbstract(boolean)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTField_Abstract()
+ * @model default="false" unique="false" dataType="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.boolean" required="true" transient="true" volatile="true" derived="true" ordered="false"
+ * @generated
+ */
+ boolean isAbstract();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#isAbstract <em>Abstract</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Abstract</em>' attribute.
+ * @see #isAbstract()
+ * @generated
+ */
+ void setAbstract(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Final</b></em>' attribute.
+ * The default value is <code>"false"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Final</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Final</em>' attribute.
+ * @see #setFinal(boolean)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTField_Final()
+ * @model default="false" unique="false" dataType="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.boolean" required="true" transient="true" volatile="true" derived="true" ordered="false"
+ * @generated
+ */
+ boolean isFinal();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#isFinal <em>Final</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Final</em>' attribute.
+ * @see #isFinal()
+ * @generated
+ */
+ void setFinal(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Static</b></em>' attribute.
+ * The default value is <code>"false"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Static</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Static</em>' attribute.
+ * @see #setStatic(boolean)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTField_Static()
+ * @model default="false" unique="false" dataType="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.boolean" required="true" transient="true" volatile="true" derived="true" ordered="false"
+ * @generated
+ */
+ boolean isStatic();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#isStatic <em>Static</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Static</em>' attribute.
+ * @see #isStatic()
+ * @generated
+ */
+ void setStatic(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Is Multi Valued</b></em>' attribute.
+ * The default value is <code>"false"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Is Multi Valued</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Is Multi Valued</em>' attribute.
+ * @see #setIsMultiValued(boolean)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTField_IsMultiValued()
+ * @model default="false" unique="false" dataType="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.boolean" required="true" ordered="false"
+ * @generated
+ */
+ boolean isMultiValued();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#isMultiValued <em>Is Multi Valued</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Is Multi Valued</em>' attribute.
+ * @see #isMultiValued()
+ * @generated
+ */
+ void setIsMultiValued(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Type</em>' reference.
+ * @see #setType(JDTType)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTField_Type()
+ * @model ordered="false"
+ * @generated
+ */
+ JDTType getType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#getType <em>Type</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Type</em>' reference.
+ * @see #getType()
+ * @generated
+ */
+ void setType(JDTType value);
+
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Value</em>' attribute.
+ * @see #setValue(String)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTField_Value()
+ * @model dataType="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.String" required="true" ordered="false"
+ * @generated
+ */
+ String getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Value</em>' attribute.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(String value);
+
+ /**
+ * Returns the value of the '<em><b>Generate Getter</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.TrueFalseDefault}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Generate Getter</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Generate Getter</em>' attribute.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.TrueFalseDefault
+ * @see #setGenerateGetter(TrueFalseDefault)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTField_GenerateGetter()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ TrueFalseDefault getGenerateGetter();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#getGenerateGetter <em>Generate Getter</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Generate Getter</em>' attribute.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.TrueFalseDefault
+ * @see #getGenerateGetter()
+ * @generated
+ */
+ void setGenerateGetter(TrueFalseDefault value);
+
+ /**
+ * Returns the value of the '<em><b>Generate Setter</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.TrueFalseDefault}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Generate Setter</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Generate Setter</em>' attribute.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.TrueFalseDefault
+ * @see #setGenerateSetter(TrueFalseDefault)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTField_GenerateSetter()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ TrueFalseDefault getGenerateSetter();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#getGenerateSetter <em>Generate Setter</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Generate Setter</em>' attribute.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.TrueFalseDefault
+ * @see #getGenerateSetter()
+ * @generated
+ */
+ void setGenerateSetter(TrueFalseDefault value);
+
+} // JDTField
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTImportContainer.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTImportContainer.java
new file mode 100644
index 00000000000..44e4feeb27b
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTImportContainer.java
@@ -0,0 +1,37 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>JDT Import Container</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTImportContainer()
+ * @model
+ * @generated
+ */
+public interface JDTImportContainer extends JDTParentJavaElement {
+} // JDTImportContainer
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTImportDeclaration.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTImportDeclaration.java
new file mode 100644
index 00000000000..31f45b7481a
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTImportDeclaration.java
@@ -0,0 +1,37 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>JDT Import Declaration</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTImportDeclaration()
+ * @model
+ * @generated
+ */
+public interface JDTImportDeclaration extends JDTJavaElement {
+} // JDTImportDeclaration
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTInterface.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTInterface.java
new file mode 100644
index 00000000000..140bba30001
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTInterface.java
@@ -0,0 +1,37 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>JDT Interface</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTInterface()
+ * @model
+ * @generated
+ */
+public interface JDTInterface extends JDTType {
+} // JDTInterface
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTJavaElement.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTJavaElement.java
new file mode 100644
index 00000000000..d928b385700
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTJavaElement.java
@@ -0,0 +1,207 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitor;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitorException;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>JDT Java Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement#getElementName <em>Element Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement#getElementType <em>Element Type</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement#getComment <em>Comment</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement#isGenerated <em>Generated</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement#getParent <em>Parent</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTJavaElement()
+ * @model abstract="true"
+ * @generated
+ */
+public interface JDTJavaElement extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Parent</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParent#getChildren <em>Children</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Parent</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Parent</em>' reference.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTJavaElement_Parent()
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParent#getChildren
+ * @model opposite="children" transient="true" changeable="false" ordered="false"
+ * @generated
+ */
+ JDTParent getParent();
+
+ /**
+ * Returns the value of the '<em><b>Element Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Element Name</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Element Name</em>' attribute.
+ * @see #setElementName(String)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTJavaElement_ElementName()
+ * @model unique="false" dataType="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.String" required="true" ordered="false"
+ * @generated
+ */
+ String getElementName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement#getElementName <em>Element Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Element Name</em>' attribute.
+ * @see #getElementName()
+ * @generated
+ */
+ void setElementName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Element Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Element Type</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Element Type</em>' attribute.
+ * @see #setElementType(int)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTJavaElement_ElementType()
+ * @model unique="false" dataType="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.int" required="true" ordered="false"
+ * @generated
+ */
+ int getElementType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement#getElementType <em>Element Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Element Type</em>' attribute.
+ * @see #getElementType()
+ * @generated
+ */
+ void setElementType(int value);
+
+ /**
+ * Returns the value of the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Comment</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Comment</em>' attribute.
+ * @see #setComment(String)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTJavaElement_Comment()
+ * @model unique="false" dataType="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.String" required="true" ordered="false"
+ * @generated
+ */
+ String getComment();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement#getComment <em>Comment</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Comment</em>' attribute.
+ * @see #getComment()
+ * @generated
+ */
+ void setComment(String value);
+
+ /**
+ * Returns the value of the '<em><b>Generated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Generated</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Generated</em>' attribute.
+ * @see #setGenerated(boolean)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTJavaElement_Generated()
+ * @model dataType="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.boolean" required="true" ordered="false"
+ * @generated
+ */
+ boolean isGenerated();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement#isGenerated <em>Generated</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Generated</em>' attribute.
+ * @see #isGenerated()
+ * @generated
+ */
+ void setGenerated(boolean value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @model kind="operation" dataType="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.String" required="true" ordered="false"
+ * @generated
+ */
+ String getQualifiedName();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @model exceptions="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTVisitorException" visitorDataType="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.Visitor" visitorRequired="true" visitorOrdered="false"
+ * @generated
+ */
+ void accept(JDTVisitor visitor) throws JDTVisitorException;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @model kind="operation" dataType="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.String" required="true" ordered="false"
+ * @generated
+ */
+ String getJDTSignature();
+
+} // JDTJavaElement
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTJavaModel.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTJavaModel.java
new file mode 100644
index 00000000000..825af4b4dd9
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTJavaModel.java
@@ -0,0 +1,63 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm;
+
+import org.eclipse.emf.common.util.EList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>JDT Java Model</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaModel#getJavaProject <em>Java Project</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTJavaModel()
+ * @model
+ * @generated
+ */
+public interface JDTJavaModel extends JDTParentJavaElement {
+
+ /**
+ * Returns the value of the '<em><b>Java Project</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaProject}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaProject#getJavaModel <em>Java Model</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Java Project</em>' containment reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Java Project</em>' containment reference list.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTJavaModel_JavaProject()
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaProject#getJavaModel
+ * @model opposite="javaModel" containment="true" ordered="false"
+ * @generated
+ */
+ EList<JDTJavaProject> getJavaProject();
+} // JDTJavaModel
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTJavaProject.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTJavaProject.java
new file mode 100644
index 00000000000..02d6e63656a
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTJavaProject.java
@@ -0,0 +1,100 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>JDT Java Project</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaProject#getJavaModel <em>Java Model</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaProject#getPackageFragmentRoots <em>Package Fragment Roots</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTJavaProject()
+ * @model
+ * @generated
+ */
+public interface JDTJavaProject extends JDTParentJavaElement {
+
+ /**
+ * Returns the value of the '<em><b>Java Model</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaModel#getJavaProject <em>Java Project</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Java Model</em>' container reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Java Model</em>' container reference.
+ * @see #setJavaModel(JDTJavaModel)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTJavaProject_JavaModel()
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaModel#getJavaProject
+ * @model opposite="javaProject" transient="false" ordered="false"
+ * @generated
+ */
+ JDTJavaModel getJavaModel();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaProject#getJavaModel <em>Java Model</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Java Model</em>' container reference.
+ * @see #getJavaModel()
+ * @generated
+ */
+ void setJavaModel(JDTJavaModel value);
+
+ /**
+ * Returns the value of the '<em><b>Package Fragment Roots</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragmentRoot}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragmentRoot#getJavaProject <em>Java Project</em>}'.
+ * <p>
+ * This feature subsets the following features:
+ * <ul>
+ * <li>'{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParent#getChildren() <em>Children</em>}'</li>
+ * </ul>
+ * </p>
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Package Fragment Roots</em>' containment reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Package Fragment Roots</em>' containment reference list.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTJavaProject_PackageFragmentRoots()
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragmentRoot#getJavaProject
+ * @model opposite="javaProject" containment="true" ordered="false"
+ * @generated
+ */
+ EList<JDTPackageFragmentRoot> getPackageFragmentRoots();
+
+} // JDTJavaProject
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTMember.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTMember.java
new file mode 100644
index 00000000000..eacd3ae38fd
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTMember.java
@@ -0,0 +1,130 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm;
+
+import org.eclipse.emf.common.util.EList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>JDT Member</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMember#getTypeParameters <em>Type Parameters</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMember#getVisibility <em>Visibility</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMember#getExplicitRequiredImports <em>Explicit Required Imports</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMember#getExplicitPlainTextRequiredImports <em>Explicit Plain Text Required Imports</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTMember()
+ * @model abstract="true"
+ * @generated
+ */
+public interface JDTMember extends JDTParentJavaElement {
+
+ /**
+ * Returns the value of the '<em><b>Type Parameters</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTTypeParameter}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTTypeParameter#getDeclaringMember <em>Declaring Member</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type Parameters</em>' containment reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Type Parameters</em>' containment reference list.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTMember_TypeParameters()
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTTypeParameter#getDeclaringMember
+ * @model opposite="declaringMember" containment="true" ordered="false"
+ * @generated
+ */
+ EList<JDTTypeParameter> getTypeParameters();
+
+ /**
+ * Returns the value of the '<em><b>Visibility</b></em>' attribute.
+ * The default value is <code>"public"</code>.
+ * The literals are from the enumeration {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.VisibilityKind}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Visibility</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Visibility</em>' attribute.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.VisibilityKind
+ * @see #setVisibility(VisibilityKind)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTMember_Visibility()
+ * @model default="public" unique="false" required="true" transient="true" volatile="true" derived="true" ordered="false"
+ * @generated
+ */
+ VisibilityKind getVisibility();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMember#getVisibility <em>Visibility</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Visibility</em>' attribute.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.VisibilityKind
+ * @see #getVisibility()
+ * @generated
+ */
+ void setVisibility(VisibilityKind value);
+
+ /**
+ * Returns the value of the '<em><b>Explicit Required Imports</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Explicit Required Imports</em>' reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Explicit Required Imports</em>' reference list.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTMember_ExplicitRequiredImports()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<JDTType> getExplicitRequiredImports();
+
+ /**
+ * Returns the value of the '<em><b>Explicit Plain Text Required Imports</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Explicit Plain Text Required Imports</em>' attribute list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Explicit Plain Text Required Imports</em>' attribute list.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTMember_ExplicitPlainTextRequiredImports()
+ * @model dataType="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.String" ordered="false"
+ * @generated
+ */
+ EList<String> getExplicitPlainTextRequiredImports();
+} // JDTMember
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTMethod.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTMethod.java
new file mode 100644
index 00000000000..3b9910e6807
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTMethod.java
@@ -0,0 +1,316 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm;
+
+import org.eclipse.emf.common.util.EList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>JDT Method</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#getOwner <em>Owner</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#getReturnType <em>Return Type</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#getParameters <em>Parameters</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#isAbstract <em>Abstract</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#isFinal <em>Final</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#isStatic <em>Static</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#getExceptions <em>Exceptions</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#isSynchronized <em>Synchronized</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#isConstructor <em>Constructor</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#getBodies <em>Bodies</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTMethod()
+ * @model
+ * @generated
+ */
+public interface JDTMethod extends JDTMember {
+
+ /**
+ * Returns the value of the '<em><b>Return Type</b></em>' containment reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter#getReturnOwner <em>Return Owner</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Return Type</em>' containment reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Return Type</em>' containment reference.
+ * @see #setReturnType(JDTParameter)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTMethod_ReturnType()
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter#getReturnOwner
+ * @model opposite="returnOwner" containment="true" ordered="false"
+ * @generated
+ */
+ JDTParameter getReturnType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#getReturnType <em>Return Type</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Return Type</em>' containment reference.
+ * @see #getReturnType()
+ * @generated
+ */
+ void setReturnType(JDTParameter value);
+
+ /**
+ * Returns the value of the '<em><b>Parameters</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter#getParameterOwner <em>Parameter Owner</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Parameters</em>' containment reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Parameters</em>' containment reference list.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTMethod_Parameters()
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter#getParameterOwner
+ * @model opposite="parameterOwner" containment="true" ordered="false"
+ * @generated
+ */
+ EList<JDTParameter> getParameters();
+
+ /**
+ * Returns the value of the '<em><b>Exceptions</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Exceptions</em>' reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Exceptions</em>' reference list.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTMethod_Exceptions()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<JDTType> getExceptions();
+
+ /**
+ * Returns the value of the '<em><b>Synchronized</b></em>' attribute.
+ * The default value is <code>"false"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Synchronized</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Synchronized</em>' attribute.
+ * @see #setSynchronized(boolean)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTMethod_Synchronized()
+ * @model default="false" unique="false" dataType="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.boolean" required="true" transient="true" volatile="true" derived="true" ordered="false"
+ * @generated
+ */
+ boolean isSynchronized();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#isSynchronized <em>Synchronized</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Synchronized</em>' attribute.
+ * @see #isSynchronized()
+ * @generated
+ */
+ void setSynchronized(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Constructor</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Constructor</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Constructor</em>' attribute.
+ * @see #setConstructor(boolean)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTMethod_Constructor()
+ * @model dataType="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.boolean" required="true" ordered="false"
+ * @generated
+ */
+ boolean isConstructor();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#isConstructor <em>Constructor</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Constructor</em>' attribute.
+ * @see #isConstructor()
+ * @generated
+ */
+ void setConstructor(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Bodies</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethodBody}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethodBody#getOwner <em>Owner</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Bodies</em>' containment reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Bodies</em>' containment reference list.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTMethod_Bodies()
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethodBody#getOwner
+ * @model opposite="owner" containment="true" ordered="false"
+ * @generated
+ */
+ EList<JDTMethodBody> getBodies();
+
+ /**
+ * Returns the value of the '<em><b>Abstract</b></em>' attribute.
+ * The default value is <code>"false"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Abstract</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Abstract</em>' attribute.
+ * @see #setAbstract(boolean)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTMethod_Abstract()
+ * @model default="false" unique="false" dataType="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.boolean" required="true" transient="true" volatile="true" derived="true" ordered="false"
+ * @generated
+ */
+ boolean isAbstract();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#isAbstract <em>Abstract</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Abstract</em>' attribute.
+ * @see #isAbstract()
+ * @generated
+ */
+ void setAbstract(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Final</b></em>' attribute.
+ * The default value is <code>"false"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Final</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Final</em>' attribute.
+ * @see #setFinal(boolean)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTMethod_Final()
+ * @model default="false" unique="false" dataType="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.boolean" required="true" transient="true" volatile="true" derived="true" ordered="false"
+ * @generated
+ */
+ boolean isFinal();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#isFinal <em>Final</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Final</em>' attribute.
+ * @see #isFinal()
+ * @generated
+ */
+ void setFinal(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Static</b></em>' attribute.
+ * The default value is <code>"false"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Static</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Static</em>' attribute.
+ * @see #setStatic(boolean)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTMethod_Static()
+ * @model default="false" unique="false" dataType="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.boolean" required="true" transient="true" volatile="true" derived="true" ordered="false"
+ * @generated
+ */
+ boolean isStatic();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#isStatic <em>Static</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Static</em>' attribute.
+ * @see #isStatic()
+ * @generated
+ */
+ void setStatic(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Owner</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getMethods <em>Methods</em>}'.
+ * <p>
+ * This feature redefines the following features:
+ * <ul>
+ * <li>'{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement#getParent() <em>Parent</em>}'</li>
+ * </ul>
+ * </p>
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Owner</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Owner</em>' container reference.
+ * @see #setOwner(JDTType)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTMethod_Owner()
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getMethods
+ * @model opposite="methods" required="true" transient="false" ordered="false"
+ * @generated
+ */
+ JDTType getOwner();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#getOwner <em>Owner</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Owner</em>' container reference.
+ * @see #getOwner()
+ * @generated
+ */
+ void setOwner(JDTType value);
+} // JDTMethod
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTMethodBody.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTMethodBody.java
new file mode 100644
index 00000000000..970acbffbcd
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTMethodBody.java
@@ -0,0 +1,71 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>JDT Method Body</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Can have different type of body: opaque, expr (not yet implemented, ...)
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethodBody#getOwner <em>Owner</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTMethodBody()
+ * @model abstract="true"
+ * @generated
+ */
+public interface JDTMethodBody extends EObject {
+ /**
+ * Returns the value of the '<em><b>Owner</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#getBodies <em>Bodies</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Owner</em>' container reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Owner</em>' container reference.
+ * @see #setOwner(JDTMethod)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTMethodBody_Owner()
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#getBodies
+ * @model opposite="bodies" required="true" transient="false" ordered="false"
+ * @generated
+ */
+ JDTMethod getOwner();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethodBody#getOwner <em>Owner</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Owner</em>' container reference.
+ * @see #getOwner()
+ * @generated
+ */
+ void setOwner(JDTMethod value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @model dataType="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.String" required="true" ordered="false"
+ * @generated
+ */
+ String asText();
+
+} // JDTMethodBody
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTOpaqueBody.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTOpaqueBody.java
new file mode 100644
index 00000000000..9e6d2280f01
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTOpaqueBody.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>JDT Opaque Body</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTOpaqueBody#get_body <em>body</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTOpaqueBody()
+ * @model
+ * @generated
+ */
+public interface JDTOpaqueBody extends JDTMethodBody {
+ /**
+ * Returns the value of the '<em><b>body</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>body</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>body</em>' attribute.
+ * @see #set_body(String)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTOpaqueBody__body()
+ * @model dataType="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.String" required="true" ordered="false"
+ * @generated
+ */
+ String get_body();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTOpaqueBody#get_body <em>body</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>body</em>' attribute.
+ * @see #get_body()
+ * @generated
+ */
+ void set_body(String value);
+
+} // JDTOpaqueBody
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTPackageFragment.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTPackageFragment.java
new file mode 100644
index 00000000000..fbf0e3ab93d
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTPackageFragment.java
@@ -0,0 +1,106 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm;
+
+import org.eclipse.emf.common.util.EList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>JDT Package Fragment</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragment#getPackageFragmentRoot <em>Package Fragment Root</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragment#getCompilationUnits <em>Compilation Units</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTPackageFragment()
+ * @model
+ * @generated
+ */
+public interface JDTPackageFragment extends JDTParentJavaElement {
+
+ /**
+ * Returns the value of the '<em><b>Package Fragment Root</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragmentRoot#getPackageFragments <em>Package Fragments</em>}'.
+ * <p>
+ * This feature redefines the following features:
+ * <ul>
+ * <li>'{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement#getParent() <em>Parent</em>}'</li>
+ * </ul>
+ * </p>
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Package Fragment Root</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Package Fragment Root</em>' container reference.
+ * @see #setPackageFragmentRoot(JDTPackageFragmentRoot)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTPackageFragment_PackageFragmentRoot()
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragmentRoot#getPackageFragments
+ * @model opposite="packageFragments" transient="false" ordered="false"
+ * @generated
+ */
+ JDTPackageFragmentRoot getPackageFragmentRoot();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragment#getPackageFragmentRoot <em>Package Fragment Root</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Package Fragment Root</em>' container reference.
+ * @see #getPackageFragmentRoot()
+ * @generated
+ */
+ void setPackageFragmentRoot(JDTPackageFragmentRoot value);
+
+ /**
+ * Returns the value of the '<em><b>Compilation Units</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTCompilationUnit}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTCompilationUnit#getPackageFragment <em>Package Fragment</em>}'.
+ * <p>
+ * This feature subsets the following features:
+ * <ul>
+ * <li>'{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParent#getChildren() <em>Children</em>}'</li>
+ * </ul>
+ * </p>
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Compilation Units</em>' reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Compilation Units</em>' containment reference list.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTPackageFragment_CompilationUnits()
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTCompilationUnit#getPackageFragment
+ * @model opposite="packageFragment" containment="true" ordered="false"
+ * @generated
+ */
+ EList<JDTCompilationUnit> getCompilationUnits();
+} // JDTPackageFragment
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTPackageFragmentRoot.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTPackageFragmentRoot.java
new file mode 100644
index 00000000000..2b34e6990de
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTPackageFragmentRoot.java
@@ -0,0 +1,106 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm;
+
+import org.eclipse.emf.common.util.EList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>JDT Package Fragment Root</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragmentRoot#getJavaProject <em>Java Project</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragmentRoot#getPackageFragments <em>Package Fragments</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTPackageFragmentRoot()
+ * @model
+ * @generated
+ */
+public interface JDTPackageFragmentRoot extends JDTParentJavaElement {
+
+ /**
+ * Returns the value of the '<em><b>Java Project</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaProject#getPackageFragmentRoots <em>Package Fragment Roots</em>}'.
+ * <p>
+ * This feature redefines the following features:
+ * <ul>
+ * <li>'{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement#getParent() <em>Parent</em>}'</li>
+ * </ul>
+ * </p>
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Java Project</em>' container reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Java Project</em>' container reference.
+ * @see #setJavaProject(JDTJavaProject)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTPackageFragmentRoot_JavaProject()
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaProject#getPackageFragmentRoots
+ * @model opposite="packageFragmentRoots" transient="false" ordered="false"
+ * @generated
+ */
+ JDTJavaProject getJavaProject();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragmentRoot#getJavaProject <em>Java Project</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Java Project</em>' container reference.
+ * @see #getJavaProject()
+ * @generated
+ */
+ void setJavaProject(JDTJavaProject value);
+
+ /**
+ * Returns the value of the '<em><b>Package Fragments</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragment}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragment#getPackageFragmentRoot <em>Package Fragment Root</em>}'.
+ * <p>
+ * This feature subsets the following features:
+ * <ul>
+ * <li>'{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParent#getChildren() <em>Children</em>}'</li>
+ * </ul>
+ * </p>
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Package Fragments</em>' reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Package Fragments</em>' containment reference list.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTPackageFragmentRoot_PackageFragments()
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragment#getPackageFragmentRoot
+ * @model opposite="packageFragmentRoot" containment="true" ordered="false"
+ * @generated
+ */
+ EList<JDTPackageFragment> getPackageFragments();
+} // JDTPackageFragmentRoot
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTParameter.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTParameter.java
new file mode 100644
index 00000000000..7e23a137536
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTParameter.java
@@ -0,0 +1,193 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>JDT Parameter</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter#getParameterOwner <em>Parameter Owner</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter#isFinal <em>Final</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter#isMultiValued <em>Is Multi Valued</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter#getReturnOwner <em>Return Owner</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTParameter()
+ * @model
+ * @generated
+ */
+public interface JDTParameter extends JDTMember {
+
+ /**
+ * Returns the value of the '<em><b>Parameter Owner</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#getParameters <em>Parameters</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Parameter Owner</em>' container reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Parameter Owner</em>' container reference.
+ * @see #setParameterOwner(JDTMethod)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTParameter_ParameterOwner()
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#getParameters
+ * @model opposite="parameters" transient="false" ordered="false"
+ * @generated
+ */
+ JDTMethod getParameterOwner();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter#getParameterOwner <em>Parameter Owner</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Parameter Owner</em>' container reference.
+ * @see #getParameterOwner()
+ * @generated
+ */
+ void setParameterOwner(JDTMethod value);
+
+ /**
+ * Returns the value of the '<em><b>Final</b></em>' attribute.
+ * The default value is <code>"false"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Final</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Final</em>' attribute.
+ * @see #setFinal(boolean)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTParameter_Final()
+ * @model default="false" unique="false" dataType="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.boolean" required="true" transient="true" volatile="true" derived="true" ordered="false"
+ * @generated
+ */
+ boolean isFinal();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter#isFinal <em>Final</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Final</em>' attribute.
+ * @see #isFinal()
+ * @generated
+ */
+ void setFinal(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Is Multi Valued</b></em>' attribute.
+ * The default value is <code>"false"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Is Multi Valued</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Is Multi Valued</em>' attribute.
+ * @see #setIsMultiValued(boolean)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTParameter_IsMultiValued()
+ * @model default="false" unique="false" dataType="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.boolean" required="true" ordered="false"
+ * @generated
+ */
+ boolean isMultiValued();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter#isMultiValued <em>Is Multi Valued</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Is Multi Valued</em>' attribute.
+ * @see #isMultiValued()
+ * @generated
+ */
+ void setIsMultiValued(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Type</em>' reference.
+ * @see #setType(JDTType)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTParameter_Type()
+ * @model ordered="false"
+ * @generated
+ */
+ JDTType getType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter#getType <em>Type</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Type</em>' reference.
+ * @see #getType()
+ * @generated
+ */
+ void setType(JDTType value);
+
+ /**
+ * Returns the value of the '<em><b>Return Owner</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#getReturnType <em>Return Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Return Owner</em>' container reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Return Owner</em>' container reference.
+ * @see #setReturnOwner(JDTMethod)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTParameter_ReturnOwner()
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#getReturnType
+ * @model opposite="returnType" transient="false" ordered="false"
+ * @generated
+ */
+ JDTMethod getReturnOwner();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter#getReturnOwner <em>Return Owner</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Return Owner</em>' container reference.
+ * @see #getReturnOwner()
+ * @generated
+ */
+ void setReturnOwner(JDTMethod value);
+} // JDTParameter
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTParent.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTParent.java
new file mode 100644
index 00000000000..273a3cad656
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTParent.java
@@ -0,0 +1,111 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>JDT Parent</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParent#getChildren <em>Children</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParent#getFlags <em>Flags</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTParent()
+ * @model abstract="true"
+ * @generated
+ */
+public interface JDTParent extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Flags</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Flags</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Flags</em>' attribute.
+ * @see #setFlags(int)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTParent_Flags()
+ * @model unique="false" dataType="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.int" required="true" ordered="false"
+ * @generated
+ */
+ int getFlags();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParent#getFlags <em>Flags</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Flags</em>' attribute.
+ * @see #getFlags()
+ * @generated
+ */
+ void setFlags(int value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @model dataType="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.boolean" required="true" ordered="false" flagDataType="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.int" flagRequired="true" flagOrdered="false"
+ * @generated
+ */
+ boolean isFlagSet(int flag);
+
+ /**
+ * Returns the value of the '<em><b>Children</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement#getParent <em>Parent</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Children</em>' reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Children</em>' reference list.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTParent_Children()
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement#getParent
+ * @model opposite="parent" transient="true" changeable="false" volatile="true" ordered="false"
+ * @generated
+ */
+ EList<JDTJavaElement> getChildren();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @model flagDataType="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.int" flagRequired="true" flagOrdered="false" valueDataType="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.boolean" valueRequired="true" valueOrdered="false"
+ * @generated
+ */
+ void setFlag(int flag, boolean value);
+
+} // JDTParent
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTParentJavaElement.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTParentJavaElement.java
new file mode 100644
index 00000000000..c64fd494880
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTParentJavaElement.java
@@ -0,0 +1,37 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>JDT Parent Java Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTParentJavaElement()
+ * @model abstract="true"
+ * @generated
+ */
+public interface JDTParentJavaElement extends JDTJavaElement, JDTParent {
+} // JDTParentJavaElement
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTType.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTType.java
new file mode 100644
index 00000000000..8b83fef2790
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTType.java
@@ -0,0 +1,452 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>JDT Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getMethods <em>Methods</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getFields <em>Fields</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getCompilationUnit <em>Compilation Unit</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#isClass <em>Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#isInterface <em>Interface</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#isEnum <em>Enum</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#isAbstract <em>Abstract</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#isFinal <em>Final</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#isStatic <em>Static</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getTypes <em>Types</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getOwner <em>Owner</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getSuperInterfaces <em>Super Interfaces</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getSuperClass <em>Super Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getSuperInterfaceNames <em>Super Interface Names</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getSuperClassName <em>Super Class Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTType()
+ * @model abstract="true"
+ * @generated
+ */
+public interface JDTType extends JDTMember {
+
+ /**
+ * Returns the value of the '<em><b>Methods</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#getOwner <em>Owner</em>}'.
+ * <p>
+ * This feature subsets the following features:
+ * <ul>
+ * <li>'{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParent#getChildren() <em>Children</em>}'</li>
+ * </ul>
+ * </p>
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Methods</em>' containment reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Methods</em>' containment reference list.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTType_Methods()
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#getOwner
+ * @model opposite="owner" containment="true" ordered="false"
+ * @generated
+ */
+ EList<JDTMethod> getMethods();
+
+ /**
+ * Returns the value of the '<em><b>Compilation Unit</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTCompilationUnit#getTypes <em>Types</em>}'.
+ * <p>
+ * This feature redefines the following features:
+ * <ul>
+ * <li>'{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement#getParent() <em>Parent</em>}'</li>
+ * </ul>
+ * </p>
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Compilation Unit</em>' container reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Compilation Unit</em>' container reference.
+ * @see #setCompilationUnit(JDTCompilationUnit)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTType_CompilationUnit()
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTCompilationUnit#getTypes
+ * @model opposite="types" transient="false" ordered="false"
+ * @generated
+ */
+ JDTCompilationUnit getCompilationUnit();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getCompilationUnit <em>Compilation Unit</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Compilation Unit</em>' container reference.
+ * @see #getCompilationUnit()
+ * @generated
+ */
+ void setCompilationUnit(JDTCompilationUnit value);
+
+ /**
+ * Returns the value of the '<em><b>Class</b></em>' attribute.
+ * The default value is <code>"false"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Class</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Class</em>' attribute.
+ * @see #setClass_(boolean)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTType_Class()
+ * @model default="false" unique="false" dataType="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.boolean" required="true" ordered="false"
+ * @generated
+ */
+ boolean isClass();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#isClass <em>Class</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Class</em>' attribute.
+ * @see #isClass()
+ * @generated
+ */
+ void setClass_(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Interface</b></em>' attribute.
+ * The default value is <code>"false"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Interface</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Interface</em>' attribute.
+ * @see #setInterface(boolean)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTType_Interface()
+ * @model default="false" unique="false" dataType="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.boolean" required="true" ordered="false"
+ * @generated
+ */
+ boolean isInterface();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#isInterface <em>Interface</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Interface</em>' attribute.
+ * @see #isInterface()
+ * @generated
+ */
+ void setInterface(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Enum</b></em>' attribute.
+ * The default value is <code>"false"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Enum</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Enum</em>' attribute.
+ * @see #setEnum(boolean)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTType_Enum()
+ * @model default="false" unique="false" dataType="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.boolean" required="true" ordered="false"
+ * @generated
+ */
+ boolean isEnum();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#isEnum <em>Enum</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Enum</em>' attribute.
+ * @see #isEnum()
+ * @generated
+ */
+ void setEnum(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Abstract</b></em>' attribute.
+ * The default value is <code>"false"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Abstract</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Abstract</em>' attribute.
+ * @see #setAbstract(boolean)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTType_Abstract()
+ * @model default="false" unique="false" dataType="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.boolean" required="true" transient="true" volatile="true" derived="true" ordered="false"
+ * @generated
+ */
+ boolean isAbstract();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#isAbstract <em>Abstract</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Abstract</em>' attribute.
+ * @see #isAbstract()
+ * @generated
+ */
+ void setAbstract(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Final</b></em>' attribute.
+ * The default value is <code>"false"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Final</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Final</em>' attribute.
+ * @see #setFinal(boolean)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTType_Final()
+ * @model default="false" unique="false" dataType="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.boolean" required="true" transient="true" volatile="true" derived="true" ordered="false"
+ * @generated
+ */
+ boolean isFinal();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#isFinal <em>Final</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Final</em>' attribute.
+ * @see #isFinal()
+ * @generated
+ */
+ void setFinal(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Static</b></em>' attribute.
+ * The default value is <code>"false"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Static</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Static</em>' attribute.
+ * @see #setStatic(boolean)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTType_Static()
+ * @model default="false" unique="false" dataType="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.boolean" required="true" transient="true" volatile="true" derived="true" ordered="false"
+ * @generated
+ */
+ boolean isStatic();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#isStatic <em>Static</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Static</em>' attribute.
+ * @see #isStatic()
+ * @generated
+ */
+ void setStatic(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Types</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getOwner <em>Owner</em>}'.
+ * <p>
+ * This feature subsets the following features:
+ * <ul>
+ * <li>'{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParent#getChildren() <em>Children</em>}'</li>
+ * </ul>
+ * </p>
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Types</em>' containment reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Types</em>' containment reference list.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTType_Types()
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getOwner
+ * @model opposite="owner" containment="true" ordered="false"
+ * @generated
+ */
+ EList<JDTType> getTypes();
+
+ /**
+ * Returns the value of the '<em><b>Owner</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getTypes <em>Types</em>}'.
+ * <p>
+ * This feature redefines the following features:
+ * <ul>
+ * <li>'{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement#getParent() <em>Parent</em>}'</li>
+ * </ul>
+ * </p>
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Owner</em>' container reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Owner</em>' container reference.
+ * @see #setOwner(JDTType)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTType_Owner()
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getTypes
+ * @model opposite="types" transient="false" ordered="false"
+ * @generated
+ */
+ JDTType getOwner();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getOwner <em>Owner</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Owner</em>' container reference.
+ * @see #getOwner()
+ * @generated
+ */
+ void setOwner(JDTType value);
+
+ /**
+ * Returns the value of the '<em><b>Super Interfaces</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Super Interfaces</em>' reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Super Interfaces</em>' reference list.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTType_SuperInterfaces()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<JDTType> getSuperInterfaces();
+
+ /**
+ * Returns the value of the '<em><b>Super Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Super Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Super Class</em>' reference.
+ * @see #setSuperClass(JDTType)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTType_SuperClass()
+ * @model ordered="false"
+ * @generated
+ */
+ JDTType getSuperClass();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getSuperClass <em>Super Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Super Class</em>' reference.
+ * @see #getSuperClass()
+ * @generated
+ */
+ void setSuperClass(JDTType value);
+
+ /**
+ * Returns the value of the '<em><b>Super Interface Names</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Super Interface Names</em>' attribute list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Super Interface Names</em>' attribute list.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTType_SuperInterfaceNames()
+ * @model unique="false" dataType="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.String" transient="true" changeable="false" volatile="true" derived="true" ordered="false"
+ * @generated
+ */
+ EList<String> getSuperInterfaceNames();
+
+ /**
+ * Returns the value of the '<em><b>Super Class Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Super Class Name</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Super Class Name</em>' attribute.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTType_SuperClassName()
+ * @model unique="false" dataType="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.String" required="true" transient="true" changeable="false" volatile="true" derived="true" ordered="false"
+ * @generated
+ */
+ String getSuperClassName();
+
+ /**
+ * Returns the value of the '<em><b>Fields</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#getOwner <em>Owner</em>}'.
+ * <p>
+ * This feature subsets the following features:
+ * <ul>
+ * <li>'{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParent#getChildren() <em>Children</em>}'</li>
+ * </ul>
+ * </p>
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Fields</em>' containment reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Fields</em>' containment reference list.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTType_Fields()
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#getOwner
+ * @model opposite="owner" containment="true" ordered="false"
+ * @generated
+ */
+ EList<JDTField> getFields();
+
+} // JDTType
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTTypeParameter.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTTypeParameter.java
new file mode 100644
index 00000000000..0b417a44a06
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTTypeParameter.java
@@ -0,0 +1,74 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>JDT Type Parameter</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTTypeParameter#getDeclaringMember <em>Declaring Member</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTTypeParameter()
+ * @model
+ * @generated
+ */
+public interface JDTTypeParameter extends JDTJavaElement {
+
+ /**
+ * Returns the value of the '<em><b>Declaring Member</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMember#getTypeParameters <em>Type Parameters</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Declaring Member</em>' container reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Declaring Member</em>' container reference.
+ * @see #setDeclaringMember(JDTMember)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTTypeParameter_DeclaringMember()
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMember#getTypeParameters
+ * @model opposite="typeParameters" transient="false" ordered="false"
+ * @generated
+ */
+ JDTMember getDeclaringMember();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTTypeParameter#getDeclaringMember <em>Declaring Member</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Declaring Member</em>' container reference.
+ * @see #getDeclaringMember()
+ * @generated
+ */
+ void setDeclaringMember(JDTMember value);
+
+} // JDTTypeParameter
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTTypeRoot.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTTypeRoot.java
new file mode 100644
index 00000000000..daffc8a54d7
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTTypeRoot.java
@@ -0,0 +1,37 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>JDT Type Root</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getJDTTypeRoot()
+ * @model abstract="true"
+ * @generated
+ */
+public interface JDTTypeRoot extends JDTParentJavaElement {
+} // JDTTypeRoot
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JdtmmFactory.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JdtmmFactory.java
new file mode 100644
index 00000000000..e257924008d
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JdtmmFactory.java
@@ -0,0 +1,217 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage
+ * @generated
+ */
+public interface JdtmmFactory extends EFactory {
+
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ JdtmmFactory eINSTANCE = org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>JDT Type Parameter</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>JDT Type Parameter</em>'.
+ * @generated
+ */
+ JDTTypeParameter createJDTTypeParameter();
+
+ /**
+ * Returns a new object of class '<em>JDT Field</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>JDT Field</em>'.
+ * @generated
+ */
+ JDTField createJDTField();
+
+ /**
+ * Returns a new object of class '<em>JDT Method</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>JDT Method</em>'.
+ * @generated
+ */
+ JDTMethod createJDTMethod();
+
+ /**
+ * Returns a new object of class '<em>JDT Class</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>JDT Class</em>'.
+ * @generated
+ */
+ JDTClass createJDTClass();
+
+ /**
+ * Returns a new object of class '<em>JDT Interface</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>JDT Interface</em>'.
+ * @generated
+ */
+ JDTInterface createJDTInterface();
+
+ /**
+ * Returns a new object of class '<em>JDT Enum</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>JDT Enum</em>'.
+ * @generated
+ */
+ JDTEnum createJDTEnum();
+
+ /**
+ * Returns a new object of class '<em>JDT Compilation Unit</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>JDT Compilation Unit</em>'.
+ * @generated
+ */
+ JDTCompilationUnit createJDTCompilationUnit();
+
+ /**
+ * Returns a new object of class '<em>JDT Import Declaration</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>JDT Import Declaration</em>'.
+ * @generated
+ */
+ JDTImportDeclaration createJDTImportDeclaration();
+
+ /**
+ * Returns a new object of class '<em>JDT Import Container</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>JDT Import Container</em>'.
+ * @generated
+ */
+ JDTImportContainer createJDTImportContainer();
+
+ /**
+ * Returns a new object of class '<em>JDT Parameter</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>JDT Parameter</em>'.
+ * @generated
+ */
+ JDTParameter createJDTParameter();
+
+ /**
+ * Returns a new object of class '<em>JDT Exception</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>JDT Exception</em>'.
+ * @generated
+ */
+ JDTException createJDTException();
+
+ /**
+ * Returns a new object of class '<em>JDT Opaque Body</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>JDT Opaque Body</em>'.
+ * @generated
+ */
+ JDTOpaqueBody createJDTOpaqueBody();
+
+ /**
+ * Returns a new object of class '<em>JDT Java Model</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>JDT Java Model</em>'.
+ * @generated
+ */
+ JDTJavaModel createJDTJavaModel();
+
+ /**
+ * Returns a new object of class '<em>JDT Package Fragment</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>JDT Package Fragment</em>'.
+ * @generated
+ */
+ JDTPackageFragment createJDTPackageFragment();
+
+ /**
+ * Returns a new object of class '<em>JDT Package Fragment Root</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>JDT Package Fragment Root</em>'.
+ * @generated
+ */
+ JDTPackageFragmentRoot createJDTPackageFragmentRoot();
+
+ /**
+ * Returns a new object of class '<em>JDT Java Project</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>JDT Java Project</em>'.
+ * @generated
+ */
+ JDTJavaProject createJDTJavaProject();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the package supported by this factory.
+ * @generated
+ */
+ JdtmmPackage getJdtmmPackage();
+
+} // JdtmmFactory
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JdtmmPackage.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JdtmmPackage.java
new file mode 100644
index 00000000000..f69bbbaaebd
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JdtmmPackage.java
@@ -0,0 +1,5215 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface JdtmmPackage extends EPackage {
+
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ String eNAME = "jdtmm";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ String eNS_URI = "http:///jdtmm.ecore";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ String eNS_PREFIX = "jdtmm";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ JdtmmPackage eINSTANCE = org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTMethodBodyImpl <em>JDT Method Body</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTMethodBodyImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTMethodBody()
+ * @generated
+ */
+ int JDT_METHOD_BODY = 0;
+
+ /**
+ * The feature id for the '<em><b>Owner</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_METHOD_BODY__OWNER = 0;
+
+ /**
+ * The number of structural features of the '<em>JDT Method Body</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_METHOD_BODY_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTJavaElementImpl <em>JDT Java Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTJavaElementImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTJavaElement()
+ * @generated
+ */
+ int JDT_JAVA_ELEMENT = 5;
+
+ /**
+ * The feature id for the '<em><b>Element Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_JAVA_ELEMENT__ELEMENT_NAME = 0;
+
+ /**
+ * The feature id for the '<em><b>Element Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_JAVA_ELEMENT__ELEMENT_TYPE = 1;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_JAVA_ELEMENT__COMMENT = 2;
+
+ /**
+ * The feature id for the '<em><b>Generated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_JAVA_ELEMENT__GENERATED = 3;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_JAVA_ELEMENT__PARENT = 4;
+
+ /**
+ * The number of structural features of the '<em>JDT Java Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_JAVA_ELEMENT_FEATURE_COUNT = 5;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTParentImpl <em>JDT Parent</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTParentImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTParent()
+ * @generated
+ */
+ int JDT_PARENT = 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTParentJavaElementImpl <em>JDT Parent Java Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTParentJavaElementImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTParentJavaElement()
+ * @generated
+ */
+ int JDT_PARENT_JAVA_ELEMENT = 3;
+
+ /**
+ * The feature id for the '<em><b>Element Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PARENT_JAVA_ELEMENT__ELEMENT_NAME = JDT_JAVA_ELEMENT__ELEMENT_NAME;
+
+ /**
+ * The feature id for the '<em><b>Element Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PARENT_JAVA_ELEMENT__ELEMENT_TYPE = JDT_JAVA_ELEMENT__ELEMENT_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PARENT_JAVA_ELEMENT__COMMENT = JDT_JAVA_ELEMENT__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Generated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PARENT_JAVA_ELEMENT__GENERATED = JDT_JAVA_ELEMENT__GENERATED;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PARENT_JAVA_ELEMENT__PARENT = JDT_JAVA_ELEMENT__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Children</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PARENT_JAVA_ELEMENT__CHILDREN = JDT_JAVA_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Flags</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PARENT_JAVA_ELEMENT__FLAGS = JDT_JAVA_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>JDT Parent Java Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PARENT_JAVA_ELEMENT_FEATURE_COUNT = JDT_JAVA_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTMemberImpl <em>JDT Member</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTMemberImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTMember()
+ * @generated
+ */
+ int JDT_MEMBER = 2;
+
+ /**
+ * The feature id for the '<em><b>Element Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_MEMBER__ELEMENT_NAME = JDT_PARENT_JAVA_ELEMENT__ELEMENT_NAME;
+
+ /**
+ * The feature id for the '<em><b>Element Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_MEMBER__ELEMENT_TYPE = JDT_PARENT_JAVA_ELEMENT__ELEMENT_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_MEMBER__COMMENT = JDT_PARENT_JAVA_ELEMENT__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Generated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_MEMBER__GENERATED = JDT_PARENT_JAVA_ELEMENT__GENERATED;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_MEMBER__PARENT = JDT_PARENT_JAVA_ELEMENT__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Children</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_MEMBER__CHILDREN = JDT_PARENT_JAVA_ELEMENT__CHILDREN;
+
+ /**
+ * The feature id for the '<em><b>Flags</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_MEMBER__FLAGS = JDT_PARENT_JAVA_ELEMENT__FLAGS;
+
+ /**
+ * The feature id for the '<em><b>Type Parameters</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_MEMBER__TYPE_PARAMETERS = JDT_PARENT_JAVA_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Visibility</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_MEMBER__VISIBILITY = JDT_PARENT_JAVA_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Explicit Required Imports</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_MEMBER__EXPLICIT_REQUIRED_IMPORTS = JDT_PARENT_JAVA_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Explicit Plain Text Required Imports</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_MEMBER__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS = JDT_PARENT_JAVA_ELEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The number of structural features of the '<em>JDT Member</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_MEMBER_FEATURE_COUNT = JDT_PARENT_JAVA_ELEMENT_FEATURE_COUNT + 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTTypeParameterImpl <em>JDT Type Parameter</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTTypeParameterImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTTypeParameter()
+ * @generated
+ */
+ int JDT_TYPE_PARAMETER = 6;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTFieldImpl <em>JDT Field</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTFieldImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTField()
+ * @generated
+ */
+ int JDT_FIELD = 8;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTTypeImpl <em>JDT Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTTypeImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTType()
+ * @generated
+ */
+ int JDT_TYPE = 7;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTMethodImpl <em>JDT Method</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTMethodImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTMethod()
+ * @generated
+ */
+ int JDT_METHOD = 1;
+
+ /**
+ * The feature id for the '<em><b>Element Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_METHOD__ELEMENT_NAME = JDT_MEMBER__ELEMENT_NAME;
+
+ /**
+ * The feature id for the '<em><b>Element Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_METHOD__ELEMENT_TYPE = JDT_MEMBER__ELEMENT_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_METHOD__COMMENT = JDT_MEMBER__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Generated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_METHOD__GENERATED = JDT_MEMBER__GENERATED;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_METHOD__PARENT = JDT_MEMBER__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Children</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_METHOD__CHILDREN = JDT_MEMBER__CHILDREN;
+
+ /**
+ * The feature id for the '<em><b>Flags</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_METHOD__FLAGS = JDT_MEMBER__FLAGS;
+
+ /**
+ * The feature id for the '<em><b>Type Parameters</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_METHOD__TYPE_PARAMETERS = JDT_MEMBER__TYPE_PARAMETERS;
+
+ /**
+ * The feature id for the '<em><b>Visibility</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_METHOD__VISIBILITY = JDT_MEMBER__VISIBILITY;
+
+ /**
+ * The feature id for the '<em><b>Explicit Required Imports</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_METHOD__EXPLICIT_REQUIRED_IMPORTS = JDT_MEMBER__EXPLICIT_REQUIRED_IMPORTS;
+
+ /**
+ * The feature id for the '<em><b>Explicit Plain Text Required Imports</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_METHOD__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS = JDT_MEMBER__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS;
+
+ /**
+ * The feature id for the '<em><b>Owner</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_METHOD__OWNER = JDT_MEMBER_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Return Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_METHOD__RETURN_TYPE = JDT_MEMBER_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Parameters</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_METHOD__PARAMETERS = JDT_MEMBER_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Abstract</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_METHOD__ABSTRACT = JDT_MEMBER_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Final</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_METHOD__FINAL = JDT_MEMBER_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Static</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_METHOD__STATIC = JDT_MEMBER_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Exceptions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_METHOD__EXCEPTIONS = JDT_MEMBER_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Synchronized</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_METHOD__SYNCHRONIZED = JDT_MEMBER_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>Constructor</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_METHOD__CONSTRUCTOR = JDT_MEMBER_FEATURE_COUNT + 8;
+
+ /**
+ * The feature id for the '<em><b>Bodies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_METHOD__BODIES = JDT_MEMBER_FEATURE_COUNT + 9;
+
+ /**
+ * The number of structural features of the '<em>JDT Method</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_METHOD_FEATURE_COUNT = JDT_MEMBER_FEATURE_COUNT + 10;
+
+ /**
+ * The feature id for the '<em><b>Children</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PARENT__CHILDREN = 0;
+
+ /**
+ * The feature id for the '<em><b>Flags</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PARENT__FLAGS = 1;
+
+ /**
+ * The number of structural features of the '<em>JDT Parent</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PARENT_FEATURE_COUNT = 2;
+
+ /**
+ * The feature id for the '<em><b>Element Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE_PARAMETER__ELEMENT_NAME = JDT_JAVA_ELEMENT__ELEMENT_NAME;
+
+ /**
+ * The feature id for the '<em><b>Element Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE_PARAMETER__ELEMENT_TYPE = JDT_JAVA_ELEMENT__ELEMENT_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE_PARAMETER__COMMENT = JDT_JAVA_ELEMENT__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Generated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE_PARAMETER__GENERATED = JDT_JAVA_ELEMENT__GENERATED;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE_PARAMETER__PARENT = JDT_JAVA_ELEMENT__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Declaring Member</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE_PARAMETER__DECLARING_MEMBER = JDT_JAVA_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>JDT Type Parameter</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE_PARAMETER_FEATURE_COUNT = JDT_JAVA_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Element Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE__ELEMENT_NAME = JDT_MEMBER__ELEMENT_NAME;
+
+ /**
+ * The feature id for the '<em><b>Element Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE__ELEMENT_TYPE = JDT_MEMBER__ELEMENT_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE__COMMENT = JDT_MEMBER__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Generated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE__GENERATED = JDT_MEMBER__GENERATED;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE__PARENT = JDT_MEMBER__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Children</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE__CHILDREN = JDT_MEMBER__CHILDREN;
+
+ /**
+ * The feature id for the '<em><b>Flags</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE__FLAGS = JDT_MEMBER__FLAGS;
+
+ /**
+ * The feature id for the '<em><b>Type Parameters</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE__TYPE_PARAMETERS = JDT_MEMBER__TYPE_PARAMETERS;
+
+ /**
+ * The feature id for the '<em><b>Visibility</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE__VISIBILITY = JDT_MEMBER__VISIBILITY;
+
+ /**
+ * The feature id for the '<em><b>Explicit Required Imports</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE__EXPLICIT_REQUIRED_IMPORTS = JDT_MEMBER__EXPLICIT_REQUIRED_IMPORTS;
+
+ /**
+ * The feature id for the '<em><b>Explicit Plain Text Required Imports</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS = JDT_MEMBER__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS;
+
+ /**
+ * The feature id for the '<em><b>Methods</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE__METHODS = JDT_MEMBER_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Fields</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE__FIELDS = JDT_MEMBER_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Compilation Unit</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE__COMPILATION_UNIT = JDT_MEMBER_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Class</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE__CLASS = JDT_MEMBER_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Interface</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE__INTERFACE = JDT_MEMBER_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Enum</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE__ENUM = JDT_MEMBER_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Abstract</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE__ABSTRACT = JDT_MEMBER_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Final</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE__FINAL = JDT_MEMBER_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>Static</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE__STATIC = JDT_MEMBER_FEATURE_COUNT + 8;
+
+ /**
+ * The feature id for the '<em><b>Types</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE__TYPES = JDT_MEMBER_FEATURE_COUNT + 9;
+
+ /**
+ * The feature id for the '<em><b>Owner</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE__OWNER = JDT_MEMBER_FEATURE_COUNT + 10;
+
+ /**
+ * The feature id for the '<em><b>Super Interfaces</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE__SUPER_INTERFACES = JDT_MEMBER_FEATURE_COUNT + 11;
+
+ /**
+ * The feature id for the '<em><b>Super Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE__SUPER_CLASS = JDT_MEMBER_FEATURE_COUNT + 12;
+
+ /**
+ * The feature id for the '<em><b>Super Interface Names</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE__SUPER_INTERFACE_NAMES = JDT_MEMBER_FEATURE_COUNT + 13;
+
+ /**
+ * The feature id for the '<em><b>Super Class Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE__SUPER_CLASS_NAME = JDT_MEMBER_FEATURE_COUNT + 14;
+
+ /**
+ * The number of structural features of the '<em>JDT Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE_FEATURE_COUNT = JDT_MEMBER_FEATURE_COUNT + 15;
+
+ /**
+ * The feature id for the '<em><b>Element Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_FIELD__ELEMENT_NAME = JDT_MEMBER__ELEMENT_NAME;
+
+ /**
+ * The feature id for the '<em><b>Element Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_FIELD__ELEMENT_TYPE = JDT_MEMBER__ELEMENT_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_FIELD__COMMENT = JDT_MEMBER__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Generated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_FIELD__GENERATED = JDT_MEMBER__GENERATED;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_FIELD__PARENT = JDT_MEMBER__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Children</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_FIELD__CHILDREN = JDT_MEMBER__CHILDREN;
+
+ /**
+ * The feature id for the '<em><b>Flags</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_FIELD__FLAGS = JDT_MEMBER__FLAGS;
+
+ /**
+ * The feature id for the '<em><b>Type Parameters</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_FIELD__TYPE_PARAMETERS = JDT_MEMBER__TYPE_PARAMETERS;
+
+ /**
+ * The feature id for the '<em><b>Visibility</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_FIELD__VISIBILITY = JDT_MEMBER__VISIBILITY;
+
+ /**
+ * The feature id for the '<em><b>Explicit Required Imports</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_FIELD__EXPLICIT_REQUIRED_IMPORTS = JDT_MEMBER__EXPLICIT_REQUIRED_IMPORTS;
+
+ /**
+ * The feature id for the '<em><b>Explicit Plain Text Required Imports</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_FIELD__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS = JDT_MEMBER__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS;
+
+ /**
+ * The feature id for the '<em><b>Abstract</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_FIELD__ABSTRACT = JDT_MEMBER_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Final</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_FIELD__FINAL = JDT_MEMBER_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Static</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_FIELD__STATIC = JDT_MEMBER_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Is Multi Valued</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_FIELD__IS_MULTI_VALUED = JDT_MEMBER_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_FIELD__TYPE = JDT_MEMBER_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_FIELD__VALUE = JDT_MEMBER_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Generate Getter</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_FIELD__GENERATE_GETTER = JDT_MEMBER_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Generate Setter</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_FIELD__GENERATE_SETTER = JDT_MEMBER_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>Owner</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_FIELD__OWNER = JDT_MEMBER_FEATURE_COUNT + 8;
+
+ /**
+ * The number of structural features of the '<em>JDT Field</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_FIELD_FEATURE_COUNT = JDT_MEMBER_FEATURE_COUNT + 9;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTClassImpl <em>JDT Class</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTClassImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTClass()
+ * @generated
+ */
+ int JDT_CLASS = 16;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTInterfaceImpl <em>JDT Interface</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTInterfaceImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTInterface()
+ * @generated
+ */
+ int JDT_INTERFACE = 17;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTEnumImpl <em>JDT Enum</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTEnumImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTEnum()
+ * @generated
+ */
+ int JDT_ENUM = 18;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTTypeRootImpl <em>JDT Type Root</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTTypeRootImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTTypeRoot()
+ * @generated
+ */
+ int JDT_TYPE_ROOT = 10;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTCompilationUnitImpl <em>JDT Compilation Unit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTCompilationUnitImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTCompilationUnit()
+ * @generated
+ */
+ int JDT_COMPILATION_UNIT = 9;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTImportDeclarationImpl <em>JDT Import Declaration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTImportDeclarationImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTImportDeclaration()
+ * @generated
+ */
+ int JDT_IMPORT_DECLARATION = 19;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTImportContainerImpl <em>JDT Import Container</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTImportContainerImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTImportContainer()
+ * @generated
+ */
+ int JDT_IMPORT_CONTAINER = 20;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTParameterImpl <em>JDT Parameter</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTParameterImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTParameter()
+ * @generated
+ */
+ int JDT_PARAMETER = 15;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTPackageFragmentImpl <em>JDT Package Fragment</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTPackageFragmentImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTPackageFragment()
+ * @generated
+ */
+ int JDT_PACKAGE_FRAGMENT = 11;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTPackageFragmentRootImpl <em>JDT Package Fragment Root</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTPackageFragmentRootImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTPackageFragmentRoot()
+ * @generated
+ */
+ int JDT_PACKAGE_FRAGMENT_ROOT = 12;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTJavaProjectImpl <em>JDT Java Project</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTJavaProjectImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTJavaProject()
+ * @generated
+ */
+ int JDT_JAVA_PROJECT = 13;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTJavaModelImpl <em>JDT Java Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTJavaModelImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTJavaModel()
+ * @generated
+ */
+ int JDT_JAVA_MODEL = 14;
+
+ /**
+ * The feature id for the '<em><b>Element Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE_ROOT__ELEMENT_NAME = JDT_PARENT_JAVA_ELEMENT__ELEMENT_NAME;
+
+ /**
+ * The feature id for the '<em><b>Element Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE_ROOT__ELEMENT_TYPE = JDT_PARENT_JAVA_ELEMENT__ELEMENT_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE_ROOT__COMMENT = JDT_PARENT_JAVA_ELEMENT__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Generated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE_ROOT__GENERATED = JDT_PARENT_JAVA_ELEMENT__GENERATED;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE_ROOT__PARENT = JDT_PARENT_JAVA_ELEMENT__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Children</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE_ROOT__CHILDREN = JDT_PARENT_JAVA_ELEMENT__CHILDREN;
+
+ /**
+ * The feature id for the '<em><b>Flags</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE_ROOT__FLAGS = JDT_PARENT_JAVA_ELEMENT__FLAGS;
+
+ /**
+ * The number of structural features of the '<em>JDT Type Root</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_TYPE_ROOT_FEATURE_COUNT = JDT_PARENT_JAVA_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Element Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_COMPILATION_UNIT__ELEMENT_NAME = JDT_TYPE_ROOT__ELEMENT_NAME;
+
+ /**
+ * The feature id for the '<em><b>Element Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_COMPILATION_UNIT__ELEMENT_TYPE = JDT_TYPE_ROOT__ELEMENT_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_COMPILATION_UNIT__COMMENT = JDT_TYPE_ROOT__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Generated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_COMPILATION_UNIT__GENERATED = JDT_TYPE_ROOT__GENERATED;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_COMPILATION_UNIT__PARENT = JDT_TYPE_ROOT__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Children</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_COMPILATION_UNIT__CHILDREN = JDT_TYPE_ROOT__CHILDREN;
+
+ /**
+ * The feature id for the '<em><b>Flags</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_COMPILATION_UNIT__FLAGS = JDT_TYPE_ROOT__FLAGS;
+
+ /**
+ * The feature id for the '<em><b>Package Fragment</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_COMPILATION_UNIT__PACKAGE_FRAGMENT = JDT_TYPE_ROOT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Types</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_COMPILATION_UNIT__TYPES = JDT_TYPE_ROOT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>JDT Compilation Unit</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_COMPILATION_UNIT_FEATURE_COUNT = JDT_TYPE_ROOT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Element Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PACKAGE_FRAGMENT__ELEMENT_NAME = JDT_PARENT_JAVA_ELEMENT__ELEMENT_NAME;
+
+ /**
+ * The feature id for the '<em><b>Element Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PACKAGE_FRAGMENT__ELEMENT_TYPE = JDT_PARENT_JAVA_ELEMENT__ELEMENT_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PACKAGE_FRAGMENT__COMMENT = JDT_PARENT_JAVA_ELEMENT__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Generated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PACKAGE_FRAGMENT__GENERATED = JDT_PARENT_JAVA_ELEMENT__GENERATED;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PACKAGE_FRAGMENT__PARENT = JDT_PARENT_JAVA_ELEMENT__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Children</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PACKAGE_FRAGMENT__CHILDREN = JDT_PARENT_JAVA_ELEMENT__CHILDREN;
+
+ /**
+ * The feature id for the '<em><b>Flags</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PACKAGE_FRAGMENT__FLAGS = JDT_PARENT_JAVA_ELEMENT__FLAGS;
+
+ /**
+ * The feature id for the '<em><b>Package Fragment Root</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PACKAGE_FRAGMENT__PACKAGE_FRAGMENT_ROOT = JDT_PARENT_JAVA_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Compilation Units</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PACKAGE_FRAGMENT__COMPILATION_UNITS = JDT_PARENT_JAVA_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>JDT Package Fragment</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PACKAGE_FRAGMENT_FEATURE_COUNT = JDT_PARENT_JAVA_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Element Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PACKAGE_FRAGMENT_ROOT__ELEMENT_NAME = JDT_PARENT_JAVA_ELEMENT__ELEMENT_NAME;
+
+ /**
+ * The feature id for the '<em><b>Element Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PACKAGE_FRAGMENT_ROOT__ELEMENT_TYPE = JDT_PARENT_JAVA_ELEMENT__ELEMENT_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PACKAGE_FRAGMENT_ROOT__COMMENT = JDT_PARENT_JAVA_ELEMENT__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Generated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PACKAGE_FRAGMENT_ROOT__GENERATED = JDT_PARENT_JAVA_ELEMENT__GENERATED;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PACKAGE_FRAGMENT_ROOT__PARENT = JDT_PARENT_JAVA_ELEMENT__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Children</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PACKAGE_FRAGMENT_ROOT__CHILDREN = JDT_PARENT_JAVA_ELEMENT__CHILDREN;
+
+ /**
+ * The feature id for the '<em><b>Flags</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PACKAGE_FRAGMENT_ROOT__FLAGS = JDT_PARENT_JAVA_ELEMENT__FLAGS;
+
+ /**
+ * The feature id for the '<em><b>Java Project</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PACKAGE_FRAGMENT_ROOT__JAVA_PROJECT = JDT_PARENT_JAVA_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Package Fragments</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PACKAGE_FRAGMENT_ROOT__PACKAGE_FRAGMENTS = JDT_PARENT_JAVA_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>JDT Package Fragment Root</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PACKAGE_FRAGMENT_ROOT_FEATURE_COUNT = JDT_PARENT_JAVA_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Element Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_JAVA_PROJECT__ELEMENT_NAME = JDT_PARENT_JAVA_ELEMENT__ELEMENT_NAME;
+
+ /**
+ * The feature id for the '<em><b>Element Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_JAVA_PROJECT__ELEMENT_TYPE = JDT_PARENT_JAVA_ELEMENT__ELEMENT_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_JAVA_PROJECT__COMMENT = JDT_PARENT_JAVA_ELEMENT__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Generated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_JAVA_PROJECT__GENERATED = JDT_PARENT_JAVA_ELEMENT__GENERATED;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_JAVA_PROJECT__PARENT = JDT_PARENT_JAVA_ELEMENT__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Children</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_JAVA_PROJECT__CHILDREN = JDT_PARENT_JAVA_ELEMENT__CHILDREN;
+
+ /**
+ * The feature id for the '<em><b>Flags</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_JAVA_PROJECT__FLAGS = JDT_PARENT_JAVA_ELEMENT__FLAGS;
+
+ /**
+ * The feature id for the '<em><b>Java Model</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_JAVA_PROJECT__JAVA_MODEL = JDT_PARENT_JAVA_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Package Fragment Roots</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_JAVA_PROJECT__PACKAGE_FRAGMENT_ROOTS = JDT_PARENT_JAVA_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>JDT Java Project</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_JAVA_PROJECT_FEATURE_COUNT = JDT_PARENT_JAVA_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Element Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_JAVA_MODEL__ELEMENT_NAME = JDT_PARENT_JAVA_ELEMENT__ELEMENT_NAME;
+
+ /**
+ * The feature id for the '<em><b>Element Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_JAVA_MODEL__ELEMENT_TYPE = JDT_PARENT_JAVA_ELEMENT__ELEMENT_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_JAVA_MODEL__COMMENT = JDT_PARENT_JAVA_ELEMENT__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Generated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_JAVA_MODEL__GENERATED = JDT_PARENT_JAVA_ELEMENT__GENERATED;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_JAVA_MODEL__PARENT = JDT_PARENT_JAVA_ELEMENT__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Children</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_JAVA_MODEL__CHILDREN = JDT_PARENT_JAVA_ELEMENT__CHILDREN;
+
+ /**
+ * The feature id for the '<em><b>Flags</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_JAVA_MODEL__FLAGS = JDT_PARENT_JAVA_ELEMENT__FLAGS;
+
+ /**
+ * The feature id for the '<em><b>Java Project</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_JAVA_MODEL__JAVA_PROJECT = JDT_PARENT_JAVA_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>JDT Java Model</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_JAVA_MODEL_FEATURE_COUNT = JDT_PARENT_JAVA_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Element Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PARAMETER__ELEMENT_NAME = JDT_MEMBER__ELEMENT_NAME;
+
+ /**
+ * The feature id for the '<em><b>Element Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PARAMETER__ELEMENT_TYPE = JDT_MEMBER__ELEMENT_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PARAMETER__COMMENT = JDT_MEMBER__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Generated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PARAMETER__GENERATED = JDT_MEMBER__GENERATED;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PARAMETER__PARENT = JDT_MEMBER__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Children</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PARAMETER__CHILDREN = JDT_MEMBER__CHILDREN;
+
+ /**
+ * The feature id for the '<em><b>Flags</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PARAMETER__FLAGS = JDT_MEMBER__FLAGS;
+
+ /**
+ * The feature id for the '<em><b>Type Parameters</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PARAMETER__TYPE_PARAMETERS = JDT_MEMBER__TYPE_PARAMETERS;
+
+ /**
+ * The feature id for the '<em><b>Visibility</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PARAMETER__VISIBILITY = JDT_MEMBER__VISIBILITY;
+
+ /**
+ * The feature id for the '<em><b>Explicit Required Imports</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PARAMETER__EXPLICIT_REQUIRED_IMPORTS = JDT_MEMBER__EXPLICIT_REQUIRED_IMPORTS;
+
+ /**
+ * The feature id for the '<em><b>Explicit Plain Text Required Imports</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PARAMETER__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS = JDT_MEMBER__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS;
+
+ /**
+ * The feature id for the '<em><b>Parameter Owner</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PARAMETER__PARAMETER_OWNER = JDT_MEMBER_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Final</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PARAMETER__FINAL = JDT_MEMBER_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Is Multi Valued</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PARAMETER__IS_MULTI_VALUED = JDT_MEMBER_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PARAMETER__TYPE = JDT_MEMBER_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Return Owner</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PARAMETER__RETURN_OWNER = JDT_MEMBER_FEATURE_COUNT + 4;
+
+ /**
+ * The number of structural features of the '<em>JDT Parameter</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_PARAMETER_FEATURE_COUNT = JDT_MEMBER_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Element Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_CLASS__ELEMENT_NAME = JDT_TYPE__ELEMENT_NAME;
+
+ /**
+ * The feature id for the '<em><b>Element Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_CLASS__ELEMENT_TYPE = JDT_TYPE__ELEMENT_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_CLASS__COMMENT = JDT_TYPE__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Generated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_CLASS__GENERATED = JDT_TYPE__GENERATED;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_CLASS__PARENT = JDT_TYPE__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Children</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_CLASS__CHILDREN = JDT_TYPE__CHILDREN;
+
+ /**
+ * The feature id for the '<em><b>Flags</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_CLASS__FLAGS = JDT_TYPE__FLAGS;
+
+ /**
+ * The feature id for the '<em><b>Type Parameters</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_CLASS__TYPE_PARAMETERS = JDT_TYPE__TYPE_PARAMETERS;
+
+ /**
+ * The feature id for the '<em><b>Visibility</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_CLASS__VISIBILITY = JDT_TYPE__VISIBILITY;
+
+ /**
+ * The feature id for the '<em><b>Explicit Required Imports</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_CLASS__EXPLICIT_REQUIRED_IMPORTS = JDT_TYPE__EXPLICIT_REQUIRED_IMPORTS;
+
+ /**
+ * The feature id for the '<em><b>Explicit Plain Text Required Imports</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_CLASS__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS = JDT_TYPE__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS;
+
+ /**
+ * The feature id for the '<em><b>Methods</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_CLASS__METHODS = JDT_TYPE__METHODS;
+
+ /**
+ * The feature id for the '<em><b>Fields</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_CLASS__FIELDS = JDT_TYPE__FIELDS;
+
+ /**
+ * The feature id for the '<em><b>Compilation Unit</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_CLASS__COMPILATION_UNIT = JDT_TYPE__COMPILATION_UNIT;
+
+ /**
+ * The feature id for the '<em><b>Class</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_CLASS__CLASS = JDT_TYPE__CLASS;
+
+ /**
+ * The feature id for the '<em><b>Interface</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_CLASS__INTERFACE = JDT_TYPE__INTERFACE;
+
+ /**
+ * The feature id for the '<em><b>Enum</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_CLASS__ENUM = JDT_TYPE__ENUM;
+
+ /**
+ * The feature id for the '<em><b>Abstract</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_CLASS__ABSTRACT = JDT_TYPE__ABSTRACT;
+
+ /**
+ * The feature id for the '<em><b>Final</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_CLASS__FINAL = JDT_TYPE__FINAL;
+
+ /**
+ * The feature id for the '<em><b>Static</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_CLASS__STATIC = JDT_TYPE__STATIC;
+
+ /**
+ * The feature id for the '<em><b>Types</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_CLASS__TYPES = JDT_TYPE__TYPES;
+
+ /**
+ * The feature id for the '<em><b>Owner</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_CLASS__OWNER = JDT_TYPE__OWNER;
+
+ /**
+ * The feature id for the '<em><b>Super Interfaces</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_CLASS__SUPER_INTERFACES = JDT_TYPE__SUPER_INTERFACES;
+
+ /**
+ * The feature id for the '<em><b>Super Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_CLASS__SUPER_CLASS = JDT_TYPE__SUPER_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Super Interface Names</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_CLASS__SUPER_INTERFACE_NAMES = JDT_TYPE__SUPER_INTERFACE_NAMES;
+
+ /**
+ * The feature id for the '<em><b>Super Class Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_CLASS__SUPER_CLASS_NAME = JDT_TYPE__SUPER_CLASS_NAME;
+
+ /**
+ * The number of structural features of the '<em>JDT Class</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_CLASS_FEATURE_COUNT = JDT_TYPE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Element Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_INTERFACE__ELEMENT_NAME = JDT_TYPE__ELEMENT_NAME;
+
+ /**
+ * The feature id for the '<em><b>Element Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_INTERFACE__ELEMENT_TYPE = JDT_TYPE__ELEMENT_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_INTERFACE__COMMENT = JDT_TYPE__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Generated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_INTERFACE__GENERATED = JDT_TYPE__GENERATED;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_INTERFACE__PARENT = JDT_TYPE__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Children</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_INTERFACE__CHILDREN = JDT_TYPE__CHILDREN;
+
+ /**
+ * The feature id for the '<em><b>Flags</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_INTERFACE__FLAGS = JDT_TYPE__FLAGS;
+
+ /**
+ * The feature id for the '<em><b>Type Parameters</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_INTERFACE__TYPE_PARAMETERS = JDT_TYPE__TYPE_PARAMETERS;
+
+ /**
+ * The feature id for the '<em><b>Visibility</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_INTERFACE__VISIBILITY = JDT_TYPE__VISIBILITY;
+
+ /**
+ * The feature id for the '<em><b>Explicit Required Imports</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_INTERFACE__EXPLICIT_REQUIRED_IMPORTS = JDT_TYPE__EXPLICIT_REQUIRED_IMPORTS;
+
+ /**
+ * The feature id for the '<em><b>Explicit Plain Text Required Imports</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_INTERFACE__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS = JDT_TYPE__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS;
+
+ /**
+ * The feature id for the '<em><b>Methods</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_INTERFACE__METHODS = JDT_TYPE__METHODS;
+
+ /**
+ * The feature id for the '<em><b>Fields</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_INTERFACE__FIELDS = JDT_TYPE__FIELDS;
+
+ /**
+ * The feature id for the '<em><b>Compilation Unit</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_INTERFACE__COMPILATION_UNIT = JDT_TYPE__COMPILATION_UNIT;
+
+ /**
+ * The feature id for the '<em><b>Class</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_INTERFACE__CLASS = JDT_TYPE__CLASS;
+
+ /**
+ * The feature id for the '<em><b>Interface</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_INTERFACE__INTERFACE = JDT_TYPE__INTERFACE;
+
+ /**
+ * The feature id for the '<em><b>Enum</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_INTERFACE__ENUM = JDT_TYPE__ENUM;
+
+ /**
+ * The feature id for the '<em><b>Abstract</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_INTERFACE__ABSTRACT = JDT_TYPE__ABSTRACT;
+
+ /**
+ * The feature id for the '<em><b>Final</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_INTERFACE__FINAL = JDT_TYPE__FINAL;
+
+ /**
+ * The feature id for the '<em><b>Static</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_INTERFACE__STATIC = JDT_TYPE__STATIC;
+
+ /**
+ * The feature id for the '<em><b>Types</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_INTERFACE__TYPES = JDT_TYPE__TYPES;
+
+ /**
+ * The feature id for the '<em><b>Owner</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_INTERFACE__OWNER = JDT_TYPE__OWNER;
+
+ /**
+ * The feature id for the '<em><b>Super Interfaces</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_INTERFACE__SUPER_INTERFACES = JDT_TYPE__SUPER_INTERFACES;
+
+ /**
+ * The feature id for the '<em><b>Super Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_INTERFACE__SUPER_CLASS = JDT_TYPE__SUPER_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Super Interface Names</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_INTERFACE__SUPER_INTERFACE_NAMES = JDT_TYPE__SUPER_INTERFACE_NAMES;
+
+ /**
+ * The feature id for the '<em><b>Super Class Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_INTERFACE__SUPER_CLASS_NAME = JDT_TYPE__SUPER_CLASS_NAME;
+
+ /**
+ * The number of structural features of the '<em>JDT Interface</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_INTERFACE_FEATURE_COUNT = JDT_TYPE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Element Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_ENUM__ELEMENT_NAME = JDT_TYPE__ELEMENT_NAME;
+
+ /**
+ * The feature id for the '<em><b>Element Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_ENUM__ELEMENT_TYPE = JDT_TYPE__ELEMENT_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_ENUM__COMMENT = JDT_TYPE__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Generated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_ENUM__GENERATED = JDT_TYPE__GENERATED;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_ENUM__PARENT = JDT_TYPE__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Children</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_ENUM__CHILDREN = JDT_TYPE__CHILDREN;
+
+ /**
+ * The feature id for the '<em><b>Flags</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_ENUM__FLAGS = JDT_TYPE__FLAGS;
+
+ /**
+ * The feature id for the '<em><b>Type Parameters</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_ENUM__TYPE_PARAMETERS = JDT_TYPE__TYPE_PARAMETERS;
+
+ /**
+ * The feature id for the '<em><b>Visibility</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_ENUM__VISIBILITY = JDT_TYPE__VISIBILITY;
+
+ /**
+ * The feature id for the '<em><b>Explicit Required Imports</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_ENUM__EXPLICIT_REQUIRED_IMPORTS = JDT_TYPE__EXPLICIT_REQUIRED_IMPORTS;
+
+ /**
+ * The feature id for the '<em><b>Explicit Plain Text Required Imports</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_ENUM__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS = JDT_TYPE__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS;
+
+ /**
+ * The feature id for the '<em><b>Methods</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_ENUM__METHODS = JDT_TYPE__METHODS;
+
+ /**
+ * The feature id for the '<em><b>Fields</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_ENUM__FIELDS = JDT_TYPE__FIELDS;
+
+ /**
+ * The feature id for the '<em><b>Compilation Unit</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_ENUM__COMPILATION_UNIT = JDT_TYPE__COMPILATION_UNIT;
+
+ /**
+ * The feature id for the '<em><b>Class</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_ENUM__CLASS = JDT_TYPE__CLASS;
+
+ /**
+ * The feature id for the '<em><b>Interface</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_ENUM__INTERFACE = JDT_TYPE__INTERFACE;
+
+ /**
+ * The feature id for the '<em><b>Enum</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_ENUM__ENUM = JDT_TYPE__ENUM;
+
+ /**
+ * The feature id for the '<em><b>Abstract</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_ENUM__ABSTRACT = JDT_TYPE__ABSTRACT;
+
+ /**
+ * The feature id for the '<em><b>Final</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_ENUM__FINAL = JDT_TYPE__FINAL;
+
+ /**
+ * The feature id for the '<em><b>Static</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_ENUM__STATIC = JDT_TYPE__STATIC;
+
+ /**
+ * The feature id for the '<em><b>Types</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_ENUM__TYPES = JDT_TYPE__TYPES;
+
+ /**
+ * The feature id for the '<em><b>Owner</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_ENUM__OWNER = JDT_TYPE__OWNER;
+
+ /**
+ * The feature id for the '<em><b>Super Interfaces</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_ENUM__SUPER_INTERFACES = JDT_TYPE__SUPER_INTERFACES;
+
+ /**
+ * The feature id for the '<em><b>Super Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_ENUM__SUPER_CLASS = JDT_TYPE__SUPER_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Super Interface Names</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_ENUM__SUPER_INTERFACE_NAMES = JDT_TYPE__SUPER_INTERFACE_NAMES;
+
+ /**
+ * The feature id for the '<em><b>Super Class Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_ENUM__SUPER_CLASS_NAME = JDT_TYPE__SUPER_CLASS_NAME;
+
+ /**
+ * The number of structural features of the '<em>JDT Enum</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_ENUM_FEATURE_COUNT = JDT_TYPE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Element Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_IMPORT_DECLARATION__ELEMENT_NAME = JDT_JAVA_ELEMENT__ELEMENT_NAME;
+
+ /**
+ * The feature id for the '<em><b>Element Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_IMPORT_DECLARATION__ELEMENT_TYPE = JDT_JAVA_ELEMENT__ELEMENT_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_IMPORT_DECLARATION__COMMENT = JDT_JAVA_ELEMENT__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Generated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_IMPORT_DECLARATION__GENERATED = JDT_JAVA_ELEMENT__GENERATED;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_IMPORT_DECLARATION__PARENT = JDT_JAVA_ELEMENT__PARENT;
+
+ /**
+ * The number of structural features of the '<em>JDT Import Declaration</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_IMPORT_DECLARATION_FEATURE_COUNT = JDT_JAVA_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Element Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_IMPORT_CONTAINER__ELEMENT_NAME = JDT_PARENT_JAVA_ELEMENT__ELEMENT_NAME;
+
+ /**
+ * The feature id for the '<em><b>Element Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_IMPORT_CONTAINER__ELEMENT_TYPE = JDT_PARENT_JAVA_ELEMENT__ELEMENT_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_IMPORT_CONTAINER__COMMENT = JDT_PARENT_JAVA_ELEMENT__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Generated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_IMPORT_CONTAINER__GENERATED = JDT_PARENT_JAVA_ELEMENT__GENERATED;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_IMPORT_CONTAINER__PARENT = JDT_PARENT_JAVA_ELEMENT__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Children</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_IMPORT_CONTAINER__CHILDREN = JDT_PARENT_JAVA_ELEMENT__CHILDREN;
+
+ /**
+ * The feature id for the '<em><b>Flags</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_IMPORT_CONTAINER__FLAGS = JDT_PARENT_JAVA_ELEMENT__FLAGS;
+
+ /**
+ * The number of structural features of the '<em>JDT Import Container</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_IMPORT_CONTAINER_FEATURE_COUNT = JDT_PARENT_JAVA_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTExceptionImpl <em>JDT Exception</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTExceptionImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTException()
+ * @generated
+ */
+ int JDT_EXCEPTION = 21;
+
+ /**
+ * The number of structural features of the '<em>JDT Exception</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_EXCEPTION_FEATURE_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTOpaqueBodyImpl <em>JDT Opaque Body</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTOpaqueBodyImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTOpaqueBody()
+ * @generated
+ */
+ int JDT_OPAQUE_BODY = 22;
+
+ /**
+ * The feature id for the '<em><b>Owner</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_OPAQUE_BODY__OWNER = JDT_METHOD_BODY__OWNER;
+
+ /**
+ * The feature id for the '<em><b>body</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_OPAQUE_BODY__BODY = JDT_METHOD_BODY_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>JDT Opaque Body</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JDT_OPAQUE_BODY_FEATURE_COUNT = JDT_METHOD_BODY_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.VisibilityKind <em>Visibility Kind</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.VisibilityKind
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getVisibilityKind()
+ * @generated
+ */
+ int VISIBILITY_KIND = 23;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.TrueFalseDefault <em>True False Default</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.TrueFalseDefault
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getTrueFalseDefault()
+ * @generated
+ */
+ int TRUE_FALSE_DEFAULT = 24;
+
+ /**
+ * The meta object id for the '<em>boolean</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getboolean()
+ * @generated
+ */
+ int BOOLEAN = 27;
+
+ /**
+ * The meta object id for the '<em>int</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getint()
+ * @generated
+ */
+ int INT = 26;
+
+ /**
+ * The meta object id for the '<em>String</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see java.lang.String
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getString()
+ * @generated
+ */
+ int STRING = 25;
+
+
+ /**
+ * The meta object id for the '<em>JDT Visitor Exception</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitorException
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTVisitorException()
+ * @generated
+ */
+ int JDT_VISITOR_EXCEPTION = 28;
+
+ /**
+ * The meta object id for the '<em>Visitor</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitor
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getVisitor()
+ * @generated
+ */
+ int VISITOR = 29;
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethodBody <em>JDT Method Body</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>JDT Method Body</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethodBody
+ * @generated
+ */
+ EClass getJDTMethodBody();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethodBody#getOwner <em>Owner</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the container reference '<em>Owner</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethodBody#getOwner()
+ * @see #getJDTMethodBody()
+ * @generated
+ */
+ EReference getJDTMethodBody_Owner();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement <em>JDT Java Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>JDT Java Element</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement
+ * @generated
+ */
+ EClass getJDTJavaElement();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement#getParent <em>Parent</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the reference '<em>Parent</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement#getParent()
+ * @see #getJDTJavaElement()
+ * @generated
+ */
+ EReference getJDTJavaElement_Parent();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement#getElementName <em>Element Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Element Name</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement#getElementName()
+ * @see #getJDTJavaElement()
+ * @generated
+ */
+ EAttribute getJDTJavaElement_ElementName();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement#getElementType <em>Element Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Element Type</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement#getElementType()
+ * @see #getJDTJavaElement()
+ * @generated
+ */
+ EAttribute getJDTJavaElement_ElementType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement#getComment <em>Comment</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Comment</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement#getComment()
+ * @see #getJDTJavaElement()
+ * @generated
+ */
+ EAttribute getJDTJavaElement_Comment();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement#isGenerated <em>Generated</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Generated</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement#isGenerated()
+ * @see #getJDTJavaElement()
+ * @generated
+ */
+ EAttribute getJDTJavaElement_Generated();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParent <em>JDT Parent</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>JDT Parent</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParent
+ * @generated
+ */
+ EClass getJDTParent();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParent#getFlags <em>Flags</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Flags</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParent#getFlags()
+ * @see #getJDTParent()
+ * @generated
+ */
+ EAttribute getJDTParent_Flags();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParent#getChildren <em>Children</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the reference list '<em>Children</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParent#getChildren()
+ * @see #getJDTParent()
+ * @generated
+ */
+ EReference getJDTParent_Children();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMember <em>JDT Member</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>JDT Member</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMember
+ * @generated
+ */
+ EClass getJDTMember();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMember#getTypeParameters <em>Type Parameters</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the containment reference list '<em>Type Parameters</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMember#getTypeParameters()
+ * @see #getJDTMember()
+ * @generated
+ */
+ EReference getJDTMember_TypeParameters();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMember#getVisibility <em>Visibility</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Visibility</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMember#getVisibility()
+ * @see #getJDTMember()
+ * @generated
+ */
+ EAttribute getJDTMember_Visibility();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMember#getExplicitRequiredImports <em>Explicit Required Imports</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the reference list '<em>Explicit Required Imports</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMember#getExplicitRequiredImports()
+ * @see #getJDTMember()
+ * @generated
+ */
+ EReference getJDTMember_ExplicitRequiredImports();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMember#getExplicitPlainTextRequiredImports <em>Explicit Plain Text Required Imports</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute list '<em>Explicit Plain Text Required Imports</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMember#getExplicitPlainTextRequiredImports()
+ * @see #getJDTMember()
+ * @generated
+ */
+ EAttribute getJDTMember_ExplicitPlainTextRequiredImports();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParentJavaElement <em>JDT Parent Java Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>JDT Parent Java Element</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParentJavaElement
+ * @generated
+ */
+ EClass getJDTParentJavaElement();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTTypeParameter <em>JDT Type Parameter</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>JDT Type Parameter</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTTypeParameter
+ * @generated
+ */
+ EClass getJDTTypeParameter();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTTypeParameter#getDeclaringMember <em>Declaring Member</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the container reference '<em>Declaring Member</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTTypeParameter#getDeclaringMember()
+ * @see #getJDTTypeParameter()
+ * @generated
+ */
+ EReference getJDTTypeParameter_DeclaringMember();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField <em>JDT Field</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>JDT Field</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField
+ * @generated
+ */
+ EClass getJDTField();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#getOwner <em>Owner</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the container reference '<em>Owner</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#getOwner()
+ * @see #getJDTField()
+ * @generated
+ */
+ EReference getJDTField_Owner();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the reference '<em>Type</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#getType()
+ * @see #getJDTField()
+ * @generated
+ */
+ EReference getJDTField_Type();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#getValue()
+ * @see #getJDTField()
+ * @generated
+ */
+ EAttribute getJDTField_Value();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#getGenerateGetter <em>Generate Getter</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Generate Getter</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#getGenerateGetter()
+ * @see #getJDTField()
+ * @generated
+ */
+ EAttribute getJDTField_GenerateGetter();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#getGenerateSetter <em>Generate Setter</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Generate Setter</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#getGenerateSetter()
+ * @see #getJDTField()
+ * @generated
+ */
+ EAttribute getJDTField_GenerateSetter();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#isAbstract <em>Abstract</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Abstract</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#isAbstract()
+ * @see #getJDTField()
+ * @generated
+ */
+ EAttribute getJDTField_Abstract();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#isFinal <em>Final</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Final</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#isFinal()
+ * @see #getJDTField()
+ * @generated
+ */
+ EAttribute getJDTField_Final();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#isStatic <em>Static</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Static</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#isStatic()
+ * @see #getJDTField()
+ * @generated
+ */
+ EAttribute getJDTField_Static();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#isMultiValued <em>Is Multi Valued</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Is Multi Valued</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField#isMultiValued()
+ * @see #getJDTField()
+ * @generated
+ */
+ EAttribute getJDTField_IsMultiValued();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType <em>JDT Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>JDT Type</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType
+ * @generated
+ */
+ EClass getJDTType();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getMethods <em>Methods</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the containment reference list '<em>Methods</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getMethods()
+ * @see #getJDTType()
+ * @generated
+ */
+ EReference getJDTType_Methods();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getCompilationUnit <em>Compilation Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the container reference '<em>Compilation Unit</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getCompilationUnit()
+ * @see #getJDTType()
+ * @generated
+ */
+ EReference getJDTType_CompilationUnit();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#isClass <em>Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Class</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#isClass()
+ * @see #getJDTType()
+ * @generated
+ */
+ EAttribute getJDTType_Class();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#isInterface <em>Interface</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Interface</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#isInterface()
+ * @see #getJDTType()
+ * @generated
+ */
+ EAttribute getJDTType_Interface();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#isEnum <em>Enum</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Enum</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#isEnum()
+ * @see #getJDTType()
+ * @generated
+ */
+ EAttribute getJDTType_Enum();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#isAbstract <em>Abstract</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Abstract</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#isAbstract()
+ * @see #getJDTType()
+ * @generated
+ */
+ EAttribute getJDTType_Abstract();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#isFinal <em>Final</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Final</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#isFinal()
+ * @see #getJDTType()
+ * @generated
+ */
+ EAttribute getJDTType_Final();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#isStatic <em>Static</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Static</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#isStatic()
+ * @see #getJDTType()
+ * @generated
+ */
+ EAttribute getJDTType_Static();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getTypes <em>Types</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the containment reference list '<em>Types</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getTypes()
+ * @see #getJDTType()
+ * @generated
+ */
+ EReference getJDTType_Types();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getOwner <em>Owner</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the container reference '<em>Owner</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getOwner()
+ * @see #getJDTType()
+ * @generated
+ */
+ EReference getJDTType_Owner();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getSuperInterfaces <em>Super Interfaces</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the reference list '<em>Super Interfaces</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getSuperInterfaces()
+ * @see #getJDTType()
+ * @generated
+ */
+ EReference getJDTType_SuperInterfaces();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getSuperClass <em>Super Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the reference '<em>Super Class</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getSuperClass()
+ * @see #getJDTType()
+ * @generated
+ */
+ EReference getJDTType_SuperClass();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getSuperInterfaceNames <em>Super Interface Names</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute list '<em>Super Interface Names</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getSuperInterfaceNames()
+ * @see #getJDTType()
+ * @generated
+ */
+ EAttribute getJDTType_SuperInterfaceNames();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getSuperClassName <em>Super Class Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Super Class Name</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getSuperClassName()
+ * @see #getJDTType()
+ * @generated
+ */
+ EAttribute getJDTType_SuperClassName();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getFields <em>Fields</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the containment reference list '<em>Fields</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType#getFields()
+ * @see #getJDTType()
+ * @generated
+ */
+ EReference getJDTType_Fields();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod <em>JDT Method</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>JDT Method</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod
+ * @generated
+ */
+ EClass getJDTMethod();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#getReturnType <em>Return Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the containment reference '<em>Return Type</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#getReturnType()
+ * @see #getJDTMethod()
+ * @generated
+ */
+ EReference getJDTMethod_ReturnType();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#getParameters <em>Parameters</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the containment reference list '<em>Parameters</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#getParameters()
+ * @see #getJDTMethod()
+ * @generated
+ */
+ EReference getJDTMethod_Parameters();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#getExceptions <em>Exceptions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the reference list '<em>Exceptions</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#getExceptions()
+ * @see #getJDTMethod()
+ * @generated
+ */
+ EReference getJDTMethod_Exceptions();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#isSynchronized <em>Synchronized</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Synchronized</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#isSynchronized()
+ * @see #getJDTMethod()
+ * @generated
+ */
+ EAttribute getJDTMethod_Synchronized();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#isConstructor <em>Constructor</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Constructor</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#isConstructor()
+ * @see #getJDTMethod()
+ * @generated
+ */
+ EAttribute getJDTMethod_Constructor();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#getBodies <em>Bodies</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the containment reference list '<em>Bodies</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#getBodies()
+ * @see #getJDTMethod()
+ * @generated
+ */
+ EReference getJDTMethod_Bodies();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#isAbstract <em>Abstract</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Abstract</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#isAbstract()
+ * @see #getJDTMethod()
+ * @generated
+ */
+ EAttribute getJDTMethod_Abstract();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#isFinal <em>Final</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Final</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#isFinal()
+ * @see #getJDTMethod()
+ * @generated
+ */
+ EAttribute getJDTMethod_Final();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#isStatic <em>Static</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Static</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#isStatic()
+ * @see #getJDTMethod()
+ * @generated
+ */
+ EAttribute getJDTMethod_Static();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#getOwner <em>Owner</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the container reference '<em>Owner</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod#getOwner()
+ * @see #getJDTMethod()
+ * @generated
+ */
+ EReference getJDTMethod_Owner();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTClass <em>JDT Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>JDT Class</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTClass
+ * @generated
+ */
+ EClass getJDTClass();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTInterface <em>JDT Interface</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>JDT Interface</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTInterface
+ * @generated
+ */
+ EClass getJDTInterface();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTEnum <em>JDT Enum</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>JDT Enum</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTEnum
+ * @generated
+ */
+ EClass getJDTEnum();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTTypeRoot <em>JDT Type Root</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>JDT Type Root</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTTypeRoot
+ * @generated
+ */
+ EClass getJDTTypeRoot();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTCompilationUnit <em>JDT Compilation Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>JDT Compilation Unit</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTCompilationUnit
+ * @generated
+ */
+ EClass getJDTCompilationUnit();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTCompilationUnit#getPackageFragment <em>Package Fragment</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the container reference '<em>Package Fragment</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTCompilationUnit#getPackageFragment()
+ * @see #getJDTCompilationUnit()
+ * @generated
+ */
+ EReference getJDTCompilationUnit_PackageFragment();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTCompilationUnit#getTypes <em>Types</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the containment reference list '<em>Types</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTCompilationUnit#getTypes()
+ * @see #getJDTCompilationUnit()
+ * @generated
+ */
+ EReference getJDTCompilationUnit_Types();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTImportDeclaration <em>JDT Import Declaration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>JDT Import Declaration</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTImportDeclaration
+ * @generated
+ */
+ EClass getJDTImportDeclaration();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTImportContainer <em>JDT Import Container</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>JDT Import Container</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTImportContainer
+ * @generated
+ */
+ EClass getJDTImportContainer();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter <em>JDT Parameter</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>JDT Parameter</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter
+ * @generated
+ */
+ EClass getJDTParameter();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter#getParameterOwner <em>Parameter Owner</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the container reference '<em>Parameter Owner</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter#getParameterOwner()
+ * @see #getJDTParameter()
+ * @generated
+ */
+ EReference getJDTParameter_ParameterOwner();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter#isFinal <em>Final</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Final</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter#isFinal()
+ * @see #getJDTParameter()
+ * @generated
+ */
+ EAttribute getJDTParameter_Final();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter#isMultiValued <em>Is Multi Valued</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Is Multi Valued</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter#isMultiValued()
+ * @see #getJDTParameter()
+ * @generated
+ */
+ EAttribute getJDTParameter_IsMultiValued();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the reference '<em>Type</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter#getType()
+ * @see #getJDTParameter()
+ * @generated
+ */
+ EReference getJDTParameter_Type();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter#getReturnOwner <em>Return Owner</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the container reference '<em>Return Owner</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter#getReturnOwner()
+ * @see #getJDTParameter()
+ * @generated
+ */
+ EReference getJDTParameter_ReturnOwner();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTException <em>JDT Exception</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>JDT Exception</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTException
+ * @generated
+ */
+ EClass getJDTException();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTOpaqueBody <em>JDT Opaque Body</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>JDT Opaque Body</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTOpaqueBody
+ * @generated
+ */
+ EClass getJDTOpaqueBody();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTOpaqueBody#get_body <em>body</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>body</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTOpaqueBody#get_body()
+ * @see #getJDTOpaqueBody()
+ * @generated
+ */
+ EAttribute getJDTOpaqueBody__body();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.VisibilityKind <em>Visibility Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for enum '<em>Visibility Kind</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.VisibilityKind
+ * @generated
+ */
+ EEnum getVisibilityKind();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.TrueFalseDefault <em>True False Default</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for enum '<em>True False Default</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.TrueFalseDefault
+ * @generated
+ */
+ EEnum getTrueFalseDefault();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaModel <em>JDT Java Model</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>JDT Java Model</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaModel
+ * @generated
+ */
+ EClass getJDTJavaModel();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaModel#getJavaProject <em>Java Project</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the containment reference list '<em>Java Project</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaModel#getJavaProject()
+ * @see #getJDTJavaModel()
+ * @generated
+ */
+ EReference getJDTJavaModel_JavaProject();
+
+ /**
+ * Returns the meta object for data type '<em>boolean</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for data type '<em>boolean</em>'.
+ * @model instanceClass="boolean"
+ * @generated
+ */
+ EDataType getboolean();
+
+ /**
+ * Returns the meta object for data type '<em>int</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for data type '<em>int</em>'.
+ * @model instanceClass="int"
+ * @generated
+ */
+ EDataType getint();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragment <em>JDT Package Fragment</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>JDT Package Fragment</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragment
+ * @generated
+ */
+ EClass getJDTPackageFragment();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragment#getPackageFragmentRoot <em>Package Fragment Root</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the container reference '<em>Package Fragment Root</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragment#getPackageFragmentRoot()
+ * @see #getJDTPackageFragment()
+ * @generated
+ */
+ EReference getJDTPackageFragment_PackageFragmentRoot();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragment#getCompilationUnits <em>Compilation Units</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the containment reference list '<em>Compilation Units</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragment#getCompilationUnits()
+ * @see #getJDTPackageFragment()
+ * @generated
+ */
+ EReference getJDTPackageFragment_CompilationUnits();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragmentRoot <em>JDT Package Fragment Root</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>JDT Package Fragment Root</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragmentRoot
+ * @generated
+ */
+ EClass getJDTPackageFragmentRoot();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragmentRoot#getJavaProject <em>Java Project</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the container reference '<em>Java Project</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragmentRoot#getJavaProject()
+ * @see #getJDTPackageFragmentRoot()
+ * @generated
+ */
+ EReference getJDTPackageFragmentRoot_JavaProject();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragmentRoot#getPackageFragments <em>Package Fragments</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the containment reference list '<em>Package Fragments</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragmentRoot#getPackageFragments()
+ * @see #getJDTPackageFragmentRoot()
+ * @generated
+ */
+ EReference getJDTPackageFragmentRoot_PackageFragments();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaProject <em>JDT Java Project</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>JDT Java Project</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaProject
+ * @generated
+ */
+ EClass getJDTJavaProject();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaProject#getJavaModel <em>Java Model</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the container reference '<em>Java Model</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaProject#getJavaModel()
+ * @see #getJDTJavaProject()
+ * @generated
+ */
+ EReference getJDTJavaProject_JavaModel();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaProject#getPackageFragmentRoots <em>Package Fragment Roots</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the containment reference list '<em>Package Fragment Roots</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaProject#getPackageFragmentRoots()
+ * @see #getJDTJavaProject()
+ * @generated
+ */
+ EReference getJDTJavaProject_PackageFragmentRoots();
+
+ /**
+ * Returns the meta object for data type '{@link java.lang.String <em>String</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for data type '<em>String</em>'.
+ * @see java.lang.String
+ * @model instanceClass="java.lang.String"
+ * @generated
+ */
+ EDataType getString();
+
+ /**
+ * Returns the meta object for data type '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitorException <em>JDT Visitor Exception</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for data type '<em>JDT Visitor Exception</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitorException
+ * @model instanceClass="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitorException"
+ * @generated
+ */
+ EDataType getJDTVisitorException();
+
+ /**
+ * Returns the meta object for data type '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitor <em>Visitor</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for data type '<em>Visitor</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitor
+ * @model instanceClass="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitor"
+ * @generated
+ */
+ EDataType getVisitor();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ JdtmmFactory getJdtmmFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ interface Literals {
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTMethodBodyImpl <em>JDT Method Body</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTMethodBodyImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTMethodBody()
+ * @generated
+ */
+ EClass JDT_METHOD_BODY = eINSTANCE.getJDTMethodBody();
+
+ /**
+ * The meta object literal for the '<em><b>Owner</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JDT_METHOD_BODY__OWNER = eINSTANCE.getJDTMethodBody_Owner();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTJavaElementImpl <em>JDT Java Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTJavaElementImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTJavaElement()
+ * @generated
+ */
+ EClass JDT_JAVA_ELEMENT = eINSTANCE.getJDTJavaElement();
+
+ /**
+ * The meta object literal for the '<em><b>Parent</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JDT_JAVA_ELEMENT__PARENT = eINSTANCE.getJDTJavaElement_Parent();
+
+ /**
+ * The meta object literal for the '<em><b>Element Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JDT_JAVA_ELEMENT__ELEMENT_NAME = eINSTANCE.getJDTJavaElement_ElementName();
+
+ /**
+ * The meta object literal for the '<em><b>Element Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JDT_JAVA_ELEMENT__ELEMENT_TYPE = eINSTANCE.getJDTJavaElement_ElementType();
+
+ /**
+ * The meta object literal for the '<em><b>Comment</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JDT_JAVA_ELEMENT__COMMENT = eINSTANCE.getJDTJavaElement_Comment();
+
+ /**
+ * The meta object literal for the '<em><b>Generated</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JDT_JAVA_ELEMENT__GENERATED = eINSTANCE.getJDTJavaElement_Generated();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTParentImpl <em>JDT Parent</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTParentImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTParent()
+ * @generated
+ */
+ EClass JDT_PARENT = eINSTANCE.getJDTParent();
+
+ /**
+ * The meta object literal for the '<em><b>Flags</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JDT_PARENT__FLAGS = eINSTANCE.getJDTParent_Flags();
+
+ /**
+ * The meta object literal for the '<em><b>Children</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JDT_PARENT__CHILDREN = eINSTANCE.getJDTParent_Children();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTMemberImpl <em>JDT Member</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTMemberImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTMember()
+ * @generated
+ */
+ EClass JDT_MEMBER = eINSTANCE.getJDTMember();
+
+ /**
+ * The meta object literal for the '<em><b>Type Parameters</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JDT_MEMBER__TYPE_PARAMETERS = eINSTANCE.getJDTMember_TypeParameters();
+
+ /**
+ * The meta object literal for the '<em><b>Visibility</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JDT_MEMBER__VISIBILITY = eINSTANCE.getJDTMember_Visibility();
+
+ /**
+ * The meta object literal for the '<em><b>Explicit Required Imports</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JDT_MEMBER__EXPLICIT_REQUIRED_IMPORTS = eINSTANCE.getJDTMember_ExplicitRequiredImports();
+
+ /**
+ * The meta object literal for the '<em><b>Explicit Plain Text Required Imports</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JDT_MEMBER__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS = eINSTANCE.getJDTMember_ExplicitPlainTextRequiredImports();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTParentJavaElementImpl <em>JDT Parent Java Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTParentJavaElementImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTParentJavaElement()
+ * @generated
+ */
+ EClass JDT_PARENT_JAVA_ELEMENT = eINSTANCE.getJDTParentJavaElement();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTTypeParameterImpl <em>JDT Type Parameter</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTTypeParameterImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTTypeParameter()
+ * @generated
+ */
+ EClass JDT_TYPE_PARAMETER = eINSTANCE.getJDTTypeParameter();
+
+ /**
+ * The meta object literal for the '<em><b>Declaring Member</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JDT_TYPE_PARAMETER__DECLARING_MEMBER = eINSTANCE.getJDTTypeParameter_DeclaringMember();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTFieldImpl <em>JDT Field</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTFieldImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTField()
+ * @generated
+ */
+ EClass JDT_FIELD = eINSTANCE.getJDTField();
+
+ /**
+ * The meta object literal for the '<em><b>Owner</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JDT_FIELD__OWNER = eINSTANCE.getJDTField_Owner();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JDT_FIELD__TYPE = eINSTANCE.getJDTField_Type();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JDT_FIELD__VALUE = eINSTANCE.getJDTField_Value();
+
+ /**
+ * The meta object literal for the '<em><b>Generate Getter</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JDT_FIELD__GENERATE_GETTER = eINSTANCE.getJDTField_GenerateGetter();
+
+ /**
+ * The meta object literal for the '<em><b>Generate Setter</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JDT_FIELD__GENERATE_SETTER = eINSTANCE.getJDTField_GenerateSetter();
+
+ /**
+ * The meta object literal for the '<em><b>Abstract</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JDT_FIELD__ABSTRACT = eINSTANCE.getJDTField_Abstract();
+
+ /**
+ * The meta object literal for the '<em><b>Final</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JDT_FIELD__FINAL = eINSTANCE.getJDTField_Final();
+
+ /**
+ * The meta object literal for the '<em><b>Static</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JDT_FIELD__STATIC = eINSTANCE.getJDTField_Static();
+
+ /**
+ * The meta object literal for the '<em><b>Is Multi Valued</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JDT_FIELD__IS_MULTI_VALUED = eINSTANCE.getJDTField_IsMultiValued();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTTypeImpl <em>JDT Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTTypeImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTType()
+ * @generated
+ */
+ EClass JDT_TYPE = eINSTANCE.getJDTType();
+
+ /**
+ * The meta object literal for the '<em><b>Methods</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JDT_TYPE__METHODS = eINSTANCE.getJDTType_Methods();
+
+ /**
+ * The meta object literal for the '<em><b>Compilation Unit</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JDT_TYPE__COMPILATION_UNIT = eINSTANCE.getJDTType_CompilationUnit();
+
+ /**
+ * The meta object literal for the '<em><b>Class</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JDT_TYPE__CLASS = eINSTANCE.getJDTType_Class();
+
+ /**
+ * The meta object literal for the '<em><b>Interface</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JDT_TYPE__INTERFACE = eINSTANCE.getJDTType_Interface();
+
+ /**
+ * The meta object literal for the '<em><b>Enum</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JDT_TYPE__ENUM = eINSTANCE.getJDTType_Enum();
+
+ /**
+ * The meta object literal for the '<em><b>Abstract</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JDT_TYPE__ABSTRACT = eINSTANCE.getJDTType_Abstract();
+
+ /**
+ * The meta object literal for the '<em><b>Final</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JDT_TYPE__FINAL = eINSTANCE.getJDTType_Final();
+
+ /**
+ * The meta object literal for the '<em><b>Static</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JDT_TYPE__STATIC = eINSTANCE.getJDTType_Static();
+
+ /**
+ * The meta object literal for the '<em><b>Types</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JDT_TYPE__TYPES = eINSTANCE.getJDTType_Types();
+
+ /**
+ * The meta object literal for the '<em><b>Owner</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JDT_TYPE__OWNER = eINSTANCE.getJDTType_Owner();
+
+ /**
+ * The meta object literal for the '<em><b>Super Interfaces</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JDT_TYPE__SUPER_INTERFACES = eINSTANCE.getJDTType_SuperInterfaces();
+
+ /**
+ * The meta object literal for the '<em><b>Super Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JDT_TYPE__SUPER_CLASS = eINSTANCE.getJDTType_SuperClass();
+
+ /**
+ * The meta object literal for the '<em><b>Super Interface Names</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JDT_TYPE__SUPER_INTERFACE_NAMES = eINSTANCE.getJDTType_SuperInterfaceNames();
+
+ /**
+ * The meta object literal for the '<em><b>Super Class Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JDT_TYPE__SUPER_CLASS_NAME = eINSTANCE.getJDTType_SuperClassName();
+
+ /**
+ * The meta object literal for the '<em><b>Fields</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JDT_TYPE__FIELDS = eINSTANCE.getJDTType_Fields();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTMethodImpl <em>JDT Method</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTMethodImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTMethod()
+ * @generated
+ */
+ EClass JDT_METHOD = eINSTANCE.getJDTMethod();
+
+ /**
+ * The meta object literal for the '<em><b>Return Type</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JDT_METHOD__RETURN_TYPE = eINSTANCE.getJDTMethod_ReturnType();
+
+ /**
+ * The meta object literal for the '<em><b>Parameters</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JDT_METHOD__PARAMETERS = eINSTANCE.getJDTMethod_Parameters();
+
+ /**
+ * The meta object literal for the '<em><b>Exceptions</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JDT_METHOD__EXCEPTIONS = eINSTANCE.getJDTMethod_Exceptions();
+
+ /**
+ * The meta object literal for the '<em><b>Synchronized</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JDT_METHOD__SYNCHRONIZED = eINSTANCE.getJDTMethod_Synchronized();
+
+ /**
+ * The meta object literal for the '<em><b>Constructor</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JDT_METHOD__CONSTRUCTOR = eINSTANCE.getJDTMethod_Constructor();
+
+ /**
+ * The meta object literal for the '<em><b>Bodies</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JDT_METHOD__BODIES = eINSTANCE.getJDTMethod_Bodies();
+
+ /**
+ * The meta object literal for the '<em><b>Abstract</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JDT_METHOD__ABSTRACT = eINSTANCE.getJDTMethod_Abstract();
+
+ /**
+ * The meta object literal for the '<em><b>Final</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JDT_METHOD__FINAL = eINSTANCE.getJDTMethod_Final();
+
+ /**
+ * The meta object literal for the '<em><b>Static</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JDT_METHOD__STATIC = eINSTANCE.getJDTMethod_Static();
+
+ /**
+ * The meta object literal for the '<em><b>Owner</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JDT_METHOD__OWNER = eINSTANCE.getJDTMethod_Owner();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTClassImpl <em>JDT Class</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTClassImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTClass()
+ * @generated
+ */
+ EClass JDT_CLASS = eINSTANCE.getJDTClass();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTInterfaceImpl <em>JDT Interface</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTInterfaceImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTInterface()
+ * @generated
+ */
+ EClass JDT_INTERFACE = eINSTANCE.getJDTInterface();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTEnumImpl <em>JDT Enum</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTEnumImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTEnum()
+ * @generated
+ */
+ EClass JDT_ENUM = eINSTANCE.getJDTEnum();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTTypeRootImpl <em>JDT Type Root</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTTypeRootImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTTypeRoot()
+ * @generated
+ */
+ EClass JDT_TYPE_ROOT = eINSTANCE.getJDTTypeRoot();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTCompilationUnitImpl <em>JDT Compilation Unit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTCompilationUnitImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTCompilationUnit()
+ * @generated
+ */
+ EClass JDT_COMPILATION_UNIT = eINSTANCE.getJDTCompilationUnit();
+
+ /**
+ * The meta object literal for the '<em><b>Package Fragment</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JDT_COMPILATION_UNIT__PACKAGE_FRAGMENT = eINSTANCE.getJDTCompilationUnit_PackageFragment();
+
+ /**
+ * The meta object literal for the '<em><b>Types</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JDT_COMPILATION_UNIT__TYPES = eINSTANCE.getJDTCompilationUnit_Types();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTImportDeclarationImpl <em>JDT Import Declaration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTImportDeclarationImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTImportDeclaration()
+ * @generated
+ */
+ EClass JDT_IMPORT_DECLARATION = eINSTANCE.getJDTImportDeclaration();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTImportContainerImpl <em>JDT Import Container</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTImportContainerImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTImportContainer()
+ * @generated
+ */
+ EClass JDT_IMPORT_CONTAINER = eINSTANCE.getJDTImportContainer();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTParameterImpl <em>JDT Parameter</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTParameterImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTParameter()
+ * @generated
+ */
+ EClass JDT_PARAMETER = eINSTANCE.getJDTParameter();
+
+ /**
+ * The meta object literal for the '<em><b>Parameter Owner</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JDT_PARAMETER__PARAMETER_OWNER = eINSTANCE.getJDTParameter_ParameterOwner();
+
+ /**
+ * The meta object literal for the '<em><b>Final</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JDT_PARAMETER__FINAL = eINSTANCE.getJDTParameter_Final();
+
+ /**
+ * The meta object literal for the '<em><b>Is Multi Valued</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JDT_PARAMETER__IS_MULTI_VALUED = eINSTANCE.getJDTParameter_IsMultiValued();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JDT_PARAMETER__TYPE = eINSTANCE.getJDTParameter_Type();
+
+ /**
+ * The meta object literal for the '<em><b>Return Owner</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JDT_PARAMETER__RETURN_OWNER = eINSTANCE.getJDTParameter_ReturnOwner();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTExceptionImpl <em>JDT Exception</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTExceptionImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTException()
+ * @generated
+ */
+ EClass JDT_EXCEPTION = eINSTANCE.getJDTException();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTOpaqueBodyImpl <em>JDT Opaque Body</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTOpaqueBodyImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTOpaqueBody()
+ * @generated
+ */
+ EClass JDT_OPAQUE_BODY = eINSTANCE.getJDTOpaqueBody();
+
+ /**
+ * The meta object literal for the '<em><b>body</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JDT_OPAQUE_BODY__BODY = eINSTANCE.getJDTOpaqueBody__body();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.VisibilityKind <em>Visibility Kind</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.VisibilityKind
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getVisibilityKind()
+ * @generated
+ */
+ EEnum VISIBILITY_KIND = eINSTANCE.getVisibilityKind();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.TrueFalseDefault <em>True False Default</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.TrueFalseDefault
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getTrueFalseDefault()
+ * @generated
+ */
+ EEnum TRUE_FALSE_DEFAULT = eINSTANCE.getTrueFalseDefault();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTJavaModelImpl <em>JDT Java Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTJavaModelImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTJavaModel()
+ * @generated
+ */
+ EClass JDT_JAVA_MODEL = eINSTANCE.getJDTJavaModel();
+
+ /**
+ * The meta object literal for the '<em><b>Java Project</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JDT_JAVA_MODEL__JAVA_PROJECT = eINSTANCE.getJDTJavaModel_JavaProject();
+
+ /**
+ * The meta object literal for the '<em>boolean</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getboolean()
+ * @generated
+ */
+ EDataType BOOLEAN = eINSTANCE.getboolean();
+
+ /**
+ * The meta object literal for the '<em>int</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getint()
+ * @generated
+ */
+ EDataType INT = eINSTANCE.getint();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTPackageFragmentImpl <em>JDT Package Fragment</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTPackageFragmentImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTPackageFragment()
+ * @generated
+ */
+ EClass JDT_PACKAGE_FRAGMENT = eINSTANCE.getJDTPackageFragment();
+
+ /**
+ * The meta object literal for the '<em><b>Package Fragment Root</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JDT_PACKAGE_FRAGMENT__PACKAGE_FRAGMENT_ROOT = eINSTANCE.getJDTPackageFragment_PackageFragmentRoot();
+
+ /**
+ * The meta object literal for the '<em><b>Compilation Units</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JDT_PACKAGE_FRAGMENT__COMPILATION_UNITS = eINSTANCE.getJDTPackageFragment_CompilationUnits();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTPackageFragmentRootImpl <em>JDT Package Fragment Root</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTPackageFragmentRootImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTPackageFragmentRoot()
+ * @generated
+ */
+ EClass JDT_PACKAGE_FRAGMENT_ROOT = eINSTANCE.getJDTPackageFragmentRoot();
+
+ /**
+ * The meta object literal for the '<em><b>Java Project</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JDT_PACKAGE_FRAGMENT_ROOT__JAVA_PROJECT = eINSTANCE.getJDTPackageFragmentRoot_JavaProject();
+
+ /**
+ * The meta object literal for the '<em><b>Package Fragments</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JDT_PACKAGE_FRAGMENT_ROOT__PACKAGE_FRAGMENTS = eINSTANCE.getJDTPackageFragmentRoot_PackageFragments();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTJavaProjectImpl <em>JDT Java Project</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTJavaProjectImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTJavaProject()
+ * @generated
+ */
+ EClass JDT_JAVA_PROJECT = eINSTANCE.getJDTJavaProject();
+
+ /**
+ * The meta object literal for the '<em><b>Java Model</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JDT_JAVA_PROJECT__JAVA_MODEL = eINSTANCE.getJDTJavaProject_JavaModel();
+
+ /**
+ * The meta object literal for the '<em><b>Package Fragment Roots</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JDT_JAVA_PROJECT__PACKAGE_FRAGMENT_ROOTS = eINSTANCE.getJDTJavaProject_PackageFragmentRoots();
+
+ /**
+ * The meta object literal for the '<em>String</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see java.lang.String
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getString()
+ * @generated
+ */
+ EDataType STRING = eINSTANCE.getString();
+
+ /**
+ * The meta object literal for the '<em>JDT Visitor Exception</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitorException
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getJDTVisitorException()
+ * @generated
+ */
+ EDataType JDT_VISITOR_EXCEPTION = eINSTANCE.getJDTVisitorException();
+
+ /**
+ * The meta object literal for the '<em>Visitor</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitor
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JdtmmPackageImpl#getVisitor()
+ * @generated
+ */
+ EDataType VISITOR = eINSTANCE.getVisitor();
+
+ }
+
+} // JdtmmPackage
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/TrueFalseDefault.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/TrueFalseDefault.java
new file mode 100644
index 00000000000..dae01bcc8c7
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/TrueFalseDefault.java
@@ -0,0 +1,278 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>True False Default</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getTrueFalseDefault()
+ * @model
+ * @generated
+ */
+public enum TrueFalseDefault implements Enumerator {
+ /**
+ * The '<em><b>True</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #TRUE_VALUE
+ * @generated
+ * @ordered
+ */
+ TRUE(0, "true", "true"),
+
+ /**
+ * The '<em><b>False</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #FALSE_VALUE
+ * @generated
+ * @ordered
+ */
+ FALSE(1, "false", "false"),
+
+ /**
+ * The '<em><b>Default</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #DEFAULT_VALUE
+ * @generated
+ * @ordered
+ */
+ DEFAULT(2, "default", "default");
+
+ /**
+ * The '<em><b>True</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>True</b></em>' literal object isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @see #TRUE
+ * @model name="true"
+ * @generated
+ * @ordered
+ */
+ public static final int TRUE_VALUE = 0;
+
+ /**
+ * The '<em><b>False</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>False</b></em>' literal object isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @see #FALSE
+ * @model name="false"
+ * @generated
+ * @ordered
+ */
+ public static final int FALSE_VALUE = 1;
+
+ /**
+ * The '<em><b>Default</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Default</b></em>' literal object isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @see #DEFAULT
+ * @model name="default"
+ * @generated
+ * @ordered
+ */
+ public static final int DEFAULT_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>True False Default</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private static final TrueFalseDefault[] VALUES_ARRAY =
+ new TrueFalseDefault[] {
+ TRUE,
+ FALSE,
+ DEFAULT,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>True False Default</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static final List<TrueFalseDefault> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>True False Default</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static TrueFalseDefault get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ TrueFalseDefault result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>True False Default</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static TrueFalseDefault getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ TrueFalseDefault result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>True False Default</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static TrueFalseDefault get(int value) {
+ switch (value) {
+ case TRUE_VALUE:
+ return TRUE;
+ case FALSE_VALUE:
+ return FALSE;
+ case DEFAULT_VALUE:
+ return DEFAULT;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private TrueFalseDefault(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} // TrueFalseDefault
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/VisibilityKind.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/VisibilityKind.java
new file mode 100644
index 00000000000..7297efd22a2
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/VisibilityKind.java
@@ -0,0 +1,278 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Visibility Kind</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#getVisibilityKind()
+ * @model
+ * @generated
+ */
+public enum VisibilityKind implements Enumerator {
+ /**
+ * The '<em><b>Public</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #PUBLIC_VALUE
+ * @generated
+ * @ordered
+ */
+ PUBLIC(0, "public", "public"),
+
+ /**
+ * The '<em><b>Protected</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #PROTECTED_VALUE
+ * @generated
+ * @ordered
+ */
+ PROTECTED(1, "protected", "protected"),
+
+ /**
+ * The '<em><b>Private</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #PRIVATE_VALUE
+ * @generated
+ * @ordered
+ */
+ PRIVATE(2, "private", "private");
+
+ /**
+ * The '<em><b>Public</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Public</b></em>' literal object isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @see #PUBLIC
+ * @model name="public"
+ * @generated
+ * @ordered
+ */
+ public static final int PUBLIC_VALUE = 0;
+
+ /**
+ * The '<em><b>Protected</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Protected</b></em>' literal object isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @see #PROTECTED
+ * @model name="protected"
+ * @generated
+ * @ordered
+ */
+ public static final int PROTECTED_VALUE = 1;
+
+ /**
+ * The '<em><b>Private</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Private</b></em>' literal object isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @see #PRIVATE
+ * @model name="private"
+ * @generated
+ * @ordered
+ */
+ public static final int PRIVATE_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Visibility Kind</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private static final VisibilityKind[] VALUES_ARRAY =
+ new VisibilityKind[] {
+ PUBLIC,
+ PROTECTED,
+ PRIVATE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Visibility Kind</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static final List<VisibilityKind> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Visibility Kind</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static VisibilityKind get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ VisibilityKind result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Visibility Kind</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static VisibilityKind getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ VisibilityKind result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Visibility Kind</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static VisibilityKind get(int value) {
+ switch (value) {
+ case PUBLIC_VALUE:
+ return PUBLIC;
+ case PROTECTED_VALUE:
+ return PROTECTED;
+ case PRIVATE_VALUE:
+ return PRIVATE;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private VisibilityKind(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} // VisibilityKind
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTClassImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTClassImpl.java
new file mode 100644
index 00000000000..db43f78bd57
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTClassImpl.java
@@ -0,0 +1,61 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTClass;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>JDT Class</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class JDTClassImpl extends JDTTypeImpl implements JDTClass {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTClassImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return JdtmmPackage.Literals.JDT_CLASS;
+ }
+
+} // JDTClassImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTCompilationUnitImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTCompilationUnitImpl.java
new file mode 100644
index 00000000000..d01d7d3bd83
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTCompilationUnitImpl.java
@@ -0,0 +1,375 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTCompilationUnit;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragment;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParent;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+import org.eclipse.uml2.common.util.DerivedUnionEObjectEList;
+import org.eclipse.uml2.common.util.SubsetSupersetEObjectContainmentWithInverseEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>JDT Compilation Unit</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTCompilationUnitImpl#getChildren <em>Children</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTCompilationUnitImpl#getPackageFragment <em>Package Fragment</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTCompilationUnitImpl#getTypes <em>Types</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class JDTCompilationUnitImpl extends JDTTypeRootImpl implements JDTCompilationUnit {
+
+ /**
+ * The cached value of the '{@link #getTypes() <em>Types</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getTypes()
+ * @generated
+ * @ordered
+ */
+ protected EList<JDTType> types;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTCompilationUnitImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return JdtmmPackage.Literals.JDT_COMPILATION_UNIT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EList<JDTJavaElement> getChildren() {
+ return new DerivedUnionEObjectEList<JDTJavaElement>(JDTJavaElement.class, this, JdtmmPackage.JDT_COMPILATION_UNIT__CHILDREN, CHILDREN_ESUBSETS);
+ }
+
+ /**
+ * The array of subset feature identifiers for the '{@link #getChildren() <em>Children</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getChildren()
+ * @generated
+ * @ordered
+ */
+ protected static final int[] CHILDREN_ESUBSETS = new int[] { JdtmmPackage.JDT_COMPILATION_UNIT__TYPES };
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTPackageFragment getPackageFragment() {
+ if (eContainerFeatureID() != JdtmmPackage.JDT_COMPILATION_UNIT__PACKAGE_FRAGMENT) {
+ return null;
+ }
+ return (JDTPackageFragment) eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public NotificationChain basicSetPackageFragment(JDTPackageFragment newPackageFragment, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject) newPackageFragment, JdtmmPackage.JDT_COMPILATION_UNIT__PACKAGE_FRAGMENT, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setPackageFragment(JDTPackageFragment newPackageFragment) {
+ if (newPackageFragment != eInternalContainer() || (eContainerFeatureID() != JdtmmPackage.JDT_COMPILATION_UNIT__PACKAGE_FRAGMENT && newPackageFragment != null)) {
+ if (EcoreUtil.isAncestor(this, newPackageFragment)) {
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ }
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null) {
+ msgs = eBasicRemoveFromContainer(msgs);
+ }
+ if (newPackageFragment != null) {
+ msgs = ((InternalEObject) newPackageFragment).eInverseAdd(this, JdtmmPackage.JDT_PACKAGE_FRAGMENT__COMPILATION_UNITS, JDTPackageFragment.class, msgs);
+ }
+ msgs = basicSetPackageFragment(newPackageFragment, msgs);
+ if (msgs != null) {
+ msgs.dispatch();
+ }
+ }
+ else if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JdtmmPackage.JDT_COMPILATION_UNIT__PACKAGE_FRAGMENT, newPackageFragment, newPackageFragment));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public boolean isSetPackageFragment() {
+ return getPackageFragment() != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EList<JDTType> getTypes() {
+ if (types == null) {
+ types = new SubsetSupersetEObjectContainmentWithInverseEList<JDTType>(JDTType.class, this, JdtmmPackage.JDT_COMPILATION_UNIT__TYPES, TYPES_ESUPERSETS, null, JdtmmPackage.JDT_TYPE__COMPILATION_UNIT);
+ }
+ return types;
+ }
+
+ /**
+ * The array of superset feature identifiers for the '{@link #getTypes() <em>Types</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getTypes()
+ * @generated
+ * @ordered
+ */
+ protected static final int[] TYPES_ESUPERSETS = new int[] { JdtmmPackage.JDT_COMPILATION_UNIT__CHILDREN };
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_COMPILATION_UNIT__PACKAGE_FRAGMENT:
+ if (eInternalContainer() != null) {
+ msgs = eBasicRemoveFromContainer(msgs);
+ }
+ return basicSetPackageFragment((JDTPackageFragment) otherEnd, msgs);
+ case JdtmmPackage.JDT_COMPILATION_UNIT__TYPES:
+ return ((InternalEList<InternalEObject>) (InternalEList<?>) getTypes()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_COMPILATION_UNIT__PACKAGE_FRAGMENT:
+ return basicSetPackageFragment(null, msgs);
+ case JdtmmPackage.JDT_COMPILATION_UNIT__TYPES:
+ return ((InternalEList<?>) getTypes()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case JdtmmPackage.JDT_COMPILATION_UNIT__PACKAGE_FRAGMENT:
+ return eInternalContainer().eInverseRemove(this, JdtmmPackage.JDT_PACKAGE_FRAGMENT__COMPILATION_UNITS, JDTPackageFragment.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_COMPILATION_UNIT__PACKAGE_FRAGMENT:
+ return getPackageFragment();
+ case JdtmmPackage.JDT_COMPILATION_UNIT__TYPES:
+ return getTypes();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_COMPILATION_UNIT__PACKAGE_FRAGMENT:
+ setPackageFragment((JDTPackageFragment) newValue);
+ return;
+ case JdtmmPackage.JDT_COMPILATION_UNIT__TYPES:
+ getTypes().clear();
+ getTypes().addAll((Collection<? extends JDTType>) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_COMPILATION_UNIT__PACKAGE_FRAGMENT:
+ setPackageFragment((JDTPackageFragment) null);
+ return;
+ case JdtmmPackage.JDT_COMPILATION_UNIT__TYPES:
+ getTypes().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_COMPILATION_UNIT__PACKAGE_FRAGMENT:
+ return isSetPackageFragment();
+ case JdtmmPackage.JDT_COMPILATION_UNIT__TYPES:
+ return types != null && !types.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isSetChildren() {
+ return super.isSetChildren()
+ || eIsSet(JdtmmPackage.JDT_COMPILATION_UNIT__TYPES);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTParent getParent() {
+ return getPackageFragment();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTParent basicGetParent() {
+ return getPackageFragment();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public boolean isSetParent() {
+ return false;
+ }
+
+} // JDTCompilationUnitImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTEnumImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTEnumImpl.java
new file mode 100644
index 00000000000..22e94d54f07
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTEnumImpl.java
@@ -0,0 +1,61 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTEnum;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>JDT Enum</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class JDTEnumImpl extends JDTTypeImpl implements JDTEnum {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTEnumImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return JdtmmPackage.Literals.JDT_ENUM;
+ }
+
+} // JDTEnumImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTExceptionImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTExceptionImpl.java
new file mode 100644
index 00000000000..dccb6aa5f6d
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTExceptionImpl.java
@@ -0,0 +1,62 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTException;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>JDT Exception</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class JDTExceptionImpl extends EObjectImpl implements JDTException {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTExceptionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return JdtmmPackage.Literals.JDT_EXCEPTION;
+ }
+
+} // JDTExceptionImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTFieldImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTFieldImpl.java
new file mode 100644
index 00000000000..4e99b219be8
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTFieldImpl.java
@@ -0,0 +1,749 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.jdt.core.Flags;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParent;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.TrueFalseDefault;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>JDT Field</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTFieldImpl#isAbstract <em>Abstract</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTFieldImpl#isFinal <em>Final</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTFieldImpl#isStatic <em>Static</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTFieldImpl#isMultiValued <em>Is Multi Valued</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTFieldImpl#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTFieldImpl#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTFieldImpl#getGenerateGetter <em>Generate Getter</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTFieldImpl#getGenerateSetter <em>Generate Setter</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTFieldImpl#getOwner <em>Owner</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class JDTFieldImpl extends JDTMemberImpl implements JDTField {
+
+ /**
+ * The default value of the '{@link #isAbstract() <em>Abstract</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isAbstract()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean ABSTRACT_EDEFAULT = false;
+
+ /**
+ * The default value of the '{@link #isFinal() <em>Final</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isFinal()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean FINAL_EDEFAULT = false;
+
+ /**
+ * The default value of the '{@link #isStatic() <em>Static</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isStatic()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean STATIC_EDEFAULT = false;
+
+ /**
+ * The default value of the '{@link #isMultiValued() <em>Is Multi Valued</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isMultiValued()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_MULTI_VALUED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isMultiValued() <em>Is Multi Valued</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isMultiValued()
+ * @generated
+ * @ordered
+ */
+ protected boolean isMultiValued = IS_MULTI_VALUED_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected JDTType type;
+
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final String VALUE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected String value = VALUE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getGenerateGetter() <em>Generate Getter</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getGenerateGetter()
+ * @generated
+ * @ordered
+ */
+ protected static final TrueFalseDefault GENERATE_GETTER_EDEFAULT = TrueFalseDefault.TRUE;
+
+ /**
+ * The cached value of the '{@link #getGenerateGetter() <em>Generate Getter</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getGenerateGetter()
+ * @generated
+ * @ordered
+ */
+ protected TrueFalseDefault generateGetter = GENERATE_GETTER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getGenerateSetter() <em>Generate Setter</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getGenerateSetter()
+ * @generated
+ * @ordered
+ */
+ protected static final TrueFalseDefault GENERATE_SETTER_EDEFAULT = TrueFalseDefault.TRUE;
+
+ /**
+ * The cached value of the '{@link #getGenerateSetter() <em>Generate Setter</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getGenerateSetter()
+ * @generated
+ * @ordered
+ */
+ protected TrueFalseDefault generateSetter = GENERATE_SETTER_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTFieldImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return JdtmmPackage.Literals.JDT_FIELD;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTType getOwner() {
+ if (eContainerFeatureID() != JdtmmPackage.JDT_FIELD__OWNER) {
+ return null;
+ }
+ return (JDTType) eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public NotificationChain basicSetOwner(JDTType newOwner, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject) newOwner, JdtmmPackage.JDT_FIELD__OWNER, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setOwner(JDTType newOwner) {
+ if (newOwner != eInternalContainer() || (eContainerFeatureID() != JdtmmPackage.JDT_FIELD__OWNER && newOwner != null)) {
+ if (EcoreUtil.isAncestor(this, newOwner)) {
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ }
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null) {
+ msgs = eBasicRemoveFromContainer(msgs);
+ }
+ if (newOwner != null) {
+ msgs = ((InternalEObject) newOwner).eInverseAdd(this, JdtmmPackage.JDT_TYPE__FIELDS, JDTType.class, msgs);
+ }
+ msgs = basicSetOwner(newOwner, msgs);
+ if (msgs != null) {
+ msgs.dispatch();
+ }
+ }
+ else if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JdtmmPackage.JDT_FIELD__OWNER, newOwner, newOwner));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public boolean isSetOwner() {
+ return getOwner() != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isAbstract() {
+ // TODO: implement this method to return the 'Abstract' attribute
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isMultiValued() {
+ return isMultiValued;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setIsMultiValued(boolean newIsMultiValued) {
+ boolean oldIsMultiValued = isMultiValued;
+ isMultiValued = newIsMultiValued;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JdtmmPackage.JDT_FIELD__IS_MULTI_VALUED, oldIsMultiValued, isMultiValued));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTType getType() {
+ if (type != null && type.eIsProxy()) {
+ InternalEObject oldType = (InternalEObject) type;
+ type = (JDTType) eResolveProxy(oldType);
+ if (type != oldType) {
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, JdtmmPackage.JDT_FIELD__TYPE, oldType, type));
+ }
+ }
+ }
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JDTType basicGetType() {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setType(JDTType newType) {
+ JDTType oldType = type;
+ type = newType;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JdtmmPackage.JDT_FIELD__TYPE, oldType, type));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setValue(String newValue) {
+ String oldValue = value;
+ value = newValue;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JdtmmPackage.JDT_FIELD__VALUE, oldValue, value));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public TrueFalseDefault getGenerateGetter() {
+ return generateGetter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setGenerateGetter(TrueFalseDefault newGenerateGetter) {
+ TrueFalseDefault oldGenerateGetter = generateGetter;
+ generateGetter = newGenerateGetter == null ? GENERATE_GETTER_EDEFAULT : newGenerateGetter;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JdtmmPackage.JDT_FIELD__GENERATE_GETTER, oldGenerateGetter, generateGetter));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public TrueFalseDefault getGenerateSetter() {
+ return generateSetter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setGenerateSetter(TrueFalseDefault newGenerateSetter) {
+ TrueFalseDefault oldGenerateSetter = generateSetter;
+ generateSetter = newGenerateSetter == null ? GENERATE_SETTER_EDEFAULT : newGenerateSetter;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JdtmmPackage.JDT_FIELD__GENERATE_SETTER, oldGenerateSetter, generateSetter));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_FIELD__OWNER:
+ if (eInternalContainer() != null) {
+ msgs = eBasicRemoveFromContainer(msgs);
+ }
+ return basicSetOwner((JDTType) otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_FIELD__OWNER:
+ return basicSetOwner(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case JdtmmPackage.JDT_FIELD__OWNER:
+ return eInternalContainer().eInverseRemove(this, JdtmmPackage.JDT_TYPE__FIELDS, JDTType.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_FIELD__ABSTRACT:
+ return isAbstract();
+ case JdtmmPackage.JDT_FIELD__FINAL:
+ return isFinal();
+ case JdtmmPackage.JDT_FIELD__STATIC:
+ return isStatic();
+ case JdtmmPackage.JDT_FIELD__IS_MULTI_VALUED:
+ return isMultiValued();
+ case JdtmmPackage.JDT_FIELD__TYPE:
+ if (resolve) {
+ return getType();
+ }
+ return basicGetType();
+ case JdtmmPackage.JDT_FIELD__VALUE:
+ return getValue();
+ case JdtmmPackage.JDT_FIELD__GENERATE_GETTER:
+ return getGenerateGetter();
+ case JdtmmPackage.JDT_FIELD__GENERATE_SETTER:
+ return getGenerateSetter();
+ case JdtmmPackage.JDT_FIELD__OWNER:
+ return getOwner();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_FIELD__ABSTRACT:
+ setAbstract((Boolean) newValue);
+ return;
+ case JdtmmPackage.JDT_FIELD__FINAL:
+ setFinal((Boolean) newValue);
+ return;
+ case JdtmmPackage.JDT_FIELD__STATIC:
+ setStatic((Boolean) newValue);
+ return;
+ case JdtmmPackage.JDT_FIELD__IS_MULTI_VALUED:
+ setIsMultiValued((Boolean) newValue);
+ return;
+ case JdtmmPackage.JDT_FIELD__TYPE:
+ setType((JDTType) newValue);
+ return;
+ case JdtmmPackage.JDT_FIELD__VALUE:
+ setValue((String) newValue);
+ return;
+ case JdtmmPackage.JDT_FIELD__GENERATE_GETTER:
+ setGenerateGetter((TrueFalseDefault) newValue);
+ return;
+ case JdtmmPackage.JDT_FIELD__GENERATE_SETTER:
+ setGenerateSetter((TrueFalseDefault) newValue);
+ return;
+ case JdtmmPackage.JDT_FIELD__OWNER:
+ setOwner((JDTType) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_FIELD__ABSTRACT:
+ setAbstract(ABSTRACT_EDEFAULT);
+ return;
+ case JdtmmPackage.JDT_FIELD__FINAL:
+ setFinal(FINAL_EDEFAULT);
+ return;
+ case JdtmmPackage.JDT_FIELD__STATIC:
+ setStatic(STATIC_EDEFAULT);
+ return;
+ case JdtmmPackage.JDT_FIELD__IS_MULTI_VALUED:
+ setIsMultiValued(IS_MULTI_VALUED_EDEFAULT);
+ return;
+ case JdtmmPackage.JDT_FIELD__TYPE:
+ setType((JDTType) null);
+ return;
+ case JdtmmPackage.JDT_FIELD__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ case JdtmmPackage.JDT_FIELD__GENERATE_GETTER:
+ setGenerateGetter(GENERATE_GETTER_EDEFAULT);
+ return;
+ case JdtmmPackage.JDT_FIELD__GENERATE_SETTER:
+ setGenerateSetter(GENERATE_SETTER_EDEFAULT);
+ return;
+ case JdtmmPackage.JDT_FIELD__OWNER:
+ setOwner((JDTType) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_FIELD__ABSTRACT:
+ return isAbstract() != ABSTRACT_EDEFAULT;
+ case JdtmmPackage.JDT_FIELD__FINAL:
+ return isFinal() != FINAL_EDEFAULT;
+ case JdtmmPackage.JDT_FIELD__STATIC:
+ return isStatic() != STATIC_EDEFAULT;
+ case JdtmmPackage.JDT_FIELD__IS_MULTI_VALUED:
+ return isMultiValued != IS_MULTI_VALUED_EDEFAULT;
+ case JdtmmPackage.JDT_FIELD__TYPE:
+ return type != null;
+ case JdtmmPackage.JDT_FIELD__VALUE:
+ return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+ case JdtmmPackage.JDT_FIELD__GENERATE_GETTER:
+ return generateGetter != GENERATE_GETTER_EDEFAULT;
+ case JdtmmPackage.JDT_FIELD__GENERATE_SETTER:
+ return generateSetter != GENERATE_SETTER_EDEFAULT;
+ case JdtmmPackage.JDT_FIELD__OWNER:
+ return isSetOwner();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) {
+ return super.toString();
+ }
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (isMultiValued: ");
+ result.append(isMultiValued);
+ result.append(", value: ");
+ result.append(value);
+ result.append(", generateGetter: ");
+ result.append(generateGetter);
+ result.append(", generateSetter: ");
+ result.append(generateSetter);
+ result.append(')');
+ return result.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTParent getParent() {
+ return getOwner();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTParent basicGetParent() {
+ return getOwner();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public boolean isSetParent() {
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public boolean isFinal() {
+ // TODO: implement this method to return the 'Final' attribute
+ // Ensure that you remove @generated or mark it @generated NOT
+ return isFlagSet(Flags.AccFinal);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public boolean isStatic() {
+ return isFlagSet(Flags.AccStatic);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public void setAbstract(boolean newAbstract) {
+ // Ensure that you remove @generated or mark it @generated NOT
+ setFlag(Flags.AccAbstract, newAbstract);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public void setFinal(boolean newFinal) {
+
+ setFlag(Flags.AccFinal, newFinal);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public void setStatic(boolean newStatic) {
+ setFlag(Flags.AccStatic, newStatic);
+ }
+
+} // JDTFieldImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTImportContainerImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTImportContainerImpl.java
new file mode 100644
index 00000000000..778b6c46e40
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTImportContainerImpl.java
@@ -0,0 +1,61 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTImportContainer;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>JDT Import Container</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class JDTImportContainerImpl extends JDTParentJavaElementImpl implements JDTImportContainer {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTImportContainerImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return JdtmmPackage.Literals.JDT_IMPORT_CONTAINER;
+ }
+
+} // JDTImportContainerImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTImportDeclarationImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTImportDeclarationImpl.java
new file mode 100644
index 00000000000..3312ffe75ba
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTImportDeclarationImpl.java
@@ -0,0 +1,61 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTImportDeclaration;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>JDT Import Declaration</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class JDTImportDeclarationImpl extends JDTJavaElementImpl implements JDTImportDeclaration {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTImportDeclarationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return JdtmmPackage.Literals.JDT_IMPORT_DECLARATION;
+ }
+
+} // JDTImportDeclarationImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTInterfaceImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTInterfaceImpl.java
new file mode 100644
index 00000000000..289b0d528bf
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTInterfaceImpl.java
@@ -0,0 +1,61 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTInterface;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>JDT Interface</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class JDTInterfaceImpl extends JDTTypeImpl implements JDTInterface {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTInterfaceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return JdtmmPackage.Literals.JDT_INTERFACE;
+ }
+
+} // JDTInterfaceImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTJavaElementImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTJavaElementImpl.java
new file mode 100644
index 00000000000..cb4cdf8284e
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTJavaElementImpl.java
@@ -0,0 +1,453 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParent;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitor;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitorException;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>JDT Java Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTJavaElementImpl#getElementName <em>Element Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTJavaElementImpl#getElementType <em>Element Type</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTJavaElementImpl#getComment <em>Comment</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTJavaElementImpl#isGenerated <em>Generated</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTJavaElementImpl#getParent <em>Parent</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class JDTJavaElementImpl extends EObjectImpl implements JDTJavaElement {
+
+ /**
+ * The default value of the '{@link #getElementName() <em>Element Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getElementName()
+ * @generated
+ * @ordered
+ */
+ protected static final String ELEMENT_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getElementName() <em>Element Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getElementName()
+ * @generated
+ * @ordered
+ */
+ protected String elementName = ELEMENT_NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getElementType() <em>Element Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getElementType()
+ * @generated
+ * @ordered
+ */
+ protected static final int ELEMENT_TYPE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getElementType() <em>Element Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getElementType()
+ * @generated
+ * @ordered
+ */
+ protected int elementType = ELEMENT_TYPE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getComment() <em>Comment</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getComment()
+ * @generated
+ * @ordered
+ */
+ protected static final String COMMENT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getComment() <em>Comment</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getComment()
+ * @generated
+ * @ordered
+ */
+ protected String comment = COMMENT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isGenerated() <em>Generated</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isGenerated()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean GENERATED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isGenerated() <em>Generated</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isGenerated()
+ * @generated
+ * @ordered
+ */
+ protected boolean generated = GENERATED_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTJavaElementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return JdtmmPackage.Literals.JDT_JAVA_ELEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTParent getParent() {
+ JDTParent parent = basicGetParent();
+ return parent != null && parent.eIsProxy() ? (JDTParent) eResolveProxy((InternalEObject) parent) : parent;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JDTParent basicGetParent() {
+ // TODO: implement this method to return the 'Parent' reference
+ // -> do not perform proxy resolution
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getElementName() {
+ return elementName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setElementName(String newElementName) {
+ String oldElementName = elementName;
+ elementName = newElementName;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JdtmmPackage.JDT_JAVA_ELEMENT__ELEMENT_NAME, oldElementName, elementName));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public int getElementType() {
+ return elementType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setElementType(int newElementType) {
+ int oldElementType = elementType;
+ elementType = newElementType;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JdtmmPackage.JDT_JAVA_ELEMENT__ELEMENT_TYPE, oldElementType, elementType));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getComment() {
+ return comment;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setComment(String newComment) {
+ String oldComment = comment;
+ comment = newComment;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JdtmmPackage.JDT_JAVA_ELEMENT__COMMENT, oldComment, comment));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isGenerated() {
+ return generated;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setGenerated(boolean newGenerated) {
+ boolean oldGenerated = generated;
+ generated = newGenerated;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JdtmmPackage.JDT_JAVA_ELEMENT__GENERATED, oldGenerated, generated));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated not
+ */
+ @Override
+ public String getQualifiedName() {
+ return getElementName();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @throws JDTVisitorException
+ * @generated NOT
+ */
+ @Override
+ public void accept(JDTVisitor visitor) throws JDTVisitorException {
+ visitor.visit(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getJDTSignature() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_JAVA_ELEMENT__ELEMENT_NAME:
+ return getElementName();
+ case JdtmmPackage.JDT_JAVA_ELEMENT__ELEMENT_TYPE:
+ return getElementType();
+ case JdtmmPackage.JDT_JAVA_ELEMENT__COMMENT:
+ return getComment();
+ case JdtmmPackage.JDT_JAVA_ELEMENT__GENERATED:
+ return isGenerated();
+ case JdtmmPackage.JDT_JAVA_ELEMENT__PARENT:
+ if (resolve) {
+ return getParent();
+ }
+ return basicGetParent();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_JAVA_ELEMENT__ELEMENT_NAME:
+ setElementName((String) newValue);
+ return;
+ case JdtmmPackage.JDT_JAVA_ELEMENT__ELEMENT_TYPE:
+ setElementType((Integer) newValue);
+ return;
+ case JdtmmPackage.JDT_JAVA_ELEMENT__COMMENT:
+ setComment((String) newValue);
+ return;
+ case JdtmmPackage.JDT_JAVA_ELEMENT__GENERATED:
+ setGenerated((Boolean) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_JAVA_ELEMENT__ELEMENT_NAME:
+ setElementName(ELEMENT_NAME_EDEFAULT);
+ return;
+ case JdtmmPackage.JDT_JAVA_ELEMENT__ELEMENT_TYPE:
+ setElementType(ELEMENT_TYPE_EDEFAULT);
+ return;
+ case JdtmmPackage.JDT_JAVA_ELEMENT__COMMENT:
+ setComment(COMMENT_EDEFAULT);
+ return;
+ case JdtmmPackage.JDT_JAVA_ELEMENT__GENERATED:
+ setGenerated(GENERATED_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_JAVA_ELEMENT__ELEMENT_NAME:
+ return ELEMENT_NAME_EDEFAULT == null ? elementName != null : !ELEMENT_NAME_EDEFAULT.equals(elementName);
+ case JdtmmPackage.JDT_JAVA_ELEMENT__ELEMENT_TYPE:
+ return elementType != ELEMENT_TYPE_EDEFAULT;
+ case JdtmmPackage.JDT_JAVA_ELEMENT__COMMENT:
+ return COMMENT_EDEFAULT == null ? comment != null : !COMMENT_EDEFAULT.equals(comment);
+ case JdtmmPackage.JDT_JAVA_ELEMENT__GENERATED:
+ return generated != GENERATED_EDEFAULT;
+ case JdtmmPackage.JDT_JAVA_ELEMENT__PARENT:
+ return basicGetParent() != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) {
+ return super.toString();
+ }
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (elementName: ");
+ result.append(elementName);
+ result.append(", elementType: ");
+ result.append(elementType);
+ result.append(", comment: ");
+ result.append(comment);
+ result.append(", generated: ");
+ result.append(generated);
+ result.append(')');
+ return result.toString();
+ }
+
+} // JDTJavaElementImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTJavaModelImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTJavaModelImpl.java
new file mode 100644
index 00000000000..ac4c2ac89db
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTJavaModelImpl.java
@@ -0,0 +1,193 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaModel;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaProject;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>JDT Java Model</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTJavaModelImpl#getJavaProject <em>Java Project</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class JDTJavaModelImpl extends JDTParentJavaElementImpl implements JDTJavaModel {
+
+ /**
+ * The cached value of the '{@link #getJavaProject() <em>Java Project</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getJavaProject()
+ * @generated
+ * @ordered
+ */
+ protected EList<JDTJavaProject> javaProject;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTJavaModelImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return JdtmmPackage.Literals.JDT_JAVA_MODEL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EList<JDTJavaProject> getJavaProject() {
+ if (javaProject == null) {
+ javaProject = new EObjectContainmentWithInverseEList<JDTJavaProject>(JDTJavaProject.class, this, JdtmmPackage.JDT_JAVA_MODEL__JAVA_PROJECT, JdtmmPackage.JDT_JAVA_PROJECT__JAVA_MODEL);
+ }
+ return javaProject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_JAVA_MODEL__JAVA_PROJECT:
+ return ((InternalEList<InternalEObject>) (InternalEList<?>) getJavaProject()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_JAVA_MODEL__JAVA_PROJECT:
+ return ((InternalEList<?>) getJavaProject()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_JAVA_MODEL__JAVA_PROJECT:
+ return getJavaProject();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_JAVA_MODEL__JAVA_PROJECT:
+ getJavaProject().clear();
+ getJavaProject().addAll((Collection<? extends JDTJavaProject>) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_JAVA_MODEL__JAVA_PROJECT:
+ getJavaProject().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_JAVA_MODEL__JAVA_PROJECT:
+ return javaProject != null && !javaProject.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // JDTJavaModelImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTJavaProjectImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTJavaProjectImpl.java
new file mode 100644
index 00000000000..a085e987b2d
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTJavaProjectImpl.java
@@ -0,0 +1,333 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaModel;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaProject;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragmentRoot;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+import org.eclipse.uml2.common.util.DerivedUnionEObjectEList;
+import org.eclipse.uml2.common.util.SubsetSupersetEObjectContainmentWithInverseEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>JDT Java Project</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTJavaProjectImpl#getChildren <em>Children</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTJavaProjectImpl#getJavaModel <em>Java Model</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTJavaProjectImpl#getPackageFragmentRoots <em>Package Fragment Roots</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class JDTJavaProjectImpl extends JDTParentJavaElementImpl implements JDTJavaProject {
+
+ /**
+ * The cached value of the '{@link #getPackageFragmentRoots() <em>Package Fragment Roots</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getPackageFragmentRoots()
+ * @generated
+ * @ordered
+ */
+ protected EList<JDTPackageFragmentRoot> packageFragmentRoots;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTJavaProjectImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return JdtmmPackage.Literals.JDT_JAVA_PROJECT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EList<JDTJavaElement> getChildren() {
+ return new DerivedUnionEObjectEList<JDTJavaElement>(JDTJavaElement.class, this, JdtmmPackage.JDT_JAVA_PROJECT__CHILDREN, CHILDREN_ESUBSETS);
+ }
+
+ /**
+ * The array of subset feature identifiers for the '{@link #getChildren() <em>Children</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getChildren()
+ * @generated
+ * @ordered
+ */
+ protected static final int[] CHILDREN_ESUBSETS = new int[] { JdtmmPackage.JDT_JAVA_PROJECT__PACKAGE_FRAGMENT_ROOTS };
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTJavaModel getJavaModel() {
+ if (eContainerFeatureID() != JdtmmPackage.JDT_JAVA_PROJECT__JAVA_MODEL) {
+ return null;
+ }
+ return (JDTJavaModel) eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public NotificationChain basicSetJavaModel(JDTJavaModel newJavaModel, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject) newJavaModel, JdtmmPackage.JDT_JAVA_PROJECT__JAVA_MODEL, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setJavaModel(JDTJavaModel newJavaModel) {
+ if (newJavaModel != eInternalContainer() || (eContainerFeatureID() != JdtmmPackage.JDT_JAVA_PROJECT__JAVA_MODEL && newJavaModel != null)) {
+ if (EcoreUtil.isAncestor(this, newJavaModel)) {
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ }
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null) {
+ msgs = eBasicRemoveFromContainer(msgs);
+ }
+ if (newJavaModel != null) {
+ msgs = ((InternalEObject) newJavaModel).eInverseAdd(this, JdtmmPackage.JDT_JAVA_MODEL__JAVA_PROJECT, JDTJavaModel.class, msgs);
+ }
+ msgs = basicSetJavaModel(newJavaModel, msgs);
+ if (msgs != null) {
+ msgs.dispatch();
+ }
+ }
+ else if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JdtmmPackage.JDT_JAVA_PROJECT__JAVA_MODEL, newJavaModel, newJavaModel));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EList<JDTPackageFragmentRoot> getPackageFragmentRoots() {
+ if (packageFragmentRoots == null) {
+ packageFragmentRoots = new SubsetSupersetEObjectContainmentWithInverseEList<JDTPackageFragmentRoot>(JDTPackageFragmentRoot.class, this, JdtmmPackage.JDT_JAVA_PROJECT__PACKAGE_FRAGMENT_ROOTS, PACKAGE_FRAGMENT_ROOTS_ESUPERSETS, null,
+ JdtmmPackage.JDT_PACKAGE_FRAGMENT_ROOT__JAVA_PROJECT);
+ }
+ return packageFragmentRoots;
+ }
+
+ /**
+ * The array of superset feature identifiers for the '{@link #getPackageFragmentRoots() <em>Package Fragment Roots</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getPackageFragmentRoots()
+ * @generated
+ * @ordered
+ */
+ protected static final int[] PACKAGE_FRAGMENT_ROOTS_ESUPERSETS = new int[] { JdtmmPackage.JDT_JAVA_PROJECT__CHILDREN };
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_JAVA_PROJECT__JAVA_MODEL:
+ if (eInternalContainer() != null) {
+ msgs = eBasicRemoveFromContainer(msgs);
+ }
+ return basicSetJavaModel((JDTJavaModel) otherEnd, msgs);
+ case JdtmmPackage.JDT_JAVA_PROJECT__PACKAGE_FRAGMENT_ROOTS:
+ return ((InternalEList<InternalEObject>) (InternalEList<?>) getPackageFragmentRoots()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_JAVA_PROJECT__JAVA_MODEL:
+ return basicSetJavaModel(null, msgs);
+ case JdtmmPackage.JDT_JAVA_PROJECT__PACKAGE_FRAGMENT_ROOTS:
+ return ((InternalEList<?>) getPackageFragmentRoots()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case JdtmmPackage.JDT_JAVA_PROJECT__JAVA_MODEL:
+ return eInternalContainer().eInverseRemove(this, JdtmmPackage.JDT_JAVA_MODEL__JAVA_PROJECT, JDTJavaModel.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_JAVA_PROJECT__JAVA_MODEL:
+ return getJavaModel();
+ case JdtmmPackage.JDT_JAVA_PROJECT__PACKAGE_FRAGMENT_ROOTS:
+ return getPackageFragmentRoots();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_JAVA_PROJECT__JAVA_MODEL:
+ setJavaModel((JDTJavaModel) newValue);
+ return;
+ case JdtmmPackage.JDT_JAVA_PROJECT__PACKAGE_FRAGMENT_ROOTS:
+ getPackageFragmentRoots().clear();
+ getPackageFragmentRoots().addAll((Collection<? extends JDTPackageFragmentRoot>) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_JAVA_PROJECT__JAVA_MODEL:
+ setJavaModel((JDTJavaModel) null);
+ return;
+ case JdtmmPackage.JDT_JAVA_PROJECT__PACKAGE_FRAGMENT_ROOTS:
+ getPackageFragmentRoots().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_JAVA_PROJECT__JAVA_MODEL:
+ return getJavaModel() != null;
+ case JdtmmPackage.JDT_JAVA_PROJECT__PACKAGE_FRAGMENT_ROOTS:
+ return packageFragmentRoots != null && !packageFragmentRoots.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isSetChildren() {
+ return super.isSetChildren()
+ || eIsSet(JdtmmPackage.JDT_JAVA_PROJECT__PACKAGE_FRAGMENT_ROOTS);
+ }
+
+} // JDTJavaProjectImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTMemberImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTMemberImpl.java
new file mode 100644
index 00000000000..281a07e2051
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTMemberImpl.java
@@ -0,0 +1,363 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.jdt.core.Flags;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMember;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTTypeParameter;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.VisibilityKind;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>JDT Member</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTMemberImpl#getTypeParameters <em>Type Parameters</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTMemberImpl#getVisibility <em>Visibility</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTMemberImpl#getExplicitRequiredImports <em>Explicit Required Imports</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTMemberImpl#getExplicitPlainTextRequiredImports <em>Explicit Plain Text Required Imports</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class JDTMemberImpl extends JDTParentJavaElementImpl implements JDTMember {
+
+ /**
+ * The cached value of the '{@link #getTypeParameters() <em>Type Parameters</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getTypeParameters()
+ * @generated
+ * @ordered
+ */
+ protected EList<JDTTypeParameter> typeParameters;
+
+ /**
+ * The default value of the '{@link #getVisibility() <em>Visibility</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getVisibility()
+ * @generated
+ * @ordered
+ */
+ protected static final VisibilityKind VISIBILITY_EDEFAULT = VisibilityKind.PUBLIC;
+
+ /**
+ * The cached value of the '{@link #getExplicitRequiredImports() <em>Explicit Required Imports</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getExplicitRequiredImports()
+ * @generated
+ * @ordered
+ */
+ protected EList<JDTType> explicitRequiredImports;
+
+ /**
+ * The cached value of the '{@link #getExplicitPlainTextRequiredImports() <em>Explicit Plain Text Required Imports</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getExplicitPlainTextRequiredImports()
+ * @generated
+ * @ordered
+ */
+ protected EList<String> explicitPlainTextRequiredImports;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTMemberImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return JdtmmPackage.Literals.JDT_MEMBER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EList<JDTTypeParameter> getTypeParameters() {
+ if (typeParameters == null) {
+ typeParameters = new EObjectContainmentWithInverseEList<JDTTypeParameter>(JDTTypeParameter.class, this, JdtmmPackage.JDT_MEMBER__TYPE_PARAMETERS, JdtmmPackage.JDT_TYPE_PARAMETER__DECLARING_MEMBER);
+ }
+ return typeParameters;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public VisibilityKind getVisibility() {
+
+ if (Flags.isPublic(flags)) {
+ return VisibilityKind.PUBLIC;
+ } else if (Flags.isProtected(flags)) {
+ return VisibilityKind.PROTECTED;
+ } else if (Flags.isPrivate(flags)) {
+ return VisibilityKind.PRIVATE;
+ }
+
+ // default
+ return VisibilityKind.PUBLIC;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public void setVisibility(VisibilityKind newVisibility) {
+
+ switch (newVisibility) {
+ case PUBLIC:
+ setFlag(Flags.AccPublic, true);
+ setFlag(Flags.AccProtected, false);
+ setFlag(Flags.AccPrivate, false);
+ break;
+ case PROTECTED:
+ setFlag(Flags.AccPublic, false);
+ setFlag(Flags.AccProtected, true);
+ setFlag(Flags.AccPrivate, false);
+ break;
+ case PRIVATE:
+ setFlag(Flags.AccPublic, false);
+ setFlag(Flags.AccProtected, false);
+ setFlag(Flags.AccPrivate, true);
+ break;
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EList<JDTType> getExplicitRequiredImports() {
+ if (explicitRequiredImports == null) {
+ explicitRequiredImports = new EObjectResolvingEList<JDTType>(JDTType.class, this, JdtmmPackage.JDT_MEMBER__EXPLICIT_REQUIRED_IMPORTS);
+ }
+ return explicitRequiredImports;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EList<String> getExplicitPlainTextRequiredImports() {
+ if (explicitPlainTextRequiredImports == null) {
+ explicitPlainTextRequiredImports = new EDataTypeUniqueEList<String>(String.class, this, JdtmmPackage.JDT_MEMBER__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS);
+ }
+ return explicitPlainTextRequiredImports;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_MEMBER__TYPE_PARAMETERS:
+ return ((InternalEList<InternalEObject>) (InternalEList<?>) getTypeParameters()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_MEMBER__TYPE_PARAMETERS:
+ return ((InternalEList<?>) getTypeParameters()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_MEMBER__TYPE_PARAMETERS:
+ return getTypeParameters();
+ case JdtmmPackage.JDT_MEMBER__VISIBILITY:
+ return getVisibility();
+ case JdtmmPackage.JDT_MEMBER__EXPLICIT_REQUIRED_IMPORTS:
+ return getExplicitRequiredImports();
+ case JdtmmPackage.JDT_MEMBER__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS:
+ return getExplicitPlainTextRequiredImports();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_MEMBER__TYPE_PARAMETERS:
+ getTypeParameters().clear();
+ getTypeParameters().addAll((Collection<? extends JDTTypeParameter>) newValue);
+ return;
+ case JdtmmPackage.JDT_MEMBER__VISIBILITY:
+ setVisibility((VisibilityKind) newValue);
+ return;
+ case JdtmmPackage.JDT_MEMBER__EXPLICIT_REQUIRED_IMPORTS:
+ getExplicitRequiredImports().clear();
+ getExplicitRequiredImports().addAll((Collection<? extends JDTType>) newValue);
+ return;
+ case JdtmmPackage.JDT_MEMBER__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS:
+ getExplicitPlainTextRequiredImports().clear();
+ getExplicitPlainTextRequiredImports().addAll((Collection<? extends String>) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_MEMBER__TYPE_PARAMETERS:
+ getTypeParameters().clear();
+ return;
+ case JdtmmPackage.JDT_MEMBER__VISIBILITY:
+ setVisibility(VISIBILITY_EDEFAULT);
+ return;
+ case JdtmmPackage.JDT_MEMBER__EXPLICIT_REQUIRED_IMPORTS:
+ getExplicitRequiredImports().clear();
+ return;
+ case JdtmmPackage.JDT_MEMBER__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS:
+ getExplicitPlainTextRequiredImports().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_MEMBER__TYPE_PARAMETERS:
+ return typeParameters != null && !typeParameters.isEmpty();
+ case JdtmmPackage.JDT_MEMBER__VISIBILITY:
+ return getVisibility() != VISIBILITY_EDEFAULT;
+ case JdtmmPackage.JDT_MEMBER__EXPLICIT_REQUIRED_IMPORTS:
+ return explicitRequiredImports != null && !explicitRequiredImports.isEmpty();
+ case JdtmmPackage.JDT_MEMBER__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS:
+ return explicitPlainTextRequiredImports != null && !explicitPlainTextRequiredImports.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) {
+ return super.toString();
+ }
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (explicitPlainTextRequiredImports: ");
+ result.append(explicitPlainTextRequiredImports);
+ result.append(')');
+ return result.toString();
+ }
+
+
+} // JDTMemberImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTMethodBodyImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTMethodBodyImpl.java
new file mode 100644
index 00000000000..9cc13471a7c
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTMethodBodyImpl.java
@@ -0,0 +1,232 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethodBody;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>JDT Method Body</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTMethodBodyImpl#getOwner <em>Owner</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class JDTMethodBodyImpl extends EObjectImpl implements JDTMethodBody {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTMethodBodyImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return JdtmmPackage.Literals.JDT_METHOD_BODY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTMethod getOwner() {
+ if (eContainerFeatureID() != JdtmmPackage.JDT_METHOD_BODY__OWNER) {
+ return null;
+ }
+ return (JDTMethod) eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public NotificationChain basicSetOwner(JDTMethod newOwner, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject) newOwner, JdtmmPackage.JDT_METHOD_BODY__OWNER, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setOwner(JDTMethod newOwner) {
+ if (newOwner != eInternalContainer() || (eContainerFeatureID() != JdtmmPackage.JDT_METHOD_BODY__OWNER && newOwner != null)) {
+ if (EcoreUtil.isAncestor(this, newOwner)) {
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ }
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null) {
+ msgs = eBasicRemoveFromContainer(msgs);
+ }
+ if (newOwner != null) {
+ msgs = ((InternalEObject) newOwner).eInverseAdd(this, JdtmmPackage.JDT_METHOD__BODIES, JDTMethod.class, msgs);
+ }
+ msgs = basicSetOwner(newOwner, msgs);
+ if (msgs != null) {
+ msgs.dispatch();
+ }
+ }
+ else if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JdtmmPackage.JDT_METHOD_BODY__OWNER, newOwner, newOwner));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String asText() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_METHOD_BODY__OWNER:
+ if (eInternalContainer() != null) {
+ msgs = eBasicRemoveFromContainer(msgs);
+ }
+ return basicSetOwner((JDTMethod) otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_METHOD_BODY__OWNER:
+ return basicSetOwner(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case JdtmmPackage.JDT_METHOD_BODY__OWNER:
+ return eInternalContainer().eInverseRemove(this, JdtmmPackage.JDT_METHOD__BODIES, JDTMethod.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_METHOD_BODY__OWNER:
+ return getOwner();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_METHOD_BODY__OWNER:
+ setOwner((JDTMethod) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_METHOD_BODY__OWNER:
+ setOwner((JDTMethod) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_METHOD_BODY__OWNER:
+ return getOwner() != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // JDTMethodBodyImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTMethodImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTMethodImpl.java
new file mode 100644
index 00000000000..59aabb752f5
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTMethodImpl.java
@@ -0,0 +1,779 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.jdt.core.Flags;
+import org.eclipse.jdt.core.Signature;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethodBody;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParent;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>JDT Method</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTMethodImpl#getOwner <em>Owner</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTMethodImpl#getReturnType <em>Return Type</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTMethodImpl#getParameters <em>Parameters</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTMethodImpl#isAbstract <em>Abstract</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTMethodImpl#isFinal <em>Final</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTMethodImpl#isStatic <em>Static</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTMethodImpl#getExceptions <em>Exceptions</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTMethodImpl#isSynchronized <em>Synchronized</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTMethodImpl#isConstructor <em>Constructor</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTMethodImpl#getBodies <em>Bodies</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class JDTMethodImpl extends JDTMemberImpl implements JDTMethod {
+
+ /**
+ * The cached value of the '{@link #getReturnType() <em>Return Type</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getReturnType()
+ * @generated
+ * @ordered
+ */
+ protected JDTParameter returnType;
+
+ /**
+ * The cached value of the '{@link #getParameters() <em>Parameters</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getParameters()
+ * @generated
+ * @ordered
+ */
+ protected EList<JDTParameter> parameters;
+
+ /**
+ * The default value of the '{@link #isAbstract() <em>Abstract</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isAbstract()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean ABSTRACT_EDEFAULT = false;
+
+ /**
+ * The default value of the '{@link #isFinal() <em>Final</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isFinal()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean FINAL_EDEFAULT = false;
+
+ /**
+ * The default value of the '{@link #isStatic() <em>Static</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isStatic()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean STATIC_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #getExceptions() <em>Exceptions</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getExceptions()
+ * @generated
+ * @ordered
+ */
+ protected EList<JDTType> exceptions;
+
+ /**
+ * The default value of the '{@link #isSynchronized() <em>Synchronized</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isSynchronized()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean SYNCHRONIZED_EDEFAULT = false;
+
+ /**
+ * The default value of the '{@link #isConstructor() <em>Constructor</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isConstructor()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean CONSTRUCTOR_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isConstructor() <em>Constructor</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isConstructor()
+ * @generated
+ * @ordered
+ */
+ protected boolean constructor = CONSTRUCTOR_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getBodies() <em>Bodies</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getBodies()
+ * @generated
+ * @ordered
+ */
+ protected EList<JDTMethodBody> bodies;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTMethodImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return JdtmmPackage.Literals.JDT_METHOD;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTParameter getReturnType() {
+ return returnType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public NotificationChain basicSetReturnType(JDTParameter newReturnType, NotificationChain msgs) {
+ JDTParameter oldReturnType = returnType;
+ returnType = newReturnType;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, JdtmmPackage.JDT_METHOD__RETURN_TYPE, oldReturnType, newReturnType);
+ if (msgs == null) {
+ msgs = notification;
+ } else {
+ msgs.add(notification);
+ }
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setReturnType(JDTParameter newReturnType) {
+ if (newReturnType != returnType) {
+ NotificationChain msgs = null;
+ if (returnType != null) {
+ msgs = ((InternalEObject) returnType).eInverseRemove(this, JdtmmPackage.JDT_PARAMETER__RETURN_OWNER, JDTParameter.class, msgs);
+ }
+ if (newReturnType != null) {
+ msgs = ((InternalEObject) newReturnType).eInverseAdd(this, JdtmmPackage.JDT_PARAMETER__RETURN_OWNER, JDTParameter.class, msgs);
+ }
+ msgs = basicSetReturnType(newReturnType, msgs);
+ if (msgs != null) {
+ msgs.dispatch();
+ }
+ }
+ else if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JdtmmPackage.JDT_METHOD__RETURN_TYPE, newReturnType, newReturnType));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EList<JDTParameter> getParameters() {
+ if (parameters == null) {
+ parameters = new EObjectContainmentWithInverseEList<JDTParameter>(JDTParameter.class, this, JdtmmPackage.JDT_METHOD__PARAMETERS, JdtmmPackage.JDT_PARAMETER__PARAMETER_OWNER);
+ }
+ return parameters;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EList<JDTType> getExceptions() {
+ if (exceptions == null) {
+ exceptions = new EObjectResolvingEList<JDTType>(JDTType.class, this, JdtmmPackage.JDT_METHOD__EXCEPTIONS);
+ }
+ return exceptions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public boolean isSynchronized() {
+ // Ensure that you remove @generated or mark it @generated NOT
+ return isFlagSet(Flags.AccSynchronized);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public void setSynchronized(boolean newSynchronized) {
+ // Ensure that you remove @generated or mark it @generated NOT
+ setFlag(Flags.AccSynchronized, newSynchronized);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isConstructor() {
+ return constructor;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setConstructor(boolean newConstructor) {
+ boolean oldConstructor = constructor;
+ constructor = newConstructor;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JdtmmPackage.JDT_METHOD__CONSTRUCTOR, oldConstructor, constructor));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EList<JDTMethodBody> getBodies() {
+ if (bodies == null) {
+ bodies = new EObjectContainmentWithInverseEList<JDTMethodBody>(JDTMethodBody.class, this, JdtmmPackage.JDT_METHOD__BODIES, JdtmmPackage.JDT_METHOD_BODY__OWNER);
+ }
+ return bodies;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTType getOwner() {
+ if (eContainerFeatureID() != JdtmmPackage.JDT_METHOD__OWNER) {
+ return null;
+ }
+ return (JDTType) eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public NotificationChain basicSetOwner(JDTType newOwner, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject) newOwner, JdtmmPackage.JDT_METHOD__OWNER, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setOwner(JDTType newOwner) {
+ if (newOwner != eInternalContainer() || (eContainerFeatureID() != JdtmmPackage.JDT_METHOD__OWNER && newOwner != null)) {
+ if (EcoreUtil.isAncestor(this, newOwner)) {
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ }
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null) {
+ msgs = eBasicRemoveFromContainer(msgs);
+ }
+ if (newOwner != null) {
+ msgs = ((InternalEObject) newOwner).eInverseAdd(this, JdtmmPackage.JDT_TYPE__METHODS, JDTType.class, msgs);
+ }
+ msgs = basicSetOwner(newOwner, msgs);
+ if (msgs != null) {
+ msgs.dispatch();
+ }
+ }
+ else if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JdtmmPackage.JDT_METHOD__OWNER, newOwner, newOwner));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public boolean isSetOwner() {
+ return getOwner() != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_METHOD__OWNER:
+ if (eInternalContainer() != null) {
+ msgs = eBasicRemoveFromContainer(msgs);
+ }
+ return basicSetOwner((JDTType) otherEnd, msgs);
+ case JdtmmPackage.JDT_METHOD__RETURN_TYPE:
+ if (returnType != null) {
+ msgs = ((InternalEObject) returnType).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - JdtmmPackage.JDT_METHOD__RETURN_TYPE, null, msgs);
+ }
+ return basicSetReturnType((JDTParameter) otherEnd, msgs);
+ case JdtmmPackage.JDT_METHOD__PARAMETERS:
+ return ((InternalEList<InternalEObject>) (InternalEList<?>) getParameters()).basicAdd(otherEnd, msgs);
+ case JdtmmPackage.JDT_METHOD__BODIES:
+ return ((InternalEList<InternalEObject>) (InternalEList<?>) getBodies()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_METHOD__OWNER:
+ return basicSetOwner(null, msgs);
+ case JdtmmPackage.JDT_METHOD__RETURN_TYPE:
+ return basicSetReturnType(null, msgs);
+ case JdtmmPackage.JDT_METHOD__PARAMETERS:
+ return ((InternalEList<?>) getParameters()).basicRemove(otherEnd, msgs);
+ case JdtmmPackage.JDT_METHOD__BODIES:
+ return ((InternalEList<?>) getBodies()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case JdtmmPackage.JDT_METHOD__OWNER:
+ return eInternalContainer().eInverseRemove(this, JdtmmPackage.JDT_TYPE__METHODS, JDTType.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_METHOD__OWNER:
+ return getOwner();
+ case JdtmmPackage.JDT_METHOD__RETURN_TYPE:
+ return getReturnType();
+ case JdtmmPackage.JDT_METHOD__PARAMETERS:
+ return getParameters();
+ case JdtmmPackage.JDT_METHOD__ABSTRACT:
+ return isAbstract();
+ case JdtmmPackage.JDT_METHOD__FINAL:
+ return isFinal();
+ case JdtmmPackage.JDT_METHOD__STATIC:
+ return isStatic();
+ case JdtmmPackage.JDT_METHOD__EXCEPTIONS:
+ return getExceptions();
+ case JdtmmPackage.JDT_METHOD__SYNCHRONIZED:
+ return isSynchronized();
+ case JdtmmPackage.JDT_METHOD__CONSTRUCTOR:
+ return isConstructor();
+ case JdtmmPackage.JDT_METHOD__BODIES:
+ return getBodies();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_METHOD__OWNER:
+ setOwner((JDTType) newValue);
+ return;
+ case JdtmmPackage.JDT_METHOD__RETURN_TYPE:
+ setReturnType((JDTParameter) newValue);
+ return;
+ case JdtmmPackage.JDT_METHOD__PARAMETERS:
+ getParameters().clear();
+ getParameters().addAll((Collection<? extends JDTParameter>) newValue);
+ return;
+ case JdtmmPackage.JDT_METHOD__ABSTRACT:
+ setAbstract((Boolean) newValue);
+ return;
+ case JdtmmPackage.JDT_METHOD__FINAL:
+ setFinal((Boolean) newValue);
+ return;
+ case JdtmmPackage.JDT_METHOD__STATIC:
+ setStatic((Boolean) newValue);
+ return;
+ case JdtmmPackage.JDT_METHOD__EXCEPTIONS:
+ getExceptions().clear();
+ getExceptions().addAll((Collection<? extends JDTType>) newValue);
+ return;
+ case JdtmmPackage.JDT_METHOD__SYNCHRONIZED:
+ setSynchronized((Boolean) newValue);
+ return;
+ case JdtmmPackage.JDT_METHOD__CONSTRUCTOR:
+ setConstructor((Boolean) newValue);
+ return;
+ case JdtmmPackage.JDT_METHOD__BODIES:
+ getBodies().clear();
+ getBodies().addAll((Collection<? extends JDTMethodBody>) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_METHOD__OWNER:
+ setOwner((JDTType) null);
+ return;
+ case JdtmmPackage.JDT_METHOD__RETURN_TYPE:
+ setReturnType((JDTParameter) null);
+ return;
+ case JdtmmPackage.JDT_METHOD__PARAMETERS:
+ getParameters().clear();
+ return;
+ case JdtmmPackage.JDT_METHOD__ABSTRACT:
+ setAbstract(ABSTRACT_EDEFAULT);
+ return;
+ case JdtmmPackage.JDT_METHOD__FINAL:
+ setFinal(FINAL_EDEFAULT);
+ return;
+ case JdtmmPackage.JDT_METHOD__STATIC:
+ setStatic(STATIC_EDEFAULT);
+ return;
+ case JdtmmPackage.JDT_METHOD__EXCEPTIONS:
+ getExceptions().clear();
+ return;
+ case JdtmmPackage.JDT_METHOD__SYNCHRONIZED:
+ setSynchronized(SYNCHRONIZED_EDEFAULT);
+ return;
+ case JdtmmPackage.JDT_METHOD__CONSTRUCTOR:
+ setConstructor(CONSTRUCTOR_EDEFAULT);
+ return;
+ case JdtmmPackage.JDT_METHOD__BODIES:
+ getBodies().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_METHOD__OWNER:
+ return isSetOwner();
+ case JdtmmPackage.JDT_METHOD__RETURN_TYPE:
+ return returnType != null;
+ case JdtmmPackage.JDT_METHOD__PARAMETERS:
+ return parameters != null && !parameters.isEmpty();
+ case JdtmmPackage.JDT_METHOD__ABSTRACT:
+ return isAbstract() != ABSTRACT_EDEFAULT;
+ case JdtmmPackage.JDT_METHOD__FINAL:
+ return isFinal() != FINAL_EDEFAULT;
+ case JdtmmPackage.JDT_METHOD__STATIC:
+ return isStatic() != STATIC_EDEFAULT;
+ case JdtmmPackage.JDT_METHOD__EXCEPTIONS:
+ return exceptions != null && !exceptions.isEmpty();
+ case JdtmmPackage.JDT_METHOD__SYNCHRONIZED:
+ return isSynchronized() != SYNCHRONIZED_EDEFAULT;
+ case JdtmmPackage.JDT_METHOD__CONSTRUCTOR:
+ return constructor != CONSTRUCTOR_EDEFAULT;
+ case JdtmmPackage.JDT_METHOD__BODIES:
+ return bodies != null && !bodies.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) {
+ return super.toString();
+ }
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (constructor: ");
+ result.append(constructor);
+ result.append(')');
+ return result.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTParent getParent() {
+ return getOwner();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTParent basicGetParent() {
+ return getOwner();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public boolean isSetParent() {
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public boolean isAbstract() {
+ // Ensure that you remove @generated or mark it @generated NOT
+ return isFlagSet(Flags.AccAbstract);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public boolean isFinal() {
+ // Ensure that you remove @generated or mark it @generated NOT
+ return isFlagSet(Flags.AccFinal);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public boolean isStatic() {
+ return isFlagSet(Flags.AccStatic);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public void setAbstract(boolean newAbstract) {
+ // Ensure that you remove @generated or mark it @generated NOT
+ setFlag(Flags.AccAbstract, newAbstract);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public void setFinal(boolean newFinal) {
+
+ setFlag(Flags.AccFinal, newFinal);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public void setStatic(boolean newStatic) {
+ setFlag(Flags.AccStatic, newStatic);
+ }
+
+ @Override
+ public String getJDTSignature() {
+ List<String> lst = new ArrayList<String>();
+
+ // signature of parameter
+ for (JDTParameter p : parameters) {
+ lst.add(p.getJDTSignature());
+ }
+
+ String[] params = new String[lst.size()];
+ lst.toArray(params);
+
+ // signature of return
+ String returnTypeStr = Signature.createTypeSignature("void", false);
+ if (returnType != null) {
+ returnTypeStr = returnType.getJDTSignature();
+ }
+
+ return Signature.createMethodSignature(params, returnTypeStr);
+ }
+
+
+} // JDTMethodImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTOpaqueBodyImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTOpaqueBodyImpl.java
new file mode 100644
index 00000000000..13f1b15dd2b
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTOpaqueBodyImpl.java
@@ -0,0 +1,191 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTOpaqueBody;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>JDT Opaque Body</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTOpaqueBodyImpl#get_body <em>body</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class JDTOpaqueBodyImpl extends JDTMethodBodyImpl implements JDTOpaqueBody {
+ /**
+ * The default value of the '{@link #get_body() <em>body</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #get_body()
+ * @generated
+ * @ordered
+ */
+ protected static final String _BODY_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #get_body() <em>body</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #get_body()
+ * @generated
+ * @ordered
+ */
+ protected String _body = _BODY_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTOpaqueBodyImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return JdtmmPackage.Literals.JDT_OPAQUE_BODY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String get_body() {
+ return _body;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void set_body(String new_body) {
+ String old_body = _body;
+ _body = new_body;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JdtmmPackage.JDT_OPAQUE_BODY__BODY, old_body, _body));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public String asText() {
+ return get_body();
+ }
+
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_OPAQUE_BODY__BODY:
+ return get_body();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_OPAQUE_BODY__BODY:
+ set_body((String) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_OPAQUE_BODY__BODY:
+ set_body(_BODY_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_OPAQUE_BODY__BODY:
+ return _BODY_EDEFAULT == null ? _body != null : !_BODY_EDEFAULT.equals(_body);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) {
+ return super.toString();
+ }
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (_body: ");
+ result.append(_body);
+ result.append(')');
+ return result.toString();
+ }
+
+} // JDTOpaqueBodyImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTPackageFragmentImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTPackageFragmentImpl.java
new file mode 100644
index 00000000000..d3eff0ac3cb
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTPackageFragmentImpl.java
@@ -0,0 +1,376 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTCompilationUnit;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragment;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragmentRoot;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParent;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+import org.eclipse.uml2.common.util.DerivedUnionEObjectEList;
+import org.eclipse.uml2.common.util.SubsetSupersetEObjectContainmentWithInverseEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>JDT Package Fragment</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTPackageFragmentImpl#getChildren <em>Children</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTPackageFragmentImpl#getPackageFragmentRoot <em>Package Fragment Root</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTPackageFragmentImpl#getCompilationUnits <em>Compilation Units</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class JDTPackageFragmentImpl extends JDTParentJavaElementImpl implements JDTPackageFragment {
+
+ /**
+ * The cached value of the '{@link #getCompilationUnits() <em>Compilation Units</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getCompilationUnits()
+ * @generated
+ * @ordered
+ */
+ protected EList<JDTCompilationUnit> compilationUnits;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTPackageFragmentImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return JdtmmPackage.Literals.JDT_PACKAGE_FRAGMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EList<JDTJavaElement> getChildren() {
+ return new DerivedUnionEObjectEList<JDTJavaElement>(JDTJavaElement.class, this, JdtmmPackage.JDT_PACKAGE_FRAGMENT__CHILDREN, CHILDREN_ESUBSETS);
+ }
+
+ /**
+ * The array of subset feature identifiers for the '{@link #getChildren() <em>Children</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getChildren()
+ * @generated
+ * @ordered
+ */
+ protected static final int[] CHILDREN_ESUBSETS = new int[] { JdtmmPackage.JDT_PACKAGE_FRAGMENT__COMPILATION_UNITS };
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTPackageFragmentRoot getPackageFragmentRoot() {
+ if (eContainerFeatureID() != JdtmmPackage.JDT_PACKAGE_FRAGMENT__PACKAGE_FRAGMENT_ROOT) {
+ return null;
+ }
+ return (JDTPackageFragmentRoot) eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public NotificationChain basicSetPackageFragmentRoot(JDTPackageFragmentRoot newPackageFragmentRoot, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject) newPackageFragmentRoot, JdtmmPackage.JDT_PACKAGE_FRAGMENT__PACKAGE_FRAGMENT_ROOT, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setPackageFragmentRoot(JDTPackageFragmentRoot newPackageFragmentRoot) {
+ if (newPackageFragmentRoot != eInternalContainer() || (eContainerFeatureID() != JdtmmPackage.JDT_PACKAGE_FRAGMENT__PACKAGE_FRAGMENT_ROOT && newPackageFragmentRoot != null)) {
+ if (EcoreUtil.isAncestor(this, newPackageFragmentRoot)) {
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ }
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null) {
+ msgs = eBasicRemoveFromContainer(msgs);
+ }
+ if (newPackageFragmentRoot != null) {
+ msgs = ((InternalEObject) newPackageFragmentRoot).eInverseAdd(this, JdtmmPackage.JDT_PACKAGE_FRAGMENT_ROOT__PACKAGE_FRAGMENTS, JDTPackageFragmentRoot.class, msgs);
+ }
+ msgs = basicSetPackageFragmentRoot(newPackageFragmentRoot, msgs);
+ if (msgs != null) {
+ msgs.dispatch();
+ }
+ }
+ else if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JdtmmPackage.JDT_PACKAGE_FRAGMENT__PACKAGE_FRAGMENT_ROOT, newPackageFragmentRoot, newPackageFragmentRoot));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public boolean isSetPackageFragmentRoot() {
+ return getPackageFragmentRoot() != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EList<JDTCompilationUnit> getCompilationUnits() {
+ if (compilationUnits == null) {
+ compilationUnits = new SubsetSupersetEObjectContainmentWithInverseEList<JDTCompilationUnit>(JDTCompilationUnit.class, this, JdtmmPackage.JDT_PACKAGE_FRAGMENT__COMPILATION_UNITS, COMPILATION_UNITS_ESUPERSETS, null,
+ JdtmmPackage.JDT_COMPILATION_UNIT__PACKAGE_FRAGMENT);
+ }
+ return compilationUnits;
+ }
+
+ /**
+ * The array of superset feature identifiers for the '{@link #getCompilationUnits() <em>Compilation Units</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getCompilationUnits()
+ * @generated
+ * @ordered
+ */
+ protected static final int[] COMPILATION_UNITS_ESUPERSETS = new int[] { JdtmmPackage.JDT_PACKAGE_FRAGMENT__CHILDREN };
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_PACKAGE_FRAGMENT__PACKAGE_FRAGMENT_ROOT:
+ if (eInternalContainer() != null) {
+ msgs = eBasicRemoveFromContainer(msgs);
+ }
+ return basicSetPackageFragmentRoot((JDTPackageFragmentRoot) otherEnd, msgs);
+ case JdtmmPackage.JDT_PACKAGE_FRAGMENT__COMPILATION_UNITS:
+ return ((InternalEList<InternalEObject>) (InternalEList<?>) getCompilationUnits()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_PACKAGE_FRAGMENT__PACKAGE_FRAGMENT_ROOT:
+ return basicSetPackageFragmentRoot(null, msgs);
+ case JdtmmPackage.JDT_PACKAGE_FRAGMENT__COMPILATION_UNITS:
+ return ((InternalEList<?>) getCompilationUnits()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case JdtmmPackage.JDT_PACKAGE_FRAGMENT__PACKAGE_FRAGMENT_ROOT:
+ return eInternalContainer().eInverseRemove(this, JdtmmPackage.JDT_PACKAGE_FRAGMENT_ROOT__PACKAGE_FRAGMENTS, JDTPackageFragmentRoot.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_PACKAGE_FRAGMENT__PACKAGE_FRAGMENT_ROOT:
+ return getPackageFragmentRoot();
+ case JdtmmPackage.JDT_PACKAGE_FRAGMENT__COMPILATION_UNITS:
+ return getCompilationUnits();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_PACKAGE_FRAGMENT__PACKAGE_FRAGMENT_ROOT:
+ setPackageFragmentRoot((JDTPackageFragmentRoot) newValue);
+ return;
+ case JdtmmPackage.JDT_PACKAGE_FRAGMENT__COMPILATION_UNITS:
+ getCompilationUnits().clear();
+ getCompilationUnits().addAll((Collection<? extends JDTCompilationUnit>) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_PACKAGE_FRAGMENT__PACKAGE_FRAGMENT_ROOT:
+ setPackageFragmentRoot((JDTPackageFragmentRoot) null);
+ return;
+ case JdtmmPackage.JDT_PACKAGE_FRAGMENT__COMPILATION_UNITS:
+ getCompilationUnits().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_PACKAGE_FRAGMENT__PACKAGE_FRAGMENT_ROOT:
+ return isSetPackageFragmentRoot();
+ case JdtmmPackage.JDT_PACKAGE_FRAGMENT__COMPILATION_UNITS:
+ return compilationUnits != null && !compilationUnits.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isSetChildren() {
+ return super.isSetChildren()
+ || eIsSet(JdtmmPackage.JDT_PACKAGE_FRAGMENT__COMPILATION_UNITS);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTParent getParent() {
+ return getPackageFragmentRoot();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTParent basicGetParent() {
+ return getPackageFragmentRoot();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public boolean isSetParent() {
+ return false;
+ }
+
+} // JDTPackageFragmentImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTPackageFragmentRootImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTPackageFragmentRootImpl.java
new file mode 100644
index 00000000000..07c30c7406f
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTPackageFragmentRootImpl.java
@@ -0,0 +1,376 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaProject;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragment;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragmentRoot;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParent;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+import org.eclipse.uml2.common.util.DerivedUnionEObjectEList;
+import org.eclipse.uml2.common.util.SubsetSupersetEObjectContainmentWithInverseEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>JDT Package Fragment Root</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTPackageFragmentRootImpl#getChildren <em>Children</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTPackageFragmentRootImpl#getJavaProject <em>Java Project</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTPackageFragmentRootImpl#getPackageFragments <em>Package Fragments</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class JDTPackageFragmentRootImpl extends JDTParentJavaElementImpl implements JDTPackageFragmentRoot {
+
+ /**
+ * The cached value of the '{@link #getPackageFragments() <em>Package Fragments</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getPackageFragments()
+ * @generated
+ * @ordered
+ */
+ protected EList<JDTPackageFragment> packageFragments;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTPackageFragmentRootImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return JdtmmPackage.Literals.JDT_PACKAGE_FRAGMENT_ROOT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EList<JDTJavaElement> getChildren() {
+ return new DerivedUnionEObjectEList<JDTJavaElement>(JDTJavaElement.class, this, JdtmmPackage.JDT_PACKAGE_FRAGMENT_ROOT__CHILDREN, CHILDREN_ESUBSETS);
+ }
+
+ /**
+ * The array of subset feature identifiers for the '{@link #getChildren() <em>Children</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getChildren()
+ * @generated
+ * @ordered
+ */
+ protected static final int[] CHILDREN_ESUBSETS = new int[] { JdtmmPackage.JDT_PACKAGE_FRAGMENT_ROOT__PACKAGE_FRAGMENTS };
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTJavaProject getJavaProject() {
+ if (eContainerFeatureID() != JdtmmPackage.JDT_PACKAGE_FRAGMENT_ROOT__JAVA_PROJECT) {
+ return null;
+ }
+ return (JDTJavaProject) eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public NotificationChain basicSetJavaProject(JDTJavaProject newJavaProject, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject) newJavaProject, JdtmmPackage.JDT_PACKAGE_FRAGMENT_ROOT__JAVA_PROJECT, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setJavaProject(JDTJavaProject newJavaProject) {
+ if (newJavaProject != eInternalContainer() || (eContainerFeatureID() != JdtmmPackage.JDT_PACKAGE_FRAGMENT_ROOT__JAVA_PROJECT && newJavaProject != null)) {
+ if (EcoreUtil.isAncestor(this, newJavaProject)) {
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ }
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null) {
+ msgs = eBasicRemoveFromContainer(msgs);
+ }
+ if (newJavaProject != null) {
+ msgs = ((InternalEObject) newJavaProject).eInverseAdd(this, JdtmmPackage.JDT_JAVA_PROJECT__PACKAGE_FRAGMENT_ROOTS, JDTJavaProject.class, msgs);
+ }
+ msgs = basicSetJavaProject(newJavaProject, msgs);
+ if (msgs != null) {
+ msgs.dispatch();
+ }
+ }
+ else if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JdtmmPackage.JDT_PACKAGE_FRAGMENT_ROOT__JAVA_PROJECT, newJavaProject, newJavaProject));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public boolean isSetJavaProject() {
+ return getJavaProject() != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EList<JDTPackageFragment> getPackageFragments() {
+ if (packageFragments == null) {
+ packageFragments = new SubsetSupersetEObjectContainmentWithInverseEList<JDTPackageFragment>(JDTPackageFragment.class, this, JdtmmPackage.JDT_PACKAGE_FRAGMENT_ROOT__PACKAGE_FRAGMENTS, PACKAGE_FRAGMENTS_ESUPERSETS, null,
+ JdtmmPackage.JDT_PACKAGE_FRAGMENT__PACKAGE_FRAGMENT_ROOT);
+ }
+ return packageFragments;
+ }
+
+ /**
+ * The array of superset feature identifiers for the '{@link #getPackageFragments() <em>Package Fragments</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getPackageFragments()
+ * @generated
+ * @ordered
+ */
+ protected static final int[] PACKAGE_FRAGMENTS_ESUPERSETS = new int[] { JdtmmPackage.JDT_PACKAGE_FRAGMENT_ROOT__CHILDREN };
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_PACKAGE_FRAGMENT_ROOT__JAVA_PROJECT:
+ if (eInternalContainer() != null) {
+ msgs = eBasicRemoveFromContainer(msgs);
+ }
+ return basicSetJavaProject((JDTJavaProject) otherEnd, msgs);
+ case JdtmmPackage.JDT_PACKAGE_FRAGMENT_ROOT__PACKAGE_FRAGMENTS:
+ return ((InternalEList<InternalEObject>) (InternalEList<?>) getPackageFragments()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_PACKAGE_FRAGMENT_ROOT__JAVA_PROJECT:
+ return basicSetJavaProject(null, msgs);
+ case JdtmmPackage.JDT_PACKAGE_FRAGMENT_ROOT__PACKAGE_FRAGMENTS:
+ return ((InternalEList<?>) getPackageFragments()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case JdtmmPackage.JDT_PACKAGE_FRAGMENT_ROOT__JAVA_PROJECT:
+ return eInternalContainer().eInverseRemove(this, JdtmmPackage.JDT_JAVA_PROJECT__PACKAGE_FRAGMENT_ROOTS, JDTJavaProject.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_PACKAGE_FRAGMENT_ROOT__JAVA_PROJECT:
+ return getJavaProject();
+ case JdtmmPackage.JDT_PACKAGE_FRAGMENT_ROOT__PACKAGE_FRAGMENTS:
+ return getPackageFragments();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_PACKAGE_FRAGMENT_ROOT__JAVA_PROJECT:
+ setJavaProject((JDTJavaProject) newValue);
+ return;
+ case JdtmmPackage.JDT_PACKAGE_FRAGMENT_ROOT__PACKAGE_FRAGMENTS:
+ getPackageFragments().clear();
+ getPackageFragments().addAll((Collection<? extends JDTPackageFragment>) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_PACKAGE_FRAGMENT_ROOT__JAVA_PROJECT:
+ setJavaProject((JDTJavaProject) null);
+ return;
+ case JdtmmPackage.JDT_PACKAGE_FRAGMENT_ROOT__PACKAGE_FRAGMENTS:
+ getPackageFragments().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_PACKAGE_FRAGMENT_ROOT__JAVA_PROJECT:
+ return isSetJavaProject();
+ case JdtmmPackage.JDT_PACKAGE_FRAGMENT_ROOT__PACKAGE_FRAGMENTS:
+ return packageFragments != null && !packageFragments.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isSetChildren() {
+ return super.isSetChildren()
+ || eIsSet(JdtmmPackage.JDT_PACKAGE_FRAGMENT_ROOT__PACKAGE_FRAGMENTS);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTParent getParent() {
+ return getJavaProject();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTParent basicGetParent() {
+ return getJavaProject();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public boolean isSetParent() {
+ return false;
+ }
+
+} // JDTPackageFragmentRootImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTParameterImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTParameterImpl.java
new file mode 100644
index 00000000000..587f6e113d2
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTParameterImpl.java
@@ -0,0 +1,515 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.jdt.core.Flags;
+import org.eclipse.jdt.core.Signature;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.util.JdtmmPreference;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>JDT Parameter</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTParameterImpl#getParameterOwner <em>Parameter Owner</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTParameterImpl#isFinal <em>Final</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTParameterImpl#isMultiValued <em>Is Multi Valued</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTParameterImpl#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTParameterImpl#getReturnOwner <em>Return Owner</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class JDTParameterImpl extends JDTMemberImpl implements JDTParameter {
+
+ /**
+ * The default value of the '{@link #isFinal() <em>Final</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isFinal()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean FINAL_EDEFAULT = false;
+
+ /**
+ * The default value of the '{@link #isMultiValued() <em>Is Multi Valued</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isMultiValued()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_MULTI_VALUED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isMultiValued() <em>Is Multi Valued</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isMultiValued()
+ * @generated
+ * @ordered
+ */
+ protected boolean isMultiValued = IS_MULTI_VALUED_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected JDTType type;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTParameterImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return JdtmmPackage.Literals.JDT_PARAMETER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTMethod getParameterOwner() {
+ if (eContainerFeatureID() != JdtmmPackage.JDT_PARAMETER__PARAMETER_OWNER) {
+ return null;
+ }
+ return (JDTMethod) eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public NotificationChain basicSetParameterOwner(JDTMethod newParameterOwner, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject) newParameterOwner, JdtmmPackage.JDT_PARAMETER__PARAMETER_OWNER, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setParameterOwner(JDTMethod newParameterOwner) {
+ if (newParameterOwner != eInternalContainer() || (eContainerFeatureID() != JdtmmPackage.JDT_PARAMETER__PARAMETER_OWNER && newParameterOwner != null)) {
+ if (EcoreUtil.isAncestor(this, newParameterOwner)) {
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ }
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null) {
+ msgs = eBasicRemoveFromContainer(msgs);
+ }
+ if (newParameterOwner != null) {
+ msgs = ((InternalEObject) newParameterOwner).eInverseAdd(this, JdtmmPackage.JDT_METHOD__PARAMETERS, JDTMethod.class, msgs);
+ }
+ msgs = basicSetParameterOwner(newParameterOwner, msgs);
+ if (msgs != null) {
+ msgs.dispatch();
+ }
+ }
+ else if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JdtmmPackage.JDT_PARAMETER__PARAMETER_OWNER, newParameterOwner, newParameterOwner));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isMultiValued() {
+ return isMultiValued;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setIsMultiValued(boolean newIsMultiValued) {
+ boolean oldIsMultiValued = isMultiValued;
+ isMultiValued = newIsMultiValued;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JdtmmPackage.JDT_PARAMETER__IS_MULTI_VALUED, oldIsMultiValued, isMultiValued));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTType getType() {
+ if (type != null && type.eIsProxy()) {
+ InternalEObject oldType = (InternalEObject) type;
+ type = (JDTType) eResolveProxy(oldType);
+ if (type != oldType) {
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, JdtmmPackage.JDT_PARAMETER__TYPE, oldType, type));
+ }
+ }
+ }
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JDTType basicGetType() {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setType(JDTType newType) {
+ JDTType oldType = type;
+ type = newType;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JdtmmPackage.JDT_PARAMETER__TYPE, oldType, type));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTMethod getReturnOwner() {
+ if (eContainerFeatureID() != JdtmmPackage.JDT_PARAMETER__RETURN_OWNER) {
+ return null;
+ }
+ return (JDTMethod) eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public NotificationChain basicSetReturnOwner(JDTMethod newReturnOwner, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject) newReturnOwner, JdtmmPackage.JDT_PARAMETER__RETURN_OWNER, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setReturnOwner(JDTMethod newReturnOwner) {
+ if (newReturnOwner != eInternalContainer() || (eContainerFeatureID() != JdtmmPackage.JDT_PARAMETER__RETURN_OWNER && newReturnOwner != null)) {
+ if (EcoreUtil.isAncestor(this, newReturnOwner)) {
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ }
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null) {
+ msgs = eBasicRemoveFromContainer(msgs);
+ }
+ if (newReturnOwner != null) {
+ msgs = ((InternalEObject) newReturnOwner).eInverseAdd(this, JdtmmPackage.JDT_METHOD__RETURN_TYPE, JDTMethod.class, msgs);
+ }
+ msgs = basicSetReturnOwner(newReturnOwner, msgs);
+ if (msgs != null) {
+ msgs.dispatch();
+ }
+ }
+ else if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JdtmmPackage.JDT_PARAMETER__RETURN_OWNER, newReturnOwner, newReturnOwner));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_PARAMETER__PARAMETER_OWNER:
+ if (eInternalContainer() != null) {
+ msgs = eBasicRemoveFromContainer(msgs);
+ }
+ return basicSetParameterOwner((JDTMethod) otherEnd, msgs);
+ case JdtmmPackage.JDT_PARAMETER__RETURN_OWNER:
+ if (eInternalContainer() != null) {
+ msgs = eBasicRemoveFromContainer(msgs);
+ }
+ return basicSetReturnOwner((JDTMethod) otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_PARAMETER__PARAMETER_OWNER:
+ return basicSetParameterOwner(null, msgs);
+ case JdtmmPackage.JDT_PARAMETER__RETURN_OWNER:
+ return basicSetReturnOwner(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case JdtmmPackage.JDT_PARAMETER__PARAMETER_OWNER:
+ return eInternalContainer().eInverseRemove(this, JdtmmPackage.JDT_METHOD__PARAMETERS, JDTMethod.class, msgs);
+ case JdtmmPackage.JDT_PARAMETER__RETURN_OWNER:
+ return eInternalContainer().eInverseRemove(this, JdtmmPackage.JDT_METHOD__RETURN_TYPE, JDTMethod.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_PARAMETER__PARAMETER_OWNER:
+ return getParameterOwner();
+ case JdtmmPackage.JDT_PARAMETER__FINAL:
+ return isFinal();
+ case JdtmmPackage.JDT_PARAMETER__IS_MULTI_VALUED:
+ return isMultiValued();
+ case JdtmmPackage.JDT_PARAMETER__TYPE:
+ if (resolve) {
+ return getType();
+ }
+ return basicGetType();
+ case JdtmmPackage.JDT_PARAMETER__RETURN_OWNER:
+ return getReturnOwner();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_PARAMETER__PARAMETER_OWNER:
+ setParameterOwner((JDTMethod) newValue);
+ return;
+ case JdtmmPackage.JDT_PARAMETER__FINAL:
+ setFinal((Boolean) newValue);
+ return;
+ case JdtmmPackage.JDT_PARAMETER__IS_MULTI_VALUED:
+ setIsMultiValued((Boolean) newValue);
+ return;
+ case JdtmmPackage.JDT_PARAMETER__TYPE:
+ setType((JDTType) newValue);
+ return;
+ case JdtmmPackage.JDT_PARAMETER__RETURN_OWNER:
+ setReturnOwner((JDTMethod) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_PARAMETER__PARAMETER_OWNER:
+ setParameterOwner((JDTMethod) null);
+ return;
+ case JdtmmPackage.JDT_PARAMETER__FINAL:
+ setFinal(FINAL_EDEFAULT);
+ return;
+ case JdtmmPackage.JDT_PARAMETER__IS_MULTI_VALUED:
+ setIsMultiValued(IS_MULTI_VALUED_EDEFAULT);
+ return;
+ case JdtmmPackage.JDT_PARAMETER__TYPE:
+ setType((JDTType) null);
+ return;
+ case JdtmmPackage.JDT_PARAMETER__RETURN_OWNER:
+ setReturnOwner((JDTMethod) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_PARAMETER__PARAMETER_OWNER:
+ return getParameterOwner() != null;
+ case JdtmmPackage.JDT_PARAMETER__FINAL:
+ return isFinal() != FINAL_EDEFAULT;
+ case JdtmmPackage.JDT_PARAMETER__IS_MULTI_VALUED:
+ return isMultiValued != IS_MULTI_VALUED_EDEFAULT;
+ case JdtmmPackage.JDT_PARAMETER__TYPE:
+ return type != null;
+ case JdtmmPackage.JDT_PARAMETER__RETURN_OWNER:
+ return getReturnOwner() != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) {
+ return super.toString();
+ }
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (isMultiValued: ");
+ result.append(isMultiValued);
+ result.append(')');
+ return result.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public boolean isFinal() {
+ // TODO: implement this method to return the 'Final' attribute
+ // Ensure that you remove @generated or mark it @generated NOT
+ return isFlagSet(Flags.AccFinal);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public void setFinal(boolean newFinal) {
+
+ setFlag(Flags.AccFinal, newFinal);
+ }
+
+ @Override
+ public String getJDTSignature() {
+ if (this.isMultiValued()) {
+ return Signature.createTypeSignature(JdtmmPreference.getMultiValued(type.getElementName()), false);
+ }
+ return type.getJDTSignature();
+ }
+} // JDTParameterImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTParentImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTParentImpl.java
new file mode 100644
index 00000000000..6307b67f243
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTParentImpl.java
@@ -0,0 +1,254 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParent;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+import org.eclipse.uml2.common.util.DerivedUnionEObjectEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>JDT Parent</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTParentImpl#getChildren <em>Children</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTParentImpl#getFlags <em>Flags</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class JDTParentImpl extends EObjectImpl implements JDTParent {
+
+ /**
+ * The default value of the '{@link #getFlags() <em>Flags</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getFlags()
+ * @generated
+ * @ordered
+ */
+ protected static final int FLAGS_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getFlags() <em>Flags</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getFlags()
+ * @generated
+ * @ordered
+ */
+ protected int flags = FLAGS_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTParentImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return JdtmmPackage.Literals.JDT_PARENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EList<JDTJavaElement> getChildren() {
+ return new DerivedUnionEObjectEList<JDTJavaElement>(JDTJavaElement.class, this, JdtmmPackage.JDT_PARENT__CHILDREN, null);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public int getFlags() {
+ return flags;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setFlags(int newFlags) {
+ int oldFlags = flags;
+ flags = newFlags;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JdtmmPackage.JDT_PARENT__FLAGS, oldFlags, flags));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public void setFlag(int flag, boolean value) {
+
+ if (value == true) {
+ setFlags(getFlags() | (flag));
+ } else {
+ setFlags(getFlags() & ~(flag));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public boolean isFlagSet(int flag) {
+
+ return (getFlags() & flag) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_PARENT__CHILDREN:
+ return getChildren();
+ case JdtmmPackage.JDT_PARENT__FLAGS:
+ return getFlags();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_PARENT__FLAGS:
+ setFlags((Integer) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_PARENT__FLAGS:
+ setFlags(FLAGS_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_PARENT__CHILDREN:
+ return isSetChildren();
+ case JdtmmPackage.JDT_PARENT__FLAGS:
+ return flags != FLAGS_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) {
+ return super.toString();
+ }
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (flags: ");
+ result.append(flags);
+ result.append(')');
+ return result.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public boolean isSetChildren() {
+ return false;
+ }
+
+} // JDTParentImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTParentJavaElementImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTParentJavaElementImpl.java
new file mode 100644
index 00000000000..7a45658d162
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTParentJavaElementImpl.java
@@ -0,0 +1,296 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParent;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParentJavaElement;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+import org.eclipse.uml2.common.util.DerivedUnionEObjectEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>JDT Parent Java Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTParentJavaElementImpl#getChildren <em>Children</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTParentJavaElementImpl#getFlags <em>Flags</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class JDTParentJavaElementImpl extends JDTJavaElementImpl implements JDTParentJavaElement {
+
+ /**
+ * The default value of the '{@link #getFlags() <em>Flags</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getFlags()
+ * @generated
+ * @ordered
+ */
+ protected static final int FLAGS_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getFlags() <em>Flags</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getFlags()
+ * @generated
+ * @ordered
+ */
+ protected int flags = FLAGS_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTParentJavaElementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return JdtmmPackage.Literals.JDT_PARENT_JAVA_ELEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EList<JDTJavaElement> getChildren() {
+ return new DerivedUnionEObjectEList<JDTJavaElement>(JDTJavaElement.class, this, JdtmmPackage.JDT_PARENT_JAVA_ELEMENT__CHILDREN, null);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public int getFlags() {
+ return flags;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setFlags(int newFlags) {
+ int oldFlags = flags;
+ flags = newFlags;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JdtmmPackage.JDT_PARENT_JAVA_ELEMENT__FLAGS, oldFlags, flags));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public void setFlag(int flag, boolean value) {
+
+ if (value == true) {
+ setFlags(getFlags() | (flag));
+ } else {
+ setFlags(getFlags() & ~(flag));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public boolean isFlagSet(int flag) {
+
+ return (getFlags() & flag) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_PARENT_JAVA_ELEMENT__CHILDREN:
+ return getChildren();
+ case JdtmmPackage.JDT_PARENT_JAVA_ELEMENT__FLAGS:
+ return getFlags();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_PARENT_JAVA_ELEMENT__FLAGS:
+ setFlags((Integer) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_PARENT_JAVA_ELEMENT__FLAGS:
+ setFlags(FLAGS_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_PARENT_JAVA_ELEMENT__CHILDREN:
+ return isSetChildren();
+ case JdtmmPackage.JDT_PARENT_JAVA_ELEMENT__FLAGS:
+ return flags != FLAGS_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+ if (baseClass == JDTParent.class) {
+ switch (derivedFeatureID) {
+ case JdtmmPackage.JDT_PARENT_JAVA_ELEMENT__CHILDREN:
+ return JdtmmPackage.JDT_PARENT__CHILDREN;
+ case JdtmmPackage.JDT_PARENT_JAVA_ELEMENT__FLAGS:
+ return JdtmmPackage.JDT_PARENT__FLAGS;
+ default:
+ return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+ if (baseClass == JDTParent.class) {
+ switch (baseFeatureID) {
+ case JdtmmPackage.JDT_PARENT__CHILDREN:
+ return JdtmmPackage.JDT_PARENT_JAVA_ELEMENT__CHILDREN;
+ case JdtmmPackage.JDT_PARENT__FLAGS:
+ return JdtmmPackage.JDT_PARENT_JAVA_ELEMENT__FLAGS;
+ default:
+ return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) {
+ return super.toString();
+ }
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (flags: ");
+ result.append(flags);
+ result.append(')');
+ return result.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public boolean isSetChildren() {
+ return false;
+ }
+
+} // JDTParentJavaElementImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTTypeImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTTypeImpl.java
new file mode 100644
index 00000000000..554572a55be
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTTypeImpl.java
@@ -0,0 +1,1117 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.notify.NotifyingList;
+import org.eclipse.emf.common.util.ECollections;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.jdt.core.Flags;
+import org.eclipse.jdt.core.Signature;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTCompilationUnit;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParent;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.utils.DerivedNotifyingEList;
+import org.eclipse.uml2.common.util.DerivedUnionEObjectEList;
+import org.eclipse.uml2.common.util.SubsetSupersetEObjectContainmentWithInverseEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>JDT Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTTypeImpl#getChildren <em>Children</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTTypeImpl#getMethods <em>Methods</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTTypeImpl#getFields <em>Fields</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTTypeImpl#getCompilationUnit <em>Compilation Unit</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTTypeImpl#isClass <em>Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTTypeImpl#isInterface <em>Interface</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTTypeImpl#isEnum <em>Enum</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTTypeImpl#isAbstract <em>Abstract</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTTypeImpl#isFinal <em>Final</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTTypeImpl#isStatic <em>Static</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTTypeImpl#getTypes <em>Types</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTTypeImpl#getOwner <em>Owner</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTTypeImpl#getSuperInterfaces <em>Super Interfaces</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTTypeImpl#getSuperClass <em>Super Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTTypeImpl#getSuperInterfaceNames <em>Super Interface Names</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTTypeImpl#getSuperClassName <em>Super Class Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class JDTTypeImpl extends JDTMemberImpl implements JDTType {
+
+ /**
+ * The cached value of the '{@link #getMethods() <em>Methods</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getMethods()
+ * @generated
+ * @ordered
+ */
+ protected EList<JDTMethod> methods;
+
+ /**
+ * The cached value of the '{@link #getFields() <em>Fields</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getFields()
+ * @generated
+ * @ordered
+ */
+ protected EList<JDTField> fields;
+
+ /**
+ * The default value of the '{@link #isClass() <em>Class</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isClass()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean CLASS_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isClass() <em>Class</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isClass()
+ * @generated
+ * @ordered
+ */
+ protected boolean class_ = CLASS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isInterface() <em>Interface</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isInterface()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean INTERFACE_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isInterface() <em>Interface</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isInterface()
+ * @generated
+ * @ordered
+ */
+ protected boolean interface_ = INTERFACE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isEnum() <em>Enum</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isEnum()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean ENUM_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isEnum() <em>Enum</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isEnum()
+ * @generated
+ * @ordered
+ */
+ protected boolean enum_ = ENUM_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isAbstract() <em>Abstract</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isAbstract()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean ABSTRACT_EDEFAULT = false;
+
+ /**
+ * The default value of the '{@link #isFinal() <em>Final</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isFinal()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean FINAL_EDEFAULT = false;
+
+ /**
+ * The default value of the '{@link #isStatic() <em>Static</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isStatic()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean STATIC_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #getTypes() <em>Types</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getTypes()
+ * @generated
+ * @ordered
+ */
+ protected EList<JDTType> types;
+
+ /**
+ * The cached value of the '{@link #getSuperInterfaces() <em>Super Interfaces</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getSuperInterfaces()
+ * @generated
+ * @ordered
+ */
+ protected EList<JDTType> superInterfaces;
+
+ /**
+ * The cached value of the '{@link #getSuperClass() <em>Super Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getSuperClass()
+ * @generated
+ * @ordered
+ */
+ protected JDTType superClass;
+
+ /**
+ * The default value of the '{@link #getSuperClassName() <em>Super Class Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getSuperClassName()
+ * @generated
+ * @ordered
+ */
+ protected static final String SUPER_CLASS_NAME_EDEFAULT = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTTypeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return JdtmmPackage.Literals.JDT_TYPE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EList<JDTJavaElement> getChildren() {
+ return new DerivedUnionEObjectEList<JDTJavaElement>(JDTJavaElement.class, this, JdtmmPackage.JDT_TYPE__CHILDREN, CHILDREN_ESUBSETS);
+ }
+
+ /**
+ * The array of subset feature identifiers for the '{@link #getChildren() <em>Children</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getChildren()
+ * @generated
+ * @ordered
+ */
+ protected static final int[] CHILDREN_ESUBSETS = new int[] { JdtmmPackage.JDT_TYPE__METHODS, JdtmmPackage.JDT_TYPE__FIELDS, JdtmmPackage.JDT_TYPE__TYPES };
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EList<JDTMethod> getMethods() {
+ if (methods == null) {
+ methods = new SubsetSupersetEObjectContainmentWithInverseEList<JDTMethod>(JDTMethod.class, this, JdtmmPackage.JDT_TYPE__METHODS, METHODS_ESUPERSETS, null, JdtmmPackage.JDT_METHOD__OWNER);
+ }
+ return methods;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTCompilationUnit getCompilationUnit() {
+ if (eContainerFeatureID() != JdtmmPackage.JDT_TYPE__COMPILATION_UNIT) {
+ return null;
+ }
+ return (JDTCompilationUnit) eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public NotificationChain basicSetCompilationUnit(JDTCompilationUnit newCompilationUnit, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject) newCompilationUnit, JdtmmPackage.JDT_TYPE__COMPILATION_UNIT, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setCompilationUnit(JDTCompilationUnit newCompilationUnit) {
+ if (newCompilationUnit != eInternalContainer() || (eContainerFeatureID() != JdtmmPackage.JDT_TYPE__COMPILATION_UNIT && newCompilationUnit != null)) {
+ if (EcoreUtil.isAncestor(this, newCompilationUnit)) {
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ }
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null) {
+ msgs = eBasicRemoveFromContainer(msgs);
+ }
+ if (newCompilationUnit != null) {
+ msgs = ((InternalEObject) newCompilationUnit).eInverseAdd(this, JdtmmPackage.JDT_COMPILATION_UNIT__TYPES, JDTCompilationUnit.class, msgs);
+ }
+ msgs = basicSetCompilationUnit(newCompilationUnit, msgs);
+ if (msgs != null) {
+ msgs.dispatch();
+ }
+ }
+ else if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JdtmmPackage.JDT_TYPE__COMPILATION_UNIT, newCompilationUnit, newCompilationUnit));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public boolean isSetCompilationUnit() {
+ return getCompilationUnit() != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isClass() {
+ return class_;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setClass_(boolean newClass) {
+ boolean oldClass = class_;
+ class_ = newClass;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JdtmmPackage.JDT_TYPE__CLASS, oldClass, class_));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isInterface() {
+ return interface_;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setInterface(boolean newInterface) {
+ boolean oldInterface = interface_;
+ interface_ = newInterface;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JdtmmPackage.JDT_TYPE__INTERFACE, oldInterface, interface_));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isEnum() {
+ return enum_;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setEnum(boolean newEnum) {
+ boolean oldEnum = enum_;
+ enum_ = newEnum;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JdtmmPackage.JDT_TYPE__ENUM, oldEnum, enum_));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public boolean isAbstract() {
+ // Ensure that you remove @generated or mark it @generated NOT
+ return isFlagSet(Flags.AccAbstract);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public void setAbstract(boolean newAbstract) {
+ // Ensure that you remove @generated or mark it @generated NOT
+ setFlag(Flags.AccAbstract, newAbstract);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public boolean isFinal() {
+ // TODO: implement this method to return the 'Final' attribute
+ // Ensure that you remove @generated or mark it @generated NOT
+ return isFlagSet(Flags.AccFinal);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public void setFinal(boolean newFinal) {
+
+ setFlag(Flags.AccFinal, newFinal);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public boolean isStatic() {
+ return isFlagSet(Flags.AccStatic);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public void setStatic(boolean newStatic) {
+ setFlag(Flags.AccStatic, newStatic);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EList<JDTType> getTypes() {
+ if (types == null) {
+ types = new SubsetSupersetEObjectContainmentWithInverseEList<JDTType>(JDTType.class, this, JdtmmPackage.JDT_TYPE__TYPES, TYPES_ESUPERSETS, null, JdtmmPackage.JDT_TYPE__OWNER);
+ }
+ return types;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTType getOwner() {
+ if (eContainerFeatureID() != JdtmmPackage.JDT_TYPE__OWNER) {
+ return null;
+ }
+ return (JDTType) eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public NotificationChain basicSetOwner(JDTType newOwner, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject) newOwner, JdtmmPackage.JDT_TYPE__OWNER, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setOwner(JDTType newOwner) {
+ if (newOwner != eInternalContainer() || (eContainerFeatureID() != JdtmmPackage.JDT_TYPE__OWNER && newOwner != null)) {
+ if (EcoreUtil.isAncestor(this, newOwner)) {
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ }
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null) {
+ msgs = eBasicRemoveFromContainer(msgs);
+ }
+ if (newOwner != null) {
+ msgs = ((InternalEObject) newOwner).eInverseAdd(this, JdtmmPackage.JDT_TYPE__TYPES, JDTType.class, msgs);
+ }
+ msgs = basicSetOwner(newOwner, msgs);
+ if (msgs != null) {
+ msgs.dispatch();
+ }
+ }
+ else if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JdtmmPackage.JDT_TYPE__OWNER, newOwner, newOwner));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public boolean isSetOwner() {
+ return getOwner() != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EList<JDTType> getSuperInterfaces() {
+ if (superInterfaces == null) {
+ superInterfaces = new EObjectResolvingEList<JDTType>(JDTType.class, this, JdtmmPackage.JDT_TYPE__SUPER_INTERFACES);
+ }
+ return superInterfaces;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTType getSuperClass() {
+ if (superClass != null && superClass.eIsProxy()) {
+ InternalEObject oldSuperClass = (InternalEObject) superClass;
+ superClass = (JDTType) eResolveProxy(oldSuperClass);
+ if (superClass != oldSuperClass) {
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, JdtmmPackage.JDT_TYPE__SUPER_CLASS, oldSuperClass, superClass));
+ }
+ }
+ }
+ return superClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JDTType basicGetSuperClass() {
+ return superClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setSuperClass(JDTType newSuperClass) {
+ JDTType oldSuperClass = superClass;
+ superClass = newSuperClass;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JdtmmPackage.JDT_TYPE__SUPER_CLASS, oldSuperClass, superClass));
+ }
+ }
+
+
+ DerivedNotifyingEList<String, JDTType> superInterfaceNames;
+
+ /**
+ * Returns the names of interfaces that this type implements or extends,
+ * in the order in which they are listed in the source.
+ * <p>
+ * For classes, this gives the interfaces that this class implements. For interfaces, this gives the interfaces that this interface extends. An empty collection is returned if this type does not implement or extend any interfaces. * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public EList<String> getSuperInterfaceNames() {
+ // TODO: implement this method to return the 'Super Interface Names' attribute list
+ // Ensure that you remove @generated or mark it @generated NOT
+
+ // Return empty collection if there is nothing
+ if (getSuperInterfaces().size() == 0) {
+ return ECollections.emptyEList();
+ }
+
+ if (superInterfaceNames == null) {
+ // Create a derived list that return the names instead of the original elements.
+ superInterfaceNames = new DerivedNotifyingEList<String, JDTType>((NotifyingList<JDTType>) getSuperInterfaces()) {
+
+ /**
+ * Return the name of the JDTtype.
+ */
+ @Override
+ protected String doGet(int index) {
+ return getBackupList().get(index).getElementName();
+ }
+ };
+ }
+
+ return superInterfaceNames;
+ }
+
+
+
+ /**
+ * Returns the name of this type's superclass, or <code>null</code> for source types that do not specify a superclass.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public String getSuperClassName() {
+ // TODO: implement this method to return the 'Super Class Name' attribute
+ // Ensure that you remove @generated or mark it @generated NOT
+ if (getSuperClass() != null) {
+ return getSuperClass().getElementName();
+ }
+ // No superclass
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EList<JDTField> getFields() {
+ if (fields == null) {
+ fields = new SubsetSupersetEObjectContainmentWithInverseEList<JDTField>(JDTField.class, this, JdtmmPackage.JDT_TYPE__FIELDS, FIELDS_ESUPERSETS, null, JdtmmPackage.JDT_FIELD__OWNER);
+ }
+ return fields;
+ }
+
+ /**
+ * The array of superset feature identifiers for the '{@link #getMethods() <em>Methods</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getMethods()
+ * @generated
+ * @ordered
+ */
+ protected static final int[] METHODS_ESUPERSETS = new int[] { JdtmmPackage.JDT_TYPE__CHILDREN };
+
+ /**
+ * The array of superset feature identifiers for the '{@link #getFields() <em>Fields</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getFields()
+ * @generated
+ * @ordered
+ */
+ protected static final int[] FIELDS_ESUPERSETS = new int[] { JdtmmPackage.JDT_TYPE__CHILDREN };
+
+ /**
+ * The array of superset feature identifiers for the '{@link #getTypes() <em>Types</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getTypes()
+ * @generated
+ * @ordered
+ */
+ protected static final int[] TYPES_ESUPERSETS = new int[] { JdtmmPackage.JDT_TYPE__CHILDREN };
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_TYPE__METHODS:
+ return ((InternalEList<InternalEObject>) (InternalEList<?>) getMethods()).basicAdd(otherEnd, msgs);
+ case JdtmmPackage.JDT_TYPE__FIELDS:
+ return ((InternalEList<InternalEObject>) (InternalEList<?>) getFields()).basicAdd(otherEnd, msgs);
+ case JdtmmPackage.JDT_TYPE__COMPILATION_UNIT:
+ if (eInternalContainer() != null) {
+ msgs = eBasicRemoveFromContainer(msgs);
+ }
+ return basicSetCompilationUnit((JDTCompilationUnit) otherEnd, msgs);
+ case JdtmmPackage.JDT_TYPE__TYPES:
+ return ((InternalEList<InternalEObject>) (InternalEList<?>) getTypes()).basicAdd(otherEnd, msgs);
+ case JdtmmPackage.JDT_TYPE__OWNER:
+ if (eInternalContainer() != null) {
+ msgs = eBasicRemoveFromContainer(msgs);
+ }
+ return basicSetOwner((JDTType) otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_TYPE__METHODS:
+ return ((InternalEList<?>) getMethods()).basicRemove(otherEnd, msgs);
+ case JdtmmPackage.JDT_TYPE__FIELDS:
+ return ((InternalEList<?>) getFields()).basicRemove(otherEnd, msgs);
+ case JdtmmPackage.JDT_TYPE__COMPILATION_UNIT:
+ return basicSetCompilationUnit(null, msgs);
+ case JdtmmPackage.JDT_TYPE__TYPES:
+ return ((InternalEList<?>) getTypes()).basicRemove(otherEnd, msgs);
+ case JdtmmPackage.JDT_TYPE__OWNER:
+ return basicSetOwner(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case JdtmmPackage.JDT_TYPE__COMPILATION_UNIT:
+ return eInternalContainer().eInverseRemove(this, JdtmmPackage.JDT_COMPILATION_UNIT__TYPES, JDTCompilationUnit.class, msgs);
+ case JdtmmPackage.JDT_TYPE__OWNER:
+ return eInternalContainer().eInverseRemove(this, JdtmmPackage.JDT_TYPE__TYPES, JDTType.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_TYPE__METHODS:
+ return getMethods();
+ case JdtmmPackage.JDT_TYPE__FIELDS:
+ return getFields();
+ case JdtmmPackage.JDT_TYPE__COMPILATION_UNIT:
+ return getCompilationUnit();
+ case JdtmmPackage.JDT_TYPE__CLASS:
+ return isClass();
+ case JdtmmPackage.JDT_TYPE__INTERFACE:
+ return isInterface();
+ case JdtmmPackage.JDT_TYPE__ENUM:
+ return isEnum();
+ case JdtmmPackage.JDT_TYPE__ABSTRACT:
+ return isAbstract();
+ case JdtmmPackage.JDT_TYPE__FINAL:
+ return isFinal();
+ case JdtmmPackage.JDT_TYPE__STATIC:
+ return isStatic();
+ case JdtmmPackage.JDT_TYPE__TYPES:
+ return getTypes();
+ case JdtmmPackage.JDT_TYPE__OWNER:
+ return getOwner();
+ case JdtmmPackage.JDT_TYPE__SUPER_INTERFACES:
+ return getSuperInterfaces();
+ case JdtmmPackage.JDT_TYPE__SUPER_CLASS:
+ if (resolve) {
+ return getSuperClass();
+ }
+ return basicGetSuperClass();
+ case JdtmmPackage.JDT_TYPE__SUPER_INTERFACE_NAMES:
+ return getSuperInterfaceNames();
+ case JdtmmPackage.JDT_TYPE__SUPER_CLASS_NAME:
+ return getSuperClassName();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_TYPE__METHODS:
+ getMethods().clear();
+ getMethods().addAll((Collection<? extends JDTMethod>) newValue);
+ return;
+ case JdtmmPackage.JDT_TYPE__FIELDS:
+ getFields().clear();
+ getFields().addAll((Collection<? extends JDTField>) newValue);
+ return;
+ case JdtmmPackage.JDT_TYPE__COMPILATION_UNIT:
+ setCompilationUnit((JDTCompilationUnit) newValue);
+ return;
+ case JdtmmPackage.JDT_TYPE__CLASS:
+ setClass_((Boolean) newValue);
+ return;
+ case JdtmmPackage.JDT_TYPE__INTERFACE:
+ setInterface((Boolean) newValue);
+ return;
+ case JdtmmPackage.JDT_TYPE__ENUM:
+ setEnum((Boolean) newValue);
+ return;
+ case JdtmmPackage.JDT_TYPE__ABSTRACT:
+ setAbstract((Boolean) newValue);
+ return;
+ case JdtmmPackage.JDT_TYPE__FINAL:
+ setFinal((Boolean) newValue);
+ return;
+ case JdtmmPackage.JDT_TYPE__STATIC:
+ setStatic((Boolean) newValue);
+ return;
+ case JdtmmPackage.JDT_TYPE__TYPES:
+ getTypes().clear();
+ getTypes().addAll((Collection<? extends JDTType>) newValue);
+ return;
+ case JdtmmPackage.JDT_TYPE__OWNER:
+ setOwner((JDTType) newValue);
+ return;
+ case JdtmmPackage.JDT_TYPE__SUPER_INTERFACES:
+ getSuperInterfaces().clear();
+ getSuperInterfaces().addAll((Collection<? extends JDTType>) newValue);
+ return;
+ case JdtmmPackage.JDT_TYPE__SUPER_CLASS:
+ setSuperClass((JDTType) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_TYPE__METHODS:
+ getMethods().clear();
+ return;
+ case JdtmmPackage.JDT_TYPE__FIELDS:
+ getFields().clear();
+ return;
+ case JdtmmPackage.JDT_TYPE__COMPILATION_UNIT:
+ setCompilationUnit((JDTCompilationUnit) null);
+ return;
+ case JdtmmPackage.JDT_TYPE__CLASS:
+ setClass_(CLASS_EDEFAULT);
+ return;
+ case JdtmmPackage.JDT_TYPE__INTERFACE:
+ setInterface(INTERFACE_EDEFAULT);
+ return;
+ case JdtmmPackage.JDT_TYPE__ENUM:
+ setEnum(ENUM_EDEFAULT);
+ return;
+ case JdtmmPackage.JDT_TYPE__ABSTRACT:
+ setAbstract(ABSTRACT_EDEFAULT);
+ return;
+ case JdtmmPackage.JDT_TYPE__FINAL:
+ setFinal(FINAL_EDEFAULT);
+ return;
+ case JdtmmPackage.JDT_TYPE__STATIC:
+ setStatic(STATIC_EDEFAULT);
+ return;
+ case JdtmmPackage.JDT_TYPE__TYPES:
+ getTypes().clear();
+ return;
+ case JdtmmPackage.JDT_TYPE__OWNER:
+ setOwner((JDTType) null);
+ return;
+ case JdtmmPackage.JDT_TYPE__SUPER_INTERFACES:
+ getSuperInterfaces().clear();
+ return;
+ case JdtmmPackage.JDT_TYPE__SUPER_CLASS:
+ setSuperClass((JDTType) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_TYPE__METHODS:
+ return methods != null && !methods.isEmpty();
+ case JdtmmPackage.JDT_TYPE__FIELDS:
+ return fields != null && !fields.isEmpty();
+ case JdtmmPackage.JDT_TYPE__COMPILATION_UNIT:
+ return isSetCompilationUnit();
+ case JdtmmPackage.JDT_TYPE__CLASS:
+ return class_ != CLASS_EDEFAULT;
+ case JdtmmPackage.JDT_TYPE__INTERFACE:
+ return interface_ != INTERFACE_EDEFAULT;
+ case JdtmmPackage.JDT_TYPE__ENUM:
+ return enum_ != ENUM_EDEFAULT;
+ case JdtmmPackage.JDT_TYPE__ABSTRACT:
+ return isAbstract() != ABSTRACT_EDEFAULT;
+ case JdtmmPackage.JDT_TYPE__FINAL:
+ return isFinal() != FINAL_EDEFAULT;
+ case JdtmmPackage.JDT_TYPE__STATIC:
+ return isStatic() != STATIC_EDEFAULT;
+ case JdtmmPackage.JDT_TYPE__TYPES:
+ return types != null && !types.isEmpty();
+ case JdtmmPackage.JDT_TYPE__OWNER:
+ return isSetOwner();
+ case JdtmmPackage.JDT_TYPE__SUPER_INTERFACES:
+ return superInterfaces != null && !superInterfaces.isEmpty();
+ case JdtmmPackage.JDT_TYPE__SUPER_CLASS:
+ return superClass != null;
+ case JdtmmPackage.JDT_TYPE__SUPER_INTERFACE_NAMES:
+ return !getSuperInterfaceNames().isEmpty();
+ case JdtmmPackage.JDT_TYPE__SUPER_CLASS_NAME:
+ return SUPER_CLASS_NAME_EDEFAULT == null ? getSuperClassName() != null : !SUPER_CLASS_NAME_EDEFAULT.equals(getSuperClassName());
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) {
+ return super.toString();
+ }
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (class: ");
+ result.append(class_);
+ result.append(", interface: ");
+ result.append(interface_);
+ result.append(", enum: ");
+ result.append(enum_);
+ result.append(')');
+ return result.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isSetChildren() {
+ return super.isSetChildren()
+ || eIsSet(JdtmmPackage.JDT_TYPE__METHODS)
+ || eIsSet(JdtmmPackage.JDT_TYPE__FIELDS)
+ || eIsSet(JdtmmPackage.JDT_TYPE__TYPES);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTParent getParent() {
+ return getCompilationUnit();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTParent basicGetParent() {
+ return getCompilationUnit();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public boolean isSetParent() {
+ return false;
+ }
+
+ @Override
+ public String getJDTSignature() {
+ return Signature.createTypeSignature(getElementName(), false);
+ }
+
+ @Override
+ public String getQualifiedName() {
+ // if it's a intern class, it's special
+ if (getOwner() != null) {
+ return getOwner().getQualifiedName() + "." + getElementName();
+ }
+
+ // else, return the qualified name of the package + "." + the name of the type
+ if (getCompilationUnit().getPackageFragment() == null) {
+ return getElementName();
+ }
+ if (getCompilationUnit().getPackageFragment().getQualifiedName() == null) {
+ return getElementName();
+ }
+ return getCompilationUnit().getPackageFragment().getQualifiedName() + "." + getElementName();
+ }
+} // JDTTypeImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTTypeParameterImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTTypeParameterImpl.java
new file mode 100644
index 00000000000..0f11bdd4e26
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTTypeParameterImpl.java
@@ -0,0 +1,235 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMember;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTTypeParameter;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>JDT Type Parameter</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl.JDTTypeParameterImpl#getDeclaringMember <em>Declaring Member</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class JDTTypeParameterImpl extends JDTJavaElementImpl implements JDTTypeParameter {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTTypeParameterImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return JdtmmPackage.Literals.JDT_TYPE_PARAMETER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTMember getDeclaringMember() {
+ if (eContainerFeatureID() != JdtmmPackage.JDT_TYPE_PARAMETER__DECLARING_MEMBER) {
+ return null;
+ }
+ return (JDTMember) eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public NotificationChain basicSetDeclaringMember(JDTMember newDeclaringMember, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject) newDeclaringMember, JdtmmPackage.JDT_TYPE_PARAMETER__DECLARING_MEMBER, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setDeclaringMember(JDTMember newDeclaringMember) {
+ if (newDeclaringMember != eInternalContainer() || (eContainerFeatureID() != JdtmmPackage.JDT_TYPE_PARAMETER__DECLARING_MEMBER && newDeclaringMember != null)) {
+ if (EcoreUtil.isAncestor(this, newDeclaringMember)) {
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ }
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null) {
+ msgs = eBasicRemoveFromContainer(msgs);
+ }
+ if (newDeclaringMember != null) {
+ msgs = ((InternalEObject) newDeclaringMember).eInverseAdd(this, JdtmmPackage.JDT_MEMBER__TYPE_PARAMETERS, JDTMember.class, msgs);
+ }
+ msgs = basicSetDeclaringMember(newDeclaringMember, msgs);
+ if (msgs != null) {
+ msgs.dispatch();
+ }
+ }
+ else if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JdtmmPackage.JDT_TYPE_PARAMETER__DECLARING_MEMBER, newDeclaringMember, newDeclaringMember));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_TYPE_PARAMETER__DECLARING_MEMBER:
+ if (eInternalContainer() != null) {
+ msgs = eBasicRemoveFromContainer(msgs);
+ }
+ return basicSetDeclaringMember((JDTMember) otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_TYPE_PARAMETER__DECLARING_MEMBER:
+ return basicSetDeclaringMember(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case JdtmmPackage.JDT_TYPE_PARAMETER__DECLARING_MEMBER:
+ return eInternalContainer().eInverseRemove(this, JdtmmPackage.JDT_MEMBER__TYPE_PARAMETERS, JDTMember.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_TYPE_PARAMETER__DECLARING_MEMBER:
+ return getDeclaringMember();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_TYPE_PARAMETER__DECLARING_MEMBER:
+ setDeclaringMember((JDTMember) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_TYPE_PARAMETER__DECLARING_MEMBER:
+ setDeclaringMember((JDTMember) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case JdtmmPackage.JDT_TYPE_PARAMETER__DECLARING_MEMBER:
+ return getDeclaringMember() != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // JDTTypeParameterImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTTypeRootImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTTypeRootImpl.java
new file mode 100644
index 00000000000..feab7e6748f
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTTypeRootImpl.java
@@ -0,0 +1,61 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTTypeRoot;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>JDT Type Root</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class JDTTypeRootImpl extends JDTParentJavaElementImpl implements JDTTypeRoot {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JDTTypeRootImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return JdtmmPackage.Literals.JDT_TYPE_ROOT;
+ }
+
+} // JDTTypeRootImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JdtmmFactoryImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JdtmmFactoryImpl.java
new file mode 100644
index 00000000000..9a567bb769e
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JdtmmFactoryImpl.java
@@ -0,0 +1,558 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTClass;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTCompilationUnit;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTEnum;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTException;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTImportContainer;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTImportDeclaration;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTInterface;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaModel;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaProject;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTOpaqueBody;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragment;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragmentRoot;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTTypeParameter;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmFactory;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.TrueFalseDefault;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.VisibilityKind;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitor;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitorException;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JdtmmFactoryImpl extends EFactoryImpl implements JdtmmFactory {
+
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static JdtmmFactory init() {
+ try {
+ JdtmmFactory theJdtmmFactory = (JdtmmFactory) EPackage.Registry.INSTANCE.getEFactory("http:///jdtmm.ecore");
+ if (theJdtmmFactory != null) {
+ return theJdtmmFactory;
+ }
+ } catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new JdtmmFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JdtmmFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case JdtmmPackage.JDT_METHOD:
+ return createJDTMethod();
+ case JdtmmPackage.JDT_TYPE_PARAMETER:
+ return createJDTTypeParameter();
+ case JdtmmPackage.JDT_FIELD:
+ return createJDTField();
+ case JdtmmPackage.JDT_COMPILATION_UNIT:
+ return createJDTCompilationUnit();
+ case JdtmmPackage.JDT_PACKAGE_FRAGMENT:
+ return createJDTPackageFragment();
+ case JdtmmPackage.JDT_PACKAGE_FRAGMENT_ROOT:
+ return createJDTPackageFragmentRoot();
+ case JdtmmPackage.JDT_JAVA_PROJECT:
+ return createJDTJavaProject();
+ case JdtmmPackage.JDT_JAVA_MODEL:
+ return createJDTJavaModel();
+ case JdtmmPackage.JDT_PARAMETER:
+ return createJDTParameter();
+ case JdtmmPackage.JDT_CLASS:
+ return createJDTClass();
+ case JdtmmPackage.JDT_INTERFACE:
+ return createJDTInterface();
+ case JdtmmPackage.JDT_ENUM:
+ return createJDTEnum();
+ case JdtmmPackage.JDT_IMPORT_DECLARATION:
+ return createJDTImportDeclaration();
+ case JdtmmPackage.JDT_IMPORT_CONTAINER:
+ return createJDTImportContainer();
+ case JdtmmPackage.JDT_EXCEPTION:
+ return createJDTException();
+ case JdtmmPackage.JDT_OPAQUE_BODY:
+ return createJDTOpaqueBody();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object createFromString(EDataType eDataType, String initialValue) {
+ switch (eDataType.getClassifierID()) {
+ case JdtmmPackage.VISIBILITY_KIND:
+ return createVisibilityKindFromString(eDataType, initialValue);
+ case JdtmmPackage.TRUE_FALSE_DEFAULT:
+ return createTrueFalseDefaultFromString(eDataType, initialValue);
+ case JdtmmPackage.STRING:
+ return createStringFromString(eDataType, initialValue);
+ case JdtmmPackage.INT:
+ return createintFromString(eDataType, initialValue);
+ case JdtmmPackage.BOOLEAN:
+ return createbooleanFromString(eDataType, initialValue);
+ case JdtmmPackage.JDT_VISITOR_EXCEPTION:
+ return createJDTVisitorExceptionFromString(eDataType, initialValue);
+ case JdtmmPackage.VISITOR:
+ return createVisitorFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String convertToString(EDataType eDataType, Object instanceValue) {
+ switch (eDataType.getClassifierID()) {
+ case JdtmmPackage.VISIBILITY_KIND:
+ return convertVisibilityKindToString(eDataType, instanceValue);
+ case JdtmmPackage.TRUE_FALSE_DEFAULT:
+ return convertTrueFalseDefaultToString(eDataType, instanceValue);
+ case JdtmmPackage.STRING:
+ return convertStringToString(eDataType, instanceValue);
+ case JdtmmPackage.INT:
+ return convertintToString(eDataType, instanceValue);
+ case JdtmmPackage.BOOLEAN:
+ return convertbooleanToString(eDataType, instanceValue);
+ case JdtmmPackage.JDT_VISITOR_EXCEPTION:
+ return convertJDTVisitorExceptionToString(eDataType, instanceValue);
+ case JdtmmPackage.VISITOR:
+ return convertVisitorToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTTypeParameter createJDTTypeParameter() {
+ JDTTypeParameterImpl jdtTypeParameter = new JDTTypeParameterImpl();
+ return jdtTypeParameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTField createJDTField() {
+ JDTFieldImpl jdtField = new JDTFieldImpl();
+ return jdtField;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTMethod createJDTMethod() {
+ JDTMethodImpl jdtMethod = new JDTMethodImpl();
+ return jdtMethod;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTCompilationUnit createJDTCompilationUnit() {
+ JDTCompilationUnitImpl jdtCompilationUnit = new JDTCompilationUnitImpl();
+ return jdtCompilationUnit;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTPackageFragment createJDTPackageFragment() {
+ JDTPackageFragmentImpl jdtPackageFragment = new JDTPackageFragmentImpl();
+ return jdtPackageFragment;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTPackageFragmentRoot createJDTPackageFragmentRoot() {
+ JDTPackageFragmentRootImpl jdtPackageFragmentRoot = new JDTPackageFragmentRootImpl();
+ return jdtPackageFragmentRoot;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTJavaProject createJDTJavaProject() {
+ JDTJavaProjectImpl jdtJavaProject = new JDTJavaProjectImpl();
+ return jdtJavaProject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTClass createJDTClass() {
+ JDTClassImpl jdtClass = new JDTClassImpl();
+ return jdtClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTInterface createJDTInterface() {
+ JDTInterfaceImpl jdtInterface = new JDTInterfaceImpl();
+ return jdtInterface;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTEnum createJDTEnum() {
+ JDTEnumImpl jdtEnum = new JDTEnumImpl();
+ return jdtEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTImportDeclaration createJDTImportDeclaration() {
+ JDTImportDeclarationImpl jdtImportDeclaration = new JDTImportDeclarationImpl();
+ return jdtImportDeclaration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTImportContainer createJDTImportContainer() {
+ JDTImportContainerImpl jdtImportContainer = new JDTImportContainerImpl();
+ return jdtImportContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTParameter createJDTParameter() {
+ JDTParameterImpl jdtParameter = new JDTParameterImpl();
+ return jdtParameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTException createJDTException() {
+ JDTExceptionImpl jdtException = new JDTExceptionImpl();
+ return jdtException;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTOpaqueBody createJDTOpaqueBody() {
+ JDTOpaqueBodyImpl jdtOpaqueBody = new JDTOpaqueBodyImpl();
+ return jdtOpaqueBody;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public VisibilityKind createVisibilityKindFromString(EDataType eDataType, String initialValue) {
+ VisibilityKind result = VisibilityKind.get(initialValue);
+ if (result == null) {
+ throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ }
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String convertVisibilityKindToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public TrueFalseDefault createTrueFalseDefaultFromString(EDataType eDataType, String initialValue) {
+ TrueFalseDefault result = TrueFalseDefault.get(initialValue);
+ if (result == null) {
+ throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ }
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String convertTrueFalseDefaultToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JDTJavaModel createJDTJavaModel() {
+ JDTJavaModelImpl jdtJavaModel = new JDTJavaModelImpl();
+ return jdtJavaModel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Integer createintFromString(EDataType eDataType, String initialValue) {
+ return (Integer) super.createFromString(eDataType, initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String convertintToString(EDataType eDataType, Object instanceValue) {
+ return super.convertToString(eDataType, instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String createStringFromString(EDataType eDataType, String initialValue) {
+ return (String) super.createFromString(eDataType, initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String convertStringToString(EDataType eDataType, Object instanceValue) {
+ return super.convertToString(eDataType, instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JDTVisitorException createJDTVisitorExceptionFromString(EDataType eDataType, String initialValue) {
+ return (JDTVisitorException) super.createFromString(eDataType, initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String convertJDTVisitorExceptionToString(EDataType eDataType, Object instanceValue) {
+ return super.convertToString(eDataType, instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JDTVisitor createVisitorFromString(EDataType eDataType, String initialValue) {
+ return (JDTVisitor) super.createFromString(eDataType, initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String convertVisitorToString(EDataType eDataType, Object instanceValue) {
+ return super.convertToString(eDataType, instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Boolean createbooleanFromString(EDataType eDataType, String initialValue) {
+ return (Boolean) super.createFromString(eDataType, initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String convertbooleanToString(EDataType eDataType, Object instanceValue) {
+ return super.convertToString(eDataType, instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JdtmmPackage getJdtmmPackage() {
+ return (JdtmmPackage) getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static JdtmmPackage getPackage() {
+ return JdtmmPackage.eINSTANCE;
+ }
+
+} // JdtmmFactoryImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JdtmmPackageImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JdtmmPackageImpl.java
new file mode 100644
index 00000000000..3050ecf23e4
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JdtmmPackageImpl.java
@@ -0,0 +1,1905 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Meta-model conception
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Meta-model conception
+ * Manuel Giles giles.manu@live.fr - Meta-model conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTClass;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTCompilationUnit;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTEnum;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTException;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTImportContainer;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTImportDeclaration;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTInterface;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaModel;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaProject;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMember;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethodBody;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTOpaqueBody;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragment;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragmentRoot;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParent;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParentJavaElement;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTTypeParameter;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTTypeRoot;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmFactory;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.TrueFalseDefault;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.VisibilityKind;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitor;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitorException;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JdtmmPackageImpl extends EPackageImpl implements JdtmmPackage {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass jdtMethodBodyEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass jdtJavaElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass jdtParentEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass jdtMemberEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass jdtParentJavaElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass jdtTypeParameterEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass jdtFieldEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass jdtTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass jdtMethodEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass jdtCompilationUnitEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass jdtTypeRootEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass jdtPackageFragmentEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass jdtPackageFragmentRootEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass jdtJavaProjectEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass jdtClassEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass jdtInterfaceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass jdtEnumEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass jdtImportDeclarationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass jdtImportContainerEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass jdtParameterEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass jdtExceptionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass jdtOpaqueBodyEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EEnum visibilityKindEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EEnum trueFalseDefaultEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass jdtJavaModelEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EDataType intEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EDataType stringEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EDataType jdtVisitorExceptionEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EDataType visitorEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EDataType booleanEDataType = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>
+ * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also performs initialization of the package, or returns the registered package, if one already exists. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private JdtmmPackageImpl() {
+ super(eNS_URI, JdtmmFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>
+ * This method is used to initialize {@link JdtmmPackage#eINSTANCE} when that field is accessed. Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static JdtmmPackage init() {
+ if (isInited) {
+ return (JdtmmPackage) EPackage.Registry.INSTANCE.getEPackage(JdtmmPackage.eNS_URI);
+ }
+
+ // Obtain or create and register package
+ JdtmmPackageImpl theJdtmmPackage = (JdtmmPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof JdtmmPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new JdtmmPackageImpl());
+
+ isInited = true;
+
+ // Create package meta-data objects
+ theJdtmmPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theJdtmmPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theJdtmmPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(JdtmmPackage.eNS_URI, theJdtmmPackage);
+ return theJdtmmPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getJDTMethodBody() {
+ return jdtMethodBodyEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJDTMethodBody_Owner() {
+ return (EReference) jdtMethodBodyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getJDTJavaElement() {
+ return jdtJavaElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJDTJavaElement_Parent() {
+ return (EReference) jdtJavaElementEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJDTJavaElement_ElementName() {
+ return (EAttribute) jdtJavaElementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJDTJavaElement_ElementType() {
+ return (EAttribute) jdtJavaElementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJDTJavaElement_Comment() {
+ return (EAttribute) jdtJavaElementEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJDTJavaElement_Generated() {
+ return (EAttribute) jdtJavaElementEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getJDTParent() {
+ return jdtParentEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJDTParent_Flags() {
+ return (EAttribute) jdtParentEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJDTParent_Children() {
+ return (EReference) jdtParentEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getJDTMember() {
+ return jdtMemberEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJDTMember_TypeParameters() {
+ return (EReference) jdtMemberEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJDTMember_Visibility() {
+ return (EAttribute) jdtMemberEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJDTMember_ExplicitRequiredImports() {
+ return (EReference) jdtMemberEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJDTMember_ExplicitPlainTextRequiredImports() {
+ return (EAttribute) jdtMemberEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getJDTParentJavaElement() {
+ return jdtParentJavaElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getJDTTypeParameter() {
+ return jdtTypeParameterEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJDTTypeParameter_DeclaringMember() {
+ return (EReference) jdtTypeParameterEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getJDTField() {
+ return jdtFieldEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJDTField_Owner() {
+ return (EReference) jdtFieldEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJDTField_Type() {
+ return (EReference) jdtFieldEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJDTField_Value() {
+ return (EAttribute) jdtFieldEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJDTField_GenerateGetter() {
+ return (EAttribute) jdtFieldEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJDTField_GenerateSetter() {
+ return (EAttribute) jdtFieldEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJDTField_Abstract() {
+ return (EAttribute) jdtFieldEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJDTField_Final() {
+ return (EAttribute) jdtFieldEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJDTField_Static() {
+ return (EAttribute) jdtFieldEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJDTField_IsMultiValued() {
+ return (EAttribute) jdtFieldEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getJDTType() {
+ return jdtTypeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJDTType_Methods() {
+ return (EReference) jdtTypeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJDTType_CompilationUnit() {
+ return (EReference) jdtTypeEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJDTType_Class() {
+ return (EAttribute) jdtTypeEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJDTType_Interface() {
+ return (EAttribute) jdtTypeEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJDTType_Enum() {
+ return (EAttribute) jdtTypeEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJDTType_Abstract() {
+ return (EAttribute) jdtTypeEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJDTType_Final() {
+ return (EAttribute) jdtTypeEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJDTType_Static() {
+ return (EAttribute) jdtTypeEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJDTType_Types() {
+ return (EReference) jdtTypeEClass.getEStructuralFeatures().get(9);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJDTType_Owner() {
+ return (EReference) jdtTypeEClass.getEStructuralFeatures().get(10);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJDTType_SuperInterfaces() {
+ return (EReference) jdtTypeEClass.getEStructuralFeatures().get(11);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJDTType_SuperClass() {
+ return (EReference) jdtTypeEClass.getEStructuralFeatures().get(12);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJDTType_SuperInterfaceNames() {
+ return (EAttribute) jdtTypeEClass.getEStructuralFeatures().get(13);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJDTType_SuperClassName() {
+ return (EAttribute) jdtTypeEClass.getEStructuralFeatures().get(14);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJDTType_Fields() {
+ return (EReference) jdtTypeEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getJDTMethod() {
+ return jdtMethodEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJDTMethod_ReturnType() {
+ return (EReference) jdtMethodEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJDTMethod_Parameters() {
+ return (EReference) jdtMethodEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJDTMethod_Exceptions() {
+ return (EReference) jdtMethodEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJDTMethod_Synchronized() {
+ return (EAttribute) jdtMethodEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJDTMethod_Constructor() {
+ return (EAttribute) jdtMethodEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJDTMethod_Bodies() {
+ return (EReference) jdtMethodEClass.getEStructuralFeatures().get(9);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJDTMethod_Abstract() {
+ return (EAttribute) jdtMethodEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJDTMethod_Final() {
+ return (EAttribute) jdtMethodEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJDTMethod_Static() {
+ return (EAttribute) jdtMethodEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJDTMethod_Owner() {
+ return (EReference) jdtMethodEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getJDTCompilationUnit() {
+ return jdtCompilationUnitEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJDTCompilationUnit_PackageFragment() {
+ return (EReference) jdtCompilationUnitEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJDTCompilationUnit_Types() {
+ return (EReference) jdtCompilationUnitEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getJDTTypeRoot() {
+ return jdtTypeRootEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getJDTPackageFragment() {
+ return jdtPackageFragmentEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJDTPackageFragment_PackageFragmentRoot() {
+ return (EReference) jdtPackageFragmentEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJDTPackageFragment_CompilationUnits() {
+ return (EReference) jdtPackageFragmentEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getJDTPackageFragmentRoot() {
+ return jdtPackageFragmentRootEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJDTPackageFragmentRoot_JavaProject() {
+ return (EReference) jdtPackageFragmentRootEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJDTPackageFragmentRoot_PackageFragments() {
+ return (EReference) jdtPackageFragmentRootEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getJDTJavaProject() {
+ return jdtJavaProjectEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJDTJavaProject_JavaModel() {
+ return (EReference) jdtJavaProjectEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJDTJavaProject_PackageFragmentRoots() {
+ return (EReference) jdtJavaProjectEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getJDTClass() {
+ return jdtClassEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getJDTInterface() {
+ return jdtInterfaceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getJDTEnum() {
+ return jdtEnumEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getJDTImportDeclaration() {
+ return jdtImportDeclarationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getJDTImportContainer() {
+ return jdtImportContainerEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getJDTParameter() {
+ return jdtParameterEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJDTParameter_ParameterOwner() {
+ return (EReference) jdtParameterEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJDTParameter_Final() {
+ return (EAttribute) jdtParameterEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJDTParameter_IsMultiValued() {
+ return (EAttribute) jdtParameterEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJDTParameter_Type() {
+ return (EReference) jdtParameterEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJDTParameter_ReturnOwner() {
+ return (EReference) jdtParameterEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getJDTException() {
+ return jdtExceptionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getJDTOpaqueBody() {
+ return jdtOpaqueBodyEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJDTOpaqueBody__body() {
+ return (EAttribute) jdtOpaqueBodyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EEnum getVisibilityKind() {
+ return visibilityKindEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EEnum getTrueFalseDefault() {
+ return trueFalseDefaultEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getJDTJavaModel() {
+ return jdtJavaModelEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJDTJavaModel_JavaProject() {
+ return (EReference) jdtJavaModelEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EDataType getint() {
+ return intEDataType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EDataType getString() {
+ return stringEDataType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EDataType getJDTVisitorException() {
+ return jdtVisitorExceptionEDataType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EDataType getVisitor() {
+ return visitorEDataType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EDataType getboolean() {
+ return booleanEDataType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JdtmmFactory getJdtmmFactory() {
+ return (JdtmmFactory) getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) {
+ return;
+ }
+ isCreated = true;
+
+ // Create classes and their features
+ jdtMethodBodyEClass = createEClass(JDT_METHOD_BODY);
+ createEReference(jdtMethodBodyEClass, JDT_METHOD_BODY__OWNER);
+
+ jdtMethodEClass = createEClass(JDT_METHOD);
+ createEReference(jdtMethodEClass, JDT_METHOD__OWNER);
+ createEReference(jdtMethodEClass, JDT_METHOD__RETURN_TYPE);
+ createEReference(jdtMethodEClass, JDT_METHOD__PARAMETERS);
+ createEAttribute(jdtMethodEClass, JDT_METHOD__ABSTRACT);
+ createEAttribute(jdtMethodEClass, JDT_METHOD__FINAL);
+ createEAttribute(jdtMethodEClass, JDT_METHOD__STATIC);
+ createEReference(jdtMethodEClass, JDT_METHOD__EXCEPTIONS);
+ createEAttribute(jdtMethodEClass, JDT_METHOD__SYNCHRONIZED);
+ createEAttribute(jdtMethodEClass, JDT_METHOD__CONSTRUCTOR);
+ createEReference(jdtMethodEClass, JDT_METHOD__BODIES);
+
+ jdtMemberEClass = createEClass(JDT_MEMBER);
+ createEReference(jdtMemberEClass, JDT_MEMBER__TYPE_PARAMETERS);
+ createEAttribute(jdtMemberEClass, JDT_MEMBER__VISIBILITY);
+ createEReference(jdtMemberEClass, JDT_MEMBER__EXPLICIT_REQUIRED_IMPORTS);
+ createEAttribute(jdtMemberEClass, JDT_MEMBER__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS);
+
+ jdtParentJavaElementEClass = createEClass(JDT_PARENT_JAVA_ELEMENT);
+
+ jdtParentEClass = createEClass(JDT_PARENT);
+ createEReference(jdtParentEClass, JDT_PARENT__CHILDREN);
+ createEAttribute(jdtParentEClass, JDT_PARENT__FLAGS);
+
+ jdtJavaElementEClass = createEClass(JDT_JAVA_ELEMENT);
+ createEAttribute(jdtJavaElementEClass, JDT_JAVA_ELEMENT__ELEMENT_NAME);
+ createEAttribute(jdtJavaElementEClass, JDT_JAVA_ELEMENT__ELEMENT_TYPE);
+ createEAttribute(jdtJavaElementEClass, JDT_JAVA_ELEMENT__COMMENT);
+ createEAttribute(jdtJavaElementEClass, JDT_JAVA_ELEMENT__GENERATED);
+ createEReference(jdtJavaElementEClass, JDT_JAVA_ELEMENT__PARENT);
+
+ jdtTypeParameterEClass = createEClass(JDT_TYPE_PARAMETER);
+ createEReference(jdtTypeParameterEClass, JDT_TYPE_PARAMETER__DECLARING_MEMBER);
+
+ jdtTypeEClass = createEClass(JDT_TYPE);
+ createEReference(jdtTypeEClass, JDT_TYPE__METHODS);
+ createEReference(jdtTypeEClass, JDT_TYPE__FIELDS);
+ createEReference(jdtTypeEClass, JDT_TYPE__COMPILATION_UNIT);
+ createEAttribute(jdtTypeEClass, JDT_TYPE__CLASS);
+ createEAttribute(jdtTypeEClass, JDT_TYPE__INTERFACE);
+ createEAttribute(jdtTypeEClass, JDT_TYPE__ENUM);
+ createEAttribute(jdtTypeEClass, JDT_TYPE__ABSTRACT);
+ createEAttribute(jdtTypeEClass, JDT_TYPE__FINAL);
+ createEAttribute(jdtTypeEClass, JDT_TYPE__STATIC);
+ createEReference(jdtTypeEClass, JDT_TYPE__TYPES);
+ createEReference(jdtTypeEClass, JDT_TYPE__OWNER);
+ createEReference(jdtTypeEClass, JDT_TYPE__SUPER_INTERFACES);
+ createEReference(jdtTypeEClass, JDT_TYPE__SUPER_CLASS);
+ createEAttribute(jdtTypeEClass, JDT_TYPE__SUPER_INTERFACE_NAMES);
+ createEAttribute(jdtTypeEClass, JDT_TYPE__SUPER_CLASS_NAME);
+
+ jdtFieldEClass = createEClass(JDT_FIELD);
+ createEAttribute(jdtFieldEClass, JDT_FIELD__ABSTRACT);
+ createEAttribute(jdtFieldEClass, JDT_FIELD__FINAL);
+ createEAttribute(jdtFieldEClass, JDT_FIELD__STATIC);
+ createEAttribute(jdtFieldEClass, JDT_FIELD__IS_MULTI_VALUED);
+ createEReference(jdtFieldEClass, JDT_FIELD__TYPE);
+ createEAttribute(jdtFieldEClass, JDT_FIELD__VALUE);
+ createEAttribute(jdtFieldEClass, JDT_FIELD__GENERATE_GETTER);
+ createEAttribute(jdtFieldEClass, JDT_FIELD__GENERATE_SETTER);
+ createEReference(jdtFieldEClass, JDT_FIELD__OWNER);
+
+ jdtCompilationUnitEClass = createEClass(JDT_COMPILATION_UNIT);
+ createEReference(jdtCompilationUnitEClass, JDT_COMPILATION_UNIT__PACKAGE_FRAGMENT);
+ createEReference(jdtCompilationUnitEClass, JDT_COMPILATION_UNIT__TYPES);
+
+ jdtTypeRootEClass = createEClass(JDT_TYPE_ROOT);
+
+ jdtPackageFragmentEClass = createEClass(JDT_PACKAGE_FRAGMENT);
+ createEReference(jdtPackageFragmentEClass, JDT_PACKAGE_FRAGMENT__PACKAGE_FRAGMENT_ROOT);
+ createEReference(jdtPackageFragmentEClass, JDT_PACKAGE_FRAGMENT__COMPILATION_UNITS);
+
+ jdtPackageFragmentRootEClass = createEClass(JDT_PACKAGE_FRAGMENT_ROOT);
+ createEReference(jdtPackageFragmentRootEClass, JDT_PACKAGE_FRAGMENT_ROOT__JAVA_PROJECT);
+ createEReference(jdtPackageFragmentRootEClass, JDT_PACKAGE_FRAGMENT_ROOT__PACKAGE_FRAGMENTS);
+
+ jdtJavaProjectEClass = createEClass(JDT_JAVA_PROJECT);
+ createEReference(jdtJavaProjectEClass, JDT_JAVA_PROJECT__JAVA_MODEL);
+ createEReference(jdtJavaProjectEClass, JDT_JAVA_PROJECT__PACKAGE_FRAGMENT_ROOTS);
+
+ jdtJavaModelEClass = createEClass(JDT_JAVA_MODEL);
+ createEReference(jdtJavaModelEClass, JDT_JAVA_MODEL__JAVA_PROJECT);
+
+ jdtParameterEClass = createEClass(JDT_PARAMETER);
+ createEReference(jdtParameterEClass, JDT_PARAMETER__PARAMETER_OWNER);
+ createEAttribute(jdtParameterEClass, JDT_PARAMETER__FINAL);
+ createEAttribute(jdtParameterEClass, JDT_PARAMETER__IS_MULTI_VALUED);
+ createEReference(jdtParameterEClass, JDT_PARAMETER__TYPE);
+ createEReference(jdtParameterEClass, JDT_PARAMETER__RETURN_OWNER);
+
+ jdtClassEClass = createEClass(JDT_CLASS);
+
+ jdtInterfaceEClass = createEClass(JDT_INTERFACE);
+
+ jdtEnumEClass = createEClass(JDT_ENUM);
+
+ jdtImportDeclarationEClass = createEClass(JDT_IMPORT_DECLARATION);
+
+ jdtImportContainerEClass = createEClass(JDT_IMPORT_CONTAINER);
+
+ jdtExceptionEClass = createEClass(JDT_EXCEPTION);
+
+ jdtOpaqueBodyEClass = createEClass(JDT_OPAQUE_BODY);
+ createEAttribute(jdtOpaqueBodyEClass, JDT_OPAQUE_BODY__BODY);
+
+ // Create enums
+ visibilityKindEEnum = createEEnum(VISIBILITY_KIND);
+ trueFalseDefaultEEnum = createEEnum(TRUE_FALSE_DEFAULT);
+
+ // Create data types
+ stringEDataType = createEDataType(STRING);
+ intEDataType = createEDataType(INT);
+ booleanEDataType = createEDataType(BOOLEAN);
+ jdtVisitorExceptionEDataType = createEDataType(JDT_VISITOR_EXCEPTION);
+ visitorEDataType = createEDataType(VISITOR);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) {
+ return;
+ }
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ jdtMethodEClass.getESuperTypes().add(this.getJDTMember());
+ jdtMemberEClass.getESuperTypes().add(this.getJDTParentJavaElement());
+ jdtParentJavaElementEClass.getESuperTypes().add(this.getJDTJavaElement());
+ jdtParentJavaElementEClass.getESuperTypes().add(this.getJDTParent());
+ jdtTypeParameterEClass.getESuperTypes().add(this.getJDTJavaElement());
+ jdtTypeEClass.getESuperTypes().add(this.getJDTMember());
+ jdtFieldEClass.getESuperTypes().add(this.getJDTMember());
+ jdtCompilationUnitEClass.getESuperTypes().add(this.getJDTTypeRoot());
+ jdtTypeRootEClass.getESuperTypes().add(this.getJDTParentJavaElement());
+ jdtPackageFragmentEClass.getESuperTypes().add(this.getJDTParentJavaElement());
+ jdtPackageFragmentRootEClass.getESuperTypes().add(this.getJDTParentJavaElement());
+ jdtJavaProjectEClass.getESuperTypes().add(this.getJDTParentJavaElement());
+ jdtJavaModelEClass.getESuperTypes().add(this.getJDTParentJavaElement());
+ jdtParameterEClass.getESuperTypes().add(this.getJDTMember());
+ jdtClassEClass.getESuperTypes().add(this.getJDTType());
+ jdtInterfaceEClass.getESuperTypes().add(this.getJDTType());
+ jdtEnumEClass.getESuperTypes().add(this.getJDTType());
+ jdtImportDeclarationEClass.getESuperTypes().add(this.getJDTJavaElement());
+ jdtImportContainerEClass.getESuperTypes().add(this.getJDTParentJavaElement());
+ jdtOpaqueBodyEClass.getESuperTypes().add(this.getJDTMethodBody());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(jdtMethodBodyEClass, JDTMethodBody.class, "JDTMethodBody", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getJDTMethodBody_Owner(), this.getJDTMethod(), this.getJDTMethod_Bodies(), "owner", null, 1, 1, JDTMethodBody.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+ !IS_ORDERED);
+
+ addEOperation(jdtMethodBodyEClass, this.getString(), "asText", 1, 1, IS_UNIQUE, !IS_ORDERED);
+
+ initEClass(jdtMethodEClass, JDTMethod.class, "JDTMethod", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getJDTMethod_Owner(), this.getJDTType(), this.getJDTType_Methods(), "owner", null, 1, 1, JDTMethod.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+ !IS_ORDERED);
+ initEReference(getJDTMethod_ReturnType(), this.getJDTParameter(), this.getJDTParameter_ReturnOwner(), "returnType", null, 0, 1, JDTMethod.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
+ !IS_DERIVED, !IS_ORDERED);
+ initEReference(getJDTMethod_Parameters(), this.getJDTParameter(), this.getJDTParameter_ParameterOwner(), "parameters", null, 0, -1, JDTMethod.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJDTMethod_Abstract(), this.getboolean(), "abstract", "false", 1, 1, JDTMethod.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJDTMethod_Final(), this.getboolean(), "final", "false", 1, 1, JDTMethod.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJDTMethod_Static(), this.getboolean(), "static", "false", 1, 1, JDTMethod.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, !IS_ORDERED);
+ initEReference(getJDTMethod_Exceptions(), this.getJDTType(), null, "exceptions", null, 0, -1, JDTMethod.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJDTMethod_Synchronized(), this.getboolean(), "synchronized", "false", 1, 1, JDTMethod.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJDTMethod_Constructor(), this.getboolean(), "constructor", null, 1, 1, JDTMethod.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getJDTMethod_Bodies(), this.getJDTMethodBody(), this.getJDTMethodBody_Owner(), "bodies", null, 0, -1, JDTMethod.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
+ !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(jdtMemberEClass, JDTMember.class, "JDTMember", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getJDTMember_TypeParameters(), this.getJDTTypeParameter(), this.getJDTTypeParameter_DeclaringMember(), "typeParameters", null, 0, -1, JDTMember.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJDTMember_Visibility(), this.getVisibilityKind(), "visibility", "public", 1, 1, JDTMember.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, !IS_ORDERED);
+ initEReference(getJDTMember_ExplicitRequiredImports(), this.getJDTType(), null, "explicitRequiredImports", null, 0, -1, JDTMember.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
+ !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJDTMember_ExplicitPlainTextRequiredImports(), this.getString(), "explicitPlainTextRequiredImports", null, 0, -1, JDTMember.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(jdtParentJavaElementEClass, JDTParentJavaElement.class, "JDTParentJavaElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(jdtParentEClass, JDTParent.class, "JDTParent", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getJDTParent_Children(), this.getJDTJavaElement(), this.getJDTJavaElement_Parent(), "children", null, 0, -1, JDTParent.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
+ !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJDTParent_Flags(), this.getint(), "flags", null, 1, 1, JDTParent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ EOperation op = addEOperation(jdtParentEClass, null, "setFlag", 1, 1, IS_UNIQUE, !IS_ORDERED);
+ addEParameter(op, this.getint(), "flag", 1, 1, IS_UNIQUE, !IS_ORDERED);
+ addEParameter(op, this.getboolean(), "value", 1, 1, IS_UNIQUE, !IS_ORDERED);
+
+ op = addEOperation(jdtParentEClass, this.getboolean(), "isFlagSet", 1, 1, IS_UNIQUE, !IS_ORDERED);
+ addEParameter(op, this.getint(), "flag", 1, 1, IS_UNIQUE, !IS_ORDERED);
+
+ initEClass(jdtJavaElementEClass, JDTJavaElement.class, "JDTJavaElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getJDTJavaElement_ElementName(), this.getString(), "elementName", null, 1, 1, JDTJavaElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJDTJavaElement_ElementType(), this.getint(), "elementType", null, 1, 1, JDTJavaElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJDTJavaElement_Comment(), this.getString(), "comment", null, 1, 1, JDTJavaElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJDTJavaElement_Generated(), this.getboolean(), "generated", null, 1, 1, JDTJavaElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getJDTJavaElement_Parent(), this.getJDTParent(), this.getJDTParent_Children(), "parent", null, 0, 1, JDTJavaElement.class, IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
+ !IS_DERIVED, !IS_ORDERED);
+
+ addEOperation(jdtJavaElementEClass, this.getString(), "getQualifiedName", 1, 1, IS_UNIQUE, !IS_ORDERED);
+
+ op = addEOperation(jdtJavaElementEClass, null, "accept", 1, 1, IS_UNIQUE, !IS_ORDERED);
+ addEParameter(op, this.getVisitor(), "visitor", 1, 1, IS_UNIQUE, !IS_ORDERED);
+ addEException(op, this.getJDTVisitorException());
+
+ addEOperation(jdtJavaElementEClass, this.getString(), "getJDTSignature", 1, 1, IS_UNIQUE, !IS_ORDERED);
+
+ initEClass(jdtTypeParameterEClass, JDTTypeParameter.class, "JDTTypeParameter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getJDTTypeParameter_DeclaringMember(), this.getJDTMember(), this.getJDTMember_TypeParameters(), "declaringMember", null, 0, 1, JDTTypeParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(jdtTypeEClass, JDTType.class, "JDTType", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getJDTType_Methods(), this.getJDTMethod(), this.getJDTMethod_Owner(), "methods", null, 0, -1, JDTType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+ !IS_ORDERED);
+ initEReference(getJDTType_Fields(), this.getJDTField(), this.getJDTField_Owner(), "fields", null, 0, -1, JDTType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getJDTType_CompilationUnit(), this.getJDTCompilationUnit(), this.getJDTCompilationUnit_Types(), "compilationUnit", null, 0, 1, JDTType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJDTType_Class(), this.getboolean(), "class", "false", 1, 1, JDTType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJDTType_Interface(), this.getboolean(), "interface", "false", 1, 1, JDTType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJDTType_Enum(), this.getboolean(), "enum", "false", 1, 1, JDTType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJDTType_Abstract(), this.getboolean(), "abstract", "false", 1, 1, JDTType.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJDTType_Final(), this.getboolean(), "final", "false", 1, 1, JDTType.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJDTType_Static(), this.getboolean(), "static", "false", 1, 1, JDTType.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, !IS_ORDERED);
+ initEReference(getJDTType_Types(), this.getJDTType(), this.getJDTType_Owner(), "types", null, 0, -1, JDTType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getJDTType_Owner(), this.getJDTType(), this.getJDTType_Types(), "owner", null, 0, 1, JDTType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getJDTType_SuperInterfaces(), this.getJDTType(), null, "superInterfaces", null, 0, -1, JDTType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getJDTType_SuperClass(), this.getJDTType(), null, "superClass", null, 0, 1, JDTType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJDTType_SuperInterfaceNames(), this.getString(), "superInterfaceNames", null, 0, -1, JDTType.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJDTType_SuperClassName(), this.getString(), "superClassName", null, 1, 1, JDTType.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, !IS_ORDERED);
+
+ initEClass(jdtFieldEClass, JDTField.class, "JDTField", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getJDTField_Abstract(), this.getboolean(), "abstract", "false", 1, 1, JDTField.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJDTField_Final(), this.getboolean(), "final", "false", 1, 1, JDTField.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJDTField_Static(), this.getboolean(), "static", "false", 1, 1, JDTField.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJDTField_IsMultiValued(), this.getboolean(), "isMultiValued", "false", 1, 1, JDTField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getJDTField_Type(), this.getJDTType(), null, "type", null, 0, 1, JDTField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJDTField_Value(), this.getString(), "value", null, 1, 1, JDTField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJDTField_GenerateGetter(), this.getTrueFalseDefault(), "generateGetter", null, 1, 1, JDTField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJDTField_GenerateSetter(), this.getTrueFalseDefault(), "generateSetter", null, 1, 1, JDTField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getJDTField_Owner(), this.getJDTType(), this.getJDTType_Fields(), "owner", null, 1, 1, JDTField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(jdtCompilationUnitEClass, JDTCompilationUnit.class, "JDTCompilationUnit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getJDTCompilationUnit_PackageFragment(), this.getJDTPackageFragment(), this.getJDTPackageFragment_CompilationUnits(), "packageFragment", null, 0, 1, JDTCompilationUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
+ !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getJDTCompilationUnit_Types(), this.getJDTType(), this.getJDTType_CompilationUnit(), "types", null, 0, -1, JDTCompilationUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(jdtTypeRootEClass, JDTTypeRoot.class, "JDTTypeRoot", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(jdtPackageFragmentEClass, JDTPackageFragment.class, "JDTPackageFragment", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getJDTPackageFragment_PackageFragmentRoot(), this.getJDTPackageFragmentRoot(), this.getJDTPackageFragmentRoot_PackageFragments(), "packageFragmentRoot", null, 0, 1, JDTPackageFragment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+ !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getJDTPackageFragment_CompilationUnits(), this.getJDTCompilationUnit(), this.getJDTCompilationUnit_PackageFragment(), "compilationUnits", null, 0, -1, JDTPackageFragment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+ !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(jdtPackageFragmentRootEClass, JDTPackageFragmentRoot.class, "JDTPackageFragmentRoot", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getJDTPackageFragmentRoot_JavaProject(), this.getJDTJavaProject(), this.getJDTJavaProject_PackageFragmentRoots(), "javaProject", null, 0, 1, JDTPackageFragmentRoot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
+ !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getJDTPackageFragmentRoot_PackageFragments(), this.getJDTPackageFragment(), this.getJDTPackageFragment_PackageFragmentRoot(), "packageFragments", null, 0, -1, JDTPackageFragmentRoot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+ IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(jdtJavaProjectEClass, JDTJavaProject.class, "JDTJavaProject", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getJDTJavaProject_JavaModel(), this.getJDTJavaModel(), this.getJDTJavaModel_JavaProject(), "javaModel", null, 0, 1, JDTJavaProject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getJDTJavaProject_PackageFragmentRoots(), this.getJDTPackageFragmentRoot(), this.getJDTPackageFragmentRoot_JavaProject(), "packageFragmentRoots", null, 0, -1, JDTJavaProject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+ IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(jdtJavaModelEClass, JDTJavaModel.class, "JDTJavaModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getJDTJavaModel_JavaProject(), this.getJDTJavaProject(), this.getJDTJavaProject_JavaModel(), "javaProject", null, 0, -1, JDTJavaModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(jdtParameterEClass, JDTParameter.class, "JDTParameter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getJDTParameter_ParameterOwner(), this.getJDTMethod(), this.getJDTMethod_Parameters(), "parameterOwner", null, 0, 1, JDTParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJDTParameter_Final(), this.getboolean(), "final", "false", 1, 1, JDTParameter.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJDTParameter_IsMultiValued(), this.getboolean(), "isMultiValued", "false", 1, 1, JDTParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getJDTParameter_Type(), this.getJDTType(), null, "type", null, 0, 1, JDTParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getJDTParameter_ReturnOwner(), this.getJDTMethod(), this.getJDTMethod_ReturnType(), "returnOwner", null, 0, 1, JDTParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(jdtClassEClass, JDTClass.class, "JDTClass", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(jdtInterfaceEClass, JDTInterface.class, "JDTInterface", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(jdtEnumEClass, JDTEnum.class, "JDTEnum", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(jdtImportDeclarationEClass, JDTImportDeclaration.class, "JDTImportDeclaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(jdtImportContainerEClass, JDTImportContainer.class, "JDTImportContainer", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(jdtExceptionEClass, JDTException.class, "JDTException", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(jdtOpaqueBodyEClass, JDTOpaqueBody.class, "JDTOpaqueBody", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getJDTOpaqueBody__body(), this.getString(), "_body", null, 1, 1, JDTOpaqueBody.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ // Initialize enums and add enum literals
+ initEEnum(visibilityKindEEnum, VisibilityKind.class, "VisibilityKind");
+ addEEnumLiteral(visibilityKindEEnum, VisibilityKind.PUBLIC);
+ addEEnumLiteral(visibilityKindEEnum, VisibilityKind.PROTECTED);
+ addEEnumLiteral(visibilityKindEEnum, VisibilityKind.PRIVATE);
+
+ initEEnum(trueFalseDefaultEEnum, TrueFalseDefault.class, "TrueFalseDefault");
+ addEEnumLiteral(trueFalseDefaultEEnum, TrueFalseDefault.TRUE);
+ addEEnumLiteral(trueFalseDefaultEEnum, TrueFalseDefault.FALSE);
+ addEEnumLiteral(trueFalseDefaultEEnum, TrueFalseDefault.DEFAULT);
+
+ // Initialize data types
+ initEDataType(stringEDataType, String.class, "String", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(intEDataType, int.class, "int", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(booleanEDataType, boolean.class, "boolean", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(jdtVisitorExceptionEDataType, JDTVisitorException.class, "JDTVisitorException", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(visitorEDataType, JDTVisitor.class, "Visitor", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // redefines
+ createRedefinesAnnotations();
+ // union
+ createUnionAnnotations();
+ // subsets
+ createSubsetsAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>union</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void createUnionAnnotations() {
+ String source = "union";
+ addAnnotation(getJDTParent_Children(),
+ source,
+ new String[] {
+ });
+ }
+
+ /**
+ * Initializes the annotations for <b>redefines</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void createRedefinesAnnotations() {
+ String source = "redefines";
+ addAnnotation(getJDTMethod_Owner(),
+ source,
+ new String[] {
+ },
+ new URI[] {
+ URI.createURI(eNS_URI).appendFragment("//JDTJavaElement/parent")
+ });
+ addAnnotation(getJDTType_CompilationUnit(),
+ source,
+ new String[] {
+ },
+ new URI[] {
+ URI.createURI(eNS_URI).appendFragment("//JDTJavaElement/parent")
+ });
+ addAnnotation(getJDTType_Owner(),
+ source,
+ new String[] {
+ },
+ new URI[] {
+ URI.createURI(eNS_URI).appendFragment("//JDTJavaElement/parent")
+ });
+ addAnnotation(getJDTField_Owner(),
+ source,
+ new String[] {
+ },
+ new URI[] {
+ URI.createURI(eNS_URI).appendFragment("//JDTJavaElement/parent")
+ });
+ addAnnotation(getJDTCompilationUnit_PackageFragment(),
+ source,
+ new String[] {
+ },
+ new URI[] {
+ URI.createURI(eNS_URI).appendFragment("//JDTJavaElement/parent")
+ });
+ addAnnotation(getJDTPackageFragment_PackageFragmentRoot(),
+ source,
+ new String[] {
+ },
+ new URI[] {
+ URI.createURI(eNS_URI).appendFragment("//JDTJavaElement/parent")
+ });
+ addAnnotation(getJDTPackageFragmentRoot_JavaProject(),
+ source,
+ new String[] {
+ },
+ new URI[] {
+ URI.createURI(eNS_URI).appendFragment("//JDTJavaElement/parent")
+ });
+ }
+
+ /**
+ * Initializes the annotations for <b>subsets</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void createSubsetsAnnotations() {
+ String source = "subsets";
+ addAnnotation(getJDTType_Methods(),
+ source,
+ new String[] {
+ },
+ new URI[] {
+ URI.createURI(eNS_URI).appendFragment("//JDTParent/children")
+ });
+ addAnnotation(getJDTType_Fields(),
+ source,
+ new String[] {
+ },
+ new URI[] {
+ URI.createURI(eNS_URI).appendFragment("//JDTParent/children")
+ });
+ addAnnotation(getJDTType_Types(),
+ source,
+ new String[] {
+ },
+ new URI[] {
+ URI.createURI(eNS_URI).appendFragment("//JDTParent/children")
+ });
+ addAnnotation(getJDTCompilationUnit_Types(),
+ source,
+ new String[] {
+ },
+ new URI[] {
+ URI.createURI(eNS_URI).appendFragment("//JDTParent/children")
+ });
+ addAnnotation(getJDTPackageFragment_CompilationUnits(),
+ source,
+ new String[] {
+ },
+ new URI[] {
+ URI.createURI(eNS_URI).appendFragment("//JDTParent/children")
+ });
+ addAnnotation(getJDTPackageFragmentRoot_PackageFragments(),
+ source,
+ new String[] {
+ },
+ new URI[] {
+ URI.createURI(eNS_URI).appendFragment("//JDTParent/children")
+ });
+ addAnnotation(getJDTJavaProject_PackageFragmentRoots(),
+ source,
+ new String[] {
+ },
+ new URI[] {
+ URI.createURI(eNS_URI).appendFragment("//JDTParent/children")
+ });
+ }
+
+} // JdtmmPackageImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/util/JdtmmAdapterFactory.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/util/JdtmmAdapterFactory.java
new file mode 100644
index 00000000000..aa76f9d5313
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/util/JdtmmAdapterFactory.java
@@ -0,0 +1,595 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTClass;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTCompilationUnit;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTEnum;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTException;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTImportContainer;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTImportDeclaration;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTInterface;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaModel;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaProject;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMember;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethodBody;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTOpaqueBody;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragment;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragmentRoot;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParent;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParentJavaElement;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTTypeParameter;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTTypeRoot;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage
+ * @generated
+ */
+public class JdtmmAdapterFactory extends AdapterFactoryImpl {
+
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected static JdtmmPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JdtmmAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = JdtmmPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ *
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject) object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JdtmmSwitch<Adapter> modelSwitch =
+ new JdtmmSwitch<Adapter>() {
+ @Override
+ public Adapter caseJDTMethodBody(JDTMethodBody object) {
+ return createJDTMethodBodyAdapter();
+ }
+
+ @Override
+ public Adapter caseJDTMethod(JDTMethod object) {
+ return createJDTMethodAdapter();
+ }
+
+ @Override
+ public Adapter caseJDTMember(JDTMember object) {
+ return createJDTMemberAdapter();
+ }
+
+ @Override
+ public Adapter caseJDTParentJavaElement(JDTParentJavaElement object) {
+ return createJDTParentJavaElementAdapter();
+ }
+
+ @Override
+ public Adapter caseJDTParent(JDTParent object) {
+ return createJDTParentAdapter();
+ }
+
+ @Override
+ public Adapter caseJDTJavaElement(JDTJavaElement object) {
+ return createJDTJavaElementAdapter();
+ }
+
+ @Override
+ public Adapter caseJDTTypeParameter(JDTTypeParameter object) {
+ return createJDTTypeParameterAdapter();
+ }
+
+ @Override
+ public Adapter caseJDTType(JDTType object) {
+ return createJDTTypeAdapter();
+ }
+
+ @Override
+ public Adapter caseJDTField(JDTField object) {
+ return createJDTFieldAdapter();
+ }
+
+ @Override
+ public Adapter caseJDTCompilationUnit(JDTCompilationUnit object) {
+ return createJDTCompilationUnitAdapter();
+ }
+
+ @Override
+ public Adapter caseJDTTypeRoot(JDTTypeRoot object) {
+ return createJDTTypeRootAdapter();
+ }
+
+ @Override
+ public Adapter caseJDTPackageFragment(JDTPackageFragment object) {
+ return createJDTPackageFragmentAdapter();
+ }
+
+ @Override
+ public Adapter caseJDTPackageFragmentRoot(JDTPackageFragmentRoot object) {
+ return createJDTPackageFragmentRootAdapter();
+ }
+
+ @Override
+ public Adapter caseJDTJavaProject(JDTJavaProject object) {
+ return createJDTJavaProjectAdapter();
+ }
+
+ @Override
+ public Adapter caseJDTJavaModel(JDTJavaModel object) {
+ return createJDTJavaModelAdapter();
+ }
+
+ @Override
+ public Adapter caseJDTParameter(JDTParameter object) {
+ return createJDTParameterAdapter();
+ }
+
+ @Override
+ public Adapter caseJDTClass(JDTClass object) {
+ return createJDTClassAdapter();
+ }
+
+ @Override
+ public Adapter caseJDTInterface(JDTInterface object) {
+ return createJDTInterfaceAdapter();
+ }
+
+ @Override
+ public Adapter caseJDTEnum(JDTEnum object) {
+ return createJDTEnumAdapter();
+ }
+
+ @Override
+ public Adapter caseJDTImportDeclaration(JDTImportDeclaration object) {
+ return createJDTImportDeclarationAdapter();
+ }
+
+ @Override
+ public Adapter caseJDTImportContainer(JDTImportContainer object) {
+ return createJDTImportContainerAdapter();
+ }
+
+ @Override
+ public Adapter caseJDTException(JDTException object) {
+ return createJDTExceptionAdapter();
+ }
+
+ @Override
+ public Adapter caseJDTOpaqueBody(JDTOpaqueBody object) {
+ return createJDTOpaqueBodyAdapter();
+ }
+
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param target
+ * the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject) target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethodBody <em>JDT Method Body</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethodBody
+ * @generated
+ */
+ public Adapter createJDTMethodBodyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement <em>JDT Java Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement
+ * @generated
+ */
+ public Adapter createJDTJavaElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParent <em>JDT Parent</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParent
+ * @generated
+ */
+ public Adapter createJDTParentAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMember <em>JDT Member</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMember
+ * @generated
+ */
+ public Adapter createJDTMemberAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParentJavaElement <em>JDT Parent Java Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParentJavaElement
+ * @generated
+ */
+ public Adapter createJDTParentJavaElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTTypeParameter <em>JDT Type Parameter</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTTypeParameter
+ * @generated
+ */
+ public Adapter createJDTTypeParameterAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField <em>JDT Field</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField
+ * @generated
+ */
+ public Adapter createJDTFieldAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType <em>JDT Type</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType
+ * @generated
+ */
+ public Adapter createJDTTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod <em>JDT Method</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod
+ * @generated
+ */
+ public Adapter createJDTMethodAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter <em>JDT Parameter</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter
+ * @generated
+ */
+ public Adapter createJDTParameterAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTCompilationUnit <em>JDT Compilation Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTCompilationUnit
+ * @generated
+ */
+ public Adapter createJDTCompilationUnitAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTTypeRoot <em>JDT Type Root</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTTypeRoot
+ * @generated
+ */
+ public Adapter createJDTTypeRootAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragment <em>JDT Package Fragment</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragment
+ * @generated
+ */
+ public Adapter createJDTPackageFragmentAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragmentRoot <em>JDT Package Fragment Root</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragmentRoot
+ * @generated
+ */
+ public Adapter createJDTPackageFragmentRootAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaProject <em>JDT Java Project</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaProject
+ * @generated
+ */
+ public Adapter createJDTJavaProjectAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaModel <em>JDT Java Model</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaModel
+ * @generated
+ */
+ public Adapter createJDTJavaModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTClass <em>JDT Class</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTClass
+ * @generated
+ */
+ public Adapter createJDTClassAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTInterface <em>JDT Interface</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTInterface
+ * @generated
+ */
+ public Adapter createJDTInterfaceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTEnum <em>JDT Enum</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTEnum
+ * @generated
+ */
+ public Adapter createJDTEnumAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTImportDeclaration <em>JDT Import Declaration</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTImportDeclaration
+ * @generated
+ */
+ public Adapter createJDTImportDeclarationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTImportContainer <em>JDT Import Container</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTImportContainer
+ * @generated
+ */
+ public Adapter createJDTImportContainerAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTException <em>JDT Exception</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTException
+ * @generated
+ */
+ public Adapter createJDTExceptionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTOpaqueBody <em>JDT Opaque Body</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTOpaqueBody
+ * @generated
+ */
+ public Adapter createJDTOpaqueBodyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} // JdtmmAdapterFactory
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/util/JdtmmPreference.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/util/JdtmmPreference.java
new file mode 100644
index 00000000000..71f10f9be80
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/util/JdtmmPreference.java
@@ -0,0 +1,58 @@
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.util;
+
+public class JdtmmPreference {
+
+ private static String classMultiValue = "List";
+
+ /**
+ * Set value of class used for the MultiValue
+ *
+ * @param classMultiValue
+ */
+ public static void setClassMultiValue(String classMultiValue) {
+ JdtmmPreference.classMultiValue = classMultiValue;
+ }
+
+ /**
+ * get value of class used for the MultiValue
+ *
+ * @param classMultiValue
+ */
+ public static String getMultiValued(String typeName) {
+ return classMultiValue + "<" + getPrimiveTypeClass(typeName) + ">";
+ }
+
+ /**
+ * return the Class of a primitive type (ex : int => Integer)
+ *
+ * @param typename
+ * @return true if typename is a primive type
+ */
+ private static String getPrimiveTypeClass(String typename) {
+ if (typename.equals("byte")) {
+ return "Byte";
+ }
+ if (typename.equals("char")) {
+ return "Character";
+ }
+ if (typename.equals("double")) {
+ return "Double";
+ }
+ if (typename.equals("float")) {
+ return "Float";
+ }
+ if (typename.equals("int")) {
+ return "Integer";
+ }
+ if (typename.equals("long")) {
+ return "Long";
+ }
+ if (typename.equals("short")) {
+ return "Short";
+ }
+ if (typename.equals("boolean")) {
+ return "Boolean";
+ }
+ return typename;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/util/JdtmmSwitch.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/util/JdtmmSwitch.java
new file mode 100644
index 00000000000..54c63e6116d
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/util/JdtmmSwitch.java
@@ -0,0 +1,880 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTClass;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTCompilationUnit;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTEnum;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTException;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTField;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTImportContainer;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTImportDeclaration;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTInterface;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaModel;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaProject;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMember;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethod;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTMethodBody;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTOpaqueBody;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragment;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTPackageFragmentRoot;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParameter;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParent;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTParentJavaElement;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTType;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTTypeParameter;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTTypeRoot;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)} to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage
+ * @generated
+ */
+public class JdtmmSwitch<T> extends Switch<T> {
+
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected static JdtmmPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JdtmmSwitch() {
+ if (modelPackage == null) {
+ modelPackage = JdtmmPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case JdtmmPackage.JDT_METHOD_BODY: {
+ JDTMethodBody jdtMethodBody = (JDTMethodBody) theEObject;
+ T result = caseJDTMethodBody(jdtMethodBody);
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ case JdtmmPackage.JDT_METHOD: {
+ JDTMethod jdtMethod = (JDTMethod) theEObject;
+ T result = caseJDTMethod(jdtMethod);
+ if (result == null) {
+ result = caseJDTMember(jdtMethod);
+ }
+ if (result == null) {
+ result = caseJDTParentJavaElement(jdtMethod);
+ }
+ if (result == null) {
+ result = caseJDTJavaElement(jdtMethod);
+ }
+ if (result == null) {
+ result = caseJDTParent(jdtMethod);
+ }
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ case JdtmmPackage.JDT_MEMBER: {
+ JDTMember jdtMember = (JDTMember) theEObject;
+ T result = caseJDTMember(jdtMember);
+ if (result == null) {
+ result = caseJDTParentJavaElement(jdtMember);
+ }
+ if (result == null) {
+ result = caseJDTJavaElement(jdtMember);
+ }
+ if (result == null) {
+ result = caseJDTParent(jdtMember);
+ }
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ case JdtmmPackage.JDT_PARENT_JAVA_ELEMENT: {
+ JDTParentJavaElement jdtParentJavaElement = (JDTParentJavaElement) theEObject;
+ T result = caseJDTParentJavaElement(jdtParentJavaElement);
+ if (result == null) {
+ result = caseJDTJavaElement(jdtParentJavaElement);
+ }
+ if (result == null) {
+ result = caseJDTParent(jdtParentJavaElement);
+ }
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ case JdtmmPackage.JDT_PARENT: {
+ JDTParent jdtParent = (JDTParent) theEObject;
+ T result = caseJDTParent(jdtParent);
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ case JdtmmPackage.JDT_JAVA_ELEMENT: {
+ JDTJavaElement jdtJavaElement = (JDTJavaElement) theEObject;
+ T result = caseJDTJavaElement(jdtJavaElement);
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ case JdtmmPackage.JDT_TYPE_PARAMETER: {
+ JDTTypeParameter jdtTypeParameter = (JDTTypeParameter) theEObject;
+ T result = caseJDTTypeParameter(jdtTypeParameter);
+ if (result == null) {
+ result = caseJDTJavaElement(jdtTypeParameter);
+ }
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ case JdtmmPackage.JDT_TYPE: {
+ JDTType jdtType = (JDTType) theEObject;
+ T result = caseJDTType(jdtType);
+ if (result == null) {
+ result = caseJDTMember(jdtType);
+ }
+ if (result == null) {
+ result = caseJDTParentJavaElement(jdtType);
+ }
+ if (result == null) {
+ result = caseJDTJavaElement(jdtType);
+ }
+ if (result == null) {
+ result = caseJDTParent(jdtType);
+ }
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ case JdtmmPackage.JDT_FIELD: {
+ JDTField jdtField = (JDTField) theEObject;
+ T result = caseJDTField(jdtField);
+ if (result == null) {
+ result = caseJDTMember(jdtField);
+ }
+ if (result == null) {
+ result = caseJDTParentJavaElement(jdtField);
+ }
+ if (result == null) {
+ result = caseJDTJavaElement(jdtField);
+ }
+ if (result == null) {
+ result = caseJDTParent(jdtField);
+ }
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ case JdtmmPackage.JDT_COMPILATION_UNIT: {
+ JDTCompilationUnit jdtCompilationUnit = (JDTCompilationUnit) theEObject;
+ T result = caseJDTCompilationUnit(jdtCompilationUnit);
+ if (result == null) {
+ result = caseJDTTypeRoot(jdtCompilationUnit);
+ }
+ if (result == null) {
+ result = caseJDTParentJavaElement(jdtCompilationUnit);
+ }
+ if (result == null) {
+ result = caseJDTJavaElement(jdtCompilationUnit);
+ }
+ if (result == null) {
+ result = caseJDTParent(jdtCompilationUnit);
+ }
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ case JdtmmPackage.JDT_TYPE_ROOT: {
+ JDTTypeRoot jdtTypeRoot = (JDTTypeRoot) theEObject;
+ T result = caseJDTTypeRoot(jdtTypeRoot);
+ if (result == null) {
+ result = caseJDTParentJavaElement(jdtTypeRoot);
+ }
+ if (result == null) {
+ result = caseJDTJavaElement(jdtTypeRoot);
+ }
+ if (result == null) {
+ result = caseJDTParent(jdtTypeRoot);
+ }
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ case JdtmmPackage.JDT_PACKAGE_FRAGMENT: {
+ JDTPackageFragment jdtPackageFragment = (JDTPackageFragment) theEObject;
+ T result = caseJDTPackageFragment(jdtPackageFragment);
+ if (result == null) {
+ result = caseJDTParentJavaElement(jdtPackageFragment);
+ }
+ if (result == null) {
+ result = caseJDTJavaElement(jdtPackageFragment);
+ }
+ if (result == null) {
+ result = caseJDTParent(jdtPackageFragment);
+ }
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ case JdtmmPackage.JDT_PACKAGE_FRAGMENT_ROOT: {
+ JDTPackageFragmentRoot jdtPackageFragmentRoot = (JDTPackageFragmentRoot) theEObject;
+ T result = caseJDTPackageFragmentRoot(jdtPackageFragmentRoot);
+ if (result == null) {
+ result = caseJDTParentJavaElement(jdtPackageFragmentRoot);
+ }
+ if (result == null) {
+ result = caseJDTJavaElement(jdtPackageFragmentRoot);
+ }
+ if (result == null) {
+ result = caseJDTParent(jdtPackageFragmentRoot);
+ }
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ case JdtmmPackage.JDT_JAVA_PROJECT: {
+ JDTJavaProject jdtJavaProject = (JDTJavaProject) theEObject;
+ T result = caseJDTJavaProject(jdtJavaProject);
+ if (result == null) {
+ result = caseJDTParentJavaElement(jdtJavaProject);
+ }
+ if (result == null) {
+ result = caseJDTJavaElement(jdtJavaProject);
+ }
+ if (result == null) {
+ result = caseJDTParent(jdtJavaProject);
+ }
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ case JdtmmPackage.JDT_JAVA_MODEL: {
+ JDTJavaModel jdtJavaModel = (JDTJavaModel) theEObject;
+ T result = caseJDTJavaModel(jdtJavaModel);
+ if (result == null) {
+ result = caseJDTParentJavaElement(jdtJavaModel);
+ }
+ if (result == null) {
+ result = caseJDTJavaElement(jdtJavaModel);
+ }
+ if (result == null) {
+ result = caseJDTParent(jdtJavaModel);
+ }
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ case JdtmmPackage.JDT_PARAMETER: {
+ JDTParameter jdtParameter = (JDTParameter) theEObject;
+ T result = caseJDTParameter(jdtParameter);
+ if (result == null) {
+ result = caseJDTMember(jdtParameter);
+ }
+ if (result == null) {
+ result = caseJDTParentJavaElement(jdtParameter);
+ }
+ if (result == null) {
+ result = caseJDTJavaElement(jdtParameter);
+ }
+ if (result == null) {
+ result = caseJDTParent(jdtParameter);
+ }
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ case JdtmmPackage.JDT_CLASS: {
+ JDTClass jdtClass = (JDTClass) theEObject;
+ T result = caseJDTClass(jdtClass);
+ if (result == null) {
+ result = caseJDTType(jdtClass);
+ }
+ if (result == null) {
+ result = caseJDTMember(jdtClass);
+ }
+ if (result == null) {
+ result = caseJDTParentJavaElement(jdtClass);
+ }
+ if (result == null) {
+ result = caseJDTJavaElement(jdtClass);
+ }
+ if (result == null) {
+ result = caseJDTParent(jdtClass);
+ }
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ case JdtmmPackage.JDT_INTERFACE: {
+ JDTInterface jdtInterface = (JDTInterface) theEObject;
+ T result = caseJDTInterface(jdtInterface);
+ if (result == null) {
+ result = caseJDTType(jdtInterface);
+ }
+ if (result == null) {
+ result = caseJDTMember(jdtInterface);
+ }
+ if (result == null) {
+ result = caseJDTParentJavaElement(jdtInterface);
+ }
+ if (result == null) {
+ result = caseJDTJavaElement(jdtInterface);
+ }
+ if (result == null) {
+ result = caseJDTParent(jdtInterface);
+ }
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ case JdtmmPackage.JDT_ENUM: {
+ JDTEnum jdtEnum = (JDTEnum) theEObject;
+ T result = caseJDTEnum(jdtEnum);
+ if (result == null) {
+ result = caseJDTType(jdtEnum);
+ }
+ if (result == null) {
+ result = caseJDTMember(jdtEnum);
+ }
+ if (result == null) {
+ result = caseJDTParentJavaElement(jdtEnum);
+ }
+ if (result == null) {
+ result = caseJDTJavaElement(jdtEnum);
+ }
+ if (result == null) {
+ result = caseJDTParent(jdtEnum);
+ }
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ case JdtmmPackage.JDT_IMPORT_DECLARATION: {
+ JDTImportDeclaration jdtImportDeclaration = (JDTImportDeclaration) theEObject;
+ T result = caseJDTImportDeclaration(jdtImportDeclaration);
+ if (result == null) {
+ result = caseJDTJavaElement(jdtImportDeclaration);
+ }
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ case JdtmmPackage.JDT_IMPORT_CONTAINER: {
+ JDTImportContainer jdtImportContainer = (JDTImportContainer) theEObject;
+ T result = caseJDTImportContainer(jdtImportContainer);
+ if (result == null) {
+ result = caseJDTParentJavaElement(jdtImportContainer);
+ }
+ if (result == null) {
+ result = caseJDTJavaElement(jdtImportContainer);
+ }
+ if (result == null) {
+ result = caseJDTParent(jdtImportContainer);
+ }
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ case JdtmmPackage.JDT_EXCEPTION: {
+ JDTException jdtException = (JDTException) theEObject;
+ T result = caseJDTException(jdtException);
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ case JdtmmPackage.JDT_OPAQUE_BODY: {
+ JDTOpaqueBody jdtOpaqueBody = (JDTOpaqueBody) theEObject;
+ T result = caseJDTOpaqueBody(jdtOpaqueBody);
+ if (result == null) {
+ result = caseJDTMethodBody(jdtOpaqueBody);
+ }
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ default:
+ return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>JDT Method Body</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>JDT Method Body</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseJDTMethodBody(JDTMethodBody object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>JDT Java Element</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>JDT Java Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseJDTJavaElement(JDTJavaElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>JDT Parent</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>JDT Parent</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseJDTParent(JDTParent object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>JDT Member</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>JDT Member</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseJDTMember(JDTMember object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>JDT Parent Java Element</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>JDT Parent Java Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseJDTParentJavaElement(JDTParentJavaElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>JDT Type Parameter</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>JDT Type Parameter</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseJDTTypeParameter(JDTTypeParameter object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>JDT Field</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>JDT Field</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseJDTField(JDTField object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>JDT Type</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>JDT Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseJDTType(JDTType object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>JDT Method</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>JDT Method</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseJDTMethod(JDTMethod object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>JDT Parameter</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>JDT Parameter</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseJDTParameter(JDTParameter object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>JDT Compilation Unit</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>JDT Compilation Unit</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseJDTCompilationUnit(JDTCompilationUnit object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>JDT Type Root</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>JDT Type Root</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseJDTTypeRoot(JDTTypeRoot object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>JDT Package Fragment</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>JDT Package Fragment</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseJDTPackageFragment(JDTPackageFragment object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>JDT Package Fragment Root</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>JDT Package Fragment Root</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseJDTPackageFragmentRoot(JDTPackageFragmentRoot object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>JDT Java Project</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>JDT Java Project</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseJDTJavaProject(JDTJavaProject object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>JDT Java Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>JDT Java Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseJDTJavaModel(JDTJavaModel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>JDT Class</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>JDT Class</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseJDTClass(JDTClass object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>JDT Interface</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>JDT Interface</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseJDTInterface(JDTInterface object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>JDT Enum</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>JDT Enum</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseJDTEnum(JDTEnum object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>JDT Import Declaration</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>JDT Import Declaration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseJDTImportDeclaration(JDTImportDeclaration object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>JDT Import Container</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>JDT Import Container</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseJDTImportContainer(JDTImportContainer object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>JDT Exception</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>JDT Exception</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseJDTException(JDTException object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>JDT Opaque Body</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>JDT Opaque Body</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseJDTOpaqueBody(JDTOpaqueBody object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} // JdtmmSwitch
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/visitor/JDTVisitor.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/visitor/JDTVisitor.java
new file mode 100644
index 00000000000..96f258be762
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/visitor/JDTVisitor.java
@@ -0,0 +1,39 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Initial API and implementation
+ * Manuel Giles giles.manu@live.fr - Initial API and implementation
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Idea of the java generator project & help for the conception
+ *
+ *****************************************************************************/
+
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor;
+
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement;
+
+
+/**
+ *
+ */
+public interface JDTVisitor {
+
+ /**
+ *
+ * @param element
+ */
+ void visit(JDTJavaElement element) throws JDTVisitorException;
+
+} // JDTVisitor
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/visitor/JDTVisitorException.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/visitor/JDTVisitorException.java
new file mode 100644
index 00000000000..d2d1d0b8ae8
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/visitor/JDTVisitorException.java
@@ -0,0 +1,42 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Initial API and implementation
+ * Manuel Giles giles.manu@live.fr - Initial API and implementation
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Idea of the java generator project & help for the conception
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor;
+
+public class JDTVisitorException extends Exception {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ public JDTVisitorException() {
+ super();
+ }
+
+ public JDTVisitorException(String arg0, Throwable arg1) {
+ super(arg0, arg1);
+ }
+
+ public JDTVisitorException(String arg0) {
+ super(arg0);
+ }
+
+ public JDTVisitorException(Throwable arg0) {
+ super(arg0);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/utils/DerivedNotifyingEList.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/utils/DerivedNotifyingEList.java
new file mode 100644
index 00000000000..6f5bdd9b327
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/utils/DerivedNotifyingEList.java
@@ -0,0 +1,442 @@
+/*****************************************************************************
+ * Copyright (c) 2010 LIFL & CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Cedric Dumoulin (LIFL) cedric.dumoulin@lifl.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.java.generator.metamodel.jdt.utils;
+
+import java.util.AbstractSequentialList;
+import java.util.ListIterator;
+import java.util.NoSuchElementException;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.NotifyingList;
+import org.eclipse.emf.common.notify.impl.AdapterImpl;
+import org.eclipse.emf.common.notify.impl.NotificationImpl;
+import org.eclipse.emf.common.util.AbstractEList;
+import org.eclipse.emf.common.util.EList;
+
+
+/**
+ * A List derived from an original list.
+ *
+ * <br>
+ * Some code from org.eclipse.emf.common.util.AbstractEList
+ *
+ * @author cedric dumoulin
+ *
+ * @param E
+ * Expected type of this derived list's item. I.e. the type returned by this list get() method.
+ * @param T
+ * Type of the original list elements'
+ */
+public abstract class DerivedNotifyingEList<E, T> extends AbstractSequentialList<E> implements EList<E>, NotifyingList<E> {
+
+
+ /**
+ * The original List
+ */
+ protected NotifyingList<T> backupList;
+
+ /**
+ * Notifier used to notify changes in the list
+ */
+ private Object notifier;
+
+ /**
+ * Feature in the list that correspond to the list.
+ */
+ private Object feature;
+
+ /**
+ * Feature ID
+ */
+ private int featureID;
+
+ /**
+ * Listener on backuplist.
+ * TODO : use weakreference in order to enable garbage on this class.
+ */
+ private Adapter backupListChangeListener = new AdapterImpl() {
+
+ /**
+ * Event receive when the backupList is changed.
+ *
+ * @param msg
+ */
+ @Override
+ public void notifyChanged(Notification msg) {
+
+ // Retains only changes from the backuplist
+ if (msg.getNotifier() != backupList.getNotifier() || msg.getFeature() != backupList.getFeature()) {
+ return;
+ }
+
+ // create a new Notification and throw event to its Notifier
+ NotificationImpl newNotification = createNotification(msg);
+ newNotification.dispatch();
+
+ }
+ };
+
+ /**
+ * Constructor.
+ * The backupList is used as notifier. Feature is set to null and featureID to 0.
+ *
+ */
+ public DerivedNotifyingEList(NotifyingList<T> backupList) {
+
+ this(backupList, backupList.getNotifier(), null, 0);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param backupList
+ * @param notifier
+ * @param feature
+ * @param featureID
+ */
+ public DerivedNotifyingEList(NotifyingList<T> backupList, Object feature, int featureID) {
+
+ this(backupList, backupList.getNotifier(), feature, featureID);
+ }
+
+ /**
+ * Final Constructor. <br>
+ * Feature and featureID should be different from the backupList.feature and backupList.featureID
+ *
+ * @param backupList
+ * @param notifier
+ * @param feature
+ * The feature in the notifier that represent this list.
+ * @param featureID
+ * The feature ID
+ */
+ public DerivedNotifyingEList(NotifyingList<T> backupList, Object notifier, Object feature, int featureID) {
+
+ // Check values
+ if (feature == backupList.getFeature() || featureID == backupList.getFeatureID()) {
+ throw new IllegalArgumentException("Feature and featureID should be different from the backupList.feature and backupList.featureID. ["
+ + feature + "=="
+ + backupList.getFeature() + " - "
+ + featureID + "=="
+ + backupList.getFeatureID()
+ + "]");
+ }
+
+ // Set properties
+ this.backupList = backupList;
+ this.notifier = notifier;
+ this.feature = feature;
+ this.featureID = featureID;
+ attachListener();
+ }
+
+ /**
+ * Listen to changes in backupList.
+ */
+ protected void attachListener() {
+ ((Notifier) notifier).eAdapters().add(backupListChangeListener);
+ }
+
+ /**
+ * @see org.eclipse.emf.common.notify.NotifyingList#getNotifier()
+ *
+ * @return
+ */
+ @Override
+ public Object getNotifier() {
+ return notifier;
+ }
+
+ /**
+ * @see org.eclipse.emf.common.notify.NotifyingList#getFeature()
+ *
+ * @return
+ */
+ @Override
+ public Object getFeature() {
+ return feature;
+ }
+
+ /**
+ * @see org.eclipse.emf.common.notify.NotifyingList#getFeatureID()
+ *
+ * @return
+ */
+ @Override
+ public int getFeatureID() {
+ return featureID;
+ }
+
+ /**
+ * Creates a notification.
+ *
+ * @param eventType
+ * the type of change that has occurred.
+ * @param oldObject
+ * the value of the notifier's feature before the change occurred.
+ * @param newObject
+ * the value of the notifier's feature after the change occurred.
+ * @param index
+ * the position at which the change occurred.
+ * @return a new notification.
+ */
+ protected NotificationImpl createNotification(Notification origNotification)
+ {
+
+ return new NotificationImpl(origNotification.getEventType(), origNotification.getOldValue(), origNotification.getNewValue(), origNotification.getPosition(), origNotification.wasSet())
+ {
+
+ @Override
+ public Object getNotifier()
+ {
+ return DerivedNotifyingEList.this.getNotifier();
+ }
+
+ @Override
+ public Object getFeature()
+ {
+ return DerivedNotifyingEList.this.getFeature();
+ }
+
+ @Override
+ public int getFeatureID(Class<?> expectedClass)
+ {
+ return DerivedNotifyingEList.this.getFeatureID();
+ }
+ };
+ }
+
+ public NotifyingList<T> getBackupList() {
+ return backupList;
+ }
+
+ /**
+ * Get the object at the specified index in the backup list.
+ * Subclass should override in order to return the proper object.
+ *
+ * @param index
+ * @return
+ */
+ abstract protected E doGet(int index);
+
+ /**
+ * @see org.eclipse.emf.common.util.EList#move(int, java.lang.Object)
+ *
+ * @param newPosition
+ * @param object
+ */
+ @Override
+ public void move(int newPosition, E object) {
+ move(newPosition, indexOf(object));
+ }
+
+ /**
+ * @see org.eclipse.emf.common.util.EList#move(int, int)
+ *
+ * @param newPosition
+ * @param oldPosition
+ * @return
+ */
+ @Override
+ public E move(int newPosition, int oldPosition) {
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * @see java.util.AbstractCollection#size()
+ *
+ * @return
+ */
+ @Override
+ public int size() {
+ return backupList.size();
+ }
+
+ /**
+ * @see java.util.AbstractSequentialList#listIterator(int)
+ *
+ * @param index
+ * @return
+ */
+ @Override
+ public ListIterator<E> listIterator(int index) {
+ return new DerivedListIterator(index);
+ }
+
+ /**
+ *
+ *
+ * @param <E>
+ */
+ public class DerivedListIterator implements ListIterator<E> {
+
+ /**
+ * The current position of the iterator.
+ */
+ protected int cursor = 0;
+
+ /**
+ * The previous position of the iterator.
+ */
+ protected int lastCursor = -1;
+
+ /**
+ * The modification count of the containing list.
+ */
+ protected int expectedModCount = modCount;
+
+
+ /**
+ * Creates an instance advanced to the index.
+ *
+ * @param index
+ * the starting index.
+ */
+ public DerivedListIterator(int index)
+ {
+ cursor = index;
+ }
+
+ /**
+ * Returns whether there are more objects.
+ *
+ * @return whether there are more objects.
+ */
+ @Override
+ public boolean hasNext()
+ {
+ return cursor != size();
+ }
+
+ /**
+ * Returns the next object and advances the iterator.
+ * This implementation delegates to {@link #doNext doNext}.
+ *
+ * @return the next object.
+ * @exception NoSuchElementException
+ * if the iterator is done.
+ */
+ @Override
+ public E next()
+ {
+ try
+ {
+ E next = doGet(cursor);
+ lastCursor = cursor++;
+ return next;
+ } catch (IndexOutOfBoundsException exception)
+ {
+ throw new NoSuchElementException();
+ }
+ }
+
+ /**
+ * Returns whether there are more objects for {@link #previous}.
+ * Returns whether there are more objects.
+ */
+ @Override
+ public boolean hasPrevious()
+ {
+ return cursor != 0;
+ }
+
+ /**
+ * Returns the previous object and advances the iterator.
+ * This implementation delegates to {@link #doPrevious doPrevious}.
+ *
+ * @return the previous object.
+ * @exception NoSuchElementException
+ * if the iterator is done.
+ */
+ @Override
+ public E previous()
+ {
+ try
+ {
+ E previous = doGet(--cursor);
+ lastCursor = cursor;
+ return previous;
+ } catch (IndexOutOfBoundsException exception)
+ {
+ throw new NoSuchElementException();
+ }
+ }
+
+ /**
+ * Returns the index of the object that would be returned by calling {@link #next() next}.
+ *
+ * @return the index of the object that would be returned by calling <code>next</code>.
+ */
+ @Override
+ public int nextIndex()
+ {
+ return cursor;
+ }
+
+ /**
+ * Returns the index of the object that would be returned by calling {@link #previous previous}.
+ *
+ * @return the index of the object that would be returned by calling <code>previous</code>.
+ */
+ @Override
+ public int previousIndex()
+ {
+ return cursor - 1;
+ }
+
+ /**
+ * Sets the object at the index of the last call to {@link #next() next} or {@link #previous previous}.
+ * This implementation delegates to {@link AbstractEList#set set}.
+ *
+ * @param object
+ * the object to set.
+ * @exception IllegalStateException
+ * if <code>next</code> or <code>previous</code> have not yet been called,
+ * or {@link #remove(Object) remove} or {@link #add add} have already been called
+ * after the last call to <code>next</code> or <code>previous</code>.
+ */
+ @Override
+ public void set(E object)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * Adds the object at the {@link #next() next} index and advances the iterator past it.
+ * This implementation delegates to {@link #doAdd(Object) doAdd(E)}.
+ *
+ * @param object
+ * the object to add.
+ */
+ @Override
+ public void add(E object)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * @see java.util.ListIterator#remove()
+ *
+ */
+ @Override
+ public void remove() {
+ throw new UnsupportedOperationException();
+ }
+
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/.classpath b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/.classpath
new file mode 100644
index 00000000000..ad32c83a788
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/.project b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/.project
new file mode 100644
index 00000000000..42aed9bd201
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/.project
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.java.generator.transfo.umltojdt</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.m2m.qvt.oml.project.QVTOBuilder</name>
+ <arguments>
+ <dictionary>
+ <key>src_container</key>
+ <value>transforms</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.m2m.qvt.oml.project.QVTONature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/.settings/org.eclipse.jdt.core.prefs b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..94d61f00da6
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,291 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=260
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=false
+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=260
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=5
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/.settings/org.eclipse.jdt.ui.prefs b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 00000000000..954281dbc31
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,68 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_functional_interfaces=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=false
+cleanup.format_source_code=false
+cleanup.format_source_code_changes_only=false
+cleanup.insert_inferred_type_arguments=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=false
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_redundant_type_arguments=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_anonymous_class_creation=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_lambda=true
+cleanup.use_parentheses_in_expressions=false
+cleanup.use_this_for_non_static_field_access=false
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=false
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_type_arguments=false
+cleanup_profile=_Papyrus
+cleanup_settings_version=2
+eclipse.preferences.version=1
+formatter_profile=_Papyrus
+formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * Constructor.\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*****************************************************************************\n * Copyright (c) ${year} CEA LIST and others.\n * \n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n * CEA LIST - Initial API and implementation\n * \n *****************************************************************************/\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\n * ${see_to_overridden}\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${see_to_target}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/META-INF/MANIFEST.MF b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..e126b18f3b0
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/META-INF/MANIFEST.MF
@@ -0,0 +1,10 @@
+Manifest-Version: 1.0
+Export-Package: org.eclipse.papyrus.java.generator.transfo.umltojdt
+Require-Bundle: org.eclipse.core.runtime
+Bundle-Vendor: %providerName
+Bundle-Version: 1.2.0.qualifier
+Bundle-Localization: plugin
+Bundle-Name: %pluginName
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.java.generator.transfo.umltojdt
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/about.html b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/about.html
new file mode 100644
index 00000000000..82d49bf5f81
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/build.properties b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/build.properties
new file mode 100644
index 00000000000..60a87c754ae
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/build.properties
@@ -0,0 +1,8 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ transforms/,\
+ plugin.properties,\
+ about.html
+src.includes = about.html
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/doc/rulesInheritance.di b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/doc/rulesInheritance.di
new file mode 100644
index 00000000000..9d143f73599
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/doc/rulesInheritance.di
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="ASCII"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi">
+ <pageList>
+ <availablePage>
+ <emfPageIdentifier href="rulesInheritance.notation#_2OUz0Hy1EeGgQY3xJFttRg"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="rulesInheritance.notation#_Bb7p0Hy4EeGgQY3xJFttRg"/>
+ </availablePage>
+ </pageList>
+ <sashModel currentSelection="//@sashModel/@windows.0/@children.0">
+ <windows>
+ <children xsi:type="di:TabFolder">
+ <children>
+ <emfPageIdentifier href="rulesInheritance.notation#_2OUz0Hy1EeGgQY3xJFttRg"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="rulesInheritance.notation#_Bb7p0Hy4EeGgQY3xJFttRg"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+</di:SashWindowsMngr>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/doc/rulesInheritance.notation b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/doc/rulesInheritance.notation
new file mode 100644
index 00000000000..08d0a52ccd9
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/doc/rulesInheritance.notation
@@ -0,0 +1,775 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML">
+ <notation:Diagram xmi:id="_2OUz0Hy1EeGgQY3xJFttRg" type="PapyrusUMLClassDiagram" name="NewDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_7pGacHy1EeGgQY3xJFttRg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7pIPoHy1EeGgQY3xJFttRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7pIPoXy1EeGgQY3xJFttRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7pI2sHy1EeGgQY3xJFttRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7pI2sXy1EeGgQY3xJFttRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7pJdwHy1EeGgQY3xJFttRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7pJdwXy1EeGgQY3xJFttRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7pJdwny1EeGgQY3xJFttRg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7pJdw3y1EeGgQY3xJFttRg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7pJdxHy1EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7pJdxXy1EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7pJdxny1EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7pJdx3y1EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7pJdyHy1EeGgQY3xJFttRg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7pJdyXy1EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7pJdyny1EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7pJdy3y1EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7pJdzHy1EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7pKE0Hy1EeGgQY3xJFttRg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7pKE0Xy1EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7pKE0ny1EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7pKE03y1EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7pKE1Hy1EeGgQY3xJFttRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="rulesInheritance.uml#_7o4_EHy1EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7pGacXy1EeGgQY3xJFttRg" x="534" y="162"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-B0lUHy1EeGgQY3xJFttRg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-B3BkHy1EeGgQY3xJFttRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-B3BkXy1EeGgQY3xJFttRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-B3ooHy1EeGgQY3xJFttRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-B3ooXy1EeGgQY3xJFttRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-B4PsHy1EeGgQY3xJFttRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-B4PsXy1EeGgQY3xJFttRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-B4Psny1EeGgQY3xJFttRg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-B42wHy1EeGgQY3xJFttRg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-B42wXy1EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-B42wny1EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-B42w3y1EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-B42xHy1EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-B42xXy1EeGgQY3xJFttRg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-B5d0Hy1EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-B5d0Xy1EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-B5d0ny1EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-B5d03y1EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-B5d1Hy1EeGgQY3xJFttRg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-B5d1Xy1EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-B5d1ny1EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-B5d13y1EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-B5d2Hy1EeGgQY3xJFttRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="rulesInheritance.uml#_-BnJ8Hy1EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-B0lUXy1EeGgQY3xJFttRg" x="474" y="-12"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_HsbCYHy2EeGgQY3xJFttRg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Hsc3kHy2EeGgQY3xJFttRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HsdeoHy2EeGgQY3xJFttRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HsdeoXy2EeGgQY3xJFttRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Hsdeony2EeGgQY3xJFttRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HseFsHy2EeGgQY3xJFttRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HseFsXy2EeGgQY3xJFttRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_HseFsny2EeGgQY3xJFttRg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_HseFs3y2EeGgQY3xJFttRg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_HseswHy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_HseswXy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Hseswny2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hsesw3y2EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_HsesxHy2EeGgQY3xJFttRg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_HsesxXy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Hsesxny2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Hsesx3y2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HsesyHy2EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_HsfT0Hy2EeGgQY3xJFttRg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_HsfT0Xy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_HsfT0ny2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_HsfT03y2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HsfT1Hy2EeGgQY3xJFttRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="rulesInheritance.uml#_HsU7wHy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HsbpcHy2EeGgQY3xJFttRg" x="432" y="360"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SBSkcHy2EeGgQY3xJFttRg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SBUZoHy2EeGgQY3xJFttRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SBUZoXy2EeGgQY3xJFttRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SBUZony2EeGgQY3xJFttRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SBVAsHy2EeGgQY3xJFttRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SBVAsXy2EeGgQY3xJFttRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SBVAsny2EeGgQY3xJFttRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SBVnwHy2EeGgQY3xJFttRg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SBVnwXy2EeGgQY3xJFttRg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SBVnwny2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SBVnw3y2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SBVnxHy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SBVnxXy2EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SBVnxny2EeGgQY3xJFttRg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SBVnx3y2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SBVnyHy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SBVnyXy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SBVnyny2EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SBWO0Hy2EeGgQY3xJFttRg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SBWO0Xy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SBWO0ny2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SBWO03y2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SBWO1Hy2EeGgQY3xJFttRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="rulesInheritance.uml#_SBMd0Hy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SBSkcXy2EeGgQY3xJFttRg" x="24" y="552"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TH94oHy2EeGgQY3xJFttRg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TH_t0Hy2EeGgQY3xJFttRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TIAU4Hy2EeGgQY3xJFttRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TIAU4Xy2EeGgQY3xJFttRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TIAU4ny2EeGgQY3xJFttRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TIA78Hy2EeGgQY3xJFttRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TIA78Xy2EeGgQY3xJFttRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TIA78ny2EeGgQY3xJFttRg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TIA783y2EeGgQY3xJFttRg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TIA79Hy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TIA79Xy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TIA79ny2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TIA793y2EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TIBjAHy2EeGgQY3xJFttRg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TIBjAXy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TIBjAny2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TIBjA3y2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TIBjBHy2EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TICKEHy2EeGgQY3xJFttRg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TICKEXy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TICKEny2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TICKE3y2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TICKFHy2EeGgQY3xJFttRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="rulesInheritance.uml#_TH4ZEHy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TH94oXy2EeGgQY3xJFttRg" x="204" y="354"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_bZoz4Hy2EeGgQY3xJFttRg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bZqpEHy2EeGgQY3xJFttRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bZqpEXy2EeGgQY3xJFttRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bZrQIHy2EeGgQY3xJFttRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bZrQIXy2EeGgQY3xJFttRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bZrQIny2EeGgQY3xJFttRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bZrQI3y2EeGgQY3xJFttRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bZr3MHy2EeGgQY3xJFttRg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_bZr3MXy2EeGgQY3xJFttRg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_bZr3Mny2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_bZr3M3y2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_bZr3NHy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bZr3NXy2EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_bZseQHy2EeGgQY3xJFttRg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_bZseQXy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_bZseQny2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_bZseQ3y2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bZseRHy2EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_bZseRXy2EeGgQY3xJFttRg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_bZseRny2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_bZseR3y2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_bZseSHy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bZseSXy2EeGgQY3xJFttRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="rulesInheritance.uml#_bZitQHy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bZoz4Xy2EeGgQY3xJFttRg" x="174" y="552"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lXBDAHy2EeGgQY3xJFttRg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lXCRIHy2EeGgQY3xJFttRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lXC4MHy2EeGgQY3xJFttRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lXC4MXy2EeGgQY3xJFttRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lXC4Mny2EeGgQY3xJFttRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lXDfQHy2EeGgQY3xJFttRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lXDfQXy2EeGgQY3xJFttRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lXDfQny2EeGgQY3xJFttRg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lXDfQ3y2EeGgQY3xJFttRg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lXDfRHy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lXDfRXy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lXDfRny2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lXDfR3y2EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lXEGUHy2EeGgQY3xJFttRg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lXEGUXy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lXEGUny2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lXEGU3y2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lXEGVHy2EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lXEGVXy2EeGgQY3xJFttRg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lXEGVny2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lXEtYHy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lXEtYXy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lXEtYny2EeGgQY3xJFttRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="rulesInheritance.uml#_lW6VUHy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lXBDAXy2EeGgQY3xJFttRg" x="678" y="546"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_mWMBAHy2EeGgQY3xJFttRg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mWN2MHy2EeGgQY3xJFttRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mWN2MXy2EeGgQY3xJFttRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mWOdQHy2EeGgQY3xJFttRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mWOdQXy2EeGgQY3xJFttRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mWOdQny2EeGgQY3xJFttRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mWPEUHy2EeGgQY3xJFttRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mWPEUXy2EeGgQY3xJFttRg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mWPEUny2EeGgQY3xJFttRg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mWPEU3y2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mWPEVHy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mWPEVXy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mWPEVny2EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mWPrYHy2EeGgQY3xJFttRg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mWPrYXy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mWPrYny2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mWPrY3y2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mWPrZHy2EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mWPrZXy2EeGgQY3xJFttRg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mWPrZny2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mWPrZ3y2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mWPraHy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mWPraXy2EeGgQY3xJFttRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="rulesInheritance.uml#_mWF6YHy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mWMoEHy2EeGgQY3xJFttRg" x="888" y="546"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_pXo_0Hy2EeGgQY3xJFttRg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pXqN8Hy2EeGgQY3xJFttRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pXq1AHy2EeGgQY3xJFttRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pXq1AXy2EeGgQY3xJFttRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pXq1Any2EeGgQY3xJFttRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pXrcEHy2EeGgQY3xJFttRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pXrcEXy2EeGgQY3xJFttRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_pXrcEny2EeGgQY3xJFttRg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_pXsDIHy2EeGgQY3xJFttRg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_pXsDIXy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_pXsDIny2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_pXsDI3y2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pXsDJHy2EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_pXsDJXy2EeGgQY3xJFttRg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_pXsDJny2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_pXsDJ3y2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_pXsDKHy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pXsDKXy2EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_pXsqMHy2EeGgQY3xJFttRg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_pXsqMXy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_pXsqMny2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_pXsqM3y2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pXsqNHy2EeGgQY3xJFttRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="rulesInheritance.uml#_pXhrEHy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pXo_0Xy2EeGgQY3xJFttRg" x="678" y="360"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__1OnMHy2EeGgQY3xJFttRg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__1QcYHy2EeGgQY3xJFttRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__1QcYXy2EeGgQY3xJFttRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__1RDcHy2EeGgQY3xJFttRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__1RDcXy2EeGgQY3xJFttRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__1RDcny2EeGgQY3xJFttRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__1RqgHy2EeGgQY3xJFttRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="__1RqgXy2EeGgQY3xJFttRg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__1Rqgny2EeGgQY3xJFttRg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__1Rqg3y2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__1RqhHy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__1RqhXy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__1Rqhny2EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__1SRkHy2EeGgQY3xJFttRg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__1SRkXy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__1SRkny2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__1SRk3y2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__1SRlHy2EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__1SRlXy2EeGgQY3xJFttRg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__1SRlny2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__1SRl3y2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__1SRmHy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__1SRmXy2EeGgQY3xJFttRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="rulesInheritance.uml#__1H5gHy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__1OnMXy2EeGgQY3xJFttRg" x="366" y="551"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Aa0AgHy3EeGgQY3xJFttRg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Aa0nkHy3EeGgQY3xJFttRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Aa0nkXy3EeGgQY3xJFttRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Aa0nkny3EeGgQY3xJFttRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Aa1OoHy3EeGgQY3xJFttRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Aa1OoXy3EeGgQY3xJFttRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Aa1Oony3EeGgQY3xJFttRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Aa1Oo3y3EeGgQY3xJFttRg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Aa1OpHy3EeGgQY3xJFttRg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Aa1OpXy3EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Aa1Opny3EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Aa1Op3y3EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Aa1OqHy3EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Aa11sHy3EeGgQY3xJFttRg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Aa11sXy3EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Aa11sny3EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Aa11s3y3EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Aa11tHy3EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Aa11tXy3EeGgQY3xJFttRg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Aa11tny3EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Aa11t3y3EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Aa11uHy3EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Aa11uXy3EeGgQY3xJFttRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="rulesInheritance.uml#_AawWIHy3EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Aa0AgXy3EeGgQY3xJFttRg" x="522" y="550"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_eOfrsHy3EeGgQY3xJFttRg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eOg50Hy3EeGgQY3xJFttRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eOhg4Hy3EeGgQY3xJFttRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eOhg4Xy3EeGgQY3xJFttRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eOhg4ny3EeGgQY3xJFttRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eOiH8Hy3EeGgQY3xJFttRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eOiH8Xy3EeGgQY3xJFttRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_eOiH8ny3EeGgQY3xJFttRg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_eOiH83y3EeGgQY3xJFttRg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_eOiH9Hy3EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_eOivAHy3EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_eOivAXy3EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eOivAny3EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_eOivA3y3EeGgQY3xJFttRg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_eOivBHy3EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_eOivBXy3EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_eOivBny3EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eOivB3y3EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_eOjWEHy3EeGgQY3xJFttRg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_eOjWEXy3EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_eOjWEny3EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_eOjWE3y3EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eOjWFHy3EeGgQY3xJFttRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="rulesInheritance.uml#_eOY-AHy3EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eOfrsXy3EeGgQY3xJFttRg" x="930" y="366"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_2OUz0Xy1EeGgQY3xJFttRg"/>
+ <element xmi:type="uml:Model" href="rulesInheritance.uml#_2N_coHy1EeGgQY3xJFttRg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_BhaRoHy2EeGgQY3xJFttRg" type="4002" source="_7pGacHy1EeGgQY3xJFttRg" target="_-B0lUHy1EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_BhcG0Hy2EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BhcG0Xy2EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_BhaRoXy2EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_Bgu8MHy2EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BhaRony2EeGgQY3xJFttRg" points="[-6, -2, 0, 83]$[-12, -76, -6, 9]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BhvBwHy2EeGgQY3xJFttRg" id="(0.5045045045045045,0.02)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BhvBwXy2EeGgQY3xJFttRg" id="(0.41198501872659177,0.91)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_J-WowHy2EeGgQY3xJFttRg" type="4002" source="_HsbCYHy2EeGgQY3xJFttRg" target="_7pGacHy1EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_J-ZsEHy2EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_J-aTIHy2EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_J-WowXy2EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_J-RJMHy2EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_J-Wowny2EeGgQY3xJFttRg" points="[-40, -3, 261, 0]$[-282, 19, 19, 22]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J-nHcHy2EeGgQY3xJFttRg" id="(0.4,0.1)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J-nHcXy2EeGgQY3xJFttRg" id="(0.7207207207207207,0.78)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_U2Au0Hy2EeGgQY3xJFttRg" type="4002" source="_SBSkcHy2EeGgQY3xJFttRg" target="_TH94oHy2EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_U2B88Hy2EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_U2CkAHy2EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_U2Au0Xy2EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_U19rgHy2EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_U2BV4Hy2EeGgQY3xJFttRg" points="[9, -10, 0, 37]$[7, -36, -2, 11]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_U2NjIHy2EeGgQY3xJFttRg" id="(0.43283582089552236,0.1)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_U2OKMHy2EeGgQY3xJFttRg" id="(0.4576271186440678,0.89)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WTbvEHy2EeGgQY3xJFttRg" type="4002" source="_SBSkcHy2EeGgQY3xJFttRg" target="_-B0lUHy1EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_WTeLUHy2EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WTeLUXy2EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_WTbvEXy2EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_WTWPgHy2EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WTbvEny2EeGgQY3xJFttRg" points="[0, -11, -196, 446]$[0, -287, -196, 170]$[182, -445, -14, 12]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WTpKcHy2EeGgQY3xJFttRg" id="(0.4701492537313433,0.11)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WTpKcXy2EeGgQY3xJFttRg" id="(0.2958801498127341,0.88)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_dMeqgHy2EeGgQY3xJFttRg" type="4002" source="_bZoz4Hy2EeGgQY3xJFttRg" target="_TH94oHy2EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dMhGwHy2EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dMht0Hy2EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dMfRkHy2EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_dMZK8Hy2EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dMfRkXy2EeGgQY3xJFttRg" points="[-34, -16, 268, 130]$[-298, -138, 4, 8]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dMw-YHy2EeGgQY3xJFttRg" id="(0.40853658536585363,0.16)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dMw-YXy2EeGgQY3xJFttRg" id="(0.7033898305084746,0.92)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_erSx4Hy2EeGgQY3xJFttRg" type="4002" source="_TH94oHy2EeGgQY3xJFttRg" target="_7pGacHy1EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_erUAAHy2EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_erUAAXy2EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_erSx4Xy2EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_erQVoHy2EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_erSx4ny2EeGgQY3xJFttRg" points="[43, 2, -192, -11]$[235, 17, 0, 4]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_erdJ8Hy2EeGgQY3xJFttRg" id="(0.635593220338983,0.05)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_erdJ8Xy2EeGgQY3xJFttRg" id="(0.5765765765765766,0.96)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_rgBooHy2EeGgQY3xJFttRg" type="4002" source="_lXBDAHy2EeGgQY3xJFttRg" target="_pXo_0Hy2EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_rgDd0Hy2EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_rgDd0Xy2EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_rgBooXy2EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_rf1bYHy2EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rgBoony2EeGgQY3xJFttRg" points="[-7, -20, 19, 60]$[-31, -59, -5, 21]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rgPrEHy2EeGgQY3xJFttRg" id="(0.3769633507853403,0.01)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rgPrEXy2EeGgQY3xJFttRg" id="(0.4583333333333333,0.79)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_srevIHy2EeGgQY3xJFttRg" type="4002" source="_mWMBAHy2EeGgQY3xJFttRg" target="_pXo_0Hy2EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_srgkUHy2EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_srhLYHy2EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_srevIXy2EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_srYogHy2EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_srevIny2EeGgQY3xJFttRg" points="[-49, 9, 42, -8]$[-65, 14, 26, -3]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_srxqEHy2EeGgQY3xJFttRg" id="(0.30434782608695654,0.16)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_srxqEXy2EeGgQY3xJFttRg" id="(0.6597222222222222,0.91)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_t4nQoHy2EeGgQY3xJFttRg" type="4002" source="_mWMBAHy2EeGgQY3xJFttRg" target="_-B0lUHy1EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_t4pF0Hy2EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_t4ps4Hy2EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_t4nQoXy2EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_t4kNUHy2EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_t4nQony2EeGgQY3xJFttRg" points="[-6, -11, 327, 471]$[-129, -269, 204, 213]$[-321, -469, 12, 13]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_t43vUHy2EeGgQY3xJFttRg" id="(0.35403726708074534,0.11)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_t43vUXy2EeGgQY3xJFttRg" id="(0.651685393258427,0.87)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_KF3wkHy3EeGgQY3xJFttRg" type="4002" source="__1OnMHy2EeGgQY3xJFttRg" target="_HsbCYHy2EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_KF4-sHy3EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KF4-sXy3EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_KF3wkXy3EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_KF0GMHy3EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KF3wkny3EeGgQY3xJFttRg" points="[3, -13, -33, 106]$[27, -104, -9, 15]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KGBhkHy3EeGgQY3xJFttRg" id="(0.42142857142857143,0.13)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KGBhkXy3EeGgQY3xJFttRg" id="(0.29,0.85)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_KoyQYHy3EeGgQY3xJFttRg" type="4002" source="_Aa0AgHy3EeGgQY3xJFttRg" target="_HsbCYHy2EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Ko0FkHy3EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Ko0FkXy3EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_KoyQYXy3EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_Kosw0Hy3EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KoyQYny3EeGgQY3xJFttRg" points="[-8, -10, 71, 102]$[-75, -100, 4, 12]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KpBg8Hy3EeGgQY3xJFttRg" id="(0.4642857142857143,0.1)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KpBg8Xy3EeGgQY3xJFttRg" id="(0.63,0.88)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_L1iXYHy3EeGgQY3xJFttRg" type="4002" source="_Aa0AgHy3EeGgQY3xJFttRg" target="_-B0lUHy1EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_L1jlgHy3EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_L1jlgXy3EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_L1iXYXy3EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_L1f7IHy3EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_L1iXYny3EeGgQY3xJFttRg" points="[3, -12, -77, 468]$[95, -286, 15, 194]$[80, -474, 0, 6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_L1t9kHy3EeGgQY3xJFttRg" id="(0.49107142857142855,0.12)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_L1t9kXy3EeGgQY3xJFttRg" id="(0.6853932584269663,0.94)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_hUB5QHy3EeGgQY3xJFttRg" type="4002" source="_eOfrsHy3EeGgQY3xJFttRg" target="_7pGacHy1EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_hUDHYHy3EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hUDHYXy3EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_hUB5QXy3EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_hT8ZsHy3EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hUB5Qny3EeGgQY3xJFttRg" points="[-31, -7, 570, 114]$[-595, -117, 6, 4]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hUMRUHy3EeGgQY3xJFttRg" id="(0.18674698795180722,0.14)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hUMRUXy3EeGgQY3xJFttRg" id="(0.5945945945945946,0.91)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_iSE14Hy3EeGgQY3xJFttRg" type="4002" source="_pXo_0Hy2EeGgQY3xJFttRg" target="_7pGacHy1EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_iSGEAHy3EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iSGEAXy3EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_iSE14Xy3EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_iSBykHy3EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_iSE14ny3EeGgQY3xJFttRg" points="[-48, -14, 314, 86]$[-351, -91, 11, 9]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_iSPN8Hy3EeGgQY3xJFttRg" id="(0.3333333333333333,0.19)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_iSPN8Xy3EeGgQY3xJFttRg" id="(0.4954954954954955,0.95)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_Bb7p0Hy4EeGgQY3xJFttRg" type="PapyrusUMLClassDiagram" name="namedElement" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_CJO0sHy4EeGgQY3xJFttRg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CJQp4Hy4EeGgQY3xJFttRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CJQp4Xy4EeGgQY3xJFttRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CJQp4ny4EeGgQY3xJFttRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CJRQ8Hy4EeGgQY3xJFttRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CJRQ8Xy4EeGgQY3xJFttRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CJRQ8ny4EeGgQY3xJFttRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CJR4AHy4EeGgQY3xJFttRg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CJR4AXy4EeGgQY3xJFttRg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CJR4Any4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CJR4A3y4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CJR4BHy4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CJR4BXy4EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CJSfEHy4EeGgQY3xJFttRg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CJSfEXy4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CJSfEny4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CJSfE3y4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CJSfFHy4EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CJSfFXy4EeGgQY3xJFttRg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CJSfFny4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CJSfF3y4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CJSfGHy4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CJSfGXy4EeGgQY3xJFttRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="rulesInheritance.uml#_-BnJ8Hy1EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CJO0sXy4EeGgQY3xJFttRg" x="330" y="18"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_DU59oHy4EeGgQY3xJFttRg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DU6ksHy4EeGgQY3xJFttRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DU6ksXy4EeGgQY3xJFttRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DU6ksny4EeGgQY3xJFttRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DU6ks3y4EeGgQY3xJFttRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DU7LwHy4EeGgQY3xJFttRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DU7LwXy4EeGgQY3xJFttRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_DU7Lwny4EeGgQY3xJFttRg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_DU7Lw3y4EeGgQY3xJFttRg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_DU7LxHy4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_DU7LxXy4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_DU7Lxny4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DU7Lx3y4EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_DU7LyHy4EeGgQY3xJFttRg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_DU7LyXy4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_DU7Lyny4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_DU7Ly3y4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DU7LzHy4EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_DU7LzXy4EeGgQY3xJFttRg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_DU7Lzny4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_DU7Lz3y4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_DU7L0Hy4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DU7L0Xy4EeGgQY3xJFttRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="rulesInheritance.uml#_DUd4wHy4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DU59oXy4EeGgQY3xJFttRg" x="78" y="270"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_G9KdwHy4EeGgQY3xJFttRg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G9LE0Hy4EeGgQY3xJFttRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G9LE0Xy4EeGgQY3xJFttRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G9LE0ny4EeGgQY3xJFttRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G9LE03y4EeGgQY3xJFttRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G9Lr4Hy4EeGgQY3xJFttRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G9Lr4Xy4EeGgQY3xJFttRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_G9Lr4ny4EeGgQY3xJFttRg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_G9Lr43y4EeGgQY3xJFttRg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_G9Lr5Hy4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_G9Lr5Xy4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_G9Lr5ny4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_G9Lr53y4EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_G9Lr6Hy4EeGgQY3xJFttRg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_G9Lr6Xy4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_G9Lr6ny4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_G9Lr63y4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_G9Lr7Hy4EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_G9Lr7Xy4EeGgQY3xJFttRg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_G9Lr7ny4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_G9Lr73y4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_G9Lr8Hy4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_G9MS8Hy4EeGgQY3xJFttRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="rulesInheritance.uml#_G8tx0Hy4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_G9KdwXy4EeGgQY3xJFttRg" x="258" y="270"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_IlgUkHy4EeGgQY3xJFttRg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IlhisHy4EeGgQY3xJFttRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IlhisXy4EeGgQY3xJFttRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ilhisny4EeGgQY3xJFttRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ilhis3y4EeGgQY3xJFttRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IlhitHy4EeGgQY3xJFttRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IlhitXy4EeGgQY3xJFttRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_IliJwHy4EeGgQY3xJFttRg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IliJwXy4EeGgQY3xJFttRg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IliJwny4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IliJw3y4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IliJxHy4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IliJxXy4EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IliJxny4EeGgQY3xJFttRg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IliJx3y4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IliJyHy4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IliJyXy4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IliJyny4EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IliJy3y4EeGgQY3xJFttRg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IliJzHy4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IliJzXy4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IliJzny4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IliJz3y4EeGgQY3xJFttRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="rulesInheritance.uml#_IlAlUHy4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IlgUkXy4EeGgQY3xJFttRg" x="462" y="270"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Pl2K0Hy4EeGgQY3xJFttRg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pl2x4Hy4EeGgQY3xJFttRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Pl2x4Xy4EeGgQY3xJFttRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pl2x4ny4EeGgQY3xJFttRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Pl2x43y4EeGgQY3xJFttRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pl3Y8Hy4EeGgQY3xJFttRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Pl3Y8Xy4EeGgQY3xJFttRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Pl3Y8ny4EeGgQY3xJFttRg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Pl3Y83y4EeGgQY3xJFttRg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Pl3Y9Hy4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Pl3Y9Xy4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Pl3Y9ny4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Pl3Y93y4EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Pl3Y-Hy4EeGgQY3xJFttRg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Pl3Y-Xy4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Pl3Y-ny4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Pl3Y-3y4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Pl3Y_Hy4EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Pl3Y_Xy4EeGgQY3xJFttRg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Pl3Y_ny4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Pl3Y_3y4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Pl3ZAHy4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Pl3ZAXy4EeGgQY3xJFttRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="rulesInheritance.uml#_PlWbkHy4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Pl2K0Xy4EeGgQY3xJFttRg" x="648" y="270"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_VyLKMHy4EeGgQY3xJFttRg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VyMYUHy4EeGgQY3xJFttRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VyMYUXy4EeGgQY3xJFttRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VyMYUny4EeGgQY3xJFttRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VyMYU3y4EeGgQY3xJFttRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VyM_YHy4EeGgQY3xJFttRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VyM_YXy4EeGgQY3xJFttRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VyM_Yny4EeGgQY3xJFttRg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VyM_Y3y4EeGgQY3xJFttRg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_VyM_ZHy4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_VyM_ZXy4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_VyM_Zny4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VyM_Z3y4EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VyM_aHy4EeGgQY3xJFttRg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_VyM_aXy4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_VyM_any4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_VyM_a3y4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VyM_bHy4EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VyNmcHy4EeGgQY3xJFttRg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_VyNmcXy4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_VyNmcny4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_VyNmc3y4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VyNmdHy4EeGgQY3xJFttRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="rulesInheritance.uml#_N9PgMHy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VyLKMXy4EeGgQY3xJFttRg" x="810" y="276"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Bb7p0Xy4EeGgQY3xJFttRg"/>
+ <element xmi:type="uml:Model" href="rulesInheritance.uml#_2N_coHy1EeGgQY3xJFttRg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_WwWpsHy4EeGgQY3xJFttRg" type="4002" source="_VyLKMHy4EeGgQY3xJFttRg" target="_CJO0sHy4EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_WwYe4Hy4EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WwYe4Xy4EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_WwWpsXy4EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_PXScUHy2EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WwWpsny4EeGgQY3xJFttRg" points="[-69, -50, 447, 322]$[-447, -322, 69, 50]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ZdaF0Hy4EeGgQY3xJFttRg" type="4002" source="_Pl2K0Hy4EeGgQY3xJFttRg" target="_CJO0sHy4EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZdbT8Hy4EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZdbT8Xy4EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Zdas4Hy4EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_Zc1eEHy4EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Zdas4Xy4EeGgQY3xJFttRg" points="[-15, -13, 172, 158]$[-182, -165, 5, 6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZeIekHy4EeGgQY3xJFttRg" id="(0.41818181818181815,0.13)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZeJFoHy4EeGgQY3xJFttRg" id="(0.6629213483146067,0.94)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Z3tcMHy4EeGgQY3xJFttRg" type="4002" source="_IlgUkHy4EeGgQY3xJFttRg" target="_CJO0sHy4EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Z3uqUHy4EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Z3uqUXy4EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Z3tcMXy4EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_Z3VowHy4EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Z3tcMny4EeGgQY3xJFttRg" points="[-5, -10, 75, 175]$[-89, -162, -9, 23]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Z42EoHy4EeGgQY3xJFttRg" id="(0.45806451612903226,0.1)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Z42EoXy4EeGgQY3xJFttRg" id="(0.4606741573033708,0.77)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_aZukIHy4EeGgQY3xJFttRg" type="4002" source="_G9KdwHy4EeGgQY3xJFttRg" target="_CJO0sHy4EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_aZvLMHy4EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_aZvyQHy4EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_aZukIXy4EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_aZWJoHy4EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_aZukIny4EeGgQY3xJFttRg" points="[7, -12, -94, 160]$[94, -164, -7, 8]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aaRWsHy4EeGgQY3xJFttRg" id="(0.5373134328358209,0.12)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aaRWsXy4EeGgQY3xJFttRg" id="(0.3782771535580524,0.92)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_a5uS0Hy4EeGgQY3xJFttRg" type="4002" source="_DU59oHy4EeGgQY3xJFttRg" target="_CJO0sHy4EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_a5u54Hy4EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_a5vg8Hy4EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_a5uS0Xy4EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_a5TcEHy4EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_a5uS0ny4EeGgQY3xJFttRg" points="[18, -13, -228, 158]$[234, -165, -12, 6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_a6VW0Hy4EeGgQY3xJFttRg" id="(0.5283018867924528,0.13)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_a6V94Hy4EeGgQY3xJFttRg" id="(0.18726591760299627,0.94)"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/doc/rulesInheritance.uml b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/doc/rulesInheritance.uml
new file mode 100644
index 00000000000..dda3161236d
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/doc/rulesInheritance.uml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20110701" xmlns:xmi="http://www.omg.org/spec/XMI/20110701" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xmi:id="_2N_coHy1EeGgQY3xJFttRg" name="model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_7o4_EHy1EeGgQY3xJFttRg" name="mapTypeToType" isAbstract="true">
+ <generalization xmi:id="_Bgu8MHy2EeGgQY3xJFttRg" general="_-BnJ8Hy1EeGgQY3xJFttRg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_-BnJ8Hy1EeGgQY3xJFttRg" name="transformNamedElementToJavaElement" isAbstract="true"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_HsU7wHy2EeGgQY3xJFttRg" name="generateClass">
+ <generalization xmi:id="_J-RJMHy2EeGgQY3xJFttRg" general="_7o4_EHy1EeGgQY3xJFttRg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_N9PgMHy2EeGgQY3xJFttRg" name="type2CompilationUnit">
+ <generalization xmi:id="_PXScUHy2EeGgQY3xJFttRg" general="_-BnJ8Hy1EeGgQY3xJFttRg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_SBMd0Hy2EeGgQY3xJFttRg" name="generateCuInterface">
+ <generalization xmi:id="_U19rgHy2EeGgQY3xJFttRg" general="_TH4ZEHy2EeGgQY3xJFttRg"/>
+ <generalization xmi:id="_WTWPgHy2EeGgQY3xJFttRg" general="_-BnJ8Hy1EeGgQY3xJFttRg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_TH4ZEHy2EeGgQY3xJFttRg" name="GenerateInterface">
+ <generalization xmi:id="_erQVoHy2EeGgQY3xJFttRg" general="_7o4_EHy1EeGgQY3xJFttRg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_bZitQHy2EeGgQY3xJFttRg" name="generateNestedInterface">
+ <generalization xmi:id="_dMZK8Hy2EeGgQY3xJFttRg" general="_TH4ZEHy2EeGgQY3xJFttRg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_lW6VUHy2EeGgQY3xJFttRg" name="generateNestedEnumeration">
+ <generalization xmi:id="_rf1bYHy2EeGgQY3xJFttRg" general="_pXhrEHy2EeGgQY3xJFttRg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_mWF6YHy2EeGgQY3xJFttRg" name="generateCuEnumeration">
+ <generalization xmi:id="_srYogHy2EeGgQY3xJFttRg" general="_pXhrEHy2EeGgQY3xJFttRg"/>
+ <generalization xmi:id="_t4kNUHy2EeGgQY3xJFttRg" general="_-BnJ8Hy1EeGgQY3xJFttRg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_pXhrEHy2EeGgQY3xJFttRg" name="generateEnumeration">
+ <generalization xmi:id="_iSBykHy3EeGgQY3xJFttRg" general="_7o4_EHy1EeGgQY3xJFttRg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="__1H5gHy2EeGgQY3xJFttRg" name="generateNestedClass">
+ <generalization xmi:id="_KF0GMHy3EeGgQY3xJFttRg" general="_HsU7wHy2EeGgQY3xJFttRg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_AawWIHy3EeGgQY3xJFttRg" name="generateCUClass">
+ <generalization xmi:id="_Kosw0Hy3EeGgQY3xJFttRg" general="_HsU7wHy2EeGgQY3xJFttRg"/>
+ <generalization xmi:id="_L1f7IHy3EeGgQY3xJFttRg" general="_-BnJ8Hy1EeGgQY3xJFttRg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_eOY-AHy3EeGgQY3xJFttRg" name="generateCuPrimitiveType">
+ <generalization xmi:id="_hT8ZsHy3EeGgQY3xJFttRg" general="_7o4_EHy1EeGgQY3xJFttRg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_DUd4wHy4EeGgQY3xJFttRg" name="propertyToField">
+ <generalization xmi:id="_a5TcEHy4EeGgQY3xJFttRg" general="_-BnJ8Hy1EeGgQY3xJFttRg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_G8tx0Hy4EeGgQY3xJFttRg" name="operationToMethod">
+ <generalization xmi:id="_aZWJoHy4EeGgQY3xJFttRg" general="_-BnJ8Hy1EeGgQY3xJFttRg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_IlAlUHy4EeGgQY3xJFttRg" name="parameterToParameter">
+ <generalization xmi:id="_Z3VowHy4EeGgQY3xJFttRg" general="_-BnJ8Hy1EeGgQY3xJFttRg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_PlWbkHy4EeGgQY3xJFttRg" name="generateCuClass">
+ <generalization xmi:id="_Zc1eEHy4EeGgQY3xJFttRg" general="_-BnJ8Hy1EeGgQY3xJFttRg"/>
+ </packagedElement>
+</uml:Model>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/plugin.properties b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/plugin.properties
new file mode 100644
index 00000000000..7d387085329
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/plugin.properties
@@ -0,0 +1,19 @@
+
+#################################################################################
+# Copyright (c) 2011 Nicolas Deblock & Manuel Giles.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Nicolas Deblock nico.deblock@gmail.com - Initial API and implementation
+# Manuel Giles giles.manu@live.fr - Initial API and implementation
+# Cedric Dumoulin Cedric.dumoulin@lifl.fr - Idea of the java generator project & help for the conception
+#
+#################################################################################
+
+
+pluginName=Papyrus Java Classes Generator transformations (Incubation)
+providerName=Eclipse Modeling Project
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/pom.xml b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/pom.xml
new file mode 100644
index 00000000000..73c69ddba04
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.java.generator.transfo.umltojdt</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/src/org/eclipse/papyrus/java/generator/transfo/umltojdt/UmltojdtActivator.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/src/org/eclipse/papyrus/java/generator/transfo/umltojdt/UmltojdtActivator.java
new file mode 100644
index 00000000000..d4160d94245
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/src/org/eclipse/papyrus/java/generator/transfo/umltojdt/UmltojdtActivator.java
@@ -0,0 +1,71 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Initial transformation and implementation
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Initial transformation and implementation
+ * Manuel Giles giles.manu@live.fr - Initial transformation and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.java.generator.transfo.umltojdt;
+
+import org.eclipse.core.runtime.Plugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class UmltojdtActivator extends Plugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.java.generator.transfo.umltojdt";
+ public static final String PATH_QVT_FILE = "/transforms/uml/uml2jdt2.qvto";
+
+ // The shared instance
+ private static UmltojdtActivator plugin;
+
+ /**
+ * The constructor
+ */
+ public UmltojdtActivator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.core.runtime.Plugins#start(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static UmltojdtActivator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/transforms/uml/algo.txt b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/transforms/uml/algo.txt
new file mode 100644
index 00000000000..bdcd72a922b
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/transforms/uml/algo.txt
@@ -0,0 +1,167 @@
+
+
+class Data {
+
+ projectName
+ srcName
+ packageName
+}
+
+/**
+ *
+ */
+Type::markType( Type type, defSrc, defPrj ) {
+ if( type.data == null )
+ type.data = getTypeData();
+
+}
+
+// Get or create the Data for this Type
+Type::getTypeData(defSrc, defPrj) : Data {
+
+ // Check if it exist
+ if( type.data != null )
+ return type.data ;
+
+ // Create it
+ Data data = new Data();
+ // srcName = si stereotype ==> stereotype; sinon si parent ==> parent.srcName; sinon defSrc
+ if( parent != null ) {
+ parentData = parent.getData(defSrc, defPrj);
+ data.srcName = getStereotype( , "src", parentData.srcName );
+ projectName = getStereotype( , "project", parentData.projectName );
+ packageName = parentData.packageName;
+ }
+ else {
+ data.srcName = getStereotype( , "src", defSrc );
+ projectName = getStereotype( , "project", defPrj );
+ packageName = DFLT_PACKAGE_NAME;
+ }
+
+ return type.data;
+}
+
+// Get or create the Data for this Package
+// Check if the package is a src or project
+Package::getTypeData(defSrc, defPrj) : Data {
+
+ // Check if it exist
+ if( type.data != null )
+ return type.data ;
+
+ // Create it
+ // Data data = new Data();
+
+ // Are we a "src" ?
+ if( isStereotyped("src") ) {
+ return createTypeDataFromSrcFolder(defSrc, defPrj);
+ }
+ else if( isStereotyped("project") ) {
+ return createTypeDataFromProject(defSrc, defPrj);
+ }
+ else if( self.isTypeOf(uml::Model) ) {
+ // This is a simple package
+ return createTypeDataFromUmlModel(defSrc, defPrj);
+ }
+ else {
+ // This is a simple package
+ return createTypeDataFromSimplePackage(defSrc, defPrj);
+ }
+}
+
+// Get or create the Data for this simple Package
+//
+// Don't check if the package is a src or project
+Package::createTypeDataFromSimplePackage(defSrc, defPrj) : Data {
+
+ Data data = new Data();
+ // srcName = si stereotype ==> stereotype; sinon si parent ==> parent.srcName; sinon defSrc
+ if( parent != null ) {
+ parentData = parent.getData(defSrc, defPrj);
+ data.srcName = getStereotype( "JavaPackage", "src", parentData.srcName );
+ projectName = getStereotype( , "project", parentData.projectName );
+ // packageName = parentData.packageName + "." + (stereotype ? stereotype: self.name)
+ packageName = computePackageName( parentData.packageName, getStereotype( , "name", self.name ) );
+ }
+ else {
+ data.srcName = getStereotype( "JavaPackage", "src", defSrc );
+ projectName = getStereotype( , "project", defPrj );
+ packageName = getStereotype( , "name", self.name );
+ }
+
+ return type.data;
+
+}
+
+// Compute the package name from the prefix and suffix.
+// check if prefix is null or size=0
+computePackageName( prefix, suffix ) {
+ if( prefix != null && prefix != "")
+ return prefix + "." + suffix;
+ else
+ return suffix;
+}
+
+// Get or create the Data for a Package Stereotypes "SrcFolder"
+//
+// Don't Check if the package is a src or project
+Package::createTypeDataFromSourceFolder(defSrc, defPrj) : Data {
+
+ Data data = new Data();
+ // srcName = si stereotype ==> stereotype; sinon si parent ==> parent.srcName; sinon defSrc
+ if( parent != null ) {
+ // Lookup for Project
+ parentData = parent.getData(defSrc, defPrj);
+ data.srcName = getStereotype( "JavaSrcFolder", "src", parentData.srcName );
+ projectName = getStereotype( , "project", parentData.projectName );
+ // packageName = "" or null, as we are in a srcFolder (root of packages)
+ packageName = null;
+ }
+ else {
+ data.srcName = getStereotype( "JavaPackage", "src", defSrc );
+ projectName = getStereotype( , "project", defPrj );
+ packageName = null;
+ }
+
+ return type.data;
+}
+
+// Get or create the Data for a Package Stereotypes "Project"
+//
+// Don't Check if the package is a src or project
+Package::createTypeDataFromProjectFolder(defSrc, defPrj) : Data {
+
+ Data data = new Data();
+
+ data.srcName = getStereotype( "JavaProject", "src", defSrc );
+ projectName = getStereotype( , "project", defPrj );
+ packageName = null;
+
+ return type.data;
+}
+
+// Get or create the Data for a uml::Model
+// This is the root, so stop recursivity
+// Don't Check if the package is a src or project
+Package::createTypeDataFromUmlModel(defSrc, defPrj) : Data {
+
+ Data data = new Data();
+
+ data.srcName = gdefSrc;
+ projectName = defPrj ;
+ packageName = null;
+
+ return type.data;
+}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/transforms/uml/stereotypeUtil.qvto b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/transforms/uml/stereotypeUtil.qvto
new file mode 100644
index 00000000000..98c70005c93
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/transforms/uml/stereotypeUtil.qvto
@@ -0,0 +1,99 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Cedric Dumoulin
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Initial implementation
+ *
+ *****************************************************************************/
+
+ library stereotypeUtil;
+
+/* Model type declarations
+*/
+modeltype mmUML uses "http://www.eclipse.org/uml2/3.0.0/UML";
+
+/*
+ * Get the specified taggedValue. Return the found property value, or the provided default value if not
+ * taggedValue can be found.
+ */
+query mmUML::NamedElement::getTaggedValue(stereotypeName : String, taggedValueName : String, defaultValue : OclAny) : OclAny {
+
+ var value : OclAny := defaultValue;
+ var stereotype := self.getAppliedStereotype(stereotypeName);
+ if (stereotype.oclIsUndefined())
+ then
+ return value
+ endif;
+
+ var taggedValue := self.getValue(stereotype, taggedValueName);
+ if taggedValue.oclIsUndefined()
+ then
+ return defaultValue
+ endif;
+
+ return taggedValue;
+}
+
+query mmUML::NamedElement::getTaggedValues(stereotypeName : String, taggedValueName : String, defaultValue : Set(OclAny)) : Set(OclAny) {
+
+ var value : Set(OclAny) := defaultValue;
+ var stereotype := self.getAppliedStereotype(stereotypeName);
+ if (stereotype.oclIsUndefined())
+ then
+ return value
+ endif;
+
+ var taggedValue := self.getValue(stereotype, taggedValueName);
+ if taggedValue->size() <=0
+ then
+ return defaultValue
+ endif;
+
+ return taggedValue->asSet();
+}
+
+
+/*
+ * Get a tagged value by its name and the sterotype name.
+ * Return null if no stereotype of taggedValue is defined.
+ */
+query uml::NamedElement::getBooleanTaggedValue( stereotypeName : String, taggedValueName : String ) : Boolean {
+
+ return self.getTaggedValue(stereotypeName, taggedValueName, null).oclAsType(Boolean);
+}
+
+/*
+ * Get the specified taggedValue. Return the found property value, or the provided default value if not
+ * taggedValue can be found.
+ */
+query mmUML::NamedElement::getBooleanTaggedValue(stereotypeName : String, valueName : String, defaultValue : Boolean) : Boolean {
+
+ return self.getTaggedValue(stereotypeName, valueName, defaultValue).oclAsType(Boolean);
+}
+
+
+/*
+ * Get the specified taggedValue. Return the found property value, or the provided default value if not
+ * taggedValue can be found.
+ */
+query mmUML::NamedElement::getStringTaggedValue(stereotypeName : String, valueName : String, defaultValue : String) : String {
+
+ return self.getTaggedValue(stereotypeName, valueName, defaultValue).oclAsType(String);
+}
+
+/*
+ * Get the specified taggedValue. Return the found property value, or the provided default value if not
+ * taggedValue can be found.
+ */
+query mmUML::NamedElement::getEnumTaggedValue(stereotypeName : String, valueName : String, defaultValue : String) : String {
+ var ret = self.getTaggedValue(stereotypeName, valueName,defaultValue);
+ if (not ret.oclIsTypeOf(EnumerationLiteral)) then return defaultValue endif;
+ return self.getTaggedValue(stereotypeName, valueName,defaultValue).oclAsType(EnumerationLiteral).name;
+}
+
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/transforms/uml/uml2jdt2.qvto b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/transforms/uml/uml2jdt2.qvto
new file mode 100644
index 00000000000..e2a43a4cf6e
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/transforms/uml/uml2jdt2.qvto
@@ -0,0 +1,1269 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Cedric Dumoulin & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Initial transformation and implementation
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Initial transformation and implementation
+ * Manuel Giles giles.manu@live.fr - Initial transformation and implementation
+ *
+ *****************************************************************************/
+
+import stereotypeUtil;
+import Strings;
+
+/* Model type declarations
+*/
+modeltype UMLmm uses "http://www.eclipse.org/uml2/3.0.0/UML";
+modeltype JDTmm uses 'http:///jdtmm.ecore';
+modeltype GeneratorOptionsMM uses 'http:///GeneratorOptionsMM.ecore';
+modeltype JavaProfile uses java('http://www.eclipse.org/papyrus/JAVA/1');
+
+/**
+ *
+ */
+transformation uml2jdt2( in uml: UMLmm, in options : GeneratorOptionsMM, out jdt: JDTmm)
+ extends stereotypeUtil;
+
+/** Root of java stereotypes */
+intermediate property UMLmm::STEREOTYPE_JAVA_NAMED_ELEMENT : String;
+intermediate property UMLmm::STEREOTYPE_JAVA_GEN : String;
+/** Apply to any Types */
+intermediate property UMLmm::STEREOTYPE_JAVA_CLASS : String;
+intermediate property UMLmm::STEREOTYPE_JAVA_METHOD : String;
+intermediate property UMLmm::STEREOTYPE_JAVA_PROPERTY : String;
+intermediate property UMLmm::STEREOTYPE_JAVA_PROJECT : String;
+intermediate property UMLmm::STEREOTYPE_JAVA_SRC_FOLDER : String;
+intermediate property UMLmm::STEREOTYPE_JAVA_PACKAGE : String;
+intermediate property UMLmm::STEREOTYPE_PRIMITIVETYPE : String;
+
+intermediate property UMLmm::TAGVALUE_SRC : String;
+intermediate property UMLmm::TAGVALUE_PROJECT : String;
+intermediate property UMLmm::TAGVALUE_NAME : String;
+intermediate property UMLmm::TAGVALUE_GENERATED : String;
+intermediate property UMLmm::TAGVALUE_IMPLEMENTATION_CLASS : String;
+intermediate property UMLmm::TAGVALUE_EXPLICIT_REQUIRED_IMPORTS : String;
+intermediate property UMLmm::TAGVALUE_EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS : String;
+intermediate property UMLmm::NO_PACKAGE : String;
+/** Default name values for generation */
+intermediate property UMLmm::GENERATION_DEFAULT_SRC_NAME : String;
+intermediate property UMLmm::GENERATION_DEFAULT_PROJECT_NAME : String;
+
+/**
+ * The main operation. This is the entry point of the transformation.
+ */
+main() {
+
+ // Initialize global variables
+ uml.STEREOTYPE_JAVA_NAMED_ELEMENT := "java::JavaNamedElement";
+ uml.STEREOTYPE_JAVA_GEN := "java::JavaGen";
+ uml.STEREOTYPE_JAVA_CLASS := "java::JavaClass";
+ uml.STEREOTYPE_JAVA_METHOD := "java::JavaMethod";
+ uml.STEREOTYPE_JAVA_PROPERTY := "java::JavaProperty";
+ uml.STEREOTYPE_JAVA_PROJECT := "java::JavaProject";
+ uml.STEREOTYPE_JAVA_SRC_FOLDER := "java::JavaSrcFolder";
+ uml.STEREOTYPE_JAVA_PACKAGE := "java::JavaPackage_";
+ uml.STEREOTYPE_PRIMITIVETYPE := "java::PrimitiveType";
+
+ uml.TAGVALUE_SRC := "srcName";
+ uml.TAGVALUE_NAME := "name";
+ uml.TAGVALUE_GENERATED := "isGenerated";
+ uml.TAGVALUE_PROJECT := "projectName";
+ uml.TAGVALUE_IMPLEMENTATION_CLASS := "implementationClass";
+ uml.TAGVALUE_EXPLICIT_REQUIRED_IMPORTS := "explicitRequiredImports";
+ uml.TAGVALUE_EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS := "explicitPlainTextRequiredImports";
+ uml.NO_PACKAGE := null;
+
+ // Default names
+ uml.GENERATION_DEFAULT_SRC_NAME := options.objectsOfType(GeneratorOptionsMM::Options)->asSequence()->first().defaultSourceFolder;
+ uml.GENERATION_DEFAULT_PROJECT_NAME := "defaultProject";
+
+ // Select only object that we want to generate
+ var types : Set(uml::Type) := uml.objects()[uml::Type]->select(o |
+ o.oclIsTypeOf(uml::Class)
+ or o.oclIsTypeOf(uml::Interface)
+ or o.oclIsTypeOf(uml::PrimitiveType)
+ or o.oclIsTypeOf(uml::Enumeration) );
+
+ log('------------------------ Start marking input elements');
+ // First pass: mark uml::Type objects
+ types -> map markUmlType(uml.GENERATION_DEFAULT_SRC_NAME, uml.GENERATION_DEFAULT_PROJECT_NAME);
+ // show result
+ log('------------------------ Show results');
+ types -> map showMarkedType();
+ log('------------------------ Show packages results');
+ uml.objects()[uml::Package] -> map showMarkedType();
+ // Second pass: transform marked objects
+ log('------------------------ Start transformation');
+ types -> map transformTypeToType();
+
+ log('------------------------ Done');
+
+}
+
+/**
+ * A query used to check if a stereotype is applied to an UML element
+ */
+query uml::Element::isStereotyped( stereotypeName : String ) : Boolean {
+ var stereotype = self.getAppliedStereotype(stereotypeName);
+ return not stereotype.oclIsUndefined();
+}
+
+/**
+ * Is the specified type a Compilation Unit ?
+ */
+query uml::Type::isCompilationUnit( ) : Boolean {
+
+ // A compilation unit is a type whose owner is a Package
+ return self.owner.oclIsKindOf(Package);
+}
+
+/**
+ * Get the interfaces associated to the Classifier
+ */
+query uml::Classifier::generalInterfaces() : Set(uml::Interface) {
+ // Get interface linked by a generalization
+// var res : Set(uml::Interface) := self.generalization -> select( p | p.general.oclIsTypeOf(uml::Interface))
+// -> collect(p | p.general.oclAsType(uml::Interface)) -> asSet();
+ var res : Set(uml::Interface) := self.generalization.general[uml::Interface] -> asSet();
+
+ return res;
+}
+
+/**
+ * Get the class associated to a stereotype. This work for static profile.
+ */
+query uml::NamedElement::getStereotype(stereotypeName:String) : OclAny {
+
+ var stereotype := self.getAppliedStereotype(stereotypeName);
+ if (stereotype.oclIsUndefined())
+ then
+ return null
+ endif;
+
+ return self.getStereotypeApplication(stereotype);
+}
+
+
+/**
+ * Get the JavaClass stereotype from a classifier.
+ */
+query uml::Classifier::getJavaClassStereotype() : JavaProfile::JavaClass {
+
+ return self.getStereotype(uml.STEREOTYPE_JAVA_CLASS).oclAsType(JavaProfile::JavaClass);
+}
+
+/**
+ * Get the JavaClass stereotype from a classifier.
+ */
+query uml::Operation::getJavaMethodStereotype() : JavaProfile::JavaMethod {
+
+ return self.getStereotype(uml.STEREOTYPE_JAVA_METHOD).oclAsType(JavaProfile::JavaMethod);
+}
+
+/**
+ * Get the JavaClass stereotype from a classifier.
+ */
+query uml::Property::getJavaPropertyStereotype() : JavaProfile::JavaProperty {
+
+ return self.getStereotype(uml.STEREOTYPE_JAVA_PROPERTY).oclAsType(JavaProfile::JavaProperty);
+}
+
+/**
+ * Get the ExplicitImports from a classifier.
+ * Explicit imports are stored in a Stereotype.
+ */
+query uml::Classifier::getExplicitPlainTextRequiredImports() : Set(String) {
+
+ var emptySet : Set(String) := Set{};
+ return self.getTaggedValue( uml.STEREOTYPE_JAVA_CLASS,
+ uml.TAGVALUE_EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS,
+ OclAny ) [String]->asSet();
+}
+
+/**
+ * Get the interfaces associated to the Classifier
+ */
+query uml::BehavioredClassifier::generalInterfacesForClass() : Set(uml::Interface)
+{
+ // Get interface linked by a generalization
+ // var res : Set(uml::Interface) := self.generalization -> select( p | p.general.oclIsTypeOf(uml::Interface))
+ // -> collect(p | p.general.oclAsType(uml::Interface)) -> asSet();
+ var res : Set(uml::Interface) := self.generalization.general[uml::Interface] -> asSet();
+
+ // manage the interfaceRealisation
+ res += self.oclAsType(uml::BehavioredClassifier).interfaceRealization.supplier[uml::Interface];
+
+ return res;
+}
+
+/**
+ * Get the general Class associated to the Enumeration
+ */
+query uml::Enumeration::general() : uml::Class {
+ // Get interface linked by a generalization
+ var res : uml::Class := self.generalization.general[uml::Class] -> asOrderedSet() -> first();
+
+ return res;
+}
+
+/**
+ * return true if the element is marked has "toGenerate". Return false otherwise.
+ */
+query uml::NamedElement::isGenerated() : Boolean {
+ // by default, generated are true
+ var generated := true;
+
+ self.getApplicableStereotypes()->forEach(st) {
+ generated := self->getBooleanTaggedValue("java::"+st.name, "isGenerated",generated)->asOrderedSet()->first();
+ };
+
+ return generated;
+}
+
+
+/**
+ * Compute additional data associated to self.
+ * How to compute such datas is dependant of the type of self, so dispatch to the appropriate method.
+ *
+ * Common ancestor. Dispatch to correct method according to the element's type.
+ */
+helper NamedElement::getData(defaultSrcName : String, defaultProjectName : String) : TypeMarker {
+
+// log("NamedElement::getData(self.name=" + self.name + ") ");
+
+ // overloading doesn't work, so we do it manually
+ if( self.oclIsKindOf(uml::PrimitiveType)) then {
+ return self.oclAsType(uml::PrimitiveType).getDataFromPrimitiveType( defaultSrcName, defaultProjectName);
+ } endif;
+
+ if( self.oclIsKindOf(uml::Type)) then {
+ return self.oclAsType(uml::Type).getDataFromType( defaultSrcName, defaultProjectName);
+ }
+ else {
+ if( self.oclIsKindOf(uml::Package)) then {
+ return self.oclAsType(uml::Package).getDataFromPackage( defaultSrcName, defaultProjectName);
+ } endif;
+ } endif;
+ // not defined
+ return null;
+}
+
+/**
+ * Compute the additional data for a uml::Type.
+ * Recursively set the additional data for the parent (owner) of this type.
+ */
+helper Type::getDataFromType( defaultSrcName : String, defaultProjectName : String) : TypeMarker {
+
+ log( "Type::getDataFromType(self.name=" + self.name + ")");
+ // Check if data already exist
+ if not self.data.oclIsUndefined()
+ then
+ return self.data
+ endif;
+
+ // Create it
+ log("Type::getData() - start creation");
+ var data : TypeMarker := object TypeMarker {};
+
+ var parent :uml::Namespace := self.namespace;
+ if parent != null
+ then {
+ //
+ var parentData : TypeMarker := parent.getData(defaultSrcName, defaultProjectName);
+ data.srcName := self.getStringTaggedValue(uml.STEREOTYPE_JAVA_CLASS, uml.TAGVALUE_SRC, parentData.srcName);
+ data.projectName := self.getStringTaggedValue( uml.STEREOTYPE_JAVA_CLASS, uml.TAGVALUE_PROJECT, parentData.projectName );
+ data.packageName := parentData.packageName;
+ data.generated := self.getBooleanTaggedValue( uml.STEREOTYPE_JAVA_CLASS, uml.TAGVALUE_GENERATED, true );
+ }
+ else {
+ data.srcName := self.getStringTaggedValue( uml.STEREOTYPE_JAVA_CLASS, uml.TAGVALUE_SRC, defaultSrcName );
+ data.projectName := self.getStringTaggedValue( uml.STEREOTYPE_JAVA_CLASS, uml.TAGVALUE_PROJECT, defaultProjectName );
+ data.packageName := uml.NO_PACKAGE;
+ data.generated := self.getBooleanTaggedValue( uml.STEREOTYPE_JAVA_CLASS, uml.TAGVALUE_GENERATED, true );
+ }
+ endif;
+
+
+ self.data := data;
+ return data;
+}
+
+/**
+ * Compute the additional data for a uml::Type.
+ * Recursively set the additional data for the parent (owner) of this type.
+ *
+ * Primitive types are stored in the package declared in uml.TAGVALUE_IMPLEMENTATION_CLASS.
+ * If no implementation class is declared, use the same scheme as Classes.
+ */
+helper PrimitiveType::getDataFromPrimitiveType( defaultSrcName : String, defaultProjectName : String) : TypeMarker {
+
+ log("Type::getDataFromPrimitiveType(self.name=" + self.name + ")");
+ // Check if data already exist
+ if not self.data.oclIsUndefined()
+ then
+ return self.data
+ endif;
+
+ // Create it
+ log("Type::getData() - start creation");
+ var data : TypeMarker := object TypeMarker {};
+
+ var parent :uml::Namespace := self.namespace;
+ if parent != null
+ then {
+ //
+ var parentData : TypeMarker := parent.getData(defaultSrcName, defaultProjectName);
+ data.srcName := self.getStringTaggedValue(uml.STEREOTYPE_PRIMITIVETYPE, uml.TAGVALUE_SRC, parentData.srcName);
+ data.projectName := self.getStringTaggedValue( uml.STEREOTYPE_PRIMITIVETYPE, uml.TAGVALUE_PROJECT, parentData.projectName );
+ data.packageName := parentData.packageName;
+ data.generated := self.getBooleanTaggedValue( uml.STEREOTYPE_PRIMITIVETYPE, uml.TAGVALUE_GENERATED, parentData.generated );
+ }
+ else {
+ data.srcName := self.getStringTaggedValue( uml.STEREOTYPE_PRIMITIVETYPE, uml.TAGVALUE_SRC, defaultSrcName );
+ data.projectName := self.getStringTaggedValue( uml.STEREOTYPE_PRIMITIVETYPE, uml.TAGVALUE_PROJECT, defaultProjectName );
+ data.packageName := uml.NO_PACKAGE;
+ data.generated := self.getBooleanTaggedValue( uml.STEREOTYPE_PRIMITIVETYPE, uml.TAGVALUE_GENERATED, true );
+ }
+ endif;
+
+ // Check if an instance name is set
+ var instanceClassName := self.getStringTaggedValue(uml.STEREOTYPE_PRIMITIVETYPE, uml.TAGVALUE_IMPLEMENTATION_CLASS, null);
+ if( not instanceClassName.oclIsUndefined()) then {
+ // Try to get the package name from the provided qualified name.
+ // If none is specified, use the regular package name.
+ var packageName : String := instanceClassName.findPackageFromQualifiedName(data.packageName);
+ data.packageName := packageName;
+ } endif;
+
+ self.data := data;
+ return data;
+}
+
+/**
+ * Get the package name of the specified qualifiedname. Return the package name if there is one.
+ * Return the nameIfNotFound value if no package is set in qualifiedName.
+ * @param nameIfNotFound Default name returned if no package specified in provided String
+ */
+query String::findPackageFromQualifiedName( nameIfNotFound : String) : String {
+
+ // Get the index of the last segment
+ var cur : int := self.lastIndexOf('.');
+ // return empty string if not found
+ var res : String;
+ // Do strange comparison because of trouble with
+ // QVTo
+ if 0>(cur) then {
+ res := nameIfNotFound;
+ }
+ else {
+ res := self.substring( 1, cur);
+ } endif;
+
+ return res;
+}
+
+/**
+ * Get the last name from the specified qualifiedname.
+ */
+query String::lastNameFromQualifiedName( ) : String {
+
+ // Get the index of the last segment
+ var cur : Integer := self.lastIndexOf('.');
+ // return empty string if not found
+ var res : String;
+ // Do strange comparison because of trouble with
+ // QVTo
+ if 0>(cur) then {
+ // Only one name ==> return it
+ res := self;
+ }
+ else {
+ cur := cur+2;
+ res := self.substring( cur, self.size());
+ } endif;
+
+ return res;
+}
+
+
+/**
+ * Get generation data associated to a Package.
+ * Associated stereotype are taken into account to compute the GenData
+ */
+helper Package::getDataFromPackage(defaultSrcName : String, defaultProjectName : String) : TypeMarker {
+
+ log("Type::getDataFromPackage(self.name=" + self.name + ")");
+ // Check if data already exist
+ if not self.data.oclIsUndefined()
+ then
+ return self.data
+ endif;
+
+ var data : TypeMarker;
+
+ // Switch to correct helper, according to stereotype
+ switch {
+ case (self.isStereotyped( uml.STEREOTYPE_JAVA_SRC_FOLDER) ) {
+ // SrcFolder
+ data := self.createDataFromSrcFolder(defaultSrcName, defaultProjectName);
+ }
+ case ( self.isStereotyped( uml.STEREOTYPE_JAVA_PROJECT) ) {
+ // JavaProject
+ data := self.createDataFromJavaProject(defaultSrcName, defaultProjectName);
+ }
+ case ( self.isStereotyped( uml.STEREOTYPE_JAVA_PACKAGE)) {
+ // Treat it as a Java Package
+ // uml::Model and uml::Package can be marked with this stereotype.
+ // When a uml::Model is marked as package, it is not considered anymore as a root for packages
+ data := self.createDataFromSimplePackage(defaultSrcName, defaultProjectName);
+ }
+ case ( self.oclIsTypeOf(uml::Model) ) {
+ // uml::Model
+ // uml::Model is considered as the root of packages.
+ // So, stop on type Model, except if a STEREOTYPE_JAVA_PACKAGE is set.
+ data := self.createDataFromUmlModel(defaultSrcName, defaultProjectName);
+ }
+ else {
+ // Default Package
+ data := self.createDataFromSimplePackage(defaultSrcName, defaultProjectName);
+ }
+ };
+
+ self.data := data;
+ return data;
+}
+
+/**
+ * Get or create the Data for a Package Stereotypes "SrcFolder"
+ */
+helper Package::createDataFromSrcFolder(defaultSrcName : String, defaultProjectName : String) : TypeMarker {
+
+ var data := object TypeMarker {};
+ var parent : Namespace := self.namespace;
+
+ if parent != null
+ then {
+ //
+ var parentData : TypeMarker := parent.getData(defaultSrcName, defaultProjectName);
+ // We are in an SrcFolder, so srcName is either the stereotype.srcName or self.name
+ data.srcName := self.getStringTaggedValue(uml.STEREOTYPE_JAVA_SRC_FOLDER, uml.TAGVALUE_SRC, self.name);
+ data.projectName := self.getStringTaggedValue( uml.STEREOTYPE_JAVA_SRC_FOLDER, uml.TAGVALUE_PROJECT, parentData.projectName );
+ // packageName = "" or null, as we are in a srcFolder (root of packages)
+ data.packageName := uml.NO_PACKAGE;
+ // Compute generated: (parent.generated == false ? false : taggedValue || true )
+ data.generated := if parentData.generated = false then false else self.getBooleanTaggedValue( uml.STEREOTYPE_JAVA_SRC_FOLDER, uml.TAGVALUE_GENERATED, true ) endif;
+ }
+ else {
+ data.srcName := self.getStringTaggedValue( uml.STEREOTYPE_JAVA_SRC_FOLDER, uml.TAGVALUE_SRC, self.name );
+ data.projectName := self.getStringTaggedValue( uml.STEREOTYPE_JAVA_SRC_FOLDER, uml.TAGVALUE_PROJECT, defaultProjectName );
+ // packageName = "" or null, as we are in a srcFolder (root of packages)
+ data.packageName := uml.NO_PACKAGE;
+ data.generated := self.getBooleanTaggedValue( uml.STEREOTYPE_JAVA_SRC_FOLDER, uml.TAGVALUE_GENERATED, true );
+ }
+ endif;
+
+
+// self.data := data;
+ return data;
+}
+
+/**
+ * Get or create the Data for this simple Package
+ * Don't check if the package is a src or project
+ */
+helper Package::createDataFromSimplePackage(defaultSrcName : String, defaultProjectName : String) : TypeMarker {
+
+ var data := object TypeMarker {};
+ var parent : Namespace := self.namespace;
+
+ if parent != null
+ then {
+ //
+ var parentData : TypeMarker := parent.getData(defaultSrcName, defaultProjectName);
+ data.srcName := self.getStringTaggedValue(uml.STEREOTYPE_JAVA_PACKAGE, uml.TAGVALUE_SRC, parentData.srcName);
+ data.projectName := self.getStringTaggedValue( uml.STEREOTYPE_JAVA_PACKAGE, uml.TAGVALUE_PROJECT, parentData.projectName );
+ data.packageName := self.computePackageName( parentData.packageName, self.getStringTaggedValue(uml.STEREOTYPE_JAVA_PACKAGE, uml.TAGVALUE_NAME, self.name) );
+ data.generated := if parentData.generated = false then false else self.getBooleanTaggedValue( uml.STEREOTYPE_JAVA_PACKAGE, uml.TAGVALUE_GENERATED, true ) endif;
+ }
+ else {
+ // This is the root node, and maybe the stereotype overide some values.
+ data.srcName := self.getStringTaggedValue( uml.STEREOTYPE_JAVA_PACKAGE, uml.TAGVALUE_SRC, defaultSrcName );
+ data.projectName := self.getStringTaggedValue( uml.STEREOTYPE_JAVA_PACKAGE, uml.TAGVALUE_PROJECT, self.name );
+ data.packageName := self.getStringTaggedValue(uml.STEREOTYPE_JAVA_PACKAGE, uml.TAGVALUE_NAME, self.name);
+ data.generated := self.getBooleanTaggedValue( uml.STEREOTYPE_JAVA_PACKAGE, uml.TAGVALUE_GENERATED, true );
+ }
+ endif;
+
+
+// self.data := data;
+ return data;
+}
+
+/**
+ *
+ */
+helper Package::computePackageName( parentName : String, selfName : String) : String {
+ if( parentName.oclIsUndefined() or parentName.length() = 0) then {
+ return selfName;
+ } endif;
+
+ return parentName + "." + selfName;
+}
+
+/**
+ * Get or create the Data for a Package Stereotypes "Project"
+ */
+helper Package::createDataFromJavaProject(defaultSrcName : String, defaultProjectName : String) : TypeMarker {
+
+ var data := object TypeMarker {};
+
+ data.srcName := self.getStringTaggedValue( uml.STEREOTYPE_JAVA_PROJECT, uml.TAGVALUE_SRC, defaultSrcName );
+ // We are in a JavaProject, so the name is either the setereotype.projectName, or the folder name
+ data.projectName := self.getStringTaggedValue( uml.STEREOTYPE_JAVA_PROJECT, uml.TAGVALUE_PROJECT, self.name );
+ // packageName = "" or null, as we are in a srcFolder (root of packages)
+ data.packageName := uml.NO_PACKAGE;
+ data.generated := self.getBooleanTaggedValue( uml.STEREOTYPE_JAVA_PROJECT, uml.TAGVALUE_GENERATED, true );
+ return data;
+}
+
+/**
+ * Get or create the Data for a uml::Model with no stereotype
+ * This is the root, so stop recursivity
+ */
+helper Package::createDataFromUmlModel(defaultSrcName : String, defaultProjectName : String) : TypeMarker {
+
+ var data := object TypeMarker {};
+
+ data.srcName := defaultSrcName;
+ // Use the name of the Model as project name.
+ data.projectName := self.name;
+ // packageName = "" or null, as we are in a srcFolder (root of packages)
+ data.packageName := uml.NO_PACKAGE;
+ data.generated := true;
+ return data;
+}
+
+/**
+ * A class used to hold data on a type
+ */
+intermediate class TypeMarker {
+ isCompilationUnit : Boolean;
+ projectName : String;
+ srcName : String;
+ packageName : String;
+ generated : Boolean = true;
+
+ }
+
+ // log this object
+query TypeMarker::show() : String {
+ return self.projectName + "-" + self.srcName + "-" + self.packageName;
+/*
+ + "(isCu=" + self.isCompilationUnit.repr()
+ + ", isGenerated=" + self.generated.repr()
+ + ")";
+*/
+ };
+
+/**
+ * Add a property to the uml::Type. This property is filled during the first pass.
+ * The first pass collect the data that are used during the second pass.
+ */
+intermediate property uml::NamedElement::data : TypeMarker;
+
+
+
+/**
+ * Show the content of marked type
+ */
+mapping uml::NamedElement::showMarkedType()
+{
+ log( '--------- ' + self.name + " ---------");
+ log( 'uml=' + self.repr());
+ log( 'data=' + self.data.repr());
+
+ log( 'projectName=' + self.data.projectName);
+ log( 'srcName =' + self.data.srcName.repr());
+ log( 'packageName=' + self.data.packageName);
+ log( 'generated =' + self.data.generated.repr());
+}
+
+/**
+ * Map a model to a JavaModel.
+ * Compute and associate additional data (in a TypeMarker class) to the type.
+ * Recursively ensure that the data are associated to the container of this type.
+ */
+mapping uml::Type::markUmlType(defaultSrcName : String, defaultProjectName : String)
+// when { self.isCompilationUnit() }
+{
+// log("------ try to get data for " + self.name);
+ if( self.data.oclIsUndefined() ) then {
+ log("Compute associated data for '" + self.name + "'");
+ self.data := self.getData( defaultSrcName, defaultProjectName);
+ } endif;
+}
+
+/**
+ * Map a model to a JavaModel.
+ * Compute and associate additional data (in a TypeMarker class) to the type.
+ * Recursively ensure that the data are associated to the container of this type.
+ */
+mapping uml::Type::markUmlType()
+{
+ self.map markUmlType( uml.GENERATION_DEFAULT_SRC_NAME, uml.GENERATION_DEFAULT_PROJECT_NAME);
+}
+
+/**
+ *
+ */
+mapping uml::Namespace::getNamespaceMarker() : TypeMarker {
+
+ init {
+// if not self.namespaceMarker.oclIsUndefined() then return self.namespaceMarker endif;
+ }
+
+
+}
+
+/* ******************************************************************** */
+/* */
+/* ******************************************************************** */
+abstract mapping uml::NamedElement::transformNamedElementToJavaElement() : JDTmm::JDTJavaElement
+{
+ // by default, isGenerated are true
+ generated := self.isGenerated();
+ //generated := self.data.generated;
+
+ comment := self.ownedComment.body->asOrderedSet()->first();
+ log("************************************" + self.name,comment);
+}
+
+
+mapping uml::Type::transformTypeToType() : JDTmm::JDTType
+ disjuncts Class::generateCuClass, Class::generateNestedClass,
+ Interface::generateCuInterface, Interface::generateNestedInterface,
+ Enumeration::generateCuEnumeration, Enumeration::generateNestedEnumeration,
+ PrimitiveType::generateCuPrimitiveType
+{
+
+}
+
+helper createOrRetrieveJavaModel2() : JDTJavaModel {
+ // get the model unique instance, or create it.
+ var model : JDTJavaModel := resolveoneIn(createOrRetrieveJavaModel).oclAsType(JDTJavaModel);
+ if( model.oclIsUndefined()) then {
+ model := map createOrRetrieveJavaModel();
+ } endif;
+ return model;
+}
+
+/**
+ * Generate a Class that should be a CompilationUnit and set its CompilationUnit
+ */
+mapping uml::Class::generateCuClass() : JDTmm::JDTClass
+ inherits Class::generateClass /*, NamedElement::transformNamedElementToJavaElement */
+ when { self.isCompilationUnit() }
+{
+ log("------- transform", self.qualifiedName);
+ compilationUnit := self.map type2CompilationUnit();
+}
+
+/**
+ * Generate a Class that is nested in another Type
+ */
+mapping uml::Class::generateNestedClass() : JDTmm::JDTClass
+ inherits Class::generateClass
+when { not self.isCompilationUnit() }
+{
+ log("------- transform", self.qualifiedName);
+ // We are NOT a compilation unit, so our parent is a Type
+ owner := self.namespace.oclAsType(uml::Type).map transformTypeToType();
+}
+
+/**
+ * Generate a Class.
+ * set all except its compilationUnit and its owner
+ */
+mapping uml::Class::generateClass() : JDTmm::JDTClass
+ inherits Classifier::mapTypeToType
+{
+// log( "Interfaces:");
+// self.generalInterfaces()->forEach(c) {
+// log( " interface=", c.name);
+// };
+ log("------- transform", self.qualifiedName);
+ interface := false;
+ _class := true;
+ _enum := false;
+
+ // map inheritance
+ superClass := self.superClass[uml::Class] -> asOrderedSet() -> first().map transformTypeToType();
+ // map interfaces
+ superInterfaces := self.generalInterfacesForClass() -> map transformTypeToType();
+ // Properties
+ fields := self.ownedAttribute.map propertyToField();
+ // Compute property from associations
+ // This is already computed from the previous case, as such
+ // properties are marked with owner=Classifier
+// fields += self.ownedAttribute.map propertyToAssociationField();
+ fields += self[uml::AssociationClass].memberEnd.map propertyToFieldOfAssociationClass();
+
+ //fields.type := self->generateClass() -> asOrderedSet() -> first();
+ // Methods
+ methods := self.ownedOperation -> map operationToMethod();
+}
+
+
+/**
+ * Create a Compilation Unit, and set its packageFragment
+ */
+mapping uml::Type::type2CompilationUnit() : JDTCompilationUnit
+ inherits NamedElement::transformNamedElementToJavaElement
+{
+
+ elementName := self.name;
+ // Compute the package fragment from the GenData associated to the type
+ var res : JDTPackageFragment := self.data.map typeMarkerToPackageFragment();
+
+// log( "try to set package fragment found packageFragment=", res);
+// log( " type(.packageFragment)=", self);
+
+ // Set the packageFragment of this CU
+ // next call has a bug, so we do the opposite affectation:
+ // add this CU to its packageFragment
+// packageFragment := res;
+ res.compilationUnits += result;
+}
+
+/**
+ * Generate a Interface that should be a CompilationUnit and set its CompilationUnit
+ */
+mapping uml::Interface::generateCuInterface() : JDTmm::JDTInterface
+ inherits Interface::generateInterface /*, NamedElement::transformNamedElementToJavaElement */
+ when { self.isCompilationUnit() }
+{
+ log("------- transform", self.qualifiedName);
+ compilationUnit := self.map type2CompilationUnit();
+
+}
+
+/**
+ * Generate a Interface that is nested in another Type
+ */
+mapping uml::Interface::generateNestedInterface() : JDTmm::JDTInterface
+ inherits Interface::generateInterface
+when { not self.isCompilationUnit() }
+{
+ log("------- transform", self.qualifiedName);
+ // We are NOT a compilation unit, so our parent is a Type
+ owner := self.namespace.oclAsType(uml::Type).map transformTypeToType();
+}
+
+/**
+ * Generate a Interface.
+ * set all except its compilationUnit and its owner
+ */
+mapping uml::Interface::generateInterface() : JDTmm::JDTInterface
+ inherits Classifier::mapTypeToType
+{
+ interface := true;
+ _class := false;
+ _enum := false;
+
+ // map interfaces
+ superInterfaces := self.generalInterfaces() -> map transformTypeToType();
+ // Properties
+ fields := self.ownedAttribute -> map propertyToField();
+ // Methods
+ methods := self.ownedOperation -> map operationToMethod();
+
+
+}
+
+/**
+ * Generate a Enumeration that should be a CompilationUnit and set its CompilationUnit
+ */
+mapping uml::Enumeration::generateCuEnumeration() : JDTmm::JDTEnum
+ inherits Enumeration::generateEnumeration /*, NamedElement::transformNamedElementToJavaElement */
+ when { self.isCompilationUnit() }
+{
+ log("------- transform", self.qualifiedName);
+ compilationUnit := self.map type2CompilationUnit();
+
+}
+
+/**
+ * Generate a Enumeration that is nested in another Type
+ */
+mapping uml::Enumeration::generateNestedEnumeration() : JDTmm::JDTEnum
+ inherits Enumeration::generateEnumeration
+when { not self.isCompilationUnit() }
+{
+ log("------- transform", self.qualifiedName);
+ // We are NOT a compilation unit, so our parent is a Type
+ owner := self.namespace.oclAsType(uml::Type).map transformTypeToType();
+}
+
+/**
+ * Generate a Enumeration.
+ * set all except its compilationUnit and its owner
+ */
+mapping uml::Enumeration::generateEnumeration() : JDTmm::JDTEnum
+ inherits Classifier::mapTypeToType
+{
+ interface := false;
+ _class := false;
+ _enum := true;
+
+ // map inheritance
+ superClass := self.general().map transformTypeToType();
+ // map interfaces
+ superInterfaces := self.generalInterfaces() -> map transformTypeToType();
+
+ // Properties
+ fields := self.ownedAttribute -> map propertyToField();
+
+ // Litterals ??
+ fields += self.ownedLiteral -> map enumerationLiteral2Field();
+
+
+ // Methods
+ methods := self.ownedOperation -> map operationToMethod();
+
+}
+
+mapping uml::EnumerationLiteral::enumerationLiteral2Field() : JDTmm::JDTField
+{
+ elementName := self.name;
+ // visibility
+ visibility := self.visibility.visibilityToVisibility();
+ // modifiers
+ final := false;
+ _static := false;
+ // multiplicity
+ isMultiValued := false;
+ // type
+ type := null;
+}
+
+/**
+ * Generate a primitive type
+ */
+mapping uml::PrimitiveType::generateCuPrimitiveType() : JDTmm::JDTClass
+ inherits Classifier::mapTypeToType
+{
+ log("------- transform", self.qualifiedName);
+ compilationUnit := self.map type2CompilationUnit();
+
+ // Compute elementName
+ // Check if another name is set in instanceClassname
+ // Set only the last name, because the package name is set previously in the compilationUnit.
+ var instanceName : String := self.getStringTaggedValue(uml.STEREOTYPE_PRIMITIVETYPE, uml.TAGVALUE_IMPLEMENTATION_CLASS, null);
+ elementName := if( instanceName.oclIsUndefined())
+ then self.name
+ else instanceName.lastNameFromQualifiedName()
+ endif;
+
+ // Adjust compilation unit name
+ compilationUnit.elementName := elementName;
+
+ generated := self.data.generated;
+}
+
+/**
+ * Generate a Enumeration.
+ * set all except its compilationUnit and its owner
+ */
+abstract mapping uml::Classifier::mapTypeToType() : JDTmm::JDTType
+ inherits NamedElement::transformNamedElementToJavaElement
+{
+
+ // Ensure that data are set
+ if( self.data.oclIsUndefined()) then {
+ self.map markUmlType();
+ } endif;
+
+ elementName := self.name;
+ // visibility
+ visibility := self.visibility.visibilityToVisibility();
+ // modifiers
+ _abstract := self.getBooleanTaggedValue("java::JavaClass", "isAbstract",self.isAbstract);
+ final := self.getBooleanTaggedValue("java::JavaClass", "isFinal",self.isLeaf);
+ _static := self.getBooleanTaggedValue("java::JavaClass", "isStatic", false);
+ generated := self.data.generated;
+
+ // Explicit imports
+ explicitRequiredImports += self.elementImport.target[uml::Classifier] -> map transformTypeToType();
+ // Explicit imports from stereotype
+ var ext:JavaProfile::JavaClass := self.getJavaClassStereotype();
+ if( ext <> null) then {
+ explicitRequiredImports += ext.explicitRequiredImports -> map transformTypeToType();
+ explicitPlainTextRequiredImports += ext.explicitPlainTextRequiredImports
+ } endif;
+
+}
+
+/**
+ * Transform the visibility.
+ */
+query uml::VisibilityKind::visibilityToVisibility() : jdtmm::VisibilityKind {
+
+ if( self = uml::VisibilityKind::public ) then return jdtmm::VisibilityKind::public endif;
+ if( self = uml::VisibilityKind::protected ) then return jdtmm::VisibilityKind::protected endif;
+ if( self = uml::VisibilityKind::private ) then return jdtmm::VisibilityKind::private endif;
+
+ // Can't happen'
+ return jdtmm::VisibilityKind::public;
+}
+
+/**
+ * Map a Property to a field
+ */
+mapping uml::Property::propertyToField() : JDTField
+ inherits NamedElement::transformNamedElementToJavaElement
+{
+ //
+ elementName := self.name;
+ // visibility
+ visibility := self.visibility.visibilityToVisibility();
+ // modifiers
+ final := self.getBooleanTaggedValue("java::JavaProperty", "isFinal",self.isLeaf);
+ _static := self.getBooleanTaggedValue("java::JavaProperty", "isStatic", self.isStatic);
+ // getter setter
+ generateGetter := self.getEnumTaggedValue("java::JavaProperty", "generateGetter", "default").getTrueFalseDefaultValue();
+ generateSetter := self.getEnumTaggedValue("java::JavaProperty", "generateSetter", "default").getTrueFalseDefaultValue();
+
+ // multiplicity
+ isMultiValued := self.upper < 1;
+ // type
+ type := self.type.map transformTypeToType();
+
+ // Specify the default value
+ if(not self.defaultValue.isNull() ) then {
+ value := self.defaultValue.valueSpecificationToString();
+ } endif;
+
+ // Explicit imports from stereotype
+ var ext:JavaProfile::JavaProperty := self.getJavaPropertyStereotype();
+ if( ext <> null) then {
+ explicitRequiredImports += ext.explicitRequiredImports -> map transformTypeToType();
+ explicitPlainTextRequiredImports += ext.explicitPlainTextRequiredImports
+ } endif;
+
+}
+
+/**
+ * Compute the default value from the ValueSpecification.
+ * Check if this is a special case.
+ *
+ */
+query uml::ValueSpecification::valueSpecificationToString() : String {
+
+ switch {
+ case (self.oclIsTypeOf(uml::InstanceValue)) {
+ var iv := self.oclAsType(uml::InstanceValue );
+
+ // Is it an EnumLiteral ?
+ if( iv.instance.oclIsTypeOf(uml::EnumerationLiteral)) then {
+ // This is an enum literal. Prefix it with its typeName
+ return iv.type.name + "." + iv.instance.name;
+ } endif;
+ }
+ else {
+ return self.stringValue()
+ }
+ };
+ return "";
+}
+
+/**
+ * Return the value of the enumeration literal for Enum 'TrueFalseDefault'
+ */
+query String::getTrueFalseDefaultValue(): TrueFalseDefault {
+ if(self = "true") then
+ return TrueFalseDefault::_true
+ else
+ if(self = "false") then
+ return TrueFalseDefault::_false
+ endif
+ endif;
+
+ return TrueFalseDefault::_default;
+}
+/**
+ * Map a Property to a field of a association class
+ */
+mapping uml::Property::propertyToFieldOfAssociationClass() : JDTField
+ inherits Property::propertyToField
+{
+
+}
+
+/**
+ * Map a Property to a association field assoc+nameOfProperty
+ */
+mapping uml::Property::propertyToAssociationField() : JDTField
+ inherits Property::propertyToField
+when {
+ not self.association.oclIsUndefined()
+}
+{
+ // handle the class association
+ elementName := "assoc"+ self.name.firstToUpper();
+ type := self.association.map transformTypeToType()->asOrderedSet()->first();
+}
+
+/**
+ * Map a Operation to a Method
+ */
+mapping uml::Operation::operationToMethod() : JDTMethod
+ inherits NamedElement::transformNamedElementToJavaElement
+{
+ //
+ elementName := self.name;
+ // visibility
+ visibility := self.visibility.visibilityToVisibility();
+ // modifiers
+ final := self.getBooleanTaggedValue("java::JavaMethod", "isFinal",self.isLeaf);
+ _static := self.getBooleanTaggedValue("java::JavaMethod", "isStatic", self.isStatic);
+ _abstract := self.getBooleanTaggedValue("java::JavaMethod", "isAbstract", self.isAbstract);
+ synchronized := self.getBooleanTaggedValue("java::JavaMethod", "isSynchronized", false);
+
+ // constructor
+ _constructor := self.getBooleanTaggedValue("java::JavaMethod", "isConstructor", false);
+
+ // arguments
+ returnType := self.ownedParameter->select(m| m.direction.repr()="return")->first().map parameterToParameter();
+ parameters := self.ownedParameter->select(m| m.direction.repr()!="return")-> map parameterToParameter();
+
+ // Body
+ bodies := self.method -> map BehaviorToMethodBody();
+ // exception
+ exceptions := self.raisedException -> map transformTypeToType();
+
+ // Explicit imports from stereotype
+ var ext:JavaProfile::JavaMethod := self.getJavaMethodStereotype();
+ if( ext <> null) then {
+ explicitRequiredImports += ext.explicitRequiredImports -> map transformTypeToType();
+ explicitPlainTextRequiredImports += ext.explicitPlainTextRequiredImports
+ } endif;
+
+}
+
+mapping uml::Parameter::parameterToParameter() : jdtmm::JDTParameter
+ inherits NamedElement::transformNamedElementToJavaElement
+{
+ //
+ elementName := self.name;
+ // modifiers
+ final := self.getBooleanTaggedValue("java::JavaClass", "isFinal",false);
+ // multiplicity
+ isMultiValued := self.upper < 1;
+ // type
+ type := self.type.map transformTypeToType();
+}
+
+/**
+ * Transform a Behavior to a JDTMethodBody.
+ * Root rule of transforming a Behavior to a JDTMethodBody. The real transformation ois done in sub-rules
+ * (with the same name, but different input type).
+ *
+ * Behavior can't be transformed to JDTMethodBody, so create a JDTMethodBody with an error message.
+ */
+mapping uml::Behavior::BehaviorToMethodBody() : jdtmm::JDTMethodBody {
+ init {
+ var jdtBody := object JDTOpaqueBody {};
+ jdtBody._body := "Don't know how to map a Behavior to a Java Body";
+ result := jdtBody;
+ }
+}
+
+/**
+ * Transform an OpaqueBehavior to a MethodBody.
+ * As we return a subclass of JDTMethodBody, delegate to the appropriate rule.
+ */
+mapping uml::OpaqueBehavior::BehaviorToMethodBody() : jdtmm::JDTMethodBody {
+ init {
+ result := self.map OpaqueBehaviorToOpaqueBody();
+ }
+
+}
+
+/**
+ * Transform an OpaqueBehavior to a OpaqueBody
+ */
+mapping uml::OpaqueBehavior::OpaqueBehaviorToOpaqueBody() : jdtmm::JDTOpaqueBody {
+
+// log("OpaqueBehavior found");
+
+ // Look for the java index
+ var index : Integer := self.language->indexOf("Java");
+ if ( index >= 0) then {
+ _body := self.body->at(index);
+ }
+ else {
+ _body := "// No 'Java' body found. Please set a 'Java' body in the OpaqueBehavior associted to method.";
+ }
+ endif;
+}
+
+
+
+
+
+/**
+ * Get or create the PackageFragment corresponding to the TypeMarker
+ */
+mapping TypeMarker::typeMarkerToPackageFragment() : JDTPackageFragment {
+
+ init {
+ // Check if the fragment already exist
+
+ // First, lookup fragment root
+ var srcRoot:JDTPackageFragmentRoot := self.map typeMarkerToPackageFragmentRoot();
+
+ // Second, lookup in srcRoot for an fragment with the same name
+ result := srcRoot.packageFragments -> select( fragment | self.packageName=fragment.elementName)-> asSequence()-> first();
+
+ if( result.oclIsUndefined()) then {
+ log("create fragment " + self.packageName );
+ }
+ else {
+ log("reuse fragment '" + result.elementName + "'' for gendata " + self.show() );
+ } endif;
+
+ // Ideally, we should return here. But this is not allowed in this qvt version
+ // return;
+ }
+
+ // Initialize our object if it is not already done
+ if( packageFragmentRoot.oclIsUndefined() ) then {
+
+ // Try one of the end of the relation. Some QVT implementation fail on the first end,
+ // So use the second. (In any cases, we should only affect one end, EMF will do the second end)
+ // packageFragmentRoot := srcRoot; // self.map typeMarkerToPackageFragmentRoot();
+ srcRoot.packageFragments += result;
+ elementName := self.packageName;
+
+ // Get the isGenerated Flag
+ // Need to know the flag that has been set in the corresponding package.
+ // But here, we only got the genData associated to the CompilationUnit, so we
+ // can't know the flag value.
+ // TODO: improve the algorithm to be able to get the package's flag value
+ // actually, always set it to true
+ generated := true;
+
+/*
+ // if package is generated=false, put generated=false for the children's package
+ if(generated = false) then {
+ log("c'est false");
+ srcRoot.packageFragments->forEach(pack) {
+ log("**********************"+pack.elementName, pack.elementName.indexOf(elementName));
+ if (pack.elementName.indexOf(elementName) != -1) then {
+ pack.generated := false;
+ log("************************ elementName passé à ", generated);
+ } endif;
+ };
+ } endif;
+*/
+ } endif;
+
+}
+
+/**
+ * Get or create the PackageFragmentRoot corresponding to the TypeMarker
+ */
+mapping TypeMarker::typeMarkerToPackageFragmentRoot() : JDTPackageFragmentRoot {
+
+ init {
+ // Check if the fragment already exist
+
+ // First, lookup corresponding project
+ var project:JDTJavaProject := self.map typeMarkerToJavaProject();
+
+ // Second, lookup in project for an srcRoot with the same name
+ result := project.packageFragmentRoots -> select( srcRoot | self.srcName=srcRoot.elementName)-> asSequence()-> first();
+
+ if( result.oclIsUndefined()) then {
+ log("create PackageFragmentRoot " + self.srcName );
+ }
+ else {
+ log("reuse PackageFragmentRoot '" + result.elementName + "' for gendata " + self.show() );
+ } endif;
+
+
+ // Ideally, we should return here. But this is not allowed in this qvt version
+ // return;
+ }
+
+ // Initialize our object if it is not already done
+ if( javaProject.oclIsUndefined() ) then {
+ javaProject := project; // self.map typeMarkerToJavaProject();
+ elementName := self.srcName;
+ // Get the isGenerated Flag
+ // Need to know the flag that has been set in the corresponding package.
+ // But here, we only got the genData associated to the CompilationUnit, so we
+ // can't know the flag value.
+ // TODO: improve the algorithm to be able to get the package's flag value
+ // actually, always set it to true
+ generated := true;
+ } endif;
+}
+
+/**
+ * Get or create the PackageJavaProject corresponding to the TypeMarker
+ */
+mapping TypeMarker::typeMarkerToJavaProject() : JDTJavaProject {
+
+ init {
+ // Lookup if there is a Project already created for this projectName
+ // resolveIn return a list of object created with the specified mapping rule
+ // Then, we loukup in the list for an element with the requested name.
+ result := resolveIn(TypeMarker::typeMarkerToJavaProject)
+ ->select( project | self.projectName=project.oclAsType(JDTJavaProject).elementName)->first().oclAsType(JDTJavaProject);
+
+
+ if( result.oclIsUndefined()) then {
+ log("create project " + self.projectName );
+ }
+ else {
+ log("reuse project '" + result.elementName + "'' for gendata " + self.show() );
+ } endif;
+
+
+ // Ideally, we should return here. But this is not allowed in this qvt version
+ // return;
+ }
+
+ // Initialize our object if it is not already done
+ if( javaModel.oclIsUndefined() ) then {
+ javaModel := map createOrRetrieveJavaModel();
+ elementName := self.projectName;
+ // Get the isGenerated Flag
+ // Need to know the flag that has been set in the corresponding package.
+ // But here, we only got the genData associated to the CompilationUnit, so we
+ // can't know the flag value.
+ // TODO: improve the algorithm to be able to get the package's flag value
+ // actually, always set it to true
+ generated := true;
+ } endif;
+}
+
+/**
+ *
+ */
+mapping createOrRetrieveJavaModel () : JDTJavaModel {
+init {
+ // result := resolveoneIn(createOrRetrieveJavaModel).oclAsType(JDTJavaModel);
+// if not result.oclIsUndefined() then{ return c; }endif;
+}
+ generated := true;
+ elementName := "JavaModel";
+}
+
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/.classpath b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/.classpath
new file mode 100644
index 00000000000..8a8f1668cdc
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/.project b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/.project
new file mode 100644
index 00000000000..4f0ff984c7b
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.java.generator.ui</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/.settings/org.eclipse.jdt.core.prefs b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..94d61f00da6
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,291 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=260
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=false
+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=260
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=5
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/.settings/org.eclipse.jdt.ui.prefs b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 00000000000..954281dbc31
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,68 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_functional_interfaces=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=false
+cleanup.format_source_code=false
+cleanup.format_source_code_changes_only=false
+cleanup.insert_inferred_type_arguments=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=false
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_redundant_type_arguments=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_anonymous_class_creation=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_lambda=true
+cleanup.use_parentheses_in_expressions=false
+cleanup.use_this_for_non_static_field_access=false
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=false
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_type_arguments=false
+cleanup_profile=_Papyrus
+cleanup_settings_version=2
+eclipse.preferences.version=1
+formatter_profile=_Papyrus
+formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * Constructor.\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*****************************************************************************\n * Copyright (c) ${year} CEA LIST and others.\n * \n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n * CEA LIST - Initial API and implementation\n * \n *****************************************************************************/\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\n * ${see_to_overridden}\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${see_to_target}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/META-INF/MANIFEST.MF b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..b5234389f4e
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,21 @@
+Manifest-Version: 1.0
+Export-Package: org.eclipse.papyrus.java.generator.ui
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.emf.ecore,
+ org.eclipse.uml2.uml,
+ org.eclipse.ui.ide,
+ org.eclipse.core.resources;bundle-version="3.6.0",
+ org.eclipse.papyrus.java.generator.metamodel.jdt;bundle-version="1.2.0",
+ org.eclipse.jdt.core,
+ org.eclipse.jdt.ui,
+ org.eclipse.papyrus.java.generator.jdtsynchronizer;bundle-version="1.2.0"
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-Version: 1.2.0.qualifier
+Bundle-Localization: plugin
+Bundle-Name: %pluginName
+Bundle-Activator: org.eclipse.papyrus.java.generator.ui.Activator
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.java.generator.ui;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/about.html b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/about.html
new file mode 100644
index 00000000000..82d49bf5f81
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/build.properties b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/build.properties
new file mode 100644
index 00000000000..7915e442db0
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/build.properties
@@ -0,0 +1,9 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ icons/,\
+ about.html,\
+ plugin.properties
+src.includes = about.html
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/icons/generate.psd b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/icons/generate.psd
new file mode 100644
index 00000000000..9a555a938e1
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/icons/generate.psd
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/icons/generation.png b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/icons/generation.png
new file mode 100644
index 00000000000..6a55c438352
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/icons/generation.png
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/icons/sample.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/icons/sample.gif
new file mode 100644
index 00000000000..34fb3c9d8cb
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/icons/sample.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/plugin.properties b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/plugin.properties
new file mode 100644
index 00000000000..c561698838c
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/plugin.properties
@@ -0,0 +1,19 @@
+
+#################################################################################
+# Copyright (c) 2011 Nicolas Deblock & Manuel Giles.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Nicolas Deblock nico.deblock@gmail.com - Initial API and implementation
+# Manuel Giles giles.manu@live.fr - Initial API and implementation
+# Cedric Dumoulin Cedric.dumoulin@lifl.fr - Initial API
+#
+#################################################################################
+
+
+pluginName=Papyrus Java Classes Generator UI (Incubation)
+providerName=Eclipse Modeling Project
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/plugin.xml b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/plugin.xml
new file mode 100644
index 00000000000..4a4fdf7e6a6
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/plugin.xml
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.papyrus.java.generator.ui.handlers.GenerateJavaCodeHandler"
+ commandId="org.eclipse.papyrus.java.generator.ui.generateCodeCommand">
+ </handler>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ description="Generate Java code from selected element"
+ id="org.eclipse.papyrus.java.generator.ui.generateCodeCommand"
+ name="Generate Java Code">
+ </command>
+ </extension>
+ <extension
+ point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="toolbar:org.eclipse.ui.main.toolbar">
+ <toolbar
+ id="org.eclipse.papyrus.generator.ui.toolbar">
+ <command
+ commandId="org.eclipse.papyrus.java.generator.ui.generateCodeCommand"
+ icon="icons/generation.png"
+ label="Generate Java Code"
+ style="push"
+ tooltip="Generate Java code from selected element">
+ </command>
+ </toolbar>
+ </menuContribution>
+ <menuContribution
+ locationURI="menu:org.eclipse.papyrus.ui.menu">
+ <menu
+ id="org.eclipse.papyrus.java.ui.menu"
+ label="Java">
+ <command
+ commandId="org.eclipse.papyrus.java.generator.ui.generateCodeCommand"
+ icon="icons/generation.png"
+ style="push">
+ </command>
+ </menu>
+ </menuContribution>
+ <menuContribution
+ locationURI="popup:org.eclipse.gmf.runtime.diagram.ui.DiagramEditorContextMenu">
+ <menu
+ id="org.eclipse.papyrus.java.ui.popup.diagram"
+ label="Java">
+ <command
+ commandId="org.eclipse.papyrus.java.generator.ui.generateCodeCommand"
+ icon="icons/generation.png"
+ label="Generate Java Code"
+ style="push">
+ </command>
+ </menu>
+ </menuContribution>
+ <menuContribution
+ locationURI="popup:org.eclipse.papyrus.views.modelexplorer.modelexplorer.popup">
+ <menu
+ id="org.eclipse.papyrus.views.modelexplorer.popup.java"
+ label="Java">
+ <command
+ commandId="org.eclipse.papyrus.java.generator.ui.generateCodeCommand"
+ icon="icons/generation.png"
+ label="Generate Java Code"
+ style="push">
+ </command>
+ </menu>
+ </menuContribution>
+ </extension>
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ category="org.eclipse.papyrus.infra.core.sasheditor.preferences.generalcategory"
+ class="org.eclipse.papyrus.java.generator.ui.preference.PreferencePage"
+ id="org.eclipse.papyrus.java.generator.ui.preference.PreferencePage"
+ name="Java Classes Generation">
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.core.runtime.preferences">
+ <initializer
+ class="org.eclipse.papyrus.java.generator.ui.preference.PreferenceInitializer">
+ </initializer>
+ </extension>
+</plugin>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/pom.xml b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/pom.xml
new file mode 100644
index 00000000000..ac1f67981b8
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.java.generator.ui</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/Activator.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/Activator.java
new file mode 100644
index 00000000000..bf812d8fb4e
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/Activator.java
@@ -0,0 +1,70 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Initial API and implementation
+ * Manuel Giles giles.manu@live.fr - Initial API and implementation
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Idea of the java generator project & help for the conception
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.java.generator.ui;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.java.generator.ui"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/handlers/GenerateJavaCodeHandler.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/handlers/GenerateJavaCodeHandler.java
new file mode 100644
index 00000000000..5adfd0698df
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/handlers/GenerateJavaCodeHandler.java
@@ -0,0 +1,246 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Initial API and implementation
+ * Manuel Giles giles.manu@live.fr - Initial API and implementation
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Idea of the java generator project & help for the conception
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.java.generator.ui.handlers;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.IHandler;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TreeSelection;
+import org.eclipse.papyrus.java.generator.jdtsynchronizer.RunGenerator;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor.JDTVisitorException;
+import org.eclipse.papyrus.java.generator.ui.Activator;
+import org.eclipse.papyrus.java.generator.ui.preference.GeneratorPreferenceImpl;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.uml2.uml.NamedElement;
+
+/**
+ * Handler used to launch Java code generation from a selected UML element.
+ *
+ * @author Cedric dumoulin
+ *
+ */
+public class GenerateJavaCodeHandler extends AbstractHandler implements IHandler {
+
+
+ /**
+ * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+ * @param event
+ * @return
+ * @throws ExecutionException
+ *
+ */
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+
+ // Get selection
+ // Can't be done in the job.
+ List<Object> objects = lookupSelectedElements();
+ // Execute handler
+ doExecute(objects);
+
+ return null;
+ }
+
+ /**
+ * Get the name used in the {@link RecordingCommand}. This name will be visible in
+ * undo/redo.
+ *
+ * @return The command name to show.
+ */
+ public String getCommandName() {
+ return "Generate Java Code";
+ }
+
+ /**
+ * Return a list of selected domain (UML) elements.
+ *
+ * @return
+ */
+ protected List<NamedElement> getSelectedUmlObject() {
+ List<Object> selections = lookupSelectedElements();
+
+ List<NamedElement> results = new ArrayList<NamedElement>();
+
+ // create model with EList<EObject> objects
+ for (Object obj : selections) {
+ // Adapt object to NamedElement
+ NamedElement ele = null;
+ if (obj instanceof IAdaptable) {
+ ele = (NamedElement) ((IAdaptable) obj).getAdapter(NamedElement.class);
+ }
+ if (ele == null) {
+ ele = (NamedElement) Platform.getAdapterManager().getAdapter(obj, NamedElement.class);
+ }
+
+ // Add uml element if found
+ if (ele != null) {
+ results.add(ele);
+ }
+
+ }
+
+ return results;
+ }
+
+ /**
+ * Do the execution of the command.
+ *
+ * @param objects
+ * List of object to generate Java code from.
+ */
+ protected void doExecute(final List<Object> objects) {
+
+ Job job = new Job("Generate java classes ") {
+
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+ // execute the task ...
+
+ try {
+ IStatus status = doExecute(monitor, objects);
+ monitor.done();
+ return status;
+ }
+ catch (Exception e) {
+ return new Status(IStatus.ERROR, Activator.PLUGIN_ID, e.getMessage(), e);
+ }
+ finally {
+
+ }
+
+
+ }
+ };
+
+ job.setUser(true);
+ job.schedule();
+
+ }
+
+ /**
+ * Do the execution of the command.
+ *
+ * @param objects
+ * List of object to generate Java code from.
+ */
+ protected IStatus doExecute(IProgressMonitor monitor, List<Object> objects) {
+ monitor.beginTask("Generate ...", 3);
+
+ // create a EList<EObject> who is the model
+ EList<EObject> model = new BasicEList<EObject>();
+
+ // create model with EList<EObject> objects
+ for (Object obj : objects) {
+ // Adapt object to NamedElement
+ NamedElement ele = null;
+ if (obj instanceof IAdaptable) {
+ ele = (NamedElement) ((IAdaptable) obj).getAdapter(NamedElement.class);
+ }
+ if (ele == null) {
+ ele = (NamedElement) Platform.getAdapterManager().getAdapter(obj, NamedElement.class);
+ }
+
+ // Add uml element if found
+ if (ele != null) {
+ model.add(ele);
+ }
+
+ }
+ monitor.worked(1);
+
+ // recover window
+ // IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+
+ // Check if there is a right selection
+ if (model.size() <= 0) {
+ String msg = "No UML element selected. Please select one or more UML element to generate";
+ // MessageDialog.openInformation(window.getShell(),"No Selection", msg);
+
+ return new Status(IStatus.ERROR, Activator.PLUGIN_ID, msg);
+
+ }
+
+ // error message
+ String message = "";
+
+
+ try {
+ // run code generator
+ RunGenerator runGen = new RunGenerator(model);
+ runGen.runGeneration(new GeneratorPreferenceImpl());
+ } catch (JDTVisitorException e) {
+ // error message
+ StringBuffer stackTrace = new StringBuffer();
+ for (StackTraceElement trace : e.getStackTrace()) {
+ stackTrace.append("at " + trace.getMethodName() + "(" + trace.getClassName() + ":" + trace.getLineNumber() + ")\n");
+ }
+
+ IStatus status = new Status(IStatus.ERROR, Activator.PLUGIN_ID, e.getMessage(), e);
+ // ErrorDialog errDg = new ErrorDialog(window.getShell(), "Error encountered during code generation",
+ // "Error encountered during code generation",
+ // status,
+ // Status.ERROR);
+ // errDg.open();
+ return status;
+ }
+
+ // if(message.isEmpty()) message = "Code generated successfully!";
+
+ monitor.worked(2);
+ // MessageDialog.openInformation(window.getShell(),"Code generation",message);
+
+ return Status.OK_STATUS;
+ }
+
+ /**
+ * Lookup selected objects in UI.
+ *
+ * @return
+ */
+ private List<Object> lookupSelectedElements() {
+ IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+ ISelection selection = page.getSelection();
+ // System.out.println("check " + selection);
+ if (selection instanceof IStructuredSelection)
+ {
+ IStructuredSelection structuredSelection = (IStructuredSelection) selection;
+ return structuredSelection.toList();
+ }
+ else if (selection instanceof TreeSelection) {
+ TreeSelection treeSelection = (TreeSelection) selection;
+ return treeSelection.toList();
+
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/GeneratorPreferenceImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/GeneratorPreferenceImpl.java
new file mode 100644
index 00000000000..4b781af05c2
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/GeneratorPreferenceImpl.java
@@ -0,0 +1,103 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Initial API and implementation
+ * Manuel Giles giles.manu@live.fr - Initial API and implementation
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Idea of the java generator project & help for the conception
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.java.generator.ui.preference;
+
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.papyrus.java.generator.jdtsynchronizer.GeneratorPreference;
+import org.eclipse.papyrus.java.generator.ui.Activator;
+
+public class GeneratorPreferenceImpl implements GeneratorPreference {
+
+ /**
+ * allow to gather default value
+ */
+ private IPreferenceStore store = Activator.getDefault().getPreferenceStore();
+
+
+ @Override
+ public boolean implementMethodsOfIntefaces() {
+ return store.getBoolean(PreferenceConstants.P_IMPLEMENT_METHODS_OF_INTERFACES_AND_ABSTRACT_CLASS);
+ }
+
+ @Override
+ public boolean implementMethodsOfAbstractClass() {
+ return store.getBoolean(PreferenceConstants.P_IMPLEMENT_METHODS_OF_INTERFACES_AND_ABSTRACT_CLASS);
+ }
+
+ @Override
+ public boolean generateGetters() {
+ return store.getBoolean(PreferenceConstants.P_GENERATE_GETTERS);
+ }
+
+ @Override
+ public boolean generateSetters() {
+ return store.getBoolean(PreferenceConstants.P_GENERATE_SETTERS);
+ }
+
+ @Override
+ public boolean isPackageToGenerate(String packageQualifiedName) {
+ if (packageQualifiedName == null || packageQualifiedName.isEmpty()) {
+ return true;
+ }
+
+ // gather list of packages :
+ String listStr = store.getString(PreferenceConstants.P_FILTER_OF_PACKAGE_NOT_TO_GENERATE);
+
+ // if list of package don't exist, return true
+ if (listStr == null || listStr.isEmpty()) {
+ return true;
+ }
+
+ // gather list in a table
+ String[] listPackage = listStr.split(";");
+
+ for (String _package : listPackage) {
+ if (_package.equals(packageQualifiedName)) {
+ return false;
+ }
+
+ // if package have a *, we delete *
+ String packageWithoutStar = _package;
+ if (_package.contains("*")) {
+ packageWithoutStar = _package.substring(0, _package.indexOf("*") - 1);
+ }
+
+ if (packageQualifiedName.contains(packageWithoutStar)) {
+ return false;
+ }
+ }
+
+ // by default, return true
+ return true;
+ }
+
+ @Override
+ public String genericClassForMultiValue() {
+ return store.getString(PreferenceConstants.P_GENERIC_CLASS_FOR_MULTIVALUE);
+ }
+
+ @Override
+ public boolean stopOnFirstError() {
+ return store.getBoolean(PreferenceConstants.P_STOP_ON_FIRST_ERROR);
+ }
+
+ @Override
+ public String defaultSourceFolderName() {
+ return store.getString(PreferenceConstants.P_DEFAULT_SOURCE_FOLDER_NAME);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/GenericClassFieldEditor.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/GenericClassFieldEditor.java
new file mode 100644
index 00000000000..61abda9df3c
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/GenericClassFieldEditor.java
@@ -0,0 +1,69 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Initial API and implementation
+ * Manuel Giles giles.manu@live.fr - Initial API and implementation
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Idea of the java generator project & help for the conception
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.java.generator.ui.preference;
+
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.core.search.IJavaSearchConstants;
+import org.eclipse.jdt.core.search.IJavaSearchScope;
+import org.eclipse.jdt.core.search.SearchEngine;
+import org.eclipse.jdt.internal.core.BinaryType;
+import org.eclipse.jdt.internal.ui.dialogs.FilteredTypesSelectionDialog;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.preference.StringButtonFieldEditor;
+import org.eclipse.swt.widgets.Composite;
+
+
+/**
+ * Used to choice a generic class
+ *
+ * @author DEBLOCK Nicolas and GILES Manuel
+ *
+ */
+public class GenericClassFieldEditor extends StringButtonFieldEditor {
+
+ public GenericClassFieldEditor(String name, String labelText, Composite parent) {
+ super(name, labelText, parent);
+ }
+
+ @Override
+ protected String changePressed() {
+
+ // search scope
+ IJavaSearchScope scope = SearchEngine.createWorkspaceScope();
+ FilteredTypesSelectionDialog d = new FilteredTypesSelectionDialog(getShell(), false, null, scope, IJavaSearchConstants.TYPE);
+ d.open();
+ Object[] pack = d.getResult();
+ BinaryType result = (BinaryType) pack[0];
+ try {
+ // if it's not a generic class, generate a error message
+ if (!(result.getClassFile().getType().getFullyQualifiedParameterizedName().contains("<") && result.getClassFile().getType().getFullyQualifiedParameterizedName().contains(">"))) {
+ String errorMessage = "Erreur : " + result.getElementName() + " is not a generic class";
+ MessageDialog.openError(getShell(), "Error", errorMessage);
+ return getStringValue();
+ }
+ } catch (JavaModelException e) {
+ e.printStackTrace();
+ String errorMessage = "Erreur : " + e.getMessage();
+ MessageDialog.openError(getShell(), "Error", errorMessage);
+ }
+
+
+ return result.getPackageFragment().getElementName() + "." + result.getElementName();
+ }
+
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/PackageListEditor.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/PackageListEditor.java
new file mode 100644
index 00000000000..20c81ae56e7
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/PackageListEditor.java
@@ -0,0 +1,87 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Initial API and implementation
+ * Manuel Giles giles.manu@live.fr - Initial API and implementation
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Idea of the java generator project & help for the conception
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.java.generator.ui.preference;
+
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.jdt.internal.ui.preferences.TypeFilterInputDialog;
+import org.eclipse.jface.preference.ListEditor;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ *
+ * Used to select packages from the dialog.
+ *
+ * @author DEBLOCK Nicolas and GILES Manuel
+ */
+public class PackageListEditor extends ListEditor {
+
+ /**
+ * Constructor.
+ *
+ * @param name
+ * @param labelText
+ * @param parent
+ */
+ PackageListEditor(String name, String labelText, Composite parent) {
+ super(name, labelText, parent);
+ }
+
+ @Override
+ /**
+ * Functionality for New button.
+ * Shows a browser dialog to select a file and returns that file.
+ */
+ protected String getNewInputObject() {
+ // Dialog p = new JDialog();
+ List<String> l = new LinkedList<String>();
+
+
+ TypeFilterInputDialog d = new TypeFilterInputDialog(getShell(), l);
+ d.open();
+ Object pack = d.getResult();
+
+ // Return null if user clicked on "cancel" button, to not add ampty package on the list
+ if (d.getReturnCode() == Window.CANCEL) {
+ return null;
+ }
+ return pack.toString();
+ }
+
+ @Override
+ protected String createList(String[] items) {
+ StringBuffer str = new StringBuffer();
+ for (String item : items) {
+ str.append(item + ";");
+ }
+ return str.toString();
+ }
+
+ /*
+ * (non-Javadoc)
+ * initialize list of items
+ *
+ * @see org.eclipse.jface.preference.ListEditor#parseString(java.lang.String)
+ */
+ @Override
+ protected String[] parseString(String stringList) {
+ return stringList.split(";");
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/PreferenceConstants.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/PreferenceConstants.java
new file mode 100644
index 00000000000..674c6f07c68
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/PreferenceConstants.java
@@ -0,0 +1,41 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Initial API and implementation
+ * Manuel Giles giles.manu@live.fr - Initial API and implementation
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Idea of the java generator project & help for the conception
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.java.generator.ui.preference;
+
+/**
+ * Constant definitions for plug-in preferences
+ */
+public class PreferenceConstants {
+
+ public static final String P_PREFERENCE_ID = "org.eclipse.papyrus.java.generator.ui.preference.PreferencePage";
+
+ public static final String P_IMPLEMENT_METHODS_OF_INTERFACES_AND_ABSTRACT_CLASS = "implementsMethosOfIntefacesAndAbstractClass";
+
+ public static final String P_GENERATE_GETTERS = "generateGetter";
+
+ public static final String P_GENERATE_SETTERS = "generateSetter";
+
+ public static final String P_FILTER_OF_PACKAGE_NOT_TO_GENERATE = "filterOfPackageNotToGenerate";
+
+ public static final String P_GENERIC_CLASS_FOR_MULTIVALUE = "genericClassForMultiValue";
+
+ public static final String P_STOP_ON_FIRST_ERROR = "stopOnFirstError";
+
+ public static final String P_DEFAULT_SOURCE_FOLDER_NAME = "defaultSourceFolderName";
+
+ public static final String LABEL_DEFAULT_SOURCE_FOLDER_NAME = "Default source folder name";
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/PreferenceInitializer.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/PreferenceInitializer.java
new file mode 100644
index 00000000000..5bbb763db45
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/PreferenceInitializer.java
@@ -0,0 +1,47 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Initial API and implementation
+ * Manuel Giles giles.manu@live.fr - Initial API and implementation
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Idea of the java generator project & help for the conception
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.java.generator.ui.preference;
+
+import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.papyrus.java.generator.ui.Activator;
+
+
+/**
+ * Class used to initialize default preference values.
+ */
+public class PreferenceInitializer extends AbstractPreferenceInitializer {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
+ */
+ @Override
+ public void initializeDefaultPreferences() {
+ IPreferenceStore store = Activator.getDefault().getPreferenceStore();
+
+ store.setDefault(PreferenceConstants.P_IMPLEMENT_METHODS_OF_INTERFACES_AND_ABSTRACT_CLASS, true);
+ store.setDefault(PreferenceConstants.P_GENERATE_GETTERS, true);
+ store.setDefault(PreferenceConstants.P_GENERATE_SETTERS, true);
+ store.setDefault(PreferenceConstants.P_FILTER_OF_PACKAGE_NOT_TO_GENERATE, "java.*;javax.*");
+ store.setDefault(PreferenceConstants.P_GENERIC_CLASS_FOR_MULTIVALUE, "java.util.List");
+ store.setDefault(PreferenceConstants.P_STOP_ON_FIRST_ERROR, true);
+ store.setDefault(PreferenceConstants.P_DEFAULT_SOURCE_FOLDER_NAME, "src");
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/PreferencePage.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/PreferencePage.java
new file mode 100644
index 00000000000..626d3a8f871
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/PreferencePage.java
@@ -0,0 +1,109 @@
+/*****************************************************************************
+ * Copyright (c) 2011 Nicolas Deblock & Manuel Giles.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Deblock nico.deblock@gmail.com - Initial API and implementation
+ * Manuel Giles giles.manu@live.fr - Initial API and implementation
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Idea of the java generator project & help for the conception
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.java.generator.ui.preference;
+
+import org.eclipse.jface.preference.BooleanFieldEditor;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.papyrus.java.generator.ui.Activator;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+
+/**
+ * This class represents a preference page that
+ * is contributed to the Preferences dialog. By
+ * subclassing <samp>FieldEditorPreferencePage</samp>, we
+ * can use the field support built into JFace that allows
+ * us to create a page that is small and knows how to
+ * save, restore and apply itself.
+ * <p>
+ * This page is used to modify preferences only. They are stored in the preference store that belongs to the main plug-in class. That way, preferences can be accessed directly via the preference store.
+ */
+
+public class PreferencePage
+ extends FieldEditorPreferencePage
+ implements IWorkbenchPreferencePage {
+
+ public PreferencePage() {
+ super(GRID);
+ }
+
+ /**
+ * Creates the field editors. Field editors are abstractions of
+ * the common GUI blocks needed to manipulate various types
+ * of preferences. Each field editor knows how to save and
+ * restore itself.
+ */
+ @Override
+ public void createFieldEditors() {
+
+ // implements methods of inherits interfaces and abstract class
+ addField(new BooleanFieldEditor(
+ PreferenceConstants.P_STOP_ON_FIRST_ERROR,
+ "Stop on first error",
+ getFieldEditorParent()));
+
+ // implements methods of inherits interfaces and abstract class
+ addField(new BooleanFieldEditor(
+ PreferenceConstants.P_IMPLEMENT_METHODS_OF_INTERFACES_AND_ABSTRACT_CLASS,
+ "Implement methods of inherits interfaces and abstract class",
+ getFieldEditorParent()));
+
+
+ // generate getters setters
+ addField(new BooleanFieldEditor(
+ PreferenceConstants.P_GENERATE_GETTERS,
+ "Generate getters",
+ getFieldEditorParent()));
+
+ addField(new BooleanFieldEditor(
+ PreferenceConstants.P_GENERATE_SETTERS,
+ "Generate setters",
+ getFieldEditorParent()));
+
+ // filter of package not to generate
+ addField(new PackageListEditor(
+ PreferenceConstants.P_FILTER_OF_PACKAGE_NOT_TO_GENERATE,
+ "Filter of package to not generate",
+ getFieldEditorParent()));
+
+ addField(new GenericClassFieldEditor(
+ PreferenceConstants.P_GENERIC_CLASS_FOR_MULTIVALUE,
+ "Generic class to use for association * ",
+ getFieldEditorParent()));
+
+
+ // text input field for the default source folder name
+ addField(new GenericClassFieldEditor(
+ PreferenceConstants.P_DEFAULT_SOURCE_FOLDER_NAME,
+ PreferenceConstants.LABEL_DEFAULT_SOURCE_FOLDER_NAME,
+ getFieldEditorParent()));
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+ */
+ @Override
+ public void init(IWorkbench workbench) {
+ setPreferenceStore(Activator.getDefault().getPreferenceStore());
+ setDescription("Edit your preferences to generate Java classes with papyrus");
+ }
+
+
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/.classpath b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/.classpath
new file mode 100644
index 00000000000..ad32c83a788
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/.project b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/.project
new file mode 100644
index 00000000000..f1c67ae603d
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.java.profile.edit</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/.settings/org.eclipse.jdt.core.prefs b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..94d61f00da6
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,291 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=260
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=false
+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=260
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=5
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/.settings/org.eclipse.jdt.ui.prefs b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 00000000000..954281dbc31
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,68 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_functional_interfaces=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=false
+cleanup.format_source_code=false
+cleanup.format_source_code_changes_only=false
+cleanup.insert_inferred_type_arguments=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=false
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_redundant_type_arguments=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_anonymous_class_creation=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_lambda=true
+cleanup.use_parentheses_in_expressions=false
+cleanup.use_this_for_non_static_field_access=false
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=false
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_type_arguments=false
+cleanup_profile=_Papyrus
+cleanup_settings_version=2
+eclipse.preferences.version=1
+formatter_profile=_Papyrus
+formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * Constructor.\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*****************************************************************************\n * Copyright (c) ${year} CEA LIST and others.\n * \n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n * CEA LIST - Initial API and implementation\n * \n *****************************************************************************/\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\n * ${see_to_overridden}\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${see_to_target}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/META-INF/MANIFEST.MF b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..e2c700d5d7d
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.papyrus.java.profile;bundle-version="1.2.0";visibility:=reexport,
+ org.eclipse.uml2.uml.edit;visibility:=reexport,
+ org.eclipse.core.runtime
+Export-Package: org.eclipse.papyrus.java.profile.java.provider
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-ClassPath: .
+Bundle-Version: 1.2.0.qualifier
+Bundle-Localization: plugin
+Bundle-Name: %pluginName
+Bundle-Activator: org.eclipse.papyrus.java.profile.java.provider.JavaEditPlugin$Implementation
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.java.profile.edit;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/about.html b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/about.html
new file mode 100644
index 00000000000..82d49bf5f81
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/build.properties b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/build.properties
new file mode 100644
index 00000000000..890b147293b
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/build.properties
@@ -0,0 +1,16 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+bin.includes = .,\
+ icons/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties,\
+ about.html
+jars.compile.order = .
+source.. = src/
+output.. = bin/
+src.includes = about.html
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/JavaClass.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/JavaClass.gif
new file mode 100644
index 00000000000..134551bff7e
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/JavaClass.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/JavaMethod.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/JavaMethod.gif
new file mode 100644
index 00000000000..b3643da048a
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/JavaMethod.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/JavaPackage_.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/JavaPackage_.gif
new file mode 100644
index 00000000000..e4b530eca17
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/JavaPackage_.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/JavaParameter.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/JavaParameter.gif
new file mode 100644
index 00000000000..10d222998af
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/JavaParameter.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/JavaProject.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/JavaProject.gif
new file mode 100644
index 00000000000..badaab0664a
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/JavaProject.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/JavaProperty.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/JavaProperty.gif
new file mode 100644
index 00000000000..33854e98c25
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/JavaProperty.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/JavaSrcFolder.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/JavaSrcFolder.gif
new file mode 100644
index 00000000000..98b351f1c44
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/JavaSrcFolder.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/PrimitiveType.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/PrimitiveType.gif
new file mode 100644
index 00000000000..35ef84e20e2
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/PrimitiveType.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/plugin.properties b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/plugin.properties
new file mode 100644
index 00000000000..dfb7e79f433
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/plugin.properties
@@ -0,0 +1,86 @@
+
+
+#################################################################################
+# Copyright (c) 2011-2013 Cedric Dumoulin.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Cedric Dumoulin Cedric.dumoulin@lifl.fr - Initial API
+#
+#################################################################################
+
+pluginName = Profile for Java classes generation Edit Support (Incubation)
+providerName = Eclipse Modeling Project
+
+_UI_CreateChild_text = {0}
+_UI_CreateChild_text2 = {1} {0}
+_UI_CreateChild_text3 = {1}
+_UI_CreateChild_tooltip = Create New {0} Under {1} Feature
+_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}.
+_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent.
+
+_UI_PropertyDescriptor_description = The {0} of the {1}
+
+_UI_JavaClass_type = Class
+_UI_JavaGen_type = Gen
+_UI_JavaNamedElement_type = Named Element
+_UI_JavaPackage__type = Package
+_UI_JavaMethod_type = Method
+_UI_JavaParameter_type = Parameter
+_UI_JavaProperty_type = Property
+_UI_PrimitiveType_type = Primitive Type
+_UI_JavaProject_type = Project
+_UI_JavaSrcFolder_type = Src Folder
+_UI_Unknown_type = Object
+
+_UI_Unknown_datatype= Value
+
+_UI_JavaClass_base_Classifier_feature = Base Classifier
+_UI_JavaClass_isFinal_feature = Is Final
+_UI_JavaClass_isAbstract_feature = Is Abstract
+_UI_JavaClass_isStatic_feature = Is Static
+_UI_JavaGen_srcName_feature = Src Name
+_UI_JavaGen_projectName_feature = Project Name
+_UI_JavaNamedElement_name_feature = Name
+_UI_JavaNamedElement_author_feature = Author
+_UI_JavaNamedElement_version_feature = Version
+_UI_JavaNamedElement_comment_feature = Comment
+_UI_JavaNamedElement_isGenerated_feature = Is Generated
+_UI_JavaPackage__packageName_feature = Package Name
+_UI_JavaPackage__base_Package_feature = Base Package
+_UI_JavaMethod_isStatic_feature = Is Static
+_UI_JavaMethod_isFinal_feature = Is Final
+_UI_JavaMethod_isAbstract_feature = Is Abstract
+_UI_JavaMethod_isNative_feature = Is Native
+_UI_JavaMethod_isSynchronized_feature = Is Synchronized
+_UI_JavaMethod_isConstructor_feature = Is Constructor
+_UI_JavaMethod_base_Operation_feature = Base Operation
+_UI_JavaParameter_isFinal_feature = Is Final
+_UI_JavaParameter_base_Parameter_feature = Base Parameter
+_UI_JavaProperty_isAbstract_feature = Is Abstract
+_UI_JavaProperty_isFinal_feature = Is Final
+_UI_JavaProperty_base_Property_feature = Base Property
+_UI_JavaProperty_isTransient_feature = Is Transient
+_UI_JavaProperty_generateGetter_feature = Generate Getter
+_UI_JavaProperty_generateSetter_feature = Generate Setter
+_UI_JavaProperty_isStatic_feature = Is Static
+_UI_PrimitiveType_implementationClass_feature = Implementation Class
+_UI_PrimitiveType_base_PrimitiveType_feature = Base Primitive Type
+_UI_JavaProject_base_Package_feature = Base Package
+_UI_JavaSrcFolder_base_Package_feature = Base Package
+_UI_Unknown_feature = Unspecified
+
+_UI_TrueFalseDefault_true_literal = true
+_UI_TrueFalseDefault_false_literal = false
+_UI_TrueFalseDefault_default_literal = default
+_UI_PrimitiveType_collectionImplementationClass_feature = Collection Implementation Class
+_UI_JavaClass_explicitPlainTextRequiredImports_feature = Explicit Plain Text Required Imports
+_UI_JavaClass_explicitRequiredImports_feature = Explicit Required Imports
+_UI_JavaMethod_explicitPlainTextRequiredImports_feature = Explicit Plain Text Required Imports
+_UI_JavaProperty_explicitPlainTextRequiredImports_feature = Explicit Plain Text Required Imports
+_UI_JavaMethod_explicitRequiredImports_feature = Explicit Required Imports
+_UI_JavaProperty_explicitRequiredImports_feature = Explicit Required Imports
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/plugin.xml b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/plugin.xml
new file mode 100644
index 00000000000..24301c02945
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/plugin.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ <copyright>
+ </copyright>
+
+ $Id$
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+ <factory
+ uri="http://www.eclipse.org/papyrus/JAVA/1"
+ class="org.eclipse.papyrus.java.profile.java.provider.JavaItemProviderAdapterFactory"
+ supportedTypes=
+ "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+ org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+ org.eclipse.emf.edit.provider.ITreeItemContentProvider
+ org.eclipse.emf.edit.provider.IItemLabelProvider
+ org.eclipse.emf.edit.provider.IItemPropertySource"/>
+ </extension>
+
+</plugin>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/pom.xml b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/pom.xml
new file mode 100644
index 00000000000..6e00e35bf8c
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.java.profile.edit</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaClassItemProvider.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaClassItemProvider.java
new file mode 100644
index 00000000000..5bc9f8a6b1b
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaClassItemProvider.java
@@ -0,0 +1,276 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.papyrus.java.profile.java.JavaClass;
+import org.eclipse.papyrus.java.profile.java.JavaPackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.java.profile.java.JavaClass} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JavaClassItemProvider
+ extends JavaGenItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JavaClassItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addBase_ClassifierPropertyDescriptor(object);
+ addIsFinalPropertyDescriptor(object);
+ addIsAbstractPropertyDescriptor(object);
+ addIsStaticPropertyDescriptor(object);
+ addExplicitPlainTextRequiredImportsPropertyDescriptor(object);
+ addExplicitRequiredImportsPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Base Classifier feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addBase_ClassifierPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaClass_base_Classifier_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaClass_base_Classifier_feature", "_UI_JavaClass_type"),
+ JavaPackage.Literals.JAVA_CLASS__BASE_CLASSIFIER,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Is Final feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addIsFinalPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaClass_isFinal_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaClass_isFinal_feature", "_UI_JavaClass_type"),
+ JavaPackage.Literals.JAVA_CLASS__IS_FINAL,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Is Abstract feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addIsAbstractPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaClass_isAbstract_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaClass_isAbstract_feature", "_UI_JavaClass_type"),
+ JavaPackage.Literals.JAVA_CLASS__IS_ABSTRACT,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Is Static feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addIsStaticPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaClass_isStatic_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaClass_isStatic_feature", "_UI_JavaClass_type"),
+ JavaPackage.Literals.JAVA_CLASS__IS_STATIC,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Explicit Plain Text Required Imports feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addExplicitPlainTextRequiredImportsPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaClass_explicitPlainTextRequiredImports_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaClass_explicitPlainTextRequiredImports_feature", "_UI_JavaClass_type"),
+ JavaPackage.Literals.JAVA_CLASS__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Explicit Required Imports feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addExplicitRequiredImportsPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaClass_explicitRequiredImports_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaClass_explicitRequiredImports_feature", "_UI_JavaClass_type"),
+ JavaPackage.Literals.JAVA_CLASS__EXPLICIT_REQUIRED_IMPORTS,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns JavaClass.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/JavaClass"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((JavaClass) object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_JavaClass_type") :
+ getString("_UI_JavaClass_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(JavaClass.class)) {
+ case JavaPackage.JAVA_CLASS__IS_FINAL:
+ case JavaPackage.JAVA_CLASS__IS_ABSTRACT:
+ case JavaPackage.JAVA_CLASS__IS_STATIC:
+ case JavaPackage.JAVA_CLASS__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaEditPlugin.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaEditPlugin.java
new file mode 100644
index 00000000000..f0cbef55544
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaEditPlugin.java
@@ -0,0 +1,103 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java.provider;
+
+import org.eclipse.emf.common.EMFPlugin;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.provider.EcoreEditPlugin;
+import org.eclipse.uml2.uml.edit.UMLEditPlugin;
+
+/**
+ * This is the central singleton for the Java edit plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public final class JavaEditPlugin extends EMFPlugin {
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static final JavaEditPlugin INSTANCE = new JavaEditPlugin();
+
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private static Implementation plugin;
+
+ /**
+ * Create the instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JavaEditPlugin() {
+ super(new ResourceLocator[] {
+ UMLEditPlugin.INSTANCE,
+ EcoreEditPlugin.INSTANCE,
+ });
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the singleton instance.
+ * @generated
+ */
+ @Override
+ public ResourceLocator getPluginResourceLocator() {
+ return plugin;
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the singleton instance.
+ * @generated
+ */
+ public static Implementation getPlugin() {
+ return plugin;
+ }
+
+ /**
+ * The actual implementation of the Eclipse <b>Plugin</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static class Implementation extends EclipsePlugin {
+ /**
+ * Creates an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Implementation() {
+ super();
+
+ // Remember the static instance.
+ //
+ plugin = this;
+ }
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaGenItemProvider.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaGenItemProvider.java
new file mode 100644
index 00000000000..b17fd0fa212
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaGenItemProvider.java
@@ -0,0 +1,166 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.papyrus.java.profile.java.JavaGen;
+import org.eclipse.papyrus.java.profile.java.JavaPackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.java.profile.java.JavaGen} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JavaGenItemProvider
+ extends JavaNamedElementItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JavaGenItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addSrcNamePropertyDescriptor(object);
+ addProjectNamePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Src Name feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addSrcNamePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaGen_srcName_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaGen_srcName_feature", "_UI_JavaGen_type"),
+ JavaPackage.Literals.JAVA_GEN__SRC_NAME,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Project Name feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addProjectNamePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaGen_projectName_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaGen_projectName_feature", "_UI_JavaGen_type"),
+ JavaPackage.Literals.JAVA_GEN__PROJECT_NAME,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((JavaGen) object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_JavaGen_type") :
+ getString("_UI_JavaGen_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(JavaGen.class)) {
+ case JavaPackage.JAVA_GEN__SRC_NAME:
+ case JavaPackage.JAVA_GEN__PROJECT_NAME:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaItemProviderAdapterFactory.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaItemProviderAdapterFactory.java
new file mode 100644
index 00000000000..9b126fc37ee
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaItemProviderAdapterFactory.java
@@ -0,0 +1,421 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IDisposable;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.papyrus.java.profile.java.util.JavaAdapterFactory;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JavaItemProviderAdapterFactory extends JavaAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable {
+ /**
+ * This keeps track of the root adapter factory that delegates to this adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ComposedAdapterFactory parentAdapterFactory;
+
+ /**
+ * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+ /**
+ * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Collection<Object> supportedTypes = new ArrayList<Object>();
+
+ /**
+ * This constructs an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JavaItemProviderAdapterFactory() {
+ supportedTypes.add(IEditingDomainItemProvider.class);
+ supportedTypes.add(IStructuredItemContentProvider.class);
+ supportedTypes.add(ITreeItemContentProvider.class);
+ supportedTypes.add(IItemLabelProvider.class);
+ supportedTypes.add(IItemPropertySource.class);
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.java.profile.java.JavaClass} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JavaClassItemProvider javaClassItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.java.profile.java.JavaClass}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Adapter createJavaClassAdapter() {
+ if (javaClassItemProvider == null) {
+ javaClassItemProvider = new JavaClassItemProvider(this);
+ }
+
+ return javaClassItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.java.profile.java.JavaPackage_} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JavaPackage_ItemProvider javaPackage_ItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.java.profile.java.JavaPackage_}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Adapter createJavaPackage_Adapter() {
+ if (javaPackage_ItemProvider == null) {
+ javaPackage_ItemProvider = new JavaPackage_ItemProvider(this);
+ }
+
+ return javaPackage_ItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.java.profile.java.JavaMethod} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JavaMethodItemProvider javaMethodItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.java.profile.java.JavaMethod}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Adapter createJavaMethodAdapter() {
+ if (javaMethodItemProvider == null) {
+ javaMethodItemProvider = new JavaMethodItemProvider(this);
+ }
+
+ return javaMethodItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.java.profile.java.JavaParameter} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JavaParameterItemProvider javaParameterItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.java.profile.java.JavaParameter}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Adapter createJavaParameterAdapter() {
+ if (javaParameterItemProvider == null) {
+ javaParameterItemProvider = new JavaParameterItemProvider(this);
+ }
+
+ return javaParameterItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.java.profile.java.JavaProperty} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JavaPropertyItemProvider javaPropertyItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.java.profile.java.JavaProperty}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Adapter createJavaPropertyAdapter() {
+ if (javaPropertyItemProvider == null) {
+ javaPropertyItemProvider = new JavaPropertyItemProvider(this);
+ }
+
+ return javaPropertyItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.java.profile.java.PrimitiveType} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected PrimitiveTypeItemProvider primitiveTypeItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.java.profile.java.PrimitiveType}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Adapter createPrimitiveTypeAdapter() {
+ if (primitiveTypeItemProvider == null) {
+ primitiveTypeItemProvider = new PrimitiveTypeItemProvider(this);
+ }
+
+ return primitiveTypeItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.java.profile.java.JavaProject} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JavaProjectItemProvider javaProjectItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.java.profile.java.JavaProject}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Adapter createJavaProjectAdapter() {
+ if (javaProjectItemProvider == null) {
+ javaProjectItemProvider = new JavaProjectItemProvider(this);
+ }
+
+ return javaProjectItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.java.profile.java.JavaSrcFolder} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JavaSrcFolderItemProvider javaSrcFolderItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.java.profile.java.JavaSrcFolder}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Adapter createJavaSrcFolderAdapter() {
+ if (javaSrcFolderItemProvider == null) {
+ javaSrcFolderItemProvider = new JavaSrcFolderItemProvider(this);
+ }
+
+ return javaSrcFolderItemProvider;
+ }
+
+ /**
+ * This returns the root adapter factory that contains this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public ComposeableAdapterFactory getRootAdapterFactory() {
+ return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+ }
+
+ /**
+ * This sets the composed adapter factory that contains this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
+ this.parentAdapterFactory = parentAdapterFactory;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object type) {
+ return supportedTypes.contains(type) || super.isFactoryForType(type);
+ }
+
+ /**
+ * This implementation substitutes the factory itself as the key for the adapter.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Adapter adapt(Notifier notifier, Object type) {
+ return super.adapt(notifier, this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object adapt(Object object, Object type) {
+ if (isFactoryForType(type)) {
+ Object adapter = super.adapt(object, type);
+ if (!(type instanceof Class<?>) || (((Class<?>) type).isInstance(adapter))) {
+ return adapter;
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * This adds a listener.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void addListener(INotifyChangedListener notifyChangedListener) {
+ changeNotifier.addListener(notifyChangedListener);
+ }
+
+ /**
+ * This removes a listener.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void removeListener(INotifyChangedListener notifyChangedListener) {
+ changeNotifier.removeListener(notifyChangedListener);
+ }
+
+ /**
+ * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void fireNotifyChanged(Notification notification) {
+ changeNotifier.fireNotifyChanged(notification);
+
+ if (parentAdapterFactory != null) {
+ parentAdapterFactory.fireNotifyChanged(notification);
+ }
+ }
+
+ /**
+ * This disposes all of the item providers created by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void dispose() {
+ if (javaClassItemProvider != null) {
+ javaClassItemProvider.dispose();
+ }
+ if (javaPackage_ItemProvider != null) {
+ javaPackage_ItemProvider.dispose();
+ }
+ if (javaMethodItemProvider != null) {
+ javaMethodItemProvider.dispose();
+ }
+ if (javaParameterItemProvider != null) {
+ javaParameterItemProvider.dispose();
+ }
+ if (javaPropertyItemProvider != null) {
+ javaPropertyItemProvider.dispose();
+ }
+ if (primitiveTypeItemProvider != null) {
+ primitiveTypeItemProvider.dispose();
+ }
+ if (javaProjectItemProvider != null) {
+ javaProjectItemProvider.dispose();
+ }
+ if (javaSrcFolderItemProvider != null) {
+ javaSrcFolderItemProvider.dispose();
+ }
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaMethodItemProvider.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaMethodItemProvider.java
new file mode 100644
index 00000000000..c30e779e6aa
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaMethodItemProvider.java
@@ -0,0 +1,351 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.papyrus.java.profile.java.JavaMethod;
+import org.eclipse.papyrus.java.profile.java.JavaPackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.java.profile.java.JavaMethod} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JavaMethodItemProvider
+ extends JavaNamedElementItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JavaMethodItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addIsStaticPropertyDescriptor(object);
+ addIsFinalPropertyDescriptor(object);
+ addIsAbstractPropertyDescriptor(object);
+ addIsNativePropertyDescriptor(object);
+ addIsSynchronizedPropertyDescriptor(object);
+ addIsConstructorPropertyDescriptor(object);
+ addBase_OperationPropertyDescriptor(object);
+ addExplicitPlainTextRequiredImportsPropertyDescriptor(object);
+ addExplicitRequiredImportsPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Is Static feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addIsStaticPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaMethod_isStatic_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaMethod_isStatic_feature", "_UI_JavaMethod_type"),
+ JavaPackage.Literals.JAVA_METHOD__IS_STATIC,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Is Final feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addIsFinalPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaMethod_isFinal_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaMethod_isFinal_feature", "_UI_JavaMethod_type"),
+ JavaPackage.Literals.JAVA_METHOD__IS_FINAL,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Is Abstract feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addIsAbstractPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaMethod_isAbstract_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaMethod_isAbstract_feature", "_UI_JavaMethod_type"),
+ JavaPackage.Literals.JAVA_METHOD__IS_ABSTRACT,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Is Native feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addIsNativePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaMethod_isNative_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaMethod_isNative_feature", "_UI_JavaMethod_type"),
+ JavaPackage.Literals.JAVA_METHOD__IS_NATIVE,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Is Synchronized feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addIsSynchronizedPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaMethod_isSynchronized_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaMethod_isSynchronized_feature", "_UI_JavaMethod_type"),
+ JavaPackage.Literals.JAVA_METHOD__IS_SYNCHRONIZED,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Is Constructor feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addIsConstructorPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaMethod_isConstructor_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaMethod_isConstructor_feature", "_UI_JavaMethod_type"),
+ JavaPackage.Literals.JAVA_METHOD__IS_CONSTRUCTOR,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Base Operation feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addBase_OperationPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaMethod_base_Operation_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaMethod_base_Operation_feature", "_UI_JavaMethod_type"),
+ JavaPackage.Literals.JAVA_METHOD__BASE_OPERATION,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Explicit Plain Text Required Imports feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addExplicitPlainTextRequiredImportsPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaMethod_explicitPlainTextRequiredImports_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaMethod_explicitPlainTextRequiredImports_feature", "_UI_JavaMethod_type"),
+ JavaPackage.Literals.JAVA_METHOD__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Explicit Required Imports feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addExplicitRequiredImportsPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaMethod_explicitRequiredImports_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaMethod_explicitRequiredImports_feature", "_UI_JavaMethod_type"),
+ JavaPackage.Literals.JAVA_METHOD__EXPLICIT_REQUIRED_IMPORTS,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns JavaMethod.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/JavaMethod"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((JavaMethod) object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_JavaMethod_type") :
+ getString("_UI_JavaMethod_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(JavaMethod.class)) {
+ case JavaPackage.JAVA_METHOD__IS_STATIC:
+ case JavaPackage.JAVA_METHOD__IS_FINAL:
+ case JavaPackage.JAVA_METHOD__IS_ABSTRACT:
+ case JavaPackage.JAVA_METHOD__IS_NATIVE:
+ case JavaPackage.JAVA_METHOD__IS_SYNCHRONIZED:
+ case JavaPackage.JAVA_METHOD__IS_CONSTRUCTOR:
+ case JavaPackage.JAVA_METHOD__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaNamedElementItemProvider.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaNamedElementItemProvider.java
new file mode 100644
index 00000000000..9f0a4b9e6e1
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaNamedElementItemProvider.java
@@ -0,0 +1,255 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.papyrus.java.profile.java.JavaNamedElement;
+import org.eclipse.papyrus.java.profile.java.JavaPackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.java.profile.java.JavaNamedElement} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JavaNamedElementItemProvider
+ extends ItemProviderAdapter
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JavaNamedElementItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addNamePropertyDescriptor(object);
+ addAuthorPropertyDescriptor(object);
+ addVersionPropertyDescriptor(object);
+ addCommentPropertyDescriptor(object);
+ addIsGeneratedPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Name feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addNamePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaNamedElement_name_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaNamedElement_name_feature", "_UI_JavaNamedElement_type"),
+ JavaPackage.Literals.JAVA_NAMED_ELEMENT__NAME,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Author feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addAuthorPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaNamedElement_author_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaNamedElement_author_feature", "_UI_JavaNamedElement_type"),
+ JavaPackage.Literals.JAVA_NAMED_ELEMENT__AUTHOR,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Version feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addVersionPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaNamedElement_version_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaNamedElement_version_feature", "_UI_JavaNamedElement_type"),
+ JavaPackage.Literals.JAVA_NAMED_ELEMENT__VERSION,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Comment feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addCommentPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaNamedElement_comment_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaNamedElement_comment_feature", "_UI_JavaNamedElement_type"),
+ JavaPackage.Literals.JAVA_NAMED_ELEMENT__COMMENT,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Is Generated feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addIsGeneratedPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaNamedElement_isGenerated_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaNamedElement_isGenerated_feature", "_UI_JavaNamedElement_type"),
+ JavaPackage.Literals.JAVA_NAMED_ELEMENT__IS_GENERATED,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((JavaNamedElement) object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_JavaNamedElement_type") :
+ getString("_UI_JavaNamedElement_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(JavaNamedElement.class)) {
+ case JavaPackage.JAVA_NAMED_ELEMENT__NAME:
+ case JavaPackage.JAVA_NAMED_ELEMENT__AUTHOR:
+ case JavaPackage.JAVA_NAMED_ELEMENT__VERSION:
+ case JavaPackage.JAVA_NAMED_ELEMENT__COMMENT:
+ case JavaPackage.JAVA_NAMED_ELEMENT__IS_GENERATED:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return JavaEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaPackage_ItemProvider.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaPackage_ItemProvider.java
new file mode 100644
index 00000000000..3220ea94e6d
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaPackage_ItemProvider.java
@@ -0,0 +1,177 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.papyrus.java.profile.java.JavaPackage;
+import org.eclipse.papyrus.java.profile.java.JavaPackage_;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.java.profile.java.JavaPackage_} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JavaPackage_ItemProvider
+ extends JavaGenItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JavaPackage_ItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addPackageNamePropertyDescriptor(object);
+ addBase_PackagePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Package Name feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addPackageNamePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaPackage__packageName_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaPackage__packageName_feature", "_UI_JavaPackage__type"),
+ JavaPackage.Literals.JAVA_PACKAGE___PACKAGE_NAME,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Base Package feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addBase_PackagePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaPackage__base_Package_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaPackage__base_Package_feature", "_UI_JavaPackage__type"),
+ JavaPackage.Literals.JAVA_PACKAGE___BASE_PACKAGE,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns JavaPackage_.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/JavaPackage_"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((JavaPackage_) object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_JavaPackage__type") :
+ getString("_UI_JavaPackage__type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(JavaPackage_.class)) {
+ case JavaPackage.JAVA_PACKAGE___PACKAGE_NAME:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaParameterItemProvider.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaParameterItemProvider.java
new file mode 100644
index 00000000000..006b8d41606
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaParameterItemProvider.java
@@ -0,0 +1,177 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.papyrus.java.profile.java.JavaPackage;
+import org.eclipse.papyrus.java.profile.java.JavaParameter;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.java.profile.java.JavaParameter} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JavaParameterItemProvider
+ extends JavaNamedElementItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JavaParameterItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addIsFinalPropertyDescriptor(object);
+ addBase_ParameterPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Is Final feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addIsFinalPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaParameter_isFinal_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaParameter_isFinal_feature", "_UI_JavaParameter_type"),
+ JavaPackage.Literals.JAVA_PARAMETER__IS_FINAL,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Base Parameter feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addBase_ParameterPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaParameter_base_Parameter_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaParameter_base_Parameter_feature", "_UI_JavaParameter_type"),
+ JavaPackage.Literals.JAVA_PARAMETER__BASE_PARAMETER,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns JavaParameter.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/JavaParameter"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((JavaParameter) object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_JavaParameter_type") :
+ getString("_UI_JavaParameter_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(JavaParameter.class)) {
+ case JavaPackage.JAVA_PARAMETER__IS_FINAL:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaProjectItemProvider.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaProjectItemProvider.java
new file mode 100644
index 00000000000..3fafb280255
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaProjectItemProvider.java
@@ -0,0 +1,145 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.papyrus.java.profile.java.JavaPackage;
+import org.eclipse.papyrus.java.profile.java.JavaProject;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.java.profile.java.JavaProject} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JavaProjectItemProvider
+ extends JavaGenItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JavaProjectItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addBase_PackagePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Base Package feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addBase_PackagePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaProject_base_Package_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaProject_base_Package_feature", "_UI_JavaProject_type"),
+ JavaPackage.Literals.JAVA_PROJECT__BASE_PACKAGE,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns JavaProject.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/JavaProject"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((JavaProject) object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_JavaProject_type") :
+ getString("_UI_JavaProject_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaPropertyItemProvider.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaPropertyItemProvider.java
new file mode 100644
index 00000000000..4d3b1342181
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaPropertyItemProvider.java
@@ -0,0 +1,351 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.papyrus.java.profile.java.JavaPackage;
+import org.eclipse.papyrus.java.profile.java.JavaProperty;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.java.profile.java.JavaProperty} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JavaPropertyItemProvider
+ extends JavaNamedElementItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JavaPropertyItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addIsAbstractPropertyDescriptor(object);
+ addIsFinalPropertyDescriptor(object);
+ addBase_PropertyPropertyDescriptor(object);
+ addIsTransientPropertyDescriptor(object);
+ addGenerateGetterPropertyDescriptor(object);
+ addGenerateSetterPropertyDescriptor(object);
+ addIsStaticPropertyDescriptor(object);
+ addExplicitPlainTextRequiredImportsPropertyDescriptor(object);
+ addExplicitRequiredImportsPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Is Abstract feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addIsAbstractPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaProperty_isAbstract_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaProperty_isAbstract_feature", "_UI_JavaProperty_type"),
+ JavaPackage.Literals.JAVA_PROPERTY__IS_ABSTRACT,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Is Final feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addIsFinalPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaProperty_isFinal_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaProperty_isFinal_feature", "_UI_JavaProperty_type"),
+ JavaPackage.Literals.JAVA_PROPERTY__IS_FINAL,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Base Property feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addBase_PropertyPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaProperty_base_Property_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaProperty_base_Property_feature", "_UI_JavaProperty_type"),
+ JavaPackage.Literals.JAVA_PROPERTY__BASE_PROPERTY,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Is Transient feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addIsTransientPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaProperty_isTransient_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaProperty_isTransient_feature", "_UI_JavaProperty_type"),
+ JavaPackage.Literals.JAVA_PROPERTY__IS_TRANSIENT,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Generate Getter feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addGenerateGetterPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaProperty_generateGetter_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaProperty_generateGetter_feature", "_UI_JavaProperty_type"),
+ JavaPackage.Literals.JAVA_PROPERTY__GENERATE_GETTER,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Generate Setter feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addGenerateSetterPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaProperty_generateSetter_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaProperty_generateSetter_feature", "_UI_JavaProperty_type"),
+ JavaPackage.Literals.JAVA_PROPERTY__GENERATE_SETTER,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Is Static feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addIsStaticPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaProperty_isStatic_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaProperty_isStatic_feature", "_UI_JavaProperty_type"),
+ JavaPackage.Literals.JAVA_PROPERTY__IS_STATIC,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Explicit Plain Text Required Imports feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addExplicitPlainTextRequiredImportsPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaProperty_explicitPlainTextRequiredImports_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaProperty_explicitPlainTextRequiredImports_feature", "_UI_JavaProperty_type"),
+ JavaPackage.Literals.JAVA_PROPERTY__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Explicit Required Imports feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addExplicitRequiredImportsPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaProperty_explicitRequiredImports_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaProperty_explicitRequiredImports_feature", "_UI_JavaProperty_type"),
+ JavaPackage.Literals.JAVA_PROPERTY__EXPLICIT_REQUIRED_IMPORTS,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns JavaProperty.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/JavaProperty"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((JavaProperty) object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_JavaProperty_type") :
+ getString("_UI_JavaProperty_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(JavaProperty.class)) {
+ case JavaPackage.JAVA_PROPERTY__IS_ABSTRACT:
+ case JavaPackage.JAVA_PROPERTY__IS_FINAL:
+ case JavaPackage.JAVA_PROPERTY__IS_TRANSIENT:
+ case JavaPackage.JAVA_PROPERTY__GENERATE_GETTER:
+ case JavaPackage.JAVA_PROPERTY__GENERATE_SETTER:
+ case JavaPackage.JAVA_PROPERTY__IS_STATIC:
+ case JavaPackage.JAVA_PROPERTY__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaSrcFolderItemProvider.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaSrcFolderItemProvider.java
new file mode 100644
index 00000000000..524bcd7e059
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaSrcFolderItemProvider.java
@@ -0,0 +1,145 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.papyrus.java.profile.java.JavaPackage;
+import org.eclipse.papyrus.java.profile.java.JavaSrcFolder;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.java.profile.java.JavaSrcFolder} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JavaSrcFolderItemProvider
+ extends JavaGenItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JavaSrcFolderItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addBase_PackagePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Base Package feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addBase_PackagePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_JavaSrcFolder_base_Package_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_JavaSrcFolder_base_Package_feature", "_UI_JavaSrcFolder_type"),
+ JavaPackage.Literals.JAVA_SRC_FOLDER__BASE_PACKAGE,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns JavaSrcFolder.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/JavaSrcFolder"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((JavaSrcFolder) object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_JavaSrcFolder_type") :
+ getString("_UI_JavaSrcFolder_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/PrimitiveTypeItemProvider.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/PrimitiveTypeItemProvider.java
new file mode 100644
index 00000000000..1ec2a9c9a48
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/PrimitiveTypeItemProvider.java
@@ -0,0 +1,202 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.papyrus.java.profile.java.JavaPackage;
+import org.eclipse.papyrus.java.profile.java.PrimitiveType;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.java.profile.java.PrimitiveType} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class PrimitiveTypeItemProvider
+ extends JavaGenItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public PrimitiveTypeItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addImplementationClassPropertyDescriptor(object);
+ addBase_PrimitiveTypePropertyDescriptor(object);
+ addCollectionImplementationClassPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Implementation Class feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addImplementationClassPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_PrimitiveType_implementationClass_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_PrimitiveType_implementationClass_feature", "_UI_PrimitiveType_type"),
+ JavaPackage.Literals.PRIMITIVE_TYPE__IMPLEMENTATION_CLASS,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Base Primitive Type feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addBase_PrimitiveTypePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_PrimitiveType_base_PrimitiveType_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_PrimitiveType_base_PrimitiveType_feature", "_UI_PrimitiveType_type"),
+ JavaPackage.Literals.PRIMITIVE_TYPE__BASE_PRIMITIVE_TYPE,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Collection Implementation Class feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addCollectionImplementationClassPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_PrimitiveType_collectionImplementationClass_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_PrimitiveType_collectionImplementationClass_feature", "_UI_PrimitiveType_type"),
+ JavaPackage.Literals.PRIMITIVE_TYPE__COLLECTION_IMPLEMENTATION_CLASS,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns PrimitiveType.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/PrimitiveType"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((PrimitiveType) object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_PrimitiveType_type") :
+ getString("_UI_PrimitiveType_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(PrimitiveType.class)) {
+ case JavaPackage.PRIMITIVE_TYPE__IMPLEMENTATION_CLASS:
+ case JavaPackage.PRIMITIVE_TYPE__COLLECTION_IMPLEMENTATION_CLASS:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/.classpath b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/.classpath
new file mode 100644
index 00000000000..ad32c83a788
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/.project b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/.project
new file mode 100644
index 00000000000..b093010c682
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.java.profile.editor</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/.settings/org.eclipse.jdt.core.prefs b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..94d61f00da6
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,291 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=260
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=false
+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=260
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=5
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/.settings/org.eclipse.jdt.ui.prefs b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 00000000000..954281dbc31
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,68 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_functional_interfaces=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=false
+cleanup.format_source_code=false
+cleanup.format_source_code_changes_only=false
+cleanup.insert_inferred_type_arguments=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=false
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_redundant_type_arguments=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_anonymous_class_creation=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_lambda=true
+cleanup.use_parentheses_in_expressions=false
+cleanup.use_this_for_non_static_field_access=false
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=false
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_type_arguments=false
+cleanup_profile=_Papyrus
+cleanup_settings_version=2
+eclipse.preferences.version=1
+formatter_profile=_Papyrus
+formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * Constructor.\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*****************************************************************************\n * Copyright (c) ${year} CEA LIST and others.\n * \n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n * CEA LIST - Initial API and implementation\n * \n *****************************************************************************/\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\n * ${see_to_overridden}\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${see_to_target}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/META-INF/MANIFEST.MF b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..4406bae6a12
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.papyrus.java.profile.edit;bundle-version="1.2.0";visibility:=reexport,
+ org.eclipse.emf.edit.ui;visibility:=reexport,
+ org.eclipse.ui.ide;visibility:=reexport,
+ org.eclipse.core.resources
+Export-Package: org.eclipse.papyrus.java.profile.java.presentation
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-ClassPath: .
+Bundle-Version: 1.2.0.qualifier
+Bundle-Localization: plugin
+Bundle-Name: %pluginName
+Bundle-Activator: org.eclipse.papyrus.java.profile.java.presentation.JavaEditorPlugin$Implementation
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.java.profile.editor;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/about.html b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/about.html
new file mode 100644
index 00000000000..82d49bf5f81
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/build.properties b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/build.properties
new file mode 100644
index 00000000000..e0979c7d60f
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/build.properties
@@ -0,0 +1,16 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+bin.includes = .,\
+ icons/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties,\
+ about.html
+jars.compile.order = .
+source.. = src/
+output.. = bin
+src.includes = about.html
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/icons/full/obj16/JavaModelFile.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/icons/full/obj16/JavaModelFile.gif
new file mode 100644
index 00000000000..53eb7d4f381
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/icons/full/obj16/JavaModelFile.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/icons/full/wizban/NewJava.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/icons/full/wizban/NewJava.gif
new file mode 100644
index 00000000000..5306a816d4c
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/icons/full/wizban/NewJava.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/plugin.properties b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/plugin.properties
new file mode 100644
index 00000000000..f21e2f2baf8
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/plugin.properties
@@ -0,0 +1,65 @@
+
+#################################################################################
+# Copyright (c) 2011-2013 Cedric Dumoulin.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Cedric Dumoulin Cedric.dumoulin@lifl.fr - Initial API
+#
+#################################################################################
+
+pluginName = Profile for Java classes generation Editor Support (Incubation)
+providerName = Eclipse Modeling Project
+
+_UI_JavaEditor_menu = &Java Editor
+
+_UI_CreateChild_menu_item = &New Child
+_UI_CreateSibling_menu_item = N&ew Sibling
+
+_UI_ShowPropertiesView_menu_item = Show &Properties View
+_UI_RefreshViewer_menu_item = &Refresh
+
+_UI_SelectionPage_label = Selection
+_UI_ParentPage_label = Parent
+_UI_ListPage_label = List
+_UI_TreePage_label = Tree
+_UI_TablePage_label = Table
+_UI_TreeWithColumnsPage_label = Tree with Columns
+_UI_ObjectColumn_label = Object
+_UI_SelfColumn_label = Self
+
+_UI_NoObjectSelected = Selected Nothing
+_UI_SingleObjectSelected = Selected Object: {0}
+_UI_MultiObjectSelected = Selected {0} Objects
+
+_UI_OpenEditorError_label = Open Editor
+
+_UI_Wizard_category = Example EMF Model Creation Wizards
+
+_UI_CreateModelError_message = Problems encountered in file "{0}"
+
+_UI_JavaModelWizard_label = Java Model
+_UI_JavaModelWizard_description = Create a new Java model
+
+_UI_JavaEditor_label = Java Model Editor
+
+_UI_JavaEditorFilenameDefaultBase = My
+_UI_JavaEditorFilenameExtensions = java
+
+_UI_Wizard_label = New
+
+_WARN_FilenameExtension = The file name must end in ''.{0}''
+_WARN_FilenameExtensions = The file name must have one of the following extensions: {0}
+
+_UI_ModelObject = &Model Object
+_UI_XMLEncoding = &XML Encoding
+_UI_XMLEncodingChoices = UTF-8 ASCII UTF-16 UTF-16BE UTF-16LE ISO-8859-1
+_UI_Wizard_initial_object_description = Select a model object to create
+
+_UI_FileConflict_label = File Conflict
+_WARN_FileConflict = There are unsaved changes that conflict with changes made outside the editor. Do you wish to discard this editor's changes?
+
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/plugin.xml b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/plugin.xml
new file mode 100644
index 00000000000..83b63b9cb2c
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/plugin.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ <copyright>
+ </copyright>
+
+ $Id$
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.ui.newWizards">
+ <category
+ id="org.eclipse.emf.ecore.Wizard.category.ID"
+ name="%_UI_Wizard_category"/>
+ <wizard
+ id="org.eclipse.papyrus.java.profile.java.presentation.JavaModelWizardID"
+ name="%_UI_JavaModelWizard_label"
+ class="org.eclipse.papyrus.java.profile.java.presentation.JavaModelWizard"
+ category="org.eclipse.emf.ecore.Wizard.category.ID"
+ icon="icons/full/obj16/JavaModelFile.gif">
+ <description>%_UI_JavaModelWizard_description</description>
+ <selection class="org.eclipse.core.resources.IResource"/>
+ </wizard>
+ </extension>
+
+ <extension point="org.eclipse.ui.editors">
+ <editor
+ id="org.eclipse.papyrus.java.profile.java.presentation.JavaEditorID"
+ name="%_UI_JavaEditor_label"
+ icon="icons/full/obj16/JavaModelFile.gif"
+ extensions="java"
+ class="org.eclipse.papyrus.java.profile.java.presentation.JavaEditor"
+ contributorClass="org.eclipse.papyrus.java.profile.java.presentation.JavaActionBarContributor">
+ </editor>
+ </extension>
+
+</plugin>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/pom.xml b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/pom.xml
new file mode 100644
index 00000000000..bc9d1af8099
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.java.profile.editor</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/src/org/eclipse/papyrus/java/profile/java/presentation/JavaActionBarContributor.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/src/org/eclipse/papyrus/java/profile/java/presentation/JavaActionBarContributor.java
new file mode 100644
index 00000000000..f73a9c3c7a1
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/src/org/eclipse/papyrus/java/profile/java/presentation/JavaActionBarContributor.java
@@ -0,0 +1,445 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java.presentation;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+import org.eclipse.emf.edit.ui.action.ControlAction;
+import org.eclipse.emf.edit.ui.action.CreateChildAction;
+import org.eclipse.emf.edit.ui.action.CreateSiblingAction;
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+import org.eclipse.emf.edit.ui.action.LoadResourceAction;
+import org.eclipse.emf.edit.ui.action.ValidateAction;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.IContributionManager;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.action.SubContributionItem;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.PartInitException;
+
+/**
+ * This is the action bar contributor for the Java model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JavaActionBarContributor
+ extends EditingDomainActionBarContributor
+ implements ISelectionChangedListener {
+ /**
+ * This keeps track of the active editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IEditorPart activeEditorPart;
+
+ /**
+ * This keeps track of the current selection provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ISelectionProvider selectionProvider;
+
+ /**
+ * This action opens the Properties view.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IAction showPropertiesViewAction =
+ new Action(JavaEditorPlugin.INSTANCE.getString("_UI_ShowPropertiesView_menu_item")) {
+ @Override
+ public void run() {
+ try {
+ getPage().showView("org.eclipse.ui.views.PropertySheet");
+ }
+ catch (PartInitException exception) {
+ JavaEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+ };
+
+ /**
+ * This action refreshes the viewer of the current editor if the editor
+ * implements {@link org.eclipse.emf.common.ui.viewer.IViewerProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IAction refreshViewerAction =
+ new Action(JavaEditorPlugin.INSTANCE.getString("_UI_RefreshViewer_menu_item")) {
+ @Override
+ public boolean isEnabled() {
+ return activeEditorPart instanceof IViewerProvider;
+ }
+
+ @Override
+ public void run() {
+ if (activeEditorPart instanceof IViewerProvider) {
+ Viewer viewer = ((IViewerProvider) activeEditorPart).getViewer();
+ if (viewer != null) {
+ viewer.refresh();
+ }
+ }
+ }
+ };
+
+ /**
+ * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateChildAction} corresponding to each descriptor
+ * generated for the current selection by the item provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Collection<IAction> createChildActions;
+
+ /**
+ * This is the menu manager into which menu contribution items should be added for CreateChild actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IMenuManager createChildMenuManager;
+
+ /**
+ * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} corresponding to each descriptor
+ * generated for the current selection by the item provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Collection<IAction> createSiblingActions;
+
+ /**
+ * This is the menu manager into which menu contribution items should be added for CreateSibling actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IMenuManager createSiblingMenuManager;
+
+ /**
+ * This creates an instance of the contributor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JavaActionBarContributor() {
+ super(ADDITIONS_LAST_STYLE);
+ loadResourceAction = new LoadResourceAction();
+ validateAction = new ValidateAction();
+ controlAction = new ControlAction();
+ }
+
+ /**
+ * This adds Separators for editor additions to the tool bar.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void contributeToToolBar(IToolBarManager toolBarManager) {
+ toolBarManager.add(new Separator("java-settings"));
+ toolBarManager.add(new Separator("java-additions"));
+ }
+
+ /**
+ * This adds to the menu bar a menu and some separators for editor additions,
+ * as well as the sub-menus for object creation items.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void contributeToMenu(IMenuManager menuManager) {
+ super.contributeToMenu(menuManager);
+
+ IMenuManager submenuManager = new MenuManager(JavaEditorPlugin.INSTANCE.getString("_UI_JavaEditor_menu"), "org.eclipse.papyrus.java.profile.javaMenuID");
+ menuManager.insertAfter("additions", submenuManager);
+ submenuManager.add(new Separator("settings"));
+ submenuManager.add(new Separator("actions"));
+ submenuManager.add(new Separator("additions"));
+ submenuManager.add(new Separator("additions-end"));
+
+ // Prepare for CreateChild item addition or removal.
+ //
+ createChildMenuManager = new MenuManager(JavaEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+ submenuManager.insertBefore("additions", createChildMenuManager);
+
+ // Prepare for CreateSibling item addition or removal.
+ //
+ createSiblingMenuManager = new MenuManager(JavaEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+ submenuManager.insertBefore("additions", createSiblingMenuManager);
+
+ // Force an update because Eclipse hides empty menus now.
+ //
+ submenuManager.addMenuListener
+ (new IMenuListener() {
+ @Override
+ public void menuAboutToShow(IMenuManager menuManager) {
+ menuManager.updateAll(true);
+ }
+ });
+
+ addGlobalActions(submenuManager);
+ }
+
+ /**
+ * When the active editor changes, this remembers the change and registers with it as a selection provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setActiveEditor(IEditorPart part) {
+ super.setActiveEditor(part);
+ activeEditorPart = part;
+
+ // Switch to the new selection provider.
+ //
+ if (selectionProvider != null) {
+ selectionProvider.removeSelectionChangedListener(this);
+ }
+ if (part == null) {
+ selectionProvider = null;
+ }
+ else {
+ selectionProvider = part.getSite().getSelectionProvider();
+ selectionProvider.addSelectionChangedListener(this);
+
+ // Fake a selection changed event to update the menus.
+ //
+ if (selectionProvider.getSelection() != null) {
+ selectionChanged(new SelectionChangedEvent(selectionProvider, selectionProvider.getSelection()));
+ }
+ }
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionChangedListener},
+ * handling {@link org.eclipse.jface.viewers.SelectionChangedEvent}s by querying for the children and siblings
+ * that can be added to the selected object and updating the menus accordingly.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void selectionChanged(SelectionChangedEvent event) {
+ // Remove any menu items for old selection.
+ //
+ if (createChildMenuManager != null) {
+ depopulateManager(createChildMenuManager, createChildActions);
+ }
+ if (createSiblingMenuManager != null) {
+ depopulateManager(createSiblingMenuManager, createSiblingActions);
+ }
+
+ // Query the new selection for appropriate new child/sibling descriptors
+ //
+ Collection<?> newChildDescriptors = null;
+ Collection<?> newSiblingDescriptors = null;
+
+ ISelection selection = event.getSelection();
+ if (selection instanceof IStructuredSelection && ((IStructuredSelection) selection).size() == 1) {
+ Object object = ((IStructuredSelection) selection).getFirstElement();
+
+ EditingDomain domain = ((IEditingDomainProvider) activeEditorPart).getEditingDomain();
+
+ newChildDescriptors = domain.getNewChildDescriptors(object, null);
+ newSiblingDescriptors = domain.getNewChildDescriptors(null, object);
+ }
+
+ // Generate actions for selection; populate and redraw the menus.
+ //
+ createChildActions = generateCreateChildActions(newChildDescriptors, selection);
+ createSiblingActions = generateCreateSiblingActions(newSiblingDescriptors, selection);
+
+ if (createChildMenuManager != null) {
+ populateManager(createChildMenuManager, createChildActions, null);
+ createChildMenuManager.update(true);
+ }
+ if (createSiblingMenuManager != null) {
+ populateManager(createSiblingMenuManager, createSiblingActions, null);
+ createSiblingMenuManager.update(true);
+ }
+ }
+
+ /**
+ * This generates a {@link org.eclipse.emf.edit.ui.action.CreateChildAction} for each object in <code>descriptors</code>,
+ * and returns the collection of these actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Collection<IAction> generateCreateChildActions(Collection<?> descriptors, ISelection selection) {
+ Collection<IAction> actions = new ArrayList<IAction>();
+ if (descriptors != null) {
+ for (Object descriptor : descriptors) {
+ actions.add(new CreateChildAction(activeEditorPart, selection, descriptor));
+ }
+ }
+ return actions;
+ }
+
+ /**
+ * This generates a {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} for each object in <code>descriptors</code>,
+ * and returns the collection of these actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Collection<IAction> generateCreateSiblingActions(Collection<?> descriptors, ISelection selection) {
+ Collection<IAction> actions = new ArrayList<IAction>();
+ if (descriptors != null) {
+ for (Object descriptor : descriptors) {
+ actions.add(new CreateSiblingAction(activeEditorPart, selection, descriptor));
+ }
+ }
+ return actions;
+ }
+
+ /**
+ * This populates the specified <code>manager</code> with {@link org.eclipse.jface.action.ActionContributionItem}s
+ * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection,
+ * by inserting them before the specified contribution item <code>contributionID</code>.
+ * If <code>contributionID</code> is <code>null</code>, they are simply added.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void populateManager(IContributionManager manager, Collection<? extends IAction> actions, String contributionID) {
+ if (actions != null) {
+ for (IAction action : actions) {
+ if (contributionID != null) {
+ manager.insertBefore(contributionID, action);
+ }
+ else {
+ manager.add(action);
+ }
+ }
+ }
+ }
+
+ /**
+ * This removes from the specified <code>manager</code> all {@link org.eclipse.jface.action.ActionContributionItem}s
+ * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void depopulateManager(IContributionManager manager, Collection<? extends IAction> actions) {
+ if (actions != null) {
+ IContributionItem[] items = manager.getItems();
+ for (int i = 0; i < items.length; i++) {
+ // Look into SubContributionItems
+ //
+ IContributionItem contributionItem = items[i];
+ while (contributionItem instanceof SubContributionItem) {
+ contributionItem = ((SubContributionItem) contributionItem).getInnerItem();
+ }
+
+ // Delete the ActionContributionItems with matching action.
+ //
+ if (contributionItem instanceof ActionContributionItem) {
+ IAction action = ((ActionContributionItem) contributionItem).getAction();
+ if (actions.contains(action)) {
+ manager.remove(contributionItem);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * This populates the pop-up menu before it appears.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void menuAboutToShow(IMenuManager menuManager) {
+ super.menuAboutToShow(menuManager);
+ MenuManager submenuManager = null;
+
+ submenuManager = new MenuManager(JavaEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+ populateManager(submenuManager, createChildActions, null);
+ menuManager.insertBefore("edit", submenuManager);
+
+ submenuManager = new MenuManager(JavaEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+ populateManager(submenuManager, createSiblingActions, null);
+ menuManager.insertBefore("edit", submenuManager);
+ }
+
+ /**
+ * This inserts global actions before the "additions-end" separator.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void addGlobalActions(IMenuManager menuManager) {
+ menuManager.insertAfter("additions-end", new Separator("ui-actions"));
+ menuManager.insertAfter("ui-actions", showPropertiesViewAction);
+
+ refreshViewerAction.setEnabled(refreshViewerAction.isEnabled());
+ menuManager.insertAfter("ui-actions", refreshViewerAction);
+
+ super.addGlobalActions(menuManager);
+ }
+
+ /**
+ * This ensures that a delete action will clean up all references to deleted objects.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected boolean removeAllReferencesOnDelete() {
+ return true;
+ }
+
+} \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/src/org/eclipse/papyrus/java/profile/java/presentation/JavaEditor.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/src/org/eclipse/papyrus/java/profile/java/presentation/JavaEditor.java
new file mode 100644
index 00000000000..4ac8d8e0bc8
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/src/org/eclipse/papyrus/java/profile/java/presentation/JavaEditor.java
@@ -0,0 +1,1885 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java.presentation;
+
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.EventObject;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceChangeEvent;
+import org.eclipse.core.resources.IResourceChangeListener;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IResourceDeltaVisitor;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.CommandStack;
+import org.eclipse.emf.common.command.CommandStackListener;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.ui.MarkerHelper;
+import org.eclipse.emf.common.ui.ViewerPane;
+import org.eclipse.emf.common.ui.editor.ProblemEditorPart;
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EValidator;
+import org.eclipse.emf.ecore.provider.EcoreItemProviderAdapterFactory;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.util.EContentAdapter;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor;
+import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter;
+import org.eclipse.emf.edit.ui.dnd.LocalTransfer;
+import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider;
+import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper;
+import org.eclipse.emf.edit.ui.util.EditUIUtil;
+import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IStatusLineManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+import org.eclipse.jface.viewers.ColumnWeightData;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ListViewer;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.TableLayout;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.papyrus.java.profile.java.provider.JavaItemProviderAdapterFactory;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CTabFolder;
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.Transfer;
+import org.eclipse.swt.events.ControlAdapter;
+import org.eclipse.swt.events.ControlEvent;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeColumn;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IPartListener;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+import org.eclipse.ui.dialogs.SaveAsDialog;
+import org.eclipse.ui.ide.IGotoMarker;
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.MultiPageEditorPart;
+import org.eclipse.ui.views.contentoutline.ContentOutline;
+import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
+import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
+import org.eclipse.ui.views.properties.IPropertySheetPage;
+import org.eclipse.ui.views.properties.PropertySheet;
+import org.eclipse.ui.views.properties.PropertySheetPage;
+import org.eclipse.uml2.uml.edit.providers.UMLItemProviderAdapterFactory;
+
+
+/**
+ * This is an example of a Java model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JavaEditor
+ extends MultiPageEditorPart
+ implements IEditingDomainProvider, ISelectionProvider, IMenuListener, IViewerProvider, IGotoMarker {
+ /**
+ * This keeps track of the editing domain that is used to track all changes to the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected AdapterFactoryEditingDomain editingDomain;
+
+ /**
+ * This is the one adapter factory used for providing views of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ComposedAdapterFactory adapterFactory;
+
+ /**
+ * This is the content outline page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IContentOutlinePage contentOutlinePage;
+
+ /**
+ * This is a kludge...
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IStatusLineManager contentOutlineStatusLineManager;
+
+ /**
+ * This is the content outline page's viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected TreeViewer contentOutlineViewer;
+
+ /**
+ * This is the property sheet page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected PropertySheetPage propertySheetPage;
+
+ /**
+ * This is the viewer that shadows the selection in the content outline.
+ * The parent relation must be correctly defined for this to work.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected TreeViewer selectionViewer;
+
+ /**
+ * This inverts the roll of parent and child in the content provider and show parents as a tree.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected TreeViewer parentViewer;
+
+ /**
+ * This shows how a tree view works.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected TreeViewer treeViewer;
+
+ /**
+ * This shows how a list view works.
+ * A list viewer doesn't support icons.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ListViewer listViewer;
+
+ /**
+ * This shows how a table view works.
+ * A table can be used as a list with icons.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected TableViewer tableViewer;
+
+ /**
+ * This shows how a tree view with columns works.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected TreeViewer treeViewerWithColumns;
+
+ /**
+ * This keeps track of the active viewer pane, in the book.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ViewerPane currentViewerPane;
+
+ /**
+ * This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Viewer currentViewer;
+
+ /**
+ * This listens to which ever viewer is active.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ISelectionChangedListener selectionChangedListener;
+
+ /**
+ * This keeps track of all the {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are listening to this editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Collection<ISelectionChangedListener> selectionChangedListeners = new ArrayList<ISelectionChangedListener>();
+
+ /**
+ * This keeps track of the selection of the editor as a whole.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ISelection editorSelection = StructuredSelection.EMPTY;
+
+ /**
+ * The MarkerHelper is responsible for creating workspace resource markers presented
+ * in Eclipse's Problems View.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected MarkerHelper markerHelper = new EditUIMarkerHelper();
+
+ /**
+ * This listens for when the outline becomes active
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IPartListener partListener =
+ new IPartListener() {
+ @Override
+ public void partActivated(IWorkbenchPart p) {
+ if (p instanceof ContentOutline) {
+ if (((ContentOutline) p).getCurrentPage() == contentOutlinePage) {
+ getActionBarContributor().setActiveEditor(JavaEditor.this);
+
+ setCurrentViewer(contentOutlineViewer);
+ }
+ }
+ else if (p instanceof PropertySheet) {
+ if (((PropertySheet) p).getCurrentPage() == propertySheetPage) {
+ getActionBarContributor().setActiveEditor(JavaEditor.this);
+ handleActivate();
+ }
+ }
+ else if (p == JavaEditor.this) {
+ handleActivate();
+ }
+ }
+
+ @Override
+ public void partBroughtToTop(IWorkbenchPart p) {
+ // Ignore.
+ }
+
+ @Override
+ public void partClosed(IWorkbenchPart p) {
+ // Ignore.
+ }
+
+ @Override
+ public void partDeactivated(IWorkbenchPart p) {
+ // Ignore.
+ }
+
+ @Override
+ public void partOpened(IWorkbenchPart p) {
+ // Ignore.
+ }
+ };
+
+ /**
+ * Resources that have been removed since last activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+ /**
+ * Resources that have been changed since last activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Collection<Resource> changedResources = new ArrayList<Resource>();
+
+ /**
+ * Resources that have been saved.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Collection<Resource> savedResources = new ArrayList<Resource>();
+
+ /**
+ * Map to store the diagnostic associated with a resource.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Map<Resource, Diagnostic> resourceToDiagnosticMap = new LinkedHashMap<Resource, Diagnostic>();
+
+ /**
+ * Controls whether the problem indication should be updated.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected boolean updateProblemIndication = true;
+
+ /**
+ * Adapter used to update the problem indication when resources are demanded loaded.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected EContentAdapter problemIndicationAdapter =
+ new EContentAdapter() {
+ @Override
+ public void notifyChanged(Notification notification) {
+ if (notification.getNotifier() instanceof Resource) {
+ switch (notification.getFeatureID(Resource.class)) {
+ case Resource.RESOURCE__IS_LOADED:
+ case Resource.RESOURCE__ERRORS:
+ case Resource.RESOURCE__WARNINGS: {
+ Resource resource = (Resource) notification.getNotifier();
+ Diagnostic diagnostic = analyzeResourceProblems(resource, null);
+ if (diagnostic.getSeverity() != Diagnostic.OK) {
+ resourceToDiagnosticMap.put(resource, diagnostic);
+ }
+ else {
+ resourceToDiagnosticMap.remove(resource);
+ }
+
+ if (updateProblemIndication) {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ @Override
+ public void run() {
+ updateProblemIndication();
+ }
+ });
+ }
+ break;
+ }
+ }
+ }
+ else {
+ super.notifyChanged(notification);
+ }
+ }
+
+ @Override
+ protected void setTarget(Resource target) {
+ basicSetTarget(target);
+ }
+
+ @Override
+ protected void unsetTarget(Resource target) {
+ basicUnsetTarget(target);
+ }
+ };
+
+ /**
+ * This listens for workspace changes.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IResourceChangeListener resourceChangeListener =
+ new IResourceChangeListener() {
+ @Override
+ public void resourceChanged(IResourceChangeEvent event) {
+ IResourceDelta delta = event.getDelta();
+ try {
+ class ResourceDeltaVisitor implements IResourceDeltaVisitor {
+ protected ResourceSet resourceSet = editingDomain.getResourceSet();
+ protected Collection<Resource> changedResources = new ArrayList<Resource>();
+ protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+ @Override
+ public boolean visit(IResourceDelta delta) {
+ if (delta.getResource().getType() == IResource.FILE) {
+ if (delta.getKind() == IResourceDelta.REMOVED ||
+ delta.getKind() == IResourceDelta.CHANGED && delta.getFlags() != IResourceDelta.MARKERS) {
+ Resource resource = resourceSet.getResource(URI.createPlatformResourceURI(delta.getFullPath().toString(), true), false);
+ if (resource != null) {
+ if (delta.getKind() == IResourceDelta.REMOVED) {
+ removedResources.add(resource);
+ }
+ else if (!savedResources.remove(resource)) {
+ changedResources.add(resource);
+ }
+ }
+ }
+ }
+
+ return true;
+ }
+
+ public Collection<Resource> getChangedResources() {
+ return changedResources;
+ }
+
+ public Collection<Resource> getRemovedResources() {
+ return removedResources;
+ }
+ }
+
+ final ResourceDeltaVisitor visitor = new ResourceDeltaVisitor();
+ delta.accept(visitor);
+
+ if (!visitor.getRemovedResources().isEmpty()) {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ @Override
+ public void run() {
+ removedResources.addAll(visitor.getRemovedResources());
+ if (!isDirty()) {
+ getSite().getPage().closeEditor(JavaEditor.this, false);
+ }
+ }
+ });
+ }
+
+ if (!visitor.getChangedResources().isEmpty()) {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ @Override
+ public void run() {
+ changedResources.addAll(visitor.getChangedResources());
+ if (getSite().getPage().getActiveEditor() == JavaEditor.this) {
+ handleActivate();
+ }
+ }
+ });
+ }
+ }
+ catch (CoreException exception) {
+ JavaEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+ };
+
+ /**
+ * Handles activation of the editor or it's associated views.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void handleActivate() {
+ // Recompute the read only state.
+ //
+ if (editingDomain.getResourceToReadOnlyMap() != null) {
+ editingDomain.getResourceToReadOnlyMap().clear();
+
+ // Refresh any actions that may become enabled or disabled.
+ //
+ setSelection(getSelection());
+ }
+
+ if (!removedResources.isEmpty()) {
+ if (handleDirtyConflict()) {
+ getSite().getPage().closeEditor(JavaEditor.this, false);
+ }
+ else {
+ removedResources.clear();
+ changedResources.clear();
+ savedResources.clear();
+ }
+ }
+ else if (!changedResources.isEmpty()) {
+ changedResources.removeAll(savedResources);
+ handleChangedResources();
+ changedResources.clear();
+ savedResources.clear();
+ }
+ }
+
+ /**
+ * Handles what to do with changed resources on activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void handleChangedResources() {
+ if (!changedResources.isEmpty() && (!isDirty() || handleDirtyConflict())) {
+ if (isDirty()) {
+ changedResources.addAll(editingDomain.getResourceSet().getResources());
+ }
+ editingDomain.getCommandStack().flush();
+
+ updateProblemIndication = false;
+ for (Resource resource : changedResources) {
+ if (resource.isLoaded()) {
+ resource.unload();
+ try {
+ resource.load(Collections.EMPTY_MAP);
+ } catch (IOException exception) {
+ if (!resourceToDiagnosticMap.containsKey(resource)) {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ }
+ }
+ }
+
+ if (AdapterFactoryEditingDomain.isStale(editorSelection)) {
+ setSelection(StructuredSelection.EMPTY);
+ }
+
+ updateProblemIndication = true;
+ updateProblemIndication();
+ }
+ }
+
+ /**
+ * Updates the problems indication with the information described in the specified diagnostic.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void updateProblemIndication() {
+ if (updateProblemIndication) {
+ BasicDiagnostic diagnostic =
+ new BasicDiagnostic
+ (Diagnostic.OK,
+ "org.eclipse.papyrus.java.profile.editor",
+ 0,
+ null,
+ new Object[] { editingDomain.getResourceSet() });
+ for (Diagnostic childDiagnostic : resourceToDiagnosticMap.values()) {
+ if (childDiagnostic.getSeverity() != Diagnostic.OK) {
+ diagnostic.add(childDiagnostic);
+ }
+ }
+
+ int lastEditorPage = getPageCount() - 1;
+ if (lastEditorPage >= 0 && getEditor(lastEditorPage) instanceof ProblemEditorPart) {
+ ((ProblemEditorPart) getEditor(lastEditorPage)).setDiagnostic(diagnostic);
+ if (diagnostic.getSeverity() != Diagnostic.OK) {
+ setActivePage(lastEditorPage);
+ }
+ }
+ else if (diagnostic.getSeverity() != Diagnostic.OK) {
+ ProblemEditorPart problemEditorPart = new ProblemEditorPart();
+ problemEditorPart.setDiagnostic(diagnostic);
+ problemEditorPart.setMarkerHelper(markerHelper);
+ try {
+ addPage(++lastEditorPage, problemEditorPart, getEditorInput());
+ setPageText(lastEditorPage, problemEditorPart.getPartName());
+ setActivePage(lastEditorPage);
+ showTabs();
+ } catch (PartInitException exception) {
+ JavaEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+
+ if (markerHelper.hasMarkers(editingDomain.getResourceSet())) {
+ markerHelper.deleteMarkers(editingDomain.getResourceSet());
+ if (diagnostic.getSeverity() != Diagnostic.OK) {
+ try {
+ markerHelper.createMarkers(diagnostic);
+ } catch (CoreException exception) {
+ JavaEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Shows a dialog that asks if conflicting changes should be discarded.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected boolean handleDirtyConflict() {
+ return MessageDialog.openQuestion
+ (getSite().getShell(),
+ getString("_UI_FileConflict_label"),
+ getString("_WARN_FileConflict"));
+ }
+
+ /**
+ * This creates a model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JavaEditor() {
+ super();
+ initializeEditingDomain();
+ }
+
+ /**
+ * This sets up the editing domain for the model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void initializeEditingDomain() {
+ // Create an adapter factory that yields item providers.
+ //
+ adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
+
+ adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new JavaItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new UMLItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new EcoreItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
+
+ // Create the command stack that will notify this editor as commands are executed.
+ //
+ BasicCommandStack commandStack = new BasicCommandStack();
+
+ // Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus.
+ //
+ commandStack.addCommandStackListener
+ (new CommandStackListener() {
+ @Override
+ public void commandStackChanged(final EventObject event) {
+ getContainer().getDisplay().asyncExec
+ (new Runnable() {
+ @Override
+ public void run() {
+ firePropertyChange(IEditorPart.PROP_DIRTY);
+
+ // Try to select the affected objects.
+ //
+ Command mostRecentCommand = ((CommandStack) event.getSource()).getMostRecentCommand();
+ if (mostRecentCommand != null) {
+ setSelectionToViewer(mostRecentCommand.getAffectedObjects());
+ }
+ if (propertySheetPage != null && !propertySheetPage.getControl().isDisposed()) {
+ propertySheetPage.refresh();
+ }
+ }
+ });
+ }
+ });
+
+ // Create the editing domain with a special command stack.
+ //
+ editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap<Resource, Boolean>());
+ }
+
+ /**
+ * This is here for the listener to be able to call it.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void firePropertyChange(int action) {
+ super.firePropertyChange(action);
+ }
+
+ /**
+ * This sets the selection into whichever viewer is active.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setSelectionToViewer(Collection<?> collection) {
+ final Collection<?> theSelection = collection;
+ // Make sure it's okay.
+ //
+ if (theSelection != null && !theSelection.isEmpty()) {
+ Runnable runnable =
+ new Runnable() {
+ @Override
+ public void run() {
+ // Try to select the items in the current content viewer of the editor.
+ //
+ if (currentViewer != null) {
+ currentViewer.setSelection(new StructuredSelection(theSelection.toArray()), true);
+ }
+ }
+ };
+ getSite().getShell().getDisplay().asyncExec(runnable);
+ }
+ }
+
+ /**
+ * This returns the editing domain as required by the {@link IEditingDomainProvider} interface.
+ * This is important for implementing the static methods of {@link AdapterFactoryEditingDomain} and for supporting {@link org.eclipse.emf.edit.ui.action.CommandAction}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EditingDomain getEditingDomain() {
+ return editingDomain;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public class ReverseAdapterFactoryContentProvider extends AdapterFactoryContentProvider {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public ReverseAdapterFactoryContentProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object[] getElements(Object object) {
+ Object parent = super.getParent(object);
+ return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object[] getChildren(Object object) {
+ Object parent = super.getParent(object);
+ return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean hasChildren(Object object) {
+ Object parent = super.getParent(object);
+ return parent != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object getParent(Object object) {
+ return null;
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setCurrentViewerPane(ViewerPane viewerPane) {
+ if (currentViewerPane != viewerPane) {
+ if (currentViewerPane != null) {
+ currentViewerPane.showFocus(false);
+ }
+ currentViewerPane = viewerPane;
+ }
+ setCurrentViewer(currentViewerPane.getViewer());
+ }
+
+ /**
+ * This makes sure that one content viewer, either for the current page or the outline view, if it has focus,
+ * is the current one.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setCurrentViewer(Viewer viewer) {
+ // If it is changing...
+ //
+ if (currentViewer != viewer) {
+ if (selectionChangedListener == null) {
+ // Create the listener on demand.
+ //
+ selectionChangedListener =
+ new ISelectionChangedListener() {
+ // This just notifies those things that are affected by the section.
+ //
+ @Override
+ public void selectionChanged(SelectionChangedEvent selectionChangedEvent) {
+ setSelection(selectionChangedEvent.getSelection());
+ }
+ };
+ }
+
+ // Stop listening to the old one.
+ //
+ if (currentViewer != null) {
+ currentViewer.removeSelectionChangedListener(selectionChangedListener);
+ }
+
+ // Start listening to the new one.
+ //
+ if (viewer != null) {
+ viewer.addSelectionChangedListener(selectionChangedListener);
+ }
+
+ // Remember it.
+ //
+ currentViewer = viewer;
+
+ // Set the editors selection based on the current viewer's selection.
+ //
+ setSelection(currentViewer == null ? StructuredSelection.EMPTY : currentViewer.getSelection());
+ }
+ }
+
+ /**
+ * This returns the viewer as required by the {@link IViewerProvider} interface.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Viewer getViewer() {
+ return currentViewer;
+ }
+
+ /**
+ * This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void createContextMenuFor(StructuredViewer viewer) {
+ MenuManager contextMenu = new MenuManager("#PopUp");
+ contextMenu.add(new Separator("additions"));
+ contextMenu.setRemoveAllWhenShown(true);
+ contextMenu.addMenuListener(this);
+ Menu menu = contextMenu.createContextMenu(viewer.getControl());
+ viewer.getControl().setMenu(menu);
+ getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));
+
+ int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
+ Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance() };
+ viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
+ viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
+ }
+
+ /**
+ * This is the method called to load a resource into the editing domain's resource set based on the editor's input.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void createModel() {
+ URI resourceURI = EditUIUtil.getURI(getEditorInput());
+ Exception exception = null;
+ Resource resource = null;
+ try {
+ // Load the resource through the editing domain.
+ //
+ resource = editingDomain.getResourceSet().getResource(resourceURI, true);
+ } catch (Exception e) {
+ exception = e;
+ resource = editingDomain.getResourceSet().getResource(resourceURI, false);
+ }
+
+ Diagnostic diagnostic = analyzeResourceProblems(resource, exception);
+ if (diagnostic.getSeverity() != Diagnostic.OK) {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ editingDomain.getResourceSet().eAdapters().add(problemIndicationAdapter);
+ }
+
+ /**
+ * Returns a diagnostic describing the errors and warnings listed in the resource
+ * and the specified exception (if any).
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Diagnostic analyzeResourceProblems(Resource resource, Exception exception) {
+ if (!resource.getErrors().isEmpty() || !resource.getWarnings().isEmpty()) {
+ BasicDiagnostic basicDiagnostic =
+ new BasicDiagnostic
+ (Diagnostic.ERROR,
+ "org.eclipse.papyrus.java.profile.editor",
+ 0,
+ getString("_UI_CreateModelError_message", resource.getURI()),
+ new Object[] { exception == null ? (Object) resource : exception });
+ basicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true));
+ return basicDiagnostic;
+ }
+ else if (exception != null) {
+ return new BasicDiagnostic(Diagnostic.ERROR,
+ "org.eclipse.papyrus.java.profile.editor",
+ 0,
+ getString("_UI_CreateModelError_message", resource.getURI()),
+ new Object[] { exception });
+ }
+ else {
+ return Diagnostic.OK_INSTANCE;
+ }
+ }
+
+ /**
+ * This is the method used by the framework to install your own controls.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void createPages() {
+ // Creates the model from the editor input
+ //
+ createModel();
+
+ // Only creates the other pages if there is something that can be edited
+ //
+ if (!getEditingDomain().getResourceSet().getResources().isEmpty()) {
+ // Create a page for the selection tree view.
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), JavaEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ Tree tree = new Tree(composite, SWT.MULTI);
+ TreeViewer newTreeViewer = new TreeViewer(tree);
+ return newTreeViewer;
+ }
+
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+
+ selectionViewer = (TreeViewer) viewerPane.getViewer();
+ selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+
+ selectionViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+ selectionViewer.setInput(editingDomain.getResourceSet());
+ selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+ viewerPane.setTitle(editingDomain.getResourceSet());
+
+ new AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory);
+
+ createContextMenuFor(selectionViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_SelectionPage_label"));
+ }
+
+ // Create a page for the parent tree view.
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), JavaEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ Tree tree = new Tree(composite, SWT.MULTI);
+ TreeViewer newTreeViewer = new TreeViewer(tree);
+ return newTreeViewer;
+ }
+
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+
+ parentViewer = (TreeViewer) viewerPane.getViewer();
+ parentViewer.setAutoExpandLevel(30);
+ parentViewer.setContentProvider(new ReverseAdapterFactoryContentProvider(adapterFactory));
+ parentViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ createContextMenuFor(parentViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_ParentPage_label"));
+ }
+
+ // This is the page for the list viewer
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), JavaEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ return new ListViewer(composite);
+ }
+
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+ listViewer = (ListViewer) viewerPane.getViewer();
+ listViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ listViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ createContextMenuFor(listViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_ListPage_label"));
+ }
+
+ // This is the page for the tree viewer
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), JavaEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ return new TreeViewer(composite);
+ }
+
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+ treeViewer = (TreeViewer) viewerPane.getViewer();
+ treeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ new AdapterFactoryTreeEditor(treeViewer.getTree(), adapterFactory);
+
+ createContextMenuFor(treeViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_TreePage_label"));
+ }
+
+ // This is the page for the table viewer.
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), JavaEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ return new TableViewer(composite);
+ }
+
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+ tableViewer = (TableViewer) viewerPane.getViewer();
+
+ Table table = tableViewer.getTable();
+ TableLayout layout = new TableLayout();
+ table.setLayout(layout);
+ table.setHeaderVisible(true);
+ table.setLinesVisible(true);
+
+ TableColumn objectColumn = new TableColumn(table, SWT.NONE);
+ layout.addColumnData(new ColumnWeightData(3, 100, true));
+ objectColumn.setText(getString("_UI_ObjectColumn_label"));
+ objectColumn.setResizable(true);
+
+ TableColumn selfColumn = new TableColumn(table, SWT.NONE);
+ layout.addColumnData(new ColumnWeightData(2, 100, true));
+ selfColumn.setText(getString("_UI_SelfColumn_label"));
+ selfColumn.setResizable(true);
+
+ tableViewer.setColumnProperties(new String[] { "a", "b" });
+ tableViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ tableViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ createContextMenuFor(tableViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_TablePage_label"));
+ }
+
+ // This is the page for the table tree viewer.
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), JavaEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ return new TreeViewer(composite);
+ }
+
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+
+ treeViewerWithColumns = (TreeViewer) viewerPane.getViewer();
+
+ Tree tree = treeViewerWithColumns.getTree();
+ tree.setLayoutData(new FillLayout());
+ tree.setHeaderVisible(true);
+ tree.setLinesVisible(true);
+
+ TreeColumn objectColumn = new TreeColumn(tree, SWT.NONE);
+ objectColumn.setText(getString("_UI_ObjectColumn_label"));
+ objectColumn.setResizable(true);
+ objectColumn.setWidth(250);
+
+ TreeColumn selfColumn = new TreeColumn(tree, SWT.NONE);
+ selfColumn.setText(getString("_UI_SelfColumn_label"));
+ selfColumn.setResizable(true);
+ selfColumn.setWidth(200);
+
+ treeViewerWithColumns.setColumnProperties(new String[] { "a", "b" });
+ treeViewerWithColumns.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ treeViewerWithColumns.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ createContextMenuFor(treeViewerWithColumns);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_TreeWithColumnsPage_label"));
+ }
+
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ @Override
+ public void run() {
+ setActivePage(0);
+ }
+ });
+ }
+
+ // Ensures that this editor will only display the page's tab
+ // area if there are more than one page
+ //
+ getContainer().addControlListener
+ (new ControlAdapter() {
+ boolean guard = false;
+
+ @Override
+ public void controlResized(ControlEvent event) {
+ if (!guard) {
+ guard = true;
+ hideTabs();
+ guard = false;
+ }
+ }
+ });
+
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ @Override
+ public void run() {
+ updateProblemIndication();
+ }
+ });
+ }
+
+ /**
+ * If there is just one page in the multi-page editor part,
+ * this hides the single tab at the bottom.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void hideTabs() {
+ if (getPageCount() <= 1) {
+ setPageText(0, "");
+ if (getContainer() instanceof CTabFolder) {
+ ((CTabFolder) getContainer()).setTabHeight(1);
+ Point point = getContainer().getSize();
+ getContainer().setSize(point.x, point.y + 6);
+ }
+ }
+ }
+
+ /**
+ * If there is more than one page in the multi-page editor part,
+ * this shows the tabs at the bottom.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void showTabs() {
+ if (getPageCount() > 1) {
+ setPageText(0, getString("_UI_SelectionPage_label"));
+ if (getContainer() instanceof CTabFolder) {
+ ((CTabFolder) getContainer()).setTabHeight(SWT.DEFAULT);
+ Point point = getContainer().getSize();
+ getContainer().setSize(point.x, point.y - 6);
+ }
+ }
+ }
+
+ /**
+ * This is used to track the active viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void pageChange(int pageIndex) {
+ super.pageChange(pageIndex);
+
+ if (contentOutlinePage != null) {
+ handleContentOutlineSelection(contentOutlinePage.getSelection());
+ }
+ }
+
+ /**
+ * This is how the framework determines which interfaces we implement.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ @Override
+ public Object getAdapter(Class key) {
+ if (key.equals(IContentOutlinePage.class)) {
+ return showOutlineView() ? getContentOutlinePage() : null;
+ }
+ else if (key.equals(IPropertySheetPage.class)) {
+ return getPropertySheetPage();
+ }
+ else if (key.equals(IGotoMarker.class)) {
+ return this;
+ }
+ else {
+ return super.getAdapter(key);
+ }
+ }
+
+ /**
+ * This accesses a cached version of the content outliner.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public IContentOutlinePage getContentOutlinePage() {
+ if (contentOutlinePage == null) {
+ // The content outline is just a tree.
+ //
+ class MyContentOutlinePage extends ContentOutlinePage {
+ @Override
+ public void createControl(Composite parent) {
+ super.createControl(parent);
+ contentOutlineViewer = getTreeViewer();
+ contentOutlineViewer.addSelectionChangedListener(this);
+
+ // Set up the tree viewer.
+ //
+ contentOutlineViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ contentOutlineViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+ contentOutlineViewer.setInput(editingDomain.getResourceSet());
+
+ // Make sure our popups work.
+ //
+ createContextMenuFor(contentOutlineViewer);
+
+ if (!editingDomain.getResourceSet().getResources().isEmpty()) {
+ // Select the root object in the view.
+ //
+ contentOutlineViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+ }
+ }
+
+ @Override
+ public void makeContributions(IMenuManager menuManager, IToolBarManager toolBarManager, IStatusLineManager statusLineManager) {
+ super.makeContributions(menuManager, toolBarManager, statusLineManager);
+ contentOutlineStatusLineManager = statusLineManager;
+ }
+
+ @Override
+ public void setActionBars(IActionBars actionBars) {
+ super.setActionBars(actionBars);
+ getActionBarContributor().shareGlobalActions(this, actionBars);
+ }
+ }
+
+ contentOutlinePage = new MyContentOutlinePage();
+
+ // Listen to selection so that we can handle it is a special way.
+ //
+ contentOutlinePage.addSelectionChangedListener
+ (new ISelectionChangedListener() {
+ // This ensures that we handle selections correctly.
+ //
+ @Override
+ public void selectionChanged(SelectionChangedEvent event) {
+ handleContentOutlineSelection(event.getSelection());
+ }
+ });
+ }
+
+ return contentOutlinePage;
+ }
+
+ /**
+ * This accesses a cached version of the property sheet.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public IPropertySheetPage getPropertySheetPage() {
+ if (propertySheetPage == null) {
+ propertySheetPage =
+ new ExtendedPropertySheetPage(editingDomain) {
+ @Override
+ public void setSelectionToViewer(List<?> selection) {
+ JavaEditor.this.setSelectionToViewer(selection);
+ JavaEditor.this.setFocus();
+ }
+
+ @Override
+ public void setActionBars(IActionBars actionBars) {
+ super.setActionBars(actionBars);
+ getActionBarContributor().shareGlobalActions(this, actionBars);
+ }
+ };
+ propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
+ }
+
+ return propertySheetPage;
+ }
+
+ /**
+ * This deals with how we want selection in the outliner to affect the other views.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void handleContentOutlineSelection(ISelection selection) {
+ if (currentViewerPane != null && !selection.isEmpty() && selection instanceof IStructuredSelection) {
+ Iterator<?> selectedElements = ((IStructuredSelection) selection).iterator();
+ if (selectedElements.hasNext()) {
+ // Get the first selected element.
+ //
+ Object selectedElement = selectedElements.next();
+
+ // If it's the selection viewer, then we want it to select the same selection as this selection.
+ //
+ if (currentViewerPane.getViewer() == selectionViewer) {
+ ArrayList<Object> selectionList = new ArrayList<Object>();
+ selectionList.add(selectedElement);
+ while (selectedElements.hasNext()) {
+ selectionList.add(selectedElements.next());
+ }
+
+ // Set the selection to the widget.
+ //
+ selectionViewer.setSelection(new StructuredSelection(selectionList));
+ }
+ else {
+ // Set the input to the widget.
+ //
+ if (currentViewerPane.getViewer().getInput() != selectedElement) {
+ currentViewerPane.getViewer().setInput(selectedElement);
+ currentViewerPane.setTitle(selectedElement);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * This is for implementing {@link IEditorPart} and simply tests the command stack.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isDirty() {
+ return ((BasicCommandStack) editingDomain.getCommandStack()).isSaveNeeded();
+ }
+
+ /**
+ * This is for implementing {@link IEditorPart} and simply saves the model file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void doSave(IProgressMonitor progressMonitor) {
+ // Save only resources that have actually changed.
+ //
+ final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
+ saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
+
+ // Do the work within an operation because this is a long running activity that modifies the workbench.
+ //
+ WorkspaceModifyOperation operation =
+ new WorkspaceModifyOperation() {
+ // This is the method that gets invoked when the operation runs.
+ //
+ @Override
+ public void execute(IProgressMonitor monitor) {
+ // Save the resources to the file system.
+ //
+ boolean first = true;
+ for (Resource resource : editingDomain.getResourceSet().getResources()) {
+ if ((first || !resource.getContents().isEmpty() || isPersisted(resource)) && !editingDomain.isReadOnly(resource)) {
+ try {
+ long timeStamp = resource.getTimeStamp();
+ resource.save(saveOptions);
+ if (resource.getTimeStamp() != timeStamp) {
+ savedResources.add(resource);
+ }
+ }
+ catch (Exception exception) {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ first = false;
+ }
+ }
+ }
+ };
+
+ updateProblemIndication = false;
+ try {
+ // This runs the options, and shows progress.
+ //
+ new ProgressMonitorDialog(getSite().getShell()).run(true, false, operation);
+
+ // Refresh the necessary state.
+ //
+ ((BasicCommandStack) editingDomain.getCommandStack()).saveIsDone();
+ firePropertyChange(IEditorPart.PROP_DIRTY);
+ } catch (Exception exception) {
+ // Something went wrong that shouldn't.
+ //
+ JavaEditorPlugin.INSTANCE.log(exception);
+ }
+ updateProblemIndication = true;
+ updateProblemIndication();
+ }
+
+ /**
+ * This returns whether something has been persisted to the URI of the specified resource.
+ * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected boolean isPersisted(Resource resource) {
+ boolean result = false;
+ try {
+ InputStream stream = editingDomain.getResourceSet().getURIConverter().createInputStream(resource.getURI());
+ if (stream != null) {
+ result = true;
+ stream.close();
+ }
+ } catch (IOException e) {
+ // Ignore
+ }
+ return result;
+ }
+
+ /**
+ * This always returns true because it is not currently supported.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isSaveAsAllowed() {
+ return true;
+ }
+
+ /**
+ * This also changes the editor's input.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void doSaveAs() {
+ SaveAsDialog saveAsDialog = new SaveAsDialog(getSite().getShell());
+ saveAsDialog.open();
+ IPath path = saveAsDialog.getResult();
+ if (path != null) {
+ IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
+ if (file != null) {
+ doSaveAs(URI.createPlatformResourceURI(file.getFullPath().toString(), true), new FileEditorInput(file));
+ }
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void doSaveAs(URI uri, IEditorInput editorInput) {
+ (editingDomain.getResourceSet().getResources().get(0)).setURI(uri);
+ setInputWithNotify(editorInput);
+ setPartName(editorInput.getName());
+ IProgressMonitor progressMonitor =
+ getActionBars().getStatusLineManager() != null ?
+ getActionBars().getStatusLineManager().getProgressMonitor() :
+ new NullProgressMonitor();
+ doSave(progressMonitor);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void gotoMarker(IMarker marker) {
+ try {
+ if (marker.getType().equals(EValidator.MARKER)) {
+ String uriAttribute = marker.getAttribute(EValidator.URI_ATTRIBUTE, null);
+ if (uriAttribute != null) {
+ URI uri = URI.createURI(uriAttribute);
+ EObject eObject = editingDomain.getResourceSet().getEObject(uri, true);
+ if (eObject != null) {
+ setSelectionToViewer(Collections.singleton(editingDomain.getWrapper(eObject)));
+ }
+ }
+ }
+ } catch (CoreException exception) {
+ JavaEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+
+ /**
+ * This is called during startup.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void init(IEditorSite site, IEditorInput editorInput) {
+ setSite(site);
+ setInputWithNotify(editorInput);
+ setPartName(editorInput.getName());
+ site.setSelectionProvider(this);
+ site.getPage().addPartListener(partListener);
+ ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setFocus() {
+ if (currentViewerPane != null) {
+ currentViewerPane.setFocus();
+ }
+ else {
+ getControl(getActivePage()).setFocus();
+ }
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void addSelectionChangedListener(ISelectionChangedListener listener) {
+ selectionChangedListeners.add(listener);
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void removeSelectionChangedListener(ISelectionChangedListener listener) {
+ selectionChangedListeners.remove(listener);
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to return this editor's overall selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public ISelection getSelection() {
+ return editorSelection;
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to set this editor's overall selection.
+ * Calling this result will notify the listeners.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setSelection(ISelection selection) {
+ editorSelection = selection;
+
+ for (ISelectionChangedListener listener : selectionChangedListeners) {
+ listener.selectionChanged(new SelectionChangedEvent(this, selection));
+ }
+ setStatusLineManager(selection);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setStatusLineManager(ISelection selection) {
+ IStatusLineManager statusLineManager = currentViewer != null && currentViewer == contentOutlineViewer ?
+ contentOutlineStatusLineManager : getActionBars().getStatusLineManager();
+
+ if (statusLineManager != null) {
+ if (selection instanceof IStructuredSelection) {
+ Collection<?> collection = ((IStructuredSelection) selection).toList();
+ switch (collection.size()) {
+ case 0: {
+ statusLineManager.setMessage(getString("_UI_NoObjectSelected"));
+ break;
+ }
+ case 1: {
+ String text = new AdapterFactoryItemDelegator(adapterFactory).getText(collection.iterator().next());
+ statusLineManager.setMessage(getString("_UI_SingleObjectSelected", text));
+ break;
+ }
+ default: {
+ statusLineManager.setMessage(getString("_UI_MultiObjectSelected", Integer.toString(collection.size())));
+ break;
+ }
+ }
+ }
+ else {
+ statusLineManager.setMessage("");
+ }
+ }
+ }
+
+ /**
+ * This looks up a string in the plugin's plugin.properties file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private static String getString(String key) {
+ return JavaEditorPlugin.INSTANCE.getString(key);
+ }
+
+ /**
+ * This looks up a string in plugin.properties, making a substitution.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private static String getString(String key, Object s1) {
+ return JavaEditorPlugin.INSTANCE.getString(key, new Object[] { s1 });
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.action.IMenuListener} to help fill the context menus with contributions from the Edit menu.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void menuAboutToShow(IMenuManager menuManager) {
+ ((IMenuListener) getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EditingDomainActionBarContributor getActionBarContributor() {
+ return (EditingDomainActionBarContributor) getEditorSite().getActionBarContributor();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public IActionBars getActionBars() {
+ return getActionBarContributor().getActionBars();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public AdapterFactory getAdapterFactory() {
+ return adapterFactory;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void dispose() {
+ updateProblemIndication = false;
+
+ ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener);
+
+ getSite().getPage().removePartListener(partListener);
+
+ adapterFactory.dispose();
+
+ if (getActionBarContributor().getActiveEditor() == this) {
+ getActionBarContributor().setActiveEditor(null);
+ }
+
+ if (propertySheetPage != null) {
+ propertySheetPage.dispose();
+ }
+
+ if (contentOutlinePage != null) {
+ contentOutlinePage.dispose();
+ }
+
+ super.dispose();
+ }
+
+ /**
+ * Returns whether the outline view should be presented to the user.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected boolean showOutlineView() {
+ return true;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/src/org/eclipse/papyrus/java/profile/java/presentation/JavaEditorPlugin.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/src/org/eclipse/papyrus/java/profile/java/presentation/JavaEditorPlugin.java
new file mode 100644
index 00000000000..9db89df6630
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/src/org/eclipse/papyrus/java/profile/java/presentation/JavaEditorPlugin.java
@@ -0,0 +1,104 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java.presentation;
+
+import org.eclipse.emf.common.EMFPlugin;
+import org.eclipse.emf.common.ui.EclipseUIPlugin;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.provider.EcoreEditPlugin;
+import org.eclipse.uml2.uml.edit.UMLEditPlugin;
+
+/**
+ * This is the central singleton for the Java editor plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public final class JavaEditorPlugin extends EMFPlugin {
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static final JavaEditorPlugin INSTANCE = new JavaEditorPlugin();
+
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private static Implementation plugin;
+
+ /**
+ * Create the instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JavaEditorPlugin() {
+ super(new ResourceLocator[] {
+ UMLEditPlugin.INSTANCE,
+ EcoreEditPlugin.INSTANCE,
+ });
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the singleton instance.
+ * @generated
+ */
+ @Override
+ public ResourceLocator getPluginResourceLocator() {
+ return plugin;
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the singleton instance.
+ * @generated
+ */
+ public static Implementation getPlugin() {
+ return plugin;
+ }
+
+ /**
+ * The actual implementation of the Eclipse <b>Plugin</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static class Implementation extends EclipseUIPlugin {
+ /**
+ * Creates an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Implementation() {
+ super();
+
+ // Remember the static instance.
+ //
+ plugin = this;
+ }
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/src/org/eclipse/papyrus/java/profile/java/presentation/JavaModelWizard.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/src/org/eclipse/papyrus/java/profile/java/presentation/JavaModelWizard.java
new file mode 100644
index 00000000000..8a22e9e9187
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile.editor/src/org/eclipse/papyrus/java/profile/java/presentation/JavaModelWizard.java
@@ -0,0 +1,640 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java.presentation;
+
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.MissingResourceException;
+import java.util.StringTokenizer;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.emf.common.CommonPlugin;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.xmi.XMLResource;
+import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.papyrus.java.profile.java.JavaFactory;
+import org.eclipse.papyrus.java.profile.java.JavaPackage;
+import org.eclipse.papyrus.java.profile.java.provider.JavaEditPlugin;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.ISetSelectionTarget;
+
+
+/**
+ * This is a simple wizard for creating a new model file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JavaModelWizard extends Wizard implements INewWizard {
+ /**
+ * The supported extensions for created files.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static final List<String> FILE_EXTENSIONS =
+ Collections.unmodifiableList(Arrays.asList(JavaEditorPlugin.INSTANCE.getString("_UI_JavaEditorFilenameExtensions").split("\\s*,\\s*")));
+
+ /**
+ * A formatted list of supported file extensions, suitable for display.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static final String FORMATTED_FILE_EXTENSIONS =
+ JavaEditorPlugin.INSTANCE.getString("_UI_JavaEditorFilenameExtensions").replaceAll("\\s*,\\s*", ", ");
+
+ /**
+ * This caches an instance of the model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JavaPackage javaPackage = JavaPackage.eINSTANCE;
+
+ /**
+ * This caches an instance of the model factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JavaFactory javaFactory = javaPackage.getJavaFactory();
+
+ /**
+ * This is the file creation page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JavaModelWizardNewFileCreationPage newFileCreationPage;
+
+ /**
+ * This is the initial object creation page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JavaModelWizardInitialObjectCreationPage initialObjectCreationPage;
+
+ /**
+ * Remember the selection during initialization for populating the default container.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IStructuredSelection selection;
+
+ /**
+ * Remember the workbench during initialization.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IWorkbench workbench;
+
+ /**
+ * Caches the names of the types that can be created as the root object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected List<String> initialObjectNames;
+
+ /**
+ * This just records the information.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void init(IWorkbench workbench, IStructuredSelection selection) {
+ this.workbench = workbench;
+ this.selection = selection;
+ setWindowTitle(JavaEditorPlugin.INSTANCE.getString("_UI_Wizard_label"));
+ setDefaultPageImageDescriptor(ExtendedImageRegistry.INSTANCE.getImageDescriptor(JavaEditorPlugin.INSTANCE.getImage("full/wizban/NewJava")));
+ }
+
+ /**
+ * Returns the names of the types that can be created as the root object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Collection<String> getInitialObjectNames() {
+ if (initialObjectNames == null) {
+ initialObjectNames = new ArrayList<String>();
+ for (EClassifier eClassifier : javaPackage.getEClassifiers()) {
+ if (eClassifier instanceof EClass) {
+ EClass eClass = (EClass) eClassifier;
+ if (!eClass.isAbstract()) {
+ initialObjectNames.add(eClass.getName());
+ }
+ }
+ }
+ Collections.sort(initialObjectNames, CommonPlugin.INSTANCE.getComparator());
+ }
+ return initialObjectNames;
+ }
+
+ /**
+ * Create a new model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected EObject createInitialModel() {
+ EClass eClass = (EClass) javaPackage.getEClassifier(initialObjectCreationPage.getInitialObjectName());
+ EObject rootObject = javaFactory.create(eClass);
+ return rootObject;
+ }
+
+ /**
+ * Do the work after everything is specified.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean performFinish() {
+ try {
+ // Remember the file.
+ //
+ final IFile modelFile = getModelFile();
+
+ // Do the work within an operation.
+ //
+ WorkspaceModifyOperation operation =
+ new WorkspaceModifyOperation() {
+ @Override
+ protected void execute(IProgressMonitor progressMonitor) {
+ try {
+ // Create a resource set
+ //
+ ResourceSet resourceSet = new ResourceSetImpl();
+
+ // Get the URI of the model file.
+ //
+ URI fileURI = URI.createPlatformResourceURI(modelFile.getFullPath().toString(), true);
+
+ // Create a resource for this file.
+ //
+ Resource resource = resourceSet.createResource(fileURI);
+
+ // Add the initial model object to the contents.
+ //
+ EObject rootObject = createInitialModel();
+ if (rootObject != null) {
+ resource.getContents().add(rootObject);
+ }
+
+ // Save the contents of the resource to the file system.
+ //
+ Map<Object, Object> options = new HashMap<Object, Object>();
+ options.put(XMLResource.OPTION_ENCODING, initialObjectCreationPage.getEncoding());
+ resource.save(options);
+ }
+ catch (Exception exception) {
+ JavaEditorPlugin.INSTANCE.log(exception);
+ }
+ finally {
+ progressMonitor.done();
+ }
+ }
+ };
+
+ getContainer().run(false, false, operation);
+
+ // Select the new file resource in the current view.
+ //
+ IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
+ IWorkbenchPage page = workbenchWindow.getActivePage();
+ final IWorkbenchPart activePart = page.getActivePart();
+ if (activePart instanceof ISetSelectionTarget) {
+ final ISelection targetSelection = new StructuredSelection(modelFile);
+ getShell().getDisplay().asyncExec
+ (new Runnable() {
+ @Override
+ public void run() {
+ ((ISetSelectionTarget) activePart).selectReveal(targetSelection);
+ }
+ });
+ }
+
+ // Open an editor on the new file.
+ //
+ try {
+ page.openEditor
+ (new FileEditorInput(modelFile),
+ workbench.getEditorRegistry().getDefaultEditor(modelFile.getFullPath().toString()).getId());
+ } catch (PartInitException exception) {
+ MessageDialog.openError(workbenchWindow.getShell(), JavaEditorPlugin.INSTANCE.getString("_UI_OpenEditorError_label"), exception.getMessage());
+ return false;
+ }
+
+ return true;
+ } catch (Exception exception) {
+ JavaEditorPlugin.INSTANCE.log(exception);
+ return false;
+ }
+ }
+
+ /**
+ * This is the one page of the wizard.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public class JavaModelWizardNewFileCreationPage extends WizardNewFileCreationPage {
+ /**
+ * Pass in the selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JavaModelWizardNewFileCreationPage(String pageId, IStructuredSelection selection) {
+ super(pageId, selection);
+ }
+
+ /**
+ * The framework calls this to see if the file is correct.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected boolean validatePage() {
+ if (super.validatePage()) {
+ String extension = new Path(getFileName()).getFileExtension();
+ if (extension == null || !FILE_EXTENSIONS.contains(extension)) {
+ String key = FILE_EXTENSIONS.size() > 1 ? "_WARN_FilenameExtensions" : "_WARN_FilenameExtension";
+ setErrorMessage(JavaEditorPlugin.INSTANCE.getString(key, new Object[] { FORMATTED_FILE_EXTENSIONS }));
+ return false;
+ }
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public IFile getModelFile() {
+ return ResourcesPlugin.getWorkspace().getRoot().getFile(getContainerFullPath().append(getFileName()));
+ }
+ }
+
+ /**
+ * This is the page where the type of object to create is selected.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public class JavaModelWizardInitialObjectCreationPage extends WizardPage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Combo initialObjectField;
+
+ /**
+ * @generated
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ protected List<String> encodings;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Combo encodingField;
+
+ /**
+ * Pass in the selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JavaModelWizardInitialObjectCreationPage(String pageId) {
+ super(pageId);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void createControl(Composite parent) {
+ Composite composite = new Composite(parent, SWT.NONE);
+ {
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 1;
+ layout.verticalSpacing = 12;
+ composite.setLayout(layout);
+
+ GridData data = new GridData();
+ data.verticalAlignment = GridData.FILL;
+ data.grabExcessVerticalSpace = true;
+ data.horizontalAlignment = GridData.FILL;
+ composite.setLayoutData(data);
+ }
+
+ Label containerLabel = new Label(composite, SWT.LEFT);
+ {
+ containerLabel.setText(JavaEditorPlugin.INSTANCE.getString("_UI_ModelObject"));
+
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ containerLabel.setLayoutData(data);
+ }
+
+ initialObjectField = new Combo(composite, SWT.BORDER);
+ {
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ data.grabExcessHorizontalSpace = true;
+ initialObjectField.setLayoutData(data);
+ }
+
+ for (String objectName : getInitialObjectNames()) {
+ initialObjectField.add(getLabel(objectName));
+ }
+
+ if (initialObjectField.getItemCount() == 1) {
+ initialObjectField.select(0);
+ }
+ initialObjectField.addModifyListener(validator);
+
+ Label encodingLabel = new Label(composite, SWT.LEFT);
+ {
+ encodingLabel.setText(JavaEditorPlugin.INSTANCE.getString("_UI_XMLEncoding"));
+
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ encodingLabel.setLayoutData(data);
+ }
+ encodingField = new Combo(composite, SWT.BORDER);
+ {
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ data.grabExcessHorizontalSpace = true;
+ encodingField.setLayoutData(data);
+ }
+
+ for (String encoding : getEncodings()) {
+ encodingField.add(encoding);
+ }
+
+ encodingField.select(0);
+ encodingField.addModifyListener(validator);
+
+ setPageComplete(validatePage());
+ setControl(composite);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ModifyListener validator =
+ new ModifyListener() {
+ @Override
+ public void modifyText(ModifyEvent e) {
+ setPageComplete(validatePage());
+ }
+ };
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected boolean validatePage() {
+ return getInitialObjectName() != null && getEncodings().contains(encodingField.getText());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setVisible(boolean visible) {
+ super.setVisible(visible);
+ if (visible) {
+ if (initialObjectField.getItemCount() == 1) {
+ initialObjectField.clearSelection();
+ encodingField.setFocus();
+ }
+ else {
+ encodingField.clearSelection();
+ initialObjectField.setFocus();
+ }
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getInitialObjectName() {
+ String label = initialObjectField.getText();
+
+ for (String name : getInitialObjectNames()) {
+ if (getLabel(name).equals(label)) {
+ return name;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getEncoding() {
+ return encodingField.getText();
+ }
+
+ /**
+ * Returns the label for the specified type name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected String getLabel(String typeName) {
+ try {
+ return JavaEditPlugin.INSTANCE.getString("_UI_" + typeName + "_type");
+ } catch (MissingResourceException mre) {
+ JavaEditorPlugin.INSTANCE.log(mre);
+ }
+ return typeName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected Collection<String> getEncodings() {
+ if (encodings == null) {
+ encodings = new ArrayList<String>();
+ for (StringTokenizer stringTokenizer = new StringTokenizer(JavaEditorPlugin.INSTANCE.getString("_UI_XMLEncodingChoices")); stringTokenizer.hasMoreTokens();) {
+ encodings.add(stringTokenizer.nextToken());
+ }
+ }
+ return encodings;
+ }
+ }
+
+ /**
+ * The framework calls this to create the contents of the wizard.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void addPages() {
+ // Create a page, set the title, and the initial model file name.
+ //
+ newFileCreationPage = new JavaModelWizardNewFileCreationPage("Whatever", selection);
+ newFileCreationPage.setTitle(JavaEditorPlugin.INSTANCE.getString("_UI_JavaModelWizard_label"));
+ newFileCreationPage.setDescription(JavaEditorPlugin.INSTANCE.getString("_UI_JavaModelWizard_description"));
+ newFileCreationPage.setFileName(JavaEditorPlugin.INSTANCE.getString("_UI_JavaEditorFilenameDefaultBase") + "." + FILE_EXTENSIONS.get(0));
+ addPage(newFileCreationPage);
+
+ // Try and get the resource selection to determine a current directory for the file dialog.
+ //
+ if (selection != null && !selection.isEmpty()) {
+ // Get the resource...
+ //
+ Object selectedElement = selection.iterator().next();
+ if (selectedElement instanceof IResource) {
+ // Get the resource parent, if its a file.
+ //
+ IResource selectedResource = (IResource) selectedElement;
+ if (selectedResource.getType() == IResource.FILE) {
+ selectedResource = selectedResource.getParent();
+ }
+
+ // This gives us a directory...
+ //
+ if (selectedResource instanceof IFolder || selectedResource instanceof IProject) {
+ // Set this for the container.
+ //
+ newFileCreationPage.setContainerFullPath(selectedResource.getFullPath());
+
+ // Make up a unique new name here.
+ //
+ String defaultModelBaseFilename = JavaEditorPlugin.INSTANCE.getString("_UI_JavaEditorFilenameDefaultBase");
+ String defaultModelFilenameExtension = FILE_EXTENSIONS.get(0);
+ String modelFilename = defaultModelBaseFilename + "." + defaultModelFilenameExtension;
+ for (int i = 1; ((IContainer) selectedResource).findMember(modelFilename) != null; ++i) {
+ modelFilename = defaultModelBaseFilename + i + "." + defaultModelFilenameExtension;
+ }
+ newFileCreationPage.setFileName(modelFilename);
+ }
+ }
+ }
+ initialObjectCreationPage = new JavaModelWizardInitialObjectCreationPage("Whatever2");
+ initialObjectCreationPage.setTitle(JavaEditorPlugin.INSTANCE.getString("_UI_JavaModelWizard_label"));
+ initialObjectCreationPage.setDescription(JavaEditorPlugin.INSTANCE.getString("_UI_Wizard_initial_object_description"));
+ addPage(initialObjectCreationPage);
+ }
+
+ /**
+ * Get the file from the page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public IFile getModelFile() {
+ return newFileCreationPage.getModelFile();
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/.classpath b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/.classpath
new file mode 100644
index 00000000000..ad32c83a788
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/.project b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/.project
new file mode 100644
index 00000000000..f90e9a5b55b
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.java.profile</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/.settings/org.eclipse.jdt.core.prefs b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..94d61f00da6
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,291 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=260
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=false
+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=260
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=5
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/.settings/org.eclipse.jdt.ui.prefs b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 00000000000..954281dbc31
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,68 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_functional_interfaces=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=false
+cleanup.format_source_code=false
+cleanup.format_source_code_changes_only=false
+cleanup.insert_inferred_type_arguments=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=false
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_redundant_type_arguments=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_anonymous_class_creation=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_lambda=true
+cleanup.use_parentheses_in_expressions=false
+cleanup.use_this_for_non_static_field_access=false
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=false
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_type_arguments=false
+cleanup_profile=_Papyrus
+cleanup_settings_version=2
+eclipse.preferences.version=1
+formatter_profile=_Papyrus
+formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * Constructor.\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*****************************************************************************\n * Copyright (c) ${year} CEA LIST and others.\n * \n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n * CEA LIST - Initial API and implementation\n * \n *****************************************************************************/\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\n * ${see_to_overridden}\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${see_to_target}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/META-INF/MANIFEST.MF b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..1cd3c3071ad
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;visibility:=reexport,
+ org.eclipse.uml2.uml;visibility:=reexport
+Export-Package: org.eclipse.papyrus.java.profile.java,
+ org.eclipse.papyrus.java.profile.java.impl,
+ org.eclipse.papyrus.java.profile.java.util
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-ClassPath: .
+Bundle-Version: 1.2.0.qualifier
+Bundle-Localization: plugin
+Bundle-Name: %pluginName
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.java.profile;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/about.html b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/about.html
new file mode 100644
index 00000000000..82d49bf5f81
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/build.properties b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/build.properties
new file mode 100644
index 00000000000..a3690e680da
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/build.properties
@@ -0,0 +1,17 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+bin.includes = .,\
+ models/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties,\
+ icons/,\
+ about.html
+jars.compile.order = .
+source.. = src/
+output.. = bin/
+src.includes = about.html
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/icons/javaprofile.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/icons/javaprofile.gif
new file mode 100644
index 00000000000..34fb3c9d8cb
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/icons/javaprofile.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/models/java.ecore b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/models/java.ecore
new file mode 100644
index 00000000000..f2ce423a3eb
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/models/java.ecore
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="java"
+ nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+ <eClassifiers xsi:type="ecore:EClass" name="JavaClass" eSuperTypes="#//JavaGen">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Classifier" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Classifier"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isFinal" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isAbstract" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isStatic" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="explicitPlainTextRequiredImports"
+ ordered="false" unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="explicitRequiredImports"
+ ordered="false" upperBound="-1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Classifier"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="JavaGen" abstract="true" eSuperTypes="#//JavaNamedElement">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="srcName" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="projectName" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="JavaNamedElement" abstract="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" unique="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="author" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="comment" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isGenerated" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="JavaPackage_" eSuperTypes="#//JavaGen">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageName" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Package" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="JavaMethod" eSuperTypes="#//JavaNamedElement">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isStatic" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isFinal" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isAbstract" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isNative" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isSynchronized" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isConstructor" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Operation" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Operation"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="explicitPlainTextRequiredImports"
+ ordered="false" unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="explicitRequiredImports"
+ ordered="false" upperBound="-1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Classifier"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="JavaParameter" eSuperTypes="#//JavaNamedElement">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isFinal" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Parameter" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Parameter"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="JavaProperty" eSuperTypes="#//JavaNamedElement">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isAbstract" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isFinal" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Property" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isTransient" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="generateGetter" ordered="false"
+ lowerBound="1" eType="#//TrueFalseDefault" defaultValueLiteral="default"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="generateSetter" ordered="false"
+ lowerBound="1" eType="#//TrueFalseDefault" defaultValueLiteral="default"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isStatic" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="explicitPlainTextRequiredImports"
+ ordered="false" unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="explicitRequiredImports"
+ ordered="false" upperBound="-1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Classifier"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="TrueFalseDefault">
+ <eLiterals name="true"/>
+ <eLiterals name="false" value="1"/>
+ <eLiterals name="default" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PrimitiveType" eSuperTypes="#//JavaGen">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="implementationClass" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_PrimitiveType" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//PrimitiveType"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="collectionImplementationClass"
+ ordered="false" unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="JavaProject" eSuperTypes="#//JavaGen">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Package" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="JavaSrcFolder" eSuperTypes="#//JavaGen">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Package" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/models/java.profile.di b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/models/java.profile.di
new file mode 100644
index 00000000000..61e2f6a31f3
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/models/java.profile.di
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="ASCII"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi">
+ <pageList>
+ <availablePage>
+ <emfPageIdentifier href="java.profile.notation#_G11WsPfZEd-PNYpgO1g6_g"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="java.profile.notation#_uqGAEGXkEeCx-IU0sjGPKA"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="java.profile.notation#_uBztsIXFEeCQsIB6sI2lFg"/>
+ </availablePage>
+ </pageList>
+ <sashModel currentSelection="//@sashModel/@windows.0/@children.0">
+ <windows>
+ <children xsi:type="di:TabFolder">
+ <children>
+ <emfPageIdentifier href="java.profile.notation#_G11WsPfZEd-PNYpgO1g6_g"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="java.profile.notation#_uqGAEGXkEeCx-IU0sjGPKA"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="java.profile.notation#_uBztsIXFEeCQsIB6sI2lFg"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+</di:SashWindowsMngr>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/models/java.profile.genmodel b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/models/java.profile.genmodel
new file mode 100644
index 00000000000..c2f4684879d
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/models/java.profile.genmodel
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:genmodel="http://www.eclipse.org/uml2/2.2.0/GenModel" modelDirectory="/org.eclipse.papyrus.java.profile/src"
+ modelPluginID="org.eclipse.papyrus.java.profile" modelName="Java" importerID="org.eclipse.uml2.uml.ecore.importer"
+ complianceLevel="6.0" copyrightFields="false" usedGenPackages="platform:/plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml platform:/plugin/org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore">
+ <genAnnotations source="http://www.eclipse.org/emf/2002/GenModel/importer/org.eclipse.uml2.uml.ecore.importer">
+ <details key="ECORE_TAGGED_VALUES" value="PROCESS"/>
+ <details key="UNION_PROPERTIES" value="REPORT"/>
+ <details key="DUPLICATE_FEATURES" value="DISCARD"/>
+ <details key="SUBSETTING_PROPERTIES" value="REPORT"/>
+ <details key="COMMENTS" value="PROCESS"/>
+ <details key="DUPLICATE_FEATURE_INHERITANCE" value="DISCARD"/>
+ <details key="DUPLICATE_OPERATIONS" value="DISCARD"/>
+ <details key="INVARIANT_CONSTRAINTS" value="PROCESS"/>
+ <details key="REDEFINING_PROPERTIES" value="REPORT"/>
+ <details key="ANNOTATION_DETAILS" value="PROCESS"/>
+ <details key="DUPLICATE_OPERATION_INHERITANCE" value="DISCARD"/>
+ <details key="REDEFINING_OPERATIONS" value="REPORT"/>
+ <details key="DERIVED_FEATURES" value="PROCESS"/>
+ <details key="OPERATION_BODIES" value="IGNORE"/>
+ <details key="CAMEL_CASE_NAMES" value="IGNORE"/>
+ <details key="SUPER_CLASS_ORDER" value="PROCESS"/>
+ </genAnnotations>
+ <foreignModel>java.profile.uml</foreignModel>
+ <genPackages xsi:type="genmodel:GenPackage" prefix="Java" basePackage="org.eclipse.papyrus.java.profile"
+ resource="XML" disposableProviderFactory="true" ecorePackage="java.ecore#/">
+ <genEnums xsi:type="genmodel:GenEnum" typeSafeEnumCompatible="false" ecoreEnum="java.ecore#//TrueFalseDefault">
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="java.ecore#//TrueFalseDefault/true"/>
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="java.ecore#//TrueFalseDefault/false"/>
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="java.ecore#//TrueFalseDefault/default"/>
+ </genEnums>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="java.ecore#//JavaClass">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference java.ecore#//JavaClass/base_Classifier"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaClass/isFinal"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaClass/isAbstract"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaClass/isStatic"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaClass/explicitPlainTextRequiredImports"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference java.ecore#//JavaClass/explicitRequiredImports"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="java.ecore#//JavaGen">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaGen/srcName"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaGen/projectName"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="java.ecore#//JavaNamedElement">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaNamedElement/name"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaNamedElement/author"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaNamedElement/version"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaNamedElement/comment"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaNamedElement/isGenerated"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="java.ecore#//JavaPackage_">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaPackage_/packageName"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference java.ecore#//JavaPackage_/base_Package"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="java.ecore#//JavaMethod">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaMethod/isStatic"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaMethod/isFinal"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaMethod/isAbstract"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaMethod/isNative"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaMethod/isSynchronized"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaMethod/isConstructor"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference java.ecore#//JavaMethod/base_Operation"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaMethod/explicitPlainTextRequiredImports"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference java.ecore#//JavaMethod/explicitRequiredImports"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="java.ecore#//JavaParameter">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaParameter/isFinal"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference java.ecore#//JavaParameter/base_Parameter"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="java.ecore#//JavaProperty">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaProperty/isAbstract"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaProperty/isFinal"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference java.ecore#//JavaProperty/base_Property"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaProperty/isTransient"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaProperty/generateGetter"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaProperty/generateSetter"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaProperty/isStatic"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaProperty/explicitPlainTextRequiredImports"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference java.ecore#//JavaProperty/explicitRequiredImports"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="java.ecore#//PrimitiveType">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//PrimitiveType/implementationClass"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference java.ecore#//PrimitiveType/base_PrimitiveType"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//PrimitiveType/collectionImplementationClass"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="java.ecore#//JavaProject">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference java.ecore#//JavaProject/base_Package"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="java.ecore#//JavaSrcFolder">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference java.ecore#//JavaSrcFolder/base_Package"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/models/java.profile.notation b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/models/java.profile.notation
new file mode 100644
index 00000000000..a5335966efb
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/models/java.profile.notation
@@ -0,0 +1,821 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/3.0.0/UML">
+ <notation:Diagram xmi:id="_G11WsPfZEd-PNYpgO1g6_g" type="PapyrusUMLProfileDiagram" name="overview" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_I5t6APfZEd-PNYpgO1g6_g" type="1026" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I5t6AvfZEd-PNYpgO1g6_g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I5t6A_fZEd-PNYpgO1g6_g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I53D8PfZEd-PNYpgO1g6_g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I53D8ffZEd-PNYpgO1g6_g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I53D8vfZEd-PNYpgO1g6_g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I53D8_fZEd-PNYpgO1g6_g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_I53D9PfZEd-PNYpgO1g6_g" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_I53D9ffZEd-PNYpgO1g6_g" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_qnGaoPfZEd-PNYpgO1g6_g" type="3002" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="java.profile.uml#_1YjagN0zEd6P1qtlpBOZyg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qnGaoffZEd-PNYpgO1g6_g" x="54" y="23"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qn2BgPfZEd-PNYpgO1g6_g" type="3002" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="java.profile.uml#_GlqexN2MEd6P1qtlpBOZyg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qn2BgffZEd-PNYpgO1g6_g" x="54" y="23"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qn_ygPfZEd-PNYpgO1g6_g" type="3002" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="java.profile.uml#_GlqewN2MEd6P1qtlpBOZyg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qn_ygffZEd-PNYpgO1g6_g" x="54" y="23"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_PvSTcGnDEeCLCLVVSfvYsw" type="3002" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="java.profile.uml#_GlqexN2MEd6P1qtlpBOZyg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_PvSTcWnDEeCLCLVVSfvYsw" x="60" y="43"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__vPLsIAeEeGqdId9TXdXhQ" type="3002" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:Property" href="java.profile.uml#_YAcWgIADEeGqdId9TXdXhQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__vPLsYAeEeGqdId9TXdXhQ" x="115" y="67"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_I53D9vfZEd-PNYpgO1g6_g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_I53D9_fZEd-PNYpgO1g6_g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I53D-PfZEd-PNYpgO1g6_g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_I53D-ffZEd-PNYpgO1g6_g" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_I53D-vfZEd-PNYpgO1g6_g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_I53D-_fZEd-PNYpgO1g6_g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I53D_PfZEd-PNYpgO1g6_g"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="java.profile.uml#_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I5t6AffZEd-PNYpgO1g6_g" x="44" y="414" width="178" height="157"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_I8PpkPfZEd-PNYpgO1g6_g" type="1026" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I8PpkvfZEd-PNYpgO1g6_g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I8Ppk_fZEd-PNYpgO1g6_g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I8PplPfZEd-PNYpgO1g6_g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I8PplffZEd-PNYpgO1g6_g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I8PplvfZEd-PNYpgO1g6_g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I8Ppl_fZEd-PNYpgO1g6_g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_I8PpmPfZEd-PNYpgO1g6_g" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_I8PpmffZEd-PNYpgO1g6_g" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_xbaAAPfZEd-PNYpgO1g6_g" type="3002" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="java.profile.uml#_k58VkN2MEd6P1qtlpBOZyg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xbaAAffZEd-PNYpgO1g6_g" x="127" y="19"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_xcJm4PfZEd-PNYpgO1g6_g" type="3002" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="java.profile.uml#_gi_jcN2MEd6P1qtlpBOZyg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xcJm4ffZEd-PNYpgO1g6_g" x="127" y="19"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_xcdI4PfZEd-PNYpgO1g6_g" type="3002" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="java.profile.uml#_iuBQkN2MEd6P1qtlpBOZyg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xcdI4ffZEd-PNYpgO1g6_g" x="127" y="19"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_rQZI0PiVEd-PA5X9eH0eag" type="3002" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="java.profile.uml#_rOwKEPiVEd-PA5X9eH0eag"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_rQZI0fiVEd-PA5X9eH0eag"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__LU6YPfeEd-Ui7vEO4yc0g" type="3002" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_b8Eh4PffEd-Ui7vEO4yc0g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cEkWkPffEd-Ui7vEO4yc0g" key="CustomAppearance_MaskValue" value="62"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="java.profile.uml#__JixsPfeEd-Ui7vEO4yc0g"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__LU6YffeEd-Ui7vEO4yc0g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_I8PpmvfZEd-PNYpgO1g6_g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_I8Ppm_fZEd-PNYpgO1g6_g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I8PpnPfZEd-PNYpgO1g6_g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_I8PpnffZEd-PNYpgO1g6_g" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_I8PpnvfZEd-PNYpgO1g6_g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_I8Ppn_fZEd-PNYpgO1g6_g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I8PpoPfZEd-PNYpgO1g6_g"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="java.profile.uml#_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I8PpkffZEd-PNYpgO1g6_g" x="732" y="36" width="277" height="151"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_OnYncPfZEd-PNYpgO1g6_g" type="1031" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OnYncvfZEd-PNYpgO1g6_g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OnYnc_fZEd-PNYpgO1g6_g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OnYndPfZEd-PNYpgO1g6_g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OnYndffZEd-PNYpgO1g6_g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OnYndvfZEd-PNYpgO1g6_g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OnYnd_fZEd-PNYpgO1g6_g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_OnYnePfZEd-PNYpgO1g6_g" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OnYncffZEd-PNYpgO1g6_g" x="84" y="642"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Q1_NAPfZEd-PNYpgO1g6_g" type="1026" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q1_NAvfZEd-PNYpgO1g6_g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Q1_NA_fZEd-PNYpgO1g6_g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q1_NBPfZEd-PNYpgO1g6_g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Q1_NBffZEd-PNYpgO1g6_g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q1_NBvfZEd-PNYpgO1g6_g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Q1_NB_fZEd-PNYpgO1g6_g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Q1_NCPfZEd-PNYpgO1g6_g" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Q1_NCffZEd-PNYpgO1g6_g" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_sXdlAPfZEd-PNYpgO1g6_g" type="3002" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="java.profile.uml#_c7P2IN2LEd6P1qtlpBOZyg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sXdlAffZEd-PNYpgO1g6_g" x="35" y="16"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_sYDa4PfZEd-PNYpgO1g6_g" type="3002" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="java.profile.uml#_XbSNgN2LEd6P1qtlpBOZyg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sYDa4ffZEd-PNYpgO1g6_g" x="35" y="16"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_sYzBwPfZEd-PNYpgO1g6_g" type="3002" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="java.profile.uml#_c7P2JN2LEd6P1qtlpBOZyg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sYzBwffZEd-PNYpgO1g6_g" x="35" y="16"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_sZPtsPfZEd-PNYpgO1g6_g" type="3002" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="java.profile.uml#_d-mJgN2LEd6P1qtlpBOZyg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sZPtsffZEd-PNYpgO1g6_g" x="35" y="16"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_sZiooPfZEd-PNYpgO1g6_g" type="3002" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="java.profile.uml#_XaPEoN2LEd6P1qtlpBOZyg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sZiooffZEd-PNYpgO1g6_g" x="35" y="16"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_sZ_UkPfZEd-PNYpgO1g6_g" type="3002" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="java.profile.uml#_d-mJhN2LEd6P1qtlpBOZyg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sZ_UkffZEd-PNYpgO1g6_g" x="35" y="16"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Q1_NCvfZEd-PNYpgO1g6_g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Q1_NC_fZEd-PNYpgO1g6_g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Q1_NDPfZEd-PNYpgO1g6_g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Q1_NDffZEd-PNYpgO1g6_g" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Q1_NDvfZEd-PNYpgO1g6_g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Q1_ND_fZEd-PNYpgO1g6_g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Q1_NEPfZEd-PNYpgO1g6_g"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="java.profile.uml#_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Q1_NAffZEd-PNYpgO1g6_g" x="930" y="414" width="196" height="175"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SDeT0PfZEd-PNYpgO1g6_g" type="1026" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SDeT0vfZEd-PNYpgO1g6_g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SDeT0_fZEd-PNYpgO1g6_g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SDeT1PfZEd-PNYpgO1g6_g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SDeT1ffZEd-PNYpgO1g6_g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SDeT1vfZEd-PNYpgO1g6_g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SDeT1_fZEd-PNYpgO1g6_g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SDeT2PfZEd-PNYpgO1g6_g" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SDeT2ffZEd-PNYpgO1g6_g" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_0WkJkPfZEd-PNYpgO1g6_g" type="3002" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="java.profile.uml#_Hb_KwN00Ed6P1qtlpBOZyg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0WkJkffZEd-PNYpgO1g6_g" x="46" y="18"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SDeT2vfZEd-PNYpgO1g6_g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SDeT2_fZEd-PNYpgO1g6_g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SDeT3PfZEd-PNYpgO1g6_g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SDeT3ffZEd-PNYpgO1g6_g" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SDeT3vfZEd-PNYpgO1g6_g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SDeT3_fZEd-PNYpgO1g6_g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SDeT4PfZEd-PNYpgO1g6_g"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="java.profile.uml#_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SDeT0ffZEd-PNYpgO1g6_g" x="732" y="414" width="187" height="115"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TFCegPfZEd-PNYpgO1g6_g" type="1026" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TFCegvfZEd-PNYpgO1g6_g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TFCeg_fZEd-PNYpgO1g6_g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TFCehPfZEd-PNYpgO1g6_g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TFCehffZEd-PNYpgO1g6_g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TFCehvfZEd-PNYpgO1g6_g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TFCeh_fZEd-PNYpgO1g6_g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TFCeiPfZEd-PNYpgO1g6_g" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TFCeiffZEd-PNYpgO1g6_g" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_46fAsPfZEd-PNYpgO1g6_g" type="3002" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="java.profile.uml#_3dFWEN2LEd6P1qtlpBOZyg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_46fAsffZEd-PNYpgO1g6_g" x="33" y="10"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TFCeivfZEd-PNYpgO1g6_g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TFCei_fZEd-PNYpgO1g6_g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TFCejPfZEd-PNYpgO1g6_g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TFCejffZEd-PNYpgO1g6_g" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TFCejvfZEd-PNYpgO1g6_g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TFCej_fZEd-PNYpgO1g6_g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TFCekPfZEd-PNYpgO1g6_g"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="java.profile.uml#_03FkMN2LEd6P1qtlpBOZyg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TFCegffZEd-PNYpgO1g6_g" x="1350" y="414" width="139"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_UHW3IPfZEd-PNYpgO1g6_g" type="1026" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UHW3IvfZEd-PNYpgO1g6_g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UHW3I_fZEd-PNYpgO1g6_g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UHW3JPfZEd-PNYpgO1g6_g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UHW3JffZEd-PNYpgO1g6_g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UHW3JvfZEd-PNYpgO1g6_g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UHW3J_fZEd-PNYpgO1g6_g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UHW3KPfZEd-PNYpgO1g6_g" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_UHW3KffZEd-PNYpgO1g6_g" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_7SxGsPfZEd-PNYpgO1g6_g" type="3002" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="java.profile.uml#_BHVN0N2MEd6P1qtlpBOZyg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7SxGsffZEd-PNYpgO1g6_g" x="34" y="8"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7TXjoPfZEd-PNYpgO1g6_g" type="3002" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="java.profile.uml#_BHVN1N2MEd6P1qtlpBOZyg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7TXjoffZEd-PNYpgO1g6_g" x="34" y="8"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7TqekPfZEd-PNYpgO1g6_g" type="3002" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="java.profile.uml#_ru_vkN2REd6P1qtlpBOZyg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7TqekffZEd-PNYpgO1g6_g" x="34" y="8"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GgDasIXFEeCQsIB6sI2lFg" type="3002" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:Property" href="java.profile.uml#_Gf5psIXFEeCQsIB6sI2lFg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GgDasYXFEeCQsIB6sI2lFg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_IoefwIXFEeCQsIB6sI2lFg" type="3002" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:Property" href="java.profile.uml#_IoLk0IXFEeCQsIB6sI2lFg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IoefwYXFEeCQsIB6sI2lFg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_DCp_YIXIEeCQsIB6sI2lFg" type="3002" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:Property" href="java.profile.uml#_DCg1cIXIEeCQsIB6sI2lFg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DCp_YYXIEeCQsIB6sI2lFg"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_UHW3KvfZEd-PNYpgO1g6_g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_UHW3K_fZEd-PNYpgO1g6_g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UHW3LPfZEd-PNYpgO1g6_g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_UHW3LffZEd-PNYpgO1g6_g" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_UHW3LvfZEd-PNYpgO1g6_g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_UHW3L_fZEd-PNYpgO1g6_g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UHW3MPfZEd-PNYpgO1g6_g"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="java.profile.uml#_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UHW3IffZEd-PNYpgO1g6_g" x="1140" y="414" width="181" height="175"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WbLT4PfZEd-PNYpgO1g6_g" type="1031" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WbLT4vfZEd-PNYpgO1g6_g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WbLT4_fZEd-PNYpgO1g6_g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WbLT5PfZEd-PNYpgO1g6_g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WbLT5ffZEd-PNYpgO1g6_g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WbLT5vfZEd-PNYpgO1g6_g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WbLT5_fZEd-PNYpgO1g6_g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WbLT6PfZEd-PNYpgO1g6_g" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WbLT4ffZEd-PNYpgO1g6_g" x="990" y="630"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XMDXMPfZEd-PNYpgO1g6_g" type="1031" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XMDXMvfZEd-PNYpgO1g6_g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XMDXM_fZEd-PNYpgO1g6_g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XMDXNPfZEd-PNYpgO1g6_g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XMDXNffZEd-PNYpgO1g6_g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XMDXNvfZEd-PNYpgO1g6_g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XMDXN_fZEd-PNYpgO1g6_g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XMDXOPfZEd-PNYpgO1g6_g" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XMDXMffZEd-PNYpgO1g6_g" x="660" y="588"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_X3Q3YPfZEd-PNYpgO1g6_g" type="1031" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_X3Q3YvfZEd-PNYpgO1g6_g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_X3Q3Y_fZEd-PNYpgO1g6_g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_X3Q3ZPfZEd-PNYpgO1g6_g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_X3Q3ZffZEd-PNYpgO1g6_g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_X3Q3ZvfZEd-PNYpgO1g6_g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_X3Q3Z_fZEd-PNYpgO1g6_g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_X3Q3aPfZEd-PNYpgO1g6_g" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Parameter"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_X3Q3YffZEd-PNYpgO1g6_g" x="1374" y="630"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_YqE0YPfZEd-PNYpgO1g6_g" type="1031" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YqE0YvfZEd-PNYpgO1g6_g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YqE0Y_fZEd-PNYpgO1g6_g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YqE0ZPfZEd-PNYpgO1g6_g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YqE0ZffZEd-PNYpgO1g6_g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YqE0ZvfZEd-PNYpgO1g6_g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YqE0Z_fZEd-PNYpgO1g6_g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YqE0aPfZEd-PNYpgO1g6_g" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YqE0YffZEd-PNYpgO1g6_g" x="1194" y="630"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_aUd5oPfZEd-PNYpgO1g6_g" type="1026" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aUd5ovfZEd-PNYpgO1g6_g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aUd5o_fZEd-PNYpgO1g6_g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aUd5pPfZEd-PNYpgO1g6_g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aUd5pffZEd-PNYpgO1g6_g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aUd5pvfZEd-PNYpgO1g6_g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aUd5p_fZEd-PNYpgO1g6_g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_aUd5qPfZEd-PNYpgO1g6_g" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_aUd5qffZEd-PNYpgO1g6_g" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_KtrVgPfaEd-PNYpgO1g6_g" type="3002" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="java.profile.uml#_tw0n8N2SEd6P1qtlpBOZyg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KtrVgffaEd-PNYpgO1g6_g" x="33" y="19"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lPtMMHpoEeG6sMpxGcut-Q" type="3002" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:Property" href="java.profile.uml#__K6mcHpnEeG6sMpxGcut-Q"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lPtMMXpoEeG6sMpxGcut-Q" x="106" y="19"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_aUd5qvfZEd-PNYpgO1g6_g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_aUd5q_fZEd-PNYpgO1g6_g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aUd5rPfZEd-PNYpgO1g6_g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_aUd5rffZEd-PNYpgO1g6_g" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_aUd5rvfZEd-PNYpgO1g6_g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_aUd5r_fZEd-PNYpgO1g6_g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aUd5sPfZEd-PNYpgO1g6_g"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="java.profile.uml#_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aUd5offZEd-PNYpgO1g6_g" x="252" y="414" width="217" height="115"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_eAzBcPfZEd-PNYpgO1g6_g" type="1031" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eAzBcvfZEd-PNYpgO1g6_g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eAzBc_fZEd-PNYpgO1g6_g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eAzBdPfZEd-PNYpgO1g6_g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eAzBdffZEd-PNYpgO1g6_g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eAzBdvfZEd-PNYpgO1g6_g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eAzBd_fZEd-PNYpgO1g6_g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_eAzBePfZEd-PNYpgO1g6_g" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#PrimitiveType"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eAzBcffZEd-PNYpgO1g6_g" x="306" y="588"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_t_c9EGXjEeCHc7Sujzc1_A" type="1026" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t_c9EmXjEeCHc7Sujzc1_A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t_c9E2XjEeCHc7Sujzc1_A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t_c9FGXjEeCHc7Sujzc1_A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t_c9FWXjEeCHc7Sujzc1_A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t_c9FmXjEeCHc7Sujzc1_A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t_c9F2XjEeCHc7Sujzc1_A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_t_c9GGXjEeCHc7Sujzc1_A" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_t_c9GWXjEeCHc7Sujzc1_A" type="1071">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_t_c9GmXjEeCHc7Sujzc1_A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_t_c9G2XjEeCHc7Sujzc1_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t_c9HGXjEeCHc7Sujzc1_A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_t_c9HWXjEeCHc7Sujzc1_A" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_t_c9HmXjEeCHc7Sujzc1_A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_t_c9H2XjEeCHc7Sujzc1_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t_c9IGXjEeCHc7Sujzc1_A"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="java.profile.uml#_t-QqQGXjEeCHc7Sujzc1_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t_c9EWXjEeCHc7Sujzc1_A" x="486" y="414" height="49"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_10uQMGXjEeCHc7Sujzc1_A" type="1026" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_10uQMmXjEeCHc7Sujzc1_A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_10uQM2XjEeCHc7Sujzc1_A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_10uQNGXjEeCHc7Sujzc1_A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_10uQNWXjEeCHc7Sujzc1_A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_10uQNmXjEeCHc7Sujzc1_A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_10uQN2XjEeCHc7Sujzc1_A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_10uQOGXjEeCHc7Sujzc1_A" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_10uQOWXjEeCHc7Sujzc1_A" type="1071">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_10uQOmXjEeCHc7Sujzc1_A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_10uQO2XjEeCHc7Sujzc1_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_10uQPGXjEeCHc7Sujzc1_A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_10uQPWXjEeCHc7Sujzc1_A" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_10uQPmXjEeCHc7Sujzc1_A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_10uQP2XjEeCHc7Sujzc1_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_10uQQGXjEeCHc7Sujzc1_A"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="java.profile.uml#_10lGQGXjEeCHc7Sujzc1_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_10uQMWXjEeCHc7Sujzc1_A" x="618" y="414" height="49"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_4QcEsWXjEeCHc7Sujzc1_A" type="1026" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4Ql1sGXjEeCHc7Sujzc1_A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4Ql1sWXjEeCHc7Sujzc1_A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4Ql1smXjEeCHc7Sujzc1_A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4Ql1s2XjEeCHc7Sujzc1_A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4Ql1tGXjEeCHc7Sujzc1_A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4Ql1tWXjEeCHc7Sujzc1_A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4Ql1tmXjEeCHc7Sujzc1_A" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4Ql1t2XjEeCHc7Sujzc1_A" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_YL1kIHSnEeCRC6drc39K0A" type="3002" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="java.profile.uml#_7jn3QGXkEeCx-IU0sjGPKA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YL1kIXSnEeCRC6drc39K0A" x="61" y="6"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_YL-uEHSnEeCRC6drc39K0A" type="3002" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="java.profile.uml#_--Xf0GXkEeCx-IU0sjGPKA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YL-uEXSnEeCRC6drc39K0A" x="61" y="6"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_4Ql1uGXjEeCHc7Sujzc1_A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_4Ql1uWXjEeCHc7Sujzc1_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4Ql1umXjEeCHc7Sujzc1_A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4Ql1u2XjEeCHc7Sujzc1_A" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_4Ql1vGXjEeCHc7Sujzc1_A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_4Ql1vWXjEeCHc7Sujzc1_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4Ql1vmXjEeCHc7Sujzc1_A"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="java.profile.uml#_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4QcEsmXjEeCHc7Sujzc1_A" x="408" y="234" width="211" height="115"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_G11WsffZEd-PNYpgO1g6_g"/>
+ <element xmi:type="uml:Profile" href="java.profile.uml#_6TYLMN0yEd6P1qtlpBOZyg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_I-oPMPfZEd-PNYpgO1g6_g" type="4002" source="_I5t6APfZEd-PNYpgO1g6_g" target="_4QcEsWXjEeCHc7Sujzc1_A" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_I-yAMPfZEd-PNYpgO1g6_g" visible="false" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_I-yAMffZEd-PNYpgO1g6_g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_I-oPMffZEd-PNYpgO1g6_g" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="java.profile.uml#_q6PrIN2MEd6P1qtlpBOZyg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_I-oPMvfZEd-PNYpgO1g6_g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_B6j6EPfaEd-PNYpgO1g6_g" id="(0.4550561797752809,0.06086956521739131)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J1UxkHSnEeCRC6drc39K0A" id="(0.54,0.8)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_OourQPfZEd-PNYpgO1g6_g" type="1013" source="_I5t6APfZEd-PNYpgO1g6_g" target="_OnYncPfZEd-PNYpgO1g6_g" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_OourQffZEd-PNYpgO1g6_g" fontHeight="8"/>
+ <element xmi:type="uml:Extension" href="java.profile.uml#_3_5QMN0zEd6P1qtlpBOZyg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_OourQvfZEd-PNYpgO1g6_g" points="[-46, -50, 280, 312]$[-326, -362, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Q2I-APfZEd-PNYpgO1g6_g" type="4002" source="_Q1_NAPfZEd-PNYpgO1g6_g" target="_I8PpkPfZEd-PNYpgO1g6_g" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Q2I-A_fZEd-PNYpgO1g6_g" visible="false" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Q2I-BPfZEd-PNYpgO1g6_g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Q2I-AffZEd-PNYpgO1g6_g" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="java.profile.uml#_tWjVgN2MEd6P1qtlpBOZyg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Q2I-AvfZEd-PNYpgO1g6_g" points="[0, 0, -506, -152]$[450, 135, -56, -17]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_SD6_wPfZEd-PNYpgO1g6_g" type="4002" source="_SDeT0PfZEd-PNYpgO1g6_g" target="_4QcEsWXjEeCHc7Sujzc1_A" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_SD6_w_fZEd-PNYpgO1g6_g" visible="false" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SD6_xPfZEd-PNYpgO1g6_g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_SD6_wffZEd-PNYpgO1g6_g" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="java.profile.uml#_t2JbkN2MEd6P1qtlpBOZyg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SD6_wvfZEd-PNYpgO1g6_g" points="[0, 3, 0, 3]$[0, 3, 0, 3]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sXzDEHWXEeCZk9SoruwsTQ" id="(0.5639810426540285,0.9739130434782609)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_TFo7cPfZEd-PNYpgO1g6_g" type="4002" source="_TFCegPfZEd-PNYpgO1g6_g" target="_I8PpkPfZEd-PNYpgO1g6_g" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_TFo7c_fZEd-PNYpgO1g6_g" visible="false" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TFo7dPfZEd-PNYpgO1g6_g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_TFo7cffZEd-PNYpgO1g6_g" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="java.profile.uml#_rvlXsN2MEd6P1qtlpBOZyg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TFo7cvfZEd-PNYpgO1g6_g" points="[0, 0, -506, -152]$[450, 135, -56, -17]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_UHy8APfZEd-PNYpgO1g6_g" type="4002" source="_UHW3IPfZEd-PNYpgO1g6_g" target="_I8PpkPfZEd-PNYpgO1g6_g" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_UHy8A_fZEd-PNYpgO1g6_g" visible="false" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UHy8BPfZEd-PNYpgO1g6_g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_UHy8AffZEd-PNYpgO1g6_g" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="java.profile.uml#_snKf8N2MEd6P1qtlpBOZyg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UHy8AvfZEd-PNYpgO1g6_g" points="[0, 0, -506, -152]$[450, 135, -56, -17]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_emO0UPfaEd-PNYpgO1g6_g" id="(0.20441988950276244,0.043478260869565216)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WbxJwPfZEd-PNYpgO1g6_g" type="1013" source="_Q1_NAPfZEd-PNYpgO1g6_g" target="_WbLT4PfZEd-PNYpgO1g6_g" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_WbxJwffZEd-PNYpgO1g6_g" fontHeight="8"/>
+ <element xmi:type="uml:Extension" href="java.profile.uml#_9iVnoN2MEd6P1qtlpBOZyg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WbxJwvfZEd-PNYpgO1g6_g" points="[-50, -36, 462, 332]$[-512, -368, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XMMhIPfZEd-PNYpgO1g6_g" type="1013" source="_SDeT0PfZEd-PNYpgO1g6_g" target="_XMDXMPfZEd-PNYpgO1g6_g" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_XMMhIffZEd-PNYpgO1g6_g" fontHeight="8"/>
+ <element xmi:type="uml:Extension" href="java.profile.uml#_KM3W8N00Ed6P1qtlpBOZyg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XMMhIvfZEd-PNYpgO1g6_g" points="[94, -2, -181, 3]$[225, -5, -50, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_V_ox8PfaEd-PNYpgO1g6_g" id="(0.9518716577540107,0.44047619047619047)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_X4AeQPfZEd-PNYpgO1g6_g" type="1013" source="_TFCegPfZEd-PNYpgO1g6_g" target="_X3Q3YPfZEd-PNYpgO1g6_g" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_X4AeQffZEd-PNYpgO1g6_g" fontHeight="8"/>
+ <element xmi:type="uml:Extension" href="java.profile.uml#_GLUPoN2NEd6P1qtlpBOZyg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_X4AeQvfZEd-PNYpgO1g6_g" points="[-50, -22, 822, 358]$[-872, -380, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_YqXvUPfZEd-PNYpgO1g6_g" type="1013" source="_UHW3IPfZEd-PNYpgO1g6_g" target="_YqE0YPfZEd-PNYpgO1g6_g" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_YqXvUffZEd-PNYpgO1g6_g" fontHeight="8"/>
+ <element xmi:type="uml:Extension" href="java.profile.uml#_-3uGMN2MEd6P1qtlpBOZyg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YqXvUvfZEd-PNYpgO1g6_g" points="[-50, -18, 1002, 356]$[-1052, -374, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_aU6lkPfZEd-PNYpgO1g6_g" type="4002" source="_aUd5oPfZEd-PNYpgO1g6_g" target="_4QcEsWXjEeCHc7Sujzc1_A" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_aU6lk_fZEd-PNYpgO1g6_g" visible="false" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_aU6llPfZEd-PNYpgO1g6_g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_aU6lkffZEd-PNYpgO1g6_g" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="java.profile.uml#_05iXEN2SEd6P1qtlpBOZyg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_aU6lkvfZEd-PNYpgO1g6_g" points="[0, 0, -588, -122]$[450, 93, -138, -29]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ck4CYPfaEd-PNYpgO1g6_g" id="(0.018433179723502304,0.2976190476190476)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RGtUIPfaEd-PNYpgO1g6_g" id="(0.48292682926829267,0.8823529411764706)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_eA8ycPfZEd-PNYpgO1g6_g" type="1013" source="_aUd5oPfZEd-PNYpgO1g6_g" target="_eAzBcPfZEd-PNYpgO1g6_g" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_eA8ycffZEd-PNYpgO1g6_g" fontHeight="8"/>
+ <element xmi:type="uml:Extension" href="java.profile.uml#_8_DssN2SEd6P1qtlpBOZyg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_eA8ycvfZEd-PNYpgO1g6_g" points="[-50, -17, 1110, 363]$[-1160, -380, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_g3DuAGXkEeCx-IU0sjGPKA" type="1013" source="_t_c9EGXjEeCHc7Sujzc1_A" target="_XMDXMPfZEd-PNYpgO1g6_g" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_g3DuAWXkEeCx-IU0sjGPKA" fontHeight="8"/>
+ <element xmi:type="uml:Extension" href="java.profile.uml#_g2wMAWXkEeCx-IU0sjGPKA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_g3DuAmXkEeCx-IU0sjGPKA" points="[17, -27, -33, 50]$[123, -115, 73, -38]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_g3M38GXkEeCx-IU0sjGPKA" id="(0.83,0.31)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_g3M38WXkEeCx-IU0sjGPKA" id="(0.25,0.76)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_haqxY2XkEeCx-IU0sjGPKA" type="1013" source="_10uQMGXjEeCHc7Sujzc1_A" target="_XMDXMPfZEd-PNYpgO1g6_g" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_haqxZGXkEeCx-IU0sjGPKA" fontHeight="8"/>
+ <element xmi:type="uml:Extension" href="java.profile.uml#_haqxYWXkEeCx-IU0sjGPKA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_haqxZWXkEeCx-IU0sjGPKA" points="[13, -39, -55, 163]$[78, -243, 10, -41]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ha0iYGXkEeCx-IU0sjGPKA" id="(0.86,0.39)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ha0iYWXkEeCx-IU0sjGPKA" id="(0.46,0.82)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_je1okWXkEeCx-IU0sjGPKA" type="4002" source="_4QcEsWXjEeCHc7Sujzc1_A" target="_I8PpkPfZEd-PNYpgO1g6_g" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_je1olGXkEeCx-IU0sjGPKA" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_je1olWXkEeCx-IU0sjGPKA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_je1okmXkEeCx-IU0sjGPKA" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="java.profile.uml#_je1okGXkEeCx-IU0sjGPKA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_je1ok2XkEeCx-IU0sjGPKA" points="[-5, -6, 276, 302]$[-545, -448, -264, -140]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_je_ZkGXkEeCx-IU0sjGPKA" id="(0.44,0.03636363636363636)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_je_ZkWXkEeCx-IU0sjGPKA" id="(0.36101083032490977,0.9470198675496688)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_t4UesHSnEeCRC6drc39K0A" type="4002" source="_10uQMGXjEeCHc7Sujzc1_A" target="_4QcEsWXjEeCHc7Sujzc1_A" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_t4Ues3SnEeCRC6drc39K0A" visible="false" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_t4UetHSnEeCRC6drc39K0A" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_t4UesXSnEeCRC6drc39K0A" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="java.profile.uml#_0yceYGXkEeCx-IU0sjGPKA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_t4UesnSnEeCRC6drc39K0A" points="[-26, -24, 126, 123]$[-108, -104, 44, 43]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NaY-UHSoEeCRC6drc39K0A" id="(0.6926829268292682,0.9647058823529412)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_xC-c0HSnEeCRC6drc39K0A" type="4002" source="_t_c9EGXjEeCHc7Sujzc1_A" target="_4QcEsWXjEeCHc7Sujzc1_A" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_xC-c03SnEeCRC6drc39K0A" visible="false" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xC-c1HSnEeCRC6drc39K0A" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_xC-c0XSnEeCRC6drc39K0A" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="java.profile.uml#_0Rz2gGXkEeCx-IU0sjGPKA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_xC-c0nSnEeCRC6drc39K0A" points="[-4, -24, 16, 126]$[-14, -107, 6, 43]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M_t0gHSoEeCRC6drc39K0A" id="(0.44390243902439025,0.8588235294117647)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_m5JasIAEEeGqdId9TXdXhQ" type="4001" source="_I5t6APfZEd-PNYpgO1g6_g" target="_OnYncPfZEd-PNYpgO1g6_g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_m5KBwIAEEeGqdId9TXdXhQ" visible="false" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_m5KBwYAEEeGqdId9TXdXhQ" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_m5Ko0IAEEeGqdId9TXdXhQ" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_m5Ko0YAEEeGqdId9TXdXhQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_m5Ko0oAEEeGqdId9TXdXhQ" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_m5Ko04AEEeGqdId9TXdXhQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_m5Ko1IAEEeGqdId9TXdXhQ" visible="false" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_m5Ko1YAEEeGqdId9TXdXhQ" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_m5Ko1oAEEeGqdId9TXdXhQ" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_m5Ko14AEEeGqdId9TXdXhQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_m5Ko2IAEEeGqdId9TXdXhQ" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_m5Ko2YAEEeGqdId9TXdXhQ" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_m5JasYAEEeGqdId9TXdXhQ" fontName="Segoe UI"/>
+ <element xmi:type="uml:Association" href="java.profile.uml#_uZHBoIADEeGqdId9TXdXhQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_m5JasoAEEeGqdId9TXdXhQ" points="[1, 64, 0, -72]$[0, 111, -1, -25]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pAVwsIAEEeGqdId9TXdXhQ" id="(0.33146067415730335,0.9921259842519685)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pXE1sIAEEeGqdId9TXdXhQ" id="(0.25,0.16)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XjtvoIDyEeGqdId9TXdXhQ" type="4001" source="_Q1_NAPfZEd-PNYpgO1g6_g" target="_OnYncPfZEd-PNYpgO1g6_g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Xju9wIDyEeGqdId9TXdXhQ" visible="false" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Xju9wYDyEeGqdId9TXdXhQ" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Xju9woDyEeGqdId9TXdXhQ" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Xju9w4DyEeGqdId9TXdXhQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Xju9xIDyEeGqdId9TXdXhQ" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Xju9xYDyEeGqdId9TXdXhQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Xjvk0IDyEeGqdId9TXdXhQ" visible="false" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Xjvk0YDyEeGqdId9TXdXhQ" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Xjvk0oDyEeGqdId9TXdXhQ" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Xjvk04DyEeGqdId9TXdXhQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Xjvk1IDyEeGqdId9TXdXhQ" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Xjvk1YDyEeGqdId9TXdXhQ" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_XjtvoYDyEeGqdId9TXdXhQ" fontName="Segoe UI"/>
+ <element xmi:type="uml:Association" href="java.profile.uml#_XjHSsIDyEeGqdId9TXdXhQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XjtvooDyEeGqdId9TXdXhQ" points="[-8, 7, 781, -60]$[-8, 78, 781, 11]$[-778, 67, 11, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Xkhn8IDyEeGqdId9TXdXhQ" id="(0.16326530612244897,0.96)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Xkhn8YDyEeGqdId9TXdXhQ" id="(0.89,0.74)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_bwKh8IDyEeGqdId9TXdXhQ" type="4001" source="_UHW3IPfZEd-PNYpgO1g6_g" target="_OnYncPfZEd-PNYpgO1g6_g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_bwLJAIDyEeGqdId9TXdXhQ" visible="false" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bwLJAYDyEeGqdId9TXdXhQ" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bwLJAoDyEeGqdId9TXdXhQ" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bwLJA4DyEeGqdId9TXdXhQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bwLwEIDyEeGqdId9TXdXhQ" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bwLwEYDyEeGqdId9TXdXhQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bwLwEoDyEeGqdId9TXdXhQ" visible="false" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bwLwE4DyEeGqdId9TXdXhQ" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bwLwFIDyEeGqdId9TXdXhQ" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bwLwFYDyEeGqdId9TXdXhQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bwLwFoDyEeGqdId9TXdXhQ" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bwLwF4DyEeGqdId9TXdXhQ" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_bwKh8YDyEeGqdId9TXdXhQ" fontName="Segoe UI"/>
+ <element xmi:type="uml:Association" href="java.profile.uml#_bvnIUIDyEeGqdId9TXdXhQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_bwKh8oDyEeGqdId9TXdXhQ" points="[0, 8, 994, -94]$[0, 109, 994, 7]$[-988, 109, 6, 7]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bxMcsIDyEeGqdId9TXdXhQ" id="(0.17679558011049723,0.9542857142857143)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bxMcsYDyEeGqdId9TXdXhQ" id="(0.94,0.82)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_uqGAEGXkEeCx-IU0sjGPKA" type="PapyrusUMLProfileDiagram" name="javagen hierarchy" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_v_CZwGXkEeCx-IU0sjGPKA" type="1026" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v_CZwmXkEeCx-IU0sjGPKA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_v_CZw2XkEeCx-IU0sjGPKA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v_CZxGXkEeCx-IU0sjGPKA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_v_CZxWXkEeCx-IU0sjGPKA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v_CZxmXkEeCx-IU0sjGPKA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_v_CZx2XkEeCx-IU0sjGPKA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_v_CZyGXkEeCx-IU0sjGPKA" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_v_CZyWXkEeCx-IU0sjGPKA" type="1071">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_v_CZymXkEeCx-IU0sjGPKA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_v_CZy2XkEeCx-IU0sjGPKA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_v_CZzGXkEeCx-IU0sjGPKA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_v_CZzWXkEeCx-IU0sjGPKA" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_v_CZzmXkEeCx-IU0sjGPKA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_v_CZz2XkEeCx-IU0sjGPKA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_v_CZ0GXkEeCx-IU0sjGPKA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="java.profile.uml#_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_v_CZwWXkEeCx-IU0sjGPKA" x="156" y="384"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_w5vugGXkEeCx-IU0sjGPKA" type="1026" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_w5vugmXkEeCx-IU0sjGPKA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_w5vug2XkEeCx-IU0sjGPKA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_w5vuhGXkEeCx-IU0sjGPKA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_w5vuhWXkEeCx-IU0sjGPKA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_w5vuhmXkEeCx-IU0sjGPKA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_w5vuh2XkEeCx-IU0sjGPKA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_w5vuiGXkEeCx-IU0sjGPKA" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w5vuiWXkEeCx-IU0sjGPKA" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_7j6yMGXkEeCx-IU0sjGPKA" type="3002" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="java.profile.uml#_7jn3QGXkEeCx-IU0sjGPKA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7j6yMWXkEeCx-IU0sjGPKA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_--rB0GXkEeCx-IU0sjGPKA" type="3002" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="java.profile.uml#_--Xf0GXkEeCx-IU0sjGPKA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_--rB0WXkEeCx-IU0sjGPKA"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w5vuimXkEeCx-IU0sjGPKA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w5vui2XkEeCx-IU0sjGPKA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w5vujGXkEeCx-IU0sjGPKA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w5vujWXkEeCx-IU0sjGPKA" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w5vujmXkEeCx-IU0sjGPKA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w5vuj2XkEeCx-IU0sjGPKA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w5vukGXkEeCx-IU0sjGPKA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="java.profile.uml#_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w5vugWXkEeCx-IU0sjGPKA" x="276" y="168" width="187"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_yHFEUGXkEeCx-IU0sjGPKA" type="1026" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yHFEUmXkEeCx-IU0sjGPKA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yHFEU2XkEeCx-IU0sjGPKA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yHFEVGXkEeCx-IU0sjGPKA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yHFEVWXkEeCx-IU0sjGPKA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yHFEVmXkEeCx-IU0sjGPKA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yHFEV2XkEeCx-IU0sjGPKA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yHFEWGXkEeCx-IU0sjGPKA" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_yHFEWWXkEeCx-IU0sjGPKA" type="1071">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_yHFEWmXkEeCx-IU0sjGPKA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_yHFEW2XkEeCx-IU0sjGPKA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yHFEXGXkEeCx-IU0sjGPKA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_yHFEXWXkEeCx-IU0sjGPKA" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_yHFEXmXkEeCx-IU0sjGPKA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_yHFEX2XkEeCx-IU0sjGPKA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yHFEYGXkEeCx-IU0sjGPKA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="java.profile.uml#_t-QqQGXjEeCHc7Sujzc1_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yHFEUWXkEeCx-IU0sjGPKA" x="306" y="384"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_yeoBoGXkEeCx-IU0sjGPKA" type="1026" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yeoBomXkEeCx-IU0sjGPKA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yeoBo2XkEeCx-IU0sjGPKA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yeoBpGXkEeCx-IU0sjGPKA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yeoBpWXkEeCx-IU0sjGPKA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yeoBpmXkEeCx-IU0sjGPKA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yeoBp2XkEeCx-IU0sjGPKA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yeoBqGXkEeCx-IU0sjGPKA" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_yeoBqWXkEeCx-IU0sjGPKA" type="1071">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_yeoBqmXkEeCx-IU0sjGPKA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_yeoBq2XkEeCx-IU0sjGPKA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yeoBrGXkEeCx-IU0sjGPKA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_yeoBrWXkEeCx-IU0sjGPKA" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_yeoBrmXkEeCx-IU0sjGPKA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_yeoBr2XkEeCx-IU0sjGPKA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yeoBsGXkEeCx-IU0sjGPKA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="java.profile.uml#_10lGQGXjEeCHc7Sujzc1_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yeoBoWXkEeCx-IU0sjGPKA" x="456" y="384"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_uqGAEWXkEeCx-IU0sjGPKA"/>
+ <element xmi:type="uml:Profile" href="java.profile.uml#_6TYLMN0yEd6P1qtlpBOZyg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_zs2vUGXkEeCx-IU0sjGPKA" type="4002" source="_v_CZwGXkEeCx-IU0sjGPKA" target="_w5vugGXkEeCx-IU0sjGPKA" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_zs2vU2XkEeCx-IU0sjGPKA" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zs2vVGXkEeCx-IU0sjGPKA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_zs2vUWXkEeCx-IU0sjGPKA" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="java.profile.uml#_zstlYGXkEeCx-IU0sjGPKA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_zs2vUmXkEeCx-IU0sjGPKA" points="[8, -6, -115, 77]$[180, -174, 57, -91]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ztJqQGXkEeCx-IU0sjGPKA" id="(0.63,0.06)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ztJqQWXkEeCx-IU0sjGPKA" id="(0.24,0.91)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_0R9ngGXkEeCx-IU0sjGPKA" type="4002" source="_yHFEUGXkEeCx-IU0sjGPKA" target="_w5vugGXkEeCx-IU0sjGPKA" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_0R9ng2XkEeCx-IU0sjGPKA" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0R9nhGXkEeCx-IU0sjGPKA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_0R9ngWXkEeCx-IU0sjGPKA" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="java.profile.uml#_0Rz2gGXkEeCx-IU0sjGPKA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0R9ngmXkEeCx-IU0sjGPKA" points="[1, -9, -12, 79]$[22, -177, 9, -89]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0SaTcGXkEeCx-IU0sjGPKA" id="(0.45,0.09)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0SaTcWXkEeCx-IU0sjGPKA" id="(0.46,0.89)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_0ymPYGXkEeCx-IU0sjGPKA" type="4002" source="_yeoBoGXkEeCx-IU0sjGPKA" target="_w5vugGXkEeCx-IU0sjGPKA" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_0ymPY2XkEeCx-IU0sjGPKA" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0ymPZGXkEeCx-IU0sjGPKA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_0ymPYWXkEeCx-IU0sjGPKA" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="java.profile.uml#_0yceYGXkEeCx-IU0sjGPKA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0ymPYmXkEeCx-IU0sjGPKA" points="[-12, -10, 95, 82]$[-98, -78, 9, 14]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0y5KUGXkEeCx-IU0sjGPKA" id="(0.43,0.1)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0y5KUWXkEeCx-IU0sjGPKA" id="(0.74,0.86)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_uBztsIXFEeCQsIB6sI2lFg" type="PapyrusUMLProfileDiagram" name="dataType" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_xxBxcIXFEeCQsIB6sI2lFg" type="2006" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xxBxcoXFEeCQsIB6sI2lFg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xxBxc4XFEeCQsIB6sI2lFg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xxBxdIXFEeCQsIB6sI2lFg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xxBxdYXFEeCQsIB6sI2lFg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xxBxdoXFEeCQsIB6sI2lFg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xxBxd4XFEeCQsIB6sI2lFg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xxBxeIXFEeCQsIB6sI2lFg" type="5023"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_xxLicIXFEeCQsIB6sI2lFg" type="1063">
+ <children xmi:type="notation:Shape" xmi:id="_29ZIoIXFEeCQsIB6sI2lFg" type="1037" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="java.profile.uml#_29GNsIXFEeCQsIB6sI2lFg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_29ZIoYXFEeCQsIB6sI2lFg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_4He9MIXFEeCQsIB6sI2lFg" type="1037" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="java.profile.uml#_4HMCQIXFEeCQsIB6sI2lFg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4He9MYXFEeCQsIB6sI2lFg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_469BgIXFEeCQsIB6sI2lFg" type="1037" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="java.profile.uml#_46qGkIXFEeCQsIB6sI2lFg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_469BgYXFEeCQsIB6sI2lFg"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_xxLicYXFEeCQsIB6sI2lFg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_xxLicoXFEeCQsIB6sI2lFg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xxLic4XFEeCQsIB6sI2lFg"/>
+ </children>
+ <element xmi:type="uml:Enumeration" href="java.profile.uml#_xwb7kIXFEeCQsIB6sI2lFg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xxBxcYXFEeCQsIB6sI2lFg" x="213" y="110"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_uBztsYXFEeCQsIB6sI2lFg"/>
+ <element xmi:type="uml:Profile" href="java.profile.uml#_6TYLMN0yEd6P1qtlpBOZyg"/>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/models/java.profile.uml b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/models/java.profile.uml
new file mode 100644
index 00000000000..9aff0b63659
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/models/java.profile.uml
@@ -0,0 +1,5729 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/5" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/3.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
+ <uml:Profile xmi:id="_6TYLMN0yEd6P1qtlpBOZyg" name="java" metaclassReference="_ayF5QN0zEd6P1qtlpBOZyg _a2aYkN0zEd6P1qtlpBOZyg _a4NIUN0zEd6P1qtlpBOZyg _a5PqIN0zEd6P1qtlpBOZyg _a6b88N0zEd6P1qtlpBOZyg _a77KsN0zEd6P1qtlpBOZyg _a80ikN0zEd6P1qtlpBOZyg _Bdek8N00Ed6P1qtlpBOZyg _CiHUUN2NEd6P1qtlpBOZyg _4wmIMN2SEd6P1qtlpBOZyg">
+ <eAnnotations xmi:id="_MzA50N00Ed6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <contents xmi:type="ecore:EPackage" xmi:id="_sJNM8IDyEeGqdId9TXdXhQ" name="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_sJNM8YDyEeGqdId9TXdXhQ" name="JavaClass" eSuperTypes="_sJNNBIDyEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_sJNM8oDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_sJNM84DyEeGqdId9TXdXhQ" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_sJNM9IDyEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_sJNM9YDyEeGqdId9TXdXhQ" source="redefines" references="_sJNNDYDyEeGqdId9TXdXhQ"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sJNM94DyEeGqdId9TXdXhQ" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNM-YDyEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNM-4DyEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNM_YDyEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNM_4DyEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sJNNAYDyEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_sJNNBIDyEeGqdId9TXdXhQ" name="JavaGen" abstract="true" eSuperTypes="_sJNNC4DyEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_sJNNBYDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNBoDyEeGqdId9TXdXhQ" name="srcName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNCIDyEeGqdId9TXdXhQ" name="projectName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_sJNNC4DyEeGqdId9TXdXhQ" name="JavaNamedElement" abstract="true">
+ <eAnnotations xmi:id="_sJNNDIDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNDYDyEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNND4DyEeGqdId9TXdXhQ" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNEYDyEeGqdId9TXdXhQ" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNE4DyEeGqdId9TXdXhQ" name="comment" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNFYDyEeGqdId9TXdXhQ" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_sJNNF4DyEeGqdId9TXdXhQ" name="JavaPackage_" eSuperTypes="_sJNNBIDyEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_sJNNGIDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNGYDyEeGqdId9TXdXhQ" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sJNNG4DyEeGqdId9TXdXhQ" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_sJNNHoDyEeGqdId9TXdXhQ" name="JavaMethod" eSuperTypes="_sJNNC4DyEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_sJNNH4DyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNIIDyEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNIoDyEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNJIDyEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNJoDyEeGqdId9TXdXhQ" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNKIDyEeGqdId9TXdXhQ" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNKoDyEeGqdId9TXdXhQ" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sJNNLIDyEeGqdId9TXdXhQ" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNLoDyEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sJNNMIDyEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_sJNNM4DyEeGqdId9TXdXhQ" name="JavaParameter" eSuperTypes="_sJNNC4DyEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_sJNNNIDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNNYDyEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sJNNN4DyEeGqdId9TXdXhQ" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_sJNNOoDyEeGqdId9TXdXhQ" name="JavaProperty" eSuperTypes="_sJNNC4DyEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_sJNNO4DyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNPIDyEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNPoDyEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sJNNQIDyEeGqdId9TXdXhQ" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNQoDyEeGqdId9TXdXhQ" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNRIDyEeGqdId9TXdXhQ" name="generateGetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+ <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNRoDyEeGqdId9TXdXhQ" name="generateSetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+ <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNSIDyEeGqdId9TXdXhQ" name="isStatic" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNSoDyEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sJNNTIDyEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_sJNNT4DyEeGqdId9TXdXhQ" name="PrimitiveType" eSuperTypes="_sJNNBIDyEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_sJNNUIDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNUYDyEeGqdId9TXdXhQ" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sJNNU4DyEeGqdId9TXdXhQ" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNVYDyEeGqdId9TXdXhQ" name="collectionImplementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_sJNNWIDyEeGqdId9TXdXhQ" name="JavaProject" eSuperTypes="_sJNNBIDyEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_sJNNWYDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sJNNWoDyEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_sJNNXYDyEeGqdId9TXdXhQ" name="JavaSrcFolder" eSuperTypes="_sJNNBIDyEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_sJNNXoDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sJNNX4DyEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_sJNNYoDyEeGqdId9TXdXhQ" name="TrueFalseDefault">
+ <eAnnotations xmi:id="_sJNNY4DyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+ <eLiterals xmi:id="_sJNNZIDyEeGqdId9TXdXhQ" name="true"/>
+ <eLiterals xmi:id="_sJNNZYDyEeGqdId9TXdXhQ" name="false" value="1"/>
+ <eLiterals xmi:id="_sJNNZoDyEeGqdId9TXdXhQ" name="default" value="2"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_oyehsIDyEeGqdId9TXdXhQ" name="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oyehsYDyEeGqdId9TXdXhQ" name="JavaClass" eSuperTypes="_oyehxIDyEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_oyehsoDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_oyehs4DyEeGqdId9TXdXhQ" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_oyehtIDyEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_oyehtYDyEeGqdId9TXdXhQ" source="redefines" references="_oyehzYDyEeGqdId9TXdXhQ"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oyeht4DyEeGqdId9TXdXhQ" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyehuYDyEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyehu4DyEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyehvYDyEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyehv4DyEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oyehwYDyEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oyehxIDyEeGqdId9TXdXhQ" name="JavaGen" abstract="true" eSuperTypes="_oyehy4DyEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_oyehxYDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyehxoDyEeGqdId9TXdXhQ" name="srcName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyehyIDyEeGqdId9TXdXhQ" name="projectName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oyehy4DyEeGqdId9TXdXhQ" name="JavaNamedElement" abstract="true">
+ <eAnnotations xmi:id="_oyehzIDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyehzYDyEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyehz4DyEeGqdId9TXdXhQ" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeh0YDyEeGqdId9TXdXhQ" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeh04DyEeGqdId9TXdXhQ" name="comment" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeh1YDyEeGqdId9TXdXhQ" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oyeh14DyEeGqdId9TXdXhQ" name="JavaPackage_" eSuperTypes="_oyehxIDyEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_oyeh2IDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeh2YDyEeGqdId9TXdXhQ" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oyeh24DyEeGqdId9TXdXhQ" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oyeh3oDyEeGqdId9TXdXhQ" name="JavaMethod" eSuperTypes="_oyehy4DyEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_oyeh34DyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeh4IDyEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeh4oDyEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeh5IDyEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeh5oDyEeGqdId9TXdXhQ" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeh6IDyEeGqdId9TXdXhQ" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeh6oDyEeGqdId9TXdXhQ" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oyeh7IDyEeGqdId9TXdXhQ" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeh7oDyEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oyeh8IDyEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oyeh84DyEeGqdId9TXdXhQ" name="JavaParameter" eSuperTypes="_oyehy4DyEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_oyeh9IDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeh9YDyEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oyeh94DyEeGqdId9TXdXhQ" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oyeh-oDyEeGqdId9TXdXhQ" name="JavaProperty" eSuperTypes="_oyehy4DyEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_oyeh-4DyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeh_IDyEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeh_oDyEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oyeiAIDyEeGqdId9TXdXhQ" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeiAoDyEeGqdId9TXdXhQ" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeiBIDyEeGqdId9TXdXhQ" name="generateGetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+ <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeiBoDyEeGqdId9TXdXhQ" name="generateSetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+ <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeiCIDyEeGqdId9TXdXhQ" name="isStatic" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeiCoDyEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oyeiDIDyEeGqdId9TXdXhQ" name="classifier" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oyeiD4DyEeGqdId9TXdXhQ" name="PrimitiveType" eSuperTypes="_oyehxIDyEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_oyeiEIDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeiEYDyEeGqdId9TXdXhQ" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oyeiE4DyEeGqdId9TXdXhQ" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeiFYDyEeGqdId9TXdXhQ" name="collectionImplementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oyeiGIDyEeGqdId9TXdXhQ" name="JavaProject" eSuperTypes="_oyehxIDyEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_oyeiGYDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oyeiGoDyEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oyeiHYDyEeGqdId9TXdXhQ" name="JavaSrcFolder" eSuperTypes="_oyehxIDyEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_oyeiHoDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oyeiH4DyEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_oyeiIoDyEeGqdId9TXdXhQ" name="TrueFalseDefault">
+ <eAnnotations xmi:id="_oyeiI4DyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+ <eLiterals xmi:id="_oyeiJIDyEeGqdId9TXdXhQ" name="true"/>
+ <eLiterals xmi:id="_oyeiJYDyEeGqdId9TXdXhQ" name="false" value="1"/>
+ <eLiterals xmi:id="_oyeiJoDyEeGqdId9TXdXhQ" name="default" value="2"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_eJd7oIDyEeGqdId9TXdXhQ" name="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_eJd7oYDyEeGqdId9TXdXhQ" name="JavaClass" eSuperTypes="_eJeitYDyEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_eJd7ooDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_eJd7o4DyEeGqdId9TXdXhQ" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_eJd7pIDyEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_eJd7pYDyEeGqdId9TXdXhQ" source="redefines" references="_eJeivoDyEeGqdId9TXdXhQ"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_eJd7p4DyEeGqdId9TXdXhQ" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJd7qYDyEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJd7q4DyEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJd7rYDyEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJeisIDyEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_eJeisoDyEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_eJeitYDyEeGqdId9TXdXhQ" name="JavaGen" abstract="true" eSuperTypes="_eJeivIDyEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_eJeitoDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJeit4DyEeGqdId9TXdXhQ" name="srcName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJeiuYDyEeGqdId9TXdXhQ" name="projectName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_eJeivIDyEeGqdId9TXdXhQ" name="JavaNamedElement" abstract="true">
+ <eAnnotations xmi:id="_eJeivYDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJeivoDyEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJeiwIDyEeGqdId9TXdXhQ" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJeiwoDyEeGqdId9TXdXhQ" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJeixIDyEeGqdId9TXdXhQ" name="comment" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJeixoDyEeGqdId9TXdXhQ" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_eJeiyIDyEeGqdId9TXdXhQ" name="JavaPackage_" eSuperTypes="_eJeitYDyEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_eJeiyYDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJeiyoDyEeGqdId9TXdXhQ" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_eJeizIDyEeGqdId9TXdXhQ" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_eJeiz4DyEeGqdId9TXdXhQ" name="JavaMethod" eSuperTypes="_eJeivIDyEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_eJei0IDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJei0YDyEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJei04DyEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJei1YDyEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJei14DyEeGqdId9TXdXhQ" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJei2YDyEeGqdId9TXdXhQ" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJei24DyEeGqdId9TXdXhQ" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_eJei3YDyEeGqdId9TXdXhQ" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJei34DyEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_eJei4YDyEeGqdId9TXdXhQ" name="classifier" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_eJei5IDyEeGqdId9TXdXhQ" name="JavaParameter" eSuperTypes="_eJeivIDyEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_eJei5YDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJei5oDyEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_eJei6IDyEeGqdId9TXdXhQ" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_eJei64DyEeGqdId9TXdXhQ" name="JavaProperty" eSuperTypes="_eJeivIDyEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_eJei7IDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJei7YDyEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJei74DyEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_eJei8YDyEeGqdId9TXdXhQ" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJei84DyEeGqdId9TXdXhQ" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJei9YDyEeGqdId9TXdXhQ" name="generateGetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+ <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJei94DyEeGqdId9TXdXhQ" name="generateSetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+ <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJei-YDyEeGqdId9TXdXhQ" name="isStatic" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJei-4DyEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_eJei_YDyEeGqdId9TXdXhQ" name="classifier" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_eJejAIDyEeGqdId9TXdXhQ" name="PrimitiveType" eSuperTypes="_eJeitYDyEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_eJejAYDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJejAoDyEeGqdId9TXdXhQ" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_eJejBIDyEeGqdId9TXdXhQ" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJejBoDyEeGqdId9TXdXhQ" name="collectionImplementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_eJejCYDyEeGqdId9TXdXhQ" name="JavaProject" eSuperTypes="_eJeitYDyEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_eJejCoDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_eJejC4DyEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_eJejDoDyEeGqdId9TXdXhQ" name="JavaSrcFolder" eSuperTypes="_eJeitYDyEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_eJejD4DyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_eJejEIDyEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_eJejE4DyEeGqdId9TXdXhQ" name="TrueFalseDefault">
+ <eAnnotations xmi:id="_eJejFIDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+ <eLiterals xmi:id="_eJejFYDyEeGqdId9TXdXhQ" name="true"/>
+ <eLiterals xmi:id="_eJejFoDyEeGqdId9TXdXhQ" name="false" value="1"/>
+ <eLiterals xmi:id="_eJejF4DyEeGqdId9TXdXhQ" name="default" value="2"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_VgeDYIAfEeGqdId9TXdXhQ" name="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VgeDYYAfEeGqdId9TXdXhQ" name="JavaClass" eSuperTypes="_VgeDdIAfEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_VgeDYoAfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_VgeDY4AfEeGqdId9TXdXhQ" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_VgeDZIAfEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_VgeDZYAfEeGqdId9TXdXhQ" source="redefines" references="_VgeDfYAfEeGqdId9TXdXhQ"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VgeDZ4AfEeGqdId9TXdXhQ" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDaYAfEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDa4AfEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDbYAfEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDb4AfEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VgeDcYAfEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VgeDdIAfEeGqdId9TXdXhQ" name="JavaGen" abstract="true" eSuperTypes="_VgeDe4AfEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_VgeDdYAfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDdoAfEeGqdId9TXdXhQ" name="srcName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDeIAfEeGqdId9TXdXhQ" name="projectName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VgeDe4AfEeGqdId9TXdXhQ" name="JavaNamedElement" abstract="true">
+ <eAnnotations xmi:id="_VgeDfIAfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDfYAfEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDf4AfEeGqdId9TXdXhQ" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDgYAfEeGqdId9TXdXhQ" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDg4AfEeGqdId9TXdXhQ" name="comment" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDhYAfEeGqdId9TXdXhQ" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VgeDh4AfEeGqdId9TXdXhQ" name="JavaPackage_" eSuperTypes="_VgeDdIAfEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_VgeDiIAfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDiYAfEeGqdId9TXdXhQ" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VgeDi4AfEeGqdId9TXdXhQ" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VgeDjoAfEeGqdId9TXdXhQ" name="JavaMethod" eSuperTypes="_VgeDe4AfEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_VgeDj4AfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDkIAfEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDkoAfEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDlIAfEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDloAfEeGqdId9TXdXhQ" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDmIAfEeGqdId9TXdXhQ" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDmoAfEeGqdId9TXdXhQ" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VgeDnIAfEeGqdId9TXdXhQ" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDnoAfEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VgeDoYAfEeGqdId9TXdXhQ" name="JavaParameter" eSuperTypes="_VgeDe4AfEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_VgeDooAfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDo4AfEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VgeDpYAfEeGqdId9TXdXhQ" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VgeDqIAfEeGqdId9TXdXhQ" name="JavaProperty" eSuperTypes="_VgeDe4AfEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_VgeDqYAfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDqoAfEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDrIAfEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VgeDroAfEeGqdId9TXdXhQ" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDsIAfEeGqdId9TXdXhQ" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDsoAfEeGqdId9TXdXhQ" name="generateGetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+ <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDtIAfEeGqdId9TXdXhQ" name="generateSetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+ <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDtoAfEeGqdId9TXdXhQ" name="isStatic" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDuIAfEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VgeDu4AfEeGqdId9TXdXhQ" name="PrimitiveType" eSuperTypes="_VgeDdIAfEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_VgeDvIAfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDvYAfEeGqdId9TXdXhQ" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VgeDv4AfEeGqdId9TXdXhQ" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDwYAfEeGqdId9TXdXhQ" name="collectionImplementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VgeDxIAfEeGqdId9TXdXhQ" name="JavaProject" eSuperTypes="_VgeDdIAfEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_VgeDxYAfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VgeDxoAfEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VgeDyYAfEeGqdId9TXdXhQ" name="JavaSrcFolder" eSuperTypes="_VgeDdIAfEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_VgeDyoAfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VgeDy4AfEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_VgeDzoAfEeGqdId9TXdXhQ" name="TrueFalseDefault">
+ <eAnnotations xmi:id="_VgeDz4AfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+ <eLiterals xmi:id="_VgeD0IAfEeGqdId9TXdXhQ" name="true"/>
+ <eLiterals xmi:id="_VgeD0YAfEeGqdId9TXdXhQ" name="false" value="1"/>
+ <eLiterals xmi:id="_VgeD0oAfEeGqdId9TXdXhQ" name="default" value="2"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_MQshIIAfEeGqdId9TXdXhQ" name="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MQshIYAfEeGqdId9TXdXhQ" name="JavaClass" eSuperTypes="_MQshNIAfEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_MQshIoAfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_MQshI4AfEeGqdId9TXdXhQ" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_MQshJIAfEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_MQshJYAfEeGqdId9TXdXhQ" source="redefines" references="_MQshPYAfEeGqdId9TXdXhQ"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MQshJ4AfEeGqdId9TXdXhQ" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshKYAfEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshK4AfEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshLYAfEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshL4AfEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MQshMYAfEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MQshNIAfEeGqdId9TXdXhQ" name="JavaGen" abstract="true" eSuperTypes="_MQshO4AfEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_MQshNYAfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshNoAfEeGqdId9TXdXhQ" name="srcName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshOIAfEeGqdId9TXdXhQ" name="projectName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MQshO4AfEeGqdId9TXdXhQ" name="JavaNamedElement" abstract="true">
+ <eAnnotations xmi:id="_MQshPIAfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshPYAfEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshP4AfEeGqdId9TXdXhQ" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshQYAfEeGqdId9TXdXhQ" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshQ4AfEeGqdId9TXdXhQ" name="comment" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshRYAfEeGqdId9TXdXhQ" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MQshR4AfEeGqdId9TXdXhQ" name="JavaPackage_" eSuperTypes="_MQshNIAfEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_MQshSIAfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshSYAfEeGqdId9TXdXhQ" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MQshS4AfEeGqdId9TXdXhQ" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MQshToAfEeGqdId9TXdXhQ" name="JavaMethod" eSuperTypes="_MQshO4AfEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_MQshT4AfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshUIAfEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshUoAfEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshVIAfEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshVoAfEeGqdId9TXdXhQ" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshWIAfEeGqdId9TXdXhQ" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshWoAfEeGqdId9TXdXhQ" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MQshXIAfEeGqdId9TXdXhQ" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MQshX4AfEeGqdId9TXdXhQ" name="JavaParameter" eSuperTypes="_MQshO4AfEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_MQshYIAfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshYYAfEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MQshY4AfEeGqdId9TXdXhQ" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MQshZoAfEeGqdId9TXdXhQ" name="JavaProperty" eSuperTypes="_MQshO4AfEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_MQshZ4AfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshaIAfEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshaoAfEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MQshbIAfEeGqdId9TXdXhQ" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshboAfEeGqdId9TXdXhQ" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshcIAfEeGqdId9TXdXhQ" name="generateGetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+ <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshcoAfEeGqdId9TXdXhQ" name="generateSetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+ <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshdIAfEeGqdId9TXdXhQ" name="isStatic" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshdoAfEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MQsheYAfEeGqdId9TXdXhQ" name="PrimitiveType" eSuperTypes="_MQshNIAfEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_MQsheoAfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshe4AfEeGqdId9TXdXhQ" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MQshfYAfEeGqdId9TXdXhQ" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshf4AfEeGqdId9TXdXhQ" name="collectionImplementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MQshgoAfEeGqdId9TXdXhQ" name="JavaProject" eSuperTypes="_MQshNIAfEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_MQshg4AfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MQshhIAfEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MQshh4AfEeGqdId9TXdXhQ" name="JavaSrcFolder" eSuperTypes="_MQshNIAfEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_MQshiIAfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MQshiYAfEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_MQshjIAfEeGqdId9TXdXhQ" name="TrueFalseDefault">
+ <eAnnotations xmi:id="_MQshjYAfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+ <eLiterals xmi:id="_MQshjoAfEeGqdId9TXdXhQ" name="true"/>
+ <eLiterals xmi:id="_MQshj4AfEeGqdId9TXdXhQ" name="false" value="1"/>
+ <eLiterals xmi:id="_MQshkIAfEeGqdId9TXdXhQ" name="default" value="2"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_sdbioIAEEeGqdId9TXdXhQ" name="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_sdbioYAEEeGqdId9TXdXhQ" name="JavaClass" eSuperTypes="_sdcJt4AEEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_sdbiooAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_sdbio4AEEeGqdId9TXdXhQ" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_sdbipIAEEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_sdbipYAEEeGqdId9TXdXhQ" source="redefines" references="_sdcJwIAEEeGqdId9TXdXhQ"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sdbip4AEEeGqdId9TXdXhQ" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdbiqYAEEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdbiq4AEEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJsIAEEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJsoAEEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sdcJtIAEEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_sdcJt4AEEeGqdId9TXdXhQ" name="JavaGen" abstract="true" eSuperTypes="_sdcJvoAEEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_sdcJuIAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJuYAEEeGqdId9TXdXhQ" name="srcName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJu4AEEeGqdId9TXdXhQ" name="projectName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_sdcJvoAEEeGqdId9TXdXhQ" name="JavaNamedElement" abstract="true">
+ <eAnnotations xmi:id="_sdcJv4AEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJwIAEEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJwoAEEeGqdId9TXdXhQ" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJxIAEEeGqdId9TXdXhQ" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJxoAEEeGqdId9TXdXhQ" name="comment" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJyIAEEeGqdId9TXdXhQ" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_sdcJyoAEEeGqdId9TXdXhQ" name="JavaPackage_" eSuperTypes="_sdcJt4AEEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_sdcJy4AEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJzIAEEeGqdId9TXdXhQ" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sdcJzoAEEeGqdId9TXdXhQ" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_sdcJ0YAEEeGqdId9TXdXhQ" name="JavaMethod" eSuperTypes="_sdcJvoAEEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_sdcJ0oAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJ04AEEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJ1YAEEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJ14AEEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJ2YAEEeGqdId9TXdXhQ" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJ24AEEeGqdId9TXdXhQ" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJ3YAEEeGqdId9TXdXhQ" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sdcJ34AEEeGqdId9TXdXhQ" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sdcJ4YAEEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_sdcJ5IAEEeGqdId9TXdXhQ" name="JavaParameter" eSuperTypes="_sdcJvoAEEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_sdcJ5YAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJ5oAEEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sdcJ6IAEEeGqdId9TXdXhQ" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_sdcJ64AEEeGqdId9TXdXhQ" name="JavaProperty" eSuperTypes="_sdcJvoAEEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_sdcJ7IAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJ7YAEEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJ74AEEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sdcJ8YAEEeGqdId9TXdXhQ" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJ84AEEeGqdId9TXdXhQ" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJ9YAEEeGqdId9TXdXhQ" name="generateGetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+ <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJ94AEEeGqdId9TXdXhQ" name="generateSetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+ <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJ-YAEEeGqdId9TXdXhQ" name="isStatic" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJ-4AEEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_sdcJ_oAEEeGqdId9TXdXhQ" name="PrimitiveType" eSuperTypes="_sdcJt4AEEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_sdcJ_4AEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcKAIAEEeGqdId9TXdXhQ" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sdcKAoAEEeGqdId9TXdXhQ" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcKBIAEEeGqdId9TXdXhQ" name="collectionImplementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_sdcKB4AEEeGqdId9TXdXhQ" name="JavaProject" eSuperTypes="_sdcJt4AEEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_sdcKCIAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sdcKCYAEEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_sdcKDIAEEeGqdId9TXdXhQ" name="JavaSrcFolder" eSuperTypes="_sdcJt4AEEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_sdcKDYAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sdcKDoAEEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_sdcKEYAEEeGqdId9TXdXhQ" name="TrueFalseDefault">
+ <eAnnotations xmi:id="_sdcKEoAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+ <eLiterals xmi:id="_sdcKE4AEEeGqdId9TXdXhQ" name="true"/>
+ <eLiterals xmi:id="_sdcKFIAEEeGqdId9TXdXhQ" name="false" value="1"/>
+ <eLiterals xmi:id="_sdcKFYAEEeGqdId9TXdXhQ" name="default" value="2"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_dPXdAIAEEeGqdId9TXdXhQ" name="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_dPXdAYAEEeGqdId9TXdXhQ" name="JavaClass" eSuperTypes="_dPXdFIAEEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_dPXdAoAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_dPXdA4AEEeGqdId9TXdXhQ" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_dPXdBIAEEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_dPXdBYAEEeGqdId9TXdXhQ" source="redefines" references="_dPXdHYAEEeGqdId9TXdXhQ"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dPXdB4AEEeGqdId9TXdXhQ" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdCYAEEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdC4AEEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdDYAEEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdD4AEEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dPXdEYAEEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_dPXdFIAEEeGqdId9TXdXhQ" name="JavaGen" abstract="true" eSuperTypes="_dPXdG4AEEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_dPXdFYAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdFoAEEeGqdId9TXdXhQ" name="srcName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdGIAEEeGqdId9TXdXhQ" name="projectName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_dPXdG4AEEeGqdId9TXdXhQ" name="JavaNamedElement" abstract="true">
+ <eAnnotations xmi:id="_dPXdHIAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdHYAEEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdH4AEEeGqdId9TXdXhQ" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdIYAEEeGqdId9TXdXhQ" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdI4AEEeGqdId9TXdXhQ" name="comment" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdJYAEEeGqdId9TXdXhQ" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_dPXdJ4AEEeGqdId9TXdXhQ" name="JavaPackage_" eSuperTypes="_dPXdFIAEEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_dPXdKIAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdKYAEEeGqdId9TXdXhQ" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dPXdK4AEEeGqdId9TXdXhQ" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_dPXdLoAEEeGqdId9TXdXhQ" name="JavaMethod" eSuperTypes="_dPXdG4AEEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_dPXdL4AEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdMIAEEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdMoAEEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdNIAEEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdNoAEEeGqdId9TXdXhQ" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdOIAEEeGqdId9TXdXhQ" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdOoAEEeGqdId9TXdXhQ" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dPXdPIAEEeGqdId9TXdXhQ" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dPXdPoAEEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_dPXdQYAEEeGqdId9TXdXhQ" name="JavaParameter" eSuperTypes="_dPXdG4AEEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_dPXdQoAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdQ4AEEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dPXdRYAEEeGqdId9TXdXhQ" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_dPXdSIAEEeGqdId9TXdXhQ" name="JavaProperty" eSuperTypes="_dPXdG4AEEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_dPXdSYAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdSoAEEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdTIAEEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dPXdToAEEeGqdId9TXdXhQ" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdUIAEEeGqdId9TXdXhQ" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdUoAEEeGqdId9TXdXhQ" name="generateGetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+ <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdVIAEEeGqdId9TXdXhQ" name="generateSetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+ <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdVoAEEeGqdId9TXdXhQ" name="isStatic" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdWIAEEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_dPXdW4AEEeGqdId9TXdXhQ" name="PrimitiveType" eSuperTypes="_dPXdFIAEEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_dPXdXIAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdXYAEEeGqdId9TXdXhQ" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dPXdX4AEEeGqdId9TXdXhQ" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdYYAEEeGqdId9TXdXhQ" name="collectionImplementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_dPXdZIAEEeGqdId9TXdXhQ" name="JavaProject" eSuperTypes="_dPXdFIAEEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_dPXdZYAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dPXdZoAEEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_dPXdaYAEEeGqdId9TXdXhQ" name="JavaSrcFolder" eSuperTypes="_dPXdFIAEEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_dPXdaoAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dPXda4AEEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_dPXdboAEEeGqdId9TXdXhQ" name="TrueFalseDefault">
+ <eAnnotations xmi:id="_dPXdb4AEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+ <eLiterals xmi:id="_dPXdcIAEEeGqdId9TXdXhQ" name="true"/>
+ <eLiterals xmi:id="_dPXdcYAEEeGqdId9TXdXhQ" name="false" value="1"/>
+ <eLiterals xmi:id="_dPXdcoAEEeGqdId9TXdXhQ" name="default" value="2"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_UnC8UIAEEeGqdId9TXdXhQ" name="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_UnC8UYAEEeGqdId9TXdXhQ" name="JavaClass" eSuperTypes="_UnDjaYAEEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_UnC8UoAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_UnC8U4AEEeGqdId9TXdXhQ" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_UnC8VIAEEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_UnC8VYAEEeGqdId9TXdXhQ" source="redefines" references="_UnDjcoAEEeGqdId9TXdXhQ"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_UnC8V4AEEeGqdId9TXdXhQ" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnC8WYAEEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjYIAEEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjYoAEEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjZIAEEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_UnDjZoAEEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_UnDjaYAEEeGqdId9TXdXhQ" name="JavaGen" abstract="true" eSuperTypes="_UnDjcIAEEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_UnDjaoAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDja4AEEeGqdId9TXdXhQ" name="srcName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjbYAEEeGqdId9TXdXhQ" name="projectName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_UnDjcIAEEeGqdId9TXdXhQ" name="JavaNamedElement" abstract="true">
+ <eAnnotations xmi:id="_UnDjcYAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjcoAEEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjdIAEEeGqdId9TXdXhQ" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjdoAEEeGqdId9TXdXhQ" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjeIAEEeGqdId9TXdXhQ" name="comment" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjeoAEEeGqdId9TXdXhQ" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_UnDjfIAEEeGqdId9TXdXhQ" name="JavaPackage_" eSuperTypes="_UnDjaYAEEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_UnDjfYAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjfoAEEeGqdId9TXdXhQ" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_UnDjgIAEEeGqdId9TXdXhQ" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_UnDjg4AEEeGqdId9TXdXhQ" name="JavaMethod" eSuperTypes="_UnDjcIAEEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_UnDjhIAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjhYAEEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjh4AEEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjiYAEEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDji4AEEeGqdId9TXdXhQ" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjjYAEEeGqdId9TXdXhQ" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjj4AEEeGqdId9TXdXhQ" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_UnDjkYAEEeGqdId9TXdXhQ" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_UnDjk4AEEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjlYAEEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_UnDjmIAEEeGqdId9TXdXhQ" name="JavaParameter" eSuperTypes="_UnDjcIAEEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_UnDjmYAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjmoAEEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_UnDjnIAEEeGqdId9TXdXhQ" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_UnDjn4AEEeGqdId9TXdXhQ" name="JavaProperty" eSuperTypes="_UnDjcIAEEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_UnDjoIAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjoYAEEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjo4AEEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_UnDjpYAEEeGqdId9TXdXhQ" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjp4AEEeGqdId9TXdXhQ" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjqYAEEeGqdId9TXdXhQ" name="generateGetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+ <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjq4AEEeGqdId9TXdXhQ" name="generateSetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+ <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjrYAEEeGqdId9TXdXhQ" name="isStatic" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjr4AEEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_UnDjsYAEEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_UnDjtIAEEeGqdId9TXdXhQ" name="PrimitiveType" eSuperTypes="_UnDjaYAEEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_UnDjtYAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjtoAEEeGqdId9TXdXhQ" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_UnDjuIAEEeGqdId9TXdXhQ" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjuoAEEeGqdId9TXdXhQ" name="collectionImplementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_UnDjvYAEEeGqdId9TXdXhQ" name="JavaProject" eSuperTypes="_UnDjaYAEEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_UnDjvoAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_UnDjv4AEEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_UnDjwoAEEeGqdId9TXdXhQ" name="JavaSrcFolder" eSuperTypes="_UnDjaYAEEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_UnDjw4AEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_UnDjxIAEEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_UnDjx4AEEeGqdId9TXdXhQ" name="TrueFalseDefault">
+ <eAnnotations xmi:id="_UnDjyIAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+ <eLiterals xmi:id="_UnDjyYAEEeGqdId9TXdXhQ" name="true"/>
+ <eLiterals xmi:id="_UnDjyoAEEeGqdId9TXdXhQ" name="false" value="1"/>
+ <eLiterals xmi:id="_UnDjy4AEEeGqdId9TXdXhQ" name="default" value="2"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_RDFtYIAEEeGqdId9TXdXhQ" name="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_RDFtYYAEEeGqdId9TXdXhQ" name="JavaClass" eSuperTypes="_RDGUgYAEEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_RDFtYoAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_RDGUcIAEEeGqdId9TXdXhQ" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_RDGUcYAEEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_RDGUcoAEEeGqdId9TXdXhQ" source="redefines" references="_RDGUioAEEeGqdId9TXdXhQ"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RDGUdIAEEeGqdId9TXdXhQ" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUdoAEEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUeIAEEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUeoAEEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUfIAEEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RDGUfoAEEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_RDGUgYAEEeGqdId9TXdXhQ" name="JavaGen" abstract="true" eSuperTypes="_RDGUiIAEEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_RDGUgoAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUg4AEEeGqdId9TXdXhQ" name="srcName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUhYAEEeGqdId9TXdXhQ" name="projectName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_RDGUiIAEEeGqdId9TXdXhQ" name="JavaNamedElement" abstract="true">
+ <eAnnotations xmi:id="_RDGUiYAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUioAEEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUjIAEEeGqdId9TXdXhQ" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUjoAEEeGqdId9TXdXhQ" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUkIAEEeGqdId9TXdXhQ" name="comment" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUkoAEEeGqdId9TXdXhQ" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_RDGUlIAEEeGqdId9TXdXhQ" name="JavaPackage_" eSuperTypes="_RDGUgYAEEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_RDGUlYAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUloAEEeGqdId9TXdXhQ" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RDGUmIAEEeGqdId9TXdXhQ" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_RDGUm4AEEeGqdId9TXdXhQ" name="JavaMethod" eSuperTypes="_RDGUiIAEEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_RDGUnIAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUnYAEEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUn4AEEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUoYAEEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUo4AEEeGqdId9TXdXhQ" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUpYAEEeGqdId9TXdXhQ" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUp4AEEeGqdId9TXdXhQ" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RDGUqYAEEeGqdId9TXdXhQ" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RDGUq4AEEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUrYAEEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_RDGUsIAEEeGqdId9TXdXhQ" name="JavaParameter" eSuperTypes="_RDGUiIAEEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_RDGUsYAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUsoAEEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RDGUtIAEEeGqdId9TXdXhQ" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_RDGUt4AEEeGqdId9TXdXhQ" name="JavaProperty" eSuperTypes="_RDGUiIAEEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_RDGUuIAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUuYAEEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUu4AEEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RDGUvYAEEeGqdId9TXdXhQ" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUv4AEEeGqdId9TXdXhQ" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUwYAEEeGqdId9TXdXhQ" name="generateGetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+ <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUw4AEEeGqdId9TXdXhQ" name="generateSetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+ <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUxYAEEeGqdId9TXdXhQ" name="isStatic" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUx4AEEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RDGUyYAEEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_RDGUzIAEEeGqdId9TXdXhQ" name="PrimitiveType" eSuperTypes="_RDGUgYAEEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_RDGUzYAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUzoAEEeGqdId9TXdXhQ" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RDGU0IAEEeGqdId9TXdXhQ" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGU0oAEEeGqdId9TXdXhQ" name="collectionImplementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_RDGU1YAEEeGqdId9TXdXhQ" name="JavaProject" eSuperTypes="_RDGUgYAEEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_RDGU1oAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RDGU14AEEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_RDGU2oAEEeGqdId9TXdXhQ" name="JavaSrcFolder" eSuperTypes="_RDGUgYAEEeGqdId9TXdXhQ">
+ <eAnnotations xmi:id="_RDGU24AEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RDGU3IAEEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RDGU34AEEeGqdId9TXdXhQ" name="TrueFalseDefault">
+ <eAnnotations xmi:id="_RDGU4IAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+ <eLiterals xmi:id="_RDGU4YAEEeGqdId9TXdXhQ" name="true"/>
+ <eLiterals xmi:id="_RDGU4oAEEeGqdId9TXdXhQ" name="false" value="1"/>
+ <eLiterals xmi:id="_RDGU44AEEeGqdId9TXdXhQ" name="default" value="2"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_-sB2gIADEeGqdId9TXdXhQ" name="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_-sB2gYADEeGqdId9TXdXhQ" name="JavaClass">
+ <eAnnotations xmi:id="_-sB2goADEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_-sB2g4ADEeGqdId9TXdXhQ" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_-sB2hIADEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_-sB2hYADEeGqdId9TXdXhQ" source="redefines"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-sB2h4ADEeGqdId9TXdXhQ" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2iYADEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2i4ADEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2jYADEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2j4ADEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-sB2kYADEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_-sB2lIADEeGqdId9TXdXhQ" name="JavaPackage_">
+ <eAnnotations xmi:id="_-sB2lYADEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2loADEeGqdId9TXdXhQ" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-sB2mIADEeGqdId9TXdXhQ" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_-sB2m4ADEeGqdId9TXdXhQ" name="JavaMethod">
+ <eAnnotations xmi:id="_-sB2nIADEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2nYADEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2n4ADEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2oYADEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2o4ADEeGqdId9TXdXhQ" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2pYADEeGqdId9TXdXhQ" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2p4ADEeGqdId9TXdXhQ" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-sB2qYADEeGqdId9TXdXhQ" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_-sB2rIADEeGqdId9TXdXhQ" name="JavaParameter">
+ <eAnnotations xmi:id="_-sB2rYADEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2roADEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-sB2sIADEeGqdId9TXdXhQ" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_-sB2s4ADEeGqdId9TXdXhQ" name="JavaProperty">
+ <eAnnotations xmi:id="_-sB2tIADEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2tYADEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2t4ADEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-sB2uYADEeGqdId9TXdXhQ" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2u4ADEeGqdId9TXdXhQ" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2vYADEeGqdId9TXdXhQ" name="generateGetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+ <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2v4ADEeGqdId9TXdXhQ" name="generateSetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+ <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2wYADEeGqdId9TXdXhQ" name="isStatic" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_-sB2xIADEeGqdId9TXdXhQ" name="JavaNamedElement" abstract="true">
+ <eAnnotations xmi:id="_-sB2xYADEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2xoADEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2yIADEeGqdId9TXdXhQ" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2yoADEeGqdId9TXdXhQ" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2zIADEeGqdId9TXdXhQ" name="comment" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2zoADEeGqdId9TXdXhQ" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_-sB20IADEeGqdId9TXdXhQ" name="PrimitiveType">
+ <eAnnotations xmi:id="_-sB20YADEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB20oADEeGqdId9TXdXhQ" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-sB21IADEeGqdId9TXdXhQ" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB21oADEeGqdId9TXdXhQ" name="collectionImplementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_-sB22YADEeGqdId9TXdXhQ" name="JavaProject">
+ <eAnnotations xmi:id="_-sB22oADEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-sB224ADEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_-sB23oADEeGqdId9TXdXhQ" name="JavaSrcFolder">
+ <eAnnotations xmi:id="_-sB234ADEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-sB24IADEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_-sB244ADEeGqdId9TXdXhQ" name="JavaGen" abstract="true">
+ <eAnnotations xmi:id="_-sB25IADEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB25YADEeGqdId9TXdXhQ" name="srcName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB254ADEeGqdId9TXdXhQ" name="projectName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_-sB26oADEeGqdId9TXdXhQ" name="TrueFalseDefault">
+ <eAnnotations xmi:id="_-sB264ADEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+ <eLiterals xmi:id="_-sB27IADEeGqdId9TXdXhQ" name="true"/>
+ <eLiterals xmi:id="_-sB27YADEeGqdId9TXdXhQ" name="false" value="1"/>
+ <eLiterals xmi:id="_-sB27oADEeGqdId9TXdXhQ" name="default" value="2"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_m4y0cHppEeG6sMpxGcut-Q" name="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m4y0cXppEeG6sMpxGcut-Q" name="JavaClass" eSuperTypes="_m4y0gHppEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_m4y0cnppEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_m4y0c3ppEeG6sMpxGcut-Q" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_m4y0dHppEeG6sMpxGcut-Q" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_m4y0dXppEeG6sMpxGcut-Q" source="redefines" references="_m4y0iXppEeG6sMpxGcut-Q"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m4y0d3ppEeG6sMpxGcut-Q" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0eXppEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0e3ppEeG6sMpxGcut-Q" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0fXppEeG6sMpxGcut-Q" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m4y0gHppEeG6sMpxGcut-Q" name="JavaGen" abstract="true" eSuperTypes="_m4y0h3ppEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_m4y0gXppEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0gnppEeG6sMpxGcut-Q" name="srcName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0hHppEeG6sMpxGcut-Q" name="projectName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m4y0h3ppEeG6sMpxGcut-Q" name="JavaNamedElement" abstract="true">
+ <eAnnotations xmi:id="_m4y0iHppEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0iXppEeG6sMpxGcut-Q" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0i3ppEeG6sMpxGcut-Q" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0jXppEeG6sMpxGcut-Q" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0j3ppEeG6sMpxGcut-Q" name="comment" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0kXppEeG6sMpxGcut-Q" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m4y0k3ppEeG6sMpxGcut-Q" name="JavaPackage_" eSuperTypes="_m4y0gHppEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_m4y0lHppEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0lXppEeG6sMpxGcut-Q" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m4y0l3ppEeG6sMpxGcut-Q" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m4y0mnppEeG6sMpxGcut-Q" name="JavaMethod" eSuperTypes="_m4y0h3ppEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_m4y0m3ppEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0nHppEeG6sMpxGcut-Q" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0nnppEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0oHppEeG6sMpxGcut-Q" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0onppEeG6sMpxGcut-Q" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0pHppEeG6sMpxGcut-Q" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0pnppEeG6sMpxGcut-Q" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m4y0qHppEeG6sMpxGcut-Q" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m4y0q3ppEeG6sMpxGcut-Q" name="JavaParameter" eSuperTypes="_m4y0h3ppEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_m4y0rHppEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0rXppEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m4y0r3ppEeG6sMpxGcut-Q" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m4y0snppEeG6sMpxGcut-Q" name="JavaProperty" eSuperTypes="_m4y0h3ppEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_m4y0s3ppEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0tHppEeG6sMpxGcut-Q" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0tnppEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m4y0uHppEeG6sMpxGcut-Q" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0unppEeG6sMpxGcut-Q" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0vHppEeG6sMpxGcut-Q" name="generateGetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+ <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0vnppEeG6sMpxGcut-Q" name="generateSetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+ <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0wHppEeG6sMpxGcut-Q" name="isStatic" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m4y0w3ppEeG6sMpxGcut-Q" name="PrimitiveType" eSuperTypes="_m4y0gHppEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_m4y0xHppEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0xXppEeG6sMpxGcut-Q" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m4y0x3ppEeG6sMpxGcut-Q" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0yXppEeG6sMpxGcut-Q" name="collectionImplementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m4y0zHppEeG6sMpxGcut-Q" name="JavaProject" eSuperTypes="_m4y0gHppEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_m4y0zXppEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m4y0znppEeG6sMpxGcut-Q" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m4y00XppEeG6sMpxGcut-Q" name="JavaSrcFolder" eSuperTypes="_m4y0gHppEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_m4y00nppEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m4y003ppEeG6sMpxGcut-Q" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_m4y01nppEeG6sMpxGcut-Q" name="TrueFalseDefault">
+ <eAnnotations xmi:id="_m4y013ppEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+ <eLiterals xmi:id="_m4y02HppEeG6sMpxGcut-Q" name="true"/>
+ <eLiterals xmi:id="_m4y02XppEeG6sMpxGcut-Q" name="false" value="1"/>
+ <eLiterals xmi:id="_m4y02nppEeG6sMpxGcut-Q" name="default" value="2"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_niTg8HpoEeG6sMpxGcut-Q" name="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_niTg8XpoEeG6sMpxGcut-Q" name="JavaClass" eSuperTypes="_niThAHpoEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_niTg8npoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_niTg83poEeG6sMpxGcut-Q" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_niTg9HpoEeG6sMpxGcut-Q" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_niTg9XpoEeG6sMpxGcut-Q" source="redefines" references="_niThCXpoEeG6sMpxGcut-Q"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_niTg93poEeG6sMpxGcut-Q" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niTg-XpoEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niTg-3poEeG6sMpxGcut-Q" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niTg_XpoEeG6sMpxGcut-Q" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_niThAHpoEeG6sMpxGcut-Q" name="JavaGen" abstract="true" eSuperTypes="_niThB3poEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_niThAXpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niThAnpoEeG6sMpxGcut-Q" name="srcName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niThBHpoEeG6sMpxGcut-Q" name="projectName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_niThB3poEeG6sMpxGcut-Q" name="JavaNamedElement" abstract="true">
+ <eAnnotations xmi:id="_niThCHpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niThCXpoEeG6sMpxGcut-Q" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niThC3poEeG6sMpxGcut-Q" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niThDXpoEeG6sMpxGcut-Q" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niThD3poEeG6sMpxGcut-Q" name="comment" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niUIAXpoEeG6sMpxGcut-Q" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_niUIA3poEeG6sMpxGcut-Q" name="JavaPackage_" eSuperTypes="_niThAHpoEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_niUIBHpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niUIBXpoEeG6sMpxGcut-Q" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_niUIB3poEeG6sMpxGcut-Q" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_niUICnpoEeG6sMpxGcut-Q" name="JavaMethod" eSuperTypes="_niThB3poEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_niUIC3poEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niUIDHpoEeG6sMpxGcut-Q" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niUIDnpoEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niUIEHpoEeG6sMpxGcut-Q" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niUIEnpoEeG6sMpxGcut-Q" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niUIFHpoEeG6sMpxGcut-Q" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niUIFnpoEeG6sMpxGcut-Q" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_niUIGHpoEeG6sMpxGcut-Q" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_niUIG3poEeG6sMpxGcut-Q" name="JavaParameter" eSuperTypes="_niThB3poEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_niUIHHpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niUIHXpoEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_niUIH3poEeG6sMpxGcut-Q" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_niUIInpoEeG6sMpxGcut-Q" name="JavaProperty" eSuperTypes="_niThB3poEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_niUII3poEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niUIJHpoEeG6sMpxGcut-Q" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niUIJnpoEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_niUIKHpoEeG6sMpxGcut-Q" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niUIKnpoEeG6sMpxGcut-Q" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niUILHpoEeG6sMpxGcut-Q" name="generateGetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+ <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niUILnpoEeG6sMpxGcut-Q" name="generateSetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+ <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niUIMHpoEeG6sMpxGcut-Q" name="isStatic" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_niUIM3poEeG6sMpxGcut-Q" name="PrimitiveType" eSuperTypes="_niThAHpoEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_niUINHpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niUINXpoEeG6sMpxGcut-Q" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_niUIN3poEeG6sMpxGcut-Q" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niUIOXpoEeG6sMpxGcut-Q" name="collectionImplementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_niUIPHpoEeG6sMpxGcut-Q" name="JavaProject" eSuperTypes="_niThAHpoEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_niUIPXpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_niUIPnpoEeG6sMpxGcut-Q" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_niUIQXpoEeG6sMpxGcut-Q" name="JavaSrcFolder" eSuperTypes="_niThAHpoEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_niUIQnpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_niUIQ3poEeG6sMpxGcut-Q" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_niUIRnpoEeG6sMpxGcut-Q" name="TrueFalseDefault">
+ <eAnnotations xmi:id="_niUIR3poEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+ <eLiterals xmi:id="_niUISHpoEeG6sMpxGcut-Q" name="true"/>
+ <eLiterals xmi:id="_niUISXpoEeG6sMpxGcut-Q" name="false" value="1"/>
+ <eLiterals xmi:id="_niUISnpoEeG6sMpxGcut-Q" name="default" value="2"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_fqWtQHpoEeG6sMpxGcut-Q" name="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_fqWtQXpoEeG6sMpxGcut-Q" name="JavaClass" eSuperTypes="_fqXUUHpoEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_fqWtQnpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_fqWtQ3poEeG6sMpxGcut-Q" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_fqWtRHpoEeG6sMpxGcut-Q" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_fqWtRXpoEeG6sMpxGcut-Q" source="redefines" references="_fqXUWXpoEeG6sMpxGcut-Q"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_fqWtR3poEeG6sMpxGcut-Q" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqWtSXpoEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqWtS3poEeG6sMpxGcut-Q" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqWtTXpoEeG6sMpxGcut-Q" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_fqXUUHpoEeG6sMpxGcut-Q" name="JavaGen" abstract="true" eSuperTypes="_fqXUV3poEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_fqXUUXpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUUnpoEeG6sMpxGcut-Q" name="srcName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUVHpoEeG6sMpxGcut-Q" name="projectName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_fqXUV3poEeG6sMpxGcut-Q" name="JavaNamedElement" abstract="true">
+ <eAnnotations xmi:id="_fqXUWHpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUWXpoEeG6sMpxGcut-Q" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUW3poEeG6sMpxGcut-Q" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUXXpoEeG6sMpxGcut-Q" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUX3poEeG6sMpxGcut-Q" name="comment" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUYXpoEeG6sMpxGcut-Q" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_fqXUY3poEeG6sMpxGcut-Q" name="JavaPackage_" eSuperTypes="_fqXUUHpoEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_fqXUZHpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUZXpoEeG6sMpxGcut-Q" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_fqXUZ3poEeG6sMpxGcut-Q" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_fqXUanpoEeG6sMpxGcut-Q" name="JavaMethod" eSuperTypes="_fqXUV3poEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_fqXUa3poEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUbHpoEeG6sMpxGcut-Q" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUbnpoEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUcHpoEeG6sMpxGcut-Q" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUcnpoEeG6sMpxGcut-Q" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUdHpoEeG6sMpxGcut-Q" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUdnpoEeG6sMpxGcut-Q" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_fqXUeHpoEeG6sMpxGcut-Q" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_fqXUe3poEeG6sMpxGcut-Q" name="JavaParameter" eSuperTypes="_fqXUV3poEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_fqXUfHpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUfXpoEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_fqXUf3poEeG6sMpxGcut-Q" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_fqXUgnpoEeG6sMpxGcut-Q" name="JavaProperty" eSuperTypes="_fqXUV3poEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_fqXUg3poEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUhHpoEeG6sMpxGcut-Q" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUhnpoEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_fqXUiHpoEeG6sMpxGcut-Q" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUinpoEeG6sMpxGcut-Q" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUjHpoEeG6sMpxGcut-Q" name="generateGetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+ <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUjnpoEeG6sMpxGcut-Q" name="generateSetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+ <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUkHpoEeG6sMpxGcut-Q" name="isStatic" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_fqXUk3poEeG6sMpxGcut-Q" name="PrimitiveType" eSuperTypes="_fqXUUHpoEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_fqXUlHpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUlXpoEeG6sMpxGcut-Q" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_fqXUl3poEeG6sMpxGcut-Q" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUmXpoEeG6sMpxGcut-Q" name="collectionImplementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_fqXUnHpoEeG6sMpxGcut-Q" name="JavaProject" eSuperTypes="_fqXUUHpoEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_fqXUnXpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_fqXUnnpoEeG6sMpxGcut-Q" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_fqXUoXpoEeG6sMpxGcut-Q" name="JavaSrcFolder" eSuperTypes="_fqXUUHpoEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_fqXUonpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_fqXUo3poEeG6sMpxGcut-Q" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_fqXUpnpoEeG6sMpxGcut-Q" name="TrueFalseDefault">
+ <eAnnotations xmi:id="_fqXUp3poEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+ <eLiterals xmi:id="_fqXUqHpoEeG6sMpxGcut-Q" name="true"/>
+ <eLiterals xmi:id="_fqXUqXpoEeG6sMpxGcut-Q" name="false" value="1"/>
+ <eLiterals xmi:id="_fqXUqnpoEeG6sMpxGcut-Q" name="default" value="2"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_d1IRAHpoEeG6sMpxGcut-Q" name="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_d1IRAXpoEeG6sMpxGcut-Q" name="JavaClass" eSuperTypes="_d1I4G3poEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_d1IRAnpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_d1IRA3poEeG6sMpxGcut-Q" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_d1IRBHpoEeG6sMpxGcut-Q" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_d1I4EHpoEeG6sMpxGcut-Q" source="redefines" references="_d1I4JHpoEeG6sMpxGcut-Q"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_d1I4EnpoEeG6sMpxGcut-Q" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4FHpoEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4FnpoEeG6sMpxGcut-Q" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4GHpoEeG6sMpxGcut-Q" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_d1I4G3poEeG6sMpxGcut-Q" name="JavaGen" abstract="true" eSuperTypes="_d1I4InpoEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_d1I4HHpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4HXpoEeG6sMpxGcut-Q" name="srcName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4H3poEeG6sMpxGcut-Q" name="projectName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_d1I4InpoEeG6sMpxGcut-Q" name="JavaNamedElement" abstract="true">
+ <eAnnotations xmi:id="_d1I4I3poEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4JHpoEeG6sMpxGcut-Q" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4JnpoEeG6sMpxGcut-Q" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4KHpoEeG6sMpxGcut-Q" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4KnpoEeG6sMpxGcut-Q" name="comment" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4LHpoEeG6sMpxGcut-Q" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_d1I4LnpoEeG6sMpxGcut-Q" name="JavaPackage_" eSuperTypes="_d1I4G3poEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_d1I4L3poEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4MHpoEeG6sMpxGcut-Q" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_d1I4MnpoEeG6sMpxGcut-Q" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_d1I4NXpoEeG6sMpxGcut-Q" name="JavaMethod" eSuperTypes="_d1I4InpoEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_d1I4NnpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4N3poEeG6sMpxGcut-Q" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4OXpoEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4O3poEeG6sMpxGcut-Q" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4PXpoEeG6sMpxGcut-Q" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4P3poEeG6sMpxGcut-Q" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4QXpoEeG6sMpxGcut-Q" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_d1I4Q3poEeG6sMpxGcut-Q" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_d1I4RnpoEeG6sMpxGcut-Q" name="JavaParameter" eSuperTypes="_d1I4InpoEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_d1I4R3poEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4SHpoEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_d1I4SnpoEeG6sMpxGcut-Q" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_d1I4TXpoEeG6sMpxGcut-Q" name="JavaProperty" eSuperTypes="_d1I4InpoEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_d1I4TnpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4T3poEeG6sMpxGcut-Q" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4UXpoEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_d1I4U3poEeG6sMpxGcut-Q" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4VXpoEeG6sMpxGcut-Q" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4V3poEeG6sMpxGcut-Q" name="generateGetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+ <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4WXpoEeG6sMpxGcut-Q" name="generateSetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+ <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4W3poEeG6sMpxGcut-Q" name="isStatic" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_d1I4XnpoEeG6sMpxGcut-Q" name="PrimitiveType" eSuperTypes="_d1I4G3poEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_d1I4X3poEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4YHpoEeG6sMpxGcut-Q" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_d1I4YnpoEeG6sMpxGcut-Q" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4ZHpoEeG6sMpxGcut-Q" name="collectionImplementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_d1I4Z3poEeG6sMpxGcut-Q" name="JavaProject" eSuperTypes="_d1I4G3poEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_d1I4aHpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_d1I4aXpoEeG6sMpxGcut-Q" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_d1I4bHpoEeG6sMpxGcut-Q" name="JavaSrcFolder" eSuperTypes="_d1I4G3poEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_d1I4bXpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_d1I4bnpoEeG6sMpxGcut-Q" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_d1I4cXpoEeG6sMpxGcut-Q" name="TrueFalseDefault">
+ <eAnnotations xmi:id="_d1I4cnpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+ <eLiterals xmi:id="_d1I4c3poEeG6sMpxGcut-Q" name="true"/>
+ <eLiterals xmi:id="_d1I4dHpoEeG6sMpxGcut-Q" name="false" value="1"/>
+ <eLiterals xmi:id="_d1I4dXpoEeG6sMpxGcut-Q" name="default" value="2"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_cFv-EHpoEeG6sMpxGcut-Q" name="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_cFv-EXpoEeG6sMpxGcut-Q" name="JavaClass" eSuperTypes="_cFv-IHpoEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_cFv-EnpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_cFv-E3poEeG6sMpxGcut-Q" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_cFv-FHpoEeG6sMpxGcut-Q" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_cFv-FXpoEeG6sMpxGcut-Q" source="redefines" references="_cFv-KXpoEeG6sMpxGcut-Q"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_cFv-F3poEeG6sMpxGcut-Q" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-GXpoEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-G3poEeG6sMpxGcut-Q" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-HXpoEeG6sMpxGcut-Q" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_cFv-IHpoEeG6sMpxGcut-Q" name="JavaGen" abstract="true" eSuperTypes="_cFv-J3poEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_cFv-IXpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-InpoEeG6sMpxGcut-Q" name="srcName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-JHpoEeG6sMpxGcut-Q" name="projectName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_cFv-J3poEeG6sMpxGcut-Q" name="JavaNamedElement" abstract="true">
+ <eAnnotations xmi:id="_cFv-KHpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-KXpoEeG6sMpxGcut-Q" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-K3poEeG6sMpxGcut-Q" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-LXpoEeG6sMpxGcut-Q" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-L3poEeG6sMpxGcut-Q" name="comment" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-MXpoEeG6sMpxGcut-Q" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_cFv-M3poEeG6sMpxGcut-Q" name="JavaPackage_" eSuperTypes="_cFv-IHpoEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_cFv-NHpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-NXpoEeG6sMpxGcut-Q" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_cFv-N3poEeG6sMpxGcut-Q" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_cFv-OnpoEeG6sMpxGcut-Q" name="JavaMethod" eSuperTypes="_cFv-J3poEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_cFv-O3poEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-PHpoEeG6sMpxGcut-Q" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-PnpoEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-QHpoEeG6sMpxGcut-Q" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-QnpoEeG6sMpxGcut-Q" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-RHpoEeG6sMpxGcut-Q" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-RnpoEeG6sMpxGcut-Q" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_cFv-SHpoEeG6sMpxGcut-Q" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_cFv-S3poEeG6sMpxGcut-Q" name="JavaParameter" eSuperTypes="_cFv-J3poEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_cFv-THpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-TXpoEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_cFv-T3poEeG6sMpxGcut-Q" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_cFv-UnpoEeG6sMpxGcut-Q" name="JavaProperty" eSuperTypes="_cFv-J3poEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_cFv-U3poEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-VHpoEeG6sMpxGcut-Q" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-VnpoEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_cFv-WHpoEeG6sMpxGcut-Q" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-WnpoEeG6sMpxGcut-Q" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFwlIHpoEeG6sMpxGcut-Q" name="generateGetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+ <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFwlInpoEeG6sMpxGcut-Q" name="generateSetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+ <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFwlJHpoEeG6sMpxGcut-Q" name="isStatic" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_cFwlJ3poEeG6sMpxGcut-Q" name="PrimitiveType" eSuperTypes="_cFv-IHpoEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_cFwlKHpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFwlKXpoEeG6sMpxGcut-Q" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_cFwlK3poEeG6sMpxGcut-Q" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFwlLXpoEeG6sMpxGcut-Q" name="collectionImplementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_cFwlMHpoEeG6sMpxGcut-Q" name="JavaProject" eSuperTypes="_cFv-IHpoEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_cFwlMXpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_cFwlMnpoEeG6sMpxGcut-Q" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_cFwlNXpoEeG6sMpxGcut-Q" name="JavaSrcFolder" eSuperTypes="_cFv-IHpoEeG6sMpxGcut-Q">
+ <eAnnotations xmi:id="_cFwlNnpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_cFwlN3poEeG6sMpxGcut-Q" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_cFwlOnpoEeG6sMpxGcut-Q" name="TrueFalseDefault">
+ <eAnnotations xmi:id="_cFwlO3poEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+ <eLiterals xmi:id="_cFwlPHpoEeG6sMpxGcut-Q" name="true"/>
+ <eLiterals xmi:id="_cFwlPXpoEeG6sMpxGcut-Q" name="false" value="1"/>
+ <eLiterals xmi:id="_cFwlPnpoEeG6sMpxGcut-Q" name="default" value="2"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_JLmBMHpoEeG6sMpxGcut-Q" name="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_JLmBMXpoEeG6sMpxGcut-Q" name="JavaClass">
+ <eAnnotations xmi:id="_JLmBMnpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_JLmBM3poEeG6sMpxGcut-Q" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_JLmBNHpoEeG6sMpxGcut-Q" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_JLmBNXpoEeG6sMpxGcut-Q" source="redefines"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_JLmBN3poEeG6sMpxGcut-Q" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBOXpoEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBO3poEeG6sMpxGcut-Q" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBPXpoEeG6sMpxGcut-Q" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_JLmBQHpoEeG6sMpxGcut-Q" name="JavaPackage_">
+ <eAnnotations xmi:id="_JLmBQXpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBQnpoEeG6sMpxGcut-Q" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_JLmBRHpoEeG6sMpxGcut-Q" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_JLmBR3poEeG6sMpxGcut-Q" name="JavaMethod">
+ <eAnnotations xmi:id="_JLmBSHpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBSXpoEeG6sMpxGcut-Q" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBS3poEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBTXpoEeG6sMpxGcut-Q" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBT3poEeG6sMpxGcut-Q" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBUXpoEeG6sMpxGcut-Q" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBU3poEeG6sMpxGcut-Q" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_JLmBVXpoEeG6sMpxGcut-Q" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_JLmBWHpoEeG6sMpxGcut-Q" name="JavaParameter">
+ <eAnnotations xmi:id="_JLmBWXpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBWnpoEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_JLmBXHpoEeG6sMpxGcut-Q" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_JLmBX3poEeG6sMpxGcut-Q" name="JavaProperty">
+ <eAnnotations xmi:id="_JLmBYHpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBYXpoEeG6sMpxGcut-Q" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBY3poEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_JLmBZXpoEeG6sMpxGcut-Q" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBZ3poEeG6sMpxGcut-Q" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBaXpoEeG6sMpxGcut-Q" name="generateGetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+ <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBa3poEeG6sMpxGcut-Q" name="generateSetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+ <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBbXpoEeG6sMpxGcut-Q" name="isStatic" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_JLmBcHpoEeG6sMpxGcut-Q" name="JavaNamedElement" abstract="true">
+ <eAnnotations xmi:id="_JLmBcXpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBcnpoEeG6sMpxGcut-Q" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBdHpoEeG6sMpxGcut-Q" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBdnpoEeG6sMpxGcut-Q" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBeHpoEeG6sMpxGcut-Q" name="comment" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBenpoEeG6sMpxGcut-Q" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_JLmBfHpoEeG6sMpxGcut-Q" name="PrimitiveType">
+ <eAnnotations xmi:id="_JLmBfXpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBfnpoEeG6sMpxGcut-Q" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_JLmBgHpoEeG6sMpxGcut-Q" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmoQXpoEeG6sMpxGcut-Q" name="collectionImplementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_JLmoRHpoEeG6sMpxGcut-Q" name="JavaProject">
+ <eAnnotations xmi:id="_JLmoRXpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_JLmoRnpoEeG6sMpxGcut-Q" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_JLmoSXpoEeG6sMpxGcut-Q" name="JavaSrcFolder">
+ <eAnnotations xmi:id="_JLmoSnpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_JLmoS3poEeG6sMpxGcut-Q" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_JLmoTnpoEeG6sMpxGcut-Q" name="JavaGen" abstract="true">
+ <eAnnotations xmi:id="_JLmoT3poEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmoUHpoEeG6sMpxGcut-Q" name="srcName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmoUnpoEeG6sMpxGcut-Q" name="projectName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_JLmoVXpoEeG6sMpxGcut-Q" name="TrueFalseDefault">
+ <eAnnotations xmi:id="_JLmoVnpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+ <eLiterals xmi:id="_JLmoV3poEeG6sMpxGcut-Q" name="true"/>
+ <eLiterals xmi:id="_JLmoWHpoEeG6sMpxGcut-Q" name="false" value="1"/>
+ <eLiterals xmi:id="_JLmoWXpoEeG6sMpxGcut-Q" name="default" value="2"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_qULRoL4pEeCJ386_obsNkA" name="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+ <eAnnotations xmi:id="_qUqZ0L4pEeCJ386_obsNkA" source="PapyrusVersion">
+ <details xmi:id="_qUqZ0b4pEeCJ386_obsNkA" key="Version" value="0.0.23"/>
+ <details xmi:id="_qUqZ0r4pEeCJ386_obsNkA" key="Comment" value=""/>
+ <details xmi:id="_qUqZ074pEeCJ386_obsNkA" key="Copyright" value=""/>
+ <details xmi:id="_qUqZ1L4pEeCJ386_obsNkA" key="Date" value="2011-08-04"/>
+ <details xmi:id="_qUqZ1b4pEeCJ386_obsNkA" key="Author" value=""/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_qULRob4pEeCJ386_obsNkA" name="JavaClass" eSuperTypes="_qULRsL4pEeCJ386_obsNkA">
+ <eAnnotations xmi:id="_qULRor4pEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_qULRo74pEeCJ386_obsNkA" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_qULRpL4pEeCJ386_obsNkA" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_qULRpb4pEeCJ386_obsNkA" source="redefines" references="_qULRub4pEeCJ386_obsNkA"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_qULRp74pEeCJ386_obsNkA" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULRqb4pEeCJ386_obsNkA" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULRq74pEeCJ386_obsNkA" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULRrb4pEeCJ386_obsNkA" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_qULRsL4pEeCJ386_obsNkA" name="JavaGen" abstract="true" eSuperTypes="_qULRt74pEeCJ386_obsNkA">
+ <eAnnotations xmi:id="_qULRsb4pEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULRsr4pEeCJ386_obsNkA" name="srcName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULRtL4pEeCJ386_obsNkA" name="projectName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_qULRt74pEeCJ386_obsNkA" name="JavaNamedElement" abstract="true">
+ <eAnnotations xmi:id="_qULRuL4pEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULRub4pEeCJ386_obsNkA" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULRu74pEeCJ386_obsNkA" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULRvb4pEeCJ386_obsNkA" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULRv74pEeCJ386_obsNkA" name="comment" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULRwb4pEeCJ386_obsNkA" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_qULRw74pEeCJ386_obsNkA" name="JavaPackage_" eSuperTypes="_qULRsL4pEeCJ386_obsNkA">
+ <eAnnotations xmi:id="_qULRxL4pEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULRxb4pEeCJ386_obsNkA" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_qULRx74pEeCJ386_obsNkA" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_qULRyr4pEeCJ386_obsNkA" name="JavaMethod" eSuperTypes="_qULRt74pEeCJ386_obsNkA">
+ <eAnnotations xmi:id="_qULRy74pEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULRzL4pEeCJ386_obsNkA" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULRzr4pEeCJ386_obsNkA" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULR0L4pEeCJ386_obsNkA" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULR0r4pEeCJ386_obsNkA" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULR1L4pEeCJ386_obsNkA" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULR1r4pEeCJ386_obsNkA" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_qULR2L4pEeCJ386_obsNkA" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_qULR274pEeCJ386_obsNkA" name="JavaParameter" eSuperTypes="_qULRt74pEeCJ386_obsNkA">
+ <eAnnotations xmi:id="_qULR3L4pEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULR3b4pEeCJ386_obsNkA" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_qULR374pEeCJ386_obsNkA" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_qULR4r4pEeCJ386_obsNkA" name="JavaProperty" eSuperTypes="_qULRt74pEeCJ386_obsNkA">
+ <eAnnotations xmi:id="_qULR474pEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULR5L4pEeCJ386_obsNkA" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULR5r4pEeCJ386_obsNkA" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_qULR6L4pEeCJ386_obsNkA" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULR6r4pEeCJ386_obsNkA" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULR7L4pEeCJ386_obsNkA" name="generateGetter" ordered="false" lowerBound="1" eType="_qULR874pEeCJ386_obsNkA" defaultValueLiteral="default"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULR7r4pEeCJ386_obsNkA" name="generateSetter" ordered="false" lowerBound="1" eType="_qULR874pEeCJ386_obsNkA" defaultValueLiteral="default"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULR8L4pEeCJ386_obsNkA" name="isStatic" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_qULR874pEeCJ386_obsNkA" name="TrueFalseDefault">
+ <eAnnotations xmi:id="_qULR9L4pEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+ <eLiterals xmi:id="_qULR9b4pEeCJ386_obsNkA" name="true"/>
+ <eLiterals xmi:id="_qULR9r4pEeCJ386_obsNkA" name="false" value="1"/>
+ <eLiterals xmi:id="_qULR974pEeCJ386_obsNkA" name="default" value="2"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_qULR-L4pEeCJ386_obsNkA" name="PrimitiveType" eSuperTypes="_qULRsL4pEeCJ386_obsNkA">
+ <eAnnotations xmi:id="_qULR-b4pEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULR-r4pEeCJ386_obsNkA" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_qULR_L4pEeCJ386_obsNkA" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_qULR_74pEeCJ386_obsNkA" name="JavaProject" eSuperTypes="_qULRsL4pEeCJ386_obsNkA">
+ <eAnnotations xmi:id="_qULSAL4pEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_qULSAb4pEeCJ386_obsNkA" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_qULSBL4pEeCJ386_obsNkA" name="JavaSrcFolder" eSuperTypes="_qULRsL4pEeCJ386_obsNkA">
+ <eAnnotations xmi:id="_qULSBb4pEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_qULSBr4pEeCJ386_obsNkA" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_lIeTsL4nEeCJ386_obsNkA" name="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+ <eAnnotations xmi:id="_lJXrkL4nEeCJ386_obsNkA" source="PapyrusVersion">
+ <details xmi:id="_lJYSoL4nEeCJ386_obsNkA" key="Version" value="0.0.22"/>
+ <details xmi:id="_lJYSob4nEeCJ386_obsNkA" key="Comment" value=""/>
+ <details xmi:id="_lJYSor4nEeCJ386_obsNkA" key="Copyright" value=""/>
+ <details xmi:id="_lJYSo74nEeCJ386_obsNkA" key="Date" value="2011-08-04"/>
+ <details xmi:id="_lJYSpL4nEeCJ386_obsNkA" key="Author" value=""/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_lIeTsb4nEeCJ386_obsNkA" name="JavaClass" eSuperTypes="_lIeTwL4nEeCJ386_obsNkA">
+ <eAnnotations xmi:id="_lIeTsr4nEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_lIeTs74nEeCJ386_obsNkA" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_lIeTtL4nEeCJ386_obsNkA" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_lIeTtb4nEeCJ386_obsNkA" source="redefines" references="_lIeTyb4nEeCJ386_obsNkA"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_lIeTt74nEeCJ386_obsNkA" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeTub4nEeCJ386_obsNkA" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeTu74nEeCJ386_obsNkA" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeTvb4nEeCJ386_obsNkA" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_lIeTwL4nEeCJ386_obsNkA" name="JavaGen" abstract="true" eSuperTypes="_lIeTx74nEeCJ386_obsNkA">
+ <eAnnotations xmi:id="_lIeTwb4nEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeTwr4nEeCJ386_obsNkA" name="srcName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeTxL4nEeCJ386_obsNkA" name="projectName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_lIeTx74nEeCJ386_obsNkA" name="JavaNamedElement" abstract="true">
+ <eAnnotations xmi:id="_lIeTyL4nEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeTyb4nEeCJ386_obsNkA" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeTy74nEeCJ386_obsNkA" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeTzb4nEeCJ386_obsNkA" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeTz74nEeCJ386_obsNkA" name="comment" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeT0b4nEeCJ386_obsNkA" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_lIeT074nEeCJ386_obsNkA" name="JavaPackage" eSuperTypes="_lIeTwL4nEeCJ386_obsNkA">
+ <eAnnotations xmi:id="_lIeT1L4nEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeT1b4nEeCJ386_obsNkA" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_lIeT174nEeCJ386_obsNkA" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_lIeT2r4nEeCJ386_obsNkA" name="JavaMethod" eSuperTypes="_lIeTx74nEeCJ386_obsNkA">
+ <eAnnotations xmi:id="_lIeT274nEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeT3L4nEeCJ386_obsNkA" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeT3r4nEeCJ386_obsNkA" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeT4L4nEeCJ386_obsNkA" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeT4r4nEeCJ386_obsNkA" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeT5L4nEeCJ386_obsNkA" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeT5r4nEeCJ386_obsNkA" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_lIeT6L4nEeCJ386_obsNkA" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_lIeT674nEeCJ386_obsNkA" name="JavaParameter" eSuperTypes="_lIeTx74nEeCJ386_obsNkA">
+ <eAnnotations xmi:id="_lIeT7L4nEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeT7b4nEeCJ386_obsNkA" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_lIeT774nEeCJ386_obsNkA" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_lIeT8r4nEeCJ386_obsNkA" name="JavaProperty" eSuperTypes="_lIeTx74nEeCJ386_obsNkA">
+ <eAnnotations xmi:id="_lIeT874nEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeT9L4nEeCJ386_obsNkA" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeT9r4nEeCJ386_obsNkA" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_lIeT-L4nEeCJ386_obsNkA" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeT-r4nEeCJ386_obsNkA" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeT_L4nEeCJ386_obsNkA" name="generateGetter" ordered="false" lowerBound="1" eType="_lIeUA74nEeCJ386_obsNkA" defaultValueLiteral="default"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeT_r4nEeCJ386_obsNkA" name="generateSetter" ordered="false" lowerBound="1" eType="_lIeUA74nEeCJ386_obsNkA" defaultValueLiteral="default"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeUAL4nEeCJ386_obsNkA" name="isStatic" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_lIeUA74nEeCJ386_obsNkA" name="TrueFalseDefault">
+ <eAnnotations xmi:id="_lIeUBL4nEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+ <eLiterals xmi:id="_lIeUBb4nEeCJ386_obsNkA" name="true"/>
+ <eLiterals xmi:id="_lIeUBr4nEeCJ386_obsNkA" name="false" value="1"/>
+ <eLiterals xmi:id="_lIeUB74nEeCJ386_obsNkA" name="default" value="2"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_lIeUCL4nEeCJ386_obsNkA" name="PrimitiveType" eSuperTypes="_lIeTwL4nEeCJ386_obsNkA">
+ <eAnnotations xmi:id="_lIeUCb4nEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeUCr4nEeCJ386_obsNkA" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_lIeUDL4nEeCJ386_obsNkA" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_lIeUD74nEeCJ386_obsNkA" name="JavaProject" eSuperTypes="_lIeTwL4nEeCJ386_obsNkA">
+ <eAnnotations xmi:id="_lIeUEL4nEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_lIeUEb4nEeCJ386_obsNkA" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_lIeUFL4nEeCJ386_obsNkA" name="JavaSrcFolder" eSuperTypes="_lIeTwL4nEeCJ386_obsNkA">
+ <eAnnotations xmi:id="_lIeUFb4nEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_lIeUFr4nEeCJ386_obsNkA" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_NUO84YXIEeCQsIB6sI2lFg" name="java" nsURI="http:///schemas/java/_NUO84IXIEeCQsIB6sI2lFg/20" nsPrefix="java">
+ <eAnnotations xmi:id="_NU1Z0YXIEeCQsIB6sI2lFg" source="PapyrusVersion">
+ <details xmi:id="_NU1Z0oXIEeCQsIB6sI2lFg" key="Version" value="0.0.21"/>
+ <details xmi:id="_NU1Z04XIEeCQsIB6sI2lFg" key="Comment" value="default par defaut pour generateSetter&#xD;&#xA;Ajout de la prop isStatic pour un field"/>
+ <details xmi:id="_NU1Z1IXIEeCQsIB6sI2lFg" key="Copyright" value=""/>
+ <details xmi:id="_NU1Z1YXIEeCQsIB6sI2lFg" key="Date" value="2011-05-24"/>
+ <details xmi:id="_NU1Z1oXIEeCQsIB6sI2lFg" key="Author" value=""/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_NUO84oXIEeCQsIB6sI2lFg" name="JavaClass" eSuperTypes="_NUO88YXIEeCQsIB6sI2lFg">
+ <eAnnotations xmi:id="_NUO844XIEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_NUO85IXIEeCQsIB6sI2lFg" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_NUO85YXIEeCQsIB6sI2lFg" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_NUO85oXIEeCQsIB6sI2lFg" source="redefines" references="_NUO8-oXIEeCQsIB6sI2lFg"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NUO86IXIEeCQsIB6sI2lFg" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO86oXIEeCQsIB6sI2lFg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO87IXIEeCQsIB6sI2lFg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO87oXIEeCQsIB6sI2lFg" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_NUO88YXIEeCQsIB6sI2lFg" name="JavaGen" abstract="true" eSuperTypes="_NUO8-IXIEeCQsIB6sI2lFg">
+ <eAnnotations xmi:id="_NUO88oXIEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO884XIEeCQsIB6sI2lFg" name="srcName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO89YXIEeCQsIB6sI2lFg" name="projectName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_NUO8-IXIEeCQsIB6sI2lFg" name="JavaNamedElement" abstract="true">
+ <eAnnotations xmi:id="_NUO8-YXIEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO8-oXIEeCQsIB6sI2lFg" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO8_IXIEeCQsIB6sI2lFg" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO8_oXIEeCQsIB6sI2lFg" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO9AIXIEeCQsIB6sI2lFg" name="comment" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO9AoXIEeCQsIB6sI2lFg" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_NUO9BIXIEeCQsIB6sI2lFg" name="JavaPackage" eSuperTypes="_NUO88YXIEeCQsIB6sI2lFg">
+ <eAnnotations xmi:id="_NUO9BYXIEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO9BoXIEeCQsIB6sI2lFg" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NUO9CIXIEeCQsIB6sI2lFg" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_NUO9C4XIEeCQsIB6sI2lFg" name="JavaMethod" eSuperTypes="_NUO8-IXIEeCQsIB6sI2lFg">
+ <eAnnotations xmi:id="_NUO9DIXIEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO9DYXIEeCQsIB6sI2lFg" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO9D4XIEeCQsIB6sI2lFg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO9EYXIEeCQsIB6sI2lFg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO9E4XIEeCQsIB6sI2lFg" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO9FYXIEeCQsIB6sI2lFg" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO9F4XIEeCQsIB6sI2lFg" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NUO9GYXIEeCQsIB6sI2lFg" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_NUO9HIXIEeCQsIB6sI2lFg" name="JavaParameter" eSuperTypes="_NUO8-IXIEeCQsIB6sI2lFg">
+ <eAnnotations xmi:id="_NUO9HYXIEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO9HoXIEeCQsIB6sI2lFg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NUO9IIXIEeCQsIB6sI2lFg" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_NUO9I4XIEeCQsIB6sI2lFg" name="JavaProperty" eSuperTypes="_NUO8-IXIEeCQsIB6sI2lFg">
+ <eAnnotations xmi:id="_NUO9JIXIEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO9JYXIEeCQsIB6sI2lFg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO9J4XIEeCQsIB6sI2lFg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NUO9KYXIEeCQsIB6sI2lFg" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO9K4XIEeCQsIB6sI2lFg" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO9LYXIEeCQsIB6sI2lFg" name="generateGetter" ordered="false" lowerBound="1" eType="_NUO9NIXIEeCQsIB6sI2lFg" defaultValueLiteral="default"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO9L4XIEeCQsIB6sI2lFg" name="generateSetter" ordered="false" lowerBound="1" eType="_NUO9NIXIEeCQsIB6sI2lFg" defaultValueLiteral="default"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO9MYXIEeCQsIB6sI2lFg" name="isStatic" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_NUO9NIXIEeCQsIB6sI2lFg" name="TrueFalseDefault">
+ <eAnnotations xmi:id="_NUO9NYXIEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+ <eLiterals xmi:id="_NUO9NoXIEeCQsIB6sI2lFg" name="true"/>
+ <eLiterals xmi:id="_NUO9N4XIEeCQsIB6sI2lFg" name="false" value="1"/>
+ <eLiterals xmi:id="_NUO9OIXIEeCQsIB6sI2lFg" name="default" value="2"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_NUO9OYXIEeCQsIB6sI2lFg" name="PrimitiveType" eSuperTypes="_NUO88YXIEeCQsIB6sI2lFg">
+ <eAnnotations xmi:id="_NUO9OoXIEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO9O4XIEeCQsIB6sI2lFg" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NUO9PYXIEeCQsIB6sI2lFg" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_NUO9QIXIEeCQsIB6sI2lFg" name="JavaProject" eSuperTypes="_NUO88YXIEeCQsIB6sI2lFg">
+ <eAnnotations xmi:id="_NUO9QYXIEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NUO9QoXIEeCQsIB6sI2lFg" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_NUO9RYXIEeCQsIB6sI2lFg" name="JavaSrcFolder" eSuperTypes="_NUO88YXIEeCQsIB6sI2lFg">
+ <eAnnotations xmi:id="_NUO9RoXIEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NUO9R4XIEeCQsIB6sI2lFg" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_pAh6QYXHEeCQsIB6sI2lFg" name="java" nsURI="http:///schemas/java/_pAh6QIXHEeCQsIB6sI2lFg/19" nsPrefix="java">
+ <eAnnotations xmi:id="_pBIXMIXHEeCQsIB6sI2lFg" source="PapyrusVersion">
+ <details xmi:id="_pBIXMYXHEeCQsIB6sI2lFg" key="Version" value="0.0.20"/>
+ <details xmi:id="_pBIXMoXHEeCQsIB6sI2lFg" key="Comment" value="default par defaut"/>
+ <details xmi:id="_pBIXM4XHEeCQsIB6sI2lFg" key="Copyright" value=""/>
+ <details xmi:id="_pBIXNIXHEeCQsIB6sI2lFg" key="Date" value="2011-05-24"/>
+ <details xmi:id="_pBIXNYXHEeCQsIB6sI2lFg" key="Author" value="DEBLOCK Nicolas"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_pAh6QoXHEeCQsIB6sI2lFg" name="JavaClass" eSuperTypes="_pAh6UYXHEeCQsIB6sI2lFg">
+ <eAnnotations xmi:id="_pAh6Q4XHEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_pAh6RIXHEeCQsIB6sI2lFg" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_pAh6RYXHEeCQsIB6sI2lFg" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_pAh6RoXHEeCQsIB6sI2lFg" source="redefines" references="_pAh6WoXHEeCQsIB6sI2lFg"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pAh6SIXHEeCQsIB6sI2lFg" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6SoXHEeCQsIB6sI2lFg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6TIXHEeCQsIB6sI2lFg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6ToXHEeCQsIB6sI2lFg" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_pAh6UYXHEeCQsIB6sI2lFg" name="JavaGen" abstract="true" eSuperTypes="_pAh6WIXHEeCQsIB6sI2lFg">
+ <eAnnotations xmi:id="_pAh6UoXHEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6U4XHEeCQsIB6sI2lFg" name="srcName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6VYXHEeCQsIB6sI2lFg" name="projectName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_pAh6WIXHEeCQsIB6sI2lFg" name="JavaNamedElement" abstract="true">
+ <eAnnotations xmi:id="_pAh6WYXHEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6WoXHEeCQsIB6sI2lFg" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6XIXHEeCQsIB6sI2lFg" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6XoXHEeCQsIB6sI2lFg" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6YIXHEeCQsIB6sI2lFg" name="comment" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6YoXHEeCQsIB6sI2lFg" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_pAh6ZIXHEeCQsIB6sI2lFg" name="JavaPackage" eSuperTypes="_pAh6UYXHEeCQsIB6sI2lFg">
+ <eAnnotations xmi:id="_pAh6ZYXHEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6ZoXHEeCQsIB6sI2lFg" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pAh6aIXHEeCQsIB6sI2lFg" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_pAh6a4XHEeCQsIB6sI2lFg" name="JavaMethod" eSuperTypes="_pAh6WIXHEeCQsIB6sI2lFg">
+ <eAnnotations xmi:id="_pAh6bIXHEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6bYXHEeCQsIB6sI2lFg" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6b4XHEeCQsIB6sI2lFg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6cYXHEeCQsIB6sI2lFg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6c4XHEeCQsIB6sI2lFg" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6dYXHEeCQsIB6sI2lFg" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6d4XHEeCQsIB6sI2lFg" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pAh6eYXHEeCQsIB6sI2lFg" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_pAh6fIXHEeCQsIB6sI2lFg" name="JavaParameter" eSuperTypes="_pAh6WIXHEeCQsIB6sI2lFg">
+ <eAnnotations xmi:id="_pAh6fYXHEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6foXHEeCQsIB6sI2lFg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pAh6gIXHEeCQsIB6sI2lFg" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_pAh6g4XHEeCQsIB6sI2lFg" name="JavaProperty" eSuperTypes="_pAh6WIXHEeCQsIB6sI2lFg">
+ <eAnnotations xmi:id="_pAh6hIXHEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6hYXHEeCQsIB6sI2lFg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6h4XHEeCQsIB6sI2lFg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pAh6iYXHEeCQsIB6sI2lFg" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6i4XHEeCQsIB6sI2lFg" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6jYXHEeCQsIB6sI2lFg" name="generateGetter" ordered="false" lowerBound="1" eType="_pAh6koXHEeCQsIB6sI2lFg" defaultValueLiteral="default"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6j4XHEeCQsIB6sI2lFg" name="generateSetter" ordered="false" lowerBound="1" eType="_pAh6koXHEeCQsIB6sI2lFg"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_pAh6koXHEeCQsIB6sI2lFg" name="TrueFalseDefault">
+ <eAnnotations xmi:id="_pAh6k4XHEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+ <eLiterals xmi:id="_pAh6lIXHEeCQsIB6sI2lFg" name="true"/>
+ <eLiterals xmi:id="_pAh6lYXHEeCQsIB6sI2lFg" name="false" value="1"/>
+ <eLiterals xmi:id="_pAh6loXHEeCQsIB6sI2lFg" name="default" value="2"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_pAh6l4XHEeCQsIB6sI2lFg" name="PrimitiveType" eSuperTypes="_pAh6UYXHEeCQsIB6sI2lFg">
+ <eAnnotations xmi:id="_pAh6mIXHEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6mYXHEeCQsIB6sI2lFg" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pAh6m4XHEeCQsIB6sI2lFg" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_pAh6noXHEeCQsIB6sI2lFg" name="JavaProject" eSuperTypes="_pAh6UYXHEeCQsIB6sI2lFg">
+ <eAnnotations xmi:id="_pAh6n4XHEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pAh6oIXHEeCQsIB6sI2lFg" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_pAh6o4XHEeCQsIB6sI2lFg" name="JavaSrcFolder" eSuperTypes="_pAh6UYXHEeCQsIB6sI2lFg">
+ <eAnnotations xmi:id="_pAh6pIXHEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pAh6pYXHEeCQsIB6sI2lFg" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_QoAFoIXGEeCQsIB6sI2lFg" name="java" nsURI="http:///schemas/java/_Qn2UoIXGEeCQsIB6sI2lFg/18" nsPrefix="java">
+ <eAnnotations xmi:id="_QovsgIXGEeCQsIB6sI2lFg" source="PapyrusVersion">
+ <details xmi:id="_QovsgYXGEeCQsIB6sI2lFg" key="Version" value="0.0.19"/>
+ <details xmi:id="_QovsgoXGEeCQsIB6sI2lFg" key="Comment" value="ajout de generateGetter et generateSetter sur un field : gestion du true false default"/>
+ <details xmi:id="_Qovsg4XGEeCQsIB6sI2lFg" key="Copyright" value=""/>
+ <details xmi:id="_QovshIXGEeCQsIB6sI2lFg" key="Date" value="2011-05-24"/>
+ <details xmi:id="_QovshYXGEeCQsIB6sI2lFg" key="Author" value="DEBLOCK Nicolas"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QoAFoYXGEeCQsIB6sI2lFg" name="JavaClass" eSuperTypes="_QoAFsIXGEeCQsIB6sI2lFg">
+ <eAnnotations xmi:id="_QoAFooXGEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_QoAFo4XGEeCQsIB6sI2lFg" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_QoAFpIXGEeCQsIB6sI2lFg" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_QoAFpYXGEeCQsIB6sI2lFg" source="redefines" references="_QoAFuYXGEeCQsIB6sI2lFg"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QoAFp4XGEeCQsIB6sI2lFg" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAFqYXGEeCQsIB6sI2lFg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAFq4XGEeCQsIB6sI2lFg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAFrYXGEeCQsIB6sI2lFg" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QoAFsIXGEeCQsIB6sI2lFg" name="JavaGen" abstract="true" eSuperTypes="_QoAFt4XGEeCQsIB6sI2lFg">
+ <eAnnotations xmi:id="_QoAFsYXGEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAFsoXGEeCQsIB6sI2lFg" name="srcName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAFtIXGEeCQsIB6sI2lFg" name="projectName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QoAFt4XGEeCQsIB6sI2lFg" name="JavaNamedElement" abstract="true">
+ <eAnnotations xmi:id="_QoAFuIXGEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAFuYXGEeCQsIB6sI2lFg" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAFu4XGEeCQsIB6sI2lFg" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAFvYXGEeCQsIB6sI2lFg" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAFv4XGEeCQsIB6sI2lFg" name="comment" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAFwYXGEeCQsIB6sI2lFg" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QoAFw4XGEeCQsIB6sI2lFg" name="JavaPackage" eSuperTypes="_QoAFsIXGEeCQsIB6sI2lFg">
+ <eAnnotations xmi:id="_QoAFxIXGEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAFxYXGEeCQsIB6sI2lFg" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QoAFx4XGEeCQsIB6sI2lFg" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QoAFyoXGEeCQsIB6sI2lFg" name="JavaMethod" eSuperTypes="_QoAFt4XGEeCQsIB6sI2lFg">
+ <eAnnotations xmi:id="_QoAFy4XGEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAFzIXGEeCQsIB6sI2lFg" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAFzoXGEeCQsIB6sI2lFg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAF0IXGEeCQsIB6sI2lFg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAF0oXGEeCQsIB6sI2lFg" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAF1IXGEeCQsIB6sI2lFg" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAF1oXGEeCQsIB6sI2lFg" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QoAF2IXGEeCQsIB6sI2lFg" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QoAF24XGEeCQsIB6sI2lFg" name="JavaParameter" eSuperTypes="_QoAFt4XGEeCQsIB6sI2lFg">
+ <eAnnotations xmi:id="_QoAF3IXGEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAF3YXGEeCQsIB6sI2lFg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QoAF34XGEeCQsIB6sI2lFg" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QoAF4oXGEeCQsIB6sI2lFg" name="JavaProperty" eSuperTypes="_QoAFt4XGEeCQsIB6sI2lFg">
+ <eAnnotations xmi:id="_QoAF44XGEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAF5IXGEeCQsIB6sI2lFg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAF5oXGEeCQsIB6sI2lFg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QoAF6IXGEeCQsIB6sI2lFg" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAF6oXGEeCQsIB6sI2lFg" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAF7IXGEeCQsIB6sI2lFg" name="generateGetter" ordered="false" lowerBound="1" eType="_QoAF8YXGEeCQsIB6sI2lFg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAF7oXGEeCQsIB6sI2lFg" name="generateSetter" ordered="false" lowerBound="1" eType="_QoAF8YXGEeCQsIB6sI2lFg"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_QoAF8YXGEeCQsIB6sI2lFg" name="TrueFalseDefault">
+ <eAnnotations xmi:id="_QoAF8oXGEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+ <eLiterals xmi:id="_QoAF84XGEeCQsIB6sI2lFg" name="true"/>
+ <eLiterals xmi:id="_QoAF9IXGEeCQsIB6sI2lFg" name="false" value="1"/>
+ <eLiterals xmi:id="_QoAF9YXGEeCQsIB6sI2lFg" name="default" value="2"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QoAF9oXGEeCQsIB6sI2lFg" name="PrimitiveType" eSuperTypes="_QoAFsIXGEeCQsIB6sI2lFg">
+ <eAnnotations xmi:id="_QoAF94XGEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAF-IXGEeCQsIB6sI2lFg" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QoAF-oXGEeCQsIB6sI2lFg" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QoAF_YXGEeCQsIB6sI2lFg" name="JavaProject" eSuperTypes="_QoAFsIXGEeCQsIB6sI2lFg">
+ <eAnnotations xmi:id="_QoAF_oXGEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QoAF_4XGEeCQsIB6sI2lFg" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QoAGAoXGEeCQsIB6sI2lFg" name="JavaSrcFolder" eSuperTypes="_QoAFsIXGEeCQsIB6sI2lFg">
+ <eAnnotations xmi:id="_QoAGA4XGEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QoAGBIXGEeCQsIB6sI2lFg" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_VQd7AIXFEeCQsIB6sI2lFg" name="java" nsURI="http:///schemas/java/_VQUKAIXFEeCQsIB6sI2lFg/17" nsPrefix="java">
+ <eAnnotations xmi:id="_VRqN0IXFEeCQsIB6sI2lFg" source="PapyrusVersion">
+ <details xmi:id="_VRqN0YXFEeCQsIB6sI2lFg" key="Version" value="0.0.18"/>
+ <details xmi:id="_VRqN0oXFEeCQsIB6sI2lFg" key="Comment" value="ajout de generateGetter et generateSetter sur un field"/>
+ <details xmi:id="_VRqN04XFEeCQsIB6sI2lFg" key="Copyright" value=""/>
+ <details xmi:id="_VRqN1IXFEeCQsIB6sI2lFg" key="Date" value="2011-05-24"/>
+ <details xmi:id="_VRqN1YXFEeCQsIB6sI2lFg" key="Author" value="Nicolas DEBLOCK"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VQd7AYXFEeCQsIB6sI2lFg" name="JavaClass" eSuperTypes="_VQd7EIXFEeCQsIB6sI2lFg">
+ <eAnnotations xmi:id="_VQd7AoXFEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_VQd7A4XFEeCQsIB6sI2lFg" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_VQd7BIXFEeCQsIB6sI2lFg" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_VQd7BYXFEeCQsIB6sI2lFg" source="redefines" references="_VQd7GYXFEeCQsIB6sI2lFg"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VQd7B4XFEeCQsIB6sI2lFg" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7CYXFEeCQsIB6sI2lFg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7C4XFEeCQsIB6sI2lFg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7DYXFEeCQsIB6sI2lFg" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VQd7EIXFEeCQsIB6sI2lFg" name="JavaGen" abstract="true" eSuperTypes="_VQd7F4XFEeCQsIB6sI2lFg">
+ <eAnnotations xmi:id="_VQd7EYXFEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7EoXFEeCQsIB6sI2lFg" name="srcName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7FIXFEeCQsIB6sI2lFg" name="projectName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VQd7F4XFEeCQsIB6sI2lFg" name="JavaNamedElement" abstract="true">
+ <eAnnotations xmi:id="_VQd7GIXFEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7GYXFEeCQsIB6sI2lFg" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7G4XFEeCQsIB6sI2lFg" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7HYXFEeCQsIB6sI2lFg" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7H4XFEeCQsIB6sI2lFg" name="comment" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7IYXFEeCQsIB6sI2lFg" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VQd7I4XFEeCQsIB6sI2lFg" name="JavaPackage" eSuperTypes="_VQd7EIXFEeCQsIB6sI2lFg">
+ <eAnnotations xmi:id="_VQd7JIXFEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7JYXFEeCQsIB6sI2lFg" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VQd7J4XFEeCQsIB6sI2lFg" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VQd7KoXFEeCQsIB6sI2lFg" name="JavaMethod" eSuperTypes="_VQd7F4XFEeCQsIB6sI2lFg">
+ <eAnnotations xmi:id="_VQd7K4XFEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7LIXFEeCQsIB6sI2lFg" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7LoXFEeCQsIB6sI2lFg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7MIXFEeCQsIB6sI2lFg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7MoXFEeCQsIB6sI2lFg" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7NIXFEeCQsIB6sI2lFg" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7NoXFEeCQsIB6sI2lFg" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VQd7OIXFEeCQsIB6sI2lFg" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VQd7O4XFEeCQsIB6sI2lFg" name="JavaParameter" eSuperTypes="_VQd7F4XFEeCQsIB6sI2lFg">
+ <eAnnotations xmi:id="_VQd7PIXFEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7PYXFEeCQsIB6sI2lFg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VQd7P4XFEeCQsIB6sI2lFg" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VQd7QoXFEeCQsIB6sI2lFg" name="JavaProperty" eSuperTypes="_VQd7F4XFEeCQsIB6sI2lFg">
+ <eAnnotations xmi:id="_VQd7Q4XFEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7RIXFEeCQsIB6sI2lFg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7RoXFEeCQsIB6sI2lFg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VQd7SIXFEeCQsIB6sI2lFg" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7SoXFEeCQsIB6sI2lFg" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7TIXFEeCQsIB6sI2lFg" name="generateGetter" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7ToXFEeCQsIB6sI2lFg" name="generateSetter" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VQd7UYXFEeCQsIB6sI2lFg" name="PrimitiveType" eSuperTypes="_VQd7EIXFEeCQsIB6sI2lFg">
+ <eAnnotations xmi:id="_VQd7UoXFEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7U4XFEeCQsIB6sI2lFg" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VQd7VYXFEeCQsIB6sI2lFg" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VQd7WIXFEeCQsIB6sI2lFg" name="JavaProject" eSuperTypes="_VQd7EIXFEeCQsIB6sI2lFg">
+ <eAnnotations xmi:id="_VQd7WYXFEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VQd7WoXFEeCQsIB6sI2lFg" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_VQd7XYXFEeCQsIB6sI2lFg" name="JavaSrcFolder" eSuperTypes="_VQd7EIXFEeCQsIB6sI2lFg">
+ <eAnnotations xmi:id="_VQd7XoXFEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VQd7X4XFEeCQsIB6sI2lFg" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_vu0pQHWXEeCZk9SoruwsTQ" name="java" nsURI="http:///schemas/java/_vuhuUHWXEeCZk9SoruwsTQ/16" nsPrefix="java">
+ <eAnnotations xmi:id="_vvafIXWXEeCZk9SoruwsTQ" source="PapyrusVersion">
+ <details xmi:id="_vvafInWXEeCZk9SoruwsTQ" key="Version" value="0.0.17"/>
+ <details xmi:id="_vvafI3WXEeCZk9SoruwsTQ" key="Comment" value=""/>
+ <details xmi:id="_vvafJHWXEeCZk9SoruwsTQ" key="Copyright" value=""/>
+ <details xmi:id="_vvafJXWXEeCZk9SoruwsTQ" key="Date" value="2011-05-03"/>
+ <details xmi:id="_vvafJnWXEeCZk9SoruwsTQ" key="Author" value=""/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vu0pQXWXEeCZk9SoruwsTQ" name="JavaClass" eSuperTypes="_vu0pUHWXEeCZk9SoruwsTQ">
+ <eAnnotations xmi:id="_vu0pQnWXEeCZk9SoruwsTQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_vu0pQ3WXEeCZk9SoruwsTQ" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_vu0pRHWXEeCZk9SoruwsTQ" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_vu0pRXWXEeCZk9SoruwsTQ" source="redefines" references="_vu0pWXWXEeCZk9SoruwsTQ"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vu0pR3WXEeCZk9SoruwsTQ" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pSXWXEeCZk9SoruwsTQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pS3WXEeCZk9SoruwsTQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pTXWXEeCZk9SoruwsTQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vu0pUHWXEeCZk9SoruwsTQ" name="JavaGen" abstract="true" eSuperTypes="_vu0pV3WXEeCZk9SoruwsTQ">
+ <eAnnotations xmi:id="_vu0pUXWXEeCZk9SoruwsTQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pUnWXEeCZk9SoruwsTQ" name="srcName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pVHWXEeCZk9SoruwsTQ" name="projectName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vu0pV3WXEeCZk9SoruwsTQ" name="JavaNamedElement" abstract="true">
+ <eAnnotations xmi:id="_vu0pWHWXEeCZk9SoruwsTQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pWXWXEeCZk9SoruwsTQ" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pW3WXEeCZk9SoruwsTQ" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pXXWXEeCZk9SoruwsTQ" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pX3WXEeCZk9SoruwsTQ" name="comment" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pYXWXEeCZk9SoruwsTQ" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vu0pY3WXEeCZk9SoruwsTQ" name="JavaPackage" eSuperTypes="_vu0pUHWXEeCZk9SoruwsTQ">
+ <eAnnotations xmi:id="_vu0pZHWXEeCZk9SoruwsTQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pZXWXEeCZk9SoruwsTQ" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vu0pZ3WXEeCZk9SoruwsTQ" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vu0panWXEeCZk9SoruwsTQ" name="JavaMethod" eSuperTypes="_vu0pV3WXEeCZk9SoruwsTQ">
+ <eAnnotations xmi:id="_vu0pa3WXEeCZk9SoruwsTQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pbHWXEeCZk9SoruwsTQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pbnWXEeCZk9SoruwsTQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pcHWXEeCZk9SoruwsTQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pcnWXEeCZk9SoruwsTQ" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pdHWXEeCZk9SoruwsTQ" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pdnWXEeCZk9SoruwsTQ" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vu0peHWXEeCZk9SoruwsTQ" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vu0pe3WXEeCZk9SoruwsTQ" name="JavaParameter" eSuperTypes="_vu0pV3WXEeCZk9SoruwsTQ">
+ <eAnnotations xmi:id="_vu0pfHWXEeCZk9SoruwsTQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pfXWXEeCZk9SoruwsTQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vu0pf3WXEeCZk9SoruwsTQ" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vu0pgnWXEeCZk9SoruwsTQ" name="JavaProperty" eSuperTypes="_vu0pV3WXEeCZk9SoruwsTQ">
+ <eAnnotations xmi:id="_vu0pg3WXEeCZk9SoruwsTQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0phHWXEeCZk9SoruwsTQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0phnWXEeCZk9SoruwsTQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vu0piHWXEeCZk9SoruwsTQ" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pinWXEeCZk9SoruwsTQ" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vu0pjXWXEeCZk9SoruwsTQ" name="PrimitiveType" eSuperTypes="_vu0pUHWXEeCZk9SoruwsTQ">
+ <eAnnotations xmi:id="_vu0pjnWXEeCZk9SoruwsTQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pj3WXEeCZk9SoruwsTQ" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vu0pkXWXEeCZk9SoruwsTQ" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vu0plHWXEeCZk9SoruwsTQ" name="JavaProject" eSuperTypes="_vu0pUHWXEeCZk9SoruwsTQ">
+ <eAnnotations xmi:id="_vu0plXWXEeCZk9SoruwsTQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vu0plnWXEeCZk9SoruwsTQ" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vu0pmXWXEeCZk9SoruwsTQ" name="JavaSrcFolder" eSuperTypes="_vu0pUHWXEeCZk9SoruwsTQ">
+ <eAnnotations xmi:id="_vu0pmnWXEeCZk9SoruwsTQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vu0pm3WXEeCZk9SoruwsTQ" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_z3_PMXS0EeCkZK-mj2e6xA" name="java" nsURI="http:///schemas/java/_z3_PMHS0EeCkZK-mj2e6xA/15" nsPrefix="java">
+ <eAnnotations xmi:id="_z4lFE3S0EeCkZK-mj2e6xA" source="PapyrusVersion">
+ <details xmi:id="_z4lFFHS0EeCkZK-mj2e6xA" key="Version" value="0.0.16"/>
+ <details xmi:id="_z4lFFXS0EeCkZK-mj2e6xA" key="Comment" value=""/>
+ <details xmi:id="_z4lFFnS0EeCkZK-mj2e6xA" key="Copyright" value=""/>
+ <details xmi:id="_z4lFF3S0EeCkZK-mj2e6xA" key="Date" value="2011-05-02"/>
+ <details xmi:id="_z4lFGHS0EeCkZK-mj2e6xA" key="Author" value=""/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_z3_PMnS0EeCkZK-mj2e6xA" name="JavaClass" eSuperTypes="_z3_PQXS0EeCkZK-mj2e6xA">
+ <eAnnotations xmi:id="_z3_PM3S0EeCkZK-mj2e6xA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_z3_PNHS0EeCkZK-mj2e6xA" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_z3_PNXS0EeCkZK-mj2e6xA" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_z3_PNnS0EeCkZK-mj2e6xA" source="redefines" references="_z3_PSnS0EeCkZK-mj2e6xA"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_z3_POHS0EeCkZK-mj2e6xA" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_POnS0EeCkZK-mj2e6xA" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PPHS0EeCkZK-mj2e6xA" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PPnS0EeCkZK-mj2e6xA" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_z3_PQXS0EeCkZK-mj2e6xA" name="JavaGen" abstract="true" eSuperTypes="_z3_PSHS0EeCkZK-mj2e6xA">
+ <eAnnotations xmi:id="_z3_PQnS0EeCkZK-mj2e6xA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PQ3S0EeCkZK-mj2e6xA" name="srcName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PRXS0EeCkZK-mj2e6xA" name="projectName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_z3_PSHS0EeCkZK-mj2e6xA" name="JavaNamedElement" abstract="true">
+ <eAnnotations xmi:id="_z3_PSXS0EeCkZK-mj2e6xA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PSnS0EeCkZK-mj2e6xA" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PTHS0EeCkZK-mj2e6xA" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PTnS0EeCkZK-mj2e6xA" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PUHS0EeCkZK-mj2e6xA" name="comment" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PUnS0EeCkZK-mj2e6xA" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_z3_PVHS0EeCkZK-mj2e6xA" name="JavaPackage" eSuperTypes="_z3_PSHS0EeCkZK-mj2e6xA">
+ <eAnnotations xmi:id="_z3_PVXS0EeCkZK-mj2e6xA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PVnS0EeCkZK-mj2e6xA" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_z3_PWHS0EeCkZK-mj2e6xA" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_z3_PW3S0EeCkZK-mj2e6xA" name="JavaMethod" eSuperTypes="_z3_PSHS0EeCkZK-mj2e6xA">
+ <eAnnotations xmi:id="_z3_PXHS0EeCkZK-mj2e6xA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PXXS0EeCkZK-mj2e6xA" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PX3S0EeCkZK-mj2e6xA" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PYXS0EeCkZK-mj2e6xA" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PY3S0EeCkZK-mj2e6xA" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PZXS0EeCkZK-mj2e6xA" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PZ3S0EeCkZK-mj2e6xA" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_z3_PaXS0EeCkZK-mj2e6xA" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_z3_PbHS0EeCkZK-mj2e6xA" name="JavaParameter" eSuperTypes="_z3_PSHS0EeCkZK-mj2e6xA">
+ <eAnnotations xmi:id="_z3_PbXS0EeCkZK-mj2e6xA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PbnS0EeCkZK-mj2e6xA" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_z3_PcHS0EeCkZK-mj2e6xA" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_z3_Pc3S0EeCkZK-mj2e6xA" name="JavaProperty" eSuperTypes="_z3_PSHS0EeCkZK-mj2e6xA">
+ <eAnnotations xmi:id="_z3_PdHS0EeCkZK-mj2e6xA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PdXS0EeCkZK-mj2e6xA" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_Pd3S0EeCkZK-mj2e6xA" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_z3_PeXS0EeCkZK-mj2e6xA" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_Pe3S0EeCkZK-mj2e6xA" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_z3_PfnS0EeCkZK-mj2e6xA" name="PrimitiveType" eSuperTypes="_z3_PQXS0EeCkZK-mj2e6xA">
+ <eAnnotations xmi:id="_z3_Pf3S0EeCkZK-mj2e6xA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PgHS0EeCkZK-mj2e6xA" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_z3_PgnS0EeCkZK-mj2e6xA" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_z3_PhXS0EeCkZK-mj2e6xA" name="JavaProject" eSuperTypes="_z3_PQXS0EeCkZK-mj2e6xA">
+ <eAnnotations xmi:id="_z3_PhnS0EeCkZK-mj2e6xA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_z3_Ph3S0EeCkZK-mj2e6xA" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_z3_PinS0EeCkZK-mj2e6xA" name="JavaSrcFolder" eSuperTypes="_z3_PQXS0EeCkZK-mj2e6xA">
+ <eAnnotations xmi:id="_z3_Pi3S0EeCkZK-mj2e6xA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_z3_PjHS0EeCkZK-mj2e6xA" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_PtDIAHSpEeCDWckpYVgmKg" name="java" nsURI="http:///schemas/java/_Ps5XAHSpEeCDWckpYVgmKg/14" nsPrefix="java">
+ <eAnnotations xmi:id="_Ptfz8XSpEeCDWckpYVgmKg" source="PapyrusVersion">
+ <details xmi:id="_Ptfz8nSpEeCDWckpYVgmKg" key="Version" value="0.0.15"/>
+ <details xmi:id="_Ptfz83SpEeCDWckpYVgmKg" key="Comment" value=""/>
+ <details xmi:id="_Ptfz9HSpEeCDWckpYVgmKg" key="Copyright" value=""/>
+ <details xmi:id="_Ptfz9XSpEeCDWckpYVgmKg" key="Date" value="2011-05-02"/>
+ <details xmi:id="_Ptfz9nSpEeCDWckpYVgmKg" key="Author" value=""/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_PtDIAXSpEeCDWckpYVgmKg" name="JavaClass" eSuperTypes="_PtDIEHSpEeCDWckpYVgmKg">
+ <eAnnotations xmi:id="_PtDIAnSpEeCDWckpYVgmKg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_PtDIA3SpEeCDWckpYVgmKg" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_PtDIBHSpEeCDWckpYVgmKg" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_PtDIBXSpEeCDWckpYVgmKg" source="redefines" references="_PtDIG3SpEeCDWckpYVgmKg"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PtDIB3SpEeCDWckpYVgmKg" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDICXSpEeCDWckpYVgmKg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDIC3SpEeCDWckpYVgmKg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDIDXSpEeCDWckpYVgmKg" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_PtDIEHSpEeCDWckpYVgmKg" name="JavaGen" abstract="true" eSuperTypes="_PtDIGXSpEeCDWckpYVgmKg">
+ <eAnnotations xmi:id="_PtDIEXSpEeCDWckpYVgmKg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDIEnSpEeCDWckpYVgmKg" name="srcName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDIFHSpEeCDWckpYVgmKg" name="projectName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDIFnSpEeCDWckpYVgmKg" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_PtDIGXSpEeCDWckpYVgmKg" name="JavaNamedElement" abstract="true">
+ <eAnnotations xmi:id="_PtDIGnSpEeCDWckpYVgmKg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDIG3SpEeCDWckpYVgmKg" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDIHXSpEeCDWckpYVgmKg" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDIH3SpEeCDWckpYVgmKg" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDIIXSpEeCDWckpYVgmKg" name="comment" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_PtDII3SpEeCDWckpYVgmKg" name="JavaPackage" eSuperTypes="_PtDIGXSpEeCDWckpYVgmKg">
+ <eAnnotations xmi:id="_PtDIJHSpEeCDWckpYVgmKg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDIJXSpEeCDWckpYVgmKg" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PtDIJ3SpEeCDWckpYVgmKg" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_PtDIKnSpEeCDWckpYVgmKg" name="JavaMethod" eSuperTypes="_PtDIGXSpEeCDWckpYVgmKg">
+ <eAnnotations xmi:id="_PtDIK3SpEeCDWckpYVgmKg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDILHSpEeCDWckpYVgmKg" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDILnSpEeCDWckpYVgmKg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDIMHSpEeCDWckpYVgmKg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDIMnSpEeCDWckpYVgmKg" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDINHSpEeCDWckpYVgmKg" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDINnSpEeCDWckpYVgmKg" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PtDIOHSpEeCDWckpYVgmKg" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_PtDIO3SpEeCDWckpYVgmKg" name="JavaParameter" eSuperTypes="_PtDIGXSpEeCDWckpYVgmKg">
+ <eAnnotations xmi:id="_PtDIPHSpEeCDWckpYVgmKg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDIPXSpEeCDWckpYVgmKg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PtDIP3SpEeCDWckpYVgmKg" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_PtDIQnSpEeCDWckpYVgmKg" name="JavaProperty" eSuperTypes="_PtDIGXSpEeCDWckpYVgmKg">
+ <eAnnotations xmi:id="_PtDIQ3SpEeCDWckpYVgmKg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDIRHSpEeCDWckpYVgmKg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDIRnSpEeCDWckpYVgmKg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PtDISHSpEeCDWckpYVgmKg" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDISnSpEeCDWckpYVgmKg" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_PtDITXSpEeCDWckpYVgmKg" name="PrimitiveType" eSuperTypes="_PtDIEHSpEeCDWckpYVgmKg">
+ <eAnnotations xmi:id="_PtDITnSpEeCDWckpYVgmKg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDIT3SpEeCDWckpYVgmKg" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PtDIUXSpEeCDWckpYVgmKg" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_PtDIVHSpEeCDWckpYVgmKg" name="JavaProject" eSuperTypes="_PtDIEHSpEeCDWckpYVgmKg">
+ <eAnnotations xmi:id="_PtDIVXSpEeCDWckpYVgmKg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PtDIVnSpEeCDWckpYVgmKg" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_PtDIWXSpEeCDWckpYVgmKg" name="JavaSrcFolder" eSuperTypes="_PtDIEHSpEeCDWckpYVgmKg">
+ <eAnnotations xmi:id="_PtDIWnSpEeCDWckpYVgmKg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PtDIW3SpEeCDWckpYVgmKg" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_hNIwEHSoEeCRC6drc39K0A" name="java" nsURI="http:///schemas/java/_hM-_EHSoEeCRC6drc39K0A/13" nsPrefix="java">
+ <eAnnotations xmi:id="_hNbrBHSoEeCRC6drc39K0A" source="PapyrusVersion">
+ <details xmi:id="_hNbrBXSoEeCRC6drc39K0A" key="Version" value="0.0.14"/>
+ <details xmi:id="_hNbrBnSoEeCRC6drc39K0A" key="Comment" value=""/>
+ <details xmi:id="_hNbrB3SoEeCRC6drc39K0A" key="Copyright" value=""/>
+ <details xmi:id="_hNbrCHSoEeCRC6drc39K0A" key="Date" value="2011-05-02"/>
+ <details xmi:id="_hNbrCXSoEeCRC6drc39K0A" key="Author" value=""/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hNIwEXSoEeCRC6drc39K0A" name="JavaClass" eSuperTypes="_hNIwIHSoEeCRC6drc39K0A">
+ <eAnnotations xmi:id="_hNIwEnSoEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_hNIwE3SoEeCRC6drc39K0A" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_hNIwFHSoEeCRC6drc39K0A" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_hNIwFXSoEeCRC6drc39K0A" source="redefines" references="_hNIwKXSoEeCRC6drc39K0A"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hNIwF3SoEeCRC6drc39K0A" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwGXSoEeCRC6drc39K0A" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwG3SoEeCRC6drc39K0A" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwHXSoEeCRC6drc39K0A" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hNIwIHSoEeCRC6drc39K0A" name="JavaGen" abstract="true" eSuperTypes="_hNIwJ3SoEeCRC6drc39K0A">
+ <eAnnotations xmi:id="_hNIwIXSoEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwInSoEeCRC6drc39K0A" name="srcName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwJHSoEeCRC6drc39K0A" name="projectName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hNIwJ3SoEeCRC6drc39K0A" name="JavaNamedElement" abstract="true">
+ <eAnnotations xmi:id="_hNIwKHSoEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwKXSoEeCRC6drc39K0A" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwK3SoEeCRC6drc39K0A" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwLXSoEeCRC6drc39K0A" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwL3SoEeCRC6drc39K0A" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwMXSoEeCRC6drc39K0A" name="comment" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hNIwM3SoEeCRC6drc39K0A" name="JavaPackage" eSuperTypes="_hNIwJ3SoEeCRC6drc39K0A">
+ <eAnnotations xmi:id="_hNIwNHSoEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwNXSoEeCRC6drc39K0A" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hNIwN3SoEeCRC6drc39K0A" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hNIwOnSoEeCRC6drc39K0A" name="JavaMethod" eSuperTypes="_hNIwJ3SoEeCRC6drc39K0A">
+ <eAnnotations xmi:id="_hNIwO3SoEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwPHSoEeCRC6drc39K0A" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwPnSoEeCRC6drc39K0A" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwQHSoEeCRC6drc39K0A" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwQnSoEeCRC6drc39K0A" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwRHSoEeCRC6drc39K0A" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwRnSoEeCRC6drc39K0A" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hNIwSHSoEeCRC6drc39K0A" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hNIwS3SoEeCRC6drc39K0A" name="JavaParameter" eSuperTypes="_hNIwJ3SoEeCRC6drc39K0A">
+ <eAnnotations xmi:id="_hNIwTHSoEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwTXSoEeCRC6drc39K0A" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hNIwT3SoEeCRC6drc39K0A" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hNIwUnSoEeCRC6drc39K0A" name="JavaProperty" eSuperTypes="_hNIwJ3SoEeCRC6drc39K0A">
+ <eAnnotations xmi:id="_hNIwU3SoEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwVHSoEeCRC6drc39K0A" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwVnSoEeCRC6drc39K0A" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hNIwWHSoEeCRC6drc39K0A" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwWnSoEeCRC6drc39K0A" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hNIwXXSoEeCRC6drc39K0A" name="PrimitiveType" eSuperTypes="_hNIwIHSoEeCRC6drc39K0A">
+ <eAnnotations xmi:id="_hNIwXnSoEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwX3SoEeCRC6drc39K0A" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hNIwYXSoEeCRC6drc39K0A" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hNIwZHSoEeCRC6drc39K0A" name="JavaProject" eSuperTypes="_hNIwIHSoEeCRC6drc39K0A">
+ <eAnnotations xmi:id="_hNIwZXSoEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hNIwZnSoEeCRC6drc39K0A" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hNIwaXSoEeCRC6drc39K0A" name="JavaSrcFolder" eSuperTypes="_hNIwIHSoEeCRC6drc39K0A">
+ <eAnnotations xmi:id="_hNIwanSoEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hNIwa3SoEeCRC6drc39K0A" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_l6YNMHSmEeCRC6drc39K0A" name="java" nsURI="http:///schemas/java/_l6OcMHSmEeCRC6drc39K0A/12" nsPrefix="java">
+ <eAnnotations xmi:id="_l60SEnSmEeCRC6drc39K0A" source="PapyrusVersion">
+ <details xmi:id="_l60SE3SmEeCRC6drc39K0A" key="Version" value="0.0.13"/>
+ <details xmi:id="_l60SFHSmEeCRC6drc39K0A" key="Comment" value=""/>
+ <details xmi:id="_l60SFXSmEeCRC6drc39K0A" key="Copyright" value=""/>
+ <details xmi:id="_l60SFnSmEeCRC6drc39K0A" key="Date" value="2011-05-02"/>
+ <details xmi:id="_l60SF3SmEeCRC6drc39K0A" key="Author" value=""/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_l6YNMXSmEeCRC6drc39K0A" name="JavaClass" eSuperTypes="_l6YNQXSmEeCRC6drc39K0A _l6YNTXSmEeCRC6drc39K0A">
+ <eAnnotations xmi:id="_l6YNMnSmEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_l6YNM3SmEeCRC6drc39K0A" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_l6YNNHSmEeCRC6drc39K0A" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_l6YNNXSmEeCRC6drc39K0A" source="redefines" references="_l6YNQ3SmEeCRC6drc39K0A"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_l6YNN3SmEeCRC6drc39K0A" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNOXSmEeCRC6drc39K0A" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNO3SmEeCRC6drc39K0A" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNPXSmEeCRC6drc39K0A" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_l6YNQXSmEeCRC6drc39K0A" name="JavaNamedElement" abstract="true">
+ <eAnnotations xmi:id="_l6YNQnSmEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNQ3SmEeCRC6drc39K0A" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNRXSmEeCRC6drc39K0A" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNR3SmEeCRC6drc39K0A" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNSXSmEeCRC6drc39K0A" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNS3SmEeCRC6drc39K0A" name="comment" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_l6YNTXSmEeCRC6drc39K0A" name="JavaGen" abstract="true" eSuperTypes="_l6YNQXSmEeCRC6drc39K0A">
+ <eAnnotations xmi:id="_l6YNTnSmEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNT3SmEeCRC6drc39K0A" name="srcName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNUXSmEeCRC6drc39K0A" name="projectName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_l6YNVHSmEeCRC6drc39K0A" name="JavaPackage" eSuperTypes="_l6YNQXSmEeCRC6drc39K0A">
+ <eAnnotations xmi:id="_l6YNVXSmEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNVnSmEeCRC6drc39K0A" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_l6YNWHSmEeCRC6drc39K0A" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_l6YNW3SmEeCRC6drc39K0A" name="JavaMethod" eSuperTypes="_l6YNQXSmEeCRC6drc39K0A">
+ <eAnnotations xmi:id="_l6YNXHSmEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNXXSmEeCRC6drc39K0A" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNX3SmEeCRC6drc39K0A" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNYXSmEeCRC6drc39K0A" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNY3SmEeCRC6drc39K0A" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNZXSmEeCRC6drc39K0A" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNZ3SmEeCRC6drc39K0A" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_l6YNaXSmEeCRC6drc39K0A" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_l6YNbHSmEeCRC6drc39K0A" name="JavaParameter" eSuperTypes="_l6YNQXSmEeCRC6drc39K0A">
+ <eAnnotations xmi:id="_l6YNbXSmEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNbnSmEeCRC6drc39K0A" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_l6YNcHSmEeCRC6drc39K0A" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_l6YNc3SmEeCRC6drc39K0A" name="JavaProperty" eSuperTypes="_l6YNQXSmEeCRC6drc39K0A">
+ <eAnnotations xmi:id="_l6YNdHSmEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNdXSmEeCRC6drc39K0A" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNd3SmEeCRC6drc39K0A" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_l6YNeXSmEeCRC6drc39K0A" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNe3SmEeCRC6drc39K0A" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_l6YNfnSmEeCRC6drc39K0A" name="PrimitiveType" eSuperTypes="_l6YNQXSmEeCRC6drc39K0A">
+ <eAnnotations xmi:id="_l6YNf3SmEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNgHSmEeCRC6drc39K0A" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_l6YNgnSmEeCRC6drc39K0A" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_l6YNhXSmEeCRC6drc39K0A" name="JavaProject" eSuperTypes="_l6YNQXSmEeCRC6drc39K0A _l6YNTXSmEeCRC6drc39K0A">
+ <eAnnotations xmi:id="_l6YNhnSmEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_l6YNh3SmEeCRC6drc39K0A" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_l6YNi3SmEeCRC6drc39K0A" name="JavaSrcFolder" eSuperTypes="_l6YNQXSmEeCRC6drc39K0A _l6YNTXSmEeCRC6drc39K0A">
+ <eAnnotations xmi:id="_l6YNjHSmEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_l6YNjXSmEeCRC6drc39K0A" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_QwstIGnDEeCLCLVVSfvYsw" name="java" nsURI="http:///schemas/java/_QwjjMGnDEeCLCLVVSfvYsw/11" nsPrefix="java">
+ <eAnnotations xmi:id="_QxAPIGnDEeCLCLVVSfvYsw" source="PapyrusVersion">
+ <details xmi:id="_QxAPIWnDEeCLCLVVSfvYsw" key="Version" value="0.0.12"/>
+ <details xmi:id="_QxAPImnDEeCLCLVVSfvYsw" key="Comment" value=""/>
+ <details xmi:id="_QxAPI2nDEeCLCLVVSfvYsw" key="Copyright" value=""/>
+ <details xmi:id="_QxAPJGnDEeCLCLVVSfvYsw" key="Date" value="2011-04-18"/>
+ <details xmi:id="_QxAPJWnDEeCLCLVVSfvYsw" key="Author" value=""/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QwstIWnDEeCLCLVVSfvYsw" name="JavaClass" eSuperTypes="_QwstMWnDEeCLCLVVSfvYsw _QwstPWnDEeCLCLVVSfvYsw">
+ <eAnnotations xmi:id="_QwstImnDEeCLCLVVSfvYsw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_QwstI2nDEeCLCLVVSfvYsw" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_QwstJGnDEeCLCLVVSfvYsw" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_QwstJWnDEeCLCLVVSfvYsw" source="redefines" references="_QwstM2nDEeCLCLVVSfvYsw"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QwstJ2nDEeCLCLVVSfvYsw" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstKWnDEeCLCLVVSfvYsw" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstK2nDEeCLCLVVSfvYsw" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstLWnDEeCLCLVVSfvYsw" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QwstMWnDEeCLCLVVSfvYsw" name="JavaNamedElement">
+ <eAnnotations xmi:id="_QwstMmnDEeCLCLVVSfvYsw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstM2nDEeCLCLVVSfvYsw" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstNWnDEeCLCLVVSfvYsw" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstN2nDEeCLCLVVSfvYsw" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstOWnDEeCLCLVVSfvYsw" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstO2nDEeCLCLVVSfvYsw" name="comment" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QwstPWnDEeCLCLVVSfvYsw" name="JavaGen" eSuperTypes="_QwstMWnDEeCLCLVVSfvYsw">
+ <eAnnotations xmi:id="_QwstPmnDEeCLCLVVSfvYsw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QwstP2nDEeCLCLVVSfvYsw" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstQWnDEeCLCLVVSfvYsw" name="srcName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstQ2nDEeCLCLVVSfvYsw" name="projectName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QwstRmnDEeCLCLVVSfvYsw" name="JavaPackage" eSuperTypes="_QwstMWnDEeCLCLVVSfvYsw">
+ <eAnnotations xmi:id="_QwstR2nDEeCLCLVVSfvYsw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstSGnDEeCLCLVVSfvYsw" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QwstSmnDEeCLCLVVSfvYsw" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QwstTWnDEeCLCLVVSfvYsw" name="JavaMethod" eSuperTypes="_QwstMWnDEeCLCLVVSfvYsw">
+ <eAnnotations xmi:id="_QwstTmnDEeCLCLVVSfvYsw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstT2nDEeCLCLVVSfvYsw" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstUWnDEeCLCLVVSfvYsw" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstU2nDEeCLCLVVSfvYsw" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstVWnDEeCLCLVVSfvYsw" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstV2nDEeCLCLVVSfvYsw" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstWWnDEeCLCLVVSfvYsw" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QwstW2nDEeCLCLVVSfvYsw" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QwstXmnDEeCLCLVVSfvYsw" name="JavaParameter" eSuperTypes="_QwstMWnDEeCLCLVVSfvYsw">
+ <eAnnotations xmi:id="_QwstX2nDEeCLCLVVSfvYsw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstYGnDEeCLCLVVSfvYsw" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QwstYmnDEeCLCLVVSfvYsw" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QwstZWnDEeCLCLVVSfvYsw" name="JavaProperty" eSuperTypes="_QwstMWnDEeCLCLVVSfvYsw">
+ <eAnnotations xmi:id="_QwstZmnDEeCLCLVVSfvYsw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstZ2nDEeCLCLVVSfvYsw" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstaWnDEeCLCLVVSfvYsw" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Qwsta2nDEeCLCLVVSfvYsw" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstbWnDEeCLCLVVSfvYsw" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QwstcGnDEeCLCLVVSfvYsw" name="PrimitiveType" eSuperTypes="_QwstMWnDEeCLCLVVSfvYsw">
+ <eAnnotations xmi:id="_QwstcWnDEeCLCLVVSfvYsw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstcmnDEeCLCLVVSfvYsw" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QwstdGnDEeCLCLVVSfvYsw" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Qwstd2nDEeCLCLVVSfvYsw" name="JavaProject" eSuperTypes="_QwstMWnDEeCLCLVVSfvYsw _QwstPWnDEeCLCLVVSfvYsw">
+ <eAnnotations xmi:id="_QwsteGnDEeCLCLVVSfvYsw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+ <eAnnotations xmi:id="_QwsteWnDEeCLCLVVSfvYsw" source="duplicates">
+ <contents xmi:type="ecore:EReference" xmi:id="_QwstemnDEeCLCLVVSfvYsw" name="base_Package" ordered="false" lowerBound="1">
+ <eAnnotations xmi:id="_Qwste2nDEeCLCLVVSfvYsw" source="redefines" references="_QwstP2nDEeCLCLVVSfvYsw"/>
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </contents>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Qwstf2nDEeCLCLVVSfvYsw" name="JavaSrcFolder" eSuperTypes="_QwstMWnDEeCLCLVVSfvYsw _QwstPWnDEeCLCLVVSfvYsw">
+ <eAnnotations xmi:id="_QwstgGnDEeCLCLVVSfvYsw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+ <eAnnotations xmi:id="_QwstgWnDEeCLCLVVSfvYsw" source="duplicates">
+ <contents xmi:type="ecore:EReference" xmi:id="_QwstgmnDEeCLCLVVSfvYsw" name="base_Package" ordered="false" lowerBound="1">
+ <eAnnotations xmi:id="_Qwstg2nDEeCLCLVVSfvYsw" source="redefines" references="_QwstP2nDEeCLCLVVSfvYsw"/>
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </contents>
+ </eAnnotations>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_iMXo4Gm6EeCd_4cexnRotg" name="java" nsURI="http:///schemas/java/_iMN34Gm6EeCd_4cexnRotg/10" nsPrefix="java">
+ <eAnnotations xmi:id="_iNaKs2m6EeCd_4cexnRotg" source="PapyrusVersion">
+ <details xmi:id="_iNaKtGm6EeCd_4cexnRotg" key="Version" value="0.0.11"/>
+ <details xmi:id="_iNaKtWm6EeCd_4cexnRotg" key="Comment" value=""/>
+ <details xmi:id="_iNaKtmm6EeCd_4cexnRotg" key="Copyright" value=""/>
+ <details xmi:id="_iNaKt2m6EeCd_4cexnRotg" key="Date" value="2011-04-18"/>
+ <details xmi:id="_iNaKuGm6EeCd_4cexnRotg" key="Author" value=""/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iMXo4Wm6EeCd_4cexnRotg" name="JavaClass" eSuperTypes="_iMXo72m6EeCd_4cexnRotg _iMXo-2m6EeCd_4cexnRotg">
+ <eAnnotations xmi:id="_iMXo4mm6EeCd_4cexnRotg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_iMXo42m6EeCd_4cexnRotg" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_iMXo5Gm6EeCd_4cexnRotg" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_iMXo5Wm6EeCd_4cexnRotg" source="redefines" references="_iMXo8Wm6EeCd_4cexnRotg"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iMXo52m6EeCd_4cexnRotg" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXo6Wm6EeCd_4cexnRotg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXo62m6EeCd_4cexnRotg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iMXo72m6EeCd_4cexnRotg" name="JavaNamedElement">
+ <eAnnotations xmi:id="_iMXo8Gm6EeCd_4cexnRotg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXo8Wm6EeCd_4cexnRotg" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXo82m6EeCd_4cexnRotg" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXo9Wm6EeCd_4cexnRotg" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXo92m6EeCd_4cexnRotg" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXo-Wm6EeCd_4cexnRotg" name="comment" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iMXo-2m6EeCd_4cexnRotg" name="JavaGen" eSuperTypes="_iMXo72m6EeCd_4cexnRotg">
+ <eAnnotations xmi:id="_iMXo_Gm6EeCd_4cexnRotg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iMXo_Wm6EeCd_4cexnRotg" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXo_2m6EeCd_4cexnRotg" name="srcName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXpAWm6EeCd_4cexnRotg" name="projectName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iMXpBGm6EeCd_4cexnRotg" name="JavaPackage" eSuperTypes="_iMXo72m6EeCd_4cexnRotg">
+ <eAnnotations xmi:id="_iMXpBWm6EeCd_4cexnRotg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXpBmm6EeCd_4cexnRotg" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iMXpCGm6EeCd_4cexnRotg" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iMXpC2m6EeCd_4cexnRotg" name="JavaMethod" eSuperTypes="_iMXo72m6EeCd_4cexnRotg">
+ <eAnnotations xmi:id="_iMXpDGm6EeCd_4cexnRotg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXpDWm6EeCd_4cexnRotg" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXpD2m6EeCd_4cexnRotg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXpEWm6EeCd_4cexnRotg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXpE2m6EeCd_4cexnRotg" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXpFWm6EeCd_4cexnRotg" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXpF2m6EeCd_4cexnRotg" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iMXpGWm6EeCd_4cexnRotg" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iMXpHGm6EeCd_4cexnRotg" name="JavaParameter" eSuperTypes="_iMXo72m6EeCd_4cexnRotg">
+ <eAnnotations xmi:id="_iMXpHWm6EeCd_4cexnRotg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXpHmm6EeCd_4cexnRotg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iMXpIGm6EeCd_4cexnRotg" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iMXpI2m6EeCd_4cexnRotg" name="JavaProperty" eSuperTypes="_iMXo72m6EeCd_4cexnRotg">
+ <eAnnotations xmi:id="_iMXpJGm6EeCd_4cexnRotg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXpJWm6EeCd_4cexnRotg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXpJ2m6EeCd_4cexnRotg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iMXpKWm6EeCd_4cexnRotg" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXpK2m6EeCd_4cexnRotg" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iMXpLmm6EeCd_4cexnRotg" name="PrimitiveType" eSuperTypes="_iMXo72m6EeCd_4cexnRotg">
+ <eAnnotations xmi:id="_iMXpL2m6EeCd_4cexnRotg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXpMGm6EeCd_4cexnRotg" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iMXpMmm6EeCd_4cexnRotg" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iMXpNWm6EeCd_4cexnRotg" name="JavaProject" eSuperTypes="_iMXo72m6EeCd_4cexnRotg _iMXo-2m6EeCd_4cexnRotg">
+ <eAnnotations xmi:id="_iMXpNmm6EeCd_4cexnRotg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+ <eAnnotations xmi:id="_iMXpN2m6EeCd_4cexnRotg" source="duplicates">
+ <contents xmi:type="ecore:EReference" xmi:id="_iMXpOGm6EeCd_4cexnRotg" name="base_Package" ordered="false" lowerBound="1">
+ <eAnnotations xmi:id="_iMXpOWm6EeCd_4cexnRotg" source="redefines" references="_iMXo_Wm6EeCd_4cexnRotg"/>
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </contents>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iMXpPWm6EeCd_4cexnRotg" name="JavaSrcFolder" eSuperTypes="_iMXo72m6EeCd_4cexnRotg _iMXo-2m6EeCd_4cexnRotg">
+ <eAnnotations xmi:id="_iMXpPmm6EeCd_4cexnRotg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+ <eAnnotations xmi:id="_iMXpP2m6EeCd_4cexnRotg" source="duplicates">
+ <contents xmi:type="ecore:EReference" xmi:id="_iMXpQGm6EeCd_4cexnRotg" name="base_Package" ordered="false" lowerBound="1">
+ <eAnnotations xmi:id="_iMXpQWm6EeCd_4cexnRotg" source="redefines" references="_iMXo_Wm6EeCd_4cexnRotg"/>
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </contents>
+ </eAnnotations>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_G3EhcGXlEeCx-IU0sjGPKA" name="java" nsURI="http:///schemas/java/_G27XgGXlEeCx-IU0sjGPKA/9" nsPrefix="java">
+ <eAnnotations xmi:id="_G3q-YWXlEeCx-IU0sjGPKA" source="PapyrusVersion">
+ <details xmi:id="_G3q-YmXlEeCx-IU0sjGPKA" key="Version" value="0.0.10"/>
+ <details xmi:id="_G3q-Y2XlEeCx-IU0sjGPKA" key="Comment" value=""/>
+ <details xmi:id="_G3q-ZGXlEeCx-IU0sjGPKA" key="Copyright" value=""/>
+ <details xmi:id="_G3q-ZWXlEeCx-IU0sjGPKA" key="Date" value="2011-04-13"/>
+ <details xmi:id="_G3q-ZmXlEeCx-IU0sjGPKA" key="Author" value=""/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_G3EhcWXlEeCx-IU0sjGPKA" name="JavaClass" eSuperTypes="_G3Ehf2XlEeCx-IU0sjGPKA _G3Ehi2XlEeCx-IU0sjGPKA">
+ <eAnnotations xmi:id="_G3EhcmXlEeCx-IU0sjGPKA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_G3Ehc2XlEeCx-IU0sjGPKA" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_G3EhdGXlEeCx-IU0sjGPKA" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_G3EhdWXlEeCx-IU0sjGPKA" source="redefines" references="_G3EhgWXlEeCx-IU0sjGPKA"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G3Ehd2XlEeCx-IU0sjGPKA" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3EheWXlEeCx-IU0sjGPKA" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3Ehe2XlEeCx-IU0sjGPKA" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_G3Ehf2XlEeCx-IU0sjGPKA" name="JavaNamedElement">
+ <eAnnotations xmi:id="_G3EhgGXlEeCx-IU0sjGPKA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3EhgWXlEeCx-IU0sjGPKA" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3Ehg2XlEeCx-IU0sjGPKA" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3EhhWXlEeCx-IU0sjGPKA" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3Ehh2XlEeCx-IU0sjGPKA" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3EhiWXlEeCx-IU0sjGPKA" name="comment" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_G3Ehi2XlEeCx-IU0sjGPKA" name="JavaGen" eSuperTypes="_G3Ehf2XlEeCx-IU0sjGPKA">
+ <eAnnotations xmi:id="_G3EhjGXlEeCx-IU0sjGPKA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G3EhjWXlEeCx-IU0sjGPKA" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3Ehj2XlEeCx-IU0sjGPKA" name="srcName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3EhkWXlEeCx-IU0sjGPKA" name="projectName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_G3EhlGXlEeCx-IU0sjGPKA" name="JavaPackage" eSuperTypes="_G3Ehf2XlEeCx-IU0sjGPKA">
+ <eAnnotations xmi:id="_G3EhlWXlEeCx-IU0sjGPKA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3EhlmXlEeCx-IU0sjGPKA" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G3EhmGXlEeCx-IU0sjGPKA" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_G3Ehm2XlEeCx-IU0sjGPKA" name="JavaMethod" eSuperTypes="_G3Ehf2XlEeCx-IU0sjGPKA">
+ <eAnnotations xmi:id="_G3EhnGXlEeCx-IU0sjGPKA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3EhnWXlEeCx-IU0sjGPKA" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3Ehn2XlEeCx-IU0sjGPKA" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3EhoWXlEeCx-IU0sjGPKA" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3Eho2XlEeCx-IU0sjGPKA" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3EhpWXlEeCx-IU0sjGPKA" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3Ehp2XlEeCx-IU0sjGPKA" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G3EhqWXlEeCx-IU0sjGPKA" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_G3EhrGXlEeCx-IU0sjGPKA" name="JavaParameter" eSuperTypes="_G3Ehf2XlEeCx-IU0sjGPKA">
+ <eAnnotations xmi:id="_G3EhrWXlEeCx-IU0sjGPKA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3EhrmXlEeCx-IU0sjGPKA" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G3EhsGXlEeCx-IU0sjGPKA" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_G3Ehs2XlEeCx-IU0sjGPKA" name="JavaProperty" eSuperTypes="_G3Ehf2XlEeCx-IU0sjGPKA">
+ <eAnnotations xmi:id="_G3EhtGXlEeCx-IU0sjGPKA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3EhtWXlEeCx-IU0sjGPKA" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3Eht2XlEeCx-IU0sjGPKA" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G3EhuWXlEeCx-IU0sjGPKA" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3Ehu2XlEeCx-IU0sjGPKA" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_G3EhvmXlEeCx-IU0sjGPKA" name="PrimitiveType" eSuperTypes="_G3Ehf2XlEeCx-IU0sjGPKA">
+ <eAnnotations xmi:id="_G3Ehv2XlEeCx-IU0sjGPKA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3EhwGXlEeCx-IU0sjGPKA" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G3EhwmXlEeCx-IU0sjGPKA" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_G3EhxWXlEeCx-IU0sjGPKA" name="JavaProject" eSuperTypes="_G3Ehf2XlEeCx-IU0sjGPKA _G3Ehi2XlEeCx-IU0sjGPKA">
+ <eAnnotations xmi:id="_G3EhxmXlEeCx-IU0sjGPKA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+ <eAnnotations xmi:id="_G3Ehx2XlEeCx-IU0sjGPKA" source="duplicates">
+ <contents xmi:type="ecore:EReference" xmi:id="_G3EhyGXlEeCx-IU0sjGPKA" name="base_Package" ordered="false" lowerBound="1">
+ <eAnnotations xmi:id="_G3EhyWXlEeCx-IU0sjGPKA" source="redefines" references="_G3EhjWXlEeCx-IU0sjGPKA"/>
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </contents>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_G3EhzWXlEeCx-IU0sjGPKA" name="JavaSrcFolder" eSuperTypes="_G3Ehf2XlEeCx-IU0sjGPKA _G3Ehi2XlEeCx-IU0sjGPKA">
+ <eAnnotations xmi:id="_G3EhzmXlEeCx-IU0sjGPKA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+ <eAnnotations xmi:id="_G3Ehz2XlEeCx-IU0sjGPKA" source="duplicates">
+ <contents xmi:type="ecore:EReference" xmi:id="_G3Eh0GXlEeCx-IU0sjGPKA" name="base_Package" ordered="false" lowerBound="1">
+ <eAnnotations xmi:id="_G3Eh0WXlEeCx-IU0sjGPKA" source="redefines" references="_G3EhjWXlEeCx-IU0sjGPKA"/>
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </contents>
+ </eAnnotations>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_BgKjoGXkEeCHc7Sujzc1_A" name="java" nsURI="http:///schemas/java/_BgBZsGXkEeCHc7Sujzc1_A/8" nsPrefix="java">
+ <eAnnotations xmi:id="_BhNsgWXkEeCHc7Sujzc1_A" source="PapyrusVersion">
+ <details xmi:id="_BhNsgmXkEeCHc7Sujzc1_A" key="Version" value="0.0.9"/>
+ <details xmi:id="_BhNsg2XkEeCHc7Sujzc1_A" key="Comment" value=""/>
+ <details xmi:id="_BhNshGXkEeCHc7Sujzc1_A" key="Copyright" value=""/>
+ <details xmi:id="_BhNshWXkEeCHc7Sujzc1_A" key="Date" value="2011-04-13"/>
+ <details xmi:id="_BhNshmXkEeCHc7Sujzc1_A" key="Author" value=""/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_BgKjoWXkEeCHc7Sujzc1_A" name="JavaClass" eSuperTypes="_BgKjrmXkEeCHc7Sujzc1_A">
+ <eAnnotations xmi:id="_BgKjomXkEeCHc7Sujzc1_A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_BgKjo2XkEeCHc7Sujzc1_A" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_BgKjpGXkEeCHc7Sujzc1_A" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_BgKjpWXkEeCHc7Sujzc1_A" source="redefines" references="_BgKjsGXkEeCHc7Sujzc1_A"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_BgKjp2XkEeCHc7Sujzc1_A" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKjqWXkEeCHc7Sujzc1_A" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKjq2XkEeCHc7Sujzc1_A" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_BgKjrmXkEeCHc7Sujzc1_A" name="JavaNamedElement">
+ <eAnnotations xmi:id="_BgKjr2XkEeCHc7Sujzc1_A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKjsGXkEeCHc7Sujzc1_A" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKjsmXkEeCHc7Sujzc1_A" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKjtGXkEeCHc7Sujzc1_A" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKjtmXkEeCHc7Sujzc1_A" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKjuGXkEeCHc7Sujzc1_A" name="comment" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_BgKjumXkEeCHc7Sujzc1_A" name="JavaPackage" eSuperTypes="_BgKjrmXkEeCHc7Sujzc1_A">
+ <eAnnotations xmi:id="_BgKju2XkEeCHc7Sujzc1_A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKjvGXkEeCHc7Sujzc1_A" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_BgKjvmXkEeCHc7Sujzc1_A" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_BgKjwWXkEeCHc7Sujzc1_A" name="JavaMethod" eSuperTypes="_BgKjrmXkEeCHc7Sujzc1_A">
+ <eAnnotations xmi:id="_BgKjwmXkEeCHc7Sujzc1_A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKjw2XkEeCHc7Sujzc1_A" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKjxWXkEeCHc7Sujzc1_A" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKjx2XkEeCHc7Sujzc1_A" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKjyWXkEeCHc7Sujzc1_A" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKjy2XkEeCHc7Sujzc1_A" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKjzWXkEeCHc7Sujzc1_A" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_BgKjz2XkEeCHc7Sujzc1_A" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_BgKj0mXkEeCHc7Sujzc1_A" name="JavaParameter" eSuperTypes="_BgKjrmXkEeCHc7Sujzc1_A">
+ <eAnnotations xmi:id="_BgKj02XkEeCHc7Sujzc1_A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKj1GXkEeCHc7Sujzc1_A" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_BgKj1mXkEeCHc7Sujzc1_A" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_BgKj2WXkEeCHc7Sujzc1_A" name="JavaProperty" eSuperTypes="_BgKjrmXkEeCHc7Sujzc1_A">
+ <eAnnotations xmi:id="_BgKj2mXkEeCHc7Sujzc1_A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKj22XkEeCHc7Sujzc1_A" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKj3WXkEeCHc7Sujzc1_A" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_BgKj32XkEeCHc7Sujzc1_A" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKj4WXkEeCHc7Sujzc1_A" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_BgKj5GXkEeCHc7Sujzc1_A" name="PrimitiveType" eSuperTypes="_BgKjrmXkEeCHc7Sujzc1_A">
+ <eAnnotations xmi:id="_BgKj5WXkEeCHc7Sujzc1_A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKj5mXkEeCHc7Sujzc1_A" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_BgKj6GXkEeCHc7Sujzc1_A" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_BgKj62XkEeCHc7Sujzc1_A" name="JavaProject">
+ <eAnnotations xmi:id="_BgKj7GXkEeCHc7Sujzc1_A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_BgKj7WXkEeCHc7Sujzc1_A" name="JavaSrcFolder">
+ <eAnnotations xmi:id="_BgKj7mXkEeCHc7Sujzc1_A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_BgKj72XkEeCHc7Sujzc1_A" name="JavaGen">
+ <eAnnotations xmi:id="_BgKj8GXkEeCHc7Sujzc1_A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_7_e8UPiVEd-PA5X9eH0eag" name="java" nsURI="http:///schemas/java/_7_VyYPiVEd-PA5X9eH0eag/7" nsPrefix="java">
+ <eAnnotations xmi:id="_8AFZQPiVEd-PA5X9eH0eag" source="PapyrusVersion">
+ <details xmi:id="_8AFZQfiVEd-PA5X9eH0eag" key="Version" value="0.0.8"/>
+ <details xmi:id="_8AFZQviVEd-PA5X9eH0eag" key="Comment" value=""/>
+ <details xmi:id="_8AFZQ_iVEd-PA5X9eH0eag" key="Copyright" value=""/>
+ <details xmi:id="_8AFZRPiVEd-PA5X9eH0eag" key="Date" value="2010-11-25"/>
+ <details xmi:id="_8AFZRfiVEd-PA5X9eH0eag" key="Author" value=""/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7_e8UfiVEd-PA5X9eH0eag" name="JavaClass" eSuperTypes="_7_e8XviVEd-PA5X9eH0eag">
+ <eAnnotations xmi:id="_7_e8UviVEd-PA5X9eH0eag" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_7_e8U_iVEd-PA5X9eH0eag" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_7_e8VPiVEd-PA5X9eH0eag" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_7_e8VfiVEd-PA5X9eH0eag" source="redefines" references="_7_e8YPiVEd-PA5X9eH0eag"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7_e8V_iVEd-PA5X9eH0eag" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8WfiVEd-PA5X9eH0eag" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8W_iVEd-PA5X9eH0eag" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7_e8XviVEd-PA5X9eH0eag" name="JavaNamedElement">
+ <eAnnotations xmi:id="_7_e8X_iVEd-PA5X9eH0eag" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8YPiVEd-PA5X9eH0eag" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8YviVEd-PA5X9eH0eag" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8ZPiVEd-PA5X9eH0eag" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8ZviVEd-PA5X9eH0eag" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8aPiVEd-PA5X9eH0eag" name="comment" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7_e8aviVEd-PA5X9eH0eag" name="JavaPackage" eSuperTypes="_7_e8XviVEd-PA5X9eH0eag">
+ <eAnnotations xmi:id="_7_e8a_iVEd-PA5X9eH0eag" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8bPiVEd-PA5X9eH0eag" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7_e8bviVEd-PA5X9eH0eag" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7_e8cfiVEd-PA5X9eH0eag" name="JavaMethod" eSuperTypes="_7_e8XviVEd-PA5X9eH0eag">
+ <eAnnotations xmi:id="_7_e8cviVEd-PA5X9eH0eag" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8c_iVEd-PA5X9eH0eag" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8dfiVEd-PA5X9eH0eag" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8d_iVEd-PA5X9eH0eag" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8efiVEd-PA5X9eH0eag" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8e_iVEd-PA5X9eH0eag" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8ffiVEd-PA5X9eH0eag" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7_e8f_iVEd-PA5X9eH0eag" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7_e8gviVEd-PA5X9eH0eag" name="JavaParameter" eSuperTypes="_7_e8XviVEd-PA5X9eH0eag">
+ <eAnnotations xmi:id="_7_e8g_iVEd-PA5X9eH0eag" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8hPiVEd-PA5X9eH0eag" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7_e8hviVEd-PA5X9eH0eag" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7_e8ifiVEd-PA5X9eH0eag" name="JavaProperty" eSuperTypes="_7_e8XviVEd-PA5X9eH0eag">
+ <eAnnotations xmi:id="_7_e8iviVEd-PA5X9eH0eag" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8i_iVEd-PA5X9eH0eag" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8jfiVEd-PA5X9eH0eag" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7_e8j_iVEd-PA5X9eH0eag" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8kfiVEd-PA5X9eH0eag" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7_e8lPiVEd-PA5X9eH0eag" name="PrimitiveType" eSuperTypes="_7_e8XviVEd-PA5X9eH0eag">
+ <eAnnotations xmi:id="_7_e8lfiVEd-PA5X9eH0eag" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8lviVEd-PA5X9eH0eag" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7_e8mPiVEd-PA5X9eH0eag" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_dd0ogfffEd-Ui7vEO4yc0g" name="java" nsURI="http:///schemas/java/_dd0ogPffEd-Ui7vEO4yc0g/6" nsPrefix="java">
+ <eAnnotations xmi:id="_dd-ZgvffEd-Ui7vEO4yc0g" source="PapyrusVersion">
+ <details xmi:id="_dd-Zg_ffEd-Ui7vEO4yc0g" key="Version" value="0.0.7"/>
+ <details xmi:id="_dd-ZhPffEd-Ui7vEO4yc0g" key="Comment" value=""/>
+ <details xmi:id="_dd-ZhfffEd-Ui7vEO4yc0g" key="Copyright" value=""/>
+ <details xmi:id="_dd-ZhvffEd-Ui7vEO4yc0g" key="Date" value="2010-11-24"/>
+ <details xmi:id="_dd-Zh_ffEd-Ui7vEO4yc0g" key="Author" value=""/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_dd0ogvffEd-Ui7vEO4yc0g" name="JavaClass" eSuperTypes="_dd0oj_ffEd-Ui7vEO4yc0g">
+ <eAnnotations xmi:id="_dd0og_ffEd-Ui7vEO4yc0g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_dd0ohPffEd-Ui7vEO4yc0g" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_dd0ohfffEd-Ui7vEO4yc0g" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_dd0ohvffEd-Ui7vEO4yc0g" source="redefines" references="_dd0okfffEd-Ui7vEO4yc0g"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dd0oiPffEd-Ui7vEO4yc0g" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dd0oivffEd-Ui7vEO4yc0g" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dd0ojPffEd-Ui7vEO4yc0g" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_dd0oj_ffEd-Ui7vEO4yc0g" name="JavaNamedElement">
+ <eAnnotations xmi:id="_dd0okPffEd-Ui7vEO4yc0g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dd0okfffEd-Ui7vEO4yc0g" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dd0ok_ffEd-Ui7vEO4yc0g" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dd0olfffEd-Ui7vEO4yc0g" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dd0ol_ffEd-Ui7vEO4yc0g" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_dd0omfffEd-Ui7vEO4yc0g" name="JavaPackage" eSuperTypes="_dd0oj_ffEd-Ui7vEO4yc0g">
+ <eAnnotations xmi:id="_dd0omvffEd-Ui7vEO4yc0g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dd0om_ffEd-Ui7vEO4yc0g" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dd0onfffEd-Ui7vEO4yc0g" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_dd0ooPffEd-Ui7vEO4yc0g" name="JavaMethod" eSuperTypes="_dd0oj_ffEd-Ui7vEO4yc0g">
+ <eAnnotations xmi:id="_dd0oofffEd-Ui7vEO4yc0g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dd0oovffEd-Ui7vEO4yc0g" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dd0opPffEd-Ui7vEO4yc0g" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dd0opvffEd-Ui7vEO4yc0g" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dd0oqPffEd-Ui7vEO4yc0g" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dd0oqvffEd-Ui7vEO4yc0g" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dd0orPffEd-Ui7vEO4yc0g" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dd0orvffEd-Ui7vEO4yc0g" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_dd0osfffEd-Ui7vEO4yc0g" name="JavaParameter" eSuperTypes="_dd0oj_ffEd-Ui7vEO4yc0g">
+ <eAnnotations xmi:id="_dd0osvffEd-Ui7vEO4yc0g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dd0os_ffEd-Ui7vEO4yc0g" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dd0otfffEd-Ui7vEO4yc0g" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_dd0ouPffEd-Ui7vEO4yc0g" name="JavaProperty" eSuperTypes="_dd0oj_ffEd-Ui7vEO4yc0g">
+ <eAnnotations xmi:id="_dd0oufffEd-Ui7vEO4yc0g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dd0ouvffEd-Ui7vEO4yc0g" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dd0ovPffEd-Ui7vEO4yc0g" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dd0ovvffEd-Ui7vEO4yc0g" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dd0owPffEd-Ui7vEO4yc0g" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_dd0ow_ffEd-Ui7vEO4yc0g" name="PrimitiveType" eSuperTypes="_dd0oj_ffEd-Ui7vEO4yc0g">
+ <eAnnotations xmi:id="_dd0oxPffEd-Ui7vEO4yc0g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dd0oxfffEd-Ui7vEO4yc0g" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dd0ox_ffEd-Ui7vEO4yc0g" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_F-JSAfffEd-Ui7vEO4yc0g" name="java" nsURI="http:///schemas/java/_F-JSAPffEd-Ui7vEO4yc0g/5" nsPrefix="java">
+ <eAnnotations xmi:id="_F-TDAvffEd-Ui7vEO4yc0g" source="PapyrusVersion">
+ <details xmi:id="_F-TDA_ffEd-Ui7vEO4yc0g" key="Version" value="0.0.6"/>
+ <details xmi:id="_F-TDBPffEd-Ui7vEO4yc0g" key="Comment" value=""/>
+ <details xmi:id="_F-TDBfffEd-Ui7vEO4yc0g" key="Copyright" value=""/>
+ <details xmi:id="_F-TDBvffEd-Ui7vEO4yc0g" key="Date" value="2010-11-24"/>
+ <details xmi:id="_F-TDB_ffEd-Ui7vEO4yc0g" key="Author" value=""/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_F-JSAvffEd-Ui7vEO4yc0g" name="JavaClass" eSuperTypes="_F-JSD_ffEd-Ui7vEO4yc0g">
+ <eAnnotations xmi:id="_F-JSA_ffEd-Ui7vEO4yc0g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_F-JSBPffEd-Ui7vEO4yc0g" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_F-JSBfffEd-Ui7vEO4yc0g" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_F-JSBvffEd-Ui7vEO4yc0g" source="redefines" references="_F-JSEfffEd-Ui7vEO4yc0g"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_F-JSCPffEd-Ui7vEO4yc0g" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_F-JSCvffEd-Ui7vEO4yc0g" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_F-JSDPffEd-Ui7vEO4yc0g" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_F-JSD_ffEd-Ui7vEO4yc0g" name="JavaNamedElement">
+ <eAnnotations xmi:id="_F-JSEPffEd-Ui7vEO4yc0g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_F-JSEfffEd-Ui7vEO4yc0g" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_F-JSE_ffEd-Ui7vEO4yc0g" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_F-JSFfffEd-Ui7vEO4yc0g" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_F-JSF_ffEd-Ui7vEO4yc0g" name="isGenerated" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_F-JSGfffEd-Ui7vEO4yc0g" name="JavaPackage" eSuperTypes="_F-JSD_ffEd-Ui7vEO4yc0g">
+ <eAnnotations xmi:id="_F-JSGvffEd-Ui7vEO4yc0g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_F-JSG_ffEd-Ui7vEO4yc0g" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_F-JSHfffEd-Ui7vEO4yc0g" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_F-JSIPffEd-Ui7vEO4yc0g" name="JavaMethod" eSuperTypes="_F-JSD_ffEd-Ui7vEO4yc0g">
+ <eAnnotations xmi:id="_F-JSIfffEd-Ui7vEO4yc0g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_F-JSIvffEd-Ui7vEO4yc0g" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_F-JSJPffEd-Ui7vEO4yc0g" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_F-JSJvffEd-Ui7vEO4yc0g" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_F-JSKPffEd-Ui7vEO4yc0g" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_F-JSKvffEd-Ui7vEO4yc0g" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_F-JSLPffEd-Ui7vEO4yc0g" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_F-JSLvffEd-Ui7vEO4yc0g" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_F-JSMfffEd-Ui7vEO4yc0g" name="JavaParameter" eSuperTypes="_F-JSD_ffEd-Ui7vEO4yc0g">
+ <eAnnotations xmi:id="_F-JSMvffEd-Ui7vEO4yc0g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_F-JSM_ffEd-Ui7vEO4yc0g" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_F-JSNfffEd-Ui7vEO4yc0g" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_F-JSOPffEd-Ui7vEO4yc0g" name="JavaProperty" eSuperTypes="_F-JSD_ffEd-Ui7vEO4yc0g">
+ <eAnnotations xmi:id="_F-JSOfffEd-Ui7vEO4yc0g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_F-JSOvffEd-Ui7vEO4yc0g" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_F-JSPPffEd-Ui7vEO4yc0g" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_F-JSPvffEd-Ui7vEO4yc0g" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_F-JSQPffEd-Ui7vEO4yc0g" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_F-JSQ_ffEd-Ui7vEO4yc0g" name="PrimitiveType" eSuperTypes="_F-JSD_ffEd-Ui7vEO4yc0g">
+ <eAnnotations xmi:id="_F-JSRPffEd-Ui7vEO4yc0g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_F-JSRfffEd-Ui7vEO4yc0g" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_F-JSR_ffEd-Ui7vEO4yc0g" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_Yd680ffbEd-PNYpgO1g6_g" name="java" nsURI="http:///schemas/java/_Yd680PfbEd-PNYpgO1g6_g/4" nsPrefix="java">
+ <eAnnotations xmi:id="_YeEGwvfbEd-PNYpgO1g6_g" source="PapyrusVersion">
+ <details xmi:id="_YeEGw_fbEd-PNYpgO1g6_g" key="Version" value="0.0.5"/>
+ <details xmi:id="_YeEGxPfbEd-PNYpgO1g6_g" key="Comment" value=""/>
+ <details xmi:id="_YeEGxffbEd-PNYpgO1g6_g" key="Copyright" value=""/>
+ <details xmi:id="_YeEGxvfbEd-PNYpgO1g6_g" key="Date" value="2010-11-24"/>
+ <details xmi:id="_YeEGx_fbEd-PNYpgO1g6_g" key="Author" value="cdm"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Yd680vfbEd-PNYpgO1g6_g" name="JavaClass" eSuperTypes="_Yd683_fbEd-PNYpgO1g6_g">
+ <eAnnotations xmi:id="_Yd680_fbEd-PNYpgO1g6_g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_Yd681PfbEd-PNYpgO1g6_g" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_Yd681ffbEd-PNYpgO1g6_g" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_Yd681vfbEd-PNYpgO1g6_g" source="redefines" references="_Yd684ffbEd-PNYpgO1g6_g"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Yd682PfbEd-PNYpgO1g6_g" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Yd682vfbEd-PNYpgO1g6_g" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Yd683PfbEd-PNYpgO1g6_g" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Yd683_fbEd-PNYpgO1g6_g" name="JavaNamedElement">
+ <eAnnotations xmi:id="_Yd684PfbEd-PNYpgO1g6_g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Yd684ffbEd-PNYpgO1g6_g" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Yd684_fbEd-PNYpgO1g6_g" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Yd685ffbEd-PNYpgO1g6_g" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Yd685_fbEd-PNYpgO1g6_g" name="JavaPackage" eSuperTypes="_Yd683_fbEd-PNYpgO1g6_g">
+ <eAnnotations xmi:id="_Yd686PfbEd-PNYpgO1g6_g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Yd686ffbEd-PNYpgO1g6_g" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Yd686_fbEd-PNYpgO1g6_g" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Yd687vfbEd-PNYpgO1g6_g" name="JavaMethod" eSuperTypes="_Yd683_fbEd-PNYpgO1g6_g">
+ <eAnnotations xmi:id="_Yd687_fbEd-PNYpgO1g6_g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Yd688PfbEd-PNYpgO1g6_g" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Yd688vfbEd-PNYpgO1g6_g" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Yd689PfbEd-PNYpgO1g6_g" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Yd689vfbEd-PNYpgO1g6_g" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Yd68-PfbEd-PNYpgO1g6_g" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Yd68-vfbEd-PNYpgO1g6_g" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Yd68_PfbEd-PNYpgO1g6_g" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Yd68__fbEd-PNYpgO1g6_g" name="JavaParameter" eSuperTypes="_Yd683_fbEd-PNYpgO1g6_g">
+ <eAnnotations xmi:id="_Yd69APfbEd-PNYpgO1g6_g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Yd69AffbEd-PNYpgO1g6_g" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Yd69A_fbEd-PNYpgO1g6_g" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Yd69BvfbEd-PNYpgO1g6_g" name="JavaProperty" eSuperTypes="_Yd683_fbEd-PNYpgO1g6_g">
+ <eAnnotations xmi:id="_Yd69B_fbEd-PNYpgO1g6_g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Yd69CPfbEd-PNYpgO1g6_g" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Yd69CvfbEd-PNYpgO1g6_g" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Yd69DPfbEd-PNYpgO1g6_g" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Yd69DvfbEd-PNYpgO1g6_g" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Yd69EffbEd-PNYpgO1g6_g" name="PrimitiveType" eSuperTypes="_Yd683_fbEd-PNYpgO1g6_g">
+ <eAnnotations xmi:id="_Yd69EvfbEd-PNYpgO1g6_g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Yd69E_fbEd-PNYpgO1g6_g" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Yd69FffbEd-PNYpgO1g6_g" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_-W-h4d2SEd6P1qtlpBOZyg" name="java" nsURI="http:///schemas/java/_-W-h4N2SEd6P1qtlpBOZyg/3" nsPrefix="java">
+ <eAnnotations xmi:id="_-W-iLt2SEd6P1qtlpBOZyg" source="PapyrusVersion">
+ <details xmi:id="_-W-iL92SEd6P1qtlpBOZyg" key="Version" value="0.0.4"/>
+ <details xmi:id="_-W-iMN2SEd6P1qtlpBOZyg" key="Comment" value=""/>
+ <details xmi:id="_-W-iMd2SEd6P1qtlpBOZyg" key="Copyright" value=""/>
+ <details xmi:id="_-W-iMt2SEd6P1qtlpBOZyg" key="Date" value="2009-11-30"/>
+ <details xmi:id="_-W-iM92SEd6P1qtlpBOZyg" key="Author" value="dumoulin"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_-W-h4t2SEd6P1qtlpBOZyg" name="JavaClass" eSuperTypes="_-W-h792SEd6P1qtlpBOZyg">
+ <eAnnotations xmi:id="_-W-h492SEd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_-W-h5N2SEd6P1qtlpBOZyg" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_-W-h5d2SEd6P1qtlpBOZyg" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_-W-h5t2SEd6P1qtlpBOZyg" source="redefines" references="_-W-h8d2SEd6P1qtlpBOZyg"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-W-h6N2SEd6P1qtlpBOZyg" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-W-h6t2SEd6P1qtlpBOZyg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-W-h7N2SEd6P1qtlpBOZyg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_-W-h792SEd6P1qtlpBOZyg" name="JavaNamedElement">
+ <eAnnotations xmi:id="_-W-h8N2SEd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-W-h8d2SEd6P1qtlpBOZyg" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-W-h892SEd6P1qtlpBOZyg" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-W-h9d2SEd6P1qtlpBOZyg" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_-W-h992SEd6P1qtlpBOZyg" name="JavaPackage" eSuperTypes="_-W-h792SEd6P1qtlpBOZyg">
+ <eAnnotations xmi:id="_-W-h-N2SEd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-W-h-d2SEd6P1qtlpBOZyg" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-W-h-92SEd6P1qtlpBOZyg" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_-W-h_t2SEd6P1qtlpBOZyg" name="JavaMethod" eSuperTypes="_-W-h792SEd6P1qtlpBOZyg">
+ <eAnnotations xmi:id="_-W-h_92SEd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-W-iAN2SEd6P1qtlpBOZyg" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-W-iAt2SEd6P1qtlpBOZyg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-W-iBN2SEd6P1qtlpBOZyg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-W-iBt2SEd6P1qtlpBOZyg" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-W-iCN2SEd6P1qtlpBOZyg" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-W-iCt2SEd6P1qtlpBOZyg" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-W-iDN2SEd6P1qtlpBOZyg" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_-W-iD92SEd6P1qtlpBOZyg" name="JavaParameter" eSuperTypes="_-W-h792SEd6P1qtlpBOZyg">
+ <eAnnotations xmi:id="_-W-iEN2SEd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-W-iEd2SEd6P1qtlpBOZyg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-W-iE92SEd6P1qtlpBOZyg" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_-W-iFt2SEd6P1qtlpBOZyg" name="JavaProperty" eSuperTypes="_-W-h792SEd6P1qtlpBOZyg">
+ <eAnnotations xmi:id="_-W-iF92SEd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-W-iGN2SEd6P1qtlpBOZyg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-W-iGt2SEd6P1qtlpBOZyg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-W-iHN2SEd6P1qtlpBOZyg" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-W-iHt2SEd6P1qtlpBOZyg" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_-W-iId2SEd6P1qtlpBOZyg" name="PrimitiveType" eSuperTypes="_-W-h792SEd6P1qtlpBOZyg">
+ <eAnnotations xmi:id="_-W-iIt2SEd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-W-iI92SEd6P1qtlpBOZyg" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-W-iJd2SEd6P1qtlpBOZyg" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_vj0sEd2REd6P1qtlpBOZyg" name="java" nsURI="http:///schemas/java/_vj0sEN2REd6P1qtlpBOZyg/2" nsPrefix="java">
+ <eAnnotations xmi:id="_vj0sVt2REd6P1qtlpBOZyg" source="PapyrusVersion">
+ <details xmi:id="_vj0sV92REd6P1qtlpBOZyg" key="Version" value="0.0.3"/>
+ <details xmi:id="_vj0sWN2REd6P1qtlpBOZyg" key="Comment" value=""/>
+ <details xmi:id="_vj0sWd2REd6P1qtlpBOZyg" key="Copyright" value=""/>
+ <details xmi:id="_vj0sWt2REd6P1qtlpBOZyg" key="Date" value="2009-11-30"/>
+ <details xmi:id="_vj0sW92REd6P1qtlpBOZyg" key="Author" value="dumoulin"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vj0sEt2REd6P1qtlpBOZyg" name="JavaClass" eSuperTypes="_vj0sH92REd6P1qtlpBOZyg">
+ <eAnnotations xmi:id="_vj0sE92REd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_vj0sFN2REd6P1qtlpBOZyg" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_vj0sFd2REd6P1qtlpBOZyg" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_vj0sFt2REd6P1qtlpBOZyg" source="redefines" references="_vj0sId2REd6P1qtlpBOZyg"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vj0sGN2REd6P1qtlpBOZyg" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vj0sGt2REd6P1qtlpBOZyg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vj0sHN2REd6P1qtlpBOZyg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vj0sH92REd6P1qtlpBOZyg" name="JavaNamedElement">
+ <eAnnotations xmi:id="_vj0sIN2REd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vj0sId2REd6P1qtlpBOZyg" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vj0sI92REd6P1qtlpBOZyg" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vj0sJd2REd6P1qtlpBOZyg" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vj0sJ92REd6P1qtlpBOZyg" name="JavaPackage" eSuperTypes="_vj0sH92REd6P1qtlpBOZyg">
+ <eAnnotations xmi:id="_vj0sKN2REd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vj0sKd2REd6P1qtlpBOZyg" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vj0sK92REd6P1qtlpBOZyg" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vj0sLt2REd6P1qtlpBOZyg" name="JavaMethod" eSuperTypes="_vj0sH92REd6P1qtlpBOZyg">
+ <eAnnotations xmi:id="_vj0sL92REd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vj0sMN2REd6P1qtlpBOZyg" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vj0sMt2REd6P1qtlpBOZyg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vj0sNN2REd6P1qtlpBOZyg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vj0sNt2REd6P1qtlpBOZyg" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vj0sON2REd6P1qtlpBOZyg" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vj0sOt2REd6P1qtlpBOZyg" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vj0sPN2REd6P1qtlpBOZyg" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vj0sP92REd6P1qtlpBOZyg" name="JavaParameter" eSuperTypes="_vj0sH92REd6P1qtlpBOZyg">
+ <eAnnotations xmi:id="_vj0sQN2REd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vj0sQd2REd6P1qtlpBOZyg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vj0sQ92REd6P1qtlpBOZyg" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vj0sRt2REd6P1qtlpBOZyg" name="JavaProperty" eSuperTypes="_vj0sH92REd6P1qtlpBOZyg">
+ <eAnnotations xmi:id="_vj0sR92REd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vj0sSN2REd6P1qtlpBOZyg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vj0sSt2REd6P1qtlpBOZyg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vj0sTN2REd6P1qtlpBOZyg" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vj0sTt2REd6P1qtlpBOZyg" name="isTransient" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_aiHwsN2NEd6P1qtlpBOZyg" name="java" nsURI="http:///schemas/java/_ah-mwN2NEd6P1qtlpBOZyg/1" nsPrefix="java">
+ <eAnnotations xmi:id="_aiHw892NEd6P1qtlpBOZyg" source="PapyrusVersion">
+ <details xmi:id="_aiHw9N2NEd6P1qtlpBOZyg" key="Version" value="0.0.2"/>
+ <details xmi:id="_aiHw9d2NEd6P1qtlpBOZyg" key="Comment" value=""/>
+ <details xmi:id="_aiHw9t2NEd6P1qtlpBOZyg" key="Copyright" value=""/>
+ <details xmi:id="_aiHw992NEd6P1qtlpBOZyg" key="Date" value="2009-11-30"/>
+ <details xmi:id="_aiHw-N2NEd6P1qtlpBOZyg" key="Author" value="dumoulin"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_aiHwsd2NEd6P1qtlpBOZyg" name="JavaClass" eSuperTypes="_aiHwvt2NEd6P1qtlpBOZyg">
+ <eAnnotations xmi:id="_aiHwst2NEd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eAnnotations xmi:id="_aiHws92NEd6P1qtlpBOZyg" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_aiHwtN2NEd6P1qtlpBOZyg" name="name" ordered="false" unique="false" lowerBound="1">
+ <eAnnotations xmi:id="_aiHwtd2NEd6P1qtlpBOZyg" source="redefines" references="_aiHwwN2NEd6P1qtlpBOZyg"/>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aiHwt92NEd6P1qtlpBOZyg" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aiHwud2NEd6P1qtlpBOZyg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aiHwu92NEd6P1qtlpBOZyg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_aiHwvt2NEd6P1qtlpBOZyg" name="JavaNamedElement">
+ <eAnnotations xmi:id="_aiHwv92NEd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aiHwwN2NEd6P1qtlpBOZyg" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aiHwwt2NEd6P1qtlpBOZyg" name="author" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aiHwxN2NEd6P1qtlpBOZyg" name="version" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_aiHwxt2NEd6P1qtlpBOZyg" name="JavaPackage" eSuperTypes="_aiHwvt2NEd6P1qtlpBOZyg">
+ <eAnnotations xmi:id="_aiHwx92NEd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aiHwyN2NEd6P1qtlpBOZyg" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aiHwyt2NEd6P1qtlpBOZyg" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_aiHwzd2NEd6P1qtlpBOZyg" name="JavaMethod" eSuperTypes="_aiHwvt2NEd6P1qtlpBOZyg">
+ <eAnnotations xmi:id="_aiHwzt2NEd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aiHwz92NEd6P1qtlpBOZyg" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aiHw0d2NEd6P1qtlpBOZyg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aiHw092NEd6P1qtlpBOZyg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aiHw1d2NEd6P1qtlpBOZyg" name="isNative" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aiHw192NEd6P1qtlpBOZyg" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aiHw2d2NEd6P1qtlpBOZyg" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aiHw292NEd6P1qtlpBOZyg" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_aiHw3t2NEd6P1qtlpBOZyg" name="JavaParameter" eSuperTypes="_aiHwvt2NEd6P1qtlpBOZyg">
+ <eAnnotations xmi:id="_aiHw392NEd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aiHw4N2NEd6P1qtlpBOZyg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aiHw4t2NEd6P1qtlpBOZyg" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_aiHw5d2NEd6P1qtlpBOZyg" name="JavaProperty" eSuperTypes="_aiHwvt2NEd6P1qtlpBOZyg">
+ <eAnnotations xmi:id="_aiHw5t2NEd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aiHw592NEd6P1qtlpBOZyg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aiHw6d2NEd6P1qtlpBOZyg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aiHw692NEd6P1qtlpBOZyg" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_M0NMoN00Ed6P1qtlpBOZyg" name="java" nsURI="http:///schemas/java/_My3I0N00Ed6P1qtlpBOZyg/0" nsPrefix="java">
+ <eAnnotations xmi:id="_M0WWlN00Ed6P1qtlpBOZyg" source="PapyrusVersion">
+ <details xmi:id="_M0WWld00Ed6P1qtlpBOZyg" key="Version" value="0.0.1"/>
+ <details xmi:id="_M0WWlt00Ed6P1qtlpBOZyg" key="Comment" value=""/>
+ <details xmi:id="_M0WWl900Ed6P1qtlpBOZyg" key="Copyright" value=""/>
+ <details xmi:id="_M0WWmN00Ed6P1qtlpBOZyg" key="Date" value="2009-11-29"/>
+ <details xmi:id="_M0WWmd00Ed6P1qtlpBOZyg" key="Author" value="dumoulin"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_M0NMod00Ed6P1qtlpBOZyg" name="JavaQualifiers">
+ <eAnnotations xmi:id="_M0NMot00Ed6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_M0NMo900Ed6P1qtlpBOZyg" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_M0NMpd00Ed6P1qtlpBOZyg" name="base_Property" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_M0NMp900Ed6P1qtlpBOZyg" name="isStatic" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_M0NMqd00Ed6P1qtlpBOZyg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_M0NMq900Ed6P1qtlpBOZyg" name="JavaClass">
+ <eAnnotations xmi:id="_M0NMrN00Ed6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_M0NMrd00Ed6P1qtlpBOZyg" name="name" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_M0NMr900Ed6P1qtlpBOZyg" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_M0NMsd00Ed6P1qtlpBOZyg" name="JavaPackage">
+ <eAnnotations xmi:id="_M0NMst00Ed6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_M0NMs900Ed6P1qtlpBOZyg" name="packageName" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_M0NMtd00Ed6P1qtlpBOZyg" name="base_Package" ordered="false" unique="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ </eAnnotations>
+ <elementImport xmi:id="_ayF5QN0zEd6P1qtlpBOZyg" alias="Class">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </elementImport>
+ <elementImport xmi:id="_a2aYkN0zEd6P1qtlpBOZyg" alias="Property">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ </elementImport>
+ <elementImport xmi:id="_a4NIUN0zEd6P1qtlpBOZyg" alias="Classifier">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>
+ </elementImport>
+ <elementImport xmi:id="_a5PqIN0zEd6P1qtlpBOZyg" alias="Operation">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
+ </elementImport>
+ <elementImport xmi:id="_a6b88N0zEd6P1qtlpBOZyg" alias="Interface">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Interface"/>
+ </elementImport>
+ <elementImport xmi:id="_a77KsN0zEd6P1qtlpBOZyg" alias="Enumeration">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Enumeration"/>
+ </elementImport>
+ <elementImport xmi:id="_a80ikN0zEd6P1qtlpBOZyg" alias="Association">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Association"/>
+ </elementImport>
+ <elementImport xmi:id="_Bdek8N00Ed6P1qtlpBOZyg" alias="Package">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+ </elementImport>
+ <elementImport xmi:id="_CiHUUN2NEd6P1qtlpBOZyg" alias="Parameter">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Parameter"/>
+ </elementImport>
+ <elementImport xmi:id="_4wmIMN2SEd6P1qtlpBOZyg" alias="PrimitiveType">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#PrimitiveType"/>
+ </elementImport>
+ <packageImport xmi:id="_6TYLMd0yEd6P1qtlpBOZyg">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_zW6S4N0zEd6P1qtlpBOZyg" name="JavaClass">
+ <generalization xmi:id="_q6PrIN2MEd6P1qtlpBOZyg" general="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <generalization xmi:id="_zstlYGXkEeCx-IU0sjGPKA" general="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <ownedAttribute xmi:id="_1YjagN0zEd6P1qtlpBOZyg" name="name" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3Cyuwd0zEd6P1qtlpBOZyg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3CyuwN0zEd6P1qtlpBOZyg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_3C8fwN0zEd6P1qtlpBOZyg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_4C3rsd0zEd6P1qtlpBOZyg" name="base_Classifier" isUnique="false" association="_3_5QMN0zEd6P1qtlpBOZyg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_GlqewN2MEd6P1qtlpBOZyg" name="isFinal" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Glqewd2MEd6P1qtlpBOZyg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Glqewt2MEd6P1qtlpBOZyg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_Glqew92MEd6P1qtlpBOZyg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_GlqexN2MEd6P1qtlpBOZyg" name="isAbstract" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Glqexd2MEd6P1qtlpBOZyg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Glqext2MEd6P1qtlpBOZyg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_Glqex92MEd6P1qtlpBOZyg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_O_wT8GnDEeCLCLVVSfvYsw" name="isStatic" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_O_wT8WnDEeCLCLVVSfvYsw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_O_wT8mnDEeCLCLVVSfvYsw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_O_wT82nDEeCLCLVVSfvYsw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_YAcWgIADEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_YAcWgYADEeGqdId9TXdXhQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_YAcWgoADEeGqdId9TXdXhQ"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_YAcWg4ADEeGqdId9TXdXhQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_uZElYIADEeGqdId9TXdXhQ" name="explicitRequiredImports" association="_uZHBoIADEeGqdId9TXdXhQ">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_uZElYYADEeGqdId9TXdXhQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_uZElYoADEeGqdId9TXdXhQ"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_3_5QMN0zEd6P1qtlpBOZyg" name="Extension_NamedElement" memberEnd="_4C3rsN0zEd6P1qtlpBOZyg _4C3rsd0zEd6P1qtlpBOZyg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_4C3rsN0zEd6P1qtlpBOZyg" name="extension_NamedElement" type="_zW6S4N0zEd6P1qtlpBOZyg" aggregation="composite" association="_3_5QMN0zEd6P1qtlpBOZyg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_DPxB8N00Ed6P1qtlpBOZyg" name="JavaPackage_">
+ <generalization xmi:id="_t2JbkN2MEd6P1qtlpBOZyg" general="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <ownedAttribute xmi:id="_Hb_KwN00Ed6P1qtlpBOZyg" name="packageName" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JL5CIN00Ed6P1qtlpBOZyg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JLv4MN00Ed6P1qtlpBOZyg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_JMCzIN00Ed6P1qtlpBOZyg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_KOMzsN00Ed6P1qtlpBOZyg" name="base_Package" isUnique="false" association="_KM3W8N00Ed6P1qtlpBOZyg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_KM3W8N00Ed6P1qtlpBOZyg" name="E_JavaPackage__Package0" memberEnd="_KODpwN00Ed6P1qtlpBOZyg _KOMzsN00Ed6P1qtlpBOZyg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_KODpwN00Ed6P1qtlpBOZyg" name="extension_JavaPackage_" type="_DPxB8N00Ed6P1qtlpBOZyg" aggregation="composite" association="_KM3W8N00Ed6P1qtlpBOZyg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_TWN1kN2LEd6P1qtlpBOZyg" name="JavaMethod">
+ <generalization xmi:id="_tWjVgN2MEd6P1qtlpBOZyg" general="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <ownedAttribute xmi:id="_XaPEoN2LEd6P1qtlpBOZyg" name="isStatic" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XaPEod2LEd6P1qtlpBOZyg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XaPEot2LEd6P1qtlpBOZyg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_XaPEo92LEd6P1qtlpBOZyg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_XbSNgN2LEd6P1qtlpBOZyg" name="isFinal" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XbSNgd2LEd6P1qtlpBOZyg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XbSNgt2LEd6P1qtlpBOZyg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_XbSNg92LEd6P1qtlpBOZyg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_c7P2IN2LEd6P1qtlpBOZyg" name="isAbstract" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_c7P2Id2LEd6P1qtlpBOZyg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_c7P2It2LEd6P1qtlpBOZyg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_c7P2I92LEd6P1qtlpBOZyg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_c7P2JN2LEd6P1qtlpBOZyg" name="isNative" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_c7P2Jd2LEd6P1qtlpBOZyg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_c7P2Jt2LEd6P1qtlpBOZyg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_c7P2J92LEd6P1qtlpBOZyg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_d-mJgN2LEd6P1qtlpBOZyg" name="isSynchronized" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_d-mJgd2LEd6P1qtlpBOZyg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_d-mJgt2LEd6P1qtlpBOZyg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_d-mJg92LEd6P1qtlpBOZyg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_d-mJhN2LEd6P1qtlpBOZyg" name="isConstructor" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_d-mJhd2LEd6P1qtlpBOZyg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_d-mJht2LEd6P1qtlpBOZyg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_d-mJh92LEd6P1qtlpBOZyg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_9mgV8N2MEd6P1qtlpBOZyg" name="base_Operation" isUnique="false" association="_9iVnoN2MEd6P1qtlpBOZyg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_RTklIIAfEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_RTklIYAfEeGqdId9TXdXhQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_RTklIoAfEeGqdId9TXdXhQ"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_RTklI4AfEeGqdId9TXdXhQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_XjBzIIDyEeGqdId9TXdXhQ" name="explicitRequiredImports" association="_XjHSsIDyEeGqdId9TXdXhQ">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XjBzIYDyEeGqdId9TXdXhQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XjBzIoDyEeGqdId9TXdXhQ"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_03FkMN2LEd6P1qtlpBOZyg" name="JavaParameter">
+ <generalization xmi:id="_rvlXsN2MEd6P1qtlpBOZyg" general="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <ownedAttribute xmi:id="_3dFWEN2LEd6P1qtlpBOZyg" name="isFinal" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3dFWEd2LEd6P1qtlpBOZyg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3dFWEt2LEd6P1qtlpBOZyg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_3dFWE92LEd6P1qtlpBOZyg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_GPC5Ed2NEd6P1qtlpBOZyg" name="base_Parameter" isUnique="false" association="_GLUPoN2NEd6P1qtlpBOZyg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Parameter"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_8_lVUN2LEd6P1qtlpBOZyg" name="JavaProperty">
+ <generalization xmi:id="_snKf8N2MEd6P1qtlpBOZyg" general="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <ownedAttribute xmi:id="_BHVN0N2MEd6P1qtlpBOZyg" name="isAbstract" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BHVN0d2MEd6P1qtlpBOZyg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BHVN0t2MEd6P1qtlpBOZyg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_BHVN092MEd6P1qtlpBOZyg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_BHVN1N2MEd6P1qtlpBOZyg" name="isFinal" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BHVN1d2MEd6P1qtlpBOZyg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BHVN1t2MEd6P1qtlpBOZyg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_BHVN192MEd6P1qtlpBOZyg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_-5XE8d2MEd6P1qtlpBOZyg" name="base_Property" isUnique="false" association="_-3uGMN2MEd6P1qtlpBOZyg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ru_vkN2REd6P1qtlpBOZyg" name="isTransient" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tmD-4d2REd6P1qtlpBOZyg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tmD-4N2REd6P1qtlpBOZyg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_tmNI0N2REd6P1qtlpBOZyg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_Gf5psIXFEeCQsIB6sI2lFg" name="generateGetter" visibility="public" type="_xwb7kIXFEeCQsIB6sI2lFg">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_H_HZsIXFEeCQsIB6sI2lFg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_H--PwIXFEeCQsIB6sI2lFg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_lvp_YIXHEeCQsIB6sI2lFg" value="default"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_IoLk0IXFEeCQsIB6sI2lFg" name="generateSetter" visibility="public" type="_xwb7kIXFEeCQsIB6sI2lFg">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LPQUwIXFEeCQsIB6sI2lFg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LPGjwIXFEeCQsIB6sI2lFg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_LPjPsIXFEeCQsIB6sI2lFg" value="default"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_DCg1cIXIEeCQsIB6sI2lFg" name="isStatic" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FQ4xgYXIEeCQsIB6sI2lFg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FQ4xgIXIEeCQsIB6sI2lFg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_FQ4xgoXIEeCQsIB6sI2lFg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_BGcqgIAEEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BGcqgYAEEeGqdId9TXdXhQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BGcqgoAEEeGqdId9TXdXhQ"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_BGcqg4AEEeGqdId9TXdXhQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_bvi24IDyEeGqdId9TXdXhQ" name="explicitRequiredImports" association="_bvnIUIDyEeGqdId9TXdXhQ">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_bvi24YDyEeGqdId9TXdXhQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bvi24oDyEeGqdId9TXdXhQ"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_eGOmEN2MEd6P1qtlpBOZyg" name="JavaNamedElement" isAbstract="true">
+ <ownedAttribute xmi:id="_gi_jcN2MEd6P1qtlpBOZyg" name="name" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iiPeYN2MEd6P1qtlpBOZyg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iiGUcN2MEd6P1qtlpBOZyg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_iiPeYd2MEd6P1qtlpBOZyg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_iuBQkN2MEd6P1qtlpBOZyg" name="author" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j8ZvQd2MEd6P1qtlpBOZyg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j8ZvQN2MEd6P1qtlpBOZyg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_j8i5MN2MEd6P1qtlpBOZyg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_k58VkN2MEd6P1qtlpBOZyg" name="version" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mDQHAN2MEd6P1qtlpBOZyg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mDG9EN2MEd6P1qtlpBOZyg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_mDQHAd2MEd6P1qtlpBOZyg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_rOwKEPiVEd-PA5X9eH0eag" name="comment" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ylyCAfiVEd-PA5X9eH0eag" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ylyCAPiVEd-PA5X9eH0eag" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_yl7L8PiVEd-PA5X9eH0eag">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__JixsPfeEd-Ui7vEO4yc0g" name="isGenerated" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BsQmEPffEd-Ui7vEO4yc0g" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BsHcIPffEd-Ui7vEO4yc0g" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_BsQmEfffEd-Ui7vEO4yc0g" value="true"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_9iVnoN2MEd6P1qtlpBOZyg" name="Extension_JavaMethod" memberEnd="_9mWk8N2MEd6P1qtlpBOZyg _9mgV8N2MEd6P1qtlpBOZyg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_9mWk8N2MEd6P1qtlpBOZyg" name="extension_JavaMethod" type="_TWN1kN2LEd6P1qtlpBOZyg" aggregation="composite" association="_9iVnoN2MEd6P1qtlpBOZyg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_-3uGMN2MEd6P1qtlpBOZyg" name="Extension_JavaProperty" memberEnd="_-5XE8N2MEd6P1qtlpBOZyg _-5XE8d2MEd6P1qtlpBOZyg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_-5XE8N2MEd6P1qtlpBOZyg" name="extension_JavaProperty" type="_8_lVUN2LEd6P1qtlpBOZyg" aggregation="composite" association="_-3uGMN2MEd6P1qtlpBOZyg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_GLUPoN2NEd6P1qtlpBOZyg" name="Extension_JavaParameter" memberEnd="_GPC5EN2NEd6P1qtlpBOZyg _GPC5Ed2NEd6P1qtlpBOZyg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_GPC5EN2NEd6P1qtlpBOZyg" name="extension_JavaParameter" type="_03FkMN2LEd6P1qtlpBOZyg" aggregation="composite" association="_GLUPoN2NEd6P1qtlpBOZyg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_q2aFQN2SEd6P1qtlpBOZyg" name="PrimitiveType">
+ <generalization xmi:id="_05iXEN2SEd6P1qtlpBOZyg" general="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <ownedAttribute xmi:id="_tw0n8N2SEd6P1qtlpBOZyg" name="implementationClass" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_vfr9gd2SEd6P1qtlpBOZyg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_vfr9gN2SEd6P1qtlpBOZyg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_vf1HcN2SEd6P1qtlpBOZyg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_9Dh9Ad2SEd6P1qtlpBOZyg" name="base_PrimitiveType" isUnique="false" association="_8_DssN2SEd6P1qtlpBOZyg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#PrimitiveType"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__K6mcHpnEeG6sMpxGcut-Q" name="collectionImplementationClass" visibility="public" isUnique="false">
+ <ownedComment xmi:id="_RBWcgHpoEeG6sMpxGcut-Q">
+ <body>The implementation class to use when this primitive type is encountered with a cardinality greater than 1.</body>
+ </ownedComment>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__K7NgHpnEeG6sMpxGcut-Q" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__K7NgXpnEeG6sMpxGcut-Q" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="__K7NgnpnEeG6sMpxGcut-Q">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_8_DssN2SEd6P1qtlpBOZyg" name="Extension_PrimitiveType" memberEnd="_9Dh9AN2SEd6P1qtlpBOZyg _9Dh9Ad2SEd6P1qtlpBOZyg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_9Dh9AN2SEd6P1qtlpBOZyg" name="extension_PrimitiveType" type="_q2aFQN2SEd6P1qtlpBOZyg" aggregation="composite" association="_8_DssN2SEd6P1qtlpBOZyg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_t-QqQGXjEeCHc7Sujzc1_A" name="JavaProject">
+ <generalization xmi:id="_0Rz2gGXkEeCx-IU0sjGPKA" general="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <ownedAttribute xmi:id="_g2wMAGXkEeCx-IU0sjGPKA" name="base_Package" association="_g2wMAWXkEeCx-IU0sjGPKA">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_10lGQGXjEeCHc7Sujzc1_A" name="JavaSrcFolder">
+ <generalization xmi:id="_0yceYGXkEeCx-IU0sjGPKA" general="_4QcEsGXjEeCHc7Sujzc1_A"/>
+ <ownedAttribute xmi:id="_haqxYGXkEeCx-IU0sjGPKA" name="base_Package" association="_haqxYWXkEeCx-IU0sjGPKA">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_4QcEsGXjEeCHc7Sujzc1_A" name="JavaGen" isAbstract="true">
+ <generalization xmi:id="_je1okGXkEeCx-IU0sjGPKA" general="_eGOmEN2MEd6P1qtlpBOZyg"/>
+ <ownedAttribute xmi:id="_7jn3QGXkEeCx-IU0sjGPKA" name="srcName" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-adhgGXkEeCx-IU0sjGPKA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-aTwgGXkEeCx-IU0sjGPKA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_-amrcGXkEeCx-IU0sjGPKA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_--Xf0GXkEeCx-IU0sjGPKA" name="projectName" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_AdJK8WXlEeCx-IU0sjGPKA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_AdJK8GXlEeCx-IU0sjGPKA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_AdS78GXlEeCx-IU0sjGPKA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_g2wMAWXkEeCx-IU0sjGPKA" name="E_JavaProject_Package0" memberEnd="_g2wMAmXkEeCx-IU0sjGPKA _g2wMAGXkEeCx-IU0sjGPKA">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_g2wMAmXkEeCx-IU0sjGPKA" name="extension_JavaProject" type="_t-QqQGXjEeCHc7Sujzc1_A" aggregation="composite" association="_g2wMAWXkEeCx-IU0sjGPKA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_haqxYWXkEeCx-IU0sjGPKA" name="E_JavaSrcFolder_Package0" memberEnd="_haqxYmXkEeCx-IU0sjGPKA _haqxYGXkEeCx-IU0sjGPKA">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_haqxYmXkEeCx-IU0sjGPKA" name="extension_JavaSrcFolder" type="_10lGQGXjEeCHc7Sujzc1_A" aggregation="composite" association="_haqxYWXkEeCx-IU0sjGPKA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_xwb7kIXFEeCQsIB6sI2lFg" name="TrueFalseDefault">
+ <ownedLiteral xmi:id="_29GNsIXFEeCQsIB6sI2lFg" name="true"/>
+ <ownedLiteral xmi:id="_4HMCQIXFEeCQsIB6sI2lFg" name="false"/>
+ <ownedLiteral xmi:id="_46qGkIXFEeCQsIB6sI2lFg" name="default"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_uZHBoIADEeGqdId9TXdXhQ" name="explicitRequiredImports" memberEnd="_uZHBoYADEeGqdId9TXdXhQ _uZElYIADEeGqdId9TXdXhQ">
+ <ownedEnd xmi:id="_uZHBoYADEeGqdId9TXdXhQ" name="javaClass" type="_zW6S4N0zEd6P1qtlpBOZyg" association="_uZHBoIADEeGqdId9TXdXhQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_uZHBooADEeGqdId9TXdXhQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_uZHBo4ADEeGqdId9TXdXhQ" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_XjHSsIDyEeGqdId9TXdXhQ" name="javaMethod_classifier_0" memberEnd="_XjHSsYDyEeGqdId9TXdXhQ _XjBzIIDyEeGqdId9TXdXhQ">
+ <ownedEnd xmi:id="_XjHSsYDyEeGqdId9TXdXhQ" name="javaMethod" type="_TWN1kN2LEd6P1qtlpBOZyg" association="_XjHSsIDyEeGqdId9TXdXhQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XjHSsoDyEeGqdId9TXdXhQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XjHSs4DyEeGqdId9TXdXhQ" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_bvnIUIDyEeGqdId9TXdXhQ" name="javaProperty_classifier_0" memberEnd="_bvnIUYDyEeGqdId9TXdXhQ _bvi24IDyEeGqdId9TXdXhQ">
+ <ownedEnd xmi:id="_bvnIUYDyEeGqdId9TXdXhQ" name="javaProperty" type="_8_lVUN2LEd6P1qtlpBOZyg" association="_bvnIUIDyEeGqdId9TXdXhQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_bvnIUoDyEeGqdId9TXdXhQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bvnIU4DyEeGqdId9TXdXhQ" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <profileApplication xmi:id="_EtJ8EL4gEeCEtsFsoh9ueQ">
+ <eAnnotations xmi:id="_EuUZsL4gEeCEtsFsoh9ueQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Ecore.profile.uml#_0"/>
+ </profileApplication>
+ </uml:Profile>
+ <Ecore:EPackage xmi:id="_NgjEUL4gEeCEtsFsoh9ueQ" base_Package="_6TYLMN0yEd6P1qtlpBOZyg" nsPrefix="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" basePackage="org.eclipse.java.profile"/>
+</xmi:XMI>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/plugin.properties b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/plugin.properties
new file mode 100644
index 00000000000..bc49c812cb7
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/plugin.properties
@@ -0,0 +1,16 @@
+
+#################################################################################
+# Copyright (c) 2011-2013 Cedric Dumoulin.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Cedric Dumoulin Cedric.dumoulin@lifl.fr - Initial API
+#
+#################################################################################
+
+pluginName = Profile for Java classes generation (Incubation)
+providerName = Eclipse Modeling Project
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/plugin.xml b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/plugin.xml
new file mode 100644
index 00000000000..9ebf9f7c10b
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/plugin.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ <copyright>
+ </copyright>
+
+ $Id$
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri="http://www.eclipse.org/papyrus/JAVA/1"
+ class="org.eclipse.papyrus.java.profile.java.JavaPackage"
+ genModel="models/java.profile.genmodel"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.extension_parser">
+ <parser
+ type="java"
+ class="org.eclipse.papyrus.java.profile.java.util.JavaResourceFactoryImpl"/>
+ </extension>
+ <extension
+ point="org.eclipse.emf.ecore.uri_mapping">
+ <mapping
+ source="pathmap://Papyrus_JAVA_PROFILES/"
+ target="platform:/plugin/org.eclipse.papyrus.java.profile/models/">
+ </mapping>
+ </extension>
+ <extension
+ point="org.eclipse.uml2.uml.generated_package">
+ <profile
+ location="pathmap://Papyrus_JAVA_PROFILES/java.profile.uml#_6TYLMN0yEd6P1qtlpBOZyg"
+ uri="http://www.eclipse.org/papyrus/JAVA/1">
+ </profile>
+ </extension>
+ <extension
+ point="org.eclipse.papyrus.uml.extensionpoints.UMLProfile">
+ <profile
+ description="Java profile for code generation and reverse (v1.0)"
+ iconpath="icons/javaprofile.gif"
+ name="Java"
+ path="pathmap://Papyrus_JAVA_PROFILES/java.profile.uml"
+ provider="Cedric Dumoulin">
+ </profile>
+ </extension>
+
+</plugin>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/pom.xml b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/pom.xml
new file mode 100644
index 00000000000..4a12fdfdbb7
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.java.profile</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaClass.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaClass.java
new file mode 100644
index 00000000000..86b0fc45fd6
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaClass.java
@@ -0,0 +1,209 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.uml2.uml.Classifier;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Class</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaClass#getBase_Classifier <em>Base Classifier</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaClass#isFinal <em>Is Final</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaClass#isAbstract <em>Is Abstract</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaClass#isStatic <em>Is Static</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaClass#getExplicitPlainTextRequiredImports <em>Explicit Plain Text Required Imports</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaClass#getExplicitRequiredImports <em>Explicit Required Imports</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaClass()
+ * @model
+ * @generated
+ */
+public interface JavaClass extends JavaGen {
+ /**
+ * Returns the value of the '<em><b>Base Classifier</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Classifier</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Base Classifier</em>' reference.
+ * @see #setBase_Classifier(Classifier)
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaClass_Base_Classifier()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Classifier getBase_Classifier();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.profile.java.JavaClass#getBase_Classifier <em>Base Classifier</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Base Classifier</em>' reference.
+ * @see #getBase_Classifier()
+ * @generated
+ */
+ void setBase_Classifier(Classifier value);
+
+ /**
+ * Returns the value of the '<em><b>Is Final</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Is Final</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Is Final</em>' attribute.
+ * @see #setIsFinal(boolean)
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaClass_IsFinal()
+ * @model unique="false" required="true" ordered="false"
+ * @generated
+ */
+ boolean isFinal();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.profile.java.JavaClass#isFinal <em>Is Final</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Is Final</em>' attribute.
+ * @see #isFinal()
+ * @generated
+ */
+ void setIsFinal(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Is Abstract</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Is Abstract</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Is Abstract</em>' attribute.
+ * @see #setIsAbstract(boolean)
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaClass_IsAbstract()
+ * @model unique="false" required="true" ordered="false"
+ * @generated
+ */
+ boolean isAbstract();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.profile.java.JavaClass#isAbstract <em>Is Abstract</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Is Abstract</em>' attribute.
+ * @see #isAbstract()
+ * @generated
+ */
+ void setIsAbstract(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Is Static</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Is Static</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Is Static</em>' attribute.
+ * @see #setIsStatic(boolean)
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaClass_IsStatic()
+ * @model unique="false" required="true" ordered="false"
+ * @generated
+ */
+ boolean isStatic();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.profile.java.JavaClass#isStatic <em>Is Static</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Is Static</em>' attribute.
+ * @see #isStatic()
+ * @generated
+ */
+ void setIsStatic(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Explicit Plain Text Required Imports</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Explicit Plain Text Required Imports</em>' attribute list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Explicit Plain Text Required Imports</em>' attribute list.
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaClass_ExplicitPlainTextRequiredImports()
+ * @model unique="false" ordered="false"
+ * @generated
+ */
+ EList<String> getExplicitPlainTextRequiredImports();
+
+ /**
+ * Returns the value of the '<em><b>Explicit Required Imports</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.uml2.uml.Classifier}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Explicit Required Imports</em>' reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Explicit Required Imports</em>' reference list.
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaClass_ExplicitRequiredImports()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<Classifier> getExplicitRequiredImports();
+
+ /**
+ * Retrieves the first {@link org.eclipse.uml2.uml.Classifier} with the specified '<em><b>Name</b></em>' from the '<em><b>Explicit Required Imports</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param name
+ * The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Classifier} to retrieve, or <code>null</code>.
+ * @return The first {@link org.eclipse.uml2.uml.Classifier} with the specified '<em><b>Name</b></em>', or <code>null</code>.
+ * @see #getExplicitRequiredImports()
+ * @generated
+ */
+ Classifier getExplicitRequiredImports(String name);
+
+ /**
+ * Retrieves the first {@link org.eclipse.uml2.uml.Classifier} with the specified '<em><b>Name</b></em>' from the '<em><b>Explicit Required Imports</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param name
+ * The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Classifier} to retrieve, or <code>null</code>.
+ * @param ignoreCase
+ * Whether to ignore case in {@link java.lang.String} comparisons.
+ * @param eClass
+ * The Ecore class of the {@link org.eclipse.uml2.uml.Classifier} to retrieve, or <code>null</code>.
+ * @return The first {@link org.eclipse.uml2.uml.Classifier} with the specified '<em><b>Name</b></em>', or <code>null</code>.
+ * @see #getExplicitRequiredImports()
+ * @generated
+ */
+ Classifier getExplicitRequiredImports(String name, boolean ignoreCase, EClass eClass);
+
+} // JavaClass
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaFactory.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaFactory.java
new file mode 100644
index 00000000000..6adbd7ca301
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaFactory.java
@@ -0,0 +1,120 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage
+ * @generated
+ */
+public interface JavaFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ JavaFactory eINSTANCE = org.eclipse.papyrus.java.profile.java.impl.JavaFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Class</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Class</em>'.
+ * @generated
+ */
+ JavaClass createJavaClass();
+
+ /**
+ * Returns a new object of class '<em>Package </em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Package </em>'.
+ * @generated
+ */
+ JavaPackage_ createJavaPackage_();
+
+ /**
+ * Returns a new object of class '<em>Method</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Method</em>'.
+ * @generated
+ */
+ JavaMethod createJavaMethod();
+
+ /**
+ * Returns a new object of class '<em>Parameter</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Parameter</em>'.
+ * @generated
+ */
+ JavaParameter createJavaParameter();
+
+ /**
+ * Returns a new object of class '<em>Property</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Property</em>'.
+ * @generated
+ */
+ JavaProperty createJavaProperty();
+
+ /**
+ * Returns a new object of class '<em>Primitive Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Primitive Type</em>'.
+ * @generated
+ */
+ PrimitiveType createPrimitiveType();
+
+ /**
+ * Returns a new object of class '<em>Project</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Project</em>'.
+ * @generated
+ */
+ JavaProject createJavaProject();
+
+ /**
+ * Returns a new object of class '<em>Src Folder</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Src Folder</em>'.
+ * @generated
+ */
+ JavaSrcFolder createJavaSrcFolder();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the package supported by this factory.
+ * @generated
+ */
+ JavaPackage getJavaPackage();
+
+} // JavaFactory
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaGen.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaGen.java
new file mode 100644
index 00000000000..a4342630684
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaGen.java
@@ -0,0 +1,84 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Gen</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaGen#getSrcName <em>Src Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaGen#getProjectName <em>Project Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaGen()
+ * @model abstract="true"
+ * @generated
+ */
+public interface JavaGen extends JavaNamedElement {
+ /**
+ * Returns the value of the '<em><b>Src Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Src Name</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Src Name</em>' attribute.
+ * @see #setSrcName(String)
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaGen_SrcName()
+ * @model unique="false" required="true" ordered="false"
+ * @generated
+ */
+ String getSrcName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.profile.java.JavaGen#getSrcName <em>Src Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Src Name</em>' attribute.
+ * @see #getSrcName()
+ * @generated
+ */
+ void setSrcName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Project Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Project Name</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Project Name</em>' attribute.
+ * @see #setProjectName(String)
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaGen_ProjectName()
+ * @model unique="false" required="true" ordered="false"
+ * @generated
+ */
+ String getProjectName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.profile.java.JavaGen#getProjectName <em>Project Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Project Name</em>' attribute.
+ * @see #getProjectName()
+ * @generated
+ */
+ void setProjectName(String value);
+
+} // JavaGen
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaMethod.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaMethod.java
new file mode 100644
index 00000000000..b0230672d39
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaMethod.java
@@ -0,0 +1,297 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Operation;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Method</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaMethod#isStatic <em>Is Static</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaMethod#isFinal <em>Is Final</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaMethod#isAbstract <em>Is Abstract</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaMethod#isNative <em>Is Native</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaMethod#isSynchronized <em>Is Synchronized</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaMethod#isConstructor <em>Is Constructor</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaMethod#getBase_Operation <em>Base Operation</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaMethod#getExplicitPlainTextRequiredImports <em>Explicit Plain Text Required Imports</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaMethod#getExplicitRequiredImports <em>Explicit Required Imports</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaMethod()
+ * @model
+ * @generated
+ */
+public interface JavaMethod extends JavaNamedElement {
+ /**
+ * Returns the value of the '<em><b>Is Static</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Is Static</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Is Static</em>' attribute.
+ * @see #setIsStatic(boolean)
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaMethod_IsStatic()
+ * @model unique="false" required="true" ordered="false"
+ * @generated
+ */
+ boolean isStatic();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.profile.java.JavaMethod#isStatic <em>Is Static</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Is Static</em>' attribute.
+ * @see #isStatic()
+ * @generated
+ */
+ void setIsStatic(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Is Final</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Is Final</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Is Final</em>' attribute.
+ * @see #setIsFinal(boolean)
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaMethod_IsFinal()
+ * @model unique="false" required="true" ordered="false"
+ * @generated
+ */
+ boolean isFinal();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.profile.java.JavaMethod#isFinal <em>Is Final</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Is Final</em>' attribute.
+ * @see #isFinal()
+ * @generated
+ */
+ void setIsFinal(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Is Abstract</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Is Abstract</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Is Abstract</em>' attribute.
+ * @see #setIsAbstract(boolean)
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaMethod_IsAbstract()
+ * @model unique="false" required="true" ordered="false"
+ * @generated
+ */
+ boolean isAbstract();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.profile.java.JavaMethod#isAbstract <em>Is Abstract</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Is Abstract</em>' attribute.
+ * @see #isAbstract()
+ * @generated
+ */
+ void setIsAbstract(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Is Native</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Is Native</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Is Native</em>' attribute.
+ * @see #setIsNative(boolean)
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaMethod_IsNative()
+ * @model unique="false" required="true" ordered="false"
+ * @generated
+ */
+ boolean isNative();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.profile.java.JavaMethod#isNative <em>Is Native</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Is Native</em>' attribute.
+ * @see #isNative()
+ * @generated
+ */
+ void setIsNative(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Is Synchronized</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Is Synchronized</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Is Synchronized</em>' attribute.
+ * @see #setIsSynchronized(boolean)
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaMethod_IsSynchronized()
+ * @model unique="false" required="true" ordered="false"
+ * @generated
+ */
+ boolean isSynchronized();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.profile.java.JavaMethod#isSynchronized <em>Is Synchronized</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Is Synchronized</em>' attribute.
+ * @see #isSynchronized()
+ * @generated
+ */
+ void setIsSynchronized(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Is Constructor</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Is Constructor</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Is Constructor</em>' attribute.
+ * @see #setIsConstructor(boolean)
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaMethod_IsConstructor()
+ * @model unique="false" required="true" ordered="false"
+ * @generated
+ */
+ boolean isConstructor();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.profile.java.JavaMethod#isConstructor <em>Is Constructor</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Is Constructor</em>' attribute.
+ * @see #isConstructor()
+ * @generated
+ */
+ void setIsConstructor(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Base Operation</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Operation</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Base Operation</em>' reference.
+ * @see #setBase_Operation(Operation)
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaMethod_Base_Operation()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Operation getBase_Operation();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.profile.java.JavaMethod#getBase_Operation <em>Base Operation</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Base Operation</em>' reference.
+ * @see #getBase_Operation()
+ * @generated
+ */
+ void setBase_Operation(Operation value);
+
+ /**
+ * Returns the value of the '<em><b>Explicit Plain Text Required Imports</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Explicit Plain Text Required Imports</em>' attribute list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Explicit Plain Text Required Imports</em>' attribute list.
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaMethod_ExplicitPlainTextRequiredImports()
+ * @model unique="false" ordered="false"
+ * @generated
+ */
+ EList<String> getExplicitPlainTextRequiredImports();
+
+ /**
+ * Returns the value of the '<em><b>Explicit Required Imports</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.uml2.uml.Classifier}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Explicit Required Imports</em>' reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Explicit Required Imports</em>' reference list.
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaMethod_ExplicitRequiredImports()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<Classifier> getExplicitRequiredImports();
+
+ /**
+ * Retrieves the first {@link org.eclipse.uml2.uml.Classifier} with the specified '<em><b>Name</b></em>' from the '<em><b>Explicit Required Imports</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param name
+ * The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Classifier} to retrieve, or <code>null</code>.
+ * @return The first {@link org.eclipse.uml2.uml.Classifier} with the specified '<em><b>Name</b></em>', or <code>null</code>.
+ * @see #getExplicitRequiredImports()
+ * @generated
+ */
+ Classifier getExplicitRequiredImports(String name);
+
+ /**
+ * Retrieves the first {@link org.eclipse.uml2.uml.Classifier} with the specified '<em><b>Name</b></em>' from the '<em><b>Explicit Required Imports</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param name
+ * The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Classifier} to retrieve, or <code>null</code>.
+ * @param ignoreCase
+ * Whether to ignore case in {@link java.lang.String} comparisons.
+ * @param eClass
+ * The Ecore class of the {@link org.eclipse.uml2.uml.Classifier} to retrieve, or <code>null</code>.
+ * @return The first {@link org.eclipse.uml2.uml.Classifier} with the specified '<em><b>Name</b></em>', or <code>null</code>.
+ * @see #getExplicitRequiredImports()
+ * @generated
+ */
+ Classifier getExplicitRequiredImports(String name, boolean ignoreCase, EClass eClass);
+
+} // JavaMethod
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaNamedElement.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaNamedElement.java
new file mode 100644
index 00000000000..0ae050419d3
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaNamedElement.java
@@ -0,0 +1,173 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Named Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaNamedElement#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaNamedElement#getAuthor <em>Author</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaNamedElement#getVersion <em>Version</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaNamedElement#getComment <em>Comment</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaNamedElement#isGenerated <em>Is Generated</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaNamedElement()
+ * @model abstract="true"
+ * @generated
+ */
+public interface JavaNamedElement extends EObject {
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaNamedElement_Name()
+ * @model unique="false" required="true" ordered="false"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.profile.java.JavaNamedElement#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Author</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Author</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Author</em>' attribute.
+ * @see #setAuthor(String)
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaNamedElement_Author()
+ * @model unique="false" required="true" ordered="false"
+ * @generated
+ */
+ String getAuthor();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.profile.java.JavaNamedElement#getAuthor <em>Author</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Author</em>' attribute.
+ * @see #getAuthor()
+ * @generated
+ */
+ void setAuthor(String value);
+
+ /**
+ * Returns the value of the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Version</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Version</em>' attribute.
+ * @see #setVersion(String)
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaNamedElement_Version()
+ * @model unique="false" required="true" ordered="false"
+ * @generated
+ */
+ String getVersion();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.profile.java.JavaNamedElement#getVersion <em>Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Version</em>' attribute.
+ * @see #getVersion()
+ * @generated
+ */
+ void setVersion(String value);
+
+ /**
+ * Returns the value of the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Comment</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Comment</em>' attribute.
+ * @see #setComment(String)
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaNamedElement_Comment()
+ * @model unique="false" required="true" ordered="false"
+ * @generated
+ */
+ String getComment();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.profile.java.JavaNamedElement#getComment <em>Comment</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Comment</em>' attribute.
+ * @see #getComment()
+ * @generated
+ */
+ void setComment(String value);
+
+ /**
+ * Returns the value of the '<em><b>Is Generated</b></em>' attribute.
+ * The default value is <code>"true"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Is Generated</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Is Generated</em>' attribute.
+ * @see #setIsGenerated(boolean)
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaNamedElement_IsGenerated()
+ * @model default="true" unique="false" required="true" ordered="false"
+ * @generated
+ */
+ boolean isGenerated();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.profile.java.JavaNamedElement#isGenerated <em>Is Generated</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Is Generated</em>' attribute.
+ * @see #isGenerated()
+ * @generated
+ */
+ void setIsGenerated(boolean value);
+
+} // JavaNamedElement
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaPackage.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaPackage.java
new file mode 100644
index 00000000000..32e0cda8c6a
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaPackage.java
@@ -0,0 +1,2348 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.profile.java.JavaFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface JavaPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ String eNAME = "java";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/papyrus/JAVA/1";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ String eNS_PREFIX = "java";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ JavaPackage eINSTANCE = org.eclipse.papyrus.java.profile.java.impl.JavaPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.profile.java.impl.JavaNamedElementImpl <em>Named Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaNamedElementImpl
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaPackageImpl#getJavaNamedElement()
+ * @generated
+ */
+ int JAVA_NAMED_ELEMENT = 2;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_NAMED_ELEMENT__NAME = 0;
+
+ /**
+ * The feature id for the '<em><b>Author</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_NAMED_ELEMENT__AUTHOR = 1;
+
+ /**
+ * The feature id for the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_NAMED_ELEMENT__VERSION = 2;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_NAMED_ELEMENT__COMMENT = 3;
+
+ /**
+ * The feature id for the '<em><b>Is Generated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_NAMED_ELEMENT__IS_GENERATED = 4;
+
+ /**
+ * The number of structural features of the '<em>Named Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_NAMED_ELEMENT_FEATURE_COUNT = 5;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.profile.java.impl.JavaGenImpl <em>Gen</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaGenImpl
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaPackageImpl#getJavaGen()
+ * @generated
+ */
+ int JAVA_GEN = 1;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_GEN__NAME = JAVA_NAMED_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Author</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_GEN__AUTHOR = JAVA_NAMED_ELEMENT__AUTHOR;
+
+ /**
+ * The feature id for the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_GEN__VERSION = JAVA_NAMED_ELEMENT__VERSION;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_GEN__COMMENT = JAVA_NAMED_ELEMENT__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Is Generated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_GEN__IS_GENERATED = JAVA_NAMED_ELEMENT__IS_GENERATED;
+
+ /**
+ * The feature id for the '<em><b>Src Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_GEN__SRC_NAME = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Project Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_GEN__PROJECT_NAME = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Gen</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_GEN_FEATURE_COUNT = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.profile.java.impl.JavaClassImpl <em>Class</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaClassImpl
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaPackageImpl#getJavaClass()
+ * @generated
+ */
+ int JAVA_CLASS = 0;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_CLASS__NAME = JAVA_GEN__NAME;
+
+ /**
+ * The feature id for the '<em><b>Author</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_CLASS__AUTHOR = JAVA_GEN__AUTHOR;
+
+ /**
+ * The feature id for the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_CLASS__VERSION = JAVA_GEN__VERSION;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_CLASS__COMMENT = JAVA_GEN__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Is Generated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_CLASS__IS_GENERATED = JAVA_GEN__IS_GENERATED;
+
+ /**
+ * The feature id for the '<em><b>Src Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_CLASS__SRC_NAME = JAVA_GEN__SRC_NAME;
+
+ /**
+ * The feature id for the '<em><b>Project Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_CLASS__PROJECT_NAME = JAVA_GEN__PROJECT_NAME;
+
+ /**
+ * The feature id for the '<em><b>Base Classifier</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_CLASS__BASE_CLASSIFIER = JAVA_GEN_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Is Final</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_CLASS__IS_FINAL = JAVA_GEN_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Is Abstract</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_CLASS__IS_ABSTRACT = JAVA_GEN_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Is Static</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_CLASS__IS_STATIC = JAVA_GEN_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Explicit Plain Text Required Imports</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_CLASS__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS = JAVA_GEN_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Explicit Required Imports</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_CLASS__EXPLICIT_REQUIRED_IMPORTS = JAVA_GEN_FEATURE_COUNT + 5;
+
+ /**
+ * The number of structural features of the '<em>Class</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_CLASS_FEATURE_COUNT = JAVA_GEN_FEATURE_COUNT + 6;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.profile.java.impl.JavaPackage_Impl <em>Package </em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaPackage_Impl
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaPackageImpl#getJavaPackage_()
+ * @generated
+ */
+ int JAVA_PACKAGE_ = 3;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PACKAGE___NAME = JAVA_GEN__NAME;
+
+ /**
+ * The feature id for the '<em><b>Author</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PACKAGE___AUTHOR = JAVA_GEN__AUTHOR;
+
+ /**
+ * The feature id for the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PACKAGE___VERSION = JAVA_GEN__VERSION;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PACKAGE___COMMENT = JAVA_GEN__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Is Generated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PACKAGE___IS_GENERATED = JAVA_GEN__IS_GENERATED;
+
+ /**
+ * The feature id for the '<em><b>Src Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PACKAGE___SRC_NAME = JAVA_GEN__SRC_NAME;
+
+ /**
+ * The feature id for the '<em><b>Project Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PACKAGE___PROJECT_NAME = JAVA_GEN__PROJECT_NAME;
+
+ /**
+ * The feature id for the '<em><b>Package Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PACKAGE___PACKAGE_NAME = JAVA_GEN_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Base Package</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PACKAGE___BASE_PACKAGE = JAVA_GEN_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Package </em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PACKAGE__FEATURE_COUNT = JAVA_GEN_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.profile.java.impl.JavaMethodImpl <em>Method</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaMethodImpl
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaPackageImpl#getJavaMethod()
+ * @generated
+ */
+ int JAVA_METHOD = 4;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_METHOD__NAME = JAVA_NAMED_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Author</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_METHOD__AUTHOR = JAVA_NAMED_ELEMENT__AUTHOR;
+
+ /**
+ * The feature id for the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_METHOD__VERSION = JAVA_NAMED_ELEMENT__VERSION;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_METHOD__COMMENT = JAVA_NAMED_ELEMENT__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Is Generated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_METHOD__IS_GENERATED = JAVA_NAMED_ELEMENT__IS_GENERATED;
+
+ /**
+ * The feature id for the '<em><b>Is Static</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_METHOD__IS_STATIC = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Is Final</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_METHOD__IS_FINAL = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Is Abstract</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_METHOD__IS_ABSTRACT = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Is Native</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_METHOD__IS_NATIVE = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Is Synchronized</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_METHOD__IS_SYNCHRONIZED = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Is Constructor</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_METHOD__IS_CONSTRUCTOR = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Base Operation</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_METHOD__BASE_OPERATION = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Explicit Plain Text Required Imports</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_METHOD__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>Explicit Required Imports</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_METHOD__EXPLICIT_REQUIRED_IMPORTS = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 8;
+
+ /**
+ * The number of structural features of the '<em>Method</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_METHOD_FEATURE_COUNT = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 9;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.profile.java.impl.JavaParameterImpl <em>Parameter</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaParameterImpl
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaPackageImpl#getJavaParameter()
+ * @generated
+ */
+ int JAVA_PARAMETER = 5;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PARAMETER__NAME = JAVA_NAMED_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Author</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PARAMETER__AUTHOR = JAVA_NAMED_ELEMENT__AUTHOR;
+
+ /**
+ * The feature id for the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PARAMETER__VERSION = JAVA_NAMED_ELEMENT__VERSION;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PARAMETER__COMMENT = JAVA_NAMED_ELEMENT__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Is Generated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PARAMETER__IS_GENERATED = JAVA_NAMED_ELEMENT__IS_GENERATED;
+
+ /**
+ * The feature id for the '<em><b>Is Final</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PARAMETER__IS_FINAL = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Base Parameter</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PARAMETER__BASE_PARAMETER = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Parameter</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PARAMETER_FEATURE_COUNT = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.profile.java.impl.JavaPropertyImpl <em>Property</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaPropertyImpl
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaPackageImpl#getJavaProperty()
+ * @generated
+ */
+ int JAVA_PROPERTY = 6;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PROPERTY__NAME = JAVA_NAMED_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Author</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PROPERTY__AUTHOR = JAVA_NAMED_ELEMENT__AUTHOR;
+
+ /**
+ * The feature id for the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PROPERTY__VERSION = JAVA_NAMED_ELEMENT__VERSION;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PROPERTY__COMMENT = JAVA_NAMED_ELEMENT__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Is Generated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PROPERTY__IS_GENERATED = JAVA_NAMED_ELEMENT__IS_GENERATED;
+
+ /**
+ * The feature id for the '<em><b>Is Abstract</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PROPERTY__IS_ABSTRACT = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Is Final</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PROPERTY__IS_FINAL = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PROPERTY__BASE_PROPERTY = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Is Transient</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PROPERTY__IS_TRANSIENT = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Generate Getter</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PROPERTY__GENERATE_GETTER = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Generate Setter</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PROPERTY__GENERATE_SETTER = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Is Static</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PROPERTY__IS_STATIC = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Explicit Plain Text Required Imports</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PROPERTY__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>Explicit Required Imports</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PROPERTY__EXPLICIT_REQUIRED_IMPORTS = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 8;
+
+ /**
+ * The number of structural features of the '<em>Property</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PROPERTY_FEATURE_COUNT = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 9;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.profile.java.impl.PrimitiveTypeImpl <em>Primitive Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.profile.java.impl.PrimitiveTypeImpl
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaPackageImpl#getPrimitiveType()
+ * @generated
+ */
+ int PRIMITIVE_TYPE = 7;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int PRIMITIVE_TYPE__NAME = JAVA_GEN__NAME;
+
+ /**
+ * The feature id for the '<em><b>Author</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int PRIMITIVE_TYPE__AUTHOR = JAVA_GEN__AUTHOR;
+
+ /**
+ * The feature id for the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int PRIMITIVE_TYPE__VERSION = JAVA_GEN__VERSION;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int PRIMITIVE_TYPE__COMMENT = JAVA_GEN__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Is Generated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int PRIMITIVE_TYPE__IS_GENERATED = JAVA_GEN__IS_GENERATED;
+
+ /**
+ * The feature id for the '<em><b>Src Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int PRIMITIVE_TYPE__SRC_NAME = JAVA_GEN__SRC_NAME;
+
+ /**
+ * The feature id for the '<em><b>Project Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int PRIMITIVE_TYPE__PROJECT_NAME = JAVA_GEN__PROJECT_NAME;
+
+ /**
+ * The feature id for the '<em><b>Implementation Class</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int PRIMITIVE_TYPE__IMPLEMENTATION_CLASS = JAVA_GEN_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Base Primitive Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int PRIMITIVE_TYPE__BASE_PRIMITIVE_TYPE = JAVA_GEN_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Collection Implementation Class</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int PRIMITIVE_TYPE__COLLECTION_IMPLEMENTATION_CLASS = JAVA_GEN_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Primitive Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int PRIMITIVE_TYPE_FEATURE_COUNT = JAVA_GEN_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.profile.java.impl.JavaProjectImpl <em>Project</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaProjectImpl
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaPackageImpl#getJavaProject()
+ * @generated
+ */
+ int JAVA_PROJECT = 8;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PROJECT__NAME = JAVA_GEN__NAME;
+
+ /**
+ * The feature id for the '<em><b>Author</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PROJECT__AUTHOR = JAVA_GEN__AUTHOR;
+
+ /**
+ * The feature id for the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PROJECT__VERSION = JAVA_GEN__VERSION;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PROJECT__COMMENT = JAVA_GEN__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Is Generated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PROJECT__IS_GENERATED = JAVA_GEN__IS_GENERATED;
+
+ /**
+ * The feature id for the '<em><b>Src Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PROJECT__SRC_NAME = JAVA_GEN__SRC_NAME;
+
+ /**
+ * The feature id for the '<em><b>Project Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PROJECT__PROJECT_NAME = JAVA_GEN__PROJECT_NAME;
+
+ /**
+ * The feature id for the '<em><b>Base Package</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PROJECT__BASE_PACKAGE = JAVA_GEN_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Project</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_PROJECT_FEATURE_COUNT = JAVA_GEN_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.profile.java.impl.JavaSrcFolderImpl <em>Src Folder</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaSrcFolderImpl
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaPackageImpl#getJavaSrcFolder()
+ * @generated
+ */
+ int JAVA_SRC_FOLDER = 9;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_SRC_FOLDER__NAME = JAVA_GEN__NAME;
+
+ /**
+ * The feature id for the '<em><b>Author</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_SRC_FOLDER__AUTHOR = JAVA_GEN__AUTHOR;
+
+ /**
+ * The feature id for the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_SRC_FOLDER__VERSION = JAVA_GEN__VERSION;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_SRC_FOLDER__COMMENT = JAVA_GEN__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Is Generated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_SRC_FOLDER__IS_GENERATED = JAVA_GEN__IS_GENERATED;
+
+ /**
+ * The feature id for the '<em><b>Src Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_SRC_FOLDER__SRC_NAME = JAVA_GEN__SRC_NAME;
+
+ /**
+ * The feature id for the '<em><b>Project Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_SRC_FOLDER__PROJECT_NAME = JAVA_GEN__PROJECT_NAME;
+
+ /**
+ * The feature id for the '<em><b>Base Package</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_SRC_FOLDER__BASE_PACKAGE = JAVA_GEN_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Src Folder</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_SRC_FOLDER_FEATURE_COUNT = JAVA_GEN_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.profile.java.TrueFalseDefault <em>True False Default</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.profile.java.TrueFalseDefault
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaPackageImpl#getTrueFalseDefault()
+ * @generated
+ */
+ int TRUE_FALSE_DEFAULT = 10;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.java.profile.java.JavaClass <em>Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Class</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaClass
+ * @generated
+ */
+ EClass getJavaClass();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.java.profile.java.JavaClass#getBase_Classifier <em>Base Classifier</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the reference '<em>Base Classifier</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaClass#getBase_Classifier()
+ * @see #getJavaClass()
+ * @generated
+ */
+ EReference getJavaClass_Base_Classifier();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.profile.java.JavaClass#isFinal <em>Is Final</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Is Final</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaClass#isFinal()
+ * @see #getJavaClass()
+ * @generated
+ */
+ EAttribute getJavaClass_IsFinal();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.profile.java.JavaClass#isAbstract <em>Is Abstract</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Is Abstract</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaClass#isAbstract()
+ * @see #getJavaClass()
+ * @generated
+ */
+ EAttribute getJavaClass_IsAbstract();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.profile.java.JavaClass#isStatic <em>Is Static</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Is Static</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaClass#isStatic()
+ * @see #getJavaClass()
+ * @generated
+ */
+ EAttribute getJavaClass_IsStatic();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.java.profile.java.JavaClass#getExplicitPlainTextRequiredImports <em>Explicit Plain Text Required Imports</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute list '<em>Explicit Plain Text Required Imports</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaClass#getExplicitPlainTextRequiredImports()
+ * @see #getJavaClass()
+ * @generated
+ */
+ EAttribute getJavaClass_ExplicitPlainTextRequiredImports();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.java.profile.java.JavaClass#getExplicitRequiredImports <em>Explicit Required Imports</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the reference list '<em>Explicit Required Imports</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaClass#getExplicitRequiredImports()
+ * @see #getJavaClass()
+ * @generated
+ */
+ EReference getJavaClass_ExplicitRequiredImports();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.java.profile.java.JavaGen <em>Gen</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Gen</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaGen
+ * @generated
+ */
+ EClass getJavaGen();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.profile.java.JavaGen#getSrcName <em>Src Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Src Name</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaGen#getSrcName()
+ * @see #getJavaGen()
+ * @generated
+ */
+ EAttribute getJavaGen_SrcName();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.profile.java.JavaGen#getProjectName <em>Project Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Project Name</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaGen#getProjectName()
+ * @see #getJavaGen()
+ * @generated
+ */
+ EAttribute getJavaGen_ProjectName();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.java.profile.java.JavaNamedElement <em>Named Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Named Element</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaNamedElement
+ * @generated
+ */
+ EClass getJavaNamedElement();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.profile.java.JavaNamedElement#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaNamedElement#getName()
+ * @see #getJavaNamedElement()
+ * @generated
+ */
+ EAttribute getJavaNamedElement_Name();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.profile.java.JavaNamedElement#getAuthor <em>Author</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Author</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaNamedElement#getAuthor()
+ * @see #getJavaNamedElement()
+ * @generated
+ */
+ EAttribute getJavaNamedElement_Author();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.profile.java.JavaNamedElement#getVersion <em>Version</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Version</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaNamedElement#getVersion()
+ * @see #getJavaNamedElement()
+ * @generated
+ */
+ EAttribute getJavaNamedElement_Version();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.profile.java.JavaNamedElement#getComment <em>Comment</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Comment</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaNamedElement#getComment()
+ * @see #getJavaNamedElement()
+ * @generated
+ */
+ EAttribute getJavaNamedElement_Comment();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.profile.java.JavaNamedElement#isGenerated <em>Is Generated</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Is Generated</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaNamedElement#isGenerated()
+ * @see #getJavaNamedElement()
+ * @generated
+ */
+ EAttribute getJavaNamedElement_IsGenerated();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.java.profile.java.JavaPackage_ <em>Package </em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Package </em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage_
+ * @generated
+ */
+ EClass getJavaPackage_();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.profile.java.JavaPackage_#getPackageName <em>Package Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Package Name</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage_#getPackageName()
+ * @see #getJavaPackage_()
+ * @generated
+ */
+ EAttribute getJavaPackage__PackageName();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.java.profile.java.JavaPackage_#getBase_Package <em>Base Package</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the reference '<em>Base Package</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage_#getBase_Package()
+ * @see #getJavaPackage_()
+ * @generated
+ */
+ EReference getJavaPackage__Base_Package();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.java.profile.java.JavaMethod <em>Method</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Method</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaMethod
+ * @generated
+ */
+ EClass getJavaMethod();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.profile.java.JavaMethod#isStatic <em>Is Static</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Is Static</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaMethod#isStatic()
+ * @see #getJavaMethod()
+ * @generated
+ */
+ EAttribute getJavaMethod_IsStatic();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.profile.java.JavaMethod#isFinal <em>Is Final</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Is Final</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaMethod#isFinal()
+ * @see #getJavaMethod()
+ * @generated
+ */
+ EAttribute getJavaMethod_IsFinal();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.profile.java.JavaMethod#isAbstract <em>Is Abstract</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Is Abstract</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaMethod#isAbstract()
+ * @see #getJavaMethod()
+ * @generated
+ */
+ EAttribute getJavaMethod_IsAbstract();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.profile.java.JavaMethod#isNative <em>Is Native</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Is Native</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaMethod#isNative()
+ * @see #getJavaMethod()
+ * @generated
+ */
+ EAttribute getJavaMethod_IsNative();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.profile.java.JavaMethod#isSynchronized <em>Is Synchronized</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Is Synchronized</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaMethod#isSynchronized()
+ * @see #getJavaMethod()
+ * @generated
+ */
+ EAttribute getJavaMethod_IsSynchronized();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.profile.java.JavaMethod#isConstructor <em>Is Constructor</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Is Constructor</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaMethod#isConstructor()
+ * @see #getJavaMethod()
+ * @generated
+ */
+ EAttribute getJavaMethod_IsConstructor();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.java.profile.java.JavaMethod#getBase_Operation <em>Base Operation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the reference '<em>Base Operation</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaMethod#getBase_Operation()
+ * @see #getJavaMethod()
+ * @generated
+ */
+ EReference getJavaMethod_Base_Operation();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.java.profile.java.JavaMethod#getExplicitPlainTextRequiredImports <em>Explicit Plain Text Required Imports</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute list '<em>Explicit Plain Text Required Imports</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaMethod#getExplicitPlainTextRequiredImports()
+ * @see #getJavaMethod()
+ * @generated
+ */
+ EAttribute getJavaMethod_ExplicitPlainTextRequiredImports();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.java.profile.java.JavaMethod#getExplicitRequiredImports <em>Explicit Required Imports</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the reference list '<em>Explicit Required Imports</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaMethod#getExplicitRequiredImports()
+ * @see #getJavaMethod()
+ * @generated
+ */
+ EReference getJavaMethod_ExplicitRequiredImports();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.java.profile.java.JavaParameter <em>Parameter</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Parameter</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaParameter
+ * @generated
+ */
+ EClass getJavaParameter();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.profile.java.JavaParameter#isFinal <em>Is Final</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Is Final</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaParameter#isFinal()
+ * @see #getJavaParameter()
+ * @generated
+ */
+ EAttribute getJavaParameter_IsFinal();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.java.profile.java.JavaParameter#getBase_Parameter <em>Base Parameter</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the reference '<em>Base Parameter</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaParameter#getBase_Parameter()
+ * @see #getJavaParameter()
+ * @generated
+ */
+ EReference getJavaParameter_Base_Parameter();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.java.profile.java.JavaProperty <em>Property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Property</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaProperty
+ * @generated
+ */
+ EClass getJavaProperty();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.profile.java.JavaProperty#isAbstract <em>Is Abstract</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Is Abstract</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaProperty#isAbstract()
+ * @see #getJavaProperty()
+ * @generated
+ */
+ EAttribute getJavaProperty_IsAbstract();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.profile.java.JavaProperty#isFinal <em>Is Final</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Is Final</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaProperty#isFinal()
+ * @see #getJavaProperty()
+ * @generated
+ */
+ EAttribute getJavaProperty_IsFinal();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.java.profile.java.JavaProperty#getBase_Property <em>Base Property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the reference '<em>Base Property</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaProperty#getBase_Property()
+ * @see #getJavaProperty()
+ * @generated
+ */
+ EReference getJavaProperty_Base_Property();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.profile.java.JavaProperty#isTransient <em>Is Transient</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Is Transient</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaProperty#isTransient()
+ * @see #getJavaProperty()
+ * @generated
+ */
+ EAttribute getJavaProperty_IsTransient();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.profile.java.JavaProperty#getGenerateGetter <em>Generate Getter</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Generate Getter</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaProperty#getGenerateGetter()
+ * @see #getJavaProperty()
+ * @generated
+ */
+ EAttribute getJavaProperty_GenerateGetter();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.profile.java.JavaProperty#getGenerateSetter <em>Generate Setter</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Generate Setter</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaProperty#getGenerateSetter()
+ * @see #getJavaProperty()
+ * @generated
+ */
+ EAttribute getJavaProperty_GenerateSetter();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.profile.java.JavaProperty#isStatic <em>Is Static</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Is Static</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaProperty#isStatic()
+ * @see #getJavaProperty()
+ * @generated
+ */
+ EAttribute getJavaProperty_IsStatic();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.java.profile.java.JavaProperty#getExplicitPlainTextRequiredImports <em>Explicit Plain Text Required Imports</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute list '<em>Explicit Plain Text Required Imports</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaProperty#getExplicitPlainTextRequiredImports()
+ * @see #getJavaProperty()
+ * @generated
+ */
+ EAttribute getJavaProperty_ExplicitPlainTextRequiredImports();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.java.profile.java.JavaProperty#getExplicitRequiredImports <em>Explicit Required Imports</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the reference list '<em>Explicit Required Imports</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaProperty#getExplicitRequiredImports()
+ * @see #getJavaProperty()
+ * @generated
+ */
+ EReference getJavaProperty_ExplicitRequiredImports();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.java.profile.java.PrimitiveType <em>Primitive Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Primitive Type</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.PrimitiveType
+ * @generated
+ */
+ EClass getPrimitiveType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.profile.java.PrimitiveType#getImplementationClass <em>Implementation Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Implementation Class</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.PrimitiveType#getImplementationClass()
+ * @see #getPrimitiveType()
+ * @generated
+ */
+ EAttribute getPrimitiveType_ImplementationClass();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.java.profile.java.PrimitiveType#getBase_PrimitiveType <em>Base Primitive Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the reference '<em>Base Primitive Type</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.PrimitiveType#getBase_PrimitiveType()
+ * @see #getPrimitiveType()
+ * @generated
+ */
+ EReference getPrimitiveType_Base_PrimitiveType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.profile.java.PrimitiveType#getCollectionImplementationClass <em>Collection Implementation Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Collection Implementation Class</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.PrimitiveType#getCollectionImplementationClass()
+ * @see #getPrimitiveType()
+ * @generated
+ */
+ EAttribute getPrimitiveType_CollectionImplementationClass();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.java.profile.java.JavaProject <em>Project</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Project</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaProject
+ * @generated
+ */
+ EClass getJavaProject();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.java.profile.java.JavaProject#getBase_Package <em>Base Package</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the reference '<em>Base Package</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaProject#getBase_Package()
+ * @see #getJavaProject()
+ * @generated
+ */
+ EReference getJavaProject_Base_Package();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.java.profile.java.JavaSrcFolder <em>Src Folder</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Src Folder</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaSrcFolder
+ * @generated
+ */
+ EClass getJavaSrcFolder();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.java.profile.java.JavaSrcFolder#getBase_Package <em>Base Package</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the reference '<em>Base Package</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.JavaSrcFolder#getBase_Package()
+ * @see #getJavaSrcFolder()
+ * @generated
+ */
+ EReference getJavaSrcFolder_Base_Package();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.papyrus.java.profile.java.TrueFalseDefault <em>True False Default</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for enum '<em>True False Default</em>'.
+ * @see org.eclipse.papyrus.java.profile.java.TrueFalseDefault
+ * @generated
+ */
+ EEnum getTrueFalseDefault();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ JavaFactory getJavaFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.profile.java.impl.JavaClassImpl <em>Class</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaClassImpl
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaPackageImpl#getJavaClass()
+ * @generated
+ */
+ EClass JAVA_CLASS = eINSTANCE.getJavaClass();
+
+ /**
+ * The meta object literal for the '<em><b>Base Classifier</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JAVA_CLASS__BASE_CLASSIFIER = eINSTANCE.getJavaClass_Base_Classifier();
+
+ /**
+ * The meta object literal for the '<em><b>Is Final</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JAVA_CLASS__IS_FINAL = eINSTANCE.getJavaClass_IsFinal();
+
+ /**
+ * The meta object literal for the '<em><b>Is Abstract</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JAVA_CLASS__IS_ABSTRACT = eINSTANCE.getJavaClass_IsAbstract();
+
+ /**
+ * The meta object literal for the '<em><b>Is Static</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JAVA_CLASS__IS_STATIC = eINSTANCE.getJavaClass_IsStatic();
+
+ /**
+ * The meta object literal for the '<em><b>Explicit Plain Text Required Imports</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JAVA_CLASS__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS = eINSTANCE.getJavaClass_ExplicitPlainTextRequiredImports();
+
+ /**
+ * The meta object literal for the '<em><b>Explicit Required Imports</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JAVA_CLASS__EXPLICIT_REQUIRED_IMPORTS = eINSTANCE.getJavaClass_ExplicitRequiredImports();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.profile.java.impl.JavaGenImpl <em>Gen</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaGenImpl
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaPackageImpl#getJavaGen()
+ * @generated
+ */
+ EClass JAVA_GEN = eINSTANCE.getJavaGen();
+
+ /**
+ * The meta object literal for the '<em><b>Src Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JAVA_GEN__SRC_NAME = eINSTANCE.getJavaGen_SrcName();
+
+ /**
+ * The meta object literal for the '<em><b>Project Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JAVA_GEN__PROJECT_NAME = eINSTANCE.getJavaGen_ProjectName();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.profile.java.impl.JavaNamedElementImpl <em>Named Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaNamedElementImpl
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaPackageImpl#getJavaNamedElement()
+ * @generated
+ */
+ EClass JAVA_NAMED_ELEMENT = eINSTANCE.getJavaNamedElement();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JAVA_NAMED_ELEMENT__NAME = eINSTANCE.getJavaNamedElement_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Author</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JAVA_NAMED_ELEMENT__AUTHOR = eINSTANCE.getJavaNamedElement_Author();
+
+ /**
+ * The meta object literal for the '<em><b>Version</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JAVA_NAMED_ELEMENT__VERSION = eINSTANCE.getJavaNamedElement_Version();
+
+ /**
+ * The meta object literal for the '<em><b>Comment</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JAVA_NAMED_ELEMENT__COMMENT = eINSTANCE.getJavaNamedElement_Comment();
+
+ /**
+ * The meta object literal for the '<em><b>Is Generated</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JAVA_NAMED_ELEMENT__IS_GENERATED = eINSTANCE.getJavaNamedElement_IsGenerated();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.profile.java.impl.JavaPackage_Impl <em>Package </em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaPackage_Impl
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaPackageImpl#getJavaPackage_()
+ * @generated
+ */
+ EClass JAVA_PACKAGE_ = eINSTANCE.getJavaPackage_();
+
+ /**
+ * The meta object literal for the '<em><b>Package Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JAVA_PACKAGE___PACKAGE_NAME = eINSTANCE.getJavaPackage__PackageName();
+
+ /**
+ * The meta object literal for the '<em><b>Base Package</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JAVA_PACKAGE___BASE_PACKAGE = eINSTANCE.getJavaPackage__Base_Package();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.profile.java.impl.JavaMethodImpl <em>Method</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaMethodImpl
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaPackageImpl#getJavaMethod()
+ * @generated
+ */
+ EClass JAVA_METHOD = eINSTANCE.getJavaMethod();
+
+ /**
+ * The meta object literal for the '<em><b>Is Static</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JAVA_METHOD__IS_STATIC = eINSTANCE.getJavaMethod_IsStatic();
+
+ /**
+ * The meta object literal for the '<em><b>Is Final</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JAVA_METHOD__IS_FINAL = eINSTANCE.getJavaMethod_IsFinal();
+
+ /**
+ * The meta object literal for the '<em><b>Is Abstract</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JAVA_METHOD__IS_ABSTRACT = eINSTANCE.getJavaMethod_IsAbstract();
+
+ /**
+ * The meta object literal for the '<em><b>Is Native</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JAVA_METHOD__IS_NATIVE = eINSTANCE.getJavaMethod_IsNative();
+
+ /**
+ * The meta object literal for the '<em><b>Is Synchronized</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JAVA_METHOD__IS_SYNCHRONIZED = eINSTANCE.getJavaMethod_IsSynchronized();
+
+ /**
+ * The meta object literal for the '<em><b>Is Constructor</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JAVA_METHOD__IS_CONSTRUCTOR = eINSTANCE.getJavaMethod_IsConstructor();
+
+ /**
+ * The meta object literal for the '<em><b>Base Operation</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JAVA_METHOD__BASE_OPERATION = eINSTANCE.getJavaMethod_Base_Operation();
+
+ /**
+ * The meta object literal for the '<em><b>Explicit Plain Text Required Imports</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JAVA_METHOD__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS = eINSTANCE.getJavaMethod_ExplicitPlainTextRequiredImports();
+
+ /**
+ * The meta object literal for the '<em><b>Explicit Required Imports</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JAVA_METHOD__EXPLICIT_REQUIRED_IMPORTS = eINSTANCE.getJavaMethod_ExplicitRequiredImports();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.profile.java.impl.JavaParameterImpl <em>Parameter</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaParameterImpl
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaPackageImpl#getJavaParameter()
+ * @generated
+ */
+ EClass JAVA_PARAMETER = eINSTANCE.getJavaParameter();
+
+ /**
+ * The meta object literal for the '<em><b>Is Final</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JAVA_PARAMETER__IS_FINAL = eINSTANCE.getJavaParameter_IsFinal();
+
+ /**
+ * The meta object literal for the '<em><b>Base Parameter</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JAVA_PARAMETER__BASE_PARAMETER = eINSTANCE.getJavaParameter_Base_Parameter();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.profile.java.impl.JavaPropertyImpl <em>Property</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaPropertyImpl
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaPackageImpl#getJavaProperty()
+ * @generated
+ */
+ EClass JAVA_PROPERTY = eINSTANCE.getJavaProperty();
+
+ /**
+ * The meta object literal for the '<em><b>Is Abstract</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JAVA_PROPERTY__IS_ABSTRACT = eINSTANCE.getJavaProperty_IsAbstract();
+
+ /**
+ * The meta object literal for the '<em><b>Is Final</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JAVA_PROPERTY__IS_FINAL = eINSTANCE.getJavaProperty_IsFinal();
+
+ /**
+ * The meta object literal for the '<em><b>Base Property</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JAVA_PROPERTY__BASE_PROPERTY = eINSTANCE.getJavaProperty_Base_Property();
+
+ /**
+ * The meta object literal for the '<em><b>Is Transient</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JAVA_PROPERTY__IS_TRANSIENT = eINSTANCE.getJavaProperty_IsTransient();
+
+ /**
+ * The meta object literal for the '<em><b>Generate Getter</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JAVA_PROPERTY__GENERATE_GETTER = eINSTANCE.getJavaProperty_GenerateGetter();
+
+ /**
+ * The meta object literal for the '<em><b>Generate Setter</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JAVA_PROPERTY__GENERATE_SETTER = eINSTANCE.getJavaProperty_GenerateSetter();
+
+ /**
+ * The meta object literal for the '<em><b>Is Static</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JAVA_PROPERTY__IS_STATIC = eINSTANCE.getJavaProperty_IsStatic();
+
+ /**
+ * The meta object literal for the '<em><b>Explicit Plain Text Required Imports</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute JAVA_PROPERTY__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS = eINSTANCE.getJavaProperty_ExplicitPlainTextRequiredImports();
+
+ /**
+ * The meta object literal for the '<em><b>Explicit Required Imports</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JAVA_PROPERTY__EXPLICIT_REQUIRED_IMPORTS = eINSTANCE.getJavaProperty_ExplicitRequiredImports();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.profile.java.impl.PrimitiveTypeImpl <em>Primitive Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.profile.java.impl.PrimitiveTypeImpl
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaPackageImpl#getPrimitiveType()
+ * @generated
+ */
+ EClass PRIMITIVE_TYPE = eINSTANCE.getPrimitiveType();
+
+ /**
+ * The meta object literal for the '<em><b>Implementation Class</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute PRIMITIVE_TYPE__IMPLEMENTATION_CLASS = eINSTANCE.getPrimitiveType_ImplementationClass();
+
+ /**
+ * The meta object literal for the '<em><b>Base Primitive Type</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference PRIMITIVE_TYPE__BASE_PRIMITIVE_TYPE = eINSTANCE.getPrimitiveType_Base_PrimitiveType();
+
+ /**
+ * The meta object literal for the '<em><b>Collection Implementation Class</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute PRIMITIVE_TYPE__COLLECTION_IMPLEMENTATION_CLASS = eINSTANCE.getPrimitiveType_CollectionImplementationClass();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.profile.java.impl.JavaProjectImpl <em>Project</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaProjectImpl
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaPackageImpl#getJavaProject()
+ * @generated
+ */
+ EClass JAVA_PROJECT = eINSTANCE.getJavaProject();
+
+ /**
+ * The meta object literal for the '<em><b>Base Package</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JAVA_PROJECT__BASE_PACKAGE = eINSTANCE.getJavaProject_Base_Package();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.profile.java.impl.JavaSrcFolderImpl <em>Src Folder</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaSrcFolderImpl
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaPackageImpl#getJavaSrcFolder()
+ * @generated
+ */
+ EClass JAVA_SRC_FOLDER = eINSTANCE.getJavaSrcFolder();
+
+ /**
+ * The meta object literal for the '<em><b>Base Package</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference JAVA_SRC_FOLDER__BASE_PACKAGE = eINSTANCE.getJavaSrcFolder_Base_Package();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.java.profile.java.TrueFalseDefault <em>True False Default</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.profile.java.TrueFalseDefault
+ * @see org.eclipse.papyrus.java.profile.java.impl.JavaPackageImpl#getTrueFalseDefault()
+ * @generated
+ */
+ EEnum TRUE_FALSE_DEFAULT = eINSTANCE.getTrueFalseDefault();
+
+ }
+
+} // JavaPackage
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaPackage_.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaPackage_.java
new file mode 100644
index 00000000000..72f5dd43ebc
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaPackage_.java
@@ -0,0 +1,84 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Package </b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaPackage_#getPackageName <em>Package Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaPackage_#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaPackage_()
+ * @model
+ * @generated
+ */
+public interface JavaPackage_ extends JavaGen {
+ /**
+ * Returns the value of the '<em><b>Package Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Package Name</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Package Name</em>' attribute.
+ * @see #setPackageName(String)
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaPackage__PackageName()
+ * @model unique="false" required="true" ordered="false"
+ * @generated
+ */
+ String getPackageName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.profile.java.JavaPackage_#getPackageName <em>Package Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Package Name</em>' attribute.
+ * @see #getPackageName()
+ * @generated
+ */
+ void setPackageName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Base Package</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Package</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Base Package</em>' reference.
+ * @see #setBase_Package(org.eclipse.uml2.uml.Package)
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaPackage__Base_Package()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Package getBase_Package();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.profile.java.JavaPackage_#getBase_Package <em>Base Package</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Base Package</em>' reference.
+ * @see #getBase_Package()
+ * @generated
+ */
+ void setBase_Package(org.eclipse.uml2.uml.Package value);
+
+} // JavaPackage_
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaParameter.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaParameter.java
new file mode 100644
index 00000000000..788372013f5
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaParameter.java
@@ -0,0 +1,85 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java;
+
+import org.eclipse.uml2.uml.Parameter;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Parameter</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaParameter#isFinal <em>Is Final</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaParameter#getBase_Parameter <em>Base Parameter</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaParameter()
+ * @model
+ * @generated
+ */
+public interface JavaParameter extends JavaNamedElement {
+ /**
+ * Returns the value of the '<em><b>Is Final</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Is Final</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Is Final</em>' attribute.
+ * @see #setIsFinal(boolean)
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaParameter_IsFinal()
+ * @model unique="false" required="true" ordered="false"
+ * @generated
+ */
+ boolean isFinal();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.profile.java.JavaParameter#isFinal <em>Is Final</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Is Final</em>' attribute.
+ * @see #isFinal()
+ * @generated
+ */
+ void setIsFinal(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Base Parameter</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Parameter</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Base Parameter</em>' reference.
+ * @see #setBase_Parameter(Parameter)
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaParameter_Base_Parameter()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Parameter getBase_Parameter();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.profile.java.JavaParameter#getBase_Parameter <em>Base Parameter</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Base Parameter</em>' reference.
+ * @see #getBase_Parameter()
+ * @generated
+ */
+ void setBase_Parameter(Parameter value);
+
+} // JavaParameter
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaProject.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaProject.java
new file mode 100644
index 00000000000..122301f6388
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaProject.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Project</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaProject#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaProject()
+ * @model
+ * @generated
+ */
+public interface JavaProject extends JavaGen {
+ /**
+ * Returns the value of the '<em><b>Base Package</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Package</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Base Package</em>' reference.
+ * @see #setBase_Package(org.eclipse.uml2.uml.Package)
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaProject_Base_Package()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Package getBase_Package();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.profile.java.JavaProject#getBase_Package <em>Base Package</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Base Package</em>' reference.
+ * @see #getBase_Package()
+ * @generated
+ */
+ void setBase_Package(org.eclipse.uml2.uml.Package value);
+
+} // JavaProject
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaProperty.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaProperty.java
new file mode 100644
index 00000000000..7ddf1e1bff6
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaProperty.java
@@ -0,0 +1,305 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Property</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaProperty#isAbstract <em>Is Abstract</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaProperty#isFinal <em>Is Final</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaProperty#getBase_Property <em>Base Property</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaProperty#isTransient <em>Is Transient</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaProperty#getGenerateGetter <em>Generate Getter</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaProperty#getGenerateSetter <em>Generate Setter</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaProperty#isStatic <em>Is Static</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaProperty#getExplicitPlainTextRequiredImports <em>Explicit Plain Text Required Imports</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaProperty#getExplicitRequiredImports <em>Explicit Required Imports</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaProperty()
+ * @model
+ * @generated
+ */
+public interface JavaProperty extends JavaNamedElement {
+ /**
+ * Returns the value of the '<em><b>Is Abstract</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Is Abstract</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Is Abstract</em>' attribute.
+ * @see #setIsAbstract(boolean)
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaProperty_IsAbstract()
+ * @model unique="false" required="true" ordered="false"
+ * @generated
+ */
+ boolean isAbstract();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.profile.java.JavaProperty#isAbstract <em>Is Abstract</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Is Abstract</em>' attribute.
+ * @see #isAbstract()
+ * @generated
+ */
+ void setIsAbstract(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Is Final</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Is Final</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Is Final</em>' attribute.
+ * @see #setIsFinal(boolean)
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaProperty_IsFinal()
+ * @model unique="false" required="true" ordered="false"
+ * @generated
+ */
+ boolean isFinal();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.profile.java.JavaProperty#isFinal <em>Is Final</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Is Final</em>' attribute.
+ * @see #isFinal()
+ * @generated
+ */
+ void setIsFinal(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Property</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Base Property</em>' reference.
+ * @see #setBase_Property(Property)
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaProperty_Base_Property()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Property getBase_Property();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.profile.java.JavaProperty#getBase_Property <em>Base Property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Base Property</em>' reference.
+ * @see #getBase_Property()
+ * @generated
+ */
+ void setBase_Property(Property value);
+
+ /**
+ * Returns the value of the '<em><b>Is Transient</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Is Transient</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Is Transient</em>' attribute.
+ * @see #setIsTransient(boolean)
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaProperty_IsTransient()
+ * @model unique="false" required="true" ordered="false"
+ * @generated
+ */
+ boolean isTransient();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.profile.java.JavaProperty#isTransient <em>Is Transient</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Is Transient</em>' attribute.
+ * @see #isTransient()
+ * @generated
+ */
+ void setIsTransient(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Generate Getter</b></em>' attribute.
+ * The default value is <code>"default"</code>.
+ * The literals are from the enumeration {@link org.eclipse.papyrus.java.profile.java.TrueFalseDefault}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Generate Getter</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Generate Getter</em>' attribute.
+ * @see org.eclipse.papyrus.java.profile.java.TrueFalseDefault
+ * @see #setGenerateGetter(TrueFalseDefault)
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaProperty_GenerateGetter()
+ * @model default="default" required="true" ordered="false"
+ * @generated
+ */
+ TrueFalseDefault getGenerateGetter();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.profile.java.JavaProperty#getGenerateGetter <em>Generate Getter</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Generate Getter</em>' attribute.
+ * @see org.eclipse.papyrus.java.profile.java.TrueFalseDefault
+ * @see #getGenerateGetter()
+ * @generated
+ */
+ void setGenerateGetter(TrueFalseDefault value);
+
+ /**
+ * Returns the value of the '<em><b>Generate Setter</b></em>' attribute.
+ * The default value is <code>"default"</code>.
+ * The literals are from the enumeration {@link org.eclipse.papyrus.java.profile.java.TrueFalseDefault}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Generate Setter</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Generate Setter</em>' attribute.
+ * @see org.eclipse.papyrus.java.profile.java.TrueFalseDefault
+ * @see #setGenerateSetter(TrueFalseDefault)
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaProperty_GenerateSetter()
+ * @model default="default" required="true" ordered="false"
+ * @generated
+ */
+ TrueFalseDefault getGenerateSetter();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.profile.java.JavaProperty#getGenerateSetter <em>Generate Setter</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Generate Setter</em>' attribute.
+ * @see org.eclipse.papyrus.java.profile.java.TrueFalseDefault
+ * @see #getGenerateSetter()
+ * @generated
+ */
+ void setGenerateSetter(TrueFalseDefault value);
+
+ /**
+ * Returns the value of the '<em><b>Is Static</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Is Static</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Is Static</em>' attribute.
+ * @see #setIsStatic(boolean)
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaProperty_IsStatic()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ boolean isStatic();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.profile.java.JavaProperty#isStatic <em>Is Static</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Is Static</em>' attribute.
+ * @see #isStatic()
+ * @generated
+ */
+ void setIsStatic(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Explicit Plain Text Required Imports</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Explicit Plain Text Required Imports</em>' attribute list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Explicit Plain Text Required Imports</em>' attribute list.
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaProperty_ExplicitPlainTextRequiredImports()
+ * @model unique="false" ordered="false"
+ * @generated
+ */
+ EList<String> getExplicitPlainTextRequiredImports();
+
+ /**
+ * Returns the value of the '<em><b>Explicit Required Imports</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.uml2.uml.Classifier}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Explicit Required Imports</em>' reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Explicit Required Imports</em>' reference list.
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaProperty_ExplicitRequiredImports()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<Classifier> getExplicitRequiredImports();
+
+ /**
+ * Retrieves the first {@link org.eclipse.uml2.uml.Classifier} with the specified '<em><b>Name</b></em>' from the '<em><b>Explicit Required Imports</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param name
+ * The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Classifier} to retrieve, or <code>null</code>.
+ * @return The first {@link org.eclipse.uml2.uml.Classifier} with the specified '<em><b>Name</b></em>', or <code>null</code>.
+ * @see #getExplicitRequiredImports()
+ * @generated
+ */
+ Classifier getExplicitRequiredImports(String name);
+
+ /**
+ * Retrieves the first {@link org.eclipse.uml2.uml.Classifier} with the specified '<em><b>Name</b></em>' from the '<em><b>Explicit Required Imports</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param name
+ * The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Classifier} to retrieve, or <code>null</code>.
+ * @param ignoreCase
+ * Whether to ignore case in {@link java.lang.String} comparisons.
+ * @param eClass
+ * The Ecore class of the {@link org.eclipse.uml2.uml.Classifier} to retrieve, or <code>null</code>.
+ * @return The first {@link org.eclipse.uml2.uml.Classifier} with the specified '<em><b>Name</b></em>', or <code>null</code>.
+ * @see #getExplicitRequiredImports()
+ * @generated
+ */
+ Classifier getExplicitRequiredImports(String name, boolean ignoreCase, EClass eClass);
+
+} // JavaProperty
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaSrcFolder.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaSrcFolder.java
new file mode 100644
index 00000000000..25bf1c52ed5
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaSrcFolder.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Src Folder</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.JavaSrcFolder#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaSrcFolder()
+ * @model
+ * @generated
+ */
+public interface JavaSrcFolder extends JavaGen {
+ /**
+ * Returns the value of the '<em><b>Base Package</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Package</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Base Package</em>' reference.
+ * @see #setBase_Package(org.eclipse.uml2.uml.Package)
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getJavaSrcFolder_Base_Package()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Package getBase_Package();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.profile.java.JavaSrcFolder#getBase_Package <em>Base Package</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Base Package</em>' reference.
+ * @see #getBase_Package()
+ * @generated
+ */
+ void setBase_Package(org.eclipse.uml2.uml.Package value);
+
+} // JavaSrcFolder
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/PrimitiveType.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/PrimitiveType.java
new file mode 100644
index 00000000000..00d52854f23
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/PrimitiveType.java
@@ -0,0 +1,113 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Primitive Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.PrimitiveType#getImplementationClass <em>Implementation Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.PrimitiveType#getBase_PrimitiveType <em>Base Primitive Type</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.PrimitiveType#getCollectionImplementationClass <em>Collection Implementation Class</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getPrimitiveType()
+ * @model
+ * @generated
+ */
+public interface PrimitiveType extends JavaGen {
+ /**
+ * Returns the value of the '<em><b>Implementation Class</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Implementation Class</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Implementation Class</em>' attribute.
+ * @see #setImplementationClass(String)
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getPrimitiveType_ImplementationClass()
+ * @model unique="false" required="true" ordered="false"
+ * @generated
+ */
+ String getImplementationClass();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.profile.java.PrimitiveType#getImplementationClass <em>Implementation Class</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Implementation Class</em>' attribute.
+ * @see #getImplementationClass()
+ * @generated
+ */
+ void setImplementationClass(String value);
+
+ /**
+ * Returns the value of the '<em><b>Base Primitive Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Primitive Type</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Base Primitive Type</em>' reference.
+ * @see #setBase_PrimitiveType(org.eclipse.uml2.uml.PrimitiveType)
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getPrimitiveType_Base_PrimitiveType()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.PrimitiveType getBase_PrimitiveType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.profile.java.PrimitiveType#getBase_PrimitiveType <em>Base Primitive Type</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Base Primitive Type</em>' reference.
+ * @see #getBase_PrimitiveType()
+ * @generated
+ */
+ void setBase_PrimitiveType(org.eclipse.uml2.uml.PrimitiveType value);
+
+ /**
+ * Returns the value of the '<em><b>Collection Implementation Class</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Collection Implementation Class</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Collection Implementation Class</em>' attribute.
+ * @see #setCollectionImplementationClass(String)
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getPrimitiveType_CollectionImplementationClass()
+ * @model unique="false" required="true" ordered="false"
+ * @generated
+ */
+ String getCollectionImplementationClass();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.profile.java.PrimitiveType#getCollectionImplementationClass <em>Collection Implementation Class</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Collection Implementation Class</em>' attribute.
+ * @see #getCollectionImplementationClass()
+ * @generated
+ */
+ void setCollectionImplementationClass(String value);
+
+} // PrimitiveType
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/TrueFalseDefault.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/TrueFalseDefault.java
new file mode 100644
index 00000000000..99d15305e4e
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/TrueFalseDefault.java
@@ -0,0 +1,262 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>True False Default</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#getTrueFalseDefault()
+ * @model
+ * @generated
+ */
+public enum TrueFalseDefault implements Enumerator {
+ /**
+ * The '<em><b>True</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #TRUE_VALUE
+ * @generated
+ * @ordered
+ */
+ TRUE(0, "true", "true"),
+
+ /**
+ * The '<em><b>False</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #FALSE_VALUE
+ * @generated
+ * @ordered
+ */
+ FALSE(1, "false", "false"),
+
+ /**
+ * The '<em><b>Default</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #DEFAULT_VALUE
+ * @generated
+ * @ordered
+ */
+ DEFAULT(2, "default", "default");
+
+ /**
+ * The '<em><b>True</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>True</b></em>' literal object isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @see #TRUE
+ * @model name="true"
+ * @generated
+ * @ordered
+ */
+ public static final int TRUE_VALUE = 0;
+
+ /**
+ * The '<em><b>False</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>False</b></em>' literal object isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @see #FALSE
+ * @model name="false"
+ * @generated
+ * @ordered
+ */
+ public static final int FALSE_VALUE = 1;
+
+ /**
+ * The '<em><b>Default</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Default</b></em>' literal object isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @see #DEFAULT
+ * @model name="default"
+ * @generated
+ * @ordered
+ */
+ public static final int DEFAULT_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>True False Default</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private static final TrueFalseDefault[] VALUES_ARRAY =
+ new TrueFalseDefault[] {
+ TRUE,
+ FALSE,
+ DEFAULT,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>True False Default</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static final List<TrueFalseDefault> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>True False Default</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static TrueFalseDefault get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ TrueFalseDefault result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>True False Default</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static TrueFalseDefault getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ TrueFalseDefault result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>True False Default</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static TrueFalseDefault get(int value) {
+ switch (value) {
+ case TRUE_VALUE:
+ return TRUE;
+ case FALSE_VALUE:
+ return FALSE;
+ case DEFAULT_VALUE:
+ return DEFAULT;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private TrueFalseDefault(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} // TrueFalseDefault
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaClassImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaClassImpl.java
new file mode 100644
index 00000000000..d6dc2b051f1
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaClassImpl.java
@@ -0,0 +1,486 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EDataTypeEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.papyrus.java.profile.java.JavaClass;
+import org.eclipse.papyrus.java.profile.java.JavaPackage;
+import org.eclipse.uml2.uml.Classifier;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Class</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaClassImpl#getBase_Classifier <em>Base Classifier</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaClassImpl#isFinal <em>Is Final</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaClassImpl#isAbstract <em>Is Abstract</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaClassImpl#isStatic <em>Is Static</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaClassImpl#getExplicitPlainTextRequiredImports <em>Explicit Plain Text Required Imports</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaClassImpl#getExplicitRequiredImports <em>Explicit Required Imports</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class JavaClassImpl extends JavaGenImpl implements JavaClass {
+ /**
+ * The cached value of the '{@link #getBase_Classifier() <em>Base Classifier</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getBase_Classifier()
+ * @generated
+ * @ordered
+ */
+ protected Classifier base_Classifier;
+
+ /**
+ * The default value of the '{@link #isFinal() <em>Is Final</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isFinal()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_FINAL_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isFinal() <em>Is Final</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isFinal()
+ * @generated
+ * @ordered
+ */
+ protected boolean isFinal = IS_FINAL_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isAbstract() <em>Is Abstract</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isAbstract()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_ABSTRACT_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isAbstract() <em>Is Abstract</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isAbstract()
+ * @generated
+ * @ordered
+ */
+ protected boolean isAbstract = IS_ABSTRACT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isStatic() <em>Is Static</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isStatic()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_STATIC_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isStatic() <em>Is Static</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isStatic()
+ * @generated
+ * @ordered
+ */
+ protected boolean isStatic = IS_STATIC_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getExplicitPlainTextRequiredImports() <em>Explicit Plain Text Required Imports</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getExplicitPlainTextRequiredImports()
+ * @generated
+ * @ordered
+ */
+ protected EList<String> explicitPlainTextRequiredImports;
+
+ /**
+ * The cached value of the '{@link #getExplicitRequiredImports() <em>Explicit Required Imports</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getExplicitRequiredImports()
+ * @generated
+ * @ordered
+ */
+ protected EList<Classifier> explicitRequiredImports;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JavaClassImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return JavaPackage.Literals.JAVA_CLASS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Classifier getBase_Classifier() {
+ if (base_Classifier != null && base_Classifier.eIsProxy()) {
+ InternalEObject oldBase_Classifier = (InternalEObject) base_Classifier;
+ base_Classifier = (Classifier) eResolveProxy(oldBase_Classifier);
+ if (base_Classifier != oldBase_Classifier) {
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, JavaPackage.JAVA_CLASS__BASE_CLASSIFIER, oldBase_Classifier, base_Classifier));
+ }
+ }
+ }
+ return base_Classifier;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Classifier basicGetBase_Classifier() {
+ return base_Classifier;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setBase_Classifier(Classifier newBase_Classifier) {
+ Classifier oldBase_Classifier = base_Classifier;
+ base_Classifier = newBase_Classifier;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_CLASS__BASE_CLASSIFIER, oldBase_Classifier, base_Classifier));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isFinal() {
+ return isFinal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setIsFinal(boolean newIsFinal) {
+ boolean oldIsFinal = isFinal;
+ isFinal = newIsFinal;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_CLASS__IS_FINAL, oldIsFinal, isFinal));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isAbstract() {
+ return isAbstract;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setIsAbstract(boolean newIsAbstract) {
+ boolean oldIsAbstract = isAbstract;
+ isAbstract = newIsAbstract;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_CLASS__IS_ABSTRACT, oldIsAbstract, isAbstract));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isStatic() {
+ return isStatic;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setIsStatic(boolean newIsStatic) {
+ boolean oldIsStatic = isStatic;
+ isStatic = newIsStatic;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_CLASS__IS_STATIC, oldIsStatic, isStatic));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EList<String> getExplicitPlainTextRequiredImports() {
+ if (explicitPlainTextRequiredImports == null) {
+ explicitPlainTextRequiredImports = new EDataTypeEList<String>(String.class, this, JavaPackage.JAVA_CLASS__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS);
+ }
+ return explicitPlainTextRequiredImports;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EList<Classifier> getExplicitRequiredImports() {
+ if (explicitRequiredImports == null) {
+ explicitRequiredImports = new EObjectResolvingEList<Classifier>(Classifier.class, this, JavaPackage.JAVA_CLASS__EXPLICIT_REQUIRED_IMPORTS);
+ }
+ return explicitRequiredImports;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Classifier getExplicitRequiredImports(String name) {
+ return getExplicitRequiredImports(name, false, null);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Classifier getExplicitRequiredImports(String name, boolean ignoreCase, EClass eClass) {
+ explicitRequiredImportsLoop: for (Classifier explicitRequiredImports : getExplicitRequiredImports()) {
+ if (eClass != null && !eClass.isInstance(explicitRequiredImports)) {
+ continue explicitRequiredImportsLoop;
+ }
+ if (name != null && !(ignoreCase ? name.equalsIgnoreCase(explicitRequiredImports.getName()) : name.equals(explicitRequiredImports.getName()))) {
+ continue explicitRequiredImportsLoop;
+ }
+ return explicitRequiredImports;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case JavaPackage.JAVA_CLASS__BASE_CLASSIFIER:
+ if (resolve) {
+ return getBase_Classifier();
+ }
+ return basicGetBase_Classifier();
+ case JavaPackage.JAVA_CLASS__IS_FINAL:
+ return isFinal();
+ case JavaPackage.JAVA_CLASS__IS_ABSTRACT:
+ return isAbstract();
+ case JavaPackage.JAVA_CLASS__IS_STATIC:
+ return isStatic();
+ case JavaPackage.JAVA_CLASS__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS:
+ return getExplicitPlainTextRequiredImports();
+ case JavaPackage.JAVA_CLASS__EXPLICIT_REQUIRED_IMPORTS:
+ return getExplicitRequiredImports();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case JavaPackage.JAVA_CLASS__BASE_CLASSIFIER:
+ setBase_Classifier((Classifier) newValue);
+ return;
+ case JavaPackage.JAVA_CLASS__IS_FINAL:
+ setIsFinal((Boolean) newValue);
+ return;
+ case JavaPackage.JAVA_CLASS__IS_ABSTRACT:
+ setIsAbstract((Boolean) newValue);
+ return;
+ case JavaPackage.JAVA_CLASS__IS_STATIC:
+ setIsStatic((Boolean) newValue);
+ return;
+ case JavaPackage.JAVA_CLASS__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS:
+ getExplicitPlainTextRequiredImports().clear();
+ getExplicitPlainTextRequiredImports().addAll((Collection<? extends String>) newValue);
+ return;
+ case JavaPackage.JAVA_CLASS__EXPLICIT_REQUIRED_IMPORTS:
+ getExplicitRequiredImports().clear();
+ getExplicitRequiredImports().addAll((Collection<? extends Classifier>) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case JavaPackage.JAVA_CLASS__BASE_CLASSIFIER:
+ setBase_Classifier((Classifier) null);
+ return;
+ case JavaPackage.JAVA_CLASS__IS_FINAL:
+ setIsFinal(IS_FINAL_EDEFAULT);
+ return;
+ case JavaPackage.JAVA_CLASS__IS_ABSTRACT:
+ setIsAbstract(IS_ABSTRACT_EDEFAULT);
+ return;
+ case JavaPackage.JAVA_CLASS__IS_STATIC:
+ setIsStatic(IS_STATIC_EDEFAULT);
+ return;
+ case JavaPackage.JAVA_CLASS__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS:
+ getExplicitPlainTextRequiredImports().clear();
+ return;
+ case JavaPackage.JAVA_CLASS__EXPLICIT_REQUIRED_IMPORTS:
+ getExplicitRequiredImports().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case JavaPackage.JAVA_CLASS__BASE_CLASSIFIER:
+ return base_Classifier != null;
+ case JavaPackage.JAVA_CLASS__IS_FINAL:
+ return isFinal != IS_FINAL_EDEFAULT;
+ case JavaPackage.JAVA_CLASS__IS_ABSTRACT:
+ return isAbstract != IS_ABSTRACT_EDEFAULT;
+ case JavaPackage.JAVA_CLASS__IS_STATIC:
+ return isStatic != IS_STATIC_EDEFAULT;
+ case JavaPackage.JAVA_CLASS__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS:
+ return explicitPlainTextRequiredImports != null && !explicitPlainTextRequiredImports.isEmpty();
+ case JavaPackage.JAVA_CLASS__EXPLICIT_REQUIRED_IMPORTS:
+ return explicitRequiredImports != null && !explicitRequiredImports.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) {
+ return super.toString();
+ }
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (isFinal: ");
+ result.append(isFinal);
+ result.append(", isAbstract: ");
+ result.append(isAbstract);
+ result.append(", isStatic: ");
+ result.append(isStatic);
+ result.append(", explicitPlainTextRequiredImports: ");
+ result.append(explicitPlainTextRequiredImports);
+ result.append(')');
+ return result.toString();
+ }
+
+} // JavaClassImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaFactoryImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaFactoryImpl.java
new file mode 100644
index 00000000000..815339c6983
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaFactoryImpl.java
@@ -0,0 +1,270 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.papyrus.java.profile.java.JavaClass;
+import org.eclipse.papyrus.java.profile.java.JavaFactory;
+import org.eclipse.papyrus.java.profile.java.JavaMethod;
+import org.eclipse.papyrus.java.profile.java.JavaPackage;
+import org.eclipse.papyrus.java.profile.java.JavaPackage_;
+import org.eclipse.papyrus.java.profile.java.JavaParameter;
+import org.eclipse.papyrus.java.profile.java.JavaProject;
+import org.eclipse.papyrus.java.profile.java.JavaProperty;
+import org.eclipse.papyrus.java.profile.java.JavaSrcFolder;
+import org.eclipse.papyrus.java.profile.java.PrimitiveType;
+import org.eclipse.papyrus.java.profile.java.TrueFalseDefault;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JavaFactoryImpl extends EFactoryImpl implements JavaFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static JavaFactory init() {
+ try {
+ JavaFactory theJavaFactory = (JavaFactory) EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/papyrus/JAVA/1");
+ if (theJavaFactory != null) {
+ return theJavaFactory;
+ }
+ } catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new JavaFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JavaFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case JavaPackage.JAVA_CLASS:
+ return createJavaClass();
+ case JavaPackage.JAVA_PACKAGE_:
+ return createJavaPackage_();
+ case JavaPackage.JAVA_METHOD:
+ return createJavaMethod();
+ case JavaPackage.JAVA_PARAMETER:
+ return createJavaParameter();
+ case JavaPackage.JAVA_PROPERTY:
+ return createJavaProperty();
+ case JavaPackage.PRIMITIVE_TYPE:
+ return createPrimitiveType();
+ case JavaPackage.JAVA_PROJECT:
+ return createJavaProject();
+ case JavaPackage.JAVA_SRC_FOLDER:
+ return createJavaSrcFolder();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object createFromString(EDataType eDataType, String initialValue) {
+ switch (eDataType.getClassifierID()) {
+ case JavaPackage.TRUE_FALSE_DEFAULT:
+ return createTrueFalseDefaultFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String convertToString(EDataType eDataType, Object instanceValue) {
+ switch (eDataType.getClassifierID()) {
+ case JavaPackage.TRUE_FALSE_DEFAULT:
+ return convertTrueFalseDefaultToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JavaClass createJavaClass() {
+ JavaClassImpl javaClass = new JavaClassImpl();
+ return javaClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JavaPackage_ createJavaPackage_() {
+ JavaPackage_Impl javaPackage_ = new JavaPackage_Impl();
+ return javaPackage_;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JavaMethod createJavaMethod() {
+ JavaMethodImpl javaMethod = new JavaMethodImpl();
+ return javaMethod;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JavaParameter createJavaParameter() {
+ JavaParameterImpl javaParameter = new JavaParameterImpl();
+ return javaParameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JavaProperty createJavaProperty() {
+ JavaPropertyImpl javaProperty = new JavaPropertyImpl();
+ return javaProperty;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public PrimitiveType createPrimitiveType() {
+ PrimitiveTypeImpl primitiveType = new PrimitiveTypeImpl();
+ return primitiveType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JavaProject createJavaProject() {
+ JavaProjectImpl javaProject = new JavaProjectImpl();
+ return javaProject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JavaSrcFolder createJavaSrcFolder() {
+ JavaSrcFolderImpl javaSrcFolder = new JavaSrcFolderImpl();
+ return javaSrcFolder;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public TrueFalseDefault createTrueFalseDefaultFromString(EDataType eDataType, String initialValue) {
+ TrueFalseDefault result = TrueFalseDefault.get(initialValue);
+ if (result == null) {
+ throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ }
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String convertTrueFalseDefaultToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JavaPackage getJavaPackage() {
+ return (JavaPackage) getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static JavaPackage getPackage() {
+ return JavaPackage.eINSTANCE;
+ }
+
+} // JavaFactoryImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaGenImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaGenImpl.java
new file mode 100644
index 00000000000..d9fb5127c2b
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaGenImpl.java
@@ -0,0 +1,240 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.papyrus.java.profile.java.JavaGen;
+import org.eclipse.papyrus.java.profile.java.JavaPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Gen</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaGenImpl#getSrcName <em>Src Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaGenImpl#getProjectName <em>Project Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class JavaGenImpl extends JavaNamedElementImpl implements JavaGen {
+ /**
+ * The default value of the '{@link #getSrcName() <em>Src Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getSrcName()
+ * @generated
+ * @ordered
+ */
+ protected static final String SRC_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSrcName() <em>Src Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getSrcName()
+ * @generated
+ * @ordered
+ */
+ protected String srcName = SRC_NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getProjectName() <em>Project Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getProjectName()
+ * @generated
+ * @ordered
+ */
+ protected static final String PROJECT_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getProjectName() <em>Project Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getProjectName()
+ * @generated
+ * @ordered
+ */
+ protected String projectName = PROJECT_NAME_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JavaGenImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return JavaPackage.Literals.JAVA_GEN;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getSrcName() {
+ return srcName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setSrcName(String newSrcName) {
+ String oldSrcName = srcName;
+ srcName = newSrcName;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_GEN__SRC_NAME, oldSrcName, srcName));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getProjectName() {
+ return projectName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setProjectName(String newProjectName) {
+ String oldProjectName = projectName;
+ projectName = newProjectName;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_GEN__PROJECT_NAME, oldProjectName, projectName));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case JavaPackage.JAVA_GEN__SRC_NAME:
+ return getSrcName();
+ case JavaPackage.JAVA_GEN__PROJECT_NAME:
+ return getProjectName();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case JavaPackage.JAVA_GEN__SRC_NAME:
+ setSrcName((String) newValue);
+ return;
+ case JavaPackage.JAVA_GEN__PROJECT_NAME:
+ setProjectName((String) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case JavaPackage.JAVA_GEN__SRC_NAME:
+ setSrcName(SRC_NAME_EDEFAULT);
+ return;
+ case JavaPackage.JAVA_GEN__PROJECT_NAME:
+ setProjectName(PROJECT_NAME_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case JavaPackage.JAVA_GEN__SRC_NAME:
+ return SRC_NAME_EDEFAULT == null ? srcName != null : !SRC_NAME_EDEFAULT.equals(srcName);
+ case JavaPackage.JAVA_GEN__PROJECT_NAME:
+ return PROJECT_NAME_EDEFAULT == null ? projectName != null : !PROJECT_NAME_EDEFAULT.equals(projectName);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) {
+ return super.toString();
+ }
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (srcName: ");
+ result.append(srcName);
+ result.append(", projectName: ");
+ result.append(projectName);
+ result.append(')');
+ return result.toString();
+ }
+
+} // JavaGenImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaMethodImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaMethodImpl.java
new file mode 100644
index 00000000000..ba74887b921
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaMethodImpl.java
@@ -0,0 +1,670 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EDataTypeEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.papyrus.java.profile.java.JavaMethod;
+import org.eclipse.papyrus.java.profile.java.JavaPackage;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Operation;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Method</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaMethodImpl#isStatic <em>Is Static</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaMethodImpl#isFinal <em>Is Final</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaMethodImpl#isAbstract <em>Is Abstract</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaMethodImpl#isNative <em>Is Native</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaMethodImpl#isSynchronized <em>Is Synchronized</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaMethodImpl#isConstructor <em>Is Constructor</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaMethodImpl#getBase_Operation <em>Base Operation</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaMethodImpl#getExplicitPlainTextRequiredImports <em>Explicit Plain Text Required Imports</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaMethodImpl#getExplicitRequiredImports <em>Explicit Required Imports</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class JavaMethodImpl extends JavaNamedElementImpl implements JavaMethod {
+ /**
+ * The default value of the '{@link #isStatic() <em>Is Static</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isStatic()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_STATIC_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isStatic() <em>Is Static</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isStatic()
+ * @generated
+ * @ordered
+ */
+ protected boolean isStatic = IS_STATIC_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isFinal() <em>Is Final</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isFinal()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_FINAL_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isFinal() <em>Is Final</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isFinal()
+ * @generated
+ * @ordered
+ */
+ protected boolean isFinal = IS_FINAL_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isAbstract() <em>Is Abstract</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isAbstract()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_ABSTRACT_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isAbstract() <em>Is Abstract</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isAbstract()
+ * @generated
+ * @ordered
+ */
+ protected boolean isAbstract = IS_ABSTRACT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isNative() <em>Is Native</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isNative()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_NATIVE_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isNative() <em>Is Native</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isNative()
+ * @generated
+ * @ordered
+ */
+ protected boolean isNative = IS_NATIVE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isSynchronized() <em>Is Synchronized</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isSynchronized()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_SYNCHRONIZED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isSynchronized() <em>Is Synchronized</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isSynchronized()
+ * @generated
+ * @ordered
+ */
+ protected boolean isSynchronized = IS_SYNCHRONIZED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isConstructor() <em>Is Constructor</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isConstructor()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_CONSTRUCTOR_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isConstructor() <em>Is Constructor</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isConstructor()
+ * @generated
+ * @ordered
+ */
+ protected boolean isConstructor = IS_CONSTRUCTOR_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getBase_Operation() <em>Base Operation</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getBase_Operation()
+ * @generated
+ * @ordered
+ */
+ protected Operation base_Operation;
+
+ /**
+ * The cached value of the '{@link #getExplicitPlainTextRequiredImports() <em>Explicit Plain Text Required Imports</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getExplicitPlainTextRequiredImports()
+ * @generated
+ * @ordered
+ */
+ protected EList<String> explicitPlainTextRequiredImports;
+
+ /**
+ * The cached value of the '{@link #getExplicitRequiredImports() <em>Explicit Required Imports</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getExplicitRequiredImports()
+ * @generated
+ * @ordered
+ */
+ protected EList<Classifier> explicitRequiredImports;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JavaMethodImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return JavaPackage.Literals.JAVA_METHOD;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isStatic() {
+ return isStatic;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setIsStatic(boolean newIsStatic) {
+ boolean oldIsStatic = isStatic;
+ isStatic = newIsStatic;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_METHOD__IS_STATIC, oldIsStatic, isStatic));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isFinal() {
+ return isFinal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setIsFinal(boolean newIsFinal) {
+ boolean oldIsFinal = isFinal;
+ isFinal = newIsFinal;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_METHOD__IS_FINAL, oldIsFinal, isFinal));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isAbstract() {
+ return isAbstract;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setIsAbstract(boolean newIsAbstract) {
+ boolean oldIsAbstract = isAbstract;
+ isAbstract = newIsAbstract;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_METHOD__IS_ABSTRACT, oldIsAbstract, isAbstract));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isNative() {
+ return isNative;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setIsNative(boolean newIsNative) {
+ boolean oldIsNative = isNative;
+ isNative = newIsNative;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_METHOD__IS_NATIVE, oldIsNative, isNative));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isSynchronized() {
+ return isSynchronized;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setIsSynchronized(boolean newIsSynchronized) {
+ boolean oldIsSynchronized = isSynchronized;
+ isSynchronized = newIsSynchronized;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_METHOD__IS_SYNCHRONIZED, oldIsSynchronized, isSynchronized));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isConstructor() {
+ return isConstructor;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setIsConstructor(boolean newIsConstructor) {
+ boolean oldIsConstructor = isConstructor;
+ isConstructor = newIsConstructor;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_METHOD__IS_CONSTRUCTOR, oldIsConstructor, isConstructor));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Operation getBase_Operation() {
+ if (base_Operation != null && base_Operation.eIsProxy()) {
+ InternalEObject oldBase_Operation = (InternalEObject) base_Operation;
+ base_Operation = (Operation) eResolveProxy(oldBase_Operation);
+ if (base_Operation != oldBase_Operation) {
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, JavaPackage.JAVA_METHOD__BASE_OPERATION, oldBase_Operation, base_Operation));
+ }
+ }
+ }
+ return base_Operation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Operation basicGetBase_Operation() {
+ return base_Operation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setBase_Operation(Operation newBase_Operation) {
+ Operation oldBase_Operation = base_Operation;
+ base_Operation = newBase_Operation;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_METHOD__BASE_OPERATION, oldBase_Operation, base_Operation));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EList<String> getExplicitPlainTextRequiredImports() {
+ if (explicitPlainTextRequiredImports == null) {
+ explicitPlainTextRequiredImports = new EDataTypeEList<String>(String.class, this, JavaPackage.JAVA_METHOD__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS);
+ }
+ return explicitPlainTextRequiredImports;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EList<Classifier> getExplicitRequiredImports() {
+ if (explicitRequiredImports == null) {
+ explicitRequiredImports = new EObjectResolvingEList<Classifier>(Classifier.class, this, JavaPackage.JAVA_METHOD__EXPLICIT_REQUIRED_IMPORTS);
+ }
+ return explicitRequiredImports;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Classifier getExplicitRequiredImports(String name) {
+ return getExplicitRequiredImports(name, false, null);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Classifier getExplicitRequiredImports(String name, boolean ignoreCase, EClass eClass) {
+ explicitRequiredImportsLoop: for (Classifier explicitRequiredImports : getExplicitRequiredImports()) {
+ if (eClass != null && !eClass.isInstance(explicitRequiredImports)) {
+ continue explicitRequiredImportsLoop;
+ }
+ if (name != null && !(ignoreCase ? name.equalsIgnoreCase(explicitRequiredImports.getName()) : name.equals(explicitRequiredImports.getName()))) {
+ continue explicitRequiredImportsLoop;
+ }
+ return explicitRequiredImports;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case JavaPackage.JAVA_METHOD__IS_STATIC:
+ return isStatic();
+ case JavaPackage.JAVA_METHOD__IS_FINAL:
+ return isFinal();
+ case JavaPackage.JAVA_METHOD__IS_ABSTRACT:
+ return isAbstract();
+ case JavaPackage.JAVA_METHOD__IS_NATIVE:
+ return isNative();
+ case JavaPackage.JAVA_METHOD__IS_SYNCHRONIZED:
+ return isSynchronized();
+ case JavaPackage.JAVA_METHOD__IS_CONSTRUCTOR:
+ return isConstructor();
+ case JavaPackage.JAVA_METHOD__BASE_OPERATION:
+ if (resolve) {
+ return getBase_Operation();
+ }
+ return basicGetBase_Operation();
+ case JavaPackage.JAVA_METHOD__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS:
+ return getExplicitPlainTextRequiredImports();
+ case JavaPackage.JAVA_METHOD__EXPLICIT_REQUIRED_IMPORTS:
+ return getExplicitRequiredImports();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case JavaPackage.JAVA_METHOD__IS_STATIC:
+ setIsStatic((Boolean) newValue);
+ return;
+ case JavaPackage.JAVA_METHOD__IS_FINAL:
+ setIsFinal((Boolean) newValue);
+ return;
+ case JavaPackage.JAVA_METHOD__IS_ABSTRACT:
+ setIsAbstract((Boolean) newValue);
+ return;
+ case JavaPackage.JAVA_METHOD__IS_NATIVE:
+ setIsNative((Boolean) newValue);
+ return;
+ case JavaPackage.JAVA_METHOD__IS_SYNCHRONIZED:
+ setIsSynchronized((Boolean) newValue);
+ return;
+ case JavaPackage.JAVA_METHOD__IS_CONSTRUCTOR:
+ setIsConstructor((Boolean) newValue);
+ return;
+ case JavaPackage.JAVA_METHOD__BASE_OPERATION:
+ setBase_Operation((Operation) newValue);
+ return;
+ case JavaPackage.JAVA_METHOD__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS:
+ getExplicitPlainTextRequiredImports().clear();
+ getExplicitPlainTextRequiredImports().addAll((Collection<? extends String>) newValue);
+ return;
+ case JavaPackage.JAVA_METHOD__EXPLICIT_REQUIRED_IMPORTS:
+ getExplicitRequiredImports().clear();
+ getExplicitRequiredImports().addAll((Collection<? extends Classifier>) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case JavaPackage.JAVA_METHOD__IS_STATIC:
+ setIsStatic(IS_STATIC_EDEFAULT);
+ return;
+ case JavaPackage.JAVA_METHOD__IS_FINAL:
+ setIsFinal(IS_FINAL_EDEFAULT);
+ return;
+ case JavaPackage.JAVA_METHOD__IS_ABSTRACT:
+ setIsAbstract(IS_ABSTRACT_EDEFAULT);
+ return;
+ case JavaPackage.JAVA_METHOD__IS_NATIVE:
+ setIsNative(IS_NATIVE_EDEFAULT);
+ return;
+ case JavaPackage.JAVA_METHOD__IS_SYNCHRONIZED:
+ setIsSynchronized(IS_SYNCHRONIZED_EDEFAULT);
+ return;
+ case JavaPackage.JAVA_METHOD__IS_CONSTRUCTOR:
+ setIsConstructor(IS_CONSTRUCTOR_EDEFAULT);
+ return;
+ case JavaPackage.JAVA_METHOD__BASE_OPERATION:
+ setBase_Operation((Operation) null);
+ return;
+ case JavaPackage.JAVA_METHOD__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS:
+ getExplicitPlainTextRequiredImports().clear();
+ return;
+ case JavaPackage.JAVA_METHOD__EXPLICIT_REQUIRED_IMPORTS:
+ getExplicitRequiredImports().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case JavaPackage.JAVA_METHOD__IS_STATIC:
+ return isStatic != IS_STATIC_EDEFAULT;
+ case JavaPackage.JAVA_METHOD__IS_FINAL:
+ return isFinal != IS_FINAL_EDEFAULT;
+ case JavaPackage.JAVA_METHOD__IS_ABSTRACT:
+ return isAbstract != IS_ABSTRACT_EDEFAULT;
+ case JavaPackage.JAVA_METHOD__IS_NATIVE:
+ return isNative != IS_NATIVE_EDEFAULT;
+ case JavaPackage.JAVA_METHOD__IS_SYNCHRONIZED:
+ return isSynchronized != IS_SYNCHRONIZED_EDEFAULT;
+ case JavaPackage.JAVA_METHOD__IS_CONSTRUCTOR:
+ return isConstructor != IS_CONSTRUCTOR_EDEFAULT;
+ case JavaPackage.JAVA_METHOD__BASE_OPERATION:
+ return base_Operation != null;
+ case JavaPackage.JAVA_METHOD__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS:
+ return explicitPlainTextRequiredImports != null && !explicitPlainTextRequiredImports.isEmpty();
+ case JavaPackage.JAVA_METHOD__EXPLICIT_REQUIRED_IMPORTS:
+ return explicitRequiredImports != null && !explicitRequiredImports.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) {
+ return super.toString();
+ }
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (isStatic: ");
+ result.append(isStatic);
+ result.append(", isFinal: ");
+ result.append(isFinal);
+ result.append(", isAbstract: ");
+ result.append(isAbstract);
+ result.append(", isNative: ");
+ result.append(isNative);
+ result.append(", isSynchronized: ");
+ result.append(isSynchronized);
+ result.append(", isConstructor: ");
+ result.append(isConstructor);
+ result.append(", explicitPlainTextRequiredImports: ");
+ result.append(explicitPlainTextRequiredImports);
+ result.append(')');
+ return result.toString();
+ }
+
+} // JavaMethodImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaNamedElementImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaNamedElementImpl.java
new file mode 100644
index 00000000000..f3876cd8961
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaNamedElementImpl.java
@@ -0,0 +1,424 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.java.profile.java.JavaNamedElement;
+import org.eclipse.papyrus.java.profile.java.JavaPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Named Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaNamedElementImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaNamedElementImpl#getAuthor <em>Author</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaNamedElementImpl#getVersion <em>Version</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaNamedElementImpl#getComment <em>Comment</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaNamedElementImpl#isGenerated <em>Is Generated</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class JavaNamedElementImpl extends EObjectImpl implements JavaNamedElement {
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getAuthor() <em>Author</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getAuthor()
+ * @generated
+ * @ordered
+ */
+ protected static final String AUTHOR_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getAuthor() <em>Author</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getAuthor()
+ * @generated
+ * @ordered
+ */
+ protected String author = AUTHOR_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getVersion() <em>Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getVersion()
+ * @generated
+ * @ordered
+ */
+ protected static final String VERSION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getVersion() <em>Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getVersion()
+ * @generated
+ * @ordered
+ */
+ protected String version = VERSION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getComment() <em>Comment</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getComment()
+ * @generated
+ * @ordered
+ */
+ protected static final String COMMENT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getComment() <em>Comment</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getComment()
+ * @generated
+ * @ordered
+ */
+ protected String comment = COMMENT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isGenerated() <em>Is Generated</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isGenerated()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_GENERATED_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isGenerated() <em>Is Generated</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isGenerated()
+ * @generated
+ * @ordered
+ */
+ protected boolean isGenerated = IS_GENERATED_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JavaNamedElementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return JavaPackage.Literals.JAVA_NAMED_ELEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_NAMED_ELEMENT__NAME, oldName, name));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getAuthor() {
+ return author;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setAuthor(String newAuthor) {
+ String oldAuthor = author;
+ author = newAuthor;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_NAMED_ELEMENT__AUTHOR, oldAuthor, author));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getVersion() {
+ return version;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setVersion(String newVersion) {
+ String oldVersion = version;
+ version = newVersion;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_NAMED_ELEMENT__VERSION, oldVersion, version));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getComment() {
+ return comment;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setComment(String newComment) {
+ String oldComment = comment;
+ comment = newComment;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_NAMED_ELEMENT__COMMENT, oldComment, comment));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isGenerated() {
+ return isGenerated;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setIsGenerated(boolean newIsGenerated) {
+ boolean oldIsGenerated = isGenerated;
+ isGenerated = newIsGenerated;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_NAMED_ELEMENT__IS_GENERATED, oldIsGenerated, isGenerated));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case JavaPackage.JAVA_NAMED_ELEMENT__NAME:
+ return getName();
+ case JavaPackage.JAVA_NAMED_ELEMENT__AUTHOR:
+ return getAuthor();
+ case JavaPackage.JAVA_NAMED_ELEMENT__VERSION:
+ return getVersion();
+ case JavaPackage.JAVA_NAMED_ELEMENT__COMMENT:
+ return getComment();
+ case JavaPackage.JAVA_NAMED_ELEMENT__IS_GENERATED:
+ return isGenerated();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case JavaPackage.JAVA_NAMED_ELEMENT__NAME:
+ setName((String) newValue);
+ return;
+ case JavaPackage.JAVA_NAMED_ELEMENT__AUTHOR:
+ setAuthor((String) newValue);
+ return;
+ case JavaPackage.JAVA_NAMED_ELEMENT__VERSION:
+ setVersion((String) newValue);
+ return;
+ case JavaPackage.JAVA_NAMED_ELEMENT__COMMENT:
+ setComment((String) newValue);
+ return;
+ case JavaPackage.JAVA_NAMED_ELEMENT__IS_GENERATED:
+ setIsGenerated((Boolean) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case JavaPackage.JAVA_NAMED_ELEMENT__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case JavaPackage.JAVA_NAMED_ELEMENT__AUTHOR:
+ setAuthor(AUTHOR_EDEFAULT);
+ return;
+ case JavaPackage.JAVA_NAMED_ELEMENT__VERSION:
+ setVersion(VERSION_EDEFAULT);
+ return;
+ case JavaPackage.JAVA_NAMED_ELEMENT__COMMENT:
+ setComment(COMMENT_EDEFAULT);
+ return;
+ case JavaPackage.JAVA_NAMED_ELEMENT__IS_GENERATED:
+ setIsGenerated(IS_GENERATED_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case JavaPackage.JAVA_NAMED_ELEMENT__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case JavaPackage.JAVA_NAMED_ELEMENT__AUTHOR:
+ return AUTHOR_EDEFAULT == null ? author != null : !AUTHOR_EDEFAULT.equals(author);
+ case JavaPackage.JAVA_NAMED_ELEMENT__VERSION:
+ return VERSION_EDEFAULT == null ? version != null : !VERSION_EDEFAULT.equals(version);
+ case JavaPackage.JAVA_NAMED_ELEMENT__COMMENT:
+ return COMMENT_EDEFAULT == null ? comment != null : !COMMENT_EDEFAULT.equals(comment);
+ case JavaPackage.JAVA_NAMED_ELEMENT__IS_GENERATED:
+ return isGenerated != IS_GENERATED_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) {
+ return super.toString();
+ }
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(", author: ");
+ result.append(author);
+ result.append(", version: ");
+ result.append(version);
+ result.append(", comment: ");
+ result.append(comment);
+ result.append(", isGenerated: ");
+ result.append(isGenerated);
+ result.append(')');
+ return result.toString();
+ }
+
+} // JavaNamedElementImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaPackageImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaPackageImpl.java
new file mode 100644
index 00000000000..c692fe3aa4f
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaPackageImpl.java
@@ -0,0 +1,978 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.papyrus.java.profile.java.JavaClass;
+import org.eclipse.papyrus.java.profile.java.JavaFactory;
+import org.eclipse.papyrus.java.profile.java.JavaGen;
+import org.eclipse.papyrus.java.profile.java.JavaMethod;
+import org.eclipse.papyrus.java.profile.java.JavaNamedElement;
+import org.eclipse.papyrus.java.profile.java.JavaPackage;
+import org.eclipse.papyrus.java.profile.java.JavaPackage_;
+import org.eclipse.papyrus.java.profile.java.JavaParameter;
+import org.eclipse.papyrus.java.profile.java.JavaProject;
+import org.eclipse.papyrus.java.profile.java.JavaProperty;
+import org.eclipse.papyrus.java.profile.java.JavaSrcFolder;
+import org.eclipse.papyrus.java.profile.java.PrimitiveType;
+import org.eclipse.papyrus.java.profile.java.TrueFalseDefault;
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JavaPackageImpl extends EPackageImpl implements JavaPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass javaClassEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass javaGenEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass javaNamedElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass javaPackage_EClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass javaMethodEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass javaParameterEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass javaPropertyEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass primitiveTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass javaProjectEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass javaSrcFolderEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EEnum trueFalseDefaultEEnum = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>
+ * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also performs initialization of the package, or returns the registered package, if one already exists. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private JavaPackageImpl() {
+ super(eNS_URI, JavaFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>
+ * This method is used to initialize {@link JavaPackage#eINSTANCE} when that field is accessed. Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static JavaPackage init() {
+ if (isInited) {
+ return (JavaPackage) EPackage.Registry.INSTANCE.getEPackage(JavaPackage.eNS_URI);
+ }
+
+ // Obtain or create and register package
+ JavaPackageImpl theJavaPackage = (JavaPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof JavaPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new JavaPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ UMLPackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theJavaPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theJavaPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theJavaPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(JavaPackage.eNS_URI, theJavaPackage);
+ return theJavaPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getJavaClass() {
+ return javaClassEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJavaClass_Base_Classifier() {
+ return (EReference) javaClassEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJavaClass_IsFinal() {
+ return (EAttribute) javaClassEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJavaClass_IsAbstract() {
+ return (EAttribute) javaClassEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJavaClass_IsStatic() {
+ return (EAttribute) javaClassEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJavaClass_ExplicitPlainTextRequiredImports() {
+ return (EAttribute) javaClassEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJavaClass_ExplicitRequiredImports() {
+ return (EReference) javaClassEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getJavaGen() {
+ return javaGenEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJavaGen_SrcName() {
+ return (EAttribute) javaGenEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJavaGen_ProjectName() {
+ return (EAttribute) javaGenEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getJavaNamedElement() {
+ return javaNamedElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJavaNamedElement_Name() {
+ return (EAttribute) javaNamedElementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJavaNamedElement_Author() {
+ return (EAttribute) javaNamedElementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJavaNamedElement_Version() {
+ return (EAttribute) javaNamedElementEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJavaNamedElement_Comment() {
+ return (EAttribute) javaNamedElementEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJavaNamedElement_IsGenerated() {
+ return (EAttribute) javaNamedElementEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getJavaPackage_() {
+ return javaPackage_EClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJavaPackage__PackageName() {
+ return (EAttribute) javaPackage_EClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJavaPackage__Base_Package() {
+ return (EReference) javaPackage_EClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getJavaMethod() {
+ return javaMethodEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJavaMethod_IsStatic() {
+ return (EAttribute) javaMethodEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJavaMethod_IsFinal() {
+ return (EAttribute) javaMethodEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJavaMethod_IsAbstract() {
+ return (EAttribute) javaMethodEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJavaMethod_IsNative() {
+ return (EAttribute) javaMethodEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJavaMethod_IsSynchronized() {
+ return (EAttribute) javaMethodEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJavaMethod_IsConstructor() {
+ return (EAttribute) javaMethodEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJavaMethod_Base_Operation() {
+ return (EReference) javaMethodEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJavaMethod_ExplicitPlainTextRequiredImports() {
+ return (EAttribute) javaMethodEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJavaMethod_ExplicitRequiredImports() {
+ return (EReference) javaMethodEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getJavaParameter() {
+ return javaParameterEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJavaParameter_IsFinal() {
+ return (EAttribute) javaParameterEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJavaParameter_Base_Parameter() {
+ return (EReference) javaParameterEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getJavaProperty() {
+ return javaPropertyEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJavaProperty_IsAbstract() {
+ return (EAttribute) javaPropertyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJavaProperty_IsFinal() {
+ return (EAttribute) javaPropertyEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJavaProperty_Base_Property() {
+ return (EReference) javaPropertyEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJavaProperty_IsTransient() {
+ return (EAttribute) javaPropertyEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJavaProperty_GenerateGetter() {
+ return (EAttribute) javaPropertyEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJavaProperty_GenerateSetter() {
+ return (EAttribute) javaPropertyEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJavaProperty_IsStatic() {
+ return (EAttribute) javaPropertyEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getJavaProperty_ExplicitPlainTextRequiredImports() {
+ return (EAttribute) javaPropertyEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJavaProperty_ExplicitRequiredImports() {
+ return (EReference) javaPropertyEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getPrimitiveType() {
+ return primitiveTypeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getPrimitiveType_ImplementationClass() {
+ return (EAttribute) primitiveTypeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getPrimitiveType_Base_PrimitiveType() {
+ return (EReference) primitiveTypeEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getPrimitiveType_CollectionImplementationClass() {
+ return (EAttribute) primitiveTypeEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getJavaProject() {
+ return javaProjectEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJavaProject_Base_Package() {
+ return (EReference) javaProjectEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getJavaSrcFolder() {
+ return javaSrcFolderEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getJavaSrcFolder_Base_Package() {
+ return (EReference) javaSrcFolderEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EEnum getTrueFalseDefault() {
+ return trueFalseDefaultEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public JavaFactory getJavaFactory() {
+ return (JavaFactory) getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) {
+ return;
+ }
+ isCreated = true;
+
+ // Create classes and their features
+ javaClassEClass = createEClass(JAVA_CLASS);
+ createEReference(javaClassEClass, JAVA_CLASS__BASE_CLASSIFIER);
+ createEAttribute(javaClassEClass, JAVA_CLASS__IS_FINAL);
+ createEAttribute(javaClassEClass, JAVA_CLASS__IS_ABSTRACT);
+ createEAttribute(javaClassEClass, JAVA_CLASS__IS_STATIC);
+ createEAttribute(javaClassEClass, JAVA_CLASS__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS);
+ createEReference(javaClassEClass, JAVA_CLASS__EXPLICIT_REQUIRED_IMPORTS);
+
+ javaGenEClass = createEClass(JAVA_GEN);
+ createEAttribute(javaGenEClass, JAVA_GEN__SRC_NAME);
+ createEAttribute(javaGenEClass, JAVA_GEN__PROJECT_NAME);
+
+ javaNamedElementEClass = createEClass(JAVA_NAMED_ELEMENT);
+ createEAttribute(javaNamedElementEClass, JAVA_NAMED_ELEMENT__NAME);
+ createEAttribute(javaNamedElementEClass, JAVA_NAMED_ELEMENT__AUTHOR);
+ createEAttribute(javaNamedElementEClass, JAVA_NAMED_ELEMENT__VERSION);
+ createEAttribute(javaNamedElementEClass, JAVA_NAMED_ELEMENT__COMMENT);
+ createEAttribute(javaNamedElementEClass, JAVA_NAMED_ELEMENT__IS_GENERATED);
+
+ javaPackage_EClass = createEClass(JAVA_PACKAGE_);
+ createEAttribute(javaPackage_EClass, JAVA_PACKAGE___PACKAGE_NAME);
+ createEReference(javaPackage_EClass, JAVA_PACKAGE___BASE_PACKAGE);
+
+ javaMethodEClass = createEClass(JAVA_METHOD);
+ createEAttribute(javaMethodEClass, JAVA_METHOD__IS_STATIC);
+ createEAttribute(javaMethodEClass, JAVA_METHOD__IS_FINAL);
+ createEAttribute(javaMethodEClass, JAVA_METHOD__IS_ABSTRACT);
+ createEAttribute(javaMethodEClass, JAVA_METHOD__IS_NATIVE);
+ createEAttribute(javaMethodEClass, JAVA_METHOD__IS_SYNCHRONIZED);
+ createEAttribute(javaMethodEClass, JAVA_METHOD__IS_CONSTRUCTOR);
+ createEReference(javaMethodEClass, JAVA_METHOD__BASE_OPERATION);
+ createEAttribute(javaMethodEClass, JAVA_METHOD__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS);
+ createEReference(javaMethodEClass, JAVA_METHOD__EXPLICIT_REQUIRED_IMPORTS);
+
+ javaParameterEClass = createEClass(JAVA_PARAMETER);
+ createEAttribute(javaParameterEClass, JAVA_PARAMETER__IS_FINAL);
+ createEReference(javaParameterEClass, JAVA_PARAMETER__BASE_PARAMETER);
+
+ javaPropertyEClass = createEClass(JAVA_PROPERTY);
+ createEAttribute(javaPropertyEClass, JAVA_PROPERTY__IS_ABSTRACT);
+ createEAttribute(javaPropertyEClass, JAVA_PROPERTY__IS_FINAL);
+ createEReference(javaPropertyEClass, JAVA_PROPERTY__BASE_PROPERTY);
+ createEAttribute(javaPropertyEClass, JAVA_PROPERTY__IS_TRANSIENT);
+ createEAttribute(javaPropertyEClass, JAVA_PROPERTY__GENERATE_GETTER);
+ createEAttribute(javaPropertyEClass, JAVA_PROPERTY__GENERATE_SETTER);
+ createEAttribute(javaPropertyEClass, JAVA_PROPERTY__IS_STATIC);
+ createEAttribute(javaPropertyEClass, JAVA_PROPERTY__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS);
+ createEReference(javaPropertyEClass, JAVA_PROPERTY__EXPLICIT_REQUIRED_IMPORTS);
+
+ primitiveTypeEClass = createEClass(PRIMITIVE_TYPE);
+ createEAttribute(primitiveTypeEClass, PRIMITIVE_TYPE__IMPLEMENTATION_CLASS);
+ createEReference(primitiveTypeEClass, PRIMITIVE_TYPE__BASE_PRIMITIVE_TYPE);
+ createEAttribute(primitiveTypeEClass, PRIMITIVE_TYPE__COLLECTION_IMPLEMENTATION_CLASS);
+
+ javaProjectEClass = createEClass(JAVA_PROJECT);
+ createEReference(javaProjectEClass, JAVA_PROJECT__BASE_PACKAGE);
+
+ javaSrcFolderEClass = createEClass(JAVA_SRC_FOLDER);
+ createEReference(javaSrcFolderEClass, JAVA_SRC_FOLDER__BASE_PACKAGE);
+
+ // Create enums
+ trueFalseDefaultEEnum = createEEnum(TRUE_FALSE_DEFAULT);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) {
+ return;
+ }
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ UMLPackage theUMLPackage = (UMLPackage) EPackage.Registry.INSTANCE.getEPackage(UMLPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ javaClassEClass.getESuperTypes().add(this.getJavaGen());
+ javaGenEClass.getESuperTypes().add(this.getJavaNamedElement());
+ javaPackage_EClass.getESuperTypes().add(this.getJavaGen());
+ javaMethodEClass.getESuperTypes().add(this.getJavaNamedElement());
+ javaParameterEClass.getESuperTypes().add(this.getJavaNamedElement());
+ javaPropertyEClass.getESuperTypes().add(this.getJavaNamedElement());
+ primitiveTypeEClass.getESuperTypes().add(this.getJavaGen());
+ javaProjectEClass.getESuperTypes().add(this.getJavaGen());
+ javaSrcFolderEClass.getESuperTypes().add(this.getJavaGen());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(javaClassEClass, JavaClass.class, "JavaClass", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getJavaClass_Base_Classifier(), theUMLPackage.getClassifier(), null, "base_Classifier", null, 1, 1, JavaClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED,
+ !IS_ORDERED);
+ initEAttribute(getJavaClass_IsFinal(), ecorePackage.getEBoolean(), "isFinal", null, 1, 1, JavaClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJavaClass_IsAbstract(), ecorePackage.getEBoolean(), "isAbstract", null, 1, 1, JavaClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJavaClass_IsStatic(), ecorePackage.getEBoolean(), "isStatic", null, 1, 1, JavaClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJavaClass_ExplicitPlainTextRequiredImports(), ecorePackage.getEString(), "explicitPlainTextRequiredImports", null, 0, -1, JavaClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED,
+ !IS_ORDERED);
+ initEReference(getJavaClass_ExplicitRequiredImports(), theUMLPackage.getClassifier(), null, "explicitRequiredImports", null, 0, -1, JavaClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(javaGenEClass, JavaGen.class, "JavaGen", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getJavaGen_SrcName(), ecorePackage.getEString(), "srcName", null, 1, 1, JavaGen.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJavaGen_ProjectName(), ecorePackage.getEString(), "projectName", null, 1, 1, JavaGen.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(javaNamedElementEClass, JavaNamedElement.class, "JavaNamedElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getJavaNamedElement_Name(), ecorePackage.getEString(), "name", null, 1, 1, JavaNamedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJavaNamedElement_Author(), ecorePackage.getEString(), "author", null, 1, 1, JavaNamedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJavaNamedElement_Version(), ecorePackage.getEString(), "version", null, 1, 1, JavaNamedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJavaNamedElement_Comment(), ecorePackage.getEString(), "comment", null, 1, 1, JavaNamedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJavaNamedElement_IsGenerated(), ecorePackage.getEBoolean(), "isGenerated", "true", 1, 1, JavaNamedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(javaPackage_EClass, JavaPackage_.class, "JavaPackage_", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getJavaPackage__PackageName(), ecorePackage.getEString(), "packageName", null, 1, 1, JavaPackage_.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getJavaPackage__Base_Package(), theUMLPackage.getPackage(), null, "base_Package", null, 1, 1, JavaPackage_.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED,
+ !IS_ORDERED);
+
+ initEClass(javaMethodEClass, JavaMethod.class, "JavaMethod", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getJavaMethod_IsStatic(), ecorePackage.getEBoolean(), "isStatic", null, 1, 1, JavaMethod.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJavaMethod_IsFinal(), ecorePackage.getEBoolean(), "isFinal", null, 1, 1, JavaMethod.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJavaMethod_IsAbstract(), ecorePackage.getEBoolean(), "isAbstract", null, 1, 1, JavaMethod.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJavaMethod_IsNative(), ecorePackage.getEBoolean(), "isNative", null, 1, 1, JavaMethod.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJavaMethod_IsSynchronized(), ecorePackage.getEBoolean(), "isSynchronized", null, 1, 1, JavaMethod.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJavaMethod_IsConstructor(), ecorePackage.getEBoolean(), "isConstructor", null, 1, 1, JavaMethod.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getJavaMethod_Base_Operation(), theUMLPackage.getOperation(), null, "base_Operation", null, 1, 1, JavaMethod.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED,
+ !IS_ORDERED);
+ initEAttribute(getJavaMethod_ExplicitPlainTextRequiredImports(), ecorePackage.getEString(), "explicitPlainTextRequiredImports", null, 0, -1, JavaMethod.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED,
+ !IS_ORDERED);
+ initEReference(getJavaMethod_ExplicitRequiredImports(), theUMLPackage.getClassifier(), null, "explicitRequiredImports", null, 0, -1, JavaMethod.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(javaParameterEClass, JavaParameter.class, "JavaParameter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getJavaParameter_IsFinal(), ecorePackage.getEBoolean(), "isFinal", null, 1, 1, JavaParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getJavaParameter_Base_Parameter(), theUMLPackage.getParameter(), null, "base_Parameter", null, 1, 1, JavaParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE,
+ !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(javaPropertyEClass, JavaProperty.class, "JavaProperty", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getJavaProperty_IsAbstract(), ecorePackage.getEBoolean(), "isAbstract", null, 1, 1, JavaProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJavaProperty_IsFinal(), ecorePackage.getEBoolean(), "isFinal", null, 1, 1, JavaProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getJavaProperty_Base_Property(), theUMLPackage.getProperty(), null, "base_Property", null, 1, 1, JavaProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED,
+ !IS_ORDERED);
+ initEAttribute(getJavaProperty_IsTransient(), ecorePackage.getEBoolean(), "isTransient", null, 1, 1, JavaProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJavaProperty_GenerateGetter(), this.getTrueFalseDefault(), "generateGetter", "default", 1, 1, JavaProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJavaProperty_GenerateSetter(), this.getTrueFalseDefault(), "generateSetter", "default", 1, 1, JavaProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJavaProperty_IsStatic(), ecorePackage.getEBoolean(), "isStatic", null, 1, 1, JavaProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getJavaProperty_ExplicitPlainTextRequiredImports(), ecorePackage.getEString(), "explicitPlainTextRequiredImports", null, 0, -1, JavaProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE,
+ !IS_DERIVED, !IS_ORDERED);
+ initEReference(getJavaProperty_ExplicitRequiredImports(), theUMLPackage.getClassifier(), null, "explicitRequiredImports", null, 0, -1, JavaProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(primitiveTypeEClass, PrimitiveType.class, "PrimitiveType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getPrimitiveType_ImplementationClass(), ecorePackage.getEString(), "implementationClass", null, 1, 1, PrimitiveType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getPrimitiveType_Base_PrimitiveType(), theUMLPackage.getPrimitiveType(), null, "base_PrimitiveType", null, 1, 1, PrimitiveType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getPrimitiveType_CollectionImplementationClass(), ecorePackage.getEString(), "collectionImplementationClass", null, 1, 1, PrimitiveType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED,
+ !IS_ORDERED);
+
+ initEClass(javaProjectEClass, JavaProject.class, "JavaProject", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getJavaProject_Base_Package(), theUMLPackage.getPackage(), null, "base_Package", null, 1, 1, JavaProject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+ !IS_ORDERED);
+
+ initEClass(javaSrcFolderEClass, JavaSrcFolder.class, "JavaSrcFolder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getJavaSrcFolder_Base_Package(), theUMLPackage.getPackage(), null, "base_Package", null, 1, 1, JavaSrcFolder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+ !IS_ORDERED);
+
+ // Initialize enums and add enum literals
+ initEEnum(trueFalseDefaultEEnum, TrueFalseDefault.class, "TrueFalseDefault");
+ addEEnumLiteral(trueFalseDefaultEEnum, TrueFalseDefault.TRUE);
+ addEEnumLiteral(trueFalseDefaultEEnum, TrueFalseDefault.FALSE);
+ addEEnumLiteral(trueFalseDefaultEEnum, TrueFalseDefault.DEFAULT);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} // JavaPackageImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaPackage_Impl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaPackage_Impl.java
new file mode 100644
index 00000000000..845bb0e70d8
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaPackage_Impl.java
@@ -0,0 +1,250 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.papyrus.java.profile.java.JavaPackage;
+import org.eclipse.papyrus.java.profile.java.JavaPackage_;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Package </b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaPackage_Impl#getPackageName <em>Package Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaPackage_Impl#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class JavaPackage_Impl extends JavaGenImpl implements JavaPackage_ {
+ /**
+ * The default value of the '{@link #getPackageName() <em>Package Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getPackageName()
+ * @generated
+ * @ordered
+ */
+ protected static final String PACKAGE_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getPackageName() <em>Package Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getPackageName()
+ * @generated
+ * @ordered
+ */
+ protected String packageName = PACKAGE_NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getBase_Package() <em>Base Package</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getBase_Package()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Package base_Package;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JavaPackage_Impl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return JavaPackage.Literals.JAVA_PACKAGE_;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getPackageName() {
+ return packageName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setPackageName(String newPackageName) {
+ String oldPackageName = packageName;
+ packageName = newPackageName;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_PACKAGE___PACKAGE_NAME, oldPackageName, packageName));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Package getBase_Package() {
+ if (base_Package != null && base_Package.eIsProxy()) {
+ InternalEObject oldBase_Package = (InternalEObject) base_Package;
+ base_Package = (org.eclipse.uml2.uml.Package) eResolveProxy(oldBase_Package);
+ if (base_Package != oldBase_Package) {
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, JavaPackage.JAVA_PACKAGE___BASE_PACKAGE, oldBase_Package, base_Package));
+ }
+ }
+ }
+ return base_Package;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Package basicGetBase_Package() {
+ return base_Package;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setBase_Package(org.eclipse.uml2.uml.Package newBase_Package) {
+ org.eclipse.uml2.uml.Package oldBase_Package = base_Package;
+ base_Package = newBase_Package;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_PACKAGE___BASE_PACKAGE, oldBase_Package, base_Package));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case JavaPackage.JAVA_PACKAGE___PACKAGE_NAME:
+ return getPackageName();
+ case JavaPackage.JAVA_PACKAGE___BASE_PACKAGE:
+ if (resolve) {
+ return getBase_Package();
+ }
+ return basicGetBase_Package();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case JavaPackage.JAVA_PACKAGE___PACKAGE_NAME:
+ setPackageName((String) newValue);
+ return;
+ case JavaPackage.JAVA_PACKAGE___BASE_PACKAGE:
+ setBase_Package((org.eclipse.uml2.uml.Package) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case JavaPackage.JAVA_PACKAGE___PACKAGE_NAME:
+ setPackageName(PACKAGE_NAME_EDEFAULT);
+ return;
+ case JavaPackage.JAVA_PACKAGE___BASE_PACKAGE:
+ setBase_Package((org.eclipse.uml2.uml.Package) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case JavaPackage.JAVA_PACKAGE___PACKAGE_NAME:
+ return PACKAGE_NAME_EDEFAULT == null ? packageName != null : !PACKAGE_NAME_EDEFAULT.equals(packageName);
+ case JavaPackage.JAVA_PACKAGE___BASE_PACKAGE:
+ return base_Package != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) {
+ return super.toString();
+ }
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (packageName: ");
+ result.append(packageName);
+ result.append(')');
+ return result.toString();
+ }
+
+} // JavaPackage_Impl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaParameterImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaParameterImpl.java
new file mode 100644
index 00000000000..e554cd837cc
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaParameterImpl.java
@@ -0,0 +1,251 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.papyrus.java.profile.java.JavaPackage;
+import org.eclipse.papyrus.java.profile.java.JavaParameter;
+import org.eclipse.uml2.uml.Parameter;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Parameter</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaParameterImpl#isFinal <em>Is Final</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaParameterImpl#getBase_Parameter <em>Base Parameter</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class JavaParameterImpl extends JavaNamedElementImpl implements JavaParameter {
+ /**
+ * The default value of the '{@link #isFinal() <em>Is Final</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isFinal()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_FINAL_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isFinal() <em>Is Final</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isFinal()
+ * @generated
+ * @ordered
+ */
+ protected boolean isFinal = IS_FINAL_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getBase_Parameter() <em>Base Parameter</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getBase_Parameter()
+ * @generated
+ * @ordered
+ */
+ protected Parameter base_Parameter;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JavaParameterImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return JavaPackage.Literals.JAVA_PARAMETER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isFinal() {
+ return isFinal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setIsFinal(boolean newIsFinal) {
+ boolean oldIsFinal = isFinal;
+ isFinal = newIsFinal;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_PARAMETER__IS_FINAL, oldIsFinal, isFinal));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Parameter getBase_Parameter() {
+ if (base_Parameter != null && base_Parameter.eIsProxy()) {
+ InternalEObject oldBase_Parameter = (InternalEObject) base_Parameter;
+ base_Parameter = (Parameter) eResolveProxy(oldBase_Parameter);
+ if (base_Parameter != oldBase_Parameter) {
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, JavaPackage.JAVA_PARAMETER__BASE_PARAMETER, oldBase_Parameter, base_Parameter));
+ }
+ }
+ }
+ return base_Parameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Parameter basicGetBase_Parameter() {
+ return base_Parameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setBase_Parameter(Parameter newBase_Parameter) {
+ Parameter oldBase_Parameter = base_Parameter;
+ base_Parameter = newBase_Parameter;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_PARAMETER__BASE_PARAMETER, oldBase_Parameter, base_Parameter));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case JavaPackage.JAVA_PARAMETER__IS_FINAL:
+ return isFinal();
+ case JavaPackage.JAVA_PARAMETER__BASE_PARAMETER:
+ if (resolve) {
+ return getBase_Parameter();
+ }
+ return basicGetBase_Parameter();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case JavaPackage.JAVA_PARAMETER__IS_FINAL:
+ setIsFinal((Boolean) newValue);
+ return;
+ case JavaPackage.JAVA_PARAMETER__BASE_PARAMETER:
+ setBase_Parameter((Parameter) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case JavaPackage.JAVA_PARAMETER__IS_FINAL:
+ setIsFinal(IS_FINAL_EDEFAULT);
+ return;
+ case JavaPackage.JAVA_PARAMETER__BASE_PARAMETER:
+ setBase_Parameter((Parameter) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case JavaPackage.JAVA_PARAMETER__IS_FINAL:
+ return isFinal != IS_FINAL_EDEFAULT;
+ case JavaPackage.JAVA_PARAMETER__BASE_PARAMETER:
+ return base_Parameter != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) {
+ return super.toString();
+ }
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (isFinal: ");
+ result.append(isFinal);
+ result.append(')');
+ return result.toString();
+ }
+
+} // JavaParameterImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaProjectImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaProjectImpl.java
new file mode 100644
index 00000000000..7c356b1ec6a
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaProjectImpl.java
@@ -0,0 +1,172 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.papyrus.java.profile.java.JavaPackage;
+import org.eclipse.papyrus.java.profile.java.JavaProject;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Project</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaProjectImpl#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class JavaProjectImpl extends JavaGenImpl implements JavaProject {
+ /**
+ * The cached value of the '{@link #getBase_Package() <em>Base Package</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getBase_Package()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Package base_Package;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JavaProjectImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return JavaPackage.Literals.JAVA_PROJECT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Package getBase_Package() {
+ if (base_Package != null && base_Package.eIsProxy()) {
+ InternalEObject oldBase_Package = (InternalEObject) base_Package;
+ base_Package = (org.eclipse.uml2.uml.Package) eResolveProxy(oldBase_Package);
+ if (base_Package != oldBase_Package) {
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, JavaPackage.JAVA_PROJECT__BASE_PACKAGE, oldBase_Package, base_Package));
+ }
+ }
+ }
+ return base_Package;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Package basicGetBase_Package() {
+ return base_Package;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setBase_Package(org.eclipse.uml2.uml.Package newBase_Package) {
+ org.eclipse.uml2.uml.Package oldBase_Package = base_Package;
+ base_Package = newBase_Package;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_PROJECT__BASE_PACKAGE, oldBase_Package, base_Package));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case JavaPackage.JAVA_PROJECT__BASE_PACKAGE:
+ if (resolve) {
+ return getBase_Package();
+ }
+ return basicGetBase_Package();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case JavaPackage.JAVA_PROJECT__BASE_PACKAGE:
+ setBase_Package((org.eclipse.uml2.uml.Package) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case JavaPackage.JAVA_PROJECT__BASE_PACKAGE:
+ setBase_Package((org.eclipse.uml2.uml.Package) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case JavaPackage.JAVA_PROJECT__BASE_PACKAGE:
+ return base_Package != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // JavaProjectImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaPropertyImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaPropertyImpl.java
new file mode 100644
index 00000000000..e1214355ae8
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaPropertyImpl.java
@@ -0,0 +1,671 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EDataTypeEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.papyrus.java.profile.java.JavaPackage;
+import org.eclipse.papyrus.java.profile.java.JavaProperty;
+import org.eclipse.papyrus.java.profile.java.TrueFalseDefault;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Property</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaPropertyImpl#isAbstract <em>Is Abstract</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaPropertyImpl#isFinal <em>Is Final</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaPropertyImpl#getBase_Property <em>Base Property</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaPropertyImpl#isTransient <em>Is Transient</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaPropertyImpl#getGenerateGetter <em>Generate Getter</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaPropertyImpl#getGenerateSetter <em>Generate Setter</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaPropertyImpl#isStatic <em>Is Static</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaPropertyImpl#getExplicitPlainTextRequiredImports <em>Explicit Plain Text Required Imports</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaPropertyImpl#getExplicitRequiredImports <em>Explicit Required Imports</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class JavaPropertyImpl extends JavaNamedElementImpl implements JavaProperty {
+ /**
+ * The default value of the '{@link #isAbstract() <em>Is Abstract</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isAbstract()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_ABSTRACT_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isAbstract() <em>Is Abstract</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isAbstract()
+ * @generated
+ * @ordered
+ */
+ protected boolean isAbstract = IS_ABSTRACT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isFinal() <em>Is Final</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isFinal()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_FINAL_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isFinal() <em>Is Final</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isFinal()
+ * @generated
+ * @ordered
+ */
+ protected boolean isFinal = IS_FINAL_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getBase_Property() <em>Base Property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getBase_Property()
+ * @generated
+ * @ordered
+ */
+ protected Property base_Property;
+
+ /**
+ * The default value of the '{@link #isTransient() <em>Is Transient</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isTransient()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_TRANSIENT_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isTransient() <em>Is Transient</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isTransient()
+ * @generated
+ * @ordered
+ */
+ protected boolean isTransient = IS_TRANSIENT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getGenerateGetter() <em>Generate Getter</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getGenerateGetter()
+ * @generated
+ * @ordered
+ */
+ protected static final TrueFalseDefault GENERATE_GETTER_EDEFAULT = TrueFalseDefault.DEFAULT;
+
+ /**
+ * The cached value of the '{@link #getGenerateGetter() <em>Generate Getter</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getGenerateGetter()
+ * @generated
+ * @ordered
+ */
+ protected TrueFalseDefault generateGetter = GENERATE_GETTER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getGenerateSetter() <em>Generate Setter</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getGenerateSetter()
+ * @generated
+ * @ordered
+ */
+ protected static final TrueFalseDefault GENERATE_SETTER_EDEFAULT = TrueFalseDefault.DEFAULT;
+
+ /**
+ * The cached value of the '{@link #getGenerateSetter() <em>Generate Setter</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getGenerateSetter()
+ * @generated
+ * @ordered
+ */
+ protected TrueFalseDefault generateSetter = GENERATE_SETTER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isStatic() <em>Is Static</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isStatic()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_STATIC_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isStatic() <em>Is Static</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isStatic()
+ * @generated
+ * @ordered
+ */
+ protected boolean isStatic = IS_STATIC_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getExplicitPlainTextRequiredImports() <em>Explicit Plain Text Required Imports</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getExplicitPlainTextRequiredImports()
+ * @generated
+ * @ordered
+ */
+ protected EList<String> explicitPlainTextRequiredImports;
+
+ /**
+ * The cached value of the '{@link #getExplicitRequiredImports() <em>Explicit Required Imports</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getExplicitRequiredImports()
+ * @generated
+ * @ordered
+ */
+ protected EList<Classifier> explicitRequiredImports;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JavaPropertyImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return JavaPackage.Literals.JAVA_PROPERTY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isAbstract() {
+ return isAbstract;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setIsAbstract(boolean newIsAbstract) {
+ boolean oldIsAbstract = isAbstract;
+ isAbstract = newIsAbstract;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_PROPERTY__IS_ABSTRACT, oldIsAbstract, isAbstract));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isFinal() {
+ return isFinal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setIsFinal(boolean newIsFinal) {
+ boolean oldIsFinal = isFinal;
+ isFinal = newIsFinal;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_PROPERTY__IS_FINAL, oldIsFinal, isFinal));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Property getBase_Property() {
+ if (base_Property != null && base_Property.eIsProxy()) {
+ InternalEObject oldBase_Property = (InternalEObject) base_Property;
+ base_Property = (Property) eResolveProxy(oldBase_Property);
+ if (base_Property != oldBase_Property) {
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, JavaPackage.JAVA_PROPERTY__BASE_PROPERTY, oldBase_Property, base_Property));
+ }
+ }
+ }
+ return base_Property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Property basicGetBase_Property() {
+ return base_Property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setBase_Property(Property newBase_Property) {
+ Property oldBase_Property = base_Property;
+ base_Property = newBase_Property;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_PROPERTY__BASE_PROPERTY, oldBase_Property, base_Property));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isTransient() {
+ return isTransient;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setIsTransient(boolean newIsTransient) {
+ boolean oldIsTransient = isTransient;
+ isTransient = newIsTransient;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_PROPERTY__IS_TRANSIENT, oldIsTransient, isTransient));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public TrueFalseDefault getGenerateGetter() {
+ return generateGetter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setGenerateGetter(TrueFalseDefault newGenerateGetter) {
+ TrueFalseDefault oldGenerateGetter = generateGetter;
+ generateGetter = newGenerateGetter == null ? GENERATE_GETTER_EDEFAULT : newGenerateGetter;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_PROPERTY__GENERATE_GETTER, oldGenerateGetter, generateGetter));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public TrueFalseDefault getGenerateSetter() {
+ return generateSetter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setGenerateSetter(TrueFalseDefault newGenerateSetter) {
+ TrueFalseDefault oldGenerateSetter = generateSetter;
+ generateSetter = newGenerateSetter == null ? GENERATE_SETTER_EDEFAULT : newGenerateSetter;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_PROPERTY__GENERATE_SETTER, oldGenerateSetter, generateSetter));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isStatic() {
+ return isStatic;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setIsStatic(boolean newIsStatic) {
+ boolean oldIsStatic = isStatic;
+ isStatic = newIsStatic;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_PROPERTY__IS_STATIC, oldIsStatic, isStatic));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EList<String> getExplicitPlainTextRequiredImports() {
+ if (explicitPlainTextRequiredImports == null) {
+ explicitPlainTextRequiredImports = new EDataTypeEList<String>(String.class, this, JavaPackage.JAVA_PROPERTY__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS);
+ }
+ return explicitPlainTextRequiredImports;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EList<Classifier> getExplicitRequiredImports() {
+ if (explicitRequiredImports == null) {
+ explicitRequiredImports = new EObjectResolvingEList<Classifier>(Classifier.class, this, JavaPackage.JAVA_PROPERTY__EXPLICIT_REQUIRED_IMPORTS);
+ }
+ return explicitRequiredImports;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Classifier getExplicitRequiredImports(String name) {
+ return getExplicitRequiredImports(name, false, null);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Classifier getExplicitRequiredImports(String name, boolean ignoreCase, EClass eClass) {
+ explicitRequiredImportsLoop: for (Classifier explicitRequiredImports : getExplicitRequiredImports()) {
+ if (eClass != null && !eClass.isInstance(explicitRequiredImports)) {
+ continue explicitRequiredImportsLoop;
+ }
+ if (name != null && !(ignoreCase ? name.equalsIgnoreCase(explicitRequiredImports.getName()) : name.equals(explicitRequiredImports.getName()))) {
+ continue explicitRequiredImportsLoop;
+ }
+ return explicitRequiredImports;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case JavaPackage.JAVA_PROPERTY__IS_ABSTRACT:
+ return isAbstract();
+ case JavaPackage.JAVA_PROPERTY__IS_FINAL:
+ return isFinal();
+ case JavaPackage.JAVA_PROPERTY__BASE_PROPERTY:
+ if (resolve) {
+ return getBase_Property();
+ }
+ return basicGetBase_Property();
+ case JavaPackage.JAVA_PROPERTY__IS_TRANSIENT:
+ return isTransient();
+ case JavaPackage.JAVA_PROPERTY__GENERATE_GETTER:
+ return getGenerateGetter();
+ case JavaPackage.JAVA_PROPERTY__GENERATE_SETTER:
+ return getGenerateSetter();
+ case JavaPackage.JAVA_PROPERTY__IS_STATIC:
+ return isStatic();
+ case JavaPackage.JAVA_PROPERTY__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS:
+ return getExplicitPlainTextRequiredImports();
+ case JavaPackage.JAVA_PROPERTY__EXPLICIT_REQUIRED_IMPORTS:
+ return getExplicitRequiredImports();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case JavaPackage.JAVA_PROPERTY__IS_ABSTRACT:
+ setIsAbstract((Boolean) newValue);
+ return;
+ case JavaPackage.JAVA_PROPERTY__IS_FINAL:
+ setIsFinal((Boolean) newValue);
+ return;
+ case JavaPackage.JAVA_PROPERTY__BASE_PROPERTY:
+ setBase_Property((Property) newValue);
+ return;
+ case JavaPackage.JAVA_PROPERTY__IS_TRANSIENT:
+ setIsTransient((Boolean) newValue);
+ return;
+ case JavaPackage.JAVA_PROPERTY__GENERATE_GETTER:
+ setGenerateGetter((TrueFalseDefault) newValue);
+ return;
+ case JavaPackage.JAVA_PROPERTY__GENERATE_SETTER:
+ setGenerateSetter((TrueFalseDefault) newValue);
+ return;
+ case JavaPackage.JAVA_PROPERTY__IS_STATIC:
+ setIsStatic((Boolean) newValue);
+ return;
+ case JavaPackage.JAVA_PROPERTY__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS:
+ getExplicitPlainTextRequiredImports().clear();
+ getExplicitPlainTextRequiredImports().addAll((Collection<? extends String>) newValue);
+ return;
+ case JavaPackage.JAVA_PROPERTY__EXPLICIT_REQUIRED_IMPORTS:
+ getExplicitRequiredImports().clear();
+ getExplicitRequiredImports().addAll((Collection<? extends Classifier>) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case JavaPackage.JAVA_PROPERTY__IS_ABSTRACT:
+ setIsAbstract(IS_ABSTRACT_EDEFAULT);
+ return;
+ case JavaPackage.JAVA_PROPERTY__IS_FINAL:
+ setIsFinal(IS_FINAL_EDEFAULT);
+ return;
+ case JavaPackage.JAVA_PROPERTY__BASE_PROPERTY:
+ setBase_Property((Property) null);
+ return;
+ case JavaPackage.JAVA_PROPERTY__IS_TRANSIENT:
+ setIsTransient(IS_TRANSIENT_EDEFAULT);
+ return;
+ case JavaPackage.JAVA_PROPERTY__GENERATE_GETTER:
+ setGenerateGetter(GENERATE_GETTER_EDEFAULT);
+ return;
+ case JavaPackage.JAVA_PROPERTY__GENERATE_SETTER:
+ setGenerateSetter(GENERATE_SETTER_EDEFAULT);
+ return;
+ case JavaPackage.JAVA_PROPERTY__IS_STATIC:
+ setIsStatic(IS_STATIC_EDEFAULT);
+ return;
+ case JavaPackage.JAVA_PROPERTY__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS:
+ getExplicitPlainTextRequiredImports().clear();
+ return;
+ case JavaPackage.JAVA_PROPERTY__EXPLICIT_REQUIRED_IMPORTS:
+ getExplicitRequiredImports().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case JavaPackage.JAVA_PROPERTY__IS_ABSTRACT:
+ return isAbstract != IS_ABSTRACT_EDEFAULT;
+ case JavaPackage.JAVA_PROPERTY__IS_FINAL:
+ return isFinal != IS_FINAL_EDEFAULT;
+ case JavaPackage.JAVA_PROPERTY__BASE_PROPERTY:
+ return base_Property != null;
+ case JavaPackage.JAVA_PROPERTY__IS_TRANSIENT:
+ return isTransient != IS_TRANSIENT_EDEFAULT;
+ case JavaPackage.JAVA_PROPERTY__GENERATE_GETTER:
+ return generateGetter != GENERATE_GETTER_EDEFAULT;
+ case JavaPackage.JAVA_PROPERTY__GENERATE_SETTER:
+ return generateSetter != GENERATE_SETTER_EDEFAULT;
+ case JavaPackage.JAVA_PROPERTY__IS_STATIC:
+ return isStatic != IS_STATIC_EDEFAULT;
+ case JavaPackage.JAVA_PROPERTY__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS:
+ return explicitPlainTextRequiredImports != null && !explicitPlainTextRequiredImports.isEmpty();
+ case JavaPackage.JAVA_PROPERTY__EXPLICIT_REQUIRED_IMPORTS:
+ return explicitRequiredImports != null && !explicitRequiredImports.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) {
+ return super.toString();
+ }
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (isAbstract: ");
+ result.append(isAbstract);
+ result.append(", isFinal: ");
+ result.append(isFinal);
+ result.append(", isTransient: ");
+ result.append(isTransient);
+ result.append(", generateGetter: ");
+ result.append(generateGetter);
+ result.append(", generateSetter: ");
+ result.append(generateSetter);
+ result.append(", isStatic: ");
+ result.append(isStatic);
+ result.append(", explicitPlainTextRequiredImports: ");
+ result.append(explicitPlainTextRequiredImports);
+ result.append(')');
+ return result.toString();
+ }
+
+} // JavaPropertyImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaSrcFolderImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaSrcFolderImpl.java
new file mode 100644
index 00000000000..e52396f2794
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaSrcFolderImpl.java
@@ -0,0 +1,172 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.papyrus.java.profile.java.JavaPackage;
+import org.eclipse.papyrus.java.profile.java.JavaSrcFolder;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Src Folder</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.JavaSrcFolderImpl#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class JavaSrcFolderImpl extends JavaGenImpl implements JavaSrcFolder {
+ /**
+ * The cached value of the '{@link #getBase_Package() <em>Base Package</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getBase_Package()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Package base_Package;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JavaSrcFolderImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return JavaPackage.Literals.JAVA_SRC_FOLDER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Package getBase_Package() {
+ if (base_Package != null && base_Package.eIsProxy()) {
+ InternalEObject oldBase_Package = (InternalEObject) base_Package;
+ base_Package = (org.eclipse.uml2.uml.Package) eResolveProxy(oldBase_Package);
+ if (base_Package != oldBase_Package) {
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, JavaPackage.JAVA_SRC_FOLDER__BASE_PACKAGE, oldBase_Package, base_Package));
+ }
+ }
+ }
+ return base_Package;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Package basicGetBase_Package() {
+ return base_Package;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setBase_Package(org.eclipse.uml2.uml.Package newBase_Package) {
+ org.eclipse.uml2.uml.Package oldBase_Package = base_Package;
+ base_Package = newBase_Package;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_SRC_FOLDER__BASE_PACKAGE, oldBase_Package, base_Package));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case JavaPackage.JAVA_SRC_FOLDER__BASE_PACKAGE:
+ if (resolve) {
+ return getBase_Package();
+ }
+ return basicGetBase_Package();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case JavaPackage.JAVA_SRC_FOLDER__BASE_PACKAGE:
+ setBase_Package((org.eclipse.uml2.uml.Package) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case JavaPackage.JAVA_SRC_FOLDER__BASE_PACKAGE:
+ setBase_Package((org.eclipse.uml2.uml.Package) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case JavaPackage.JAVA_SRC_FOLDER__BASE_PACKAGE:
+ return base_Package != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // JavaSrcFolderImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/PrimitiveTypeImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/PrimitiveTypeImpl.java
new file mode 100644
index 00000000000..45fa400b2ee
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/PrimitiveTypeImpl.java
@@ -0,0 +1,311 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.papyrus.java.profile.java.JavaPackage;
+import org.eclipse.papyrus.java.profile.java.PrimitiveType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Primitive Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.PrimitiveTypeImpl#getImplementationClass <em>Implementation Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.PrimitiveTypeImpl#getBase_PrimitiveType <em>Base Primitive Type</em>}</li>
+ * <li>{@link org.eclipse.papyrus.java.profile.java.impl.PrimitiveTypeImpl#getCollectionImplementationClass <em>Collection Implementation Class</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PrimitiveTypeImpl extends JavaGenImpl implements PrimitiveType {
+ /**
+ * The default value of the '{@link #getImplementationClass() <em>Implementation Class</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getImplementationClass()
+ * @generated
+ * @ordered
+ */
+ protected static final String IMPLEMENTATION_CLASS_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getImplementationClass() <em>Implementation Class</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getImplementationClass()
+ * @generated
+ * @ordered
+ */
+ protected String implementationClass = IMPLEMENTATION_CLASS_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getBase_PrimitiveType() <em>Base Primitive Type</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getBase_PrimitiveType()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.PrimitiveType base_PrimitiveType;
+
+ /**
+ * The default value of the '{@link #getCollectionImplementationClass() <em>Collection Implementation Class</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getCollectionImplementationClass()
+ * @generated
+ * @ordered
+ */
+ protected static final String COLLECTION_IMPLEMENTATION_CLASS_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCollectionImplementationClass() <em>Collection Implementation Class</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getCollectionImplementationClass()
+ * @generated
+ * @ordered
+ */
+ protected String collectionImplementationClass = COLLECTION_IMPLEMENTATION_CLASS_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected PrimitiveTypeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return JavaPackage.Literals.PRIMITIVE_TYPE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getImplementationClass() {
+ return implementationClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setImplementationClass(String newImplementationClass) {
+ String oldImplementationClass = implementationClass;
+ implementationClass = newImplementationClass;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.PRIMITIVE_TYPE__IMPLEMENTATION_CLASS, oldImplementationClass, implementationClass));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.PrimitiveType getBase_PrimitiveType() {
+ if (base_PrimitiveType != null && base_PrimitiveType.eIsProxy()) {
+ InternalEObject oldBase_PrimitiveType = (InternalEObject) base_PrimitiveType;
+ base_PrimitiveType = (org.eclipse.uml2.uml.PrimitiveType) eResolveProxy(oldBase_PrimitiveType);
+ if (base_PrimitiveType != oldBase_PrimitiveType) {
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, JavaPackage.PRIMITIVE_TYPE__BASE_PRIMITIVE_TYPE, oldBase_PrimitiveType, base_PrimitiveType));
+ }
+ }
+ }
+ return base_PrimitiveType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public org.eclipse.uml2.uml.PrimitiveType basicGetBase_PrimitiveType() {
+ return base_PrimitiveType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setBase_PrimitiveType(org.eclipse.uml2.uml.PrimitiveType newBase_PrimitiveType) {
+ org.eclipse.uml2.uml.PrimitiveType oldBase_PrimitiveType = base_PrimitiveType;
+ base_PrimitiveType = newBase_PrimitiveType;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.PRIMITIVE_TYPE__BASE_PRIMITIVE_TYPE, oldBase_PrimitiveType, base_PrimitiveType));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getCollectionImplementationClass() {
+ return collectionImplementationClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setCollectionImplementationClass(String newCollectionImplementationClass) {
+ String oldCollectionImplementationClass = collectionImplementationClass;
+ collectionImplementationClass = newCollectionImplementationClass;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.PRIMITIVE_TYPE__COLLECTION_IMPLEMENTATION_CLASS, oldCollectionImplementationClass, collectionImplementationClass));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case JavaPackage.PRIMITIVE_TYPE__IMPLEMENTATION_CLASS:
+ return getImplementationClass();
+ case JavaPackage.PRIMITIVE_TYPE__BASE_PRIMITIVE_TYPE:
+ if (resolve) {
+ return getBase_PrimitiveType();
+ }
+ return basicGetBase_PrimitiveType();
+ case JavaPackage.PRIMITIVE_TYPE__COLLECTION_IMPLEMENTATION_CLASS:
+ return getCollectionImplementationClass();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case JavaPackage.PRIMITIVE_TYPE__IMPLEMENTATION_CLASS:
+ setImplementationClass((String) newValue);
+ return;
+ case JavaPackage.PRIMITIVE_TYPE__BASE_PRIMITIVE_TYPE:
+ setBase_PrimitiveType((org.eclipse.uml2.uml.PrimitiveType) newValue);
+ return;
+ case JavaPackage.PRIMITIVE_TYPE__COLLECTION_IMPLEMENTATION_CLASS:
+ setCollectionImplementationClass((String) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case JavaPackage.PRIMITIVE_TYPE__IMPLEMENTATION_CLASS:
+ setImplementationClass(IMPLEMENTATION_CLASS_EDEFAULT);
+ return;
+ case JavaPackage.PRIMITIVE_TYPE__BASE_PRIMITIVE_TYPE:
+ setBase_PrimitiveType((org.eclipse.uml2.uml.PrimitiveType) null);
+ return;
+ case JavaPackage.PRIMITIVE_TYPE__COLLECTION_IMPLEMENTATION_CLASS:
+ setCollectionImplementationClass(COLLECTION_IMPLEMENTATION_CLASS_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case JavaPackage.PRIMITIVE_TYPE__IMPLEMENTATION_CLASS:
+ return IMPLEMENTATION_CLASS_EDEFAULT == null ? implementationClass != null : !IMPLEMENTATION_CLASS_EDEFAULT.equals(implementationClass);
+ case JavaPackage.PRIMITIVE_TYPE__BASE_PRIMITIVE_TYPE:
+ return base_PrimitiveType != null;
+ case JavaPackage.PRIMITIVE_TYPE__COLLECTION_IMPLEMENTATION_CLASS:
+ return COLLECTION_IMPLEMENTATION_CLASS_EDEFAULT == null ? collectionImplementationClass != null : !COLLECTION_IMPLEMENTATION_CLASS_EDEFAULT.equals(collectionImplementationClass);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) {
+ return super.toString();
+ }
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (implementationClass: ");
+ result.append(implementationClass);
+ result.append(", collectionImplementationClass: ");
+ result.append(collectionImplementationClass);
+ result.append(')');
+ return result.toString();
+ }
+
+} // PrimitiveTypeImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/util/JavaAdapterFactory.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/util/JavaAdapterFactory.java
new file mode 100644
index 00000000000..5e966089922
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/util/JavaAdapterFactory.java
@@ -0,0 +1,321 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.java.profile.java.JavaClass;
+import org.eclipse.papyrus.java.profile.java.JavaGen;
+import org.eclipse.papyrus.java.profile.java.JavaMethod;
+import org.eclipse.papyrus.java.profile.java.JavaNamedElement;
+import org.eclipse.papyrus.java.profile.java.JavaPackage;
+import org.eclipse.papyrus.java.profile.java.JavaPackage_;
+import org.eclipse.papyrus.java.profile.java.JavaParameter;
+import org.eclipse.papyrus.java.profile.java.JavaProject;
+import org.eclipse.papyrus.java.profile.java.JavaProperty;
+import org.eclipse.papyrus.java.profile.java.JavaSrcFolder;
+import org.eclipse.papyrus.java.profile.java.PrimitiveType;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage
+ * @generated
+ */
+public class JavaAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected static JavaPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JavaAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = JavaPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ *
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject) object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JavaSwitch<Adapter> modelSwitch =
+ new JavaSwitch<Adapter>() {
+ @Override
+ public Adapter caseJavaClass(JavaClass object) {
+ return createJavaClassAdapter();
+ }
+
+ @Override
+ public Adapter caseJavaGen(JavaGen object) {
+ return createJavaGenAdapter();
+ }
+
+ @Override
+ public Adapter caseJavaNamedElement(JavaNamedElement object) {
+ return createJavaNamedElementAdapter();
+ }
+
+ @Override
+ public Adapter caseJavaPackage_(JavaPackage_ object) {
+ return createJavaPackage_Adapter();
+ }
+
+ @Override
+ public Adapter caseJavaMethod(JavaMethod object) {
+ return createJavaMethodAdapter();
+ }
+
+ @Override
+ public Adapter caseJavaParameter(JavaParameter object) {
+ return createJavaParameterAdapter();
+ }
+
+ @Override
+ public Adapter caseJavaProperty(JavaProperty object) {
+ return createJavaPropertyAdapter();
+ }
+
+ @Override
+ public Adapter casePrimitiveType(PrimitiveType object) {
+ return createPrimitiveTypeAdapter();
+ }
+
+ @Override
+ public Adapter caseJavaProject(JavaProject object) {
+ return createJavaProjectAdapter();
+ }
+
+ @Override
+ public Adapter caseJavaSrcFolder(JavaSrcFolder object) {
+ return createJavaSrcFolderAdapter();
+ }
+
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param target
+ * the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject) target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.java.profile.java.JavaClass <em>Class</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.java.profile.java.JavaClass
+ * @generated
+ */
+ public Adapter createJavaClassAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.java.profile.java.JavaGen <em>Gen</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.java.profile.java.JavaGen
+ * @generated
+ */
+ public Adapter createJavaGenAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.java.profile.java.JavaNamedElement <em>Named Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.java.profile.java.JavaNamedElement
+ * @generated
+ */
+ public Adapter createJavaNamedElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.java.profile.java.JavaPackage_ <em>Package </em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage_
+ * @generated
+ */
+ public Adapter createJavaPackage_Adapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.java.profile.java.JavaMethod <em>Method</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.java.profile.java.JavaMethod
+ * @generated
+ */
+ public Adapter createJavaMethodAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.java.profile.java.JavaParameter <em>Parameter</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.java.profile.java.JavaParameter
+ * @generated
+ */
+ public Adapter createJavaParameterAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.java.profile.java.JavaProperty <em>Property</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.java.profile.java.JavaProperty
+ * @generated
+ */
+ public Adapter createJavaPropertyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.java.profile.java.PrimitiveType <em>Primitive Type</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.java.profile.java.PrimitiveType
+ * @generated
+ */
+ public Adapter createPrimitiveTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.java.profile.java.JavaProject <em>Project</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.java.profile.java.JavaProject
+ * @generated
+ */
+ public Adapter createJavaProjectAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.java.profile.java.JavaSrcFolder <em>Src Folder</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.java.profile.java.JavaSrcFolder
+ * @generated
+ */
+ public Adapter createJavaSrcFolderAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} // JavaAdapterFactory
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/util/JavaResourceFactoryImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/util/JavaResourceFactoryImpl.java
new file mode 100644
index 00000000000..38cc336adf6
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/util/JavaResourceFactoryImpl.java
@@ -0,0 +1,56 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java.util;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.impl.ResourceFactoryImpl;
+import org.eclipse.emf.ecore.xmi.XMLResource;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Resource Factory</b> associated with the package.
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.profile.java.util.JavaResourceImpl
+ * @generated
+ */
+public class JavaResourceFactoryImpl extends ResourceFactoryImpl {
+ /**
+ * Creates an instance of the resource factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JavaResourceFactoryImpl() {
+ super();
+ }
+
+ /**
+ * Creates an instance of the resource.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Resource createResource(URI uri) {
+ XMLResource result = new JavaResourceImpl(uri);
+ result.getDefaultSaveOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE);
+ result.getDefaultLoadOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE);
+
+ result.getDefaultSaveOptions().put(XMLResource.OPTION_SCHEMA_LOCATION, Boolean.TRUE);
+
+ result.getDefaultLoadOptions().put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.TRUE);
+ result.getDefaultSaveOptions().put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.TRUE);
+
+ result.getDefaultLoadOptions().put(XMLResource.OPTION_USE_LEXICAL_HANDLER, Boolean.TRUE);
+ return result;
+ }
+
+} // JavaResourceFactoryImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/util/JavaResourceImpl.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/util/JavaResourceImpl.java
new file mode 100644
index 00000000000..6f18c504479
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/util/JavaResourceImpl.java
@@ -0,0 +1,34 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java.util;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Resource </b> associated with the package.
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.profile.java.util.JavaResourceFactoryImpl
+ * @generated
+ */
+public class JavaResourceImpl extends XMLResourceImpl {
+ /**
+ * Creates an instance of the resource.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param uri
+ * the URI of the new resource.
+ * @generated
+ */
+ public JavaResourceImpl(URI uri) {
+ super(uri);
+ }
+
+} // JavaResourceImpl
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/util/JavaSwitch.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/util/JavaSwitch.java
new file mode 100644
index 00000000000..85d4994bcb2
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/util/JavaSwitch.java
@@ -0,0 +1,400 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.papyrus.java.profile.java.JavaClass;
+import org.eclipse.papyrus.java.profile.java.JavaGen;
+import org.eclipse.papyrus.java.profile.java.JavaMethod;
+import org.eclipse.papyrus.java.profile.java.JavaNamedElement;
+import org.eclipse.papyrus.java.profile.java.JavaPackage;
+import org.eclipse.papyrus.java.profile.java.JavaPackage_;
+import org.eclipse.papyrus.java.profile.java.JavaParameter;
+import org.eclipse.papyrus.java.profile.java.JavaProject;
+import org.eclipse.papyrus.java.profile.java.JavaProperty;
+import org.eclipse.papyrus.java.profile.java.JavaSrcFolder;
+import org.eclipse.papyrus.java.profile.java.PrimitiveType;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)} to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.java.profile.java.JavaPackage
+ * @generated
+ */
+public class JavaSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected static JavaPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JavaSwitch() {
+ if (modelPackage == null) {
+ modelPackage = JavaPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case JavaPackage.JAVA_CLASS: {
+ JavaClass javaClass = (JavaClass) theEObject;
+ T result = caseJavaClass(javaClass);
+ if (result == null) {
+ result = caseJavaGen(javaClass);
+ }
+ if (result == null) {
+ result = caseJavaNamedElement(javaClass);
+ }
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ case JavaPackage.JAVA_GEN: {
+ JavaGen javaGen = (JavaGen) theEObject;
+ T result = caseJavaGen(javaGen);
+ if (result == null) {
+ result = caseJavaNamedElement(javaGen);
+ }
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ case JavaPackage.JAVA_NAMED_ELEMENT: {
+ JavaNamedElement javaNamedElement = (JavaNamedElement) theEObject;
+ T result = caseJavaNamedElement(javaNamedElement);
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ case JavaPackage.JAVA_PACKAGE_: {
+ JavaPackage_ javaPackage_ = (JavaPackage_) theEObject;
+ T result = caseJavaPackage_(javaPackage_);
+ if (result == null) {
+ result = caseJavaGen(javaPackage_);
+ }
+ if (result == null) {
+ result = caseJavaNamedElement(javaPackage_);
+ }
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ case JavaPackage.JAVA_METHOD: {
+ JavaMethod javaMethod = (JavaMethod) theEObject;
+ T result = caseJavaMethod(javaMethod);
+ if (result == null) {
+ result = caseJavaNamedElement(javaMethod);
+ }
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ case JavaPackage.JAVA_PARAMETER: {
+ JavaParameter javaParameter = (JavaParameter) theEObject;
+ T result = caseJavaParameter(javaParameter);
+ if (result == null) {
+ result = caseJavaNamedElement(javaParameter);
+ }
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ case JavaPackage.JAVA_PROPERTY: {
+ JavaProperty javaProperty = (JavaProperty) theEObject;
+ T result = caseJavaProperty(javaProperty);
+ if (result == null) {
+ result = caseJavaNamedElement(javaProperty);
+ }
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ case JavaPackage.PRIMITIVE_TYPE: {
+ PrimitiveType primitiveType = (PrimitiveType) theEObject;
+ T result = casePrimitiveType(primitiveType);
+ if (result == null) {
+ result = caseJavaGen(primitiveType);
+ }
+ if (result == null) {
+ result = caseJavaNamedElement(primitiveType);
+ }
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ case JavaPackage.JAVA_PROJECT: {
+ JavaProject javaProject = (JavaProject) theEObject;
+ T result = caseJavaProject(javaProject);
+ if (result == null) {
+ result = caseJavaGen(javaProject);
+ }
+ if (result == null) {
+ result = caseJavaNamedElement(javaProject);
+ }
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ case JavaPackage.JAVA_SRC_FOLDER: {
+ JavaSrcFolder javaSrcFolder = (JavaSrcFolder) theEObject;
+ T result = caseJavaSrcFolder(javaSrcFolder);
+ if (result == null) {
+ result = caseJavaGen(javaSrcFolder);
+ }
+ if (result == null) {
+ result = caseJavaNamedElement(javaSrcFolder);
+ }
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ default:
+ return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Class</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Class</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseJavaClass(JavaClass object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Gen</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Gen</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseJavaGen(JavaGen object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Named Element</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Named Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseJavaNamedElement(JavaNamedElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Package </em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Package </em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseJavaPackage_(JavaPackage_ object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Method</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Method</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseJavaMethod(JavaMethod object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Parameter</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Parameter</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseJavaParameter(JavaParameter object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Property</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Property</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseJavaProperty(JavaProperty object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Primitive Type</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Primitive Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePrimitiveType(PrimitiveType object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Project</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Project</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseJavaProject(JavaProject object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Src Folder</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Src Folder</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseJavaSrcFolder(JavaSrcFolder object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} // JavaSwitch
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/util/JavaXMLProcessor.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/util/JavaXMLProcessor.java
new file mode 100644
index 00000000000..117391bb1f6
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/util/JavaXMLProcessor.java
@@ -0,0 +1,54 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.java.profile.java.util;
+
+import java.util.Map;
+
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.xmi.util.XMLProcessor;
+import org.eclipse.papyrus.java.profile.java.JavaPackage;
+
+/**
+ * This class contains helper methods to serialize and deserialize XML documents
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JavaXMLProcessor extends XMLProcessor {
+
+ /**
+ * Public constructor to instantiate the helper.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JavaXMLProcessor() {
+ super((EPackage.Registry.INSTANCE));
+ JavaPackage.eINSTANCE.eClass();
+ }
+
+ /**
+ * Register for "*" and "xml" file extensions the JavaResourceFactoryImpl factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected Map<String, Resource.Factory> getRegistrations() {
+ if (registrations == null) {
+ super.getRegistrations();
+ registrations.put(XML_EXTENSION, new JavaResourceFactoryImpl());
+ registrations.put(STAR_EXTENSION, new JavaResourceFactoryImpl());
+ }
+ return registrations;
+ }
+
+} // JavaXMLProcessor
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/.classpath b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/.classpath
new file mode 100644
index 00000000000..ad32c83a788
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/.project b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/.project
new file mode 100644
index 00000000000..6456ba27df1
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.java.reverse.ui</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/.settings/org.eclipse.core.resources.prefs b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000000..2697efedfa3
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+encoding//src/org/eclipse/papyrus/java/reverse/ui/dnd/messages.properties=ISO-8859-1
+encoding//src/org/eclipse/papyrus/java/reverse/ui/messages.properties=ISO-8859-1
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/.settings/org.eclipse.jdt.core.prefs b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..94d61f00da6
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,291 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=260
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=false
+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=260
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=5
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/.settings/org.eclipse.jdt.ui.prefs b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 00000000000..954281dbc31
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,68 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_functional_interfaces=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=false
+cleanup.format_source_code=false
+cleanup.format_source_code_changes_only=false
+cleanup.insert_inferred_type_arguments=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=false
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_redundant_type_arguments=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_anonymous_class_creation=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_lambda=true
+cleanup.use_parentheses_in_expressions=false
+cleanup.use_this_for_non_static_field_access=false
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=false
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_type_arguments=false
+cleanup_profile=_Papyrus
+cleanup_settings_version=2
+eclipse.preferences.version=1
+formatter_profile=_Papyrus
+formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * Constructor.\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*****************************************************************************\n * Copyright (c) ${year} CEA LIST and others.\n * \n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n * CEA LIST - Initial API and implementation\n * \n *****************************************************************************/\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\n * ${see_to_overridden}\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${see_to_target}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/META-INF/MANIFEST.MF b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..b24c01b97bd
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,21 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.emf.transaction;bundle-version="1.2.0",
+ org.eclipse.gef;bundle-version="3.4.0",
+ org.eclipse.jdt.core;bundle-version="3.4.0",
+ org.eclipse.papyrus.java.reverse;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.core;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.tools;bundle-version="1.2.0",
+ org.eclipse.gmf.runtime.diagram.core,
+ org.eclipse.papyrus.infra.gmfdiag.dnd;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.emf.diagram.common;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.diagram.common;bundle-version="1.2.0"
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-Version: 1.2.0.qualifier
+Bundle-Localization: plugin
+Bundle-Name: %pluginName
+Bundle-Activator: org.eclipse.papyrus.java.reverse.ui.Activator
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.java.reverse.ui;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/about.html b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/about.html
new file mode 100644
index 00000000000..82d49bf5f81
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/build.properties b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/build.properties
new file mode 100644
index 00000000000..1dc01a0a02a
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/build.properties
@@ -0,0 +1,11 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ icons/,\
+ plugin.properties,\
+ about.html
+src.includes = .classpath,\
+ about.html,\
+ build.properties
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/icons/associationFromProperty.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/icons/associationFromProperty.gif
new file mode 100644
index 00000000000..b4fbec9c849
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/icons/associationFromProperty.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/icons/javaReverse.gif b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/icons/javaReverse.gif
new file mode 100644
index 00000000000..68d40f7e2d5
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/icons/javaReverse.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/plugin.properties b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/plugin.properties
new file mode 100644
index 00000000000..fba264cf201
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/plugin.properties
@@ -0,0 +1,16 @@
+
+#################################################################################
+# Copyright (c) 2010-2013 Cedric Dumoulin.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Cedric Dumoulin Cedric.dumoulin@lifl.fr - Initial API
+#
+#################################################################################
+
+pluginName = Java Reverse UI (Incubation)
+providerName = Eclipse Modeling Project
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/plugin.xml b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/plugin.xml
new file mode 100644
index 00000000000..6e744e206e8
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/plugin.xml
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.papyrus.java.reverse.ui.ReverseCodeHandler"
+ commandId="org.eclipse.papyrus.java.reverse.ui.reverseCodeCommand">
+ <enabledWhen>
+ <with
+ variable="activeEditorId">
+ <equals
+ value="org.eclipse.papyrus.infra.core.papyrusEditor">
+ </equals>
+ </with>
+ </enabledWhen>
+ </handler>
+ <handler
+ class="org.eclipse.papyrus.java.reverse.ui.handlers.CreateAssociationFromPropertyHandler"
+ commandId="org.eclipse.papyrus.java.reverse.ui.commands.CreateAssociationFromPropertyCommand">
+ </handler>
+ </extension>
+ <extension
+ point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="toolbar:org.eclipse.ui.main.toolbar">
+ <toolbar
+ id="org.eclipse.papyrus.java.ui.toolbar">
+ <command
+ commandId="org.eclipse.papyrus.java.reverse.ui.reverseCodeCommand"
+ icon="icons/javaReverse.gif"
+ label="Java Reverse"
+ style="push"
+ tooltip="Reverse Java code into current model">
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.java.reverse.ui.commands.CreateAssociationFromPropertyCommand"
+ icon="icons/associationFromProperty.gif"
+ label="Create Association From Property"
+ style="push">
+ </command>
+ </toolbar>
+ </menuContribution>
+ <menuContribution
+ locationURI="menu:org.eclipse.papyrus.ui.menu">
+ <menu
+ id="org.eclipse.papyrus.java.ui.menu"
+ label="Java">
+ <command
+ commandId="org.eclipse.papyrus.java.reverse.ui.reverseCodeCommand"
+ style="push">
+ </command>
+ </menu>
+ <menu
+ id="org.eclipse.papyrus.ui.menu.misc"
+ label="Utils">
+ <command
+ commandId="org.eclipse.papyrus.java.reverse.ui.commands.CreateAssociationFromPropertyCommand"
+ icon="icons/associationFromProperty.gif"
+ label="Create Association From Property"
+ style="push">
+ </command>
+ </menu>
+ </menuContribution>
+ <menuContribution
+ locationURI="popup:org.eclipse.sash.ui.folder">
+ <menu
+ id="org.eclipse.papyrus.java.ui.sash.menu"
+ label="Java">
+ <command
+ commandId="org.eclipse.papyrus.java.reverse.ui.reverseCodeCommand"
+ style="push">
+ </command>
+ </menu>
+ </menuContribution>
+ <menuContribution
+ locationURI="popup:org.eclipse.papyrus.views.modelexplorer.modelexplorer.popup">
+ <menu
+ id="org.eclipse.papyrus.ui.popupmenu.modelexplorer.misc"
+ label="Utils">
+ <command
+ commandId="org.eclipse.papyrus.java.reverse.ui.commands.CreateAssociationFromPropertyCommand"
+ icon="icons/associationFromProperty.gif"
+ label="Create Association From Property"
+ style="push">
+ </command>
+ </menu>
+ </menuContribution>
+ <menuContribution
+ locationURI="popup:org.eclipse.gmf.runtime.diagram.ui.DiagramEditorContextMenu">
+ <menu
+ id="org.eclipse.papyrus.ui.popupmenu.diagram.misc"
+ label="Utils">
+ <command
+ commandId="org.eclipse.papyrus.java.reverse.ui.commands.CreateAssociationFromPropertyCommand"
+ icon="icons/associationFromProperty.gif"
+ label="Create Association From Property"
+ style="push">
+ </command>
+ </menu>
+ </menuContribution>
+ <menuContribution
+ allPopups="false"
+ locationURI="popup:org.eclipse.ui.popup.any">
+ <menu
+ id="org.eclipse.papyrus.java.reverse.ui.javaMenu"
+ label="Java">
+ <command
+ commandId="org.eclipse.papyrus.java.reverse.ui.reverseCodeCommand"
+ style="push">
+ <visibleWhen
+ checkEnabled="false">
+ <with
+ variable="activeMenuSelection">
+ <iterate
+ ifEmpty="false"
+ operator="or">
+ <adapt
+ type="org.eclipse.jdt.core.IJavaElement">
+ <and>
+ <not>
+ <adapt
+ type="org.eclipse.jdt.core.IJavaProject">
+ </adapt>
+ </not>
+ </and>
+ </adapt>
+ </iterate>
+ </with>
+ </visibleWhen>
+ </command>
+ </menu>
+ </menuContribution>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ description="Reverse Java code into current model"
+ id="org.eclipse.papyrus.java.reverse.ui.reverseCodeCommand"
+ name="Java Reverse">
+ </command>
+ <command
+ description="Create a New association from the Property."
+ id="org.eclipse.papyrus.java.reverse.ui.commands.CreateAssociationFromPropertyCommand"
+ name="Create Association From Property">
+ </command>
+ </extension>
+ <extension
+ point="org.eclipse.papyrus.infra.gmfdiag.dnd.dropStrategy">
+ <strategy
+ strategy="org.eclipse.papyrus.java.reverse.ui.dnd.DropReverseStrategy">
+ </strategy>
+ </extension>
+</plugin>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/pom.xml b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/pom.xml
new file mode 100644
index 00000000000..1d28d2448a1
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.java.reverse.ui</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/Activator.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/Activator.java
new file mode 100644
index 00000000000..2ac94758559
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/Activator.java
@@ -0,0 +1,54 @@
+package org.eclipse.papyrus.java.reverse.ui;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.java.reverse.ui";
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/DisplayReverse.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/DisplayReverse.java
new file mode 100644
index 00000000000..caac0a8c995
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/DisplayReverse.java
@@ -0,0 +1,181 @@
+/*****************************************************************************
+ * Copyright (c) 2014 Jonathan Geoffroy.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Jonathan Geoffroy geoffroy.jonathan@gmail.com initial implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.java.reverse.ui;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint;
+import org.eclipse.gmf.runtime.diagram.core.services.ViewService;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.core.IPackageFragment;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.uml2.uml.Model;
+import org.eclipse.uml2.uml.NamedElement;
+
+/**
+ * Command which allow to display java elements into papyrus diagram.
+ * The java element must exists into papyrus model (for example by using reverse plugin)
+ *
+ * @author Jonathan Geoffroy
+ *
+ */
+public class DisplayReverse {
+
+ private static final String MODEL_TYPE = "2005", PACKAGE_TYPE = "2007", CU_TYPE = "2008"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+
+ /**
+ * items to display into papyrus diagram
+ */
+ private List<IJavaElement> items;
+
+ /**
+ * Contains all uml resources.
+ * Used to improve research into umlModel.
+ */
+ private Map<String, NamedElement> umlModelNames;
+
+ /**
+ * Graphical container for the reverse result
+ */
+ private Diagram diagram;
+
+ /**
+ * model to display into diagram. Null if user doesn't want to display any model
+ */
+ private Model model;
+
+ /**
+ * Constructor.
+ *
+ * @param items
+ * items to display into papyrus diagram
+ * @param diagram
+ * container where to display items
+ * @param umlModel
+ * resource representing the papyrus uml model
+ * @param model
+ * model to display into diagram. Null if user doesn't want to display any model
+ */
+ public DisplayReverse(List<IJavaElement> items, Diagram diagram, Resource umlModel, Model model) {
+ super();
+ this.items = items;
+ this.diagram = diagram;
+ this.model = model;
+
+ // Change uml model collection to improve search
+ umlModelNames = new HashMap<String, NamedElement>();
+ TreeIterator<EObject> tree = umlModel.getAllContents();
+ while (tree.hasNext()) {
+ for (EObject o : tree.next().eContents()) {
+ /*
+ * Only add reversable elements.
+ * The non Named element cannot been added into model (comments ...)
+ */
+ if (o instanceof NamedElement) {
+ // Add it into items to display
+ NamedElement e = (NamedElement) o;
+ umlModelNames.put(e.getName(), e);
+ }
+ }
+ }
+
+
+ }
+
+ /**
+ * Execute the display command.
+ * Should call this method when you want display the selection into papyrus diagram.
+ *
+ * @throws JavaModelException
+ */
+ public void execute() throws JavaModelException {
+ // Display the model
+ if (model != null) {
+ display(model.getName(), MODEL_TYPE);
+ }
+
+ // Cross selection to display each selected item
+ for (IJavaElement item : items) {
+ scanJavaElement(item);
+ }
+ }
+
+ /**
+ * Scan a Compilation Unit item
+ * Just display it
+ *
+ * @param item
+ * a selection compilation unit
+ */
+ private void scanCU(ICompilationUnit item) {
+ String itemName = item.getElementName().substring(0, item.getElementName().length() - 5); // remove ".java" to the compilation unit name
+ display(itemName, CU_TYPE);
+ }
+
+ /**
+ * Scan a package.
+ * Display it and cross its childs to display all sub-packages (and recursively)
+ *
+ * @param item
+ * the package to scan
+ * @throws JavaModelException
+ */
+ private void scanPackage(IPackageFragment item) throws JavaModelException {
+ String itemName = item.getElementName();
+ display(itemName, PACKAGE_TYPE);
+ }
+
+ /**
+ * scan and display a JavaElement by delegates to scan{typeOfJavaElement}
+ *
+ * @param item
+ * the item to display
+ * @throws JavaModelException
+ */
+ private void scanJavaElement(IJavaElement item) throws JavaModelException {
+ try {
+ switch (item.getElementType()) {
+ case IJavaElement.PACKAGE_FRAGMENT:
+ scanPackage((IPackageFragment) item);
+ break;
+ case IJavaElement.COMPILATION_UNIT:
+ scanCU((ICompilationUnit) item);
+ break;
+ }
+ } catch (NullPointerException e) {
+ System.err.println(item.getElementName() + "is NOT in selected uml model"); //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * Display an element into papyrus diagram
+ *
+ * @param itemName
+ * the name of element to display
+ */
+ private void display(String itemName, String type) {
+ EObject item = this.umlModelNames.get(itemName);
+ if (!diagram.getChildren().contains(item)) {
+ ViewService.createNode(diagram, item, type, new PreferencesHint("org.eclipse.papyrus.uml.diagram.clazz")); //$NON-NLS-1$
+ }
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/DndReverseCodeHandler.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/DndReverseCodeHandler.java
new file mode 100644
index 00000000000..5c5568282c7
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/DndReverseCodeHandler.java
@@ -0,0 +1,246 @@
+/*****************************************************************************
+ * Copyright (c) 2014 Jonathan Geoffroy.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Jonathan Geoffroy geoffroy.jonathan@gmail.com initial implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.java.reverse.ui;
+
+import java.util.Iterator;
+import java.util.List;
+import java.util.ListIterator;
+import java.util.TreeSet;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.impl.ShapeImpl;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.TreeSelection;
+import org.eclipse.papyrus.infra.core.editor.IMultiDiagramEditor;
+import org.eclipse.papyrus.java.reverse.ui.dialog.DndReverseCodeDialog;
+import org.eclipse.papyrus.java.reverse.ui.dialog.ReverseCodeDialog;
+import org.eclipse.papyrus.uml.diagram.common.util.MDTUtil;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.uml2.uml.Model;
+import org.eclipse.uml2.uml.NamedElement;
+
+/**
+ * Handler to display reverse result into current papyrus diagram
+ * This Handler is activated when user drag'n'drop java resource into papyrus diagram.<br>
+ * It display just non displayed java resource.
+ * Moreover, it use DndReverseCodeDialog to know if it have to display model, packages and CompilationUnit or not.
+ *
+ * @author Jonathan Geoffroy
+ *
+ */
+public class DndReverseCodeHandler extends ReverseCodeHandler {
+
+ /**
+ * true if and only if user want to display reversed compilation unit
+ */
+ private boolean displayCU;
+
+ /**
+ * true if and only if user want to display reversed packages
+ */
+ private boolean displayPackages;
+
+ /**
+ * true if and only if user want to display reversed model
+ */
+ private boolean displayModel;
+
+ @Override
+ /**
+ * Find all resource to display (selection - resources which are already in the diagram), run the reverse command, before running the display command<br/>
+ * @see org.eclipse.papyrus.java.reverse.ui.ReverseCodeHandler#doExecute(org.eclipse.papyrus.java.reverse.ui.dialog.ReverseCodeDialog)
+ *
+ * @param dialog
+ */
+ protected void doExecute(ReverseCodeDialog dialog) {
+ // Get user preferences on dialog
+ DndReverseCodeDialog dndDialog = (DndReverseCodeDialog) dialog;
+ displayModel = dndDialog.displayModel();
+ displayPackages = dndDialog.displayPackages();
+ displayCU = dndDialog.displayCU();
+
+ // get current selection
+ IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+ ISelection selection = page.getSelection();
+ TreeSelection treeSelection = (TreeSelection) selection;
+
+ // Find active papyrus diagram
+ Diagram diagram = null;
+ IEditorPart activeEditor = MDTUtil.getActiveEditor();
+ if (activeEditor != null) {
+ if (activeEditor instanceof IMultiDiagramEditor) {
+ diagram = (Diagram) ((IMultiDiagramEditor) activeEditor).getAdapter(Diagram.class);
+ }
+ }
+
+ // Remove items already in diagram from selection
+ List<IJavaElement> listSelection;
+ try {
+ listSelection = selectionMinusAlreadyInDiagram(treeSelection, diagram);
+ } catch (JavaModelException e1) {
+ e1.printStackTrace();
+ return;
+ }
+
+ // Run the reverse
+ super.doExecute(dialog);
+
+ // Find model to display
+ Model model = null;
+ if (displayModel) {
+ String modelName = dndDialog.getValue();
+ model = getModelToDisplay(diagram, modelName);
+ }
+
+ // Run the reverse displayer
+ DisplayReverse displayReverse = new DisplayReverse(listSelection, diagram, getUmlResource(), model);
+ try {
+ displayReverse.execute();
+ } catch (JavaModelException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ }
+
+ @Override
+ protected ReverseCodeDialog getDialog(Shell shell, String modelUid) {
+ return new DndReverseCodeDialog(shell, modelUid, null, null);
+ }
+
+ /**
+ *
+ * @param selection
+ * java resources selected
+ * @param diagram
+ * opened papyrus diagram
+ * @return selection - resources already in diagram
+ * @throws JavaModelException
+ */
+ private List<IJavaElement> selectionMinusAlreadyInDiagram(TreeSelection selection, Diagram diagram) throws JavaModelException {
+ // Add all diagram elements to Set
+ TreeSet<String> alreadyExists = new TreeSet<String>();
+ EList diagramList = diagram.getChildren();
+ Iterator diagramIt = diagramList.iterator();
+ ShapeImpl item;
+ NamedElement e;
+ while (diagramIt.hasNext()) {
+ item = (ShapeImpl) diagramIt.next();
+ e = (NamedElement) (item.getElement());
+ alreadyExists.add(e.getName());
+ }
+
+ // remove all elements of Set from selection
+ TreeSelectionList selectionList = new TreeSelectionList(selection, displayPackages, displayCU);
+ ListIterator<IJavaElement> selectionIterator = selectionList.listIterator();
+ String selectionItemName;
+ while (selectionIterator.hasNext()) {
+ selectionItemName = getName(selectionIterator.next());
+ if (selectionItemName != null && alreadyExists.contains(selectionItemName)) {
+ selectionIterator.remove();
+ }
+ }
+
+ return selectionList;
+ }
+
+ /**
+ * Find the name of <code>item</code> For java compilation unit, remove ".java" extension
+ *
+ * @param item
+ * @return the name of item.
+ */
+ private String getName(IJavaElement item) {
+ String name = item.getElementName();
+ if (item instanceof ICompilationUnit) {
+ return name.substring(0, name.length() - 5);
+ }
+ return name;
+ }
+
+ /**
+ * find a model named <code>modelName</code>
+ *
+ * @param modelName
+ * the name of the model the find
+ * @return the model which named <code>modelName</code>, or null if it doesn't exists into the current papyrus uml resource
+ */
+ public Model getModel(String modelName) {
+ TreeIterator<EObject> tree = getUmlResource().getAllContents();
+ while (tree.hasNext()) {
+ for (EObject o : tree.next().eContents()) {
+ if (o instanceof Model) {
+ // Add it into items to display
+ Model model = (Model) o;
+
+ // Search for model
+ if (model.getName().equals(modelName)) {
+ System.out.println("model = " + model);
+ return model;
+ }
+ }
+ }
+ }
+ System.out.println("model = null");
+ return null;
+ }
+
+ /**
+ * find the model named <code>modelName</code>, and get it only if it has to be displayed
+ *
+ * @param diagram
+ * active papyrus diagram
+ * @param modelName
+ * the name of the model to find
+ * @return model corresponding to the modelName if it has to be displayed, i.e. if it doesn't already displayed into the diagram, or null
+ * otherwise
+ */
+ private Model getModelToDisplay(Diagram diagram, String modelName) {
+ Model model = getModel(modelName);
+ if (model != null && !isInDiagram(diagram, model)) {
+ System.out.println("display model " + model);
+ return model;
+ }
+ System.out.println("don't display model");
+ return null;
+ }
+
+ /**
+ *
+ * @param diagram
+ * @param model
+ * @return true if model is in diagram
+ */
+ private boolean isInDiagram(Diagram diagram, Model model) {
+ EList diagramList = diagram.getChildren();
+ Iterator diagramIt = diagramList.iterator();
+ ShapeImpl item;
+ while (diagramIt.hasNext()) {
+ item = (ShapeImpl) diagramIt.next();
+ if (item.getElement() == model) {
+ return true;
+ }
+ }
+ return false;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/JavaCodeReverse.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/JavaCodeReverse.java
new file mode 100644
index 00000000000..a9190952dcc
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/JavaCodeReverse.java
@@ -0,0 +1,287 @@
+/**
+ *
+ */
+package org.eclipse.papyrus.java.reverse.ui;
+
+import japa.parser.JavaParser;
+import japa.parser.ParseException;
+import japa.parser.ast.CompilationUnit;
+
+import java.io.StringReader;
+import java.util.Iterator;
+import java.util.List;
+
+import javagen.umlparser.CompilationUnitAnalyser;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.core.IPackageFragment;
+import org.eclipse.jdt.core.IPackageFragmentRoot;
+import org.eclipse.jdt.core.ITypeRoot;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.TreeSelection;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.uml2.uml.Package;
+
+/**
+ * @author dumoulin
+ *
+ */
+public class JavaCodeReverse {
+
+ CompilationUnitAnalyser javaAnalyser;
+
+ /**
+ * Constructor.
+ *
+ * @param model
+ */
+ public JavaCodeReverse(Resource model) {
+ javaAnalyser = new CompilationUnitAnalyser(model);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param model
+ */
+ public JavaCodeReverse(Package rootPackage, String generatedPackageName, List<String> searchPaths) {
+ javaAnalyser = new CompilationUnitAnalyser(rootPackage, generatedPackageName, searchPaths);
+ }
+
+
+ /**
+ * @throws CoreException
+ * @throws ParseException
+ *
+ */
+ public void reverseResource(IResource resource) throws ParseException, CoreException {
+ System.out.println("reverseResource(" + resource.getName() + ")");
+
+ if (resource instanceof IFile) {
+ reverseFile((IFile) resource);
+ } else if (resource instanceof IFolder) {
+ reverseFolder((IFolder) resource);
+ } else if (resource instanceof IProject) {
+ reverseProject((IProject) resource);
+ }
+
+ }
+
+ /**
+ * Walk throw each file in folder
+ *
+ * @param resource
+ * @param model
+ * @throws CoreException
+ * @throws ParseException
+ */
+ private void reverseFolder(IFolder folder) throws CoreException, ParseException {
+
+ for (IResource resource : folder.members()) {
+ reverseResource(resource);
+ }
+
+ }
+
+ /**
+ * Walk throw each file in folder
+ *
+ * @param resource
+ * @param model
+ * @throws CoreException
+ * @throws ParseException
+ */
+ private void reverseProject(IProject folder) throws CoreException, ParseException {
+
+ for (IResource resource : folder.members()) {
+ reverseResource(resource);
+ }
+
+ }
+
+ /**
+ * Reverse a file
+ *
+ * @param resource
+ * @throws CoreException
+ * @throws ParseException
+ */
+ private void reverseFile(IFile file) throws ParseException, CoreException {
+ System.out.println("try to reverseFile(" + file.getName() + ")");
+ if (!"java".equals(file.getFileExtension())) {
+ return;
+ }
+
+ System.out.println("reverseFile(" + file.getName() + ")");
+
+ CompilationUnit cu = JavaParser.parse(file.getContents());
+ javaAnalyser.processCompilationUnit(cu);
+ }
+
+ /**
+ * @throws CoreException
+ * @throws ParseException
+ *
+ */
+ public void reverseJavaElement(IJavaElement element) throws ParseException, CoreException
+ {
+ System.out.println("reverseJavaElement(" + element.getElementName() + ")");
+
+ if (element instanceof ITypeRoot)
+ {
+ reverseCompilationUnit((ITypeRoot) element);
+ }
+ else if (element instanceof IPackageFragment)
+ {
+ reversePackageFragment((IPackageFragment) element);
+ }
+ else if (element instanceof IPackageFragmentRoot)
+ {
+ reversePackageFragmentRoot((IPackageFragmentRoot) element);
+ }
+ else
+ {
+ System.err.println("Can't reverse Java Element " + element);
+ }
+
+ }
+
+ /**
+ *
+ * @param element
+ * @throws ParseException
+ * @throws CoreException
+ */
+ private void reversePackageFragmentRoot(IPackageFragmentRoot element) throws ParseException, CoreException {
+
+ System.out.println("reversePackageFragmentRoot(" + element.getElementName() + ")");
+
+ IJavaElement[] children = element.getChildren();
+ for (IJavaElement child : children) {
+ reverseJavaElement(child);
+ }
+
+ }
+
+ /**
+ *
+ * @param element
+ * @throws ParseException
+ * @throws CoreException
+ */
+ private void reversePackageFragment(IPackageFragment element) throws ParseException, CoreException {
+
+ System.out.println("reversePackageFragment(" + element.getElementName() + ")");
+
+ IJavaElement[] children = element.getChildren();
+ for (IJavaElement child : children) {
+ reverseJavaElement(child);
+ }
+ }
+
+ /**
+ * Reverse a file
+ *
+ * @param resource
+ * @throws CoreException
+ * @throws ParseException
+ */
+ private void reverseCompilationUnit(ITypeRoot unit) throws ParseException, CoreException {
+ System.out.println("try to reverseUnit(" + unit.getElementName() + ")");
+ System.out.println("file type=(" + unit.getElementType() + ")");
+
+ String source = unit.getSource();
+ if (source == null)
+ {
+ System.err.println("No source attached to unit '" + unit.getElementName() + "'");
+ return;
+ }
+
+
+ CompilationUnit cu = JavaParser.parse(new StringReader(source));
+ javaAnalyser.processCompilationUnit(cu);
+ }
+
+ /**
+ * Real Implementation of the command.
+ *
+ * @param generationPackageName
+ * @param searchPaths
+ */
+ public void executeCodeReverse(Resource umlResource, String generationPackageName, List<String> searchPaths) {
+ System.out.println("executeCodeReverse()");
+
+ // Get current selection
+ IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+ ISelection selection = page.getSelection();
+
+ TreeSelection treeSelection = (TreeSelection) selection;
+ // String filename = treeSelection.
+ @SuppressWarnings("rawtypes")
+ Iterator iter = treeSelection.iterator();
+ while (iter.hasNext()) {
+ Object obj = iter.next();
+ // Translate java ICompilationUnit to Iresource
+ if (obj instanceof ICompilationUnit) {
+ ICompilationUnit u = (ICompilationUnit) obj;
+ try {
+ obj = u.getCorrespondingResource();
+ } catch (JavaModelException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ if (obj instanceof IPackageFragment)
+ {
+ IPackageFragment u = (IPackageFragment) obj;
+ try {
+ IResource res = u.getCorrespondingResource();
+ if (res != null) {
+ obj = res;
+ }
+ } catch (JavaModelException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ // This happen when selection is an element from a jar
+ if (obj instanceof IJavaElement)
+ {
+ IJavaElement u = (IJavaElement) obj;
+ try {
+
+ reverseJavaElement(u);
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ // This is a regular java file
+ if (obj instanceof IResource)
+ {
+ try {
+ reverseResource((IResource) obj);
+ } catch (ParseException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (CoreException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ }
+
+ System.out.println("reverse done");
+
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/Messages.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/Messages.java
new file mode 100644
index 00000000000..38577506c0d
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/Messages.java
@@ -0,0 +1,19 @@
+package org.eclipse.papyrus.java.reverse.ui;
+
+import org.eclipse.osgi.util.NLS;
+
+public class Messages extends NLS {
+
+ private static final String BUNDLE_NAME = "org.eclipse.papyrus.java.reverse.ui.messages"; //$NON-NLS-1$
+
+ public static String ReverseCodeHandler_NoModelError_Message;
+
+ public static String ReverseCodeHandler_NoModelError_Title;
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ private Messages() {
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/ReverseCodeHandler.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/ReverseCodeHandler.java
new file mode 100644
index 00000000000..433344eba35
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/ReverseCodeHandler.java
@@ -0,0 +1,196 @@
+/**
+ *
+ */
+package org.eclipse.papyrus.java.reverse.ui;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.IHandler;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.transaction.RecordingCommand;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.jface.dialogs.ErrorDialog;
+import org.eclipse.jface.window.Window;
+import org.eclipse.papyrus.infra.core.editor.IMultiDiagramEditor;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.core.utils.EditorUtils;
+import org.eclipse.papyrus.infra.core.utils.ServiceUtilsForActionHandlers;
+import org.eclipse.papyrus.java.reverse.ui.dialog.ReverseCodeDialog;
+import org.eclipse.papyrus.uml.tools.model.UmlUtils;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.eclipse.uml2.uml.Package;
+
+
+/**
+ * @author dumoulin
+ *
+ */
+public class ReverseCodeHandler extends AbstractHandler implements IHandler {
+
+ private static String DefaultGenerationModeleName = "generated";
+
+ /**
+ * Method called when button is pressed.
+ */
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ // Try to find uml resource
+ final Resource umlResource;
+ try {
+ umlResource = getUmlResource();
+ } catch (NullPointerException e) {
+ // No uml resource available. User must open a model. We open an error dialog with an explicit message to advice user.
+ Shell shell = HandlerUtil.getActiveShell(event);
+ Status errorStatus = new Status(IStatus.ERROR, Activator.PLUGIN_ID, Messages.ReverseCodeHandler_NoModelError_Title);
+ ErrorDialog.openError(shell, "", Messages.ReverseCodeHandler_NoModelError_Message, errorStatus);
+
+ // Stop the reverse execution.
+ return null;
+ }
+ ;
+
+ String modelUid = getModelUid(umlResource);
+ System.out.println("Model uid :" + modelUid);
+
+ // Get reverse parameters from a dialog
+ Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActivePart().getSite().getShell();
+ // ReverseCodeDialog dialog = new ReverseCodeDialog(shell, DefaultGenerationPackageName, Arrays.asList("generated") );
+ final ReverseCodeDialog dialog = getDialog(shell, modelUid);
+
+ int res = dialog.open();
+ // System.out.println("dialog result =" + res);
+ if (res == Window.CANCEL) {
+ System.out.println("Canceled by user.");
+ return null;
+ }
+
+ // Execute the reverse with provided parameters
+ TransactionalEditingDomain editingDomain;
+ try {
+ editingDomain = getEditingDomain();
+ } catch (ServiceException e) {
+ // Can't get editing domain
+ e.printStackTrace();
+ throw new ExecutionException(e.getMessage());
+ }
+
+ RecordingCommand command = new RecordingCommand(editingDomain, "Reverse Java Code") {
+
+ @Override
+ protected void doExecute() {
+ ReverseCodeHandler.this.doExecute(dialog);
+ }
+
+ };
+
+ editingDomain.getCommandStack().execute(command);
+
+
+ return null;
+ }
+
+ /**
+ * Find the modelUid name contains into umlResource taken in parameter
+ *
+ * @param umlResource
+ * @return the modelUid name
+ */
+ private String getModelUid(Resource umlResource) {
+ // Try to compute a uid identifying the model. Used to store user settings.
+ String modelUid = umlResource.getURI().toPlatformString(true);
+ if (modelUid == null) {
+ System.err.println("Can't compute relatif model uid. Use absolute one");
+ modelUid = umlResource.getURI().path();
+ }
+ return modelUid;
+ }
+
+ /**
+ * Command ran in a RecordingCommand, after the dialog
+ * Run the @link{JavaCodeReverse.executeCodeReverse}
+ * Shall be override to change command behavior
+ */
+ protected void doExecute(ReverseCodeDialog dialog) {
+ // Create searchpaths. Add the rootmodelname as prefix.
+ final List<String> searchPaths = Arrays.asList(dialog.getSearchPath());
+ Resource umlResource = getUmlResource();
+ String packageName = getPackageName(dialog);
+ JavaCodeReverse reverse = new JavaCodeReverse(getRootPackage(umlResource), packageName, searchPaths);
+ reverse.executeCodeReverse(umlResource, packageName, searchPaths);
+ }
+
+ /**
+ * The dialog used for user.
+ *
+ * @param shell
+ * @param modelUid
+ * @return the dialog to show to user
+ */
+ protected ReverseCodeDialog getDialog(Shell shell, String modelUid) {
+ return new ReverseCodeDialog(shell, modelUid, null, null);
+ }
+
+ /**
+ * Find the name of the model provided by the dialog
+ *
+ * @param dialog
+ * opened dialog to user
+ * @return the name of the model. If the user has changed this name, return the name provided by the user; return the default model name
+ * otherwise.
+ */
+ protected String getPackageName(ReverseCodeDialog dialog) {
+ String generationPackageName = dialog.getValue();
+ if (generationPackageName == null || generationPackageName.length() == 0) {
+ generationPackageName = DefaultGenerationModeleName;
+ }
+ return generationPackageName;
+ }
+
+ /**
+ * Get the uml resource used by the model.
+ *
+ * @return the Uml Resource
+ */
+ protected Resource getUmlResource() {
+ Resource umlResource = UmlUtils.getUmlModel().getResource();
+ return umlResource;
+ }
+
+ /**
+ * Get the name of the root model.
+ *
+ * @return
+ */
+ protected Package getRootPackage(Resource umlResource) {
+ Package rootPackage = (Package) umlResource.getContents().get(0);
+ return rootPackage;
+ }
+
+ /**
+ * Get the current MultiDiagramEditor.
+ *
+ * @return
+ */
+ protected IMultiDiagramEditor getMultiDiagramEditor() {
+ return EditorUtils.getMultiDiagramEditor();
+ }
+
+ /**
+ * Get the main editing doamin.
+ *
+ * @return
+ * @throws ServiceException
+ */
+ protected TransactionalEditingDomain getEditingDomain() throws ServiceException {
+ return ServiceUtilsForActionHandlers.getInstance().getTransactionalEditingDomain();
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/TreeSelectionList.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/TreeSelectionList.java
new file mode 100644
index 00000000000..370a9c0319e
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/TreeSelectionList.java
@@ -0,0 +1,153 @@
+/*****************************************************************************
+ * Copyright (c) 2014 Jonathan Geoffroy.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Jonathan Geoffroy geoffroy.jonathan@gmail.com initial implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.java.reverse.ui;
+
+import java.util.Iterator;
+import java.util.LinkedList;
+
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.core.IPackageFragment;
+import org.eclipse.jdt.core.IPackageFragmentRoot;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jface.viewers.TreeSelection;
+
+/**
+ * Transform a TreeSelection collection, provided by java resource selection, into a java List (java.util.List). <br>
+ * Add each element of TreeSelection which have to be displayed. i.e. include packages if <code>includePackages</code> == true; include compilation
+ * unit if <code>inclupdeCU</code> == true<br/>
+ * Note the each element of TreeSelection is a IJavaElement.
+ *
+ * @author Jonathan Geoffroy
+ *
+ */
+public class TreeSelectionList extends LinkedList<IJavaElement> {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -5749380826507346600L;
+
+ /**
+ * True if and only if this list includes packages
+ */
+ private boolean includePackages;
+
+ /**
+ * True if and only if this list includes packages
+ */
+ private boolean includeCU;
+
+ /**
+ *
+ * Constructor.
+ *
+ * @param treeSelection
+ * java resources selection
+ * @param includePackages
+ * True if and only if this list includes packages from <code>treeSelection</code>
+ * @param includeCU
+ * True if and only if this list includes compilation units from <code>treeSelection</code>
+ * @throws JavaModelException
+ */
+ public TreeSelectionList(TreeSelection treeSelection, boolean includePackages, boolean includeCU) throws JavaModelException {
+ super();
+ this.includePackages = includePackages;
+ this.includeCU = includeCU;
+
+ // Add each treeSelection item into the list
+ addAll(treeSelection);
+ }
+
+ /**
+ *
+ * @param selection
+ * @throws JavaModelException
+ */
+ private void addAll(TreeSelection selection) throws JavaModelException {
+ Iterator<IJavaElement> selectionIterator = selection.iterator();
+ while (selectionIterator.hasNext()) {
+ IJavaElement item = selectionIterator.next();
+ scanJavaElement(item);
+ }
+ }
+
+ /**
+ * Scan a Compilation Unit item
+ * Just add it if it's necessary
+ *
+ * @param item
+ * a selection compilation unit
+ */
+ private void scanCU(ICompilationUnit item) {
+ if (includeCU) {
+ add(item);
+ }
+ }
+
+ /**
+ * Scan a package.
+ * add it if it's necessary and cross its childs to display all sub-packages (and recursively)
+ *
+ * @param item
+ * the package to scan
+ * @throws JavaModelException
+ */
+ private void scanPackage(IPackageFragment item) throws JavaModelException {
+ if (includePackages) {
+ add(item);
+ }
+
+ // Recursive search in tree
+ for (IJavaElement child : item.getChildren()) {
+ scanJavaElement(child);
+ }
+ }
+
+ /**
+ * Scan a source folder.
+ * add its childs (and recursively) by calling scanJavaElement on each child
+ *
+ * @param item
+ * the folder to scan
+ * @throws JavaModelException
+ */
+ private void scanFolder(IPackageFragmentRoot item) throws JavaModelException {
+ // Recursive search in tree
+ for (IJavaElement child : item.getChildren()) {
+ scanJavaElement(child);
+ }
+ }
+
+ /**
+ * scan and add a JavaElement by delegates to scan{typeOfJavaElement}
+ *
+ * @param item
+ * the item to display
+ * @throws JavaModelException
+ */
+ private void scanJavaElement(IJavaElement item) throws JavaModelException {
+ switch (item.getElementType()) {
+ case IJavaElement.PACKAGE_FRAGMENT_ROOT:
+ scanFolder((IPackageFragmentRoot) item);
+ break;
+ case IJavaElement.PACKAGE_FRAGMENT:
+ scanPackage((IPackageFragment) item);
+ break;
+ case IJavaElement.COMPILATION_UNIT:
+ scanCU((ICompilationUnit) item);
+ break;
+ }
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/dialog/DndReverseCodeDialog.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/dialog/DndReverseCodeDialog.java
new file mode 100644
index 00000000000..05180af829d
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/dialog/DndReverseCodeDialog.java
@@ -0,0 +1,93 @@
+package org.eclipse.papyrus.java.reverse.ui.dialog;
+
+import java.util.List;
+
+import org.eclipse.jface.dialogs.IDialogSettings;
+import org.eclipse.papyrus.java.reverse.ui.Activator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+
+
+public class DndReverseCodeDialog extends ReverseCodeDialog {
+
+ private static final String DISPLAY_MODEL_UID = ":DISPLAY_MODEL"; //$NON-NLS-1$
+ private static final String DISPLAY_PACKAGES_UID = ":DISPLAY_PACKAGES"; //$NON-NLS-1$
+ private static final String DISPLAY_CU_UID = ":DISPLAY_CU"; //$NON-NLS-1$
+ private Button displayModelCheckbox;
+ private Button displayPackagesCheckbox;
+ private Button displayCUCheckbox;
+
+ private boolean displayModel;
+ private boolean displayPackages;
+ private boolean displayCU;
+
+ public DndReverseCodeDialog(Shell parentShell, String modelUid, String initialValue, List<String> searchPathsInitialValues) {
+ super(parentShell, modelUid, initialValue, searchPathsInitialValues);
+
+ }
+
+ @Override
+ protected Control createDialogArea(Composite parent) {
+ IDialogSettings settings = Activator.getDefault().getDialogSettings();
+ Composite composite = (Composite) super.createDialogArea(parent);
+
+ // Create button to display or not the model
+ displayModelCheckbox = new Button(composite, SWT.CHECK);
+ displayModelCheckbox.setText("Display reversed Model into diagram");
+ displayModelCheckbox.setSelection(settings.getBoolean(MODEL_UID + DISPLAY_MODEL_UID));
+
+ // Create button to display or not package
+ displayPackagesCheckbox = new Button(composite, SWT.CHECK);
+ displayPackagesCheckbox.setText("Display reversed UML::packages into diagram");
+ displayPackagesCheckbox.setSelection(settings.getBoolean(MODEL_UID + DISPLAY_PACKAGES_UID));
+
+ // Create button to display or not CompilationUnit
+ displayCUCheckbox = new Button(composite, SWT.CHECK);
+ displayCUCheckbox.setText("Display UML::classes, UML::interfaces, UML::enumerations into diagram");
+ displayCUCheckbox.setSelection(settings.getBoolean(MODEL_UID + DISPLAY_CU_UID));
+
+ return composite;
+ }
+
+ @Override
+ protected void okPressed() {
+ // add selection into fields to prevent dialog disposing
+ displayModel = displayModelCheckbox.getSelection();
+ displayPackages = displayPackagesCheckbox.getSelection();
+ displayCU = displayCUCheckbox.getSelection();
+
+ // save selection into settings
+ IDialogSettings settings = Activator.getDefault().getDialogSettings();
+ settings.put(MODEL_UID + DISPLAY_MODEL_UID, displayModel);
+ settings.put(MODEL_UID + DISPLAY_PACKAGES_UID, displayPackages);
+ settings.put(MODEL_UID + DISPLAY_CU_UID, displayCU);
+ super.okPressed();
+ }
+
+ /**
+ *
+ * @return true if displayModelCheckbox is checked
+ */
+ public boolean displayModel() {
+ return displayModel;
+ }
+
+ /**
+ *
+ * @return true if displayPackagesCheckbox is checked
+ */
+ public boolean displayPackages() {
+ return displayPackages;
+ }
+
+ /**
+ *
+ * @return true if displayCUCheckbox is checked
+ */
+ public boolean displayCU() {
+ return displayCU;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/dialog/InputListDialog.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/dialog/InputListDialog.java
new file mode 100644
index 00000000000..f8c4fd0a58e
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/dialog/InputListDialog.java
@@ -0,0 +1,332 @@
+/**
+ *
+ */
+package org.eclipse.papyrus.java.reverse.ui.dialog;
+
+import java.util.List;
+
+import org.eclipse.jface.resource.JFaceResources;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+
+/**
+ * @author dumoulin
+ *
+ */
+public class InputListDialog {
+
+ /** Message to be show */
+ private String message;
+
+ /** Message to be show */
+ private String tooltips;
+
+ /** List of fields to show */
+ private List<String> fieldList;
+
+ /**
+ * Input text widget.
+ */
+ private Text addToListText;
+
+ private org.eclipse.swt.widgets.List listWidget;
+
+ /**
+ * Constructor.
+ *
+ * @param msg
+ * @param list
+ */
+ public InputListDialog(String msg, List<String> list) {
+ this.message = msg;
+ this.fieldList = list;
+ }
+
+
+
+ /**
+ * @param tooltips
+ * the tooltips to set
+ */
+ public void setTooltips(String tooltips) {
+ this.tooltips = tooltips;
+ }
+
+
+ /**
+ * Return the selected list.
+ *
+ * @return
+ */
+ public String[] getList() {
+ return listWidget.getItems();
+ }
+
+ /**
+ *
+ * @param parent
+ * @return
+ */
+ public Control createDialogArea(Composite parent) {
+ // create composite
+ Composite composite = parent;
+ // create message
+ if (message != null) {
+ Label label = new Label(composite, SWT.WRAP);
+ label.setText(message);
+ GridData data = new GridData(GridData.GRAB_HORIZONTAL
+ /* | GridData.GRAB_VERTICAL */| GridData.HORIZONTAL_ALIGN_FILL
+ | GridData.VERTICAL_ALIGN_CENTER);
+ // data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH);
+ label.setLayoutData(data);
+ label.setFont(parent.getFont());
+ setToolTip(label, tooltips);
+ ;
+ }
+
+ // button
+ createButtonBar(composite);
+
+ // list
+ listWidget = new org.eclipse.swt.widgets.List(composite, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.RESIZE);
+
+ GridData listData = new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_VERTICAL | GridData.VERTICAL_ALIGN_FILL);
+
+ listData.heightHint = 100;
+ listWidget.setLayoutData(listData);
+ setToolTip(listWidget, tooltips);
+ if (fieldList != null) {
+ for (String item : fieldList) {
+ listWidget.add(item);
+ }
+ }
+
+ // applyDialogFont(composite);
+ return composite;
+ }
+
+
+ /**
+ * Set the tooltips if not null.
+ *
+ * @param parent
+ * @param tooltips
+ */
+ private void setToolTip(Control parent, String tooltips) {
+ if (tooltips != null) {
+ parent.setToolTipText(tooltips);
+ }
+ }
+
+ /**
+ * Returns the style bits that should be used for the input text field.
+ * Defaults to a single line entry. Subclasses may override.
+ *
+ * @return the integer style bits that should be used when creating the
+ * input text
+ *
+ * @since 3.4
+ */
+ protected int getInputTextStyle() {
+ return SWT.SINGLE | SWT.BORDER;
+ }
+
+ /**
+ * Creates and returns the contents of this dialog's button bar.
+ * <p>
+ * The <code>Dialog</code> implementation of this framework method lays out a button bar and calls the <code>createButtonsForButtonBar</code> framework method to populate it. Subclasses may override.
+ * </p>
+ * <p>
+ * The returned control's layout data must be an instance of <code>GridData</code>.
+ * </p>
+ *
+ * @param parent
+ * the parent composite to contain the button bar
+ * @return the button bar control
+ */
+ protected Control createButtonBar(Composite parent) {
+ Composite composite = new Composite(parent, SWT.NONE);
+ // create a layout with spacing and margins appropriate for the font
+ // size.
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 0; // this is incremented by createButton
+ layout.makeColumnsEqualWidth = false;
+ // layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
+ // layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
+ // layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
+ // layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
+ composite.setLayout(layout);
+ GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL
+ | GridData.VERTICAL_ALIGN_CENTER);
+ composite.setLayoutData(data);
+ composite.setFont(parent.getFont());
+
+ // Add the buttons to the button bar.
+ createButtonsForButtonBar(composite);
+ return composite;
+ }
+
+ /**
+ * Adds buttons to this dialog's button bar.
+ * <p>
+ * The <code>Dialog</code> implementation of this framework method adds standard ok and cancel buttons using the <code>createButton</code> framework method. These standard buttons will be accessible from <code>getCancelButton</code>, and
+ * <code>getOKButton</code>. Subclasses may override.
+ * </p>
+ *
+ * @param parent
+ * the button bar composite
+ */
+ protected void createButtonsForButtonBar(Composite parent) {
+ // create OK and Cancel buttons by default
+ // Create input text
+ // input text
+ ((GridLayout) parent.getLayout()).numColumns++;
+ addToListText = new Text(parent, getInputTextStyle());
+ setButtonLayoutData(addToListText);
+ addToListText.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING
+ | GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL));
+
+ // Create a Button
+ ((GridLayout) parent.getLayout()).numColumns++;
+ Button button = new Button(parent, SWT.PUSH);
+ button.setText("add");
+ button.setFont(JFaceResources.getDialogFont());
+ button.addSelectionListener(new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent event) {
+ addPressed();
+ }
+ });
+ setButtonLayoutData(button);
+
+ // remove
+ ((GridLayout) parent.getLayout()).numColumns++;
+ button = new Button(parent, SWT.PUSH);
+ button.setText("-");
+ button.setFont(JFaceResources.getDialogFont());
+ button.addSelectionListener(new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent event) {
+ removedPressed();
+ }
+ });
+ setButtonLayoutData(button);
+
+ // up
+ ((GridLayout) parent.getLayout()).numColumns++;
+ button = new Button(parent, SWT.PUSH);
+ button.setText("^");
+ button.setFont(JFaceResources.getDialogFont());
+ button.addSelectionListener(new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent event) {
+ upPressed();
+ }
+ });
+ setButtonLayoutData(button);
+
+ // down
+ ((GridLayout) parent.getLayout()).numColumns++;
+ button = new Button(parent, SWT.PUSH);
+ button.setText("v");
+ button.setFont(JFaceResources.getDialogFont());
+ button.addSelectionListener(new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent event) {
+ downPressed();
+ }
+ });
+ setButtonLayoutData(button);
+
+
+ }
+
+ /**
+ * Called when add button is pressed.
+ */
+ protected void addPressed() {
+ System.out.println("add pressed " + addToListText.getText());
+ String msg = addToListText.getText();
+ if (msg.length() == 0) {
+ return;
+ }
+
+ msg.trim();
+ listWidget.add(msg);
+ // listWidget.pack(true);
+ }
+
+ protected void upPressed() {
+ System.out.println("up pressed");
+ int selectionIndex = listWidget.getSelectionIndex();
+
+ if (selectionIndex > 0) {
+ swapItems(selectionIndex - 1, selectionIndex);
+ listWidget.setSelection(selectionIndex - 1);
+ }
+ }
+
+ /**
+ * Swap items in the list
+ *
+ * @param down
+ * @param up
+ */
+ private void swapItems(int down, int up) {
+ String tmp = listWidget.getItem(down);
+ listWidget.setItem(down, listWidget.getItem(up));
+ listWidget.setItem(up, tmp);
+ }
+
+ protected void downPressed() {
+ System.out.println("down pressed");
+ int selectionIndex = listWidget.getSelectionIndex();
+
+ if (selectionIndex < listWidget.getItemCount() - 1) {
+ swapItems(selectionIndex, selectionIndex + 1);
+ listWidget.setSelection(selectionIndex + 1);
+ }
+ }
+
+
+ protected void removedPressed() {
+ System.out.println("removed pressed");
+ int selectionIndex = listWidget.getSelectionIndex();
+
+ String old = listWidget.getItem(selectionIndex);
+ listWidget.remove(selectionIndex);
+ addToListText.setText(old);
+ }
+
+
+ /**
+ * Set the layout data of the button to a GridData with appropriate heights
+ * and widths.
+ *
+ * @param button
+ */
+ protected void setButtonLayoutData(Control button) {
+ GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
+ // int widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
+ Point minSize = button.computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
+ // data.widthHint = Math.max(widthHint, minSize.x);
+ data.widthHint = minSize.x;
+ button.setLayoutData(data);
+ }
+
+
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/dialog/ReverseCodeDialog.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/dialog/ReverseCodeDialog.java
new file mode 100644
index 00000000000..d21b20de12d
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/dialog/ReverseCodeDialog.java
@@ -0,0 +1,281 @@
+/**
+ *
+ */
+package org.eclipse.papyrus.java.reverse.ui.dialog;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import javagen.umlparser.CreationPackageCatalog;
+
+import org.eclipse.jface.dialogs.IDialogSettings;
+import org.eclipse.jface.dialogs.InputDialog;
+import org.eclipse.papyrus.java.reverse.ui.Activator;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+
+/**
+ * @author dumoulin
+ *
+ */
+public class ReverseCodeDialog extends InputDialog {
+
+ /** Internal dialog to show list of searchpaths */
+ private InputListDialog listDialog;
+
+ /** Internal dialog to show list of creation paths */
+ private InputListDialog creationPathsDialog;
+
+ /** Returned searchpaths */
+ private String[] searchPath;
+ /** creationPaths read by the list. One line pattern by element */
+ private String[] creationPaths;
+ /** splitted creationPaths. pattern lines are splitted in small path */
+ private List<String> splittedCreationPaths;
+
+ private String SEARCHPATHS_UID = ":searchpaths";
+ private String CREATIONPATHS_UID = ":creationpaths";
+ private static String DEFAULT_PACKAGE_NAME_UID = ":defaultpackagename";
+ protected String MODEL_UID = "nomodeluid";
+
+ private static String textMsg = "Default creation package.";
+ @SuppressWarnings("unused")
+ private static String creationPackageTooltips = "The default creation package is used when no matching creation package are found.";
+
+
+ private static String dialogTitle = "Reverse Code";
+
+ private static String listMsg = "search paths - list of model packages used to search for already existing classes (ex: p1/p2)";
+ private static String listTooltips = "search paths - list of model packages used to search for already existing classes (ex: p1/p2)";
+
+ private static String creationPathMsg = "creation paths \n"
+ + "pattern: includePath ; excludePath ; destination (use ';' as separator)\n";
+
+ private static String creationPathTooltips = "creation paths - list of path describing the models inside which reversed classes will be generated.\n"
+ + "pattern: includeJavaPackage ; excludeJavaPackage ; destinationPath (use ';' as separator)\n"
+ + "includeJavaPackage: the java package that should be mapped. Can contain a '*'.\n"
+ + "excludeJavaPackage: the java package that should be excluded. Can contain a '*'.\n"
+ + "destinationPath: the uml model inside which matching java packages will be created. Can contain a '*'.\n"
+ + "if destinationPath contains a '*', it will be replaced by the partname found at the place of '*'\n"
+ + "in the includeJavaPackage\n"
+ + "\n"
+ + "ex: eclipse.org.* ; eclipse.org.papyrus ; *";
+
+
+ /**
+ * @param parentShell
+ * @param dialogTitle
+ * @param dialogMessage
+ * @param initialValue
+ * @param validator
+ */
+ public ReverseCodeDialog(Shell parentShell, String modelUid, String initialValue, List<String> searchPathsInitialValues) {
+ super(parentShell, dialogTitle, textMsg, getInitialValue(modelUid, initialValue), null);
+ // TODO Auto-generated constructor stub
+ IDialogSettings settings = Activator.getDefault().getDialogSettings();
+
+ MODEL_UID = modelUid;
+
+ // Look for generationPackageName if none is provided.
+ // if(initialValue == null)
+ // {
+ // String generationPackageName = settings.get("generationPackageName");
+ // getText().setText(generationPackageName);
+ //
+ // }
+ // Look for saved searchpaths if none is provided.
+ if (searchPathsInitialValues == null) {
+ String[] savedSearchPath = settings.getArray(MODEL_UID + SEARCHPATHS_UID);
+ if (savedSearchPath != null) {
+ searchPathsInitialValues = Arrays.asList(savedSearchPath);
+ } else
+ {
+ searchPathsInitialValues = CreationPackageCatalog.getDefaultSearchPath();
+ }
+ }
+
+ // Look for saved creationPaths if none is provided.
+ if (creationPaths == null) {
+ String[] savedSearchPath = settings.getArray(MODEL_UID + CREATIONPATHS_UID);
+ if (savedSearchPath != null) {
+ creationPaths = savedSearchPath;
+ } else {
+ creationPaths = CreationPackageCatalog.getDefaultPackageCreationPatterns(" ; ");
+ }
+ }
+
+ listDialog = new InputListDialog(listMsg, searchPathsInitialValues);
+ listDialog.setTooltips(listTooltips);
+ creationPathsDialog = new InputListDialog(creationPathMsg, Arrays.asList(creationPaths));
+ creationPathsDialog.setTooltips(creationPathTooltips);
+ }
+
+ /**
+ *
+ * @param modelUid
+ * @param initialValue
+ * @return
+ */
+ private static String getInitialValue(String modelUid, String initialValue) {
+ IDialogSettings settings = Activator.getDefault().getDialogSettings();
+
+ // Look for generationPackageName if none is provided.
+ if (initialValue == null) {
+ // String generationPackageName = settings.get(MODEL_UID + SEARCHPATH_UID);
+ String generationPackageName = settings.get(modelUid + DEFAULT_PACKAGE_NAME_UID);
+ return generationPackageName;
+
+ }
+ return initialValue;
+ }
+
+ /**
+ * Allows resizing.
+ */
+ @Override
+ protected boolean isResizable() {
+ // TODO Auto-generated method stub
+ return true;
+ }
+
+ /**
+ * Get the returned searchpaths.
+ *
+ * @return
+ */
+ public String[] getSearchPath() {
+ return searchPath;
+ }
+
+ /**
+ * Get the returned creationPaths, one pattern for each entry, separated by ';'.
+ *
+ * @return
+ */
+ public List<String> getCreationPaths() {
+
+ return splittedCreationPaths;
+ }
+
+
+ /**
+ * Create additional list of searchpaths.
+ */
+ @Override
+ protected Control createDialogArea(Composite parent) {
+ // create composite
+ Composite composite = (Composite) super.createDialogArea(parent);
+
+ listDialog.createDialogArea(composite);
+ creationPathsDialog.createDialogArea(composite);
+ return composite;
+ }
+
+ /**
+ * Save the searchpath after the button is pressed.
+ */
+ @Override
+ protected void okPressed() {
+ // Save the list before the control is disposed
+ searchPath = listDialog.getList();
+ creationPaths = creationPathsDialog.getList();
+ String defaultCreationPath = getValue();
+ if (defaultCreationPath == null || defaultCreationPath.length() == 0) {
+ defaultCreationPath = CreationPackageCatalog.getDefaultCreationPath();
+ }
+
+ // Check inputs
+ try {
+ // Check paths
+ splittedCreationPaths = computeCreationPaths(creationPaths);
+ CreationPackageCatalog.validateCreationPath(splittedCreationPaths);
+ // add default searchPaths
+ searchPath = addDefaultSearchPaths(Arrays.asList(searchPath), splittedCreationPaths).toArray(new String[0]);
+
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ showError(e.getMessage());
+ return;
+ }
+
+
+ // save values
+ IDialogSettings settings = Activator.getDefault().getDialogSettings();
+ settings.put(MODEL_UID + SEARCHPATHS_UID, searchPath);
+ settings.put(MODEL_UID + CREATIONPATHS_UID, creationPaths);
+ settings.put(MODEL_UID + DEFAULT_PACKAGE_NAME_UID, getValue());
+
+
+ super.okPressed();
+ }
+
+
+ /**
+ * Add the defaultSearchPath extracted from the splittedCreationPath to the searchPath.
+ *
+ * @param splittedCreationPaths2
+ */
+ private List<String> addDefaultSearchPaths(List<String> searchPath, List<String> splittedCreationPaths) {
+
+
+ List<String> result = new ArrayList<String>(searchPath.size() + splittedCreationPaths.size());
+ result.addAll(searchPath);
+
+ List<String> additionalPaths = CreationPackageCatalog.extractCreationPaths(splittedCreationPaths.toArray(new String[0]));
+ for (String toAdd : additionalPaths) {
+ if (!result.contains(toAdd)) {
+ result.add(toAdd);
+ }
+ }
+
+ return result;
+ }
+
+ /**
+ * Show an error message
+ *
+ * @param message
+ */
+ private void showError(String message) {
+ System.err.println("Error: " + message);
+
+ }
+
+
+ /**
+ * Compute and check the creationsPaths
+ *
+ * @param creationPaths
+ * An array with one creationPattern by element
+ * @return An array with one path by elements
+ * @throws Exception
+ */
+ private List<String> computeCreationPaths(String[] creationPaths) throws Exception {
+
+ List<String> result = new ArrayList<String>();
+
+ // Iterate line by line
+ // For each line, separate the 3 patterns
+ // If a pattern is empty, put a null
+ for (String line : creationPaths) {
+ String[] eles = line.split(";");
+ if (eles.length != 3) {
+ throw new Exception("A line must contains 3 pattern separated by ';' :" + line);
+ }
+ for (String ele : eles)
+ {
+ ele = ele.trim();
+ if (ele.length() == 0) {
+ ele = null;
+ }
+ // add ele
+ result.add(ele);
+ }
+ }
+ return result;
+ }
+
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/dnd/DropReverseCommand.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/dnd/DropReverseCommand.java
new file mode 100755
index 00000000000..9fdb9fb8505
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/dnd/DropReverseCommand.java
@@ -0,0 +1,103 @@
+/*****************************************************************************
+ * Copyright (c) 2014 Jonathan Geoffroy.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Jonathan Geoffroy geoffroy.jonathan@gmail.com - initial implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.java.reverse.ui.dnd;
+
+import java.util.List;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.papyrus.java.reverse.ui.DndReverseCodeHandler;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PlatformUI;
+
+/**
+ * Command called when user drop Java Elements into diagram model (on Papyrus editor).
+ * Check for selected elements, and run reverse handler if all selected files are reversible.
+ *
+ * This command implements a Singleton Pattern. You should use ReverseCommand.getInstance() to receive a Singleton of this Command.
+ *
+ * @author Jonathan Geoffroy
+ *
+ */
+public class DropReverseCommand extends Command {
+
+ /**
+ * Singleton implementation of ReverseCommand
+ * Always return this instance of Reverse Command when ask for instance
+ *
+ * @see {getInstance()}
+ */
+ private static DropReverseCommand instance;
+
+ /**
+ * Constructor. Initialize the request for this ReverseCommand
+ */
+ private DropReverseCommand() {
+ super();
+ }
+
+ @Override
+ public boolean canExecute() {
+ // Find the type of each selected file (CompilationUnit, packages ...)
+ List selected; // The selected files from JDT
+
+ IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+ ISelection selection = page.getSelection();
+ if (!(selection instanceof IStructuredSelection)) {
+ return false;
+ }
+ IStructuredSelection structuredSelection = (IStructuredSelection) selection;
+ selected = structuredSelection.toList();
+
+ // For each selected object, check if it's reversible.
+ for (Object s : selected) {
+ // We can only reverse Java Elements. Moreover, reversing projects is not available yet
+ if (!(s instanceof IJavaElement) || s instanceof IProject) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ @Override
+ public void execute() {
+ DndReverseCodeHandler reverse = new DndReverseCodeHandler();
+ try {
+ reverse.execute(null);
+ } catch (ExecutionException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * return a singleton of this command
+ * Change the request if it differ from the previous calling
+ *
+ *
+ * @return a singleton of this command
+ */
+ public static DropReverseCommand getInstance(Request request) {
+ if (instance == null) {
+ instance = new DropReverseCommand();
+ }
+
+ return instance;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/dnd/DropReverseStrategy.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/dnd/DropReverseStrategy.java
new file mode 100755
index 00000000000..a302a6d3418
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/dnd/DropReverseStrategy.java
@@ -0,0 +1,60 @@
+/*****************************************************************************
+ * Copyright (c) 2014 Jonathan Geoffroy.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Jonathan Geoffroy geoffroy.jonathan@gmail.com - initial implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.java.reverse.ui.dnd;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.papyrus.infra.gmfdiag.dnd.strategy.DropStrategy;
+import org.eclipse.swt.graphics.Image;
+
+
+public class DropReverseStrategy implements DropStrategy {
+ public DropReverseStrategy() {
+ }
+
+ @Override
+ public String getLabel() {
+ return Messages.DropReverseStrategy_LABEL;
+ }
+
+ @Override
+ public String getDescription() {
+ return Messages.DropReverseStrategy_DESCRIPTION;
+ }
+
+ @Override
+ public Image getImage() {
+ // No image to display
+ return null;
+ }
+
+ @Override
+ public String getID() {
+ return "org.eclipse.papyrus.java.reverse.ui.dnd.reversedropstrategy"; //$NON-NLS-1$
+ }
+
+ @Override
+ public Command getCommand(final Request request, final EditPart targetEditPart) {
+ return DropReverseCommand.getInstance(request);
+
+ }
+
+ @Override
+ public int getPriority() {
+ return 0;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/dnd/Messages.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/dnd/Messages.java
new file mode 100644
index 00000000000..3253c5eb40a
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/dnd/Messages.java
@@ -0,0 +1,19 @@
+package org.eclipse.papyrus.java.reverse.ui.dnd;
+
+import org.eclipse.osgi.util.NLS;
+
+public class Messages extends NLS {
+
+ private static final String BUNDLE_NAME = "org.eclipse.papyrus.java.reverse.ui.dnd.messages"; //$NON-NLS-1$
+
+ public static String DropReverseStrategy_DESCRIPTION;
+
+ public static String DropReverseStrategy_LABEL;
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ private Messages() {
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/dnd/messages.properties b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/dnd/messages.properties
new file mode 100644
index 00000000000..753937a59b2
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/dnd/messages.properties
@@ -0,0 +1,2 @@
+DropReverseStrategy_DESCRIPTION=Reverse all dropped classes into model
+DropReverseStrategy_LABEL=Reverse
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/handlers/CreateAssociationFromPropertyHandler.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/handlers/CreateAssociationFromPropertyHandler.java
new file mode 100644
index 00000000000..848f5ea6cbc
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/handlers/CreateAssociationFromPropertyHandler.java
@@ -0,0 +1,286 @@
+/**
+ *
+ */
+package org.eclipse.papyrus.java.reverse.ui.handlers;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.IHandler;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RecordingCommand;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TreeSelection;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.core.utils.ServiceUtilsForActionHandlers;
+import org.eclipse.papyrus.java.reverse.utils.TypeOperationsEnhanced;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.eclipse.uml2.uml.AggregationKind;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Type;
+
+
+/**
+ * An handler getting the selected element and reporting them in console.
+ *
+ * @author Cedric dumoulin
+ *
+ */
+public class CreateAssociationFromPropertyHandler extends AbstractHandler implements IHandler {
+
+
+ /**
+ * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+ * @param event
+ * @return
+ * @throws ExecutionException
+ *
+ */
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+
+ List<Object> objects = lookupSelectedElements();
+ List<Property> selectedProperties = getAllSelectionOfType(event, Property.class);
+ if (objects == null) {
+
+ showErrorDialog(event, "No object selected", "Can't create association. Please select a Property First.");
+ return null;
+ }
+
+ // Try creation
+ try {
+ doExecute(selectedProperties);
+ } catch (ServiceException e) {
+ showErrorDialog(event, "Can't get TransactionalEditingDomain", e.getMessage());
+ e.printStackTrace();
+ } catch (Exception e) {
+ showErrorDialog(event, "Can't Create Association", e.getMessage());
+ e.printStackTrace();
+ }
+
+ return null;
+ }
+
+ /**
+ * Get all selected element of the specified type.
+ *
+ * @param expectedType
+ * @return
+ * @throws ExecutionException
+ */
+ private <T> List<T> getAllSelectionOfType(ExecutionEvent event, Class<T> expectedType) throws ExecutionException {
+
+ ISelection selection = HandlerUtil.getCurrentSelectionChecked(event);
+ // IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+ // ISelection selection = page.getSelection();
+ System.out.println("check " + selection);
+ if (selection instanceof IStructuredSelection)
+ {
+ IStructuredSelection structuredSelection = (IStructuredSelection) selection;
+ return getAllElementOfType(structuredSelection.toList(), expectedType);
+ }
+ else if (selection instanceof TreeSelection) {
+ TreeSelection treeSelection = (TreeSelection) selection;
+ return getAllElementOfType(treeSelection.toList(), expectedType);
+
+ }
+ return null;
+ }
+
+ /**
+ * Filter the list, and only retain objects that can be adapted to the specified type
+ *
+ * @param objects
+ * @param class1
+ * @return
+ */
+ private <T> List<T> getAllElementOfType(List<Object> list, Class<T> expectedClassType) {
+
+ List<T> res = new ArrayList<T>();
+
+ for (Object cur : list) {
+
+ T adapted = adapt(cur, expectedClassType);
+ if (adapted != null) {
+ res.add(adapted);
+ }
+ }
+ return res;
+ }
+
+ /**
+ * Adapt the specified object to the requested type, if possible.
+ * Return null if the object can't be adapted.
+ *
+ * @param object
+ * @param expectedClassType
+ * @return The adapted object, or null.
+ */
+ private <T> T adapt(Object object, Class<T> expectedClassType) {
+
+ if (object instanceof IAdaptable) {
+ @SuppressWarnings("unchecked")
+ T ele = (T) ((IAdaptable) object).getAdapter(expectedClassType);
+ if (ele != null) {
+ return ele;
+ }
+ // Try as EObject if the expectedClasType is sub-type of EObject.
+ if (EObject.class.isAssignableFrom(expectedClassType)) {
+ // to EObject
+ EObject eobject = (EObject) ((IAdaptable) object).getAdapter(EObject.class);
+
+ if (eobject != null && expectedClassType.isInstance(eobject)) {
+ return (T) eobject;
+ }
+ }
+ }
+
+ // Try global mechanism
+ {
+ @SuppressWarnings("unchecked")
+ T ele = (T) Platform.getAdapterManager().getAdapter(object, expectedClassType);
+ if (ele != null) {
+ return ele;
+ }
+ // Try as EObject if the expectedClasType is sub-type of EObject.
+ if (EObject.class.isAssignableFrom(expectedClassType)) {
+ // to EObject
+ EObject eobject = (EObject) Platform.getAdapterManager().getAdapter(object, EObject.class);
+
+ if (eobject != null && expectedClassType.isInstance(eobject)) {
+
+ return (T) eobject;
+ }
+ }
+ }
+ // Can't be adapted
+ return null;
+
+ }
+
+ /**
+ *
+ * @param event
+ * @param errorMessage
+ * @throws ExecutionException
+ */
+ private void showErrorDialog(ExecutionEvent event, String title, String errorMessage) throws ExecutionException {
+ IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
+ MessageDialog.openError(
+ window.getShell(),
+ title,
+ errorMessage);
+ }
+
+
+ /**
+ * Get the name used in the {@link RecordingCommand}. This name will be visible in
+ * undo/redo.
+ *
+ * @return The command name to show.
+ */
+ public String getCommandName() {
+ return "Create Association";
+ }
+
+ /**
+ * Do the execution of the command.
+ *
+ * @param objects
+ * List of object to generate Java code from.
+ * @throws ServiceException
+ */
+ protected void doExecute(final List<?> objects) throws ServiceException {
+
+ // Execute the reverse with provided paramters
+ TransactionalEditingDomain editingDomain = getEditingDomain();
+ RecordingCommand command = new RecordingCommand(editingDomain, getCommandName()) {
+
+ @Override
+ protected void doExecute() {
+ System.out.println(" Selections:");
+
+ for (Object obj : objects) {
+
+ System.out.println("found '" + obj + "'.");
+ createAssociationFromProperty((Property) obj);
+ }
+ }
+
+ };
+
+ editingDomain.getCommandStack().execute(command);
+
+
+ }
+
+
+ /**
+ * Create an association from the specified Property. The association is created
+ * in the property's nearest package.
+ *
+ * @param p
+ * The property to use to create an association.
+ */
+ protected void createAssociationFromProperty(Property p) {
+
+ Element owner = p.getOwner();
+
+ if (owner instanceof Type) {
+
+ Type classOwner = (Type) owner;
+
+ // Compute other end name
+ String name = classOwner.getName();
+ String newname = name.substring(0, 1).toLowerCase() + name.substring(1);
+ // Create
+ TypeOperationsEnhanced.createAssociationFromProperty(p, true, AggregationKind.COMPOSITE_LITERAL,
+ false, AggregationKind.NONE_LITERAL, newname, 0, 1);
+ }
+ }
+
+ /**
+ * Lookup selected objects in UI.
+ *
+ * @return
+ */
+ private List<Object> lookupSelectedElements() {
+ IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+ ISelection selection = page.getSelection();
+ System.out.println("check " + selection);
+ if (selection instanceof IStructuredSelection)
+ {
+ IStructuredSelection structuredSelection = (IStructuredSelection) selection;
+ return structuredSelection.toList();
+ }
+ else if (selection instanceof TreeSelection) {
+ TreeSelection treeSelection = (TreeSelection) selection;
+ return treeSelection.toList();
+
+ }
+ return null;
+ }
+
+ /**
+ * Get the main editing doamin.
+ *
+ * @return
+ * @throws ServiceException
+ */
+ protected TransactionalEditingDomain getEditingDomain() throws ServiceException {
+ return ServiceUtilsForActionHandlers.getInstance().getTransactionalEditingDomain();
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/messages.properties b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/messages.properties
new file mode 100644
index 00000000000..a754ab7df2a
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/messages.properties
@@ -0,0 +1,2 @@
+ReverseCodeHandler_NoModelError_Message=No model selected for Reverse. Please open a model where you want to add the reverse result.
+ReverseCodeHandler_NoModelError_Title=No model selected
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/.classpath b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/.classpath
new file mode 100644
index 00000000000..ad32c83a788
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/.project b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/.project
new file mode 100644
index 00000000000..9f8df991a34
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.java.reverse</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/.settings/org.eclipse.jdt.core.prefs b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..94d61f00da6
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,291 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=260
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=false
+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=260
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=5
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/.settings/org.eclipse.jdt.ui.prefs b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 00000000000..954281dbc31
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,68 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_functional_interfaces=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=false
+cleanup.format_source_code=false
+cleanup.format_source_code_changes_only=false
+cleanup.insert_inferred_type_arguments=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=false
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_redundant_type_arguments=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_anonymous_class_creation=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_lambda=true
+cleanup.use_parentheses_in_expressions=false
+cleanup.use_this_for_non_static_field_access=false
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=false
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_type_arguments=false
+cleanup_profile=_Papyrus
+cleanup_settings_version=2
+eclipse.preferences.version=1
+formatter_profile=_Papyrus
+formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * Constructor.\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*****************************************************************************\n * Copyright (c) ${year} CEA LIST and others.\n * \n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n * CEA LIST - Initial API and implementation\n * \n *****************************************************************************/\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\n * ${see_to_overridden}\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${see_to_target}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/META-INF/MANIFEST.MF b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..bb2e8d708bb
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.uml2.uml;visibility:=reexport
+Export-Package: japa.parser,
+ japa.parser.ast,
+ javagen.umlparser,
+ org.eclipse.papyrus.java.reverse.utils
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-Version: 1.2.0.qualifier
+Bundle-Localization: plugin
+Bundle-Name: %pluginName
+Bundle-Activator: org.eclipse.papyrus.java.reverse.Activator
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.java.reverse;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/about.html b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/about.html
new file mode 100644
index 00000000000..82d49bf5f81
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/build.properties b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/build.properties
new file mode 100644
index 00000000000..d012a1e3eec
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/build.properties
@@ -0,0 +1,8 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.properties,\
+ about.html
+src.includes = about.html,\
+ build.properties
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/plugin.properties b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/plugin.properties
new file mode 100644
index 00000000000..4baa6d1eeda
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/plugin.properties
@@ -0,0 +1,16 @@
+
+#################################################################################
+# Copyright (c) 2010-2013 Cedric Dumoulin.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Cedric Dumoulin Cedric.dumoulin@lifl.fr - Initial API
+#
+#################################################################################
+
+pluginName=Java Reverse (Incubation)
+providerName=Eclipse Modeling Project
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/pom.xml b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/pom.xml
new file mode 100644
index 00000000000..4ea411b632b
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.java.reverse</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ASTParser.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ASTParser.java
new file mode 100644
index 00000000000..9eeb4b984c4
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ASTParser.java
@@ -0,0 +1,10321 @@
+/* Generated By:JavaCC: Do not edit this line. ASTParser.java */
+/*
+ * Copyright (C) 2008 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+package japa.parser;
+
+import japa.parser.ast.Comment;
+import japa.parser.ast.CompilationUnit;
+import japa.parser.ast.ImportDeclaration;
+import japa.parser.ast.PackageDeclaration;
+import japa.parser.ast.TypeParameter;
+import japa.parser.ast.body.AnnotationDeclaration;
+import japa.parser.ast.body.AnnotationMemberDeclaration;
+import japa.parser.ast.body.BodyDeclaration;
+import japa.parser.ast.body.ClassOrInterfaceDeclaration;
+import japa.parser.ast.body.ConstructorDeclaration;
+import japa.parser.ast.body.EmptyMemberDeclaration;
+import japa.parser.ast.body.EmptyTypeDeclaration;
+import japa.parser.ast.body.EnumConstantDeclaration;
+import japa.parser.ast.body.EnumDeclaration;
+import japa.parser.ast.body.FieldDeclaration;
+import japa.parser.ast.body.InitializerDeclaration;
+import japa.parser.ast.body.JavadocComment;
+import japa.parser.ast.body.MethodDeclaration;
+import japa.parser.ast.body.ModifierSet;
+import japa.parser.ast.body.Parameter;
+import japa.parser.ast.body.TypeDeclaration;
+import japa.parser.ast.body.VariableDeclarator;
+import japa.parser.ast.body.VariableDeclaratorId;
+import japa.parser.ast.expr.AnnotationExpr;
+import japa.parser.ast.expr.ArrayAccessExpr;
+import japa.parser.ast.expr.ArrayCreationExpr;
+import japa.parser.ast.expr.ArrayInitializerExpr;
+import japa.parser.ast.expr.AssignExpr;
+import japa.parser.ast.expr.BinaryExpr;
+import japa.parser.ast.expr.BooleanLiteralExpr;
+import japa.parser.ast.expr.CastExpr;
+import japa.parser.ast.expr.CharLiteralExpr;
+import japa.parser.ast.expr.ClassExpr;
+import japa.parser.ast.expr.ConditionalExpr;
+import japa.parser.ast.expr.DoubleLiteralExpr;
+import japa.parser.ast.expr.EnclosedExpr;
+import japa.parser.ast.expr.Expression;
+import japa.parser.ast.expr.FieldAccessExpr;
+import japa.parser.ast.expr.InstanceOfExpr;
+import japa.parser.ast.expr.IntegerLiteralExpr;
+import japa.parser.ast.expr.IntegerLiteralMinValueExpr;
+import japa.parser.ast.expr.LongLiteralExpr;
+import japa.parser.ast.expr.LongLiteralMinValueExpr;
+import japa.parser.ast.expr.MarkerAnnotationExpr;
+import japa.parser.ast.expr.MemberValuePair;
+import japa.parser.ast.expr.MethodCallExpr;
+import japa.parser.ast.expr.NameExpr;
+import japa.parser.ast.expr.NormalAnnotationExpr;
+import japa.parser.ast.expr.NullLiteralExpr;
+import japa.parser.ast.expr.ObjectCreationExpr;
+import japa.parser.ast.expr.QualifiedNameExpr;
+import japa.parser.ast.expr.SingleMemberAnnotationExpr;
+import japa.parser.ast.expr.StringLiteralExpr;
+import japa.parser.ast.expr.SuperExpr;
+import japa.parser.ast.expr.ThisExpr;
+import japa.parser.ast.expr.UnaryExpr;
+import japa.parser.ast.expr.VariableDeclarationExpr;
+import japa.parser.ast.stmt.AssertStmt;
+import japa.parser.ast.stmt.BlockStmt;
+import japa.parser.ast.stmt.BreakStmt;
+import japa.parser.ast.stmt.CatchClause;
+import japa.parser.ast.stmt.ContinueStmt;
+import japa.parser.ast.stmt.DoStmt;
+import japa.parser.ast.stmt.EmptyStmt;
+import japa.parser.ast.stmt.ExplicitConstructorInvocationStmt;
+import japa.parser.ast.stmt.ExpressionStmt;
+import japa.parser.ast.stmt.ForStmt;
+import japa.parser.ast.stmt.ForeachStmt;
+import japa.parser.ast.stmt.IfStmt;
+import japa.parser.ast.stmt.LabeledStmt;
+import japa.parser.ast.stmt.ReturnStmt;
+import japa.parser.ast.stmt.Statement;
+import japa.parser.ast.stmt.SwitchEntryStmt;
+import japa.parser.ast.stmt.SwitchStmt;
+import japa.parser.ast.stmt.SynchronizedStmt;
+import japa.parser.ast.stmt.ThrowStmt;
+import japa.parser.ast.stmt.TryStmt;
+import japa.parser.ast.stmt.TypeDeclarationStmt;
+import japa.parser.ast.stmt.WhileStmt;
+import japa.parser.ast.type.ClassOrInterfaceType;
+import japa.parser.ast.type.PrimitiveType;
+import japa.parser.ast.type.ReferenceType;
+import japa.parser.ast.type.Type;
+import japa.parser.ast.type.VoidType;
+import japa.parser.ast.type.WildcardType;
+
+import java.io.InputStream;
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * <p>
+ * This class was generated automatically by javacc, do not edit.
+ * </p>
+ *
+ * @author Júlio Vilmar Gesser
+ */
+final class ASTParser implements ASTParserConstants {
+
+ void reset(InputStream in, String encoding) {
+ ReInit(in, encoding);
+ token_source.clearComments();
+ }
+
+ private List add(List list, Object obj) {
+ if (list == null) {
+ list = new LinkedList();
+ }
+ list.add(obj);
+ return list;
+ }
+
+ private List add(int pos, List list, Object obj) {
+ if (list == null) {
+ list = new LinkedList();
+ }
+ list.add(pos, obj);
+ return list;
+ }
+
+ private class Modifier {
+
+ final int modifiers;
+
+ final List annotations;
+
+ final int beginLine;
+
+ final int beginColumn;
+
+ public Modifier(int beginLine, int beginColumn, int modifiers, List annotations) {
+ this.beginLine = beginLine;
+ this.beginColumn = beginColumn;
+ this.modifiers = modifiers;
+ this.annotations = annotations;
+ }
+ }
+
+ public int addModifier(int modifiers, int mod, Token token) throws ParseException {
+ if ((ModifierSet.hasModifier(modifiers, mod))) {
+ throwParseException(token, "Duplicated modifier");
+ }
+ return ModifierSet.addModifier(modifiers, mod);
+ }
+
+ private void pushJavadoc() {
+ token_source.pushJavadoc();
+ }
+
+ private JavadocComment popJavadoc() {
+ return token_source.popJavadoc();
+ }
+
+ private List<Comment> getComments() {
+ return token_source.getComments();
+ }
+
+ private void throwParseException(Token token, String message) throws ParseException {
+ StringBuilder buf = new StringBuilder();
+ buf.append(message);
+ buf.append(": \"");
+ buf.append(token.image);
+ buf.append("\" at line ");
+ buf.append(token.beginLine);
+ buf.append(", column ");
+ buf.append(token.beginColumn);
+ ParseException e = new ParseException(buf.toString());
+ e.currentToken = token;
+ throw e;
+ }
+
+ static final class GTToken extends Token {
+
+ int realKind = ASTParserConstants.GT;
+
+ GTToken(int kind, String image) {
+ this.kind = kind;
+ this.image = image;
+ }
+
+ public static Token newToken(int kind, String image) {
+ return new GTToken(kind, image);
+ }
+ }
+
+ /*****************************************
+ * THE JAVA LANGUAGE GRAMMAR STARTS HERE *
+ *****************************************/
+
+ /*
+ * Program structuring syntax follows.
+ */
+ final public CompilationUnit CompilationUnit() throws ParseException {
+ PackageDeclaration pakage = null;
+ List imports = null;
+ ImportDeclaration in = null;
+ List types = null;
+ TypeDeclaration tn = null;
+ int line = -1;
+ int column = 0;
+ if (jj_2_1(2147483647)) {
+ pakage = PackageDeclaration();
+ line = pakage.getBeginLine();
+ column = pakage.getBeginColumn();
+ } else {
+ ;
+ }
+ label_1: while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case IMPORT:
+ ;
+ break;
+ default:
+ jj_la1[0] = jj_gen;
+ break label_1;
+ }
+ in = ImportDeclaration();
+ if (line == -1) {
+ line = in.getBeginLine();
+ column = in.getBeginColumn();
+ }
+ imports = add(imports, in);
+ }
+ label_2: while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case ABSTRACT:
+ case CLASS:
+ case ENUM:
+ case FINAL:
+ case INTERFACE:
+ case NATIVE:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case STATIC:
+ case STRICTFP:
+ case SYNCHRONIZED:
+ case TRANSIENT:
+ case VOLATILE:
+ case SEMICOLON:
+ case AT:
+ ;
+ break;
+ default:
+ jj_la1[1] = jj_gen;
+ break label_2;
+ }
+ tn = TypeDeclaration();
+ if (line == -1) {
+ line = tn.getBeginLine();
+ column = tn.getBeginColumn();
+ }
+ types = add(types, tn);
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case 0:
+ jj_consume_token(0);
+ break;
+ case 128:
+ jj_consume_token(128);
+ break;
+ default:
+ jj_la1[2] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ {
+ if (true) {
+ return new CompilationUnit(line == -1 ? 0 : line, column, token.endLine, token.endColumn, pakage, imports, types, getComments());
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public PackageDeclaration PackageDeclaration() throws ParseException {
+ List annotations = null;
+ AnnotationExpr ann;
+ NameExpr name;
+ int line;
+ int column;
+ label_3: while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case AT:
+ ;
+ break;
+ default:
+ jj_la1[3] = jj_gen;
+ break label_3;
+ }
+ ann = Annotation();
+ annotations = add(annotations, ann);
+ }
+ jj_consume_token(PACKAGE);
+ line = token.beginLine;
+ column = token.beginColumn;
+ name = Name();
+ jj_consume_token(SEMICOLON);
+ {
+ if (true) {
+ return new PackageDeclaration(line, column, token.endLine, token.endColumn, annotations, name);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public ImportDeclaration ImportDeclaration() throws ParseException {
+ NameExpr name;
+ boolean isStatic = false;
+ boolean isAsterisk = false;
+ int line;
+ int column;
+ jj_consume_token(IMPORT);
+ line = token.beginLine;
+ column = token.beginColumn;
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case STATIC:
+ jj_consume_token(STATIC);
+ isStatic = true;
+ break;
+ default:
+ jj_la1[4] = jj_gen;
+ ;
+ }
+ name = Name();
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case DOT:
+ jj_consume_token(DOT);
+ jj_consume_token(STAR);
+ isAsterisk = true;
+ break;
+ default:
+ jj_la1[5] = jj_gen;
+ ;
+ }
+ jj_consume_token(SEMICOLON);
+ {
+ if (true) {
+ return new ImportDeclaration(line, column, token.endLine, token.endColumn, name, isStatic, isAsterisk);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ /*
+ * Modifiers. We match all modifiers in a single rule to reduce the chances of
+ * syntax errors for simple modifier mistakes. It will also enable us to give
+ * better error messages.
+ */
+ final public Modifier Modifiers() throws ParseException {
+ int beginLine = -1;
+ int beginColumn = -1;
+ int modifiers = 0;
+ List annotations = null;
+ AnnotationExpr ann;
+ label_4: while (true) {
+ if (jj_2_2(2)) {
+ ;
+ } else {
+ break label_4;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case PUBLIC:
+ jj_consume_token(PUBLIC);
+ modifiers = addModifier(modifiers, ModifierSet.PUBLIC, token);
+ if (beginLine == -1) {
+ beginLine = token.beginLine;
+ beginColumn = token.beginColumn;
+ }
+ break;
+ case STATIC:
+ jj_consume_token(STATIC);
+ modifiers = addModifier(modifiers, ModifierSet.STATIC, token);
+ if (beginLine == -1) {
+ beginLine = token.beginLine;
+ beginColumn = token.beginColumn;
+ }
+ break;
+ case PROTECTED:
+ jj_consume_token(PROTECTED);
+ modifiers = addModifier(modifiers, ModifierSet.PROTECTED, token);
+ if (beginLine == -1) {
+ beginLine = token.beginLine;
+ beginColumn = token.beginColumn;
+ }
+ break;
+ case PRIVATE:
+ jj_consume_token(PRIVATE);
+ modifiers = addModifier(modifiers, ModifierSet.PRIVATE, token);
+ if (beginLine == -1) {
+ beginLine = token.beginLine;
+ beginColumn = token.beginColumn;
+ }
+ break;
+ case FINAL:
+ jj_consume_token(FINAL);
+ modifiers = addModifier(modifiers, ModifierSet.FINAL, token);
+ if (beginLine == -1) {
+ beginLine = token.beginLine;
+ beginColumn = token.beginColumn;
+ }
+ break;
+ case ABSTRACT:
+ jj_consume_token(ABSTRACT);
+ modifiers = addModifier(modifiers, ModifierSet.ABSTRACT, token);
+ if (beginLine == -1) {
+ beginLine = token.beginLine;
+ beginColumn = token.beginColumn;
+ }
+ break;
+ case SYNCHRONIZED:
+ jj_consume_token(SYNCHRONIZED);
+ modifiers = addModifier(modifiers, ModifierSet.SYNCHRONIZED, token);
+ if (beginLine == -1) {
+ beginLine = token.beginLine;
+ beginColumn = token.beginColumn;
+ }
+ break;
+ case NATIVE:
+ jj_consume_token(NATIVE);
+ modifiers = addModifier(modifiers, ModifierSet.NATIVE, token);
+ if (beginLine == -1) {
+ beginLine = token.beginLine;
+ beginColumn = token.beginColumn;
+ }
+ break;
+ case TRANSIENT:
+ jj_consume_token(TRANSIENT);
+ modifiers = addModifier(modifiers, ModifierSet.TRANSIENT, token);
+ if (beginLine == -1) {
+ beginLine = token.beginLine;
+ beginColumn = token.beginColumn;
+ }
+ break;
+ case VOLATILE:
+ jj_consume_token(VOLATILE);
+ modifiers = addModifier(modifiers, ModifierSet.VOLATILE, token);
+ if (beginLine == -1) {
+ beginLine = token.beginLine;
+ beginColumn = token.beginColumn;
+ }
+ break;
+ case STRICTFP:
+ jj_consume_token(STRICTFP);
+ modifiers = addModifier(modifiers, ModifierSet.STRICTFP, token);
+ if (beginLine == -1) {
+ beginLine = token.beginLine;
+ beginColumn = token.beginColumn;
+ }
+ break;
+ case AT:
+ ann = Annotation();
+ annotations = add(annotations, ann);
+ if (beginLine == -1) {
+ beginLine = ann.getBeginLine();
+ beginColumn = ann.getBeginColumn();
+ }
+ break;
+ default:
+ jj_la1[6] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ {
+ if (true) {
+ return new Modifier(beginLine, beginColumn, modifiers, annotations);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ /*
+ * Declaration syntax follows.
+ */
+ final public TypeDeclaration TypeDeclaration() throws ParseException {
+ Modifier modifier;
+ TypeDeclaration ret;
+ pushJavadoc();
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case SEMICOLON:
+ jj_consume_token(SEMICOLON);
+ ret = new EmptyTypeDeclaration(token.beginLine, token.beginColumn, token.endLine, token.endColumn, popJavadoc());
+ break;
+ case ABSTRACT:
+ case CLASS:
+ case ENUM:
+ case FINAL:
+ case INTERFACE:
+ case NATIVE:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case STATIC:
+ case STRICTFP:
+ case SYNCHRONIZED:
+ case TRANSIENT:
+ case VOLATILE:
+ case AT:
+ modifier = Modifiers();
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case CLASS:
+ case INTERFACE:
+ ret = ClassOrInterfaceDeclaration(modifier);
+ break;
+ case ENUM:
+ ret = EnumDeclaration(modifier);
+ break;
+ case AT:
+ ret = AnnotationTypeDeclaration(modifier);
+ break;
+ default:
+ jj_la1[7] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ break;
+ default:
+ jj_la1[8] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public ClassOrInterfaceDeclaration ClassOrInterfaceDeclaration(Modifier modifier) throws ParseException {
+ boolean isInterface = false;
+ String name;
+ List typePar = null;
+ List extList = null;
+ List impList = null;
+ List members;
+ int line = modifier.beginLine;
+ int column = modifier.beginColumn;
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case CLASS:
+ jj_consume_token(CLASS);
+ break;
+ case INTERFACE:
+ jj_consume_token(INTERFACE);
+ isInterface = true;
+ break;
+ default:
+ jj_la1[9] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ if (line == -1) {
+ line = token.beginLine;
+ column = token.beginColumn;
+ }
+ jj_consume_token(IDENTIFIER);
+ name = token.image;
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LT:
+ typePar = TypeParameters();
+ typePar.remove(0);
+ break;
+ default:
+ jj_la1[10] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case EXTENDS:
+ extList = ExtendsList(isInterface);
+ break;
+ default:
+ jj_la1[11] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case IMPLEMENTS:
+ impList = ImplementsList(isInterface);
+ break;
+ default:
+ jj_la1[12] = jj_gen;
+ ;
+ }
+ members = ClassOrInterfaceBody(isInterface);
+ {
+ if (true) {
+ return new ClassOrInterfaceDeclaration(line, column, token.endLine, token.endColumn, popJavadoc(), modifier.modifiers, modifier.annotations, isInterface, name, typePar, extList, impList, members);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List ExtendsList(boolean isInterface) throws ParseException {
+ boolean extendsMoreThanOne = false;
+ List ret = new LinkedList();
+ ClassOrInterfaceType cit;
+ jj_consume_token(EXTENDS);
+ cit = ClassOrInterfaceType();
+ ret.add(cit);
+ label_5: while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case COMMA:
+ ;
+ break;
+ default:
+ jj_la1[13] = jj_gen;
+ break label_5;
+ }
+ jj_consume_token(COMMA);
+ cit = ClassOrInterfaceType();
+ ret.add(cit);
+ extendsMoreThanOne = true;
+ }
+ if (extendsMoreThanOne && !isInterface) {
+ throwParseException(token, "A class cannot extend more than one other class");
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List ImplementsList(boolean isInterface) throws ParseException {
+ List ret = new LinkedList();
+ ClassOrInterfaceType cit;
+ jj_consume_token(IMPLEMENTS);
+ cit = ClassOrInterfaceType();
+ ret.add(cit);
+ label_6: while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case COMMA:
+ ;
+ break;
+ default:
+ jj_la1[14] = jj_gen;
+ break label_6;
+ }
+ jj_consume_token(COMMA);
+ cit = ClassOrInterfaceType();
+ ret.add(cit);
+ }
+ if (isInterface) {
+ throwParseException(token, "An interface cannot implement other interfaces");
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public EnumDeclaration EnumDeclaration(Modifier modifier) throws ParseException {
+ String name;
+ List impList = null;
+ EnumConstantDeclaration entry;
+ List entries = null;
+ BodyDeclaration member;
+ List members = null;
+ int line = modifier.beginLine;
+ int column = modifier.beginColumn;
+ jj_consume_token(ENUM);
+ if (line == -1) {
+ line = token.beginLine;
+ column = token.beginColumn;
+ }
+ jj_consume_token(IDENTIFIER);
+ name = token.image;
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case IMPLEMENTS:
+ impList = ImplementsList(false);
+ break;
+ default:
+ jj_la1[15] = jj_gen;
+ ;
+ }
+ jj_consume_token(LBRACE);
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case IDENTIFIER:
+ case AT:
+ entries = new LinkedList();
+ entry = EnumConstantDeclaration();
+ entries.add(entry);
+ label_7: while (true) {
+ if (jj_2_3(2)) {
+ ;
+ } else {
+ break label_7;
+ }
+ jj_consume_token(COMMA);
+ entry = EnumConstantDeclaration();
+ entries.add(entry);
+ }
+ break;
+ default:
+ jj_la1[16] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case COMMA:
+ jj_consume_token(COMMA);
+ break;
+ default:
+ jj_la1[17] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case SEMICOLON:
+ jj_consume_token(SEMICOLON);
+ label_8: while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case ABSTRACT:
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case CLASS:
+ case DOUBLE:
+ case ENUM:
+ case FINAL:
+ case FLOAT:
+ case INT:
+ case INTERFACE:
+ case LONG:
+ case NATIVE:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SYNCHRONIZED:
+ case TRANSIENT:
+ case VOID:
+ case VOLATILE:
+ case IDENTIFIER:
+ case LBRACE:
+ case SEMICOLON:
+ case AT:
+ case LT:
+ ;
+ break;
+ default:
+ jj_la1[18] = jj_gen;
+ break label_8;
+ }
+ member = ClassOrInterfaceBodyDeclaration(false);
+ members = add(members, member);
+ }
+ break;
+ default:
+ jj_la1[19] = jj_gen;
+ ;
+ }
+ jj_consume_token(RBRACE);
+ {
+ if (true) {
+ return new EnumDeclaration(line, column, token.endLine, token.endColumn, popJavadoc(), modifier.modifiers, modifier.annotations, name, impList, entries, members);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public EnumConstantDeclaration EnumConstantDeclaration() throws ParseException {
+ List annotations = null;
+ AnnotationExpr ann;
+ String name;
+ List args = null;
+ List classBody = null;
+ int line = -1;
+ int column = -1;
+ pushJavadoc();
+ label_9: while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case AT:
+ ;
+ break;
+ default:
+ jj_la1[20] = jj_gen;
+ break label_9;
+ }
+ ann = Annotation();
+ annotations = add(annotations, ann);
+ if (line == -1) {
+ line = ann.getBeginLine();
+ column = ann.getBeginColumn();
+ }
+ }
+ jj_consume_token(IDENTIFIER);
+ name = token.image;
+ if (line == -1) {
+ line = token.beginLine;
+ column = token.beginColumn;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LPAREN:
+ args = Arguments();
+ break;
+ default:
+ jj_la1[21] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LBRACE:
+ classBody = ClassOrInterfaceBody(false);
+ break;
+ default:
+ jj_la1[22] = jj_gen;
+ ;
+ }
+ {
+ if (true) {
+ return new EnumConstantDeclaration(line, column, token.endLine, token.endColumn, popJavadoc(), annotations, name, args, classBody);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List TypeParameters() throws ParseException {
+ List ret = new LinkedList();
+ TypeParameter tp;
+ jj_consume_token(LT);
+ ret.add(new int[] { token.beginLine, token.beginColumn });
+ tp = TypeParameter();
+ ret.add(tp);
+ label_10: while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case COMMA:
+ ;
+ break;
+ default:
+ jj_la1[23] = jj_gen;
+ break label_10;
+ }
+ jj_consume_token(COMMA);
+ tp = TypeParameter();
+ ret.add(tp);
+ }
+ jj_consume_token(GT);
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public TypeParameter TypeParameter() throws ParseException {
+ String name;
+ List typeBound = null;
+ int line;
+ int column;
+ jj_consume_token(IDENTIFIER);
+ name = token.image;
+ line = token.beginLine;
+ column = token.beginColumn;
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case EXTENDS:
+ typeBound = TypeBound();
+ break;
+ default:
+ jj_la1[24] = jj_gen;
+ ;
+ }
+ {
+ if (true) {
+ return new TypeParameter(line, column, token.endLine, token.endColumn, name, typeBound);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List TypeBound() throws ParseException {
+ List ret = new LinkedList();
+ ClassOrInterfaceType cit;
+ jj_consume_token(EXTENDS);
+ cit = ClassOrInterfaceType();
+ ret.add(cit);
+ label_11: while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case BIT_AND:
+ ;
+ break;
+ default:
+ jj_la1[25] = jj_gen;
+ break label_11;
+ }
+ jj_consume_token(BIT_AND);
+ cit = ClassOrInterfaceType();
+ ret.add(cit);
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List ClassOrInterfaceBody(boolean isInterface) throws ParseException {
+ List ret = new LinkedList();
+ BodyDeclaration member;
+ jj_consume_token(LBRACE);
+ label_12: while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case ABSTRACT:
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case CLASS:
+ case DOUBLE:
+ case ENUM:
+ case FINAL:
+ case FLOAT:
+ case INT:
+ case INTERFACE:
+ case LONG:
+ case NATIVE:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SYNCHRONIZED:
+ case TRANSIENT:
+ case VOID:
+ case VOLATILE:
+ case IDENTIFIER:
+ case LBRACE:
+ case SEMICOLON:
+ case AT:
+ case LT:
+ ;
+ break;
+ default:
+ jj_la1[26] = jj_gen;
+ break label_12;
+ }
+ member = ClassOrInterfaceBodyDeclaration(isInterface);
+ ret.add(member);
+ }
+ jj_consume_token(RBRACE);
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public BodyDeclaration ClassOrInterfaceBodyDeclaration(boolean isInterface) throws ParseException {
+ boolean isNestedInterface = false;
+ Modifier modifier;
+ BodyDeclaration ret;
+ pushJavadoc();
+ if (jj_2_6(2)) {
+ ret = InitializerDeclaration();
+ if (isInterface) {
+ throwParseException(token, "An interface cannot have initializers");
+ }
+ } else {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case ABSTRACT:
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case CLASS:
+ case DOUBLE:
+ case ENUM:
+ case FINAL:
+ case FLOAT:
+ case INT:
+ case INTERFACE:
+ case LONG:
+ case NATIVE:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SYNCHRONIZED:
+ case TRANSIENT:
+ case VOID:
+ case VOLATILE:
+ case IDENTIFIER:
+ case AT:
+ case LT:
+ modifier = Modifiers();
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case CLASS:
+ case INTERFACE:
+ ret = ClassOrInterfaceDeclaration(modifier);
+ break;
+ case ENUM:
+ ret = EnumDeclaration(modifier);
+ break;
+ case AT:
+ ret = AnnotationTypeDeclaration(modifier);
+ break;
+ default:
+ jj_la1[27] = jj_gen;
+ if (jj_2_4(2147483647)) {
+ ret = ConstructorDeclaration(modifier);
+ } else if (jj_2_5(2147483647)) {
+ ret = FieldDeclaration(modifier);
+ } else {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case SHORT:
+ case VOID:
+ case IDENTIFIER:
+ case LT:
+ ret = MethodDeclaration(modifier);
+ break;
+ default:
+ jj_la1[28] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ }
+ break;
+ case SEMICOLON:
+ jj_consume_token(SEMICOLON);
+ ret = new EmptyMemberDeclaration(token.beginLine, token.beginColumn, token.endLine, token.endColumn, popJavadoc());
+ break;
+ default:
+ jj_la1[29] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public FieldDeclaration FieldDeclaration(Modifier modifier) throws ParseException {
+ Type type;
+ List variables = new LinkedList();
+ VariableDeclarator val;
+ // Modifiers are already matched in the caller
+ type = Type();
+ val = VariableDeclarator();
+ variables.add(val);
+ label_13: while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case COMMA:
+ ;
+ break;
+ default:
+ jj_la1[30] = jj_gen;
+ break label_13;
+ }
+ jj_consume_token(COMMA);
+ val = VariableDeclarator();
+ variables.add(val);
+ }
+ jj_consume_token(SEMICOLON);
+ int line = modifier.beginLine;
+ int column = modifier.beginColumn;
+ if (line == -1) {
+ line = type.getBeginLine();
+ column = type.getBeginColumn();
+ }
+ {
+ if (true) {
+ return new FieldDeclaration(line, column, token.endLine, token.endColumn, popJavadoc(), modifier.modifiers, modifier.annotations, type, variables);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public VariableDeclarator VariableDeclarator() throws ParseException {
+ VariableDeclaratorId id;
+ Expression init = null;
+ id = VariableDeclaratorId();
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case ASSIGN:
+ jj_consume_token(ASSIGN);
+ init = VariableInitializer();
+ break;
+ default:
+ jj_la1[31] = jj_gen;
+ ;
+ }
+ {
+ if (true) {
+ return new VariableDeclarator(id.getBeginLine(), id.getBeginColumn(), token.endLine, token.endColumn, id, init);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public VariableDeclaratorId VariableDeclaratorId() throws ParseException {
+ String name;
+ int arrayCount = 0;
+ int line;
+ int column;
+ jj_consume_token(IDENTIFIER);
+ name = token.image;
+ line = token.beginLine;
+ column = token.beginColumn;
+ label_14: while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LBRACKET:
+ ;
+ break;
+ default:
+ jj_la1[32] = jj_gen;
+ break label_14;
+ }
+ jj_consume_token(LBRACKET);
+ jj_consume_token(RBRACKET);
+ arrayCount++;
+ }
+ {
+ if (true) {
+ return new VariableDeclaratorId(line, column, token.endLine, token.endColumn, name, arrayCount);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression VariableInitializer() throws ParseException {
+ Expression ret;
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LBRACE:
+ ret = ArrayInitializer();
+ break;
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:
+ ret = Expression();
+ break;
+ default:
+ jj_la1[33] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public ArrayInitializerExpr ArrayInitializer() throws ParseException {
+ List values = null;
+ Expression val;
+ int line;
+ int column;
+ jj_consume_token(LBRACE);
+ line = token.beginLine;
+ column = token.beginColumn;
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case LBRACE:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:
+ val = VariableInitializer();
+ values = add(values, val);
+ label_15: while (true) {
+ if (jj_2_7(2)) {
+ ;
+ } else {
+ break label_15;
+ }
+ jj_consume_token(COMMA);
+ val = VariableInitializer();
+ values = add(values, val);
+ }
+ break;
+ default:
+ jj_la1[34] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case COMMA:
+ jj_consume_token(COMMA);
+ break;
+ default:
+ jj_la1[35] = jj_gen;
+ ;
+ }
+ jj_consume_token(RBRACE);
+ {
+ if (true) {
+ return new ArrayInitializerExpr(line, column, token.endLine, token.endColumn, values);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public MethodDeclaration MethodDeclaration(Modifier modifier) throws ParseException {
+ List typeParameters = null;
+ Type type;
+ String name;
+ List parameters;
+ int arrayCount = 0;
+ List throws_ = null;
+ BlockStmt block = null;
+ int line = modifier.beginLine;
+ int column = modifier.beginColumn;
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LT:
+ typeParameters = TypeParameters();
+ int[] lineCol = (int[]) typeParameters.remove(0);
+ if (line == -1) {
+ line = lineCol[0];
+ column = lineCol[1];
+ }
+ break;
+ default:
+ jj_la1[36] = jj_gen;
+ ;
+ }
+ type = ResultType();
+ if (line == -1) {
+ line = type.getBeginLine();
+ column = type.getBeginColumn();
+ }
+ jj_consume_token(IDENTIFIER);
+ name = token.image;
+ parameters = FormalParameters();
+ label_16: while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LBRACKET:
+ ;
+ break;
+ default:
+ jj_la1[37] = jj_gen;
+ break label_16;
+ }
+ jj_consume_token(LBRACKET);
+ jj_consume_token(RBRACKET);
+ arrayCount++;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case THROWS:
+ jj_consume_token(THROWS);
+ throws_ = NameList();
+ break;
+ default:
+ jj_la1[38] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LBRACE:
+ block = Block();
+ break;
+ case SEMICOLON:
+ jj_consume_token(SEMICOLON);
+ break;
+ default:
+ jj_la1[39] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ {
+ if (true) {
+ return new MethodDeclaration(line, column, token.endLine, token.endColumn, popJavadoc(), modifier.modifiers, modifier.annotations, typeParameters, type, name, parameters, arrayCount, throws_, block);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List FormalParameters() throws ParseException {
+ List ret = null;
+ Parameter par;
+ jj_consume_token(LPAREN);
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case ABSTRACT:
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FINAL:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NATIVE:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SYNCHRONIZED:
+ case TRANSIENT:
+ case VOLATILE:
+ case IDENTIFIER:
+ case AT:
+ par = FormalParameter();
+ ret = add(ret, par);
+ label_17: while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case COMMA:
+ ;
+ break;
+ default:
+ jj_la1[40] = jj_gen;
+ break label_17;
+ }
+ jj_consume_token(COMMA);
+ par = FormalParameter();
+ ret = add(ret, par);
+ }
+ break;
+ default:
+ jj_la1[41] = jj_gen;
+ ;
+ }
+ jj_consume_token(RPAREN);
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Parameter FormalParameter() throws ParseException {
+ Modifier modifier;
+ Type type;
+ boolean isVarArg = false;
+ VariableDeclaratorId id;
+ modifier = Modifiers();
+ type = Type();
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case ELLIPSIS:
+ jj_consume_token(ELLIPSIS);
+ isVarArg = true;
+ break;
+ default:
+ jj_la1[42] = jj_gen;
+ ;
+ }
+ id = VariableDeclaratorId();
+ int line = modifier.beginLine;
+ int column = modifier.beginColumn;
+ if (line == -1) {
+ line = type.getBeginLine();
+ column = type.getBeginColumn();
+ }
+ {
+ if (true) {
+ return new Parameter(line, column, token.endLine, token.endColumn, modifier.modifiers, modifier.annotations, type, isVarArg, id);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public ConstructorDeclaration ConstructorDeclaration(Modifier modifier) throws ParseException {
+ List typeParameters = null;
+ String name;
+ List parameters;
+ List throws_ = null;
+ ExplicitConstructorInvocationStmt exConsInv = null;
+ List stmts;
+ int line = modifier.beginLine;
+ int column = modifier.beginColumn;
+ int bbLine = 0;
+ int bbColumn = 0;
+ int beLine = 0;
+ int beColumn = 0;
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LT:
+ typeParameters = TypeParameters();
+ int[] lineCol = (int[]) typeParameters.remove(0);
+ if (line == -1) {
+ line = lineCol[0];
+ column = lineCol[1];
+ }
+ break;
+ default:
+ jj_la1[43] = jj_gen;
+ ;
+ }
+ jj_consume_token(IDENTIFIER);
+ name = token.image;
+ if (line == -1) {
+ line = token.beginLine;
+ column = token.beginColumn;
+ }
+ parameters = FormalParameters();
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case THROWS:
+ jj_consume_token(THROWS);
+ throws_ = NameList();
+ break;
+ default:
+ jj_la1[44] = jj_gen;
+ ;
+ }
+ jj_consume_token(LBRACE);
+ bbLine = token.beginLine;
+ bbColumn = token.beginColumn;
+ if (jj_2_8(2147483647)) {
+ exConsInv = ExplicitConstructorInvocation();
+ } else {
+ ;
+ }
+ stmts = Statements();
+ jj_consume_token(RBRACE);
+ if (exConsInv != null) {
+ stmts = add(0, stmts, exConsInv);
+ }
+ {
+ if (true) {
+ return new ConstructorDeclaration(line, column, token.endLine, token.endColumn, popJavadoc(), modifier.modifiers, modifier.annotations, typeParameters, name, parameters, throws_, new BlockStmt(bbLine, bbColumn, token.endLine, token.endColumn,
+ stmts));
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public ExplicitConstructorInvocationStmt ExplicitConstructorInvocation() throws ParseException {
+ boolean isThis = false;
+ List args;
+ Expression expr = null;
+ List typeArgs = null;
+ int line = -1;
+ int column = 0;
+ if (jj_2_10(2147483647)) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LT:
+ typeArgs = TypeArguments();
+ int[] lineCol = (int[]) typeArgs.remove(0);
+ line = lineCol[0];
+ column = lineCol[1];
+ break;
+ default:
+ jj_la1[45] = jj_gen;
+ ;
+ }
+ jj_consume_token(THIS);
+ if (line == -1) {
+ line = token.beginLine;
+ column = token.beginColumn;
+ }
+ isThis = true;
+ args = Arguments();
+ jj_consume_token(SEMICOLON);
+ } else {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case LT:
+ if (jj_2_9(2147483647)) {
+ expr = PrimaryExpressionWithoutSuperSuffix();
+ jj_consume_token(DOT);
+ line = expr.getBeginLine();
+ column = expr.getBeginColumn();
+ } else {
+ ;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LT:
+ typeArgs = TypeArguments();
+ int[] lineCol = (int[]) typeArgs.remove(0);
+ if (line == -1) {
+ line = lineCol[0];
+ column = lineCol[1];
+ }
+ break;
+ default:
+ jj_la1[46] = jj_gen;
+ ;
+ }
+ jj_consume_token(SUPER);
+ if (line == -1) {
+ line = token.beginLine;
+ column = token.beginColumn;
+ }
+ args = Arguments();
+ jj_consume_token(SEMICOLON);
+ break;
+ default:
+ jj_la1[47] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ {
+ if (true) {
+ return new ExplicitConstructorInvocationStmt(line, column, token.endLine, token.endColumn, typeArgs, isThis, expr, args);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List Statements() throws ParseException {
+ List ret = null;
+ Statement stmt;
+ label_18: while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case ABSTRACT:
+ case ASSERT:
+ case BOOLEAN:
+ case BREAK:
+ case BYTE:
+ case CHAR:
+ case CLASS:
+ case CONTINUE:
+ case DO:
+ case DOUBLE:
+ case FALSE:
+ case FINAL:
+ case FLOAT:
+ case FOR:
+ case IF:
+ case INT:
+ case INTERFACE:
+ case LONG:
+ case NATIVE:
+ case NEW:
+ case NULL:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case RETURN:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SUPER:
+ case SWITCH:
+ case SYNCHRONIZED:
+ case THIS:
+ case THROW:
+ case TRANSIENT:
+ case TRUE:
+ case TRY:
+ case VOID:
+ case VOLATILE:
+ case WHILE:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case LBRACE:
+ case SEMICOLON:
+ case AT:
+ case INCR:
+ case DECR:
+ ;
+ break;
+ default:
+ jj_la1[48] = jj_gen;
+ break label_18;
+ }
+ stmt = BlockStatement();
+ ret = add(ret, stmt);
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public InitializerDeclaration InitializerDeclaration() throws ParseException {
+ BlockStmt block;
+ int line = -1;
+ int column = 0;
+ boolean isStatic = false;
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case STATIC:
+ jj_consume_token(STATIC);
+ isStatic = true;
+ line = token.beginLine;
+ column = token.beginColumn;
+ break;
+ default:
+ jj_la1[49] = jj_gen;
+ ;
+ }
+ block = Block();
+ if (line == -1) {
+ line = block.getBeginLine();
+ column = block.getBeginColumn();
+ }
+ {
+ if (true) {
+ return new InitializerDeclaration(line, column, token.endLine, token.endColumn, popJavadoc(), isStatic, block);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ /*
+ * Type, name and expression syntax follows.
+ */
+ final public Type Type() throws ParseException {
+ Type ret;
+ if (jj_2_11(2)) {
+ ret = ReferenceType();
+ } else {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case SHORT:
+ ret = PrimitiveType();
+ break;
+ default:
+ jj_la1[50] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public ReferenceType ReferenceType() throws ParseException {
+ Type type;
+ int arrayCount = 0;
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case SHORT:
+ type = PrimitiveType();
+ label_19: while (true) {
+ jj_consume_token(LBRACKET);
+ jj_consume_token(RBRACKET);
+ arrayCount++;
+ if (jj_2_12(2)) {
+ ;
+ } else {
+ break label_19;
+ }
+ }
+ break;
+ case IDENTIFIER:
+ type = ClassOrInterfaceType();
+ label_20: while (true) {
+ if (jj_2_13(2)) {
+ ;
+ } else {
+ break label_20;
+ }
+ jj_consume_token(LBRACKET);
+ jj_consume_token(RBRACKET);
+ arrayCount++;
+ }
+ break;
+ default:
+ jj_la1[51] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ {
+ if (true) {
+ return new ReferenceType(type.getBeginLine(), type.getBeginColumn(), token.endLine, token.endColumn, type, arrayCount);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public ClassOrInterfaceType ClassOrInterfaceType() throws ParseException {
+ ClassOrInterfaceType ret;
+ String name;
+ List typeArgs = null;
+ int line;
+ int column;
+ jj_consume_token(IDENTIFIER);
+ line = token.beginLine;
+ column = token.beginColumn;
+ name = token.image;
+ if (jj_2_14(2)) {
+ typeArgs = TypeArguments();
+ typeArgs.remove(0);
+ } else {
+ ;
+ }
+ ret = new ClassOrInterfaceType(line, column, token.endLine, token.endColumn, null, name, typeArgs);
+ label_21: while (true) {
+ if (jj_2_15(2)) {
+ ;
+ } else {
+ break label_21;
+ }
+ jj_consume_token(DOT);
+ jj_consume_token(IDENTIFIER);
+ name = token.image;
+ if (jj_2_16(2)) {
+ typeArgs = TypeArguments();
+ typeArgs.remove(0);
+ } else {
+ ;
+ }
+ ret = new ClassOrInterfaceType(line, column, token.endLine, token.endColumn, ret, name, typeArgs);
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List TypeArguments() throws ParseException {
+ List ret = new LinkedList();
+ Type type;
+ jj_consume_token(LT);
+ ret.add(new int[] { token.beginLine, token.beginColumn });
+ type = TypeArgument();
+ ret.add(type);
+ label_22: while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case COMMA:
+ ;
+ break;
+ default:
+ jj_la1[52] = jj_gen;
+ break label_22;
+ }
+ jj_consume_token(COMMA);
+ type = TypeArgument();
+ ret.add(type);
+ }
+ jj_consume_token(GT);
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Type TypeArgument() throws ParseException {
+ Type ret;
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case SHORT:
+ case IDENTIFIER:
+ ret = ReferenceType();
+ break;
+ case HOOK:
+ ret = Wildcard();
+ break;
+ default:
+ jj_la1[53] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public WildcardType Wildcard() throws ParseException {
+ ReferenceType ext = null;
+ ReferenceType sup = null;
+ int line;
+ int column;
+ jj_consume_token(HOOK);
+ line = token.beginLine;
+ column = token.beginColumn;
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case EXTENDS:
+ case SUPER:
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case EXTENDS:
+ jj_consume_token(EXTENDS);
+ ext = ReferenceType();
+ break;
+ case SUPER:
+ jj_consume_token(SUPER);
+ sup = ReferenceType();
+ break;
+ default:
+ jj_la1[54] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ break;
+ default:
+ jj_la1[55] = jj_gen;
+ ;
+ }
+ {
+ if (true) {
+ return new WildcardType(line, column, token.endLine, token.endColumn, ext, sup);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public PrimitiveType PrimitiveType() throws ParseException {
+ PrimitiveType ret;
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case BOOLEAN:
+ jj_consume_token(BOOLEAN);
+ ret = new PrimitiveType(token.beginLine, token.beginColumn, token.endLine, token.endColumn, PrimitiveType.Primitive.Boolean);
+ break;
+ case CHAR:
+ jj_consume_token(CHAR);
+ ret = new PrimitiveType(token.beginLine, token.beginColumn, token.endLine, token.endColumn, PrimitiveType.Primitive.Char);
+ break;
+ case BYTE:
+ jj_consume_token(BYTE);
+ ret = new PrimitiveType(token.beginLine, token.beginColumn, token.endLine, token.endColumn, PrimitiveType.Primitive.Byte);
+ break;
+ case SHORT:
+ jj_consume_token(SHORT);
+ ret = new PrimitiveType(token.beginLine, token.beginColumn, token.endLine, token.endColumn, PrimitiveType.Primitive.Short);
+ break;
+ case INT:
+ jj_consume_token(INT);
+ ret = new PrimitiveType(token.beginLine, token.beginColumn, token.endLine, token.endColumn, PrimitiveType.Primitive.Int);
+ break;
+ case LONG:
+ jj_consume_token(LONG);
+ ret = new PrimitiveType(token.beginLine, token.beginColumn, token.endLine, token.endColumn, PrimitiveType.Primitive.Long);
+ break;
+ case FLOAT:
+ jj_consume_token(FLOAT);
+ ret = new PrimitiveType(token.beginLine, token.beginColumn, token.endLine, token.endColumn, PrimitiveType.Primitive.Float);
+ break;
+ case DOUBLE:
+ jj_consume_token(DOUBLE);
+ ret = new PrimitiveType(token.beginLine, token.beginColumn, token.endLine, token.endColumn, PrimitiveType.Primitive.Double);
+ break;
+ default:
+ jj_la1[56] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Type ResultType() throws ParseException {
+ Type ret;
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case VOID:
+ jj_consume_token(VOID);
+ ret = new VoidType(token.beginLine, token.beginColumn, token.endLine, token.endColumn);
+ break;
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case SHORT:
+ case IDENTIFIER:
+ ret = Type();
+ break;
+ default:
+ jj_la1[57] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public NameExpr Name() throws ParseException {
+ NameExpr ret;
+ jj_consume_token(IDENTIFIER);
+ ret = new NameExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, token.image);
+ label_23: while (true) {
+ if (jj_2_17(2)) {
+ ;
+ } else {
+ break label_23;
+ }
+ jj_consume_token(DOT);
+ jj_consume_token(IDENTIFIER);
+ ret = new QualifiedNameExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, token.image);
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List NameList() throws ParseException {
+ List ret = new LinkedList();
+ NameExpr name;
+ name = Name();
+ ret.add(name);
+ label_24: while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case COMMA:
+ ;
+ break;
+ default:
+ jj_la1[58] = jj_gen;
+ break label_24;
+ }
+ jj_consume_token(COMMA);
+ name = Name();
+ ret.add(name);
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ /*
+ * Expression syntax follows.
+ */
+ final public Expression Expression() throws ParseException {
+ Expression ret;
+ AssignExpr.Operator op;
+ Expression value;
+ ret = ConditionalExpression();
+ if (jj_2_18(2)) {
+ op = AssignmentOperator();
+ value = Expression();
+ ret = new AssignExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, value, op);
+ } else {
+ ;
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public AssignExpr.Operator AssignmentOperator() throws ParseException {
+ AssignExpr.Operator ret;
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case ASSIGN:
+ jj_consume_token(ASSIGN);
+ ret = AssignExpr.Operator.assign;
+ break;
+ case STARASSIGN:
+ jj_consume_token(STARASSIGN);
+ ret = AssignExpr.Operator.star;
+ break;
+ case SLASHASSIGN:
+ jj_consume_token(SLASHASSIGN);
+ ret = AssignExpr.Operator.slash;
+ break;
+ case REMASSIGN:
+ jj_consume_token(REMASSIGN);
+ ret = AssignExpr.Operator.rem;
+ break;
+ case PLUSASSIGN:
+ jj_consume_token(PLUSASSIGN);
+ ret = AssignExpr.Operator.plus;
+ break;
+ case MINUSASSIGN:
+ jj_consume_token(MINUSASSIGN);
+ ret = AssignExpr.Operator.minus;
+ break;
+ case LSHIFTASSIGN:
+ jj_consume_token(LSHIFTASSIGN);
+ ret = AssignExpr.Operator.lShift;
+ break;
+ case RSIGNEDSHIFTASSIGN:
+ jj_consume_token(RSIGNEDSHIFTASSIGN);
+ ret = AssignExpr.Operator.rSignedShift;
+ break;
+ case RUNSIGNEDSHIFTASSIGN:
+ jj_consume_token(RUNSIGNEDSHIFTASSIGN);
+ ret = AssignExpr.Operator.rUnsignedShift;
+ break;
+ case ANDASSIGN:
+ jj_consume_token(ANDASSIGN);
+ ret = AssignExpr.Operator.and;
+ break;
+ case XORASSIGN:
+ jj_consume_token(XORASSIGN);
+ ret = AssignExpr.Operator.xor;
+ break;
+ case ORASSIGN:
+ jj_consume_token(ORASSIGN);
+ ret = AssignExpr.Operator.or;
+ break;
+ default:
+ jj_la1[59] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression ConditionalExpression() throws ParseException {
+ Expression ret;
+ Expression left;
+ Expression right;
+ ret = ConditionalOrExpression();
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case HOOK:
+ jj_consume_token(HOOK);
+ left = Expression();
+ jj_consume_token(COLON);
+ right = ConditionalExpression();
+ ret = new ConditionalExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, left, right);
+ break;
+ default:
+ jj_la1[60] = jj_gen;
+ ;
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression ConditionalOrExpression() throws ParseException {
+ Expression ret;
+ Expression right;
+ ret = ConditionalAndExpression();
+ label_25: while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case SC_OR:
+ ;
+ break;
+ default:
+ jj_la1[61] = jj_gen;
+ break label_25;
+ }
+ jj_consume_token(SC_OR);
+ right = ConditionalAndExpression();
+ ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, BinaryExpr.Operator.or);
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression ConditionalAndExpression() throws ParseException {
+ Expression ret;
+ Expression right;
+ ret = InclusiveOrExpression();
+ label_26: while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case SC_AND:
+ ;
+ break;
+ default:
+ jj_la1[62] = jj_gen;
+ break label_26;
+ }
+ jj_consume_token(SC_AND);
+ right = InclusiveOrExpression();
+ ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, BinaryExpr.Operator.and);
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression InclusiveOrExpression() throws ParseException {
+ Expression ret;
+ Expression right;
+ ret = ExclusiveOrExpression();
+ label_27: while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case BIT_OR:
+ ;
+ break;
+ default:
+ jj_la1[63] = jj_gen;
+ break label_27;
+ }
+ jj_consume_token(BIT_OR);
+ right = ExclusiveOrExpression();
+ ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, BinaryExpr.Operator.binOr);
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression ExclusiveOrExpression() throws ParseException {
+ Expression ret;
+ Expression right;
+ ret = AndExpression();
+ label_28: while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case XOR:
+ ;
+ break;
+ default:
+ jj_la1[64] = jj_gen;
+ break label_28;
+ }
+ jj_consume_token(XOR);
+ right = AndExpression();
+ ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, BinaryExpr.Operator.xor);
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression AndExpression() throws ParseException {
+ Expression ret;
+ Expression right;
+ ret = EqualityExpression();
+ label_29: while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case BIT_AND:
+ ;
+ break;
+ default:
+ jj_la1[65] = jj_gen;
+ break label_29;
+ }
+ jj_consume_token(BIT_AND);
+ right = EqualityExpression();
+ ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, BinaryExpr.Operator.binAnd);
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression EqualityExpression() throws ParseException {
+ Expression ret;
+ Expression right;
+ BinaryExpr.Operator op;
+ ret = InstanceOfExpression();
+ label_30: while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case EQ:
+ case NE:
+ ;
+ break;
+ default:
+ jj_la1[66] = jj_gen;
+ break label_30;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case EQ:
+ jj_consume_token(EQ);
+ op = BinaryExpr.Operator.equals;
+ break;
+ case NE:
+ jj_consume_token(NE);
+ op = BinaryExpr.Operator.notEquals;
+ break;
+ default:
+ jj_la1[67] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ right = InstanceOfExpression();
+ ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, op);
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression InstanceOfExpression() throws ParseException {
+ Expression ret;
+ Type type;
+ ret = RelationalExpression();
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case INSTANCEOF:
+ jj_consume_token(INSTANCEOF);
+ type = Type();
+ ret = new InstanceOfExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, type);
+ break;
+ default:
+ jj_la1[68] = jj_gen;
+ ;
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression RelationalExpression() throws ParseException {
+ Expression ret;
+ Expression right;
+ BinaryExpr.Operator op;
+ ret = ShiftExpression();
+ label_31: while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LT:
+ case LE:
+ case GE:
+ case GT:
+ ;
+ break;
+ default:
+ jj_la1[69] = jj_gen;
+ break label_31;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LT:
+ jj_consume_token(LT);
+ op = BinaryExpr.Operator.less;
+ break;
+ case GT:
+ jj_consume_token(GT);
+ op = BinaryExpr.Operator.greater;
+ break;
+ case LE:
+ jj_consume_token(LE);
+ op = BinaryExpr.Operator.lessEquals;
+ break;
+ case GE:
+ jj_consume_token(GE);
+ op = BinaryExpr.Operator.greaterEquals;
+ break;
+ default:
+ jj_la1[70] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ right = ShiftExpression();
+ ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, op);
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression ShiftExpression() throws ParseException {
+ Expression ret;
+ Expression right;
+ BinaryExpr.Operator op;
+ ret = AdditiveExpression();
+ label_32: while (true) {
+ if (jj_2_19(1)) {
+ ;
+ } else {
+ break label_32;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LSHIFT:
+ jj_consume_token(LSHIFT);
+ op = BinaryExpr.Operator.lShift;
+ break;
+ default:
+ jj_la1[71] = jj_gen;
+ if (jj_2_20(1)) {
+ RSIGNEDSHIFT();
+ op = BinaryExpr.Operator.rSignedShift;
+ } else if (jj_2_21(1)) {
+ RUNSIGNEDSHIFT();
+ op = BinaryExpr.Operator.rUnsignedShift;
+ } else {
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ right = AdditiveExpression();
+ ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, op);
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression AdditiveExpression() throws ParseException {
+ Expression ret;
+ Expression right;
+ BinaryExpr.Operator op;
+ ret = MultiplicativeExpression();
+ label_33: while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case PLUS:
+ case MINUS:
+ ;
+ break;
+ default:
+ jj_la1[72] = jj_gen;
+ break label_33;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case PLUS:
+ jj_consume_token(PLUS);
+ op = BinaryExpr.Operator.plus;
+ break;
+ case MINUS:
+ jj_consume_token(MINUS);
+ op = BinaryExpr.Operator.minus;
+ break;
+ default:
+ jj_la1[73] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ right = MultiplicativeExpression();
+ ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, op);
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression MultiplicativeExpression() throws ParseException {
+ Expression ret;
+ Expression right;
+ BinaryExpr.Operator op;
+ ret = UnaryExpression();
+ label_34: while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case STAR:
+ case SLASH:
+ case REM:
+ ;
+ break;
+ default:
+ jj_la1[74] = jj_gen;
+ break label_34;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case STAR:
+ jj_consume_token(STAR);
+ op = BinaryExpr.Operator.times;
+ break;
+ case SLASH:
+ jj_consume_token(SLASH);
+ op = BinaryExpr.Operator.divide;
+ break;
+ case REM:
+ jj_consume_token(REM);
+ op = BinaryExpr.Operator.remainder;
+ break;
+ default:
+ jj_la1[75] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ right = UnaryExpression();
+ ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, op);
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression UnaryExpression() throws ParseException {
+ Expression ret;
+ UnaryExpr.Operator op;
+ int line = 0;
+ int column = 0;
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case PLUS:
+ case MINUS:
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case PLUS:
+ jj_consume_token(PLUS);
+ op = UnaryExpr.Operator.positive;
+ line = token.beginLine;
+ column = token.beginColumn;
+ break;
+ case MINUS:
+ jj_consume_token(MINUS);
+ op = UnaryExpr.Operator.negative;
+ line = token.beginLine;
+ column = token.beginColumn;
+ break;
+ default:
+ jj_la1[76] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ ret = UnaryExpression();
+ if (op == UnaryExpr.Operator.negative) {
+ if (ret instanceof IntegerLiteralExpr && ((IntegerLiteralExpr) ret).isMinValue()) {
+ ret = new IntegerLiteralMinValueExpr(line, column, token.endLine, token.endColumn);
+ } else if (ret instanceof LongLiteralExpr && ((LongLiteralExpr) ret).isMinValue()) {
+ ret = new LongLiteralMinValueExpr(line, column, token.endLine, token.endColumn);
+ } else {
+ ret = new UnaryExpr(line, column, token.endLine, token.endColumn, ret, op);
+ }
+ } else {
+ ret = new UnaryExpr(line, column, token.endLine, token.endColumn, ret, op);
+ }
+ break;
+ case INCR:
+ ret = PreIncrementExpression();
+ break;
+ case DECR:
+ ret = PreDecrementExpression();
+ break;
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case BANG:
+ case TILDE:
+ ret = UnaryExpressionNotPlusMinus();
+ break;
+ default:
+ jj_la1[77] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression PreIncrementExpression() throws ParseException {
+ Expression ret;
+ int line;
+ int column;
+ jj_consume_token(INCR);
+ line = token.beginLine;
+ column = token.beginColumn;
+ ret = PrimaryExpression();
+ ret = new UnaryExpr(line, column, token.endLine, token.endColumn, ret, UnaryExpr.Operator.preIncrement);
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression PreDecrementExpression() throws ParseException {
+ Expression ret;
+ int line;
+ int column;
+ jj_consume_token(DECR);
+ line = token.beginLine;
+ column = token.beginColumn;
+ ret = PrimaryExpression();
+ ret = new UnaryExpr(line, column, token.endLine, token.endColumn, ret, UnaryExpr.Operator.preDecrement);
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression UnaryExpressionNotPlusMinus() throws ParseException {
+ Expression ret;
+ UnaryExpr.Operator op;
+ int line = 0;
+ int column = 0;
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case BANG:
+ case TILDE:
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case TILDE:
+ jj_consume_token(TILDE);
+ op = UnaryExpr.Operator.inverse;
+ line = token.beginLine;
+ column = token.beginColumn;
+ break;
+ case BANG:
+ jj_consume_token(BANG);
+ op = UnaryExpr.Operator.not;
+ line = token.beginLine;
+ column = token.beginColumn;
+ break;
+ default:
+ jj_la1[78] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ ret = UnaryExpression();
+ ret = new UnaryExpr(line, column, token.endLine, token.endColumn, ret, op);
+ break;
+ default:
+ jj_la1[79] = jj_gen;
+ if (jj_2_22(2147483647)) {
+ ret = CastExpression();
+ } else {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ ret = PostfixExpression();
+ break;
+ default:
+ jj_la1[80] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ // This production is to determine lookahead only. The LOOKAHEAD specifications
+ // below are not used, but they are there just to indicate that we know about
+ // this.
+ final public void CastLookahead() throws ParseException {
+ if (jj_2_23(2147483647)) {
+ jj_consume_token(LPAREN);
+ Type();
+ jj_consume_token(LBRACKET);
+ jj_consume_token(RBRACKET);
+ } else {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LPAREN:
+ jj_consume_token(LPAREN);
+ Type();
+ jj_consume_token(RPAREN);
+ UnaryExpression();
+ break;
+ default:
+ jj_la1[81] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ }
+
+ final public Expression PostfixExpression() throws ParseException {
+ Expression ret;
+ UnaryExpr.Operator op;
+ ret = PrimaryExpression();
+ if (jj_2_24(2)) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case INCR:
+ jj_consume_token(INCR);
+ op = UnaryExpr.Operator.posIncrement;
+ break;
+ case DECR:
+ jj_consume_token(DECR);
+ op = UnaryExpr.Operator.posDecrement;
+ break;
+ default:
+ jj_la1[82] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ ret = new UnaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, op);
+ } else {
+ ;
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression CastExpression() throws ParseException {
+ Expression ret;
+ Type type;
+ int line;
+ int column;
+ jj_consume_token(LPAREN);
+ line = token.beginLine;
+ column = token.beginColumn;
+ type = Type();
+ jj_consume_token(RPAREN);
+ ret = UnaryExpression();
+ ret = new CastExpr(line, column, token.endLine, token.endColumn, type, ret);
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression PrimaryExpression() throws ParseException {
+ Expression ret;
+ Expression inner;
+ ret = PrimaryPrefix();
+ label_35: while (true) {
+ if (jj_2_25(2)) {
+ ;
+ } else {
+ break label_35;
+ }
+ ret = PrimarySuffix(ret);
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression PrimaryExpressionWithoutSuperSuffix() throws ParseException {
+ Expression ret;
+ Expression inner;
+ ret = PrimaryPrefix();
+ label_36: while (true) {
+ if (jj_2_26(2147483647)) {
+ ;
+ } else {
+ break label_36;
+ }
+ ret = PrimarySuffixWithoutSuper(ret);
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression PrimaryPrefix() throws ParseException {
+ Expression ret;
+ String name;
+ List typeArgs = null;
+ List args = null;
+ boolean hasArgs = false;
+ Type type;
+ int line;
+ int column;
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case FALSE:
+ case NULL:
+ case TRUE:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ ret = Literal();
+ break;
+ case THIS:
+ jj_consume_token(THIS);
+ ret = new ThisExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, null);
+ break;
+ case SUPER:
+ jj_consume_token(SUPER);
+ ret = new SuperExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, null);
+ jj_consume_token(DOT);
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LT:
+ typeArgs = TypeArguments();
+ typeArgs.remove(0);
+ break;
+ default:
+ jj_la1[83] = jj_gen;
+ ;
+ }
+ jj_consume_token(IDENTIFIER);
+ name = token.image;
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LPAREN:
+ args = Arguments();
+ hasArgs = true;
+ break;
+ default:
+ jj_la1[84] = jj_gen;
+ ;
+ }
+ ret = hasArgs
+ ? new MethodCallExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, typeArgs, name, args)
+ : new FieldAccessExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, null, name);
+ break;
+ case LPAREN:
+ jj_consume_token(LPAREN);
+ line = token.beginLine;
+ column = token.beginColumn;
+ ret = Expression();
+ jj_consume_token(RPAREN);
+ ret = new EnclosedExpr(line, column, token.endLine, token.endColumn, ret);
+ break;
+ case NEW:
+ ret = AllocationExpression(null);
+ break;
+ default:
+ jj_la1[86] = jj_gen;
+ if (jj_2_27(2147483647)) {
+ type = ResultType();
+ jj_consume_token(DOT);
+ jj_consume_token(CLASS);
+ ret = new ClassExpr(type.getBeginLine(), type.getBeginColumn(), token.endLine, token.endColumn, type);
+ } else {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case IDENTIFIER:
+ jj_consume_token(IDENTIFIER);
+ name = token.image;
+ line = token.beginLine;
+ column = token.beginColumn;
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LPAREN:
+ args = Arguments();
+ hasArgs = true;
+ break;
+ default:
+ jj_la1[85] = jj_gen;
+ ;
+ }
+ ret = hasArgs
+ ? new MethodCallExpr(line, column, token.endLine, token.endColumn, null, null, name, args)
+ : new NameExpr(line, column, token.endLine, token.endColumn, name);
+ break;
+ default:
+ jj_la1[87] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression PrimarySuffix(Expression scope) throws ParseException {
+ Expression ret;
+ if (jj_2_28(2)) {
+ ret = PrimarySuffixWithoutSuper(scope);
+ } else {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case DOT:
+ jj_consume_token(DOT);
+ jj_consume_token(SUPER);
+ ret = new SuperExpr(scope.getBeginLine(), scope.getBeginColumn(), token.endLine, token.endColumn, scope);
+ break;
+ default:
+ jj_la1[88] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression PrimarySuffixWithoutSuper(Expression scope) throws ParseException {
+ Expression ret;
+ List typeArgs = null;
+ List args = null;
+ boolean hasArgs = false;
+ String name;
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case DOT:
+ jj_consume_token(DOT);
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case THIS:
+ jj_consume_token(THIS);
+ ret = new ThisExpr(scope.getBeginLine(), scope.getBeginColumn(), token.endLine, token.endColumn, scope);
+ break;
+ case NEW:
+ ret = AllocationExpression(scope);
+ break;
+ default:
+ jj_la1[91] = jj_gen;
+ if (jj_2_29(2147483647)) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LT:
+ typeArgs = TypeArguments();
+ typeArgs.remove(0);
+ break;
+ default:
+ jj_la1[89] = jj_gen;
+ ;
+ }
+ jj_consume_token(IDENTIFIER);
+ name = token.image;
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LPAREN:
+ args = Arguments();
+ hasArgs = true;
+ break;
+ default:
+ jj_la1[90] = jj_gen;
+ ;
+ }
+ ret = hasArgs
+ ? new MethodCallExpr(scope.getBeginLine(), scope.getBeginColumn(), token.endLine, token.endColumn, scope, typeArgs, name, args)
+ : new FieldAccessExpr(scope.getBeginLine(), scope.getBeginColumn(), token.endLine, token.endColumn, scope, typeArgs, name);
+ } else {
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ break;
+ case LBRACKET:
+ jj_consume_token(LBRACKET);
+ ret = Expression();
+ jj_consume_token(RBRACKET);
+ ret = new ArrayAccessExpr(scope.getBeginLine(), scope.getBeginColumn(), token.endLine, token.endColumn, scope, ret);
+ break;
+ default:
+ jj_la1[92] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression Literal() throws ParseException {
+ Expression ret;
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case INTEGER_LITERAL:
+ jj_consume_token(INTEGER_LITERAL);
+ ret = new IntegerLiteralExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, token.image);
+ break;
+ case LONG_LITERAL:
+ jj_consume_token(LONG_LITERAL);
+ ret = new LongLiteralExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, token.image);
+ break;
+ case FLOATING_POINT_LITERAL:
+ jj_consume_token(FLOATING_POINT_LITERAL);
+ ret = new DoubleLiteralExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, token.image);
+ break;
+ case CHARACTER_LITERAL:
+ jj_consume_token(CHARACTER_LITERAL);
+ ret = new CharLiteralExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, token.image.substring(1, token.image.length() - 1));
+ break;
+ case STRING_LITERAL:
+ jj_consume_token(STRING_LITERAL);
+ ret = new StringLiteralExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, token.image.substring(1, token.image.length() - 1));
+ break;
+ case FALSE:
+ case TRUE:
+ ret = BooleanLiteral();
+ break;
+ case NULL:
+ ret = NullLiteral();
+ break;
+ default:
+ jj_la1[93] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression BooleanLiteral() throws ParseException {
+ Expression ret;
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case TRUE:
+ jj_consume_token(TRUE);
+ ret = new BooleanLiteralExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, true);
+ break;
+ case FALSE:
+ jj_consume_token(FALSE);
+ ret = new BooleanLiteralExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, false);
+ break;
+ default:
+ jj_la1[94] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression NullLiteral() throws ParseException {
+ jj_consume_token(NULL);
+ {
+ if (true) {
+ return new NullLiteralExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List Arguments() throws ParseException {
+ List ret = null;
+ jj_consume_token(LPAREN);
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:
+ ret = ArgumentList();
+ break;
+ default:
+ jj_la1[95] = jj_gen;
+ ;
+ }
+ jj_consume_token(RPAREN);
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List ArgumentList() throws ParseException {
+ List ret = new LinkedList();
+ Expression expr;
+ expr = Expression();
+ ret.add(expr);
+ label_37: while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case COMMA:
+ ;
+ break;
+ default:
+ jj_la1[96] = jj_gen;
+ break label_37;
+ }
+ jj_consume_token(COMMA);
+ expr = Expression();
+ ret.add(expr);
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression AllocationExpression(Expression scope) throws ParseException {
+ Expression ret;
+ Type type;
+ Object[] arr = null;
+ List typeArgs = null;
+ List anonymousBody = null;
+ List args;
+ int line;
+ int column;
+ jj_consume_token(NEW);
+ if (scope == null) {
+ line = token.beginLine;
+ column = token.beginColumn;
+ } else {
+ line = scope.getBeginLine();
+ column = scope.getBeginColumn();
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case SHORT:
+ type = PrimitiveType();
+ arr = ArrayDimsAndInits();
+ if (arr[0] instanceof Integer) {
+ ret = new ArrayCreationExpr(line, column, token.endLine, token.endColumn, type, ((Integer) arr[0]).intValue(), (ArrayInitializerExpr) arr[1]);
+ } else {
+ ret = new ArrayCreationExpr(line, column, token.endLine, token.endColumn, type, (List) arr[0], ((Integer) arr[1]).intValue());
+ }
+ break;
+ default:
+ jj_la1[98] = jj_gen;
+ if (jj_2_31(2147483647)) {
+ type = ClassOrInterfaceType();
+ arr = ArrayDimsAndInits();
+ if (arr[0] instanceof Integer) {
+ ret = new ArrayCreationExpr(line, column, token.endLine, token.endColumn, type, ((Integer) arr[0]).intValue(), (ArrayInitializerExpr) arr[1]);
+ } else {
+ ret = new ArrayCreationExpr(line, column, token.endLine, token.endColumn, type, (List) arr[0], ((Integer) arr[1]).intValue());
+ }
+ } else {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case IDENTIFIER:
+ case LT:
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LT:
+ typeArgs = TypeArguments();
+ typeArgs.remove(0);
+ break;
+ default:
+ jj_la1[97] = jj_gen;
+ ;
+ }
+ type = ClassOrInterfaceType();
+ args = Arguments();
+ if (jj_2_30(2)) {
+ anonymousBody = ClassOrInterfaceBody(false);
+ } else {
+ ;
+ }
+ ret = new ObjectCreationExpr(line, column, token.endLine, token.endColumn, scope, (ClassOrInterfaceType) type, typeArgs, args, anonymousBody);
+ break;
+ default:
+ jj_la1[99] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ /*
+ * The third LOOKAHEAD specification below is to parse to PrimarySuffix
+ * if there is an expression between the "[...]".
+ */
+ final public Object[] ArrayDimsAndInits() throws ParseException {
+ Object[] ret = new Object[2];
+ Expression expr;
+ List inits = null;
+ int i = 0;
+ if (jj_2_34(2)) {
+ label_38: while (true) {
+ jj_consume_token(LBRACKET);
+ expr = Expression();
+ inits = add(inits, expr);
+ jj_consume_token(RBRACKET);
+ if (jj_2_32(2)) {
+ ;
+ } else {
+ break label_38;
+ }
+ }
+ label_39: while (true) {
+ if (jj_2_33(2)) {
+ ;
+ } else {
+ break label_39;
+ }
+ jj_consume_token(LBRACKET);
+ jj_consume_token(RBRACKET);
+ i++;
+ }
+ ret[0] = inits;
+ ret[1] = new Integer(i);
+ } else {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LBRACKET:
+ label_40: while (true) {
+ jj_consume_token(LBRACKET);
+ jj_consume_token(RBRACKET);
+ i++;
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LBRACKET:
+ ;
+ break;
+ default:
+ jj_la1[100] = jj_gen;
+ break label_40;
+ }
+ }
+ expr = ArrayInitializer();
+ ret[0] = new Integer(i);
+ ret[1] = expr;
+ break;
+ default:
+ jj_la1[101] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ /*
+ * Statement syntax follows.
+ */
+ final public Statement Statement() throws ParseException {
+ Statement ret;
+ if (jj_2_35(2)) {
+ ret = LabeledStatement();
+ } else {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case ASSERT:
+ ret = AssertStatement();
+ break;
+ case LBRACE:
+ ret = Block();
+ break;
+ case SEMICOLON:
+ ret = EmptyStatement();
+ break;
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case INCR:
+ case DECR:
+ ret = StatementExpression();
+ break;
+ case SWITCH:
+ ret = SwitchStatement();
+ break;
+ case IF:
+ ret = IfStatement();
+ break;
+ case WHILE:
+ ret = WhileStatement();
+ break;
+ case DO:
+ ret = DoStatement();
+ break;
+ case FOR:
+ ret = ForStatement();
+ break;
+ case BREAK:
+ ret = BreakStatement();
+ break;
+ case CONTINUE:
+ ret = ContinueStatement();
+ break;
+ case RETURN:
+ ret = ReturnStatement();
+ break;
+ case THROW:
+ ret = ThrowStatement();
+ break;
+ case SYNCHRONIZED:
+ ret = SynchronizedStatement();
+ break;
+ case TRY:
+ ret = TryStatement();
+ break;
+ default:
+ jj_la1[102] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public AssertStmt AssertStatement() throws ParseException {
+ Expression check;
+ Expression msg = null;
+ int line;
+ int column;
+ jj_consume_token(ASSERT);
+ line = token.beginLine;
+ column = token.beginColumn;
+ check = Expression();
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case COLON:
+ jj_consume_token(COLON);
+ msg = Expression();
+ break;
+ default:
+ jj_la1[103] = jj_gen;
+ ;
+ }
+ jj_consume_token(SEMICOLON);
+ {
+ if (true) {
+ return new AssertStmt(line, column, token.endLine, token.endColumn, check, msg);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public LabeledStmt LabeledStatement() throws ParseException {
+ String label;
+ Statement stmt;
+ int line;
+ int column;
+ jj_consume_token(IDENTIFIER);
+ line = token.beginLine;
+ column = token.beginColumn;
+ label = token.image;
+ jj_consume_token(COLON);
+ stmt = Statement();
+ {
+ if (true) {
+ return new LabeledStmt(line, column, token.endLine, token.endColumn, label, stmt);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public BlockStmt Block() throws ParseException {
+ List stmts;
+ int beginLine;
+ int beginColumn;
+ jj_consume_token(LBRACE);
+ beginLine = token.beginLine;
+ beginColumn = token.beginColumn;
+ stmts = Statements();
+ jj_consume_token(RBRACE);
+ {
+ if (true) {
+ return new BlockStmt(beginLine, beginColumn, token.endLine, token.endColumn, stmts);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ /*
+ * Classes inside block stametents can only be abstract or final. The semantic must check it.
+ */
+ final public Statement BlockStatement() throws ParseException {
+ Statement ret;
+ Expression expr;
+ ClassOrInterfaceDeclaration typeDecl;
+ Modifier modifier;
+ if (jj_2_36(2147483647)) {
+ pushJavadoc();
+ modifier = Modifiers();
+ typeDecl = ClassOrInterfaceDeclaration(modifier);
+ ret = new TypeDeclarationStmt(typeDecl.getBeginLine(), typeDecl.getBeginColumn(), token.endLine, token.endColumn, typeDecl);
+ } else if (jj_2_37(2147483647)) {
+ expr = VariableDeclarationExpression();
+ jj_consume_token(SEMICOLON);
+ ret = new ExpressionStmt(expr.getBeginLine(), expr.getBeginColumn(), token.endLine, token.endColumn, expr);
+ } else {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case ASSERT:
+ case BOOLEAN:
+ case BREAK:
+ case BYTE:
+ case CHAR:
+ case CONTINUE:
+ case DO:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case FOR:
+ case IF:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case RETURN:
+ case SHORT:
+ case SUPER:
+ case SWITCH:
+ case SYNCHRONIZED:
+ case THIS:
+ case THROW:
+ case TRUE:
+ case TRY:
+ case VOID:
+ case WHILE:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case LBRACE:
+ case SEMICOLON:
+ case INCR:
+ case DECR:
+ ret = Statement();
+ break;
+ default:
+ jj_la1[104] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public VariableDeclarationExpr VariableDeclarationExpression() throws ParseException {
+ Modifier modifier;
+ Type type;
+ List vars = new LinkedList();
+ VariableDeclarator var;
+ modifier = Modifiers();
+ type = Type();
+ var = VariableDeclarator();
+ vars.add(var);
+ label_41: while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case COMMA:
+ ;
+ break;
+ default:
+ jj_la1[105] = jj_gen;
+ break label_41;
+ }
+ jj_consume_token(COMMA);
+ var = VariableDeclarator();
+ vars.add(var);
+ }
+ int line = modifier.beginLine;
+ int column = modifier.beginColumn;
+ if (line == -1) {
+ line = type.getBeginLine();
+ column = type.getBeginColumn();
+ }
+ {
+ if (true) {
+ return new VariableDeclarationExpr(line, column, token.endLine, token.endColumn, modifier.modifiers, modifier.annotations, type, vars);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public EmptyStmt EmptyStatement() throws ParseException {
+ jj_consume_token(SEMICOLON);
+ {
+ if (true) {
+ return new EmptyStmt(token.beginLine, token.beginColumn, token.endLine, token.endColumn);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public ExpressionStmt StatementExpression() throws ParseException {
+ Expression expr;
+ AssignExpr.Operator op;
+ Expression value;
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case INCR:
+ expr = PreIncrementExpression();
+ break;
+ case DECR:
+ expr = PreDecrementExpression();
+ break;
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ expr = PrimaryExpression();
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case ASSIGN:
+ case INCR:
+ case DECR:
+ case PLUSASSIGN:
+ case MINUSASSIGN:
+ case STARASSIGN:
+ case SLASHASSIGN:
+ case ANDASSIGN:
+ case ORASSIGN:
+ case XORASSIGN:
+ case REMASSIGN:
+ case LSHIFTASSIGN:
+ case RSIGNEDSHIFTASSIGN:
+ case RUNSIGNEDSHIFTASSIGN:
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case INCR:
+ jj_consume_token(INCR);
+ expr = new UnaryExpr(expr.getBeginLine(), expr.getBeginColumn(), token.endLine, token.endColumn, expr, UnaryExpr.Operator.posIncrement);
+ break;
+ case DECR:
+ jj_consume_token(DECR);
+ expr = new UnaryExpr(expr.getBeginLine(), expr.getBeginColumn(), token.endLine, token.endColumn, expr, UnaryExpr.Operator.posDecrement);
+ break;
+ case ASSIGN:
+ case PLUSASSIGN:
+ case MINUSASSIGN:
+ case STARASSIGN:
+ case SLASHASSIGN:
+ case ANDASSIGN:
+ case ORASSIGN:
+ case XORASSIGN:
+ case REMASSIGN:
+ case LSHIFTASSIGN:
+ case RSIGNEDSHIFTASSIGN:
+ case RUNSIGNEDSHIFTASSIGN:
+ op = AssignmentOperator();
+ value = Expression();
+ expr = new AssignExpr(expr.getBeginLine(), expr.getBeginColumn(), token.endLine, token.endColumn, expr, value, op);
+ break;
+ default:
+ jj_la1[106] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ break;
+ default:
+ jj_la1[107] = jj_gen;
+ ;
+ }
+ break;
+ default:
+ jj_la1[108] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ jj_consume_token(SEMICOLON);
+ {
+ if (true) {
+ return new ExpressionStmt(expr.getBeginLine(), expr.getBeginColumn(), token.endLine, token.endColumn, expr);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public SwitchStmt SwitchStatement() throws ParseException {
+ Expression selector;
+ SwitchEntryStmt entry;
+ List entries = null;
+ int line;
+ int column;
+ jj_consume_token(SWITCH);
+ line = token.beginLine;
+ column = token.beginColumn;
+ jj_consume_token(LPAREN);
+ selector = Expression();
+ jj_consume_token(RPAREN);
+ jj_consume_token(LBRACE);
+ label_42: while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case CASE:
+ case _DEFAULT:
+ ;
+ break;
+ default:
+ jj_la1[109] = jj_gen;
+ break label_42;
+ }
+ entry = SwitchEntry();
+ entries = add(entries, entry);
+ }
+ jj_consume_token(RBRACE);
+ {
+ if (true) {
+ return new SwitchStmt(line, column, token.endLine, token.endColumn, selector, entries);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public SwitchEntryStmt SwitchEntry() throws ParseException {
+ Expression label = null;
+ List stmts;
+ int line;
+ int column;
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case CASE:
+ jj_consume_token(CASE);
+ line = token.beginLine;
+ column = token.beginColumn;
+ label = Expression();
+ break;
+ case _DEFAULT:
+ jj_consume_token(_DEFAULT);
+ line = token.beginLine;
+ column = token.beginColumn;
+ break;
+ default:
+ jj_la1[110] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ jj_consume_token(COLON);
+ stmts = Statements();
+ {
+ if (true) {
+ return new SwitchEntryStmt(line, column, token.endLine, token.endColumn, label, stmts);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public IfStmt IfStatement() throws ParseException {
+ Expression condition;
+ Statement thenStmt;
+ Statement elseStmt = null;
+ int line;
+ int column;
+ jj_consume_token(IF);
+ line = token.beginLine;
+ column = token.beginColumn;
+ jj_consume_token(LPAREN);
+ condition = Expression();
+ jj_consume_token(RPAREN);
+ thenStmt = Statement();
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case ELSE:
+ jj_consume_token(ELSE);
+ elseStmt = Statement();
+ break;
+ default:
+ jj_la1[111] = jj_gen;
+ ;
+ }
+ {
+ if (true) {
+ return new IfStmt(line, column, token.endLine, token.endColumn, condition, thenStmt, elseStmt);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public WhileStmt WhileStatement() throws ParseException {
+ Expression condition;
+ Statement body;
+ int line;
+ int column;
+ jj_consume_token(WHILE);
+ line = token.beginLine;
+ column = token.beginColumn;
+ jj_consume_token(LPAREN);
+ condition = Expression();
+ jj_consume_token(RPAREN);
+ body = Statement();
+ {
+ if (true) {
+ return new WhileStmt(line, column, token.endLine, token.endColumn, condition, body);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public DoStmt DoStatement() throws ParseException {
+ Expression condition;
+ Statement body;
+ int line;
+ int column;
+ jj_consume_token(DO);
+ line = token.beginLine;
+ column = token.beginColumn;
+ body = Statement();
+ jj_consume_token(WHILE);
+ jj_consume_token(LPAREN);
+ condition = Expression();
+ jj_consume_token(RPAREN);
+ jj_consume_token(SEMICOLON);
+ {
+ if (true) {
+ return new DoStmt(line, column, token.endLine, token.endColumn, body, condition);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Statement ForStatement() throws ParseException {
+ String id = null;
+ VariableDeclarationExpr varExpr = null;
+ Expression expr = null;
+ List init = null;
+ List update = null;
+ Statement body;
+ int line;
+ int column;
+ jj_consume_token(FOR);
+ line = token.beginLine;
+ column = token.beginColumn;
+ jj_consume_token(LPAREN);
+ if (jj_2_38(2147483647)) {
+ varExpr = VariableDeclarationExpression();
+ jj_consume_token(COLON);
+ expr = Expression();
+ } else {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case ABSTRACT:
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FINAL:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NATIVE:
+ case NEW:
+ case NULL:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SUPER:
+ case SYNCHRONIZED:
+ case THIS:
+ case TRANSIENT:
+ case TRUE:
+ case VOID:
+ case VOLATILE:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case SEMICOLON:
+ case AT:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case ABSTRACT:
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FINAL:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NATIVE:
+ case NEW:
+ case NULL:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SUPER:
+ case SYNCHRONIZED:
+ case THIS:
+ case TRANSIENT:
+ case TRUE:
+ case VOID:
+ case VOLATILE:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case AT:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:
+ init = ForInit();
+ break;
+ default:
+ jj_la1[112] = jj_gen;
+ ;
+ }
+ jj_consume_token(SEMICOLON);
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:
+ expr = Expression();
+ break;
+ default:
+ jj_la1[113] = jj_gen;
+ ;
+ }
+ jj_consume_token(SEMICOLON);
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:
+ update = ForUpdate();
+ break;
+ default:
+ jj_la1[114] = jj_gen;
+ ;
+ }
+ break;
+ default:
+ jj_la1[115] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ jj_consume_token(RPAREN);
+ body = Statement();
+ if (varExpr != null) {
+ {
+ if (true) {
+ return new ForeachStmt(line, column, token.endLine, token.endColumn, varExpr, expr, body);
+ }
+ }
+ }
+ {
+ if (true) {
+ return new ForStmt(line, column, token.endLine, token.endColumn, init, expr, update, body);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List ForInit() throws ParseException {
+ List ret;
+ Expression expr;
+ if (jj_2_39(2147483647)) {
+ expr = VariableDeclarationExpression();
+ ret = new LinkedList();
+ ret.add(expr);
+ } else {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:
+ ret = ExpressionList();
+ break;
+ default:
+ jj_la1[116] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List ExpressionList() throws ParseException {
+ List ret = new LinkedList();
+ Expression expr;
+ expr = Expression();
+ ret.add(expr);
+ label_43: while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case COMMA:
+ ;
+ break;
+ default:
+ jj_la1[117] = jj_gen;
+ break label_43;
+ }
+ jj_consume_token(COMMA);
+ expr = Expression();
+ ret.add(expr);
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List ForUpdate() throws ParseException {
+ List ret;
+ ret = ExpressionList();
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public BreakStmt BreakStatement() throws ParseException {
+ String id = null;
+ int line;
+ int column;
+ jj_consume_token(BREAK);
+ line = token.beginLine;
+ column = token.beginColumn;
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case IDENTIFIER:
+ jj_consume_token(IDENTIFIER);
+ id = token.image;
+ break;
+ default:
+ jj_la1[118] = jj_gen;
+ ;
+ }
+ jj_consume_token(SEMICOLON);
+ {
+ if (true) {
+ return new BreakStmt(line, column, token.endLine, token.endColumn, id);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public ContinueStmt ContinueStatement() throws ParseException {
+ String id = null;
+ int line;
+ int column;
+ jj_consume_token(CONTINUE);
+ line = token.beginLine;
+ column = token.beginColumn;
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case IDENTIFIER:
+ jj_consume_token(IDENTIFIER);
+ id = token.image;
+ break;
+ default:
+ jj_la1[119] = jj_gen;
+ ;
+ }
+ jj_consume_token(SEMICOLON);
+ {
+ if (true) {
+ return new ContinueStmt(line, column, token.endLine, token.endColumn, id);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public ReturnStmt ReturnStatement() throws ParseException {
+ Expression expr = null;
+ int line;
+ int column;
+ jj_consume_token(RETURN);
+ line = token.beginLine;
+ column = token.beginColumn;
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:
+ expr = Expression();
+ break;
+ default:
+ jj_la1[120] = jj_gen;
+ ;
+ }
+ jj_consume_token(SEMICOLON);
+ {
+ if (true) {
+ return new ReturnStmt(line, column, token.endLine, token.endColumn, expr);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public ThrowStmt ThrowStatement() throws ParseException {
+ Expression expr;
+ int line;
+ int column;
+ jj_consume_token(THROW);
+ line = token.beginLine;
+ column = token.beginColumn;
+ expr = Expression();
+ jj_consume_token(SEMICOLON);
+ {
+ if (true) {
+ return new ThrowStmt(line, column, token.endLine, token.endColumn, expr);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public SynchronizedStmt SynchronizedStatement() throws ParseException {
+ Expression expr;
+ BlockStmt block;
+ int line;
+ int column;
+ jj_consume_token(SYNCHRONIZED);
+ line = token.beginLine;
+ column = token.beginColumn;
+ jj_consume_token(LPAREN);
+ expr = Expression();
+ jj_consume_token(RPAREN);
+ block = Block();
+ {
+ if (true) {
+ return new SynchronizedStmt(line, column, token.endLine, token.endColumn, expr, block);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public TryStmt TryStatement() throws ParseException {
+ BlockStmt tryBlock;
+ BlockStmt finallyBlock = null;
+ List catchs = null;
+ Parameter except;
+ BlockStmt catchBlock;
+ int line;
+ int column;
+ int cLine;
+ int cColumn;
+ jj_consume_token(TRY);
+ line = token.beginLine;
+ column = token.beginColumn;
+ tryBlock = Block();
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case CATCH:
+ label_44: while (true) {
+ jj_consume_token(CATCH);
+ cLine = token.beginLine;
+ cColumn = token.beginColumn;
+ jj_consume_token(LPAREN);
+ except = FormalParameter();
+ jj_consume_token(RPAREN);
+ catchBlock = Block();
+ catchs = add(catchs, new CatchClause(cLine, cColumn, token.endLine, token.endColumn, except, catchBlock));
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case CATCH:
+ ;
+ break;
+ default:
+ jj_la1[121] = jj_gen;
+ break label_44;
+ }
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case FINALLY:
+ jj_consume_token(FINALLY);
+ finallyBlock = Block();
+ break;
+ default:
+ jj_la1[122] = jj_gen;
+ ;
+ }
+ break;
+ case FINALLY:
+ jj_consume_token(FINALLY);
+ finallyBlock = Block();
+ break;
+ default:
+ jj_la1[123] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ {
+ if (true) {
+ return new TryStmt(line, column, token.endLine, token.endColumn, tryBlock, catchs, finallyBlock);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ /*
+ * We use productions to match >>>, >> and > so that we can keep the
+ * type declaration syntax with generics clean
+ */
+ final public void RUNSIGNEDSHIFT() throws ParseException {
+ if (getToken(1).kind == GT &&
+ ((GTToken) getToken(1)).realKind == RUNSIGNEDSHIFT) {
+
+ } else {
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ jj_consume_token(GT);
+ jj_consume_token(GT);
+ jj_consume_token(GT);
+ }
+
+ final public void RSIGNEDSHIFT() throws ParseException {
+ if (getToken(1).kind == GT &&
+ ((GTToken) getToken(1)).realKind == RSIGNEDSHIFT) {
+
+ } else {
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ jj_consume_token(GT);
+ jj_consume_token(GT);
+ }
+
+ /* Annotation syntax follows. */
+ final public AnnotationExpr Annotation() throws ParseException {
+ AnnotationExpr ret;
+ if (jj_2_40(2147483647)) {
+ ret = NormalAnnotation();
+ } else if (jj_2_41(2147483647)) {
+ ret = SingleMemberAnnotation();
+ } else {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case AT:
+ ret = MarkerAnnotation();
+ break;
+ default:
+ jj_la1[124] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public NormalAnnotationExpr NormalAnnotation() throws ParseException {
+ NameExpr name;
+ List pairs = null;
+ int line;
+ int column;
+ jj_consume_token(AT);
+ line = token.beginLine;
+ column = token.beginColumn;
+ name = Name();
+ jj_consume_token(LPAREN);
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case IDENTIFIER:
+ pairs = MemberValuePairs();
+ break;
+ default:
+ jj_la1[125] = jj_gen;
+ ;
+ }
+ jj_consume_token(RPAREN);
+ {
+ if (true) {
+ return new NormalAnnotationExpr(line, column, token.endLine, token.endColumn, name, pairs);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public MarkerAnnotationExpr MarkerAnnotation() throws ParseException {
+ NameExpr name;
+ int line;
+ int column;
+ jj_consume_token(AT);
+ line = token.beginLine;
+ column = token.beginColumn;
+ name = Name();
+ {
+ if (true) {
+ return new MarkerAnnotationExpr(line, column, token.endLine, token.endColumn, name);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public SingleMemberAnnotationExpr SingleMemberAnnotation() throws ParseException {
+ NameExpr name;
+ Expression memberVal;
+ int line;
+ int column;
+ jj_consume_token(AT);
+ line = token.beginLine;
+ column = token.beginColumn;
+ name = Name();
+ jj_consume_token(LPAREN);
+ memberVal = MemberValue();
+ jj_consume_token(RPAREN);
+ {
+ if (true) {
+ return new SingleMemberAnnotationExpr(line, column, token.endLine, token.endColumn, name, memberVal);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List MemberValuePairs() throws ParseException {
+ List ret = new LinkedList();
+ MemberValuePair pair;
+ pair = MemberValuePair();
+ ret.add(pair);
+ label_45: while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case COMMA:
+ ;
+ break;
+ default:
+ jj_la1[126] = jj_gen;
+ break label_45;
+ }
+ jj_consume_token(COMMA);
+ pair = MemberValuePair();
+ ret.add(pair);
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public MemberValuePair MemberValuePair() throws ParseException {
+ String name;
+ Expression value;
+ int line;
+ int column;
+ jj_consume_token(IDENTIFIER);
+ name = token.image;
+ line = token.beginLine;
+ column = token.beginColumn;
+ jj_consume_token(ASSIGN);
+ value = MemberValue();
+ {
+ if (true) {
+ return new MemberValuePair(line, column, token.endLine, token.endColumn, name, value);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression MemberValue() throws ParseException {
+ Expression ret;
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case AT:
+ ret = Annotation();
+ break;
+ case LBRACE:
+ ret = MemberValueArrayInitializer();
+ break;
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:
+ ret = ConditionalExpression();
+ break;
+ default:
+ jj_la1[127] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression MemberValueArrayInitializer() throws ParseException {
+ List ret = new LinkedList();
+ Expression member;
+ int line;
+ int column;
+ jj_consume_token(LBRACE);
+ line = token.beginLine;
+ column = token.beginColumn;
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case LBRACE:
+ case AT:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:
+ member = MemberValue();
+ ret.add(member);
+ label_46: while (true) {
+ if (jj_2_42(2)) {
+ ;
+ } else {
+ break label_46;
+ }
+ jj_consume_token(COMMA);
+ member = MemberValue();
+ ret.add(member);
+ }
+ break;
+ default:
+ jj_la1[128] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case COMMA:
+ jj_consume_token(COMMA);
+ break;
+ default:
+ jj_la1[129] = jj_gen;
+ ;
+ }
+ jj_consume_token(RBRACE);
+ {
+ if (true) {
+ return new ArrayInitializerExpr(line, column, token.endLine, token.endColumn, ret);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ /* Annotation Types. */
+ final public AnnotationDeclaration AnnotationTypeDeclaration(Modifier modifier) throws ParseException {
+ String name;
+ List members;
+ int line = modifier.beginLine;
+ int column = modifier.beginColumn;
+ jj_consume_token(AT);
+ if (line == -1) {
+ line = token.beginLine;
+ column = token.beginColumn;
+ }
+ jj_consume_token(INTERFACE);
+ jj_consume_token(IDENTIFIER);
+ name = token.image;
+ members = AnnotationTypeBody();
+ {
+ if (true) {
+ return new AnnotationDeclaration(line, column, token.endLine, token.endColumn, popJavadoc(), modifier.modifiers, modifier.annotations, name, members);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public List AnnotationTypeBody() throws ParseException {
+ List ret = null;
+ BodyDeclaration member;
+ jj_consume_token(LBRACE);
+ label_47: while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case ABSTRACT:
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case CLASS:
+ case DOUBLE:
+ case ENUM:
+ case FINAL:
+ case FLOAT:
+ case INT:
+ case INTERFACE:
+ case LONG:
+ case NATIVE:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SYNCHRONIZED:
+ case TRANSIENT:
+ case VOLATILE:
+ case IDENTIFIER:
+ case SEMICOLON:
+ case AT:
+ ;
+ break;
+ default:
+ jj_la1[130] = jj_gen;
+ break label_47;
+ }
+ member = AnnotationBodyDeclaration();
+ ret = add(ret, member);
+ }
+ jj_consume_token(RBRACE);
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public BodyDeclaration AnnotationBodyDeclaration() throws ParseException {
+ Modifier modifier;
+ BodyDeclaration ret;
+ pushJavadoc();
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case SEMICOLON:
+ jj_consume_token(SEMICOLON);
+ ret = new EmptyTypeDeclaration(token.beginLine, token.beginColumn, token.endLine, token.endColumn, popJavadoc());
+ break;
+ case ABSTRACT:
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case CLASS:
+ case DOUBLE:
+ case ENUM:
+ case FINAL:
+ case FLOAT:
+ case INT:
+ case INTERFACE:
+ case LONG:
+ case NATIVE:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SYNCHRONIZED:
+ case TRANSIENT:
+ case VOLATILE:
+ case IDENTIFIER:
+ case AT:
+ modifier = Modifiers();
+ if (jj_2_43(2147483647)) {
+ ret = AnnotationTypeMemberDeclaration(modifier);
+ } else {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case CLASS:
+ case INTERFACE:
+ ret = ClassOrInterfaceDeclaration(modifier);
+ break;
+ case ENUM:
+ ret = EnumDeclaration(modifier);
+ break;
+ case AT:
+ ret = AnnotationTypeDeclaration(modifier);
+ break;
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case SHORT:
+ case IDENTIFIER:
+ ret = FieldDeclaration(modifier);
+ break;
+ default:
+ jj_la1[131] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ break;
+ default:
+ jj_la1[132] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public AnnotationMemberDeclaration AnnotationTypeMemberDeclaration(Modifier modifier) throws ParseException {
+ Type type;
+ String name;
+ Expression defaultVal = null;
+ type = Type();
+ jj_consume_token(IDENTIFIER);
+ name = token.image;
+ jj_consume_token(LPAREN);
+ jj_consume_token(RPAREN);
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case _DEFAULT:
+ defaultVal = DefaultValue();
+ break;
+ default:
+ jj_la1[133] = jj_gen;
+ ;
+ }
+ jj_consume_token(SEMICOLON);
+ int line = modifier.beginLine;
+ int column = modifier.beginColumn;
+ {
+ if (line == -1) {
+ line = type.getBeginLine();
+ column = type.getBeginColumn();
+ }
+ }
+ {
+ if (true) {
+ return new AnnotationMemberDeclaration(line, column, token.endLine, token.endColumn, popJavadoc(), modifier.modifiers, modifier.annotations, type, name, defaultVal);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public Expression DefaultValue() throws ParseException {
+ Expression ret;
+ jj_consume_token(_DEFAULT);
+ ret = MemberValue();
+ {
+ if (true) {
+ return ret;
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ private boolean jj_2_1(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_1();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(0, xla);
+ }
+ }
+
+ private boolean jj_2_2(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_2();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(1, xla);
+ }
+ }
+
+ private boolean jj_2_3(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_3();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(2, xla);
+ }
+ }
+
+ private boolean jj_2_4(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_4();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(3, xla);
+ }
+ }
+
+ private boolean jj_2_5(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_5();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(4, xla);
+ }
+ }
+
+ private boolean jj_2_6(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_6();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(5, xla);
+ }
+ }
+
+ private boolean jj_2_7(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_7();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(6, xla);
+ }
+ }
+
+ private boolean jj_2_8(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_8();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(7, xla);
+ }
+ }
+
+ private boolean jj_2_9(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_9();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(8, xla);
+ }
+ }
+
+ private boolean jj_2_10(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_10();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(9, xla);
+ }
+ }
+
+ private boolean jj_2_11(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_11();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(10, xla);
+ }
+ }
+
+ private boolean jj_2_12(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_12();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(11, xla);
+ }
+ }
+
+ private boolean jj_2_13(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_13();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(12, xla);
+ }
+ }
+
+ private boolean jj_2_14(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_14();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(13, xla);
+ }
+ }
+
+ private boolean jj_2_15(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_15();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(14, xla);
+ }
+ }
+
+ private boolean jj_2_16(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_16();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(15, xla);
+ }
+ }
+
+ private boolean jj_2_17(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_17();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(16, xla);
+ }
+ }
+
+ private boolean jj_2_18(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_18();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(17, xla);
+ }
+ }
+
+ private boolean jj_2_19(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_19();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(18, xla);
+ }
+ }
+
+ private boolean jj_2_20(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_20();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(19, xla);
+ }
+ }
+
+ private boolean jj_2_21(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_21();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(20, xla);
+ }
+ }
+
+ private boolean jj_2_22(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_22();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(21, xla);
+ }
+ }
+
+ private boolean jj_2_23(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_23();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(22, xla);
+ }
+ }
+
+ private boolean jj_2_24(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_24();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(23, xla);
+ }
+ }
+
+ private boolean jj_2_25(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_25();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(24, xla);
+ }
+ }
+
+ private boolean jj_2_26(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_26();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(25, xla);
+ }
+ }
+
+ private boolean jj_2_27(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_27();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(26, xla);
+ }
+ }
+
+ private boolean jj_2_28(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_28();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(27, xla);
+ }
+ }
+
+ private boolean jj_2_29(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_29();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(28, xla);
+ }
+ }
+
+ private boolean jj_2_30(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_30();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(29, xla);
+ }
+ }
+
+ private boolean jj_2_31(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_31();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(30, xla);
+ }
+ }
+
+ private boolean jj_2_32(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_32();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(31, xla);
+ }
+ }
+
+ private boolean jj_2_33(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_33();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(32, xla);
+ }
+ }
+
+ private boolean jj_2_34(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_34();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(33, xla);
+ }
+ }
+
+ private boolean jj_2_35(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_35();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(34, xla);
+ }
+ }
+
+ private boolean jj_2_36(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_36();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(35, xla);
+ }
+ }
+
+ private boolean jj_2_37(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_37();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(36, xla);
+ }
+ }
+
+ private boolean jj_2_38(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_38();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(37, xla);
+ }
+ }
+
+ private boolean jj_2_39(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_39();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(38, xla);
+ }
+ }
+
+ private boolean jj_2_40(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_40();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(39, xla);
+ }
+ }
+
+ private boolean jj_2_41(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_41();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(40, xla);
+ }
+ }
+
+ private boolean jj_2_42(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_42();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(41, xla);
+ }
+ }
+
+ private boolean jj_2_43(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_43();
+ } catch (LookaheadSuccess ls) {
+ return true;
+ } finally {
+ jj_save(42, xla);
+ }
+ }
+
+ private boolean jj_3R_100() {
+ if (jj_3R_145()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_168() {
+ if (jj_scan_token(ASSIGN)) {
+ return true;
+ }
+ if (jj_3R_66()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_207() {
+ if (jj_scan_token(CHARACTER_LITERAL)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_206() {
+ if (jj_scan_token(FLOATING_POINT_LITERAL)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_66() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_100()) {
+ jj_scanpos = xsp;
+ if (jj_3R_101()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_205() {
+ if (jj_scan_token(LONG_LITERAL)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_361() {
+ if (jj_3R_372()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_204() {
+ if (jj_scan_token(INTEGER_LITERAL)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_83() {
+ if (jj_3R_71()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_167() {
+ if (jj_scan_token(IDENTIFIER)) {
+ return true;
+ }
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_200()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3_29() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_83()) {
+ jj_scanpos = xsp;
+ }
+ if (jj_scan_token(IDENTIFIER)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_64() {
+ if (jj_scan_token(LBRACKET)) {
+ return true;
+ }
+ if (jj_scan_token(RBRACKET)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_184() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_204()) {
+ jj_scanpos = xsp;
+ if (jj_3R_205()) {
+ jj_scanpos = xsp;
+ if (jj_3R_206()) {
+ jj_scanpos = xsp;
+ if (jj_3R_207()) {
+ jj_scanpos = xsp;
+ if (jj_3R_208()) {
+ jj_scanpos = xsp;
+ if (jj_3R_209()) {
+ jj_scanpos = xsp;
+ if (jj_3R_210()) {
+ return true;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_128() {
+ if (jj_scan_token(LBRACKET)) {
+ return true;
+ }
+ if (jj_3R_73()) {
+ return true;
+ }
+ if (jj_scan_token(RBRACKET)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_196() {
+ if (jj_3R_147()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_195() {
+ if (jj_3R_71()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_133() {
+ if (jj_3R_167()) {
+ return true;
+ }
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_168()) {
+ jj_scanpos = xsp;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_164() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_195()) {
+ jj_scanpos = xsp;
+ }
+ if (jj_scan_token(IDENTIFIER)) {
+ return true;
+ }
+ xsp = jj_scanpos;
+ if (jj_3R_196()) {
+ jj_scanpos = xsp;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_163() {
+ if (jj_3R_187()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_173() {
+ if (jj_3R_201()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_162() {
+ if (jj_scan_token(THIS)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_321() {
+ if (jj_scan_token(COMMA)) {
+ return true;
+ }
+ if (jj_3R_133()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3_5() {
+ if (jj_3R_63()) {
+ return true;
+ }
+ if (jj_scan_token(IDENTIFIER)) {
+ return true;
+ }
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_64()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ xsp = jj_scanpos;
+ if (jj_scan_token(87)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(90)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(86)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_62() {
+ if (jj_3R_96()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_127() {
+ if (jj_scan_token(DOT)) {
+ return true;
+ }
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_162()) {
+ jj_scanpos = xsp;
+ if (jj_3R_163()) {
+ jj_scanpos = xsp;
+ if (jj_3R_164()) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3_4() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_62()) {
+ jj_scanpos = xsp;
+ }
+ if (jj_scan_token(IDENTIFIER)) {
+ return true;
+ }
+ if (jj_scan_token(LPAREN)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_247() {
+ if (jj_3R_63()) {
+ return true;
+ }
+ if (jj_3R_133()) {
+ return true;
+ }
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_321()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ if (jj_scan_token(SEMICOLON)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_226() {
+ if (jj_3R_248()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_81() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_127()) {
+ jj_scanpos = xsp;
+ if (jj_3R_128()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_198() {
+ if (jj_scan_token(SEMICOLON)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_225() {
+ if (jj_3R_247()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_224() {
+ if (jj_3R_246()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_372() {
+ if (jj_scan_token(_DEFAULT)) {
+ return true;
+ }
+ if (jj_3R_92()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_223() {
+ if (jj_3R_245()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_126() {
+ if (jj_scan_token(DOT)) {
+ return true;
+ }
+ if (jj_scan_token(SUPER)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_222() {
+ if (jj_3R_244()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3_28() {
+ if (jj_3R_81()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_221() {
+ if (jj_3R_243()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_188() {
+ if (jj_3R_147()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_80() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_28()) {
+ jj_scanpos = xsp;
+ if (jj_3R_126()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3_27() {
+ if (jj_3R_82()) {
+ return true;
+ }
+ if (jj_scan_token(DOT)) {
+ return true;
+ }
+ if (jj_scan_token(CLASS)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_197() {
+ if (jj_3R_88()) {
+ return true;
+ }
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_221()) {
+ jj_scanpos = xsp;
+ if (jj_3R_222()) {
+ jj_scanpos = xsp;
+ if (jj_3R_223()) {
+ jj_scanpos = xsp;
+ if (jj_3R_224()) {
+ jj_scanpos = xsp;
+ if (jj_3R_225()) {
+ jj_scanpos = xsp;
+ if (jj_3R_226()) {
+ return true;
+ }
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_156() {
+ if (jj_scan_token(IDENTIFIER)) {
+ return true;
+ }
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_188()) {
+ jj_scanpos = xsp;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_360() {
+ if (jj_3R_63()) {
+ return true;
+ }
+ if (jj_scan_token(IDENTIFIER)) {
+ return true;
+ }
+ if (jj_scan_token(LPAREN)) {
+ return true;
+ }
+ if (jj_scan_token(RPAREN)) {
+ return true;
+ }
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_361()) {
+ jj_scanpos = xsp;
+ }
+ if (jj_scan_token(SEMICOLON)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3_43() {
+ if (jj_3R_63()) {
+ return true;
+ }
+ if (jj_scan_token(IDENTIFIER)) {
+ return true;
+ }
+ if (jj_scan_token(LPAREN)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_356() {
+ if (jj_3R_247()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3_6() {
+ if (jj_3R_65()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_355() {
+ if (jj_3R_245()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_155() {
+ if (jj_3R_82()) {
+ return true;
+ }
+ if (jj_scan_token(DOT)) {
+ return true;
+ }
+ if (jj_scan_token(CLASS)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_354() {
+ if (jj_3R_244()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_154() {
+ if (jj_3R_187()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_353() {
+ if (jj_3R_243()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_153() {
+ if (jj_scan_token(LPAREN)) {
+ return true;
+ }
+ if (jj_3R_73()) {
+ return true;
+ }
+ if (jj_scan_token(RPAREN)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_352() {
+ if (jj_3R_360()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_165() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_6()) {
+ jj_scanpos = xsp;
+ if (jj_3R_197()) {
+ jj_scanpos = xsp;
+ if (jj_3R_198()) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3_42() {
+ if (jj_scan_token(COMMA)) {
+ return true;
+ }
+ if (jj_3R_92()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3_26() {
+ if (jj_3R_81()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_186() {
+ if (jj_3R_147()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_185() {
+ if (jj_3R_71()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_131() {
+ if (jj_3R_165()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_346() {
+ if (jj_scan_token(SEMICOLON)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_347() {
+ if (jj_3R_88()) {
+ return true;
+ }
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_352()) {
+ jj_scanpos = xsp;
+ if (jj_3R_353()) {
+ jj_scanpos = xsp;
+ if (jj_3R_354()) {
+ jj_scanpos = xsp;
+ if (jj_3R_355()) {
+ jj_scanpos = xsp;
+ if (jj_3R_356()) {
+ return true;
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_152() {
+ if (jj_scan_token(SUPER)) {
+ return true;
+ }
+ if (jj_scan_token(DOT)) {
+ return true;
+ }
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_185()) {
+ jj_scanpos = xsp;
+ }
+ if (jj_scan_token(IDENTIFIER)) {
+ return true;
+ }
+ xsp = jj_scanpos;
+ if (jj_3R_186()) {
+ jj_scanpos = xsp;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_151() {
+ if (jj_scan_token(THIS)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_84() {
+ if (jj_scan_token(LBRACE)) {
+ return true;
+ }
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_131()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ if (jj_scan_token(RBRACE)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_150() {
+ if (jj_3R_184()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_105() {
+ if (jj_3R_81()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_341() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_346()) {
+ jj_scanpos = xsp;
+ if (jj_3R_347()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3_3() {
+ if (jj_scan_token(COMMA)) {
+ return true;
+ }
+ if (jj_3R_61()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_228() {
+ if (jj_scan_token(BIT_AND)) {
+ return true;
+ }
+ if (jj_3R_85()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_330() {
+ if (jj_3R_341()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_201() {
+ if (jj_scan_token(EXTENDS)) {
+ return true;
+ }
+ if (jj_3R_85()) {
+ return true;
+ }
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_228()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_104() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_150()) {
+ jj_scanpos = xsp;
+ if (jj_3R_151()) {
+ jj_scanpos = xsp;
+ if (jj_3R_152()) {
+ jj_scanpos = xsp;
+ if (jj_3R_153()) {
+ jj_scanpos = xsp;
+ if (jj_3R_154()) {
+ jj_scanpos = xsp;
+ if (jj_3R_155()) {
+ jj_scanpos = xsp;
+ if (jj_3R_156()) {
+ return true;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3_25() {
+ if (jj_3R_80()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_317() {
+ if (jj_scan_token(LBRACE)) {
+ return true;
+ }
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_330()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ if (jj_scan_token(RBRACE)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_141() {
+ if (jj_scan_token(IDENTIFIER)) {
+ return true;
+ }
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_173()) {
+ jj_scanpos = xsp;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_340() {
+ if (jj_3R_84()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_68() {
+ if (jj_3R_104()) {
+ return true;
+ }
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_105()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_245() {
+ if (jj_scan_token(AT)) {
+ return true;
+ }
+ if (jj_scan_token(INTERFACE)) {
+ return true;
+ }
+ if (jj_scan_token(IDENTIFIER)) {
+ return true;
+ }
+ if (jj_3R_317()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_142() {
+ if (jj_scan_token(COMMA)) {
+ return true;
+ }
+ if (jj_3R_141()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_96() {
+ if (jj_scan_token(LT)) {
+ return true;
+ }
+ if (jj_3R_141()) {
+ return true;
+ }
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_142()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ if (jj_scan_token(GT)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_265() {
+ if (jj_scan_token(COMMA)) {
+ return true;
+ }
+ if (jj_3R_264()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_238() {
+ if (jj_3R_104()) {
+ return true;
+ }
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_25()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_283() {
+ if (jj_3R_92()) {
+ return true;
+ }
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_42()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_227() {
+ if (jj_3R_249()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_169() {
+ if (jj_scan_token(LBRACE)) {
+ return true;
+ }
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_283()) {
+ jj_scanpos = xsp;
+ }
+ xsp = jj_scanpos;
+ if (jj_scan_token(87)) {
+ jj_scanpos = xsp;
+ }
+ if (jj_scan_token(RBRACE)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_339() {
+ if (jj_3R_147()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_329() {
+ if (jj_3R_165()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_95() {
+ if (jj_3R_94()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_258() {
+ if (jj_scan_token(LPAREN)) {
+ return true;
+ }
+ if (jj_3R_63()) {
+ return true;
+ }
+ if (jj_scan_token(RPAREN)) {
+ return true;
+ }
+ if (jj_3R_161()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_137() {
+ if (jj_3R_121()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_61() {
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_95()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ if (jj_scan_token(IDENTIFIER)) {
+ return true;
+ }
+ xsp = jj_scanpos;
+ if (jj_3R_339()) {
+ jj_scanpos = xsp;
+ }
+ xsp = jj_scanpos;
+ if (jj_3R_340()) {
+ jj_scanpos = xsp;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_136() {
+ if (jj_3R_169()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_135() {
+ if (jj_3R_94()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_316() {
+ if (jj_scan_token(SEMICOLON)) {
+ return true;
+ }
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_329()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_79() {
+ if (jj_scan_token(DECR)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3_24() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_78()) {
+ jj_scanpos = xsp;
+ if (jj_3R_79()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_78() {
+ if (jj_scan_token(INCR)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_92() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_135()) {
+ jj_scanpos = xsp;
+ if (jj_3R_136()) {
+ jj_scanpos = xsp;
+ if (jj_3R_137()) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_259() {
+ if (jj_3R_238()) {
+ return true;
+ }
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_24()) {
+ jj_scanpos = xsp;
+ }
+ return false;
+ }
+
+ private boolean jj_3_23() {
+ if (jj_scan_token(LPAREN)) {
+ return true;
+ }
+ if (jj_3R_63()) {
+ return true;
+ }
+ if (jj_scan_token(LBRACKET)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_315() {
+ if (jj_3R_61()) {
+ return true;
+ }
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_3()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_264() {
+ if (jj_scan_token(IDENTIFIER)) {
+ return true;
+ }
+ if (jj_scan_token(ASSIGN)) {
+ return true;
+ }
+ if (jj_3R_92()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3_22() {
+ if (jj_3R_77()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_125() {
+ if (jj_scan_token(LPAREN)) {
+ return true;
+ }
+ if (jj_3R_63()) {
+ return true;
+ }
+ if (jj_scan_token(RPAREN)) {
+ return true;
+ }
+ if (jj_3R_161()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_314() {
+ if (jj_3R_328()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_124() {
+ if (jj_scan_token(LPAREN)) {
+ return true;
+ }
+ if (jj_3R_63()) {
+ return true;
+ }
+ if (jj_scan_token(LBRACKET)) {
+ return true;
+ }
+ if (jj_scan_token(RBRACKET)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_77() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_124()) {
+ jj_scanpos = xsp;
+ if (jj_3R_125()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_244() {
+ if (jj_scan_token(ENUM)) {
+ return true;
+ }
+ if (jj_scan_token(IDENTIFIER)) {
+ return true;
+ }
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_314()) {
+ jj_scanpos = xsp;
+ }
+ if (jj_scan_token(LBRACE)) {
+ return true;
+ }
+ xsp = jj_scanpos;
+ if (jj_3R_315()) {
+ jj_scanpos = xsp;
+ }
+ xsp = jj_scanpos;
+ if (jj_scan_token(87)) {
+ jj_scanpos = xsp;
+ }
+ xsp = jj_scanpos;
+ if (jj_3R_316()) {
+ jj_scanpos = xsp;
+ }
+ if (jj_scan_token(RBRACE)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_241() {
+ if (jj_3R_259()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_249() {
+ if (jj_3R_264()) {
+ return true;
+ }
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_265()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_240() {
+ if (jj_3R_258()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_257() {
+ if (jj_scan_token(BANG)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_256() {
+ if (jj_scan_token(TILDE)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_239() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_256()) {
+ jj_scanpos = xsp;
+ if (jj_3R_257()) {
+ return true;
+ }
+ }
+ if (jj_3R_161()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_171() {
+ if (jj_scan_token(AT)) {
+ return true;
+ }
+ if (jj_3R_90()) {
+ return true;
+ }
+ if (jj_scan_token(LPAREN)) {
+ return true;
+ }
+ if (jj_3R_92()) {
+ return true;
+ }
+ if (jj_scan_token(RPAREN)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_338() {
+ if (jj_scan_token(COMMA)) {
+ return true;
+ }
+ if (jj_3R_85()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_219() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_239()) {
+ jj_scanpos = xsp;
+ if (jj_3R_240()) {
+ jj_scanpos = xsp;
+ if (jj_3R_241()) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_91() {
+ if (jj_scan_token(IDENTIFIER)) {
+ return true;
+ }
+ if (jj_scan_token(ASSIGN)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_328() {
+ if (jj_scan_token(IMPLEMENTS)) {
+ return true;
+ }
+ if (jj_3R_85()) {
+ return true;
+ }
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_338()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_172() {
+ if (jj_scan_token(AT)) {
+ return true;
+ }
+ if (jj_3R_90()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_218() {
+ if (jj_scan_token(DECR)) {
+ return true;
+ }
+ if (jj_3R_238()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_337() {
+ if (jj_scan_token(COMMA)) {
+ return true;
+ }
+ if (jj_3R_85()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3_41() {
+ if (jj_scan_token(AT)) {
+ return true;
+ }
+ if (jj_3R_90()) {
+ return true;
+ }
+ if (jj_scan_token(LPAREN)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_327() {
+ if (jj_scan_token(EXTENDS)) {
+ return true;
+ }
+ if (jj_3R_85()) {
+ return true;
+ }
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_337()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3_40() {
+ if (jj_scan_token(AT)) {
+ return true;
+ }
+ if (jj_3R_90()) {
+ return true;
+ }
+ if (jj_scan_token(LPAREN)) {
+ return true;
+ }
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_91()) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(81)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_170() {
+ if (jj_scan_token(AT)) {
+ return true;
+ }
+ if (jj_3R_90()) {
+ return true;
+ }
+ if (jj_scan_token(LPAREN)) {
+ return true;
+ }
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_227()) {
+ jj_scanpos = xsp;
+ }
+ if (jj_scan_token(RPAREN)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_217() {
+ if (jj_scan_token(INCR)) {
+ return true;
+ }
+ if (jj_3R_238()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_261() {
+ if (jj_scan_token(INTERFACE)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_140() {
+ if (jj_3R_172()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_194() {
+ if (jj_3R_219()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_139() {
+ if (jj_3R_171()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_193() {
+ if (jj_3R_218()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_313() {
+ if (jj_3R_328()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_138() {
+ if (jj_3R_170()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_312() {
+ if (jj_3R_327()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_192() {
+ if (jj_3R_217()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_311() {
+ if (jj_3R_96()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_243() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(20)) {
+ jj_scanpos = xsp;
+ if (jj_3R_261()) {
+ return true;
+ }
+ }
+ if (jj_scan_token(IDENTIFIER)) {
+ return true;
+ }
+ xsp = jj_scanpos;
+ if (jj_3R_311()) {
+ jj_scanpos = xsp;
+ }
+ xsp = jj_scanpos;
+ if (jj_3R_312()) {
+ jj_scanpos = xsp;
+ }
+ xsp = jj_scanpos;
+ if (jj_3R_313()) {
+ jj_scanpos = xsp;
+ }
+ if (jj_3R_84()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_94() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_138()) {
+ jj_scanpos = xsp;
+ if (jj_3R_139()) {
+ jj_scanpos = xsp;
+ if (jj_3R_140()) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_122() {
+ return false;
+ }
+
+ private boolean jj_3R_216() {
+ if (jj_scan_token(MINUS)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_215() {
+ if (jj_scan_token(PLUS)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_191() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_215()) {
+ jj_scanpos = xsp;
+ if (jj_3R_216()) {
+ return true;
+ }
+ }
+ if (jj_3R_161()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_123() {
+ return false;
+ }
+
+ private boolean jj_3R_75() {
+ jj_lookingAhead = true;
+ jj_semLA = getToken(1).kind == GT &&
+ ((GTToken) getToken(1)).realKind == RSIGNEDSHIFT;
+ jj_lookingAhead = false;
+ if (!jj_semLA || jj_3R_122()) {
+ return true;
+ }
+ if (jj_scan_token(GT)) {
+ return true;
+ }
+ if (jj_scan_token(GT)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_161() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_191()) {
+ jj_scanpos = xsp;
+ if (jj_3R_192()) {
+ jj_scanpos = xsp;
+ if (jj_3R_193()) {
+ jj_scanpos = xsp;
+ if (jj_3R_194()) {
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_378() {
+ if (jj_scan_token(CATCH)) {
+ return true;
+ }
+ if (jj_scan_token(LPAREN)) {
+ return true;
+ }
+ if (jj_3R_342()) {
+ return true;
+ }
+ if (jj_scan_token(RPAREN)) {
+ return true;
+ }
+ if (jj_3R_99()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_379() {
+ if (jj_scan_token(FINALLY)) {
+ return true;
+ }
+ if (jj_3R_99()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_371() {
+ if (jj_scan_token(FINALLY)) {
+ return true;
+ }
+ if (jj_3R_99()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_76() {
+ jj_lookingAhead = true;
+ jj_semLA = getToken(1).kind == GT &&
+ ((GTToken) getToken(1)).realKind == RUNSIGNEDSHIFT;
+ jj_lookingAhead = false;
+ if (!jj_semLA || jj_3R_123()) {
+ return true;
+ }
+ if (jj_scan_token(GT)) {
+ return true;
+ }
+ if (jj_scan_token(GT)) {
+ return true;
+ }
+ if (jj_scan_token(GT)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_359() {
+ if (jj_scan_token(REM)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_358() {
+ if (jj_scan_token(SLASH)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_357() {
+ if (jj_scan_token(STAR)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_349() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_357()) {
+ jj_scanpos = xsp;
+ if (jj_3R_358()) {
+ jj_scanpos = xsp;
+ if (jj_3R_359()) {
+ return true;
+ }
+ }
+ }
+ if (jj_3R_161()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_369() {
+ if (jj_3R_73()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_370() {
+ Token xsp;
+ if (jj_3R_378()) {
+ return true;
+ }
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_378()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ xsp = jj_scanpos;
+ if (jj_3R_379()) {
+ jj_scanpos = xsp;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_325() {
+ if (jj_3R_161()) {
+ return true;
+ }
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_349()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_368() {
+ if (jj_scan_token(IDENTIFIER)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_351() {
+ if (jj_scan_token(MINUS)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_350() {
+ if (jj_scan_token(PLUS)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_60() {
+ if (jj_3R_94()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_345() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_350()) {
+ jj_scanpos = xsp;
+ if (jj_3R_351()) {
+ return true;
+ }
+ }
+ if (jj_3R_325()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_59() {
+ if (jj_scan_token(STRICTFP)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_297() {
+ if (jj_scan_token(TRY)) {
+ return true;
+ }
+ if (jj_3R_99()) {
+ return true;
+ }
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_370()) {
+ jj_scanpos = xsp;
+ if (jj_3R_371()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_58() {
+ if (jj_scan_token(VOLATILE)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_57() {
+ if (jj_scan_token(TRANSIENT)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_56() {
+ if (jj_scan_token(NATIVE)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_367() {
+ if (jj_scan_token(IDENTIFIER)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_307() {
+ if (jj_3R_325()) {
+ return true;
+ }
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_345()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_55() {
+ if (jj_scan_token(SYNCHRONIZED)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_54() {
+ if (jj_scan_token(ABSTRACT)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_53() {
+ if (jj_scan_token(FINAL)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3_21() {
+ if (jj_3R_76()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3_20() {
+ if (jj_3R_75()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_52() {
+ if (jj_scan_token(PRIVATE)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_74() {
+ if (jj_scan_token(LSHIFT)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_51() {
+ if (jj_scan_token(PROTECTED)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3_19() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_74()) {
+ jj_scanpos = xsp;
+ if (jj_3_20()) {
+ jj_scanpos = xsp;
+ if (jj_3_21()) {
+ return true;
+ }
+ }
+ }
+ if (jj_3R_307()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_50() {
+ if (jj_scan_token(STATIC)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_49() {
+ if (jj_scan_token(PUBLIC)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_308() {
+ if (jj_scan_token(INSTANCEOF)) {
+ return true;
+ }
+ if (jj_3R_63()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_296() {
+ if (jj_scan_token(SYNCHRONIZED)) {
+ return true;
+ }
+ if (jj_scan_token(LPAREN)) {
+ return true;
+ }
+ if (jj_3R_73()) {
+ return true;
+ }
+ if (jj_scan_token(RPAREN)) {
+ return true;
+ }
+ if (jj_3R_99()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3_2() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_49()) {
+ jj_scanpos = xsp;
+ if (jj_3R_50()) {
+ jj_scanpos = xsp;
+ if (jj_3R_51()) {
+ jj_scanpos = xsp;
+ if (jj_3R_52()) {
+ jj_scanpos = xsp;
+ if (jj_3R_53()) {
+ jj_scanpos = xsp;
+ if (jj_3R_54()) {
+ jj_scanpos = xsp;
+ if (jj_3R_55()) {
+ jj_scanpos = xsp;
+ if (jj_3R_56()) {
+ jj_scanpos = xsp;
+ if (jj_3R_57()) {
+ jj_scanpos = xsp;
+ if (jj_3R_58()) {
+ jj_scanpos = xsp;
+ if (jj_3R_59()) {
+ jj_scanpos = xsp;
+ if (jj_3R_60()) {
+ return true;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_305() {
+ if (jj_3R_307()) {
+ return true;
+ }
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_19()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_88() {
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_2()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_336() {
+ if (jj_scan_token(GE)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_335() {
+ if (jj_scan_token(LE)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_334() {
+ if (jj_scan_token(GT)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_333() {
+ if (jj_scan_token(LT)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_326() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_333()) {
+ jj_scanpos = xsp;
+ if (jj_3R_334()) {
+ jj_scanpos = xsp;
+ if (jj_3R_335()) {
+ jj_scanpos = xsp;
+ if (jj_3R_336()) {
+ return true;
+ }
+ }
+ }
+ }
+ if (jj_3R_305()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_295() {
+ if (jj_scan_token(THROW)) {
+ return true;
+ }
+ if (jj_3R_73()) {
+ return true;
+ }
+ if (jj_scan_token(SEMICOLON)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_303() {
+ if (jj_3R_305()) {
+ return true;
+ }
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_326()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_294() {
+ if (jj_scan_token(RETURN)) {
+ return true;
+ }
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_369()) {
+ jj_scanpos = xsp;
+ }
+ if (jj_scan_token(SEMICOLON)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_390() {
+ if (jj_scan_token(COMMA)) {
+ return true;
+ }
+ if (jj_3R_73()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_304() {
+ if (jj_scan_token(BIT_AND)) {
+ return true;
+ }
+ if (jj_3R_281()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_298() {
+ if (jj_3R_303()) {
+ return true;
+ }
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_308()) {
+ jj_scanpos = xsp;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_364() {
+ if (jj_scan_token(ELSE)) {
+ return true;
+ }
+ if (jj_3R_250()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_293() {
+ if (jj_scan_token(CONTINUE)) {
+ return true;
+ }
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_368()) {
+ jj_scanpos = xsp;
+ }
+ if (jj_scan_token(SEMICOLON)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_93() {
+ if (jj_3R_94()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_48() {
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_93()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ if (jj_scan_token(PACKAGE)) {
+ return true;
+ }
+ if (jj_3R_90()) {
+ return true;
+ }
+ if (jj_scan_token(SEMICOLON)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_310() {
+ if (jj_scan_token(NE)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3_1() {
+ if (jj_3R_48()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_309() {
+ if (jj_scan_token(EQ)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_306() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_309()) {
+ jj_scanpos = xsp;
+ if (jj_3R_310()) {
+ return true;
+ }
+ }
+ if (jj_3R_298()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_377() {
+ if (jj_3R_386()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_299() {
+ if (jj_scan_token(XOR)) {
+ return true;
+ }
+ if (jj_3R_255()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_292() {
+ if (jj_scan_token(BREAK)) {
+ return true;
+ }
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_367()) {
+ jj_scanpos = xsp;
+ }
+ if (jj_scan_token(SEMICOLON)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_282() {
+ if (jj_scan_token(BIT_OR)) {
+ return true;
+ }
+ if (jj_3R_237()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_281() {
+ if (jj_3R_298()) {
+ return true;
+ }
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_306()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_260() {
+ if (jj_scan_token(SC_AND)) {
+ return true;
+ }
+ if (jj_3R_214()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_386() {
+ if (jj_3R_389()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_255() {
+ if (jj_3R_281()) {
+ return true;
+ }
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_304()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_242() {
+ if (jj_scan_token(SC_OR)) {
+ return true;
+ }
+ if (jj_3R_190()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3_39() {
+ if (jj_3R_88()) {
+ return true;
+ }
+ if (jj_3R_63()) {
+ return true;
+ }
+ if (jj_scan_token(IDENTIFIER)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_389() {
+ if (jj_3R_73()) {
+ return true;
+ }
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_390()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_237() {
+ if (jj_3R_255()) {
+ return true;
+ }
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_299()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_388() {
+ if (jj_3R_389()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_376() {
+ if (jj_3R_73()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_387() {
+ if (jj_3R_89()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_214() {
+ if (jj_3R_237()) {
+ return true;
+ }
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_282()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_385() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_387()) {
+ jj_scanpos = xsp;
+ if (jj_3R_388()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_190() {
+ if (jj_3R_214()) {
+ return true;
+ }
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_260()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3_38() {
+ if (jj_3R_89()) {
+ return true;
+ }
+ if (jj_scan_token(COLON)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_375() {
+ if (jj_3R_385()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_160() {
+ if (jj_3R_190()) {
+ return true;
+ }
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_242()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_366() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_375()) {
+ jj_scanpos = xsp;
+ }
+ if (jj_scan_token(SEMICOLON)) {
+ return true;
+ }
+ xsp = jj_scanpos;
+ if (jj_3R_376()) {
+ jj_scanpos = xsp;
+ }
+ if (jj_scan_token(SEMICOLON)) {
+ return true;
+ }
+ xsp = jj_scanpos;
+ if (jj_3R_377()) {
+ jj_scanpos = xsp;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_365() {
+ if (jj_3R_89()) {
+ return true;
+ }
+ if (jj_scan_token(COLON)) {
+ return true;
+ }
+ if (jj_3R_73()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_220() {
+ if (jj_scan_token(HOOK)) {
+ return true;
+ }
+ if (jj_3R_73()) {
+ return true;
+ }
+ if (jj_scan_token(COLON)) {
+ return true;
+ }
+ if (jj_3R_121()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_291() {
+ if (jj_scan_token(FOR)) {
+ return true;
+ }
+ if (jj_scan_token(LPAREN)) {
+ return true;
+ }
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_365()) {
+ jj_scanpos = xsp;
+ if (jj_3R_366()) {
+ return true;
+ }
+ }
+ if (jj_scan_token(RPAREN)) {
+ return true;
+ }
+ if (jj_3R_250()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_121() {
+ if (jj_3R_160()) {
+ return true;
+ }
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_220()) {
+ jj_scanpos = xsp;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_120() {
+ if (jj_scan_token(ORASSIGN)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_119() {
+ if (jj_scan_token(XORASSIGN)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_118() {
+ if (jj_scan_token(ANDASSIGN)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_117() {
+ if (jj_scan_token(RUNSIGNEDSHIFTASSIGN)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_116() {
+ if (jj_scan_token(RSIGNEDSHIFTASSIGN)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_115() {
+ if (jj_scan_token(LSHIFTASSIGN)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_114() {
+ if (jj_scan_token(MINUSASSIGN)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_113() {
+ if (jj_scan_token(PLUSASSIGN)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_290() {
+ if (jj_scan_token(DO)) {
+ return true;
+ }
+ if (jj_3R_250()) {
+ return true;
+ }
+ if (jj_scan_token(WHILE)) {
+ return true;
+ }
+ if (jj_scan_token(LPAREN)) {
+ return true;
+ }
+ if (jj_3R_73()) {
+ return true;
+ }
+ if (jj_scan_token(RPAREN)) {
+ return true;
+ }
+ if (jj_scan_token(SEMICOLON)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_112() {
+ if (jj_scan_token(REMASSIGN)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_111() {
+ if (jj_scan_token(SLASHASSIGN)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_110() {
+ if (jj_scan_token(STARASSIGN)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_109() {
+ if (jj_scan_token(ASSIGN)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_72() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_109()) {
+ jj_scanpos = xsp;
+ if (jj_3R_110()) {
+ jj_scanpos = xsp;
+ if (jj_3R_111()) {
+ jj_scanpos = xsp;
+ if (jj_3R_112()) {
+ jj_scanpos = xsp;
+ if (jj_3R_113()) {
+ jj_scanpos = xsp;
+ if (jj_3R_114()) {
+ jj_scanpos = xsp;
+ if (jj_3R_115()) {
+ jj_scanpos = xsp;
+ if (jj_3R_116()) {
+ jj_scanpos = xsp;
+ if (jj_3R_117()) {
+ jj_scanpos = xsp;
+ if (jj_3R_118()) {
+ jj_scanpos = xsp;
+ if (jj_3R_119()) {
+ jj_scanpos = xsp;
+ if (jj_3R_120()) {
+ return true;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_344() {
+ if (jj_scan_token(COMMA)) {
+ return true;
+ }
+ if (jj_3R_90()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_289() {
+ if (jj_scan_token(WHILE)) {
+ return true;
+ }
+ if (jj_scan_token(LPAREN)) {
+ return true;
+ }
+ if (jj_3R_73()) {
+ return true;
+ }
+ if (jj_scan_token(RPAREN)) {
+ return true;
+ }
+ if (jj_3R_250()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3_18() {
+ if (jj_3R_72()) {
+ return true;
+ }
+ if (jj_3R_73()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_73() {
+ if (jj_3R_121()) {
+ return true;
+ }
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_18()) {
+ jj_scanpos = xsp;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_288() {
+ if (jj_scan_token(IF)) {
+ return true;
+ }
+ if (jj_scan_token(LPAREN)) {
+ return true;
+ }
+ if (jj_3R_73()) {
+ return true;
+ }
+ if (jj_scan_token(RPAREN)) {
+ return true;
+ }
+ if (jj_3R_250()) {
+ return true;
+ }
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_364()) {
+ jj_scanpos = xsp;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_134() {
+ if (jj_scan_token(COMMA)) {
+ return true;
+ }
+ if (jj_3R_133()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_384() {
+ if (jj_scan_token(_DEFAULT)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_383() {
+ if (jj_scan_token(CASE)) {
+ return true;
+ }
+ if (jj_3R_73()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_374() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_383()) {
+ jj_scanpos = xsp;
+ if (jj_3R_384()) {
+ return true;
+ }
+ }
+ if (jj_scan_token(COLON)) {
+ return true;
+ }
+ if (jj_3R_144()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_332() {
+ if (jj_3R_90()) {
+ return true;
+ }
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_344()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3_17() {
+ if (jj_scan_token(DOT)) {
+ return true;
+ }
+ if (jj_scan_token(IDENTIFIER)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_363() {
+ if (jj_3R_374()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_90() {
+ if (jj_scan_token(IDENTIFIER)) {
+ return true;
+ }
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_17()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_287() {
+ if (jj_scan_token(SWITCH)) {
+ return true;
+ }
+ if (jj_scan_token(LPAREN)) {
+ return true;
+ }
+ if (jj_3R_73()) {
+ return true;
+ }
+ if (jj_scan_token(RPAREN)) {
+ return true;
+ }
+ if (jj_scan_token(LBRACE)) {
+ return true;
+ }
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_363()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ if (jj_scan_token(RBRACE)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_130() {
+ if (jj_3R_63()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_129() {
+ if (jj_scan_token(VOID)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_382() {
+ if (jj_3R_72()) {
+ return true;
+ }
+ if (jj_3R_73()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_381() {
+ if (jj_scan_token(DECR)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_380() {
+ if (jj_scan_token(INCR)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_373() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_380()) {
+ jj_scanpos = xsp;
+ if (jj_3R_381()) {
+ jj_scanpos = xsp;
+ if (jj_3R_382()) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_82() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_129()) {
+ jj_scanpos = xsp;
+ if (jj_3R_130()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_302() {
+ if (jj_3R_238()) {
+ return true;
+ }
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_373()) {
+ jj_scanpos = xsp;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_301() {
+ if (jj_3R_218()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_300() {
+ if (jj_3R_217()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_181() {
+ if (jj_scan_token(DOUBLE)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_180() {
+ if (jj_scan_token(FLOAT)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_179() {
+ if (jj_scan_token(LONG)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_286() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_300()) {
+ jj_scanpos = xsp;
+ if (jj_3R_301()) {
+ jj_scanpos = xsp;
+ if (jj_3R_302()) {
+ return true;
+ }
+ }
+ }
+ if (jj_scan_token(SEMICOLON)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_178() {
+ if (jj_scan_token(INT)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_177() {
+ if (jj_scan_token(SHORT)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_176() {
+ if (jj_scan_token(BYTE)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_157() {
+ if (jj_scan_token(COMMA)) {
+ return true;
+ }
+ if (jj_3R_108()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_254() {
+ if (jj_scan_token(SUPER)) {
+ return true;
+ }
+ if (jj_3R_70()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_175() {
+ if (jj_scan_token(CHAR)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_362() {
+ if (jj_scan_token(COLON)) {
+ return true;
+ }
+ if (jj_3R_73()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_236() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_253()) {
+ jj_scanpos = xsp;
+ if (jj_3R_254()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_253() {
+ if (jj_scan_token(EXTENDS)) {
+ return true;
+ }
+ if (jj_3R_70()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_174() {
+ if (jj_scan_token(BOOLEAN)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_143() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_174()) {
+ jj_scanpos = xsp;
+ if (jj_3R_175()) {
+ jj_scanpos = xsp;
+ if (jj_3R_176()) {
+ jj_scanpos = xsp;
+ if (jj_3R_177()) {
+ jj_scanpos = xsp;
+ if (jj_3R_178()) {
+ jj_scanpos = xsp;
+ if (jj_3R_179()) {
+ jj_scanpos = xsp;
+ if (jj_3R_180()) {
+ jj_scanpos = xsp;
+ if (jj_3R_181()) {
+ return true;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_285() {
+ if (jj_scan_token(SEMICOLON)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_189() {
+ if (jj_scan_token(HOOK)) {
+ return true;
+ }
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_236()) {
+ jj_scanpos = xsp;
+ }
+ return false;
+ }
+
+ private boolean jj_3_37() {
+ if (jj_3R_89()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_89() {
+ if (jj_3R_88()) {
+ return true;
+ }
+ if (jj_3R_63()) {
+ return true;
+ }
+ if (jj_3R_133()) {
+ return true;
+ }
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_134()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3_36() {
+ if (jj_3R_88()) {
+ return true;
+ }
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(20)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(40)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_231() {
+ if (jj_3R_250()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_159() {
+ if (jj_3R_189()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_230() {
+ if (jj_3R_89()) {
+ return true;
+ }
+ if (jj_scan_token(SEMICOLON)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_158() {
+ if (jj_3R_70()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_319() {
+ if (jj_scan_token(THROWS)) {
+ return true;
+ }
+ if (jj_3R_332()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_108() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_158()) {
+ jj_scanpos = xsp;
+ if (jj_3R_159()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_229() {
+ if (jj_3R_88()) {
+ return true;
+ }
+ if (jj_3R_243()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3_13() {
+ if (jj_scan_token(LBRACKET)) {
+ return true;
+ }
+ if (jj_scan_token(RBRACKET)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_71() {
+ if (jj_scan_token(LT)) {
+ return true;
+ }
+ if (jj_3R_108()) {
+ return true;
+ }
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_157()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ if (jj_scan_token(GT)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_202() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_229()) {
+ jj_scanpos = xsp;
+ if (jj_3R_230()) {
+ jj_scanpos = xsp;
+ if (jj_3R_231()) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3_16() {
+ if (jj_3R_71()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3_15() {
+ if (jj_scan_token(DOT)) {
+ return true;
+ }
+ if (jj_scan_token(IDENTIFIER)) {
+ return true;
+ }
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_16()) {
+ jj_scanpos = xsp;
+ }
+ return false;
+ }
+
+ private boolean jj_3_12() {
+ if (jj_scan_token(LBRACKET)) {
+ return true;
+ }
+ if (jj_scan_token(RBRACKET)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3_14() {
+ if (jj_3R_71()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3_33() {
+ if (jj_scan_token(LBRACKET)) {
+ return true;
+ }
+ if (jj_scan_token(RBRACKET)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_85() {
+ if (jj_scan_token(IDENTIFIER)) {
+ return true;
+ }
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_14()) {
+ jj_scanpos = xsp;
+ }
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_15()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_99() {
+ if (jj_scan_token(LBRACE)) {
+ return true;
+ }
+ if (jj_3R_144()) {
+ return true;
+ }
+ if (jj_scan_token(RBRACE)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_87() {
+ if (jj_scan_token(IDENTIFIER)) {
+ return true;
+ }
+ if (jj_scan_token(COLON)) {
+ return true;
+ }
+ if (jj_3R_250()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_107() {
+ if (jj_3R_85()) {
+ return true;
+ }
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_13()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_106() {
+ if (jj_3R_143()) {
+ return true;
+ }
+ Token xsp;
+ if (jj_3_12()) {
+ return true;
+ }
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_12()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_70() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_106()) {
+ jj_scanpos = xsp;
+ if (jj_3R_107()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_284() {
+ if (jj_scan_token(ASSERT)) {
+ return true;
+ }
+ if (jj_3R_73()) {
+ return true;
+ }
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_362()) {
+ jj_scanpos = xsp;
+ }
+ if (jj_scan_token(SEMICOLON)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_97() {
+ if (jj_3R_143()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_280() {
+ if (jj_3R_297()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3_11() {
+ if (jj_3R_70()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_279() {
+ if (jj_3R_296()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_63() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_11()) {
+ jj_scanpos = xsp;
+ if (jj_3R_97()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_278() {
+ if (jj_3R_295()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_277() {
+ if (jj_3R_294()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_276() {
+ if (jj_3R_293()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_275() {
+ if (jj_3R_292()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_274() {
+ if (jj_3R_291()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_273() {
+ if (jj_3R_290()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_98() {
+ if (jj_scan_token(STATIC)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_272() {
+ if (jj_3R_289()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_65() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_98()) {
+ jj_scanpos = xsp;
+ }
+ if (jj_3R_99()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_271() {
+ if (jj_3R_288()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_270() {
+ if (jj_3R_287()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_182() {
+ if (jj_3R_202()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_269() {
+ if (jj_3R_286()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_144() {
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_182()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_268() {
+ if (jj_3R_285()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3_9() {
+ if (jj_3R_68()) {
+ return true;
+ }
+ if (jj_scan_token(DOT)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_267() {
+ if (jj_3R_99()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_266() {
+ if (jj_3R_284()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3_35() {
+ if (jj_3R_87()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_69() {
+ if (jj_3R_71()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_149() {
+ if (jj_3R_71()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3_7() {
+ if (jj_scan_token(COMMA)) {
+ return true;
+ }
+ if (jj_3R_66()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3_10() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_69()) {
+ jj_scanpos = xsp;
+ }
+ if (jj_scan_token(THIS)) {
+ return true;
+ }
+ if (jj_scan_token(LPAREN)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_148() {
+ if (jj_3R_68()) {
+ return true;
+ }
+ if (jj_scan_token(DOT)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_103() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_148()) {
+ jj_scanpos = xsp;
+ }
+ xsp = jj_scanpos;
+ if (jj_3R_149()) {
+ jj_scanpos = xsp;
+ }
+ if (jj_scan_token(SUPER)) {
+ return true;
+ }
+ if (jj_3R_147()) {
+ return true;
+ }
+ if (jj_scan_token(SEMICOLON)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_250() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_35()) {
+ jj_scanpos = xsp;
+ if (jj_3R_266()) {
+ jj_scanpos = xsp;
+ if (jj_3R_267()) {
+ jj_scanpos = xsp;
+ if (jj_3R_268()) {
+ jj_scanpos = xsp;
+ if (jj_3R_269()) {
+ jj_scanpos = xsp;
+ if (jj_3R_270()) {
+ jj_scanpos = xsp;
+ if (jj_3R_271()) {
+ jj_scanpos = xsp;
+ if (jj_3R_272()) {
+ jj_scanpos = xsp;
+ if (jj_3R_273()) {
+ jj_scanpos = xsp;
+ if (jj_3R_274()) {
+ jj_scanpos = xsp;
+ if (jj_3R_275()) {
+ jj_scanpos = xsp;
+ if (jj_3R_276()) {
+ jj_scanpos = xsp;
+ if (jj_3R_277()) {
+ jj_scanpos = xsp;
+ if (jj_3R_278()) {
+ jj_scanpos = xsp;
+ if (jj_3R_279()) {
+ jj_scanpos = xsp;
+ if (jj_3R_280()) {
+ return true;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_146() {
+ if (jj_3R_71()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_102() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_146()) {
+ jj_scanpos = xsp;
+ }
+ if (jj_scan_token(THIS)) {
+ return true;
+ }
+ if (jj_3R_147()) {
+ return true;
+ }
+ if (jj_scan_token(SEMICOLON)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_166() {
+ if (jj_scan_token(LBRACKET)) {
+ return true;
+ }
+ if (jj_scan_token(RBRACKET)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_132() {
+ Token xsp;
+ if (jj_3R_166()) {
+ return true;
+ }
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_166()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ if (jj_3R_145()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3_32() {
+ if (jj_scan_token(LBRACKET)) {
+ return true;
+ }
+ if (jj_3R_73()) {
+ return true;
+ }
+ if (jj_scan_token(RBRACKET)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3_34() {
+ Token xsp;
+ if (jj_3_32()) {
+ return true;
+ }
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_32()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_33()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3_30() {
+ if (jj_3R_84()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_67() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_102()) {
+ jj_scanpos = xsp;
+ if (jj_3R_103()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_86() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_34()) {
+ jj_scanpos = xsp;
+ if (jj_3R_132()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_322() {
+ if (jj_scan_token(LBRACKET)) {
+ return true;
+ }
+ if (jj_scan_token(RBRACKET)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_343() {
+ if (jj_scan_token(COMMA)) {
+ return true;
+ }
+ if (jj_3R_342()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3_8() {
+ if (jj_3R_67()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_348() {
+ if (jj_scan_token(ELLIPSIS)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_235() {
+ if (jj_3R_71()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_320() {
+ if (jj_3R_67()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_213() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_235()) {
+ jj_scanpos = xsp;
+ }
+ if (jj_3R_85()) {
+ return true;
+ }
+ if (jj_3R_147()) {
+ return true;
+ }
+ xsp = jj_scanpos;
+ if (jj_3_30()) {
+ jj_scanpos = xsp;
+ }
+ return false;
+ }
+
+ private boolean jj_3_31() {
+ if (jj_3R_85()) {
+ return true;
+ }
+ if (jj_3R_86()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_262() {
+ if (jj_3R_96()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_232() {
+ if (jj_scan_token(COMMA)) {
+ return true;
+ }
+ if (jj_3R_73()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_246() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_262()) {
+ jj_scanpos = xsp;
+ }
+ if (jj_scan_token(IDENTIFIER)) {
+ return true;
+ }
+ if (jj_3R_318()) {
+ return true;
+ }
+ xsp = jj_scanpos;
+ if (jj_3R_319()) {
+ jj_scanpos = xsp;
+ }
+ if (jj_scan_token(LBRACE)) {
+ return true;
+ }
+ xsp = jj_scanpos;
+ if (jj_3R_320()) {
+ jj_scanpos = xsp;
+ }
+ if (jj_3R_144()) {
+ return true;
+ }
+ if (jj_scan_token(RBRACE)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_212() {
+ if (jj_3R_85()) {
+ return true;
+ }
+ if (jj_3R_86()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_200() {
+ if (jj_scan_token(LBRACKET)) {
+ return true;
+ }
+ if (jj_scan_token(RBRACKET)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_211() {
+ if (jj_3R_143()) {
+ return true;
+ }
+ if (jj_3R_86()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_199() {
+ if (jj_3R_66()) {
+ return true;
+ }
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_7()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_187() {
+ if (jj_scan_token(NEW)) {
+ return true;
+ }
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_211()) {
+ jj_scanpos = xsp;
+ if (jj_3R_212()) {
+ jj_scanpos = xsp;
+ if (jj_3R_213()) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_342() {
+ if (jj_3R_88()) {
+ return true;
+ }
+ if (jj_3R_63()) {
+ return true;
+ }
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_348()) {
+ jj_scanpos = xsp;
+ }
+ if (jj_3R_167()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_331() {
+ if (jj_3R_342()) {
+ return true;
+ }
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_343()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_318() {
+ if (jj_scan_token(LPAREN)) {
+ return true;
+ }
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_331()) {
+ jj_scanpos = xsp;
+ }
+ if (jj_scan_token(RPAREN)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_203() {
+ if (jj_3R_73()) {
+ return true;
+ }
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_232()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_183() {
+ if (jj_3R_203()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_324() {
+ if (jj_3R_99()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_323() {
+ if (jj_scan_token(THROWS)) {
+ return true;
+ }
+ if (jj_3R_332()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_147() {
+ if (jj_scan_token(LPAREN)) {
+ return true;
+ }
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_183()) {
+ jj_scanpos = xsp;
+ }
+ if (jj_scan_token(RPAREN)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_263() {
+ if (jj_3R_96()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_248() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_263()) {
+ jj_scanpos = xsp;
+ }
+ if (jj_3R_82()) {
+ return true;
+ }
+ if (jj_scan_token(IDENTIFIER)) {
+ return true;
+ }
+ if (jj_3R_318()) {
+ return true;
+ }
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_322()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ xsp = jj_scanpos;
+ if (jj_3R_323()) {
+ jj_scanpos = xsp;
+ }
+ xsp = jj_scanpos;
+ if (jj_3R_324()) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(86)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_234() {
+ if (jj_scan_token(NULL)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_252() {
+ if (jj_scan_token(FALSE)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_251() {
+ if (jj_scan_token(TRUE)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_233() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_251()) {
+ jj_scanpos = xsp;
+ if (jj_3R_252()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_210() {
+ if (jj_3R_234()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_145() {
+ if (jj_scan_token(LBRACE)) {
+ return true;
+ }
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_199()) {
+ jj_scanpos = xsp;
+ }
+ xsp = jj_scanpos;
+ if (jj_scan_token(87)) {
+ jj_scanpos = xsp;
+ }
+ if (jj_scan_token(RBRACE)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_209() {
+ if (jj_3R_233()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_101() {
+ if (jj_3R_73()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_208() {
+ if (jj_scan_token(STRING_LITERAL)) {
+ return true;
+ }
+ return false;
+ }
+
+ /** Generated Token Manager. */
+ public ASTParserTokenManager token_source;
+
+ JavaCharStream jj_input_stream;
+
+ /** Current token. */
+ public Token token;
+
+ /** Next token. */
+ public Token jj_nt;
+
+ private int jj_ntk;
+
+ private Token jj_scanpos, jj_lastpos;
+
+ private int jj_la;
+
+ /** Whether we are looking ahead. */
+ private boolean jj_lookingAhead = false;
+
+ private boolean jj_semLA;
+
+ private int jj_gen;
+
+ final private int[] jj_la1 = new int[134];
+
+ static private int[] jj_la1_0;
+
+ static private int[] jj_la1_1;
+
+ static private int[] jj_la1_2;
+
+ static private int[] jj_la1_3;
+
+ static private int[] jj_la1_4;
+ static {
+ jj_la1_init_0();
+ jj_la1_init_1();
+ jj_la1_init_2();
+ jj_la1_init_3();
+ jj_la1_init_4();
+ }
+
+ private static void jj_la1_init_0() {
+ jj_la1_0 = new int[] { 0x0, 0x48101000, 0x1, 0x0, 0x0, 0x0, 0x40001000, 0x8100000, 0x48101000, 0x100000, 0x0, 0x10000000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4a195000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10000000, 0x0, 0x4a195000, 0x8100000, 0x2094000, 0x4a195000,
+ 0x0, 0x0, 0x0, 0x22094000, 0x22094000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x42095000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22094000, 0x6359f000, 0x0, 0x2094000, 0x2094000, 0x0, 0x2094000, 0x10000000, 0x10000000, 0x2094000, 0x2094000, 0x0, 0x0, 0x0, 0x0, 0x0,
+ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22094000, 0x0, 0x0, 0x22094000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20000000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20000000, 0x20000000, 0x22094000, 0x0, 0x0, 0x2094000, 0x0, 0x0, 0x0,
+ 0x2349e000, 0x0, 0x2349e000, 0x0, 0x0, 0x0, 0x22094000, 0x820000, 0x820000, 0x4000000, 0x62095000, 0x22094000, 0x22094000, 0x62095000, 0x22094000, 0x0, 0x0, 0x0, 0x22094000, 0x40000, 0x80000000, 0x80040000, 0x0, 0x0, 0x0, 0x22094000,
+ 0x22094000, 0x0, 0x4a195000, 0xa194000, 0x4a195000, 0x800000, };
+ }
+
+ private static void jj_la1_init_1() {
+ jj_la1_1 = new int[] { 0x20, 0x8899c500, 0x0, 0x0, 0x80000, 0x0, 0x8899c400, 0x100, 0x8899c500, 0x100, 0x0, 0x0, 0x10, 0x0, 0x0, 0x10, 0x0, 0x0, 0xc89dc781, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc89dc781, 0x100, 0x40040281, 0xc89dc781, 0x0, 0x0, 0x0,
+ 0x51241a81, 0x51241a81, 0x0, 0x0, 0x0, 0x4000000, 0x0, 0x0, 0x889dc681, 0x0, 0x0, 0x4000000, 0x0, 0x0, 0x51241a81, 0xfbffdf8b, 0x80000, 0x40281, 0x40281, 0x0, 0x40281, 0x200000, 0x200000, 0x40281, 0x40040281, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+ 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x51241a81, 0x0, 0x0, 0x51241a81, 0x0, 0x0, 0x0, 0x0, 0x0, 0x11201800, 0x0, 0x0, 0x0, 0x0, 0x1000800, 0x0, 0x10001000, 0x10000000, 0x51241a81, 0x0, 0x0, 0x40281, 0x0, 0x0, 0x0,
+ 0x73e61a8b, 0x0, 0x73e61a8b, 0x0, 0x0, 0x0, 0x51241a81, 0x0, 0x0, 0x0, 0xd9bdde81, 0x51241a81, 0x51241a81, 0xd9bdde81, 0x51241a81, 0x0, 0x0, 0x0, 0x51241a81, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x51241a81, 0x51241a81, 0x0, 0x889dc781, 0x40381,
+ 0x889dc781, 0x0, };
+ }
+
+ private static void jj_la1_init_2() {
+ jj_la1_2 = new int[] { 0x0, 0x2400000, 0x0, 0x2000000, 0x0, 0x1000000, 0x2000000, 0x2000000, 0x2400000, 0x0, 0x8000000, 0x0, 0x0, 0x800000, 0x800000, 0x0, 0x2002000, 0x800000, 0xa442000, 0x400000, 0x2000000, 0x10000, 0x40000, 0x800000, 0x0, 0x0,
+ 0xa442000, 0x2000000, 0x8002000, 0xa402000, 0x800000, 0x4000000, 0x100000, 0x30053846, 0x30053846, 0x800000, 0x8000000, 0x100000, 0x0, 0x440000, 0x800000, 0x2002000, 0x0, 0x8000000, 0x0, 0x8000000, 0x8000000, 0x8013846, 0x2453847, 0x0, 0x0,
+ 0x2000, 0x800000, 0x40002000, 0x0, 0x0, 0x0, 0x2000, 0x800000, 0x4000000, 0x40000000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8000000, 0x8000000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x30013846, 0x30000000, 0x30000000, 0x13846, 0x10000, 0x0,
+ 0x8000000, 0x10000, 0x10000, 0x11846, 0x2000, 0x1000000, 0x8000000, 0x10000, 0x0, 0x1100000, 0x1846, 0x0, 0x30013846, 0x800000, 0x8000000, 0x0, 0x8002000, 0x100000, 0x100000, 0x453847, 0x80000000, 0x453847, 0x800000, 0x4000000, 0x4000000,
+ 0x13846, 0x0, 0x0, 0x0, 0x32013846, 0x30013846, 0x30013846, 0x32413846, 0x30013846, 0x800000, 0x2000, 0x2000, 0x30013846, 0x0, 0x0, 0x0, 0x2000000, 0x2000, 0x800000, 0x32053846, 0x32053846, 0x800000, 0x2402000, 0x2002000, 0x2402000, 0x0, };
+ }
+
+ private static void jj_la1_init_3() {
+ jj_la1_3 = new int[] { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c0, 0x3c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10000000,
+ 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xffe0000, 0x0, 0x10, 0x20, 0x2000, 0x4000, 0x1000, 0x9, 0x9, 0x0, 0x80000006, 0x80000006, 0x10000, 0x300, 0x300, 0x8c00, 0x8c00, 0x300, 0x3c0, 0x0, 0x0, 0x0,
+ 0x0, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x0, 0xc0, 0x0, 0xffe00c0, 0xffe00c0, 0xc0, 0x0, 0x0, 0x0, 0x3c0, 0x3c0, 0x3c0, 0x3c0, 0x3c0, 0x0, 0x0, 0x0, 0x3c0, 0x0, 0x0,
+ 0x0, 0x0, 0x0, 0x0, 0x3c0, 0x3c0, 0x0, 0x0, 0x0, 0x0, 0x0, };
+ }
+
+ private static void jj_la1_init_4() {
+ jj_la1_4 = new int[] { 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, };
+ }
+
+ final private JJCalls[] jj_2_rtns = new JJCalls[43];
+
+ private boolean jj_rescan = false;
+
+ private int jj_gc = 0;
+
+ /** Constructor with InputStream. */
+ public ASTParser(java.io.InputStream stream) {
+ this(stream, null);
+ }
+
+ /** Constructor with InputStream and supplied encoding */
+ public ASTParser(java.io.InputStream stream, String encoding) {
+ try {
+ jj_input_stream = new JavaCharStream(stream, encoding, 1, 1);
+ } catch (java.io.UnsupportedEncodingException e) {
+ throw new RuntimeException(e);
+ }
+ token_source = new ASTParserTokenManager(jj_input_stream);
+ token = new Token();
+ jj_ntk = -1;
+ jj_gen = 0;
+ for (int i = 0; i < 134; i++) {
+ jj_la1[i] = -1;
+ }
+ for (int i = 0; i < jj_2_rtns.length; i++) {
+ jj_2_rtns[i] = new JJCalls();
+ }
+ }
+
+ /** Reinitialise. */
+ public void ReInit(java.io.InputStream stream) {
+ ReInit(stream, null);
+ }
+
+ /** Reinitialise. */
+ public void ReInit(java.io.InputStream stream, String encoding) {
+ try {
+ jj_input_stream.ReInit(stream, encoding, 1, 1);
+ } catch (java.io.UnsupportedEncodingException e) {
+ throw new RuntimeException(e);
+ }
+ token_source.ReInit(jj_input_stream);
+ token = new Token();
+ jj_ntk = -1;
+ jj_gen = 0;
+ for (int i = 0; i < 134; i++) {
+ jj_la1[i] = -1;
+ }
+ for (int i = 0; i < jj_2_rtns.length; i++) {
+ jj_2_rtns[i] = new JJCalls();
+ }
+ }
+
+ /** Constructor. */
+ public ASTParser(java.io.Reader stream) {
+ jj_input_stream = new JavaCharStream(stream, 1, 1);
+ token_source = new ASTParserTokenManager(jj_input_stream);
+ token = new Token();
+ jj_ntk = -1;
+ jj_gen = 0;
+ for (int i = 0; i < 134; i++) {
+ jj_la1[i] = -1;
+ }
+ for (int i = 0; i < jj_2_rtns.length; i++) {
+ jj_2_rtns[i] = new JJCalls();
+ }
+ }
+
+ /** Reinitialise. */
+ public void ReInit(java.io.Reader stream) {
+ jj_input_stream.ReInit(stream, 1, 1);
+ token_source.ReInit(jj_input_stream);
+ token = new Token();
+ jj_ntk = -1;
+ jj_gen = 0;
+ for (int i = 0; i < 134; i++) {
+ jj_la1[i] = -1;
+ }
+ for (int i = 0; i < jj_2_rtns.length; i++) {
+ jj_2_rtns[i] = new JJCalls();
+ }
+ }
+
+ /** Constructor with generated Token Manager. */
+ public ASTParser(ASTParserTokenManager tm) {
+ token_source = tm;
+ token = new Token();
+ jj_ntk = -1;
+ jj_gen = 0;
+ for (int i = 0; i < 134; i++) {
+ jj_la1[i] = -1;
+ }
+ for (int i = 0; i < jj_2_rtns.length; i++) {
+ jj_2_rtns[i] = new JJCalls();
+ }
+ }
+
+ /** Reinitialise. */
+ public void ReInit(ASTParserTokenManager tm) {
+ token_source = tm;
+ token = new Token();
+ jj_ntk = -1;
+ jj_gen = 0;
+ for (int i = 0; i < 134; i++) {
+ jj_la1[i] = -1;
+ }
+ for (int i = 0; i < jj_2_rtns.length; i++) {
+ jj_2_rtns[i] = new JJCalls();
+ }
+ }
+
+ private Token jj_consume_token(int kind) throws ParseException {
+ Token oldToken;
+ if ((oldToken = token).next != null) {
+ token = token.next;
+ } else {
+ token = token.next = token_source.getNextToken();
+ }
+ jj_ntk = -1;
+ if (token.kind == kind) {
+ jj_gen++;
+ if (++jj_gc > 100) {
+ jj_gc = 0;
+ for (int i = 0; i < jj_2_rtns.length; i++) {
+ JJCalls c = jj_2_rtns[i];
+ while (c != null) {
+ if (c.gen < jj_gen) {
+ c.first = null;
+ }
+ c = c.next;
+ }
+ }
+ }
+ return token;
+ }
+ token = oldToken;
+ jj_kind = kind;
+ throw generateParseException();
+ }
+
+ static private final class LookaheadSuccess extends java.lang.Error {
+ }
+
+ final private LookaheadSuccess jj_ls = new LookaheadSuccess();
+
+ private boolean jj_scan_token(int kind) {
+ if (jj_scanpos == jj_lastpos) {
+ jj_la--;
+ if (jj_scanpos.next == null) {
+ jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
+ } else {
+ jj_lastpos = jj_scanpos = jj_scanpos.next;
+ }
+ } else {
+ jj_scanpos = jj_scanpos.next;
+ }
+ if (jj_rescan) {
+ int i = 0;
+ Token tok = token;
+ while (tok != null && tok != jj_scanpos) {
+ i++;
+ tok = tok.next;
+ }
+ if (tok != null) {
+ jj_add_error_token(kind, i);
+ }
+ }
+ if (jj_scanpos.kind != kind) {
+ return true;
+ }
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) {
+ throw jj_ls;
+ }
+ return false;
+ }
+
+
+ /** Get the next Token. */
+ final public Token getNextToken() {
+ if (token.next != null) {
+ token = token.next;
+ } else {
+ token = token.next = token_source.getNextToken();
+ }
+ jj_ntk = -1;
+ jj_gen++;
+ return token;
+ }
+
+ /** Get the specific Token. */
+ final public Token getToken(int index) {
+ Token t = jj_lookingAhead ? jj_scanpos : token;
+ for (int i = 0; i < index; i++) {
+ if (t.next != null) {
+ t = t.next;
+ } else {
+ t = t.next = token_source.getNextToken();
+ }
+ }
+ return t;
+ }
+
+ private int jj_ntk() {
+ if ((jj_nt = token.next) == null) {
+ return (jj_ntk = (token.next = token_source.getNextToken()).kind);
+ } else {
+ return (jj_ntk = jj_nt.kind);
+ }
+ }
+
+ private java.util.List<int[]> jj_expentries = new java.util.ArrayList<int[]>();
+
+ private int[] jj_expentry;
+
+ private int jj_kind = -1;
+
+ private int[] jj_lasttokens = new int[100];
+
+ private int jj_endpos;
+
+ private void jj_add_error_token(int kind, int pos) {
+ if (pos >= 100) {
+ return;
+ }
+ if (pos == jj_endpos + 1) {
+ jj_lasttokens[jj_endpos++] = kind;
+ } else if (jj_endpos != 0) {
+ jj_expentry = new int[jj_endpos];
+ for (int i = 0; i < jj_endpos; i++) {
+ jj_expentry[i] = jj_lasttokens[i];
+ }
+ jj_entries_loop: for (java.util.Iterator it = jj_expentries.iterator(); it.hasNext();) {
+ int[] oldentry = (int[]) (it.next());
+ if (oldentry.length == jj_expentry.length) {
+ for (int i = 0; i < jj_expentry.length; i++) {
+ if (oldentry[i] != jj_expentry[i]) {
+ continue jj_entries_loop;
+ }
+ }
+ jj_expentries.add(jj_expentry);
+ break jj_entries_loop;
+ }
+ }
+ if (pos != 0) {
+ jj_lasttokens[(jj_endpos = pos) - 1] = kind;
+ }
+ }
+ }
+
+ /** Generate ParseException. */
+ public ParseException generateParseException() {
+ jj_expentries.clear();
+ boolean[] la1tokens = new boolean[129];
+ if (jj_kind >= 0) {
+ la1tokens[jj_kind] = true;
+ jj_kind = -1;
+ }
+ for (int i = 0; i < 134; i++) {
+ if (jj_la1[i] == jj_gen) {
+ for (int j = 0; j < 32; j++) {
+ if ((jj_la1_0[i] & (1 << j)) != 0) {
+ la1tokens[j] = true;
+ }
+ if ((jj_la1_1[i] & (1 << j)) != 0) {
+ la1tokens[32 + j] = true;
+ }
+ if ((jj_la1_2[i] & (1 << j)) != 0) {
+ la1tokens[64 + j] = true;
+ }
+ if ((jj_la1_3[i] & (1 << j)) != 0) {
+ la1tokens[96 + j] = true;
+ }
+ if ((jj_la1_4[i] & (1 << j)) != 0) {
+ la1tokens[128 + j] = true;
+ }
+ }
+ }
+ }
+ for (int i = 0; i < 129; i++) {
+ if (la1tokens[i]) {
+ jj_expentry = new int[1];
+ jj_expentry[0] = i;
+ jj_expentries.add(jj_expentry);
+ }
+ }
+ jj_endpos = 0;
+ jj_rescan_token();
+ jj_add_error_token(0, 0);
+ int[][] exptokseq = new int[jj_expentries.size()][];
+ for (int i = 0; i < jj_expentries.size(); i++) {
+ exptokseq[i] = jj_expentries.get(i);
+ }
+ return new ParseException(token, exptokseq, tokenImage);
+ }
+
+ /** Enable tracing. */
+ final public void enable_tracing() {
+ }
+
+ /** Disable tracing. */
+ final public void disable_tracing() {
+ }
+
+ private void jj_rescan_token() {
+ jj_rescan = true;
+ for (int i = 0; i < 43; i++) {
+ try {
+ JJCalls p = jj_2_rtns[i];
+ do {
+ if (p.gen > jj_gen) {
+ jj_la = p.arg;
+ jj_lastpos = jj_scanpos = p.first;
+ switch (i) {
+ case 0:
+ jj_3_1();
+ break;
+ case 1:
+ jj_3_2();
+ break;
+ case 2:
+ jj_3_3();
+ break;
+ case 3:
+ jj_3_4();
+ break;
+ case 4:
+ jj_3_5();
+ break;
+ case 5:
+ jj_3_6();
+ break;
+ case 6:
+ jj_3_7();
+ break;
+ case 7:
+ jj_3_8();
+ break;
+ case 8:
+ jj_3_9();
+ break;
+ case 9:
+ jj_3_10();
+ break;
+ case 10:
+ jj_3_11();
+ break;
+ case 11:
+ jj_3_12();
+ break;
+ case 12:
+ jj_3_13();
+ break;
+ case 13:
+ jj_3_14();
+ break;
+ case 14:
+ jj_3_15();
+ break;
+ case 15:
+ jj_3_16();
+ break;
+ case 16:
+ jj_3_17();
+ break;
+ case 17:
+ jj_3_18();
+ break;
+ case 18:
+ jj_3_19();
+ break;
+ case 19:
+ jj_3_20();
+ break;
+ case 20:
+ jj_3_21();
+ break;
+ case 21:
+ jj_3_22();
+ break;
+ case 22:
+ jj_3_23();
+ break;
+ case 23:
+ jj_3_24();
+ break;
+ case 24:
+ jj_3_25();
+ break;
+ case 25:
+ jj_3_26();
+ break;
+ case 26:
+ jj_3_27();
+ break;
+ case 27:
+ jj_3_28();
+ break;
+ case 28:
+ jj_3_29();
+ break;
+ case 29:
+ jj_3_30();
+ break;
+ case 30:
+ jj_3_31();
+ break;
+ case 31:
+ jj_3_32();
+ break;
+ case 32:
+ jj_3_33();
+ break;
+ case 33:
+ jj_3_34();
+ break;
+ case 34:
+ jj_3_35();
+ break;
+ case 35:
+ jj_3_36();
+ break;
+ case 36:
+ jj_3_37();
+ break;
+ case 37:
+ jj_3_38();
+ break;
+ case 38:
+ jj_3_39();
+ break;
+ case 39:
+ jj_3_40();
+ break;
+ case 40:
+ jj_3_41();
+ break;
+ case 41:
+ jj_3_42();
+ break;
+ case 42:
+ jj_3_43();
+ break;
+ }
+ }
+ p = p.next;
+ } while (p != null);
+ } catch (LookaheadSuccess ls) {
+ }
+ }
+ jj_rescan = false;
+ }
+
+ private void jj_save(int index, int xla) {
+ JJCalls p = jj_2_rtns[index];
+ while (p.gen > jj_gen) {
+ if (p.next == null) {
+ p = p.next = new JJCalls();
+ break;
+ }
+ p = p.next;
+ }
+ p.gen = jj_gen + xla - jj_la;
+ p.first = token;
+ p.arg = xla;
+ }
+
+ static final class JJCalls {
+
+ int gen;
+
+ Token first;
+
+ int arg;
+
+ JJCalls next;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ASTParserConstants.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ASTParserConstants.java
new file mode 100644
index 00000000000..c17a56d91e0
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ASTParserConstants.java
@@ -0,0 +1,531 @@
+/* Generated By:JavaCC: Do not edit this line. ASTParserConstants.java */
+/*
+ * Copyright (C) 2008 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+package japa.parser;
+
+
+/**
+ * Token literal values and constants.
+ * Generated by org.javacc.parser.OtherFilesGen#start()
+ */
+public interface ASTParserConstants {
+
+ /** End of File. */
+ int EOF = 0;
+
+ /** RegularExpression Id. */
+ int SINGLE_LINE_COMMENT = 6;
+
+ /** RegularExpression Id. */
+ int JAVA_DOC_COMMENT = 9;
+
+ /** RegularExpression Id. */
+ int MULTI_LINE_COMMENT = 10;
+
+ /** RegularExpression Id. */
+ int ABSTRACT = 12;
+
+ /** RegularExpression Id. */
+ int ASSERT = 13;
+
+ /** RegularExpression Id. */
+ int BOOLEAN = 14;
+
+ /** RegularExpression Id. */
+ int BREAK = 15;
+
+ /** RegularExpression Id. */
+ int BYTE = 16;
+
+ /** RegularExpression Id. */
+ int CASE = 17;
+
+ /** RegularExpression Id. */
+ int CATCH = 18;
+
+ /** RegularExpression Id. */
+ int CHAR = 19;
+
+ /** RegularExpression Id. */
+ int CLASS = 20;
+
+ /** RegularExpression Id. */
+ int CONST = 21;
+
+ /** RegularExpression Id. */
+ int CONTINUE = 22;
+
+ /** RegularExpression Id. */
+ int _DEFAULT = 23;
+
+ /** RegularExpression Id. */
+ int DO = 24;
+
+ /** RegularExpression Id. */
+ int DOUBLE = 25;
+
+ /** RegularExpression Id. */
+ int ELSE = 26;
+
+ /** RegularExpression Id. */
+ int ENUM = 27;
+
+ /** RegularExpression Id. */
+ int EXTENDS = 28;
+
+ /** RegularExpression Id. */
+ int FALSE = 29;
+
+ /** RegularExpression Id. */
+ int FINAL = 30;
+
+ /** RegularExpression Id. */
+ int FINALLY = 31;
+
+ /** RegularExpression Id. */
+ int FLOAT = 32;
+
+ /** RegularExpression Id. */
+ int FOR = 33;
+
+ /** RegularExpression Id. */
+ int GOTO = 34;
+
+ /** RegularExpression Id. */
+ int IF = 35;
+
+ /** RegularExpression Id. */
+ int IMPLEMENTS = 36;
+
+ /** RegularExpression Id. */
+ int IMPORT = 37;
+
+ /** RegularExpression Id. */
+ int INSTANCEOF = 38;
+
+ /** RegularExpression Id. */
+ int INT = 39;
+
+ /** RegularExpression Id. */
+ int INTERFACE = 40;
+
+ /** RegularExpression Id. */
+ int LONG = 41;
+
+ /** RegularExpression Id. */
+ int NATIVE = 42;
+
+ /** RegularExpression Id. */
+ int NEW = 43;
+
+ /** RegularExpression Id. */
+ int NULL = 44;
+
+ /** RegularExpression Id. */
+ int PACKAGE = 45;
+
+ /** RegularExpression Id. */
+ int PRIVATE = 46;
+
+ /** RegularExpression Id. */
+ int PROTECTED = 47;
+
+ /** RegularExpression Id. */
+ int PUBLIC = 48;
+
+ /** RegularExpression Id. */
+ int RETURN = 49;
+
+ /** RegularExpression Id. */
+ int SHORT = 50;
+
+ /** RegularExpression Id. */
+ int STATIC = 51;
+
+ /** RegularExpression Id. */
+ int STRICTFP = 52;
+
+ /** RegularExpression Id. */
+ int SUPER = 53;
+
+ /** RegularExpression Id. */
+ int SWITCH = 54;
+
+ /** RegularExpression Id. */
+ int SYNCHRONIZED = 55;
+
+ /** RegularExpression Id. */
+ int THIS = 56;
+
+ /** RegularExpression Id. */
+ int THROW = 57;
+
+ /** RegularExpression Id. */
+ int THROWS = 58;
+
+ /** RegularExpression Id. */
+ int TRANSIENT = 59;
+
+ /** RegularExpression Id. */
+ int TRUE = 60;
+
+ /** RegularExpression Id. */
+ int TRY = 61;
+
+ /** RegularExpression Id. */
+ int VOID = 62;
+
+ /** RegularExpression Id. */
+ int VOLATILE = 63;
+
+ /** RegularExpression Id. */
+ int WHILE = 64;
+
+ /** RegularExpression Id. */
+ int LONG_LITERAL = 65;
+
+ /** RegularExpression Id. */
+ int INTEGER_LITERAL = 66;
+
+ /** RegularExpression Id. */
+ int DECIMAL_LITERAL = 67;
+
+ /** RegularExpression Id. */
+ int HEX_LITERAL = 68;
+
+ /** RegularExpression Id. */
+ int OCTAL_LITERAL = 69;
+
+ /** RegularExpression Id. */
+ int FLOATING_POINT_LITERAL = 70;
+
+ /** RegularExpression Id. */
+ int DECIMAL_FLOATING_POINT_LITERAL = 71;
+
+ /** RegularExpression Id. */
+ int DECIMAL_EXPONENT = 72;
+
+ /** RegularExpression Id. */
+ int HEXADECIMAL_FLOATING_POINT_LITERAL = 73;
+
+ /** RegularExpression Id. */
+ int HEXADECIMAL_EXPONENT = 74;
+
+ /** RegularExpression Id. */
+ int CHARACTER_LITERAL = 75;
+
+ /** RegularExpression Id. */
+ int STRING_LITERAL = 76;
+
+ /** RegularExpression Id. */
+ int IDENTIFIER = 77;
+
+ /** RegularExpression Id. */
+ int LETTER = 78;
+
+ /** RegularExpression Id. */
+ int PART_LETTER = 79;
+
+ /** RegularExpression Id. */
+ int LPAREN = 80;
+
+ /** RegularExpression Id. */
+ int RPAREN = 81;
+
+ /** RegularExpression Id. */
+ int LBRACE = 82;
+
+ /** RegularExpression Id. */
+ int RBRACE = 83;
+
+ /** RegularExpression Id. */
+ int LBRACKET = 84;
+
+ /** RegularExpression Id. */
+ int RBRACKET = 85;
+
+ /** RegularExpression Id. */
+ int SEMICOLON = 86;
+
+ /** RegularExpression Id. */
+ int COMMA = 87;
+
+ /** RegularExpression Id. */
+ int DOT = 88;
+
+ /** RegularExpression Id. */
+ int AT = 89;
+
+ /** RegularExpression Id. */
+ int ASSIGN = 90;
+
+ /** RegularExpression Id. */
+ int LT = 91;
+
+ /** RegularExpression Id. */
+ int BANG = 92;
+
+ /** RegularExpression Id. */
+ int TILDE = 93;
+
+ /** RegularExpression Id. */
+ int HOOK = 94;
+
+ /** RegularExpression Id. */
+ int COLON = 95;
+
+ /** RegularExpression Id. */
+ int EQ = 96;
+
+ /** RegularExpression Id. */
+ int LE = 97;
+
+ /** RegularExpression Id. */
+ int GE = 98;
+
+ /** RegularExpression Id. */
+ int NE = 99;
+
+ /** RegularExpression Id. */
+ int SC_OR = 100;
+
+ /** RegularExpression Id. */
+ int SC_AND = 101;
+
+ /** RegularExpression Id. */
+ int INCR = 102;
+
+ /** RegularExpression Id. */
+ int DECR = 103;
+
+ /** RegularExpression Id. */
+ int PLUS = 104;
+
+ /** RegularExpression Id. */
+ int MINUS = 105;
+
+ /** RegularExpression Id. */
+ int STAR = 106;
+
+ /** RegularExpression Id. */
+ int SLASH = 107;
+
+ /** RegularExpression Id. */
+ int BIT_AND = 108;
+
+ /** RegularExpression Id. */
+ int BIT_OR = 109;
+
+ /** RegularExpression Id. */
+ int XOR = 110;
+
+ /** RegularExpression Id. */
+ int REM = 111;
+
+ /** RegularExpression Id. */
+ int LSHIFT = 112;
+
+ /** RegularExpression Id. */
+ int PLUSASSIGN = 113;
+
+ /** RegularExpression Id. */
+ int MINUSASSIGN = 114;
+
+ /** RegularExpression Id. */
+ int STARASSIGN = 115;
+
+ /** RegularExpression Id. */
+ int SLASHASSIGN = 116;
+
+ /** RegularExpression Id. */
+ int ANDASSIGN = 117;
+
+ /** RegularExpression Id. */
+ int ORASSIGN = 118;
+
+ /** RegularExpression Id. */
+ int XORASSIGN = 119;
+
+ /** RegularExpression Id. */
+ int REMASSIGN = 120;
+
+ /** RegularExpression Id. */
+ int LSHIFTASSIGN = 121;
+
+ /** RegularExpression Id. */
+ int RSIGNEDSHIFTASSIGN = 122;
+
+ /** RegularExpression Id. */
+ int RUNSIGNEDSHIFTASSIGN = 123;
+
+ /** RegularExpression Id. */
+ int ELLIPSIS = 124;
+
+ /** RegularExpression Id. */
+ int RUNSIGNEDSHIFT = 125;
+
+ /** RegularExpression Id. */
+ int RSIGNEDSHIFT = 126;
+
+ /** RegularExpression Id. */
+ int GT = 127;
+
+ /** Lexical state. */
+ int DEFAULT = 0;
+
+ /** Lexical state. */
+ int IN_JAVA_DOC_COMMENT = 1;
+
+ /** Lexical state. */
+ int IN_MULTI_LINE_COMMENT = 2;
+
+ /** Literal token values. */
+ String[] tokenImage = {
+ "<EOF>",
+ "\" \"",
+ "\"\\t\"",
+ "\"\\n\"",
+ "\"\\r\"",
+ "\"\\f\"",
+ "<SINGLE_LINE_COMMENT>",
+ "<token of kind 7>",
+ "\"/*\"",
+ "\"*/\"",
+ "\"*/\"",
+ "<token of kind 11>",
+ "\"abstract\"",
+ "\"assert\"",
+ "\"boolean\"",
+ "\"break\"",
+ "\"byte\"",
+ "\"case\"",
+ "\"catch\"",
+ "\"char\"",
+ "\"class\"",
+ "\"const\"",
+ "\"continue\"",
+ "\"default\"",
+ "\"do\"",
+ "\"double\"",
+ "\"else\"",
+ "\"enum\"",
+ "\"extends\"",
+ "\"false\"",
+ "\"final\"",
+ "\"finally\"",
+ "\"float\"",
+ "\"for\"",
+ "\"goto\"",
+ "\"if\"",
+ "\"implements\"",
+ "\"import\"",
+ "\"instanceof\"",
+ "\"int\"",
+ "\"interface\"",
+ "\"long\"",
+ "\"native\"",
+ "\"new\"",
+ "\"null\"",
+ "\"package\"",
+ "\"private\"",
+ "\"protected\"",
+ "\"public\"",
+ "\"return\"",
+ "\"short\"",
+ "\"static\"",
+ "\"strictfp\"",
+ "\"super\"",
+ "\"switch\"",
+ "\"synchronized\"",
+ "\"this\"",
+ "\"throw\"",
+ "\"throws\"",
+ "\"transient\"",
+ "\"true\"",
+ "\"try\"",
+ "\"void\"",
+ "\"volatile\"",
+ "\"while\"",
+ "<LONG_LITERAL>",
+ "<INTEGER_LITERAL>",
+ "<DECIMAL_LITERAL>",
+ "<HEX_LITERAL>",
+ "<OCTAL_LITERAL>",
+ "<FLOATING_POINT_LITERAL>",
+ "<DECIMAL_FLOATING_POINT_LITERAL>",
+ "<DECIMAL_EXPONENT>",
+ "<HEXADECIMAL_FLOATING_POINT_LITERAL>",
+ "<HEXADECIMAL_EXPONENT>",
+ "<CHARACTER_LITERAL>",
+ "<STRING_LITERAL>",
+ "<IDENTIFIER>",
+ "<LETTER>",
+ "<PART_LETTER>",
+ "\"(\"",
+ "\")\"",
+ "\"{\"",
+ "\"}\"",
+ "\"[\"",
+ "\"]\"",
+ "\";\"",
+ "\",\"",
+ "\".\"",
+ "\"@\"",
+ "\"=\"",
+ "\"<\"",
+ "\"!\"",
+ "\"~\"",
+ "\"?\"",
+ "\":\"",
+ "\"==\"",
+ "\"<=\"",
+ "\">=\"",
+ "\"!=\"",
+ "\"||\"",
+ "\"&&\"",
+ "\"++\"",
+ "\"--\"",
+ "\"+\"",
+ "\"-\"",
+ "\"*\"",
+ "\"/\"",
+ "\"&\"",
+ "\"|\"",
+ "\"^\"",
+ "\"%\"",
+ "\"<<\"",
+ "\"+=\"",
+ "\"-=\"",
+ "\"*=\"",
+ "\"/=\"",
+ "\"&=\"",
+ "\"|=\"",
+ "\"^=\"",
+ "\"%=\"",
+ "\"<<=\"",
+ "\">>=\"",
+ "\">>>=\"",
+ "\"...\"",
+ "\">>>\"",
+ "\">>\"",
+ "\">\"",
+ "\"\\u001a\"",
+ };
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ASTParserTokenManager.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ASTParserTokenManager.java
new file mode 100644
index 00000000000..dad38f6ece0
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ASTParserTokenManager.java
@@ -0,0 +1,2579 @@
+/* Generated By:JavaCC: Do not edit this line. ASTParserTokenManager.java */
+/*
+ * Copyright (C) 2008 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+package japa.parser;
+
+import japa.parser.ast.BlockComment;
+import japa.parser.ast.Comment;
+import japa.parser.ast.LineComment;
+import japa.parser.ast.body.JavadocComment;
+
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Stack;
+
+/** Token Manager. */
+public class ASTParserTokenManager implements ASTParserConstants {
+
+ private List<Comment> comments;
+
+ private final Stack<JavadocComment> javadocStack = new Stack<JavadocComment>();
+
+ private JavadocComment lastJavadoc;
+
+ void pushJavadoc() {
+ javadocStack.push(lastJavadoc);
+ }
+
+ JavadocComment popJavadoc() {
+ return javadocStack.pop();
+ }
+
+ List<Comment> getComments() {
+ return comments;
+ }
+
+ void clearComments() {
+ comments = null;
+ javadocStack.clear();
+ lastJavadoc = null;
+ }
+
+ private void CommonTokenAction(Token token) {
+ lastJavadoc = null;
+ if (token.specialToken != null) {
+ if (comments == null) {
+ comments = new LinkedList<Comment>();
+ }
+ Token special = token.specialToken;
+ if (special.kind == JAVA_DOC_COMMENT) {
+ lastJavadoc = new JavadocComment(special.beginLine, special.beginColumn, special.endLine, special.endColumn, special.image.substring(3, special.image.length() - 2));
+ comments.add(lastJavadoc);
+ } else if (special.kind == SINGLE_LINE_COMMENT) {
+ LineComment comment = new LineComment(special.beginLine, special.beginColumn, special.endLine, special.endColumn, special.image.substring(2));
+ comments.add(comment);
+ } else if (special.kind == MULTI_LINE_COMMENT) {
+ BlockComment comment = new BlockComment(special.beginLine, special.beginColumn, special.endLine, special.endColumn, special.image.substring(2, special.image.length() - 2));
+ comments.add(comment);
+ }
+ }
+ }
+
+ /** Debug output. */
+ public java.io.PrintStream debugStream = System.out;
+
+ /** Set debug output. */
+ public void setDebugStream(java.io.PrintStream ds) {
+ debugStream = ds;
+ }
+
+ private final int jjStopStringLiteralDfa_0(int pos, long active0, long active1, long active2) {
+ switch (pos) {
+ case 0:
+ if ((active0 & 0xfffffffffffff000L) != 0L || (active1 & 0x1L) != 0L) {
+ jjmatchedKind = 77;
+ return 37;
+ }
+ if ((active1 & 0x1000000001000000L) != 0L) {
+ return 1;
+ }
+ if ((active0 & 0x100L) != 0L || (active1 & 0x10080000000000L) != 0L) {
+ return 54;
+ }
+ return -1;
+ case 1:
+ if ((active0 & 0x100L) != 0L) {
+ return 59;
+ }
+ if ((active0 & 0x803000000L) != 0L) {
+ return 37;
+ }
+ if ((active0 & 0xfffffff7fcfff000L) != 0L || (active1 & 0x1L) != 0L) {
+ if (jjmatchedPos != 1) {
+ jjmatchedKind = 77;
+ jjmatchedPos = 1;
+ }
+ return 37;
+ }
+ return -1;
+ case 2:
+ if ((active0 & 0xdffff675fefff000L) != 0L || (active1 & 0x1L) != 0L) {
+ if (jjmatchedPos != 2) {
+ jjmatchedKind = 77;
+ jjmatchedPos = 2;
+ }
+ return 37;
+ }
+ if ((active0 & 0x2000098200000000L) != 0L) {
+ return 37;
+ }
+ return -1;
+ case 3:
+ if ((active0 & 0x8effe571f2f4f000L) != 0L || (active1 & 0x1L) != 0L) {
+ jjmatchedKind = 77;
+ jjmatchedPos = 3;
+ return 37;
+ }
+ if ((active0 & 0x510012040c0b0000L) != 0L) {
+ return 37;
+ }
+ return -1;
+ case 4:
+ if ((active0 & 0x88dbe57012c07000L) != 0L) {
+ if (jjmatchedPos != 4) {
+ jjmatchedKind = 77;
+ jjmatchedPos = 4;
+ }
+ return 37;
+ }
+ if ((active0 & 0x6240001e0348000L) != 0L || (active1 & 0x1L) != 0L) {
+ return 37;
+ }
+ return -1;
+ case 5:
+ if ((active0 & 0x8890e15090c05000L) != 0L) {
+ jjmatchedKind = 77;
+ jjmatchedPos = 5;
+ return 37;
+ }
+ if ((active0 & 0x44b042002002000L) != 0L) {
+ return 37;
+ }
+ return -1;
+ case 6:
+ if ((active0 & 0x8890815000401000L) != 0L) {
+ jjmatchedKind = 77;
+ jjmatchedPos = 6;
+ return 37;
+ }
+ if ((active0 & 0x600090804000L) != 0L) {
+ return 37;
+ }
+ return -1;
+ case 7:
+ if ((active0 & 0x880815000000000L) != 0L) {
+ jjmatchedKind = 77;
+ jjmatchedPos = 7;
+ return 37;
+ }
+ if ((active0 & 0x8010000000401000L) != 0L) {
+ return 37;
+ }
+ return -1;
+ case 8:
+ if ((active0 & 0x800810000000000L) != 0L) {
+ return 37;
+ }
+ if ((active0 & 0x80005000000000L) != 0L) {
+ jjmatchedKind = 77;
+ jjmatchedPos = 8;
+ return 37;
+ }
+ return -1;
+ case 9:
+ if ((active0 & 0x80000000000000L) != 0L) {
+ jjmatchedKind = 77;
+ jjmatchedPos = 9;
+ return 37;
+ }
+ if ((active0 & 0x5000000000L) != 0L) {
+ return 37;
+ }
+ return -1;
+ case 10:
+ if ((active0 & 0x80000000000000L) != 0L) {
+ jjmatchedKind = 77;
+ jjmatchedPos = 10;
+ return 37;
+ }
+ return -1;
+ default:
+ return -1;
+ }
+ }
+
+ private final int jjStartNfa_0(int pos, long active0, long active1, long active2) {
+ return jjMoveNfa_0(jjStopStringLiteralDfa_0(pos, active0, active1, active2), pos + 1);
+ }
+
+ private int jjStopAtPos(int pos, int kind) {
+ jjmatchedKind = kind;
+ jjmatchedPos = pos;
+ return pos + 1;
+ }
+
+ private int jjMoveStringLiteralDfa0_0() {
+ switch (curChar) {
+ case 26:
+ return jjStopAtPos(0, 128);
+ case 33:
+ jjmatchedKind = 92;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x800000000L);
+ case 37:
+ jjmatchedKind = 111;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x100000000000000L);
+ case 38:
+ jjmatchedKind = 108;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x20002000000000L);
+ case 40:
+ return jjStopAtPos(0, 80);
+ case 41:
+ return jjStopAtPos(0, 81);
+ case 42:
+ jjmatchedKind = 106;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x8000000000000L);
+ case 43:
+ jjmatchedKind = 104;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x2004000000000L);
+ case 44:
+ return jjStopAtPos(0, 87);
+ case 45:
+ jjmatchedKind = 105;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x4008000000000L);
+ case 46:
+ jjmatchedKind = 88;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x1000000000000000L);
+ case 47:
+ jjmatchedKind = 107;
+ return jjMoveStringLiteralDfa1_0(0x100L, 0x10000000000000L);
+ case 58:
+ return jjStopAtPos(0, 95);
+ case 59:
+ return jjStopAtPos(0, 86);
+ case 60:
+ jjmatchedKind = 91;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x201000200000000L);
+ case 61:
+ jjmatchedKind = 90;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x100000000L);
+ case 62:
+ jjmatchedKind = 127;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x6c00000400000000L);
+ case 63:
+ return jjStopAtPos(0, 94);
+ case 64:
+ return jjStopAtPos(0, 89);
+ case 91:
+ return jjStopAtPos(0, 84);
+ case 93:
+ return jjStopAtPos(0, 85);
+ case 94:
+ jjmatchedKind = 110;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x80000000000000L);
+ case 97:
+ return jjMoveStringLiteralDfa1_0(0x3000L, 0x0L);
+ case 98:
+ return jjMoveStringLiteralDfa1_0(0x1c000L, 0x0L);
+ case 99:
+ return jjMoveStringLiteralDfa1_0(0x7e0000L, 0x0L);
+ case 100:
+ return jjMoveStringLiteralDfa1_0(0x3800000L, 0x0L);
+ case 101:
+ return jjMoveStringLiteralDfa1_0(0x1c000000L, 0x0L);
+ case 102:
+ return jjMoveStringLiteralDfa1_0(0x3e0000000L, 0x0L);
+ case 103:
+ return jjMoveStringLiteralDfa1_0(0x400000000L, 0x0L);
+ case 105:
+ return jjMoveStringLiteralDfa1_0(0x1f800000000L, 0x0L);
+ case 108:
+ return jjMoveStringLiteralDfa1_0(0x20000000000L, 0x0L);
+ case 110:
+ return jjMoveStringLiteralDfa1_0(0x1c0000000000L, 0x0L);
+ case 112:
+ return jjMoveStringLiteralDfa1_0(0x1e00000000000L, 0x0L);
+ case 114:
+ return jjMoveStringLiteralDfa1_0(0x2000000000000L, 0x0L);
+ case 115:
+ return jjMoveStringLiteralDfa1_0(0xfc000000000000L, 0x0L);
+ case 116:
+ return jjMoveStringLiteralDfa1_0(0x3f00000000000000L, 0x0L);
+ case 118:
+ return jjMoveStringLiteralDfa1_0(0xc000000000000000L, 0x0L);
+ case 119:
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x1L);
+ case 123:
+ return jjStopAtPos(0, 82);
+ case 124:
+ jjmatchedKind = 109;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x40001000000000L);
+ case 125:
+ return jjStopAtPos(0, 83);
+ case 126:
+ return jjStopAtPos(0, 93);
+ default:
+ return jjMoveNfa_0(0, 0);
+ }
+ }
+
+ private int jjMoveStringLiteralDfa1_0(long active0, long active1) {
+ try {
+ curChar = input_stream.readChar();
+ } catch (java.io.IOException e) {
+ jjStopStringLiteralDfa_0(0, active0, active1, 0L);
+ return 1;
+ }
+ switch (curChar) {
+ case 38:
+ if ((active1 & 0x2000000000L) != 0L) {
+ return jjStopAtPos(1, 101);
+ }
+ break;
+ case 42:
+ if ((active0 & 0x100L) != 0L) {
+ return jjStartNfaWithStates_0(1, 8, 59);
+ }
+ break;
+ case 43:
+ if ((active1 & 0x4000000000L) != 0L) {
+ return jjStopAtPos(1, 102);
+ }
+ break;
+ case 45:
+ if ((active1 & 0x8000000000L) != 0L) {
+ return jjStopAtPos(1, 103);
+ }
+ break;
+ case 46:
+ return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x1000000000000000L);
+ case 60:
+ if ((active1 & 0x1000000000000L) != 0L) {
+ jjmatchedKind = 112;
+ jjmatchedPos = 1;
+ }
+ return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x200000000000000L);
+ case 61:
+ if ((active1 & 0x100000000L) != 0L) {
+ return jjStopAtPos(1, 96);
+ } else if ((active1 & 0x200000000L) != 0L) {
+ return jjStopAtPos(1, 97);
+ } else if ((active1 & 0x400000000L) != 0L) {
+ return jjStopAtPos(1, 98);
+ } else if ((active1 & 0x800000000L) != 0L) {
+ return jjStopAtPos(1, 99);
+ } else if ((active1 & 0x2000000000000L) != 0L) {
+ return jjStopAtPos(1, 113);
+ } else if ((active1 & 0x4000000000000L) != 0L) {
+ return jjStopAtPos(1, 114);
+ } else if ((active1 & 0x8000000000000L) != 0L) {
+ return jjStopAtPos(1, 115);
+ } else if ((active1 & 0x10000000000000L) != 0L) {
+ return jjStopAtPos(1, 116);
+ } else if ((active1 & 0x20000000000000L) != 0L) {
+ return jjStopAtPos(1, 117);
+ } else if ((active1 & 0x40000000000000L) != 0L) {
+ return jjStopAtPos(1, 118);
+ } else if ((active1 & 0x80000000000000L) != 0L) {
+ return jjStopAtPos(1, 119);
+ } else if ((active1 & 0x100000000000000L) != 0L) {
+ return jjStopAtPos(1, 120);
+ }
+ break;
+ case 62:
+ if ((active1 & 0x4000000000000000L) != 0L) {
+ jjmatchedKind = 126;
+ jjmatchedPos = 1;
+ }
+ return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x2c00000000000000L);
+ case 97:
+ return jjMoveStringLiteralDfa2_0(active0, 0x240020060000L, active1, 0L);
+ case 98:
+ return jjMoveStringLiteralDfa2_0(active0, 0x1000L, active1, 0L);
+ case 101:
+ return jjMoveStringLiteralDfa2_0(active0, 0x2080000800000L, active1, 0L);
+ case 102:
+ if ((active0 & 0x800000000L) != 0L) {
+ return jjStartNfaWithStates_0(1, 35, 37);
+ }
+ break;
+ case 104:
+ return jjMoveStringLiteralDfa2_0(active0, 0x704000000080000L, active1, 0x1L);
+ case 105:
+ return jjMoveStringLiteralDfa2_0(active0, 0xc0000000L, active1, 0L);
+ case 108:
+ return jjMoveStringLiteralDfa2_0(active0, 0x104100000L, active1, 0L);
+ case 109:
+ return jjMoveStringLiteralDfa2_0(active0, 0x3000000000L, active1, 0L);
+ case 110:
+ return jjMoveStringLiteralDfa2_0(active0, 0x1c008000000L, active1, 0L);
+ case 111:
+ if ((active0 & 0x1000000L) != 0L) {
+ jjmatchedKind = 24;
+ jjmatchedPos = 1;
+ }
+ return jjMoveStringLiteralDfa2_0(active0, 0xc000020602604000L, active1, 0L);
+ case 114:
+ return jjMoveStringLiteralDfa2_0(active0, 0x3800c00000008000L, active1, 0L);
+ case 115:
+ return jjMoveStringLiteralDfa2_0(active0, 0x2000L, active1, 0L);
+ case 116:
+ return jjMoveStringLiteralDfa2_0(active0, 0x18000000000000L, active1, 0L);
+ case 117:
+ return jjMoveStringLiteralDfa2_0(active0, 0x21100000000000L, active1, 0L);
+ case 119:
+ return jjMoveStringLiteralDfa2_0(active0, 0x40000000000000L, active1, 0L);
+ case 120:
+ return jjMoveStringLiteralDfa2_0(active0, 0x10000000L, active1, 0L);
+ case 121:
+ return jjMoveStringLiteralDfa2_0(active0, 0x80000000010000L, active1, 0L);
+ case 124:
+ if ((active1 & 0x1000000000L) != 0L) {
+ return jjStopAtPos(1, 100);
+ }
+ break;
+ default:
+ break;
+ }
+ return jjStartNfa_0(0, active0, active1, 0L);
+ }
+
+ private int jjMoveStringLiteralDfa2_0(long old0, long active0, long old1, long active1) {
+ if (((active0 &= old0) | (active1 &= old1)) == 0L) {
+ return jjStartNfa_0(0, old0, old1, 0L);
+ }
+ try {
+ curChar = input_stream.readChar();
+ } catch (java.io.IOException e) {
+ jjStopStringLiteralDfa_0(1, active0, active1, 0L);
+ return 2;
+ }
+ switch (curChar) {
+ case 46:
+ if ((active1 & 0x1000000000000000L) != 0L) {
+ return jjStopAtPos(2, 124);
+ }
+ break;
+ case 61:
+ if ((active1 & 0x200000000000000L) != 0L) {
+ return jjStopAtPos(2, 121);
+ } else if ((active1 & 0x400000000000000L) != 0L) {
+ return jjStopAtPos(2, 122);
+ }
+ break;
+ case 62:
+ if ((active1 & 0x2000000000000000L) != 0L) {
+ jjmatchedKind = 125;
+ jjmatchedPos = 2;
+ }
+ return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x800000000000000L);
+ case 97:
+ return jjMoveStringLiteralDfa3_0(active0, 0x808000000180000L, active1, 0L);
+ case 98:
+ return jjMoveStringLiteralDfa3_0(active0, 0x1000000000000L, active1, 0L);
+ case 99:
+ return jjMoveStringLiteralDfa3_0(active0, 0x200000000000L, active1, 0L);
+ case 101:
+ return jjMoveStringLiteralDfa3_0(active0, 0x8000L, active1, 0L);
+ case 102:
+ return jjMoveStringLiteralDfa3_0(active0, 0x800000L, active1, 0L);
+ case 105:
+ return jjMoveStringLiteralDfa3_0(active0, 0x4140400000000000L, active1, 0x1L);
+ case 108:
+ return jjMoveStringLiteralDfa3_0(active0, 0x8000100020000000L, active1, 0L);
+ case 110:
+ return jjMoveStringLiteralDfa3_0(active0, 0x800200c0600000L, active1, 0L);
+ case 111:
+ return jjMoveStringLiteralDfa3_0(active0, 0x4800100004000L, active1, 0L);
+ case 112:
+ return jjMoveStringLiteralDfa3_0(active0, 0x20003000000000L, active1, 0L);
+ case 114:
+ if ((active0 & 0x200000000L) != 0L) {
+ return jjStartNfaWithStates_0(2, 33, 37);
+ }
+ return jjMoveStringLiteralDfa3_0(active0, 0x610000000000000L, active1, 0L);
+ case 115:
+ return jjMoveStringLiteralDfa3_0(active0, 0x4004023000L, active1, 0L);
+ case 116:
+ if ((active0 & 0x8000000000L) != 0L) {
+ jjmatchedKind = 39;
+ jjmatchedPos = 2;
+ }
+ return jjMoveStringLiteralDfa3_0(active0, 0x2050410050000L, active1, 0L);
+ case 117:
+ return jjMoveStringLiteralDfa3_0(active0, 0x100000000a000000L, active1, 0L);
+ case 119:
+ if ((active0 & 0x80000000000L) != 0L) {
+ return jjStartNfaWithStates_0(2, 43, 37);
+ }
+ break;
+ case 121:
+ if ((active0 & 0x2000000000000000L) != 0L) {
+ return jjStartNfaWithStates_0(2, 61, 37);
+ }
+ break;
+ default:
+ break;
+ }
+ return jjStartNfa_0(1, active0, active1, 0L);
+ }
+
+ private int jjMoveStringLiteralDfa3_0(long old0, long active0, long old1, long active1) {
+ if (((active0 &= old0) | (active1 &= old1)) == 0L) {
+ return jjStartNfa_0(1, old0, old1, 0L);
+ }
+ try {
+ curChar = input_stream.readChar();
+ } catch (java.io.IOException e) {
+ jjStopStringLiteralDfa_0(2, active0, active1, 0L);
+ return 3;
+ }
+ switch (curChar) {
+ case 61:
+ if ((active1 & 0x800000000000000L) != 0L) {
+ return jjStopAtPos(3, 123);
+ }
+ break;
+ case 97:
+ return jjMoveStringLiteralDfa4_0(active0, 0x80000001c0808000L, active1, 0L);
+ case 98:
+ return jjMoveStringLiteralDfa4_0(active0, 0x2000000L, active1, 0L);
+ case 99:
+ return jjMoveStringLiteralDfa4_0(active0, 0x80000000040000L, active1, 0L);
+ case 100:
+ if ((active0 & 0x4000000000000000L) != 0L) {
+ return jjStartNfaWithStates_0(3, 62, 37);
+ }
+ break;
+ case 101:
+ if ((active0 & 0x10000L) != 0L) {
+ return jjStartNfaWithStates_0(3, 16, 37);
+ } else if ((active0 & 0x20000L) != 0L) {
+ return jjStartNfaWithStates_0(3, 17, 37);
+ } else if ((active0 & 0x4000000L) != 0L) {
+ return jjStartNfaWithStates_0(3, 26, 37);
+ } else if ((active0 & 0x1000000000000000L) != 0L) {
+ return jjStartNfaWithStates_0(3, 60, 37);
+ }
+ return jjMoveStringLiteralDfa4_0(active0, 0x20010010002000L, active1, 0L);
+ case 103:
+ if ((active0 & 0x20000000000L) != 0L) {
+ return jjStartNfaWithStates_0(3, 41, 37);
+ }
+ break;
+ case 105:
+ return jjMoveStringLiteralDfa4_0(active0, 0x10040000000000L, active1, 0L);
+ case 107:
+ return jjMoveStringLiteralDfa4_0(active0, 0x200000000000L, active1, 0L);
+ case 108:
+ if ((active0 & 0x100000000000L) != 0L) {
+ return jjStartNfaWithStates_0(3, 44, 37);
+ }
+ return jjMoveStringLiteralDfa4_0(active0, 0x1001000004000L, active1, 0x1L);
+ case 109:
+ if ((active0 & 0x8000000L) != 0L) {
+ return jjStartNfaWithStates_0(3, 27, 37);
+ }
+ break;
+ case 110:
+ return jjMoveStringLiteralDfa4_0(active0, 0x800000000000000L, active1, 0L);
+ case 111:
+ if ((active0 & 0x400000000L) != 0L) {
+ return jjStartNfaWithStates_0(3, 34, 37);
+ }
+ return jjMoveStringLiteralDfa4_0(active0, 0x600002000000000L, active1, 0L);
+ case 114:
+ if ((active0 & 0x80000L) != 0L) {
+ return jjStartNfaWithStates_0(3, 19, 37);
+ }
+ return jjMoveStringLiteralDfa4_0(active0, 0x4000000000000L, active1, 0L);
+ case 115:
+ if ((active0 & 0x100000000000000L) != 0L) {
+ return jjStartNfaWithStates_0(3, 56, 37);
+ }
+ return jjMoveStringLiteralDfa4_0(active0, 0x20300000L, active1, 0L);
+ case 116:
+ return jjMoveStringLiteralDfa4_0(active0, 0x48804000401000L, active1, 0L);
+ case 117:
+ return jjMoveStringLiteralDfa4_0(active0, 0x2000000000000L, active1, 0L);
+ case 118:
+ return jjMoveStringLiteralDfa4_0(active0, 0x400000000000L, active1, 0L);
+ default:
+ break;
+ }
+ return jjStartNfa_0(2, active0, active1, 0L);
+ }
+
+ private int jjMoveStringLiteralDfa4_0(long old0, long active0, long old1, long active1) {
+ if (((active0 &= old0) | (active1 &= old1)) == 0L) {
+ return jjStartNfa_0(2, old0, old1, 0L);
+ }
+ try {
+ curChar = input_stream.readChar();
+ } catch (java.io.IOException e) {
+ jjStopStringLiteralDfa_0(3, active0, active1, 0L);
+ return 4;
+ }
+ switch (curChar) {
+ case 97:
+ return jjMoveStringLiteralDfa5_0(active0, 0x604000000000L, active1, 0L);
+ case 99:
+ return jjMoveStringLiteralDfa5_0(active0, 0x50000000000000L, active1, 0L);
+ case 101:
+ if ((active0 & 0x20000000L) != 0L) {
+ return jjStartNfaWithStates_0(4, 29, 37);
+ } else if ((active1 & 0x1L) != 0L) {
+ return jjStartNfaWithStates_0(4, 64, 37);
+ }
+ return jjMoveStringLiteralDfa5_0(active0, 0x801000004000L, active1, 0L);
+ case 104:
+ if ((active0 & 0x40000L) != 0L) {
+ return jjStartNfaWithStates_0(4, 18, 37);
+ }
+ return jjMoveStringLiteralDfa5_0(active0, 0x80000000000000L, active1, 0L);
+ case 105:
+ return jjMoveStringLiteralDfa5_0(active0, 0x9000000400000L, active1, 0L);
+ case 107:
+ if ((active0 & 0x8000L) != 0L) {
+ return jjStartNfaWithStates_0(4, 15, 37);
+ }
+ break;
+ case 108:
+ if ((active0 & 0x40000000L) != 0L) {
+ jjmatchedKind = 30;
+ jjmatchedPos = 4;
+ }
+ return jjMoveStringLiteralDfa5_0(active0, 0x82000000L, active1, 0L);
+ case 110:
+ return jjMoveStringLiteralDfa5_0(active0, 0x10000000L, active1, 0L);
+ case 114:
+ if ((active0 & 0x20000000000000L) != 0L) {
+ return jjStartNfaWithStates_0(4, 53, 37);
+ }
+ return jjMoveStringLiteralDfa5_0(active0, 0x2012000003000L, active1, 0L);
+ case 115:
+ if ((active0 & 0x100000L) != 0L) {
+ return jjStartNfaWithStates_0(4, 20, 37);
+ }
+ return jjMoveStringLiteralDfa5_0(active0, 0x800000000000000L, active1, 0L);
+ case 116:
+ if ((active0 & 0x200000L) != 0L) {
+ return jjStartNfaWithStates_0(4, 21, 37);
+ } else if ((active0 & 0x100000000L) != 0L) {
+ return jjStartNfaWithStates_0(4, 32, 37);
+ } else if ((active0 & 0x4000000000000L) != 0L) {
+ return jjStartNfaWithStates_0(4, 50, 37);
+ }
+ return jjMoveStringLiteralDfa5_0(active0, 0x8000000000000000L, active1, 0L);
+ case 117:
+ return jjMoveStringLiteralDfa5_0(active0, 0x800000L, active1, 0L);
+ case 118:
+ return jjMoveStringLiteralDfa5_0(active0, 0x40000000000L, active1, 0L);
+ case 119:
+ if ((active0 & 0x200000000000000L) != 0L) {
+ jjmatchedKind = 57;
+ jjmatchedPos = 4;
+ }
+ return jjMoveStringLiteralDfa5_0(active0, 0x400000000000000L, active1, 0L);
+ default:
+ break;
+ }
+ return jjStartNfa_0(3, active0, active1, 0L);
+ }
+
+ private int jjMoveStringLiteralDfa5_0(long old0, long active0, long old1, long active1) {
+ if (((active0 &= old0) | (active1 &= old1)) == 0L) {
+ return jjStartNfa_0(3, old0, old1, 0L);
+ }
+ try {
+ curChar = input_stream.readChar();
+ } catch (java.io.IOException e) {
+ jjStopStringLiteralDfa_0(4, active0, 0L, 0L);
+ return 5;
+ }
+ switch (curChar) {
+ case 97:
+ return jjMoveStringLiteralDfa6_0(active0, 0x5000L);
+ case 99:
+ if ((active0 & 0x1000000000000L) != 0L) {
+ return jjStartNfaWithStates_0(5, 48, 37);
+ } else if ((active0 & 0x8000000000000L) != 0L) {
+ return jjStartNfaWithStates_0(5, 51, 37);
+ }
+ return jjMoveStringLiteralDfa6_0(active0, 0x800000000000L);
+ case 100:
+ return jjMoveStringLiteralDfa6_0(active0, 0x10000000L);
+ case 101:
+ if ((active0 & 0x2000000L) != 0L) {
+ return jjStartNfaWithStates_0(5, 25, 37);
+ } else if ((active0 & 0x40000000000L) != 0L) {
+ return jjStartNfaWithStates_0(5, 42, 37);
+ }
+ break;
+ case 102:
+ return jjMoveStringLiteralDfa6_0(active0, 0x10000000000L);
+ case 103:
+ return jjMoveStringLiteralDfa6_0(active0, 0x200000000000L);
+ case 104:
+ if ((active0 & 0x40000000000000L) != 0L) {
+ return jjStartNfaWithStates_0(5, 54, 37);
+ }
+ break;
+ case 105:
+ return jjMoveStringLiteralDfa6_0(active0, 0x8800000000000000L);
+ case 108:
+ return jjMoveStringLiteralDfa6_0(active0, 0x80800000L);
+ case 109:
+ return jjMoveStringLiteralDfa6_0(active0, 0x1000000000L);
+ case 110:
+ if ((active0 & 0x2000000000000L) != 0L) {
+ return jjStartNfaWithStates_0(5, 49, 37);
+ }
+ return jjMoveStringLiteralDfa6_0(active0, 0x4000400000L);
+ case 114:
+ return jjMoveStringLiteralDfa6_0(active0, 0x80000000000000L);
+ case 115:
+ if ((active0 & 0x400000000000000L) != 0L) {
+ return jjStartNfaWithStates_0(5, 58, 37);
+ }
+ break;
+ case 116:
+ if ((active0 & 0x2000L) != 0L) {
+ return jjStartNfaWithStates_0(5, 13, 37);
+ } else if ((active0 & 0x2000000000L) != 0L) {
+ return jjStartNfaWithStates_0(5, 37, 37);
+ }
+ return jjMoveStringLiteralDfa6_0(active0, 0x10400000000000L);
+ default:
+ break;
+ }
+ return jjStartNfa_0(4, active0, 0L, 0L);
+ }
+
+ private int jjMoveStringLiteralDfa6_0(long old0, long active0) {
+ if (((active0 &= old0)) == 0L) {
+ return jjStartNfa_0(4, old0, 0L, 0L);
+ }
+ try {
+ curChar = input_stream.readChar();
+ } catch (java.io.IOException e) {
+ jjStopStringLiteralDfa_0(5, active0, 0L, 0L);
+ return 6;
+ }
+ switch (curChar) {
+ case 97:
+ return jjMoveStringLiteralDfa7_0(active0, 0x10000000000L);
+ case 99:
+ return jjMoveStringLiteralDfa7_0(active0, 0x4000001000L);
+ case 101:
+ if ((active0 & 0x200000000000L) != 0L) {
+ return jjStartNfaWithStates_0(6, 45, 37);
+ } else if ((active0 & 0x400000000000L) != 0L) {
+ return jjStartNfaWithStates_0(6, 46, 37);
+ }
+ return jjMoveStringLiteralDfa7_0(active0, 0x800001000000000L);
+ case 102:
+ return jjMoveStringLiteralDfa7_0(active0, 0x10000000000000L);
+ case 108:
+ return jjMoveStringLiteralDfa7_0(active0, 0x8000000000000000L);
+ case 110:
+ if ((active0 & 0x4000L) != 0L) {
+ return jjStartNfaWithStates_0(6, 14, 37);
+ }
+ break;
+ case 111:
+ return jjMoveStringLiteralDfa7_0(active0, 0x80000000000000L);
+ case 115:
+ if ((active0 & 0x10000000L) != 0L) {
+ return jjStartNfaWithStates_0(6, 28, 37);
+ }
+ break;
+ case 116:
+ if ((active0 & 0x800000L) != 0L) {
+ return jjStartNfaWithStates_0(6, 23, 37);
+ }
+ return jjMoveStringLiteralDfa7_0(active0, 0x800000000000L);
+ case 117:
+ return jjMoveStringLiteralDfa7_0(active0, 0x400000L);
+ case 121:
+ if ((active0 & 0x80000000L) != 0L) {
+ return jjStartNfaWithStates_0(6, 31, 37);
+ }
+ break;
+ default:
+ break;
+ }
+ return jjStartNfa_0(5, active0, 0L, 0L);
+ }
+
+ private int jjMoveStringLiteralDfa7_0(long old0, long active0) {
+ if (((active0 &= old0)) == 0L) {
+ return jjStartNfa_0(5, old0, 0L, 0L);
+ }
+ try {
+ curChar = input_stream.readChar();
+ } catch (java.io.IOException e) {
+ jjStopStringLiteralDfa_0(6, active0, 0L, 0L);
+ return 7;
+ }
+ switch (curChar) {
+ case 99:
+ return jjMoveStringLiteralDfa8_0(active0, 0x10000000000L);
+ case 101:
+ if ((active0 & 0x400000L) != 0L) {
+ return jjStartNfaWithStates_0(7, 22, 37);
+ } else if ((active0 & 0x8000000000000000L) != 0L) {
+ return jjStartNfaWithStates_0(7, 63, 37);
+ }
+ return jjMoveStringLiteralDfa8_0(active0, 0x804000000000L);
+ case 110:
+ return jjMoveStringLiteralDfa8_0(active0, 0x880001000000000L);
+ case 112:
+ if ((active0 & 0x10000000000000L) != 0L) {
+ return jjStartNfaWithStates_0(7, 52, 37);
+ }
+ break;
+ case 116:
+ if ((active0 & 0x1000L) != 0L) {
+ return jjStartNfaWithStates_0(7, 12, 37);
+ }
+ break;
+ default:
+ break;
+ }
+ return jjStartNfa_0(6, active0, 0L, 0L);
+ }
+
+ private int jjMoveStringLiteralDfa8_0(long old0, long active0) {
+ if (((active0 &= old0)) == 0L) {
+ return jjStartNfa_0(6, old0, 0L, 0L);
+ }
+ try {
+ curChar = input_stream.readChar();
+ } catch (java.io.IOException e) {
+ jjStopStringLiteralDfa_0(7, active0, 0L, 0L);
+ return 8;
+ }
+ switch (curChar) {
+ case 100:
+ if ((active0 & 0x800000000000L) != 0L) {
+ return jjStartNfaWithStates_0(8, 47, 37);
+ }
+ break;
+ case 101:
+ if ((active0 & 0x10000000000L) != 0L) {
+ return jjStartNfaWithStates_0(8, 40, 37);
+ }
+ break;
+ case 105:
+ return jjMoveStringLiteralDfa9_0(active0, 0x80000000000000L);
+ case 111:
+ return jjMoveStringLiteralDfa9_0(active0, 0x4000000000L);
+ case 116:
+ if ((active0 & 0x800000000000000L) != 0L) {
+ return jjStartNfaWithStates_0(8, 59, 37);
+ }
+ return jjMoveStringLiteralDfa9_0(active0, 0x1000000000L);
+ default:
+ break;
+ }
+ return jjStartNfa_0(7, active0, 0L, 0L);
+ }
+
+ private int jjMoveStringLiteralDfa9_0(long old0, long active0) {
+ if (((active0 &= old0)) == 0L) {
+ return jjStartNfa_0(7, old0, 0L, 0L);
+ }
+ try {
+ curChar = input_stream.readChar();
+ } catch (java.io.IOException e) {
+ jjStopStringLiteralDfa_0(8, active0, 0L, 0L);
+ return 9;
+ }
+ switch (curChar) {
+ case 102:
+ if ((active0 & 0x4000000000L) != 0L) {
+ return jjStartNfaWithStates_0(9, 38, 37);
+ }
+ break;
+ case 115:
+ if ((active0 & 0x1000000000L) != 0L) {
+ return jjStartNfaWithStates_0(9, 36, 37);
+ }
+ break;
+ case 122:
+ return jjMoveStringLiteralDfa10_0(active0, 0x80000000000000L);
+ default:
+ break;
+ }
+ return jjStartNfa_0(8, active0, 0L, 0L);
+ }
+
+ private int jjMoveStringLiteralDfa10_0(long old0, long active0) {
+ if (((active0 &= old0)) == 0L) {
+ return jjStartNfa_0(8, old0, 0L, 0L);
+ }
+ try {
+ curChar = input_stream.readChar();
+ } catch (java.io.IOException e) {
+ jjStopStringLiteralDfa_0(9, active0, 0L, 0L);
+ return 10;
+ }
+ switch (curChar) {
+ case 101:
+ return jjMoveStringLiteralDfa11_0(active0, 0x80000000000000L);
+ default:
+ break;
+ }
+ return jjStartNfa_0(9, active0, 0L, 0L);
+ }
+
+ private int jjMoveStringLiteralDfa11_0(long old0, long active0) {
+ if (((active0 &= old0)) == 0L) {
+ return jjStartNfa_0(9, old0, 0L, 0L);
+ }
+ try {
+ curChar = input_stream.readChar();
+ } catch (java.io.IOException e) {
+ jjStopStringLiteralDfa_0(10, active0, 0L, 0L);
+ return 11;
+ }
+ switch (curChar) {
+ case 100:
+ if ((active0 & 0x80000000000000L) != 0L) {
+ return jjStartNfaWithStates_0(11, 55, 37);
+ }
+ break;
+ default:
+ break;
+ }
+ return jjStartNfa_0(10, active0, 0L, 0L);
+ }
+
+ private int jjStartNfaWithStates_0(int pos, int kind, int state) {
+ jjmatchedKind = kind;
+ jjmatchedPos = pos;
+ try {
+ curChar = input_stream.readChar();
+ } catch (java.io.IOException e) {
+ return pos + 1;
+ }
+ return jjMoveNfa_0(state, pos + 1);
+ }
+
+ static final long[] jjbitVec0 = {
+ 0xfffffffffffffffeL, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL
+ };
+
+ static final long[] jjbitVec2 = {
+ 0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL
+ };
+
+ static final long[] jjbitVec3 = {
+ 0xfff0000000200002L, 0xffffffffffffdfffL, 0xfffff00f7fffffffL, 0x12000000007fffffL
+ };
+
+ static final long[] jjbitVec4 = {
+ 0x0L, 0x0L, 0x420043c00000000L, 0xff7fffffff7fffffL
+ };
+
+ static final long[] jjbitVec5 = {
+ 0x7fffffffffffffL, 0xffffffffffff0000L, 0xffffffffffffffffL, 0x401f0003ffc3L
+ };
+
+ static final long[] jjbitVec6 = {
+ 0x0L, 0x400000000000000L, 0xfffffffbffffd740L, 0xfbfffffffff7fffL
+ };
+
+ static final long[] jjbitVec7 = {
+ 0xffffffffffffffffL, 0xffffffffffffffffL, 0xfffffffffffffc03L, 0x33fffffffff7fffL
+ };
+
+ static final long[] jjbitVec8 = {
+ 0xfffe00000000ffffL, 0xfffffffe027fffffL, 0xffL, 0x707ffffff0000L
+ };
+
+ static final long[] jjbitVec9 = {
+ 0x7fffffe00000000L, 0xfffec000000007ffL, 0xffffffffffffffffL, 0x9c00c060002fffffL
+ };
+
+ static final long[] jjbitVec10 = {
+ 0xfffffffd0000L, 0xe000L, 0x2003fffffffffL, 0x0L
+ };
+
+ static final long[] jjbitVec11 = {
+ 0x23fffffffffffff0L, 0x3ff010000L, 0x23c5fdfffff99fe0L, 0xf0003b0000000L
+ };
+
+ static final long[] jjbitVec12 = {
+ 0x36dfdfffff987e0L, 0x1c00005e000000L, 0x23edfdfffffbbfe0L, 0x2000300010000L
+ };
+
+ static final long[] jjbitVec13 = {
+ 0x23edfdfffff99fe0L, 0x20003b0000000L, 0x3bfc718d63dc7e8L, 0x200000000000000L
+ };
+
+ static final long[] jjbitVec14 = {
+ 0x3effdfffffddfe0L, 0x300000000L, 0x23effdfffffddfe0L, 0x340000000L
+ };
+
+ static final long[] jjbitVec15 = {
+ 0x3fffdfffffddfe0L, 0x300000000L, 0x2ffbfffffc7fffe0L, 0x7fL
+ };
+
+ static final long[] jjbitVec16 = {
+ 0x800dfffffffffffeL, 0x7fL, 0x200decaefef02596L, 0x3000005fL
+ };
+
+ static final long[] jjbitVec17 = {
+ 0x1L, 0x7fffffffeffL, 0xf00L, 0x0L
+ };
+
+ static final long[] jjbitVec18 = {
+ 0x6fbffffffffL, 0x3f0000L, 0xffffffff00000000L, 0x1ffffffffff003fL
+ };
+
+ static final long[] jjbitVec19 = {
+ 0xffffffffffffffffL, 0xffffffff83ffffffL, 0xffffff07ffffffffL, 0x3ffffffffffffffL
+ };
+
+ static final long[] jjbitVec20 = {
+ 0xffffffffffffff7fL, 0xffffffff3d7f3d7fL, 0x7f3d7fffffff3d7fL, 0xffff7fffff7f7f3dL
+ };
+
+ static final long[] jjbitVec21 = {
+ 0xffffffff7f3d7fffL, 0x7ffff7fL, 0xffffffff00000000L, 0x1fffffffffffffL
+ };
+
+ static final long[] jjbitVec22 = {
+ 0xffffffffffffffffL, 0x7f9fffffffffffL, 0xffffffff07fffffeL, 0x1c7ffffffffffL
+ };
+
+ static final long[] jjbitVec23 = {
+ 0x3ffff0003dfffL, 0x1dfff0003ffffL, 0xfffffffffffffL, 0x18800000L
+ };
+
+ static final long[] jjbitVec24 = {
+ 0xffffffff00000000L, 0xffffffffffffffL, 0x1ffffffffffL, 0x0L
+ };
+
+ static final long[] jjbitVec25 = {
+ 0x1fffffffL, 0x1f3fffffff0000L, 0x0L, 0x0L
+ };
+
+ static final long[] jjbitVec26 = {
+ 0xffffffffffffffffL, 0xfffffffffffL, 0x0L, 0x0L
+ };
+
+ static final long[] jjbitVec27 = {
+ 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffff0fffffffL, 0x3ffffffffffffffL
+ };
+
+ static final long[] jjbitVec28 = {
+ 0xffffffff3f3fffffL, 0x3fffffffaaff3f3fL, 0x5fdfffffffffffffL, 0x1fdc1fff0fcf1fdcL
+ };
+
+ static final long[] jjbitVec29 = {
+ 0x8000000000000000L, 0x8002000000100001L, 0x3ffff00000000L, 0x0L
+ };
+
+ static final long[] jjbitVec30 = {
+ 0xe3fbbd503e2ffc84L, 0xffffffff000003e0L, 0xfL, 0x0L
+ };
+
+ static final long[] jjbitVec31 = {
+ 0x1f3e03fe000000e0L, 0xfffffffffffffffeL, 0xfffffffee07fffffL, 0xffffffffffffffffL
+ };
+
+ static final long[] jjbitVec32 = {
+ 0xfffe1fffffffffe0L, 0xffffffffffffffffL, 0xffffff00007fffL, 0xffff000000000000L
+ };
+
+ static final long[] jjbitVec33 = {
+ 0xffffffffffffffffL, 0xffffffffffffffffL, 0x3fffffffffffffL, 0x0L
+ };
+
+ static final long[] jjbitVec34 = {
+ 0xffffffffffffffffL, 0xffffffffffffffffL, 0x3fffffffffL, 0x0L
+ };
+
+ static final long[] jjbitVec35 = {
+ 0xffffffffffffffffL, 0xffffffffffffffffL, 0x1fffL, 0x0L
+ };
+
+ static final long[] jjbitVec36 = {
+ 0xffffffffffffffffL, 0xffffffffffffffffL, 0xfffffffffL, 0x0L
+ };
+
+ static final long[] jjbitVec37 = {
+ 0x6L, 0x0L, 0x0L, 0x0L
+ };
+
+ static final long[] jjbitVec38 = {
+ 0xffff3fffffffffffL, 0x7ffffffffffL, 0x0L, 0x0L
+ };
+
+ static final long[] jjbitVec39 = {
+ 0x5f7ffdffa0f8007fL, 0xffffffffffffffdbL, 0x3ffffffffffffL, 0xfffffffffff80000L
+ };
+
+ static final long[] jjbitVec40 = {
+ 0x3fffffffffffffffL, 0xffffffffffff0000L, 0xfffffffffffcffffL, 0x1fff0000000000ffL
+ };
+
+ static final long[] jjbitVec41 = {
+ 0x18000000000000L, 0xffdf02000000e000L, 0xffffffffffffffffL, 0x1fffffffffffffffL
+ };
+
+ static final long[] jjbitVec42 = {
+ 0x87fffffe00000010L, 0xffffffe007fffffeL, 0x7fffffffffffffffL, 0x631cfcfcfcL
+ };
+
+ static final long[] jjbitVec43 = {
+ 0x0L, 0x0L, 0x420243cffffffffL, 0xff7fffffff7fffffL
+ };
+
+ static final long[] jjbitVec44 = {
+ 0xffffffffffffffffL, 0x400ffffe0ffffffL, 0xfffffffbffffd740L, 0xfbfffffffff7fffL
+ };
+
+ static final long[] jjbitVec45 = {
+ 0xffffffffffffffffL, 0xffffffffffffffffL, 0xfffffffffffffc7bL, 0x33fffffffff7fffL
+ };
+
+ static final long[] jjbitVec46 = {
+ 0xfffe00000000ffffL, 0xfffffffe027fffffL, 0xbbfffffbfffe00ffL, 0x707ffffff0016L
+ };
+
+ static final long[] jjbitVec47 = {
+ 0x7fffffe003f000fL, 0xffffc3ff01ffffffL, 0xffffffffffffffffL, 0x9ffffdffbfefffffL
+ };
+
+ static final long[] jjbitVec48 = {
+ 0xffffffffffff8000L, 0xe7ffL, 0x3ffffffffffffL, 0x0L
+ };
+
+ static final long[] jjbitVec49 = {
+ 0xf3fffffffffffffeL, 0xffcfff1f3fffL, 0xf3c5fdfffff99feeL, 0xfffcfb080399fL
+ };
+
+ static final long[] jjbitVec50 = {
+ 0xd36dfdfffff987eeL, 0x1fffc05e003987L, 0xf3edfdfffffbbfeeL, 0x2ffcf00013bbfL
+ };
+
+ static final long[] jjbitVec51 = {
+ 0xf3edfdfffff99feeL, 0x2ffc3b0c0398fL, 0xc3bfc718d63dc7ecL, 0x200ff8000803dc7L
+ };
+
+ static final long[] jjbitVec52 = {
+ 0xc3effdfffffddfeeL, 0xffc300603ddfL, 0xf3effdfffffddfecL, 0xffc340603ddfL
+ };
+
+ static final long[] jjbitVec53 = {
+ 0xc3fffdfffffddfecL, 0xffc300803dcfL, 0x2ffbfffffc7fffecL, 0xc0000ff5f847fL
+ };
+
+ static final long[] jjbitVec54 = {
+ 0x87fffffffffffffeL, 0x3ff7fffL, 0x3bffecaefef02596L, 0x33ff3f5fL
+ };
+
+ static final long[] jjbitVec55 = {
+ 0xc2a003ff03000001L, 0xfffe07fffffffeffL, 0x1ffffffffeff0fdfL, 0x40L
+ };
+
+ static final long[] jjbitVec56 = {
+ 0x3c7f6fbffffffffL, 0x3ff03ffL, 0xffffffff00000000L, 0x1ffffffffff003fL
+ };
+
+ static final long[] jjbitVec57 = {
+ 0xffffffff7f3d7fffL, 0x3fe0007ffff7fL, 0xffffffff00000000L, 0x1fffffffffffffL
+ };
+
+ static final long[] jjbitVec58 = {
+ 0x1fffff001fdfffL, 0xddfff000fffffL, 0xffffffffffffffffL, 0x3ff388fffffL
+ };
+
+ static final long[] jjbitVec59 = {
+ 0xffffffff03ff3800L, 0xffffffffffffffL, 0x3ffffffffffL, 0x0L
+ };
+
+ static final long[] jjbitVec60 = {
+ 0xfff0fff1fffffffL, 0x1f3fffffffffc0L, 0x0L, 0x0L
+ };
+
+ static final long[] jjbitVec61 = {
+ 0x80007c000000f000L, 0x8002fc0f00100001L, 0x3ffff00000000L, 0x7e21fff0000L
+ };
+
+ static final long[] jjbitVec62 = {
+ 0x1f3efffe000000e0L, 0xfffffffffffffffeL, 0xfffffffee67fffffL, 0xffffffffffffffffL
+ };
+
+ static final long[] jjbitVec63 = {
+ 0x10000000000006L, 0x0L, 0x0L, 0x0L
+ };
+
+ static final long[] jjbitVec64 = {
+ 0x3L, 0x0L, 0x0L, 0x0L
+ };
+
+ static final long[] jjbitVec65 = {
+ 0x0L, 0x800000000000000L, 0x0L, 0x0L
+ };
+
+ static final long[] jjbitVec66 = {
+ 0x5f7ffdffe0f8007fL, 0xffffffffffffffdbL, 0x3ffffffffffffL, 0xfffffffffff80000L
+ };
+
+ static final long[] jjbitVec67 = {
+ 0x18000f0000ffffL, 0xffdf02000000e000L, 0xffffffffffffffffL, 0x9fffffffffffffffL
+ };
+
+ static final long[] jjbitVec68 = {
+ 0x87fffffe03ff0010L, 0xffffffe007fffffeL, 0x7fffffffffffffffL, 0xe0000631cfcfcfcL
+ };
+
+ private int jjMoveNfa_0(int startState, int curPos) {
+ int startsAt = 0;
+ jjnewStateCnt = 86;
+ int i = 1;
+ jjstateSet[0] = startState;
+ int kind = 0x7fffffff;
+ for (;;) {
+ if (++jjround == 0x7fffffff) {
+ ReInitRounds();
+ }
+ if (curChar < 64) {
+ long l = 1L << curChar;
+ do {
+ switch (jjstateSet[--i]) {
+ case 54:
+ if (curChar == 42) {
+ jjstateSet[jjnewStateCnt++] = 59;
+ } else if (curChar == 47) {
+ if (kind > 6) {
+ kind = 6;
+ }
+ jjCheckNAddStates(0, 2);
+ }
+ break;
+ case 0:
+ if ((0x3ff000000000000L & l) != 0L) {
+ jjCheckNAddStates(3, 9);
+ } else if (curChar == 47) {
+ jjAddStates(10, 11);
+ } else if (curChar == 36) {
+ if (kind > 77) {
+ kind = 77;
+ }
+ jjCheckNAdd(37);
+ } else if (curChar == 34) {
+ jjCheckNAddStates(12, 15);
+ } else if (curChar == 39) {
+ jjAddStates(16, 18);
+ } else if (curChar == 46) {
+ jjCheckNAdd(1);
+ }
+ if ((0x3fe000000000000L & l) != 0L) {
+ if (kind > 66) {
+ kind = 66;
+ }
+ jjCheckNAddStates(19, 21);
+ } else if (curChar == 48) {
+ if (kind > 66) {
+ kind = 66;
+ }
+ jjCheckNAddStates(22, 28);
+ }
+ break;
+ case 1:
+ if ((0x3ff000000000000L & l) == 0L) {
+ break;
+ }
+ if (kind > 70) {
+ kind = 70;
+ }
+ jjCheckNAddStates(29, 31);
+ break;
+ case 3:
+ if ((0x280000000000L & l) != 0L) {
+ jjCheckNAdd(4);
+ }
+ break;
+ case 4:
+ if ((0x3ff000000000000L & l) == 0L) {
+ break;
+ }
+ if (kind > 70) {
+ kind = 70;
+ }
+ jjCheckNAddTwoStates(4, 5);
+ break;
+ case 6:
+ if (curChar == 39) {
+ jjAddStates(16, 18);
+ }
+ break;
+ case 7:
+ if ((0xffffff7fffffdbffL & l) != 0L) {
+ jjCheckNAdd(8);
+ }
+ break;
+ case 8:
+ if (curChar == 39 && kind > 75) {
+ kind = 75;
+ }
+ break;
+ case 10:
+ if ((0x8400000000L & l) != 0L) {
+ jjCheckNAdd(8);
+ }
+ break;
+ case 11:
+ if ((0xff000000000000L & l) != 0L) {
+ jjCheckNAddTwoStates(12, 8);
+ }
+ break;
+ case 12:
+ if ((0xff000000000000L & l) != 0L) {
+ jjCheckNAdd(8);
+ }
+ break;
+ case 13:
+ if ((0xf000000000000L & l) != 0L) {
+ jjstateSet[jjnewStateCnt++] = 14;
+ }
+ break;
+ case 14:
+ if ((0xff000000000000L & l) != 0L) {
+ jjCheckNAdd(12);
+ }
+ break;
+ case 16:
+ if ((0x3ff000000000000L & l) != 0L) {
+ jjstateSet[jjnewStateCnt++] = 17;
+ }
+ break;
+ case 17:
+ if ((0x3ff000000000000L & l) != 0L) {
+ jjstateSet[jjnewStateCnt++] = 18;
+ }
+ break;
+ case 18:
+ if ((0x3ff000000000000L & l) != 0L) {
+ jjstateSet[jjnewStateCnt++] = 19;
+ }
+ break;
+ case 19:
+ if ((0x3ff000000000000L & l) != 0L) {
+ jjCheckNAdd(8);
+ }
+ break;
+ case 21:
+ if (curChar == 34) {
+ jjCheckNAddStates(12, 15);
+ }
+ break;
+ case 22:
+ if ((0xfffffffbffffdbffL & l) != 0L) {
+ jjCheckNAddStates(12, 15);
+ }
+ break;
+ case 24:
+ if ((0x8400000000L & l) != 0L) {
+ jjCheckNAddStates(12, 15);
+ }
+ break;
+ case 26:
+ if ((0x3ff000000000000L & l) != 0L) {
+ jjstateSet[jjnewStateCnt++] = 27;
+ }
+ break;
+ case 27:
+ if ((0x3ff000000000000L & l) != 0L) {
+ jjstateSet[jjnewStateCnt++] = 28;
+ }
+ break;
+ case 28:
+ if ((0x3ff000000000000L & l) != 0L) {
+ jjstateSet[jjnewStateCnt++] = 29;
+ }
+ break;
+ case 29:
+ if ((0x3ff000000000000L & l) != 0L) {
+ jjCheckNAddStates(12, 15);
+ }
+ break;
+ case 31:
+ if (curChar == 34 && kind > 76) {
+ kind = 76;
+ }
+ break;
+ case 32:
+ if ((0xff000000000000L & l) != 0L) {
+ jjCheckNAddStates(32, 36);
+ }
+ break;
+ case 33:
+ if ((0xff000000000000L & l) != 0L) {
+ jjCheckNAddStates(12, 15);
+ }
+ break;
+ case 34:
+ if ((0xf000000000000L & l) != 0L) {
+ jjstateSet[jjnewStateCnt++] = 35;
+ }
+ break;
+ case 35:
+ if ((0xff000000000000L & l) != 0L) {
+ jjCheckNAdd(33);
+ }
+ break;
+ case 36:
+ if (curChar != 36) {
+ break;
+ }
+ if (kind > 77) {
+ kind = 77;
+ }
+ jjCheckNAdd(37);
+ break;
+ case 37:
+ if ((0x3ff00100fffc1ffL & l) == 0L) {
+ break;
+ }
+ if (kind > 77) {
+ kind = 77;
+ }
+ jjCheckNAdd(37);
+ break;
+ case 38:
+ if ((0x3ff000000000000L & l) != 0L) {
+ jjCheckNAddStates(3, 9);
+ }
+ break;
+ case 39:
+ if ((0x3ff000000000000L & l) != 0L) {
+ jjCheckNAddStates(37, 39);
+ }
+ break;
+ case 41:
+ if ((0x280000000000L & l) != 0L) {
+ jjCheckNAdd(42);
+ }
+ break;
+ case 42:
+ if ((0x3ff000000000000L & l) != 0L) {
+ jjCheckNAddTwoStates(42, 5);
+ }
+ break;
+ case 43:
+ if ((0x3ff000000000000L & l) != 0L) {
+ jjCheckNAddTwoStates(43, 44);
+ }
+ break;
+ case 45:
+ if ((0x280000000000L & l) != 0L) {
+ jjCheckNAdd(46);
+ }
+ break;
+ case 46:
+ if ((0x3ff000000000000L & l) == 0L) {
+ break;
+ }
+ if (kind > 70) {
+ kind = 70;
+ }
+ jjCheckNAddTwoStates(46, 5);
+ break;
+ case 47:
+ if ((0x3ff000000000000L & l) != 0L) {
+ jjCheckNAddTwoStates(47, 48);
+ }
+ break;
+ case 48:
+ if (curChar != 46) {
+ break;
+ }
+ if (kind > 70) {
+ kind = 70;
+ }
+ jjCheckNAddStates(40, 42);
+ break;
+ case 49:
+ if ((0x3ff000000000000L & l) == 0L) {
+ break;
+ }
+ if (kind > 70) {
+ kind = 70;
+ }
+ jjCheckNAddStates(40, 42);
+ break;
+ case 51:
+ if ((0x280000000000L & l) != 0L) {
+ jjCheckNAdd(52);
+ }
+ break;
+ case 52:
+ if ((0x3ff000000000000L & l) == 0L) {
+ break;
+ }
+ if (kind > 70) {
+ kind = 70;
+ }
+ jjCheckNAddTwoStates(52, 5);
+ break;
+ case 53:
+ if (curChar == 47) {
+ jjAddStates(10, 11);
+ }
+ break;
+ case 55:
+ if ((0xffffffffffffdbffL & l) == 0L) {
+ break;
+ }
+ if (kind > 6) {
+ kind = 6;
+ }
+ jjCheckNAddStates(0, 2);
+ break;
+ case 56:
+ if ((0x2400L & l) != 0L && kind > 6) {
+ kind = 6;
+ }
+ break;
+ case 57:
+ if (curChar == 10 && kind > 6) {
+ kind = 6;
+ }
+ break;
+ case 58:
+ if (curChar == 13) {
+ jjstateSet[jjnewStateCnt++] = 57;
+ }
+ break;
+ case 59:
+ if (curChar == 42) {
+ jjstateSet[jjnewStateCnt++] = 60;
+ }
+ break;
+ case 60:
+ if ((0xffff7fffffffffffL & l) != 0L && kind > 7) {
+ kind = 7;
+ }
+ break;
+ case 61:
+ if (curChar == 42) {
+ jjstateSet[jjnewStateCnt++] = 59;
+ }
+ break;
+ case 62:
+ if ((0x3fe000000000000L & l) == 0L) {
+ break;
+ }
+ if (kind > 66) {
+ kind = 66;
+ }
+ jjCheckNAddStates(19, 21);
+ break;
+ case 63:
+ if ((0x3ff000000000000L & l) != 0L) {
+ jjCheckNAddTwoStates(63, 64);
+ }
+ break;
+ case 65:
+ if ((0x3ff000000000000L & l) == 0L) {
+ break;
+ }
+ if (kind > 66) {
+ kind = 66;
+ }
+ jjCheckNAdd(65);
+ break;
+ case 66:
+ if (curChar != 48) {
+ break;
+ }
+ if (kind > 66) {
+ kind = 66;
+ }
+ jjCheckNAddStates(22, 28);
+ break;
+ case 68:
+ if ((0x3ff000000000000L & l) != 0L) {
+ jjCheckNAddTwoStates(68, 64);
+ }
+ break;
+ case 69:
+ if ((0xff000000000000L & l) != 0L) {
+ jjCheckNAddTwoStates(69, 64);
+ }
+ break;
+ case 71:
+ if ((0x3ff000000000000L & l) == 0L) {
+ break;
+ }
+ if (kind > 66) {
+ kind = 66;
+ }
+ jjstateSet[jjnewStateCnt++] = 71;
+ break;
+ case 72:
+ if ((0xff000000000000L & l) == 0L) {
+ break;
+ }
+ if (kind > 66) {
+ kind = 66;
+ }
+ jjCheckNAdd(72);
+ break;
+ case 74:
+ if ((0x3ff000000000000L & l) != 0L) {
+ jjAddStates(43, 44);
+ }
+ break;
+ case 75:
+ if (curChar == 46) {
+ jjCheckNAdd(76);
+ }
+ break;
+ case 76:
+ if ((0x3ff000000000000L & l) != 0L) {
+ jjCheckNAddTwoStates(76, 77);
+ }
+ break;
+ case 78:
+ if ((0x280000000000L & l) != 0L) {
+ jjCheckNAdd(79);
+ }
+ break;
+ case 79:
+ if ((0x3ff000000000000L & l) == 0L) {
+ break;
+ }
+ if (kind > 70) {
+ kind = 70;
+ }
+ jjCheckNAddTwoStates(79, 5);
+ break;
+ case 81:
+ if ((0x3ff000000000000L & l) != 0L) {
+ jjCheckNAddStates(45, 47);
+ }
+ break;
+ case 82:
+ if (curChar == 46) {
+ jjCheckNAdd(83);
+ }
+ break;
+ case 84:
+ if ((0x280000000000L & l) != 0L) {
+ jjCheckNAdd(85);
+ }
+ break;
+ case 85:
+ if ((0x3ff000000000000L & l) == 0L) {
+ break;
+ }
+ if (kind > 70) {
+ kind = 70;
+ }
+ jjCheckNAddTwoStates(85, 5);
+ break;
+ default:
+ break;
+ }
+ } while (i != startsAt);
+ } else if (curChar < 128) {
+ long l = 1L << (curChar & 077);
+ do {
+ switch (jjstateSet[--i]) {
+ case 0:
+ if ((0x7fffffe87fffffeL & l) == 0L) {
+ break;
+ }
+ if (kind > 77) {
+ kind = 77;
+ }
+ jjCheckNAdd(37);
+ break;
+ case 2:
+ if ((0x2000000020L & l) != 0L) {
+ jjAddStates(48, 49);
+ }
+ break;
+ case 5:
+ if ((0x5000000050L & l) != 0L && kind > 70) {
+ kind = 70;
+ }
+ break;
+ case 7:
+ if ((0xffffffffefffffffL & l) != 0L) {
+ jjCheckNAdd(8);
+ }
+ break;
+ case 9:
+ if (curChar == 92) {
+ jjAddStates(50, 52);
+ }
+ break;
+ case 10:
+ if ((0x14404410000000L & l) != 0L) {
+ jjCheckNAdd(8);
+ }
+ break;
+ case 15:
+ if (curChar == 117) {
+ jjstateSet[jjnewStateCnt++] = 16;
+ }
+ break;
+ case 16:
+ if ((0x7e0000007eL & l) != 0L) {
+ jjstateSet[jjnewStateCnt++] = 17;
+ }
+ break;
+ case 17:
+ if ((0x7e0000007eL & l) != 0L) {
+ jjstateSet[jjnewStateCnt++] = 18;
+ }
+ break;
+ case 18:
+ if ((0x7e0000007eL & l) != 0L) {
+ jjstateSet[jjnewStateCnt++] = 19;
+ }
+ break;
+ case 19:
+ if ((0x7e0000007eL & l) != 0L) {
+ jjCheckNAdd(8);
+ }
+ break;
+ case 20:
+ if (curChar == 92) {
+ jjstateSet[jjnewStateCnt++] = 15;
+ }
+ break;
+ case 22:
+ if ((0xffffffffefffffffL & l) != 0L) {
+ jjCheckNAddStates(12, 15);
+ }
+ break;
+ case 23:
+ if (curChar == 92) {
+ jjAddStates(53, 55);
+ }
+ break;
+ case 24:
+ if ((0x14404410000000L & l) != 0L) {
+ jjCheckNAddStates(12, 15);
+ }
+ break;
+ case 25:
+ if (curChar == 117) {
+ jjstateSet[jjnewStateCnt++] = 26;
+ }
+ break;
+ case 26:
+ if ((0x7e0000007eL & l) != 0L) {
+ jjstateSet[jjnewStateCnt++] = 27;
+ }
+ break;
+ case 27:
+ if ((0x7e0000007eL & l) != 0L) {
+ jjstateSet[jjnewStateCnt++] = 28;
+ }
+ break;
+ case 28:
+ if ((0x7e0000007eL & l) != 0L) {
+ jjstateSet[jjnewStateCnt++] = 29;
+ }
+ break;
+ case 29:
+ if ((0x7e0000007eL & l) != 0L) {
+ jjCheckNAddStates(12, 15);
+ }
+ break;
+ case 30:
+ if (curChar == 92) {
+ jjstateSet[jjnewStateCnt++] = 25;
+ }
+ break;
+ case 37:
+ if ((0x87fffffe87fffffeL & l) == 0L) {
+ break;
+ }
+ if (kind > 77) {
+ kind = 77;
+ }
+ jjCheckNAdd(37);
+ break;
+ case 40:
+ if ((0x2000000020L & l) != 0L) {
+ jjAddStates(56, 57);
+ }
+ break;
+ case 44:
+ if ((0x2000000020L & l) != 0L) {
+ jjAddStates(58, 59);
+ }
+ break;
+ case 50:
+ if ((0x2000000020L & l) != 0L) {
+ jjAddStates(60, 61);
+ }
+ break;
+ case 55:
+ if (kind > 6) {
+ kind = 6;
+ }
+ jjAddStates(0, 2);
+ break;
+ case 60:
+ if (kind > 7) {
+ kind = 7;
+ }
+ break;
+ case 64:
+ if ((0x100000001000L & l) != 0L && kind > 65) {
+ kind = 65;
+ }
+ break;
+ case 67:
+ if ((0x100000001000000L & l) != 0L) {
+ jjCheckNAdd(68);
+ }
+ break;
+ case 68:
+ if ((0x7e0000007eL & l) != 0L) {
+ jjCheckNAddTwoStates(68, 64);
+ }
+ break;
+ case 70:
+ if ((0x100000001000000L & l) != 0L) {
+ jjCheckNAdd(71);
+ }
+ break;
+ case 71:
+ if ((0x7e0000007eL & l) == 0L) {
+ break;
+ }
+ if (kind > 66) {
+ kind = 66;
+ }
+ jjCheckNAdd(71);
+ break;
+ case 73:
+ if ((0x100000001000000L & l) != 0L) {
+ jjCheckNAddTwoStates(74, 75);
+ }
+ break;
+ case 74:
+ if ((0x7e0000007eL & l) != 0L) {
+ jjCheckNAddTwoStates(74, 75);
+ }
+ break;
+ case 76:
+ if ((0x7e0000007eL & l) != 0L) {
+ jjAddStates(62, 63);
+ }
+ break;
+ case 77:
+ if ((0x1000000010000L & l) != 0L) {
+ jjAddStates(64, 65);
+ }
+ break;
+ case 80:
+ if ((0x100000001000000L & l) != 0L) {
+ jjCheckNAdd(81);
+ }
+ break;
+ case 81:
+ if ((0x7e0000007eL & l) != 0L) {
+ jjCheckNAddStates(45, 47);
+ }
+ break;
+ case 83:
+ if ((0x1000000010000L & l) != 0L) {
+ jjAddStates(66, 67);
+ }
+ break;
+ default:
+ break;
+ }
+ } while (i != startsAt);
+ } else {
+ int hiByte = curChar >> 8;
+ int i1 = hiByte >> 6;
+ long l1 = 1L << (hiByte & 077);
+ int i2 = (curChar & 0xff) >> 6;
+ long l2 = 1L << (curChar & 077);
+ do {
+ switch (jjstateSet[--i]) {
+ case 0:
+ if (!jjCanMove_1(hiByte, i1, i2, l1, l2)) {
+ break;
+ }
+ if (kind > 77) {
+ kind = 77;
+ }
+ jjCheckNAdd(37);
+ break;
+ case 7:
+ if (jjCanMove_0(hiByte, i1, i2, l1, l2)) {
+ jjstateSet[jjnewStateCnt++] = 8;
+ }
+ break;
+ case 22:
+ if (jjCanMove_0(hiByte, i1, i2, l1, l2)) {
+ jjAddStates(12, 15);
+ }
+ break;
+ case 37:
+ if (!jjCanMove_2(hiByte, i1, i2, l1, l2)) {
+ break;
+ }
+ if (kind > 77) {
+ kind = 77;
+ }
+ jjCheckNAdd(37);
+ break;
+ case 55:
+ if (!jjCanMove_0(hiByte, i1, i2, l1, l2)) {
+ break;
+ }
+ if (kind > 6) {
+ kind = 6;
+ }
+ jjAddStates(0, 2);
+ break;
+ case 60:
+ if (jjCanMove_0(hiByte, i1, i2, l1, l2) && kind > 7) {
+ kind = 7;
+ }
+ break;
+ default:
+ break;
+ }
+ } while (i != startsAt);
+ }
+ if (kind != 0x7fffffff) {
+ jjmatchedKind = kind;
+ jjmatchedPos = curPos;
+ kind = 0x7fffffff;
+ }
+ ++curPos;
+ if ((i = jjnewStateCnt) == (startsAt = 86 - (jjnewStateCnt = startsAt))) {
+ return curPos;
+ }
+ try {
+ curChar = input_stream.readChar();
+ } catch (java.io.IOException e) {
+ return curPos;
+ }
+ }
+ }
+
+ private int jjMoveStringLiteralDfa0_2() {
+ switch (curChar) {
+ case 42:
+ return jjMoveStringLiteralDfa1_2(0x400L);
+ default:
+ return 1;
+ }
+ }
+
+ private int jjMoveStringLiteralDfa1_2(long active0) {
+ try {
+ curChar = input_stream.readChar();
+ } catch (java.io.IOException e) {
+ return 1;
+ }
+ switch (curChar) {
+ case 47:
+ if ((active0 & 0x400L) != 0L) {
+ return jjStopAtPos(1, 10);
+ }
+ break;
+ default:
+ return 2;
+ }
+ return 2;
+ }
+
+ private int jjMoveStringLiteralDfa0_1() {
+ switch (curChar) {
+ case 42:
+ return jjMoveStringLiteralDfa1_1(0x200L);
+ default:
+ return 1;
+ }
+ }
+
+ private int jjMoveStringLiteralDfa1_1(long active0) {
+ try {
+ curChar = input_stream.readChar();
+ } catch (java.io.IOException e) {
+ return 1;
+ }
+ switch (curChar) {
+ case 47:
+ if ((active0 & 0x200L) != 0L) {
+ return jjStopAtPos(1, 9);
+ }
+ break;
+ default:
+ return 2;
+ }
+ return 2;
+ }
+
+ static final int[] jjnextStates = {
+ 55, 56, 58, 39, 40, 5, 43, 44, 47, 48, 54, 61, 22, 23, 30, 31,
+ 7, 9, 20, 63, 64, 65, 67, 69, 64, 70, 72, 73, 80, 1, 2, 5,
+ 22, 23, 33, 30, 31, 39, 40, 5, 49, 50, 5, 74, 75, 81, 82, 83,
+ 3, 4, 10, 11, 13, 24, 32, 34, 41, 42, 45, 46, 51, 52, 76, 77,
+ 78, 79, 84, 85,
+ };
+
+ private static final boolean jjCanMove_0(int hiByte, int i1, int i2, long l1, long l2) {
+ switch (hiByte) {
+ case 0:
+ return ((jjbitVec2[i2] & l2) != 0L);
+ default:
+ if ((jjbitVec0[i1] & l1) != 0L) {
+ return true;
+ }
+ return false;
+ }
+ }
+
+ private static final boolean jjCanMove_1(int hiByte, int i1, int i2, long l1, long l2) {
+ switch (hiByte) {
+ case 0:
+ return ((jjbitVec4[i2] & l2) != 0L);
+ case 2:
+ return ((jjbitVec5[i2] & l2) != 0L);
+ case 3:
+ return ((jjbitVec6[i2] & l2) != 0L);
+ case 4:
+ return ((jjbitVec7[i2] & l2) != 0L);
+ case 5:
+ return ((jjbitVec8[i2] & l2) != 0L);
+ case 6:
+ return ((jjbitVec9[i2] & l2) != 0L);
+ case 7:
+ return ((jjbitVec10[i2] & l2) != 0L);
+ case 9:
+ return ((jjbitVec11[i2] & l2) != 0L);
+ case 10:
+ return ((jjbitVec12[i2] & l2) != 0L);
+ case 11:
+ return ((jjbitVec13[i2] & l2) != 0L);
+ case 12:
+ return ((jjbitVec14[i2] & l2) != 0L);
+ case 13:
+ return ((jjbitVec15[i2] & l2) != 0L);
+ case 14:
+ return ((jjbitVec16[i2] & l2) != 0L);
+ case 15:
+ return ((jjbitVec17[i2] & l2) != 0L);
+ case 16:
+ return ((jjbitVec18[i2] & l2) != 0L);
+ case 17:
+ return ((jjbitVec19[i2] & l2) != 0L);
+ case 18:
+ return ((jjbitVec20[i2] & l2) != 0L);
+ case 19:
+ return ((jjbitVec21[i2] & l2) != 0L);
+ case 20:
+ return ((jjbitVec0[i2] & l2) != 0L);
+ case 22:
+ return ((jjbitVec22[i2] & l2) != 0L);
+ case 23:
+ return ((jjbitVec23[i2] & l2) != 0L);
+ case 24:
+ return ((jjbitVec24[i2] & l2) != 0L);
+ case 25:
+ return ((jjbitVec25[i2] & l2) != 0L);
+ case 29:
+ return ((jjbitVec26[i2] & l2) != 0L);
+ case 30:
+ return ((jjbitVec27[i2] & l2) != 0L);
+ case 31:
+ return ((jjbitVec28[i2] & l2) != 0L);
+ case 32:
+ return ((jjbitVec29[i2] & l2) != 0L);
+ case 33:
+ return ((jjbitVec30[i2] & l2) != 0L);
+ case 48:
+ return ((jjbitVec31[i2] & l2) != 0L);
+ case 49:
+ return ((jjbitVec32[i2] & l2) != 0L);
+ case 77:
+ return ((jjbitVec33[i2] & l2) != 0L);
+ case 159:
+ return ((jjbitVec34[i2] & l2) != 0L);
+ case 164:
+ return ((jjbitVec35[i2] & l2) != 0L);
+ case 215:
+ return ((jjbitVec36[i2] & l2) != 0L);
+ case 216:
+ return ((jjbitVec37[i2] & l2) != 0L);
+ case 250:
+ return ((jjbitVec38[i2] & l2) != 0L);
+ case 251:
+ return ((jjbitVec39[i2] & l2) != 0L);
+ case 253:
+ return ((jjbitVec40[i2] & l2) != 0L);
+ case 254:
+ return ((jjbitVec41[i2] & l2) != 0L);
+ case 255:
+ return ((jjbitVec42[i2] & l2) != 0L);
+ default:
+ if ((jjbitVec3[i1] & l1) != 0L) {
+ return true;
+ }
+ return false;
+ }
+ }
+
+ private static final boolean jjCanMove_2(int hiByte, int i1, int i2, long l1, long l2) {
+ switch (hiByte) {
+ case 0:
+ return ((jjbitVec43[i2] & l2) != 0L);
+ case 2:
+ return ((jjbitVec5[i2] & l2) != 0L);
+ case 3:
+ return ((jjbitVec44[i2] & l2) != 0L);
+ case 4:
+ return ((jjbitVec45[i2] & l2) != 0L);
+ case 5:
+ return ((jjbitVec46[i2] & l2) != 0L);
+ case 6:
+ return ((jjbitVec47[i2] & l2) != 0L);
+ case 7:
+ return ((jjbitVec48[i2] & l2) != 0L);
+ case 9:
+ return ((jjbitVec49[i2] & l2) != 0L);
+ case 10:
+ return ((jjbitVec50[i2] & l2) != 0L);
+ case 11:
+ return ((jjbitVec51[i2] & l2) != 0L);
+ case 12:
+ return ((jjbitVec52[i2] & l2) != 0L);
+ case 13:
+ return ((jjbitVec53[i2] & l2) != 0L);
+ case 14:
+ return ((jjbitVec54[i2] & l2) != 0L);
+ case 15:
+ return ((jjbitVec55[i2] & l2) != 0L);
+ case 16:
+ return ((jjbitVec56[i2] & l2) != 0L);
+ case 17:
+ return ((jjbitVec19[i2] & l2) != 0L);
+ case 18:
+ return ((jjbitVec20[i2] & l2) != 0L);
+ case 19:
+ return ((jjbitVec57[i2] & l2) != 0L);
+ case 20:
+ return ((jjbitVec0[i2] & l2) != 0L);
+ case 22:
+ return ((jjbitVec22[i2] & l2) != 0L);
+ case 23:
+ return ((jjbitVec58[i2] & l2) != 0L);
+ case 24:
+ return ((jjbitVec59[i2] & l2) != 0L);
+ case 25:
+ return ((jjbitVec60[i2] & l2) != 0L);
+ case 29:
+ return ((jjbitVec26[i2] & l2) != 0L);
+ case 30:
+ return ((jjbitVec27[i2] & l2) != 0L);
+ case 31:
+ return ((jjbitVec28[i2] & l2) != 0L);
+ case 32:
+ return ((jjbitVec61[i2] & l2) != 0L);
+ case 33:
+ return ((jjbitVec30[i2] & l2) != 0L);
+ case 48:
+ return ((jjbitVec62[i2] & l2) != 0L);
+ case 49:
+ return ((jjbitVec32[i2] & l2) != 0L);
+ case 77:
+ return ((jjbitVec33[i2] & l2) != 0L);
+ case 159:
+ return ((jjbitVec34[i2] & l2) != 0L);
+ case 164:
+ return ((jjbitVec35[i2] & l2) != 0L);
+ case 215:
+ return ((jjbitVec36[i2] & l2) != 0L);
+ case 216:
+ return ((jjbitVec63[i2] & l2) != 0L);
+ case 220:
+ return ((jjbitVec64[i2] & l2) != 0L);
+ case 221:
+ return ((jjbitVec65[i2] & l2) != 0L);
+ case 250:
+ return ((jjbitVec38[i2] & l2) != 0L);
+ case 251:
+ return ((jjbitVec66[i2] & l2) != 0L);
+ case 253:
+ return ((jjbitVec40[i2] & l2) != 0L);
+ case 254:
+ return ((jjbitVec67[i2] & l2) != 0L);
+ case 255:
+ return ((jjbitVec68[i2] & l2) != 0L);
+ default:
+ if ((jjbitVec3[i1] & l1) != 0L) {
+ return true;
+ }
+ return false;
+ }
+ }
+
+ /** Token literal values. */
+ public static final String[] jjstrLiteralImages = {
+ "", null, null, null, null, null, null, null, null, null, null, null,
+ "\141\142\163\164\162\141\143\164", "\141\163\163\145\162\164", "\142\157\157\154\145\141\156",
+ "\142\162\145\141\153", "\142\171\164\145", "\143\141\163\145", "\143\141\164\143\150",
+ "\143\150\141\162", "\143\154\141\163\163", "\143\157\156\163\164",
+ "\143\157\156\164\151\156\165\145", "\144\145\146\141\165\154\164", "\144\157", "\144\157\165\142\154\145",
+ "\145\154\163\145", "\145\156\165\155", "\145\170\164\145\156\144\163", "\146\141\154\163\145",
+ "\146\151\156\141\154", "\146\151\156\141\154\154\171", "\146\154\157\141\164", "\146\157\162",
+ "\147\157\164\157", "\151\146", "\151\155\160\154\145\155\145\156\164\163",
+ "\151\155\160\157\162\164", "\151\156\163\164\141\156\143\145\157\146", "\151\156\164",
+ "\151\156\164\145\162\146\141\143\145", "\154\157\156\147", "\156\141\164\151\166\145", "\156\145\167",
+ "\156\165\154\154", "\160\141\143\153\141\147\145", "\160\162\151\166\141\164\145",
+ "\160\162\157\164\145\143\164\145\144", "\160\165\142\154\151\143", "\162\145\164\165\162\156",
+ "\163\150\157\162\164", "\163\164\141\164\151\143", "\163\164\162\151\143\164\146\160",
+ "\163\165\160\145\162", "\163\167\151\164\143\150",
+ "\163\171\156\143\150\162\157\156\151\172\145\144", "\164\150\151\163", "\164\150\162\157\167", "\164\150\162\157\167\163",
+ "\164\162\141\156\163\151\145\156\164", "\164\162\165\145", "\164\162\171", "\166\157\151\144",
+ "\166\157\154\141\164\151\154\145", "\167\150\151\154\145", null, null, null, null, null, null, null, null, null,
+ null, null, null, null, null, null, "\50", "\51", "\173", "\175", "\133", "\135",
+ "\73", "\54", "\56", "\100", "\75", "\74", "\41", "\176", "\77", "\72", "\75\75",
+ "\74\75", "\76\75", "\41\75", "\174\174", "\46\46", "\53\53", "\55\55", "\53", "\55",
+ "\52", "\57", "\46", "\174", "\136", "\45", "\74\74", "\53\75", "\55\75", "\52\75",
+ "\57\75", "\46\75", "\174\75", "\136\75", "\45\75", "\74\74\75", "\76\76\75",
+ "\76\76\76\75", "\56\56\56", "\76\76\76", "\76\76", "\76", "\32", };
+
+ /** Lexer state names. */
+ public static final String[] lexStateNames = {
+ "DEFAULT",
+ "IN_JAVA_DOC_COMMENT",
+ "IN_MULTI_LINE_COMMENT",
+ };
+
+ /** Lex State array. */
+ public static final int[] jjnewLexState = {
+ -1, -1, -1, -1, -1, -1, -1, 1, 2, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1,
+ };
+
+ static final long[] jjtoToken = {
+ 0xfffffffffffff001L, 0xffffffffffff3847L, 0x1L,
+ };
+
+ static final long[] jjtoSkip = {
+ 0x67eL, 0x0L, 0x0L,
+ };
+
+ static final long[] jjtoSpecial = {
+ 0x640L, 0x0L, 0x0L,
+ };
+
+ static final long[] jjtoMore = {
+ 0x980L, 0x0L, 0x0L,
+ };
+
+ protected JavaCharStream input_stream;
+
+ private final int[] jjrounds = new int[86];
+
+ private final int[] jjstateSet = new int[172];
+
+ private final StringBuilder jjimage = new StringBuilder();
+
+ private StringBuilder image = jjimage;
+
+ private int jjimageLen;
+
+ private int lengthOfMatch;
+
+ protected char curChar;
+
+ /** Constructor. */
+ public ASTParserTokenManager(JavaCharStream stream) {
+ if (JavaCharStream.staticFlag) {
+ throw new Error("ERROR: Cannot use a static CharStream class with a non-static lexical analyzer.");
+ }
+ input_stream = stream;
+ }
+
+ /** Constructor. */
+ public ASTParserTokenManager(JavaCharStream stream, int lexState) {
+ this(stream);
+ SwitchTo(lexState);
+ }
+
+ /** Reinitialise parser. */
+ public void ReInit(JavaCharStream stream) {
+ jjmatchedPos = jjnewStateCnt = 0;
+ curLexState = defaultLexState;
+ input_stream = stream;
+ ReInitRounds();
+ }
+
+ private void ReInitRounds() {
+ int i;
+ jjround = 0x80000001;
+ for (i = 86; i-- > 0;) {
+ jjrounds[i] = 0x80000000;
+ }
+ }
+
+ /** Reinitialise parser. */
+ public void ReInit(JavaCharStream stream, int lexState) {
+ ReInit(stream);
+ SwitchTo(lexState);
+ }
+
+ /** Switch to specified lex state. */
+ public void SwitchTo(int lexState) {
+ if (lexState >= 3 || lexState < 0) {
+ throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE);
+ } else {
+ curLexState = lexState;
+ }
+ }
+
+ protected Token jjFillToken() {
+ final Token t;
+ final String curTokenImage;
+ final int beginLine;
+ final int endLine;
+ final int beginColumn;
+ final int endColumn;
+ String im = jjstrLiteralImages[jjmatchedKind];
+ curTokenImage = (im == null) ? input_stream.GetImage() : im;
+ beginLine = input_stream.getBeginLine();
+ beginColumn = input_stream.getBeginColumn();
+ endLine = input_stream.getEndLine();
+ endColumn = input_stream.getEndColumn();
+ t = ASTParser.GTToken.newToken(jjmatchedKind, curTokenImage);
+
+ t.beginLine = beginLine;
+ t.endLine = endLine;
+ t.beginColumn = beginColumn;
+ t.endColumn = endColumn;
+
+ return t;
+ }
+
+ int curLexState = 0;
+
+ int defaultLexState = 0;
+
+ int jjnewStateCnt;
+
+ int jjround;
+
+ int jjmatchedPos;
+
+ int jjmatchedKind;
+
+ /** Get the next Token. */
+ public Token getNextToken() {
+ Token specialToken = null;
+ Token matchedToken;
+ int curPos = 0;
+
+ EOFLoop: for (;;) {
+ try {
+ curChar = input_stream.BeginToken();
+ } catch (java.io.IOException e) {
+ jjmatchedKind = 0;
+ matchedToken = jjFillToken();
+ matchedToken.specialToken = specialToken;
+ CommonTokenAction(matchedToken);
+ return matchedToken;
+ }
+ image = jjimage;
+ image.setLength(0);
+ jjimageLen = 0;
+
+ for (;;) {
+ switch (curLexState) {
+ case 0:
+ try {
+ input_stream.backup(0);
+ while (curChar <= 32 && (0x100003600L & (1L << curChar)) != 0L) {
+ curChar = input_stream.BeginToken();
+ }
+ } catch (java.io.IOException e1) {
+ continue EOFLoop;
+ }
+ jjmatchedKind = 0x7fffffff;
+ jjmatchedPos = 0;
+ curPos = jjMoveStringLiteralDfa0_0();
+ break;
+ case 1:
+ jjmatchedKind = 0x7fffffff;
+ jjmatchedPos = 0;
+ curPos = jjMoveStringLiteralDfa0_1();
+ if (jjmatchedPos == 0 && jjmatchedKind > 11) {
+ jjmatchedKind = 11;
+ }
+ break;
+ case 2:
+ jjmatchedKind = 0x7fffffff;
+ jjmatchedPos = 0;
+ curPos = jjMoveStringLiteralDfa0_2();
+ if (jjmatchedPos == 0 && jjmatchedKind > 11) {
+ jjmatchedKind = 11;
+ }
+ break;
+ }
+ if (jjmatchedKind != 0x7fffffff) {
+ if (jjmatchedPos + 1 < curPos) {
+ input_stream.backup(curPos - jjmatchedPos - 1);
+ }
+ if ((jjtoToken[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L) {
+ matchedToken = jjFillToken();
+ matchedToken.specialToken = specialToken;
+ TokenLexicalActions(matchedToken);
+ if (jjnewLexState[jjmatchedKind] != -1) {
+ curLexState = jjnewLexState[jjmatchedKind];
+ }
+ CommonTokenAction(matchedToken);
+ return matchedToken;
+ } else if ((jjtoSkip[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L) {
+ if ((jjtoSpecial[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L) {
+ matchedToken = jjFillToken();
+ if (specialToken == null) {
+ specialToken = matchedToken;
+ } else {
+ matchedToken.specialToken = specialToken;
+ specialToken = (specialToken.next = matchedToken);
+ }
+ SkipLexicalActions(matchedToken);
+ } else {
+ SkipLexicalActions(null);
+ }
+ if (jjnewLexState[jjmatchedKind] != -1) {
+ curLexState = jjnewLexState[jjmatchedKind];
+ }
+ continue EOFLoop;
+ }
+ MoreLexicalActions();
+ if (jjnewLexState[jjmatchedKind] != -1) {
+ curLexState = jjnewLexState[jjmatchedKind];
+ }
+ curPos = 0;
+ jjmatchedKind = 0x7fffffff;
+ try {
+ curChar = input_stream.readChar();
+ continue;
+ } catch (java.io.IOException e1) {
+ }
+ }
+ int error_line = input_stream.getEndLine();
+ int error_column = input_stream.getEndColumn();
+ String error_after = null;
+ boolean EOFSeen = false;
+ try {
+ input_stream.readChar();
+ input_stream.backup(1);
+ } catch (java.io.IOException e1) {
+ EOFSeen = true;
+ error_after = curPos <= 1 ? "" : input_stream.GetImage();
+ if (curChar == '\n' || curChar == '\r') {
+ error_line++;
+ error_column = 0;
+ } else {
+ error_column++;
+ }
+ }
+ if (!EOFSeen) {
+ input_stream.backup(1);
+ error_after = curPos <= 1 ? "" : input_stream.GetImage();
+ }
+ throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after, curChar, TokenMgrError.LEXICAL_ERROR);
+ }
+ }
+ }
+
+ void SkipLexicalActions(Token matchedToken) {
+ switch (jjmatchedKind) {
+ default:
+ break;
+ }
+ }
+
+ void MoreLexicalActions() {
+ jjimageLen += (lengthOfMatch = jjmatchedPos + 1);
+ switch (jjmatchedKind) {
+ case 7:
+ image.append(input_stream.GetSuffix(jjimageLen));
+ jjimageLen = 0;
+ input_stream.backup(1);
+ break;
+ default:
+ break;
+ }
+ }
+
+ void TokenLexicalActions(Token matchedToken) {
+ switch (jjmatchedKind) {
+ case 125:
+ image.append(jjstrLiteralImages[125]);
+ lengthOfMatch = jjstrLiteralImages[125].length();
+ matchedToken.kind = GT;
+ ((ASTParser.GTToken) matchedToken).realKind = RUNSIGNEDSHIFT;
+ input_stream.backup(2);
+ break;
+ case 126:
+ image.append(jjstrLiteralImages[126]);
+ lengthOfMatch = jjstrLiteralImages[126].length();
+ matchedToken.kind = GT;
+ ((ASTParser.GTToken) matchedToken).realKind = RSIGNEDSHIFT;
+ input_stream.backup(1);
+ break;
+ default:
+ break;
+ }
+ }
+
+ private void jjCheckNAdd(int state) {
+ if (jjrounds[state] != jjround) {
+ jjstateSet[jjnewStateCnt++] = state;
+ jjrounds[state] = jjround;
+ }
+ }
+
+ private void jjAddStates(int start, int end) {
+ do {
+ jjstateSet[jjnewStateCnt++] = jjnextStates[start];
+ } while (start++ != end);
+ }
+
+ private void jjCheckNAddTwoStates(int state1, int state2) {
+ jjCheckNAdd(state1);
+ jjCheckNAdd(state2);
+ }
+
+ private void jjCheckNAddStates(int start, int end) {
+ do {
+ jjCheckNAdd(jjnextStates[start]);
+ } while (start++ != end);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/JavaCharStream.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/JavaCharStream.java
new file mode 100644
index 00000000000..b094f6dbaf4
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/JavaCharStream.java
@@ -0,0 +1,599 @@
+/* Generated By:JavaCC: Do not edit this line. JavaCharStream.java Version 4.1 */
+/* JavaCCOptions:STATIC=false */
+/*
+ * Copyright (C) 2008 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+package japa.parser;
+
+/**
+ * An implementation of interface CharStream, where the stream is assumed to
+ * contain only ASCII characters (with java-like unicode escape processing).
+ */
+
+public class JavaCharStream {
+
+ /** Whether parser is static. */
+ public static final boolean staticFlag = false;
+
+ static final int hexval(char c) throws java.io.IOException {
+ switch (c) {
+ case '0':
+ return 0;
+ case '1':
+ return 1;
+ case '2':
+ return 2;
+ case '3':
+ return 3;
+ case '4':
+ return 4;
+ case '5':
+ return 5;
+ case '6':
+ return 6;
+ case '7':
+ return 7;
+ case '8':
+ return 8;
+ case '9':
+ return 9;
+
+ case 'a':
+ case 'A':
+ return 10;
+ case 'b':
+ case 'B':
+ return 11;
+ case 'c':
+ case 'C':
+ return 12;
+ case 'd':
+ case 'D':
+ return 13;
+ case 'e':
+ case 'E':
+ return 14;
+ case 'f':
+ case 'F':
+ return 15;
+ }
+
+ throw new java.io.IOException(); // Should never come here
+ }
+
+ /** Position in buffer. */
+ public int bufpos = -1;
+
+ int bufsize;
+
+ int available;
+
+ int tokenBegin;
+
+ protected int bufline[];
+
+ protected int bufcolumn[];
+
+ protected int column = 0;
+
+ protected int line = 1;
+
+ protected boolean prevCharIsCR = false;
+
+ protected boolean prevCharIsLF = false;
+
+ protected java.io.Reader inputStream;
+
+ protected char[] nextCharBuf;
+
+ protected char[] buffer;
+
+ protected int maxNextCharInd = 0;
+
+ protected int nextCharInd = -1;
+
+ protected int inBuf = 0;
+
+ protected int tabSize = 8;
+
+ protected void setTabSize(int i) {
+ tabSize = i;
+ }
+
+ protected int getTabSize(int i) {
+ return tabSize;
+ }
+
+ protected void ExpandBuff(boolean wrapAround) {
+ char[] newbuffer = new char[bufsize + 2048];
+ int newbufline[] = new int[bufsize + 2048];
+ int newbufcolumn[] = new int[bufsize + 2048];
+
+ try {
+ if (wrapAround) {
+ System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin);
+ System.arraycopy(buffer, 0, newbuffer,
+ bufsize - tokenBegin, bufpos);
+ buffer = newbuffer;
+
+ System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin);
+ System.arraycopy(bufline, 0, newbufline, bufsize - tokenBegin, bufpos);
+ bufline = newbufline;
+
+ System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin);
+ System.arraycopy(bufcolumn, 0, newbufcolumn, bufsize - tokenBegin, bufpos);
+ bufcolumn = newbufcolumn;
+
+ bufpos += (bufsize - tokenBegin);
+ } else {
+ System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin);
+ buffer = newbuffer;
+
+ System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin);
+ bufline = newbufline;
+
+ System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin);
+ bufcolumn = newbufcolumn;
+
+ bufpos -= tokenBegin;
+ }
+ } catch (Throwable t) {
+ throw new Error(t.getMessage());
+ }
+
+ available = (bufsize += 2048);
+ tokenBegin = 0;
+ }
+
+ protected void FillBuff() throws java.io.IOException {
+ int i;
+ if (maxNextCharInd == 4096) {
+ maxNextCharInd = nextCharInd = 0;
+ }
+
+ try {
+ if ((i = inputStream.read(nextCharBuf, maxNextCharInd,
+ 4096 - maxNextCharInd)) == -1) {
+ inputStream.close();
+ throw new java.io.IOException();
+ } else {
+ maxNextCharInd += i;
+ }
+ return;
+ } catch (java.io.IOException e) {
+ if (bufpos != 0) {
+ --bufpos;
+ backup(0);
+ } else {
+ bufline[bufpos] = line;
+ bufcolumn[bufpos] = column;
+ }
+ throw e;
+ }
+ }
+
+ protected char ReadByte() throws java.io.IOException {
+ if (++nextCharInd >= maxNextCharInd) {
+ FillBuff();
+ }
+
+ return nextCharBuf[nextCharInd];
+ }
+
+ /** @return starting character for token. */
+ public char BeginToken() throws java.io.IOException {
+ if (inBuf > 0) {
+ --inBuf;
+
+ if (++bufpos == bufsize) {
+ bufpos = 0;
+ }
+
+ tokenBegin = bufpos;
+ return buffer[bufpos];
+ }
+
+ tokenBegin = 0;
+ bufpos = -1;
+
+ return readChar();
+ }
+
+ protected void AdjustBuffSize() {
+ if (available == bufsize) {
+ if (tokenBegin > 2048) {
+ bufpos = 0;
+ available = tokenBegin;
+ } else {
+ ExpandBuff(false);
+ }
+ } else if (available > tokenBegin) {
+ available = bufsize;
+ } else if ((tokenBegin - available) < 2048) {
+ ExpandBuff(true);
+ } else {
+ available = tokenBegin;
+ }
+ }
+
+ protected void UpdateLineColumn(char c) {
+ column++;
+
+ if (prevCharIsLF) {
+ prevCharIsLF = false;
+ line += (column = 1);
+ } else if (prevCharIsCR) {
+ prevCharIsCR = false;
+ if (c == '\n') {
+ prevCharIsLF = true;
+ } else {
+ line += (column = 1);
+ }
+ }
+
+ switch (c) {
+ case '\r':
+ prevCharIsCR = true;
+ break;
+ case '\n':
+ prevCharIsLF = true;
+ break;
+ case '\t':
+ column--;
+ column += (tabSize - (column % tabSize));
+ break;
+ default:
+ break;
+ }
+
+ bufline[bufpos] = line;
+ bufcolumn[bufpos] = column;
+ }
+
+ /** Read a character. */
+ public char readChar() throws java.io.IOException {
+ if (inBuf > 0) {
+ --inBuf;
+
+ if (++bufpos == bufsize) {
+ bufpos = 0;
+ }
+
+ return buffer[bufpos];
+ }
+
+ char c;
+
+ if (++bufpos == available) {
+ AdjustBuffSize();
+ }
+
+ if ((buffer[bufpos] = c = ReadByte()) == '\\') {
+ UpdateLineColumn(c);
+
+ int backSlashCnt = 1;
+
+ for (;;) // Read all the backslashes
+ {
+ if (++bufpos == available) {
+ AdjustBuffSize();
+ }
+
+ try {
+ if ((buffer[bufpos] = c = ReadByte()) != '\\') {
+ UpdateLineColumn(c);
+ // found a non-backslash char.
+ if ((c == 'u') && ((backSlashCnt & 1) == 1)) {
+ if (--bufpos < 0) {
+ bufpos = bufsize - 1;
+ }
+
+ break;
+ }
+
+ backup(backSlashCnt);
+ return '\\';
+ }
+ } catch (java.io.IOException e) {
+ if (backSlashCnt > 1) {
+ backup(backSlashCnt - 1);
+ }
+
+ return '\\';
+ }
+
+ UpdateLineColumn(c);
+ backSlashCnt++;
+ }
+
+ // Here, we have seen an odd number of backslash's followed by a 'u'
+ try {
+ while ((c = ReadByte()) == 'u') {
+ ++column;
+ }
+
+ buffer[bufpos] = c = (char) (hexval(c) << 12 |
+ hexval(ReadByte()) << 8 |
+ hexval(ReadByte()) << 4 |
+ hexval(ReadByte()));
+
+ column += 4;
+ } catch (java.io.IOException e) {
+ throw new Error("Invalid escape character at line " + line +
+ " column " + column + ".");
+ }
+
+ if (backSlashCnt == 1) {
+ return c;
+ } else {
+ backup(backSlashCnt - 1);
+ return '\\';
+ }
+ } else {
+ UpdateLineColumn(c);
+ return c;
+ }
+ }
+
+ @Deprecated
+ /**
+ * @deprecated
+ * @see #getEndColumn
+ */
+ public int getColumn() {
+ return bufcolumn[bufpos];
+ }
+
+ @Deprecated
+ /**
+ * @deprecated
+ * @see #getEndLine
+ */
+ public int getLine() {
+ return bufline[bufpos];
+ }
+
+ /** Get end column. */
+ public int getEndColumn() {
+ return bufcolumn[bufpos];
+ }
+
+ /** Get end line. */
+ public int getEndLine() {
+ return bufline[bufpos];
+ }
+
+ /** @return column of token start */
+ public int getBeginColumn() {
+ return bufcolumn[tokenBegin];
+ }
+
+ /** @return line number of token start */
+ public int getBeginLine() {
+ return bufline[tokenBegin];
+ }
+
+ /** Retreat. */
+ public void backup(int amount) {
+
+ inBuf += amount;
+ if ((bufpos -= amount) < 0) {
+ bufpos += bufsize;
+ }
+ }
+
+ /** Constructor. */
+ public JavaCharStream(java.io.Reader dstream,
+ int startline, int startcolumn, int buffersize) {
+ inputStream = dstream;
+ line = startline;
+ column = startcolumn - 1;
+
+ available = bufsize = buffersize;
+ buffer = new char[buffersize];
+ bufline = new int[buffersize];
+ bufcolumn = new int[buffersize];
+ nextCharBuf = new char[4096];
+ }
+
+ /** Constructor. */
+ public JavaCharStream(java.io.Reader dstream,
+ int startline, int startcolumn) {
+ this(dstream, startline, startcolumn, 4096);
+ }
+
+ /** Constructor. */
+ public JavaCharStream(java.io.Reader dstream) {
+ this(dstream, 1, 1, 4096);
+ }
+
+ /** Reinitialise. */
+ public void ReInit(java.io.Reader dstream,
+ int startline, int startcolumn, int buffersize) {
+ inputStream = dstream;
+ line = startline;
+ column = startcolumn - 1;
+
+ if (buffer == null || buffersize != buffer.length) {
+ available = bufsize = buffersize;
+ buffer = new char[buffersize];
+ bufline = new int[buffersize];
+ bufcolumn = new int[buffersize];
+ nextCharBuf = new char[4096];
+ }
+ prevCharIsLF = prevCharIsCR = false;
+ tokenBegin = inBuf = maxNextCharInd = 0;
+ nextCharInd = bufpos = -1;
+ }
+
+ /** Reinitialise. */
+ public void ReInit(java.io.Reader dstream,
+ int startline, int startcolumn) {
+ ReInit(dstream, startline, startcolumn, 4096);
+ }
+
+ /** Reinitialise. */
+ public void ReInit(java.io.Reader dstream) {
+ ReInit(dstream, 1, 1, 4096);
+ }
+
+ /** Constructor. */
+ public JavaCharStream(java.io.InputStream dstream, String encoding, int startline,
+ int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException {
+ this(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize);
+ }
+
+ /** Constructor. */
+ public JavaCharStream(java.io.InputStream dstream, int startline,
+ int startcolumn, int buffersize) {
+ this(new java.io.InputStreamReader(dstream), startline, startcolumn, 4096);
+ }
+
+ /** Constructor. */
+ public JavaCharStream(java.io.InputStream dstream, String encoding, int startline,
+ int startcolumn) throws java.io.UnsupportedEncodingException {
+ this(dstream, encoding, startline, startcolumn, 4096);
+ }
+
+ /** Constructor. */
+ public JavaCharStream(java.io.InputStream dstream, int startline,
+ int startcolumn) {
+ this(dstream, startline, startcolumn, 4096);
+ }
+
+ /** Constructor. */
+ public JavaCharStream(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException {
+ this(dstream, encoding, 1, 1, 4096);
+ }
+
+ /** Constructor. */
+ public JavaCharStream(java.io.InputStream dstream) {
+ this(dstream, 1, 1, 4096);
+ }
+
+ /** Reinitialise. */
+ public void ReInit(java.io.InputStream dstream, String encoding, int startline,
+ int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException {
+ ReInit(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize);
+ }
+
+ /** Reinitialise. */
+ public void ReInit(java.io.InputStream dstream, int startline,
+ int startcolumn, int buffersize) {
+ ReInit(new java.io.InputStreamReader(dstream), startline, startcolumn, buffersize);
+ }
+
+ /** Reinitialise. */
+ public void ReInit(java.io.InputStream dstream, String encoding, int startline,
+ int startcolumn) throws java.io.UnsupportedEncodingException {
+ ReInit(dstream, encoding, startline, startcolumn, 4096);
+ }
+
+ /** Reinitialise. */
+ public void ReInit(java.io.InputStream dstream, int startline,
+ int startcolumn) {
+ ReInit(dstream, startline, startcolumn, 4096);
+ }
+
+ /** Reinitialise. */
+ public void ReInit(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException {
+ ReInit(dstream, encoding, 1, 1, 4096);
+ }
+
+ /** Reinitialise. */
+ public void ReInit(java.io.InputStream dstream) {
+ ReInit(dstream, 1, 1, 4096);
+ }
+
+ /** @return token image as String */
+ public String GetImage() {
+ if (bufpos >= tokenBegin) {
+ return new String(buffer, tokenBegin, bufpos - tokenBegin + 1);
+ } else {
+ return new String(buffer, tokenBegin, bufsize - tokenBegin) +
+ new String(buffer, 0, bufpos + 1);
+ }
+ }
+
+ /** @return suffix */
+ public char[] GetSuffix(int len) {
+ char[] ret = new char[len];
+
+ if ((bufpos + 1) >= len) {
+ System.arraycopy(buffer, bufpos - len + 1, ret, 0, len);
+ } else {
+ System.arraycopy(buffer, bufsize - (len - bufpos - 1), ret, 0,
+ len - bufpos - 1);
+ System.arraycopy(buffer, 0, ret, len - bufpos - 1, bufpos + 1);
+ }
+
+ return ret;
+ }
+
+ /** Set buffers back to null when finished. */
+ public void Done() {
+ nextCharBuf = null;
+ buffer = null;
+ bufline = null;
+ bufcolumn = null;
+ }
+
+ /**
+ * Method to adjust line and column numbers for the start of a token.
+ */
+ public void adjustBeginLineColumn(int newLine, int newCol) {
+ int start = tokenBegin;
+ int len;
+
+ if (bufpos >= tokenBegin) {
+ len = bufpos - tokenBegin + inBuf + 1;
+ } else {
+ len = bufsize - tokenBegin + bufpos + 1 + inBuf;
+ }
+
+ int i = 0, j = 0, k = 0;
+ int nextColDiff = 0, columnDiff = 0;
+
+ while (i < len &&
+ bufline[j = start % bufsize] == bufline[k = ++start % bufsize]) {
+ bufline[j] = newLine;
+ nextColDiff = columnDiff + bufcolumn[k] - bufcolumn[j];
+ bufcolumn[j] = newCol + columnDiff;
+ columnDiff = nextColDiff;
+ i++;
+ }
+
+ if (i < len) {
+ bufline[j] = newLine++;
+ bufcolumn[j] = newCol + columnDiff;
+
+ while (i++ < len) {
+ if (bufline[j = start % bufsize] != bufline[++start % bufsize]) {
+ bufline[j] = newLine++;
+ } else {
+ bufline[j] = newLine;
+ }
+ }
+ }
+
+ line = bufline[j];
+ column = bufcolumn[j];
+ }
+
+}
+/* JavaCC - OriginalChecksum=69daf7a8766456321bf569ae1edca171 (do not edit this line) */
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/JavaParser.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/JavaParser.java
new file mode 100644
index 00000000000..18f98ec9a1e
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/JavaParser.java
@@ -0,0 +1,173 @@
+/*
+ * Copyright (C) 2008 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser;
+
+import japa.parser.ast.CompilationUnit;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Reader;
+
+/**
+ * <p>
+ * This class was generated automatically by javacc, do not edit.
+ * </p>
+ * <p>
+ * Parse Java 1.5 source code and creates Abstract Syntax Tree classes.
+ * </p>
+ * <p>
+ * <b>Note:</b> To use this parser asynchronously, disable de parser cache by calling the method {@link setCacheParser} with <code>false</code> as argument.
+ * </p>
+ *
+ * @author Júlio Vilmar Gesser
+ */
+public final class JavaParser {
+
+ private static ASTParser parser;
+
+ private static boolean cacheParser = true;
+
+ private JavaParser() {
+ // hide the constructor
+ }
+
+ /**
+ * Changes the way that the parser acts when starts to parse. If the
+ * parser cache is enabled, only one insance of this object will be
+ * used in every call to parse methods.
+ * If this parser is intend to be used asynchonously, the cache must
+ * be disabled setting this flag to <code>false</code>.
+ * By default, the cache is enabled.
+ *
+ * @param value
+ * <code>false</code> to disable the parser instance cache.
+ */
+ public static void setCacheParser(boolean value) {
+ cacheParser = value;
+ if (!value) {
+ parser = null;
+ }
+ }
+
+ /**
+ * Parses the Java code contained in the {@link InputStream} and returns
+ * a {@link CompilationUnit} that represents it.
+ *
+ * @param in
+ * {@link InputStream} containing Java source code
+ * @param encoding
+ * encoding of the source code
+ * @return CompilationUnit representing the Java source code
+ * @throws ParseException
+ * if the source code has parser errors
+ */
+ public static CompilationUnit parse(InputStream in, String encoding) throws ParseException {
+ if (cacheParser) {
+ if (parser == null) {
+ parser = new ASTParser(in, encoding);
+ } else {
+ parser.reset(in, encoding);
+ }
+ return parser.CompilationUnit();
+ }
+ return new ASTParser(in, encoding).CompilationUnit();
+ }
+
+ /**
+ * Parses the Java code contained in the {@link InputStream} and returns
+ * a {@link CompilationUnit} that represents it.
+ *
+ * @param in
+ * {@link InputStream} containing Java source code
+ * @return CompilationUnit representing the Java source code
+ * @throws ParseException
+ * if the source code has parser errors
+ */
+ public static CompilationUnit parse(InputStream in) throws ParseException {
+ return parse(in, null);
+ }
+
+ /**
+ * Parses the Java code contained in a {@link File} and returns
+ * a {@link CompilationUnit} that represents it.
+ *
+ * @param file
+ * {@link File} containing Java source code
+ * @param encoding
+ * encoding of the source code
+ * @return CompilationUnit representing the Java source code
+ * @throws ParseException
+ * if the source code has parser errors
+ * @throws IOException
+ */
+ public static CompilationUnit parse(File file, String encoding) throws ParseException, IOException {
+ FileInputStream in = new FileInputStream(file);
+ try {
+ return parse(in, encoding);
+ } finally {
+ in.close();
+ }
+ }
+
+ /**
+ * Parses the Java code contained in a {@link File} and returns
+ * a {@link CompilationUnit} that represents it.
+ *
+ * @param file
+ * {@link File} containing Java source code
+ * @return CompilationUnit representing the Java source code
+ * @throws ParseException
+ * if the source code has parser errors
+ * @throws IOException
+ */
+ public static CompilationUnit parse(File file) throws ParseException, IOException {
+ return parse(file, null);
+ }
+
+ /**
+ * Parses the Java code contained in the {@link InputStream} and returns
+ * a {@link CompilationUnit} that represents it.
+ *
+ * @param in
+ * {@link InputStream} containing Java source code
+ * @param encoding
+ * encoding of the source code
+ * @return CompilationUnit representing the Java source code
+ * @throws ParseException
+ * if the source code has parser errors
+ */
+ public static CompilationUnit parse(Reader in) throws ParseException {
+ if (cacheParser) {
+ if (parser == null) {
+ parser = new ASTParser(in);
+ } else {
+ parser.ReInit(in);
+ }
+ return parser.CompilationUnit();
+ }
+ return new ASTParser(in).CompilationUnit();
+ }
+
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ParseException.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ParseException.java
new file mode 100644
index 00000000000..adbf212f98b
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ParseException.java
@@ -0,0 +1,216 @@
+/* Generated By:JavaCC: Do not edit this line. ParseException.java Version 4.1 */
+/* JavaCCOptions:KEEP_LINE_COL=null */
+/*
+ * Copyright (C) 2008 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+package japa.parser;
+
+/**
+ * This exception is thrown when parse errors are encountered.
+ * You can explicitly create objects of this exception type by
+ * calling the method generateParseException in the generated
+ * parser.
+ *
+ * You can modify this class to customize your error reporting
+ * mechanisms so long as you retain the public fields.
+ */
+public class ParseException extends Exception {
+
+ /**
+ * This constructor is used by the method "generateParseException"
+ * in the generated parser. Calling this constructor generates
+ * a new object of this type with the fields "currentToken",
+ * "expectedTokenSequences", and "tokenImage" set. The boolean
+ * flag "specialConstructor" is also set to true to indicate that
+ * this constructor was used to create this object.
+ * This constructor calls its super class with the empty string
+ * to force the "toString" method of parent class "Throwable" to
+ * print the error message in the form:
+ * ParseException: <result of getMessage>
+ */
+ public ParseException(Token currentTokenVal,
+ int[][] expectedTokenSequencesVal,
+ String[] tokenImageVal) {
+ super("");
+ specialConstructor = true;
+ currentToken = currentTokenVal;
+ expectedTokenSequences = expectedTokenSequencesVal;
+ tokenImage = tokenImageVal;
+ }
+
+ /**
+ * The following constructors are for use by you for whatever
+ * purpose you can think of. Constructing the exception in this
+ * manner makes the exception behave in the normal way - i.e., as
+ * documented in the class "Throwable". The fields "errorToken",
+ * "expectedTokenSequences", and "tokenImage" do not contain
+ * relevant information. The JavaCC generated code does not use
+ * these constructors.
+ */
+
+ public ParseException() {
+ super();
+ specialConstructor = false;
+ }
+
+ /** Constructor with message. */
+ public ParseException(String message) {
+ super(message);
+ specialConstructor = false;
+ }
+
+ /**
+ * This variable determines which constructor was used to create
+ * this object and thereby affects the semantics of the
+ * "getMessage" method (see below).
+ */
+ protected boolean specialConstructor;
+
+ /**
+ * This is the last token that has been consumed successfully. If
+ * this object has been created due to a parse error, the token
+ * followng this token will (therefore) be the first error token.
+ */
+ public Token currentToken;
+
+ /**
+ * Each entry in this array is an array of integers. Each array
+ * of integers represents a sequence of tokens (by their ordinal
+ * values) that is expected at this point of the parse.
+ */
+ public int[][] expectedTokenSequences;
+
+ /**
+ * This is a reference to the "tokenImage" array of the generated
+ * parser within which the parse error occurred. This array is
+ * defined in the generated ...Constants interface.
+ */
+ public String[] tokenImage;
+
+ /**
+ * This method has the standard behavior when this object has been
+ * created using the standard constructors. Otherwise, it uses
+ * "currentToken" and "expectedTokenSequences" to generate a parse
+ * error message and returns it. If this object has been created
+ * due to a parse error, and you do not catch it (it gets thrown
+ * from the parser), then this method is called during the printing
+ * of the final stack trace, and hence the correct error message
+ * gets displayed.
+ */
+ @Override
+ public String getMessage() {
+ if (!specialConstructor) {
+ return super.getMessage();
+ }
+ StringBuffer expected = new StringBuffer();
+ int maxSize = 0;
+ for (int i = 0; i < expectedTokenSequences.length; i++) {
+ if (maxSize < expectedTokenSequences[i].length) {
+ maxSize = expectedTokenSequences[i].length;
+ }
+ for (int j = 0; j < expectedTokenSequences[i].length; j++) {
+ expected.append(tokenImage[expectedTokenSequences[i][j]]).append(' ');
+ }
+ if (expectedTokenSequences[i][expectedTokenSequences[i].length - 1] != 0) {
+ expected.append("...");
+ }
+ expected.append(eol).append(" ");
+ }
+ String retval = "Encountered \"";
+ Token tok = currentToken.next;
+ for (int i = 0; i < maxSize; i++) {
+ if (i != 0) {
+ retval += " ";
+ }
+ if (tok.kind == 0) {
+ retval += tokenImage[0];
+ break;
+ }
+ retval += " " + tokenImage[tok.kind];
+ retval += " \"";
+ retval += add_escapes(tok.image);
+ retval += " \"";
+ tok = tok.next;
+ }
+ retval += "\" at line " + currentToken.next.beginLine + ", column " + currentToken.next.beginColumn;
+ retval += "." + eol;
+ if (expectedTokenSequences.length == 1) {
+ retval += "Was expecting:" + eol + " ";
+ } else {
+ retval += "Was expecting one of:" + eol + " ";
+ }
+ retval += expected.toString();
+ return retval;
+ }
+
+ /**
+ * The end of line string for this machine.
+ */
+ protected String eol = System.getProperty("line.separator", "\n");
+
+ /**
+ * Used to convert raw characters to their escaped version
+ * when these raw version cannot be used as part of an ASCII
+ * string literal.
+ */
+ protected String add_escapes(String str) {
+ StringBuffer retval = new StringBuffer();
+ char ch;
+ for (int i = 0; i < str.length(); i++) {
+ switch (str.charAt(i)) {
+ case 0:
+ continue;
+ case '\b':
+ retval.append("\\b");
+ continue;
+ case '\t':
+ retval.append("\\t");
+ continue;
+ case '\n':
+ retval.append("\\n");
+ continue;
+ case '\f':
+ retval.append("\\f");
+ continue;
+ case '\r':
+ retval.append("\\r");
+ continue;
+ case '\"':
+ retval.append("\\\"");
+ continue;
+ case '\'':
+ retval.append("\\\'");
+ continue;
+ case '\\':
+ retval.append("\\\\");
+ continue;
+ default:
+ if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) {
+ String s = "0000" + Integer.toString(ch, 16);
+ retval.append("\\u" + s.substring(s.length() - 4, s.length()));
+ } else {
+ retval.append(ch);
+ }
+ continue;
+ }
+ }
+ return retval.toString();
+ }
+
+}
+/* JavaCC - OriginalChecksum=4beea1df20cd4144443abe59f34118d0 (do not edit this line) */
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/Token.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/Token.java
new file mode 100644
index 00000000000..9a885a1f69c
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/Token.java
@@ -0,0 +1,142 @@
+/* Generated By:JavaCC: Do not edit this line. Token.java Version 4.1 */
+/* JavaCCOptions:TOKEN_EXTENDS=,KEEP_LINE_COL=null */
+/*
+ * Copyright (C) 2008 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+package japa.parser;
+
+/**
+ * Describes the input token stream.
+ */
+
+public class Token {
+
+ /**
+ * An integer that describes the kind of this token. This numbering
+ * system is determined by JavaCCParser, and a table of these numbers is
+ * stored in the file ...Constants.java.
+ */
+ public int kind;
+
+ /** The line number of the first character of this Token. */
+ public int beginLine;
+
+ /** The column number of the first character of this Token. */
+ public int beginColumn;
+
+ /** The line number of the last character of this Token. */
+ public int endLine;
+
+ /** The column number of the last character of this Token. */
+ public int endColumn;
+
+ /**
+ * The string image of the token.
+ */
+ public String image;
+
+ /**
+ * A reference to the next regular (non-special) token from the input
+ * stream. If this is the last token from the input stream, or if the
+ * token manager has not read tokens beyond this one, this field is
+ * set to null. This is true only if this token is also a regular
+ * token. Otherwise, see below for a description of the contents of
+ * this field.
+ */
+ public Token next;
+
+ /**
+ * This field is used to access special tokens that occur prior to this
+ * token, but after the immediately preceding regular (non-special) token.
+ * If there are no such special tokens, this field is set to null.
+ * When there are more than one such special token, this field refers
+ * to the last of these special tokens, which in turn refers to the next
+ * previous special token through its specialToken field, and so on
+ * until the first special token (whose specialToken field is null).
+ * The next fields of special tokens refer to other special tokens that
+ * immediately follow it (without an intervening regular token). If there
+ * is no such token, this field is null.
+ */
+ public Token specialToken;
+
+ /**
+ * An optional attribute value of the Token.
+ * Tokens which are not used as syntactic sugar will often contain
+ * meaningful values that will be used later on by the compiler or
+ * interpreter. This attribute value is often different from the image.
+ * Any subclass of Token that actually wants to return a non-null value can
+ * override this method as appropriate.
+ */
+ public Object getValue() {
+ return null;
+ }
+
+ /**
+ * No-argument constructor
+ */
+ public Token() {
+ }
+
+ /**
+ * Constructs a new token for the specified Image.
+ */
+ public Token(int kind) {
+ this(kind, null);
+ }
+
+ /**
+ * Constructs a new token for the specified Image and Kind.
+ */
+ public Token(int kind, String image) {
+ this.kind = kind;
+ this.image = image;
+ }
+
+ /**
+ * Returns the image.
+ */
+ @Override
+ public String toString() {
+ return image;
+ }
+
+ /**
+ * Returns a new Token object, by default. However, if you want, you
+ * can create and return subclass objects based on the value of ofKind.
+ * Simply add the cases to the switch for all those special cases.
+ * For example, if you have a subclass of Token called IDToken that
+ * you want to create if ofKind is ID, simply add something like :
+ *
+ * case MyParserConstants.ID : return new IDToken(ofKind, image);
+ *
+ * to the following switch statement. Then you can cast matchedToken
+ * variable to the appropriate type and use sit in your lexical actions.
+ */
+ public static Token newToken(int ofKind, String image) {
+ switch (ofKind) {
+ default:
+ return new Token(ofKind, image);
+ }
+ }
+
+ public static Token newToken(int ofKind) {
+ return newToken(ofKind, null);
+ }
+
+}
+/* JavaCC - OriginalChecksum=36e116391da53a8cb5fc7d23289ae0c7 (do not edit this line) */
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/TokenMgrError.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/TokenMgrError.java
new file mode 100644
index 00000000000..4f46a2efcad
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/TokenMgrError.java
@@ -0,0 +1,158 @@
+/* Generated By:JavaCC: Do not edit this line. TokenMgrError.java Version 4.1 */
+/* JavaCCOptions: */
+/*
+ * Copyright (C) 2008 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+package japa.parser;
+
+/** Token Manager Error. */
+@SuppressWarnings("serial")
+public class TokenMgrError extends Error {
+
+ /*
+ * Ordinals for various reasons why an Error of this type can be thrown.
+ */
+
+ /**
+ * Lexical error occurred.
+ */
+ static final int LEXICAL_ERROR = 0;
+
+ /**
+ * An attempt was made to create a second instance of a static token manager.
+ */
+ static final int STATIC_LEXER_ERROR = 1;
+
+ /**
+ * Tried to change to an invalid lexical state.
+ */
+ static final int INVALID_LEXICAL_STATE = 2;
+
+ /**
+ * Detected (and bailed out of) an infinite loop in the token manager.
+ */
+ static final int LOOP_DETECTED = 3;
+
+ /**
+ * Indicates the reason why the exception is thrown. It will have
+ * one of the above 4 values.
+ */
+ int errorCode;
+
+ /**
+ * Replaces unprintable characters by their escaped (or unicode escaped)
+ * equivalents in the given string
+ */
+ protected static final String addEscapes(String str) {
+ StringBuffer retval = new StringBuffer();
+ char ch;
+ for (int i = 0; i < str.length(); i++) {
+ switch (str.charAt(i)) {
+ case 0:
+ continue;
+ case '\b':
+ retval.append("\\b");
+ continue;
+ case '\t':
+ retval.append("\\t");
+ continue;
+ case '\n':
+ retval.append("\\n");
+ continue;
+ case '\f':
+ retval.append("\\f");
+ continue;
+ case '\r':
+ retval.append("\\r");
+ continue;
+ case '\"':
+ retval.append("\\\"");
+ continue;
+ case '\'':
+ retval.append("\\\'");
+ continue;
+ case '\\':
+ retval.append("\\\\");
+ continue;
+ default:
+ if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) {
+ String s = "0000" + Integer.toString(ch, 16);
+ retval.append("\\u" + s.substring(s.length() - 4, s.length()));
+ } else {
+ retval.append(ch);
+ }
+ continue;
+ }
+ }
+ return retval.toString();
+ }
+
+ /**
+ * Returns a detailed message for the Error when it is thrown by the
+ * token manager to indicate a lexical error.
+ * Parameters :
+ * EOFSeen : indicates if EOF caused the lexical error
+ * curLexState : lexical state in which this error occurred
+ * errorLine : line number when the error occurred
+ * errorColumn : column number when the error occurred
+ * errorAfter : prefix that was seen before this error occurred
+ * curchar : the offending character
+ * Note: You can customize the lexical error message by modifying this method.
+ */
+ protected static String LexicalError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar) {
+ return ("Lexical error at line " +
+ errorLine + ", column " +
+ errorColumn + ". Encountered: " +
+ (EOFSeen ? "<EOF> " : ("\"" + addEscapes(String.valueOf(curChar)) + "\"") + " (" + (int) curChar + "), ") +
+ "after : \"" + addEscapes(errorAfter) + "\"");
+ }
+
+ /**
+ * You can also modify the body of this method to customize your error messages.
+ * For example, cases like LOOP_DETECTED and INVALID_LEXICAL_STATE are not
+ * of end-users concern, so you can return something like :
+ *
+ * "Internal Error : Please file a bug report .... "
+ *
+ * from this method for such cases in the release version of your parser.
+ */
+ @Override
+ public String getMessage() {
+ return super.getMessage();
+ }
+
+ /*
+ * Constructors of various flavors follow.
+ */
+
+ /** No arg constructor. */
+ public TokenMgrError() {
+ }
+
+ /** Constructor with message and reason. */
+ public TokenMgrError(String message, int reason) {
+ super(message);
+ errorCode = reason;
+ }
+
+ /** Full Constructor. */
+ public TokenMgrError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar, int reason) {
+ this(LexicalError(EOFSeen, lexState, errorLine, errorColumn, errorAfter, curChar), reason);
+ }
+}
+/* JavaCC - OriginalChecksum=f513119adae97f8c53113edb988c2492 (do not edit this line) */
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/BlockComment.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/BlockComment.java
new file mode 100644
index 00000000000..ac8b4dd5310
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/BlockComment.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 23/05/2008
+ */
+package japa.parser.ast;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * <p>
+ * AST node that represent block comments.
+ * </p>
+ *
+ * Block comments can has multi lines and are delimited
+ * by "/&#42;" and "&#42;/".
+ *
+ * @author Julio Vilmar Gesser
+ */
+public final class BlockComment extends Comment {
+
+ public BlockComment() {
+ }
+
+ public BlockComment(int beginLine, int beginColumn, int endLine, int endColumn, String content) {
+ super(beginLine, beginColumn, endLine, endColumn, content);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/Comment.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/Comment.java
new file mode 100644
index 00000000000..c01837cc87b
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/Comment.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 23/05/2008
+ */
+package japa.parser.ast;
+
+import japa.parser.ast.body.JavadocComment;
+
+/**
+ * Abstract class for all AST nodes that represent comments.
+ *
+ * @see BlockComment
+ * @see LineComment
+ * @see JavadocComment
+ * @author Julio Vilmar Gesser
+ */
+public abstract class Comment extends Node {
+
+ private String content;
+
+ public Comment() {
+ }
+
+ public Comment(int beginLine, int beginColumn, int endLine, int endColumn, String content) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.content = content;
+ }
+
+ /**
+ * Return the text of the comment.
+ *
+ * @return text of the comment
+ */
+ public final String getContent() {
+ return content;
+ }
+
+ /**
+ * Sets the text of the comment.
+ *
+ * @param content
+ * the text of the comment to set
+ */
+ public void setContent(String content) {
+ this.content = content;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/CompilationUnit.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/CompilationUnit.java
new file mode 100644
index 00000000000..f2ab3a88f90
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/CompilationUnit.java
@@ -0,0 +1,177 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast;
+
+import japa.parser.ast.body.AnnotationDeclaration;
+import japa.parser.ast.body.ClassOrInterfaceDeclaration;
+import japa.parser.ast.body.EmptyTypeDeclaration;
+import japa.parser.ast.body.EnumDeclaration;
+import japa.parser.ast.body.JavadocComment;
+import japa.parser.ast.body.TypeDeclaration;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * <p>
+ * This class represents the entire compilation unit. Each java file denotes a compilation unit.
+ * </p>
+ *
+ * The CompilationUnit is constructed following the syntax:<br>
+ * <code>
+ * <table>
+ * <tr valign=baseline>
+ * <td align=right>CompilationUnit</td>
+ * <td align=center>::=</td>
+ * <td align=left>
+ * ( {@link PackageDeclaration} )?<br>
+ * ( {@link ImportDeclaration} )*<br>
+ * ( {@link TypeDeclaration} )*<br>
+ * </td>
+ * </tr>
+ * </table>
+ * </code>
+ *
+ * @author Julio Vilmar Gesser
+ */
+public final class CompilationUnit extends Node {
+
+ private PackageDeclaration pakage;
+
+ private List<ImportDeclaration> imports;
+
+ private List<TypeDeclaration> types;
+
+ private List<Comment> comments;
+
+ public CompilationUnit() {
+ }
+
+ public CompilationUnit(int beginLine, int beginColumn, int endLine, int endColumn, PackageDeclaration pakage, List<ImportDeclaration> imports, List<TypeDeclaration> types, List<Comment> comments) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.pakage = pakage;
+ this.imports = imports;
+ this.types = types;
+ this.comments = comments;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ /**
+ * Return a list containing all comments declared in this compilation unit.
+ * Including javadocs, line comments and block comments of all types,
+ * inner-classes and other members.<br>
+ * If there is no comment, <code>null</code> is returned.
+ *
+ * @return list with all comments of this compilation unit or <code>null</code>
+ * @see JavadocComment
+ * @see LineComment
+ * @see BlockComment
+ */
+ public List<Comment> getComments() {
+ return comments;
+ }
+
+ /**
+ * Retrieves the list of imports declared in this compilation unit or <code>null</code> if there is no import.
+ *
+ * @return the list of imports or <code>null</code> if there is no import
+ */
+ public List<ImportDeclaration> getImports() {
+ return imports;
+ }
+
+ /**
+ * Retrieves the package declaration of this compilation unit.<br>
+ * If this compilation unit has no package declaration (default package), <code>null</code> is returned.
+ *
+ * @return the package declaration or <code>null</code>
+ */
+ public PackageDeclaration getPakage() {
+ return pakage;
+ }
+
+ /**
+ * Return the list of types declared in this compilation unit.<br>
+ * If there is no types declared, <code>null</code> is returned.
+ *
+ * @return the list of types or <code>null</code> null if there is no type
+ * @see AnnotationDeclaration
+ * @see ClassOrInterfaceDeclaration
+ * @see EmptyTypeDeclaration
+ * @see EnumDeclaration
+ */
+ public List<TypeDeclaration> getTypes() {
+ return types;
+ }
+
+ /**
+ * Sets the list of comments of this compilation unit.
+ *
+ * @param comments
+ * the list of comments
+ */
+ public void setComments(List<Comment> comments) {
+ this.comments = comments;
+ }
+
+ /**
+ * Sets the list of imports of this compilation unit.
+ * The list is initially <code>null</code>.
+ *
+ * @param imports
+ * the list of imports
+ */
+ public void setImports(List<ImportDeclaration> imports) {
+ this.imports = imports;
+ }
+
+ /**
+ * Sets or clear the package declarations of this compilation unit.
+ *
+ * @param pakage
+ * the pakage declaration to set or <code>null</code> to default package
+ */
+ public void setPakage(PackageDeclaration pakage) {
+ this.pakage = pakage;
+ }
+
+ /**
+ * Sets the list of types declared in this compilation unit.
+ *
+ * @param types
+ * the lis of types
+ */
+ public void setTypes(List<TypeDeclaration> types) {
+ this.types = types;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/ImportDeclaration.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/ImportDeclaration.java
new file mode 100644
index 00000000000..d4bf38a08cb
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/ImportDeclaration.java
@@ -0,0 +1,133 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast;
+
+import japa.parser.ast.expr.NameExpr;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * <p>
+ * This class represents a import declaration. Imports are optional for the {@link CompilationUnit}.
+ * </p>
+ *
+ * The ImportDeclaration is constructed following the syntax:<br>
+ * <code>
+ * <table>
+ * <tr valign=baseline>
+ * <td align=right>ImportDeclaration</td>
+ * <td align=center>::=</td>
+ * <td align=left>
+ * "import" ( "static" )? {@link NameExpr} ( "." "*" )? ";"
+ * </td>
+ * </tr>
+ * </table>
+ * </code>
+ *
+ * @author Julio Vilmar Gesser
+ */
+public final class ImportDeclaration extends Node {
+
+ private NameExpr name;
+
+ private boolean static_;
+
+ private boolean asterisk;
+
+ public ImportDeclaration() {
+ }
+
+ public ImportDeclaration(int beginLine, int beginColumn, int endLine, int endColumn, NameExpr name, boolean isStatic, boolean isAsterisk) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.name = name;
+ this.static_ = isStatic;
+ this.asterisk = isAsterisk;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ /**
+ * Retrieves the name of the import.
+ *
+ * @return the name of the import
+ */
+ public NameExpr getName() {
+ return name;
+ }
+
+ /**
+ * Return if the import ends with "*".
+ *
+ * @return <code>true</code> if the import ends with "*", <code>false</code> otherwise
+ */
+ public boolean isAsterisk() {
+ return asterisk;
+ }
+
+ /**
+ * Return if the import is static.
+ *
+ * @return <code>true</code> if the import is static, <code>false</code> otherwise
+ */
+ public boolean isStatic() {
+ return static_;
+ }
+
+ /**
+ * Sets if this import is asterisk.
+ *
+ * @param asterisk
+ * <code>true</code> if this import is asterisk
+ */
+ public void setAsterisk(boolean asterisk) {
+ this.asterisk = asterisk;
+ }
+
+ /**
+ * Sets the name this import.
+ *
+ * @param name
+ * the name to set
+ */
+ public void setName(NameExpr name) {
+ this.name = name;
+ }
+
+ /**
+ * Sets if this import is static.
+ *
+ * @param static_
+ * <code>true</code> if this import is static
+ */
+ public void setStatic(boolean static_) {
+ this.static_ = static_;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/LineComment.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/LineComment.java
new file mode 100644
index 00000000000..83636a74d7e
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/LineComment.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 23/05/2008
+ */
+package japa.parser.ast;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * <p>
+ * AST node that represent line comments.
+ * </p>
+ *
+ * Line comments are started with "//" and finish at
+ * the end of the line ("\n").
+ *
+ * @author Julio Vilmar Gesser
+ */
+public final class LineComment extends Comment {
+
+ public LineComment() {
+ }
+
+ public LineComment(int beginLine, int beginColumn, int endLine, int endColumn, String content) {
+ super(beginLine, beginColumn, endLine, endColumn, content);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/Node.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/Node.java
new file mode 100644
index 00000000000..3d396b3777f
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/Node.java
@@ -0,0 +1,191 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast;
+
+import japa.parser.ast.visitor.DumpVisitor;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * Abstract class for all nodes of the AST.
+ *
+ * @author Julio Vilmar Gesser
+ */
+public abstract class Node {
+
+ private int beginLine;
+
+ private int beginColumn;
+
+ private int endLine;
+
+ private int endColumn;
+
+ /**
+ * This attribute can store additional information from semantic analysis.
+ */
+ private Object data;
+
+ public Node() {
+ }
+
+ public Node(int beginLine, int beginColumn, int endLine, int endColumn) {
+ this.beginLine = beginLine;
+ this.beginColumn = beginColumn;
+ this.endLine = endLine;
+ this.endColumn = endColumn;
+ }
+
+ /**
+ * Accept method for visitor support.
+ *
+ * @param <R>
+ * the type the return value of the visitor
+ * @param <A>
+ * the type the argument passed for the visitor
+ * @param v
+ * the visitor implementation
+ * @param arg
+ * any value relevant for the visitor
+ * @return the result of the visit
+ */
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ /**
+ * Accept method for visitor support.
+ *
+ * @param <A>
+ * the type the argument passed for the visitor
+ * @param v
+ * the visitor implementation
+ * @param arg
+ * any value relevant for the visitor
+ */
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ /**
+ * Return the begin column of this node.
+ *
+ * @return the begin column of this node
+ */
+ public final int getBeginColumn() {
+ return beginColumn;
+ }
+
+ /**
+ * Return the begin line of this node.
+ *
+ * @return the begin line of this node
+ */
+ public final int getBeginLine() {
+ return beginLine;
+ }
+
+ /**
+ * Use this to retrieve additional information associated to this node.
+ */
+ public final Object getData() {
+ return data;
+ }
+
+ /**
+ * Return the end column of this node.
+ *
+ * @return the end column of this node
+ */
+ public final int getEndColumn() {
+ return endColumn;
+ }
+
+ /**
+ * Return the end line of this node.
+ *
+ * @return the end line of this node
+ */
+ public final int getEndLine() {
+ return endLine;
+ }
+
+ /**
+ * Sets the begin column of this node.
+ *
+ * @param beginColumn
+ * the begin column of this node
+ */
+ public final void setBeginColumn(int beginColumn) {
+ this.beginColumn = beginColumn;
+ }
+
+ /**
+ * Sets the begin line of this node.
+ *
+ * @param beginLine
+ * the begin line of this node
+ */
+ public final void setBeginLine(int beginLine) {
+ this.beginLine = beginLine;
+ }
+
+ /**
+ * Use this to store additional information to this node.
+ */
+ public final void setData(Object data) {
+ this.data = data;
+ }
+
+ /**
+ * Sets the end column of this node.
+ *
+ * @param endColumn
+ * the end column of this node
+ */
+ public final void setEndColumn(int endColumn) {
+ this.endColumn = endColumn;
+ }
+
+ /**
+ * Sets the end line of this node.
+ *
+ * @param endLine
+ * the end line of this node
+ */
+ public final void setEndLine(int endLine) {
+ this.endLine = endLine;
+ }
+
+ /**
+ * Return the String representation of this node.
+ *
+ * @return the String representation of this node
+ */
+ @Override
+ public final String toString() {
+ DumpVisitor visitor = new DumpVisitor();
+ accept(visitor, null);
+ return visitor.getSource();
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/PackageDeclaration.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/PackageDeclaration.java
new file mode 100644
index 00000000000..cc910afe4f6
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/PackageDeclaration.java
@@ -0,0 +1,114 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 17/10/2007
+ */
+package japa.parser.ast;
+
+import japa.parser.ast.expr.AnnotationExpr;
+import japa.parser.ast.expr.NameExpr;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * <p>
+ * This class represents the package declaration. The package declaration is optional for the {@link CompilationUnit}.
+ * </p>
+ *
+ * The PackageDeclaration is constructed following the syntax:<br>
+ * <code>
+ * <table>
+ * <tr valign=baseline>
+ * <td align=right>PackageDeclaration</td>
+ * <td align=center>::=</td>
+ * <td align=left>
+ * ( {@link AnnotationExpr} )* "package" {@link NameExpr} ) ";"
+ * </td>
+ * </tr>
+ * </table>
+ * </code>
+ *
+ * @author Julio Vilmar Gesser
+ */
+public final class PackageDeclaration extends Node {
+
+ private List<AnnotationExpr> annotations;
+
+ private NameExpr name;
+
+ public PackageDeclaration() {
+ }
+
+ public PackageDeclaration(int beginLine, int beginColumn, int endLine, int endColumn, List<AnnotationExpr> annotations, NameExpr name) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.annotations = annotations;
+ this.name = name;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ /**
+ * Retrieves the list of annotations declared before the package
+ * declaration. Return <code>null</code> if there are no annotations.
+ *
+ * @return list of annotations or <code>null</code>
+ */
+ public List<AnnotationExpr> getAnnotations() {
+ return annotations;
+ }
+
+ /**
+ * Return the name of the package.
+ *
+ * @return the name of the package
+ */
+ public NameExpr getName() {
+ return name;
+ }
+
+ /**
+ *
+ * @param annotations
+ * the annotations to set
+ */
+ public void setAnnotations(List<AnnotationExpr> annotations) {
+ this.annotations = annotations;
+ }
+
+ /**
+ * Sets the name of this package declaration.
+ *
+ * @param name
+ * the name to set
+ */
+ public void setName(NameExpr name) {
+ this.name = name;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/TypeParameter.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/TypeParameter.java
new file mode 100644
index 00000000000..6d5006fb1b9
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/TypeParameter.java
@@ -0,0 +1,114 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast;
+
+import japa.parser.ast.type.ClassOrInterfaceType;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * <p>
+ * This class represents the declaration of a genetics argument.
+ * </p>
+ *
+ * The TypeParameter is constructed following the syntax:<br>
+ * <code>
+ * <table>
+ * <tr valign=baseline>
+ * <td align=right>TypeParameter</td>
+ * <td align=center>::=</td>
+ * <td align=left>
+ * &lt;IDENTIFIER&gt; ( "extends" {@link ClassOrInterfaceType} ( "&" {@link ClassOrInterfaceType} )* )?
+ * </td>
+ * </tr>
+ * </table>
+ * </code>
+ *
+ * @author Julio Vilmar Gesser
+ */
+public final class TypeParameter extends Node {
+
+ private String name;
+
+ private List<ClassOrInterfaceType> typeBound;
+
+ public TypeParameter() {
+ }
+
+ public TypeParameter(int beginLine, int beginColumn, int endLine, int endColumn, String name, List<ClassOrInterfaceType> typeBound) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.name = name;
+ this.typeBound = typeBound;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ /**
+ * Return the name of the paramenter.
+ *
+ * @return the name of the paramenter
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * Return the list of {@link ClassOrInterfaceType} that this parameter
+ * extends. Return <code>null</code> null if there are no type.
+ *
+ * @return list of types that this paramente extends or <code>null</code>
+ */
+ public List<ClassOrInterfaceType> getTypeBound() {
+ return typeBound;
+ }
+
+ /**
+ * Sets the name of this type parameter.
+ *
+ * @param name
+ * the name to set
+ */
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ /**
+ * Sets the list o types.
+ *
+ * @param typeBound
+ * the typeBound to set
+ */
+ public void setTypeBound(List<ClassOrInterfaceType> typeBound) {
+ this.typeBound = typeBound;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/AnnotationDeclaration.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/AnnotationDeclaration.java
new file mode 100644
index 00000000000..07ad2b8a3c6
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/AnnotationDeclaration.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 21/11/2006
+ */
+package japa.parser.ast.body;
+
+import japa.parser.ast.expr.AnnotationExpr;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class AnnotationDeclaration extends TypeDeclaration {
+
+ public AnnotationDeclaration() {
+ }
+
+ public AnnotationDeclaration(int beginLine, int beginColumn, int endLine, int endColumn, JavadocComment javaDoc, int modifiers, List<AnnotationExpr> annotations, String name, List<BodyDeclaration> members) {
+ super(beginLine, beginColumn, endLine, endColumn, annotations, javaDoc, name, modifiers, members);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/AnnotationMemberDeclaration.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/AnnotationMemberDeclaration.java
new file mode 100644
index 00000000000..e453f0a3903
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/AnnotationMemberDeclaration.java
@@ -0,0 +1,97 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 21/11/2006
+ */
+package japa.parser.ast.body;
+
+import japa.parser.ast.expr.AnnotationExpr;
+import japa.parser.ast.expr.Expression;
+import japa.parser.ast.type.Type;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class AnnotationMemberDeclaration extends BodyDeclaration {
+
+ private int modifiers;
+
+ private Type type;
+
+ private String name;
+
+ private Expression defaultValue;
+
+ public AnnotationMemberDeclaration() {
+ }
+
+ public AnnotationMemberDeclaration(int beginLine, int beginColumn, int endLine, int endColumn, JavadocComment javaDoc, int modifiers, List<AnnotationExpr> annotations, Type type, String name, Expression defaultValue) {
+ super(beginLine, beginColumn, endLine, endColumn, annotations, javaDoc);
+ this.modifiers = modifiers;
+ this.type = type;
+ this.name = name;
+ this.defaultValue = defaultValue;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getDefaultValue() {
+ return defaultValue;
+ }
+
+ public int getModifiers() {
+ return modifiers;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public Type getType() {
+ return type;
+ }
+
+ public void setDefaultValue(Expression defaultValue) {
+ this.defaultValue = defaultValue;
+ }
+
+ public void setModifiers(int modifiers) {
+ this.modifiers = modifiers;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void setType(Type type) {
+ this.type = type;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/BodyDeclaration.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/BodyDeclaration.java
new file mode 100644
index 00000000000..af540c292f2
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/BodyDeclaration.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast.body;
+
+import japa.parser.ast.Node;
+import japa.parser.ast.expr.AnnotationExpr;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public abstract class BodyDeclaration extends Node {
+
+ private JavadocComment javaDoc;
+
+ private List<AnnotationExpr> annotations;
+
+ public BodyDeclaration() {
+ }
+
+ public BodyDeclaration(int beginLine, int beginColumn, int endLine, int endColumn, List<AnnotationExpr> annotations, JavadocComment javaDoc) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.javaDoc = javaDoc;
+ this.annotations = annotations;
+ }
+
+ public final JavadocComment getJavaDoc() {
+ return javaDoc;
+ }
+
+ public final List<AnnotationExpr> getAnnotations() {
+ return annotations;
+ }
+
+ public final void setJavaDoc(JavadocComment javaDoc) {
+ this.javaDoc = javaDoc;
+ }
+
+ public final void setAnnotations(List<AnnotationExpr> annotations) {
+ this.annotations = annotations;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/ClassOrInterfaceDeclaration.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/ClassOrInterfaceDeclaration.java
new file mode 100644
index 00000000000..473bb244159
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/ClassOrInterfaceDeclaration.java
@@ -0,0 +1,98 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast.body;
+
+import japa.parser.ast.TypeParameter;
+import japa.parser.ast.expr.AnnotationExpr;
+import japa.parser.ast.type.ClassOrInterfaceType;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ClassOrInterfaceDeclaration extends TypeDeclaration {
+
+ private boolean interface_;
+
+ private List<TypeParameter> typeParameters;
+
+ private List<ClassOrInterfaceType> extendsList;
+
+ private List<ClassOrInterfaceType> implementsList;
+
+ public ClassOrInterfaceDeclaration() {
+ }
+
+ public ClassOrInterfaceDeclaration(int beginLine, int beginColumn, int endLine, int endColumn, JavadocComment javaDoc, int modifiers, List<AnnotationExpr> annotations, boolean isInterface, String name, List<TypeParameter> typeParameters,
+ List<ClassOrInterfaceType> extendsList, List<ClassOrInterfaceType> implementsList, List<BodyDeclaration> members) {
+ super(beginLine, beginColumn, endLine, endColumn, annotations, javaDoc, name, modifiers, members);
+ this.interface_ = isInterface;
+ this.typeParameters = typeParameters;
+ this.extendsList = extendsList;
+ this.implementsList = implementsList;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public List<ClassOrInterfaceType> getExtends() {
+ return extendsList;
+ }
+
+ public List<ClassOrInterfaceType> getImplements() {
+ return implementsList;
+ }
+
+ public List<TypeParameter> getTypeParameters() {
+ return typeParameters;
+ }
+
+ public boolean isInterface() {
+ return interface_;
+ }
+
+ public void setExtends(List<ClassOrInterfaceType> extendsList) {
+ this.extendsList = extendsList;
+ }
+
+ public void setImplements(List<ClassOrInterfaceType> implementsList) {
+ this.implementsList = implementsList;
+ }
+
+ public void setInterface(boolean interface_) {
+ this.interface_ = interface_;
+ }
+
+ public void setTypeParameters(List<TypeParameter> typeParameters) {
+ this.typeParameters = typeParameters;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/ConstructorDeclaration.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/ConstructorDeclaration.java
new file mode 100644
index 00000000000..8af73d596f4
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/ConstructorDeclaration.java
@@ -0,0 +1,121 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast.body;
+
+import japa.parser.ast.TypeParameter;
+import japa.parser.ast.expr.AnnotationExpr;
+import japa.parser.ast.expr.NameExpr;
+import japa.parser.ast.stmt.BlockStmt;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ConstructorDeclaration extends BodyDeclaration {
+
+ private int modifiers;
+
+ private List<TypeParameter> typeParameters;
+
+ private String name;
+
+ private List<Parameter> parameters;
+
+ private List<NameExpr> throws_;
+
+ private BlockStmt block;
+
+ public ConstructorDeclaration() {
+ }
+
+ public ConstructorDeclaration(int beginLine, int beginColumn, int endLine, int endColumn, JavadocComment javaDoc, int modifiers, List<AnnotationExpr> annotations, List<TypeParameter> typeParameters, String name, List<Parameter> parameters,
+ List<NameExpr> throws_, BlockStmt block) {
+ super(beginLine, beginColumn, endLine, endColumn, annotations, javaDoc);
+ this.modifiers = modifiers;
+ this.typeParameters = typeParameters;
+ this.name = name;
+ this.parameters = parameters;
+ this.throws_ = throws_;
+ this.block = block;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public BlockStmt getBlock() {
+ return block;
+ }
+
+ public int getModifiers() {
+ return modifiers;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public List<Parameter> getParameters() {
+ return parameters;
+ }
+
+ public List<NameExpr> getThrows() {
+ return throws_;
+ }
+
+ public List<TypeParameter> getTypeParameters() {
+ return typeParameters;
+ }
+
+ public void setBlock(BlockStmt block) {
+ this.block = block;
+ }
+
+ public void setModifiers(int modifiers) {
+ this.modifiers = modifiers;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void setParameters(List<Parameter> parameters) {
+ this.parameters = parameters;
+ }
+
+ public void setThrows(List<NameExpr> throws_) {
+ this.throws_ = throws_;
+ }
+
+ public void setTypeParameters(List<TypeParameter> typeParameters) {
+ this.typeParameters = typeParameters;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/EmptyMemberDeclaration.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/EmptyMemberDeclaration.java
new file mode 100644
index 00000000000..79f1c7601d5
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/EmptyMemberDeclaration.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 07/11/2006
+ */
+package japa.parser.ast.body;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class EmptyMemberDeclaration extends BodyDeclaration {
+
+ public EmptyMemberDeclaration() {
+ }
+
+ public EmptyMemberDeclaration(int beginLine, int beginColumn, int endLine, int endColumn, JavadocComment javaDoc) {
+ super(beginLine, beginColumn, endLine, endColumn, null, javaDoc);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/EmptyTypeDeclaration.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/EmptyTypeDeclaration.java
new file mode 100644
index 00000000000..7090017fde2
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/EmptyTypeDeclaration.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 20/01/2007
+ */
+package japa.parser.ast.body;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class EmptyTypeDeclaration extends TypeDeclaration {
+
+ public EmptyTypeDeclaration() {
+ }
+
+ public EmptyTypeDeclaration(int beginLine, int beginColumn, int endLine, int endColumn, JavadocComment javaDoc) {
+ super(beginLine, beginColumn, endLine, endColumn, null, javaDoc, null, 0, null);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/EnumConstantDeclaration.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/EnumConstantDeclaration.java
new file mode 100644
index 00000000000..814bd2e3ced
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/EnumConstantDeclaration.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/11/2006
+ */
+package japa.parser.ast.body;
+
+import japa.parser.ast.expr.AnnotationExpr;
+import japa.parser.ast.expr.Expression;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class EnumConstantDeclaration extends BodyDeclaration {
+
+ private String name;
+
+ private List<Expression> args;
+
+ private List<BodyDeclaration> classBody;
+
+ public EnumConstantDeclaration() {
+ }
+
+ public EnumConstantDeclaration(int beginLine, int beginColumn, int endLine, int endColumn, JavadocComment javaDoc, List<AnnotationExpr> annotations, String name, List<Expression> args, List<BodyDeclaration> classBody) {
+ super(beginLine, beginColumn, endLine, endColumn, annotations, javaDoc);
+ this.name = name;
+ this.args = args;
+ this.classBody = classBody;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public List<Expression> getArgs() {
+ return args;
+ }
+
+ public List<BodyDeclaration> getClassBody() {
+ return classBody;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setArgs(List<Expression> args) {
+ this.args = args;
+ }
+
+ public void setClassBody(List<BodyDeclaration> classBody) {
+ this.classBody = classBody;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/EnumDeclaration.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/EnumDeclaration.java
new file mode 100644
index 00000000000..b1185537641
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/EnumDeclaration.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast.body;
+
+import japa.parser.ast.expr.AnnotationExpr;
+import japa.parser.ast.type.ClassOrInterfaceType;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class EnumDeclaration extends TypeDeclaration {
+
+ private List<ClassOrInterfaceType> implementsList;
+
+ private List<EnumConstantDeclaration> entries;
+
+ public EnumDeclaration() {
+ }
+
+ public EnumDeclaration(int beginLine, int beginColumn, int endLine, int endColumn, JavadocComment javaDoc, int modifiers, List<AnnotationExpr> annotations, String name, List<ClassOrInterfaceType> implementsList, List<EnumConstantDeclaration> entries,
+ List<BodyDeclaration> members) {
+ super(beginLine, beginColumn, endLine, endColumn, annotations, javaDoc, name, modifiers, members);
+ this.implementsList = implementsList;
+ this.entries = entries;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public List<EnumConstantDeclaration> getEntries() {
+ return entries;
+ }
+
+ public List<ClassOrInterfaceType> getImplements() {
+ return implementsList;
+ }
+
+ public void setEntries(List<EnumConstantDeclaration> entries) {
+ this.entries = entries;
+ }
+
+ public void setImplements(List<ClassOrInterfaceType> implementsList) {
+ this.implementsList = implementsList;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/FieldDeclaration.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/FieldDeclaration.java
new file mode 100644
index 00000000000..e868e7a7320
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/FieldDeclaration.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast.body;
+
+import japa.parser.ast.expr.AnnotationExpr;
+import japa.parser.ast.type.Type;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class FieldDeclaration extends BodyDeclaration {
+
+ private int modifiers;
+
+ private Type type;
+
+ private List<VariableDeclarator> variables;
+
+ public FieldDeclaration() {
+ }
+
+ public FieldDeclaration(int beginLine, int beginColumn, int endLine, int endColumn, JavadocComment javaDoc, int modifiers, List<AnnotationExpr> annotations, Type type, List<VariableDeclarator> variables) {
+ super(beginLine, beginColumn, endLine, endColumn, annotations, javaDoc);
+ this.modifiers = modifiers;
+ this.type = type;
+ this.variables = variables;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public int getModifiers() {
+ return modifiers;
+ }
+
+ public Type getType() {
+ return type;
+ }
+
+ public List<VariableDeclarator> getVariables() {
+ return variables;
+ }
+
+ public void setModifiers(int modifiers) {
+ this.modifiers = modifiers;
+ }
+
+ public void setType(Type type) {
+ this.type = type;
+ }
+
+ public void setVariables(List<VariableDeclarator> variables) {
+ this.variables = variables;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/InitializerDeclaration.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/InitializerDeclaration.java
new file mode 100644
index 00000000000..0f3882b3845
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/InitializerDeclaration.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 07/11/2006
+ */
+package japa.parser.ast.body;
+
+import japa.parser.ast.stmt.BlockStmt;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class InitializerDeclaration extends BodyDeclaration {
+
+ private boolean isStatic;
+
+ private BlockStmt block;
+
+ public InitializerDeclaration() {
+ }
+
+ public InitializerDeclaration(int beginLine, int beginColumn, int endLine, int endColumn, JavadocComment javaDoc, boolean isStatic, BlockStmt block) {
+ super(beginLine, beginColumn, endLine, endColumn, null, javaDoc);
+ this.isStatic = isStatic;
+ this.block = block;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public BlockStmt getBlock() {
+ return block;
+ }
+
+ public boolean isStatic() {
+ return isStatic;
+ }
+
+ public void setBlock(BlockStmt block) {
+ this.block = block;
+ }
+
+ public void setStatic(boolean isStatic) {
+ this.isStatic = isStatic;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/JavadocComment.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/JavadocComment.java
new file mode 100644
index 00000000000..5241b3cf22b
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/JavadocComment.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 23/05/2008
+ */
+package japa.parser.ast.body;
+
+import japa.parser.ast.Comment;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class JavadocComment extends Comment {
+
+ public JavadocComment() {
+ }
+
+ public JavadocComment(int beginLine, int beginColumn, int endLine, int endColumn, String content) {
+ super(beginLine, beginColumn, endLine, endColumn, content);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/MethodDeclaration.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/MethodDeclaration.java
new file mode 100644
index 00000000000..1337198d173
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/MethodDeclaration.java
@@ -0,0 +1,144 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast.body;
+
+import japa.parser.ast.TypeParameter;
+import japa.parser.ast.expr.AnnotationExpr;
+import japa.parser.ast.expr.NameExpr;
+import japa.parser.ast.stmt.BlockStmt;
+import japa.parser.ast.type.Type;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class MethodDeclaration extends BodyDeclaration {
+
+ private int modifiers;
+
+ private List<TypeParameter> typeParameters;
+
+ private Type type;
+
+ private String name;
+
+ private List<Parameter> parameters;
+
+ private int arrayCount;
+
+ private List<NameExpr> throws_;
+
+ private BlockStmt body;
+
+ public MethodDeclaration() {
+ }
+
+ public MethodDeclaration(int beginLine, int beginColumn, int endLine, int endColumn, JavadocComment javaDoc, int modifiers, List<AnnotationExpr> annotations, List<TypeParameter> typeParameters, Type type, String name, List<Parameter> parameters,
+ int arrayCount, List<NameExpr> throws_, BlockStmt block) {
+ super(beginLine, beginColumn, endLine, endColumn, annotations, javaDoc);
+ this.modifiers = modifiers;
+ this.typeParameters = typeParameters;
+ this.type = type;
+ this.name = name;
+ this.parameters = parameters;
+ this.arrayCount = arrayCount;
+ this.throws_ = throws_;
+ this.body = block;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public int getArrayCount() {
+ return arrayCount;
+ }
+
+ public BlockStmt getBody() {
+ return body;
+ }
+
+ public int getModifiers() {
+ return modifiers;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public List<Parameter> getParameters() {
+ return parameters;
+ }
+
+ public List<NameExpr> getThrows() {
+ return throws_;
+ }
+
+ public Type getType() {
+ return type;
+ }
+
+ public List<TypeParameter> getTypeParameters() {
+ return typeParameters;
+ }
+
+ public void setArrayCount(int arrayCount) {
+ this.arrayCount = arrayCount;
+ }
+
+ public void setBody(BlockStmt body) {
+ this.body = body;
+ }
+
+ public void setModifiers(int modifiers) {
+ this.modifiers = modifiers;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void setParameters(List<Parameter> parameters) {
+ this.parameters = parameters;
+ }
+
+ public void setThrows(List<NameExpr> throws_) {
+ this.throws_ = throws_;
+ }
+
+ public void setType(Type type) {
+ this.type = type;
+ }
+
+ public void setTypeParameters(List<TypeParameter> typeParameters) {
+ this.typeParameters = typeParameters;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/ModifierSet.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/ModifierSet.java
new file mode 100644
index 00000000000..ad2dfaa7253
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/ModifierSet.java
@@ -0,0 +1,118 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+package japa.parser.ast.body;
+
+/**
+ * Class to hold modifiers.
+ */
+public final class ModifierSet {
+
+ /* Definitions of the bits in the modifiers field. */
+ public static final int PUBLIC = 0x0001;
+
+ public static final int PROTECTED = 0x0002;
+
+ public static final int PRIVATE = 0x0004;
+
+ public static final int ABSTRACT = 0x0008;
+
+ public static final int STATIC = 0x0010;
+
+ public static final int FINAL = 0x0020;
+
+ public static final int SYNCHRONIZED = 0x0040;
+
+ public static final int NATIVE = 0x0080;
+
+ public static final int TRANSIENT = 0x0100;
+
+ public static final int VOLATILE = 0x0200;
+
+ public static final int STRICTFP = 0x1000;
+
+ /**
+ * Adds the given modifier.
+ */
+ public static int addModifier(int modifiers, int mod) {
+ return modifiers |= mod;
+ }
+
+ public static boolean hasModifier(int modifiers, int modifier) {
+ return (modifiers & modifier) != 0;
+ }
+
+ public static boolean isAbstract(int modifiers) {
+ return (modifiers & ABSTRACT) != 0;
+ }
+
+ public static boolean isFinal(int modifiers) {
+ return (modifiers & FINAL) != 0;
+ }
+
+ public static boolean isNative(int modifiers) {
+ return (modifiers & NATIVE) != 0;
+ }
+
+ public static boolean isPrivate(int modifiers) {
+ return (modifiers & PRIVATE) != 0;
+ }
+
+ public static boolean isProtected(int modifiers) {
+ return (modifiers & PROTECTED) != 0;
+ }
+
+ /**
+ * A set of accessors that indicate whether the specified modifier
+ * is in the set.
+ */
+
+ public static boolean isPublic(int modifiers) {
+ return (modifiers & PUBLIC) != 0;
+ }
+
+ public static boolean isStatic(int modifiers) {
+ return (modifiers & STATIC) != 0;
+ }
+
+ public static boolean isStrictfp(int modifiers) {
+ return (modifiers & STRICTFP) != 0;
+ }
+
+ public static boolean isSynchronized(int modifiers) {
+ return (modifiers & SYNCHRONIZED) != 0;
+ }
+
+ public static boolean isTransient(int modifiers) {
+ return (modifiers & TRANSIENT) != 0;
+ }
+
+ public static boolean isVolatile(int modifiers) {
+ return (modifiers & VOLATILE) != 0;
+ }
+
+ /**
+ * Removes the given modifier.
+ */
+ public static int removeModifier(int modifiers, int mod) {
+ return modifiers &= ~mod;
+ }
+
+ private ModifierSet() {
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/Parameter.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/Parameter.java
new file mode 100644
index 00000000000..faa4c8fff26
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/Parameter.java
@@ -0,0 +1,108 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 03/11/2006
+ */
+package japa.parser.ast.body;
+
+import japa.parser.ast.Node;
+import japa.parser.ast.expr.AnnotationExpr;
+import japa.parser.ast.type.Type;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class Parameter extends Node {
+
+ private int modifiers;
+
+ private List<AnnotationExpr> annotations;
+
+ private Type type;
+
+ private boolean isVarArgs;
+
+ private VariableDeclaratorId id;
+
+ public Parameter() {
+ }
+
+ public Parameter(int beginLine, int beginColumn, int endLine, int endColumn, int modifiers, List<AnnotationExpr> annotations, Type type, boolean isVarArgs, VariableDeclaratorId id) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.modifiers = modifiers;
+ this.annotations = annotations;
+ this.type = type;
+ this.isVarArgs = isVarArgs;
+ this.id = id;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public List<AnnotationExpr> getAnnotations() {
+ return annotations;
+ }
+
+ public VariableDeclaratorId getId() {
+ return id;
+ }
+
+ public int getModifiers() {
+ return modifiers;
+ }
+
+ public Type getType() {
+ return type;
+ }
+
+ public boolean isVarArgs() {
+ return isVarArgs;
+ }
+
+ public void setAnnotations(List<AnnotationExpr> annotations) {
+ this.annotations = annotations;
+ }
+
+ public void setId(VariableDeclaratorId id) {
+ this.id = id;
+ }
+
+ public void setModifiers(int modifiers) {
+ this.modifiers = modifiers;
+ }
+
+ public void setType(Type type) {
+ this.type = type;
+ }
+
+ public void setVarArgs(boolean isVarArgs) {
+ this.isVarArgs = isVarArgs;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/TypeDeclaration.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/TypeDeclaration.java
new file mode 100644
index 00000000000..79107a962ed
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/TypeDeclaration.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast.body;
+
+import japa.parser.ast.expr.AnnotationExpr;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public abstract class TypeDeclaration extends BodyDeclaration {
+
+ private String name;
+
+ private int modifiers;
+
+ private List<BodyDeclaration> members;
+
+ public TypeDeclaration() {
+ }
+
+ public TypeDeclaration(int beginLine, int beginColumn, int endLine, int endColumn, List<AnnotationExpr> annotations, JavadocComment javaDoc, String name, int modifiers, List<BodyDeclaration> members) {
+ super(beginLine, beginColumn, endLine, endColumn, annotations, javaDoc);
+ this.name = name;
+ this.modifiers = modifiers;
+ this.members = members;
+ }
+
+ public final List<BodyDeclaration> getMembers() {
+ return members;
+ }
+
+ public final int getModifiers() {
+ return modifiers;
+ }
+
+ public final String getName() {
+ return name;
+ }
+
+ public void setMembers(List<BodyDeclaration> members) {
+ this.members = members;
+ }
+
+ public final void setModifiers(int modifiers) {
+ this.modifiers = modifiers;
+ }
+
+ public final void setName(String name) {
+ this.name = name;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/VariableDeclarator.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/VariableDeclarator.java
new file mode 100644
index 00000000000..d5ecc164f09
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/VariableDeclarator.java
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast.body;
+
+import japa.parser.ast.Node;
+import japa.parser.ast.expr.Expression;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class VariableDeclarator extends Node {
+
+ private VariableDeclaratorId id;
+
+ private Expression init;
+
+ public VariableDeclarator() {
+ }
+
+ public VariableDeclarator(int beginLine, int beginColumn, int endLine, int endColumn, VariableDeclaratorId id, Expression init) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.id = id;
+ this.init = init;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public VariableDeclaratorId getId() {
+ return id;
+ }
+
+ public Expression getInit() {
+ return init;
+ }
+
+ public void setId(VariableDeclaratorId id) {
+ this.id = id;
+ }
+
+ public void setInit(Expression init) {
+ this.init = init;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/VariableDeclaratorId.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/VariableDeclaratorId.java
new file mode 100644
index 00000000000..98bdd8c040c
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/body/VariableDeclaratorId.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast.body;
+
+import japa.parser.ast.Node;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class VariableDeclaratorId extends Node {
+
+ private String name;
+
+ private int arrayCount;
+
+ public VariableDeclaratorId() {
+ }
+
+ public VariableDeclaratorId(int beginLine, int beginColumn, int endLine, int endColumn, String name, int arrayCount) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.name = name;
+ this.arrayCount = arrayCount;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public int getArrayCount() {
+ return arrayCount;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setArrayCount(int arrayCount) {
+ this.arrayCount = arrayCount;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/AnnotationExpr.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/AnnotationExpr.java
new file mode 100644
index 00000000000..a0cb8e270bf
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/AnnotationExpr.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 21/11/2006
+ */
+package japa.parser.ast.expr;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public abstract class AnnotationExpr extends Expression {
+
+ public AnnotationExpr() {
+ }
+
+ public AnnotationExpr(int beginLine, int beginColumn, int endLine, int endColumn) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/ArrayAccessExpr.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/ArrayAccessExpr.java
new file mode 100644
index 00000000000..2b3ceb92b03
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/ArrayAccessExpr.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast.expr;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ArrayAccessExpr extends Expression {
+
+ private Expression name;
+
+ private Expression index;
+
+ public ArrayAccessExpr() {
+ }
+
+ public ArrayAccessExpr(int beginLine, int beginColumn, int endLine, int endColumn, Expression name, Expression index) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.name = name;
+ this.index = index;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getIndex() {
+ return index;
+ }
+
+ public Expression getName() {
+ return name;
+ }
+
+ public void setIndex(Expression index) {
+ this.index = index;
+ }
+
+ public void setName(Expression name) {
+ this.name = name;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/ArrayCreationExpr.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/ArrayCreationExpr.java
new file mode 100644
index 00000000000..94e379150ae
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/ArrayCreationExpr.java
@@ -0,0 +1,106 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast.expr;
+
+import japa.parser.ast.type.Type;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ArrayCreationExpr extends Expression {
+
+ private Type type;
+
+ private int arrayCount;
+
+ private ArrayInitializerExpr initializer;
+
+ private List<Expression> dimensions;
+
+ public ArrayCreationExpr() {
+ }
+
+ public ArrayCreationExpr(int beginLine, int beginColumn, int endLine, int endColumn, Type type, int arrayCount, ArrayInitializerExpr initializer) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.type = type;
+ this.arrayCount = arrayCount;
+ this.initializer = initializer;
+ this.dimensions = null;
+ }
+
+ public ArrayCreationExpr(int beginLine, int beginColumn, int endLine, int endColumn, Type type, List<Expression> dimensions, int arrayCount) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.type = type;
+ this.arrayCount = arrayCount;
+ this.dimensions = dimensions;
+ this.initializer = null;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public int getArrayCount() {
+ return arrayCount;
+ }
+
+ public List<Expression> getDimensions() {
+ return dimensions;
+ }
+
+ public ArrayInitializerExpr getInitializer() {
+ return initializer;
+ }
+
+ public Type getType() {
+ return type;
+ }
+
+
+ public void setArrayCount(int arrayCount) {
+ this.arrayCount = arrayCount;
+ }
+
+ public void setDimensions(List<Expression> dimensions) {
+ this.dimensions = dimensions;
+ }
+
+ public void setInitializer(ArrayInitializerExpr initializer) {
+ this.initializer = initializer;
+ }
+
+ public void setType(Type type) {
+ this.type = type;
+ }
+
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/ArrayInitializerExpr.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/ArrayInitializerExpr.java
new file mode 100644
index 00000000000..9f38c589759
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/ArrayInitializerExpr.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast.expr;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ArrayInitializerExpr extends Expression {
+
+ private List<Expression> values;
+
+ public ArrayInitializerExpr() {
+ }
+
+ public ArrayInitializerExpr(int beginLine, int beginColumn, int endLine, int endColumn, List<Expression> values) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.values = values;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public List<Expression> getValues() {
+ return values;
+ }
+
+ public void setValues(List<Expression> values) {
+ this.values = values;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/AssignExpr.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/AssignExpr.java
new file mode 100644
index 00000000000..6b9c715f212
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/AssignExpr.java
@@ -0,0 +1,97 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast.expr;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class AssignExpr extends Expression {
+
+ public static enum Operator {
+ assign, // =
+ plus, // +=
+ minus, // -=
+ star, // *=
+ slash, // /=
+ and, // &=
+ or, // |=
+ xor, // ^=
+ rem, // %=
+ lShift, // <<=
+ rSignedShift, // >>=
+ rUnsignedShift, // >>>=
+ }
+
+ private Expression target;
+
+ private Expression value;
+
+ private Operator op;
+
+ public AssignExpr() {
+ }
+
+ public AssignExpr(int beginLine, int beginColumn, int endLine, int endColumn, Expression target, Expression value, Operator op) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.target = target;
+ this.value = value;
+ this.op = op;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Operator getOperator() {
+ return op;
+ }
+
+ public Expression getTarget() {
+ return target;
+ }
+
+ public Expression getValue() {
+ return value;
+ }
+
+ public void setOperator(Operator op) {
+ this.op = op;
+ }
+
+ public void setTarget(Expression target) {
+ this.target = target;
+ }
+
+ public void setValue(Expression value) {
+ this.value = value;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/BinaryExpr.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/BinaryExpr.java
new file mode 100644
index 00000000000..7742be65b5e
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/BinaryExpr.java
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast.expr;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class BinaryExpr extends Expression {
+
+ public static enum Operator {
+ or, // ||
+ and, // &&
+ binOr, // |
+ binAnd, // &
+ xor, // ^
+ equals, // ==
+ notEquals, // !=
+ less, // <
+ greater, // >
+ lessEquals, // <=
+ greaterEquals, // >=
+ lShift, // <<
+ rSignedShift, // >>
+ rUnsignedShift, // >>>
+ plus, // +
+ minus, // -
+ times, // *
+ divide, // /
+ remainder, // %
+ }
+
+ private Expression left;
+
+ private Expression right;
+
+ private Operator op;
+
+ public BinaryExpr() {
+ }
+
+ public BinaryExpr(int beginLine, int beginColumn, int endLine, int endColumn, Expression left, Expression right, Operator op) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.left = left;
+ this.right = right;
+ this.op = op;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getLeft() {
+ return left;
+ }
+
+ public Operator getOperator() {
+ return op;
+ }
+
+ public Expression getRight() {
+ return right;
+ }
+
+ public void setLeft(Expression left) {
+ this.left = left;
+ }
+
+ public void setOperator(Operator op) {
+ this.op = op;
+ }
+
+ public void setRight(Expression right) {
+ this.right = right;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/BooleanLiteralExpr.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/BooleanLiteralExpr.java
new file mode 100644
index 00000000000..4f614b88bed
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/BooleanLiteralExpr.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 02/03/2007
+ */
+package japa.parser.ast.expr;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class BooleanLiteralExpr extends LiteralExpr {
+
+ private boolean value;
+
+ public BooleanLiteralExpr() {
+ }
+
+ public BooleanLiteralExpr(int beginLine, int beginColumn, int endLine, int endColumn, boolean value) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.value = value;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public boolean getValue() {
+ return value;
+ }
+
+ public void setValue(boolean value) {
+ this.value = value;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/CastExpr.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/CastExpr.java
new file mode 100644
index 00000000000..85e4fbf8007
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/CastExpr.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast.expr;
+
+import japa.parser.ast.type.Type;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class CastExpr extends Expression {
+
+ private Type type;
+
+ private Expression expr;
+
+ public CastExpr() {
+ }
+
+ public CastExpr(int beginLine, int beginColumn, int endLine, int endColumn, Type type, Expression expr) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.type = type;
+ this.expr = expr;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getExpr() {
+ return expr;
+ }
+
+ public Type getType() {
+ return type;
+ }
+
+ public void setExpr(Expression expr) {
+ this.expr = expr;
+ }
+
+ public void setType(Type type) {
+ this.type = type;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/CharLiteralExpr.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/CharLiteralExpr.java
new file mode 100644
index 00000000000..09c9372fd41
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/CharLiteralExpr.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 02/03/2007
+ */
+package japa.parser.ast.expr;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class CharLiteralExpr extends StringLiteralExpr {
+
+ public CharLiteralExpr() {
+ }
+
+ public CharLiteralExpr(int beginLine, int beginColumn, int endLine, int endColumn, String value) {
+ super(beginLine, beginColumn, endLine, endColumn, value);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/ClassExpr.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/ClassExpr.java
new file mode 100644
index 00000000000..c3e59ee3755
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/ClassExpr.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast.expr;
+
+import japa.parser.ast.type.Type;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ClassExpr extends Expression {
+
+ private Type type;
+
+ public ClassExpr() {
+ }
+
+ public ClassExpr(int beginLine, int beginColumn, int endLine, int endColumn, Type type) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.type = type;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Type getType() {
+ return type;
+ }
+
+ public void setType(Type type) {
+ this.type = type;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/ConditionalExpr.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/ConditionalExpr.java
new file mode 100644
index 00000000000..de616bbe851
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/ConditionalExpr.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast.expr;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ConditionalExpr extends Expression {
+
+ private Expression condition;
+
+ private Expression thenExpr;
+
+ private Expression elseExpr;
+
+ public ConditionalExpr() {
+ }
+
+ public ConditionalExpr(int beginLine, int beginColumn, int endLine, int endColumn, Expression condition, Expression thenExpr, Expression elseExpr) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.condition = condition;
+ this.thenExpr = thenExpr;
+ this.elseExpr = elseExpr;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getCondition() {
+ return condition;
+ }
+
+ public Expression getElseExpr() {
+ return elseExpr;
+ }
+
+ public Expression getThenExpr() {
+ return thenExpr;
+ }
+
+ public void setCondition(Expression condition) {
+ this.condition = condition;
+ }
+
+ public void setElseExpr(Expression elseExpr) {
+ this.elseExpr = elseExpr;
+ }
+
+ public void setThenExpr(Expression thenExpr) {
+ this.thenExpr = thenExpr;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/DoubleLiteralExpr.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/DoubleLiteralExpr.java
new file mode 100644
index 00000000000..02df5bbc474
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/DoubleLiteralExpr.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 02/03/2007
+ */
+package japa.parser.ast.expr;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class DoubleLiteralExpr extends StringLiteralExpr {
+
+ public DoubleLiteralExpr() {
+ }
+
+ public DoubleLiteralExpr(int beginLine, int beginColumn, int endLine, int endColumn, String value) {
+ super(beginLine, beginColumn, endLine, endColumn, value);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/EnclosedExpr.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/EnclosedExpr.java
new file mode 100644
index 00000000000..90a0f0882af
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/EnclosedExpr.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast.expr;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class EnclosedExpr extends Expression {
+
+ private Expression inner;
+
+ public EnclosedExpr() {
+ }
+
+ public EnclosedExpr(int beginLine, int beginColumn, int endLine, int endColumn, Expression inner) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.inner = inner;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getInner() {
+ return inner;
+ }
+
+ public void setInner(Expression inner) {
+ this.inner = inner;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/Expression.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/Expression.java
new file mode 100644
index 00000000000..f4813ee2ed2
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/Expression.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 10/10/2006
+ */
+package japa.parser.ast.expr;
+
+import japa.parser.ast.Node;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public abstract class Expression extends Node {
+
+ public Expression() {
+ }
+
+ public Expression(int beginLine, int beginColumn, int endLine, int endColumn) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/FieldAccessExpr.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/FieldAccessExpr.java
new file mode 100644
index 00000000000..444956e1bdb
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/FieldAccessExpr.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast.expr;
+
+import japa.parser.ast.type.Type;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class FieldAccessExpr extends Expression {
+
+ private Expression scope;
+
+ private List<Type> typeArgs;
+
+ private String field;
+
+ public FieldAccessExpr() {
+ }
+
+ public FieldAccessExpr(int beginLine, int beginColumn, int endLine, int endColumn, Expression scope, List<Type> typeArgs, String field) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.scope = scope;
+ this.typeArgs = typeArgs;
+ this.field = field;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public String getField() {
+ return field;
+ }
+
+ public Expression getScope() {
+ return scope;
+ }
+
+ public List<Type> getTypeArgs() {
+ return typeArgs;
+ }
+
+ public void setField(String field) {
+ this.field = field;
+ }
+
+ public void setScope(Expression scope) {
+ this.scope = scope;
+ }
+
+ public void setTypeArgs(List<Type> typeArgs) {
+ this.typeArgs = typeArgs;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/InstanceOfExpr.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/InstanceOfExpr.java
new file mode 100644
index 00000000000..cf2954c3a27
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/InstanceOfExpr.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast.expr;
+
+import japa.parser.ast.type.Type;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class InstanceOfExpr extends Expression {
+
+ private Expression expr;
+
+ private Type type;
+
+ public InstanceOfExpr() {
+ }
+
+ public InstanceOfExpr(int beginLine, int beginColumn, int endLine, int endColumn, Expression expr, Type type) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.expr = expr;
+ this.type = type;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getExpr() {
+ return expr;
+ }
+
+ public Type getType() {
+ return type;
+ }
+
+ public void setExpr(Expression expr) {
+ this.expr = expr;
+ }
+
+ public void setType(Type type) {
+ this.type = type;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/IntegerLiteralExpr.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/IntegerLiteralExpr.java
new file mode 100644
index 00000000000..ff362ace5f1
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/IntegerLiteralExpr.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 02/03/2007
+ */
+package japa.parser.ast.expr;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public class IntegerLiteralExpr extends StringLiteralExpr {
+
+ public IntegerLiteralExpr() {
+ }
+
+ public IntegerLiteralExpr(int beginLine, int beginColumn, int endLine, int endColumn, String value) {
+ super(beginLine, beginColumn, endLine, endColumn, value);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public final boolean isMinValue() {
+ return value != null && //
+ value.length() == 10 && //
+ value.equals("2147483648");
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/IntegerLiteralMinValueExpr.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/IntegerLiteralMinValueExpr.java
new file mode 100644
index 00000000000..c4a14c6389d
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/IntegerLiteralMinValueExpr.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 09/03/2007
+ */
+package japa.parser.ast.expr;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class IntegerLiteralMinValueExpr extends IntegerLiteralExpr {
+
+ public IntegerLiteralMinValueExpr() {
+ this.value = "-2147483648";
+ }
+
+ public IntegerLiteralMinValueExpr(int beginLine, int beginColumn, int endLine, int endColumn) {
+ super(beginLine, beginColumn, endLine, endColumn, "-2147483648");
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/LiteralExpr.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/LiteralExpr.java
new file mode 100644
index 00000000000..e2fe637eb35
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/LiteralExpr.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast.expr;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public abstract class LiteralExpr extends Expression {
+
+ public LiteralExpr() {
+ }
+
+ public LiteralExpr(int beginLine, int beginColumn, int endLine, int endColumn) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/LongLiteralExpr.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/LongLiteralExpr.java
new file mode 100644
index 00000000000..f5009c15038
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/LongLiteralExpr.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 02/03/2007
+ */
+package japa.parser.ast.expr;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public class LongLiteralExpr extends StringLiteralExpr {
+
+ public LongLiteralExpr() {
+ }
+
+ public LongLiteralExpr(int beginLine, int beginColumn, int endLine, int endColumn, String value) {
+ super(beginLine, beginColumn, endLine, endColumn, value);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public final boolean isMinValue() {
+ return value != null && //
+ value.length() == 20 && //
+ value.startsWith("9223372036854775808") && //
+ (value.charAt(19) == 'L' || value.charAt(19) == 'l');
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/LongLiteralMinValueExpr.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/LongLiteralMinValueExpr.java
new file mode 100644
index 00000000000..fc26b305378
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/LongLiteralMinValueExpr.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 09/03/2007
+ */
+package japa.parser.ast.expr;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class LongLiteralMinValueExpr extends LongLiteralExpr {
+
+ public LongLiteralMinValueExpr() {
+ this.value = "-9223372036854775808L";
+ }
+
+ public LongLiteralMinValueExpr(int beginLine, int beginColumn, int endLine, int endColumn) {
+ super(beginLine, beginColumn, endLine, endColumn, "-9223372036854775808L");
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/MarkerAnnotationExpr.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/MarkerAnnotationExpr.java
new file mode 100644
index 00000000000..36d76f9ff6d
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/MarkerAnnotationExpr.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 21/11/2006
+ */
+package japa.parser.ast.expr;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class MarkerAnnotationExpr extends AnnotationExpr {
+
+ private NameExpr name;
+
+ public MarkerAnnotationExpr() {
+ }
+
+ public MarkerAnnotationExpr(int beginLine, int beginColumn, int endLine, int endColumn, NameExpr name) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.name = name;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public NameExpr getName() {
+ return name;
+ }
+
+ public void setName(NameExpr name) {
+ this.name = name;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/MemberValuePair.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/MemberValuePair.java
new file mode 100644
index 00000000000..c309831ee79
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/MemberValuePair.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 21/11/2006
+ */
+package japa.parser.ast.expr;
+
+import japa.parser.ast.Node;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class MemberValuePair extends Node {
+
+ private String name;
+
+ private Expression value;
+
+ public MemberValuePair() {
+ }
+
+ public MemberValuePair(int beginLine, int beginColumn, int endLine, int endColumn, String name, Expression value) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.name = name;
+ this.value = value;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public Expression getValue() {
+ return value;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void setValue(Expression value) {
+ this.value = value;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/MethodCallExpr.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/MethodCallExpr.java
new file mode 100644
index 00000000000..577833afb9a
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/MethodCallExpr.java
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast.expr;
+
+import japa.parser.ast.type.Type;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class MethodCallExpr extends Expression {
+
+ private Expression scope;
+
+ private List<Type> typeArgs;
+
+ private String name;
+
+ private List<Expression> args;
+
+ public MethodCallExpr() {
+ }
+
+ public MethodCallExpr(int beginLine, int beginColumn, int endLine, int endColumn, Expression scope, List<Type> typeArgs, String name, List<Expression> args) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.scope = scope;
+ this.typeArgs = typeArgs;
+ this.name = name;
+ this.args = args;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public List<Expression> getArgs() {
+ return args;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public Expression getScope() {
+ return scope;
+ }
+
+ public List<Type> getTypeArgs() {
+ return typeArgs;
+ }
+
+ public void setArgs(List<Expression> args) {
+ this.args = args;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void setScope(Expression scope) {
+ this.scope = scope;
+ }
+
+ public void setTypeArgs(List<Type> typeArgs) {
+ this.typeArgs = typeArgs;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/NameExpr.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/NameExpr.java
new file mode 100644
index 00000000000..b265fc516ea
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/NameExpr.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast.expr;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public class NameExpr extends Expression {
+
+ private String name;
+
+ public NameExpr() {
+ }
+
+ public NameExpr(int beginLine, int beginColumn, int endLine, int endColumn, String name) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.name = name;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public final String getName() {
+ return name;
+ }
+
+ public final void setName(String name) {
+ this.name = name;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/NormalAnnotationExpr.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/NormalAnnotationExpr.java
new file mode 100644
index 00000000000..3dd6642aace
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/NormalAnnotationExpr.java
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 21/11/2006
+ */
+package japa.parser.ast.expr;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class NormalAnnotationExpr extends AnnotationExpr {
+
+ private NameExpr name;
+
+ private List<MemberValuePair> pairs;
+
+ public NormalAnnotationExpr() {
+ }
+
+ public NormalAnnotationExpr(int beginLine, int beginColumn, int endLine, int endColumn, NameExpr name, List<MemberValuePair> pairs) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.name = name;
+ this.pairs = pairs;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public NameExpr getName() {
+ return name;
+ }
+
+ public List<MemberValuePair> getPairs() {
+ return pairs;
+ }
+
+ public void setName(NameExpr name) {
+ this.name = name;
+ }
+
+ public void setPairs(List<MemberValuePair> pairs) {
+ this.pairs = pairs;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/NullLiteralExpr.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/NullLiteralExpr.java
new file mode 100644
index 00000000000..3b225fd94b4
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/NullLiteralExpr.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 02/03/2007
+ */
+package japa.parser.ast.expr;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class NullLiteralExpr extends LiteralExpr {
+
+ public NullLiteralExpr() {
+ }
+
+ public NullLiteralExpr(int beginLine, int beginColumn, int endLine, int endColumn) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/ObjectCreationExpr.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/ObjectCreationExpr.java
new file mode 100644
index 00000000000..59c7ee4f3fa
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/ObjectCreationExpr.java
@@ -0,0 +1,109 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast.expr;
+
+import japa.parser.ast.body.BodyDeclaration;
+import japa.parser.ast.type.ClassOrInterfaceType;
+import japa.parser.ast.type.Type;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ObjectCreationExpr extends Expression {
+
+ private Expression scope;
+
+ private ClassOrInterfaceType type;
+
+ private List<Type> typeArgs;
+
+ private List<Expression> args;
+
+ private List<BodyDeclaration> anonymousClassBody;
+
+ public ObjectCreationExpr() {
+ }
+
+ public ObjectCreationExpr(int beginLine, int beginColumn, int endLine, int endColumn, Expression scope, ClassOrInterfaceType type, List<Type> typeArgs, List<Expression> args, List<BodyDeclaration> anonymousBody) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.scope = scope;
+ this.type = type;
+ this.typeArgs = typeArgs;
+ this.args = args;
+ this.anonymousClassBody = anonymousBody;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public List<BodyDeclaration> getAnonymousClassBody() {
+ return anonymousClassBody;
+ }
+
+ public List<Expression> getArgs() {
+ return args;
+ }
+
+ public Expression getScope() {
+ return scope;
+ }
+
+ public ClassOrInterfaceType getType() {
+ return type;
+ }
+
+ public List<Type> getTypeArgs() {
+ return typeArgs;
+ }
+
+ public void setAnonymousClassBody(List<BodyDeclaration> anonymousClassBody) {
+ this.anonymousClassBody = anonymousClassBody;
+ }
+
+ public void setArgs(List<Expression> args) {
+ this.args = args;
+ }
+
+ public void setScope(Expression scope) {
+ this.scope = scope;
+ }
+
+ public void setType(ClassOrInterfaceType type) {
+ this.type = type;
+ }
+
+ public void setTypeArgs(List<Type> typeArgs) {
+ this.typeArgs = typeArgs;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/QualifiedNameExpr.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/QualifiedNameExpr.java
new file mode 100644
index 00000000000..a265e6ffc2b
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/QualifiedNameExpr.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast.expr;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class QualifiedNameExpr extends NameExpr {
+
+ private NameExpr qualifier;
+
+ public QualifiedNameExpr() {
+ }
+
+ public QualifiedNameExpr(int beginLine, int beginColumn, int endLine, int endColumn, NameExpr scope, String name) {
+ super(beginLine, beginColumn, endLine, endColumn, name);
+ this.qualifier = scope;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public NameExpr getQualifier() {
+ return qualifier;
+ }
+
+ public void setQualifier(NameExpr qualifier) {
+ this.qualifier = qualifier;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/SingleMemberAnnotationExpr.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/SingleMemberAnnotationExpr.java
new file mode 100644
index 00000000000..68a013d0691
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/SingleMemberAnnotationExpr.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 21/11/2006
+ */
+package japa.parser.ast.expr;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class SingleMemberAnnotationExpr extends AnnotationExpr {
+
+ private NameExpr name;
+
+ private Expression memberValue;
+
+ public SingleMemberAnnotationExpr() {
+ }
+
+ public SingleMemberAnnotationExpr(int beginLine, int beginColumn, int endLine, int endColumn, NameExpr name, Expression memberValue) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.name = name;
+ this.memberValue = memberValue;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getMemberValue() {
+ return memberValue;
+ }
+
+ public NameExpr getName() {
+ return name;
+ }
+
+ public void setMemberValue(Expression memberValue) {
+ this.memberValue = memberValue;
+ }
+
+ public void setName(NameExpr name) {
+ this.name = name;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/StringLiteralExpr.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/StringLiteralExpr.java
new file mode 100644
index 00000000000..2cf2e0f0608
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/StringLiteralExpr.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 02/03/2007
+ */
+package japa.parser.ast.expr;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public class StringLiteralExpr extends LiteralExpr {
+
+ protected String value;
+
+ public StringLiteralExpr() {
+ }
+
+ public StringLiteralExpr(int beginLine, int beginColumn, int endLine, int endColumn, String value) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.value = value;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public final String getValue() {
+ return value;
+ }
+
+ public final void setValue(String value) {
+ this.value = value;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/SuperExpr.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/SuperExpr.java
new file mode 100644
index 00000000000..7c65800ccd3
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/SuperExpr.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 20/01/2007
+ */
+package japa.parser.ast.expr;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class SuperExpr extends Expression {
+
+ private Expression classExpr;
+
+ public SuperExpr() {
+ }
+
+ public SuperExpr(int beginLine, int beginColumn, int endLine, int endColumn, Expression classExpr) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.classExpr = classExpr;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getClassExpr() {
+ return classExpr;
+ }
+
+ public void setClassExpr(Expression classExpr) {
+ this.classExpr = classExpr;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/ThisExpr.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/ThisExpr.java
new file mode 100644
index 00000000000..bff1d408766
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/ThisExpr.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast.expr;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ThisExpr extends Expression {
+
+ private Expression classExpr;
+
+ public ThisExpr() {
+ }
+
+ public ThisExpr(int beginLine, int beginColumn, int endLine, int endColumn, Expression classExpr) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.classExpr = classExpr;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getClassExpr() {
+ return classExpr;
+ }
+
+ public void setClassExpr(Expression classExpr) {
+ this.classExpr = classExpr;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/UnaryExpr.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/UnaryExpr.java
new file mode 100644
index 00000000000..d8607f05723
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/UnaryExpr.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast.expr;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class UnaryExpr extends Expression {
+
+ public static enum Operator {
+ positive, // +
+ negative, // -
+ preIncrement, // ++
+ preDecrement, // --
+ not, // !
+ inverse, // ~
+ posIncrement, // ++
+ posDecrement, // --
+ }
+
+ private Expression expr;
+
+ private Operator op;
+
+ public UnaryExpr() {
+ }
+
+ public UnaryExpr(int beginLine, int beginColumn, int endLine, int endColumn, Expression expr, Operator op) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.expr = expr;
+ this.op = op;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getExpr() {
+ return expr;
+ }
+
+ public Operator getOperator() {
+ return op;
+ }
+
+ public void setExpr(Expression expr) {
+ this.expr = expr;
+ }
+
+ public void setOperator(Operator op) {
+ this.op = op;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/VariableDeclarationExpr.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/VariableDeclarationExpr.java
new file mode 100644
index 00000000000..32e0272a2b6
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/expr/VariableDeclarationExpr.java
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 03/11/2006
+ */
+package japa.parser.ast.expr;
+
+import japa.parser.ast.body.VariableDeclarator;
+import japa.parser.ast.type.Type;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class VariableDeclarationExpr extends Expression {
+
+ private int modifiers;
+
+ private List<AnnotationExpr> annotations;
+
+ private Type type;
+
+ private List<VariableDeclarator> vars;
+
+ public VariableDeclarationExpr() {
+ }
+
+ public VariableDeclarationExpr(int beginLine, int beginColumn, int endLine, int endColumn, int modifiers, List<AnnotationExpr> annotations, Type type, List<VariableDeclarator> vars) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.modifiers = modifiers;
+ this.annotations = annotations;
+ this.type = type;
+ this.vars = vars;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public List<AnnotationExpr> getAnnotations() {
+ return annotations;
+ }
+
+ public int getModifiers() {
+ return modifiers;
+ }
+
+ public Type getType() {
+ return type;
+ }
+
+ public List<VariableDeclarator> getVars() {
+ return vars;
+ }
+
+ public void setAnnotations(List<AnnotationExpr> annotations) {
+ this.annotations = annotations;
+ }
+
+ public void setModifiers(int modifiers) {
+ this.modifiers = modifiers;
+ }
+
+ public void setType(Type type) {
+ this.type = type;
+ }
+
+ public void setVars(List<VariableDeclarator> vars) {
+ this.vars = vars;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/AssertStmt.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/AssertStmt.java
new file mode 100644
index 00000000000..0f184cd1e59
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/AssertStmt.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 04/11/2006
+ */
+package japa.parser.ast.stmt;
+
+import japa.parser.ast.expr.Expression;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class AssertStmt extends Statement {
+
+ private Expression check;
+
+ private Expression msg;
+
+ public AssertStmt() {
+ }
+
+ public AssertStmt(int beginLine, int beginColumn, int endLine, int endColumn, Expression check, Expression msg) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.check = check;
+ this.msg = msg;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getCheck() {
+ return check;
+ }
+
+ public Expression getMessage() {
+ return msg;
+ }
+
+ public void setCheck(Expression check) {
+ this.check = check;
+ }
+
+ public void setMessage(Expression msg) {
+ this.msg = msg;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/BlockStmt.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/BlockStmt.java
new file mode 100644
index 00000000000..1ac9d534ca1
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/BlockStmt.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 04/11/2006
+ */
+package japa.parser.ast.stmt;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class BlockStmt extends Statement {
+
+ private List<Statement> stmts;
+
+ public BlockStmt() {
+ }
+
+ public BlockStmt(int beginLine, int beginColumn, int endLine, int endColumn, List<Statement> stmts) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.stmts = stmts;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public List<Statement> getStmts() {
+ return stmts;
+ }
+
+ public void setStmts(List<Statement> stmts) {
+ this.stmts = stmts;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/BreakStmt.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/BreakStmt.java
new file mode 100644
index 00000000000..2388f620786
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/BreakStmt.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 04/11/2006
+ */
+package japa.parser.ast.stmt;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class BreakStmt extends Statement {
+
+ private String id;
+
+ public BreakStmt() {
+ }
+
+ public BreakStmt(int beginLine, int beginColumn, int endLine, int endColumn, String id) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.id = id;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/CatchClause.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/CatchClause.java
new file mode 100644
index 00000000000..8ccbc320e72
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/CatchClause.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 18/11/2006
+ */
+package japa.parser.ast.stmt;
+
+import japa.parser.ast.Node;
+import japa.parser.ast.body.Parameter;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class CatchClause extends Node {
+
+ private Parameter except;
+
+ private BlockStmt catchBlock;
+
+ public CatchClause() {
+ }
+
+ public CatchClause(int beginLine, int beginColumn, int endLine, int endColumn, Parameter except, BlockStmt catchBlock) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.except = except;
+ this.catchBlock = catchBlock;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public BlockStmt getCatchBlock() {
+ return catchBlock;
+ }
+
+ public Parameter getExcept() {
+ return except;
+ }
+
+ public void setCatchBlock(BlockStmt catchBlock) {
+ this.catchBlock = catchBlock;
+ }
+
+ public void setExcept(Parameter except) {
+ this.except = except;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/ContinueStmt.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/ContinueStmt.java
new file mode 100644
index 00000000000..de6a07d2b35
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/ContinueStmt.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 07/11/2006
+ */
+package japa.parser.ast.stmt;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ContinueStmt extends Statement {
+
+ private String id;
+
+ public ContinueStmt() {
+ }
+
+ public ContinueStmt(int beginLine, int beginColumn, int endLine, int endColumn, String id) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.id = id;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/DoStmt.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/DoStmt.java
new file mode 100644
index 00000000000..2660f385c46
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/DoStmt.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 07/11/2006
+ */
+package japa.parser.ast.stmt;
+
+import japa.parser.ast.expr.Expression;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class DoStmt extends Statement {
+
+ private Statement body;
+
+ private Expression condition;
+
+ public DoStmt() {
+ }
+
+ public DoStmt(int beginLine, int beginColumn, int endLine, int endColumn, Statement body, Expression condition) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.body = body;
+ this.condition = condition;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Statement getBody() {
+ return body;
+ }
+
+ public Expression getCondition() {
+ return condition;
+ }
+
+ public void setBody(Statement body) {
+ this.body = body;
+ }
+
+ public void setCondition(Expression condition) {
+ this.condition = condition;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/EmptyStmt.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/EmptyStmt.java
new file mode 100644
index 00000000000..121bfa34e78
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/EmptyStmt.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 04/11/2006
+ */
+package japa.parser.ast.stmt;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class EmptyStmt extends Statement {
+
+ public EmptyStmt() {
+ }
+
+ public EmptyStmt(int beginLine, int beginColumn, int endLine, int endColumn) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/ExplicitConstructorInvocationStmt.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/ExplicitConstructorInvocationStmt.java
new file mode 100644
index 00000000000..b0176fafe72
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/ExplicitConstructorInvocationStmt.java
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 03/11/2006
+ */
+package japa.parser.ast.stmt;
+
+import japa.parser.ast.expr.Expression;
+import japa.parser.ast.type.Type;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ExplicitConstructorInvocationStmt extends Statement {
+
+ private List<Type> typeArgs;
+
+ private boolean isThis;
+
+ private Expression expr;
+
+ private List<Expression> args;
+
+ public ExplicitConstructorInvocationStmt() {
+ }
+
+ public ExplicitConstructorInvocationStmt(int beginLine, int beginColumn, int endLine, int endColumn, List<Type> typeArgs, boolean isThis, Expression expr, List<Expression> args) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.typeArgs = typeArgs;
+ this.isThis = isThis;
+ this.expr = expr;
+ this.args = args;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public List<Expression> getArgs() {
+ return args;
+ }
+
+ public Expression getExpr() {
+ return expr;
+ }
+
+ public List<Type> getTypeArgs() {
+ return typeArgs;
+ }
+
+ public boolean isThis() {
+ return isThis;
+ }
+
+ public void setArgs(List<Expression> args) {
+ this.args = args;
+ }
+
+ public void setExpr(Expression expr) {
+ this.expr = expr;
+ }
+
+ public void setThis(boolean isThis) {
+ this.isThis = isThis;
+ }
+
+ public void setTypeArgs(List<Type> typeArgs) {
+ this.typeArgs = typeArgs;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/ExpressionStmt.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/ExpressionStmt.java
new file mode 100644
index 00000000000..3413a2199f1
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/ExpressionStmt.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 04/11/2006
+ */
+package japa.parser.ast.stmt;
+
+import japa.parser.ast.expr.Expression;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ExpressionStmt extends Statement {
+
+ private Expression expr;
+
+ public ExpressionStmt() {
+ }
+
+ public ExpressionStmt(int beginLine, int beginColumn, int endLine, int endColumn, Expression expr) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.expr = expr;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getExpression() {
+ return expr;
+ }
+
+ public void setExpression(Expression expr) {
+ this.expr = expr;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/ForStmt.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/ForStmt.java
new file mode 100644
index 00000000000..a3f465a6b14
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/ForStmt.java
@@ -0,0 +1,95 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 07/11/2006
+ */
+package japa.parser.ast.stmt;
+
+import japa.parser.ast.expr.Expression;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ForStmt extends Statement {
+
+ private List<Expression> init;
+
+ private Expression compare;
+
+ private List<Expression> update;
+
+ private Statement body;
+
+ public ForStmt() {
+ }
+
+ public ForStmt(int beginLine, int beginColumn, int endLine, int endColumn, List<Expression> init, Expression compare, List<Expression> update, Statement body) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.compare = compare;
+ this.init = init;
+ this.update = update;
+ this.body = body;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Statement getBody() {
+ return body;
+ }
+
+ public Expression getCompare() {
+ return compare;
+ }
+
+ public List<Expression> getInit() {
+ return init;
+ }
+
+ public List<Expression> getUpdate() {
+ return update;
+ }
+
+ public void setBody(Statement body) {
+ this.body = body;
+ }
+
+ public void setCompare(Expression compare) {
+ this.compare = compare;
+ }
+
+ public void setInit(List<Expression> init) {
+ this.init = init;
+ }
+
+ public void setUpdate(List<Expression> update) {
+ this.update = update;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/ForeachStmt.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/ForeachStmt.java
new file mode 100644
index 00000000000..8d3f6a156a1
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/ForeachStmt.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 07/11/2006
+ */
+package japa.parser.ast.stmt;
+
+import japa.parser.ast.expr.Expression;
+import japa.parser.ast.expr.VariableDeclarationExpr;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ForeachStmt extends Statement {
+
+ private VariableDeclarationExpr var;
+
+ private Expression iterable;
+
+ private Statement body;
+
+ public ForeachStmt() {
+ }
+
+ public ForeachStmt(int beginLine, int beginColumn, int endLine, int endColumn, VariableDeclarationExpr var, Expression iterable, Statement body) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.var = var;
+ this.iterable = iterable;
+ this.body = body;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Statement getBody() {
+ return body;
+ }
+
+ public Expression getIterable() {
+ return iterable;
+ }
+
+ public VariableDeclarationExpr getVariable() {
+ return var;
+ }
+
+ public void setBody(Statement body) {
+ this.body = body;
+ }
+
+ public void setIterable(Expression iterable) {
+ this.iterable = iterable;
+ }
+
+ public void setVariable(VariableDeclarationExpr var) {
+ this.var = var;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/IfStmt.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/IfStmt.java
new file mode 100644
index 00000000000..1a8d237efd8
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/IfStmt.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 07/11/2006
+ */
+package japa.parser.ast.stmt;
+
+import japa.parser.ast.expr.Expression;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class IfStmt extends Statement {
+
+ private Expression condition;
+
+ private Statement thenStmt;
+
+ private Statement elseStmt;
+
+ public IfStmt() {
+ }
+
+ public IfStmt(int beginLine, int beginColumn, int endLine, int endColumn, Expression condition, Statement thenStmt, Statement elseStmt) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.condition = condition;
+ this.thenStmt = thenStmt;
+ this.elseStmt = elseStmt;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getCondition() {
+ return condition;
+ }
+
+ public Statement getElseStmt() {
+ return elseStmt;
+ }
+
+ public Statement getThenStmt() {
+ return thenStmt;
+ }
+
+ public void setCondition(Expression condition) {
+ this.condition = condition;
+ }
+
+ public void setElseStmt(Statement elseStmt) {
+ this.elseStmt = elseStmt;
+ }
+
+ public void setThenStmt(Statement thenStmt) {
+ this.thenStmt = thenStmt;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/LabeledStmt.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/LabeledStmt.java
new file mode 100644
index 00000000000..737f1626b52
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/LabeledStmt.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 04/11/2006
+ */
+package japa.parser.ast.stmt;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class LabeledStmt extends Statement {
+
+ private String label;
+
+ private Statement stmt;
+
+ public LabeledStmt() {
+ }
+
+ public LabeledStmt(int beginLine, int beginColumn, int endLine, int endColumn, String label, Statement stmt) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.label = label;
+ this.stmt = stmt;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public String getLabel() {
+ return label;
+ }
+
+ public Statement getStmt() {
+ return stmt;
+ }
+
+ public void setLabel(String label) {
+ this.label = label;
+ }
+
+ public void setStmt(Statement stmt) {
+ this.stmt = stmt;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/ReturnStmt.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/ReturnStmt.java
new file mode 100644
index 00000000000..598f73a24d1
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/ReturnStmt.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 04/11/2006
+ */
+package japa.parser.ast.stmt;
+
+import japa.parser.ast.expr.Expression;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ReturnStmt extends Statement {
+
+ private Expression expr;
+
+ public ReturnStmt() {
+ }
+
+ public ReturnStmt(int beginLine, int beginColumn, int endLine, int endColumn, Expression expr) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.expr = expr;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getExpr() {
+ return expr;
+ }
+
+ public void setExpr(Expression expr) {
+ this.expr = expr;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/Statement.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/Statement.java
new file mode 100644
index 00000000000..386746d8629
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/Statement.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 03/11/2006
+ */
+package japa.parser.ast.stmt;
+
+import japa.parser.ast.Node;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public abstract class Statement extends Node {
+
+ public Statement() {
+ }
+
+ public Statement(int beginLine, int beginColumn, int endLine, int endColumn) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/SwitchEntryStmt.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/SwitchEntryStmt.java
new file mode 100644
index 00000000000..8ff7e3f25a6
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/SwitchEntryStmt.java
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 04/11/2006
+ */
+package japa.parser.ast.stmt;
+
+import japa.parser.ast.expr.Expression;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class SwitchEntryStmt extends Statement {
+
+ private Expression label;
+
+ private List<Statement> stmts;
+
+ public SwitchEntryStmt() {
+ }
+
+ public SwitchEntryStmt(int beginLine, int beginColumn, int endLine, int endColumn, Expression label, List<Statement> stmts) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.label = label;
+ this.stmts = stmts;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getLabel() {
+ return label;
+ }
+
+ public List<Statement> getStmts() {
+ return stmts;
+ }
+
+ public void setLabel(Expression label) {
+ this.label = label;
+ }
+
+ public void setStmts(List<Statement> stmts) {
+ this.stmts = stmts;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/SwitchStmt.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/SwitchStmt.java
new file mode 100644
index 00000000000..d18eaa975a3
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/SwitchStmt.java
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 04/11/2006
+ */
+package japa.parser.ast.stmt;
+
+import japa.parser.ast.expr.Expression;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class SwitchStmt extends Statement {
+
+ private Expression selector;
+
+ private List<SwitchEntryStmt> entries;
+
+ public SwitchStmt() {
+ }
+
+ public SwitchStmt(int beginLine, int beginColumn, int endLine, int endColumn, Expression selector, List<SwitchEntryStmt> entries) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.selector = selector;
+ this.entries = entries;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public List<SwitchEntryStmt> getEntries() {
+ return entries;
+ }
+
+ public Expression getSelector() {
+ return selector;
+ }
+
+ public void setEntries(List<SwitchEntryStmt> entries) {
+ this.entries = entries;
+ }
+
+ public void setSelector(Expression selector) {
+ this.selector = selector;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/SynchronizedStmt.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/SynchronizedStmt.java
new file mode 100644
index 00000000000..25de6c6a157
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/SynchronizedStmt.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 18/11/2006
+ */
+package japa.parser.ast.stmt;
+
+import japa.parser.ast.expr.Expression;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class SynchronizedStmt extends Statement {
+
+ private Expression expr;
+
+ private BlockStmt block;
+
+ public SynchronizedStmt() {
+ }
+
+ public SynchronizedStmt(int beginLine, int beginColumn, int endLine, int endColumn, Expression expr, BlockStmt block) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.expr = expr;
+ this.block = block;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public BlockStmt getBlock() {
+ return block;
+ }
+
+ public Expression getExpr() {
+ return expr;
+ }
+
+ public void setBlock(BlockStmt block) {
+ this.block = block;
+ }
+
+ public void setExpr(Expression expr) {
+ this.expr = expr;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/ThrowStmt.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/ThrowStmt.java
new file mode 100644
index 00000000000..d329cb078e7
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/ThrowStmt.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 18/11/2006
+ */
+package japa.parser.ast.stmt;
+
+import japa.parser.ast.expr.Expression;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ThrowStmt extends Statement {
+
+ private Expression expr;
+
+ public ThrowStmt() {
+ }
+
+ public ThrowStmt(int beginLine, int beginColumn, int endLine, int endColumn, Expression expr) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.expr = expr;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Expression getExpr() {
+ return expr;
+ }
+
+ public void setExpr(Expression expr) {
+ this.expr = expr;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/TryStmt.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/TryStmt.java
new file mode 100644
index 00000000000..7ec39e6bad3
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/TryStmt.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 18/11/2006
+ */
+package japa.parser.ast.stmt;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class TryStmt extends Statement {
+
+ private BlockStmt tryBlock;
+
+ private List<CatchClause> catchs;
+
+ private BlockStmt finallyBlock;
+
+ public TryStmt() {
+ }
+
+ public TryStmt(int beginLine, int beginColumn, int endLine, int endColumn, BlockStmt tryBlock, List<CatchClause> catchs, BlockStmt finallyBlock) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.tryBlock = tryBlock;
+ this.catchs = catchs;
+ this.finallyBlock = finallyBlock;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public List<CatchClause> getCatchs() {
+ return catchs;
+ }
+
+ public BlockStmt getFinallyBlock() {
+ return finallyBlock;
+ }
+
+ public BlockStmt getTryBlock() {
+ return tryBlock;
+ }
+
+ public void setCatchs(List<CatchClause> catchs) {
+ this.catchs = catchs;
+ }
+
+ public void setFinallyBlock(BlockStmt finallyBlock) {
+ this.finallyBlock = finallyBlock;
+ }
+
+ public void setTryBlock(BlockStmt tryBlock) {
+ this.tryBlock = tryBlock;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/TypeDeclarationStmt.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/TypeDeclarationStmt.java
new file mode 100644
index 00000000000..a578dd811ee
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/TypeDeclarationStmt.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 04/11/2006
+ */
+package japa.parser.ast.stmt;
+
+import japa.parser.ast.body.TypeDeclaration;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class TypeDeclarationStmt extends Statement {
+
+ private TypeDeclaration typeDecl;
+
+ public TypeDeclarationStmt() {
+ }
+
+ public TypeDeclarationStmt(int beginLine, int beginColumn, int endLine, int endColumn, TypeDeclaration typeDecl) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.typeDecl = typeDecl;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public TypeDeclaration getTypeDeclaration() {
+ return typeDecl;
+ }
+
+ public void setTypeDeclaration(TypeDeclaration typeDecl) {
+ this.typeDecl = typeDecl;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/WhileStmt.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/WhileStmt.java
new file mode 100644
index 00000000000..0a2c96efd3a
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/stmt/WhileStmt.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 07/11/2006
+ */
+package japa.parser.ast.stmt;
+
+import japa.parser.ast.expr.Expression;
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class WhileStmt extends Statement {
+
+ private Expression condition;
+
+ private Statement body;
+
+ public WhileStmt() {
+ }
+
+ public WhileStmt(int beginLine, int beginColumn, int endLine, int endColumn, Expression condition, Statement body) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.condition = condition;
+ this.body = body;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Statement getBody() {
+ return body;
+ }
+
+ public Expression getCondition() {
+ return condition;
+ }
+
+ public void setBody(Statement body) {
+ this.body = body;
+ }
+
+ public void setCondition(Expression condition) {
+ this.condition = condition;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/type/ClassOrInterfaceType.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/type/ClassOrInterfaceType.java
new file mode 100644
index 00000000000..a233bc1fa93
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/type/ClassOrInterfaceType.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast.type;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ClassOrInterfaceType extends Type {
+
+ private ClassOrInterfaceType scope;
+
+ private String name;
+
+ private List<Type> typeArgs;
+
+ public ClassOrInterfaceType() {
+ }
+
+ public ClassOrInterfaceType(int beginLine, int beginColumn, int endLine, int endColumn, ClassOrInterfaceType scope, String name, List<Type> typeArgs) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.scope = scope;
+ this.name = name;
+ this.typeArgs = typeArgs;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public ClassOrInterfaceType getScope() {
+ return scope;
+ }
+
+ public List<Type> getTypeArgs() {
+ return typeArgs;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void setScope(ClassOrInterfaceType scope) {
+ this.scope = scope;
+ }
+
+ public void setTypeArgs(List<Type> typeArgs) {
+ this.typeArgs = typeArgs;
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/type/PrimitiveType.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/type/PrimitiveType.java
new file mode 100644
index 00000000000..06b5dcf1601
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/type/PrimitiveType.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast.type;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class PrimitiveType extends Type {
+
+ public enum Primitive {
+ Boolean, Char, Byte, Short, Int, Long, Float, Double
+ }
+
+ private Primitive type;
+
+ public PrimitiveType() {
+ }
+
+ public PrimitiveType(int beginLine, int beginColumn, int endLine, int endColumn, Primitive type) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.type = type;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public Primitive getType() {
+ return type;
+ }
+
+ public void setType(Primitive type) {
+ this.type = type;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/type/ReferenceType.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/type/ReferenceType.java
new file mode 100644
index 00000000000..f19afbb0c4c
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/type/ReferenceType.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast.type;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class ReferenceType extends Type {
+
+ private Type type;
+
+ private int arrayCount;
+
+ public ReferenceType() {
+ }
+
+ public ReferenceType(int beginLine, int beginColumn, int endLine, int endColumn, Type type, int arrayCount) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ this.type = type;
+ this.arrayCount = arrayCount;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public int getArrayCount() {
+ return arrayCount;
+ }
+
+ public Type getType() {
+ return type;
+ }
+
+ public void setArrayCount(int arrayCount) {
+ this.arrayCount = arrayCount;
+ }
+
+ public void setType(Type type) {
+ this.type = type;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/type/Type.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/type/Type.java
new file mode 100644
index 00000000000..ad0afadff96
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/type/Type.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast.type;
+
+import japa.parser.ast.Node;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public abstract class Type extends Node {
+
+ public Type() {
+ }
+
+ public Type(int beginLine, int beginColumn, int endLine, int endColumn) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/type/VoidType.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/type/VoidType.java
new file mode 100644
index 00000000000..1502105620f
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/type/VoidType.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast.type;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class VoidType extends Type {
+
+ public VoidType() {
+ }
+
+ public VoidType(int beginLine, int beginColumn, int endLine, int endColumn) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/type/WildcardType.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/type/WildcardType.java
new file mode 100644
index 00000000000..e1af38fbf7b
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/type/WildcardType.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast.type;
+
+import japa.parser.ast.visitor.GenericVisitor;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public final class WildcardType extends Type {
+
+ private ReferenceType ext;
+
+ private ReferenceType sup;
+
+ public WildcardType() {
+ }
+
+ public WildcardType(int beginLine, int beginColumn, int endLine, int endColumn, ReferenceType ext, ReferenceType sup) {
+ super(beginLine, beginColumn, endLine, endColumn);
+ assert ext == null || sup == null;
+ this.ext = ext;
+ this.sup = sup;
+ }
+
+ @Override
+ public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override
+ public <A> void accept(VoidVisitor<A> v, A arg) {
+ v.visit(this, arg);
+ }
+
+ public ReferenceType getExtends() {
+ return ext;
+ }
+
+ public ReferenceType getSuper() {
+ return sup;
+ }
+
+ public void setExtends(ReferenceType ext) {
+ this.ext = ext;
+ }
+
+ public void setSuper(ReferenceType sup) {
+ this.sup = sup;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/visitor/DumpVisitor.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/visitor/DumpVisitor.java
new file mode 100644
index 00000000000..8b10b6c85f9
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/visitor/DumpVisitor.java
@@ -0,0 +1,1387 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast.visitor;
+
+import japa.parser.ast.BlockComment;
+import japa.parser.ast.CompilationUnit;
+import japa.parser.ast.ImportDeclaration;
+import japa.parser.ast.LineComment;
+import japa.parser.ast.Node;
+import japa.parser.ast.PackageDeclaration;
+import japa.parser.ast.TypeParameter;
+import japa.parser.ast.body.AnnotationDeclaration;
+import japa.parser.ast.body.AnnotationMemberDeclaration;
+import japa.parser.ast.body.BodyDeclaration;
+import japa.parser.ast.body.ClassOrInterfaceDeclaration;
+import japa.parser.ast.body.ConstructorDeclaration;
+import japa.parser.ast.body.EmptyMemberDeclaration;
+import japa.parser.ast.body.EmptyTypeDeclaration;
+import japa.parser.ast.body.EnumConstantDeclaration;
+import japa.parser.ast.body.EnumDeclaration;
+import japa.parser.ast.body.FieldDeclaration;
+import japa.parser.ast.body.InitializerDeclaration;
+import japa.parser.ast.body.JavadocComment;
+import japa.parser.ast.body.MethodDeclaration;
+import japa.parser.ast.body.ModifierSet;
+import japa.parser.ast.body.Parameter;
+import japa.parser.ast.body.TypeDeclaration;
+import japa.parser.ast.body.VariableDeclarator;
+import japa.parser.ast.body.VariableDeclaratorId;
+import japa.parser.ast.expr.AnnotationExpr;
+import japa.parser.ast.expr.ArrayAccessExpr;
+import japa.parser.ast.expr.ArrayCreationExpr;
+import japa.parser.ast.expr.ArrayInitializerExpr;
+import japa.parser.ast.expr.AssignExpr;
+import japa.parser.ast.expr.BinaryExpr;
+import japa.parser.ast.expr.BooleanLiteralExpr;
+import japa.parser.ast.expr.CastExpr;
+import japa.parser.ast.expr.CharLiteralExpr;
+import japa.parser.ast.expr.ClassExpr;
+import japa.parser.ast.expr.ConditionalExpr;
+import japa.parser.ast.expr.DoubleLiteralExpr;
+import japa.parser.ast.expr.EnclosedExpr;
+import japa.parser.ast.expr.Expression;
+import japa.parser.ast.expr.FieldAccessExpr;
+import japa.parser.ast.expr.InstanceOfExpr;
+import japa.parser.ast.expr.IntegerLiteralExpr;
+import japa.parser.ast.expr.IntegerLiteralMinValueExpr;
+import japa.parser.ast.expr.LongLiteralExpr;
+import japa.parser.ast.expr.LongLiteralMinValueExpr;
+import japa.parser.ast.expr.MarkerAnnotationExpr;
+import japa.parser.ast.expr.MemberValuePair;
+import japa.parser.ast.expr.MethodCallExpr;
+import japa.parser.ast.expr.NameExpr;
+import japa.parser.ast.expr.NormalAnnotationExpr;
+import japa.parser.ast.expr.NullLiteralExpr;
+import japa.parser.ast.expr.ObjectCreationExpr;
+import japa.parser.ast.expr.QualifiedNameExpr;
+import japa.parser.ast.expr.SingleMemberAnnotationExpr;
+import japa.parser.ast.expr.StringLiteralExpr;
+import japa.parser.ast.expr.SuperExpr;
+import japa.parser.ast.expr.ThisExpr;
+import japa.parser.ast.expr.UnaryExpr;
+import japa.parser.ast.expr.VariableDeclarationExpr;
+import japa.parser.ast.stmt.AssertStmt;
+import japa.parser.ast.stmt.BlockStmt;
+import japa.parser.ast.stmt.BreakStmt;
+import japa.parser.ast.stmt.CatchClause;
+import japa.parser.ast.stmt.ContinueStmt;
+import japa.parser.ast.stmt.DoStmt;
+import japa.parser.ast.stmt.EmptyStmt;
+import japa.parser.ast.stmt.ExplicitConstructorInvocationStmt;
+import japa.parser.ast.stmt.ExpressionStmt;
+import japa.parser.ast.stmt.ForStmt;
+import japa.parser.ast.stmt.ForeachStmt;
+import japa.parser.ast.stmt.IfStmt;
+import japa.parser.ast.stmt.LabeledStmt;
+import japa.parser.ast.stmt.ReturnStmt;
+import japa.parser.ast.stmt.Statement;
+import japa.parser.ast.stmt.SwitchEntryStmt;
+import japa.parser.ast.stmt.SwitchStmt;
+import japa.parser.ast.stmt.SynchronizedStmt;
+import japa.parser.ast.stmt.ThrowStmt;
+import japa.parser.ast.stmt.TryStmt;
+import japa.parser.ast.stmt.TypeDeclarationStmt;
+import japa.parser.ast.stmt.WhileStmt;
+import japa.parser.ast.type.ClassOrInterfaceType;
+import japa.parser.ast.type.PrimitiveType;
+import japa.parser.ast.type.ReferenceType;
+import japa.parser.ast.type.Type;
+import japa.parser.ast.type.VoidType;
+import japa.parser.ast.type.WildcardType;
+
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+
+public final class DumpVisitor implements VoidVisitor<Object> {
+
+ private class SourcePrinter {
+
+ private int level = 0;
+
+ private boolean indented = false;
+
+ private final StringBuilder buf = new StringBuilder();
+
+ public void indent() {
+ level++;
+ }
+
+ public void unindent() {
+ level--;
+ }
+
+ private void makeIndent() {
+ for (int i = 0; i < level; i++) {
+ buf.append(" ");
+ }
+ }
+
+ public void print(String arg) {
+ if (!indented) {
+ makeIndent();
+ indented = true;
+ }
+ buf.append(arg);
+ }
+
+ public void printLn(String arg) {
+ print(arg);
+ printLn();
+ }
+
+ public void printLn() {
+ buf.append("\n");
+ indented = false;
+ }
+
+ public String getSource() {
+ return buf.toString();
+ }
+
+ @Override
+ public String toString() {
+ return getSource();
+ }
+ }
+
+ private final SourcePrinter printer = new SourcePrinter();
+
+ public String getSource() {
+ return printer.getSource();
+ }
+
+ private void printModifiers(int modifiers) {
+ if (ModifierSet.isPrivate(modifiers)) {
+ printer.print("private ");
+ }
+ if (ModifierSet.isProtected(modifiers)) {
+ printer.print("protected ");
+ }
+ if (ModifierSet.isPublic(modifiers)) {
+ printer.print("public ");
+ }
+ if (ModifierSet.isAbstract(modifiers)) {
+ printer.print("abstract ");
+ }
+ if (ModifierSet.isStatic(modifiers)) {
+ printer.print("static ");
+ }
+ if (ModifierSet.isFinal(modifiers)) {
+ printer.print("final ");
+ }
+ if (ModifierSet.isNative(modifiers)) {
+ printer.print("native ");
+ }
+ if (ModifierSet.isStrictfp(modifiers)) {
+ printer.print("strictfp ");
+ }
+ if (ModifierSet.isSynchronized(modifiers)) {
+ printer.print("synchronized ");
+ }
+ if (ModifierSet.isTransient(modifiers)) {
+ printer.print("transient ");
+ }
+ if (ModifierSet.isVolatile(modifiers)) {
+ printer.print("volatile ");
+ }
+ }
+
+ private void printMembers(List<BodyDeclaration> members, Object arg) {
+ for (BodyDeclaration member : members) {
+ printer.printLn();
+ member.accept(this, arg);
+ printer.printLn();
+ }
+ }
+
+ private void printMemberAnnotations(List<AnnotationExpr> annotations, Object arg) {
+ if (annotations != null) {
+ for (AnnotationExpr a : annotations) {
+ a.accept(this, arg);
+ printer.printLn();
+ }
+ }
+ }
+
+ private void printAnnotations(List<AnnotationExpr> annotations, Object arg) {
+ if (annotations != null) {
+ for (AnnotationExpr a : annotations) {
+ a.accept(this, arg);
+ printer.print(" ");
+ }
+ }
+ }
+
+ private void printTypeArgs(List<Type> args, Object arg) {
+ if (args != null) {
+ printer.print("<");
+ for (Iterator<Type> i = args.iterator(); i.hasNext();) {
+ Type t = i.next();
+ t.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ printer.print(">");
+ }
+ }
+
+ private void printTypeParameters(List<TypeParameter> args, Object arg) {
+ if (args != null) {
+ printer.print("<");
+ for (Iterator<TypeParameter> i = args.iterator(); i.hasNext();) {
+ TypeParameter t = i.next();
+ t.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ printer.print(">");
+ }
+ }
+
+ private void printArguments(List<Expression> args, Object arg) {
+ printer.print("(");
+ if (args != null) {
+ for (Iterator<Expression> i = args.iterator(); i.hasNext();) {
+ Expression e = i.next();
+ e.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+ printer.print(")");
+ }
+
+ private void printJavadoc(JavadocComment javadoc, Object arg) {
+ if (javadoc != null) {
+ javadoc.accept(this, arg);
+ }
+ }
+
+ @Override
+ public void visit(CompilationUnit n, Object arg) {
+ if (n.getPakage() != null) {
+ n.getPakage().accept(this, arg);
+ }
+ if (n.getImports() != null) {
+ for (ImportDeclaration i : n.getImports()) {
+ i.accept(this, arg);
+ }
+ printer.printLn();
+ }
+ if (n.getTypes() != null) {
+ for (Iterator<TypeDeclaration> i = n.getTypes().iterator(); i.hasNext();) {
+ i.next().accept(this, arg);
+ printer.printLn();
+ if (i.hasNext()) {
+ printer.printLn();
+ }
+ }
+ }
+ }
+
+ @Override
+ public void visit(PackageDeclaration n, Object arg) {
+ printAnnotations(n.getAnnotations(), arg);
+ printer.print("package ");
+ n.getName().accept(this, arg);
+ printer.printLn(";");
+ printer.printLn();
+ }
+
+ @Override
+ public void visit(NameExpr n, Object arg) {
+ printer.print(n.getName());
+ }
+
+ @Override
+ public void visit(QualifiedNameExpr n, Object arg) {
+ n.getQualifier().accept(this, arg);
+ printer.print(".");
+ printer.print(n.getName());
+ }
+
+ @Override
+ public void visit(ImportDeclaration n, Object arg) {
+ printer.print("import ");
+ if (n.isStatic()) {
+ printer.print("static ");
+ }
+ n.getName().accept(this, arg);
+ if (n.isAsterisk()) {
+ printer.print(".*");
+ }
+ printer.printLn(";");
+ }
+
+ @Override
+ public void visit(ClassOrInterfaceDeclaration n, Object arg) {
+ printJavadoc(n.getJavaDoc(), arg);
+ printMemberAnnotations(n.getAnnotations(), arg);
+ printModifiers(n.getModifiers());
+
+ if (n.isInterface()) {
+ printer.print("interface ");
+ } else {
+ printer.print("class ");
+ }
+
+ printer.print(n.getName());
+
+ printTypeParameters(n.getTypeParameters(), arg);
+
+ if (n.getExtends() != null) {
+ printer.print(" extends ");
+ for (Iterator<ClassOrInterfaceType> i = n.getExtends().iterator(); i.hasNext();) {
+ ClassOrInterfaceType c = i.next();
+ c.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+
+ if (n.getImplements() != null) {
+ printer.print(" implements ");
+ for (Iterator<ClassOrInterfaceType> i = n.getImplements().iterator(); i.hasNext();) {
+ ClassOrInterfaceType c = i.next();
+ c.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+
+ printer.printLn(" {");
+ printer.indent();
+ if (n.getMembers() != null) {
+ printMembers(n.getMembers(), arg);
+ }
+ printer.unindent();
+ printer.print("}");
+ }
+
+ @Override
+ public void visit(EmptyTypeDeclaration n, Object arg) {
+ printJavadoc(n.getJavaDoc(), arg);
+ printer.print(";");
+ }
+
+ @Override
+ public void visit(JavadocComment n, Object arg) {
+ printer.print("/**");
+ printer.print(n.getContent());
+ printer.printLn("*/");
+ }
+
+ @Override
+ public void visit(ClassOrInterfaceType n, Object arg) {
+ if (n.getScope() != null) {
+ n.getScope().accept(this, arg);
+ printer.print(".");
+ }
+ printer.print(n.getName());
+ printTypeArgs(n.getTypeArgs(), arg);
+ }
+
+ @Override
+ public void visit(TypeParameter n, Object arg) {
+ printer.print(n.getName());
+ if (n.getTypeBound() != null) {
+ printer.print(" extends ");
+ for (Iterator<ClassOrInterfaceType> i = n.getTypeBound().iterator(); i.hasNext();) {
+ ClassOrInterfaceType c = i.next();
+ c.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(" & ");
+ }
+ }
+ }
+ }
+
+ @Override
+ public void visit(PrimitiveType n, Object arg) {
+ switch (n.getType()) {
+ case Boolean:
+ printer.print("boolean");
+ break;
+ case Byte:
+ printer.print("byte");
+ break;
+ case Char:
+ printer.print("char");
+ break;
+ case Double:
+ printer.print("double");
+ break;
+ case Float:
+ printer.print("float");
+ break;
+ case Int:
+ printer.print("int");
+ break;
+ case Long:
+ printer.print("long");
+ break;
+ case Short:
+ printer.print("short");
+ break;
+ }
+ }
+
+ @Override
+ public void visit(ReferenceType n, Object arg) {
+ n.getType().accept(this, arg);
+ for (int i = 0; i < n.getArrayCount(); i++) {
+ printer.print("[]");
+ }
+ }
+
+ @Override
+ public void visit(WildcardType n, Object arg) {
+ printer.print("?");
+ if (n.getExtends() != null) {
+ printer.print(" extends ");
+ n.getExtends().accept(this, arg);
+ }
+ if (n.getSuper() != null) {
+ printer.print(" super ");
+ n.getSuper().accept(this, arg);
+ }
+ }
+
+ @Override
+ public void visit(FieldDeclaration n, Object arg) {
+ printJavadoc(n.getJavaDoc(), arg);
+ printMemberAnnotations(n.getAnnotations(), arg);
+ printModifiers(n.getModifiers());
+ n.getType().accept(this, arg);
+
+ printer.print(" ");
+ for (Iterator<VariableDeclarator> i = n.getVariables().iterator(); i.hasNext();) {
+ VariableDeclarator var = i.next();
+ var.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+
+ printer.print(";");
+ }
+
+ @Override
+ public void visit(VariableDeclarator n, Object arg) {
+ n.getId().accept(this, arg);
+ if (n.getInit() != null) {
+ printer.print(" = ");
+ n.getInit().accept(this, arg);
+ }
+ }
+
+ @Override
+ public void visit(VariableDeclaratorId n, Object arg) {
+ printer.print(n.getName());
+ for (int i = 0; i < n.getArrayCount(); i++) {
+ printer.print("[]");
+ }
+ }
+
+ @Override
+ public void visit(ArrayInitializerExpr n, Object arg) {
+ printer.print("{");
+ if (n.getValues() != null) {
+ printer.print(" ");
+ for (Iterator<Expression> i = n.getValues().iterator(); i.hasNext();) {
+ Expression expr = i.next();
+ expr.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ printer.print(" ");
+ }
+ printer.print("}");
+ }
+
+ @Override
+ public void visit(VoidType n, Object arg) {
+ printer.print("void");
+ }
+
+ @Override
+ public void visit(ArrayAccessExpr n, Object arg) {
+ n.getName().accept(this, arg);
+ printer.print("[");
+ n.getIndex().accept(this, arg);
+ printer.print("]");
+ }
+
+ @Override
+ public void visit(ArrayCreationExpr n, Object arg) {
+ printer.print("new ");
+ n.getType().accept(this, arg);
+
+ if (n.getDimensions() != null) {
+ for (Expression dim : n.getDimensions()) {
+ printer.print("[");
+ dim.accept(this, arg);
+ printer.print("]");
+ }
+ for (int i = 0; i < n.getArrayCount(); i++) {
+ printer.print("[]");
+ }
+ } else {
+ for (int i = 0; i < n.getArrayCount(); i++) {
+ printer.print("[]");
+ }
+ printer.print(" ");
+ n.getInitializer().accept(this, arg);
+ }
+ }
+
+ @Override
+ public void visit(AssignExpr n, Object arg) {
+ n.getTarget().accept(this, arg);
+ printer.print(" ");
+ switch (n.getOperator()) {
+ case assign:
+ printer.print("=");
+ break;
+ case and:
+ printer.print("&=");
+ break;
+ case or:
+ printer.print("|=");
+ break;
+ case xor:
+ printer.print("^=");
+ break;
+ case plus:
+ printer.print("+=");
+ break;
+ case minus:
+ printer.print("-=");
+ break;
+ case rem:
+ printer.print("%=");
+ break;
+ case slash:
+ printer.print("/=");
+ break;
+ case star:
+ printer.print("*=");
+ break;
+ case lShift:
+ printer.print("<<=");
+ break;
+ case rSignedShift:
+ printer.print(">>=");
+ break;
+ case rUnsignedShift:
+ printer.print(">>>=");
+ break;
+ }
+ printer.print(" ");
+ n.getValue().accept(this, arg);
+ }
+
+ @Override
+ public void visit(BinaryExpr n, Object arg) {
+ n.getLeft().accept(this, arg);
+ printer.print(" ");
+ switch (n.getOperator()) {
+ case or:
+ printer.print("||");
+ break;
+ case and:
+ printer.print("&&");
+ break;
+ case binOr:
+ printer.print("|");
+ break;
+ case binAnd:
+ printer.print("&");
+ break;
+ case xor:
+ printer.print("^");
+ break;
+ case equals:
+ printer.print("==");
+ break;
+ case notEquals:
+ printer.print("!=");
+ break;
+ case less:
+ printer.print("<");
+ break;
+ case greater:
+ printer.print(">");
+ break;
+ case lessEquals:
+ printer.print("<=");
+ break;
+ case greaterEquals:
+ printer.print(">=");
+ break;
+ case lShift:
+ printer.print("<<");
+ break;
+ case rSignedShift:
+ printer.print(">>");
+ break;
+ case rUnsignedShift:
+ printer.print(">>>");
+ break;
+ case plus:
+ printer.print("+");
+ break;
+ case minus:
+ printer.print("-");
+ break;
+ case times:
+ printer.print("*");
+ break;
+ case divide:
+ printer.print("/");
+ break;
+ case remainder:
+ printer.print("%");
+ break;
+ }
+ printer.print(" ");
+ n.getRight().accept(this, arg);
+ }
+
+ @Override
+ public void visit(CastExpr n, Object arg) {
+ printer.print("(");
+ n.getType().accept(this, arg);
+ printer.print(") ");
+ n.getExpr().accept(this, arg);
+ }
+
+ @Override
+ public void visit(ClassExpr n, Object arg) {
+ n.getType().accept(this, arg);
+ printer.print(".class");
+ }
+
+ @Override
+ public void visit(ConditionalExpr n, Object arg) {
+ n.getCondition().accept(this, arg);
+ printer.print(" ? ");
+ n.getThenExpr().accept(this, arg);
+ printer.print(" : ");
+ n.getElseExpr().accept(this, arg);
+ }
+
+ @Override
+ public void visit(EnclosedExpr n, Object arg) {
+ printer.print("(");
+ n.getInner().accept(this, arg);
+ printer.print(")");
+ }
+
+ @Override
+ public void visit(FieldAccessExpr n, Object arg) {
+ n.getScope().accept(this, arg);
+ printer.print(".");
+ printer.print(n.getField());
+ }
+
+ @Override
+ public void visit(InstanceOfExpr n, Object arg) {
+ n.getExpr().accept(this, arg);
+ printer.print(" instanceof ");
+ n.getType().accept(this, arg);
+ }
+
+ @Override
+ public void visit(CharLiteralExpr n, Object arg) {
+ printer.print("'");
+ printer.print(n.getValue());
+ printer.print("'");
+ }
+
+ @Override
+ public void visit(DoubleLiteralExpr n, Object arg) {
+ printer.print(n.getValue());
+ }
+
+ @Override
+ public void visit(IntegerLiteralExpr n, Object arg) {
+ printer.print(n.getValue());
+ }
+
+ @Override
+ public void visit(LongLiteralExpr n, Object arg) {
+ printer.print(n.getValue());
+ }
+
+ @Override
+ public void visit(IntegerLiteralMinValueExpr n, Object arg) {
+ printer.print(n.getValue());
+ }
+
+ @Override
+ public void visit(LongLiteralMinValueExpr n, Object arg) {
+ printer.print(n.getValue());
+ }
+
+ @Override
+ public void visit(StringLiteralExpr n, Object arg) {
+ printer.print("\"");
+ printer.print(n.getValue());
+ printer.print("\"");
+ }
+
+ @Override
+ public void visit(BooleanLiteralExpr n, Object arg) {
+ printer.print(String.valueOf(n.getValue()));
+ }
+
+ @Override
+ public void visit(NullLiteralExpr n, Object arg) {
+ printer.print("null");
+ }
+
+ @Override
+ public void visit(ThisExpr n, Object arg) {
+ if (n.getClassExpr() != null) {
+ n.getClassExpr().accept(this, arg);
+ printer.print(".");
+ }
+ printer.print("this");
+ }
+
+ @Override
+ public void visit(SuperExpr n, Object arg) {
+ if (n.getClassExpr() != null) {
+ n.getClassExpr().accept(this, arg);
+ printer.print(".");
+ }
+ printer.print("super");
+ }
+
+ @Override
+ public void visit(MethodCallExpr n, Object arg) {
+ if (n.getScope() != null) {
+ n.getScope().accept(this, arg);
+ printer.print(".");
+ }
+ printTypeArgs(n.getTypeArgs(), arg);
+ printer.print(n.getName());
+ printArguments(n.getArgs(), arg);
+ }
+
+ @Override
+ public void visit(ObjectCreationExpr n, Object arg) {
+ if (n.getScope() != null) {
+ n.getScope().accept(this, arg);
+ printer.print(".");
+ }
+
+ printer.print("new ");
+
+ printTypeArgs(n.getTypeArgs(), arg);
+ n.getType().accept(this, arg);
+
+ printArguments(n.getArgs(), arg);
+
+ if (n.getAnonymousClassBody() != null) {
+ printer.printLn(" {");
+ printer.indent();
+ printMembers(n.getAnonymousClassBody(), arg);
+ printer.unindent();
+ printer.print("}");
+ }
+ }
+
+ @Override
+ public void visit(UnaryExpr n, Object arg) {
+ switch (n.getOperator()) {
+ case positive:
+ printer.print("+");
+ break;
+ case negative:
+ printer.print("-");
+ break;
+ case inverse:
+ printer.print("~");
+ break;
+ case not:
+ printer.print("!");
+ break;
+ case preIncrement:
+ printer.print("++");
+ break;
+ case preDecrement:
+ printer.print("--");
+ break;
+ }
+
+ n.getExpr().accept(this, arg);
+
+ switch (n.getOperator()) {
+ case posIncrement:
+ printer.print("++");
+ break;
+ case posDecrement:
+ printer.print("--");
+ break;
+ }
+ }
+
+ @Override
+ public void visit(ConstructorDeclaration n, Object arg) {
+ printJavadoc(n.getJavaDoc(), arg);
+ printMemberAnnotations(n.getAnnotations(), arg);
+ printModifiers(n.getModifiers());
+
+ printTypeParameters(n.getTypeParameters(), arg);
+ if (n.getTypeParameters() != null) {
+ printer.print(" ");
+ }
+ printer.print(n.getName());
+
+ printer.print("(");
+ if (n.getParameters() != null) {
+ for (Iterator<Parameter> i = n.getParameters().iterator(); i.hasNext();) {
+ Parameter p = i.next();
+ p.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+ printer.print(")");
+
+ if (n.getThrows() != null) {
+ printer.print(" throws ");
+ for (Iterator<NameExpr> i = n.getThrows().iterator(); i.hasNext();) {
+ NameExpr name = i.next();
+ name.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+ printer.print(" ");
+ n.getBlock().accept(this, arg);
+ }
+
+ @Override
+ public void visit(MethodDeclaration n, Object arg) {
+ printJavadoc(n.getJavaDoc(), arg);
+ printMemberAnnotations(n.getAnnotations(), arg);
+ printModifiers(n.getModifiers());
+
+ printTypeParameters(n.getTypeParameters(), arg);
+ if (n.getTypeParameters() != null) {
+ printer.print(" ");
+ }
+
+ n.getType().accept(this, arg);
+ printer.print(" ");
+ printer.print(n.getName());
+
+ printer.print("(");
+ if (n.getParameters() != null) {
+ for (Iterator<Parameter> i = n.getParameters().iterator(); i.hasNext();) {
+ Parameter p = i.next();
+ p.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+ printer.print(")");
+
+ for (int i = 0; i < n.getArrayCount(); i++) {
+ printer.print("[]");
+ }
+
+ if (n.getThrows() != null) {
+ printer.print(" throws ");
+ for (Iterator<NameExpr> i = n.getThrows().iterator(); i.hasNext();) {
+ NameExpr name = i.next();
+ name.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+ if (n.getBody() == null) {
+ printer.print(";");
+ } else {
+ printer.print(" ");
+ n.getBody().accept(this, arg);
+ }
+ }
+
+ @Override
+ public void visit(Parameter n, Object arg) {
+ printAnnotations(n.getAnnotations(), arg);
+ printModifiers(n.getModifiers());
+
+ n.getType().accept(this, arg);
+ if (n.isVarArgs()) {
+ printer.print("...");
+ }
+ printer.print(" ");
+ n.getId().accept(this, arg);
+ }
+
+ @Override
+ public void visit(ExplicitConstructorInvocationStmt n, Object arg) {
+ if (n.isThis()) {
+ printTypeArgs(n.getTypeArgs(), arg);
+ printer.print("this");
+ } else {
+ if (n.getExpr() != null) {
+ n.getExpr().accept(this, arg);
+ printer.print(".");
+ }
+ printTypeArgs(n.getTypeArgs(), arg);
+ printer.print("super");
+ }
+ printArguments(n.getArgs(), arg);
+ printer.print(";");
+ }
+
+ @Override
+ public void visit(VariableDeclarationExpr n, Object arg) {
+ printAnnotations(n.getAnnotations(), arg);
+ printModifiers(n.getModifiers());
+
+ n.getType().accept(this, arg);
+ printer.print(" ");
+
+ for (Iterator<VariableDeclarator> i = n.getVars().iterator(); i.hasNext();) {
+ VariableDeclarator v = i.next();
+ v.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+
+ @Override
+ public void visit(TypeDeclarationStmt n, Object arg) {
+ n.getTypeDeclaration().accept(this, arg);
+ }
+
+ @Override
+ public void visit(AssertStmt n, Object arg) {
+ printer.print("assert ");
+ n.getCheck().accept(this, arg);
+ if (n.getMessage() != null) {
+ printer.print(" : ");
+ n.getMessage().accept(this, arg);
+ }
+ printer.print(";");
+ }
+
+ @Override
+ public void visit(BlockStmt n, Object arg) {
+ printer.printLn("{");
+ if (n.getStmts() != null) {
+ printer.indent();
+ for (Statement s : n.getStmts()) {
+ s.accept(this, arg);
+ printer.printLn();
+ }
+ printer.unindent();
+ }
+ printer.print("}");
+
+ }
+
+ @Override
+ public void visit(LabeledStmt n, Object arg) {
+ printer.print(n.getLabel());
+ printer.print(": ");
+ n.getStmt().accept(this, arg);
+ }
+
+ @Override
+ public void visit(EmptyStmt n, Object arg) {
+ printer.print(";");
+ }
+
+ @Override
+ public void visit(ExpressionStmt n, Object arg) {
+ n.getExpression().accept(this, arg);
+ printer.print(";");
+ }
+
+ @Override
+ public void visit(SwitchStmt n, Object arg) {
+ printer.print("switch(");
+ n.getSelector().accept(this, arg);
+ printer.printLn(") {");
+ if (n.getEntries() != null) {
+ printer.indent();
+ for (SwitchEntryStmt e : n.getEntries()) {
+ e.accept(this, arg);
+ }
+ printer.unindent();
+ }
+ printer.print("}");
+
+ }
+
+ @Override
+ public void visit(SwitchEntryStmt n, Object arg) {
+ if (n.getLabel() != null) {
+ printer.print("case ");
+ n.getLabel().accept(this, arg);
+ printer.print(":");
+ } else {
+ printer.print("default:");
+ }
+ printer.printLn();
+ printer.indent();
+ if (n.getStmts() != null) {
+ for (Statement s : n.getStmts()) {
+ s.accept(this, arg);
+ printer.printLn();
+ }
+ }
+ printer.unindent();
+ }
+
+ @Override
+ public void visit(BreakStmt n, Object arg) {
+ printer.print("break");
+ if (n.getId() != null) {
+ printer.print(" ");
+ printer.print(n.getId());
+ }
+ printer.print(";");
+ }
+
+ @Override
+ public void visit(ReturnStmt n, Object arg) {
+ printer.print("return");
+ if (n.getExpr() != null) {
+ printer.print(" ");
+ n.getExpr().accept(this, arg);
+ }
+ printer.print(";");
+ }
+
+ @Override
+ public void visit(EnumDeclaration n, Object arg) {
+ printJavadoc(n.getJavaDoc(), arg);
+ printMemberAnnotations(n.getAnnotations(), arg);
+ printModifiers(n.getModifiers());
+
+ printer.print("enum ");
+ printer.print(n.getName());
+
+ if (n.getImplements() != null) {
+ printer.print(" implements ");
+ for (Iterator<ClassOrInterfaceType> i = n.getImplements().iterator(); i.hasNext();) {
+ ClassOrInterfaceType c = i.next();
+ c.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+
+ printer.printLn(" {");
+ printer.indent();
+ if (n.getEntries() != null) {
+ printer.printLn();
+ for (Iterator<EnumConstantDeclaration> i = n.getEntries().iterator(); i.hasNext();) {
+ EnumConstantDeclaration e = i.next();
+ e.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+ if (n.getMembers() != null) {
+ printer.printLn(";");
+ printMembers(n.getMembers(), arg);
+ } else {
+ if (n.getEntries() != null) {
+ printer.printLn();
+ }
+ }
+ printer.unindent();
+ printer.print("}");
+ }
+
+ @Override
+ public void visit(EnumConstantDeclaration n, Object arg) {
+ printJavadoc(n.getJavaDoc(), arg);
+ printMemberAnnotations(n.getAnnotations(), arg);
+ printer.print(n.getName());
+
+ if (n.getArgs() != null) {
+ printArguments(n.getArgs(), arg);
+ }
+
+ if (n.getClassBody() != null) {
+ printer.printLn(" {");
+ printer.indent();
+ printMembers(n.getClassBody(), arg);
+ printer.unindent();
+ printer.printLn("}");
+ }
+ }
+
+ @Override
+ public void visit(EmptyMemberDeclaration n, Object arg) {
+ printJavadoc(n.getJavaDoc(), arg);
+ printer.print(";");
+ }
+
+ @Override
+ public void visit(InitializerDeclaration n, Object arg) {
+ printJavadoc(n.getJavaDoc(), arg);
+ if (n.isStatic()) {
+ printer.print("static ");
+ }
+ n.getBlock().accept(this, arg);
+ }
+
+ @Override
+ public void visit(IfStmt n, Object arg) {
+ printer.print("if (");
+ n.getCondition().accept(this, arg);
+ printer.print(") ");
+ n.getThenStmt().accept(this, arg);
+ if (n.getElseStmt() != null) {
+ printer.print(" else ");
+ n.getElseStmt().accept(this, arg);
+ }
+ }
+
+ @Override
+ public void visit(WhileStmt n, Object arg) {
+ printer.print("while (");
+ n.getCondition().accept(this, arg);
+ printer.print(") ");
+ n.getBody().accept(this, arg);
+ }
+
+ @Override
+ public void visit(ContinueStmt n, Object arg) {
+ printer.print("continue");
+ if (n.getId() != null) {
+ printer.print(" ");
+ printer.print(n.getId());
+ }
+ printer.print(";");
+ }
+
+ @Override
+ public void visit(DoStmt n, Object arg) {
+ printer.print("do ");
+ n.getBody().accept(this, arg);
+ printer.print(" while (");
+ n.getCondition().accept(this, arg);
+ printer.print(");");
+ }
+
+ @Override
+ public void visit(ForeachStmt n, Object arg) {
+ printer.print("for (");
+ n.getVariable().accept(this, arg);
+ printer.print(" : ");
+ n.getIterable().accept(this, arg);
+ printer.print(") ");
+ n.getBody().accept(this, arg);
+ }
+
+ @Override
+ public void visit(ForStmt n, Object arg) {
+ printer.print("for (");
+ if (n.getInit() != null) {
+ for (Iterator<Expression> i = n.getInit().iterator(); i.hasNext();) {
+ Expression e = i.next();
+ e.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+ printer.print("; ");
+ if (n.getCompare() != null) {
+ n.getCompare().accept(this, arg);
+ }
+ printer.print("; ");
+ if (n.getUpdate() != null) {
+ for (Iterator<Expression> i = n.getUpdate().iterator(); i.hasNext();) {
+ Expression e = i.next();
+ e.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+ printer.print(") ");
+ n.getBody().accept(this, arg);
+ }
+
+ @Override
+ public void visit(ThrowStmt n, Object arg) {
+ printer.print("throw ");
+ n.getExpr().accept(this, arg);
+ printer.print(";");
+ }
+
+ @Override
+ public void visit(SynchronizedStmt n, Object arg) {
+ printer.print("synchronized (");
+ n.getExpr().accept(this, arg);
+ printer.print(") ");
+ n.getBlock().accept(this, arg);
+ }
+
+ @Override
+ public void visit(TryStmt n, Object arg) {
+ printer.print("try ");
+ n.getTryBlock().accept(this, arg);
+ if (n.getCatchs() != null) {
+ for (CatchClause c : n.getCatchs()) {
+ c.accept(this, arg);
+ }
+ }
+ if (n.getFinallyBlock() != null) {
+ printer.print(" finally ");
+ n.getFinallyBlock().accept(this, arg);
+ }
+ }
+
+ @Override
+ public void visit(CatchClause n, Object arg) {
+ printer.print(" catch (");
+ n.getExcept().accept(this, arg);
+ printer.print(") ");
+ n.getCatchBlock().accept(this, arg);
+
+ }
+
+ @Override
+ public void visit(AnnotationDeclaration n, Object arg) {
+ printJavadoc(n.getJavaDoc(), arg);
+ printMemberAnnotations(n.getAnnotations(), arg);
+ printModifiers(n.getModifiers());
+
+ printer.print("@interface ");
+ printer.print(n.getName());
+ printer.printLn(" {");
+ printer.indent();
+ if (n.getMembers() != null) {
+ printMembers(n.getMembers(), arg);
+ }
+ printer.unindent();
+ printer.print("}");
+ }
+
+ @Override
+ public void visit(AnnotationMemberDeclaration n, Object arg) {
+ printJavadoc(n.getJavaDoc(), arg);
+ printMemberAnnotations(n.getAnnotations(), arg);
+ printModifiers(n.getModifiers());
+
+ n.getType().accept(this, arg);
+ printer.print(" ");
+ printer.print(n.getName());
+ printer.print("()");
+ if (n.getDefaultValue() != null) {
+ printer.print(" default ");
+ n.getDefaultValue().accept(this, arg);
+ }
+ printer.print(";");
+ }
+
+ @Override
+ public void visit(MarkerAnnotationExpr n, Object arg) {
+ printer.print("@");
+ n.getName().accept(this, arg);
+ }
+
+ @Override
+ public void visit(SingleMemberAnnotationExpr n, Object arg) {
+ printer.print("@");
+ n.getName().accept(this, arg);
+ printer.print("(");
+ n.getMemberValue().accept(this, arg);
+ printer.print(")");
+ }
+
+ @Override
+ public void visit(NormalAnnotationExpr n, Object arg) {
+ printer.print("@");
+ n.getName().accept(this, arg);
+ printer.print("(");
+ if (n.getPairs() != null) {
+ for (Iterator<MemberValuePair> i = n.getPairs().iterator(); i.hasNext();) {
+ MemberValuePair m = i.next();
+ m.accept(this, arg);
+ if (i.hasNext()) {
+ printer.print(", ");
+ }
+ }
+ }
+ printer.print(")");
+ }
+
+ @Override
+ public void visit(MemberValuePair n, Object arg) {
+ printer.print(n.getName());
+ printer.print(" = ");
+ n.getValue().accept(this, arg);
+ }
+
+ @Override
+ public void visit(LineComment n, Object arg) {
+ printer.print("//");
+ printer.printLn(n.getContent());
+ }
+
+ @Override
+ public void visit(BlockComment n, Object arg) {
+ printer.print("/*");
+ printer.print(n.getContent());
+ printer.printLn("*/");
+ }
+
+ @Override
+ public void visit(Node n, Object arg) {
+ throw new IllegalStateException(n.getClass().getName());
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/visitor/GenericVisitor.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/visitor/GenericVisitor.java
new file mode 100644
index 00000000000..8041649a27f
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/visitor/GenericVisitor.java
@@ -0,0 +1,280 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast.visitor;
+
+import japa.parser.ast.BlockComment;
+import japa.parser.ast.CompilationUnit;
+import japa.parser.ast.ImportDeclaration;
+import japa.parser.ast.LineComment;
+import japa.parser.ast.Node;
+import japa.parser.ast.PackageDeclaration;
+import japa.parser.ast.TypeParameter;
+import japa.parser.ast.body.AnnotationDeclaration;
+import japa.parser.ast.body.AnnotationMemberDeclaration;
+import japa.parser.ast.body.ClassOrInterfaceDeclaration;
+import japa.parser.ast.body.ConstructorDeclaration;
+import japa.parser.ast.body.EmptyMemberDeclaration;
+import japa.parser.ast.body.EmptyTypeDeclaration;
+import japa.parser.ast.body.EnumConstantDeclaration;
+import japa.parser.ast.body.EnumDeclaration;
+import japa.parser.ast.body.FieldDeclaration;
+import japa.parser.ast.body.InitializerDeclaration;
+import japa.parser.ast.body.JavadocComment;
+import japa.parser.ast.body.MethodDeclaration;
+import japa.parser.ast.body.Parameter;
+import japa.parser.ast.body.VariableDeclarator;
+import japa.parser.ast.body.VariableDeclaratorId;
+import japa.parser.ast.expr.ArrayAccessExpr;
+import japa.parser.ast.expr.ArrayCreationExpr;
+import japa.parser.ast.expr.ArrayInitializerExpr;
+import japa.parser.ast.expr.AssignExpr;
+import japa.parser.ast.expr.BinaryExpr;
+import japa.parser.ast.expr.BooleanLiteralExpr;
+import japa.parser.ast.expr.CastExpr;
+import japa.parser.ast.expr.CharLiteralExpr;
+import japa.parser.ast.expr.ClassExpr;
+import japa.parser.ast.expr.ConditionalExpr;
+import japa.parser.ast.expr.DoubleLiteralExpr;
+import japa.parser.ast.expr.EnclosedExpr;
+import japa.parser.ast.expr.FieldAccessExpr;
+import japa.parser.ast.expr.InstanceOfExpr;
+import japa.parser.ast.expr.IntegerLiteralExpr;
+import japa.parser.ast.expr.IntegerLiteralMinValueExpr;
+import japa.parser.ast.expr.LongLiteralExpr;
+import japa.parser.ast.expr.LongLiteralMinValueExpr;
+import japa.parser.ast.expr.MarkerAnnotationExpr;
+import japa.parser.ast.expr.MemberValuePair;
+import japa.parser.ast.expr.MethodCallExpr;
+import japa.parser.ast.expr.NameExpr;
+import japa.parser.ast.expr.NormalAnnotationExpr;
+import japa.parser.ast.expr.NullLiteralExpr;
+import japa.parser.ast.expr.ObjectCreationExpr;
+import japa.parser.ast.expr.QualifiedNameExpr;
+import japa.parser.ast.expr.SingleMemberAnnotationExpr;
+import japa.parser.ast.expr.StringLiteralExpr;
+import japa.parser.ast.expr.SuperExpr;
+import japa.parser.ast.expr.ThisExpr;
+import japa.parser.ast.expr.UnaryExpr;
+import japa.parser.ast.expr.VariableDeclarationExpr;
+import japa.parser.ast.stmt.AssertStmt;
+import japa.parser.ast.stmt.BlockStmt;
+import japa.parser.ast.stmt.BreakStmt;
+import japa.parser.ast.stmt.CatchClause;
+import japa.parser.ast.stmt.ContinueStmt;
+import japa.parser.ast.stmt.DoStmt;
+import japa.parser.ast.stmt.EmptyStmt;
+import japa.parser.ast.stmt.ExplicitConstructorInvocationStmt;
+import japa.parser.ast.stmt.ExpressionStmt;
+import japa.parser.ast.stmt.ForStmt;
+import japa.parser.ast.stmt.ForeachStmt;
+import japa.parser.ast.stmt.IfStmt;
+import japa.parser.ast.stmt.LabeledStmt;
+import japa.parser.ast.stmt.ReturnStmt;
+import japa.parser.ast.stmt.SwitchEntryStmt;
+import japa.parser.ast.stmt.SwitchStmt;
+import japa.parser.ast.stmt.SynchronizedStmt;
+import japa.parser.ast.stmt.ThrowStmt;
+import japa.parser.ast.stmt.TryStmt;
+import japa.parser.ast.stmt.TypeDeclarationStmt;
+import japa.parser.ast.stmt.WhileStmt;
+import japa.parser.ast.type.ClassOrInterfaceType;
+import japa.parser.ast.type.PrimitiveType;
+import japa.parser.ast.type.ReferenceType;
+import japa.parser.ast.type.VoidType;
+import japa.parser.ast.type.WildcardType;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public interface GenericVisitor<R, A> {
+
+ public R visit(Node n, A arg);
+
+ // - Compilation Unit ----------------------------------
+
+ public R visit(CompilationUnit n, A arg);
+
+ public R visit(PackageDeclaration n, A arg);
+
+ public R visit(ImportDeclaration n, A arg);
+
+ public R visit(TypeParameter n, A arg);
+
+ public R visit(LineComment n, A arg);
+
+ public R visit(BlockComment n, A arg);
+
+ // - Body ----------------------------------------------
+
+ public R visit(ClassOrInterfaceDeclaration n, A arg);
+
+ public R visit(EnumDeclaration n, A arg);
+
+ public R visit(EmptyTypeDeclaration n, A arg);
+
+ public R visit(EnumConstantDeclaration n, A arg);
+
+ public R visit(AnnotationDeclaration n, A arg);
+
+ public R visit(AnnotationMemberDeclaration n, A arg);
+
+ public R visit(FieldDeclaration n, A arg);
+
+ public R visit(VariableDeclarator n, A arg);
+
+ public R visit(VariableDeclaratorId n, A arg);
+
+ public R visit(ConstructorDeclaration n, A arg);
+
+ public R visit(MethodDeclaration n, A arg);
+
+ public R visit(Parameter n, A arg);
+
+ public R visit(EmptyMemberDeclaration n, A arg);
+
+ public R visit(InitializerDeclaration n, A arg);
+
+ public R visit(JavadocComment n, A arg);
+
+ // - Type ----------------------------------------------
+
+ public R visit(ClassOrInterfaceType n, A arg);
+
+ public R visit(PrimitiveType n, A arg);
+
+ public R visit(ReferenceType n, A arg);
+
+ public R visit(VoidType n, A arg);
+
+ public R visit(WildcardType n, A arg);
+
+ // - Expression ----------------------------------------
+
+ public R visit(ArrayAccessExpr n, A arg);
+
+ public R visit(ArrayCreationExpr n, A arg);
+
+ public R visit(ArrayInitializerExpr n, A arg);
+
+ public R visit(AssignExpr n, A arg);
+
+ public R visit(BinaryExpr n, A arg);
+
+ public R visit(CastExpr n, A arg);
+
+ public R visit(ClassExpr n, A arg);
+
+ public R visit(ConditionalExpr n, A arg);
+
+ public R visit(EnclosedExpr n, A arg);
+
+ public R visit(FieldAccessExpr n, A arg);
+
+ public R visit(InstanceOfExpr n, A arg);
+
+ public R visit(StringLiteralExpr n, A arg);
+
+ public R visit(IntegerLiteralExpr n, A arg);
+
+ public R visit(LongLiteralExpr n, A arg);
+
+ public R visit(IntegerLiteralMinValueExpr n, A arg);
+
+ public R visit(LongLiteralMinValueExpr n, A arg);
+
+ public R visit(CharLiteralExpr n, A arg);
+
+ public R visit(DoubleLiteralExpr n, A arg);
+
+ public R visit(BooleanLiteralExpr n, A arg);
+
+ public R visit(NullLiteralExpr n, A arg);
+
+ public R visit(MethodCallExpr n, A arg);
+
+ public R visit(NameExpr n, A arg);
+
+ public R visit(ObjectCreationExpr n, A arg);
+
+ public R visit(QualifiedNameExpr n, A arg);
+
+ public R visit(ThisExpr n, A arg);
+
+ public R visit(SuperExpr n, A arg);
+
+ public R visit(UnaryExpr n, A arg);
+
+ public R visit(VariableDeclarationExpr n, A arg);
+
+ public R visit(MarkerAnnotationExpr n, A arg);
+
+ public R visit(SingleMemberAnnotationExpr n, A arg);
+
+ public R visit(NormalAnnotationExpr n, A arg);
+
+ public R visit(MemberValuePair n, A arg);
+
+ // - Statements ----------------------------------------
+
+ public R visit(ExplicitConstructorInvocationStmt n, A arg);
+
+ public R visit(TypeDeclarationStmt n, A arg);
+
+ public R visit(AssertStmt n, A arg);
+
+ public R visit(BlockStmt n, A arg);
+
+ public R visit(LabeledStmt n, A arg);
+
+ public R visit(EmptyStmt n, A arg);
+
+ public R visit(ExpressionStmt n, A arg);
+
+ public R visit(SwitchStmt n, A arg);
+
+ public R visit(SwitchEntryStmt n, A arg);
+
+ public R visit(BreakStmt n, A arg);
+
+ public R visit(ReturnStmt n, A arg);
+
+ public R visit(IfStmt n, A arg);
+
+ public R visit(WhileStmt n, A arg);
+
+ public R visit(ContinueStmt n, A arg);
+
+ public R visit(DoStmt n, A arg);
+
+ public R visit(ForeachStmt n, A arg);
+
+ public R visit(ForStmt n, A arg);
+
+ public R visit(ThrowStmt n, A arg);
+
+ public R visit(SynchronizedStmt n, A arg);
+
+ public R visit(TryStmt n, A arg);
+
+ public R visit(CatchClause n, A arg);
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/visitor/GenericVisitorAdapter.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/visitor/GenericVisitorAdapter.java
new file mode 100644
index 00000000000..5140baac26e
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/visitor/GenericVisitorAdapter.java
@@ -0,0 +1,910 @@
+/*
+ * Copyright (C) 2008 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 09/06/2008
+ */
+package japa.parser.ast.visitor;
+
+import japa.parser.ast.BlockComment;
+import japa.parser.ast.CompilationUnit;
+import japa.parser.ast.ImportDeclaration;
+import japa.parser.ast.LineComment;
+import japa.parser.ast.Node;
+import japa.parser.ast.PackageDeclaration;
+import japa.parser.ast.TypeParameter;
+import japa.parser.ast.body.AnnotationDeclaration;
+import japa.parser.ast.body.AnnotationMemberDeclaration;
+import japa.parser.ast.body.BodyDeclaration;
+import japa.parser.ast.body.ClassOrInterfaceDeclaration;
+import japa.parser.ast.body.ConstructorDeclaration;
+import japa.parser.ast.body.EmptyMemberDeclaration;
+import japa.parser.ast.body.EmptyTypeDeclaration;
+import japa.parser.ast.body.EnumConstantDeclaration;
+import japa.parser.ast.body.EnumDeclaration;
+import japa.parser.ast.body.FieldDeclaration;
+import japa.parser.ast.body.InitializerDeclaration;
+import japa.parser.ast.body.JavadocComment;
+import japa.parser.ast.body.MethodDeclaration;
+import japa.parser.ast.body.Parameter;
+import japa.parser.ast.body.TypeDeclaration;
+import japa.parser.ast.body.VariableDeclarator;
+import japa.parser.ast.body.VariableDeclaratorId;
+import japa.parser.ast.expr.AnnotationExpr;
+import japa.parser.ast.expr.ArrayAccessExpr;
+import japa.parser.ast.expr.ArrayCreationExpr;
+import japa.parser.ast.expr.ArrayInitializerExpr;
+import japa.parser.ast.expr.AssignExpr;
+import japa.parser.ast.expr.BinaryExpr;
+import japa.parser.ast.expr.BooleanLiteralExpr;
+import japa.parser.ast.expr.CastExpr;
+import japa.parser.ast.expr.CharLiteralExpr;
+import japa.parser.ast.expr.ClassExpr;
+import japa.parser.ast.expr.ConditionalExpr;
+import japa.parser.ast.expr.DoubleLiteralExpr;
+import japa.parser.ast.expr.EnclosedExpr;
+import japa.parser.ast.expr.Expression;
+import japa.parser.ast.expr.FieldAccessExpr;
+import japa.parser.ast.expr.InstanceOfExpr;
+import japa.parser.ast.expr.IntegerLiteralExpr;
+import japa.parser.ast.expr.IntegerLiteralMinValueExpr;
+import japa.parser.ast.expr.LongLiteralExpr;
+import japa.parser.ast.expr.LongLiteralMinValueExpr;
+import japa.parser.ast.expr.MarkerAnnotationExpr;
+import japa.parser.ast.expr.MemberValuePair;
+import japa.parser.ast.expr.MethodCallExpr;
+import japa.parser.ast.expr.NameExpr;
+import japa.parser.ast.expr.NormalAnnotationExpr;
+import japa.parser.ast.expr.NullLiteralExpr;
+import japa.parser.ast.expr.ObjectCreationExpr;
+import japa.parser.ast.expr.QualifiedNameExpr;
+import japa.parser.ast.expr.SingleMemberAnnotationExpr;
+import japa.parser.ast.expr.StringLiteralExpr;
+import japa.parser.ast.expr.SuperExpr;
+import japa.parser.ast.expr.ThisExpr;
+import japa.parser.ast.expr.UnaryExpr;
+import japa.parser.ast.expr.VariableDeclarationExpr;
+import japa.parser.ast.stmt.AssertStmt;
+import japa.parser.ast.stmt.BlockStmt;
+import japa.parser.ast.stmt.BreakStmt;
+import japa.parser.ast.stmt.CatchClause;
+import japa.parser.ast.stmt.ContinueStmt;
+import japa.parser.ast.stmt.DoStmt;
+import japa.parser.ast.stmt.EmptyStmt;
+import japa.parser.ast.stmt.ExplicitConstructorInvocationStmt;
+import japa.parser.ast.stmt.ExpressionStmt;
+import japa.parser.ast.stmt.ForStmt;
+import japa.parser.ast.stmt.ForeachStmt;
+import japa.parser.ast.stmt.IfStmt;
+import japa.parser.ast.stmt.LabeledStmt;
+import japa.parser.ast.stmt.ReturnStmt;
+import japa.parser.ast.stmt.Statement;
+import japa.parser.ast.stmt.SwitchEntryStmt;
+import japa.parser.ast.stmt.SwitchStmt;
+import japa.parser.ast.stmt.SynchronizedStmt;
+import japa.parser.ast.stmt.ThrowStmt;
+import japa.parser.ast.stmt.TryStmt;
+import japa.parser.ast.stmt.TypeDeclarationStmt;
+import japa.parser.ast.stmt.WhileStmt;
+import japa.parser.ast.type.ClassOrInterfaceType;
+import japa.parser.ast.type.PrimitiveType;
+import japa.parser.ast.type.ReferenceType;
+import japa.parser.ast.type.Type;
+import japa.parser.ast.type.VoidType;
+import japa.parser.ast.type.WildcardType;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public class GenericVisitorAdapter<R, A> implements GenericVisitor<R, A> {
+
+ @Override
+ public R visit(AnnotationDeclaration n, A arg) {
+ if (n.getJavaDoc() != null) {
+ n.getJavaDoc().accept(this, arg);
+ }
+ if (n.getAnnotations() != null) {
+ for (AnnotationExpr a : n.getAnnotations()) {
+ a.accept(this, arg);
+ }
+ }
+ if (n.getMembers() != null) {
+ for (BodyDeclaration member : n.getMembers()) {
+ member.accept(this, arg);
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(AnnotationMemberDeclaration n, A arg) {
+ if (n.getJavaDoc() != null) {
+ n.getJavaDoc().accept(this, arg);
+ }
+ if (n.getAnnotations() != null) {
+ for (AnnotationExpr a : n.getAnnotations()) {
+ a.accept(this, arg);
+ }
+ }
+ n.getType().accept(this, arg);
+ if (n.getDefaultValue() != null) {
+ n.getDefaultValue().accept(this, arg);
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(ArrayAccessExpr n, A arg) {
+ n.getName().accept(this, arg);
+ n.getIndex().accept(this, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(ArrayCreationExpr n, A arg) {
+ n.getType().accept(this, arg);
+ if (n.getDimensions() != null) {
+ for (Expression dim : n.getDimensions()) {
+ dim.accept(this, arg);
+ }
+ } else {
+ n.getInitializer().accept(this, arg);
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(ArrayInitializerExpr n, A arg) {
+ if (n.getValues() != null) {
+ for (Expression expr : n.getValues()) {
+ expr.accept(this, arg);
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(AssertStmt n, A arg) {
+ n.getCheck().accept(this, arg);
+ if (n.getMessage() != null) {
+ n.getMessage().accept(this, arg);
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(AssignExpr n, A arg) {
+ n.getTarget().accept(this, arg);
+ n.getValue().accept(this, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(BinaryExpr n, A arg) {
+ n.getLeft().accept(this, arg);
+ n.getRight().accept(this, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(BlockStmt n, A arg) {
+ if (n.getStmts() != null) {
+ for (Statement s : n.getStmts()) {
+ s.accept(this, arg);
+ }
+ }
+ return null;
+
+ }
+
+ @Override
+ public R visit(BooleanLiteralExpr n, A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(BreakStmt n, A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(CastExpr n, A arg) {
+ n.getType().accept(this, arg);
+ n.getExpr().accept(this, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(CatchClause n, A arg) {
+ n.getExcept().accept(this, arg);
+ n.getCatchBlock().accept(this, arg);
+ return null;
+
+ }
+
+ @Override
+ public R visit(CharLiteralExpr n, A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(ClassExpr n, A arg) {
+ n.getType().accept(this, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(ClassOrInterfaceDeclaration n, A arg) {
+ if (n.getJavaDoc() != null) {
+ n.getJavaDoc().accept(this, arg);
+ }
+ if (n.getAnnotations() != null) {
+ for (AnnotationExpr a : n.getAnnotations()) {
+ a.accept(this, arg);
+ }
+ }
+ if (n.getTypeParameters() != null) {
+ for (TypeParameter t : n.getTypeParameters()) {
+ t.accept(this, arg);
+ }
+ }
+ if (n.getExtends() != null) {
+ for (ClassOrInterfaceType c : n.getExtends()) {
+ c.accept(this, arg);
+ }
+ }
+
+ if (n.getImplements() != null) {
+ for (ClassOrInterfaceType c : n.getImplements()) {
+ c.accept(this, arg);
+ }
+ }
+ if (n.getMembers() != null) {
+ for (BodyDeclaration member : n.getMembers()) {
+ member.accept(this, arg);
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(ClassOrInterfaceType n, A arg) {
+ if (n.getScope() != null) {
+ n.getScope().accept(this, arg);
+ }
+ if (n.getTypeArgs() != null) {
+ for (Type t : n.getTypeArgs()) {
+ t.accept(this, arg);
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(CompilationUnit n, A arg) {
+ if (n.getPakage() != null) {
+ n.getPakage().accept(this, arg);
+ }
+ if (n.getImports() != null) {
+ for (ImportDeclaration i : n.getImports()) {
+ i.accept(this, arg);
+ }
+ }
+ if (n.getTypes() != null) {
+ for (TypeDeclaration typeDeclaration : n.getTypes()) {
+ typeDeclaration.accept(this, arg);
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(ConditionalExpr n, A arg) {
+ n.getCondition().accept(this, arg);
+ n.getThenExpr().accept(this, arg);
+ n.getElseExpr().accept(this, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(ConstructorDeclaration n, A arg) {
+ if (n.getJavaDoc() != null) {
+ n.getJavaDoc().accept(this, arg);
+ }
+ if (n.getAnnotations() != null) {
+ for (AnnotationExpr a : n.getAnnotations()) {
+ a.accept(this, arg);
+ }
+ }
+ if (n.getTypeParameters() != null) {
+ for (TypeParameter t : n.getTypeParameters()) {
+ t.accept(this, arg);
+ }
+ }
+ if (n.getParameters() != null) {
+ for (Parameter p : n.getParameters()) {
+ p.accept(this, arg);
+ }
+ }
+ if (n.getThrows() != null) {
+ for (NameExpr name : n.getThrows()) {
+ name.accept(this, arg);
+ }
+ }
+ n.getBlock().accept(this, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(ContinueStmt n, A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(DoStmt n, A arg) {
+ n.getBody().accept(this, arg);
+ n.getCondition().accept(this, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(DoubleLiteralExpr n, A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(EmptyMemberDeclaration n, A arg) {
+ if (n.getJavaDoc() != null) {
+ n.getJavaDoc().accept(this, arg);
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(EmptyStmt n, A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(EmptyTypeDeclaration n, A arg) {
+ if (n.getJavaDoc() != null) {
+ n.getJavaDoc().accept(this, arg);
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(EnclosedExpr n, A arg) {
+ n.getInner().accept(this, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(EnumConstantDeclaration n, A arg) {
+ if (n.getJavaDoc() != null) {
+ n.getJavaDoc().accept(this, arg);
+ }
+ if (n.getAnnotations() != null) {
+ for (AnnotationExpr a : n.getAnnotations()) {
+ a.accept(this, arg);
+ }
+ }
+ if (n.getArgs() != null) {
+ for (Expression e : n.getArgs()) {
+ e.accept(this, arg);
+ }
+ }
+ if (n.getClassBody() != null) {
+ for (BodyDeclaration member : n.getClassBody()) {
+ member.accept(this, arg);
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(EnumDeclaration n, A arg) {
+ if (n.getJavaDoc() != null) {
+ n.getJavaDoc().accept(this, arg);
+ }
+ if (n.getAnnotations() != null) {
+ for (AnnotationExpr a : n.getAnnotations()) {
+ a.accept(this, arg);
+ }
+ }
+ if (n.getImplements() != null) {
+ for (ClassOrInterfaceType c : n.getImplements()) {
+ c.accept(this, arg);
+ }
+ }
+ if (n.getEntries() != null) {
+ for (EnumConstantDeclaration e : n.getEntries()) {
+ e.accept(this, arg);
+ }
+ }
+ if (n.getMembers() != null) {
+ for (BodyDeclaration member : n.getMembers()) {
+ member.accept(this, arg);
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(ExplicitConstructorInvocationStmt n, A arg) {
+ if (!n.isThis()) {
+ if (n.getExpr() != null) {
+ n.getExpr().accept(this, arg);
+ }
+ }
+ if (n.getTypeArgs() != null) {
+ for (Type t : n.getTypeArgs()) {
+ t.accept(this, arg);
+ }
+ }
+ if (n.getArgs() != null) {
+ for (Expression e : n.getArgs()) {
+ e.accept(this, arg);
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(ExpressionStmt n, A arg) {
+ n.getExpression().accept(this, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(FieldAccessExpr n, A arg) {
+ n.getScope().accept(this, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(FieldDeclaration n, A arg) {
+ if (n.getJavaDoc() != null) {
+ n.getJavaDoc().accept(this, arg);
+ }
+ if (n.getAnnotations() != null) {
+ for (AnnotationExpr a : n.getAnnotations()) {
+ a.accept(this, arg);
+ }
+ }
+ n.getType().accept(this, arg);
+ for (VariableDeclarator var : n.getVariables()) {
+ var.accept(this, arg);
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(ForeachStmt n, A arg) {
+ n.getVariable().accept(this, arg);
+ n.getIterable().accept(this, arg);
+ n.getBody().accept(this, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(ForStmt n, A arg) {
+ if (n.getInit() != null) {
+ for (Expression e : n.getInit()) {
+ e.accept(this, arg);
+ }
+ }
+ if (n.getCompare() != null) {
+ n.getCompare().accept(this, arg);
+ }
+ if (n.getUpdate() != null) {
+ for (Expression e : n.getUpdate()) {
+ e.accept(this, arg);
+ }
+ }
+ n.getBody().accept(this, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(IfStmt n, A arg) {
+ n.getCondition().accept(this, arg);
+ n.getThenStmt().accept(this, arg);
+ if (n.getElseStmt() != null) {
+ n.getElseStmt().accept(this, arg);
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(ImportDeclaration n, A arg) {
+ n.getName().accept(this, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(InitializerDeclaration n, A arg) {
+ if (n.getJavaDoc() != null) {
+ n.getJavaDoc().accept(this, arg);
+ }
+ n.getBlock().accept(this, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(InstanceOfExpr n, A arg) {
+ n.getExpr().accept(this, arg);
+ n.getType().accept(this, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(IntegerLiteralExpr n, A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(IntegerLiteralMinValueExpr n, A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(JavadocComment n, A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(LabeledStmt n, A arg) {
+ n.getStmt().accept(this, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(LongLiteralExpr n, A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(LongLiteralMinValueExpr n, A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(MarkerAnnotationExpr n, A arg) {
+ n.getName().accept(this, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(MemberValuePair n, A arg) {
+ n.getValue().accept(this, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(MethodCallExpr n, A arg) {
+ if (n.getScope() != null) {
+ n.getScope().accept(this, arg);
+ }
+ if (n.getTypeArgs() != null) {
+ for (Type t : n.getTypeArgs()) {
+ t.accept(this, arg);
+ }
+ }
+ if (n.getArgs() != null) {
+ for (Expression e : n.getArgs()) {
+ e.accept(this, arg);
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(MethodDeclaration n, A arg) {
+ if (n.getJavaDoc() != null) {
+ n.getJavaDoc().accept(this, arg);
+ }
+ if (n.getAnnotations() != null) {
+ for (AnnotationExpr a : n.getAnnotations()) {
+ a.accept(this, arg);
+ }
+ }
+ if (n.getTypeParameters() != null) {
+ for (TypeParameter t : n.getTypeParameters()) {
+ t.accept(this, arg);
+ }
+ }
+ n.getType().accept(this, arg);
+ if (n.getParameters() != null) {
+ for (Parameter p : n.getParameters()) {
+ p.accept(this, arg);
+ }
+ }
+ if (n.getThrows() != null) {
+ for (NameExpr name : n.getThrows()) {
+ name.accept(this, arg);
+ }
+ }
+ if (n.getBody() != null) {
+ n.getBody().accept(this, arg);
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(NameExpr n, A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(NormalAnnotationExpr n, A arg) {
+ n.getName().accept(this, arg);
+ if (n.getPairs() != null) {
+ for (MemberValuePair m : n.getPairs()) {
+ m.accept(this, arg);
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(NullLiteralExpr n, A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(ObjectCreationExpr n, A arg) {
+ if (n.getScope() != null) {
+ n.getScope().accept(this, arg);
+ }
+ if (n.getTypeArgs() != null) {
+ for (Type t : n.getTypeArgs()) {
+ t.accept(this, arg);
+ }
+ }
+ n.getType().accept(this, arg);
+ if (n.getArgs() != null) {
+ for (Expression e : n.getArgs()) {
+ e.accept(this, arg);
+ }
+ }
+ if (n.getAnonymousClassBody() != null) {
+ for (BodyDeclaration member : n.getAnonymousClassBody()) {
+ member.accept(this, arg);
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(PackageDeclaration n, A arg) {
+ if (n.getAnnotations() != null) {
+ for (AnnotationExpr a : n.getAnnotations()) {
+ a.accept(this, arg);
+ }
+ }
+ n.getName().accept(this, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(Parameter n, A arg) {
+ if (n.getAnnotations() != null) {
+ for (AnnotationExpr a : n.getAnnotations()) {
+ a.accept(this, arg);
+ }
+ }
+ n.getType().accept(this, arg);
+ n.getId().accept(this, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(PrimitiveType n, A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(QualifiedNameExpr n, A arg) {
+ n.getQualifier().accept(this, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(ReferenceType n, A arg) {
+ n.getType().accept(this, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(ReturnStmt n, A arg) {
+ if (n.getExpr() != null) {
+ n.getExpr().accept(this, arg);
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(SingleMemberAnnotationExpr n, A arg) {
+ n.getName().accept(this, arg);
+ n.getMemberValue().accept(this, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(StringLiteralExpr n, A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(SuperExpr n, A arg) {
+ if (n.getClassExpr() != null) {
+ n.getClassExpr().accept(this, arg);
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(SwitchEntryStmt n, A arg) {
+ if (n.getLabel() != null) {
+ n.getLabel().accept(this, arg);
+ }
+ if (n.getStmts() != null) {
+ for (Statement s : n.getStmts()) {
+ s.accept(this, arg);
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(SwitchStmt n, A arg) {
+ n.getSelector().accept(this, arg);
+ if (n.getEntries() != null) {
+ for (SwitchEntryStmt e : n.getEntries()) {
+ e.accept(this, arg);
+ }
+ }
+ return null;
+
+ }
+
+ @Override
+ public R visit(SynchronizedStmt n, A arg) {
+ n.getExpr().accept(this, arg);
+ n.getBlock().accept(this, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(ThisExpr n, A arg) {
+ if (n.getClassExpr() != null) {
+ n.getClassExpr().accept(this, arg);
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(ThrowStmt n, A arg) {
+ n.getExpr().accept(this, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(TryStmt n, A arg) {
+ n.getTryBlock().accept(this, arg);
+ if (n.getCatchs() != null) {
+ for (CatchClause c : n.getCatchs()) {
+ c.accept(this, arg);
+ }
+ }
+ if (n.getFinallyBlock() != null) {
+ n.getFinallyBlock().accept(this, arg);
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(TypeDeclarationStmt n, A arg) {
+ n.getTypeDeclaration().accept(this, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(TypeParameter n, A arg) {
+ if (n.getTypeBound() != null) {
+ for (ClassOrInterfaceType c : n.getTypeBound()) {
+ c.accept(this, arg);
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(UnaryExpr n, A arg) {
+ n.getExpr().accept(this, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(VariableDeclarationExpr n, A arg) {
+ if (n.getAnnotations() != null) {
+ for (AnnotationExpr a : n.getAnnotations()) {
+ a.accept(this, arg);
+ }
+ }
+ n.getType().accept(this, arg);
+ for (VariableDeclarator v : n.getVars()) {
+ v.accept(this, arg);
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(VariableDeclarator n, A arg) {
+ n.getId().accept(this, arg);
+ if (n.getInit() != null) {
+ n.getInit().accept(this, arg);
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(VariableDeclaratorId n, A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(VoidType n, A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(WhileStmt n, A arg) {
+ n.getCondition().accept(this, arg);
+ n.getBody().accept(this, arg);
+ return null;
+ }
+
+ @Override
+ public R visit(WildcardType n, A arg) {
+ if (n.getExtends() != null) {
+ n.getExtends().accept(this, arg);
+ }
+ if (n.getSuper() != null) {
+ n.getSuper().accept(this, arg);
+ }
+ return null;
+ }
+
+ @Override
+ public R visit(BlockComment n, A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(LineComment n, A arg) {
+ return null;
+ }
+
+ @Override
+ public R visit(Node n, A arg) {
+ throw new IllegalStateException(n.getClass().getName());
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/visitor/VoidVisitor.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/visitor/VoidVisitor.java
new file mode 100644
index 00000000000..4996631b4be
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/visitor/VoidVisitor.java
@@ -0,0 +1,280 @@
+/*
+ * Copyright (C) 2007 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 05/10/2006
+ */
+package japa.parser.ast.visitor;
+
+import japa.parser.ast.BlockComment;
+import japa.parser.ast.CompilationUnit;
+import japa.parser.ast.ImportDeclaration;
+import japa.parser.ast.LineComment;
+import japa.parser.ast.Node;
+import japa.parser.ast.PackageDeclaration;
+import japa.parser.ast.TypeParameter;
+import japa.parser.ast.body.AnnotationDeclaration;
+import japa.parser.ast.body.AnnotationMemberDeclaration;
+import japa.parser.ast.body.ClassOrInterfaceDeclaration;
+import japa.parser.ast.body.ConstructorDeclaration;
+import japa.parser.ast.body.EmptyMemberDeclaration;
+import japa.parser.ast.body.EmptyTypeDeclaration;
+import japa.parser.ast.body.EnumConstantDeclaration;
+import japa.parser.ast.body.EnumDeclaration;
+import japa.parser.ast.body.FieldDeclaration;
+import japa.parser.ast.body.InitializerDeclaration;
+import japa.parser.ast.body.JavadocComment;
+import japa.parser.ast.body.MethodDeclaration;
+import japa.parser.ast.body.Parameter;
+import japa.parser.ast.body.VariableDeclarator;
+import japa.parser.ast.body.VariableDeclaratorId;
+import japa.parser.ast.expr.ArrayAccessExpr;
+import japa.parser.ast.expr.ArrayCreationExpr;
+import japa.parser.ast.expr.ArrayInitializerExpr;
+import japa.parser.ast.expr.AssignExpr;
+import japa.parser.ast.expr.BinaryExpr;
+import japa.parser.ast.expr.BooleanLiteralExpr;
+import japa.parser.ast.expr.CastExpr;
+import japa.parser.ast.expr.CharLiteralExpr;
+import japa.parser.ast.expr.ClassExpr;
+import japa.parser.ast.expr.ConditionalExpr;
+import japa.parser.ast.expr.DoubleLiteralExpr;
+import japa.parser.ast.expr.EnclosedExpr;
+import japa.parser.ast.expr.FieldAccessExpr;
+import japa.parser.ast.expr.InstanceOfExpr;
+import japa.parser.ast.expr.IntegerLiteralExpr;
+import japa.parser.ast.expr.IntegerLiteralMinValueExpr;
+import japa.parser.ast.expr.LongLiteralExpr;
+import japa.parser.ast.expr.LongLiteralMinValueExpr;
+import japa.parser.ast.expr.MarkerAnnotationExpr;
+import japa.parser.ast.expr.MemberValuePair;
+import japa.parser.ast.expr.MethodCallExpr;
+import japa.parser.ast.expr.NameExpr;
+import japa.parser.ast.expr.NormalAnnotationExpr;
+import japa.parser.ast.expr.NullLiteralExpr;
+import japa.parser.ast.expr.ObjectCreationExpr;
+import japa.parser.ast.expr.QualifiedNameExpr;
+import japa.parser.ast.expr.SingleMemberAnnotationExpr;
+import japa.parser.ast.expr.StringLiteralExpr;
+import japa.parser.ast.expr.SuperExpr;
+import japa.parser.ast.expr.ThisExpr;
+import japa.parser.ast.expr.UnaryExpr;
+import japa.parser.ast.expr.VariableDeclarationExpr;
+import japa.parser.ast.stmt.AssertStmt;
+import japa.parser.ast.stmt.BlockStmt;
+import japa.parser.ast.stmt.BreakStmt;
+import japa.parser.ast.stmt.CatchClause;
+import japa.parser.ast.stmt.ContinueStmt;
+import japa.parser.ast.stmt.DoStmt;
+import japa.parser.ast.stmt.EmptyStmt;
+import japa.parser.ast.stmt.ExplicitConstructorInvocationStmt;
+import japa.parser.ast.stmt.ExpressionStmt;
+import japa.parser.ast.stmt.ForStmt;
+import japa.parser.ast.stmt.ForeachStmt;
+import japa.parser.ast.stmt.IfStmt;
+import japa.parser.ast.stmt.LabeledStmt;
+import japa.parser.ast.stmt.ReturnStmt;
+import japa.parser.ast.stmt.SwitchEntryStmt;
+import japa.parser.ast.stmt.SwitchStmt;
+import japa.parser.ast.stmt.SynchronizedStmt;
+import japa.parser.ast.stmt.ThrowStmt;
+import japa.parser.ast.stmt.TryStmt;
+import japa.parser.ast.stmt.TypeDeclarationStmt;
+import japa.parser.ast.stmt.WhileStmt;
+import japa.parser.ast.type.ClassOrInterfaceType;
+import japa.parser.ast.type.PrimitiveType;
+import japa.parser.ast.type.ReferenceType;
+import japa.parser.ast.type.VoidType;
+import japa.parser.ast.type.WildcardType;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public interface VoidVisitor<A> {
+
+ public void visit(Node n, A arg);
+
+ // - Compilation Unit ----------------------------------
+
+ public void visit(CompilationUnit n, A arg);
+
+ public void visit(PackageDeclaration n, A arg);
+
+ public void visit(ImportDeclaration n, A arg);
+
+ public void visit(TypeParameter n, A arg);
+
+ public void visit(LineComment n, A arg);
+
+ public void visit(BlockComment n, A arg);
+
+ // - Body ----------------------------------------------
+
+ public void visit(ClassOrInterfaceDeclaration n, A arg);
+
+ public void visit(EnumDeclaration n, A arg);
+
+ public void visit(EmptyTypeDeclaration n, A arg);
+
+ public void visit(EnumConstantDeclaration n, A arg);
+
+ public void visit(AnnotationDeclaration n, A arg);
+
+ public void visit(AnnotationMemberDeclaration n, A arg);
+
+ public void visit(FieldDeclaration n, A arg);
+
+ public void visit(VariableDeclarator n, A arg);
+
+ public void visit(VariableDeclaratorId n, A arg);
+
+ public void visit(ConstructorDeclaration n, A arg);
+
+ public void visit(MethodDeclaration n, A arg);
+
+ public void visit(Parameter n, A arg);
+
+ public void visit(EmptyMemberDeclaration n, A arg);
+
+ public void visit(InitializerDeclaration n, A arg);
+
+ public void visit(JavadocComment n, A arg);
+
+ // - Type ----------------------------------------------
+
+ public void visit(ClassOrInterfaceType n, A arg);
+
+ public void visit(PrimitiveType n, A arg);
+
+ public void visit(ReferenceType n, A arg);
+
+ public void visit(VoidType n, A arg);
+
+ public void visit(WildcardType n, A arg);
+
+ // - Expression ----------------------------------------
+
+ public void visit(ArrayAccessExpr n, A arg);
+
+ public void visit(ArrayCreationExpr n, A arg);
+
+ public void visit(ArrayInitializerExpr n, A arg);
+
+ public void visit(AssignExpr n, A arg);
+
+ public void visit(BinaryExpr n, A arg);
+
+ public void visit(CastExpr n, A arg);
+
+ public void visit(ClassExpr n, A arg);
+
+ public void visit(ConditionalExpr n, A arg);
+
+ public void visit(EnclosedExpr n, A arg);
+
+ public void visit(FieldAccessExpr n, A arg);
+
+ public void visit(InstanceOfExpr n, A arg);
+
+ public void visit(StringLiteralExpr n, A arg);
+
+ public void visit(IntegerLiteralExpr n, A arg);
+
+ public void visit(LongLiteralExpr n, A arg);
+
+ public void visit(IntegerLiteralMinValueExpr n, A arg);
+
+ public void visit(LongLiteralMinValueExpr n, A arg);
+
+ public void visit(CharLiteralExpr n, A arg);
+
+ public void visit(DoubleLiteralExpr n, A arg);
+
+ public void visit(BooleanLiteralExpr n, A arg);
+
+ public void visit(NullLiteralExpr n, A arg);
+
+ public void visit(MethodCallExpr n, A arg);
+
+ public void visit(NameExpr n, A arg);
+
+ public void visit(ObjectCreationExpr n, A arg);
+
+ public void visit(QualifiedNameExpr n, A arg);
+
+ public void visit(ThisExpr n, A arg);
+
+ public void visit(SuperExpr n, A arg);
+
+ public void visit(UnaryExpr n, A arg);
+
+ public void visit(VariableDeclarationExpr n, A arg);
+
+ public void visit(MarkerAnnotationExpr n, A arg);
+
+ public void visit(SingleMemberAnnotationExpr n, A arg);
+
+ public void visit(NormalAnnotationExpr n, A arg);
+
+ public void visit(MemberValuePair n, A arg);
+
+ // - Statements ----------------------------------------
+
+ public void visit(ExplicitConstructorInvocationStmt n, A arg);
+
+ public void visit(TypeDeclarationStmt n, A arg);
+
+ public void visit(AssertStmt n, A arg);
+
+ public void visit(BlockStmt n, A arg);
+
+ public void visit(LabeledStmt n, A arg);
+
+ public void visit(EmptyStmt n, A arg);
+
+ public void visit(ExpressionStmt n, A arg);
+
+ public void visit(SwitchStmt n, A arg);
+
+ public void visit(SwitchEntryStmt n, A arg);
+
+ public void visit(BreakStmt n, A arg);
+
+ public void visit(ReturnStmt n, A arg);
+
+ public void visit(IfStmt n, A arg);
+
+ public void visit(WhileStmt n, A arg);
+
+ public void visit(ContinueStmt n, A arg);
+
+ public void visit(DoStmt n, A arg);
+
+ public void visit(ForeachStmt n, A arg);
+
+ public void visit(ForStmt n, A arg);
+
+ public void visit(ThrowStmt n, A arg);
+
+ public void visit(SynchronizedStmt n, A arg);
+
+ public void visit(TryStmt n, A arg);
+
+ public void visit(CatchClause n, A arg);
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/visitor/VoidVisitorAdapter.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/visitor/VoidVisitorAdapter.java
new file mode 100644
index 00000000000..ed7af7e364a
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/ast/visitor/VoidVisitorAdapter.java
@@ -0,0 +1,828 @@
+/*
+ * Copyright (C) 2008 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+/*
+ * Created on 09/06/2008
+ */
+package japa.parser.ast.visitor;
+
+import japa.parser.ast.BlockComment;
+import japa.parser.ast.CompilationUnit;
+import japa.parser.ast.ImportDeclaration;
+import japa.parser.ast.LineComment;
+import japa.parser.ast.Node;
+import japa.parser.ast.PackageDeclaration;
+import japa.parser.ast.TypeParameter;
+import japa.parser.ast.body.AnnotationDeclaration;
+import japa.parser.ast.body.AnnotationMemberDeclaration;
+import japa.parser.ast.body.BodyDeclaration;
+import japa.parser.ast.body.ClassOrInterfaceDeclaration;
+import japa.parser.ast.body.ConstructorDeclaration;
+import japa.parser.ast.body.EmptyMemberDeclaration;
+import japa.parser.ast.body.EmptyTypeDeclaration;
+import japa.parser.ast.body.EnumConstantDeclaration;
+import japa.parser.ast.body.EnumDeclaration;
+import japa.parser.ast.body.FieldDeclaration;
+import japa.parser.ast.body.InitializerDeclaration;
+import japa.parser.ast.body.JavadocComment;
+import japa.parser.ast.body.MethodDeclaration;
+import japa.parser.ast.body.Parameter;
+import japa.parser.ast.body.TypeDeclaration;
+import japa.parser.ast.body.VariableDeclarator;
+import japa.parser.ast.body.VariableDeclaratorId;
+import japa.parser.ast.expr.AnnotationExpr;
+import japa.parser.ast.expr.ArrayAccessExpr;
+import japa.parser.ast.expr.ArrayCreationExpr;
+import japa.parser.ast.expr.ArrayInitializerExpr;
+import japa.parser.ast.expr.AssignExpr;
+import japa.parser.ast.expr.BinaryExpr;
+import japa.parser.ast.expr.BooleanLiteralExpr;
+import japa.parser.ast.expr.CastExpr;
+import japa.parser.ast.expr.CharLiteralExpr;
+import japa.parser.ast.expr.ClassExpr;
+import japa.parser.ast.expr.ConditionalExpr;
+import japa.parser.ast.expr.DoubleLiteralExpr;
+import japa.parser.ast.expr.EnclosedExpr;
+import japa.parser.ast.expr.Expression;
+import japa.parser.ast.expr.FieldAccessExpr;
+import japa.parser.ast.expr.InstanceOfExpr;
+import japa.parser.ast.expr.IntegerLiteralExpr;
+import japa.parser.ast.expr.IntegerLiteralMinValueExpr;
+import japa.parser.ast.expr.LongLiteralExpr;
+import japa.parser.ast.expr.LongLiteralMinValueExpr;
+import japa.parser.ast.expr.MarkerAnnotationExpr;
+import japa.parser.ast.expr.MemberValuePair;
+import japa.parser.ast.expr.MethodCallExpr;
+import japa.parser.ast.expr.NameExpr;
+import japa.parser.ast.expr.NormalAnnotationExpr;
+import japa.parser.ast.expr.NullLiteralExpr;
+import japa.parser.ast.expr.ObjectCreationExpr;
+import japa.parser.ast.expr.QualifiedNameExpr;
+import japa.parser.ast.expr.SingleMemberAnnotationExpr;
+import japa.parser.ast.expr.StringLiteralExpr;
+import japa.parser.ast.expr.SuperExpr;
+import japa.parser.ast.expr.ThisExpr;
+import japa.parser.ast.expr.UnaryExpr;
+import japa.parser.ast.expr.VariableDeclarationExpr;
+import japa.parser.ast.stmt.AssertStmt;
+import japa.parser.ast.stmt.BlockStmt;
+import japa.parser.ast.stmt.BreakStmt;
+import japa.parser.ast.stmt.CatchClause;
+import japa.parser.ast.stmt.ContinueStmt;
+import japa.parser.ast.stmt.DoStmt;
+import japa.parser.ast.stmt.EmptyStmt;
+import japa.parser.ast.stmt.ExplicitConstructorInvocationStmt;
+import japa.parser.ast.stmt.ExpressionStmt;
+import japa.parser.ast.stmt.ForStmt;
+import japa.parser.ast.stmt.ForeachStmt;
+import japa.parser.ast.stmt.IfStmt;
+import japa.parser.ast.stmt.LabeledStmt;
+import japa.parser.ast.stmt.ReturnStmt;
+import japa.parser.ast.stmt.Statement;
+import japa.parser.ast.stmt.SwitchEntryStmt;
+import japa.parser.ast.stmt.SwitchStmt;
+import japa.parser.ast.stmt.SynchronizedStmt;
+import japa.parser.ast.stmt.ThrowStmt;
+import japa.parser.ast.stmt.TryStmt;
+import japa.parser.ast.stmt.TypeDeclarationStmt;
+import japa.parser.ast.stmt.WhileStmt;
+import japa.parser.ast.type.ClassOrInterfaceType;
+import japa.parser.ast.type.PrimitiveType;
+import japa.parser.ast.type.ReferenceType;
+import japa.parser.ast.type.Type;
+import japa.parser.ast.type.VoidType;
+import japa.parser.ast.type.WildcardType;
+
+/**
+ * @author Julio Vilmar Gesser
+ */
+public class VoidVisitorAdapter<A> implements VoidVisitor<A> {
+
+ @Override
+ public void visit(AnnotationDeclaration n, A arg) {
+ if (n.getJavaDoc() != null) {
+ n.getJavaDoc().accept(this, arg);
+ }
+ if (n.getAnnotations() != null) {
+ for (AnnotationExpr a : n.getAnnotations()) {
+ a.accept(this, arg);
+ }
+ }
+ if (n.getMembers() != null) {
+ for (BodyDeclaration member : n.getMembers()) {
+ member.accept(this, arg);
+ }
+ }
+ }
+
+ @Override
+ public void visit(AnnotationMemberDeclaration n, A arg) {
+ if (n.getJavaDoc() != null) {
+ n.getJavaDoc().accept(this, arg);
+ }
+ if (n.getAnnotations() != null) {
+ for (AnnotationExpr a : n.getAnnotations()) {
+ a.accept(this, arg);
+ }
+ }
+ n.getType().accept(this, arg);
+ if (n.getDefaultValue() != null) {
+ n.getDefaultValue().accept(this, arg);
+ }
+ }
+
+ @Override
+ public void visit(ArrayAccessExpr n, A arg) {
+ n.getName().accept(this, arg);
+ n.getIndex().accept(this, arg);
+ }
+
+ @Override
+ public void visit(ArrayCreationExpr n, A arg) {
+ n.getType().accept(this, arg);
+ if (n.getDimensions() != null) {
+ for (Expression dim : n.getDimensions()) {
+ dim.accept(this, arg);
+ }
+ } else {
+ n.getInitializer().accept(this, arg);
+ }
+ }
+
+ @Override
+ public void visit(ArrayInitializerExpr n, A arg) {
+ if (n.getValues() != null) {
+ for (Expression expr : n.getValues()) {
+ expr.accept(this, arg);
+ }
+ }
+ }
+
+ @Override
+ public void visit(AssertStmt n, A arg) {
+ n.getCheck().accept(this, arg);
+ if (n.getMessage() != null) {
+ n.getMessage().accept(this, arg);
+ }
+ }
+
+ @Override
+ public void visit(AssignExpr n, A arg) {
+ n.getTarget().accept(this, arg);
+ n.getValue().accept(this, arg);
+ }
+
+ @Override
+ public void visit(BinaryExpr n, A arg) {
+ n.getLeft().accept(this, arg);
+ n.getRight().accept(this, arg);
+ }
+
+ @Override
+ public void visit(BlockComment n, A arg) {
+ }
+
+ @Override
+ public void visit(BlockStmt n, A arg) {
+ if (n.getStmts() != null) {
+ for (Statement s : n.getStmts()) {
+ s.accept(this, arg);
+ }
+ }
+ }
+
+ @Override
+ public void visit(BooleanLiteralExpr n, A arg) {
+ }
+
+ @Override
+ public void visit(BreakStmt n, A arg) {
+ }
+
+ @Override
+ public void visit(CastExpr n, A arg) {
+ n.getType().accept(this, arg);
+ n.getExpr().accept(this, arg);
+ }
+
+ @Override
+ public void visit(CatchClause n, A arg) {
+ n.getExcept().accept(this, arg);
+ n.getCatchBlock().accept(this, arg);
+ }
+
+ @Override
+ public void visit(CharLiteralExpr n, A arg) {
+ }
+
+ @Override
+ public void visit(ClassExpr n, A arg) {
+ n.getType().accept(this, arg);
+ }
+
+ @Override
+ public void visit(ClassOrInterfaceDeclaration n, A arg) {
+ if (n.getJavaDoc() != null) {
+ n.getJavaDoc().accept(this, arg);
+ }
+ if (n.getAnnotations() != null) {
+ for (AnnotationExpr a : n.getAnnotations()) {
+ a.accept(this, arg);
+ }
+ }
+ if (n.getTypeParameters() != null) {
+ for (TypeParameter t : n.getTypeParameters()) {
+ t.accept(this, arg);
+ }
+ }
+ if (n.getExtends() != null) {
+ for (ClassOrInterfaceType c : n.getExtends()) {
+ c.accept(this, arg);
+ }
+ }
+
+ if (n.getImplements() != null) {
+ for (ClassOrInterfaceType c : n.getImplements()) {
+ c.accept(this, arg);
+ }
+ }
+ if (n.getMembers() != null) {
+ for (BodyDeclaration member : n.getMembers()) {
+ member.accept(this, arg);
+ }
+ }
+ }
+
+ @Override
+ public void visit(ClassOrInterfaceType n, A arg) {
+ if (n.getScope() != null) {
+ n.getScope().accept(this, arg);
+ }
+ if (n.getTypeArgs() != null) {
+ for (Type t : n.getTypeArgs()) {
+ t.accept(this, arg);
+ }
+ }
+ }
+
+ @Override
+ public void visit(CompilationUnit n, A arg) {
+ if (n.getPakage() != null) {
+ n.getPakage().accept(this, arg);
+ }
+ if (n.getImports() != null) {
+ for (ImportDeclaration i : n.getImports()) {
+ i.accept(this, arg);
+ }
+ }
+ if (n.getTypes() != null) {
+ for (TypeDeclaration typeDeclaration : n.getTypes()) {
+ typeDeclaration.accept(this, arg);
+ }
+ }
+ }
+
+ @Override
+ public void visit(ConditionalExpr n, A arg) {
+ n.getCondition().accept(this, arg);
+ n.getThenExpr().accept(this, arg);
+ n.getElseExpr().accept(this, arg);
+ }
+
+ @Override
+ public void visit(ConstructorDeclaration n, A arg) {
+ if (n.getJavaDoc() != null) {
+ n.getJavaDoc().accept(this, arg);
+ }
+ if (n.getAnnotations() != null) {
+ for (AnnotationExpr a : n.getAnnotations()) {
+ a.accept(this, arg);
+ }
+ }
+ if (n.getTypeParameters() != null) {
+ for (TypeParameter t : n.getTypeParameters()) {
+ t.accept(this, arg);
+ }
+ }
+ if (n.getParameters() != null) {
+ for (Parameter p : n.getParameters()) {
+ p.accept(this, arg);
+ }
+ }
+ if (n.getThrows() != null) {
+ for (NameExpr name : n.getThrows()) {
+ name.accept(this, arg);
+ }
+ }
+ n.getBlock().accept(this, arg);
+ }
+
+ @Override
+ public void visit(ContinueStmt n, A arg) {
+ }
+
+ @Override
+ public void visit(DoStmt n, A arg) {
+ n.getBody().accept(this, arg);
+ n.getCondition().accept(this, arg);
+ }
+
+ @Override
+ public void visit(DoubleLiteralExpr n, A arg) {
+ }
+
+ @Override
+ public void visit(EmptyMemberDeclaration n, A arg) {
+ if (n.getJavaDoc() != null) {
+ n.getJavaDoc().accept(this, arg);
+ }
+ }
+
+ @Override
+ public void visit(EmptyStmt n, A arg) {
+ }
+
+ @Override
+ public void visit(EmptyTypeDeclaration n, A arg) {
+ if (n.getJavaDoc() != null) {
+ n.getJavaDoc().accept(this, arg);
+ }
+ }
+
+ @Override
+ public void visit(EnclosedExpr n, A arg) {
+ n.getInner().accept(this, arg);
+ }
+
+ @Override
+ public void visit(EnumConstantDeclaration n, A arg) {
+ if (n.getJavaDoc() != null) {
+ n.getJavaDoc().accept(this, arg);
+ }
+ if (n.getAnnotations() != null) {
+ for (AnnotationExpr a : n.getAnnotations()) {
+ a.accept(this, arg);
+ }
+ }
+ if (n.getArgs() != null) {
+ for (Expression e : n.getArgs()) {
+ e.accept(this, arg);
+ }
+ }
+ if (n.getClassBody() != null) {
+ for (BodyDeclaration member : n.getClassBody()) {
+ member.accept(this, arg);
+ }
+ }
+ }
+
+ @Override
+ public void visit(EnumDeclaration n, A arg) {
+ if (n.getJavaDoc() != null) {
+ n.getJavaDoc().accept(this, arg);
+ }
+ if (n.getAnnotations() != null) {
+ for (AnnotationExpr a : n.getAnnotations()) {
+ a.accept(this, arg);
+ }
+ }
+ if (n.getImplements() != null) {
+ for (ClassOrInterfaceType c : n.getImplements()) {
+ c.accept(this, arg);
+ }
+ }
+ if (n.getEntries() != null) {
+ for (EnumConstantDeclaration e : n.getEntries()) {
+ e.accept(this, arg);
+ }
+ }
+ if (n.getMembers() != null) {
+ for (BodyDeclaration member : n.getMembers()) {
+ member.accept(this, arg);
+ }
+ }
+ }
+
+ @Override
+ public void visit(ExplicitConstructorInvocationStmt n, A arg) {
+ if (!n.isThis()) {
+ if (n.getExpr() != null) {
+ n.getExpr().accept(this, arg);
+ }
+ }
+ if (n.getTypeArgs() != null) {
+ for (Type t : n.getTypeArgs()) {
+ t.accept(this, arg);
+ }
+ }
+ if (n.getArgs() != null) {
+ for (Expression e : n.getArgs()) {
+ e.accept(this, arg);
+ }
+ }
+ }
+
+ @Override
+ public void visit(ExpressionStmt n, A arg) {
+ n.getExpression().accept(this, arg);
+ }
+
+ @Override
+ public void visit(FieldAccessExpr n, A arg) {
+ n.getScope().accept(this, arg);
+ }
+
+ @Override
+ public void visit(FieldDeclaration n, A arg) {
+ if (n.getJavaDoc() != null) {
+ n.getJavaDoc().accept(this, arg);
+ }
+ if (n.getAnnotations() != null) {
+ for (AnnotationExpr a : n.getAnnotations()) {
+ a.accept(this, arg);
+ }
+ }
+ n.getType().accept(this, arg);
+ for (VariableDeclarator var : n.getVariables()) {
+ var.accept(this, arg);
+ }
+ }
+
+ @Override
+ public void visit(ForeachStmt n, A arg) {
+ n.getVariable().accept(this, arg);
+ n.getIterable().accept(this, arg);
+ n.getBody().accept(this, arg);
+ }
+
+ @Override
+ public void visit(ForStmt n, A arg) {
+ if (n.getInit() != null) {
+ for (Expression e : n.getInit()) {
+ e.accept(this, arg);
+ }
+ }
+ if (n.getCompare() != null) {
+ n.getCompare().accept(this, arg);
+ }
+ if (n.getUpdate() != null) {
+ for (Expression e : n.getUpdate()) {
+ e.accept(this, arg);
+ }
+ }
+ n.getBody().accept(this, arg);
+ }
+
+ @Override
+ public void visit(IfStmt n, A arg) {
+ n.getCondition().accept(this, arg);
+ n.getThenStmt().accept(this, arg);
+ if (n.getElseStmt() != null) {
+ n.getElseStmt().accept(this, arg);
+ }
+ }
+
+ @Override
+ public void visit(ImportDeclaration n, A arg) {
+ n.getName().accept(this, arg);
+ }
+
+ @Override
+ public void visit(InitializerDeclaration n, A arg) {
+ if (n.getJavaDoc() != null) {
+ n.getJavaDoc().accept(this, arg);
+ }
+ n.getBlock().accept(this, arg);
+ }
+
+ @Override
+ public void visit(InstanceOfExpr n, A arg) {
+ n.getExpr().accept(this, arg);
+ n.getType().accept(this, arg);
+ }
+
+ @Override
+ public void visit(IntegerLiteralExpr n, A arg) {
+ }
+
+ @Override
+ public void visit(IntegerLiteralMinValueExpr n, A arg) {
+ }
+
+ @Override
+ public void visit(JavadocComment n, A arg) {
+ }
+
+ @Override
+ public void visit(LabeledStmt n, A arg) {
+ n.getStmt().accept(this, arg);
+ }
+
+ @Override
+ public void visit(LineComment n, A arg) {
+ }
+
+ @Override
+ public void visit(LongLiteralExpr n, A arg) {
+ }
+
+ @Override
+ public void visit(LongLiteralMinValueExpr n, A arg) {
+ }
+
+ @Override
+ public void visit(MarkerAnnotationExpr n, A arg) {
+ n.getName().accept(this, arg);
+ }
+
+ @Override
+ public void visit(MemberValuePair n, A arg) {
+ n.getValue().accept(this, arg);
+ }
+
+ @Override
+ public void visit(MethodCallExpr n, A arg) {
+ if (n.getScope() != null) {
+ n.getScope().accept(this, arg);
+ }
+ if (n.getTypeArgs() != null) {
+ for (Type t : n.getTypeArgs()) {
+ t.accept(this, arg);
+ }
+ }
+ if (n.getArgs() != null) {
+ for (Expression e : n.getArgs()) {
+ e.accept(this, arg);
+ }
+ }
+ }
+
+ @Override
+ public void visit(MethodDeclaration n, A arg) {
+ if (n.getJavaDoc() != null) {
+ n.getJavaDoc().accept(this, arg);
+ }
+ if (n.getAnnotations() != null) {
+ for (AnnotationExpr a : n.getAnnotations()) {
+ a.accept(this, arg);
+ }
+ }
+ if (n.getTypeParameters() != null) {
+ for (TypeParameter t : n.getTypeParameters()) {
+ t.accept(this, arg);
+ }
+ }
+ n.getType().accept(this, arg);
+ if (n.getParameters() != null) {
+ for (Parameter p : n.getParameters()) {
+ p.accept(this, arg);
+ }
+ }
+ if (n.getThrows() != null) {
+ for (NameExpr name : n.getThrows()) {
+ name.accept(this, arg);
+ }
+ }
+ if (n.getBody() != null) {
+ n.getBody().accept(this, arg);
+ }
+ }
+
+ @Override
+ public void visit(NameExpr n, A arg) {
+ }
+
+ @Override
+ public void visit(Node n, A arg) {
+ throw new IllegalStateException(n.getClass().getName());
+ }
+
+ @Override
+ public void visit(NormalAnnotationExpr n, A arg) {
+ n.getName().accept(this, arg);
+ if (n.getPairs() != null) {
+ for (MemberValuePair m : n.getPairs()) {
+ m.accept(this, arg);
+ }
+ }
+ }
+
+ @Override
+ public void visit(NullLiteralExpr n, A arg) {
+ }
+
+ @Override
+ public void visit(ObjectCreationExpr n, A arg) {
+ if (n.getScope() != null) {
+ n.getScope().accept(this, arg);
+ }
+ if (n.getTypeArgs() != null) {
+ for (Type t : n.getTypeArgs()) {
+ t.accept(this, arg);
+ }
+ }
+ n.getType().accept(this, arg);
+ if (n.getArgs() != null) {
+ for (Expression e : n.getArgs()) {
+ e.accept(this, arg);
+ }
+ }
+ if (n.getAnonymousClassBody() != null) {
+ for (BodyDeclaration member : n.getAnonymousClassBody()) {
+ member.accept(this, arg);
+ }
+ }
+ }
+
+ @Override
+ public void visit(PackageDeclaration n, A arg) {
+ if (n.getAnnotations() != null) {
+ for (AnnotationExpr a : n.getAnnotations()) {
+ a.accept(this, arg);
+ }
+ }
+ n.getName().accept(this, arg);
+ }
+
+ @Override
+ public void visit(Parameter n, A arg) {
+ if (n.getAnnotations() != null) {
+ for (AnnotationExpr a : n.getAnnotations()) {
+ a.accept(this, arg);
+ }
+ }
+ n.getType().accept(this, arg);
+ n.getId().accept(this, arg);
+ }
+
+ @Override
+ public void visit(PrimitiveType n, A arg) {
+ }
+
+ @Override
+ public void visit(QualifiedNameExpr n, A arg) {
+ n.getQualifier().accept(this, arg);
+ }
+
+ @Override
+ public void visit(ReferenceType n, A arg) {
+ n.getType().accept(this, arg);
+ }
+
+ @Override
+ public void visit(ReturnStmt n, A arg) {
+ if (n.getExpr() != null) {
+ n.getExpr().accept(this, arg);
+ }
+ }
+
+ @Override
+ public void visit(SingleMemberAnnotationExpr n, A arg) {
+ n.getName().accept(this, arg);
+ n.getMemberValue().accept(this, arg);
+ }
+
+ @Override
+ public void visit(StringLiteralExpr n, A arg) {
+ }
+
+ @Override
+ public void visit(SuperExpr n, A arg) {
+ if (n.getClassExpr() != null) {
+ n.getClassExpr().accept(this, arg);
+ }
+ }
+
+ @Override
+ public void visit(SwitchEntryStmt n, A arg) {
+ if (n.getLabel() != null) {
+ n.getLabel().accept(this, arg);
+ }
+ if (n.getStmts() != null) {
+ for (Statement s : n.getStmts()) {
+ s.accept(this, arg);
+ }
+ }
+ }
+
+ @Override
+ public void visit(SwitchStmt n, A arg) {
+ n.getSelector().accept(this, arg);
+ if (n.getEntries() != null) {
+ for (SwitchEntryStmt e : n.getEntries()) {
+ e.accept(this, arg);
+ }
+ }
+ }
+
+ @Override
+ public void visit(SynchronizedStmt n, A arg) {
+ n.getExpr().accept(this, arg);
+ n.getBlock().accept(this, arg);
+
+ }
+
+ @Override
+ public void visit(ThisExpr n, A arg) {
+ if (n.getClassExpr() != null) {
+ n.getClassExpr().accept(this, arg);
+ }
+ }
+
+ @Override
+ public void visit(ThrowStmt n, A arg) {
+ n.getExpr().accept(this, arg);
+ }
+
+ @Override
+ public void visit(TryStmt n, A arg) {
+ n.getTryBlock().accept(this, arg);
+ if (n.getCatchs() != null) {
+ for (CatchClause c : n.getCatchs()) {
+ c.accept(this, arg);
+ }
+ }
+ if (n.getFinallyBlock() != null) {
+ n.getFinallyBlock().accept(this, arg);
+ }
+ }
+
+ @Override
+ public void visit(TypeDeclarationStmt n, A arg) {
+ n.getTypeDeclaration().accept(this, arg);
+ }
+
+ @Override
+ public void visit(TypeParameter n, A arg) {
+ if (n.getTypeBound() != null) {
+ for (ClassOrInterfaceType c : n.getTypeBound()) {
+ c.accept(this, arg);
+ }
+ }
+ }
+
+ @Override
+ public void visit(UnaryExpr n, A arg) {
+ n.getExpr().accept(this, arg);
+ }
+
+ @Override
+ public void visit(VariableDeclarationExpr n, A arg) {
+ if (n.getAnnotations() != null) {
+ for (AnnotationExpr a : n.getAnnotations()) {
+ a.accept(this, arg);
+ }
+ }
+ n.getType().accept(this, arg);
+ for (VariableDeclarator v : n.getVars()) {
+ v.accept(this, arg);
+ }
+ }
+
+ @Override
+ public void visit(VariableDeclarator n, A arg) {
+ n.getId().accept(this, arg);
+ if (n.getInit() != null) {
+ n.getInit().accept(this, arg);
+ }
+ }
+
+ @Override
+ public void visit(VariableDeclaratorId n, A arg) {
+ }
+
+ @Override
+ public void visit(VoidType n, A arg) {
+ }
+
+ @Override
+ public void visit(WhileStmt n, A arg) {
+ n.getCondition().accept(this, arg);
+ n.getBody().accept(this, arg);
+ }
+
+ @Override
+ public void visit(WildcardType n, A arg) {
+ if (n.getExtends() != null) {
+ n.getExtends().accept(this, arg);
+ }
+ if (n.getSuper() != null) {
+ n.getSuper().accept(this, arg);
+ }
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/java_1_5.jj b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/java_1_5.jj
new file mode 100644
index 00000000000..f35074082d9
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/japa/parser/java_1_5.jj
@@ -0,0 +1,3006 @@
+/*
+ * Copyright (C) 2008 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+options {
+ LOOKAHEAD=1;
+ STATIC=false;
+ JAVA_UNICODE_ESCAPE=true;
+ COMMON_TOKEN_ACTION=true;
+ //SUPPORT_CLASS_VISIBILITY_PUBLIC=false;
+ JDK_VERSION = "1.5";
+ TOKEN_FACTORY = "ASTParser.GTToken";
+}
+
+PARSER_BEGIN(ASTParser)
+/*
+ * Copyright (C) 2008 Júlio Vilmar Gesser.
+ *
+ * This file is part of Java 1.5 parser and Abstract Syntax Tree.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Java 1.5 parser and Abstract Syntax Tree. If not, see <http://www.gnu.org/licenses/>.
+ */
+package japa.parser;
+
+import java.io.*;
+import java.util.*;
+import japa.parser.ast.*;
+import japa.parser.ast.body.*;
+import japa.parser.ast.expr.*;
+import japa.parser.ast.stmt.*;
+import japa.parser.ast.type.*;
+
+/**
+ * <p>This class was generated automatically by javacc, do not edit.</p>
+ * @author Júlio Vilmar Gesser
+ */
+final class ASTParser {
+
+ void reset(InputStream in, String encoding) {
+ ReInit(in, encoding);
+ token_source.clearComments();
+ }
+
+ private List add(List list, Object obj) {
+ if (list == null) {
+ list = new LinkedList();
+ }
+ list.add(obj);
+ return list;
+ }
+
+ private List add(int pos, List list, Object obj) {
+ if (list == null) {
+ list = new LinkedList();
+ }
+ list.add(pos, obj);
+ return list;
+ }
+
+ private class Modifier {
+
+ final int modifiers;
+ final List annotations;
+ final int beginLine;
+ final int beginColumn;
+
+ public Modifier(int beginLine, int beginColumn, int modifiers, List annotations) {
+ this.beginLine = beginLine;
+ this.beginColumn = beginColumn;
+ this.modifiers = modifiers;
+ this.annotations = annotations;
+ }
+ }
+
+ public int addModifier(int modifiers, int mod, Token token) throws ParseException {
+ if ((ModifierSet.hasModifier(modifiers, mod))) {
+ throwParseException(token, "Duplicated modifier");
+ }
+ return ModifierSet.addModifier(modifiers, mod);
+ }
+
+ private void pushJavadoc() {
+ token_source.pushJavadoc();
+ }
+
+ private JavadocComment popJavadoc() {
+ return token_source.popJavadoc();
+ }
+
+ private List<Comment> getComments() {
+ return token_source.getComments();
+ }
+
+ private void throwParseException(Token token, String message) throws ParseException {
+ StringBuilder buf = new StringBuilder();
+ buf.append(message);
+ buf.append(": \"");
+ buf.append(token.image);
+ buf.append("\" at line ");
+ buf.append(token.beginLine);
+ buf.append(", column ");
+ buf.append(token.beginColumn);
+ ParseException e = new ParseException(buf.toString());
+ e.currentToken = token;
+ throw e;
+ }
+
+ static final class GTToken extends Token {
+
+ int realKind = ASTParserConstants.GT;
+
+ GTToken(int kind, String image) {
+ this.kind = kind;
+ this.image = image;
+ }
+
+ public static Token newToken(int kind, String image) {
+ return new GTToken(kind, image);
+ }
+ }
+}
+
+PARSER_END(ASTParser)
+
+/* WHITE SPACE */
+
+SKIP :
+{
+ " "
+| "\t"
+| "\n"
+| "\r"
+| "\f"
+}
+
+/* COMMENTS */
+
+TOKEN_MGR_DECLS :
+{
+ private List<Comment> comments;
+ private final Stack<JavadocComment> javadocStack = new Stack<JavadocComment>();
+ private JavadocComment lastJavadoc;
+
+ void pushJavadoc() {
+ javadocStack.push(lastJavadoc);
+ }
+
+ JavadocComment popJavadoc() {
+ return javadocStack.pop();
+ }
+
+ List<Comment> getComments() {
+ return comments;
+ }
+
+ void clearComments() {
+ comments = null;
+ javadocStack.clear();
+ lastJavadoc = null;
+ }
+
+ private void CommonTokenAction(Token token) {
+ lastJavadoc = null;
+ if (token.specialToken != null) {
+ if(comments == null) {
+ comments = new LinkedList<Comment>();
+ }
+ Token special = token.specialToken;
+ if(special.kind == JAVA_DOC_COMMENT) {
+ lastJavadoc = new JavadocComment(special.beginLine, special.beginColumn, special.endLine, special.endColumn, special.image.substring(3, special.image.length()-2));
+ comments.add(lastJavadoc);
+ } else if(special.kind == SINGLE_LINE_COMMENT) {
+ LineComment comment = new LineComment(special.beginLine, special.beginColumn, special.endLine, special.endColumn, special.image.substring(2));
+ comments.add(comment);
+ } else if(special.kind == MULTI_LINE_COMMENT) {
+ BlockComment comment = new BlockComment(special.beginLine, special.beginColumn, special.endLine, special.endColumn, special.image.substring(2, special.image.length()-2));
+ comments.add(comment);
+ }
+ }
+ }
+}
+
+SPECIAL_TOKEN :
+{
+ <SINGLE_LINE_COMMENT: "//" (~["\n","\r"])* ("\n"|"\r"|"\r\n")? >
+}
+
+MORE :
+{
+ <"/**" ~["/"]> { input_stream.backup(1); } : IN_JAVA_DOC_COMMENT
+|
+ <"/*"> : IN_MULTI_LINE_COMMENT
+}
+
+<IN_JAVA_DOC_COMMENT>
+SPECIAL_TOKEN :
+{
+ <JAVA_DOC_COMMENT: "*/" > : DEFAULT
+}
+
+<IN_MULTI_LINE_COMMENT>
+SPECIAL_TOKEN :
+{
+ <MULTI_LINE_COMMENT: "*/" > : DEFAULT
+}
+
+<IN_JAVA_DOC_COMMENT, IN_MULTI_LINE_COMMENT>
+MORE :
+{
+ < ~[] >
+}
+
+/* RESERVED WORDS AND LITERALS */
+
+TOKEN :
+{
+ < ABSTRACT: "abstract" >
+| < ASSERT: "assert" >
+| < BOOLEAN: "boolean" >
+| < BREAK: "break" >
+| < BYTE: "byte" >
+| < CASE: "case" >
+| < CATCH: "catch" >
+| < CHAR: "char" >
+| < CLASS: "class" >
+| < CONST: "const" >
+| < CONTINUE: "continue" >
+| < _DEFAULT: "default" >
+| < DO: "do" >
+| < DOUBLE: "double" >
+| < ELSE: "else" >
+| < ENUM: "enum" >
+| < EXTENDS: "extends" >
+| < FALSE: "false" >
+| < FINAL: "final" >
+| < FINALLY: "finally" >
+| < FLOAT: "float" >
+| < FOR: "for" >
+| < GOTO: "goto" >
+| < IF: "if" >
+| < IMPLEMENTS: "implements" >
+| < IMPORT: "import" >
+| < INSTANCEOF: "instanceof" >
+| < INT: "int" >
+| < INTERFACE: "interface" >
+| < LONG: "long" >
+| < NATIVE: "native" >
+| < NEW: "new" >
+| < NULL: "null" >
+| < PACKAGE: "package">
+| < PRIVATE: "private" >
+| < PROTECTED: "protected" >
+| < PUBLIC: "public" >
+| < RETURN: "return" >
+| < SHORT: "short" >
+| < STATIC: "static" >
+| < STRICTFP: "strictfp" >
+| < SUPER: "super" >
+| < SWITCH: "switch" >
+| < SYNCHRONIZED: "synchronized" >
+| < THIS: "this" >
+| < THROW: "throw" >
+| < THROWS: "throws" >
+| < TRANSIENT: "transient" >
+| < TRUE: "true" >
+| < TRY: "try" >
+| < VOID: "void" >
+| < VOLATILE: "volatile" >
+| < WHILE: "while" >
+}
+
+/* LITERALS */
+
+TOKEN :
+{
+ < LONG_LITERAL:
+ <DECIMAL_LITERAL> (["l","L"])
+ | <HEX_LITERAL> (["l","L"])
+ | <OCTAL_LITERAL> (["l","L"])
+ >
+|
+ < INTEGER_LITERAL:
+ <DECIMAL_LITERAL>
+ | <HEX_LITERAL>
+ | <OCTAL_LITERAL>
+ >
+|
+ < #DECIMAL_LITERAL: ["1"-"9"] (["0"-"9"])* >
+|
+ < #HEX_LITERAL: "0" ["x","X"] (["0"-"9","a"-"f","A"-"F"])+ >
+|
+ < #OCTAL_LITERAL: "0" (["0"-"7"])* >
+|
+ < FLOATING_POINT_LITERAL:
+ <DECIMAL_FLOATING_POINT_LITERAL>
+ | <HEXADECIMAL_FLOATING_POINT_LITERAL>
+ >
+|
+ < #DECIMAL_FLOATING_POINT_LITERAL:
+ (["0"-"9"])+ "." (["0"-"9"])* (<DECIMAL_EXPONENT>)? (["f","F","d","D"])?
+ | "." (["0"-"9"])+ (<DECIMAL_EXPONENT>)? (["f","F","d","D"])?
+ | (["0"-"9"])+ <DECIMAL_EXPONENT> (["f","F","d","D"])?
+ | (["0"-"9"])+ (<DECIMAL_EXPONENT>)? ["f","F","d","D"]
+ >
+|
+ < #DECIMAL_EXPONENT: ["e","E"] (["+","-"])? (["0"-"9"])+ >
+|
+ < #HEXADECIMAL_FLOATING_POINT_LITERAL:
+ "0" ["x", "X"] (["0"-"9","a"-"f","A"-"F"])+ (".")? <HEXADECIMAL_EXPONENT> (["f","F","d","D"])?
+ | "0" ["x", "X"] (["0"-"9","a"-"f","A"-"F"])* "." (["0"-"9","a"-"f","A"-"F"])+ <HEXADECIMAL_EXPONENT> (["f","F","d","D"])?
+ >
+|
+ < #HEXADECIMAL_EXPONENT: ["p","P"] (["+","-"])? (["0"-"9"])+ >
+|
+ < CHARACTER_LITERAL:
+ "'"
+ ( (~["'","\\","\n","\r"])
+ | ("\\"
+ ( ["n","t","b","r","f","\\","'","\""]
+ | ["0"-"7"] ( ["0"-"7"] )?
+ | ["0"-"3"] ["0"-"7"] ["0"-"7"]
+ )
+ )
+ | ("\\u"
+ ["0"-"9","A"-"F","a"-"f"]
+ ["0"-"9","A"-"F","a"-"f"]
+ ["0"-"9","A"-"F","a"-"f"]
+ ["0"-"9","A"-"F","a"-"f"]
+ )
+ )
+ "'"
+ >
+|
+ < STRING_LITERAL:
+ "\""
+ ( (~["\"","\\","\n","\r"])
+ | ("\\"
+ ( ["n","t","b","r","f","\\","'","\""]
+ | ["0"-"7"] ( ["0"-"7"] )?
+ | ["0"-"3"] ["0"-"7"] ["0"-"7"]
+ )
+ )
+ | ("\\u"
+ ["0"-"9","A"-"F","a"-"f"]
+ ["0"-"9","A"-"F","a"-"f"]
+ ["0"-"9","A"-"F","a"-"f"]
+ ["0"-"9","A"-"F","a"-"f"]
+ )
+ )*
+ "\""
+ >
+}
+
+/* IDENTIFIERS */
+
+TOKEN :
+{
+ < IDENTIFIER: <LETTER> (<PART_LETTER>)* >
+|
+ < #LETTER:
+ [ // all chars for which Character.isIdentifierStart is true
+ "\u0024", // "$"
+ "\u0041"-"\u005a", // "A"-"Z"
+ "\u005f", // "_"
+ "\u0061"-"\u007a", // "a"-"z"
+ "\u00a2"-"\u00a5",
+ "\u00aa",
+ "\u00b5",
+ "\u00ba",
+ "\u00c0"-"\u00d6",
+ "\u00d8"-"\u00f6",
+ "\u00f8"-"\u0236",
+ "\u0250"-"\u02c1",
+ "\u02c6"-"\u02d1",
+ "\u02e0"-"\u02e4",
+ "\u02ee",
+ "\u037a",
+ "\u0386",
+ "\u0388"-"\u038a",
+ "\u038c",
+ "\u038e"-"\u03a1",
+ "\u03a3"-"\u03ce",
+ "\u03d0"-"\u03f5",
+ "\u03f7"-"\u03fb",
+ "\u0400"-"\u0481",
+ "\u048a"-"\u04ce",
+ "\u04d0"-"\u04f5",
+ "\u04f8"-"\u04f9",
+ "\u0500"-"\u050f",
+ "\u0531"-"\u0556",
+ "\u0559",
+ "\u0561"-"\u0587",
+ "\u05d0"-"\u05ea",
+ "\u05f0"-"\u05f2",
+ "\u0621"-"\u063a",
+ "\u0640"-"\u064a",
+ "\u066e"-"\u066f",
+ "\u0671"-"\u06d3",
+ "\u06d5",
+ "\u06e5"-"\u06e6",
+ "\u06ee"-"\u06ef",
+ "\u06fa"-"\u06fc",
+ "\u06ff",
+ "\u0710",
+ "\u0712"-"\u072f",
+ "\u074d"-"\u074f",
+ "\u0780"-"\u07a5",
+ "\u07b1",
+ "\u0904"-"\u0939",
+ "\u093d",
+ "\u0950",
+ "\u0958"-"\u0961",
+ "\u0985"-"\u098c",
+ "\u098f"-"\u0990",
+ "\u0993"-"\u09a8",
+ "\u09aa"-"\u09b0",
+ "\u09b2",
+ "\u09b6"-"\u09b9",
+ "\u09bd",
+ "\u09dc"-"\u09dd",
+ "\u09df"-"\u09e1",
+ "\u09f0"-"\u09f3",
+ "\u0a05"-"\u0a0a",
+ "\u0a0f"-"\u0a10",
+ "\u0a13"-"\u0a28",
+ "\u0a2a"-"\u0a30",
+ "\u0a32"-"\u0a33",
+ "\u0a35"-"\u0a36",
+ "\u0a38"-"\u0a39",
+ "\u0a59"-"\u0a5c",
+ "\u0a5e",
+ "\u0a72"-"\u0a74",
+ "\u0a85"-"\u0a8d",
+ "\u0a8f"-"\u0a91",
+ "\u0a93"-"\u0aa8",
+ "\u0aaa"-"\u0ab0",
+ "\u0ab2"-"\u0ab3",
+ "\u0ab5"-"\u0ab9",
+ "\u0abd",
+ "\u0ad0",
+ "\u0ae0"-"\u0ae1",
+ "\u0af1",
+ "\u0b05"-"\u0b0c",
+ "\u0b0f"-"\u0b10",
+ "\u0b13"-"\u0b28",
+ "\u0b2a"-"\u0b30",
+ "\u0b32"-"\u0b33",
+ "\u0b35"-"\u0b39",
+ "\u0b3d",
+ "\u0b5c"-"\u0b5d",
+ "\u0b5f"-"\u0b61",
+ "\u0b71",
+ "\u0b83",
+ "\u0b85"-"\u0b8a",
+ "\u0b8e"-"\u0b90",
+ "\u0b92"-"\u0b95",
+ "\u0b99"-"\u0b9a",
+ "\u0b9c",
+ "\u0b9e"-"\u0b9f",
+ "\u0ba3"-"\u0ba4",
+ "\u0ba8"-"\u0baa",
+ "\u0bae"-"\u0bb5",
+ "\u0bb7"-"\u0bb9",
+ "\u0bf9",
+ "\u0c05"-"\u0c0c",
+ "\u0c0e"-"\u0c10",
+ "\u0c12"-"\u0c28",
+ "\u0c2a"-"\u0c33",
+ "\u0c35"-"\u0c39",
+ "\u0c60"-"\u0c61",
+ "\u0c85"-"\u0c8c",
+ "\u0c8e"-"\u0c90",
+ "\u0c92"-"\u0ca8",
+ "\u0caa"-"\u0cb3",
+ "\u0cb5"-"\u0cb9",
+ "\u0cbd",
+ "\u0cde",
+ "\u0ce0"-"\u0ce1",
+ "\u0d05"-"\u0d0c",
+ "\u0d0e"-"\u0d10",
+ "\u0d12"-"\u0d28",
+ "\u0d2a"-"\u0d39",
+ "\u0d60"-"\u0d61",
+ "\u0d85"-"\u0d96",
+ "\u0d9a"-"\u0db1",
+ "\u0db3"-"\u0dbb",
+ "\u0dbd",
+ "\u0dc0"-"\u0dc6",
+ "\u0e01"-"\u0e30",
+ "\u0e32"-"\u0e33",
+ "\u0e3f"-"\u0e46",
+ "\u0e81"-"\u0e82",
+ "\u0e84",
+ "\u0e87"-"\u0e88",
+ "\u0e8a",
+ "\u0e8d",
+ "\u0e94"-"\u0e97",
+ "\u0e99"-"\u0e9f",
+ "\u0ea1"-"\u0ea3",
+ "\u0ea5",
+ "\u0ea7",
+ "\u0eaa"-"\u0eab",
+ "\u0ead"-"\u0eb0",
+ "\u0eb2"-"\u0eb3",
+ "\u0ebd",
+ "\u0ec0"-"\u0ec4",
+ "\u0ec6",
+ "\u0edc"-"\u0edd",
+ "\u0f00",
+ "\u0f40"-"\u0f47",
+ "\u0f49"-"\u0f6a",
+ "\u0f88"-"\u0f8b",
+ "\u1000"-"\u1021",
+ "\u1023"-"\u1027",
+ "\u1029"-"\u102a",
+ "\u1050"-"\u1055",
+ "\u10a0"-"\u10c5",
+ "\u10d0"-"\u10f8",
+ "\u1100"-"\u1159",
+ "\u115f"-"\u11a2",
+ "\u11a8"-"\u11f9",
+ "\u1200"-"\u1206",
+ "\u1208"-"\u1246",
+ "\u1248",
+ "\u124a"-"\u124d",
+ "\u1250"-"\u1256",
+ "\u1258",
+ "\u125a"-"\u125d",
+ "\u1260"-"\u1286",
+ "\u1288",
+ "\u128a"-"\u128d",
+ "\u1290"-"\u12ae",
+ "\u12b0",
+ "\u12b2"-"\u12b5",
+ "\u12b8"-"\u12be",
+ "\u12c0",
+ "\u12c2"-"\u12c5",
+ "\u12c8"-"\u12ce",
+ "\u12d0"-"\u12d6",
+ "\u12d8"-"\u12ee",
+ "\u12f0"-"\u130e",
+ "\u1310",
+ "\u1312"-"\u1315",
+ "\u1318"-"\u131e",
+ "\u1320"-"\u1346",
+ "\u1348"-"\u135a",
+ "\u13a0"-"\u13f4",
+ "\u1401"-"\u166c",
+ "\u166f"-"\u1676",
+ "\u1681"-"\u169a",
+ "\u16a0"-"\u16ea",
+ "\u16ee"-"\u16f0",
+ "\u1700"-"\u170c",
+ "\u170e"-"\u1711",
+ "\u1720"-"\u1731",
+ "\u1740"-"\u1751",
+ "\u1760"-"\u176c",
+ "\u176e"-"\u1770",
+ "\u1780"-"\u17b3",
+ "\u17d7",
+ "\u17db"-"\u17dc",
+ "\u1820"-"\u1877",
+ "\u1880"-"\u18a8",
+ "\u1900"-"\u191c",
+ "\u1950"-"\u196d",
+ "\u1970"-"\u1974",
+ "\u1d00"-"\u1d6b",
+ "\u1e00"-"\u1e9b",
+ "\u1ea0"-"\u1ef9",
+ "\u1f00"-"\u1f15",
+ "\u1f18"-"\u1f1d",
+ "\u1f20"-"\u1f45",
+ "\u1f48"-"\u1f4d",
+ "\u1f50"-"\u1f57",
+ "\u1f59",
+ "\u1f5b",
+ "\u1f5d",
+ "\u1f5f"-"\u1f7d",
+ "\u1f80"-"\u1fb4",
+ "\u1fb6"-"\u1fbc",
+ "\u1fbe",
+ "\u1fc2"-"\u1fc4",
+ "\u1fc6"-"\u1fcc",
+ "\u1fd0"-"\u1fd3",
+ "\u1fd6"-"\u1fdb",
+ "\u1fe0"-"\u1fec",
+ "\u1ff2"-"\u1ff4",
+ "\u1ff6"-"\u1ffc",
+ "\u203f"-"\u2040",
+ "\u2054",
+ "\u2071",
+ "\u207f",
+ "\u20a0"-"\u20b1",
+ "\u2102",
+ "\u2107",
+ "\u210a"-"\u2113",
+ "\u2115",
+ "\u2119"-"\u211d",
+ "\u2124",
+ "\u2126",
+ "\u2128",
+ "\u212a"-"\u212d",
+ "\u212f"-"\u2131",
+ "\u2133"-"\u2139",
+ "\u213d"-"\u213f",
+ "\u2145"-"\u2149",
+ "\u2160"-"\u2183",
+ "\u3005"-"\u3007",
+ "\u3021"-"\u3029",
+ "\u3031"-"\u3035",
+ "\u3038"-"\u303c",
+ "\u3041"-"\u3096",
+ "\u309d"-"\u309f",
+ "\u30a1"-"\u30ff",
+ "\u3105"-"\u312c",
+ "\u3131"-"\u318e",
+ "\u31a0"-"\u31b7",
+ "\u31f0"-"\u31ff",
+ "\u3400"-"\u4db5",
+ "\u4e00"-"\u9fa5",
+ "\ua000"-"\ua48c",
+ "\uac00"-"\ud7a3",
+ "\ud801", //for supplementary characters suport
+ "\ud802", //for supplementary characters suport
+ "\uf900"-"\ufa2d",
+ "\ufa30"-"\ufa6a",
+ "\ufb00"-"\ufb06",
+ "\ufb13"-"\ufb17",
+ "\ufb1d",
+ "\ufb1f"-"\ufb28",
+ "\ufb2a"-"\ufb36",
+ "\ufb38"-"\ufb3c",
+ "\ufb3e",
+ "\ufb40"-"\ufb41",
+ "\ufb43"-"\ufb44",
+ "\ufb46"-"\ufbb1",
+ "\ufbd3"-"\ufd3d",
+ "\ufd50"-"\ufd8f",
+ "\ufd92"-"\ufdc7",
+ "\ufdf0"-"\ufdfc",
+ "\ufe33"-"\ufe34",
+ "\ufe4d"-"\ufe4f",
+ "\ufe69",
+ "\ufe70"-"\ufe74",
+ "\ufe76"-"\ufefc",
+ "\uff04",
+ "\uff21"-"\uff3a",
+ "\uff3f",
+ "\uff41"-"\uff5a",
+ "\uff65"-"\uffbe",
+ "\uffc2"-"\uffc7",
+ "\uffca"-"\uffcf",
+ "\uffd2"-"\uffd7",
+ "\uffda"-"\uffdc",
+ "\uffe0"-"\uffe1",
+ "\uffe5"-"\uffe6"
+ ]
+ >
+|
+ < #PART_LETTER:
+ [ // all chars for which Character.isIdentifierPart is true
+ "\u0000"-"\u0008",
+ "\u000e"-"\u001b",
+ "\u0024", // "$"
+ "\u0030"-"\u0039", // "0"-"9"
+ "\u0041"-"\u005a", // "A"-"Z"
+ "\u005f", // "_"
+ "\u0061"-"\u007a", // "a"-"z"
+ "\u007f"-"\u009f",
+ "\u00a2"-"\u00a5",
+ "\u00aa",
+ "\u00ad",
+ "\u00b5",
+ "\u00ba",
+ "\u00c0"-"\u00d6",
+ "\u00d8"-"\u00f6",
+ "\u00f8"-"\u0236",
+ "\u0250"-"\u02c1",
+ "\u02c6"-"\u02d1",
+ "\u02e0"-"\u02e4",
+ "\u02ee",
+ "\u0300"-"\u0357",
+ "\u035d"-"\u036f",
+ "\u037a",
+ "\u0386",
+ "\u0388"-"\u038a",
+ "\u038c",
+ "\u038e"-"\u03a1",
+ "\u03a3"-"\u03ce",
+ "\u03d0"-"\u03f5",
+ "\u03f7"-"\u03fb",
+ "\u0400"-"\u0481",
+ "\u0483"-"\u0486",
+ "\u048a"-"\u04ce",
+ "\u04d0"-"\u04f5",
+ "\u04f8"-"\u04f9",
+ "\u0500"-"\u050f",
+ "\u0531"-"\u0556",
+ "\u0559",
+ "\u0561"-"\u0587",
+ "\u0591"-"\u05a1",
+ "\u05a3"-"\u05b9",
+ "\u05bb"-"\u05bd",
+ "\u05bf",
+ "\u05c1"-"\u05c2",
+ "\u05c4",
+ "\u05d0"-"\u05ea",
+ "\u05f0"-"\u05f2",
+ "\u0600"-"\u0603",
+ "\u0610"-"\u0615",
+ "\u0621"-"\u063a",
+ "\u0640"-"\u0658",
+ "\u0660"-"\u0669",
+ "\u066e"-"\u06d3",
+ "\u06d5"-"\u06dd",
+ "\u06df"-"\u06e8",
+ "\u06ea"-"\u06fc",
+ "\u06ff",
+ "\u070f"-"\u074a",
+ "\u074d"-"\u074f",
+ "\u0780"-"\u07b1",
+ "\u0901"-"\u0939",
+ "\u093c"-"\u094d",
+ "\u0950"-"\u0954",
+ "\u0958"-"\u0963",
+ "\u0966"-"\u096f",
+ "\u0981"-"\u0983",
+ "\u0985"-"\u098c",
+ "\u098f"-"\u0990",
+ "\u0993"-"\u09a8",
+ "\u09aa"-"\u09b0",
+ "\u09b2",
+ "\u09b6"-"\u09b9",
+ "\u09bc"-"\u09c4",
+ "\u09c7"-"\u09c8",
+ "\u09cb"-"\u09cd",
+ "\u09d7",
+ "\u09dc"-"\u09dd",
+ "\u09df"-"\u09e3",
+ "\u09e6"-"\u09f3",
+ "\u0a01"-"\u0a03",
+ "\u0a05"-"\u0a0a",
+ "\u0a0f"-"\u0a10",
+ "\u0a13"-"\u0a28",
+ "\u0a2a"-"\u0a30",
+ "\u0a32"-"\u0a33",
+ "\u0a35"-"\u0a36",
+ "\u0a38"-"\u0a39",
+ "\u0a3c",
+ "\u0a3e"-"\u0a42",
+ "\u0a47"-"\u0a48",
+ "\u0a4b"-"\u0a4d",
+ "\u0a59"-"\u0a5c",
+ "\u0a5e",
+ "\u0a66"-"\u0a74",
+ "\u0a81"-"\u0a83",
+ "\u0a85"-"\u0a8d",
+ "\u0a8f"-"\u0a91",
+ "\u0a93"-"\u0aa8",
+ "\u0aaa"-"\u0ab0",
+ "\u0ab2"-"\u0ab3",
+ "\u0ab5"-"\u0ab9",
+ "\u0abc"-"\u0ac5",
+ "\u0ac7"-"\u0ac9",
+ "\u0acb"-"\u0acd",
+ "\u0ad0",
+ "\u0ae0"-"\u0ae3",
+ "\u0ae6"-"\u0aef",
+ "\u0af1",
+ "\u0b01"-"\u0b03",
+ "\u0b05"-"\u0b0c",
+ "\u0b0f"-"\u0b10",
+ "\u0b13"-"\u0b28",
+ "\u0b2a"-"\u0b30",
+ "\u0b32"-"\u0b33",
+ "\u0b35"-"\u0b39",
+ "\u0b3c"-"\u0b43",
+ "\u0b47"-"\u0b48",
+ "\u0b4b"-"\u0b4d",
+ "\u0b56"-"\u0b57",
+ "\u0b5c"-"\u0b5d",
+ "\u0b5f"-"\u0b61",
+ "\u0b66"-"\u0b6f",
+ "\u0b71",
+ "\u0b82"-"\u0b83",
+ "\u0b85"-"\u0b8a",
+ "\u0b8e"-"\u0b90",
+ "\u0b92"-"\u0b95",
+ "\u0b99"-"\u0b9a",
+ "\u0b9c",
+ "\u0b9e"-"\u0b9f",
+ "\u0ba3"-"\u0ba4",
+ "\u0ba8"-"\u0baa",
+ "\u0bae"-"\u0bb5",
+ "\u0bb7"-"\u0bb9",
+ "\u0bbe"-"\u0bc2",
+ "\u0bc6"-"\u0bc8",
+ "\u0bca"-"\u0bcd",
+ "\u0bd7",
+ "\u0be7"-"\u0bef",
+ "\u0bf9",
+ "\u0c01"-"\u0c03",
+ "\u0c05"-"\u0c0c",
+ "\u0c0e"-"\u0c10",
+ "\u0c12"-"\u0c28",
+ "\u0c2a"-"\u0c33",
+ "\u0c35"-"\u0c39",
+ "\u0c3e"-"\u0c44",
+ "\u0c46"-"\u0c48",
+ "\u0c4a"-"\u0c4d",
+ "\u0c55"-"\u0c56",
+ "\u0c60"-"\u0c61",
+ "\u0c66"-"\u0c6f",
+ "\u0c82"-"\u0c83",
+ "\u0c85"-"\u0c8c",
+ "\u0c8e"-"\u0c90",
+ "\u0c92"-"\u0ca8",
+ "\u0caa"-"\u0cb3",
+ "\u0cb5"-"\u0cb9",
+ "\u0cbc"-"\u0cc4",
+ "\u0cc6"-"\u0cc8",
+ "\u0cca"-"\u0ccd",
+ "\u0cd5"-"\u0cd6",
+ "\u0cde",
+ "\u0ce0"-"\u0ce1",
+ "\u0ce6"-"\u0cef",
+ "\u0d02"-"\u0d03",
+ "\u0d05"-"\u0d0c",
+ "\u0d0e"-"\u0d10",
+ "\u0d12"-"\u0d28",
+ "\u0d2a"-"\u0d39",
+ "\u0d3e"-"\u0d43",
+ "\u0d46"-"\u0d48",
+ "\u0d4a"-"\u0d4d",
+ "\u0d57",
+ "\u0d60"-"\u0d61",
+ "\u0d66"-"\u0d6f",
+ "\u0d82"-"\u0d83",
+ "\u0d85"-"\u0d96",
+ "\u0d9a"-"\u0db1",
+ "\u0db3"-"\u0dbb",
+ "\u0dbd",
+ "\u0dc0"-"\u0dc6",
+ "\u0dca",
+ "\u0dcf"-"\u0dd4",
+ "\u0dd6",
+ "\u0dd8"-"\u0ddf",
+ "\u0df2"-"\u0df3",
+ "\u0e01"-"\u0e3a",
+ "\u0e3f"-"\u0e4e",
+ "\u0e50"-"\u0e59",
+ "\u0e81"-"\u0e82",
+ "\u0e84",
+ "\u0e87"-"\u0e88",
+ "\u0e8a",
+ "\u0e8d",
+ "\u0e94"-"\u0e97",
+ "\u0e99"-"\u0e9f",
+ "\u0ea1"-"\u0ea3",
+ "\u0ea5",
+ "\u0ea7",
+ "\u0eaa"-"\u0eab",
+ "\u0ead"-"\u0eb9",
+ "\u0ebb"-"\u0ebd",
+ "\u0ec0"-"\u0ec4",
+ "\u0ec6",
+ "\u0ec8"-"\u0ecd",
+ "\u0ed0"-"\u0ed9",
+ "\u0edc"-"\u0edd",
+ "\u0f00",
+ "\u0f18"-"\u0f19",
+ "\u0f20"-"\u0f29",
+ "\u0f35",
+ "\u0f37",
+ "\u0f39",
+ "\u0f3e"-"\u0f47",
+ "\u0f49"-"\u0f6a",
+ "\u0f71"-"\u0f84",
+ "\u0f86"-"\u0f8b",
+ "\u0f90"-"\u0f97",
+ "\u0f99"-"\u0fbc",
+ "\u0fc6",
+ "\u1000"-"\u1021",
+ "\u1023"-"\u1027",
+ "\u1029"-"\u102a",
+ "\u102c"-"\u1032",
+ "\u1036"-"\u1039",
+ "\u1040"-"\u1049",
+ "\u1050"-"\u1059",
+ "\u10a0"-"\u10c5",
+ "\u10d0"-"\u10f8",
+ "\u1100"-"\u1159",
+ "\u115f"-"\u11a2",
+ "\u11a8"-"\u11f9",
+ "\u1200"-"\u1206",
+ "\u1208"-"\u1246",
+ "\u1248",
+ "\u124a"-"\u124d",
+ "\u1250"-"\u1256",
+ "\u1258",
+ "\u125a"-"\u125d",
+ "\u1260"-"\u1286",
+ "\u1288",
+ "\u128a"-"\u128d",
+ "\u1290"-"\u12ae",
+ "\u12b0",
+ "\u12b2"-"\u12b5",
+ "\u12b8"-"\u12be",
+ "\u12c0",
+ "\u12c2"-"\u12c5",
+ "\u12c8"-"\u12ce",
+ "\u12d0"-"\u12d6",
+ "\u12d8"-"\u12ee",
+ "\u12f0"-"\u130e",
+ "\u1310",
+ "\u1312"-"\u1315",
+ "\u1318"-"\u131e",
+ "\u1320"-"\u1346",
+ "\u1348"-"\u135a",
+ "\u1369"-"\u1371",
+ "\u13a0"-"\u13f4",
+ "\u1401"-"\u166c",
+ "\u166f"-"\u1676",
+ "\u1681"-"\u169a",
+ "\u16a0"-"\u16ea",
+ "\u16ee"-"\u16f0",
+ "\u1700"-"\u170c",
+ "\u170e"-"\u1714",
+ "\u1720"-"\u1734",
+ "\u1740"-"\u1753",
+ "\u1760"-"\u176c",
+ "\u176e"-"\u1770",
+ "\u1772"-"\u1773",
+ "\u1780"-"\u17d3",
+ "\u17d7",
+ "\u17db"-"\u17dd",
+ "\u17e0"-"\u17e9",
+ "\u180b"-"\u180d",
+ "\u1810"-"\u1819",
+ "\u1820"-"\u1877",
+ "\u1880"-"\u18a9",
+ "\u1900"-"\u191c",
+ "\u1920"-"\u192b",
+ "\u1930"-"\u193b",
+ "\u1946"-"\u196d",
+ "\u1970"-"\u1974",
+ "\u1d00"-"\u1d6b",
+ "\u1e00"-"\u1e9b",
+ "\u1ea0"-"\u1ef9",
+ "\u1f00"-"\u1f15",
+ "\u1f18"-"\u1f1d",
+ "\u1f20"-"\u1f45",
+ "\u1f48"-"\u1f4d",
+ "\u1f50"-"\u1f57",
+ "\u1f59",
+ "\u1f5b",
+ "\u1f5d",
+ "\u1f5f"-"\u1f7d",
+ "\u1f80"-"\u1fb4",
+ "\u1fb6"-"\u1fbc",
+ "\u1fbe",
+ "\u1fc2"-"\u1fc4",
+ "\u1fc6"-"\u1fcc",
+ "\u1fd0"-"\u1fd3",
+ "\u1fd6"-"\u1fdb",
+ "\u1fe0"-"\u1fec",
+ "\u1ff2"-"\u1ff4",
+ "\u1ff6"-"\u1ffc",
+ "\u200c"-"\u200f",
+ "\u202a"-"\u202e",
+ "\u203f"-"\u2040",
+ "\u2054",
+ "\u2060"-"\u2063",
+ "\u206a"-"\u206f",
+ "\u2071",
+ "\u207f",
+ "\u20a0"-"\u20b1",
+ "\u20d0"-"\u20dc",
+ "\u20e1",
+ "\u20e5"-"\u20ea",
+ "\u2102",
+ "\u2107",
+ "\u210a"-"\u2113",
+ "\u2115",
+ "\u2119"-"\u211d",
+ "\u2124",
+ "\u2126",
+ "\u2128",
+ "\u212a"-"\u212d",
+ "\u212f"-"\u2131",
+ "\u2133"-"\u2139",
+ "\u213d"-"\u213f",
+ "\u2145"-"\u2149",
+ "\u2160"-"\u2183",
+ "\u3005"-"\u3007",
+ "\u3021"-"\u302f",
+ "\u3031"-"\u3035",
+ "\u3038"-"\u303c",
+ "\u3041"-"\u3096",
+ "\u3099"-"\u309a",
+ "\u309d"-"\u309f",
+ "\u30a1"-"\u30ff",
+ "\u3105"-"\u312c",
+ "\u3131"-"\u318e",
+ "\u31a0"-"\u31b7",
+ "\u31f0"-"\u31ff",
+ "\u3400"-"\u4db5",
+ "\u4e00"-"\u9fa5",
+ "\ua000"-"\ua48c",
+ "\uac00"-"\ud7a3",
+ "\ud801", //for supplementary characters suport
+ "\ud802", //for supplementary characters suport
+ "\ud834", //for supplementary characters suport
+ "\udc00", //for supplementary characters suport
+ "\udc01", //for supplementary characters suport
+ "\udd7b", //for supplementary characters suport
+ "\uf900"-"\ufa2d",
+ "\ufa30"-"\ufa6a",
+ "\ufb00"-"\ufb06",
+ "\ufb13"-"\ufb17",
+ "\ufb1d"-"\ufb28",
+ "\ufb2a"-"\ufb36",
+ "\ufb38"-"\ufb3c",
+ "\ufb3e",
+ "\ufb40"-"\ufb41",
+ "\ufb43"-"\ufb44",
+ "\ufb46"-"\ufbb1",
+ "\ufbd3"-"\ufd3d",
+ "\ufd50"-"\ufd8f",
+ "\ufd92"-"\ufdc7",
+ "\ufdf0"-"\ufdfc",
+ "\ufe00"-"\ufe0f",
+ "\ufe20"-"\ufe23",
+ "\ufe33"-"\ufe34",
+ "\ufe4d"-"\ufe4f",
+ "\ufe69",
+ "\ufe70"-"\ufe74",
+ "\ufe76"-"\ufefc",
+ "\ufeff",
+ "\uff04",
+ "\uff10"-"\uff19",
+ "\uff21"-"\uff3a",
+ "\uff3f",
+ "\uff41"-"\uff5a",
+ "\uff65"-"\uffbe",
+ "\uffc2"-"\uffc7",
+ "\uffca"-"\uffcf",
+ "\uffd2"-"\uffd7",
+ "\uffda"-"\uffdc",
+ "\uffe0"-"\uffe1",
+ "\uffe5"-"\uffe6",
+ "\ufff9"-"\ufffb"
+ ]
+ >
+}
+
+/* SEPARATORS */
+
+TOKEN :
+{
+ < LPAREN: "(" >
+| < RPAREN: ")" >
+| < LBRACE: "{" >
+| < RBRACE: "}" >
+| < LBRACKET: "[" >
+| < RBRACKET: "]" >
+| < SEMICOLON: ";" >
+| < COMMA: "," >
+| < DOT: "." >
+| < AT: "@" >
+}
+
+/* OPERATORS */
+
+TOKEN :
+{
+ < ASSIGN: "=" >
+| < LT: "<" >
+| < BANG: "!" >
+| < TILDE: "~" >
+| < HOOK: "?" >
+| < COLON: ":" >
+| < EQ: "==" >
+| < LE: "<=" >
+| < GE: ">=" >
+| < NE: "!=" >
+| < SC_OR: "||" >
+| < SC_AND: "&&" >
+| < INCR: "++" >
+| < DECR: "--" >
+| < PLUS: "+" >
+| < MINUS: "-" >
+| < STAR: "*" >
+| < SLASH: "/" >
+| < BIT_AND: "&" >
+| < BIT_OR: "|" >
+| < XOR: "^" >
+| < REM: "%" >
+| < LSHIFT: "<<" >
+| < PLUSASSIGN: "+=" >
+| < MINUSASSIGN: "-=" >
+| < STARASSIGN: "*=" >
+| < SLASHASSIGN: "/=" >
+| < ANDASSIGN: "&=" >
+| < ORASSIGN: "|=" >
+| < XORASSIGN: "^=" >
+| < REMASSIGN: "%=" >
+| < LSHIFTASSIGN: "<<=" >
+| < RSIGNEDSHIFTASSIGN: ">>=" >
+| < RUNSIGNEDSHIFTASSIGN: ">>>=" >
+| < ELLIPSIS: "..." >
+}
+
+/* >'s need special attention due to generics syntax. */
+TOKEN :
+{
+ < RUNSIGNEDSHIFT: ">>>" >
+ {
+ matchedToken.kind = GT;
+ ((ASTParser.GTToken)matchedToken).realKind = RUNSIGNEDSHIFT;
+ input_stream.backup(2);
+ }
+| < RSIGNEDSHIFT: ">>" >
+ {
+ matchedToken.kind = GT;
+ ((ASTParser.GTToken)matchedToken).realKind = RSIGNEDSHIFT;
+ input_stream.backup(1);
+ }
+| < GT: ">" >
+}
+
+
+/*****************************************
+ * THE JAVA LANGUAGE GRAMMAR STARTS HERE *
+ *****************************************/
+
+/*
+ * Program structuring syntax follows.
+ */
+
+CompilationUnit CompilationUnit():
+{
+ PackageDeclaration pakage = null;
+ List imports = null;
+ ImportDeclaration in = null;
+ List types = null;
+ TypeDeclaration tn = null;
+ int line = -1;
+ int column = 0;
+}
+{
+ [ LOOKAHEAD(PackageDeclaration()) pakage = PackageDeclaration() {line = pakage.getBeginLine(); column = pakage.getBeginColumn();} ]
+ ( in = ImportDeclaration() { if(line==-1){line = in.getBeginLine(); column = in.getBeginColumn();} imports = add(imports, in); } )*
+ ( tn = TypeDeclaration() { if(line==-1){line = tn.getBeginLine(); column = tn.getBeginColumn();} types = add(types, tn); } )*
+ (<EOF> | "\u001A" /** ctrl+z char **/)
+ { return new CompilationUnit(line == -1 ? 0 : line, column, token.endLine, token.endColumn,pakage, imports, types, getComments()); }
+}
+
+PackageDeclaration PackageDeclaration():
+{
+ List annotations = null;
+ AnnotationExpr ann;
+ NameExpr name;
+ int line;
+ int column;
+}
+{
+( ann = Annotation() { annotations = add(annotations, ann); } )*
+ "package" {line=token.beginLine; column=token.beginColumn;} name = Name() ";"
+ { return new PackageDeclaration(line, column, token.endLine, token.endColumn,annotations, name); }
+}
+
+ImportDeclaration ImportDeclaration():
+{
+ NameExpr name;
+ boolean isStatic = false;
+ boolean isAsterisk = false;
+ int line;
+ int column;
+}
+{
+ "import" {line=token.beginLine; column=token.beginColumn;} [ "static" { isStatic = true; } ] name = Name() [ "." "*" { isAsterisk = true; } ] ";"
+ { return new ImportDeclaration(line, column, token.endLine, token.endColumn,name, isStatic, isAsterisk); }
+}
+
+/*
+ * Modifiers. We match all modifiers in a single rule to reduce the chances of
+ * syntax errors for simple modifier mistakes. It will also enable us to give
+ * better error messages.
+ */
+
+Modifier Modifiers():
+{
+ int beginLine = -1;
+ int beginColumn = -1;
+ int modifiers = 0;
+ List annotations = null;
+ AnnotationExpr ann;
+}
+{
+ (
+ LOOKAHEAD(2)
+ (
+ "public" { modifiers = addModifier(modifiers, ModifierSet.PUBLIC, token); if(beginLine==-1) {beginLine=token.beginLine; beginColumn=token.beginColumn;} }
+ |
+ "static" { modifiers = addModifier(modifiers, ModifierSet.STATIC, token); if(beginLine==-1) {beginLine=token.beginLine; beginColumn=token.beginColumn;} }
+ |
+ "protected" { modifiers = addModifier(modifiers, ModifierSet.PROTECTED, token); if(beginLine==-1) {beginLine=token.beginLine; beginColumn=token.beginColumn;} }
+ |
+ "private" { modifiers = addModifier(modifiers, ModifierSet.PRIVATE, token); if(beginLine==-1) {beginLine=token.beginLine; beginColumn=token.beginColumn;} }
+ |
+ "final" { modifiers = addModifier(modifiers, ModifierSet.FINAL, token); if(beginLine==-1) {beginLine=token.beginLine; beginColumn=token.beginColumn;} }
+ |
+ "abstract" { modifiers = addModifier(modifiers, ModifierSet.ABSTRACT, token); if(beginLine==-1) {beginLine=token.beginLine; beginColumn=token.beginColumn;} }
+ |
+ "synchronized" { modifiers = addModifier(modifiers, ModifierSet.SYNCHRONIZED, token); if(beginLine==-1) {beginLine=token.beginLine; beginColumn=token.beginColumn;} }
+ |
+ "native" { modifiers = addModifier(modifiers, ModifierSet.NATIVE, token); if(beginLine==-1) {beginLine=token.beginLine; beginColumn=token.beginColumn;} }
+ |
+ "transient" { modifiers = addModifier(modifiers, ModifierSet.TRANSIENT, token); if(beginLine==-1) {beginLine=token.beginLine; beginColumn=token.beginColumn;} }
+ |
+ "volatile" { modifiers = addModifier(modifiers, ModifierSet.VOLATILE, token); if(beginLine==-1) {beginLine=token.beginLine; beginColumn=token.beginColumn;} }
+ |
+ "strictfp" { modifiers = addModifier(modifiers, ModifierSet.STRICTFP, token); if(beginLine==-1) {beginLine=token.beginLine; beginColumn=token.beginColumn;} }
+ |
+ ann = Annotation() { annotations = add(annotations, ann); if(beginLine==-1) {beginLine=ann.getBeginLine(); beginColumn=ann.getBeginColumn();} }
+ )
+ )*
+
+ {
+ return new Modifier(beginLine, beginColumn, modifiers, annotations);
+ }
+}
+
+/*
+ * Declaration syntax follows.
+ */
+TypeDeclaration TypeDeclaration():
+{
+ Modifier modifier;
+ TypeDeclaration ret;
+}
+{
+ { pushJavadoc(); }
+ (
+ ";" { ret = new EmptyTypeDeclaration(token.beginLine, token.beginColumn, token.endLine, token.endColumn, popJavadoc()); }
+ |
+ modifier = Modifiers()
+ (
+ ret = ClassOrInterfaceDeclaration(modifier)
+ |
+ ret = EnumDeclaration(modifier)
+ |
+ ret = AnnotationTypeDeclaration(modifier)
+ )
+ )
+ { return ret; }
+}
+
+
+ClassOrInterfaceDeclaration ClassOrInterfaceDeclaration(Modifier modifier):
+{
+ boolean isInterface = false;
+ String name;
+ List typePar = null;
+ List extList = null;
+ List impList = null;
+ List members;
+ int line = modifier.beginLine;
+ int column = modifier.beginColumn;
+}
+{
+ ( "class" | "interface" { isInterface = true; } ) { if (line == -1) {line=token.beginLine; column=token.beginColumn;} }
+ <IDENTIFIER> { name = token.image; }
+ [ typePar = TypeParameters() {typePar.remove(0);} ]
+ [ extList = ExtendsList(isInterface) ]
+ [ impList = ImplementsList(isInterface) ]
+ members = ClassOrInterfaceBody(isInterface)
+
+ { return new ClassOrInterfaceDeclaration(line, column, token.endLine, token.endColumn,popJavadoc(), modifier.modifiers, modifier.annotations, isInterface, name, typePar, extList, impList, members); }
+}
+
+List ExtendsList(boolean isInterface):
+{
+ boolean extendsMoreThanOne = false;
+ List ret = new LinkedList();
+ ClassOrInterfaceType cit;
+}
+{
+ "extends" cit = ClassOrInterfaceType() { ret.add(cit); }
+ ( "," cit = ClassOrInterfaceType() { ret.add(cit); extendsMoreThanOne = true; } )*
+ {
+ if (extendsMoreThanOne && !isInterface)
+ throwParseException(token, "A class cannot extend more than one other class");
+ }
+ { return ret; }
+}
+
+List ImplementsList(boolean isInterface):
+{
+ List ret = new LinkedList();
+ ClassOrInterfaceType cit;
+}
+{
+ "implements" cit = ClassOrInterfaceType() { ret.add(cit); }
+ ( "," cit = ClassOrInterfaceType() { ret.add(cit); } )*
+ {
+ if (isInterface)
+ throwParseException(token, "An interface cannot implement other interfaces");
+ }
+ { return ret; }
+}
+
+EnumDeclaration EnumDeclaration(Modifier modifier):
+{
+ String name;
+ List impList = null;
+ EnumConstantDeclaration entry;
+ List entries = null;
+ BodyDeclaration member;
+ List members = null;
+ int line = modifier.beginLine;
+ int column = modifier.beginColumn;
+}
+{
+ "enum" { if (line == -1) {line=token.beginLine; column=token.beginColumn;} }
+ <IDENTIFIER> { name = token.image; }
+ [ impList = ImplementsList(false) ]
+ "{"
+ [
+ { entries = new LinkedList(); }
+ entry = EnumConstantDeclaration() { entries.add(entry); } ( LOOKAHEAD(2) "," entry = EnumConstantDeclaration() { entries.add(entry); } )*
+ ]
+ [ "," ]
+ [
+ ( ";" ( member = ClassOrInterfaceBodyDeclaration(false) { members = add(members, member); } )* )
+ ]
+ "}"
+
+ { return new EnumDeclaration(line, column, token.endLine, token.endColumn,popJavadoc(), modifier.modifiers, modifier.annotations, name, impList, entries, members); }
+}
+
+
+EnumConstantDeclaration EnumConstantDeclaration():
+{
+ List annotations = null;
+ AnnotationExpr ann;
+ String name;
+ List args = null;
+ List classBody = null;
+ int line = -1;
+ int column = -1;
+}
+{
+ { pushJavadoc(); }
+ ( ann = Annotation() { annotations = add(annotations, ann); if(line==-1){line=ann.getBeginLine(); column=ann.getBeginColumn();} } )*
+ <IDENTIFIER> { name = token.image; if(line==-1){line=token.beginLine; column=token.beginColumn;} }
+ [ args = Arguments() ] [ classBody = ClassOrInterfaceBody(false) ]
+ { return new EnumConstantDeclaration(line, column, token.endLine, token.endColumn,popJavadoc(), annotations, name, args, classBody); }
+}
+
+List TypeParameters():
+{
+ List ret = new LinkedList();
+ TypeParameter tp;
+}
+{
+ "<" { ret.add(new int[]{token.beginLine, token.beginColumn}); }
+ tp = TypeParameter() { ret.add(tp); }
+ ( "," tp = TypeParameter() { ret.add(tp); } )*
+ ">"
+ { return ret; }
+}
+
+TypeParameter TypeParameter():
+{
+ String name;
+ List typeBound = null;
+ int line;
+ int column;
+}
+{
+ <IDENTIFIER> { name = token.image; line=token.beginLine; column=token.beginColumn;} [ typeBound = TypeBound() ]
+ { return new TypeParameter(line, column, token.endLine, token.endColumn,name, typeBound); }
+}
+
+List TypeBound():
+{
+ List ret = new LinkedList();
+ ClassOrInterfaceType cit;
+}
+{
+ "extends" cit = ClassOrInterfaceType() { ret.add(cit); }
+ ( "&" cit = ClassOrInterfaceType() { ret.add(cit); } )*
+ { return ret; }
+}
+
+List ClassOrInterfaceBody(boolean isInterface):
+{
+ List ret = new LinkedList();
+ BodyDeclaration member;
+}
+{
+ "{" ( member = ClassOrInterfaceBodyDeclaration(isInterface) { ret.add(member); } )* "}"
+ { return ret; }
+}
+
+BodyDeclaration ClassOrInterfaceBodyDeclaration(boolean isInterface):
+{
+ boolean isNestedInterface = false;
+ Modifier modifier;
+ BodyDeclaration ret;
+}
+{
+ { pushJavadoc(); }
+ (
+ LOOKAHEAD(2)
+ ret = InitializerDeclaration()
+ {
+ if (isInterface)
+ throwParseException(token, "An interface cannot have initializers");
+ }
+ |
+ modifier = Modifiers() // Just get all the modifiers out of the way. If you want to do
+ // more checks, pass the modifiers down to the member
+ (
+ ret = ClassOrInterfaceDeclaration(modifier)
+ |
+ ret = EnumDeclaration(modifier)
+ |
+ ret = AnnotationTypeDeclaration(modifier)
+ |
+ LOOKAHEAD( [ TypeParameters() ] <IDENTIFIER> "(" )
+ ret = ConstructorDeclaration(modifier)
+ |
+ LOOKAHEAD( Type() <IDENTIFIER> ( "[" "]" )* ( "," | "=" | ";" ) )
+ ret = FieldDeclaration(modifier)
+ |
+ ret = MethodDeclaration(modifier)
+ )
+ |
+ ";" { ret = new EmptyMemberDeclaration(token.beginLine, token.beginColumn, token.endLine, token.endColumn, popJavadoc()); }
+ )
+ { return ret; }
+}
+
+FieldDeclaration FieldDeclaration(Modifier modifier):
+{
+ Type type;
+ List variables = new LinkedList();
+ VariableDeclarator val;
+}
+{
+ // Modifiers are already matched in the caller
+ type = Type()
+ val = VariableDeclarator() { variables.add(val); }
+ ( "," val = VariableDeclarator() { variables.add(val); } )* ";"
+
+ {
+ int line = modifier.beginLine;
+ int column = modifier.beginColumn;
+ if (line == -1) { line=type.getBeginLine(); column=type.getBeginColumn(); }
+ return new FieldDeclaration(line, column, token.endLine, token.endColumn, popJavadoc(), modifier.modifiers, modifier.annotations, type, variables);
+ }
+}
+
+VariableDeclarator VariableDeclarator():
+{
+ VariableDeclaratorId id;
+ Expression init = null;
+}
+{
+ id = VariableDeclaratorId() [ "=" init = VariableInitializer() ]
+ { return new VariableDeclarator(id.getBeginLine(), id.getBeginColumn(), token.endLine, token.endColumn, id, init); }
+}
+
+VariableDeclaratorId VariableDeclaratorId():
+{
+ String name;
+ int arrayCount = 0;
+ int line;
+ int column;
+}
+{
+ <IDENTIFIER> { name = token.image; line=token.beginLine; column=token.beginColumn;} ( "[" "]" { arrayCount++; } )*
+ { return new VariableDeclaratorId(line, column, token.endLine, token.endColumn,name, arrayCount); }
+}
+
+Expression VariableInitializer():
+{
+ Expression ret;
+}
+{
+ (
+ ret = ArrayInitializer()
+ |
+ ret = Expression()
+ )
+ { return ret;}
+}
+
+ArrayInitializerExpr ArrayInitializer():
+{
+ List values = null;
+ Expression val;
+ int line;
+ int column;
+}
+{
+ "{" {line=token.beginLine; column=token.beginColumn;} [ val = VariableInitializer() { values = add(values, val); } ( LOOKAHEAD(2) "," val = VariableInitializer() { values = add(values, val); } )* ] [ "," ] "}"
+ { return new ArrayInitializerExpr(line, column, token.endLine, token.endColumn,values); }
+}
+
+MethodDeclaration MethodDeclaration(Modifier modifier):
+{
+ List typeParameters = null;
+ Type type;
+ String name;
+ List parameters;
+ int arrayCount = 0;
+ List throws_ = null;
+ BlockStmt block = null;
+ int line = modifier.beginLine;
+ int column = modifier.beginColumn;
+}
+{
+ // Modifiers already matched in the caller!
+ [ typeParameters = TypeParameters() { int[] lineCol=(int[])typeParameters.remove(0); if(line==-1){ line=lineCol[0]; column=lineCol[1];} } ]
+ type = ResultType() { if(line==-1){line=type.getBeginLine(); column=type.getBeginColumn();}}
+ <IDENTIFIER> { name = token.image; } parameters = FormalParameters() ( "[" "]" { arrayCount++; } )*
+ [ "throws" throws_ = NameList() ]
+ ( block = Block() | ";" )
+
+ { return new MethodDeclaration(line, column, token.endLine, token.endColumn,popJavadoc(), modifier.modifiers, modifier.annotations, typeParameters, type, name, parameters, arrayCount, throws_, block); }
+}
+
+List FormalParameters():
+{
+ List ret = null;
+ Parameter par;
+}
+{
+ "(" [ par = FormalParameter() { ret = add(ret, par); } ( "," par = FormalParameter() { ret = add(ret, par); } )* ] ")"
+
+ { return ret; }
+}
+
+Parameter FormalParameter():
+{
+ Modifier modifier;
+ Type type;
+ boolean isVarArg = false;
+ VariableDeclaratorId id;
+}
+{
+ modifier = Modifiers() type = Type() [ "..." { isVarArg = true;} ] id = VariableDeclaratorId()
+
+ {
+ int line = modifier.beginLine;
+ int column = modifier.beginColumn;
+ if(line==-1){ line=type.getBeginLine(); column=type.getBeginColumn(); }
+ return new Parameter(line, column, token.endLine, token.endColumn, modifier.modifiers, modifier.annotations, type, isVarArg, id);
+ }
+}
+
+ConstructorDeclaration ConstructorDeclaration(Modifier modifier):
+{
+ List typeParameters = null;
+ String name;
+ List parameters;
+ List throws_ = null;
+ ExplicitConstructorInvocationStmt exConsInv = null;
+ List stmts;
+ int line = modifier.beginLine;
+ int column = modifier.beginColumn;
+ int bbLine = 0;
+ int bbColumn = 0;
+ int beLine = 0;
+ int beColumn = 0;
+}
+{
+ [ typeParameters = TypeParameters() { int[] lineCol=(int[])typeParameters.remove(0); if(line==-1){ line=lineCol[0]; column=lineCol[1];} } ]
+ // Modifiers matched in the caller
+ <IDENTIFIER> { name = token.image; if(line==-1){line=token.beginLine; column=token.beginColumn;}} parameters = FormalParameters() [ "throws" throws_ = NameList() ]
+ "{" { bbLine=token.beginLine; bbColumn=token.beginColumn; }
+ [ LOOKAHEAD(ExplicitConstructorInvocation()) exConsInv = ExplicitConstructorInvocation() ]
+ stmts = Statements()
+ "}"
+
+ {
+ if (exConsInv != null) {
+ stmts = add(0, stmts, exConsInv);
+ }
+ return new ConstructorDeclaration(line, column, token.endLine, token.endColumn,popJavadoc(), modifier.modifiers, modifier.annotations, typeParameters, name, parameters, throws_, new BlockStmt(bbLine, bbColumn, token.endLine, token.endColumn, stmts));
+ }
+}
+
+ExplicitConstructorInvocationStmt ExplicitConstructorInvocation():
+{
+ boolean isThis = false;
+ List args;
+ Expression expr = null;
+ List typeArgs = null;
+ int line = -1;
+ int column = 0;
+}
+{
+ (
+ LOOKAHEAD([ TypeArguments() ] "this" "(")
+ [ typeArgs = TypeArguments() { int[] lineCol=(int[])typeArgs.remove(0); line=lineCol[0]; column=lineCol[1]; } ]
+ "this" { if (line == -1) {line=token.beginLine; column=token.beginColumn;} isThis = true; }
+ args = Arguments() ";"
+ |
+ [
+ LOOKAHEAD( PrimaryExpressionWithoutSuperSuffix() "." )
+ expr = PrimaryExpressionWithoutSuperSuffix() "."
+ { line=expr.getBeginLine(); column=expr.getBeginColumn(); }
+ ]
+ [ typeArgs = TypeArguments() {int[] lineCol=(int[])typeArgs.remove(0); if (line == -1) {line=lineCol[0]; column=lineCol[1];}} ]
+ "super" {if (line == -1) {line=token.beginLine; column=token.beginColumn;}}
+ args = Arguments() ";"
+ )
+ { return new ExplicitConstructorInvocationStmt(line, column, token.endLine, token.endColumn,typeArgs, isThis, expr, args); }
+}
+
+List Statements():
+{
+ List ret = null;
+ Statement stmt;
+}
+{
+ ( stmt = BlockStatement() { ret = add(ret, stmt); } )*
+ { return ret; }
+}
+
+InitializerDeclaration InitializerDeclaration():
+{
+ BlockStmt block;
+ int line = -1;
+ int column = 0;
+ boolean isStatic = false;
+}
+{
+ [ "static" { isStatic = true; line=token.beginLine; column=token.beginColumn;} ] block = Block() {if(line==-1){line=block.getBeginLine(); column=block.getBeginColumn();}}
+ { return new InitializerDeclaration(line, column, token.endLine, token.endColumn,popJavadoc(), isStatic, block); }
+}
+
+
+/*
+ * Type, name and expression syntax follows.
+ */
+
+Type Type():
+{
+ Type ret;
+}
+{
+ (
+ LOOKAHEAD(2) ret = ReferenceType()
+ |
+ ret = PrimitiveType()
+ )
+ { return ret; }
+}
+
+ReferenceType ReferenceType():
+{
+ Type type;
+ int arrayCount = 0;
+}
+{
+ (
+ type = PrimitiveType() ( LOOKAHEAD(2) "[" "]" { arrayCount++; } )+
+ |
+ type = ClassOrInterfaceType() ( LOOKAHEAD(2) "[" "]" { arrayCount++; } )*
+ )
+ { return new ReferenceType(type.getBeginLine(), type.getBeginColumn(), token.endLine, token.endColumn, type, arrayCount); }
+}
+
+ClassOrInterfaceType ClassOrInterfaceType():
+{
+ ClassOrInterfaceType ret;
+ String name;
+ List typeArgs = null;
+ int line;
+ int column;
+}
+{
+ <IDENTIFIER> {line=token.beginLine; column=token.beginColumn;} { name = token.image; }
+ [ LOOKAHEAD(2) typeArgs = TypeArguments() {typeArgs.remove(0);} ]
+ { ret = new ClassOrInterfaceType(line, column, token.endLine, token.endColumn,null, name, typeArgs); }
+ (
+ LOOKAHEAD(2) "." <IDENTIFIER> { name = token.image; }
+ [ LOOKAHEAD(2) typeArgs = TypeArguments() {typeArgs.remove(0);} ] { ret = new ClassOrInterfaceType(line, column, token.endLine, token.endColumn,ret, name, typeArgs); }
+ )*
+ { return ret; }
+}
+
+List TypeArguments():
+{
+ List ret = new LinkedList();
+ Type type;
+}
+{
+ "<" { ret.add(new int[]{token.beginLine, token.beginColumn}); }
+ type = TypeArgument() { ret.add(type); } ( "," type = TypeArgument() { ret.add(type); } )*
+ ">"
+ { return ret; }
+}
+
+Type TypeArgument():
+{
+ Type ret;
+}
+{
+ (
+ ret = ReferenceType()
+ |
+ ret = Wildcard()
+ )
+ { return ret; }
+}
+
+WildcardType Wildcard():
+{
+ ReferenceType ext = null;
+ ReferenceType sup = null;
+ int line;
+ int column;
+}
+{
+ "?" {line=token.beginLine; column=token.beginColumn;}
+ [
+ "extends" ext = ReferenceType()
+ |
+ "super" sup = ReferenceType()
+ ]
+ { return new WildcardType(line, column, token.endLine, token.endColumn,ext, sup); }
+}
+
+PrimitiveType PrimitiveType():
+{
+ PrimitiveType ret;
+}
+{
+(
+ "boolean" { ret = new PrimitiveType(token.beginLine, token.beginColumn, token.endLine, token.endColumn, PrimitiveType.Primitive.Boolean); }
+|
+ "char" { ret = new PrimitiveType(token.beginLine, token.beginColumn, token.endLine, token.endColumn, PrimitiveType.Primitive.Char); }
+|
+ "byte" { ret = new PrimitiveType(token.beginLine, token.beginColumn, token.endLine, token.endColumn, PrimitiveType.Primitive.Byte); }
+|
+ "short" { ret = new PrimitiveType(token.beginLine, token.beginColumn, token.endLine, token.endColumn, PrimitiveType.Primitive.Short); }
+|
+ "int" { ret = new PrimitiveType(token.beginLine, token.beginColumn, token.endLine, token.endColumn, PrimitiveType.Primitive.Int); }
+|
+ "long" { ret = new PrimitiveType(token.beginLine, token.beginColumn, token.endLine, token.endColumn, PrimitiveType.Primitive.Long); }
+|
+ "float" { ret = new PrimitiveType(token.beginLine, token.beginColumn, token.endLine, token.endColumn, PrimitiveType.Primitive.Float); }
+|
+ "double" { ret = new PrimitiveType(token.beginLine, token.beginColumn, token.endLine, token.endColumn, PrimitiveType.Primitive.Double); }
+)
+{ return ret; }
+}
+
+Type ResultType():
+{
+ Type ret;
+}
+{
+ (
+ "void" { ret = new VoidType(token.beginLine, token.beginColumn, token.endLine, token.endColumn); }
+ |
+ ret = Type()
+ )
+ { return ret; }
+}
+
+NameExpr Name():
+/*
+ * A lookahead of 2 is required below since "Name" can be followed
+ * by a ".*" when used in the context of an "ImportDeclaration".
+ */
+{
+ NameExpr ret;
+}
+{
+ <IDENTIFIER> { ret = new NameExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, token.image); }
+ ( LOOKAHEAD(2) "." <IDENTIFIER> { ret = new QualifiedNameExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, token.image); } )*
+ { return ret; }
+}
+
+List NameList():
+{
+ List ret = new LinkedList();
+ NameExpr name;
+}
+{
+ name = Name() { ret.add(name); } ( "," name = Name() { ret.add(name); } )*
+
+ { return ret; }
+}
+
+
+/*
+ * Expression syntax follows.
+ */
+
+Expression Expression():
+/*
+ * This expansion has been written this way instead of:
+ * Assignment() | ConditionalExpression()
+ * for performance reasons.
+ * However, it is a weakening of the grammar for it allows the LHS of
+ * assignments to be any conditional expression whereas it can only be
+ * a primary expression. Consider adding a semantic predicate to work
+ * around this.
+ */
+{
+ Expression ret;
+ AssignExpr.Operator op;
+ Expression value;
+}
+{
+ ret = ConditionalExpression()
+ [
+ LOOKAHEAD(2)
+ op = AssignmentOperator() value = Expression() { ret = new AssignExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, value, op); }
+ ]
+ { return ret; }
+}
+
+AssignExpr.Operator AssignmentOperator():
+{
+ AssignExpr.Operator ret;
+}
+{
+ (
+ "=" { ret = AssignExpr.Operator.assign; }
+ | "*=" { ret = AssignExpr.Operator.star; }
+ | "/=" { ret = AssignExpr.Operator.slash; }
+ | "%=" { ret = AssignExpr.Operator.rem; }
+ | "+=" { ret = AssignExpr.Operator.plus; }
+ | "-=" { ret = AssignExpr.Operator.minus; }
+ | "<<=" { ret = AssignExpr.Operator.lShift; }
+ | ">>=" { ret = AssignExpr.Operator.rSignedShift; }
+ | ">>>=" { ret = AssignExpr.Operator.rUnsignedShift; }
+ | "&=" { ret = AssignExpr.Operator.and; }
+ | "^=" { ret = AssignExpr.Operator.xor; }
+ | "|=" { ret = AssignExpr.Operator.or; }
+ )
+ { return ret; }
+}
+
+Expression ConditionalExpression():
+{
+ Expression ret;
+ Expression left;
+ Expression right;
+}
+{
+ ret = ConditionalOrExpression()
+ [ "?" left = Expression() ":" right = ConditionalExpression() { ret = new ConditionalExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, left, right); } ]
+ { return ret; }
+}
+
+Expression ConditionalOrExpression():
+{
+ Expression ret;
+ Expression right;
+}
+{
+ ret = ConditionalAndExpression() ( "||" right = ConditionalAndExpression() { ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, BinaryExpr.Operator.or); } )*
+ { return ret; }
+}
+
+Expression ConditionalAndExpression():
+{
+ Expression ret;
+ Expression right;
+}
+{
+ ret = InclusiveOrExpression() ( "&&" right = InclusiveOrExpression() { ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, BinaryExpr.Operator.and); } )*
+ { return ret; }
+}
+
+Expression InclusiveOrExpression():
+{
+ Expression ret;
+ Expression right;
+}
+{
+ ret = ExclusiveOrExpression() ( "|" right = ExclusiveOrExpression() { ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, BinaryExpr.Operator.binOr); } )*
+ { return ret; }
+}
+
+Expression ExclusiveOrExpression():
+{
+ Expression ret;
+ Expression right;
+}
+{
+ ret = AndExpression() ( "^" right = AndExpression() { ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, BinaryExpr.Operator.xor); } )*
+ { return ret; }
+}
+
+Expression AndExpression():
+{
+ Expression ret;
+ Expression right;
+}
+{
+ ret = EqualityExpression() ( "&" right = EqualityExpression() { ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, BinaryExpr.Operator.binAnd); } )*
+ { return ret; }
+}
+
+Expression EqualityExpression():
+{
+ Expression ret;
+ Expression right;
+ BinaryExpr.Operator op;
+}
+{
+ ret = InstanceOfExpression()
+ (
+ ( "==" { op = BinaryExpr.Operator.equals; } |
+ "!=" { op = BinaryExpr.Operator.notEquals; }
+ ) right = InstanceOfExpression() { ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, op); }
+ )*
+ { return ret; }
+}
+
+Expression InstanceOfExpression():
+{
+ Expression ret;
+ Type type;
+}
+{
+ ret = RelationalExpression() [ "instanceof" type = Type() { ret = new InstanceOfExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, type); } ]
+ { return ret; }
+}
+
+Expression RelationalExpression():
+{
+ Expression ret;
+ Expression right;
+ BinaryExpr.Operator op;
+}
+{
+ ret = ShiftExpression()
+ (
+ ( "<" { op = BinaryExpr.Operator.less; } |
+ ">" { op = BinaryExpr.Operator.greater; } |
+ "<=" { op = BinaryExpr.Operator.lessEquals; } |
+ ">=" { op = BinaryExpr.Operator.greaterEquals; }
+ ) right = ShiftExpression() { ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, op); }
+ )*
+ { return ret; }
+}
+
+Expression ShiftExpression():
+{
+ Expression ret;
+ Expression right;
+ BinaryExpr.Operator op;
+}
+{
+ ret = AdditiveExpression()
+ (
+ ( "<<" { op = BinaryExpr.Operator.lShift; } |
+ RSIGNEDSHIFT() { op = BinaryExpr.Operator.rSignedShift; } |
+ RUNSIGNEDSHIFT() { op = BinaryExpr.Operator.rUnsignedShift; }
+ ) right = AdditiveExpression() { ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, op); }
+ )*
+ { return ret; }
+}
+
+Expression AdditiveExpression():
+{
+ Expression ret;
+ Expression right;
+ BinaryExpr.Operator op;
+}
+{
+ ret = MultiplicativeExpression()
+ (
+ ( "+" { op = BinaryExpr.Operator.plus; } |
+ "-" { op = BinaryExpr.Operator.minus; }
+ ) right = MultiplicativeExpression() { ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, op); }
+ )*
+ { return ret; }
+}
+
+Expression MultiplicativeExpression():
+{
+ Expression ret;
+ Expression right;
+ BinaryExpr.Operator op;
+}
+{
+ ret = UnaryExpression()
+ (
+ ( "*" { op = BinaryExpr.Operator.times; } |
+ "/" { op = BinaryExpr.Operator.divide; } |
+ "%" { op = BinaryExpr.Operator.remainder; }
+ ) right = UnaryExpression() { ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, op); }
+ )*
+ { return ret; }
+}
+
+Expression UnaryExpression():
+{
+ Expression ret;
+ UnaryExpr.Operator op;
+ int line = 0;
+ int column = 0;
+}
+{
+ (
+ ( "+" { op = UnaryExpr.Operator.positive; line=token.beginLine; column=token.beginColumn;} |
+ "-" { op = UnaryExpr.Operator.negative; line=token.beginLine; column=token.beginColumn;}
+ ) ret = UnaryExpression()
+ {
+ if(op == UnaryExpr.Operator.negative) {
+ if (ret instanceof IntegerLiteralExpr && ((IntegerLiteralExpr)ret).isMinValue()) {
+ ret = new IntegerLiteralMinValueExpr(line, column, token.endLine, token.endColumn);
+ } else if (ret instanceof LongLiteralExpr && ((LongLiteralExpr)ret).isMinValue()) {
+ ret = new LongLiteralMinValueExpr(line, column, token.endLine, token.endColumn);
+ } else {
+ ret = new UnaryExpr(line, column, token.endLine, token.endColumn,ret, op);
+ }
+ } else {
+ ret = new UnaryExpr(line, column, token.endLine, token.endColumn,ret, op);
+ }
+ }
+ |
+ ret = PreIncrementExpression()
+ |
+ ret = PreDecrementExpression()
+ |
+ ret = UnaryExpressionNotPlusMinus()
+ )
+ { return ret; }
+}
+
+Expression PreIncrementExpression():
+{
+ Expression ret;
+ int line;
+ int column;
+}
+{
+ "++" {line=token.beginLine; column=token.beginColumn;} ret = PrimaryExpression() { ret = new UnaryExpr(line, column, token.endLine, token.endColumn,ret, UnaryExpr.Operator.preIncrement); }
+ { return ret; }
+}
+
+Expression PreDecrementExpression():
+{
+ Expression ret;
+ int line;
+ int column;
+}
+{
+ "--" {line=token.beginLine; column=token.beginColumn;} ret = PrimaryExpression() { ret = new UnaryExpr(line, column, token.endLine, token.endColumn,ret, UnaryExpr.Operator.preDecrement); }
+ { return ret; }
+}
+
+Expression UnaryExpressionNotPlusMinus():
+{
+ Expression ret;
+ UnaryExpr.Operator op;
+ int line = 0;
+ int column = 0;
+}
+{
+ (
+ ( "~" { op = UnaryExpr.Operator.inverse; line=token.beginLine; column=token.beginColumn;} |
+ "!" { op = UnaryExpr.Operator.not; line=token.beginLine; column=token.beginColumn;}
+ ) ret = UnaryExpression() { ret = new UnaryExpr(line, column, token.endLine, token.endColumn,ret, op); }
+ |
+ LOOKAHEAD( CastLookahead() )
+ ret = CastExpression()
+ |
+ ret = PostfixExpression()
+ )
+ { return ret; }
+}
+
+// This production is to determine lookahead only. The LOOKAHEAD specifications
+// below are not used, but they are there just to indicate that we know about
+// this.
+void CastLookahead():
+{}
+{
+ LOOKAHEAD("(" Type() "[")
+ "(" Type() "[" "]"
+|
+ "(" Type() ")" UnaryExpression()
+}
+
+Expression PostfixExpression():
+{
+ Expression ret;
+ UnaryExpr.Operator op;
+}
+{
+ ret = PrimaryExpression()
+ [
+ LOOKAHEAD(2)
+ ( "++" { op = UnaryExpr.Operator.posIncrement; } |
+ "--" { op = UnaryExpr.Operator.posDecrement; }
+ ) { ret = new UnaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, op); }
+ ]
+ { return ret; }
+}
+
+Expression CastExpression():
+{
+ Expression ret;
+ Type type;
+ int line;
+ int column;
+}
+{
+ "(" {line=token.beginLine; column=token.beginColumn;} type = Type() ")" ret = UnaryExpression() { ret = new CastExpr(line, column, token.endLine, token.endColumn,type, ret); }
+ { return ret; }
+}
+
+Expression PrimaryExpression():
+{
+ Expression ret;
+ Expression inner;
+}
+{
+ ret = PrimaryPrefix() ( LOOKAHEAD(2) ret = PrimarySuffix(ret) )*
+ { return ret; }
+}
+
+Expression PrimaryExpressionWithoutSuperSuffix():
+{
+ Expression ret;
+ Expression inner;
+}
+{
+ ret = PrimaryPrefix() ( LOOKAHEAD( PrimarySuffixWithoutSuper(null) ) ret = PrimarySuffixWithoutSuper(ret) )*
+ { return ret; }
+}
+
+Expression PrimaryPrefix():
+{
+ Expression ret;
+ String name;
+ List typeArgs = null;
+ List args = null;
+ boolean hasArgs = false;
+ Type type;
+ int line;
+ int column;
+}
+{
+ (
+ ret = Literal()
+ |
+ "this" { ret = new ThisExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, null); }
+ |
+ "super" { ret = new SuperExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, null); }
+ "."
+ [ typeArgs = TypeArguments() {typeArgs.remove(0);} ]
+ <IDENTIFIER> { name = token.image; }
+ [ args = Arguments() {hasArgs=true;} ]
+ {
+ ret = hasArgs
+ ? new MethodCallExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, typeArgs, name, args)
+ : new FieldAccessExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, null, name);
+ }
+ |
+ "(" {line=token.beginLine; column=token.beginColumn;} ret = Expression() ")" { ret = new EnclosedExpr(line, column, token.endLine, token.endColumn,ret); }
+ |
+ ret = AllocationExpression(null)
+ |
+ LOOKAHEAD( ResultType() "." "class" )
+ type = ResultType() "." "class" { ret = new ClassExpr(type.getBeginLine(), type.getBeginColumn(), token.endLine, token.endColumn, type); }
+ |
+ <IDENTIFIER> { name = token.image; line=token.beginLine; column=token.beginColumn; }
+ [ args = Arguments() {hasArgs=true;} ]
+ {
+ ret = hasArgs
+ ? new MethodCallExpr(line, column, token.endLine, token.endColumn, null, null, name, args)
+ : new NameExpr(line, column, token.endLine, token.endColumn, name);
+ }
+ )
+ { return ret; }
+}
+
+Expression PrimarySuffix(Expression scope):
+{
+ Expression ret;
+}
+{
+ (
+ LOOKAHEAD(2)
+ ret = PrimarySuffixWithoutSuper(scope)
+ |
+ "." "super" { ret = new SuperExpr(scope.getBeginLine(), scope.getBeginColumn(), token.endLine, token.endColumn, scope); }
+ )
+ { return ret; }
+}
+
+Expression PrimarySuffixWithoutSuper(Expression scope):
+{
+ Expression ret;
+ List typeArgs = null;
+ List args = null;
+ boolean hasArgs = false;
+ String name;
+}
+{
+ (
+ "."
+ (
+ // TODO: está deixando passar "this.this", verificar na JLS se é possível
+ "this" { ret = new ThisExpr(scope.getBeginLine(), scope.getBeginColumn(), token.endLine, token.endColumn, scope); }
+ |
+ ret = AllocationExpression(scope)
+ |
+ LOOKAHEAD( [ TypeArguments() ] <IDENTIFIER> )
+ [ typeArgs = TypeArguments() {typeArgs.remove(0);} ]
+ <IDENTIFIER> { name = token.image; }
+ [ args = Arguments() {hasArgs=true;} ]
+ {
+ ret = hasArgs
+ ? new MethodCallExpr(scope.getBeginLine(), scope.getBeginColumn(), token.endLine, token.endColumn, scope, typeArgs, name, args)
+ : new FieldAccessExpr(scope.getBeginLine(), scope.getBeginColumn(), token.endLine, token.endColumn, scope, typeArgs, name);
+ }
+ )
+ |
+ "["ret = Expression() "]" { ret = new ArrayAccessExpr(scope.getBeginLine(), scope.getBeginColumn(), token.endLine, token.endColumn, scope, ret); }
+ )
+ { return ret; }
+}
+
+Expression Literal():
+{
+ Expression ret;
+}
+{
+ (
+ <INTEGER_LITERAL> {
+ ret = new IntegerLiteralExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, token.image);
+ }
+ |
+ <LONG_LITERAL> {
+ ret = new LongLiteralExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, token.image);
+ }
+ |
+ <FLOATING_POINT_LITERAL> {
+ ret = new DoubleLiteralExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, token.image);
+ }
+ |
+ <CHARACTER_LITERAL> {
+ ret = new CharLiteralExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, token.image.substring(1, token.image.length()-1));
+ }
+ |
+ <STRING_LITERAL> {
+ ret = new StringLiteralExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, token.image.substring(1, token.image.length()-1));
+ }
+ |
+ ret = BooleanLiteral()
+ |
+ ret = NullLiteral()
+ )
+ { return ret; }
+}
+
+Expression BooleanLiteral():
+{
+ Expression ret;
+}
+{
+ (
+ "true" { ret = new BooleanLiteralExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, true); }
+ |
+ "false" { ret = new BooleanLiteralExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, false); }
+ )
+ { return ret; }
+}
+
+Expression NullLiteral():
+{}
+{
+ "null"
+ { return new NullLiteralExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn); }
+}
+
+List Arguments():
+{
+ List ret = null;
+}
+{
+ "(" [ ret = ArgumentList() ] ")"
+ { return ret; }
+}
+
+List ArgumentList():
+{
+ List ret = new LinkedList();
+ Expression expr;
+}
+{
+ expr = Expression() { ret.add(expr); } ( "," expr = Expression() { ret.add(expr); } )*
+ { return ret; }
+}
+
+Expression AllocationExpression(Expression scope):
+{
+ Expression ret;
+ Type type;
+ Object[] arr = null;
+ List typeArgs = null;
+ List anonymousBody = null;
+ List args;
+ int line;
+ int column;
+}
+{
+ "new" { if(scope==null) {line=token.beginLine; column=token.beginColumn;} else {line=scope.getBeginLine(); column=scope.getBeginColumn();} }
+ (
+ type = PrimitiveType()
+ arr = ArrayDimsAndInits()
+ {
+ if (arr[0] instanceof Integer) {
+ ret = new ArrayCreationExpr(line, column, token.endLine, token.endColumn, type, ((Integer)arr[0]).intValue(), (ArrayInitializerExpr)arr[1]);
+ } else {
+ ret = new ArrayCreationExpr(line, column, token.endLine, token.endColumn, type, (List)arr[0], ((Integer)arr[1]).intValue());
+ }
+ }
+ |
+ LOOKAHEAD(ClassOrInterfaceType() ArrayDimsAndInits())
+ type = ClassOrInterfaceType()
+ arr = ArrayDimsAndInits()
+ {
+ if (arr[0] instanceof Integer) {
+ ret = new ArrayCreationExpr(line, column, token.endLine, token.endColumn, type, ((Integer)arr[0]).intValue(), (ArrayInitializerExpr)arr[1]);
+ } else {
+ ret = new ArrayCreationExpr(line, column, token.endLine, token.endColumn, type, (List)arr[0], ((Integer)arr[1]).intValue());
+ }
+ }
+ |
+ [ typeArgs = TypeArguments() {typeArgs.remove(0);} ]
+ type = ClassOrInterfaceType()
+ args = Arguments() [ LOOKAHEAD(2) anonymousBody = ClassOrInterfaceBody(false) ]
+ { ret = new ObjectCreationExpr(line, column, token.endLine, token.endColumn, scope, (ClassOrInterfaceType) type, typeArgs, args, anonymousBody); }
+ )
+ { return ret; }
+}
+
+/*
+ * The third LOOKAHEAD specification below is to parse to PrimarySuffix
+ * if there is an expression between the "[...]".
+ */
+Object[] ArrayDimsAndInits():
+{
+ Object[] ret = new Object[2];
+ Expression expr;
+ List inits = null;
+ int i = 0;
+}
+{
+ (
+ LOOKAHEAD(2)
+ ( LOOKAHEAD(2) "[" expr = Expression() { inits = add(inits, expr); } "]" )+ ( LOOKAHEAD(2) "[" "]" { i++; } )* { ret[0] = inits; ret[1] = new Integer(i); }
+ |
+ ( "[" "]" { i++; } )+ expr = ArrayInitializer() { ret[0] = new Integer(i); ret[1] = expr; }
+ )
+ { return ret; }
+}
+
+
+/*
+ * Statement syntax follows.
+ */
+
+Statement Statement():
+{
+ Statement ret;
+}
+{
+ (
+ LOOKAHEAD(2)
+ ret = LabeledStatement()
+ |
+ ret = AssertStatement()
+ |
+ ret = Block()
+ |
+ ret = EmptyStatement()
+ |
+ ret = StatementExpression()
+ |
+ ret = SwitchStatement()
+ |
+ ret = IfStatement()
+ |
+ ret = WhileStatement()
+ |
+ ret = DoStatement()
+ |
+ ret = ForStatement()
+ |
+ ret = BreakStatement()
+ |
+ ret = ContinueStatement()
+ |
+ ret = ReturnStatement()
+ |
+ ret = ThrowStatement()
+ |
+ ret = SynchronizedStatement()
+ |
+ ret = TryStatement()
+ )
+ { return ret; }
+}
+
+AssertStmt AssertStatement():
+{
+ Expression check;
+ Expression msg = null;
+ int line;
+ int column;
+}
+{
+ "assert" {line=token.beginLine; column=token.beginColumn;} check = Expression() [ ":" msg = Expression() ] ";"
+ { return new AssertStmt(line, column, token.endLine, token.endColumn,check, msg); }
+}
+
+LabeledStmt LabeledStatement():
+{
+ String label;
+ Statement stmt;
+ int line;
+ int column;
+}
+{
+ <IDENTIFIER> {line=token.beginLine; column=token.beginColumn;} { label = token.image; } ":" stmt = Statement()
+ { return new LabeledStmt(line, column, token.endLine, token.endColumn,label, stmt); }
+}
+
+BlockStmt Block():
+{
+ List stmts;
+ int beginLine;
+ int beginColumn;
+}
+{
+ "{" {beginLine=token.beginLine; beginColumn=token.beginColumn;}
+ stmts = Statements()
+ "}"
+ { return new BlockStmt(beginLine, beginColumn, token.endLine, token.endColumn, stmts); }
+}
+
+/*
+ * Classes inside block stametents can only be abstract or final. The semantic must check it.
+ */
+Statement BlockStatement():
+{
+ Statement ret;
+ Expression expr;
+ ClassOrInterfaceDeclaration typeDecl;
+ Modifier modifier;
+}
+{
+ (
+ LOOKAHEAD( Modifiers() ("class" | "interface") )
+ { pushJavadoc(); }
+ modifier = Modifiers()
+ typeDecl = ClassOrInterfaceDeclaration(modifier) { ret = new TypeDeclarationStmt(typeDecl.getBeginLine(), typeDecl.getBeginColumn(), token.endLine, token.endColumn, typeDecl); }
+ |
+ LOOKAHEAD(VariableDeclarationExpression() )
+ expr = VariableDeclarationExpression() ";"
+ { ret = new ExpressionStmt(expr.getBeginLine(), expr.getBeginColumn(), token.endLine, token.endColumn, expr); }
+ |
+ ret = Statement()
+ )
+ { return ret; }
+}
+
+VariableDeclarationExpr VariableDeclarationExpression():
+{
+ Modifier modifier;
+ Type type;
+ List vars = new LinkedList();
+ VariableDeclarator var;
+}
+{
+ modifier = Modifiers() type = Type() var = VariableDeclarator() { vars.add(var); } ( "," var = VariableDeclarator() { vars.add(var); } )*
+ {
+ int line = modifier.beginLine;
+ int column = modifier.beginColumn;
+ if(line==-1) {line=type.getBeginLine(); column=type.getBeginColumn(); }
+ return new VariableDeclarationExpr(line, column, token.endLine, token.endColumn, modifier.modifiers, modifier.annotations, type, vars);
+ }
+}
+
+EmptyStmt EmptyStatement():
+{}
+{
+ ";"
+ { return new EmptyStmt(token.beginLine, token.beginColumn, token.endLine, token.endColumn); }
+}
+
+ExpressionStmt StatementExpression():
+/*
+ * The last expansion of this production accepts more than the legal
+ * Java expansions for StatementExpression. This expansion does not
+ * use PostfixExpression for performance reasons.
+ */
+{
+ Expression expr;
+ AssignExpr.Operator op;
+ Expression value;
+}
+{
+ (
+ expr = PreIncrementExpression()
+ |
+ expr = PreDecrementExpression()
+ |
+ expr = PrimaryExpression()
+ [
+ "++" { expr = new UnaryExpr(expr.getBeginLine(), expr.getBeginColumn(), token.endLine, token.endColumn, expr, UnaryExpr.Operator.posIncrement); }
+ |
+ "--" { expr = new UnaryExpr(expr.getBeginLine(), expr.getBeginColumn(), token.endLine, token.endColumn, expr, UnaryExpr.Operator.posDecrement); }
+ |
+ op = AssignmentOperator() value = Expression() { expr = new AssignExpr(expr.getBeginLine(), expr.getBeginColumn(), token.endLine, token.endColumn, expr, value, op); }
+ ]
+ )
+ ";"
+ { return new ExpressionStmt(expr.getBeginLine(), expr.getBeginColumn(), token.endLine, token.endColumn, expr); }
+}
+
+SwitchStmt SwitchStatement():
+{
+ Expression selector;
+ SwitchEntryStmt entry;
+ List entries = null;
+ int line;
+ int column;
+}
+{
+ "switch" {line=token.beginLine; column=token.beginColumn;} "(" selector = Expression() ")" "{"
+ ( entry = SwitchEntry() { entries = add(entries, entry); } )*
+ "}"
+
+ { return new SwitchStmt(line, column, token.endLine, token.endColumn,selector, entries); }
+}
+
+SwitchEntryStmt SwitchEntry():
+{
+ Expression label = null;
+ List stmts;
+ int line;
+ int column;
+}
+{
+ (
+ "case" {line=token.beginLine; column=token.beginColumn;} label = Expression()
+ |
+ "default" {line=token.beginLine; column=token.beginColumn;}
+ )
+ ":" stmts = Statements()
+
+ { return new SwitchEntryStmt(line, column, token.endLine, token.endColumn,label, stmts); }
+}
+
+IfStmt IfStatement():
+/*
+ * The disambiguating algorithm of JavaCC automatically binds dangling
+ * else's to the innermost if statement. The LOOKAHEAD specification
+ * is to tell JavaCC that we know what we are doing.
+ */
+{
+ Expression condition;
+ Statement thenStmt;
+ Statement elseStmt = null;
+ int line;
+ int column;
+}
+{
+ "if" {line=token.beginLine; column=token.beginColumn;} "(" condition = Expression() ")" thenStmt = Statement() [ LOOKAHEAD(1) "else" elseStmt = Statement() ]
+ { return new IfStmt(line, column, token.endLine, token.endColumn,condition, thenStmt, elseStmt); }
+}
+
+WhileStmt WhileStatement():
+{
+ Expression condition;
+ Statement body;
+ int line;
+ int column;
+}
+{
+ "while" {line=token.beginLine; column=token.beginColumn;} "(" condition = Expression() ")" body = Statement()
+ { return new WhileStmt(line, column, token.endLine, token.endColumn,condition, body); }
+}
+
+DoStmt DoStatement():
+{
+ Expression condition;
+ Statement body;
+ int line;
+ int column;
+}
+{
+ "do" {line=token.beginLine; column=token.beginColumn;} body = Statement() "while" "(" condition = Expression() ")" ";"
+ { return new DoStmt(line, column, token.endLine, token.endColumn,body, condition); }
+}
+
+Statement ForStatement():
+{
+ String id = null;
+ VariableDeclarationExpr varExpr = null;
+ Expression expr = null;
+ List init = null;
+ List update = null;
+ Statement body;
+ int line;
+ int column;
+}
+{
+ "for" {line=token.beginLine; column=token.beginColumn;} "("
+
+ (
+ LOOKAHEAD(VariableDeclarationExpression() ":")
+ varExpr = VariableDeclarationExpression() ":" expr = Expression()
+ |
+ [ init = ForInit() ] ";" [ expr = Expression() ] ";" [ update = ForUpdate() ]
+ )
+
+ ")" body = Statement()
+
+ {
+ if (varExpr != null) {
+ return new ForeachStmt(line, column, token.endLine, token.endColumn,varExpr, expr, body);
+ }
+ return new ForStmt(line, column, token.endLine, token.endColumn,init, expr, update, body);
+ }
+}
+
+List ForInit():
+{
+ List ret;
+ Expression expr;
+}
+{
+ (
+ LOOKAHEAD( Modifiers() Type() <IDENTIFIER> )
+ expr = VariableDeclarationExpression() { ret = new LinkedList(); ret.add(expr); }
+ |
+ ret = ExpressionList()
+ )
+ { return ret; }
+}
+
+List ExpressionList():
+{
+ List ret = new LinkedList();
+ Expression expr;
+}
+{
+ expr = Expression() { ret.add(expr); } ( "," expr = Expression() { ret.add(expr); } )*
+
+ { return ret; }
+}
+
+List ForUpdate():
+{
+ List ret;
+}
+{
+ ret = ExpressionList()
+
+ { return ret; }
+}
+
+BreakStmt BreakStatement():
+{
+ String id = null;
+ int line;
+ int column;
+}
+{
+ "break" {line=token.beginLine; column=token.beginColumn;} [ <IDENTIFIER> { id = token.image; } ] ";"
+ { return new BreakStmt(line, column, token.endLine, token.endColumn,id); }
+}
+
+ContinueStmt ContinueStatement():
+{
+ String id = null;
+ int line;
+ int column;
+}
+{
+ "continue" {line=token.beginLine; column=token.beginColumn;} [ <IDENTIFIER> { id = token.image; } ] ";"
+ { return new ContinueStmt(line, column, token.endLine, token.endColumn,id); }
+}
+
+ReturnStmt ReturnStatement():
+{
+ Expression expr = null;
+ int line;
+ int column;
+}
+{
+ "return" {line=token.beginLine; column=token.beginColumn;} [ expr = Expression() ] ";"
+ { return new ReturnStmt(line, column, token.endLine, token.endColumn,expr); }
+}
+
+ThrowStmt ThrowStatement():
+{
+ Expression expr;
+ int line;
+ int column;
+}
+{
+ "throw" {line=token.beginLine; column=token.beginColumn;} expr = Expression() ";"
+ { return new ThrowStmt(line, column, token.endLine, token.endColumn,expr); }
+}
+
+SynchronizedStmt SynchronizedStatement():
+{
+ Expression expr;
+ BlockStmt block;
+ int line;
+ int column;
+}
+{
+ "synchronized" {line=token.beginLine; column=token.beginColumn;} "(" expr = Expression() ")" block = Block()
+ { return new SynchronizedStmt(line, column, token.endLine, token.endColumn,expr, block); }
+}
+
+TryStmt TryStatement():
+/*
+ * Semantic check required here to make sure that at least one
+ * finally/catch is present.
+ */
+{
+ BlockStmt tryBlock;
+ BlockStmt finallyBlock = null;
+ List catchs = null;
+ Parameter except;
+ BlockStmt catchBlock;
+ int line;
+ int column;
+ int cLine;
+ int cColumn;
+}
+{
+ "try" {line=token.beginLine; column=token.beginColumn;} tryBlock = Block()
+ (
+ (
+ "catch" {cLine=token.beginLine; cColumn=token.beginColumn;}
+ "(" except = FormalParameter() ")" catchBlock = Block()
+ { catchs = add(catchs, new CatchClause(cLine, cColumn, token.endLine, token.endColumn, except, catchBlock)); }
+ )+
+ [ "finally" finallyBlock = Block() ]
+ |
+ "finally" finallyBlock = Block()
+ )
+ { return new TryStmt(line, column, token.endLine, token.endColumn,tryBlock, catchs, finallyBlock); }
+}
+
+
+
+/* We use productions to match >>>, >> and > so that we can keep the
+ * type declaration syntax with generics clean
+ */
+
+void RUNSIGNEDSHIFT():
+{}
+{
+ ( LOOKAHEAD({ getToken(1).kind == GT &&
+ ((GTToken)getToken(1)).realKind == RUNSIGNEDSHIFT} )
+ ">" ">" ">"
+ )
+}
+
+void RSIGNEDSHIFT():
+{}
+{
+ ( LOOKAHEAD({ getToken(1).kind == GT &&
+ ((GTToken)getToken(1)).realKind == RSIGNEDSHIFT} )
+ ">" ">"
+ )
+}
+
+/* Annotation syntax follows. */
+
+AnnotationExpr Annotation():
+{
+ AnnotationExpr ret;
+}
+{
+ (
+ LOOKAHEAD( "@" Name() "(" ( <IDENTIFIER> "=" | ")" ))
+ ret = NormalAnnotation()
+ |
+ LOOKAHEAD( "@" Name() "(" )
+ ret = SingleMemberAnnotation()
+ |
+ ret = MarkerAnnotation()
+ )
+ { return ret; }
+}
+
+NormalAnnotationExpr NormalAnnotation():
+{
+ NameExpr name;
+ List pairs = null;
+ int line;
+ int column;
+}
+{
+ "@" {line=token.beginLine; column=token.beginColumn;} name = Name() "(" [ pairs = MemberValuePairs() ] ")"
+ { return new NormalAnnotationExpr(line, column, token.endLine, token.endColumn,name, pairs); }
+}
+
+MarkerAnnotationExpr MarkerAnnotation():
+{
+ NameExpr name;
+ int line;
+ int column;
+}
+{
+ "@" {line=token.beginLine; column=token.beginColumn;} name = Name()
+ { return new MarkerAnnotationExpr(line, column, token.endLine, token.endColumn,name); }
+}
+
+SingleMemberAnnotationExpr SingleMemberAnnotation():
+{
+ NameExpr name;
+ Expression memberVal;
+ int line;
+ int column;
+}
+{
+ "@" {line=token.beginLine; column=token.beginColumn;} name = Name() "(" memberVal = MemberValue() ")"
+ { return new SingleMemberAnnotationExpr(line, column, token.endLine, token.endColumn,name, memberVal); }
+}
+
+List MemberValuePairs():
+{
+ List ret = new LinkedList();
+ MemberValuePair pair;
+}
+{
+ pair = MemberValuePair() { ret.add(pair); } ( "," pair = MemberValuePair() { ret.add(pair); } )*
+ { return ret; }
+}
+
+MemberValuePair MemberValuePair():
+{
+ String name;
+ Expression value;
+ int line;
+ int column;
+}
+{
+ <IDENTIFIER> { name = token.image; line=token.beginLine; column=token.beginColumn;} "=" value = MemberValue()
+ { return new MemberValuePair(line, column, token.endLine, token.endColumn,name, value); }
+}
+
+Expression MemberValue():
+{
+ Expression ret;
+}
+{
+ (
+ ret = Annotation()
+ |
+ ret = MemberValueArrayInitializer()
+ |
+ ret = ConditionalExpression()
+ )
+ { return ret; }
+}
+
+Expression MemberValueArrayInitializer():
+{
+ List ret = new LinkedList();
+ Expression member;
+ int line;
+ int column;
+}
+{
+ "{" {line=token.beginLine; column=token.beginColumn;}
+ ( member = MemberValue() { ret.add(member); } ( LOOKAHEAD(2) "," member = MemberValue() { ret.add(member); } )* )? [ "," ]
+ "}"
+ { return new ArrayInitializerExpr(line, column, token.endLine, token.endColumn,ret); }
+}
+
+
+/* Annotation Types. */
+
+AnnotationDeclaration AnnotationTypeDeclaration(Modifier modifier):
+{
+ String name;
+ List members;
+ int line = modifier.beginLine;
+ int column = modifier.beginColumn;
+}
+{
+ "@" { if (line == -1) {line=token.beginLine; column=token.beginColumn;} }
+ "interface" <IDENTIFIER> { name = token.image; } members = AnnotationTypeBody()
+
+ { return new AnnotationDeclaration(line, column, token.endLine, token.endColumn,popJavadoc(), modifier.modifiers, modifier.annotations, name, members); }
+}
+
+List AnnotationTypeBody():
+{
+ List ret = null;
+ BodyDeclaration member;
+}
+{
+ "{" ( member = AnnotationBodyDeclaration() { ret = add(ret, member); } )* "}"
+
+ { return ret; }
+}
+
+BodyDeclaration AnnotationBodyDeclaration():
+{
+ Modifier modifier;
+ BodyDeclaration ret;
+}
+{
+ { pushJavadoc(); }
+ (
+ ";" { ret = new EmptyTypeDeclaration(token.beginLine, token.beginColumn, token.endLine, token.endColumn, popJavadoc()); }
+ |
+ modifier = Modifiers()
+ (
+ LOOKAHEAD(Type() <IDENTIFIER> "(")
+ ret = AnnotationTypeMemberDeclaration(modifier)
+ |
+ ret = ClassOrInterfaceDeclaration(modifier)
+ |
+ ret = EnumDeclaration(modifier)
+ |
+ ret = AnnotationTypeDeclaration(modifier)
+ |
+ ret = FieldDeclaration(modifier)
+ )
+ )
+ { return ret; }
+}
+
+AnnotationMemberDeclaration AnnotationTypeMemberDeclaration(Modifier modifier):
+{
+ Type type;
+ String name;
+ Expression defaultVal = null;
+}
+{
+ type = Type() <IDENTIFIER> { name = token.image; } "(" ")" [ defaultVal = DefaultValue() ] ";"
+
+ {
+ int line = modifier.beginLine;
+ int column = modifier.beginColumn;
+ { if (line == -1) {line=type.getBeginLine(); column=type.getBeginColumn();} }
+ return new AnnotationMemberDeclaration(line, column, token.endLine, token.endColumn, popJavadoc(), modifier.modifiers, modifier.annotations, type, name, defaultVal);
+ }
+}
+
+Expression DefaultValue():
+{
+ Expression ret;
+}
+{
+ "default" ret = MemberValue()
+ { return ret; }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/ClassifierCatalog.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/ClassifierCatalog.java
new file mode 100644
index 00000000000..f7777787f1e
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/ClassifierCatalog.java
@@ -0,0 +1,393 @@
+/**
+ *
+ */
+package javagen.umlparser;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Package;
+
+/**
+ * Instance of this class allows to lookup for a Classifier.
+ * Lookup is done in the provided paths.
+ * Classifier or Package are not created. An error is thrown when not found.
+ *
+ * @author dumoulin
+ *
+ * @TODO rename to ClasspathCatalog
+ */
+public class ClassifierCatalog {
+
+ public static final String WILDCARD = "*";
+
+ /** Model containing the paths */
+ protected Resource model;
+
+ /** model Package used as root of all searchpaths */
+ private Package modelRootPackage;
+
+ /** The package containing the current compilation unit. First package searched */
+ private Package currentCompilationUnitPackage;
+
+ /**
+ * List of packages from where the lookup is done.
+ */
+ protected List<SearchPackage> paths = new ArrayList<SearchPackage>();;
+
+ /**
+ * Constructor.
+ */
+ public ClassifierCatalog(Resource model) {
+ this.model = model;
+ paths.add(new ResourceSearchPackage());
+ }
+
+ /**
+ * Constructor.
+ * Not used anymore
+ *
+ * @param model
+ * The Resource containing the packages
+ */
+ public ClassifierCatalog(Resource model, List<String> packageNames) {
+ this.model = model;
+ for (String name : packageNames) {
+ if ("/".equals(name)) {
+ paths.add(new ResourceSearchPackage());
+ } else {
+ List<String> qualifiedName = dirToQualifiedName(name);
+ // Get corresponding package if any
+ paths.add(new ResourceRelativeSearchPackage(qualifiedName));
+ }
+
+ }
+ }
+
+ /**
+ * Constructor.
+ * search paths are relative to the specified package.
+ *
+ * @param modelRootPackage
+ * The model Package used as root.
+ */
+ public ClassifierCatalog(Package modelRootPackage, List<String> packageNames) {
+ this.modelRootPackage = modelRootPackage;
+ for (String name : packageNames) {
+ if ("/".equals(name)) {
+ paths.add(new ResourceSearchPackage());
+ } else {
+ List<String> qualifiedName = dirToQualifiedName(name);
+ if (name.contains(WILDCARD)) {
+ // Use search path with wildcard
+ paths.add(new RelativeSearchPackageWithWildcard(qualifiedName));
+ }
+ else {
+ // Get corresponding package if any
+ paths.add(new RelativeSearchPackage(qualifiedName));
+ }
+
+
+ }
+
+ }
+ }
+
+ /**
+ * @param currentCompilationUnitPackage
+ * the currentCompilationUnitPackage to set
+ */
+ public void setCurrentCompilationUnitPackage(Package currentCompilationUnitPackage) {
+ this.currentCompilationUnitPackage = currentCompilationUnitPackage;
+ }
+
+ /**
+ * Get the qualified name from a directory like name.
+ * Name is splitted arround '/'
+ *
+ * @param name
+ * @return
+ */
+ private List<String> dirToQualifiedName(String qname) {
+ String[] splittedName = qname.split("/");
+ return Arrays.asList(splittedName);
+ }
+
+
+ /**
+ * Get the classifier by its qname.
+ *
+ * @param qualifiedName
+ * @return
+ */
+ public Classifier getClassifier(String qualifiedName) {
+ List<String> qname = UmlUtils.toQualifiedName(qualifiedName);
+ return getClassifier(qname);
+ }
+
+ /**
+ * Get the classifier by its qualified name.
+ *
+ * @param qualifiedName
+ * @return
+ */
+ public Classifier getClassifier(List<String> qualifiedName) {
+ return lookupNamedElement(qualifiedName, null);
+ // for( Package path : paths)
+ // {
+ // NamedElement res = getNamedElement(path, qualifiedName);
+ // if(res != null )
+ // return (Classifier)res;
+ // }
+ //
+ // return null;
+ }
+
+ /**
+ * Look for the specified element in each of the path of the model.
+ * Return the first corresponding element found in paths.
+ *
+ * @param qualifiedName
+ * Expected name.
+ * @param type
+ * Expected type or null.
+ * @return
+ */
+ private Classifier lookupNamedElement(List<String> qualifiedName, EClass type) {
+
+ // search on current CU
+ if (currentCompilationUnitPackage != null) {
+ Classifier res = UmlUtils.lookupClassifier(currentCompilationUnitPackage, qualifiedName, type);
+ if (res != null) {
+ return res;
+ }
+ }
+
+ // loop on searchpaths
+ for (SearchPackage path : paths) {
+ Classifier res = path.getUmlClassifier(qualifiedName, type);
+ if (res != null) {
+ return res;
+ }
+ }
+
+ return null;
+ }
+
+
+ /**
+ * Class corresponding to one searchpath.
+ *
+ * @author dumoulin
+ *
+ */
+ abstract private class SearchPackage {
+
+ /**
+ * Cached value. Can be null.
+ */
+ protected Package umlPackage;
+
+ /**
+ * Search path
+ */
+ protected List<String> packageQualifiedName;
+
+ /**
+ * @param qualifiedName
+ */
+ public SearchPackage(List<String> qualifiedName) {
+ super();
+ this.packageQualifiedName = qualifiedName;
+ }
+
+ abstract public Classifier getUmlClassifier(List<String> qualifiedName, EClass expectedType);
+ }
+
+ /**
+ * This class allows to search for uml element in specified packages relative to the Resource.
+ *
+ * @author dumoulin
+ *
+ */
+ private class ResourceRelativeSearchPackage extends SearchPackage {
+
+ public ResourceRelativeSearchPackage(List<String> qualifiedName) {
+ super(qualifiedName);
+ }
+
+ /**
+ * Get the uml package corresponding to the path.
+ *
+ * @return
+ */
+ private Package getPathPackage() {
+
+ // Check if in cache
+ if (umlPackage != null) {
+ return umlPackage;
+ }
+
+ // No, Try to find package using the resource
+ umlPackage = UmlUtils.lookupPackage(model, packageQualifiedName);
+ return umlPackage;
+ }
+
+ /**
+ * lookup for the classifier in this searchpath.
+ */
+ @Override
+ public Classifier getUmlClassifier(List<String> qualifiedName, EClass expectedType) {
+ Package p = getPathPackage();
+ if (p == null) {
+ return null;
+ }
+
+ return UmlUtils.lookupClassifier(p, qualifiedName, expectedType);
+ }
+ }
+
+ /**
+ * This class allows to search for uml element in packages relative to the modelRootPackage.
+ *
+ * @author dumoulin
+ *
+ */
+ private class RelativeSearchPackage extends SearchPackage {
+
+ public RelativeSearchPackage(List<String> qualifiedName) {
+ super(qualifiedName);
+ }
+
+ /**
+ * Get the uml package corresponding to the path.
+ * Search from the modelRootPackage.
+ *
+ * @return
+ */
+ private Package getPathPackage() {
+ // Check if in cache
+ if (umlPackage != null) {
+ return umlPackage;
+ }
+
+ // No, Try to find package using the root package
+ umlPackage = UmlUtils.lookupPackage(modelRootPackage, packageQualifiedName);
+ return umlPackage;
+ }
+
+ /**
+ * lookup for the classifier in this searchpath.
+ */
+ @Override
+ public Classifier getUmlClassifier(List<String> qualifiedName, EClass expectedType) {
+ Package p = getPathPackage();
+ if (p == null) {
+ return null;
+ }
+
+ return UmlUtils.lookupClassifier(p, qualifiedName, expectedType);
+ }
+
+ }
+
+ /**
+ * This class allows to search for uml element in packages relative to the modelRootPackage.
+ *
+ * @author dumoulin
+ *
+ */
+ private class RelativeSearchPackageWithWildcard extends SearchPackage {
+
+ /**
+ *
+ * Constructor.
+ *
+ * @param searchpath
+ * Search path, with a wildcard.
+ */
+ public RelativeSearchPackageWithWildcard(List<String> searchpath) {
+ super(searchpath);
+ }
+
+ /**
+ * Lookup the uml package corresponding to the path with WILDCARD.
+ * Search from the modelRootPackage.
+ *
+ * @return
+ */
+ private List<Package> lookupExistingPackages() {
+
+
+ // Lookup the package containing the wildcard, and put it in cache
+ if (umlPackage == null) {
+ umlPackage = UmlUtils.lookupPackageBeforeWildcard(modelRootPackage, packageQualifiedName);
+ }
+
+ if (umlPackage == null) {
+ return Collections.emptyList();
+ }
+
+ // No, Try to find package using the root package
+ // Look for existing packages at the place of the wildcard.
+ List<Package> existingPackages = umlPackage.getNestedPackages();
+
+ return existingPackages;
+ }
+
+ /**
+ * lookup for the classifier in this searchpath.
+ */
+ @Override
+ public Classifier getUmlClassifier(List<String> qualifiedName, EClass expectedType) {
+
+ // Iterate on possible searchpaths
+ int wildcardIndex = packageQualifiedName.indexOf(WILDCARD);
+ // Get existing packages for the path, untill the wildcard
+ List<Package> existingPackages = lookupExistingPackages();
+
+ // Get the remaining path from ]index, size]
+ List<String> remainingPath = qualifiedName.subList(wildcardIndex + 1, qualifiedName.size());
+ // Now do searching from the existing packages
+ for (Package nestedPackage : existingPackages) {
+
+ Classifier res = UmlUtils.lookupClassifier(nestedPackage, qualifiedName, expectedType);
+ if (res != null) {
+ return res;
+ }
+ }
+
+ // Not found
+ return null;
+ }
+
+ }
+
+ /**
+ * This class allows to search for uml element in the resource.
+ *
+ * @author dumoulin
+ *
+ */
+ private class ResourceSearchPackage extends SearchPackage {
+
+ public ResourceSearchPackage() {
+ super(null);
+ // TODO Auto-generated constructor stub
+ }
+
+ /**
+ * lookup for the classifier in this searchpath.
+ */
+ @Override
+ public Classifier getUmlClassifier(List<String> qualifiedName, EClass expectedType) {
+ return UmlUtils.lookupClassifier(model, qualifiedName, expectedType);
+ }
+
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/CompilationUnitAnalyser.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/CompilationUnitAnalyser.java
new file mode 100644
index 00000000000..78a09f7764e
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/CompilationUnitAnalyser.java
@@ -0,0 +1,1245 @@
+/**
+ *
+ */
+package javagen.umlparser;
+
+import japa.parser.ast.CompilationUnit;
+import japa.parser.ast.ImportDeclaration;
+import japa.parser.ast.Node;
+import japa.parser.ast.PackageDeclaration;
+import japa.parser.ast.body.BodyDeclaration;
+import japa.parser.ast.body.ClassOrInterfaceDeclaration;
+import japa.parser.ast.body.FieldDeclaration;
+import japa.parser.ast.body.JavadocComment;
+import japa.parser.ast.body.MethodDeclaration;
+import japa.parser.ast.body.ModifierSet;
+import japa.parser.ast.body.Parameter;
+import japa.parser.ast.body.TypeDeclaration;
+import japa.parser.ast.body.VariableDeclarator;
+import japa.parser.ast.expr.AnnotationExpr;
+import japa.parser.ast.expr.NameExpr;
+import japa.parser.ast.expr.QualifiedNameExpr;
+import japa.parser.ast.type.ClassOrInterfaceType;
+import japa.parser.ast.type.PrimitiveType;
+import japa.parser.ast.type.ReferenceType;
+import japa.parser.ast.type.VoidType;
+import japa.parser.ast.type.WildcardType;
+import japa.parser.ast.visitor.VoidVisitorAdapter;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import javagen.umlparser.TypeAnalyserAndTranslator.TranslatedTypeData;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.uml2.uml.BehavioredClassifier;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Comment;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Feature;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Namespace;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.ParameterDirectionKind;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.VisibilityKind;
+
+/**
+ * A visitor filling the provided UML model
+ *
+ * @author dumoulin
+ *
+ */
+public class CompilationUnitAnalyser {
+
+
+ public static String DEFAULT_GENERATION_PACKAGE_NAME = "generated";
+
+ public static String DEFAULT_ROOT_PACKAGE_NAME = "model";
+
+ private List<String> generationPackageQualifiedName;
+
+ /**
+ * Root package of the generation. All generated elements will be added to this package, or one of
+ * its subpackages
+ */
+ private org.eclipse.uml2.uml.Package defaultGenerationPackage;
+
+ /**
+ * Catalog used to get the package needed for a creation.
+ */
+ private CreationPackageCatalog creationPackageCatalog;
+
+ /**
+ * Catalog used to lookup for a classifier. The catalog specifies a collection of models
+ * containing the java packages
+ */
+ private ClassifierCatalog classifierCatalog;
+
+ /**
+ * Catalog used to store the imports and to lookup for the qualified name of an element.
+ */
+ private ImportedTypeCatalog importedTypes;
+
+ /**
+ * The Package containing the current compilation unit.
+ * Initialized at the beginning of exploreCompilationUnit()
+ */
+ private Package currentCompilationUnitPackage;
+
+ /**
+ * Enclosing namespaces of the currently processed class.
+ * The first element is always the current package.
+ */
+ private List<Namespace> enclosingNamespaces = new ArrayList<Namespace>();
+
+ /**
+ * Visitor used to parse qualified names.
+ */
+ private QualifiedNameParser qualifiedNameParser = new QualifiedNameParser();
+
+ private TypeAnalyserAndTranslator typeAnalyser;
+
+ /** Model where all element are created */
+
+ /**
+ * Constructor.
+ */
+ public CompilationUnitAnalyser(Resource model) {
+
+ this(model, DEFAULT_ROOT_PACKAGE_NAME, DEFAULT_GENERATION_PACKAGE_NAME, null);
+ }
+
+ /**
+ *
+ * Constructor.
+ */
+ public CompilationUnitAnalyser(Resource model, String generatePackageName, List<String> searchPaths) {
+
+ this(model, DEFAULT_ROOT_PACKAGE_NAME, generatePackageName, searchPaths);
+ }
+
+ /**
+ *
+ * Constructor.
+ */
+ public CompilationUnitAnalyser(Resource model, String modelRootPackageName, String generatePackageName, List<String> searchPaths) {
+
+ Package modelRootPackage = UmlUtils.getPackage(model, dirToQualifiedName(modelRootPackageName));
+ initCompilationUnitAnalyser(modelRootPackage, generatePackageName, searchPaths);
+ }
+
+ /**
+ *
+ * Constructor.
+ * All provided paths and searchpaths are relative to the specified modelRootPackage.
+ */
+ public CompilationUnitAnalyser(Package modelRootPackage, String generatePackageName, List<String> searchPaths) {
+
+ // this.model = model;
+
+ initCompilationUnitAnalyser(modelRootPackage, generatePackageName, searchPaths);
+ }
+
+ /**
+ * Initialize the class. Called by constructors.
+ *
+ * @param modelRootPackage
+ * @param generatePackageName
+ * @param searchPaths
+ */
+ private void initCompilationUnitAnalyser(Package modelRootPackage, String generatePackageName, List<String> searchPaths) {
+ if (generatePackageName == null) {
+ generatePackageName = DEFAULT_GENERATION_PACKAGE_NAME;
+ }
+
+ this.generationPackageQualifiedName = dirToQualifiedName(generatePackageName);
+
+
+ // Copy searchpath in order to be able to change it.
+ if (searchPaths != null) {
+ searchPaths = new ArrayList<String>(searchPaths);
+ } else {
+ searchPaths = new ArrayList<String>();
+ }
+
+ // Add generation package in search paths
+ if (!searchPaths.contains(generatePackageName)) {
+ searchPaths.add(generatePackageName);
+ }
+
+ System.out.println(this.getClass().getSimpleName() + ".CT(" + generationPackageQualifiedName + ", sarchpaths=" + searchPaths + ")");
+
+
+ createDefaultGenerationPackage(modelRootPackage);
+
+ classifierCatalog = new ClassifierCatalog(modelRootPackage, searchPaths);
+ importedTypes = new ImportedTypeCatalog();
+ creationPackageCatalog = new CreationPackageCatalog(modelRootPackage, defaultGenerationPackage, null);
+
+ typeAnalyser = new TypeAnalyserAndTranslator(importedTypes);
+ }
+
+
+
+ /**
+ * Get the qualified name from a directory like name.
+ * Name is splitted arround '/'
+ *
+ * @param name
+ * @return
+ */
+ private List<String> dirToQualifiedName(String qname) {
+ String[] splittedName = qname.split("/");
+ return Arrays.asList(splittedName);
+ }
+
+ /**
+ * Create the root element in which all element will be created.
+ */
+ private void createDefaultGenerationPackage(Resource model) {
+
+ Package p = UmlUtils.getPackage(model, generationPackageQualifiedName);
+ defaultGenerationPackage = p;
+ }
+
+ /**
+ * Create the root element in which all element will be created.
+ */
+ private void createDefaultGenerationPackage(Package rootModelElement) {
+
+ // Package p = UmlUtils.getPackage(rootModelElement, generationPackageQualifiedName);
+ Package p = UmlUtils.getModel(rootModelElement, generationPackageQualifiedName);
+ defaultGenerationPackage = p;
+ }
+
+ /**
+ * Explore the CU and create the declared types
+ *
+ * @param cu
+ */
+ public void processCompilationUnit(CompilationUnit cu) {
+
+ // First, find the parent Package
+ currentCompilationUnitPackage = getCuPackage(cu.getPakage());
+ ;
+ classifierCatalog.setCurrentCompilationUnitPackage(currentCompilationUnitPackage);
+
+ // Add imports
+ importedTypes.clear();
+ if (cu.getImports() != null) {
+ addImports(importedTypes, cu.getImports());
+ }
+
+ // Now, explore each type declared type in the cu
+ if (cu.getTypes() != null) {
+ // for (Iterator<TypeDeclaration> i = cu.getTypes().iterator();
+ // i.hasNext();)
+ // Process all types
+ for (TypeDeclaration typeDecl : cu.getTypes()) {
+ // Build the enclosing namespaces. Add the package as parent
+ enclosingNamespaces.add(currentCompilationUnitPackage);
+ processTypedeclaration(enclosingNamespaces, typeDecl);
+ // Reset the list of enclosing parents, in case of errors
+ enclosingNamespaces.clear();
+ } // end loop
+ } // end if
+
+ }
+
+ /**
+ * Process Typedeclaration 2 Classifier.
+ * Process common parts : modifiers, members, ...
+ *
+ * @param enclosingParents
+ * The package, followed by nested classes if any.
+ * @param typeDecl
+ */
+ private void processTypedeclaration(final List<Namespace> enclosingParents, TypeDeclaration typeDecl) {
+ Classifier classifier;
+
+ // Process right type
+ // Create the corresponding type.
+ classifier = new GenericSwitchVisitor<Classifier, List<Namespace>>() {
+
+ @Override
+ public Classifier visit(ClassOrInterfaceDeclaration n, List<Namespace> enclosingParents) {
+ return processClassOrInterfaceDeclaration(n, enclosingParents);
+ }
+
+ // TODO Other kind of types
+ }.doSwitch(typeDecl, enclosingParents);
+
+ // Set Visibility
+ createModifiers(classifier, typeDecl.getModifiers());
+
+ // Template parameters
+ // TODO
+
+ // Explore members
+ if (typeDecl.getMembers() != null) {
+ for (BodyDeclaration member : typeDecl.getMembers()) {
+ new SwitchVisitor<Type>() {
+
+ @Override
+ public void visit(FieldDeclaration n, Type classifier) {
+ createAttributes(n, classifier);
+ }
+
+ @Override
+ public void visit(MethodDeclaration n, Type classifier) {
+ processMethod(n, (Classifier) classifier);
+ }
+
+ /**
+ * Inner classes ?
+ *
+ * @param n
+ * @param arg
+ */
+ @Override
+ public void visit(ClassOrInterfaceDeclaration n, Type classifier) {
+ System.out.println("Found nested class (ClassOrInterface)'" + n.getName() + "'");
+
+ // Process nested classifier, and create it in its nested namespace
+ // So, increase the enclosing parents.
+ enclosingParents.add((Classifier) classifier);
+ processTypedeclaration(enclosingParents, n);
+ enclosingParents.remove(classifier);
+ // processClassOrInterfaceDeclaration(n, parent)
+ super.visit(n, classifier);
+ }
+ // TODO Other kind of members
+ }.doSwitch(member, classifier);
+ }
+
+ }
+ }
+
+ /**
+ * Add all the imports to the manager.
+ *
+ * @param importedTypes2
+ * @param imports
+ */
+ private void addImports(ImportedTypeCatalog importedTypes, List<ImportDeclaration> imports) {
+
+
+ for (ImportDeclaration decl : imports) {
+ List<String> qualifiedName = qualifiedNameParser.getImportQualifiedName(decl);
+ if (decl.isAsterisk()) {
+ qualifiedName.add("*");
+ }
+ importedTypes.addImport(qualifiedName);
+ }
+
+ }
+
+ /**
+ * Get (lookup or create) the specified classifier.
+ * Translate the qualifiedName according to imports, and lookup in classifierCatalog .
+ * If nothing is found and provided name is not qualified, create/get in parent, otherwise create/get in root
+ * using the qualified name.
+ *
+ * @param qualifiedName
+ * @param isInterface
+ * What should be created if nothing is found ? An interface or a Class ?
+ * @return
+ */
+ private Classifier getUmlClassifier(List<String> qualifiedName, boolean isInterface) {
+ // Get the corresponding type
+ // TODO specify requested type
+ // Lookup if it exist in the catalog (under one of the specified path)
+ Classifier foundClass = classifierCatalog.getClassifier(qualifiedName);
+
+ // If nothing found, create it
+ if (foundClass == null) {// Not yet created.
+ EClass expectedType;
+ if (isInterface) {
+ expectedType = UMLPackage.eINSTANCE.getInterface();
+ } else {
+ expectedType = UMLPackage.eINSTANCE.getClass_();
+ }
+
+ // Check where to create
+ if (importedTypes.isImportedType(qualifiedName)) {
+ // This is an imported type, create it in its dedicated model
+ // First get the package where to create it, according to its name
+ Package creationPackage = creationPackageCatalog.getCreationPackage(qualifiedName);
+ // Now, create it.
+ foundClass = UmlUtils.getClassifier(creationPackage, qualifiedName, expectedType);
+ } else {
+ // The qualified name is relative to one of the enclosing namespace.
+ // Check if it exist, or create it.
+ foundClass = UmlUtils.getGuessedClassifier(enclosingNamespaces, qualifiedName, expectedType);
+ }
+
+
+
+ // if(qualifiedName.size() == 1 && currentCompilationUnitPackage != null) {
+ // // No scope in qname, create it in current namespace.
+ // // TODO use current namespace instead of current package.
+ //
+ // // TODO change to create (avoid second lookup)
+ // // foundClass = UmlUtils.getClassifier(currentCompilationUnitPackage, qualifiedName, expectedType);
+ // foundClass = UmlUtils.getGuessedClassifier(enclosingNamespaces, qualifiedName.get(0), expectedType);
+ // } else {
+ // //create with specified qname
+ // // First get the package where to create it, according to its name
+ // Package creationPackage = creationPackageCatalog.getCreationPackage(qualifiedName);
+ // // Now, create it.
+ // foundClass = UmlUtils.getClassifier(creationPackage, qualifiedName, expectedType);
+ // }
+ }
+ return foundClass;
+ }
+
+ /**
+ * Get the type qualified name from its ast description
+ *
+ * @param astType
+ * @return
+ */
+ private List<String> getQualifiedName(ClassOrInterfaceType astType) {
+ QualifiedNameParser visitor = new QualifiedNameParser();
+
+ List<String> res = visitor.getClassOrInterfaceQualifiedName(astType);
+ return res;
+ }
+
+ /**
+ * Create all attributes and add it to the parent.
+ *
+ * @param n
+ * @param parent
+ */
+ protected void createAttributes(FieldDeclaration n, Type parent) {
+
+ System.out.println("getAttributeType( from:" + n.getType().getClass().getName() + ")");
+
+ // Get data about the type
+ // Get the qualified name, and other info on type
+ TranslatedTypeData typeData = processType(n.getType());
+ // Get the uml element from the qualified name
+ Type umlType = getUmlType(typeData);
+
+ // walk on variable declarations.
+ for (VariableDeclarator var : n.getVariables()) {
+ if (parent instanceof Classifier) {
+ createAttribute(n, var, (Classifier) parent, umlType, typeData);
+ }
+ }
+ }
+
+ /**
+ * Get the qualified name, and other info on type.
+ * Lookup in imports to resolve names.
+ *
+ * @param n
+ * @return
+ */
+ private TranslatedTypeData processType(japa.parser.ast.type.Type astType) {
+ TranslatedTypeData data = typeAnalyser.getTranslatedTypeData(astType);
+
+ return data;
+ }
+
+ /**
+ * Get the uml type from the translated type.
+ *
+ * @param data
+ * @return
+ */
+ private Type getUmlType(TranslatedTypeData data) {
+ // Get the uml type
+ Type umlType = null;
+ if (data.isPrimitive) {
+ umlType = classifierCatalog.getClassifier(data.qualifiedName);
+ if (umlType == null) {
+ Package creationPackage = creationPackageCatalog.getCreationPackage(data.qualifiedName);
+ umlType = UmlUtils.getPrimitive(creationPackage, data.qualifiedName);
+ }
+ } else if (data.isVoid || data.isWildcard) {
+ return null;
+ } else {
+ // Look for existing classifier of any type.
+ // Take the first letter of the name as an hint. IXxxx
+ List<String> qualifiedName = data.getTranslatedQualifiedName();
+ boolean isInterface = false;
+ String shortName = qualifiedName.get(qualifiedName.size() - 1);
+
+ // Try to guess if it is an interface.
+ if (shortName.length() > 2 && shortName.startsWith("I") && Character.isUpperCase(shortName.charAt(1))) {
+ isInterface = true;
+ }
+
+ // Get or create type.
+ umlType = getUmlClassifier(qualifiedName, isInterface);
+ }
+ return umlType;
+ }
+
+ /**
+ * Get the Type from an ast.Type node.
+ *
+ * @param astType
+ * @return
+ */
+ protected TypeData getAttributeType(japa.parser.ast.type.Type astType) {
+
+ TypeData res = new TypeData();
+
+ new SwitchVisitor<TypeData>() {
+
+ /**
+ * Get type from a class.
+ */
+ @Override
+ public void visit(ClassOrInterfaceType n, TypeData data) {
+ List<String> qnameBefore = getQualifiedName(n);
+ List<String> qname = importedTypes.getQualifiedName(qnameBefore);
+
+ data.qualifiedName = qname;
+ // Check for generic parameters
+ if (n.getTypeArgs() != null) {
+ data.genericData = new ArrayList<TypeData>();
+ for (japa.parser.ast.type.Type arg : n.getTypeArgs()) {
+ TypeData argData = new TypeData();
+ arg.accept(this, argData);
+ data.genericData.add(argData);
+ }
+ }
+ }
+
+ @Override
+ public void visit(ReferenceType n, TypeData data) {
+ // skip the reference node and process the child.
+ // Should not appear in an type use (in Attribute or method)
+ data.arrayCount = n.getArrayCount();
+ n.getType().accept(this, data);
+ }
+
+ @Override
+ public void visit(PrimitiveType n, TypeData data) {
+ String qnameBefore = getPrimitiveName(n);
+ List<String> qname = importedTypes.getQualifiedName(qnameBefore);
+
+ data.qualifiedName = qname;
+ data.isPrimitive = true;
+ }
+
+ @Override
+ public void visit(WildcardType n, TypeData data) {
+ data.isWildcard = true;
+ if (n.getExtends() != null) {
+ data.extends_ = new TypeData();
+ n.getExtends().accept(this, data.extends_);
+ }
+ if (n.getSuper() != null) {
+ data.super_ = new TypeData();
+ n.getSuper().accept(this, data.super_);
+ }
+
+ }
+
+ @Override
+ public void visit(VoidType n, TypeData data) {
+ // TODO Auto-generated method stub
+ data.isVoid = true;
+ }
+
+ }.doSwitch(astType, res);
+
+ return res;
+ }
+
+ /**
+ * Data structure to return data about a Declared type.
+ *
+ * @author dumoulin
+ *
+ */
+ protected class TypeData {
+
+ List<String> qualifiedName;
+
+ /** template parameters */
+ protected List<TypeData> genericData;
+
+ boolean isInterface = false;
+
+ /** PrimitiveType */
+ boolean isPrimitive = false;
+
+ /** ReferenceType */
+ protected int arrayCount;
+
+ /** For Wildcard */
+ protected boolean isWildcard = false;
+
+ protected TypeData extends_;
+
+ protected TypeData super_;
+
+ /** VoidType */
+ protected boolean isVoid = false;
+ }
+
+ /**
+ * Create the uml2.primitivetype denoted by the specified PrimitiveType
+ *
+ * @param n
+ * @return
+ */
+ protected String getPrimitiveName(PrimitiveType n) {
+ String typeName = null;
+
+ switch (n.getType()) {
+ case Boolean:
+ typeName = "Boolean";
+ break;
+ case Byte:
+ typeName = "Byte";
+ break;
+ case Char:
+ typeName = "Char";
+ break;
+ case Double:
+ typeName = "Double";
+ break;
+ case Float:
+ typeName = "Float";
+ break;
+ case Int:
+ typeName = "Integer";
+ break;
+ case Long:
+ typeName = "Long";
+ break;
+ case Short:
+ typeName = "Short";
+ break;
+ }
+
+ return typeName;
+ }
+
+ /**
+ * Create an attribute and add it to the parent.
+ *
+ * @param n
+ * node declaring type and modifiers
+ * @param var
+ * @param parent
+ * @param type
+ */
+ protected void createAttribute(FieldDeclaration n, VariableDeclarator var, Classifier parent, Type type, TranslatedTypeData typeData) {
+
+ // get with no type, and then update type.
+ Property property = UmlUtils.createProperty(parent, null, var.getId().getName(), var.getId().getArrayCount());
+ property.setType(type);
+ processJavadoc(n.getJavaDoc(), property);
+ processModifiers(n.getModifiers(), property);
+ if (typeData.isCollection()) {
+ property.setLower(typeData.getTranslatedLower());
+ property.setUpper(typeData.getTranslatedUpper());
+ }
+ }
+
+ /**
+ * Process modifiers for Operation
+ *
+ * @param modifiers
+ * @param property
+ */
+ private void processModifiers(int modifiers, Operation property) {
+ if (ModifierSet.isAbstract(modifiers)) {
+ property.setIsAbstract(true);
+ }
+ processModifiers(modifiers, (Feature) property);
+ }
+
+ /**
+ * Process modifiers
+ *
+ * @param modifiers
+ * @param property
+ */
+ private void processModifiers(int modifiers, Feature property) {
+ // TODO Auto-generated method stub
+ if (ModifierSet.isPrivate(modifiers)) {
+ property.setVisibility(VisibilityKind.PRIVATE_LITERAL);
+ }
+ if (ModifierSet.isProtected(modifiers)) {
+ property.setVisibility(VisibilityKind.PROTECTED_LITERAL);
+ }
+ if (ModifierSet.isPublic(modifiers)) {
+ property.setVisibility(VisibilityKind.PUBLIC_LITERAL);
+ }
+ if (ModifierSet.isStatic(modifiers)) {
+ property.setIsStatic(true);
+ }
+ if (ModifierSet.isFinal(modifiers)) {
+ property.setIsLeaf(true);
+ }
+ // if (ModifierSet.isNative(modifiers)) {
+ // printer.print("native ");
+ // }
+ // if (ModifierSet.isStrictfp(modifiers)) {
+ // printer.print("strictfp ");
+ // }
+ // if (ModifierSet.isSynchronized(modifiers)) {
+ // printer.print("synchronized ");
+ // }
+ // if (ModifierSet.isTransient(modifiers)) {
+ // property.set(true);
+ // }
+ // if (ModifierSet.isVolatile(modifiers)) {
+ // printer.print("volatile ");
+ // }
+ }
+
+ /**
+ * Process modifiers
+ *
+ * @param modifiers
+ * @param property
+ */
+ private void processModifiers(int modifiers, org.eclipse.uml2.uml.Parameter property) {
+ // TODO Auto-generated method stub
+ if (ModifierSet.isPrivate(modifiers)) {
+ property.setVisibility(VisibilityKind.PRIVATE_LITERAL);
+ }
+ if (ModifierSet.isProtected(modifiers)) {
+ property.setVisibility(VisibilityKind.PROTECTED_LITERAL);
+ }
+ if (ModifierSet.isPublic(modifiers)) {
+ property.setVisibility(VisibilityKind.PUBLIC_LITERAL);
+ }
+ if (ModifierSet.isFinal(modifiers)) {
+ property.setDirection(ParameterDirectionKind.IN_LITERAL);
+ }
+ }
+
+ private class MethodParameterData {
+
+ TranslatedTypeData dataType;
+
+ Type umlType;
+
+ Parameter astParameter;
+ }
+
+ /**
+ * Process method to be added to the provided classifier.
+ *
+ * @param n
+ * @param classifier
+ */
+ protected void processMethod(MethodDeclaration n, Classifier classifier) {
+
+ // Get parameters to have a signature
+ // Parameters
+ List<Type> signature = new ArrayList<Type>();
+
+ if (n.getParameters() != null) {
+ List<MethodParameterData> paramDatas = new ArrayList<MethodParameterData>();
+
+ for (Parameter param : n.getParameters()) {
+ MethodParameterData data = new MethodParameterData();
+ data.dataType = processType(param.getType());
+ data.umlType = getUmlType(data.dataType);
+ data.astParameter = param;
+ paramDatas.add(data);
+ signature.add(data.umlType);
+ }
+ }
+
+ // Operation method = UmlUtils.getOperation(classifier, n.getName());
+ Operation method = getUmlOperation(classifier, n.getName(), signature);
+
+ processJavadoc(n.getJavaDoc(), method);
+ processAnnotation(n.getAnnotations(), method);
+ processModifiers(n.getModifiers(), method);
+ TranslatedTypeData typeData = processType(n.getType());
+ Type methodType = getUmlType(typeData);
+
+ if (methodType != null) {
+ method.setType(methodType);
+ if (typeData.isCollection()) {
+ method.setLower(typeData.getTranslatedLower());
+ method.setUpper(typeData.getTranslatedUpper());
+ }
+ }
+
+ // Parameters
+ if (n.getParameters() != null) {
+ for (Parameter param : n.getParameters()) {
+ processMethodParameter(param, method);
+ }
+ }
+ }
+
+ /**
+ * Get an operation by its signature
+ *
+ * @param classifier
+ * @param name
+ * @param signature
+ * @return
+ */
+ private Operation getUmlOperation(Classifier classifier, String name, List<Type> signature) {
+ List<Operation> list = classifier.getOperations();
+
+ // walk all operations with the same name.
+ // Check signature matching
+ for (Operation oper : list) {
+
+ if (isSameOperation(oper, name, signature)) {
+ return oper;
+ }
+ }
+ // Not found, create a new one (without signature)
+ return UmlUtils.createOperation(classifier, name);
+ }
+
+ /**
+ * @param oper
+ * @param name
+ * @param signature
+ */
+ private boolean isSameOperation(Operation oper, String name, List<Type> signature) {
+
+ // check name
+ if (!name.equals(oper.getName())) {
+ return false;
+ }
+
+ // Check parameters
+ List<org.eclipse.uml2.uml.Parameter> umlParams = oper.getOwnedParameters();
+ // Check signature
+ if (signature == null) {
+ return true;
+ } else if (umlParams == null) {
+ if (signature.size() == 0) {
+ return true;
+ } else {
+ return false;
+ }
+ } else if ( /* signature!= null && */umlParams != null) {
+ int umlParamIndex = 0;
+ for (Type signatureType : signature) {
+ try {
+ // Compare type
+ org.eclipse.uml2.uml.Parameter param = umlParams.get(umlParamIndex++);
+ // skip return parameter
+ while (param.getDirection() == ParameterDirectionKind.RETURN_LITERAL) {
+ param = umlParams.get(umlParamIndex++);
+ }
+
+ // Check types, skip if existing type is null
+ Type existingType = param.getType();
+ if (existingType != null && !(existingType.getName().equals(signatureType.getName()))) {
+ // umlParamIndex > umlParams.getSize()
+ return false;
+ }
+ } catch (IndexOutOfBoundsException e) {
+
+ return false;
+ }
+ }
+ // Check if there still some type in umlParams
+ // if index is the last one: ok
+ // otherwise, check if remaining arguments are only returns.
+ while (umlParamIndex < umlParams.size()) {
+ if (umlParams.get(umlParamIndex++).getDirection() != ParameterDirectionKind.RETURN_LITERAL) {
+ return false;
+ }
+ }
+ // same
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Process a parameter.
+ *
+ * @param param
+ * @param method
+ */
+ private void processMethodParameter(Parameter param, Operation method) {
+
+ TranslatedTypeData typeData = processType(param.getType());
+ Type type = getUmlType(typeData);
+
+ System.out.println("getOwnedParameter(" + method.getName() + "= " + param.getId().getName() + ", " + type + " )");
+ org.eclipse.uml2.uml.Parameter umlParameter = method.getOwnedParameter(param.getId().getName(), type, true, true);
+
+ if (typeData.isCollection()) {
+ umlParameter.setLower(typeData.getTranslatedLower());
+ umlParameter.setUpper(typeData.getTranslatedUpper());
+ }
+ processModifiers(param.getModifiers(), umlParameter);
+ processAnnotation(param.getAnnotations(), method);
+
+ }
+
+ /**
+ * Process annotation.
+ *
+ * @param annotations
+ * @param method
+ */
+ private void processAnnotation(List<AnnotationExpr> annotations, Element method) {
+ // TODO Auto-generated method stub
+ // Set annotation as stereotype ?
+ }
+
+ /**
+ * Process javadoc.
+ *
+ * @param javaDoc
+ * @param method
+ */
+ private void processJavadoc(JavadocComment javaDoc, Element umlElement) {
+ if (javaDoc == null) {
+ return;
+ }
+
+ Comment comment;
+ // Check if a comment already exists.
+ List<Comment> ownedComments = umlElement.getOwnedComments();
+ if (ownedComments != null && ownedComments.size() > 0) {
+ comment = ownedComments.get(0);
+ } else { // Create a new comment
+ comment = umlElement.createOwnedComment();
+ }
+
+ // Set the body
+ comment.setBody(javaDoc.getContent());
+ }
+
+ /**
+ * Create an interface and return it.
+ * The Classifier is created exactly in the directly enclosing namespace.
+ * First, a lookup is done to check if it has been created elsewhere in the namespaces. If true, correct the location
+ * and maybe the type.
+ *
+ * Only need to create the object and fill it with data available at this level.
+ *
+ * @param enclosingParents
+ * enclosing parent, Package included, in case of nested declaration.
+ * @param n
+ * @return
+ */
+ protected Class createClass(List<Namespace> enclosingParents, ClassOrInterfaceDeclaration n) {
+ System.out.println("getClass( " + n.getName() + " )");
+ return UmlUtils.getClass(enclosingParents, n.getName());
+ }
+
+ /**
+ * Create an interface and return it.
+ * The Classifier is created exactly in the directly enclosing namespace.
+ * First, a lookup is done to check if it has been created elsewhere in the namespaces. If true, correct the location
+ * and maybe the type.
+ *
+ * Only need to create the object and fill it with data available at this level.
+ *
+ * @param parent
+ * @param n
+ * @return
+ */
+ protected Interface createInterface(List<Namespace> enclosingParents, ClassOrInterfaceDeclaration n) {
+ System.out.println("getInterface( " + n.getName() + " )");
+ return UmlUtils.getInterface(enclosingParents, n.getName());
+ }
+
+ /**
+ * get (lookup or create) the packages containing the CU.
+ *
+ * @param cu
+ * @return
+ */
+ private Package getCuPackage(PackageDeclaration packageDecl) {
+
+ // If null, return the generation root
+ if (packageDecl == null) {
+ return defaultGenerationPackage;
+ }
+
+ // Get the name
+ List<String> qualifiedName = qualifiedNameParser.getPackageQualifiedName(packageDecl);
+ // Get the creation model
+ Package creationPackage = creationPackageCatalog.getCreationPackage(qualifiedName);
+ // Get the current unit package (where the element are created)
+ Package p = UmlUtils.getPackage(creationPackage, qualifiedName);
+
+ return p;
+ // question
+ // How to let the creationPackageCatalog create the package for a specified name ?
+ // CreatePackage visitor = new CreatePackage();
+ // Package res = visitor.getPackage(packageDecl, defaultGenerationPackage);
+
+ // return res;
+ }
+
+ private void createModifiers(Classifier c, int modifiers) {
+ // TODO Auto-generated method stub
+ if (ModifierSet.isPrivate(modifiers)) {
+ c.setVisibility(VisibilityKind.PRIVATE_LITERAL);
+ }
+ if (ModifierSet.isProtected(modifiers)) {
+ c.setVisibility(VisibilityKind.PROTECTED_LITERAL);
+ }
+ if (ModifierSet.isPublic(modifiers)) {
+ c.setVisibility(VisibilityKind.PUBLIC_LITERAL);
+ }
+ if (ModifierSet.isAbstract(modifiers)) {
+ c.setIsAbstract(true);
+ }
+ // if (ModifierSet.isStatic(modifiers)) {
+ // c.get
+ // }
+ if (ModifierSet.isFinal(modifiers)) {
+ c.setIsLeaf(true);
+ }
+ // if (ModifierSet.isNative(modifiers)) {
+ // printer.print("native ");
+ // }
+ // if (ModifierSet.isStrictfp(modifiers)) {
+ // printer.print("strictfp ");
+ // }
+ // if (ModifierSet.isSynchronized(modifiers)) {
+ // printer.print("synchronized ");
+ // }
+ // if (ModifierSet.isTransient(modifiers)) {
+ // printer.print("transient ");
+ // }
+ // if (ModifierSet.isVolatile(modifiers)) {
+ // printer.print("volatile ");
+ // }
+
+ }
+
+
+
+ /**
+ * Process Class or Interface declaration (only the head of the class, not the members).
+ *
+ * @param n
+ * @param parent
+ * @return
+ */
+ private Classifier processClassOrInterfaceDeclaration(ClassOrInterfaceDeclaration n, List<Namespace> enclosingParents) {
+
+ Classifier processedClass;
+ if (n.isInterface()) {
+ processedClass = createInterface(enclosingParents, n);
+ } else {
+ processedClass = createClass(enclosingParents, n);
+ }
+
+ // Comments
+ processJavadoc(n.getJavaDoc(), processedClass);
+
+ // Extends parameters
+ if (n.getExtends() != null) {
+ for (ClassOrInterfaceType type : n.getExtends()) { // Get the type
+ List<String> qualifiedName = getQualifiedName(type);
+ qualifiedName = importedTypes.getQualifiedName(qualifiedName);
+ Classifier generalization = getUmlClassifier(qualifiedName, n.isInterface());
+ // create the generalization
+ UmlUtils.getGeneralization(processedClass, generalization);
+ }
+ }
+
+ // implements parameters
+ if (n.getImplements() != null) {
+ for (ClassOrInterfaceType type : n.getImplements()) {
+ List<String> qualifiedName = getQualifiedName(type);
+ qualifiedName = importedTypes.getQualifiedName(qualifiedName);
+ Classifier generalization = getUmlClassifier(qualifiedName, true);
+ // create the generalization
+ Package parentPackage = (Package) enclosingParents.get(0);
+ // TODO use InterfaceRealization instead of Realization
+ // Need to store the InterfaceRealization in the right parent
+ // UmlUtils.getRealization(parentPackage, processedClass, generalization);
+ if (generalization instanceof Interface && processedClass instanceof BehavioredClassifier) {
+ UmlUtils.getInterfaceRealization((BehavioredClassifier) processedClass, (Interface) generalization);
+ } else
+ {
+ // should not happen
+ UmlUtils.getGeneralization(processedClass, generalization);
+ }
+ }
+ }
+
+
+ return processedClass;
+ }
+
+
+ /**
+ * Visitor used to create Package from a qualified names
+ * Example : javagen.parser
+ * trace :
+ * - visitQualifiedName( parser )
+ * - visitName( javagen )
+ *
+ * @author dumoulin
+ *
+ */
+ protected class CreatePackage extends VoidVisitorAdapter<List<String>> {
+
+
+ /**
+ * Create or find the packages corresponding to the qualified name.
+ * This is the main method to be called
+ *
+ * @param decl
+ * @param parent
+ * @return
+ */
+ public Package getPackage(PackageDeclaration decl, Package parent) {
+ List<String> names = new ArrayList<String>();
+
+ // Create a list of names in proper order.
+ decl.accept(this, names);
+
+ Package p = parent;
+ // iterate on names
+ for (String packageName : names) {
+ p = UmlUtils.getPackage(p, packageName);
+ }
+ return p;
+ }
+
+ /**
+ * Create the package part
+ */
+ @Override
+ public void visit(NameExpr n, List<String> names) {
+ // System.out.println("visitName( " + n.getName() + " )");
+ // Add in head, because elements are found in reverse order.
+ names.add(0, n.getName());
+ super.visit(n, names);
+ }
+
+ /**
+ *
+ */
+ @Override
+ public void visit(QualifiedNameExpr n, List<String> names) {
+ // System.out.println("visitQualifiedName( " + n.getName() + " )");
+ // Add in head, because elements are found in reverse order.
+ names.add(0, n.getName());
+ super.visit(n, names);
+ }
+ }
+
+ /**
+ * Visitor used to create a qualified name from ClassOrInterfaceType
+ *
+ * @author dumoulin
+ *
+ */
+ protected class QualifiedNameParser extends VoidVisitorAdapter<List<String>> {
+
+ /**
+ * Get the qualified name from the specified ast type
+ *
+ * @param n
+ * @return
+ */
+ public List<String> getClassOrInterfaceQualifiedName(ClassOrInterfaceType n) {
+ List<String> res = new ArrayList<String>();
+ n.accept(this, res);
+ return res;
+ }
+
+ /**
+ * Get the qualified name from the specified ast type
+ *
+ * @param n
+ * @return
+ */
+ public List<String> getPackageQualifiedName(PackageDeclaration n) {
+ List<String> res = new ArrayList<String>();
+ n.accept(this, res);
+ return res;
+ }
+
+ /**
+ * Get the qualified name from the specified ast type
+ *
+ * @param n
+ * @return
+ */
+ public List<String> getImportQualifiedName(ImportDeclaration n) {
+ // Imports are ordered from rootPackage to Type.
+ // So, names should be added in before visiting childs.
+ return getQualifiedName(n);
+ }
+
+ /**
+ * Get the qualified name from the specified ast type
+ *
+ * @param n
+ * @return
+ */
+ private List<String> getQualifiedName(Node n) {
+ List<String> res = new ArrayList<String>();
+ n.accept(this, res);
+ return res;
+ }
+
+ /**
+ * Create the package part
+ */
+ @Override
+ public void visit(ClassOrInterfaceType n, List<String> names) {
+ // System.out.println("visitName( " + n.getName() + " )");
+ // Add in head, because elements are found in reverse order.
+ // super.visit(n, names);
+ names.add(0, n.getName());
+ if (n.getScope() != null) {
+ n.getScope().accept(this, names);
+ }
+ }
+
+ /**
+ * Create the package part
+ */
+ @Override
+ public void visit(NameExpr n, List<String> names) {
+ // Add in head, because elements are found in reverse order.
+ // System.out.println("addName( " + n.getName() + " )");
+ names.add(0, n.getName());
+ // super.visit(n, names);
+ }
+
+ /**
+ *
+ */
+ @Override
+ public void visit(QualifiedNameExpr n, List<String> names) {
+ // Add in head, because elements are found in reverse order.
+ // System.out.println("addQualifiedName( " + n.getName() + " )");
+ names.add(0, n.getName());
+ if (n.getQualifier() != null)
+ {
+ n.getQualifier().accept(this, names);
+ // super.visit(n, names);
+ }
+ }
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/CreationPackageCatalog.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/CreationPackageCatalog.java
new file mode 100644
index 00000000000..5266bb2df21
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/CreationPackageCatalog.java
@@ -0,0 +1,639 @@
+/**
+ *
+ */
+package javagen.umlparser;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.uml2.uml.Package;
+
+/**
+ * Catalog used to find the package where an element should be created.
+ * The catalog maintain a map of (java package prefixes, creation prefixes).
+ * If no mapping is specified, the default creation package is used.
+ * The catalog can be configured with:
+ * <ul>
+ * <Li>defaultCreationPackage - The default path where packages are created when no matching creation Paths can be found.</li>
+ * <Li>packageCreationPatterns - Pattern indicating in where a java package should be created according to its name.</li>
+ * <Li>packageSearchPatterns - Patterns used to search for an existing java patterns. Used by {@link ClassifierCatalog}</li>
+ * </ul>
+ * <br>
+ * A packageCreationPatterns is made like that:
+ * <ul>
+ * <li>packageCreationPatterns: includePattern excludePatterns creationPath</li>
+ * <li>includePattern: pathPattern | null</li>
+ * <li>excludePatterns: pathPattern*</li>
+ * <li>creationPath: pathPattern</li>
+ * <li>pathPattern: path*.'*' | path | '*'.path | path'.*.'path</li>
+ * <li>path: pathPart['.'pathPart]*</li>
+ * <li>pathPart: name</li>
+ * </ul <br>
+ * A defaultCreationPackage is made like that:
+ * <ul>
+ * <li>defaultCreationPackage: path</li>
+ * </ul <br>
+ * A packageSearchPatterns is made like that:
+ * <ul>
+ * <li>defaultCreationPackage: path*.'*'</li>
+ * </ul
+ *
+ * @author cedric dumoulin
+ *
+ */
+public class CreationPackageCatalog {
+
+ public static final String WILDCARD = "*";
+
+ /** package mapping */
+ private List<CreationPattern> creationPatterns;
+
+ /**
+ * Default package returned when no mapping is found.
+ */
+ private Package defaultCreationPackage;
+
+ private static String defaultCreationPath = "default";
+
+ /** The model root package. Used to create mapped packages */
+ private Package modelRootPackage;
+
+ /**
+ * Default packageCreationPatterns.
+ */
+ private static String[] defaultPackageCreationPatterns = {
+ "java.*", null, "java",
+ "org.eclipse.papyrus.*", null, "*",
+ // "org.eclipse.*", "org.eclipse.papyrus.*", "eclipse.*",
+ "org.eclipse.*", "org.eclipse.papyrus.*", "*",
+ "org.osgi.*", null, "osgi.*",
+ "datatype.*", null, "datatype"
+ };
+
+
+ /**
+ * Constructor.
+ * Init the mappings
+ * format: ("p1.p2.p3", "p1.p2.p3", "pa/pb/pc")
+ * format: (include javaPackage, exclude javaPackage(or null), umlPackage)
+ * include and exclude package can start or (xor) end with '*'
+ *
+ * @param modelRootPackage
+ * Package used to create mapped packages
+ * @param defaultPackage
+ * Default package returned when no mapping is found
+ * @param creationPatterns
+ * mappings.
+ */
+ public CreationPackageCatalog(Package modelRootPackage, Package defaultPackage, List<String> packageCreationPatterns) {
+ this.defaultCreationPackage = defaultPackage;
+ this.modelRootPackage = modelRootPackage;
+ creationPatterns = new ArrayList<CreationPattern>();
+
+ if (packageCreationPatterns == null || packageCreationPatterns.size() == 0)
+ {
+ // use default
+ initPackageCreationPatterns(creationPatterns, defaultPackageCreationPatterns);
+ }
+ else {
+ // Use provided array
+ try {
+ validateCreationPath(packageCreationPatterns);
+ } catch (Exception e) {
+ throw new IllegalArgumentException("Parameter initialMappings has bad format:", e);
+ }
+ initPackageCreationPatterns(creationPatterns, packageCreationPatterns.toArray(new String[] {}));
+
+ }
+
+ }
+
+ /**
+ * @param defaultPackage
+ * the defaultPackage to set
+ */
+ public void setDefaultPackage(Package defaultPackage) {
+ this.defaultCreationPackage = defaultPackage;
+ }
+
+ /**
+ * Init the mappings
+ * format: ("p1.p2.p3", "p1.p2.p3", "pa/pb/pc")
+ * format: (include javaPackage, exclude javaPackage(or null), umlPackage)
+ *
+ * @param mappings
+ */
+ private void initPackageCreationPatterns(List<CreationPattern> mappings, String[] initialMappings) {
+ if (initialMappings == null) {
+ return;
+ }
+
+ for (int i = 0; i < initialMappings.length; i += 3) {
+ String qname = initialMappings[i + 2];
+ String excludeKey = initialMappings[i + 1];
+ String[] excludeKeys = null;
+ if (excludeKey != null) {
+ excludeKeys = excludeKey.split(",");
+ }
+ mappings.add(new CreationPattern(initialMappings[i], excludeKeys, qname));
+ }
+ }
+
+ /**
+ * Get the creation Package for the specified qualifiedName.
+ * The returned package is the Model from where the specified element should be created.
+ * The package denoted by the qualifiedName are not created.
+ *
+ * The modelPath is the model where specified element should be created. <br>
+ * Create any missing intermediate packages or models.
+ *
+ * @param qualifiedName
+ * The fully qualified name of the element to create.
+ * @return The package where the element should be created, according to its qualified name. The
+ */
+ public Package getCreationPackage(List<String> qualifiedName) {
+ String qname = toFlatQualifiedName(qualifiedName);
+ for (CreationPattern p : creationPatterns) {
+ if (p.isFor(qname)) {
+ return p.getPackage(qualifiedName);
+ }
+ }
+
+ // not found
+ return defaultCreationPackage;
+ }
+
+
+ /**
+ * Used by the UI to show the default values.
+ * Return one line for each packageCreationPatterns
+ *
+ * @return the defaultPackageCreationPatterns
+ */
+ public static String[] getDefaultPackageCreationPatterns(String separator) {
+
+ return toLineCreationPattern(defaultPackageCreationPatterns, separator);
+ }
+
+
+ /**
+ * @return the defaultCreationPath
+ */
+ public static String getDefaultCreationPath() {
+ return defaultCreationPath;
+ }
+
+ /**
+ * Transform a String with dot in a List of String
+ *
+ * @param key
+ * @return
+ */
+ private List<String> dotToListOfString(String key) {
+ return Arrays.asList(key.split("\\."));
+ }
+
+ /**
+ * Transform the qname into a string representation.
+ *
+ * @param qualifiedName
+ * @return
+ */
+ private String toFlatQualifiedName(List<String> qualifiedName) {
+ if (qualifiedName.size() == 1) {
+ return qualifiedName.get(0);
+ }
+ // Compute full name
+ StringBuffer buff = new StringBuffer();
+
+ buff.append(qualifiedName.get(0));
+ for (int i = 1; i < qualifiedName.size(); i++) {
+ String part = qualifiedName.get(i);
+ buff.append(".").append(part);
+ }
+ return buff.toString();
+ }
+
+ /**
+ * A pattern mapping java packages to path representing the model where the java package should be created
+ *
+ * @author dumoulin
+ *
+ */
+ protected class CreationPattern {
+
+ private CreationModelPathEntry creationModelPathEntry;
+
+ private StringFilter includeFilter;
+
+ private StringFilter[] excludeFilters;
+
+ /**
+ *
+ * @param key
+ * @param excludekey
+ * comma separated list of keys to exclude.
+ * @param qualifiedName
+ */
+ public CreationPattern(String key, String[] excludekeys, String qualifiedName) {
+ this.includeFilter = createFilter(key);
+ this.excludeFilters = createFilters(excludekeys);
+ this.creationModelPathEntry = createCreationModelPathEntry(key, qualifiedName);
+ }
+
+
+ /**
+ * Create a list of filters
+ *
+ * @param excludekeys
+ * @return
+ */
+ private StringFilter[] createFilters(String[] excludekeys) {
+ if (excludekeys == null) {
+ return null;
+ }
+
+ StringFilter[] filters = new StringFilter[excludekeys.length];
+
+ for (int i = 0; i < excludekeys.length; i++) {
+ filters[i] = createFilter(excludekeys[i]);
+ }
+ return null;
+ }
+
+
+ /**
+ * Create appropriate filter by looking up the stars positions.
+ *
+ * @param name
+ * @return
+ */
+ private StringFilter createFilter(String name) {
+ if (name.startsWith("*")) {
+ return new EndWithFilter(name.substring(1, name.length()));
+ } else if (name.endsWith("*")) {
+ return new StartWithFilter(name.substring(0, name.length() - 1));
+ } else {
+ return new IsEqualsFilter(name);
+ }
+
+ }
+
+ /**
+ * Create appropriate CreationModelPathEntry by looking up the #WILDCARD positions.
+ *
+ * @param name
+ * @return
+ */
+ private CreationModelPathEntry createCreationModelPathEntry(String key, String qualifiedNameWithDot) {
+
+ List<String> qname = dotToListOfString(qualifiedNameWithDot);
+
+ // Create the appropriate QualifiedNameGenerator
+ if (qname.contains("*")) {
+ if (key.contains("*")) {
+ // Both string contains '*'
+ return new PatternCreationModelPathEntry(key, qname);
+ } else {
+ // key have no pattern, but qualified name has.
+ // No solution: remove '*' from qualifiedName
+ qname.remove("*");
+ return new SimpleCreationModelPathEntry(qname);
+ }
+ } else {
+ // the qualified name has no pattern
+ return new SimpleCreationModelPathEntry(qname);
+ }
+
+
+ }
+
+ /**
+ * Return true if this mapping is for the provided qname.
+ *
+ * @param packageQualifiedName
+ * @return
+ */
+ public boolean isFor(String flatQualifiedName) {
+ // System.out.println("isFor(" + filter.filter + "==" + flatQualifiedName + ")");
+ if (includeFilter.accept(flatQualifiedName)) {
+ if (!isExcluded(flatQualifiedName)) {
+ return true;
+ }
+ }
+
+
+ return false;
+ }
+
+ /**
+ * Is the name in the exclude list ?
+ *
+ * @param flatQualifiedName
+ * @return
+ */
+ private boolean isExcluded(String flatQualifiedName) {
+ if (excludeFilters == null) {
+ return false;
+ }
+
+ for (StringFilter exclude : excludeFilters) {
+ if (exclude.accept(flatQualifiedName)) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Get the uml Package. Create it if needed.
+ * Create a Model that will contains the created elements
+ *
+ * @param proposedPath
+ * The proposedPath for which the creation Package is requested.
+ * @return
+ */
+ public Package getPackage(List<String> proposedPath) {
+
+ // umlPackage = UmlUtils.getPackage(modelRootPackage, qualifiedName);
+ Package cachedPackage = UmlUtils.getModel(modelRootPackage, creationModelPathEntry.getCreationModelPath(proposedPath));
+ return cachedPackage;
+ }
+ }
+
+ abstract private class StringFilter {
+
+ protected String filter;
+
+ /**
+ * @param filter
+ */
+ public StringFilter(String filter) {
+ this.filter = filter;
+ }
+
+ abstract public boolean accept(String name);
+ }
+
+ private class StartWithFilter extends StringFilter {
+
+ public StartWithFilter(String filter) {
+ super(filter);
+ }
+
+ @Override
+ public boolean accept(String name) {
+ return name.startsWith(filter);
+ }
+
+ }
+
+ private class EndWithFilter extends StringFilter {
+
+ public EndWithFilter(String filter) {
+ super(filter);
+ }
+
+ @Override
+ public boolean accept(String name) {
+ return name.endsWith(filter);
+ }
+
+ }
+
+ private class IsEqualsFilter extends StringFilter {
+
+ public IsEqualsFilter(String filter) {
+ super(filter);
+ }
+
+ @Override
+ public boolean accept(String name) {
+ return name.equals(filter);
+ }
+
+ }
+
+ /**
+ * A CreationModelPathEntry is used get the model path for a given elementPath.
+ *
+ * @author dumoulin
+ *
+ */
+ private abstract class CreationModelPathEntry {
+
+ /**
+ * Return the path for the model in wich the specified element should be created.
+ *
+ * @param elementName
+ * The fully qualified name of the element to create.
+ * @return
+ */
+ abstract public List<String> getCreationModelPath(List<String> pattern);
+ }
+
+ /**
+ * A {@link CreationModelPathEntry} returning the registered path.
+ * The path should not contain {@value #WILDCARD}
+ *
+ * @author dumoulin
+ *
+ */
+ private class SimpleCreationModelPathEntry extends CreationModelPathEntry {
+
+ /**
+ * The qualified name of the model where element are created
+ */
+ private List<String> modelPath;
+
+ /**
+ *
+ * Constructor.
+ *
+ * @param modelPath
+ * The qualified name of the model where element are created
+ */
+ public SimpleCreationModelPathEntry(List<String> modelPath) {
+ this.modelPath = modelPath;
+ }
+
+ /**
+ * Return the patt for the model in wich the specified element should be created.
+ *
+ * @see javagen.umlparser.CreationPackageCatalog.CreationModelPathEntry#getCreationModelPath(java.util.List)
+ *
+ * @param elementName
+ * The fully qualified name of the element to create.
+ * @return
+ */
+ @Override
+ public List<String> getCreationModelPath(List<String> elementName) {
+ // Return the registered path
+ return modelPath;
+ }
+
+ }
+
+ /**
+ * This {@link CreationModelPathEntry} allows to create Models giving a pattern containing a wildcard.
+ *
+ * @author dumoulin
+ *
+ */
+ private class PatternCreationModelPathEntry extends CreationModelPathEntry {
+
+ private List<String> qname;
+
+ private int srcPartIndex;
+
+ private int targetPartIndex;
+
+ public PatternCreationModelPathEntry(String key, List<String> qname) {
+
+ //
+ List<String> qualifiedKey = dotToListOfString(key);
+ // Get the index of the '*'
+ srcPartIndex = qualifiedKey.indexOf("*");
+ targetPartIndex = qname.indexOf("*");
+ if (targetPartIndex < 0 || srcPartIndex < 0)
+ {
+ System.err.println("getCreationModelPath() - index problem for " + key + ", " + qname);
+ }
+ this.qname = qname;
+ }
+
+ /**
+ * Return the name of the model for the specified qualifiedname.
+ *
+ * @see javagen.umlparser.CreationPackageCatalog.CreationModelPathEntry#getCreationModelPath(java.util.List)
+ *
+ * @param elementName
+ * The fully qualified name of the element to create.
+ * @return
+ */
+ @Override
+ public List<String> getCreationModelPath(List<String> elementName) {
+ List<String> result = new ArrayList<String>(qname);
+ // Replace the '*' in the requested path by the name found at the star index in the provided pattern
+ if (targetPartIndex < 0 || srcPartIndex < 0)
+ {
+ System.err.println("getCreationModelPath() - index problem for " + elementName);
+ }
+ result.set(targetPartIndex, elementName.get(srcPartIndex));
+ return result;
+ }
+
+ }
+
+ /**
+ * Validate the creation paths. The list contains one pattern by element
+ *
+ * @param paths
+ * @throws Exception
+ * If the path is not valid. The message describes the error.
+ */
+ public static void validateCreationPath(List<String> paths) throws Exception {
+
+ for (int i = 0; i < paths.size(); i += 3)
+ {
+ String includePattern = paths.get(i);
+ String excludePattern = paths.get(i + 1);
+ String targetPath = paths.get(i + 2);
+ String errorLine = "[" + includePattern + " ; " + excludePattern + " ; " + targetPath + "]";
+ checkNotEmptyPattern(includePattern, errorLine);
+ checkNotEmptyPattern(targetPath, errorLine);
+ checkSizeNotZero(excludePattern, errorLine);
+ }
+
+ }
+
+ private static void checkSizeNotZero(String pattern, String errorLine) throws Exception {
+ if (!(pattern == null) && pattern.length() == 0) {
+ throw new Exception("Pattern should not be null or empty" + errorLine);
+ }
+ }
+
+ private static void checkNotEmptyPattern(String pattern, String errorLine) throws Exception {
+
+ if (pattern == null || pattern.length() == 0) {
+ throw new Exception("Pattern should not be null or empty" + errorLine);
+ }
+
+ }
+
+ /**
+ * Transform a creation package with one single pattern by element to
+ * an array of creationPatterns (one creationPattern by line).
+ *
+ * @return the defaultPackageCreationPatterns
+ */
+ public static String[] toLineCreationPattern(String[] elements, String separator) {
+
+ int size = elements.length / 3;
+ String[] result = new String[size];
+
+ int index = 0;
+ for (int i = 0; i < elements.length; i += 3) {
+ String includePattern = elements[i];
+ String excludePattern = elements[i + 1];
+ String creationPath = elements[i + 2];
+
+ if (excludePattern == null) {
+ excludePattern = "";
+ }
+
+ result[index] = includePattern + separator + excludePattern + separator + creationPath;
+ index++;
+ }
+ return result;
+ }
+
+ /**
+ * Get all the creationPath of the specified creation patterns (one path by element);
+ *
+ * @param creationPattern
+ * A splitted creation pattern array
+ * @return
+ */
+ public static List<String> extractCreationPaths(String[] creationPattern) {
+
+ int size = creationPattern.length / 3;
+ List<String> result = new ArrayList<String>(size);
+
+ for (int i = 0; i < creationPattern.length; i += 3) {
+ String element = creationPattern[i + 2];
+ if (!result.contains(element)) {
+ result.add(element);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Get an array containing the specified colon of the provided array
+ *
+ * @return the defaultPackageCreationPatterns
+ */
+ private static String[] extractColumn(String[] inputArray, int columnCount, int extractedColumn) {
+
+ int size = inputArray.length / columnCount;
+ String[] result = new String[size];
+
+ int index = 0;
+ for (int i = 0; i < inputArray.length; i += 3) {
+ String element = inputArray[i + extractedColumn];
+ result[index] = element;
+ index++;
+ }
+ return result;
+ }
+
+ public static List<String> getDefaultSearchPath() {
+ // TODO Auto-generated method stub
+ return extractCreationPaths(defaultPackageCreationPatterns);
+ }
+
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/CuPrinter.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/CuPrinter.java
new file mode 100644
index 00000000000..a0a4271eeac
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/CuPrinter.java
@@ -0,0 +1,72 @@
+/**
+ *
+ */
+package javagen.umlparser;
+
+import japa.parser.JavaParser;
+import japa.parser.ParseException;
+import japa.parser.ast.CompilationUnit;
+
+import java.io.FileInputStream;
+
+/**
+ * @author dumoulin
+ *
+ */
+public class CuPrinter {
+
+ public static void main(String args[]) {
+ CompilationUnit cu;
+
+ try {
+
+ if (args.length == 0) {
+ System.out.println("Java Parser Version 1.1: Reading from standard input . . .");
+ cu = JavaParser.parse(System.in);
+ } else if (args.length == 1) {
+ System.out.println("Java Parser Version 1.1: Reading from file " + args[0] + " . . .");
+ try {
+ cu = JavaParser.parse(new java.io.FileInputStream(args[0]));
+ System.out.println("Java Parser Version 1.1: Java program parsed successfully.");
+ // prints the resulting compilation unit to default system output
+ System.out.println(cu.toString());
+
+ } catch (java.io.FileNotFoundException e) {
+ System.out.println("Java Parser Version 1.1: File " + args[0] + " not found.");
+ return;
+ }
+ } else {
+ System.out.println("Java Parser Version 1.1: Usage is one of:");
+ System.out.println(" java JavaParser < inputfile");
+ System.out.println("OR");
+ System.out.println(" java JavaParser inputfile");
+ return;
+ }
+
+ } catch (ParseException e) {
+ System.out.println(e.getMessage());
+ System.out.println("Java Parser Version 1.1: Encountered errors during parse.");
+ } finally {
+ // in.close();
+ }
+
+ }
+
+
+ public static void main2(String[] args) throws Exception {
+ // creates an input stream for the file to be parsed
+ FileInputStream in = new FileInputStream("test.java");
+
+ CompilationUnit cu;
+ try {
+ // parse the file
+ cu = JavaParser.parse(in);
+ } finally {
+ in.close();
+ }
+
+ // prints the resulting compilation unit to default system output
+ System.out.println(cu.toString());
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/GenericSwitchVisitor.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/GenericSwitchVisitor.java
new file mode 100644
index 00000000000..96fc7f91e97
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/GenericSwitchVisitor.java
@@ -0,0 +1,665 @@
+/**
+ *
+ */
+package javagen.umlparser;
+
+import japa.parser.ast.BlockComment;
+import japa.parser.ast.CompilationUnit;
+import japa.parser.ast.ImportDeclaration;
+import japa.parser.ast.LineComment;
+import japa.parser.ast.Node;
+import japa.parser.ast.PackageDeclaration;
+import japa.parser.ast.TypeParameter;
+import japa.parser.ast.body.AnnotationDeclaration;
+import japa.parser.ast.body.AnnotationMemberDeclaration;
+import japa.parser.ast.body.ClassOrInterfaceDeclaration;
+import japa.parser.ast.body.ConstructorDeclaration;
+import japa.parser.ast.body.EmptyMemberDeclaration;
+import japa.parser.ast.body.EmptyTypeDeclaration;
+import japa.parser.ast.body.EnumConstantDeclaration;
+import japa.parser.ast.body.EnumDeclaration;
+import japa.parser.ast.body.FieldDeclaration;
+import japa.parser.ast.body.InitializerDeclaration;
+import japa.parser.ast.body.JavadocComment;
+import japa.parser.ast.body.MethodDeclaration;
+import japa.parser.ast.body.Parameter;
+import japa.parser.ast.body.VariableDeclarator;
+import japa.parser.ast.body.VariableDeclaratorId;
+import japa.parser.ast.expr.ArrayAccessExpr;
+import japa.parser.ast.expr.ArrayCreationExpr;
+import japa.parser.ast.expr.ArrayInitializerExpr;
+import japa.parser.ast.expr.AssignExpr;
+import japa.parser.ast.expr.BinaryExpr;
+import japa.parser.ast.expr.BooleanLiteralExpr;
+import japa.parser.ast.expr.CastExpr;
+import japa.parser.ast.expr.CharLiteralExpr;
+import japa.parser.ast.expr.ClassExpr;
+import japa.parser.ast.expr.ConditionalExpr;
+import japa.parser.ast.expr.DoubleLiteralExpr;
+import japa.parser.ast.expr.EnclosedExpr;
+import japa.parser.ast.expr.FieldAccessExpr;
+import japa.parser.ast.expr.InstanceOfExpr;
+import japa.parser.ast.expr.IntegerLiteralExpr;
+import japa.parser.ast.expr.IntegerLiteralMinValueExpr;
+import japa.parser.ast.expr.LongLiteralExpr;
+import japa.parser.ast.expr.LongLiteralMinValueExpr;
+import japa.parser.ast.expr.MarkerAnnotationExpr;
+import japa.parser.ast.expr.MemberValuePair;
+import japa.parser.ast.expr.MethodCallExpr;
+import japa.parser.ast.expr.NameExpr;
+import japa.parser.ast.expr.NormalAnnotationExpr;
+import japa.parser.ast.expr.NullLiteralExpr;
+import japa.parser.ast.expr.ObjectCreationExpr;
+import japa.parser.ast.expr.QualifiedNameExpr;
+import japa.parser.ast.expr.SingleMemberAnnotationExpr;
+import japa.parser.ast.expr.StringLiteralExpr;
+import japa.parser.ast.expr.SuperExpr;
+import japa.parser.ast.expr.ThisExpr;
+import japa.parser.ast.expr.UnaryExpr;
+import japa.parser.ast.expr.VariableDeclarationExpr;
+import japa.parser.ast.stmt.AssertStmt;
+import japa.parser.ast.stmt.BlockStmt;
+import japa.parser.ast.stmt.BreakStmt;
+import japa.parser.ast.stmt.CatchClause;
+import japa.parser.ast.stmt.ContinueStmt;
+import japa.parser.ast.stmt.DoStmt;
+import japa.parser.ast.stmt.EmptyStmt;
+import japa.parser.ast.stmt.ExplicitConstructorInvocationStmt;
+import japa.parser.ast.stmt.ExpressionStmt;
+import japa.parser.ast.stmt.ForStmt;
+import japa.parser.ast.stmt.ForeachStmt;
+import japa.parser.ast.stmt.IfStmt;
+import japa.parser.ast.stmt.LabeledStmt;
+import japa.parser.ast.stmt.ReturnStmt;
+import japa.parser.ast.stmt.SwitchEntryStmt;
+import japa.parser.ast.stmt.SwitchStmt;
+import japa.parser.ast.stmt.SynchronizedStmt;
+import japa.parser.ast.stmt.ThrowStmt;
+import japa.parser.ast.stmt.TryStmt;
+import japa.parser.ast.stmt.TypeDeclarationStmt;
+import japa.parser.ast.stmt.WhileStmt;
+import japa.parser.ast.type.ClassOrInterfaceType;
+import japa.parser.ast.type.PrimitiveType;
+import japa.parser.ast.type.ReferenceType;
+import japa.parser.ast.type.VoidType;
+import japa.parser.ast.type.WildcardType;
+import japa.parser.ast.visitor.GenericVisitor;
+
+/**
+ * A base class used to do switching.
+ * The class must be subclassed, and methods corresponding to needed cases should be subclassed.
+ *
+ * @author dumoulin
+ *
+ */
+public class GenericSwitchVisitor<R, A> implements GenericVisitor<R, A> {
+
+ /**
+ * Do switching according to the real type of the node.
+ *
+ * @param n
+ * @param arg
+ * @return
+ */
+ public R doSwitch(Node n, A arg) {
+ return n.accept(this, arg);
+ }
+
+ @Override
+ public R visit(Node n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public R visit(CompilationUnit n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public R visit(PackageDeclaration n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(ImportDeclaration n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(TypeParameter n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(LineComment n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(BlockComment n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(ClassOrInterfaceDeclaration n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(EnumDeclaration n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(EmptyTypeDeclaration n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(EnumConstantDeclaration n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(AnnotationDeclaration n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(AnnotationMemberDeclaration n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(FieldDeclaration n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(VariableDeclarator n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(VariableDeclaratorId n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(ConstructorDeclaration n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(MethodDeclaration n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(Parameter n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(EmptyMemberDeclaration n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(InitializerDeclaration n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(JavadocComment n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(ClassOrInterfaceType n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(PrimitiveType n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(ReferenceType n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(VoidType n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(WildcardType n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(ArrayAccessExpr n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(ArrayCreationExpr n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(ArrayInitializerExpr n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(AssignExpr n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(BinaryExpr n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(CastExpr n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(ClassExpr n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(ConditionalExpr n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(EnclosedExpr n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(FieldAccessExpr n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(InstanceOfExpr n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(StringLiteralExpr n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(IntegerLiteralExpr n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(LongLiteralExpr n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(IntegerLiteralMinValueExpr n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(LongLiteralMinValueExpr n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(CharLiteralExpr n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(DoubleLiteralExpr n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(BooleanLiteralExpr n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(NullLiteralExpr n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(MethodCallExpr n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(NameExpr n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(ObjectCreationExpr n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(QualifiedNameExpr n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(ThisExpr n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(SuperExpr n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(UnaryExpr n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(VariableDeclarationExpr n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(MarkerAnnotationExpr n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(SingleMemberAnnotationExpr n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(NormalAnnotationExpr n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(MemberValuePair n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(ExplicitConstructorInvocationStmt n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(TypeDeclarationStmt n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(AssertStmt n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(BlockStmt n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(LabeledStmt n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(EmptyStmt n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(ExpressionStmt n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(SwitchStmt n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(SwitchEntryStmt n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(BreakStmt n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(ReturnStmt n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(IfStmt n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(WhileStmt n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(ContinueStmt n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(DoStmt n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(ForeachStmt n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(ForStmt n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(ThrowStmt n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(SynchronizedStmt n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(TryStmt n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public R visit(CatchClause n, A arg) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/GenericTransformer.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/GenericTransformer.java
new file mode 100644
index 00000000000..49ac5b4e7ca
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/GenericTransformer.java
@@ -0,0 +1,269 @@
+/***************************************************
+ * Copyright (c) 2010 Atos Origin.
+
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Atos Origin - Initial API and implementation
+ *
+ ****************************************************/
+package javagen.umlparser;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.util.ECrossReferenceAdapter;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.EcoreUtil.UsageCrossReferencer;
+import org.eclipse.emf.ecore.util.FeatureMapUtil;
+
+/**
+ * The Class GenericTransformer. Permits to transform an eobject of eclass to
+ * another eclass
+ */
+public class GenericTransformer {
+
+ /** element to transform */
+ private EObject element;
+
+ /**
+ * Instantiates a new generic transformer.
+ *
+ * @param currentEobject
+ * the current eobject
+ */
+ public GenericTransformer(EObject currentEobject) {
+ this.element = currentEobject;
+ }
+
+ /**
+ * Transform the element to the given eclass.
+ *
+ * @param requestedType
+ * the targeted eclass
+ */
+ public EObject transform(EClass requestedType) {
+
+ // Create the result
+ EObject result = requestedType.getEPackage().getEFactoryInstance()
+ .create(requestedType);
+
+ try {
+ // Copy features
+ copyAllFeatures(element, result);
+ // Change parent
+ // EcoreUtil.replace(element, result);
+ changeReferences(element, result);
+
+ // Change references on the old objet to references on the new
+ // object.
+
+ // drop caches about input element
+ ECrossReferenceAdapter cross = ECrossReferenceAdapter
+ .getCrossReferenceAdapter(element);
+ if (cross != null) {
+ cross.unsetTarget(element);
+ }
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ return result;
+ }
+
+ /**
+ * Copy the feature of the source into the target
+ *
+ * @param element2
+ * @param result
+ */
+ private void copyAllFeatures(EObject source, EObject target) {
+ EClass eclass = source.eClass();
+ if (eclass != null) {
+ EList<EStructuralFeature> eAllStructuralFeatures = eclass
+ .getEAllStructuralFeatures();
+ for (EStructuralFeature structuralFeature : eAllStructuralFeatures) {
+ if (contains(target.eClass(), structuralFeature)) {
+ copyFeature(source, target, structuralFeature);
+ }
+ }
+ }
+
+ }
+
+ /**
+ * check if the target eclass contains a estructuralfeature with the same
+ * name less rigorous can work for many cases
+ *
+ * @param target
+ * the target
+ * @param e
+ * the e
+ *
+ * @return true, if successful
+ */
+ private boolean contains(EClass target, EStructuralFeature e) {
+ EList<EStructuralFeature> features = target.getEAllStructuralFeatures();
+ for (EStructuralFeature f : features) {
+ if (f.getName().equals(e.getName())) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Copy specified feature from source to target.
+ *
+ * @param mixedDomain
+ * the mixed domain
+ * @param source
+ * the source
+ * @param target
+ * the target
+ * @param feature
+ * the e
+ */
+ @SuppressWarnings("unchecked")
+ private void copyFeature(EObject source, EObject target,
+ EStructuralFeature feature) {
+ Collection<Object> alreadyManaged = new ArrayList<Object>();
+
+ // Get the target feature
+ EStructuralFeature targetFeature = getFeature(target, feature.getName());
+
+ if (feature.getUpperBound() <= targetFeature.getUpperBound()
+ && feature.getLowerBound() >= targetFeature.getLowerBound()) {
+ if (feature.isChangeable() && !feature.isDerived()) {
+ Object value = source.eGet(feature);
+
+ if (feature.isMany() && targetFeature.isMany()) {
+ // Collection to collection
+ Collection<EObject> values = (Collection<EObject>) value;
+ if (values != null && !values.isEmpty()) {
+ Collection<EObject> newList = new ArrayList<EObject>();
+ newList.addAll(values);
+ if (feature instanceof EReference
+ && !((EReference) feature).isContainment()) {
+ // references
+ setFeatureValue(target, targetFeature, newList);
+ // add(new SetValueCommand(new
+ // SetRequest(editingDomain, target, targetFeature,
+ // newList)));
+ } else if (feature instanceof EReference
+ && ((EReference) feature).isContainment()) {
+ // Containement feature
+ Collection<Object> toTreat = new ArrayList<Object>();
+ for (Object o : newList) {
+ if (!alreadyManaged.contains(o)) {
+ toTreat.add(o);
+ alreadyManaged.add(o);
+ }
+ }
+
+ setFeatureValue(target, targetFeature, newList);
+ }
+ }
+ } else if (!feature.isMany() && !targetFeature.isMany()) {
+ // Copy one to one
+ if (value != null) {
+ if (!alreadyManaged.contains(value)) {
+ alreadyManaged.add(value);
+ setFeatureValue(target, targetFeature, value);
+ }
+ }
+ }
+ }
+ }
+
+ }
+
+ /**
+ *
+ * Set the value of the specified feature
+ *
+ * @param elementToEdit
+ * @param feature
+ * @param value
+ */
+ protected void setFeatureValue(EObject elementToEdit,
+ EStructuralFeature feature, Object value) {
+
+ boolean many = FeatureMapUtil.isMany(elementToEdit, feature);
+ if (many) {
+ Collection collection = ((Collection) elementToEdit.eGet(feature));
+ if (value instanceof List) {
+ List values = (List) value;
+ collection.clear();
+ collection.addAll(values);
+ } else {
+ collection.add(value);
+ }
+ } else {
+ elementToEdit.eSet(feature, value);
+ }
+ }
+
+ /**
+ * Gets a feature from a name
+ *
+ * @param eobject
+ * the eobject
+ * @param name
+ * the name
+ *
+ * @return the feature
+ */
+ private EStructuralFeature getFeature(EObject eobject, String name) {
+ return eobject.eClass().getEStructuralFeature(name);
+ }
+
+ /**
+ * Replace all references on source by references on target Deletes the
+ * object from its {@link EObject#eResource containing} resource and/or its {@link EObject#eContainer containing} object as well as from any other
+ * feature that references it within the enclosing resource set, resource,
+ * or root object.
+ *
+ * @param eObject
+ * the object to delete.
+ * @copyright org.eclipse.emf.ecore.util.EcoreUtil
+ */
+ private void changeReferences(EObject source, EObject target) {
+ EObject rootEObject = EcoreUtil.getRootContainer(source);
+ Resource resource = rootEObject.eResource();
+
+ Collection<EStructuralFeature.Setting> usages;
+ if (resource == null) {
+ usages = UsageCrossReferencer.find(source, rootEObject);
+ } else {
+ ResourceSet resourceSet = resource.getResourceSet();
+ if (resourceSet == null) {
+ usages = UsageCrossReferencer.find(source, resource);
+ } else {
+ usages = UsageCrossReferencer.find(source, resourceSet);
+ }
+ }
+
+ for (EStructuralFeature.Setting setting : usages) {
+ if (setting.getEStructuralFeature().isChangeable()) {
+ EcoreUtil.replace(setting, source, target);
+ }
+ }
+
+ EcoreUtil.replace(source, target);
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/ImportedTypeCatalog.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/ImportedTypeCatalog.java
new file mode 100644
index 00000000000..de8ededd8e5
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/ImportedTypeCatalog.java
@@ -0,0 +1,167 @@
+/**
+ *
+ */
+package javagen.umlparser;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Catalog managing the imports names.
+ * This catalog allows to lookup the qualified name of a type.
+ *
+ * @author dumoulin
+ *
+ */
+public class ImportedTypeCatalog {
+
+ private Map<String, List<String>> map = new HashMap<String, List<String>>();
+
+ /**
+ * Default mapping to be set
+ */
+ public String[] defaultMappingNames = {
+ "String", "java.lang.String",
+ "Class", "java.lang.Class",
+ "Object", "java.lang.Object",
+ "Exception", "java.lang.Exception",
+ "Integer", "datatype.Integer",
+ "Boolean", "datatype.Boolean",
+ "Long", "datatype.Long",
+ "Char", "datatype.Char",
+ "Byte", "datatype.Byte",
+ "Runnable", "java.lang.Runnable",
+ "Throwable", "java.lang.Throwable",
+ "Thread", "java.lang.Thread",
+ };
+
+
+ /**
+ * Constructor.
+ */
+ public ImportedTypeCatalog() {
+ // Set default mapping
+ setDefaultMapping(defaultMappingNames);
+ }
+
+ /**
+ * Set the default mappings
+ *
+ * @param defaultMappingNames
+ */
+ private void setDefaultMapping(String[] defaultMappingNames) {
+ for (int i = 0; i < defaultMappingNames.length; i += 2) {
+ map.put(defaultMappingNames[i], UmlUtils.toQualifiedName(defaultMappingNames[i + 1]));
+ System.out.println("setDefaultMapping().add(" + defaultMappingNames[i] + ", " + UmlUtils.toQualifiedName(defaultMappingNames[i + 1]) + ")");
+ }
+ }
+
+ /**
+ * Get the associated qualified name from the imports.
+ * Return the translation or the name itself, as a qualifiedName.
+ *
+ * @param name
+ * @return
+ */
+ public List<String> getQualifiedName(String name) {
+
+ List<String> res = map.get(name);
+ if (res == null) {
+ res = UmlUtils.toQualifiedName(name);
+ }
+ return res;
+ }
+
+ /**
+ * Lookup the associated qualified name from the imports.
+ *
+ * @param name
+ * @return
+ */
+ private List<String> lookupQualifiedName(String name) {
+
+ List<String> res = map.get(name);
+ return res;
+ }
+
+ /**
+ * Get the qualified name of the provided [qualifiedName].
+ * If the provided name size is one, lookup for its full name.
+ * Otherwise, return the imput.
+ *
+ * @param typeQualifiedName
+ * @return
+ */
+ public List<String> getQualifiedName(List<String> possiblyQualifiedName) {
+ if (possiblyQualifiedName.size() == 1) {
+ List<String> res = lookupQualifiedName(possiblyQualifiedName.get(0));
+ if (res == null) {
+ res = possiblyQualifiedName;
+ }
+ return res;
+ } else {
+ return possiblyQualifiedName;
+ }
+ }
+
+ /**
+ * Return true if the specified qualifiedName denote an imported name.
+ * Return false otherwise.
+ *
+ * @param qualifiedName
+ * @return
+ */
+ public boolean isImportedType(List<String> qualifiedName) {
+
+ String lastName = qualifiedName.get(qualifiedName.size() - 1);
+
+ // Check if the last name is in the catalog, and compare package names
+ List<String> found = map.get(lastName);
+ if (found != null && found.equals(qualifiedName)) {
+ return true;
+ }
+
+ return false;
+ }
+
+
+ /**
+ * Add an import
+ *
+ * @param qualifiedName
+ */
+ public void addImport(List<String> qualifiedName) {
+
+ String lastName = qualifiedName.get(qualifiedName.size() - 1);
+ System.out.println("ImportedCatalog.add(" + qualifiedName + ")");
+ if ("*".equals(lastName)) {
+ addPackageClasses(qualifiedName);
+ } else {
+ map.put(lastName, qualifiedName);
+ }
+ }
+
+ /**
+ * Add all the class from the package.
+ * Last name is '*'
+ *
+ * @param qualifiedName
+ */
+ private void addPackageClasses(List<String> qualifiedName) {
+ // TODO Auto-generated method stub
+ // throw new UnsupportedOperationException("not yet implmeented");
+ System.err.println(this.getClass().getName()
+ + ".addPackageClasses() - Not yet implemented - can't process import with 'p1.p2.*;'");
+ }
+
+ /**
+ * Clear all mappings
+ */
+ public void clear() {
+ map.clear();
+ setDefaultMapping(defaultMappingNames);
+
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/ModelManager.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/ModelManager.java
new file mode 100644
index 00000000000..56cae4aa276
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/ModelManager.java
@@ -0,0 +1,103 @@
+/**
+ *
+ */
+package javagen.umlparser;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Collections;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.uml2.uml.resource.UMLResource;
+
+/**
+ * This class is responsible of the life cycle of the model.
+ *
+ * @author dumoulin
+ *
+ */
+public class ModelManager {
+
+ private Resource model;
+
+ private ResourceSet resourceSet;
+
+ /**
+ * @return the resourceSet
+ */
+ public ResourceSet getResourceSet() {
+ return resourceSet;
+ }
+
+ /**
+ * @return the model
+ */
+ public Resource getModel() {
+ return model;
+ }
+
+ /**
+ *
+ * @param filename
+ */
+ protected void createModel(String filename) {
+ // Create a resource set.
+ resourceSet = new ResourceSetImpl();
+
+
+ // Register the default resource factory -- only needed for stand-alone!
+ // resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(Resource.Factory.Registry.DEFAULT_EXTENSION, new XMIResourceFactoryImpl());
+ resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(UMLResource.FILE_EXTENSION, UMLResource.Factory.INSTANCE);
+ resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(UMLResource.Factory.Registry.DEFAULT_EXTENSION, UMLResource.Factory.INSTANCE);
+
+ // Get the URI of the model file.
+ URI fileURI = URI.createFileURI(new File(filename).getAbsolutePath());
+
+ System.out.println("URI= " + fileURI);
+ // Create a resource for this file.
+ model = resourceSet.createResource(fileURI);
+
+ }
+
+ /**
+ *
+ * @param filename
+ */
+ protected void loadModel(String filename) {
+ UMLFactory.eINSTANCE.createActor();
+ // Create a resource set.
+ resourceSet = new ResourceSetImpl();
+
+
+ // Register the default resource factory -- only needed for stand-alone!
+ // resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(Resource.Factory.Registry.DEFAULT_EXTENSION, new XMIResourceFactoryImpl());
+ resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(UMLResource.FILE_EXTENSION, UMLResource.Factory.INSTANCE);
+ resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(UMLResource.Factory.Registry.DEFAULT_EXTENSION, UMLResource.Factory.INSTANCE);
+
+ // Get the URI of the model file.
+ URI fileURI = URI.createFileURI(new File(filename).getAbsolutePath());
+
+ System.out.println("URI= " + fileURI);
+ // Create a resource for this file.
+ model = resourceSet.getResource(fileURI, true);
+
+ }
+
+ public void save() {
+ try {
+ System.out.println("Save model.");
+
+ model.save(Collections.EMPTY_MAP);
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/QualifiedName.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/QualifiedName.java
new file mode 100644
index 00000000000..7b549cc8868
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/QualifiedName.java
@@ -0,0 +1,48 @@
+/**
+ *
+ */
+package javagen.umlparser;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+/**
+ * Instance of this class denote a qualified name of a type.
+ *
+ * @author dumoulin
+ *
+ */
+@SuppressWarnings("serial")
+public class QualifiedName extends ArrayList<String> {
+
+ /**
+ *
+ */
+ public QualifiedName() {
+ }
+
+ /**
+ * @param initialCapacity
+ */
+ public QualifiedName(int initialCapacity) {
+ super(initialCapacity);
+ }
+
+ /**
+ * @param c
+ */
+ public QualifiedName(Collection<String> c) {
+ super(c);
+ }
+
+ /**
+ * Return the last name of the qualified name.
+ * This is usually the short name.
+ *
+ * @return
+ */
+ public String getName() {
+
+ return get(size() - 1);
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/SwitchVisitor.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/SwitchVisitor.java
new file mode 100644
index 00000000000..5c06cc5c95a
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/SwitchVisitor.java
@@ -0,0 +1,661 @@
+/**
+ *
+ */
+package javagen.umlparser;
+
+import japa.parser.ast.BlockComment;
+import japa.parser.ast.CompilationUnit;
+import japa.parser.ast.ImportDeclaration;
+import japa.parser.ast.LineComment;
+import japa.parser.ast.Node;
+import japa.parser.ast.PackageDeclaration;
+import japa.parser.ast.TypeParameter;
+import japa.parser.ast.body.AnnotationDeclaration;
+import japa.parser.ast.body.AnnotationMemberDeclaration;
+import japa.parser.ast.body.ClassOrInterfaceDeclaration;
+import japa.parser.ast.body.ConstructorDeclaration;
+import japa.parser.ast.body.EmptyMemberDeclaration;
+import japa.parser.ast.body.EmptyTypeDeclaration;
+import japa.parser.ast.body.EnumConstantDeclaration;
+import japa.parser.ast.body.EnumDeclaration;
+import japa.parser.ast.body.FieldDeclaration;
+import japa.parser.ast.body.InitializerDeclaration;
+import japa.parser.ast.body.JavadocComment;
+import japa.parser.ast.body.MethodDeclaration;
+import japa.parser.ast.body.Parameter;
+import japa.parser.ast.body.VariableDeclarator;
+import japa.parser.ast.body.VariableDeclaratorId;
+import japa.parser.ast.expr.ArrayAccessExpr;
+import japa.parser.ast.expr.ArrayCreationExpr;
+import japa.parser.ast.expr.ArrayInitializerExpr;
+import japa.parser.ast.expr.AssignExpr;
+import japa.parser.ast.expr.BinaryExpr;
+import japa.parser.ast.expr.BooleanLiteralExpr;
+import japa.parser.ast.expr.CastExpr;
+import japa.parser.ast.expr.CharLiteralExpr;
+import japa.parser.ast.expr.ClassExpr;
+import japa.parser.ast.expr.ConditionalExpr;
+import japa.parser.ast.expr.DoubleLiteralExpr;
+import japa.parser.ast.expr.EnclosedExpr;
+import japa.parser.ast.expr.FieldAccessExpr;
+import japa.parser.ast.expr.InstanceOfExpr;
+import japa.parser.ast.expr.IntegerLiteralExpr;
+import japa.parser.ast.expr.IntegerLiteralMinValueExpr;
+import japa.parser.ast.expr.LongLiteralExpr;
+import japa.parser.ast.expr.LongLiteralMinValueExpr;
+import japa.parser.ast.expr.MarkerAnnotationExpr;
+import japa.parser.ast.expr.MemberValuePair;
+import japa.parser.ast.expr.MethodCallExpr;
+import japa.parser.ast.expr.NameExpr;
+import japa.parser.ast.expr.NormalAnnotationExpr;
+import japa.parser.ast.expr.NullLiteralExpr;
+import japa.parser.ast.expr.ObjectCreationExpr;
+import japa.parser.ast.expr.QualifiedNameExpr;
+import japa.parser.ast.expr.SingleMemberAnnotationExpr;
+import japa.parser.ast.expr.StringLiteralExpr;
+import japa.parser.ast.expr.SuperExpr;
+import japa.parser.ast.expr.ThisExpr;
+import japa.parser.ast.expr.UnaryExpr;
+import japa.parser.ast.expr.VariableDeclarationExpr;
+import japa.parser.ast.stmt.AssertStmt;
+import japa.parser.ast.stmt.BlockStmt;
+import japa.parser.ast.stmt.BreakStmt;
+import japa.parser.ast.stmt.CatchClause;
+import japa.parser.ast.stmt.ContinueStmt;
+import japa.parser.ast.stmt.DoStmt;
+import japa.parser.ast.stmt.EmptyStmt;
+import japa.parser.ast.stmt.ExplicitConstructorInvocationStmt;
+import japa.parser.ast.stmt.ExpressionStmt;
+import japa.parser.ast.stmt.ForStmt;
+import japa.parser.ast.stmt.ForeachStmt;
+import japa.parser.ast.stmt.IfStmt;
+import japa.parser.ast.stmt.LabeledStmt;
+import japa.parser.ast.stmt.ReturnStmt;
+import japa.parser.ast.stmt.SwitchEntryStmt;
+import japa.parser.ast.stmt.SwitchStmt;
+import japa.parser.ast.stmt.SynchronizedStmt;
+import japa.parser.ast.stmt.ThrowStmt;
+import japa.parser.ast.stmt.TryStmt;
+import japa.parser.ast.stmt.TypeDeclarationStmt;
+import japa.parser.ast.stmt.WhileStmt;
+import japa.parser.ast.type.ClassOrInterfaceType;
+import japa.parser.ast.type.PrimitiveType;
+import japa.parser.ast.type.ReferenceType;
+import japa.parser.ast.type.VoidType;
+import japa.parser.ast.type.WildcardType;
+import japa.parser.ast.visitor.VoidVisitor;
+
+/**
+ * A base class used to do switching.
+ * The class must be subclassed, and methods corresponding to needed cases should be subclassed.
+ *
+ * @author dumoulin
+ *
+ */
+public class SwitchVisitor<A> implements VoidVisitor<A> {
+
+ public void doSwitch(Node n, A arg) {
+ n.accept(this, arg);
+ }
+
+
+ @Override
+ public void visit(Node n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(CompilationUnit n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(PackageDeclaration n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(ImportDeclaration n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(TypeParameter n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(LineComment n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(BlockComment n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(ClassOrInterfaceDeclaration n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(EnumDeclaration n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(EmptyTypeDeclaration n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(EnumConstantDeclaration n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(AnnotationDeclaration n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(AnnotationMemberDeclaration n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(FieldDeclaration n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(VariableDeclarator n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(VariableDeclaratorId n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(ConstructorDeclaration n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(MethodDeclaration n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(Parameter n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(EmptyMemberDeclaration n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(InitializerDeclaration n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(JavadocComment n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(ClassOrInterfaceType n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(PrimitiveType n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(ReferenceType n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(VoidType n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(WildcardType n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(ArrayAccessExpr n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(ArrayCreationExpr n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(ArrayInitializerExpr n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(AssignExpr n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(BinaryExpr n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(CastExpr n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(ClassExpr n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(ConditionalExpr n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(EnclosedExpr n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(FieldAccessExpr n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(InstanceOfExpr n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(StringLiteralExpr n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(IntegerLiteralExpr n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(LongLiteralExpr n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(IntegerLiteralMinValueExpr n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(LongLiteralMinValueExpr n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(CharLiteralExpr n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(DoubleLiteralExpr n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(BooleanLiteralExpr n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(NullLiteralExpr n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(MethodCallExpr n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(NameExpr n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(ObjectCreationExpr n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(QualifiedNameExpr n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(ThisExpr n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(SuperExpr n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(UnaryExpr n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(VariableDeclarationExpr n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(MarkerAnnotationExpr n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(SingleMemberAnnotationExpr n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(NormalAnnotationExpr n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(MemberValuePair n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(ExplicitConstructorInvocationStmt n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(TypeDeclarationStmt n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(AssertStmt n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(BlockStmt n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(LabeledStmt n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(EmptyStmt n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(ExpressionStmt n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(SwitchStmt n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(SwitchEntryStmt n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(BreakStmt n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(ReturnStmt n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(IfStmt n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(WhileStmt n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(ContinueStmt n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(DoStmt n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(ForeachStmt n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(ForStmt n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(ThrowStmt n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(SynchronizedStmt n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(TryStmt n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void visit(CatchClause n, A arg) {
+ // TODO Auto-generated method stub
+
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/TypeAnalyser.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/TypeAnalyser.java
new file mode 100644
index 00000000000..c49c9828c10
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/TypeAnalyser.java
@@ -0,0 +1,219 @@
+/**
+ *
+ */
+package javagen.umlparser;
+
+import japa.parser.ast.type.ClassOrInterfaceType;
+import japa.parser.ast.type.PrimitiveType;
+import japa.parser.ast.type.ReferenceType;
+import japa.parser.ast.type.VoidType;
+import japa.parser.ast.type.WildcardType;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * Data structure to return data about a Declared type.
+ *
+ * @author dumoulin
+ *
+ */
+public class TypeAnalyser {
+
+ /**
+ * Data structure returned after type analyse
+ *
+ * @author dumoulin
+ *
+ */
+ public class TypeData {
+
+ List<String> qualifiedName;
+
+ /** template parameters */
+ protected List<TypeData> genericData;
+
+ boolean isInterface = false;
+
+ /** PrimitiveType */
+ boolean isPrimitive = false;
+
+ /** ReferenceType */
+ protected int arrayCount;
+
+ /** For Wildcard */
+ protected boolean isWildcard = false;
+
+ protected TypeData extends_;
+
+ protected TypeData super_;
+
+ /** VoidType */
+ protected boolean isVoid = false;
+
+ }
+
+ /** Catalog of imported types. Used to translate short name to QualifiedNames */
+ private ImportedTypeCatalog importedTypes;
+
+ /**
+ * Constructor.
+ *
+ * @param importedType
+ */
+ public TypeAnalyser(ImportedTypeCatalog importedType) {
+ this.importedTypes = importedType;
+ }
+
+ /**
+ * Get the Type from an ast.Type node.
+ *
+ * @param astType
+ * @return
+ */
+ public TypeData getTypeData(japa.parser.ast.type.Type astType) {
+
+ TypeData res = createTypeData();
+
+ new SwitchVisitor<TypeData>() {
+
+ /**
+ * Get type from a class.
+ */
+ @Override
+ public void visit(ClassOrInterfaceType n, TypeData data) {
+ List<String> qnameBefore = getQualifiedName(n);
+ List<String> qname = importedTypes.getQualifiedName(qnameBefore);
+
+ data.qualifiedName = qname;
+ // Check for generic parameters
+ if (n.getTypeArgs() != null) {
+ data.genericData = new ArrayList<TypeData>();
+ for (japa.parser.ast.type.Type arg : n.getTypeArgs()) {
+ TypeData argData = createTypeData();
+ arg.accept(this, argData);
+ data.genericData.add(argData);
+ }
+ }
+ }
+
+ @Override
+ public void visit(ReferenceType n, TypeData data) {
+ // skip the reference node and process the child.
+ // Should not appear in an type use (in Attribute or method)
+ data.arrayCount = n.getArrayCount();
+ n.getType().accept(this, data);
+ }
+
+ @Override
+ public void visit(PrimitiveType n, TypeData data) {
+ String qnameBefore = getPrimitiveName(n);
+ List<String> qname = importedTypes.getQualifiedName(qnameBefore);
+
+ data.qualifiedName = qname;
+ data.isPrimitive = true;
+ }
+
+ @Override
+ public void visit(WildcardType n, TypeData data) {
+ data.isWildcard = true;
+ if (n.getExtends() != null) {
+ data.extends_ = createTypeData();
+ n.getExtends().accept(this, data.extends_);
+ }
+ if (n.getSuper() != null) {
+ data.super_ = createTypeData();
+ n.getSuper().accept(this, data.super_);
+ }
+
+ }
+
+ @Override
+ public void visit(VoidType n, TypeData data) {
+ // TODO Auto-generated method stub
+ data.isVoid = true;
+ }
+
+ }.doSwitch(astType, res);
+
+ return res;
+ }
+
+ /**
+ * Create a new instance.
+ * Can be subclassed to use another type.
+ *
+ * @return
+ */
+ protected TypeData createTypeData() {
+ return new TypeData();
+ }
+
+ /**
+ * Get the qualified name from the provided type.
+ *
+ * @param n
+ * @return
+ */
+ private List<String> getQualifiedName(ClassOrInterfaceType n) {
+ List<String> qname = new ArrayList<String>();
+
+ getQualifiedName(n, qname);
+ return qname;
+ }
+
+ /**
+ * Walk each part of the name and put it in the resulting List.
+ *
+ * @param n
+ * @param qname
+ */
+ private void getQualifiedName(ClassOrInterfaceType n, List<String> qname) {
+ if (n.getScope() != null) {
+ getQualifiedName(n.getScope(), qname);
+ }
+ qname.add(n.getName());
+ }
+
+ /**
+ * Create the uml2.primitivetype denoted by the specified PrimitiveType
+ *
+ * @param n
+ * @return
+ */
+ private String getPrimitiveName(PrimitiveType n) {
+ String typeName = null;
+
+ switch (n.getType()) {
+ case Boolean:
+ typeName = "Boolean";
+ break;
+ case Byte:
+ typeName = "Byte";
+ break;
+ case Char:
+ typeName = "Char";
+ break;
+ case Double:
+ typeName = "Double";
+ break;
+ case Float:
+ typeName = "Float";
+ break;
+ case Int:
+ typeName = "Integer";
+ break;
+ case Long:
+ typeName = "Long";
+ break;
+ case Short:
+ typeName = "Short";
+ break;
+ }
+
+ return typeName;
+ }
+
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/TypeAnalyserAndTranslator.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/TypeAnalyserAndTranslator.java
new file mode 100644
index 00000000000..d551fde8532
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/TypeAnalyserAndTranslator.java
@@ -0,0 +1,151 @@
+/**
+ *
+ */
+package javagen.umlparser;
+
+import japa.parser.ast.type.Type;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Allows to analyse an ast type, and to translate it according to recognized
+ * patterns.
+ * For example, this allow to translate from List<Xxx> to Xxx[0..1].
+ * TODO : improve to take into account Map, Set, ...
+ * Use an enum rather than a boolean. Allow to create association class specifying the real type used.
+ *
+ * @author dumoulin
+ *
+ */
+public class TypeAnalyserAndTranslator extends TypeAnalyser {
+
+ private List<List<String>> translationList = new ArrayList<List<String>>();
+
+ private static String[] defaultTranslatedType = {
+ "java.util.List",
+ "java.util.ArrayList",
+ "java.util.Collection",
+ "java.util.OrderedSet",
+ };
+
+
+ /**
+ * Constructor.
+ *
+ * @param importedType
+ */
+ public TypeAnalyserAndTranslator(ImportedTypeCatalog importedType) {
+ super(importedType);
+ initDefaultTranslatedTypes(defaultTranslatedType);
+ }
+
+ /**
+ * Get the translated type data from the astType.
+ *
+ * @param astType
+ * @return
+ */
+ public TranslatedTypeData getTranslatedTypeData(Type astType) {
+ TranslatedTypeData typeData = (TranslatedTypeData) getTypeData(astType);
+ // Does the type correspond to a list ?
+ translate(typeData);
+ return typeData;
+ }
+
+ /**
+ * Return the TRanslatedTypeData
+ */
+ @Override
+ protected TypeData createTypeData() {
+ return new TranslatedTypeData();
+ }
+
+ /**
+ * Translate the type if it is a collection type.
+ *
+ * @param data
+ */
+ private void translate(TranslatedTypeData data) {
+ List<String> qname = data.qualifiedName;
+ if (translationList.contains(qname)) {
+ // Check for one and only one template parameter
+ if (data.genericData != null && data.genericData.size() == 1) {
+ System.out.println("translate '" + qname + "'");
+ // Set translatable if it is a valide inner type (i.e. not a wildcard)
+ if (!data.genericData.get(0).isWildcard) {
+ data.isTranslatable = true;
+ }
+ data.isCollection = true;
+ } else if (data.genericData == null) { // Collection type, with nospecified type :-(
+ data.isCollection = true;
+ }
+ } else if (data.arrayCount > 0) {
+ data.isCollection = true;
+ }
+
+ // not translatable
+ }
+
+
+ /**
+ * Data structure returned
+ *
+ * @author dumoulin
+ *
+ */
+ public class TranslatedTypeData extends TypeData {
+
+ /** is the type translatable (can we use the generic's one) ? */
+ public boolean isTranslatable = false;
+
+ /** is the type denoting a collection ? */
+ public boolean isCollection = false;
+
+ /**
+ * Get the Real name, taking into account if it is a generic.
+ *
+ * @return
+ */
+ public List<String> getTranslatedQualifiedName() {
+ if (isTranslatable) {
+ return genericData.get(0).qualifiedName;
+ } else {
+ return qualifiedName;
+ }
+ }
+
+ public int getTranslatedUpper() {
+ if (isCollection) {
+ return -1;
+ } else {
+ return 1;
+ }
+ }
+
+ public int getTranslatedLower() {
+ if (isCollection) {
+ return 0;
+ } else {
+ return 0;
+ }
+ }
+
+ public boolean isCollection() {
+ return isCollection;
+ }
+ }
+
+ /**
+ * Set the default mappings
+ *
+ * @param defaultMappingNames
+ */
+ private void initDefaultTranslatedTypes(String[] defaultTranslatedTypes) {
+ for (int i = 0; i < defaultTranslatedTypes.length; i++) {
+ translationList.add(UmlUtils.toQualifiedName(defaultTranslatedTypes[i]));
+ }
+ }
+
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/UmlParser.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/UmlParser.java
new file mode 100644
index 00000000000..51bf3d209a5
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/UmlParser.java
@@ -0,0 +1,163 @@
+/**
+ *
+ */
+package javagen.umlparser;
+
+import japa.parser.JavaParser;
+import japa.parser.ParseException;
+import japa.parser.ast.CompilationUnit;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Arrays;
+
+/**
+ * @author dumoulin
+ *
+ */
+public class UmlParser {
+
+ /**
+ * The visitor used to collect model.
+ */
+ protected CompilationUnitAnalyser visitor;
+
+ public UmlParser() {
+ }
+
+ /**
+ * Select the appropriate parsing method according to the file type.
+ *
+ * @param file
+ * @throws ParseException
+ * @throws IOException
+ */
+ public void parseResource(File file) throws ParseException, IOException {
+ if (file.isDirectory()) {
+ System.out.println(" '" + file.getAbsolutePath() + " is a directory");
+ parsePackage(file);
+ } else if (file.isFile()) {
+ System.out.println(" '" + file.getAbsolutePath() + " is a file");
+ // Parse only file ending in .java
+ if (file.getName().endsWith(".java")) {
+ parseFile(file);
+ } else {
+ System.out.println("skip non java file '" + file.getAbsolutePath() + "'");
+ }
+ } else {
+ System.out.println(" '" + file.getAbsolutePath() + " can't be identified - " + file);
+ }
+ }
+
+ /**
+ * Explore the package to call parse on classes
+ *
+ * @param file
+ * @throws ParseException
+ * @throws IOException
+ */
+ public void parsePackage(File file) throws ParseException, IOException {
+ for (File f : file.listFiles()) {
+ parseResource(f);
+ }
+ }
+
+ /**
+ * Parse the specified file
+ *
+ * @param filename
+ * @throws IOException
+ * @throws ParseException
+ */
+ protected void parseFile(File file) throws ParseException, IOException {
+ CompilationUnit cu = JavaParser.parse(file);
+ // prints the resulting compilation unit to default system output
+ // System.out.println(cu.toString());
+
+ // visitor.visit(cu, null);
+
+ visitor.processCompilationUnit(cu);
+ }
+
+ /**
+ * Select the appropriate parse method according to the type of the
+ * resource denoted by the name.
+ *
+ * @param resourceName
+ * @throws IOException
+ * @throws ParseException
+ */
+ public void parseResource(String resourceName) throws ParseException, IOException {
+ File file = new File(resourceName);
+ parseResource(file);
+ }
+
+ public void execute(String resourcePath, String outputModelName) throws ParseException, IOException {
+ System.out.println("resource=" + resourcePath);
+ // Load model
+ ModelManager modelManager = new ModelManager();
+ modelManager.createModel(outputModelName);
+ // modelManager.getModel().load(null);
+ // Create visitor
+ visitor = new CompilationUnitAnalyser(modelManager.getModel());
+ // parse all file using the visitor
+ parseResource(resourcePath);
+
+ // Save the model
+ modelManager.save();
+
+ }
+
+ public void executeTest(String resourcePath, String outputModelName) throws ParseException, IOException {
+ System.out.println("resource=" + resourcePath);
+ // Load model
+ ModelManager modelManager = new ModelManager();
+ modelManager.createModel(outputModelName);
+ // modelManager.getModel().load(null);
+ // Create visitor
+ String javaccDir = "H:/temp/papyrus/papyrus-gmf-head2/org.eclipse.papyrus.java.reverse/src/japa/parser";
+ String javagenDir = "H:/temp/papyrus/papyrus-gmf-head2/org.eclipse.papyrus.java.reverse/src/javagen/umlparser";
+ ;
+
+ String[] paths = {
+ "javagen",
+ "javacc",
+ };
+ visitor = new CompilationUnitAnalyser(modelManager.getModel(), "javacc", null);
+ // parse all file using the visitor
+ parseResource(javaccDir);
+
+ // Second parsing with same model
+ visitor = new CompilationUnitAnalyser(modelManager.getModel(), "javagen", Arrays.asList(paths));
+ // parse all file using the visitor
+ parseResource(javagenDir);
+
+ // Save the model
+ modelManager.save();
+
+ }
+
+ public static void main(String args[]) {
+
+ if (args.length == 1) {
+ try {
+ UmlParser p = new UmlParser();
+ p.execute(args[0], "myfile.uml");
+ // p.executeTest(args[0], "myfile.uml");
+ } catch (IOException e) {
+ e.printStackTrace();
+ } catch (ParseException e) {
+ System.out.println("Problems encountered during parsing.");
+ e.printStackTrace();
+ }
+
+ } else {
+ System.out.println("Please select a file or directory to parse");
+ return;
+ }
+
+
+ }
+
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/UmlUtils.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/UmlUtils.java
new file mode 100644
index 00000000000..327cbb3c828
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/javagen/umlparser/UmlUtils.java
@@ -0,0 +1,1054 @@
+/**
+ *
+ */
+package javagen.umlparser;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.uml2.uml.BehavioredClassifier;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.DataType;
+import org.eclipse.uml2.uml.Dependency;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.InterfaceRealization;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Namespace;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PackageableElement;
+import org.eclipse.uml2.uml.PrimitiveType;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Realization;
+import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * Utility methods.
+ * <ul>
+ * <li>getXxx() methods lookup for the element and create it if not found.</li>
+ * <li>lookup() methods lookup for the element.</li>
+ * <li>xxx( Resource, ...) methods lookup from the model container.</li>
+ * <li>xxx( Package, ...) methods lookup from the specified package?</li>
+ * </ul>
+ *
+ * The following methods can be used:
+ * <ul>
+ * <li>package.getPackagedElement( name, b, type, createOnDemand) : PackageableElement</li>
+ * <li>package.getNestPacke()</li>
+ * <li>package.getOwnedType(name, b, type, createOnDemand) : Type</li>
+ * </ul>
+ *
+ * @author dumoulin
+ *
+ */
+public class UmlUtils {
+
+ private static final String WILDCARD = "*";
+
+ /**
+ * Get the qualified name from a name.
+ * Name is splitted arround '.'
+ *
+ * @param name
+ * @return
+ */
+ public static List<String> toQualifiedName(String qname) {
+ String[] splittedName = qname.split("\\.");
+ return Arrays.asList(splittedName);
+ }
+
+ /**
+ * Get the qualified name from a name.
+ * Name is splitted arround '/'
+ *
+ * @param name
+ * @return
+ */
+ public static List<String> slashNameToQualifiedName(String qname) {
+ String[] splittedName = qname.split("/");
+ return Arrays.asList(splittedName);
+ }
+
+ /**
+ * Lookup for the specified package in the parent package. Create it if not found.
+ *
+ * @param parent
+ * the containing package
+ * @param name
+ * Package to get
+ * @return The requested package (never null)
+ */
+ public static Package getPackage(Package parent, String name) {
+ // Get or create an instance of the specified package.
+ Package p = (Package) parent.getPackagedElement(name, false, UMLPackage.eINSTANCE.getPackage(), true);
+ return p;
+ }
+
+ /**
+ * Lookup for the specified package in the parent package. Create it if not found.
+ *
+ * @param parent
+ * the containing package
+ * @param name
+ * Package to get
+ * @return The requested package (never null)
+ */
+ public static Package getModel(Package parent, String name) {
+
+ Package p = lookupPackage(parent, name);
+ if (p == null)
+ {
+ // Create as model
+ p = (Package) parent.getPackagedElement(name, false, UMLPackage.eINSTANCE.getModel(), true);
+ }
+ return p;
+ }
+
+ /**
+ * Lookup for the specified package in the parent package. Do not create it.
+ *
+ * @param parent
+ * the containing package
+ * @param name
+ * Package to get
+ * @return The requested package (never null)
+ */
+ private static Package lookupPackage(Package parent, String name) {
+ // Get or create an instance of the specified package.
+ Package p = (Package) parent.getPackagedElement(name, false, UMLPackage.eINSTANCE.getPackage(), false);
+ return p;
+ }
+
+ /**
+ * Lookup for the specified Namespace in the parent Namespace. Do not create it.
+ *
+ * @param parent
+ * the containing package
+ * @param name
+ * Package to get
+ * @return The requested package (never null)
+ */
+ private static Namespace lookupNamespace(Namespace parent, String name) {
+ // Get or create an instance of the specified package.
+ NamedElement foundElement = parent.getOwnedMember(name);
+ if (foundElement instanceof Namespace) {
+ return (Namespace) foundElement;
+ }
+ // Not found
+ return null;
+ }
+
+
+ /**
+ * Get the package containing the last package of the qualifiedName.
+ * Create any missing package if needed
+ * Do not lookup for the last element.
+ * If there is no scope package in the qualifiedName, return the root.
+ *
+ * @param root
+ * @param qualifiedName
+ * @return The containing package (never null)
+ */
+ public static Package getContainingPackage(Package root, List<String> qualifiedName) {
+ Package cur = root;
+ for (int i = 0; i < qualifiedName.size() - 1; i++) {
+ String name = qualifiedName.get(i);
+ cur = getPackage(cur, name);
+ // if(cur==null)
+ // return null;
+ }
+ return cur;
+ }
+
+ /**
+ * Get the package containing the last package of the qualifiedName.
+ * Create any missing package if needed
+ * Do not lookup for the last element.
+ * If there is no scope package in the qualifiedName, return the root.
+ *
+ * @param root
+ * @param qualifiedName
+ * @return The containing package (never null)
+ */
+ private static Package lookupContainingPackage(Package root, List<String> qualifiedName) {
+ Package cur = root;
+ for (int i = 0; i < qualifiedName.size() - 1; i++) {
+ String name = qualifiedName.get(i);
+ cur = lookupPackage(cur, name);
+ if (cur == null) {
+ return null;
+ }
+ }
+ return cur;
+ }
+
+ /**
+ * Get the Namespace containing the last namespace of the qualifiedName.
+ * Do not lookup for the last element.
+ * If there is no scope package in the qualifiedName, return the root.
+ *
+ * @param parent
+ * @param qualifiedName
+ * @return The containing package (never null)
+ */
+ private static Namespace lookupContainingNamespace(Namespace parent, List<String> qualifiedName) {
+ Namespace cur = parent;
+ for (int i = 0; i < qualifiedName.size() - 1; i++) {
+ String name = qualifiedName.get(i);
+ cur = lookupNamespace(parent, name);
+ if (cur == null) {
+ return null;
+ }
+ }
+ return cur;
+ }
+
+ /**
+ * Get the package containing the {@value #WILDCARD}.
+ * Do not create intermediate packages.
+ * Do not lookup for the last element.
+ * The qualified name contains a {@value #WILDCARD}, lookup the package just before it.
+ *
+ * @param root
+ * @param qualifiedName
+ * @return The containing package or null if not found.
+ */
+ public static Package lookupPackageBeforeWildcard(Package root, List<String> qualifiedName) {
+ Package cur = root;
+ for (int i = 0; i < qualifiedName.size(); i++) {
+ String name = qualifiedName.get(i);
+ // Stop if we encounter the wilcard.
+ if (WILDCARD.equals(name)) {
+ break;
+ }
+
+ cur = lookupPackage(cur, name);
+ if (cur == null) {
+ return null;
+ }
+ }
+ return cur;
+ }
+
+
+ /**
+ * Get the package containing the last package of the qualifiedName.
+ * Create any missing package if needed
+ * Do not lookup for the last element.
+ * If there is no scope package in the qualifiedName, return the root.
+ *
+ * @param model
+ * @param qualifiedName
+ * @return The containing package (never null)
+ */
+ public static Package getContainingPackage(Resource model, List<String> qualifiedName) {
+ Package cur = getNamedElement(model, UMLPackage.eINSTANCE.getPackage(), qualifiedName.get(0));
+
+ for (int i = 1; i < qualifiedName.size() - 1; i++) {
+ String name = qualifiedName.get(i);
+ cur = getPackage(cur, name);
+ // if(cur==null)
+ // return null;
+ }
+ return cur;
+ }
+
+ /**
+ * Get the package containing the last package of the qualifiedName.
+ * Create any missing package if needed
+ * Do not lookup for the last element.
+ * If there is no scope package in the qualifiedName, return the root.
+ *
+ * @param model
+ * @param qualifiedName
+ * @return The containing package or null if not found.
+ */
+ private static Package lookupContainingPackage(Resource model, List<String> qualifiedName) {
+ Package cur = lookupNamedElement(model, UMLPackage.eINSTANCE.getPackage(), qualifiedName.get(0));
+ if (cur == null) {
+ return null;
+ }
+
+ for (int i = 1; i < qualifiedName.size() - 1; i++) {
+ String name = qualifiedName.get(i);
+ cur = lookupPackage(cur, name);
+ if (cur == null) {
+ return null;
+ }
+ }
+ return cur;
+ }
+
+ /**
+ * Get the Package corresponding to the qname.
+ * Create all missing package
+ *
+ * @param qualifiedName
+ * @return The requested package (never null)
+ */
+ public static Package getPackage(Resource model, List<String> qualifiedName) {
+ Package cur = getNamedElement(model, UMLPackage.eINSTANCE.getPackage(), qualifiedName.get(0));
+
+ for (int i = 1; i < qualifiedName.size(); i++) {
+ String name = qualifiedName.get(i);
+ cur = getPackage(cur, name);
+ // if(cur==null)
+ // return null;
+ }
+ return cur;
+ }
+
+ /**
+ * Lookup the Package corresponding to the qname in specified model resource..
+ *
+ * @param qualifiedName
+ * @return The requested package or null if not found
+ */
+ public static Package lookupPackage(Resource model, List<String> qualifiedName) {
+ Package cur = lookupNamedElement(model, UMLPackage.eINSTANCE.getPackage(), qualifiedName.get(0));
+ if (cur == null) {
+ return null;
+ }
+
+ for (int i = 1; i < qualifiedName.size(); i++) {
+ String name = qualifiedName.get(i);
+ cur = lookupPackage(cur, name);
+ if (cur == null) {
+ return null;
+ }
+ }
+ return cur;
+ }
+
+ /**
+ * Get the Package corresponding to the qname.
+ * Create all missing package
+ *
+ * @param parent
+ * @param qualifiedName
+ * @return The requested package (never null)
+ */
+ public static Package getPackage(Package parent, List<String> qualifiedName) {
+ Package cur = parent;
+ for (int i = 0; i < qualifiedName.size(); i++) {
+ String name = qualifiedName.get(i);
+ cur = getPackage(cur, name);
+ // if(cur==null)
+ // return null;
+ }
+ return cur;
+ }
+
+ /**
+ * Get the Model corresponding to the qname.
+ * Create all missing package.
+ *
+ * @param parent
+ * @param qualifiedName
+ * @return The requested package (never null)
+ */
+ public static Package getModel(Package parent, List<String> qualifiedName) {
+ Package cur = parent;
+
+ // Get the intermediate as Package
+ int i = 0;
+ for (i = 0; i < qualifiedName.size() - 1; i++) {
+ String name = qualifiedName.get(i);
+ cur = getPackage(cur, name);
+ }
+ // Get the last one as Model
+ String name = qualifiedName.get(i);
+ cur = getModel(cur, name);
+
+ return cur;
+ }
+
+ /**
+ * Get the Package corresponding to the qname.
+ *
+ * @param parent
+ * @param qualifiedName
+ * @return The requested package or null if not found
+ */
+ public static Package lookupPackage(Package parent, List<String> qualifiedName) {
+ Package cur = parent;
+ for (int i = 0; i < qualifiedName.size(); i++) {
+ String name = qualifiedName.get(i);
+ cur = lookupPackage(cur, name);
+ if (cur == null) {
+ return null;
+ }
+ }
+ return cur;
+ }
+
+ /**
+ * get (lookup or create) the specified NamedElement with the requested type
+ *
+ * @param <R>
+ * should be equals to expected type.
+ * @param model
+ * @param expectedType
+ * @param name
+ * @return
+ */
+ protected static <R extends NamedElement> R getNamedElement(Resource model, EClass expectedType, String name) {
+
+ for (Object cur : model.getContents()) {
+ // System.out.println("Compare " + cur.getClass().getName() + "-->" + name );
+ if (expectedType.getInstanceClass().isInstance(cur) && name.equals(((NamedElement) cur).getName())) {
+ // System.out.println("found !!!");
+ return (R) cur;
+ }
+ }
+
+ // Create it
+ R res = (R) UMLFactory.eINSTANCE.create(expectedType);
+ res.setName(name);
+ model.getContents().add(res);
+ return res;
+ }
+
+ /**
+ * Lookup for the specified NamedElement with the requested type from the model container.
+ *
+ * @param <R>
+ * @param model
+ * @param expectedType
+ * @param name
+ * @return
+ */
+ protected static <R extends NamedElement> R lookupNamedElement(Resource model, EClass expectedType, String name) {
+
+ for (Object cur : model.getContents()) {
+ if (expectedType.isInstance(cur) && name.equals(((NamedElement) cur).getName())) {
+ return (R) cur;
+ }
+ }
+
+ return null;
+ }
+
+
+ /**
+ * Lookup or create the requested qualifiedName. Create it with the specified type.
+ *
+ * @param parentPackage
+ * @param generalQualifiedName
+ * @param expectedType
+ * @return
+ */
+ public static <R extends Type> R getClassifier(Package parent, List<String> qualifiedName, EClass expectedType) {
+ // Get or create containing packages
+ Package p = getContainingPackage(parent, qualifiedName);
+ // Use the last name to create the element
+ return (R) p.getOwnedType(qualifiedName.get(qualifiedName.size() - 1), false, expectedType, true);
+ }
+
+ /**
+ * Lookup the corresponding classifier to the qname in specified model resource..
+ *
+ * @param qualifiedName
+ * @return The requested package or null if not found
+ */
+ public static <R extends Type> R lookupClassifier(Resource model, List<String> qualifiedName, EClass expectedType) {
+ Package p = lookupContainingPackage(model, qualifiedName);
+ if (p == null) {
+ return null;
+ }
+
+ return (R) p.getOwnedType(qualifiedName.get(qualifiedName.size() - 1), false, expectedType, false);
+ }
+
+ /**
+ * Lookup for the classifier with specified qualifiedName in specified model resource..
+ *
+ * @param qualifiedName
+ * @return The requested package or null if not found
+ */
+ public static <R extends Type> R lookupClassifierWithWildcard(Resource model, List<String> qualifiedName, EClass expectedType) {
+ Package p = lookupContainingPackage(model, qualifiedName);
+ if (p == null) {
+ return null;
+ }
+
+ return (R) p.getOwnedType(qualifiedName.get(qualifiedName.size() - 1), false, expectedType, false);
+ }
+
+
+ /**
+ * Lookup for the classifier with specified qualifiedName in specified model resource..
+ * Don't Create it .
+ * The qualifiedName can contain a wildcard "*".
+ *
+ * @param parentPackage
+ * @param generalQualifiedName
+ * @param expectedType
+ * @return Found classifier or null
+ */
+ public static <R extends Type> R lookupClassifierWithWildcard(Package parent, List<String> qualifiedName, EClass expectedType) {
+
+ int wildcardIndex = qualifiedName.indexOf(WILDCARD);
+ // If there is no wildcard, use more simple implementation.
+ if (wildcardIndex < 0) {
+ return lookupClassifier(parent, qualifiedName, expectedType);
+ }
+
+ // Get containing package till the WILDCARD
+ Package p = lookupPackageBeforeWildcard(parent, qualifiedName);
+ // If not found, return
+ if (p == null) {
+ return null;
+ }
+
+ // Use the last name to lookup the element
+ // Look for existing packages at the place of the wildcard.
+ List<Package> existingPackages = p.getNestedPackages();
+ // Get the remaining path from ]index, size]
+ List<String> remainingPath = qualifiedName.subList(wildcardIndex + 1, qualifiedName.size());
+ // Now continue searching from the existing packages
+ for (Package nestedPackage : existingPackages) {
+
+ R r = lookupClassifier(nestedPackage, qualifiedName, expectedType);
+ if (r != null) {
+ return r;
+ }
+ }
+
+ // Nothing found
+ return null;
+ }
+
+ /**
+ * Lookup the requested qualifiedName. Don't Create it .
+ *
+ * @param parentPackage
+ * @param generalQualifiedName
+ * @param expectedType
+ * @return Found classifier or null
+ */
+ public static <R extends Type> R lookupClassifier(Package parent, List<String> qualifiedName, EClass expectedType) {
+ // Get containing package
+ Package p = lookupContainingPackage(parent, qualifiedName);
+ if (p == null) {
+ return null;
+ }
+ // Use the last name to create the element
+ return (R) p.getOwnedType(qualifiedName.get(qualifiedName.size() - 1), false, expectedType, false);
+ }
+
+ /**
+ * Lookup the requested qualifiedName. Don't Create it .
+ *
+ * @param parentPackage
+ * @param generalQualifiedName
+ * @param expectedType
+ * @return Found classifier or null
+ */
+ public static <R extends Classifier> R lookupClassifier(Namespace parent, List<String> qualifiedName, EClass expectedType) {
+ // Get containing package
+ Namespace p = lookupContainingNamespace(parent, qualifiedName);
+ if (p == null) {
+ return null;
+ }
+
+ parent = p;
+ String shortname = qualifiedName.get(qualifiedName.size() - 1);
+ Classifier result;
+
+ if (parent instanceof Package)
+ {
+ result = (Classifier) ((Package) parent).getOwnedType(shortname, false, expectedType, false);
+
+ }
+ else if (parent instanceof Interface)
+ {
+ result = ((Interface) parent).getNestedClassifier(shortname, false, expectedType, false);
+ }
+ else if (parent instanceof Class)
+ {
+ result = ((Class) parent).getNestedClassifier(shortname, false, expectedType, false);
+ }
+ else
+ {
+ // Should never happen !
+ return null;
+ }
+
+ return (R) result;
+ }
+
+ /**
+ * Lookup for the specified package in the parent package. Create it if not found.
+ *
+ * @param parent
+ * @param name
+ * Package to found
+ * @return
+ */
+ public static Class getClass(Package parent, String name) {
+ // Get or create an instance of the specified package.
+ Class p = (Class) parent.getOwnedType(name, false, UMLPackage.eINSTANCE.getClass_(), true);
+ return p;
+ }
+
+ /**
+ * Get the specified class from the specified parent.
+ * Missing package and the class are created if needed.
+ *
+ * @param parent
+ * @param qualifiedName
+ * @return
+ */
+ public static Class getClass(Package parent, List<String> qualifiedName) {
+ Package p = getContainingPackage(parent, qualifiedName);
+ // Use the last name to create the element
+ return getClass(p, qualifiedName.get(qualifiedName.size() - 1));
+ }
+
+ /**
+ *
+ * @param enclosingParents
+ * list of enclosing parent, from the most outerside to the most inner side.
+ * @param name
+ * @return
+ */
+ public static Class getClass(List<Namespace> enclosingParents, String name) {
+
+ EClass type = UMLPackage.eINSTANCE.getClass_();
+ Class result = (Class) getClassifier(enclosingParents, name, type);
+
+ return result;
+ }
+
+ /**
+ * Get or create a Classifier by its name. The type of the classifier can be Class or Interface
+ * Lookup is done in the provided namespaces, using the short name.
+ * The classifier is expected to be in the directly enclosing parent, but lookup is done in all enclosing parents.
+ * If the position is not the one expected, the found classifier is moved to the enclosing parent.
+ *
+ * If not found, create the classifier in the directly enclosing namespace.
+ * If found, correct the classifier parent to be the directly enclosing namespace. Eventually correct the type
+ * if it doesn't match.
+ *
+ * @param enclosingParents
+ * @param name
+ * @param type
+ * @return
+ */
+ private static Classifier getClassifier(List<Namespace> enclosingParents, String name, EClass type) {
+ Classifier result = null;
+ int parentsCount = enclosingParents.size();
+ // Get the direct parent
+ Namespace parent = enclosingParents.get(parentsCount - 1);
+
+ // Look in enclosing parents
+ for (int i = parentsCount - 1; i >= 0; i--)
+ {
+ Namespace namespace = enclosingParents.get(i);
+
+ // Lookup for the exact type
+ result = (Classifier) namespace.getOwnedMember(name, false, type);
+ if (result == null)
+ {
+ // Lookup for the other type
+ result = (Classifier) namespace.getOwnedMember(name, false, UMLPackage.eINSTANCE.getClassifier());
+ }
+
+ // Here, the result should have the correct type
+ if (result != null)
+ {
+ // Change type if needed
+ if (result.eClass() != type) {
+ System.err.println("Classifier type need to be corrected for (" + result.getQualifiedName() + ")");
+ // Correct the classifier type
+ result = (Classifier) transformInto(result, type);
+ }
+ // Check if parent need to be corrected
+ if (result.getOwner() != parent) {
+
+ // Correct the parent
+ setClassifierOwner(result, parent);
+ // Get the transformed element.
+ }
+
+ // Found, return it
+ return result;
+ }
+ }
+
+ // Not found, create in the direct parent.
+
+ if (parent instanceof Package)
+ {
+ result = (Classifier) ((Package) parent).getOwnedType(name, false, type, true);
+
+ }
+ else if (parent instanceof Interface)
+ {
+ result = ((Interface) parent).createNestedClassifier(name, type);
+ }
+ else if (parent instanceof Class)
+ {
+ result = ((Class) parent).createNestedClassifier(name, type);
+ }
+ else
+ {
+ // Should never happen !
+ // The first namespace is always the package.
+ Package parentPackage = (Package) enclosingParents.get(0);
+ result = (Classifier) parentPackage.getOwnedType(name, false, type, true);
+ }
+ return result;
+ }
+
+ /**
+ * Change the owner of the classifier
+ *
+ * @param classifier
+ * The classifier to change the parent
+ * @param newParent
+ * The parent to set.
+ */
+ private static void setClassifierOwner(Classifier classifier, Namespace newParent) {
+ // Not found, create in the direct parent.
+ if (newParent instanceof Package)
+ {
+ classifier.setPackage((Package) newParent);
+
+ }
+ else if (newParent instanceof Interface)
+ {
+
+ ((Interface) newParent).getNestedClassifiers().add(classifier);
+ }
+ else if (newParent instanceof Class)
+ {
+ ((Class) newParent).getNestedClassifiers().add(classifier);
+ }
+ else
+ {
+ // Should never happen !
+ // The first namespace is always the package.
+ System.err.println("Don't know how to change classifier owner for " + newParent);
+ }
+ }
+
+ /**
+ * Transform the element into the specified type
+ *
+ * @param toTransform
+ * Classifier to transform (Class or interface)
+ * @param type
+ * Type to transform into
+ */
+ private static EObject transformInto(Classifier toTransform, EClass type) {
+
+ GenericTransformer transformer = new GenericTransformer(toTransform);
+ EObject result = transformer.transform(type);
+ return result;
+
+ }
+
+ /**
+ * Get or create a guessed Classifier by its name. The type of the classifier can be Class or Interface.
+ * A guessed classifier is a classifier specified by an attribute, a parameter, a return type ...
+ * First, lookup for a Classifier with the same name, and return it regardless of its type.
+ * If nothing is found, create a classifier with the specified type.
+ *
+ *
+ * If not found, create the classifier in the package (enclosingParent[0]).
+ * If found, return it.
+ *
+ * @param enclosingParents
+ * @param name
+ * The short name
+ * @param type
+ * the proposed type to use as a hint for creation.
+ * @return
+ */
+ public static Classifier getGuessedClassifier(List<Namespace> enclosingParents, List<String> name, EClass type) {
+ Classifier result = null;
+ int parentsCount = enclosingParents.size();
+ // Get the direct parent
+ Namespace parent = enclosingParents.get(parentsCount - 1);
+
+ // Look in enclosing parents
+ for (int i = parentsCount - 1; i >= 0; i--)
+ {
+ Namespace namespace = enclosingParents.get(i);
+
+ // Lookup for any type
+ result = lookupClassifier(namespace, name, UMLPackage.eINSTANCE.getClassifier());
+ // result = (Classifier)namespace.getOwnedMember(name, false, UMLPackage.eINSTANCE.getClassifier());
+ if (result != null)
+ {
+ return result;
+ }
+ }
+
+ // Not found, create in the direct parent.
+ // The first namespace is always the package.
+ Package parentPackage = (Package) enclosingParents.get(0);
+ result = (Classifier) getClassifier(parentPackage, name, type);
+ // result = (Classifier) ((Package)parentPackage).getOwnedType(name, false, type, true);
+
+ return result;
+ }
+
+ /**
+ *
+ * @param parent
+ * @param name
+ * @return
+ */
+ public static Interface getInterface(Package parent, String name) {
+ Interface p = (Interface) parent.getOwnedType(name, false, UMLPackage.eINSTANCE.getInterface(), true);
+ return p;
+ }
+
+ /**
+ *
+ * @param enclosingParents
+ * list of enclosing parent, from the most outerside to the most inner side.
+ * @param name
+ * @return
+ */
+ public static Interface getInterface(List<Namespace> enclosingParents, String name) {
+ return (Interface) getClassifier(enclosingParents, name, UMLPackage.eINSTANCE.getInterface());
+ }
+
+ /**
+ * Create a Property and add it to the parent.
+ *
+ * @param parent
+ * @param name
+ * @param arrayCount
+ * @return
+ */
+ public static Property createProperty(Classifier parent, Type type, String name, int arrayCount) {
+ Property p;
+ if (parent instanceof Class) {
+ p = createProperty((Class) parent, type, name, arrayCount);
+ } else if (parent instanceof Interface) {
+ p = createProperty((Interface) parent, type, name, arrayCount);
+ } else {
+ return null;
+ }
+
+ p.setIsUnique(false);
+ return p;
+ }
+
+ /**
+ * Create a property for the Class
+ *
+ * @param parent
+ * @param type
+ * @param name
+ * @param arrayCount
+ * @return
+ */
+ public static Property createProperty(Class parent, Type type, String name, int arrayCount) {
+ return parent.getOwnedAttribute(name, type, false, UMLPackage.eINSTANCE.getProperty(), true);
+ }
+
+ /**
+ * Create a property for the Class
+ *
+ * @param parent
+ * @param type
+ * @param name
+ * @param arrayCount
+ * @return
+ */
+ public static Property createProperty(Interface parent, Type type, String name, int arrayCount) {
+ return parent.getOwnedAttribute(name, type, false, UMLPackage.eINSTANCE.getProperty(), true);
+ }
+
+ /**
+ * Create a Generalization relation between the specified Classifier
+ *
+ * @param child
+ * @param general
+ */
+ public static void getGeneralization(Classifier child, Classifier general) {
+ child.getGeneralization(general, true);
+ // child.createGeneralization(general);
+ }
+
+ /**
+ * Create a InterfaceRealization relation between the specified Classifier
+ *
+ * @param child
+ * @param general
+ */
+ public static void getInterfaceRealization(BehavioredClassifier child, Interface general) {
+ Realization res = lookupInterfaceRealization(child, general);
+ if (res == null) {
+ createInterfaceRealization(child, general);
+ }
+ }
+
+ /**
+ * Lookup for the specified realization inside the package
+ *
+ * @param parent
+ * @param child
+ * @param general
+ * @return
+ */
+ private static InterfaceRealization lookupInterfaceRealization(Classifier child, Classifier general) {
+ for (Dependency ele : child.getClientDependencies()) {
+ if (ele instanceof InterfaceRealization) {
+ InterfaceRealization real = (InterfaceRealization) ele;
+ if (real.getClients().contains(child) && real.getSuppliers().contains(general)) {
+ return real;
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Create a Generalization relation between the specified Classifier
+ *
+ * @param child
+ * @param general
+ */
+ public static void createInterfaceRealization(BehavioredClassifier child, Interface general) {
+ InterfaceRealization res = UMLFactory.eINSTANCE.createInterfaceRealization();
+
+ res.setContract(general);
+ res.setImplementingClassifier(child);
+
+ // res.getClients().add(child);
+ // res.getSuppliers().add(general);
+ res.setName(child.getName() + " implements " + general.getName());
+ // child.createGeneralization(general);
+ // child.getClientDependencies().add(res);
+ }
+
+
+ /**
+ * Create a Generalization relation between the specified Classifier
+ *
+ * @param child
+ * @param general
+ */
+ public static void getRealization(Package parent, Classifier child, Classifier general) {
+ Realization res = lookupRealization(parent, child, general);
+ if (res == null) {
+ createRealization(parent, child, general);
+ }
+ }
+
+ /**
+ * Lookup for the specified realization inside the package
+ *
+ * @param parent
+ * @param child
+ * @param general
+ * @return
+ */
+ private static Realization lookupRealization(Package parent, Classifier child, Classifier general) {
+ for (PackageableElement ele : parent.getPackagedElements()) {
+ if (ele instanceof Realization) {
+ Realization real = (Realization) ele;
+ if (real.getClients().contains(child) && real.getSuppliers().contains(general)) {
+ return real;
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Create a Generalization relation between the specified Classifier
+ *
+ * @param child
+ * @param general
+ */
+ public static void createRealization(Package parent, Classifier child, Classifier general) {
+ Realization res = UMLFactory.eINSTANCE.createRealization();
+ res.getClients().add(child);
+ res.getSuppliers().add(general);
+ res.setName(child.getName() + " extends " + general.getName());
+ parent.getPackagedElements().add(res);
+ }
+
+ /**
+ * Create a primitive type.
+ *
+ * @param root
+ * @param typeName
+ */
+ public static PrimitiveType getPrimitive(Package parent, String typeName) {
+ return (PrimitiveType) parent.getOwnedType(typeName, true, UMLPackage.eINSTANCE.getPrimitiveType(), true);
+
+ }
+
+ /**
+ * Get the specified class from the specified parent.
+ * Missing package and the class are created if needed.
+ *
+ * @param parent
+ * @param qualifiedName
+ * @return
+ */
+ public static PrimitiveType getPrimitive(Package parent, List<String> qualifiedName) {
+ Package p = getContainingPackage(parent, qualifiedName);
+ // Use the last name to create the element
+ return getPrimitive(p, qualifiedName.get(qualifiedName.size() - 1));
+ }
+
+ /**
+ * Get the specified operation from the provided type.
+ *
+ * @param classifier
+ * @param name
+ * @return
+ */
+ public static Operation getOperation(Classifier classifier, String name) {
+ // TODO Auto-generated method stub
+ List<Operation> opers = classifier.getOperations();
+ for (Operation op : opers) {
+ if (name.equals(op.getName())) {
+ return op;
+ }
+ }
+
+ Operation res = createOperation(classifier, name);
+ return res;
+ }
+
+ /**
+ * Create an operation with the specified name.
+ *
+ * @param classifier
+ * @param name
+ * @return
+ */
+ public static Operation createOperation(Classifier classifier, String name) {
+ // Not found, create it
+ Operation res = UMLFactory.eINSTANCE.createOperation();
+ res.setName(name);
+ if (classifier instanceof Class) {
+ ((Class) classifier).getOwnedOperations().add(res);
+ } else if (classifier instanceof Interface) {
+ ((Interface) classifier).getOwnedOperations().add(res);
+ } else if (classifier instanceof DataType) {
+ ((DataType) classifier).getOwnedOperations().add(res);
+ }
+ return res;
+ }
+
+
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/org/eclipse/papyrus/java/reverse/Activator.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/org/eclipse/papyrus/java/reverse/Activator.java
new file mode 100644
index 00000000000..eea09e53942
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/org/eclipse/papyrus/java/reverse/Activator.java
@@ -0,0 +1,54 @@
+package org.eclipse.papyrus.java.reverse;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.java.reverse";
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/org/eclipse/papyrus/java/reverse/utils/TypeOperationsEnhanced.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/org/eclipse/papyrus/java/reverse/utils/TypeOperationsEnhanced.java
new file mode 100644
index 00000000000..55a0f3132b3
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse/src/org/eclipse/papyrus/java/reverse/utils/TypeOperationsEnhanced.java
@@ -0,0 +1,184 @@
+/*****************************************************************************
+ * Copyright (c) 2012 Cedric Dumoulin.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.java.reverse.utils;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.uml2.uml.AggregationKind;
+import org.eclipse.uml2.uml.Association;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.internal.operations.TypeOperations;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A static utility class that provides operations related to '<em><b>Type</b></em>' model objects.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following operations are supported:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.Type#createAssociation(boolean, org.eclipse.uml2.uml.AggregationKind, java.lang.String, int, int, org.eclipse.uml2.uml.Type, boolean, org.eclipse.uml2.uml.AggregationKind, java.lang.String, int, int) <em>Create Association
+ * </em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.Type#getAssociations() <em>Get Associations</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.Type#conformsTo(org.eclipse.uml2.uml.Type) <em>Conforms To</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @copyright copied from org.eclipse.uml2.uml.internal.operations.TypeOperations
+ */
+public class TypeOperationsEnhanced extends TypeOperations {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected TypeOperationsEnhanced() {
+ super();
+ }
+
+ protected static Property setAssociationEnd(Property property,
+ Association association, boolean isNavigable,
+ AggregationKind aggregation) {
+
+ Property associationEnd = property;
+
+ associationEnd.setAggregation(aggregation);
+
+ if (isNavigable) {
+ association.getMemberEnds().add(associationEnd);
+ }
+
+ return associationEnd;
+ }
+
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Creates a(n) (binary) association between this type and the specified other type, with the specified navigabilities, aggregations, names, lower bounds, and upper bounds, and owned by this type's nearest package.
+ *
+ * @param type
+ * The receiving '<em><b>Type</b></em>' model object.
+ * @param end1IsNavigable
+ * The navigability for the first end of the new association.
+ * @param end1Aggregation
+ * The aggregation for the first end of the new association.
+ * @param end1Name
+ * The name for the first end of the new association.
+ * @param end1Lower
+ * The lower bound for the first end of the new association.
+ * @param end1Upper
+ * The upper bound for the first end of the new association.
+ * @param end1Type
+ * The type for the first end of the new association.
+ * @param end2IsNavigable
+ * The navigability for the second end of the new association.
+ * @param end2Aggregation
+ * The aggregation for the second end of the new association.
+ * @param end2Name
+ * The name for the second end of the new association.
+ * @param end2Lower
+ * The lower bound for the second end of the new association.
+ * @param end2Upper
+ * The upper bound for the second end of the new association.
+ * <!-- end-model-doc -->
+ * @generated NOT
+ */
+ public static Association createAssociationFromProperty(Property property,
+ boolean end1IsNavigable, AggregationKind end1Aggregation,
+ boolean end2IsNavigable, AggregationKind end2Aggregation,
+ String end2Name, int end2Lower, int end2Upper) {
+ return createAssociationFromProperty(property, end1IsNavigable, end1Aggregation,
+ end2IsNavigable, end2Aggregation,
+ end2Name, end2Lower, end2Upper,
+ UMLPackage.Literals.ASSOCIATION);
+ }
+
+ /**
+ *
+ * @param property
+ * @param end1IsNavigable
+ * @param end1Aggregation
+ * @param end2IsNavigable
+ * @param end2Aggregation
+ * @param end2Name
+ * @param end2Lower
+ * @param end2Upper
+ * @param eClass
+ * @return
+ */
+ protected static Association createAssociationFromProperty(Property property,
+ boolean end1IsNavigable, AggregationKind end1Aggregation,
+ boolean end2IsNavigable, AggregationKind end2Aggregation,
+ String end2Name, int end2Lower, int end2Upper,
+ EClass eClass) {
+
+ // Check if there the property is already part of an association
+ if (property.getAssociation() != null) {
+ return property.getAssociation();
+ }
+
+ // Get owner (end2Type)
+ Type type;
+ try {
+ type = (Type) property.getOwner();
+ } catch (ClassCastException e) {
+ throw new IllegalArgumentException("Property's owner should be a Type");
+ }
+
+ Type end1Type = property.getType();
+ // Validate end1
+ validateTypeAndBounds(end1Type, end2Lower, end2Upper);
+
+
+ org.eclipse.uml2.uml.Package package_ = type.getNearestPackage();
+
+ if (package_ == null) {
+ throw new IllegalStateException();
+ }
+
+ if (end1Aggregation == null) {
+ throw new IllegalArgumentException(String.valueOf(end1Aggregation));
+ }
+
+ if (end2Aggregation == null) {
+ throw new IllegalArgumentException(String.valueOf(end2Aggregation));
+ }
+
+ Association association = (Association) package_.createOwnedType(null, eClass);
+ association.setName("A_" + property.getName() + "_" + end2Name);
+
+ // Set end1
+ // createAssociationEnd(type, association, end1IsNavigable,
+ // end1Aggregation, end1Name, end1Lower, end1Upper, end1Type);
+ setAssociationEnd(property, association, end1IsNavigable,
+ end1Aggregation);
+
+ createAssociationEnd(end1Type, association, end2IsNavigable,
+ end2Aggregation, end2Name, end2Lower, end2Upper, type);
+
+
+
+
+
+ return association;
+ }
+
+} // TypeOperations \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/.classpath b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/.classpath
new file mode 100644
index 00000000000..2d1a4302f04
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/.project b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/.project
new file mode 100644
index 00000000000..4bfadfe48b4
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.java.template</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/.settings/org.eclipse.jdt.core.prefs b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..4759947300a
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,291 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=260
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=false
+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=260
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=5
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/.settings/org.eclipse.jdt.ui.prefs b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 00000000000..954281dbc31
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,68 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_functional_interfaces=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=false
+cleanup.format_source_code=false
+cleanup.format_source_code_changes_only=false
+cleanup.insert_inferred_type_arguments=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=false
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_redundant_type_arguments=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_anonymous_class_creation=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_lambda=true
+cleanup.use_parentheses_in_expressions=false
+cleanup.use_this_for_non_static_field_access=false
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=false
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_type_arguments=false
+cleanup_profile=_Papyrus
+cleanup_settings_version=2
+eclipse.preferences.version=1
+formatter_profile=_Papyrus
+formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * Constructor.\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*****************************************************************************\n * Copyright (c) ${year} CEA LIST and others.\n * \n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n * CEA LIST - Initial API and implementation\n * \n *****************************************************************************/\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\n * ${see_to_overridden}\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${see_to_target}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/META-INF/MANIFEST.MF b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..9c471179c14
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.core.resources,
+ org.eclipse.jface.text,
+ org.eclipse.jdt.core,
+ org.eclipse.jdt.ui,
+ org.eclipse.pde.core,
+ org.eclipse.ui
+Bundle-Vendor: Atos Origin
+Bundle-ActivationPolicy: lazy
+Bundle-Version: 1.2.0.qualifier
+Bundle-Name: Java Template
+Bundle-Activator: org.eclipse.papyrus.java.template.Activator
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.java.template;singleton:=true
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/about.html b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/about.html
new file mode 100644
index 00000000000..a80e9697355
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/about.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>About</title>
+</head><body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2006</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party ("Redistributor") and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body></html> \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/build.properties b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/build.properties
new file mode 100644
index 00000000000..534691f258d
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/build.properties
@@ -0,0 +1,6 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml
+src.includes = about.html
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/plugin.xml b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/plugin.xml
new file mode 100644
index 00000000000..f34d144cb6e
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/plugin.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.startup">
+ <startup
+ class="org.eclipse.papyrus.java.template.resolvers.RegisterResolver">
+ </startup>
+ </extension>
+
+</plugin>
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/src/org/eclipse/papyrus/java/template/Activator.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/src/org/eclipse/papyrus/java/template/Activator.java
new file mode 100644
index 00000000000..dc84187efd2
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/src/org/eclipse/papyrus/java/template/Activator.java
@@ -0,0 +1,63 @@
+/****************************************************************************
+ * Copyright (c) 2009 Atos Origin.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.java.template;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.java.template";
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.core.runtime.Plugins#start(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/src/org/eclipse/papyrus/java/template/resolvers/BundleActivatorResolver.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/src/org/eclipse/papyrus/java/template/resolvers/BundleActivatorResolver.java
new file mode 100644
index 00000000000..fddd864d9eb
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/src/org/eclipse/papyrus/java/template/resolvers/BundleActivatorResolver.java
@@ -0,0 +1,110 @@
+/****************************************************************************
+ * Copyright (c) 2009 Atos Origin.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.java.template.resolvers;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.internal.corext.template.java.CompilationUnitContext;
+import org.eclipse.jdt.internal.corext.template.java.JavaContext;
+import org.eclipse.jface.text.templates.TemplateContext;
+import org.eclipse.jface.text.templates.TemplateVariable;
+import org.eclipse.jface.text.templates.TemplateVariableResolver;
+import org.eclipse.pde.core.plugin.IPluginModelBase;
+import org.eclipse.pde.core.plugin.PluginRegistry;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.Constants;
+
+/**
+ * This class creates a new variable which resolve the activator class of the compilation unit.
+ *
+ * @author tlandre
+ *
+ */
+public class BundleActivatorResolver extends TemplateVariableResolver {
+
+ public BundleActivatorResolver() {
+ super("activatorLog", "Static field log in the activator containing the current compilation unit"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ *
+ * {@inheritDoc}
+ *
+ * @see TemplateVariableResolver#resolve(org.eclipse.jface.text.templates.TemplateContext)
+ *
+ */
+ @SuppressWarnings("restriction")
+ @Override
+ public void resolve(TemplateVariable variable, TemplateContext pContext) {
+ variable.setUnambiguous(true);
+ variable.setValue(""); //$NON-NLS-1$
+ if (pContext instanceof JavaContext) {
+ final JavaContext context = (JavaContext) pContext;
+ final IPluginModelBase pluginModelBase = PluginRegistry.findModel(getProject(context));
+ Bundle bundle = getBundle(pluginModelBase);
+ if (bundle != null) {
+ Object obj = bundle.getHeaders().get(Constants.BUNDLE_ACTIVATOR);
+ if (obj instanceof String) {
+ StringBuffer qualifiedName = new StringBuffer((String) obj);
+ qualifiedName.append(".log");
+ context.addStaticImport(qualifiedName.toString());
+ }
+ }
+ }
+
+ }
+
+ /**
+ * Get the bundle associated with the IPluginModelBase
+ *
+ * @param pluginModelBase
+ * a pluginModelBase. May be null.
+ * @return the bundle found or null.
+ */
+ private Bundle getBundle(IPluginModelBase pluginModelBase) {
+ Bundle bundle = null;
+ if (pluginModelBase != null && pluginModelBase.getBundleDescription() != null) {
+ bundle = Platform.getBundle(pluginModelBase.getBundleDescription().getSymbolicName());
+ }
+ return bundle;
+ }
+
+ /**
+ * Get the project of the compilation unit (if any) associated with the given JavaContext
+ *
+ * @param context
+ * the JavaContext. Must be not null.
+ * @return the project found or null
+ */
+ @SuppressWarnings("restriction")
+ private IProject getProject(CompilationUnitContext context) {
+ IProject project = null;
+ ICompilationUnit compilationUnit = context.getCompilationUnit();
+ if (compilationUnit != null) {
+ IJavaProject javaProject = compilationUnit.getJavaProject();
+ if (javaProject != null) {
+ project = javaProject.getProject();
+ }
+ }
+ return project;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.text.templates.TemplateVariableResolver#resolveAll(org.eclipse.jface.text.templates.TemplateContext)
+ */
+ @Override
+ protected String[] resolveAll(TemplateContext context) {
+ return new String[0];
+ }
+}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/src/org/eclipse/papyrus/java/template/resolvers/RegisterResolver.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/src/org/eclipse/papyrus/java/template/resolvers/RegisterResolver.java
new file mode 100644
index 00000000000..95c0461ac39
--- /dev/null
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.template/src/org/eclipse/papyrus/java/template/resolvers/RegisterResolver.java
@@ -0,0 +1,90 @@
+/****************************************************************************
+ * Copyright (c) 2009 Atos Origin.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.java.template.resolvers;
+
+import java.util.Iterator;
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jdt.internal.corext.template.java.CompilationUnitContextType;
+import org.eclipse.jdt.internal.ui.JavaPlugin;
+import org.eclipse.jface.text.templates.ContextTypeRegistry;
+import org.eclipse.papyrus.java.template.Activator;
+import org.eclipse.ui.IStartup;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.BundleEvent;
+import org.osgi.framework.BundleListener;
+
+/**
+ * This class registers the resolver into the ContextTypeRegistry
+ *
+ * @author tlandre
+ *
+ */
+public class RegisterResolver implements IStartup {
+
+ /**
+ *
+ * {@inheritDoc}
+ *
+ * @see IStartup#earlyStartup()
+ *
+ */
+ public void earlyStartup() {
+ // check if plug-in org.eclipse.jdt.ui is already active
+ Bundle bundle = Platform.getBundle(Activator.PLUGIN_ID);
+ if (bundle != null && bundle.getState() == Bundle.ACTIVE) {
+ // register resolvers
+ registerResolvers();
+ } else {
+ // register listener to get informed, when plug-in becomes active
+ final BundleContext bundleContext = Activator.getDefault().getBundle().getBundleContext();
+ if (bundleContext != null) {
+ bundleContext.addBundleListener(new BundleListener() {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.osgi.framework.BundleListener#bundleChanged(org.osgi.framework.BundleEvent)
+ */
+ public void bundleChanged(final BundleEvent pEvent) {
+ Bundle bundle = pEvent.getBundle();
+ if (!Activator.PLUGIN_ID.equals(bundle.getSymbolicName())) {
+ return;
+ }
+ if (bundle.getState() == Bundle.ACTIVE) {
+ // register resolvers
+ registerResolvers();
+ bundleContext.removeBundleListener(this);
+ }
+ }
+ });
+ }
+ }
+ }
+
+ /**
+ *
+ * Internal method to register resolvers with all context types.
+ *
+ */
+ private void registerResolvers() {
+ final ContextTypeRegistry codeTemplateContextRegistry = JavaPlugin.getDefault().getTemplateContextRegistry();
+ final Iterator ctIter = codeTemplateContextRegistry.contextTypes();
+ while (ctIter.hasNext()) {
+ Object object = ctIter.next();
+ if (object instanceof CompilationUnitContextType) {
+ CompilationUnitContextType contextType = (CompilationUnitContextType) object;
+ // Add the bundle activator resolver
+ contextType.addResolver(new BundleActivatorResolver());
+ }
+ }
+ }
+}
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/.classpath b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/.classpath
new file mode 100644
index 00000000000..ad32c83a788
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/.project b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/.project
new file mode 100644
index 00000000000..f710852782a
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.codegen.base</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/.settings/org.eclipse.jdt.core.prefs b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..94d61f00da6
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,291 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=260
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=false
+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=260
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=5
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/.settings/org.eclipse.jdt.ui.prefs b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 00000000000..954281dbc31
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,68 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_functional_interfaces=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=false
+cleanup.format_source_code=false
+cleanup.format_source_code_changes_only=false
+cleanup.insert_inferred_type_arguments=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=false
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_redundant_type_arguments=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_anonymous_class_creation=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_lambda=true
+cleanup.use_parentheses_in_expressions=false
+cleanup.use_this_for_non_static_field_access=false
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=false
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_type_arguments=false
+cleanup_profile=_Papyrus
+cleanup_settings_version=2
+eclipse.preferences.version=1
+formatter_profile=_Papyrus
+formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * Constructor.\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*****************************************************************************\n * Copyright (c) ${year} CEA LIST and others.\n * \n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n * CEA LIST - Initial API and implementation\n * \n *****************************************************************************/\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\n * ${see_to_overridden}\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${see_to_target}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/META-INF/MANIFEST.MF b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..a09b81b1fc6
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/META-INF/MANIFEST.MF
@@ -0,0 +1,20 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.uml2.uml;bundle-version="4.0.2",
+ org.eclipse.core.filesystem;bundle-version="1.3.200",
+ org.eclipse.core.resources;bundle-version="3.9.1",
+ org.eclipse.papyrus.infra.core;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.core.log;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.emf;bundle-version="1.2.0",
+ org.eclipse.emf.transaction;bundle-version="1.8.0"
+Export-Package: org.eclipse.papyrus.codegen.base,
+ org.eclipse.papyrus.codegen.base.codesync
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-Version: 1.2.0.qualifier
+Bundle-Name: %pluginName
+Bundle-Localization: plugin
+Bundle-ManifestVersion: 2
+Bundle-Activator: org.eclipse.papyrus.codegen.base.Activator
+Bundle-SymbolicName: org.eclipse.papyrus.codegen.base;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/about.html b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/about.html
new file mode 100644
index 00000000000..82d49bf5f81
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/build.properties b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/build.properties
new file mode 100644
index 00000000000..db71331cf59
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/build.properties
@@ -0,0 +1,8 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ about.html,\
+ plugin.properties,\
+ icons/
+src.includes = about.html
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/icons/codegen-16x16.gif b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/icons/codegen-16x16.gif
new file mode 100644
index 00000000000..d7c1a7365f5
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/icons/codegen-16x16.gif
Binary files differ
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/plugin.properties b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/plugin.properties
new file mode 100644
index 00000000000..1e85d2491da
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/plugin.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2013 CEA LIST.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# CEA LIST - initial API and implementation
+###############################################################################
+pluginName=Basic code-generation functions (Incubation)
+providerName=Eclipse Modeling Project
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/pom.xml b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/pom.xml
new file mode 100644
index 00000000000..956ac30859b
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.codegen.base</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/Activator.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/Activator.java
new file mode 100644
index 00000000000..b4c1e58de7f
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/Activator.java
@@ -0,0 +1,44 @@
+package org.eclipse.papyrus.codegen.base;
+
+import org.eclipse.papyrus.infra.core.log.LogHelper;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator implements BundleActivator {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.codegen.base"; //$NON-NLS-1$
+
+ private static BundleContext context;
+
+ static BundleContext getContext() {
+ return context;
+ }
+
+ public static LogHelper log;
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void start(BundleContext bundleContext) throws Exception {
+ Activator.context = bundleContext;
+ log = new LogHelper();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void stop(BundleContext bundleContext) throws Exception {
+ Activator.context = null;
+ log = null;
+ }
+}
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/GenUtils.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/GenUtils.java
new file mode 100644
index 00000000000..bf1304e37cb
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/GenUtils.java
@@ -0,0 +1,731 @@
+/*******************************************************************************
+ * Copyright (c) 2006 - 2013 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.codegen.base;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.UniqueEList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Behavior;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Comment;
+import org.eclipse.uml2.uml.Dependency;
+import org.eclipse.uml2.uml.DirectedRelationship;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Namespace;
+import org.eclipse.uml2.uml.OpaqueBehavior;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.ParameterDirectionKind;
+import org.eclipse.uml2.uml.ParameterableElement;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.TemplateBinding;
+import org.eclipse.uml2.uml.TemplateParameter;
+import org.eclipse.uml2.uml.TemplateSignature;
+import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+
+/**
+ * Some utilities: a set of static methods for Acceleo based code generation
+ *
+ * @author wassim, ansgar
+ *
+ */
+public class GenUtils {
+
+ public static final String NL = System.getProperties().getProperty("line.separator"); //$NON-NLS-1$
+
+ /**
+ * Retrieve first template binding from list of template bindings, if
+ * exactly one exists. Return null otherwise.
+ *
+ * @param current
+ * Class on which the template binding is searched
+ * @return the template binding of current Class
+ */
+ public static TemplateBinding getTemplateBinding(Classifier current) {
+ TemplateBinding binding = null;
+ if (current.getTemplateBindings().size() == 1) {
+ binding = current.getTemplateBindings().get(0);
+ }
+
+ return binding;
+ }
+
+ /**
+ * Check whether the passed classifier has a template binding with itself as bound element
+ *
+ * @param cl
+ * @return
+ */
+ public static boolean isTemplateBoundElement(Classifier cl) {
+ boolean result = false;
+ EList<TemplateBinding> tbs = cl.getTemplateBindings();
+ if (tbs.size() > 0) {
+ for (TemplateBinding tb : tbs) {
+ // TODO: will only work for single element in template binding list
+ result = tb.getBoundElement() == cl;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Get the name of a template parameter or undefined, if it is not set
+ *
+ * @param templateParam
+ * @return
+ */
+ public static String getTemplateName(TemplateParameter templateParam) {
+ String name = ""; //$NON-NLS-1$
+ ParameterableElement pElt = templateParam.getParameteredElement();
+ if ((pElt != null) && (pElt instanceof NamedElement)) {
+ name = ((NamedElement) pElt).getName();
+ } else {
+ name = "undefined"; //$NON-NLS-1$
+ }
+
+ return name;
+ }
+
+
+ /**
+ *
+ * @param classifier
+ * a classifier owning a template signature
+ * @return the list of (formal) parameters defined within a template signature
+ */
+ public static Collection<TemplateParameter> getTemplateParameters(Classifier classifier) {
+
+ Collection<TemplateParameter> params = new ArrayList<TemplateParameter>();
+ TemplateSignature ts = classifier.getOwnedTemplateSignature();
+ if (ts != null) {
+ params.addAll(ts.getOwnedParameters());
+ }
+
+ return params;
+ }
+
+ /**
+ *
+ * @param classifier
+ * @return
+ */
+ public static Collection<ParameterableElement> getTemplateParameteredElements(Classifier classifier) {
+
+ Collection<ParameterableElement> params = new ArrayList<ParameterableElement>();
+ TemplateSignature ts = classifier.getOwnedTemplateSignature();
+ if (ts != null) {
+ for (TemplateParameter tp : ts.getOwnedParameters()) {
+ if (tp != null) {
+ params.add(tp.getParameteredElement());
+ }
+ }
+ }
+ return params;
+ }
+
+ /**
+ * Retrieve a list of types that belong to by a classifier in the current class
+ *
+ * @param current
+ * Class on which the attributes are searched
+ * @return collection of classes which are the type of the attributes
+ */
+ public static EList<Classifier> getOwnedAttributeTypes(Classifier current) {
+ EList<Classifier> result = new UniqueEList<Classifier>();
+
+ Iterator<Property> attributes;
+ attributes = current.getAttributes().iterator();
+ while (attributes.hasNext()) {
+ Property currentAttribute = attributes.next();
+ Type type = currentAttribute.getType();
+ addFarthestOwnerType(type, result);
+ }
+ return result;
+ }
+
+ /**
+ * Retrieve a list of types that belong to by a classifier in the current class
+ *
+ * @param current
+ * Class on which the attributes are searched
+ * @return collection of classes which are the type of the attributes
+ */
+ public static EList<Classifier> getTypesViaAttributes(Classifier current) {
+ EList<Classifier> result = new UniqueEList<Classifier>();
+
+ for (Property currentAttribute : current.getAttributes()) {
+ Type type = currentAttribute.getType();
+ addFarthestOwnerType(type, result);
+ }
+ return result;
+ }
+
+ /**
+ * Retrieve the operations in the current class. For each
+ * operation collected the classifier type. This class thus finds types, on
+ * which the signature depends.
+ *
+ * @param current
+ * Class on which the attributes are searched
+ * @return collection of classes which are the types of the operations parameters
+ */
+ public static EList<Classifier> getTypesViaOperations(Classifier current) {
+ EList<Classifier> result = new UniqueEList<Classifier>();
+ for (Operation operation : current.getOperations()) {
+ for (Parameter param : operation.getOwnedParameters()) {
+ Type type = param.getType();
+ addFarthestOwnerType(type, result);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Retrieves a list of types used by inner classifiers of the current classifier
+ *
+ * @param current
+ * Class on which the attributes are searched
+ * @return collection of classes which are the types of the operations parameters
+ */
+ public static EList<Classifier> getInnerClassifierTypes(Classifier current) {
+ EList<Classifier> result = new UniqueEList<Classifier>();
+ for (Element ownedElement : current.allOwnedElements()) {
+ if (ownedElement instanceof Classifier) {
+ result.addAll(getOwnedAttributeTypes((Classifier) ownedElement));
+ result.addAll(getTypesViaOperations((Classifier) ownedElement));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Return a list of classifiers that are referenced by relationships, i.e.
+ * dependencies or associations
+ *
+ * @param current
+ * @return
+ */
+ public static EList<Classifier> getTypesViaRelationships(Classifier current) {
+ EList<Classifier> classifiers = new UniqueEList<Classifier>();
+
+ for (DirectedRelationship relationship : current.getSourceDirectedRelationships()) {
+
+ if (relationship.getTargets().size() > 0) {
+ // there should always be at least one element in the target
+ // list and it should be a classifier, but better check.
+ Element element = relationship.getTargets().get(0);
+ addFarthestOwnerType(element, classifiers);
+ }
+ }
+ return classifiers;
+ }
+
+ /**
+ * Return a list of classifiers that are referenced via dependencies
+ *
+ * @param current
+ * @return
+ */
+ public static EList<Classifier> getTypesViaDependencies(Classifier current) {
+ EList<Classifier> classifiers = new UniqueEList<Classifier>();
+
+ for (DirectedRelationship relationship : current.getSourceDirectedRelationships()) {
+ if (relationship instanceof Dependency) {
+ if (relationship.getTargets().size() > 0) {
+ // there should always be at least one element in the target
+ // list and it should be a classifier, but better check.
+ Element element = relationship.getTargets().get(0);
+ addFarthestOwnerType(element, classifiers);
+ }
+ }
+ }
+ return classifiers;
+ }
+
+ /**
+ * Return a list of classifiers that are referenced via all kinds of relations except
+ * dependencies
+ *
+ * @param current
+ * @return
+ */
+ public static EList<Classifier> getTypesViaRelationshipsNoDeps(Classifier current) {
+ EList<Classifier> classifiers = new UniqueEList<Classifier>();
+
+ for (DirectedRelationship relationship : current.getSourceDirectedRelationships()) {
+ if (!(relationship instanceof Dependency)) {
+ if (relationship.getTargets().size() > 0) {
+ // there should always be at least one element in the target
+ // list and it should be a classifier, but better check.
+ Element element = relationship.getTargets().get(0);
+ addFarthestOwnerType(element, classifiers);
+ }
+ }
+ }
+ return classifiers;
+ }
+
+
+ /**
+ * Return the qualified name of a named element, but use "_" instead of "::" as separator
+ *
+ * @param ne
+ * a named element
+ * @return the fully qualified name with "_" as separator character
+ */
+ public static String getFullName(NamedElement ne) {
+ return ne.getQualifiedName().replace("::", "_"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * return the full name in upper case
+ *
+ * @param ne
+ * @return
+ */
+ public static String getFullNameUC(NamedElement ne) {
+ return ne.getQualifiedName().replace("::", "_").toUpperCase(); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+
+ /**
+ * Retrieve the comments associated with an element
+ * TODO: check whether comment's annotated element link belongs to element in question
+ *
+ * @param element
+ * @return
+ */
+ public static String getComments(Element element) {
+ String commentText = ""; //$NON-NLS-1$
+ for (Comment comment : element.getOwnedComments()) {
+ // remove eventual CRs (avoid confusion in Acceleo template which adds " *" after line breaks)
+ commentText += cleanCR(comment.getBody());
+ }
+ return commentText;
+ }
+
+ /**
+ * Return a list of dependent package (the list of dependent
+ * elements filtered for packages)
+ *
+ * @param pkg
+ * @return
+ */
+ public static EList<Package> getUsedPackages(Package pkg) {
+ EList<Package> result = new UniqueEList<Package>();
+ for (Element depElement : pkg.getClientDependencies()) {
+ if (depElement instanceof Package) {
+ result.add((Package) depElement);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Return a list of dependent classifiers (the list of dependent
+ * elements filtered for classifiers)
+ *
+ * @param pkg
+ * @return
+ */
+ public static EList<Classifier> getUsedClassifiers(Classifier cls) {
+ EList<Classifier> result = new BasicEList<Classifier>();
+ for (Element depElement : cls.getClientDependencies()) {
+ addFarthestOwnerType(depElement, result);
+ }
+ return result;
+ }
+
+ /**
+ * Adds the first element owned by a package in a classifier's namespace
+ *
+ * @param classifier
+ * @return
+ */
+ private static void addFarthestOwnerType(Element element, EList<Classifier> result) {
+ if (element == null || result == null) {
+ return;
+ }
+
+ if (element.getOwner() instanceof Package && element instanceof Classifier) {
+ result.add((Classifier) element);
+ } else { // Type is an inner class. We want to return a classifier C directly owned by a package since it is "C.h" that should be included
+ addFarthestOwnerType(element.getOwner(), result);
+ }
+ }
+
+ /**
+ * Get the namespace of the farthest classifier owner that owns an operation
+ *
+ * @param op
+ * @return
+ */
+ public static String getNestedOperationFarthestClassifierOwnerNamespace(Operation op) {
+ StringBuffer buffer = new StringBuffer("");
+ if (op != null && op.getOwner() instanceof Classifier) {
+ getFarthestOwnerNamespace(op.getOwner(), buffer);
+ }
+ return buffer.toString();
+ }
+
+ /**
+ * Get the namespace of the farthest classifier owner that owns an operation
+ *
+ * @param behavior
+ * @return
+ */
+ public static String getNestedBehaviorFarthestClassifierOwnerNamespace(OpaqueBehavior behavior) {
+ StringBuffer buffer = new StringBuffer("");
+ if (behavior != null && behavior.getOwner() instanceof Classifier) {
+ getFarthestOwnerNamespace(behavior.getOwner(), buffer);
+ }
+ return buffer.toString();
+ }
+
+ /**
+ * Build a namespace to the farthest owner (i.e. owned by a package) of some element
+ *
+ * @param element
+ * @param result
+ */
+ private static void getFarthestOwnerNamespace(Element element, StringBuffer result) {
+ if (element == null || result == null) {
+ return;
+ }
+
+ if (element.getOwner() instanceof Package) {
+ result.insert(0, ((Classifier) element).getName());
+ } else {
+ result.insert(0, "::" + ((Classifier) element).getName());
+ getFarthestOwnerNamespace(element.getOwner(), result);
+ }
+ }
+
+ /**
+ * Return the qualified name of a package, but use "/" instead of "::" as separator
+ *
+ * @param pkg
+ * @return
+ */
+ public static String getFullPath(Package pkg) {
+ return pkg.getQualifiedName().replace("::", "/"); //$NON-NLS-1$//$NON-NLS-2$
+ }
+
+ /**
+ * Is a certain stereotype applied?
+ *
+ * @param element
+ * @param stereotype
+ * fully qualified stereotype name
+ * @return
+ */
+ public static boolean hasStereotype(Element element, String stereotName) {
+ return element.getAppliedStereotype(stereotName) != null;
+ }
+
+ /**
+ * Is a certain stereotype applied?
+ *
+ * @param element
+ * a UML element
+ * @param stereotype
+ * The class of an element of a static profile
+ * @return
+ */
+ public static boolean hasStereotype(Element element, java.lang.Class<? extends EObject> clazz) {
+ for (EObject stereoApplication : element.getStereotypeApplications()) {
+ // check whether the stereotype is a super-class of the passed parameter clazz
+ if (clazz.isAssignableFrom(stereoApplication.getClass())) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+
+ /**
+ * Is a certain stereotype applied?
+ * In case of Java, we use the class above (without the A) prefix. In case of Acceleo, a stereotype
+ * such as C_Cpp::Include is passed as EClass and we therefore use this operation from Acceleo.
+ *
+ * @param element
+ * @param definition
+ * The eClass associated with the stereotype name (its definition)
+ * @return
+ */
+ public static boolean hasStereotypeA(Element element, EClass definition) {
+ if (element == null) {
+ // make query more robust
+ return false;
+ }
+ for (EObject stereoApplication : element.getStereotypeApplications()) {
+ // check whether the stereotype application has the right eClass
+ if (stereoApplication.eClass() == definition) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Verify if an Element or its parent Elements have a stereotype. Pass the class associated with a stereotype
+ *
+ * @param elt
+ * Element used.
+ * @param clazz
+ * the class associated with a stereotype in a static profile
+ *
+ * @return true if found. false otherwise
+ */
+ public static boolean hasStereotypeTree(Element elt, java.lang.Class<? extends EObject> clazz)
+ {
+
+ if (hasStereotype(elt, clazz)) {
+ return true;
+ }
+ else {
+ Element owner = elt.getOwner();
+ if (owner != null) {
+ return hasStereotypeTree(owner, clazz);
+ }
+ else {
+ return false;
+ }
+ }
+ }
+
+
+ /**
+ * Verify if an Element or its parent Elements have a stereotype. Pass the definition of the stereotype
+ *
+ * @param elt
+ * Element used.
+ * @param definition
+ * The stereotype definition
+ * @return true if found. false otherwise
+ */
+ public static boolean hasStereotypeTree(Element elt, EClass definition)
+ {
+ Element owner;
+
+ if (hasStereotypeA(elt, definition)) {
+ return true;
+ } else if ((owner = elt.getOwner()) != null) {
+ return hasStereotypeTree(owner, definition);
+ } else {
+ return false;
+ }
+ }
+
+
+ /**
+ * return the first occurrence of a stereotype application in the ownership tree
+ *
+ * @param elt
+ * an element
+ * @param definition
+ * the definition of a stereotype (its eClass)
+ * @return
+ */
+ @SuppressWarnings("unchecked")
+ public static <T extends EObject> T getApplicationTree(Element elt, java.lang.Class<T> clazz)
+ {
+ EObject application = UMLUtil.getStereotypeApplication(elt, clazz);
+ if (application != null) {
+ return (T) application;
+ }
+ else {
+ Element owner = elt.getOwner();
+ if (owner != null) {
+ return getApplicationTree(owner, clazz);
+ }
+ else {
+ return null;
+ }
+ }
+ }
+
+
+ /**
+ * return the first occurrence of a stereotype application in the ownership tree
+ * Variant of @see getApplicationTree that is useful for Acceleo
+ *
+ * @param elt
+ * an element
+ * @param definition
+ * the definition of a stereotype (its eClass)
+ * @return
+ */
+ public static EObject getApplicationTreeA(Element elt, EClass definition)
+ {
+ EObject application = getApplicationA(elt, definition);
+ if (application != null) {
+ return application;
+ }
+ else {
+ Element owner = elt.getOwner();
+ if (owner != null) {
+ return getApplicationTreeA(owner, definition);
+ }
+ else {
+ return null;
+ }
+ }
+ }
+
+
+ /**
+ * Return a stereotype application when given the eClass of that application.
+ * In case of Java, we use the class above (without the A) prefix. In case of Acceleo, a stereotype
+ * such as C_Cpp::Include is passed as EClass and we therefore use this operation from Acceleo.
+ *
+ * @param element
+ * the UML model element
+ * @param eClass
+ * the eClass of the stereotype application
+ * @return
+ */
+ public static EObject getApplicationA(Element element, EClass eClass) {
+ for (EObject stereoApplication : element.getStereotypeApplications()) {
+ // check whether the stereotype is an instance of the passed parameter clazz
+ if (stereoApplication.eClass() == eClass) {
+ return stereoApplication;
+ }
+ }
+ return null;
+ }
+
+
+ /**
+ * @param operation
+ * the operation
+ * @param selectedLanguage
+ * the selected language
+ * @return Return the first body of a selected language that is provided by
+ * one of the operation's methods
+ */
+ public static String getBody(Operation operation, Pattern selectedLanguages) {
+ for (Behavior behavior : operation.getMethods()) {
+ if (behavior instanceof OpaqueBehavior) {
+ return getBodyFromOB((OpaqueBehavior) behavior, selectedLanguages);
+ }
+ }
+ return ""; //$NON-NLS-1$
+ }
+
+
+ /**
+ * @param ob
+ * an opaque behavior
+ * @param selectedLanguage
+ * the selected language, this may be a regular expression
+ * @return Return the first body of a selected language that is provided by
+ * one of the operation's methods
+ */
+ public static String getBodyFromOB(OpaqueBehavior ob, Pattern selectedLanguages) {
+ Iterator<String> bodies = ob.getBodies().iterator();
+ for (String language : ob.getLanguages()) {
+ // additional sanity check: number of languages and number of bodies should be synchronized,
+ // but there is no guarantee that this is the case
+ if (bodies.hasNext()) {
+ String body = bodies.next();
+ Matcher matcher = selectedLanguages.matcher(language);
+ if (matcher.matches()) {
+ // additional "\r" confuses Acceleo
+ return cleanCR(body);
+ }
+ }
+ }
+ return ""; //$NON-NLS-1$
+ }
+
+ /**
+ * Remove <CR> from a String. These confuse Acceleo's indentation
+ *
+ * @param str
+ * @return
+ */
+ public static String cleanCR(String str) {
+ if (str == null) {
+ return "// <null>"; //$NON-NLS-1$
+ }
+ return str.replace("\r", ""); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+
+ /**
+ * Avoid null strings, i.e. replace null strings by empty strings
+ *
+ * @param str
+ * @return
+ */
+ public static String maskNull(String str) {
+ if (str == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return str;
+ }
+
+ /**
+ * Return the relative path of ne2 as seen from ne1
+ * (might not always be useful, if includes are always done from a common root)
+ * TODO: incomplete, currently unused
+ *
+ * @param ne1
+ * a named element
+ * @param ne2
+ * a named element
+ * @return
+ */
+ public static String getRelativePath(NamedElement ne1, NamedElement ne2) {
+ // get common prefix
+ EList<Namespace> ne1namespaces = ne1.allNamespaces();
+ String path = ""; //$NON-NLS-1$
+ for (Namespace ns : ne2.allNamespaces()) {
+ if (ne1namespaces.contains(ns)) {
+ // ns is a common prefix
+ return ne2.getName();
+ }
+ path += "../"; //$NON-NLS-1$
+ }
+ return path;
+ }
+
+ /**
+ * Return the type of a behavior, i.e. the type of the first parameter with
+ * "return" direction
+ *
+ * @param behavior
+ * a behavior
+ * @return the associated type
+ */
+ public static Parameter returnResult(Behavior behavior) {
+ for (Parameter parameter : behavior.getOwnedParameters()) {
+ if (parameter.getDirection() == ParameterDirectionKind.RETURN_LITERAL) {
+ return parameter;
+ }
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/HierarchyLocationStrategy.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/HierarchyLocationStrategy.java
new file mode 100644
index 00000000000..fdb90709689
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/HierarchyLocationStrategy.java
@@ -0,0 +1,46 @@
+package org.eclipse.papyrus.codegen.base;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Namespace;
+
+public class HierarchyLocationStrategy implements ILocationStrategy {
+
+ /**
+ * Always use / instead of File.separationChar
+ */
+ public static final String SEP_CHAR = "/"; //$NON-NLS-1$
+
+ /**
+ * Return the filename for a given named element.
+ *
+ * @param element
+ * a named element
+ * @return filename for this element
+ */
+ public String getFolder(NamedElement element) {
+ // IContainer baseContainer = getFolder(project, subFolderName);
+ EList<Namespace> namespaces = element.allNamespaces();
+ String fileName = ""; //$NON-NLS-1$
+ for (int i = namespaces.size() - 1; i >= 0; i--) {
+ Namespace ns = namespaces.get(i);
+ fileName += ns.getName() + SEP_CHAR;
+ }
+ return fileName;
+ }
+
+ /**
+ * Return the filename for a given named element.
+ *
+ * @param element
+ * a named element
+ * @return filename for this element
+ */
+ public String getFileName(NamedElement element) {
+ String folder = getFolder(element);
+ if (folder.length() > 0) {
+ folder += SEP_CHAR;
+ }
+ return getFolder(element) + element.getName();
+ }
+}
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/ILocationStrategy.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/ILocationStrategy.java
new file mode 100644
index 00000000000..7820bdece18
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/ILocationStrategy.java
@@ -0,0 +1,14 @@
+package org.eclipse.papyrus.codegen.base;
+
+import org.eclipse.uml2.uml.NamedElement;
+
+/**
+ * A location strategy defines the location of a file associated with a model element
+ * depending on the namespaces of this model element (package hierarchy).
+ */
+public interface ILocationStrategy {
+
+ public String getFolder(NamedElement element);
+
+ public String getFileName(NamedElement element);
+}
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/IPFileSystemAccess.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/IPFileSystemAccess.java
new file mode 100644
index 00000000000..e72057135b4
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/IPFileSystemAccess.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2006 - 2014 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *
+ *******************************************************************************/
+
+package org.eclipse.papyrus.codegen.base;
+
+
+/**
+ * Simple interface inspired from IFileSystemAccess in xtext.generator.
+ * The prefix 'P' should avoid confusions with the latter. We do not the xbase class
+ * directly to avoid a dependency to xtext (not all potential generators are xtend/xtext based).
+ */
+public interface IPFileSystemAccess {
+
+ /**
+ * @param fileName using '/' as file separator
+ * @param contents the to-be-written contents.
+ */
+ public void generateFile(String fileName, String contents);
+
+ /**
+ * @param fileName using '/' as file separator
+ */
+ public void deleteFile(String fileName);
+} \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/JavaIoFileSystemAccess.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/JavaIoFileSystemAccess.java
new file mode 100644
index 00000000000..e10e9ad2566
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/JavaIoFileSystemAccess.java
@@ -0,0 +1,136 @@
+/*****************************************************************************
+ * Copyright (c) 2014 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.codegen.base;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.IOException;
+import java.nio.charset.Charset;
+import java.nio.file.Files;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Namespace;
+
+/**
+ * A simple class providing access to the file system, if the project is known
+ *
+ */
+public class JavaIoFileSystemAccess implements IPFileSystemAccess {
+
+ File baseFolder;
+
+ String subFolderName;
+
+ boolean force = true;
+
+
+ /**
+ * @see org.eclipse.IPFileSystemAccess.generator.IFileSystemAccess#generateFile(java.lang.String, java.lang.String)
+ *
+ * @param fileName The filename
+ * @param content The content that is written to a file
+ */
+ public void generateFile(String fileName, String content) {
+ File file = getFile(fileName);
+ try {
+ if (!file.exists()) {
+ // the file does not exists
+ file.createNewFile();
+ }
+ BufferedWriter writer = Files.newBufferedWriter(file.toPath(), Charset.defaultCharset());
+ writer.write(content);
+ }
+ catch (IOException e) {
+ throw new RuntimeException("Code generation: " + e.getMessage()); //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @see org.eclipse.IPFileSystemAccess.generator.IFileSystemAccess#deleteFile(java.lang.String)
+ *
+ * @param fileName
+ */
+ public void deleteFile(String fileName) {
+ File file = getFile(fileName);
+ file.delete();
+ }
+
+ public void setOutputPath(File baseFolder) {
+ this.baseFolder = baseFolder;
+ }
+
+ public void setOutputPath(File baseFolder, String folderName) {
+ this.baseFolder = baseFolder;
+ this.subFolderName = folderName;
+ }
+
+ /**
+ * Return a container (folder) for a given named element. The folder is embedded into a set
+ * of folders that correspond to the namespaces of the element. These folders will be
+ * created, if the do not exist (comparable to "mkdir -p" in Unix).
+ *
+ * @param element
+ * a named element
+ * @return folder for this element
+ */
+ public File getContainer(NamedElement element) {
+ try {
+ File folder = getFile(baseFolder, subFolderName);
+ EList<Namespace> namespaces = element.allNamespaces();
+ for (int i = namespaces.size() - 1; i >= 0; i--) {
+ Namespace ns = namespaces.get(i);
+ folder = getFile(folder, ns.getName());
+ if (!folder.exists()) {
+ // if packageContainer is a Project, it necessarily exists
+ folder.createNewFile();
+ }
+ }
+ return folder;
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ /**
+ * Return a container (folder) for a given filename.
+ * Folders will be created, if the do not exist (comparable to "mkdir -p" in Unix).
+ *
+ * @param filename
+ * a filename with the '/' as separation character
+ * @return file for this element
+ */
+ public File getFile(String filename) {
+ String paths[] = filename.split("/"); //$NON-NLS-1$
+ File folder = getFile(baseFolder, subFolderName);
+ try {
+ for (int i = 0; i < paths.length - 1; i++) {
+ String path = paths[i];
+ folder = getFile(folder, path);
+ if (!folder.exists()) {
+ // if packageContainer is a Project, it necessarily exists
+ folder.createNewFile();
+ }
+ }
+ String last = paths[paths.length - 1];
+ return getFile(folder, last);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ public File getFile(File folder, String fileName) {
+ return new File(folder, fileName);
+ }
+}
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/Messages.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/Messages.java
new file mode 100644
index 00000000000..3d66d4250c7
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/Messages.java
@@ -0,0 +1,15 @@
+package org.eclipse.papyrus.codegen.base;
+
+import org.eclipse.osgi.util.NLS;
+
+public class Messages extends NLS {
+ private static final String BUNDLE_NAME = "org.eclipse.papyrus.acceleo.messages"; //$NON-NLS-1$
+ public static String ModelElementsCreator_UnsupportedModelElement;
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ private Messages() {
+ }
+}
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/ModelElementsCreator.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/ModelElementsCreator.java
new file mode 100644
index 00000000000..ed1acce196a
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/ModelElementsCreator.java
@@ -0,0 +1,141 @@
+/*******************************************************************************
+ * Copyright (c) 2006 - 2012 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.codegen.base;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PackageableElement;
+
+
+/**
+ * Main class of code generator. This is an abstract class that is supposed to be overriden by language specific code generators
+ */
+abstract public class ModelElementsCreator {
+
+ protected ILocationStrategy locStrategy;
+
+ protected IPFileSystemAccess fileSystemAccess;
+
+ /**
+ *
+ * Constructor.
+ *
+ * @param project
+ * the project in which the generated code should be placed
+ * @param fileSystemAccess
+ * a file system access implementation
+ * @param locStrategy
+ * a strategy that chooses suitable file names for generated code.
+ */
+ public ModelElementsCreator(IPFileSystemAccess fileSystemAccess, ILocationStrategy locStrategy) {
+ this.fileSystemAccess = fileSystemAccess;
+ this.locStrategy = locStrategy;
+ }
+
+ /**
+ * Obtain fileName of file(s) generated for a named element. Delegates to location strategy.
+ * Caller must eventually add extensions.
+ *
+ * @param element
+ * a named element.
+ * @return
+ */
+ public String getFileName(NamedElement element) {
+ return locStrategy.getFileName(element);
+ }
+
+ /**
+ * Creates the file(s) corresponding to a packageable element. This class needs to be
+ * implemented by language specific model elements
+ *
+ * @param folder
+ * @param classifier
+ * @throws CoreException
+ */
+ abstract protected void createPackageableElementFile(PackageableElement classifier, IProgressMonitor monitor);
+
+ /**
+ * Return true, if no code should be generated for a certain element
+ *
+ * @param element
+ * @return
+ */
+ abstract protected boolean noCodeGen(Element element);
+
+
+ /**
+ * Main function for user calls. Creates code for a packageable element. In case of a passed package, the contained elements
+ * are generated recursively.
+ *
+ * @param monitor
+ * a progress monitor
+ * @param element
+ * the element for which code should be generated
+ * @throws CoreException
+ */
+ public void createPackageableElement(PackageableElement element, IProgressMonitor monitor) {
+ createPackageableElement(element, monitor, true);
+ }
+
+ /**
+ * Variant of main function: user may supply explicit container (also used by internal function to avoid
+ * re-calculating the entry container for each element).
+ *
+ * @param packageContainer
+ * The container (directory), in which code should be created
+ * @param monitor
+ * a progress monitor
+ * @param element
+ * the element for which code should be generated
+ * @throws CoreException
+ */
+ public void createPackageableElement(PackageableElement element, IProgressMonitor monitor, boolean recursive)
+ {
+ if (noCodeGen(element)) {
+ return;
+ }
+
+ if (element instanceof Package) {
+ Package pkg = (Package) element;
+ if (monitor != null) {
+ monitor.subTask("generate package " + element.getQualifiedName()); //$NON-NLS-1$
+ }
+
+ createPackageableElementFile(element, monitor);
+
+ if (recursive) {
+ // Continue generation parsing package contents
+ for (PackageableElement subElement : pkg.getPackagedElements()) {
+ createPackageableElement(subElement, monitor, recursive);
+ }
+ }
+ }
+ else {
+ createPackageableElementFile(element, monitor);
+ }
+ }
+
+ /**
+ * Remove elements (used for differential code generation)
+ *
+ * @param monitor
+ * @param element
+ * @throws CoreException
+ */
+ public void removePackageableElement(PackageableElement element, IProgressMonitor monitor) {
+ String fileName = getFileName(element);
+ fileSystemAccess.deleteFile(fileName); // need recursion support?
+ }
+}
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/ProjectBasedFileAccess.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/ProjectBasedFileAccess.java
new file mode 100644
index 00000000000..17b6e97948c
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/ProjectBasedFileAccess.java
@@ -0,0 +1,158 @@
+/*****************************************************************************
+ * Copyright (c) 2014 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.codegen.base;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+
+/**
+ * A simple class providing access to the file system, if the project is known
+ *
+ */
+public class ProjectBasedFileAccess implements IPFileSystemAccess {
+
+ IProject project;
+
+ String subFolderName;
+
+ boolean force = true;
+
+ /**
+ * Create a project based file access for a specific project.
+ *
+ * @param project
+ * the project for which file system access is provided
+ */
+ public ProjectBasedFileAccess(IProject project) {
+ this.project = project;
+ subFolderName = null;
+ }
+
+ /**
+ * Create a project based file access for a specific project.
+ *
+ * @param project
+ * the project for which file system access is provided
+ */
+ public ProjectBasedFileAccess(IProject project, String subFolderName) {
+ this.project = project;
+ this.subFolderName = subFolderName;
+ }
+
+ /**
+ * @see org.eclipse.IPFileSystemAccess.generator.IFileSystemAccess#generateFile(java.lang.String, java.lang.CharSequence)
+ *
+ * @param fileName
+ * @param contents
+ */
+ public void generateFile(String fileName, String content) {
+ IFile file = getFile(fileName);
+ InputStream contentStream = new ByteArrayInputStream(content.getBytes());
+ try {
+ if (file.exists()) {
+ if (force) {
+ file.setContents(contentStream, true, false, null);
+ }
+ // else - file is not updated
+ }
+ else {
+ // the file does not exists
+ file.create(contentStream, true, null);
+ }
+ // Refresh the container for the newly created files. This needs to be done even
+ // during error because of the possibility for partial results.
+ file.refreshLocal(IResource.DEPTH_INFINITE, null);
+ } catch (CoreException e) {
+ throw new RuntimeException("Code generation: " + e.getMessage()); //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @see org.eclipse.IPFileSystemAccess.generator.IFileSystemAccess#deleteFile(java.lang.String)
+ *
+ * @param fileName
+ */
+ public void deleteFile(String fileName) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void setProject(IProject project) {
+ this.project = project;
+ }
+
+ public void setProject(IProject project, String subFolderName) {
+ this.project = project;
+ this.subFolderName = subFolderName;
+ }
+
+
+
+ /**
+ * Return a container (folder) for a given filename.
+ * Folders will be created, if the do not exist (comparable to "mkdir -p" in Unix).
+ *
+ * @param filename
+ * a filename with the '/' as separation character
+ * @return file for this element
+ */
+ public IFile getFile(String filename) {
+ String paths[] = filename.split("/"); //$NON-NLS-1$
+ IContainer packageContainer = getFolder(project, subFolderName);
+ try {
+ for (int i = 0; i < paths.length - 1; i++) {
+ String path = paths[i];
+ packageContainer = getFolder(packageContainer, path);
+ if (!packageContainer.exists()) {
+ // if packageContainer is a Project, it necessarily exists
+ ((IFolder) packageContainer).create(false, true, null);
+ }
+ }
+ String last = paths[paths.length - 1];
+ return getFile(packageContainer, last);
+ } catch (CoreException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ public IContainer getFolder(IContainer container, String folderName) {
+ if (folderName == null) {
+ return container;
+ }
+ if (container instanceof IFolder) {
+ return ((IFolder) container).getFolder(folderName);
+ }
+ else if (container instanceof IProject) {
+ return ((IProject) container).getFolder(folderName);
+ }
+ return null;
+ }
+
+ public IFile getFile(IContainer container, String fileName) {
+ if (container instanceof IFolder) {
+ return ((IFolder) container).getFile(fileName);
+ }
+ else if (container instanceof IProject) {
+ return ((IProject) container).getFile(fileName);
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/codesync/ChangeObject.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/codesync/ChangeObject.java
new file mode 100644
index 00000000000..e380ed65c45
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/codesync/ChangeObject.java
@@ -0,0 +1,32 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) Ansgar.Radermacher@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.codegen.base.codesync;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * Simple data type that stores the tuple of event-type and associated e-Object
+ */
+public class ChangeObject {
+ /**
+ * The eventType. @link org.eclipse.emf.common.notify.Notification
+ */
+ public int eventType;
+
+ /**
+ * The associated EObject
+ */
+ public EObject eObject;
+}
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/codesync/ManageChangeEvents.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/codesync/ManageChangeEvents.java
new file mode 100644
index 00000000000..fdac34742d7
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/codesync/ManageChangeEvents.java
@@ -0,0 +1,137 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) Ansgar.Radermacher@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.codegen.base.codesync;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.papyrus.codegen.base.Activator;
+import org.eclipse.papyrus.infra.core.editor.IMultiDiagramEditor;
+import org.eclipse.papyrus.infra.core.services.EditorLifecycleEventListener;
+import org.eclipse.papyrus.infra.core.services.EditorLifecycleManager;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.core.services.ServicesRegistry;
+import org.eclipse.papyrus.infra.emf.utils.ServiceUtilsForResourceSet;
+
+/**
+ * Manage and update change events for incremental code generation
+ */
+public class ManageChangeEvents {
+
+ protected static Map<TransactionalEditingDomain, RecordEventsListener> registeredListeners =
+ new HashMap<TransactionalEditingDomain, RecordEventsListener>();
+
+ /**
+ * An internal listener for life cycle events of Papyrus
+ */
+ protected static class LifeCycleListener implements EditorLifecycleEventListener {
+
+ TransactionalEditingDomain domain;
+
+ LifeCycleListener(TransactionalEditingDomain domain) {
+ this.domain = domain;
+ }
+
+ public void postInit(IMultiDiagramEditor editor) {
+ }
+
+ public void postDisplay(IMultiDiagramEditor editor) {
+ }
+
+ /**
+ * Executed before an editor will close => stop recording for this editing domain
+ */
+ public void beforeClose(IMultiDiagramEditor editor) {
+ stopRecording(domain);
+ }
+ }
+
+ /**
+ * Start recording changes for an editing domain
+ *
+ * @param domain
+ * a transactional editing domain. Can be obtained via TransactionUtil from an EObject
+ */
+ public static void startRecording(TransactionalEditingDomain domain) {
+ if (!registeredListeners.containsKey(domain)) {
+ RecordEventsListener recordEvents = new RecordEventsListener();
+ registeredListeners.put(domain, recordEvents);
+ // register a listener that records events
+ domain.addResourceSetListener(recordEvents);
+
+ // register a listener for editor lifecycle events, in order to
+ // cleanup the set of registered listeners after the editor is closed.
+ try {
+ ServicesRegistry registry = ServiceUtilsForResourceSet.getInstance().getServiceRegistry(
+ domain.getResourceSet());
+ EditorLifecycleManager lifecycleManager = registry.getService(EditorLifecycleManager.class);
+ lifecycleManager.addEditorLifecycleEventsListener(new LifeCycleListener(domain));
+ } catch (ServiceException e) {
+ Activator.log.error(e);
+ }
+ }
+
+ }
+
+ /**
+ * Stop recording changes for an editing domain
+ *
+ * @param domain
+ * a transactional editing domain. Can be obtained via TransactionUtil from an EObject
+ */
+ public static void stopRecording(TransactionalEditingDomain domain) {
+ RecordEventsListener recordEvents = registeredListeners.get(domain);
+ if (recordEvents != null) {
+ domain.removeResourceSetListener(recordEvents);
+ }
+ registeredListeners.remove(domain);
+ }
+
+ /**
+ * Get the list of changes for an editing domain
+ *
+ * @param domain
+ * a transactional editing domain. Can be obtained via TransactionUtil from an EObject
+ * @return the list of changes or null, if there is currently no event listener (which means
+ * typcially, that event recording has not been started yet)
+ */
+ public static EList<ChangeObject> getChangeList(TransactionalEditingDomain domain) {
+ RecordEventsListener recordEvents = registeredListeners.get(domain);
+ if (recordEvents != null) {
+ return recordEvents.getChangeList();
+ }
+ return null;
+ }
+
+ /**
+ * initialize the difference list for an editing domain
+ *
+ * @param domain
+ * a transactional editing domain. Can be obtained via TransactionUtil from an EObject
+ * @param startAutomatically
+ * if true, start event recording, if there is currently no event recording active
+ */
+ public static void initChangeList(TransactionalEditingDomain domain, boolean startAutomatically) {
+ RecordEventsListener recordEvents = registeredListeners.get(domain);
+ if (recordEvents != null) {
+ recordEvents.initChangeList();
+ }
+ else if (startAutomatically) {
+ startRecording(domain);
+ }
+ }
+}
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/codesync/RecordEventsListener.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/codesync/RecordEventsListener.java
new file mode 100644
index 00000000000..8ae6ee95b1d
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/codesync/RecordEventsListener.java
@@ -0,0 +1,110 @@
+/*****************************************************************************
+ * Copyright (c) 2014 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Patrick Tessier (CEA LIST) patrick.tessier@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.codegen.base.codesync;
+
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.NotificationFilter;
+import org.eclipse.emf.transaction.ResourceSetChangeEvent;
+import org.eclipse.emf.transaction.ResourceSetListener;
+import org.eclipse.emf.transaction.RollbackException;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * This listener is used to register ADD ant SET about in the diff model during
+ * the launch of the revision mode. It also create review element in the review
+ * model. See package commands for specification of review creation commands.
+ *
+ */
+public class RecordEventsListener implements ResourceSetListener {
+
+ protected EList<ChangeObject> changeList;
+
+ /**
+ * constructor
+ *
+ * @param reviewResourceManager
+ */
+ public RecordEventsListener() {
+ changeList = new BasicEList<ChangeObject>();
+ }
+
+ public NotificationFilter getFilter() {
+ return null;
+ }
+
+ /**
+ * @return the list of recorded change events
+ */
+ public EList<ChangeObject> getChangeList() {
+ return changeList;
+ }
+
+ /**
+ * initialize (reset) the list of recorded changes
+ */
+ public void initChangeList() {
+ changeList.clear();
+ }
+
+ @Override
+ public Command transactionAboutToCommit(ResourceSetChangeEvent event) throws RollbackException {
+ for (Notification notification : event.getNotifications()) {
+ int eventType = notification.getEventType();
+ if (notification.getNotifier() instanceof EObject) {
+ EObject notifier = (EObject) notification.getNotifier();
+
+ EObject baseElement = UMLUtil.getBaseElement(notifier);
+ if (baseElement != null) {
+ notifier = baseElement;
+ }
+ if ((eventType != Notification.REMOVING_ADAPTER) && (eventType != Notification.RESOLVE)) {
+ if ((notifier instanceof Element) || (notifier instanceof EAnnotation)) {
+ ChangeObject changeObject = new ChangeObject();
+ changeObject.eventType = notification.getEventType();
+ changeObject.eObject = notifier;
+ changeList.add(changeObject);
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public void resourceSetChanged(ResourceSetChangeEvent event) {
+
+ }
+
+ @Override
+ public boolean isAggregatePrecommitListener() {
+ return false;
+ }
+
+ @Override
+ public boolean isPrecommitOnly() {
+ return false;
+ }
+
+ @Override
+ public boolean isPostcommitOnly() {
+ return false;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/messages.properties b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/messages.properties
new file mode 100644
index 00000000000..ad6e5a9fa79
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.base/src/org/eclipse/papyrus/codegen/base/messages.properties
@@ -0,0 +1 @@
+ModelElementsCreator_UnsupportedModelElement=code generator: unsupported model element %s
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/.classpath b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/.classpath
new file mode 100644
index 00000000000..ad32c83a788
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/.project b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/.project
new file mode 100644
index 00000000000..24d01935406
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.codegen.extensionpoints</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/.settings/org.eclipse.jdt.core.prefs b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..c537b63063c
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/META-INF/MANIFEST.MF b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..ac580de577f
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.uml2.uml;bundle-version="4.0.2",
+ org.eclipse.core.filesystem;bundle-version="1.3.200",
+ org.eclipse.core.resources,
+ org.eclipse.papyrus.uml.tools.utils;bundle-version="1.2.0"
+Export-Package: org.eclipse.papyrus.codegen.extensionpoints
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-Version: 1.2.0.qualifier
+Bundle-Name: %pluginName
+Bundle-Localization: plugin
+Bundle-ManifestVersion: 2
+Bundle-Activator: org.eclipse.papyrus.codegen.extensionpoints.Activator
+Bundle-SymbolicName: org.eclipse.papyrus.codegen.extensionpoints;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/about.html b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/about.html
new file mode 100644
index 00000000000..82d49bf5f81
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/build.properties b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/build.properties
new file mode 100644
index 00000000000..7e6b2a43702
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/build.properties
@@ -0,0 +1,9 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ about.html,\
+ plugin.properties,\
+ schema/,\
+ plugin.xml
+src.includes = about.html
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/plugin.properties b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/plugin.properties
new file mode 100644
index 00000000000..d7801588e2c
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/plugin.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2013 CEA LIST.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# CEA LIST - initial API and implementation
+###############################################################################
+pluginName=Code generation extensionpoints (Incubation)
+providerName=Eclipse Modeling Project
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/plugin.xml b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/plugin.xml
new file mode 100644
index 00000000000..95044cba2e2
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/plugin.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+ <extension-point id="languageCodegen" name="languageCodegen" schema="schema/languageCodegen.exsd"/>
+ <extension-point id="languageProjectSupport" name="languageProjectSupport" schema="schema/languageProject.exsd"/>
+</plugin>
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/pom.xml b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/pom.xml
new file mode 100644
index 00000000000..d5ec9f7c45a
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.codegen.extensionpoints</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/schema/languageCodegen.exsd b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/schema/languageCodegen.exsd
new file mode 100644
index 00000000000..7b60f913ef4
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/schema/languageCodegen.exsd
@@ -0,0 +1,84 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.papyrus.codegen.extensionpoints" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.papyrus.codegen.extensionpoints" id="languageCodegen" name="languageCodegen"/>
+ </appInfo>
+ <documentation>
+ [Enter description of this extension point.]
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appInfo>
+ <meta.element />
+ </appInfo>
+ </annotation>
+ <complexType>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element ref="generator"/>
+ </choice>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="generator">
+ <complexType>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ ID of a code generator, currently optional for backward compatibility.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="language" type="string" use="required">
+ <annotation>
+ <documentation>
+ Programming language supported by the code generator
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ A class that provides access to the code generator. It must implement the ILangCodegen interface.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn=":org.eclipse.papyrus.codegen.extensionpoints.ILangCodegen"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+
+
+
+
+
+</schema>
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/schema/languageProject.exsd b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/schema/languageProject.exsd
new file mode 100644
index 00000000000..c631741cac1
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/schema/languageProject.exsd
@@ -0,0 +1,71 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.papyrus.codegen.extensionpoints" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.papyrus.codegen.extensionpoints" id="languageProjectSupport" name="languageProjectSupport"/>
+ </appInfo>
+ <documentation>
+ [Enter description of this extension point.]
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appInfo>
+ <meta.element />
+ </appInfo>
+ </annotation>
+ <complexType>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element ref="client"/>
+ </choice>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="client">
+ <complexType>
+ <attribute name="language" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn=":org.eclipse.papyrus.codegen.extensionpoints.ILangProjectSupport"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+ </schema>
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/AbstractSettings.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/AbstractSettings.java
new file mode 100644
index 00000000000..75d82ca546b
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/AbstractSettings.java
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.codegen.extensionpoints;
+
+/**
+ * Abstract superclass for project settings. It is empty to allow for arbitrary
+ * project specific settings
+ */
+public abstract class AbstractSettings {
+ /**
+ * the operating system for which code should be produced (will have a
+ * project specific effect, e.g. in case of CDT it will result in a #define)
+ */
+ public String targetOS;
+}
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/Activator.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/Activator.java
new file mode 100644
index 00000000000..c8bcb71a91f
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/Activator.java
@@ -0,0 +1,54 @@
+package org.eclipse.papyrus.codegen.extensionpoints;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.codegen.extensionpoints"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/GenerationConstants.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/GenerationConstants.java
new file mode 100644
index 00000000000..45d46b12c70
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/GenerationConstants.java
@@ -0,0 +1,31 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.codegen.extensionpoints;
+
+public class GenerationConstants {
+ /**
+ * Constant indicating that generated code follows. Code generators should use this text in bodies, if bodies contain
+ * generated code (besides the contents of the opaque behaviors. Code generators need to prefix this string with the
+ * language specific comment symbol, e.g. // in case of C/C++ or Java.
+ */
+ public static final String GENERATED_START = "the following code has been generated"; //$NON-NLS-1$
+
+ /**
+ * Constant indicating that generated code ends. Code generators should use this text in bodies, if bodies contain
+ * generated code (besides the contents of the opaque behaviors. Code generators need to prefix this string with the
+ * language specific comment symbol, e.g. // in case of C/C++ or Java.
+ */
+ public static final String GENERATED_END = "generated code ends"; //$NON-NLS-1$
+}
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/GeneratorSelectionDialog.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/GeneratorSelectionDialog.java
new file mode 100644
index 00000000000..fd3066b0ddf
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/GeneratorSelectionDialog.java
@@ -0,0 +1,122 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.codegen.extensionpoints;
+
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.dialogs.AbstractElementListSelectionDialog;
+
+/**
+ * Select a generator from a list of eligible generators
+ */
+public class GeneratorSelectionDialog extends AbstractElementListSelectionDialog {
+
+ protected Text m_description;
+
+ ILangCodegen generators[];
+
+ public GeneratorSelectionDialog(Shell parent, List<ILangCodegen> generatorList) {
+ super(parent, new LabelProvider() {
+ public String getText(Object element) {
+ return LanguageCodegen.getID((ILangCodegen) element);
+ }
+ });
+ generators = generatorList.toArray(new ILangCodegen[0]);
+ setMultipleSelection(false);
+ setTitle(Messages.GeneratorSelectionDialog_SelectGenerator);
+ }
+
+ @Override
+ public Control createDialogArea(Composite parent) {
+ Composite contents = (Composite) super.createDialogArea(parent);
+ createMessageArea(contents);
+ // createLabel(contents, "Connector type");
+ // GridData gridData = DialogUtils.createFillGridData();
+ // gridData.heightHint = 200;
+
+ createFilteredList(contents);
+ createFilterText(contents);
+
+ fFilteredList.setElements(generators);
+
+ Label info = createMessageArea(contents);
+ info.setText(Messages.GeneratorSelectionDialog_infoCodeGen);
+ // m_description = createMessageArea(contents);
+
+ fFilteredList.addSelectionListener(new SelectionListener() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ int index = fFilteredList.getSelectionIndex();
+ updateDescription(getElement(index));
+ }
+
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+ });
+
+ GridData descriptionGD = new GridData();
+ descriptionGD.horizontalAlignment = GridData.FILL;
+ descriptionGD.grabExcessHorizontalSpace = true;
+ descriptionGD.heightHint = 80;
+ descriptionGD.grabExcessVerticalSpace = true;
+ descriptionGD.verticalAlignment = GridData.FILL;
+
+ m_description = new Text(contents, SWT.NONE | SWT.WRAP | SWT.V_SCROLL | SWT.READ_ONLY);
+ m_description.setLayoutData(descriptionGD);
+ updateDescription(getElement(0));
+
+ return contents;
+ }
+
+ protected void updateDescription(ILangCodegen codegen) {
+ if (codegen instanceof ILangCodegen2) {
+ m_description.setText(((ILangCodegen2) codegen).getDescription());
+ }
+ else {
+ m_description.setText("not available"); //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * Obtain ILangCodegen object via index. Note that we need to access the data from the filtered list
+ * since the order might not be the same as the local "generators" array (the filtered list sorts)
+ * @param index
+ * @return
+ */
+ ILangCodegen getElement(int index) {
+ return (ILangCodegen) fFilteredList.getFoldedElements(index)[0];
+ }
+
+ @Override
+ protected void computeResult() {
+ int index = fFilteredList.getSelectionIndex();
+ Object[] result = new Object[] { getElement(index) };
+ setResult(Arrays.asList(result));
+ }
+}
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/ILangCodegen.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/ILangCodegen.java
new file mode 100644
index 00000000000..9c1c5fa8371
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/ILangCodegen.java
@@ -0,0 +1,93 @@
+/*******************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.codegen.extensionpoints;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.PackageableElement;
+
+/**
+ * Extension point that is implemented by a code generator for a specific
+ * programming language
+ */
+public interface ILangCodegen {
+
+ /**
+ * FILE KIND enumeration. It supports two distinction options (this might
+ * need revision in the future, but is sufficient for all currently
+ * supported languages)
+ */
+ public enum FILE_KIND {
+ HEADER, BODY
+ }
+
+ /**
+ * Generate code for a specific language
+ *
+ * @param project
+ * a project into which code is generated. if null, project is
+ * determined automatically (see getTargetProject below)
+ * @param element
+ * a packageable element, typically a classifier or a package
+ * @param monitor
+ * a progress monitor
+ */
+ public void generateCode(IProject project, PackageableElement element, IProgressMonitor monitor);
+
+ /**
+ * Code might be generated into a specific project. It might be the project
+ * that hosts the UML file, but it may also be another project that is
+ * determined for instance by means of a naming convention (such as a common
+ * prefix and the name of the model). This functions locates and returns the
+ * target project for the given packageable element. If the project exists,
+ * but does not have the nature that is required by the language specific
+ * editor, the user is asked whether the nature should be added.
+ *
+ * Ensures that the target project is correctly setup to contain generated
+ * C/C++ code. Does not create a new project, but may modify existing ones.
+ *
+ * @param pe
+ * a packageable element within a model
+ * @param createIfMissing
+ * if true, a new project is created if it does not exist yet. if
+ * false, null is returned if the project does not exist.
+ * @return the associated project (or null)
+ */
+ public IProject getTargetProject(PackageableElement pe, boolean createIfMissing);
+
+ /**
+ * Obtain fileName of file(s) generated for a named element. Delegates to
+ * location strategy. Caller must eventually add extensions.
+ *
+ * @param project
+ * a project into which code is generated. if null, project is
+ * determined automatically
+ * @param element
+ * a named element.
+ * @return a project relative file name
+ */
+ public String getFileName(IProject project, NamedElement element);
+
+ /**
+ * Clean the code for a certain element, i.e. remove code that has
+ * previously generated for this element This code is required for
+ * differential code generation which needs to remove elements for instance
+ * after they have been renamed.
+ *
+ * @param project
+ * project in which code should be generated
+ * @param element
+ * the element for which the generate code should be removed
+ */
+ public void cleanCode(IProject project, PackageableElement element, IProgressMonitor monitor);
+}
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/ILangCodegen2.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/ILangCodegen2.java
new file mode 100644
index 00000000000..1cf48b4455a
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/ILangCodegen2.java
@@ -0,0 +1,58 @@
+package org.eclipse.papyrus.codegen.extensionpoints;
+
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.NamedElement;
+
+public interface ILangCodegen2 extends ILangCodegen {
+
+ /**
+ * Provide a user friendly description of the generator
+ */
+ public String getDescription();
+
+ /**
+ * Some code generators use a non-trivial mapping from behaviors to methods
+ * in the generated code or add methods that are not part of a existing
+ * behavior in the model. This is a problem for code synchronization (update
+ * of model from code) as done for instance with the CDT editor integration.
+ *
+ * @param methodName
+ * the name of the method as in the code
+ * @param body
+ * the body
+ * @return the associated synchronization information. Null indicates that a
+ * default mapping is used
+ */
+ public SyncInformation getSyncInformation(String methodName, String body);
+
+ /**
+ * Return true, if the generator is eligible for a certain element within a
+ * model. The code generator may check the element itself, but also for
+ * instance whether a certain profile (such as UML-RT) has been applied.
+ * Generators are allowed to return true for all models, if they do not have
+ * specific (profile related) requirements.
+ *
+ * @param modelRoot
+ * the root of a UML model (for which code should be generated)
+ * @return true, iff the generator is eligible for this model
+ */
+ public boolean isEligible(Element modelElement);
+
+ /**
+ * Return the suffix of a code generator. Some languages use different
+ * suffixes depending on the file kind, e.g. C distinguishes between HEADER
+ * and BODY languages. Other languages can ignore this parameter.
+ *
+ * @param FILE_KIND
+ * The file kind
+ * @return
+ */
+ public String getSuffix(FILE_KIND fileKind);
+
+ /**
+ * return additional information about the method that has been generated
+ * for a UML behavior. This information is used by the CDT editor
+ * integration to locate the method in the code.
+ */
+ public MethodInfo getMethodInfo(NamedElement operationOrBehavior);
+}
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/ILangProjectSupport.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/ILangProjectSupport.java
new file mode 100644
index 00000000000..883ba90b22a
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/ILangProjectSupport.java
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - ansgar.radermacher@cea.fr initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.codegen.extensionpoints;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.uml2.uml.Class;
+
+/**
+ * Common interface to create projects for a specific programming language.
+ */
+public interface ILangProjectSupport {
+
+ /**
+ * Create a project for a specific language and configure it (according to
+ * gathered configuration data before). In case of C/C++ for instance, a CDT
+ * project should be created, in case of Java, a JDT project. An
+ * implementation should call setProject and setSettings before returning
+ * the project
+ *
+ * @param projectName
+ * the named of the project
+ * @return the created project
+ */
+ public IProject createProject(String projectName);
+
+ /**
+ * Write the project settings from the passed project specific settings.
+ * (which may be obtained via gatherConfigData).
+ *
+ * @param the
+ * operating system for which code should be produced
+ */
+ public void setSettings(IProject project, AbstractSettings settings);
+
+ /**
+ * Create an initial (empty) configuration.
+ * @return the project specific configuration.
+ */
+ public AbstractSettings initialConfigurationData();
+
+ /**
+ * Gather configuration data from implementations, e.g. required include
+ * paths or libraries. It will enrich the project specific settings.
+ *
+ * @param implementation
+ * a class copied to the target
+ */
+ public void gatherConfigData(Class implementation, AbstractSettings settings);
+}
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/LanguageCodegen.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/LanguageCodegen.java
new file mode 100644
index 00000000000..2bb0796017c
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/LanguageCodegen.java
@@ -0,0 +1,214 @@
+/*******************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - ansgar.radermacher@cea.fr initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.codegen.extensionpoints;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.uml2.uml.Classifier;
+
+/**
+ * Common interface to generate code. Supports for multiple target languages via
+ * the Eclipse extension mechanism
+ */
+public class LanguageCodegen {
+
+ private static final String CLASS = "class"; //$NON-NLS-1$
+
+ private static final String LANGUAGE = "language";//$NON-NLS-1$
+
+ private static final String ID = "id";//$NON-NLS-1$
+
+ public static final String ILANG_SUPPORT_ID = Activator.PLUGIN_ID + ".languageCodegen"; //$NON-NLS-1$
+
+ /**
+ * Interactively choose a generator for a given set of languages (pattern).
+ * If only one generator is available, it returns this generator
+ * immediately.
+ *
+ * @param languagePattern
+ * @param classifier
+ * @return
+ */
+ public static ILangCodegen chooseGenerator(Pattern languagePattern, Classifier classifier) {
+ List<ILangCodegen> eligibleGenerators = getEligibleGeneratorList(languagePattern, classifier);
+
+ if (eligibleGenerators.size() == 1) {
+ return eligibleGenerators.get(0);
+ }
+ Shell shell = Display.getDefault().getActiveShell();
+ if (eligibleGenerators.size() > 1) {
+ GeneratorSelectionDialog dialog = new GeneratorSelectionDialog(shell, eligibleGenerators);
+ if (dialog.open() == IDialogConstants.OK_ID) {
+ return (ILangCodegen) dialog.getResult()[0];
+ }
+ }
+ else {
+ // echo language pattern in a more readible way: without escape characters that are used for
+ // the "+" in C++
+ String pattern = languagePattern.pattern().replace("\\", ""); //$NON-NLS-1$ //$NON-NLS-2$
+ MessageDialog.openError(shell, Messages.LanguageCodegen_NoGeneratorsFound,
+ String.format(Messages.LanguageCodegen_NoGeneratorsFoundLong, pattern));
+ }
+
+ return null;
+ }
+
+ /**
+ * Get a code generator via language and ID.
+ *
+ * @param languagePattern
+ * a pattern containing a list of supported languages
+ * @return a code generator
+ */
+ public static ILangCodegen getGenerator(String language) {
+ // compile language into a pattern, escape "+"
+ return getGenerator(Pattern.compile(language.replace("+", "\\+")), null); //$NON-NLS-1$//$NON-NLS-2$
+ }
+
+ /**
+ * Get a code generator via language and ID.
+ *
+ * @param languagePattern
+ * a pattern containing a list of supported languages
+ * @return a code generator
+ */
+ public static ILangCodegen getGenerator(String language, String id) {
+ return getGenerator(Pattern.compile(language), id);
+ }
+
+ /**
+ * Get a code generator via language and ID.
+ *
+ * @param languagePattern
+ * a pattern containing a list of supported languages
+ * @param id
+ * a string determining the id of the code generator. If null,
+ * the first available generator is returned.
+ * @return a code generator
+ */
+ public static ILangCodegen getGenerator(Pattern languagePattern, String id) {
+ List<ILangCodegen> generators = getCodegenList(languagePattern);
+ for (ILangCodegen generator : generators) {
+ if ((id == null) || generatorIDs.get(generator).equals(id)) {
+ return generator;
+ }
+ }
+ throw new RuntimeException(String.format(Messages.LanguageSupport_LanguageNotSupported, languagePattern));
+ }
+
+ /**
+ * Get a list of generators that conform a language patterns and are
+ * eligible for a passe classifier
+ *
+ * @param languagePattern
+ * a language pattern
+ * @param classifier
+ * a classifier
+ * @return
+ */
+ public static List<ILangCodegen> getEligibleGeneratorList(Pattern languagePattern, Classifier classifier) {
+ List<ILangCodegen> eligibleGenerators = new ArrayList<ILangCodegen>();
+ for (ILangCodegen generator : getCodegenList(languagePattern)) {
+ if (generator instanceof ILangCodegen2) {
+ if (((ILangCodegen2) generator).isEligible(classifier)) {
+ eligibleGenerators.add(generator);
+ }
+ }
+ else {
+ eligibleGenerators.add(generator);
+ }
+ }
+ return eligibleGenerators;
+ }
+
+ /**
+ * retrieve a list of code generators for a given language. The language may
+ * be a regular expression
+ *
+ * @param language
+ * @return
+ */
+ public static List<ILangCodegen> getCodegenList(Pattern languagePattern) {
+ IExtensionRegistry reg = Platform.getExtensionRegistry();
+ IConfigurationElement[] configElements = reg.getConfigurationElementsFor(ILANG_SUPPORT_ID);
+ List<ILangCodegen> generators = new ArrayList<ILangCodegen>();
+
+ for (IConfigurationElement configElement : configElements) {
+ try {
+ final String id = configElement.getAttribute(ID);
+ final String extLanguage = configElement.getAttribute(LANGUAGE);
+ Matcher m = languagePattern.matcher(extLanguage);
+ if (m.matches()) {
+ final Object obj = configElement.createExecutableExtension(CLASS);
+ if (obj instanceof ILangCodegen) {
+ ILangCodegen generator = (ILangCodegen) obj;
+ if (!generatorIDs.containsKey(generator)) {
+ generatorIDs.put(generator, id);
+ }
+ generators.add((ILangCodegen) obj);
+ }
+ }
+ } catch (CoreException exception) {
+ exception.printStackTrace();
+ }
+ }
+ return generators;
+ }
+
+ /**
+ * Get a code generator for a given language
+ * @param language
+ * @return
+ * @deprecated This method is deprecated and kept for compatibility, since there could be more than one generator
+ * for a given programming language.
+ */
+ @Deprecated
+ public static ILangCodegen getCodegen(String language)
+ {
+ IExtensionRegistry reg = Platform.getExtensionRegistry();
+ IConfigurationElement[] configElements = reg.getConfigurationElementsFor(ILANG_SUPPORT_ID);
+ for (IConfigurationElement configElement : configElements) {
+ try {
+ final String extLanguage = configElement.getAttribute(LANGUAGE);
+ if (extLanguage.equals(language)) {
+ // TODO: cache returned instance (avoid creating a new instance each time => more efficient, no need for static attributes)
+ final Object obj = configElement.createExecutableExtension("class"); //$NON-NLS-1$
+ if (obj instanceof ILangCodegen) {
+ return (ILangCodegen) obj;
+ }
+ }
+ } catch (CoreException exception) {
+ exception.printStackTrace();
+ }
+ }
+ throw new RuntimeException(String.format(Messages.LanguageSupport_LanguageNotSupported, language));
+ }
+
+ public static String getID(ILangCodegen generator) {
+ return generatorIDs.get(generator);
+ }
+
+ static Map<ILangCodegen, String> generatorIDs = new HashMap<ILangCodegen, String>();
+}
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/LanguageProjectSupport.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/LanguageProjectSupport.java
new file mode 100644
index 00000000000..031993d2adb
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/LanguageProjectSupport.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - ansgar.radermacher@cea.fr initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.codegen.extensionpoints;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+
+/**
+ * Support for multiple target languages via the Eclipse extension mechanism
+ */
+public class LanguageProjectSupport {
+
+ public static final String ILANG_SUPPORT_ID = Activator.PLUGIN_ID + ".languageProjectSupport"; //$NON-NLS-1$
+
+ /**
+ * Get the project support for a given language editor.
+ *
+ * @param language
+ * a programming language
+ * @return the project support
+ */
+ public static ILangProjectSupport getProjectSupport(String language) {
+ IExtensionRegistry reg = Platform.getExtensionRegistry();
+ IConfigurationElement[] configElements = reg.getConfigurationElementsFor(ILANG_SUPPORT_ID);
+ for (IConfigurationElement configElement : configElements) {
+ try {
+ final String extLanguage = configElement.getAttribute("language"); //$NON-NLS-1$
+ if (extLanguage.equals(language)) {
+ final Object obj = configElement.createExecutableExtension("class"); //$NON-NLS-1$
+ if (obj instanceof ILangProjectSupport) {
+ return (ILangProjectSupport) obj;
+ }
+ }
+ } catch (CoreException exception) {
+ exception.printStackTrace();
+ }
+ }
+ throw new RuntimeException(String.format(Messages.LanguageSupport_LanguageNotSupported, language));
+ }
+}
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/Messages.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/Messages.java
new file mode 100644
index 00000000000..7ef890e1a85
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/Messages.java
@@ -0,0 +1,20 @@
+package org.eclipse.papyrus.codegen.extensionpoints;
+
+import org.eclipse.osgi.util.NLS;
+
+public class Messages extends NLS {
+ private static final String BUNDLE_NAME = "org.eclipse.papyrus.codegen.extensionpoints.messages"; //$NON-NLS-1$
+ public static String GeneratorSelectionDialog_infoCodeGen;
+ public static String GeneratorSelectionDialog_SelectGenerator;
+ public static String LanguageCodegen_NoGeneratorsFound;
+ public static String LanguageCodegen_NoGeneratorsFoundLong;
+ public static String LanguageSupport_LanguageNotSupported;
+ public static String ModelElementsCreator_UnsupportedModelElement;
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ private Messages() {
+ }
+}
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/MethodInfo.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/MethodInfo.java
new file mode 100644
index 00000000000..3886c365d17
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/MethodInfo.java
@@ -0,0 +1,124 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.codegen.extensionpoints;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.uml2.uml.Behavior;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.ParameterDirectionKind;
+
+/**
+ * Additional information about a method that has been generated for a UML behavior.
+ * This information is used by the CDT editor integration to locate the method in the code, but might be useful
+ * for other languages as well.
+ */
+public class MethodInfo {
+
+ /**
+ * Create a new method info with a given name. The parameter list is initially empty.
+ * Parameter types can be added with the method addParameterType
+ * can be initialized later.
+ * @param name
+ */
+ public MethodInfo(String name) {
+ this.name = name;
+ this.parameterTypes = new ArrayList<String>();
+ }
+
+ /**
+ * Create a new method info
+ * @param name
+ * @param parameterTypes
+ */
+ public MethodInfo(String name, List<String> parameterTypes) {
+ this.name = name;
+ this.parameterTypes = parameterTypes;
+ }
+
+ /**
+ * constructor creating a default method information instance from a given behavior
+ * @param behavior
+ */
+ public static MethodInfo fromBehavior(Behavior behavior) {
+ MethodInfo mi = new MethodInfo(behavior.getName());
+ for (Parameter parameter : behavior.getOwnedParameters()) {
+ if (parameter.getDirection() != ParameterDirectionKind.RETURN_LITERAL) {
+ if (parameter.getType() != null) {
+ mi.addParameterType(parameter.getType().getQualifiedName());
+ }
+ }
+ else {
+ mi.addParameterType("undefined"); //$NON-NLS-1$
+ }
+ }
+ return mi;
+ }
+
+ /**
+ * default initializer from a method
+ * @param behavior
+ */
+ public static MethodInfo fromOperation(Operation operation) {
+ MethodInfo mi = new MethodInfo(operation.getName());
+ for (Parameter parameter : operation.getOwnedParameters()) {
+ if (parameter.getDirection() != ParameterDirectionKind.RETURN_LITERAL) {
+ if (parameter.getType() != null) {
+ mi.addParameterType(parameter.getType().getQualifiedName());
+ }
+ }
+ else {
+ mi.addParameterType("undefined"); //$NON-NLS-1$
+ }
+ }
+ return mi;
+ }
+
+ /**
+ * Add a parameter type
+ *
+ * @param parameterType the parameter type
+ */
+ public void addParameterType(String parameterType) {
+ parameterTypes.add(parameterType);
+ }
+
+ /**
+ * @return method name
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * @return list of parameters types (in form of strings). These might contain additional
+ * modifiers, e.g. { "const char*" }
+ */
+ public List<String> getParameterTypes() {
+ return parameterTypes;
+ }
+
+ /**
+ * The name of the generated method.
+ */
+ protected String name;
+
+ /**
+ * The names of parameter types
+ */
+ protected List<String> parameterTypes;
+}
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/SyncInformation.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/SyncInformation.java
new file mode 100644
index 00000000000..82f5d4e4af9
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/SyncInformation.java
@@ -0,0 +1,39 @@
+package org.eclipse.papyrus.codegen.extensionpoints;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Behavior;
+
+/**
+ * Some code generators map behaviors in a non-trivial way or add methods that have not been generated.
+ * The following information allows (generic) synchronization code, as within the CDT editor to
+ * make a useful update of the source model.
+ */
+public class SyncInformation {
+ /**
+ * true, iff the method has been added by the generator and does not need synchronization.
+ */
+ public boolean isGenerated;
+
+ /**
+ * the associated behavior within the source model, in case of a non-trivial method.
+ * If the element does not exist yet in the source model, it may be null.
+ */
+ public Behavior behavior;
+
+ /*
+ * The qualified name of a behavior to create in the model. This is used, if there should be an associated behavior in the
+ * model, but it does not exist yet. Only one of the two attributes (behavior and createBehaviorName) must be set.
+ */
+ public String createBehaviorName;
+
+ /**
+ * the element for which the CDT editor has been opened. This may for instance be the class that is edited.
+ */
+ public EObject editedElement;
+
+ /**
+ * The method body gets filtered during default synchronization (text between generation markers is removed), but the filtered information might be
+ * important for customized back-synchronization.
+ */
+ public String unfilteredBody;
+} \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/messages.properties b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/messages.properties
new file mode 100644
index 00000000000..72942846feb
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.codegen.extensionpoints/src/org/eclipse/papyrus/codegen/extensionpoints/messages.properties
@@ -0,0 +1,6 @@
+GeneratorSelectionDialog_infoCodeGen=Information about code generator:
+GeneratorSelectionDialog_SelectGenerator=Select a code generator
+LanguageCodegen_NoGeneratorsFound=No code generators found
+LanguageCodegen_NoGeneratorsFoundLong=No eligible code generators can be found for the language pattern %s
+LanguageSupport_LanguageNotSupported=Support for language "%s" not configured
+ModelElementsCreator_UnsupportedModelElement=code generator: unsupported model element "%s"
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/.classpath b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/.classpath
new file mode 100644
index 00000000000..ad32c83a788
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/.project b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/.project
new file mode 100644
index 00000000000..166c5980713
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.texteditor.model</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/META-INF/MANIFEST.MF b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..4b8a8b4deec
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport
+Export-Package: org.eclipse.papyrus.texteditor.model.texteditormodel,
+ org.eclipse.papyrus.texteditor.model.texteditormodel.impl,
+ org.eclipse.papyrus.texteditor.model.texteditormodel.util
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-ClassPath: .
+Bundle-Version: 1.2.0.qualifier
+Bundle-Localization: plugin
+Bundle-Name: %pluginName
+Bundle-ManifestVersion: 2
+Bundle-Description: %pluginDescription
+Bundle-SymbolicName: org.eclipse.papyrus.texteditor.model;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/about.html b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/about.html
new file mode 100644
index 00000000000..82d49bf5f81
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/build.properties b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/build.properties
new file mode 100644
index 00000000000..83183307edb
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/build.properties
@@ -0,0 +1,22 @@
+# Copyright (c) 2012 CEA LIST.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Vincent Lorenzo (CEA-LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+#
+
+bin.includes = .,\
+ model/,\
+ META-INF/,\
+ plugin.xml,\
+ about.html,\
+ plugin.properties,\
+ build.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin/
+src.includes = about.html
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/model/texteditormodel.ecore b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/model/texteditormodel.ecore
new file mode 100644
index 00000000000..9a9647a4907
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/model/texteditormodel.ecore
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="texteditormodel" nsURI="http://www.eclipse.org/Papyrus/TextEditor/0.10.0/texteditormodel"
+ nsPrefix="texteditormodel">
+ <eClassifiers xsi:type="ecore:EClass" name="TextEditorModel" eSuperTypes="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EModelElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editedObject" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="selectedObject" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="lineNumber" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="generatorID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/model/texteditormodel.genmodel b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/model/texteditormodel.genmodel
new file mode 100644
index 00000000000..37ae28a3a40
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/model/texteditormodel.genmodel
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText=" Copyright (c) 2012 CEA LIST.&#xD;&#xA;&#xD;&#xA; All rights reserved. This program and the accompanying materials&#xD;&#xA; are made available under the terms of the Eclipse Public License v1.0&#xD;&#xA; which accompanies this distribution, and is available at&#xD;&#xA; http://www.eclipse.org/legal/epl-v10.html&#xD;&#xA;&#xD;&#xA; Contributors:&#xD;&#xA; Vincent Lorenzo (CEA-LIST) vincent.lorenzo@cea.fr - Initial API and implementation&#xD;&#xA;"
+ modelDirectory="/org.eclipse.papyrus.texteditor.model/src" modelPluginID="org.eclipse.papyrus.texteditor.model"
+ modelName="TextEditorModel" importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0"
+ copyrightFields="false" usedGenPackages="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore">
+ <foreignModel>texteditormodel.ecore</foreignModel>
+ <genPackages prefix="TextEditorModel" basePackage="org.eclipse.papyrus.texteditor.model"
+ disposableProviderFactory="true" ecorePackage="texteditormodel.ecore#/">
+ <genClasses ecoreClass="texteditormodel.ecore#//TextEditorModel">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference texteditormodel.ecore#//TextEditorModel/editedObject"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute texteditormodel.ecore#//TextEditorModel/type"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute texteditormodel.ecore#//TextEditorModel/name"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference texteditormodel.ecore#//TextEditorModel/selectedObject"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute texteditormodel.ecore#//TextEditorModel/lineNumber"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute texteditormodel.ecore#//TextEditorModel/generatorID"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/plugin.properties b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/plugin.properties
new file mode 100644
index 00000000000..8f2b155a923
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/plugin.properties
@@ -0,0 +1,15 @@
+# Copyright (c) 2012 CEA LIST.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Ansgar Radermacher (CEA LIST) ansgar.radermacher@cea.fr - Initial API and implementation
+# (with the help of examining table support from Vincent Lorenzo)
+#
+pluginName = Ecore model for text editors (Incubation)
+providerName = Eclipse Modeling Project
+
+pluginDescription=This plugin provides the content model for the papyrus text editor
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/plugin.xml b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/plugin.xml
new file mode 100644
index 00000000000..444ce844d4c
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/plugin.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ Copyright (c) 2012 CEA LIST.
+
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+ Ansgar Radermacher (CEA-LIST) ansgar.radermacher@cea.fr - Initial API and implementation
+ (derived from code from Vincent Lorenzo)
+
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri="http://www.eclipse.org/Papyrus/Text/0.10.0/texteditormodel"
+ class="org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModelPackage"
+ genModel="model/texteditormodel.genmodel"/>
+ </extension>
+
+</plugin>
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/pom.xml b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/pom.xml
new file mode 100644
index 00000000000..44e5f92bb71
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.texteditor.model</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/src/org/eclipse/papyrus/texteditor/model/texteditormodel/TextEditorModel.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/src/org/eclipse/papyrus/texteditor/model/texteditormodel/TextEditorModel.java
new file mode 100644
index 00000000000..bc2a6b449b1
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/src/org/eclipse/papyrus/texteditor/model/texteditormodel/TextEditorModel.java
@@ -0,0 +1,191 @@
+/**
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA-LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.texteditor.model.texteditormodel;
+
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Text Editor Model</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel#getEditedObject <em>Edited Object</em>}</li>
+ * <li>{@link org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel#getSelectedObject <em>Selected Object</em>}</li>
+ * <li>{@link org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel#getLineNumber <em>Line Number</em>}</li>
+ * <li>{@link org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel#getGeneratorID <em>Generator ID</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModelPackage#getTextEditorModel()
+ * @model
+ * @generated
+ */
+public interface TextEditorModel extends EModelElement {
+ /**
+ * Returns the value of the '<em><b>Edited Object</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Edited Object</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Edited Object</em>' reference.
+ * @see #setEditedObject(EObject)
+ * @see org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModelPackage#getTextEditorModel_EditedObject()
+ * @model
+ * @generated
+ */
+ EObject getEditedObject();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel#getEditedObject <em>Edited Object</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Edited Object</em>' reference.
+ * @see #getEditedObject()
+ * @generated
+ */
+ void setEditedObject(EObject value);
+
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type</em>' attribute.
+ * @see #setType(String)
+ * @see org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModelPackage#getTextEditorModel_Type()
+ * @model
+ * @generated
+ */
+ String getType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel#getType <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Type</em>' attribute.
+ * @see #getType()
+ * @generated
+ */
+ void setType(String value);
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModelPackage#getTextEditorModel_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Selected Object</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Selected Object</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Selected Object</em>' reference.
+ * @see #setSelectedObject(EObject)
+ * @see org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModelPackage#getTextEditorModel_SelectedObject()
+ * @model
+ * @generated
+ */
+ EObject getSelectedObject();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel#getSelectedObject <em>Selected Object</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Selected Object</em>' reference.
+ * @see #getSelectedObject()
+ * @generated
+ */
+ void setSelectedObject(EObject value);
+
+ /**
+ * Returns the value of the '<em><b>Line Number</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Line Number</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Line Number</em>' attribute.
+ * @see #setLineNumber(int)
+ * @see org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModelPackage#getTextEditorModel_LineNumber()
+ * @model
+ * @generated
+ */
+ int getLineNumber();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel#getLineNumber <em>Line Number</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Line Number</em>' attribute.
+ * @see #getLineNumber()
+ * @generated
+ */
+ void setLineNumber(int value);
+
+ /**
+ * Returns the value of the '<em><b>Generator ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Generator ID</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Generator ID</em>' attribute.
+ * @see #setGeneratorID(String)
+ * @see org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModelPackage#getTextEditorModel_GeneratorID()
+ * @model
+ * @generated
+ */
+ String getGeneratorID();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel#getGeneratorID <em>Generator ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Generator ID</em>' attribute.
+ * @see #getGeneratorID()
+ * @generated
+ */
+ void setGeneratorID(String value);
+
+} // TextEditorModel
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/src/org/eclipse/papyrus/texteditor/model/texteditormodel/TextEditorModelFactory.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/src/org/eclipse/papyrus/texteditor/model/texteditormodel/TextEditorModelFactory.java
new file mode 100644
index 00000000000..705f79b8b40
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/src/org/eclipse/papyrus/texteditor/model/texteditormodel/TextEditorModelFactory.java
@@ -0,0 +1,52 @@
+/**
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA-LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.texteditor.model.texteditormodel;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModelPackage
+ * @generated
+ */
+public interface TextEditorModelFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ TextEditorModelFactory eINSTANCE = org.eclipse.papyrus.texteditor.model.texteditormodel.impl.TextEditorModelFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Text Editor Model</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Text Editor Model</em>'.
+ * @generated
+ */
+ TextEditorModel createTextEditorModel();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ TextEditorModelPackage getTextEditorModelPackage();
+
+} // TextEditorModelFactory
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/src/org/eclipse/papyrus/texteditor/model/texteditormodel/TextEditorModelPackage.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/src/org/eclipse/papyrus/texteditor/model/texteditormodel/TextEditorModelPackage.java
new file mode 100644
index 00000000000..25da2ea1bf8
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/src/org/eclipse/papyrus/texteditor/model/texteditormodel/TextEditorModelPackage.java
@@ -0,0 +1,310 @@
+/**
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA-LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.texteditor.model.texteditormodel;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModelFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface TextEditorModelPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "texteditormodel";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/Papyrus/TextEditor/0.10.0/texteditormodel";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "texteditormodel";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ TextEditorModelPackage eINSTANCE = org.eclipse.papyrus.texteditor.model.texteditormodel.impl.TextEditorModelPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.texteditor.model.texteditormodel.impl.TextEditorModelImpl <em>Text Editor Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.texteditor.model.texteditormodel.impl.TextEditorModelImpl
+ * @see org.eclipse.papyrus.texteditor.model.texteditormodel.impl.TextEditorModelPackageImpl#getTextEditorModel()
+ * @generated
+ */
+ int TEXT_EDITOR_MODEL = 0;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEXT_EDITOR_MODEL__EANNOTATIONS = EcorePackage.EMODEL_ELEMENT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Edited Object</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEXT_EDITOR_MODEL__EDITED_OBJECT = EcorePackage.EMODEL_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEXT_EDITOR_MODEL__TYPE = EcorePackage.EMODEL_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEXT_EDITOR_MODEL__NAME = EcorePackage.EMODEL_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Selected Object</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEXT_EDITOR_MODEL__SELECTED_OBJECT = EcorePackage.EMODEL_ELEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Line Number</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEXT_EDITOR_MODEL__LINE_NUMBER = EcorePackage.EMODEL_ELEMENT_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Generator ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEXT_EDITOR_MODEL__GENERATOR_ID = EcorePackage.EMODEL_ELEMENT_FEATURE_COUNT + 5;
+
+ /**
+ * The number of structural features of the '<em>Text Editor Model</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEXT_EDITOR_MODEL_FEATURE_COUNT = EcorePackage.EMODEL_ELEMENT_FEATURE_COUNT + 6;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel <em>Text Editor Model</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Text Editor Model</em>'.
+ * @see org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel
+ * @generated
+ */
+ EClass getTextEditorModel();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel#getEditedObject <em>Edited Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Edited Object</em>'.
+ * @see org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel#getEditedObject()
+ * @see #getTextEditorModel()
+ * @generated
+ */
+ EReference getTextEditorModel_EditedObject();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Type</em>'.
+ * @see org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel#getType()
+ * @see #getTextEditorModel()
+ * @generated
+ */
+ EAttribute getTextEditorModel_Type();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel#getName()
+ * @see #getTextEditorModel()
+ * @generated
+ */
+ EAttribute getTextEditorModel_Name();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel#getSelectedObject <em>Selected Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Selected Object</em>'.
+ * @see org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel#getSelectedObject()
+ * @see #getTextEditorModel()
+ * @generated
+ */
+ EReference getTextEditorModel_SelectedObject();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel#getLineNumber <em>Line Number</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Line Number</em>'.
+ * @see org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel#getLineNumber()
+ * @see #getTextEditorModel()
+ * @generated
+ */
+ EAttribute getTextEditorModel_LineNumber();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel#getGeneratorID <em>Generator ID</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Generator ID</em>'.
+ * @see org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel#getGeneratorID()
+ * @see #getTextEditorModel()
+ * @generated
+ */
+ EAttribute getTextEditorModel_GeneratorID();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ TextEditorModelFactory getTextEditorModelFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.texteditor.model.texteditormodel.impl.TextEditorModelImpl <em>Text Editor Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.texteditor.model.texteditormodel.impl.TextEditorModelImpl
+ * @see org.eclipse.papyrus.texteditor.model.texteditormodel.impl.TextEditorModelPackageImpl#getTextEditorModel()
+ * @generated
+ */
+ EClass TEXT_EDITOR_MODEL = eINSTANCE.getTextEditorModel();
+
+ /**
+ * The meta object literal for the '<em><b>Edited Object</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TEXT_EDITOR_MODEL__EDITED_OBJECT = eINSTANCE.getTextEditorModel_EditedObject();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TEXT_EDITOR_MODEL__TYPE = eINSTANCE.getTextEditorModel_Type();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TEXT_EDITOR_MODEL__NAME = eINSTANCE.getTextEditorModel_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Selected Object</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TEXT_EDITOR_MODEL__SELECTED_OBJECT = eINSTANCE.getTextEditorModel_SelectedObject();
+
+ /**
+ * The meta object literal for the '<em><b>Line Number</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TEXT_EDITOR_MODEL__LINE_NUMBER = eINSTANCE.getTextEditorModel_LineNumber();
+
+ /**
+ * The meta object literal for the '<em><b>Generator ID</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TEXT_EDITOR_MODEL__GENERATOR_ID = eINSTANCE.getTextEditorModel_GeneratorID();
+
+ }
+
+} // TextEditorModelPackage
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/src/org/eclipse/papyrus/texteditor/model/texteditormodel/impl/TextEditorModelFactoryImpl.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/src/org/eclipse/papyrus/texteditor/model/texteditormodel/impl/TextEditorModelFactoryImpl.java
new file mode 100644
index 00000000000..997f6ff4c0b
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/src/org/eclipse/papyrus/texteditor/model/texteditormodel/impl/TextEditorModelFactoryImpl.java
@@ -0,0 +1,107 @@
+/**
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA-LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.texteditor.model.texteditormodel.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.papyrus.texteditor.model.texteditormodel.*;
+import org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel;
+import org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModelFactory;
+import org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TextEditorModelFactoryImpl extends EFactoryImpl implements TextEditorModelFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static TextEditorModelFactory init() {
+ try {
+ TextEditorModelFactory theTextEditorModelFactory = (TextEditorModelFactory)EPackage.Registry.INSTANCE.getEFactory(TextEditorModelPackage.eNS_URI);
+ if (theTextEditorModelFactory != null) {
+ return theTextEditorModelFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new TextEditorModelFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TextEditorModelFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case TextEditorModelPackage.TEXT_EDITOR_MODEL: return createTextEditorModel();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public TextEditorModel createTextEditorModel() {
+ TextEditorModelImpl textEditorModel = new TextEditorModelImpl();
+ return textEditorModel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public TextEditorModelPackage getTextEditorModelPackage() {
+ return (TextEditorModelPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static TextEditorModelPackage getPackage() {
+ return TextEditorModelPackage.eINSTANCE;
+ }
+
+} // TextEditorModelFactoryImpl
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/src/org/eclipse/papyrus/texteditor/model/texteditormodel/impl/TextEditorModelImpl.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/src/org/eclipse/papyrus/texteditor/model/texteditormodel/impl/TextEditorModelImpl.java
new file mode 100644
index 00000000000..c11dafff246
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/src/org/eclipse/papyrus/texteditor/model/texteditormodel/impl/TextEditorModelImpl.java
@@ -0,0 +1,464 @@
+/**
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA-LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.texteditor.model.texteditormodel.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.EModelElementImpl;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel;
+import org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Text Editor Model</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.texteditor.model.texteditormodel.impl.TextEditorModelImpl#getEditedObject <em>Edited Object</em>}</li>
+ * <li>{@link org.eclipse.papyrus.texteditor.model.texteditormodel.impl.TextEditorModelImpl#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.papyrus.texteditor.model.texteditormodel.impl.TextEditorModelImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.texteditor.model.texteditormodel.impl.TextEditorModelImpl#getSelectedObject <em>Selected Object</em>}</li>
+ * <li>{@link org.eclipse.papyrus.texteditor.model.texteditormodel.impl.TextEditorModelImpl#getLineNumber <em>Line Number</em>}</li>
+ * <li>{@link org.eclipse.papyrus.texteditor.model.texteditormodel.impl.TextEditorModelImpl#getGeneratorID <em>Generator ID</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class TextEditorModelImpl extends EModelElementImpl implements TextEditorModel {
+ /**
+ * The cached value of the '{@link #getEditedObject() <em>Edited Object</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEditedObject()
+ * @generated
+ * @ordered
+ */
+ protected EObject editedObject;
+
+ /**
+ * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected static final String TYPE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected String type = TYPE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getSelectedObject() <em>Selected Object</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSelectedObject()
+ * @generated
+ * @ordered
+ */
+ protected EObject selectedObject;
+
+ /**
+ * The default value of the '{@link #getLineNumber() <em>Line Number</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLineNumber()
+ * @generated
+ * @ordered
+ */
+ protected static final int LINE_NUMBER_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getLineNumber() <em>Line Number</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLineNumber()
+ * @generated
+ * @ordered
+ */
+ protected int lineNumber = LINE_NUMBER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getGeneratorID() <em>Generator ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGeneratorID()
+ * @generated
+ * @ordered
+ */
+ protected static final String GENERATOR_ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getGeneratorID() <em>Generator ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGeneratorID()
+ * @generated
+ * @ordered
+ */
+ protected String generatorID = GENERATOR_ID_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TextEditorModelImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return TextEditorModelPackage.Literals.TEXT_EDITOR_MODEL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject getEditedObject() {
+ if (editedObject != null && editedObject.eIsProxy()) {
+ InternalEObject oldEditedObject = (InternalEObject)editedObject;
+ editedObject = eResolveProxy(oldEditedObject);
+ if (editedObject != oldEditedObject) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, TextEditorModelPackage.TEXT_EDITOR_MODEL__EDITED_OBJECT, oldEditedObject, editedObject));
+ }
+ }
+ return editedObject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObject basicGetEditedObject() {
+ return editedObject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setEditedObject(EObject newEditedObject) {
+ EObject oldEditedObject = editedObject;
+ editedObject = newEditedObject;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TextEditorModelPackage.TEXT_EDITOR_MODEL__EDITED_OBJECT, oldEditedObject, editedObject));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setType(String newType) {
+ String oldType = type;
+ type = newType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TextEditorModelPackage.TEXT_EDITOR_MODEL__TYPE, oldType, type));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TextEditorModelPackage.TEXT_EDITOR_MODEL__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject getSelectedObject() {
+ if (selectedObject != null && selectedObject.eIsProxy()) {
+ InternalEObject oldSelectedObject = (InternalEObject)selectedObject;
+ selectedObject = eResolveProxy(oldSelectedObject);
+ if (selectedObject != oldSelectedObject) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, TextEditorModelPackage.TEXT_EDITOR_MODEL__SELECTED_OBJECT, oldSelectedObject, selectedObject));
+ }
+ }
+ return selectedObject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObject basicGetSelectedObject() {
+ return selectedObject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setSelectedObject(EObject newSelectedObject) {
+ EObject oldSelectedObject = selectedObject;
+ selectedObject = newSelectedObject;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TextEditorModelPackage.TEXT_EDITOR_MODEL__SELECTED_OBJECT, oldSelectedObject, selectedObject));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getLineNumber() {
+ return lineNumber;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setLineNumber(int newLineNumber) {
+ int oldLineNumber = lineNumber;
+ lineNumber = newLineNumber;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TextEditorModelPackage.TEXT_EDITOR_MODEL__LINE_NUMBER, oldLineNumber, lineNumber));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getGeneratorID() {
+ return generatorID;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setGeneratorID(String newGeneratorID) {
+ String oldGeneratorID = generatorID;
+ generatorID = newGeneratorID;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TextEditorModelPackage.TEXT_EDITOR_MODEL__GENERATOR_ID, oldGeneratorID, generatorID));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case TextEditorModelPackage.TEXT_EDITOR_MODEL__EDITED_OBJECT:
+ if (resolve) return getEditedObject();
+ return basicGetEditedObject();
+ case TextEditorModelPackage.TEXT_EDITOR_MODEL__TYPE:
+ return getType();
+ case TextEditorModelPackage.TEXT_EDITOR_MODEL__NAME:
+ return getName();
+ case TextEditorModelPackage.TEXT_EDITOR_MODEL__SELECTED_OBJECT:
+ if (resolve) return getSelectedObject();
+ return basicGetSelectedObject();
+ case TextEditorModelPackage.TEXT_EDITOR_MODEL__LINE_NUMBER:
+ return getLineNumber();
+ case TextEditorModelPackage.TEXT_EDITOR_MODEL__GENERATOR_ID:
+ return getGeneratorID();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case TextEditorModelPackage.TEXT_EDITOR_MODEL__EDITED_OBJECT:
+ setEditedObject((EObject)newValue);
+ return;
+ case TextEditorModelPackage.TEXT_EDITOR_MODEL__TYPE:
+ setType((String)newValue);
+ return;
+ case TextEditorModelPackage.TEXT_EDITOR_MODEL__NAME:
+ setName((String)newValue);
+ return;
+ case TextEditorModelPackage.TEXT_EDITOR_MODEL__SELECTED_OBJECT:
+ setSelectedObject((EObject)newValue);
+ return;
+ case TextEditorModelPackage.TEXT_EDITOR_MODEL__LINE_NUMBER:
+ setLineNumber((Integer)newValue);
+ return;
+ case TextEditorModelPackage.TEXT_EDITOR_MODEL__GENERATOR_ID:
+ setGeneratorID((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case TextEditorModelPackage.TEXT_EDITOR_MODEL__EDITED_OBJECT:
+ setEditedObject((EObject)null);
+ return;
+ case TextEditorModelPackage.TEXT_EDITOR_MODEL__TYPE:
+ setType(TYPE_EDEFAULT);
+ return;
+ case TextEditorModelPackage.TEXT_EDITOR_MODEL__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case TextEditorModelPackage.TEXT_EDITOR_MODEL__SELECTED_OBJECT:
+ setSelectedObject((EObject)null);
+ return;
+ case TextEditorModelPackage.TEXT_EDITOR_MODEL__LINE_NUMBER:
+ setLineNumber(LINE_NUMBER_EDEFAULT);
+ return;
+ case TextEditorModelPackage.TEXT_EDITOR_MODEL__GENERATOR_ID:
+ setGeneratorID(GENERATOR_ID_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case TextEditorModelPackage.TEXT_EDITOR_MODEL__EDITED_OBJECT:
+ return editedObject != null;
+ case TextEditorModelPackage.TEXT_EDITOR_MODEL__TYPE:
+ return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
+ case TextEditorModelPackage.TEXT_EDITOR_MODEL__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case TextEditorModelPackage.TEXT_EDITOR_MODEL__SELECTED_OBJECT:
+ return selectedObject != null;
+ case TextEditorModelPackage.TEXT_EDITOR_MODEL__LINE_NUMBER:
+ return lineNumber != LINE_NUMBER_EDEFAULT;
+ case TextEditorModelPackage.TEXT_EDITOR_MODEL__GENERATOR_ID:
+ return GENERATOR_ID_EDEFAULT == null ? generatorID != null : !GENERATOR_ID_EDEFAULT.equals(generatorID);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (type: ");
+ result.append(type);
+ result.append(", name: ");
+ result.append(name);
+ result.append(", lineNumber: ");
+ result.append(lineNumber);
+ result.append(", generatorID: ");
+ result.append(generatorID);
+ result.append(')');
+ return result.toString();
+ }
+
+} // TextEditorModelImpl
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/src/org/eclipse/papyrus/texteditor/model/texteditormodel/impl/TextEditorModelPackageImpl.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/src/org/eclipse/papyrus/texteditor/model/texteditormodel/impl/TextEditorModelPackageImpl.java
new file mode 100644
index 00000000000..8e10c9e3320
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/src/org/eclipse/papyrus/texteditor/model/texteditormodel/impl/TextEditorModelPackageImpl.java
@@ -0,0 +1,255 @@
+/**
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA-LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.texteditor.model.texteditormodel.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel;
+import org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModelFactory;
+import org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TextEditorModelPackageImpl extends EPackageImpl implements TextEditorModelPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass textEditorModelEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModelPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private TextEditorModelPackageImpl() {
+ super(eNS_URI, TextEditorModelFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>
+ * This method is used to initialize {@link TextEditorModelPackage#eINSTANCE} when that field is accessed. Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static TextEditorModelPackage init() {
+ if (isInited) return (TextEditorModelPackage)EPackage.Registry.INSTANCE.getEPackage(TextEditorModelPackage.eNS_URI);
+
+ // Obtain or create and register package
+ TextEditorModelPackageImpl theTextEditorModelPackage = (TextEditorModelPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof TextEditorModelPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new TextEditorModelPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ EcorePackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theTextEditorModelPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theTextEditorModelPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theTextEditorModelPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(TextEditorModelPackage.eNS_URI, theTextEditorModelPackage);
+ return theTextEditorModelPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getTextEditorModel() {
+ return textEditorModelEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getTextEditorModel_EditedObject() {
+ return (EReference)textEditorModelEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getTextEditorModel_Type() {
+ return (EAttribute)textEditorModelEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getTextEditorModel_Name() {
+ return (EAttribute)textEditorModelEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getTextEditorModel_SelectedObject() {
+ return (EReference)textEditorModelEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getTextEditorModel_LineNumber() {
+ return (EAttribute)textEditorModelEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTextEditorModel_GeneratorID() {
+ return (EAttribute)textEditorModelEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public TextEditorModelFactory getTextEditorModelFactory() {
+ return (TextEditorModelFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ textEditorModelEClass = createEClass(TEXT_EDITOR_MODEL);
+ createEReference(textEditorModelEClass, TEXT_EDITOR_MODEL__EDITED_OBJECT);
+ createEAttribute(textEditorModelEClass, TEXT_EDITOR_MODEL__TYPE);
+ createEAttribute(textEditorModelEClass, TEXT_EDITOR_MODEL__NAME);
+ createEReference(textEditorModelEClass, TEXT_EDITOR_MODEL__SELECTED_OBJECT);
+ createEAttribute(textEditorModelEClass, TEXT_EDITOR_MODEL__LINE_NUMBER);
+ createEAttribute(textEditorModelEClass, TEXT_EDITOR_MODEL__GENERATOR_ID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ EcorePackage theEcorePackage = (EcorePackage)EPackage.Registry.INSTANCE.getEPackage(EcorePackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ textEditorModelEClass.getESuperTypes().add(theEcorePackage.getEModelElement());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(textEditorModelEClass, TextEditorModel.class, "TextEditorModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getTextEditorModel_EditedObject(), theEcorePackage.getEObject(), null, "editedObject", null, 0, 1, TextEditorModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTextEditorModel_Type(), ecorePackage.getEString(), "type", null, 0, 1, TextEditorModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTextEditorModel_Name(), ecorePackage.getEString(), "name", null, 0, 1, TextEditorModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTextEditorModel_SelectedObject(), theEcorePackage.getEObject(), null, "selectedObject", null, 0, 1, TextEditorModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTextEditorModel_LineNumber(), ecorePackage.getEInt(), "lineNumber", null, 0, 1, TextEditorModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTextEditorModel_GeneratorID(), ecorePackage.getEString(), "generatorID", null, 0, 1, TextEditorModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} // TextEditorModelPackageImpl
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/src/org/eclipse/papyrus/texteditor/model/texteditormodel/util/TextEditorModelAdapterFactory.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/src/org/eclipse/papyrus/texteditor/model/texteditormodel/util/TextEditorModelAdapterFactory.java
new file mode 100644
index 00000000000..073c23deb57
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/src/org/eclipse/papyrus/texteditor/model/texteditormodel/util/TextEditorModelAdapterFactory.java
@@ -0,0 +1,148 @@
+/**
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA-LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.texteditor.model.texteditormodel.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.texteditor.model.texteditormodel.*;
+import org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel;
+import org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModelPackage
+ * @generated
+ */
+public class TextEditorModelAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static TextEditorModelPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TextEditorModelAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = TextEditorModelPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TextEditorModelSwitch<Adapter> modelSwitch =
+ new TextEditorModelSwitch<Adapter>() {
+ @Override
+ public Adapter caseTextEditorModel(TextEditorModel object) {
+ return createTextEditorModelAdapter();
+ }
+ @Override
+ public Adapter caseEModelElement(EModelElement object) {
+ return createEModelElementAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel <em>Text Editor Model</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel
+ * @generated
+ */
+ public Adapter createTextEditorModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.EModelElement <em>EModel Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.ecore.EModelElement
+ * @generated
+ */
+ public Adapter createEModelElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} // TextEditorModelAdapterFactory
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/src/org/eclipse/papyrus/texteditor/model/texteditormodel/util/TextEditorModelSwitch.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/src/org/eclipse/papyrus/texteditor/model/texteditormodel/util/TextEditorModelSwitch.java
new file mode 100644
index 00000000000..2e8d35c8cea
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.model/src/org/eclipse/papyrus/texteditor/model/texteditormodel/util/TextEditorModelSwitch.java
@@ -0,0 +1,136 @@
+/**
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA-LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.texteditor.model.texteditormodel.util;
+
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.papyrus.texteditor.model.texteditormodel.*;
+import org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel;
+import org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)} to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModelPackage
+ * @generated
+ */
+public class TextEditorModelSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static TextEditorModelPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TextEditorModelSwitch() {
+ if (modelPackage == null) {
+ modelPackage = TextEditorModelPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case TextEditorModelPackage.TEXT_EDITOR_MODEL: {
+ TextEditorModel textEditorModel = (TextEditorModel)theEObject;
+ T result = caseTextEditorModel(textEditorModel);
+ if (result == null) result = caseEModelElement(textEditorModel);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Text Editor Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Text Editor Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTextEditorModel(TextEditorModel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EModel Element</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EModel Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseEModelElement(EModelElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} // TextEditorModelSwitch
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/.classpath b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/.classpath
new file mode 100644
index 00000000000..ad32c83a788
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/.project b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/.project
new file mode 100644
index 00000000000..81eff2e0ed5
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.texteditor.modelexplorer</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/META-INF/MANIFEST.MF b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..f3e062e8080
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/META-INF/MANIFEST.MF
@@ -0,0 +1,25 @@
+Manifest-Version: 1.0
+Export-Package: org.eclipse.papyrus.texteditor.modelexplorer,
+ org.eclipse.papyrus.texteditor.modelexplorer.queries
+Bundle-ActivationPolicy: lazy
+Bundle-Name: %pluginName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.papyrus.views.modelexplorer;bundle-version="1.2.0",
+ com.google.guava;bundle-version="11.0.0",
+ org.eclipse.papyrus.texteditor.model;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.emf;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.core.log;bundle-version="1.2.0",
+ org.eclipse.papyrus.emf.facet.query.java.core;bundle-version="1.2.0",
+ org.eclipse.papyrus.emf.facet.custom.core;bundle-version="1.2.0",
+ org.eclipse.papyrus.emf.facet.custom.ui;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.core.sasheditor.di;bundle-version="1.2.0"
+Bundle-Vendor: %pluginProvider
+Bundle-Version: 1.2.0.qualifier
+Bundle-ManifestVersion: 2
+Bundle-Activator: org.eclipse.papyrus.texteditor.modelexplorer.Activator
+Bundle-SymbolicName: org.eclipse.papyrus.texteditor.modelexplorer;singleton:=true
+Import-Package: org.eclipse.papyrus.infra.core.editorsfactory,
+ org.eclipse.papyrus.infra.viewpoints.policy
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/about.html b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/about.html
new file mode 100644
index 00000000000..82d49bf5f81
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/build.properties b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/build.properties
new file mode 100644
index 00000000000..a42c291785a
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/build.properties
@@ -0,0 +1,9 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ resources/,\
+ about.html,\
+ plugin.xml,\
+ plugin.properties
+src.includes = resources/
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/plugin.properties b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/plugin.properties
new file mode 100644
index 00000000000..e3cf0949e64
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/plugin.properties
@@ -0,0 +1,13 @@
+# Copyright (c) 2012 CEA LIST.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Ansgar Radermacher (CEA LIST) ansgar.radermacher@cea.fr - Initial API and implementation
+# (with the help of examining table support from Vincent Lorenzo)
+#
+pluginProvider = Eclipse Modeling Project
+pluginName = Text Editor Customization For Model Explorer (Incubation) \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/plugin.xml b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/plugin.xml
new file mode 100644
index 00000000000..d9537fda209
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/plugin.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?eclipse version="3.4"?>
+
+<plugin>
+ <extension point="org.eclipse.papyrus.emf.facet.util.emf.core.modeldeclaration">
+ <modeldeclaration file="resources/TextEditorFacet.custom"/>
+ </extension>
+ <extension point="org.eclipse.core.runtime.adapters">
+ <factory
+ adaptableType="org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel"
+ class="org.eclipse.papyrus.texteditor.modelexplorer.adapters.TextEditorAdapterFactory">
+ <adapter
+ type="org.eclipse.papyrus.infra.core.sasheditor.di.contentprovider.IOpenable">
+ </adapter>
+ </factory>
+ </extension>
+</plugin>
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/pom.xml b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/pom.xml
new file mode 100644
index 00000000000..e5345634035
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.texteditor.modelexplorer</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/resources/TextEditorFacet.custom b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/resources/TextEditorFacet.custom
new file mode 100644
index 00000000000..8566b496c67
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/resources/TextEditorFacet.custom
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<custom:Customization xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:custom="http://www.eclipse.org/papyrus/emf/facet/custom/0.2.incubation/custom" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:efacet="http://www.eclipse.org/papyrus/emf/facet/efacet/0.2.incubation/efacet" xmlns:javaQuery="http://www.eclipse.org/papyrus/emf/facet/query/java/0.2.incubation/javaquery" xmlns:query="http://www.eclipse.org/papyrus/emf/facet/efacet/0.2.incubation/efacet/query" name="PapyrusTextEditor" documentation="Display contained texteditor and their icons" mustBeLoadedByDefault="true" rank="1">
+ <eClassifiers xsi:type="custom:EClassCustomization" name="TextEditor" documentation="Representation of a text editor in model explorer">
+ <extendedMetaclass href="http://www.eclipse.org/Papyrus/Text/0.10.0/texteditormodel#//TextEditorModel"/>
+ <facetOperations name="GetTextEditorIcon" documentation="Return the path to the icon of the corresponding text editor">
+ <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/papyrus/emf/facet/custom/0.2.incubation/custom_primitive_types#//Image"/>
+ <eParameters name="eObject">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+ </eParameters>
+ <query xsi:type="javaQuery:JavaQuery" implementationClassName="org.eclipse.papyrus.texteditor.modelexplorer.queries.GetTextEditorIcon"/>
+ <override xsi:type="efacet:FacetOperation" href="../../../plugin/org.eclipse.papyrus.emf.facet.custom.ui/resources/customproperties.efacet#//CustomizedEObject/image"/>
+ </facetOperations>
+ <facetOperations name="NotVisibleStructuralFeature">
+ <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters name="eStructuralFeature">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EStructuralFeature"/>
+ </eParameters>
+ <query xsi:type="javaQuery:JavaQuery" implementationClassName="org.eclipse.papyrus.texteditor.modelexplorer.queries.NotVisibleStructuralFeatureQuery"/>
+ <override xsi:type="efacet:FacetOperation" href="../../../plugin/org.eclipse.papyrus.emf.facet.custom.ui/resources/customproperties.efacet#//CustomizedEObject/isVisible"/>
+ </facetOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="efacet:Facet" name="TextEditorContainer" documentation="this element represent a container of text editor" conformanceTypedElement="//TextEditorContainer/isTextEditorContainer">
+ <extendedMetaclass href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+ <facetOperations name="isTextEditorContainer" documentation="test if the element references text editors">
+ <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <query xsi:type="javaQuery:JavaQuery" implementationClassName="org.eclipse.papyrus.texteditor.modelexplorer.queries.IsTextEditorContainer"/>
+ </facetOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="custom:FacetCustomization" name="TextEditorContainer" documentation="Representation of a text editor container">
+ <facetElements xsi:type="efacet:FacetReference" name="texteditors" upperBound="-1" defaultValueLiteral="" derived="true">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/Papyrus/Text/0.10.0/texteditormodel#//TextEditorModel"/>
+ <query xsi:type="query:OperationCallQuery" operation="//TextEditorContainer.1/TextEditorsRefContent"/>
+ </facetElements>
+ <facetOperations name="TextEditorsRefContent" upperBound="-1" documentation="Get the collection of all contained text editors">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/Papyrus/Text/0.10.0/texteditormodel#//TextEditorModel"/>
+ <query xsi:type="javaQuery:JavaQuery" implementationClassName="org.eclipse.papyrus.texteditor.modelexplorer.queries.GetContainedTextEditors"/>
+ </facetOperations>
+ <extendedFacets href="../../../extraplugins/org.eclipse.papyrus.texteditor.modelexplorer/resources/PapyrusTextEditor.custom#//TextEditorContainer"/>
+ <customizedFacet href="../../../extraplugins/org.eclipse.papyrus.texteditor.modelexplorer/resources/PapyrusTextEditor.custom#//TextEditorContainer"/>
+ </eClassifiers>
+</custom:Customization> \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/src/org/eclipse/papyrus/texteditor/modelexplorer/Activator.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/src/org/eclipse/papyrus/texteditor/modelexplorer/Activator.java
new file mode 100644
index 00000000000..d37acadb2ff
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/src/org/eclipse/papyrus/texteditor/modelexplorer/Activator.java
@@ -0,0 +1,73 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) ansgar.radermacher@cea.fr - Initial API and implementation
+ * (with the help of examining table support from Vincent Lorenzo)
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.texteditor.modelexplorer;
+
+import org.eclipse.papyrus.infra.core.log.LogHelper;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.texteditor.modelexplorer"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ public static LogHelper log;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ log = new LogHelper(this);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+}
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/src/org/eclipse/papyrus/texteditor/modelexplorer/adapters/TextEditorAdapterFactory.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/src/org/eclipse/papyrus/texteditor/modelexplorer/adapters/TextEditorAdapterFactory.java
new file mode 100644
index 00000000000..b3b416be9c9
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/src/org/eclipse/papyrus/texteditor/modelexplorer/adapters/TextEditorAdapterFactory.java
@@ -0,0 +1,40 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - ansgar.radermacher@cea.fr - Initial API and implementation
+ * (derived from DiagramAdapterFactory)
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.texteditor.modelexplorer.adapters;
+
+import org.eclipse.core.runtime.IAdapterFactory;
+import org.eclipse.papyrus.infra.core.sasheditor.di.contentprovider.IOpenable;
+import org.eclipse.papyrus.infra.core.sasheditor.di.contentprovider.IOpenableWithContainer;
+import org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel;
+
+@SuppressWarnings("rawtypes")
+public class TextEditorAdapterFactory implements IAdapterFactory {
+
+ @Override
+ public Object getAdapter(Object adaptableObject, Class adapterType) {
+ if (adapterType == IOpenable.class) {
+ if (adaptableObject instanceof TextEditorModel) {
+ TextEditorModel textEditorModel = (TextEditorModel) adaptableObject;
+ return new IOpenableWithContainer.Openable(adaptableObject, textEditorModel.getEditedObject());
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public Class[] getAdapterList() {
+ return new Class[] { IOpenable.class };
+ }
+}
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/src/org/eclipse/papyrus/texteditor/modelexplorer/queries/GetContainedTextEditors.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/src/org/eclipse/papyrus/texteditor/modelexplorer/queries/GetContainedTextEditors.java
new file mode 100644
index 00000000000..eae3a2f2554
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/src/org/eclipse/papyrus/texteditor/modelexplorer/queries/GetContainedTextEditors.java
@@ -0,0 +1,58 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) ansgar.radermacher@cea.fr - Initial API and implementation
+ * (with the help of examining table support from Vincent Lorenzo)
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.texteditor.modelexplorer.queries;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.emf.facet.efacet.core.IFacetManager;
+import org.eclipse.papyrus.emf.facet.efacet.core.exception.DerivedTypedElementException;
+import org.eclipse.papyrus.emf.facet.query.java.core.IJavaQuery2;
+import org.eclipse.papyrus.emf.facet.query.java.core.IParameterValueList2;
+import org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel;
+import org.eclipse.papyrus.views.modelexplorer.NavigatorUtils;
+import org.eclipse.papyrus.views.modelexplorer.queries.AbstractEditorContainerQuery;
+
+/** Get the collection of all contained text editors */
+public class GetContainedTextEditors extends AbstractEditorContainerQuery implements IJavaQuery2<EObject, Collection<TextEditorModel>> {
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Collection<TextEditorModel> evaluate(EObject source, IParameterValueList2 parameterValues, IFacetManager manager) throws DerivedTypedElementException {
+
+ List<TextEditorModel> result = new ArrayList<TextEditorModel>();
+ Iterator<EObject> roots = NavigatorUtils.getNotationRoots(source);
+ if (roots == null) {
+ return result;
+ }
+
+ while (roots.hasNext()) {
+ EObject root = roots.next();
+ if (root instanceof TextEditorModel) {
+ TextEditorModel textEditorModel = (TextEditorModel) root;
+ if (textEditorModel.getEditedObject() == source) {
+ result.add(textEditorModel);
+ }
+ }
+ }
+ return result;
+ }
+}
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/src/org/eclipse/papyrus/texteditor/modelexplorer/queries/GetTextEditorIcon.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/src/org/eclipse/papyrus/texteditor/modelexplorer/queries/GetTextEditorIcon.java
new file mode 100644
index 00000000000..7fb77ffdcbd
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/src/org/eclipse/papyrus/texteditor/modelexplorer/queries/GetTextEditorIcon.java
@@ -0,0 +1,35 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Ansgar Radermacher (CEA LIST) ansgar.radermacher@cea.fr - Initial API and implementation
+ * (with the help of examining table support from Vincent Lorenzo)
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.texteditor.modelexplorer.queries;
+
+import org.eclipse.papyrus.emf.facet.custom.metamodel.custompt.IImage;
+import org.eclipse.papyrus.emf.facet.custom.ui.ImageUtils;
+import org.eclipse.papyrus.emf.facet.efacet.core.IFacetManager;
+import org.eclipse.papyrus.emf.facet.query.java.core.IJavaQuery2;
+import org.eclipse.papyrus.emf.facet.query.java.core.IParameterValueList2;
+import org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel;
+import org.eclipse.papyrus.views.modelexplorer.queries.AbstractGetEditorIconQuery;
+
+/** Return the path to the icon of the corresponding table */
+public class GetTextEditorIcon extends AbstractGetEditorIconQuery implements IJavaQuery2<TextEditorModel, IImage> {
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public IImage evaluate(TextEditorModel textInstance, IParameterValueList2 parameterValues, IFacetManager manager) {
+ IImage image = ImageUtils.wrap("platform:/plugin/" + getEditorRegistry(textInstance).getEditorURLIcon(textInstance)); //$NON-NLS-1$
+ return image;
+ }
+}
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/src/org/eclipse/papyrus/texteditor/modelexplorer/queries/GetTextEditorName.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/src/org/eclipse/papyrus/texteditor/modelexplorer/queries/GetTextEditorName.java
new file mode 100644
index 00000000000..d7d4e826ef6
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/src/org/eclipse/papyrus/texteditor/modelexplorer/queries/GetTextEditorName.java
@@ -0,0 +1,35 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) ansgar.radermacher@cea.fr - Initial API and implementation
+ * (with the help of examining table support from Vincent Lorenzo)
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.texteditor.modelexplorer.queries;
+
+import org.eclipse.papyrus.emf.facet.efacet.core.IFacetManager;
+import org.eclipse.papyrus.emf.facet.efacet.core.exception.DerivedTypedElementException;
+import org.eclipse.papyrus.emf.facet.query.java.core.IJavaQuery2;
+import org.eclipse.papyrus.emf.facet.query.java.core.IParameterValueList2;
+import org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel;
+
+/** Return the name for the table */
+public class GetTextEditorName implements IJavaQuery2<TextEditorModel, String> {
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String evaluate(TextEditorModel context, IParameterValueList2 parameterValues, IFacetManager manager)
+ throws DerivedTypedElementException {
+ return context.getName();
+ }
+}
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/src/org/eclipse/papyrus/texteditor/modelexplorer/queries/IsTextEditorContainer.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/src/org/eclipse/papyrus/texteditor/modelexplorer/queries/IsTextEditorContainer.java
new file mode 100644
index 00000000000..f6d3c9d35f4
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/src/org/eclipse/papyrus/texteditor/modelexplorer/queries/IsTextEditorContainer.java
@@ -0,0 +1,35 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) ansgar.radermacher@cea.fr - Initial API and implementation
+ * (with the help of examining table support from Vincent Lorenzo)
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.texteditor.modelexplorer.queries;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.emf.facet.efacet.core.IFacetManager;
+import org.eclipse.papyrus.emf.facet.efacet.core.exception.DerivedTypedElementException;
+import org.eclipse.papyrus.emf.facet.query.java.core.IJavaQuery2;
+import org.eclipse.papyrus.emf.facet.query.java.core.IParameterValueList2;
+import org.eclipse.papyrus.views.modelexplorer.queries.AbstractEditorContainerQuery;
+
+/** Returns true if the element contains a Table */
+public class IsTextEditorContainer extends AbstractEditorContainerQuery implements IJavaQuery2<EObject, Boolean> {
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Boolean evaluate(EObject context, IParameterValueList2 parameterValues, IFacetManager manager)
+ throws DerivedTypedElementException {
+ return false;
+ }
+}
diff --git a/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/src/org/eclipse/papyrus/texteditor/modelexplorer/queries/NotVisibleStructuralFeatureQuery.java b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/src/org/eclipse/papyrus/texteditor/modelexplorer/queries/NotVisibleStructuralFeatureQuery.java
new file mode 100644
index 00000000000..609afc7abd2
--- /dev/null
+++ b/extraplugins/qompass/codegen/org.eclipse.papyrus.texteditor.modelexplorer/src/org/eclipse/papyrus/texteditor/modelexplorer/queries/NotVisibleStructuralFeatureQuery.java
@@ -0,0 +1,30 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ /*****************************************************************************/
+package org.eclipse.papyrus.texteditor.modelexplorer.queries;
+
+import org.eclipse.papyrus.emf.facet.efacet.core.IFacetManager;
+import org.eclipse.papyrus.emf.facet.efacet.core.exception.DerivedTypedElementException;
+import org.eclipse.papyrus.emf.facet.query.java.core.IJavaQuery2;
+import org.eclipse.papyrus.emf.facet.query.java.core.IParameterValueList2;
+import org.eclipse.papyrus.texteditor.model.texteditormodel.TextEditorModel;
+
+public class NotVisibleStructuralFeatureQuery implements IJavaQuery2<TextEditorModel, Boolean> {
+ public Boolean evaluate(final TextEditorModel context,
+ final IParameterValueList2 parameterValues,
+ final IFacetManager facetManager)
+ throws DerivedTypedElementException {
+ // All sub-elements are invisible. EditedObject may eventually be useful, but text editor
+ // is already shown as a child of edited object within the model explorer
+ return false;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/.classpath b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/.classpath
new file mode 100644
index 00000000000..098194ca4b7
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/.project b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/.project
new file mode 100644
index 00000000000..856e4c4cd85
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.fcm.profile</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/.settings/org.eclipse.jdt.core.prefs b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..f42de363afa
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/META-INF/MANIFEST.MF b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..fd139e5c660
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/META-INF/MANIFEST.MF
@@ -0,0 +1,24 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;visibility:=reexport,
+ org.eclipse.uml2.uml;visibility:=reexport,
+ org.eclipse.uml2.types;visibility:=reexport,
+ org.eclipse.emf.transaction;bundle-version="1.4.0",
+ org.eclipse.papyrus.infra.core;bundle-version="1.2.0",
+ org.eclipse.gmf.runtime.common.core;bundle-version="1.4.1",
+ org.eclipse.gmf.runtime.emf.commands.core;bundle-version="1.4.0",
+ org.eclipse.papyrus.uml.diagram.common;bundle-version="1.2.0",
+ org.eclipse.ui;bundle-version="3.105.0"
+Export-Package: org.eclipse.papyrus.FCM,
+ org.eclipse.papyrus.FCM.impl,
+ org.eclipse.papyrus.FCM.util
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-ClassPath: .
+Bundle-Version: 1.2.0.qualifier
+Bundle-Localization: plugin
+Bundle-Name: %pluginName
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.fcm.profile;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.7
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/about.html b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/about.html
new file mode 100644
index 00000000000..209103075a7
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>November 14, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/build.properties b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/build.properties
new file mode 100644
index 00000000000..cb863c1cf51
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/build.properties
@@ -0,0 +1,19 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+bin.includes = .,\
+ model/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties,\
+ icons/,\
+ palettes/,\
+ about.html,\
+ schema/
+jars.compile.order = .
+source.. = src/
+output.. = bin/
+src.includes = about.html
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/icons/connector.png b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/icons/connector.png
new file mode 100644
index 00000000000..975629baeaa
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/icons/connector.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/icons/connector.svg b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/icons/connector.svg
new file mode 100644
index 00000000000..c56fadbf37d
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/icons/connector.svg
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.2 r9819"
+ width="10"
+ height="9"
+ sodipodi:docname="InOut.svg">
+ <metadata
+ id="metadata8">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs6" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1160"
+ inkscape:window-height="598"
+ id="namedview4"
+ showgrid="true"
+ inkscape:zoom="32"
+ inkscape:cx="8.5069964"
+ inkscape:cy="7.0453804"
+ inkscape:window-x="582"
+ inkscape:window-y="33"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg2">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3773" />
+ </sodipodi:namedview>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="M 7,0 11,4 7,8"
+ id="path3035"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="M 0,8 -4,4 0,0"
+ id="path3035-2"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
+ d="M -1,5 8,5"
+ id="path2985"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
+ d="M -1,3 8,3"
+ id="path2985-9"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+</svg>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/icons/deploy.gif b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/icons/deploy.gif
new file mode 100644
index 00000000000..7a7ced35f3d
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/icons/deploy.gif
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/icons/fcm.gif b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/icons/fcm.gif
new file mode 100644
index 00000000000..ec21c358e2f
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/icons/fcm.gif
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/icons/hires/connector.png b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/icons/hires/connector.png
new file mode 100644
index 00000000000..e2be455d487
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/icons/hires/connector.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/icons/port.gif b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/icons/port.gif
new file mode 100644
index 00000000000..4aea611efe7
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/icons/port.gif
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/icons/target.gif b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/icons/target.gif
new file mode 100644
index 00000000000..92b10039973
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/icons/target.gif
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/model/FCM.ecore b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/model/FCM.ecore
new file mode 100644
index 00000000000..dda5a4bf17e
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/model/FCM.ecore
@@ -0,0 +1,301 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="FCM" nsURI="http://www.eclipse.org/papyrus/FCM/1" nsPrefix="FCM">
+ <eClassifiers xsi:type="ecore:EClass" name="Template">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The template parameters list defines the parameters that are passed to the Acceleo template. If empty, the formal parameter list of the package template is used."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Element" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Element"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="helper" ordered="false"
+ eType="#//BindingHelper"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BindingHelper">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A binding helper is responsible for creating sub-elements. For instance, if the formal parameter of a template is an interface, it might be required to instantiate an operation for each operation of the interface."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ConfigurationProperty">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This stereotype indicuates that the attribute does not only store values but needs to be configured initially be the user. It corresponds to the automatic creation of an entry (slot+nstance specification) in the deployment plan "/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Property" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ImplementationGroup">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A group of interaction components should apply both stereotypes. Each member of such a group must be an interaction component, but this is not enforced by the meta-model"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Assembly">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An assembly is a collection of (interconnected) parts. During distribution, a variant of the assembly is created for each node, that contains only a subset of the parts. This requires that&#xA;(1) no inheritance&#xA;(2) all instances of the assembly on a node must be split in an identical way&#xA;The system component is also an assembly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Flatten">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A composite that will get flattened during distribution. This means that it vanishes and its parts are added to the composite in which the flat composite is defined. A flat composite may not have assembly connections. It is primarily used by interaction components"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompToOOmapping">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="We assume that a model library defines a set of supported programming languages as well as a set of provided component to mappings. We do not use a fixed enumeration defined in the profile to assure extensibility"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ProgLanguage">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="We assume that a model library defines a set of supported programming languages as well as a set of provided component to mappings. We do not use a fixed enumeration defined in the profile to assure extensibility"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CodeGenOptions">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This information on a package tells the code generators which programming language and which component-to-OO mapping should be used"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Package" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="compToOOmapping" ordered="false"
+ lowerBound="1" eType="#//CompToOOmapping"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="progLanguage" ordered="false"
+ lowerBound="1" eType="#//ProgLanguage"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InteractionComponent">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An interaction component is responsible for realization the communication between two components. It typically owns conjugated ports. It might be defined within a package template to enable the adaption of ports to those used by the interacting components"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="forDistribution" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="connectionPattern" ordered="false"
+ unique="false" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Collaboration"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Singleton">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicate that this component is instantiated only once within the system. It also implies that this component is automatically instantiated by a generated bootloader"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Connector" eSuperTypes="#//ConfigurableElementInstance">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This stereotype references the interaction component that should realize the communication. It can be applied to UML connectors as well as to properties. The former is used, if there are two communication partners, the latter is more flexible. For instance, in case of a DDS interaction, a publisher does not know the consumers, it therefore communicates with a part (property) representing the publisher part of the interaction component"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Connector" ordered="false"
+ unique="false" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ic" ordered="false" unique="false"
+ eType="#//InteractionComponent"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Property" ordered="false"
+ unique="false" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ConfigurableElementInstance" abstract="true">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="configuration" ordered="false"
+ unique="false" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//InstanceSpecification"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="UseInstanceConfigurator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Use a dedicated component that that is responsible for configuring component instances. The concept is primarily intented for container extensions. For instance, a container extension might provide reflection data about a component. In this case, the instance configuration would create the value specifications using data available in the model"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="configurator" ordered="false"
+ lowerBound="1" eType="#//InstanceConfigurator"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InstanceConfigurator">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="onNodeModel" ordered="false"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="RuleApplication">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Apply a set of container rules. It can be applied to a single class or to a package, implying that all components within the package apply the specified rule."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ unique="false" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containerRule" ordered="false"
+ unique="false" upperBound="-1" eType="#//ContainerRule"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Package" ordered="false"
+ eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ContainerRule">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A container rule, i.e. a specification of extension or interception within a container. Beside the two options, a container rule is basically a composite class whose parts are added to the container."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="forConfig" ordered="false"
+ upperBound="-1" eType="#//ConfigOption"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" ordered="false" lowerBound="1"
+ eType="#//ContainerRuleKind"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ConfigOption">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ContainerRuleKind">
+ <eLiterals name="ComponentRule"/>
+ <eLiterals name="LightWeightOORule" value="1"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TemplatePort" eSuperTypes="#//Port">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Template ports are ports that enable the binding of an extended port with an actual parameter: the resulting port kind is the port kind bound to the current port type.&#xA;For instance, we cound type a port with &quot;MyType&quot; and use an extended port Writer with a template with formal parameter T. Resulting port would be Writer with T bound to MyType."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="boundType" ordered="false"
+ eType="#//PortKind" volatile="true" transient="true" unsettable="true" derived="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Port" eSuperTypes="#//ConfigurableElementInstance">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Port" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="kind" ordered="false" unique="false"
+ eType="#//PortKind"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" lowerBound="1"
+ eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Type"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PortKind">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="providedInterface" ordered="false"
+ unique="false" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Interface"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="requiredInterface" ordered="false"
+ unique="false" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Interface"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="extendedPort" ordered="false"
+ lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
+ changeable="false" volatile="true" transient="true" unsettable="true" derived="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="InterceptionKind">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Condition whether an interceptor should be used within a container.&#xA;- &quot;Some&quot; = set of ports defined in interception rule&#xA;- &quot;AllOut/AllIn&quot; = ports with required/provided ports only&#xA;- &quot;Matching&quot; = kind of interceptor and component port need to match&#xA;"/>
+ </eAnnotations>
+ <eLiterals name="InterceptSome"/>
+ <eLiterals name="InterceptAll" value="1"/>
+ <eLiterals name="InterceptAllOut" value="2"/>
+ <eLiterals name="InterceptAllIn" value="3"/>
+ <eLiterals name="InterceptMatching" value="4"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DeploymentPlan">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mainInstance" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//InstanceSpecification"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Package" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DerivedElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Element" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Element"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="source" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Element"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompImplTemplate">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="templateDefs" ordered="false"
+ unique="false" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ImplementationProperties">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="sizeRAM" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="supportedOS" ordered="false"
+ unique="false" upperBound="-1" eType="#//OperatingSystem"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="arch" ordered="false" unique="false"
+ upperBound="-1" eType="#//TargetArchitecture"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="sizeROM" ordered="false"
+ lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="supportedTargetArch" ordered="false"
+ lowerBound="1" eType="#//TargetArchitecture"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OperatingSystem">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TargetArchitecture">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Configuration">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="configOptions" ordered="false"
+ upperBound="-1" eType="#//ConfigOption"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="deploymentPlan" ordered="false"
+ lowerBound="1" eType="#//DeploymentPlan"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InterceptionRule">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="interceptionKind" ordered="false"
+ unique="false" lowerBound="1" eType="#//InterceptionKind"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="interceptionSet" ordered="false"
+ unique="false" upperBound="-1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Feature"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Property" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Operation" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Operation"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Target">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="targetArch" ordered="false"
+ lowerBound="1" eType="#//TargetArchitecture"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="options" ordered="false"
+ upperBound="-1" eType="#//ConfigOption"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Node" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Node"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="usedOS" ordered="false"
+ lowerBound="1" eType="#//OperatingSystem"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="availRAM" ordered="false"
+ lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="availROM" ordered="false"
+ lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="compiler" ordered="false"
+ eType="#//CompilerChain"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompilerChain">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Fragment">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CopyAttributeValue">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="source" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Property" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AutoIndex">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Property" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AutoIndexPerNode" eSuperTypes="#//AutoIndex"/>
+ <eClassifiers xsi:type="ecore:EClass" name="InitPrecedence">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="invokeAfter" ordered="false"
+ unique="false" upperBound="-1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="invokeBefore" ordered="false"
+ unique="false" upperBound="-1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ConnectorConfiguration">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Slot" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="connector" ordered="false"
+ lowerBound="1" eType="#//Connector"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BindTemplate">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="actual" ordered="false"
+ upperBound="-1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Type"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Property" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/model/FCM.genmodel b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/model/FCM.genmodel
new file mode 100644
index 00000000000..d14164bedca
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/model/FCM.genmodel
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="Copyright (c) 2015 CEA LIST&#xA;&#xA;All rights reserved. This program and the accompanying materials are&#xA;made available under the terms of the Eclipse Public License v1.0 which&#xA;accompanies this distribution, and is available at&#xA;http://www.eclipse.org/legal/epl-v10.html&#xA;&#xA;Contributors:&#xA; Ansgar Radermacher - Initial API and implementation&#xA;"
+ modelDirectory="/org.eclipse.papyrus.fcm.profile/src" modelPluginID="org.eclipse.papyrus.fcm.profile"
+ modelName="FCM" nonNLSMarkers="true" importerID="org.eclipse.emf.importer.ecore"
+ complianceLevel="5.0" copyrightFields="false" language="" usedGenPackages="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore platform:/plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml platform:/plugin/org.eclipse.uml2.types/model/Types.genmodel#//types">
+ <foreignModel>FCM.ecore</foreignModel>
+ <genPackages prefix="FCM" basePackage="org.eclipse.papyrus" resource="XML" disposableProviderFactory="true"
+ ecorePackage="FCM.ecore#/">
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="FCM.ecore#//ContainerRuleKind">
+ <genEnumLiterals ecoreEnumLiteral="FCM.ecore#//ContainerRuleKind/ComponentRule"/>
+ <genEnumLiterals ecoreEnumLiteral="FCM.ecore#//ContainerRuleKind/LightWeightOORule"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="FCM.ecore#//InterceptionKind">
+ <genEnumLiterals ecoreEnumLiteral="FCM.ecore#//InterceptionKind/InterceptSome"/>
+ <genEnumLiterals ecoreEnumLiteral="FCM.ecore#//InterceptionKind/InterceptAll"/>
+ <genEnumLiterals ecoreEnumLiteral="FCM.ecore#//InterceptionKind/InterceptAllOut"/>
+ <genEnumLiterals ecoreEnumLiteral="FCM.ecore#//InterceptionKind/InterceptAllIn"/>
+ <genEnumLiterals ecoreEnumLiteral="FCM.ecore#//InterceptionKind/InterceptMatching"/>
+ </genEnums>
+ <genClasses ecoreClass="FCM.ecore#//Template">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//Template/base_Element"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//Template/helper"/>
+ </genClasses>
+ <genClasses ecoreClass="FCM.ecore#//BindingHelper">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//BindingHelper/base_Class"/>
+ </genClasses>
+ <genClasses ecoreClass="FCM.ecore#//ConfigurationProperty">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//ConfigurationProperty/base_Property"/>
+ </genClasses>
+ <genClasses ecoreClass="FCM.ecore#//ImplementationGroup">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//ImplementationGroup/base_Class"/>
+ </genClasses>
+ <genClasses ecoreClass="FCM.ecore#//Assembly">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//Assembly/base_Class"/>
+ </genClasses>
+ <genClasses ecoreClass="FCM.ecore#//Flatten">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//Flatten/base_Class"/>
+ </genClasses>
+ <genClasses ecoreClass="FCM.ecore#//CompToOOmapping">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//CompToOOmapping/base_Class"/>
+ </genClasses>
+ <genClasses ecoreClass="FCM.ecore#//ProgLanguage">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//ProgLanguage/base_Class"/>
+ </genClasses>
+ <genClasses ecoreClass="FCM.ecore#//CodeGenOptions">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//CodeGenOptions/base_Package"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//CodeGenOptions/compToOOmapping"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//CodeGenOptions/progLanguage"/>
+ </genClasses>
+ <genClasses ecoreClass="FCM.ecore#//InteractionComponent">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FCM.ecore#//InteractionComponent/forDistribution"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//InteractionComponent/connectionPattern"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//InteractionComponent/base_Class"/>
+ </genClasses>
+ <genClasses ecoreClass="FCM.ecore#//Singleton">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//Singleton/base_Class"/>
+ </genClasses>
+ <genClasses ecoreClass="FCM.ecore#//Connector">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//Connector/base_Connector"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//Connector/ic"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//Connector/base_Property"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="FCM.ecore#//ConfigurableElementInstance">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//ConfigurableElementInstance/configuration"/>
+ </genClasses>
+ <genClasses ecoreClass="FCM.ecore#//UseInstanceConfigurator">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//UseInstanceConfigurator/base_Class"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//UseInstanceConfigurator/configurator"/>
+ </genClasses>
+ <genClasses ecoreClass="FCM.ecore#//InstanceConfigurator">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//InstanceConfigurator/base_Class"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FCM.ecore#//InstanceConfigurator/onNodeModel"/>
+ </genClasses>
+ <genClasses ecoreClass="FCM.ecore#//RuleApplication">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//RuleApplication/base_Class"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//RuleApplication/containerRule"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//RuleApplication/base_Package"/>
+ </genClasses>
+ <genClasses ecoreClass="FCM.ecore#//ContainerRule">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//ContainerRule/base_Class"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//ContainerRule/forConfig"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FCM.ecore#//ContainerRule/kind"/>
+ </genClasses>
+ <genClasses ecoreClass="FCM.ecore#//ConfigOption">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//ConfigOption/base_Class"/>
+ </genClasses>
+ <genClasses ecoreClass="FCM.ecore#//TemplatePort">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//TemplatePort/boundType"/>
+ </genClasses>
+ <genClasses ecoreClass="FCM.ecore#//Port">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//Port/base_Port"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//Port/kind"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//Port/type"/>
+ </genClasses>
+ <genClasses ecoreClass="FCM.ecore#//PortKind">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//PortKind/base_Class"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//PortKind/providedInterface"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//PortKind/requiredInterface"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FCM.ecore#//PortKind/extendedPort"/>
+ </genClasses>
+ <genClasses ecoreClass="FCM.ecore#//DeploymentPlan">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//DeploymentPlan/mainInstance"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//DeploymentPlan/base_Package"/>
+ </genClasses>
+ <genClasses ecoreClass="FCM.ecore#//DerivedElement">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//DerivedElement/base_Element"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//DerivedElement/source"/>
+ </genClasses>
+ <genClasses ecoreClass="FCM.ecore#//CompImplTemplate">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FCM.ecore#//CompImplTemplate/templateDefs"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//CompImplTemplate/base_Class"/>
+ </genClasses>
+ <genClasses ecoreClass="FCM.ecore#//ImplementationProperties">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FCM.ecore#//ImplementationProperties/sizeRAM"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//ImplementationProperties/supportedOS"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//ImplementationProperties/arch"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//ImplementationProperties/base_Class"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FCM.ecore#//ImplementationProperties/sizeROM"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//ImplementationProperties/supportedTargetArch"/>
+ </genClasses>
+ <genClasses ecoreClass="FCM.ecore#//OperatingSystem">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//OperatingSystem/base_Class"/>
+ </genClasses>
+ <genClasses ecoreClass="FCM.ecore#//TargetArchitecture">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//TargetArchitecture/base_Class"/>
+ </genClasses>
+ <genClasses ecoreClass="FCM.ecore#//Configuration">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//Configuration/base_Class"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//Configuration/configOptions"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//Configuration/deploymentPlan"/>
+ </genClasses>
+ <genClasses ecoreClass="FCM.ecore#//InterceptionRule">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FCM.ecore#//InterceptionRule/interceptionKind"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//InterceptionRule/interceptionSet"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//InterceptionRule/base_Property"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//InterceptionRule/base_Operation"/>
+ </genClasses>
+ <genClasses ecoreClass="FCM.ecore#//Target">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//Target/targetArch"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//Target/options"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//Target/base_Node"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//Target/usedOS"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FCM.ecore#//Target/availRAM"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FCM.ecore#//Target/availROM"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//Target/compiler"/>
+ </genClasses>
+ <genClasses ecoreClass="FCM.ecore#//CompilerChain">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//CompilerChain/base_Class"/>
+ </genClasses>
+ <genClasses ecoreClass="FCM.ecore#//Fragment">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//Fragment/base_Class"/>
+ </genClasses>
+ <genClasses ecoreClass="FCM.ecore#//CopyAttributeValue">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//CopyAttributeValue/source"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//CopyAttributeValue/base_Property"/>
+ </genClasses>
+ <genClasses ecoreClass="FCM.ecore#//AutoIndex">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//AutoIndex/base_Property"/>
+ </genClasses>
+ <genClasses ecoreClass="FCM.ecore#//AutoIndexPerNode"/>
+ <genClasses ecoreClass="FCM.ecore#//InitPrecedence">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//InitPrecedence/invokeAfter"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//InitPrecedence/invokeBefore"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//InitPrecedence/base_Class"/>
+ </genClasses>
+ <genClasses ecoreClass="FCM.ecore#//ConnectorConfiguration">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//ConnectorConfiguration/base_Slot"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//ConnectorConfiguration/connector"/>
+ </genClasses>
+ <genClasses ecoreClass="FCM.ecore#//BindTemplate">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//BindTemplate/actual"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//BindTemplate/base_Property"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/model/FCM.profile.di b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/model/FCM.profile.di
new file mode 100644
index 00000000000..375842f73a9
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/model/FCM.profile.di
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi" xmlns:history="http://www.eclipse.org/papyrus/0.7.0/controlmode">
+ <di:SashWindowsMngr>
+ <pageList>
+ <availablePage>
+ <emfPageIdentifier href="FCM.profile.notation#_Va74cGE3Ed-1rN74nkR_XQ"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="FCM.profile.notation#_AypCoHiMEd-iNcV8QPhhiQ"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="FCM.profile.notation#_uxB-EIKhEd-aI_x8ivV7vQ"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="FCM.profile.notation#_2t0Q4JMoEd-I9dVdNhZAGQ"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="FCM.profile.notation#_UBBU8JWJEd-xqrYFQVL_qg"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="FCM.profile.notation#_1hRXQObEEd-oHsJhS1620Q"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="FCM.profile.notation#_w-KvwMniEeCWXsgs0yuyKQ"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="FCM.profile.notation#_hbTVgMnpEeK-j9yGRHQ3Jw"/>
+ </availablePage>
+ </pageList>
+ <sashModel currentSelection="/0/@sashModel/@windows.0/@children.0">
+ <windows>
+ <children xsi:type="di:TabFolder">
+ <children>
+ <emfPageIdentifier href="FCM.profile.notation#_Va74cGE3Ed-1rN74nkR_XQ"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="FCM.profile.notation#_AypCoHiMEd-iNcV8QPhhiQ"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="FCM.profile.notation#_uxB-EIKhEd-aI_x8ivV7vQ"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="FCM.profile.notation#_UBBU8JWJEd-xqrYFQVL_qg"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="FCM.profile.notation#_1hRXQObEEd-oHsJhS1620Q"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="FCM.profile.notation#_w-KvwMniEeCWXsgs0yuyKQ"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="FCM.profile.notation#_hbTVgMnpEeK-j9yGRHQ3Jw"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+ </di:SashWindowsMngr>
+ <history:ControledResource/>
+ <history:ControledResource/>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/model/FCM.profile.notation b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/model/FCM.profile.notation
new file mode 100644
index 00000000000..273d8fcf69a
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/model/FCM.profile.notation
@@ -0,0 +1,2897 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_Va74cGE3Ed-1rN74nkR_XQ" type="PapyrusUMLProfileDiagram" name="Components" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_iXBUYGE3Ed-1rN74nkR_XQ" type="1026" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8yLrAE2lEeG8L5eAOYvthg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8yMSEE2lEeG8L5eAOYvthg" key="QualifiedNameDepth" value="1"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iXEXsGE3Ed-1rN74nkR_XQ" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_iXGz8GE3Ed-1rN74nkR_XQ" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_r2pUYJD2Ed-I9dVdNhZAGQ" type="3002" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J6n58NTgEeKiLbHSN_MIRQ" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_J6ohANTgEeKiLbHSN_MIRQ" key="CustomAppearance_MaskValue" value="56"/>
+ </eAnnotations>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_AOW9wKYjEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>multiplicity</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_r2VLUJD2Ed-I9dVdNhZAGQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_r2pUYZD2Ed-I9dVdNhZAGQ"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_iXGz8WE3Ed-1rN74nkR_XQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_iXGz8mE3Ed-1rN74nkR_XQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iXGz82E3Ed-1rN74nkR_XQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_iXGz9GE3Ed-1rN74nkR_XQ" visible="false" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_iXGz9WE3Ed-1rN74nkR_XQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_iXGz9mE3Ed-1rN74nkR_XQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iXGz92E3Ed-1rN74nkR_XQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4GZmgHI0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4GZmgXI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4GZmgnI0EeOZxcUd14vDog"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_iXB7cGE3Ed-1rN74nkR_XQ"/>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_te7YAMtkEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iXB7cWE3Ed-1rN74nkR_XQ" x="576" y="153" width="226" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jArVYGE3Ed-1rN74nkR_XQ" type="1026" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-FWjEE2lEeG8L5eAOYvthg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-FWjEU2lEeG8L5eAOYvthg" key="QualifiedNameDepth" value="1"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jAr8cGE3Ed-1rN74nkR_XQ" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jAr8cWE3Ed-1rN74nkR_XQ" type="1071">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jAr8cmE3Ed-1rN74nkR_XQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jAr8c2E3Ed-1rN74nkR_XQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jAr8dGE3Ed-1rN74nkR_XQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jAr8dWE3Ed-1rN74nkR_XQ" visible="false" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jAr8dmE3Ed-1rN74nkR_XQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jAr8d2E3Ed-1rN74nkR_XQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jAr8eGE3Ed-1rN74nkR_XQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4GgUMHI0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4GgUMXI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4GgUMnI0EeOZxcUd14vDog"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_jArVYWE3Ed-1rN74nkR_XQ"/>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_zjaC8MtkEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jArVYmE3Ed-1rN74nkR_XQ" x="9" y="153" width="181" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nvDwEGE3Ed-1rN74nkR_XQ" type="1026" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_nvEXIGE3Ed-1rN74nkR_XQ" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nvEXIWE3Ed-1rN74nkR_XQ" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_souBQEzuEeG_JK8KIEXPxQ" type="3002" fontName="Sans Serif" lineColor="0">
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_DONaEKYjEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>multiplicity</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_zhkAEMewEd6zpahAtGCOkA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_souBQUzuEeG_JK8KIEXPxQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tTdAUEzuEeG_JK8KIEXPxQ" type="3002" fontName="Sans Serif" lineColor="0">
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_Dzuh8KYjEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_X4RqMFaaEd-w9f5DG2hQCA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tTdAUUzuEeG_JK8KIEXPxQ"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_nvEXImE3Ed-1rN74nkR_XQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_nvEXI2E3Ed-1rN74nkR_XQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nvEXJGE3Ed-1rN74nkR_XQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nvEXJWE3Ed-1rN74nkR_XQ" visible="false" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_nvEXJmE3Ed-1rN74nkR_XQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_nvEXJ2E3Ed-1rN74nkR_XQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nvEXKGE3Ed-1rN74nkR_XQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4GiJYHI0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4GiJYXI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4GiJYnI0EeOZxcUd14vDog"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_nvDwEWE3Ed-1rN74nkR_XQ"/>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_Z1W68MtlEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nvDwEmE3Ed-1rN74nkR_XQ" x="9" y="480" width="232" height="81"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kOCSoG1nEd-XwOGM-uryhg" type="1031" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kOC5sW1nEd-XwOGM-uryhg" type="1084"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4GlMsHI0EeOZxcUd14vDog" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4GlMsXI0EeOZxcUd14vDog" showTitle="true"/>
+ <element xmi:type="standard:Metaclass" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_Sh6H8KtKEeGF4uwJob34Mw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4GlMsnI0EeOZxcUd14vDog"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4GlMs3I0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4GlMtHI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4GlMtXI0EeOZxcUd14vDog"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kOC5sG1nEd-XwOGM-uryhg" x="9" y="400" width="432" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6kgFYJD1Ed-I9dVdNhZAGQ" type="1026" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6kgscJD1Ed-I9dVdNhZAGQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6kgscZD1Ed-I9dVdNhZAGQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6kgscpD1Ed-I9dVdNhZAGQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6kgsc5D1Ed-I9dVdNhZAGQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6kgsdJD1Ed-I9dVdNhZAGQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6kgsdZD1Ed-I9dVdNhZAGQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6kgsdpD1Ed-I9dVdNhZAGQ" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_6kgsd5D1Ed-I9dVdNhZAGQ" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_OIPlUKFeEd-Ow8yfE2PGoA" type="3002" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_Z_3ZgKYOEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>multiplicity</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_lznjEMttEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OIPlUaFeEd-Ow8yfE2PGoA" x="139" y="19"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_6kgseJD1Ed-I9dVdNhZAGQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_6kgseZD1Ed-I9dVdNhZAGQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6kgsepD1Ed-I9dVdNhZAGQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_6kgse5D1Ed-I9dVdNhZAGQ" visible="false" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_6kgsfJD1Ed-I9dVdNhZAGQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_6kgsfZD1Ed-I9dVdNhZAGQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6kgsfpD1Ed-I9dVdNhZAGQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4Gno8HI0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4Gno8XI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4Gno8nI0EeOZxcUd14vDog"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_6kgFYZD1Ed-I9dVdNhZAGQ"/>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_JWD9UMttEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6kgFYpD1Ed-I9dVdNhZAGQ" x="500" y="480" width="241" height="81"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6lF7QJD1Ed-I9dVdNhZAGQ" type="1031" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6lF7QpD1Ed-I9dVdNhZAGQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6lF7Q5D1Ed-I9dVdNhZAGQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6lF7RJD1Ed-I9dVdNhZAGQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6lF7RZD1Ed-I9dVdNhZAGQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6lF7RpD1Ed-I9dVdNhZAGQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6lF7R5D1Ed-I9dVdNhZAGQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6lF7SJD1Ed-I9dVdNhZAGQ" type="1084"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4GqFMHI0EeOZxcUd14vDog" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4GqFMXI0EeOZxcUd14vDog" showTitle="true"/>
+ <element xmi:type="standard:Metaclass" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_Sizf0KtKEeGF4uwJob34Mw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4GqFMnI0EeOZxcUd14vDog"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4GqsQHI0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4GqsQXI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4GqsQnI0EeOZxcUd14vDog"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6lF7QZD1Ed-I9dVdNhZAGQ" x="500" y="400" width="101" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__1h6IJD1Ed-I9dVdNhZAGQ" type="1031" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__1h6IpD1Ed-I9dVdNhZAGQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__1h6I5D1Ed-I9dVdNhZAGQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__1h6JJD1Ed-I9dVdNhZAGQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__1h6JZD1Ed-I9dVdNhZAGQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__1h6JpD1Ed-I9dVdNhZAGQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__1h6J5D1Ed-I9dVdNhZAGQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="__1h6KJD1Ed-I9dVdNhZAGQ" type="1084"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4GtIgHI0EeOZxcUd14vDog" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4GtIgXI0EeOZxcUd14vDog" showTitle="true"/>
+ <element xmi:type="standard:Metaclass" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_SlSMEKtKEeGF4uwJob34Mw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4GtIgnI0EeOZxcUd14vDog"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4GtIg3I0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4GtIhHI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4GtIhXI0EeOZxcUd14vDog"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__1h6IZD1Ed-I9dVdNhZAGQ" x="620" y="400" width="121" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kBqtgKFPEd-Ow8yfE2PGoA" type="1026" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kB1soKFPEd-Ow8yfE2PGoA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kB2TsKFPEd-Ow8yfE2PGoA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kB2TsaFPEd-Ow8yfE2PGoA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kB2TsqFPEd-Ow8yfE2PGoA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kB26wKFPEd-Ow8yfE2PGoA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kB26waFPEd-Ow8yfE2PGoA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kB26wqFPEd-Ow8yfE2PGoA" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kB3h0KFPEd-Ow8yfE2PGoA" type="1071">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kB3h0aFPEd-Ow8yfE2PGoA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kB3h0qFPEd-Ow8yfE2PGoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kB3h06FPEd-Ow8yfE2PGoA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kB3h1KFPEd-Ow8yfE2PGoA" visible="false" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kB3h1aFPEd-Ow8yfE2PGoA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kB3h1qFPEd-Ow8yfE2PGoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kB3h16FPEd-Ow8yfE2PGoA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4Gu9sHI0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4Gu9sXI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4Gu9snI0EeOZxcUd14vDog"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_aQTf0FSdEd-w9f5DG2hQCA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kBqtgaFPEd-Ow8yfE2PGoA" x="260" y="480" width="181" height="81"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0iP5wMGiEd-BXcifqN3Y_A" type="1002" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0iP5wsGiEd-BXcifqN3Y_A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0iP5w8GiEd-BXcifqN3Y_A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0iP5xMGiEd-BXcifqN3Y_A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0iP5xcGiEd-BXcifqN3Y_A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0iP5xsGiEd-BXcifqN3Y_A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0iP5x8GiEd-BXcifqN3Y_A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0iQg0MGiEd-BXcifqN3Y_A" type="3"/>
+ <element xmi:type="uml:Comment" href="FCM.profile.uml#_0h1qEMGiEd-BXcifqN3Y_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0iP5wcGiEd-BXcifqN3Y_A" x="252" y="582" width="199" height="159"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_be7EsEZ0EeCLCJBkU67iDQ" type="1026" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_be7EskZ0EeCLCJBkU67iDQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_be7rwEZ0EeCLCJBkU67iDQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_be7rwUZ0EeCLCJBkU67iDQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_be7rwkZ0EeCLCJBkU67iDQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_be7rw0Z0EeCLCJBkU67iDQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_be7rxEZ0EeCLCJBkU67iDQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_be7rxUZ0EeCLCJBkU67iDQ" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_be7rxkZ0EeCLCJBkU67iDQ" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_vl72QEZ0EeCLCJBkU67iDQ" type="3002" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_Cjg3QKYjEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>multiplicity</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_vkwxkEZ0EeCLCJBkU67iDQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vl72QUZ0EeCLCJBkU67iDQ"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_be7rx0Z0EeCLCJBkU67iDQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_be7ryEZ0EeCLCJBkU67iDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_be7ryUZ0EeCLCJBkU67iDQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_be7rykZ0EeCLCJBkU67iDQ" visible="false" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_be7ry0Z0EeCLCJBkU67iDQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_be7rzEZ0EeCLCJBkU67iDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_be7rzUZ0EeCLCJBkU67iDQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4GxZ8HI0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4GxZ8XI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4GxZ8nI0EeOZxcUd14vDog"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_beqmAEZ0EeCLCJBkU67iDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_be7EsUZ0EeCLCJBkU67iDQ" x="207" y="153" width="181" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dMdkkEZ0EeCLCJBkU67iDQ" type="1031" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dMeLoEZ0EeCLCJBkU67iDQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dMeLoUZ0EeCLCJBkU67iDQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dMeLokZ0EeCLCJBkU67iDQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dMeLo0Z0EeCLCJBkU67iDQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dMeLpEZ0EeCLCJBkU67iDQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dMeLpUZ0EeCLCJBkU67iDQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dMeLpkZ0EeCLCJBkU67iDQ" type="1084"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4Gz2MHI0EeOZxcUd14vDog" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4Gz2MXI0EeOZxcUd14vDog" showTitle="true"/>
+ <element xmi:type="standard:Metaclass" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_Sh6H8KtKEeGF4uwJob34Mw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4Gz2MnI0EeOZxcUd14vDog"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4Gz2M3I0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4Gz2NHI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4Gz2NXI0EeOZxcUd14vDog"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WdvCACzCEeWf2IvZSSBQwg" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_WdvCASzCEeWf2IvZSSBQwg" name="stereotype" stringValue="StandardProfile::Metaclass"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WdvCAizCEeWf2IvZSSBQwg"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dMdkkUZ0EeCLCJBkU67iDQ" x="9" y="60" width="631" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kDz24EZ0EeCLCJBkU67iDQ" type="1026" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kD0d8EZ0EeCLCJBkU67iDQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kD0d8UZ0EeCLCJBkU67iDQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kD0d8kZ0EeCLCJBkU67iDQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kD0d80Z0EeCLCJBkU67iDQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kD0d9EZ0EeCLCJBkU67iDQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kD0d9UZ0EeCLCJBkU67iDQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kD0d9kZ0EeCLCJBkU67iDQ" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kD1FAEZ0EeCLCJBkU67iDQ" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_sFLEQGm4EeOEG7lSPuRLag" type="3002">
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_B7gcEKYjEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>multiplicity</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_sE27MGm4EeOEG7lSPuRLag"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sFLrUGm4EeOEG7lSPuRLag"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kD1FAUZ0EeCLCJBkU67iDQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kD1FAkZ0EeCLCJBkU67iDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kD1FA0Z0EeCLCJBkU67iDQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kD1FBEZ0EeCLCJBkU67iDQ" visible="false" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kD1FBUZ0EeCLCJBkU67iDQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kD1FBkZ0EeCLCJBkU67iDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kD1FB0Z0EeCLCJBkU67iDQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4G2ScHI0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4G2ScXI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4G2ScnI0EeOZxcUd14vDog"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_kDGFMEZ0EeCLCJBkU67iDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kDz24UZ0EeCLCJBkU67iDQ" x="406" y="153" width="155" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9NfIoCNZEeKGuM7MKNu-KA" type="1031" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9Q1-oCNZEeKGuM7MKNu-KA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9Q2lsCNZEeKGuM7MKNu-KA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9Q2lsSNZEeKGuM7MKNu-KA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9Q2lsiNZEeKGuM7MKNu-KA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9Q2lsyNZEeKGuM7MKNu-KA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9Q2ltCNZEeKGuM7MKNu-KA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9Q2ltSNZEeKGuM7MKNu-KA" type="1084"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4G4usHI0EeOZxcUd14vDog" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4G4usXI0EeOZxcUd14vDog" showTitle="true"/>
+ <element xmi:type="standard:Metaclass" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_Sk8N0KtKEeGF4uwJob34Mw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4G4usnI0EeOZxcUd14vDog"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4G5VwHI0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4G5VwXI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4G5VwnI0EeOZxcUd14vDog"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WeOxQCzCEeWf2IvZSSBQwg" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_WeOxQSzCEeWf2IvZSSBQwg" name="stereotype" stringValue="StandardProfile::Metaclass"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WeOxQizCEeWf2IvZSSBQwg"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Q2ltiNZEeKGuM7MKNu-KA" x="666" y="60" width="136" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jMzJwCNgEeKGuM7MKNu-KA" type="1002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jMzw0CNgEeKGuM7MKNu-KA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jMzw0SNgEeKGuM7MKNu-KA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jMzw0iNgEeKGuM7MKNu-KA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jMzw0yNgEeKGuM7MKNu-KA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jMzw1CNgEeKGuM7MKNu-KA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jMzw1SNgEeKGuM7MKNu-KA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jMzw1iNgEeKGuM7MKNu-KA" type="3"/>
+ <element xmi:type="uml:Comment" href="FCM.profile.uml#_jJohACNgEeKGuM7MKNu-KA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jMzJwSNgEeKGuM7MKNu-KA" x="845" y="116" width="164"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZrCqQNTWEeKiLbHSN_MIRQ" type="1002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrCqQtTWEeKiLbHSN_MIRQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrCqQ9TWEeKiLbHSN_MIRQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrCqRNTWEeKiLbHSN_MIRQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrCqRdTWEeKiLbHSN_MIRQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrCqRtTWEeKiLbHSN_MIRQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrCqR9TWEeKiLbHSN_MIRQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZrDRUNTWEeKiLbHSN_MIRQ" type="3"/>
+ <element xmi:type="uml:Comment" href="FCM.profile.uml#_Zq7VgNTWEeKiLbHSN_MIRQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrCqQdTWEeKiLbHSN_MIRQ" x="9" y="580" width="212" height="161"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2Vn_YNTWEeKiLbHSN_MIRQ" type="1002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2Vn_YtTWEeKiLbHSN_MIRQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2Vn_Y9TWEeKiLbHSN_MIRQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2Vn_ZNTWEeKiLbHSN_MIRQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2Vn_ZdTWEeKiLbHSN_MIRQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2Vn_ZtTWEeKiLbHSN_MIRQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2Vn_Z9TWEeKiLbHSN_MIRQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2Vn_aNTWEeKiLbHSN_MIRQ" type="3"/>
+ <element xmi:type="uml:Comment" href="FCM.profile.uml#_2VgqoNTWEeKiLbHSN_MIRQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2Vn_YdTWEeKiLbHSN_MIRQ" x="20" y="260" width="208"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8I6MoNTWEeKiLbHSN_MIRQ" type="1002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8I6zsNTWEeKiLbHSN_MIRQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8I6zsdTWEeKiLbHSN_MIRQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8I6zstTWEeKiLbHSN_MIRQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8I6zs9TWEeKiLbHSN_MIRQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8I6ztNTWEeKiLbHSN_MIRQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8I6ztdTWEeKiLbHSN_MIRQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8I6zttTWEeKiLbHSN_MIRQ" type="3"/>
+ <element xmi:type="uml:Comment" href="FCM.profile.uml#_8Ize8NTWEeKiLbHSN_MIRQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8I6ModTWEeKiLbHSN_MIRQ" x="495" y="582" width="388" height="159"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_UMdyoNTfEeKiLbHSN_MIRQ" type="1002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UMdyotTfEeKiLbHSN_MIRQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UMdyo9TfEeKiLbHSN_MIRQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UMdypNTfEeKiLbHSN_MIRQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UMdypdTfEeKiLbHSN_MIRQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UMdyptTfEeKiLbHSN_MIRQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UMdyp9TfEeKiLbHSN_MIRQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UMdyqNTfEeKiLbHSN_MIRQ" type="3"/>
+ <element xmi:type="uml:Comment" href="FCM.profile.uml#_UMWd4NTfEeKiLbHSN_MIRQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UMdyodTfEeKiLbHSN_MIRQ" x="300" y="260" width="380"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FPu4INTgEeKiLbHSN_MIRQ" type="1002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FPu4ItTgEeKiLbHSN_MIRQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FPu4I9TgEeKiLbHSN_MIRQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FPu4JNTgEeKiLbHSN_MIRQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FPu4JdTgEeKiLbHSN_MIRQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FPu4JtTgEeKiLbHSN_MIRQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FPu4J9TgEeKiLbHSN_MIRQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FPu4KNTgEeKiLbHSN_MIRQ" type="3"/>
+ <element xmi:type="uml:Comment" href="FCM.profile.uml#_FPnjYNTgEeKiLbHSN_MIRQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FPu4IdTgEeKiLbHSN_MIRQ" x="720" y="260" width="277"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WdGI0CzCEeWf2IvZSSBQwg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WdGI0SzCEeWf2IvZSSBQwg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WdGI0yzCEeWf2IvZSSBQwg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WdGI0izCEeWf2IvZSSBQwg" x="209" y="400"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WdZDwCzCEeWf2IvZSSBQwg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WdZDwSzCEeWf2IvZSSBQwg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WdZq0CzCEeWf2IvZSSBQwg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WdZDwizCEeWf2IvZSSBQwg" x="700" y="400"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WdmfICzCEeWf2IvZSSBQwg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WdmfISzCEeWf2IvZSSBQwg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WdmfIyzCEeWf2IvZSSBQwg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WdmfIizCEeWf2IvZSSBQwg" x="820" y="400"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Wd6oMCzCEeWf2IvZSSBQwg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Wd6oMSzCEeWf2IvZSSBQwg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Wd6oMyzCEeWf2IvZSSBQwg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Wd6oMizCEeWf2IvZSSBQwg" x="209" y="60"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Wea-gCzCEeWf2IvZSSBQwg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Wea-gSzCEeWf2IvZSSBQwg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Wea-gyzCEeWf2IvZSSBQwg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Wea-gizCEeWf2IvZSSBQwg" x="866" y="60"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Va74cWE3Ed-1rN74nkR_XQ"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_WUC6gCzCEeWf2IvZSSBQwg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Profile" href="FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_5ScnoJD1Ed-I9dVdNhZAGQ" type="1013" source="_iXBUYGE3Ed-1rN74nkR_XQ" target="_dMdkkEZ0EeCLCJBkU67iDQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5ScnoZD1Ed-I9dVdNhZAGQ" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_8QuYYMtkEd2H_o0jIC6qDQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5ScnopD1Ed-I9dVdNhZAGQ" points="[66, 24, -344, -125]$[343, 124, -67, -25]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_EHqFcCNaEeKGuM7MKNu-KA" id="(0.11065573770491803,0.06593406593406594)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Pe59AEzvEeG_JK8KIEXPxQ" id="(0.9524564183835182,0.98)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_6lsYMJD1Ed-I9dVdNhZAGQ" type="1013" source="_6kgFYJD1Ed-I9dVdNhZAGQ" target="_6lF7QJD1Ed-I9dVdNhZAGQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_6lsYMZD1Ed-I9dVdNhZAGQ" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_jDoHsMttEd2H_o0jIC6qDQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_6lsYMpD1Ed-I9dVdNhZAGQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SfEiYEzvEeG_JK8KIEXPxQ" id="(0.2033195020746888,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bsf6cKYOEeSti6341zpcDg" id="(0.48514851485148514,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="__2KzUJD1Ed-I9dVdNhZAGQ" type="1013" source="_6kgFYJD1Ed-I9dVdNhZAGQ" target="__1h6IJD1Ed-I9dVdNhZAGQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="__2KzUZD1Ed-I9dVdNhZAGQ" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_F_vFQMtuEd2H_o0jIC6qDQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__2KzUpD1Ed-I9dVdNhZAGQ" points="[-37, -50, 400, 550]$[-437, -600, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_S2kcYEzvEeG_JK8KIEXPxQ" id="(0.7777777777777778,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bDahMKYOEeSti6341zpcDg" id="(0.5371900826446281,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ekK-YEZ0EeCLCJBkU67iDQ" type="1013" source="_be7EsEZ0EeCLCJBkU67iDQ" target="_dMdkkEZ0EeCLCJBkU67iDQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_ekK-YUZ0EeCLCJBkU67iDQ" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_ejj6YEZ0EeCLCJBkU67iDQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ekK-YkZ0EeCLCJBkU67iDQ" points="[0, -3, -11, 61]$[11, -55, 0, 9]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ek1swEZ0EeCLCJBkU67iDQ" id="(0.5193370165745856,0.01904761904761905)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_iLtgMCNgEeKGuM7MKNu-KA" id="(0.4548335974643423,0.92)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_rspQgEZ0EeCLCJBkU67iDQ" type="1013" source="_kDz24EZ0EeCLCJBkU67iDQ" target="_dMdkkEZ0EeCLCJBkU67iDQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_rspQgUZ0EeCLCJBkU67iDQ" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_rsCMgUZ0EeCLCJBkU67iDQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rspQgkZ0EeCLCJBkU67iDQ" points="[0, 0, -84, 61]$[68, -49, -16, 12]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rtXpQEZ0EeCLCJBkU67iDQ" id="(0.5208333333333334,0.010638297872340425)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rtYQUEZ0EeCLCJBkU67iDQ" id="(0.751188589540412,0.98)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_f_WF8EzuEeG_JK8KIEXPxQ" type="1013" source="_nvDwEGE3Ed-1rN74nkR_XQ" target="_kOCSoG1nEd-XwOGM-uryhg" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_f_WF8UzuEeG_JK8KIEXPxQ" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_f-DsgEzuEeG_JK8KIEXPxQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f_WF8kzuEeG_JK8KIEXPxQ" points="[0, 0, 18, 410]$[-59, -400, -41, 10]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gBFyYEzuEeG_JK8KIEXPxQ" id="(0.4807692307692308,0.058823529411764705)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gBGZcEzuEeG_JK8KIEXPxQ" id="(0.236144578313253,0.94)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_5PIvMEzuEeG_JK8KIEXPxQ" type="1013" source="_kBqtgKFPEd-Ow8yfE2PGoA" target="_kOCSoG1nEd-XwOGM-uryhg" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5PIvMUzuEeG_JK8KIEXPxQ" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_5OkugEzuEeG_JK8KIEXPxQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5PIvMkzuEeG_JK8KIEXPxQ" points="[2, -3, -54, 62]$[45, -52, -11, 13]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5P3H8EzuEeG_JK8KIEXPxQ" id="(0.5248618784530387,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5P3H8UzuEeG_JK8KIEXPxQ" id="(0.8009259259259259,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_BpcCAEzvEeG_JK8KIEXPxQ" type="1013" source="_jArVYGE3Ed-1rN74nkR_XQ" target="_dMdkkEZ0EeCLCJBkU67iDQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_BpcCAUzvEeG_JK8KIEXPxQ" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_Bo7rsUzvEeG_JK8KIEXPxQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BpcCAkzvEeG_JK8KIEXPxQ" points="[-4, -5, 0, 213]$[33, -210, 37, 8]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Br45EEzvEeG_JK8KIEXPxQ" id="(0.5524861878453039,0.03296703296703297)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Br45EUzvEeG_JK8KIEXPxQ" id="(0.16225165562913907,0.84)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_PYYxIE2mEeG8L5eAOYvthg" type="1022" source="_0iP5wMGiEd-BXcifqN3Y_A" target="_kBqtgKFPEd-Ow8yfE2PGoA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_PYYxIU2mEeG8L5eAOYvthg" fontName=""/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_PYYxIk2mEeG8L5eAOYvthg" points="[9, -28, 0, 48]$[-10, -74, -19, 2]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PYmzkE2mEeG8L5eAOYvthg" id="(0.3417085427135678,0.11320754716981132)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PYmzkU2mEeG8L5eAOYvthg" id="(0.2430939226519337,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_DafdcCNaEeKGuM7MKNu-KA" type="1013" source="_iXBUYGE3Ed-1rN74nkR_XQ" target="_9NfIoCNZEeKGuM7MKNu-KA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_DafdcSNaEeKGuM7MKNu-KA" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_DaA8UCNaEeKGuM7MKNu-KA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_DafdciNaEeKGuM7MKNu-KA" points="[1, -2, 0, 65]$[29, -60, 28, 7]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Dak9ACNaEeKGuM7MKNu-KA" id="(0.6885245901639344,0.12087912087912088)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Dak9ASNaEeKGuM7MKNu-KA" id="(0.5441176470588235,0.88)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kjblgCNgEeKGuM7MKNu-KA" type="1022" source="_jMzJwCNgEeKGuM7MKNu-KA" target="_DafdcCNaEeKGuM7MKNu-KA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_kjblgSNgEeKGuM7MKNu-KA" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kjblgiNgEeKGuM7MKNu-KA" points="[-8, 9, 105, 1]$[-113, 8, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kkKlUCNgEeKGuM7MKNu-KA" id="(0.08,0.23333333333333334)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kkKlUSNgEeKGuM7MKNu-KA" id="(0.41025641025641024,0.5125)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_l-4acNTWEeKiLbHSN_MIRQ" type="1022" source="_ZrCqQNTWEeKiLbHSN_MIRQ" target="_nvDwEGE3Ed-1rN74nkR_XQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_l-4acdTWEeKiLbHSN_MIRQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_l-4actTWEeKiLbHSN_MIRQ" points="[-3, -6, 0, 42]$[11, -27, 14, 21]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_l-6PoNTWEeKiLbHSN_MIRQ" id="(0.5235849056603774,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_l-6PodTWEeKiLbHSN_MIRQ" id="(0.46634615384615385,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_K3SFkNTXEeKiLbHSN_MIRQ" type="1022" source="_8I6MoNTWEeKiLbHSN_MIRQ" target="_6kgFYJD1Ed-I9dVdNhZAGQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_K3SFkdTXEeKiLbHSN_MIRQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_K3SFktTXEeKiLbHSN_MIRQ" points="[3, -2, 0, 40]$[6, -28, 3, 14]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_K3T6wNTXEeKiLbHSN_MIRQ" id="(0.2706185567010309,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_K3T6wdTXEeKiLbHSN_MIRQ" id="(0.4097560975609756,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Q7jbgNTfEeKiLbHSN_MIRQ" type="1022" source="_2Vn_YNTWEeKiLbHSN_MIRQ" target="_jArVYGE3Ed-1rN74nkR_XQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Q7jbgdTfEeKiLbHSN_MIRQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Q7jbgtTfEeKiLbHSN_MIRQ" points="[-3, -13, 0, 23]$[6, -25, 9, 11]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Q7kpoNTfEeKiLbHSN_MIRQ" id="(0.5240384615384616,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Q7kpodTfEeKiLbHSN_MIRQ" id="(0.6629834254143646,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_CQm0kNTgEeKiLbHSN_MIRQ" type="1022" source="_UMdyoNTfEeKiLbHSN_MIRQ" target="_be7EsEZ0EeCLCJBkU67iDQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_CQm0kdTgEeKiLbHSN_MIRQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CQm0ktTgEeKiLbHSN_MIRQ" points="[-5, -9, 0, 51]$[25, -50, 30, 10]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CQopwNTgEeKiLbHSN_MIRQ" id="(0.15263157894736842,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CQopwdTgEeKiLbHSN_MIRQ" id="(0.8342541436464088,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_MNc4MNTgEeKiLbHSN_MIRQ" type="1022" source="_FPu4INTgEeKiLbHSN_MIRQ" target="_iXBUYGE3Ed-1rN74nkR_XQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_MNc4MdTgEeKiLbHSN_MIRQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_MNc4MtTgEeKiLbHSN_MIRQ" points="[-8, -3, 0, 52]$[46, -44, 54, 11]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MNeGUNTgEeKiLbHSN_MIRQ" id="(0.148014440433213,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MNeGUdTgEeKiLbHSN_MIRQ" id="(0.8141592920353983,0.9178082191780822)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WdGI1CzCEeWf2IvZSSBQwg" type="StereotypeCommentLink" source="_kOCSoG1nEd-XwOGM-uryhg" target="_WdGI0CzCEeWf2IvZSSBQwg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_WdGI1SzCEeWf2IvZSSBQwg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WdGv4izCEeWf2IvZSSBQwg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WdGI1izCEeWf2IvZSSBQwg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WdGv4CzCEeWf2IvZSSBQwg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WdGv4SzCEeWf2IvZSSBQwg"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WdZq0SzCEeWf2IvZSSBQwg" type="StereotypeCommentLink" source="_6lF7QJD1Ed-I9dVdNhZAGQ" target="_WdZDwCzCEeWf2IvZSSBQwg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_WdZq0izCEeWf2IvZSSBQwg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WdZq1izCEeWf2IvZSSBQwg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WdZq0yzCEeWf2IvZSSBQwg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WdZq1CzCEeWf2IvZSSBQwg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WdZq1SzCEeWf2IvZSSBQwg"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WdmfJCzCEeWf2IvZSSBQwg" type="StereotypeCommentLink" source="__1h6IJD1Ed-I9dVdNhZAGQ" target="_WdmfICzCEeWf2IvZSSBQwg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_WdmfJSzCEeWf2IvZSSBQwg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WdmfKSzCEeWf2IvZSSBQwg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WdmfJizCEeWf2IvZSSBQwg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WdmfJyzCEeWf2IvZSSBQwg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WdmfKCzCEeWf2IvZSSBQwg"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Wd6oNCzCEeWf2IvZSSBQwg" type="StereotypeCommentLink" source="_dMdkkEZ0EeCLCJBkU67iDQ" target="_Wd6oMCzCEeWf2IvZSSBQwg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Wd6oNSzCEeWf2IvZSSBQwg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Wd6oOSzCEeWf2IvZSSBQwg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Wd6oNizCEeWf2IvZSSBQwg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Wd6oNyzCEeWf2IvZSSBQwg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Wd6oOCzCEeWf2IvZSSBQwg"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Wea-hCzCEeWf2IvZSSBQwg" type="StereotypeCommentLink" source="_9NfIoCNZEeKGuM7MKNu-KA" target="_Wea-gCzCEeWf2IvZSSBQwg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Wea-hSzCEeWf2IvZSSBQwg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WeblkizCEeWf2IvZSSBQwg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Wea-hizCEeWf2IvZSSBQwg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WeblkCzCEeWf2IvZSSBQwg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WeblkSzCEeWf2IvZSSBQwg"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_AypCoHiMEd-iNcV8QPhhiQ" type="PapyrusUMLProfileDiagram" name="Container" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_GNycsHiMEd-iNcV8QPhhiQ" type="2006" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GNycs3iMEd-iNcV8QPhhiQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GNzDwHiMEd-iNcV8QPhhiQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GNzDwXiMEd-iNcV8QPhhiQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GNzDwniMEd-iNcV8QPhhiQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GNzDw3iMEd-iNcV8QPhhiQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GNzDxHiMEd-iNcV8QPhhiQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_GNzDxXiMEd-iNcV8QPhhiQ" type="5023"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GNzDxniMEd-iNcV8QPhhiQ" type="1063">
+ <children xmi:type="notation:Shape" xmi:id="_JiegkHiMEd-iNcV8QPhhiQ" type="1037" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="FCM.profile.uml#_ABWh8AAiEd-0dMgailnZgA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JiegkXiMEd-iNcV8QPhhiQ" x="51" y="25"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_KJOXgHiMEd-iNcV8QPhhiQ" type="1037" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="FCM.profile.uml#__5IaEAAhEd-0dMgailnZgA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KJOXgXiMEd-iNcV8QPhhiQ" x="45" y="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ubAdoJDtEd-I9dVdNhZAGQ" type="1037" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="FCM.profile.uml#_uah8gJDtEd-I9dVdNhZAGQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ubAdoZDtEd-I9dVdNhZAGQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_w6qW8JDtEd-I9dVdNhZAGQ" type="1037" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="FCM.profile.uml#_w6U_wJDtEd-I9dVdNhZAGQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w6qW8ZDtEd-I9dVdNhZAGQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_VtVGQIInEeOCe7O91ElfCA" type="1037">
+ <element xmi:type="uml:EnumerationLiteral" href="FCM.profile.uml#_VtMjYIInEeOCe7O91ElfCA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VtVGQYInEeOCe7O91ElfCA"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GNzDx3iMEd-iNcV8QPhhiQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GNzDyHiMEd-iNcV8QPhhiQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GNzDyXiMEd-iNcV8QPhhiQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4KTPEHI0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4KTPEXI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4KTPEnI0EeOZxcUd14vDog"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_GNycsXiMEd-iNcV8QPhhiQ"/>
+ <element xmi:type="uml:Enumeration" href="FCM.profile.uml#_-ZqycAAhEd-0dMgailnZgA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GNycsniMEd-iNcV8QPhhiQ" x="320" y="260" width="161" height="141"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Gw80IHiMEd-iNcV8QPhhiQ" type="1026" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Gw9bMHiMEd-iNcV8QPhhiQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Gw9bMXiMEd-iNcV8QPhhiQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Gw9bMniMEd-iNcV8QPhhiQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Gw9bM3iMEd-iNcV8QPhhiQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Gw9bNHiMEd-iNcV8QPhhiQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Gw9bNXiMEd-iNcV8QPhhiQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Gw9bNniMEd-iNcV8QPhhiQ" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Gw9bN3iMEd-iNcV8QPhhiQ" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_TlRsIHiVEd-owss_ACqnJA" type="3002" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_4uM_AKYiEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>multiplicity</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_fqiIwHPqEd-XO5WB9B_TDA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TlRsIXiVEd-owss_ACqnJA" x="58" y="35"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BwRJcCm_EeKgOdm6HirHfA" type="3002" fontName="Sans Serif" lineColor="0">
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_5O6fYKYiEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_BvGEwCm_EeKgOdm6HirHfA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BwRJcSm_EeKgOdm6HirHfA"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Gw9bOHiMEd-iNcV8QPhhiQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Gw9bOXiMEd-iNcV8QPhhiQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Gw9bOniMEd-iNcV8QPhhiQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Gw9bO3iMEd-iNcV8QPhhiQ" visible="false" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Gw9bPHiMEd-iNcV8QPhhiQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Gw9bPXiMEd-iNcV8QPhhiQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Gw9bPniMEd-iNcV8QPhhiQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4KVrUHI0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4KVrUXI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4KVrUnI0EeOZxcUd14vDog"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_Gw80IXiMEd-iNcV8QPhhiQ"/>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_5SI38AAhEd-0dMgailnZgA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Gw80IniMEd-iNcV8QPhhiQ" x="200" y="120" width="221" height="91"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cwV04HiSEd-iNcV8QPhhiQ" type="1026" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cwV043iSEd-iNcV8QPhhiQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cwV05HiSEd-iNcV8QPhhiQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cwV05XiSEd-iNcV8QPhhiQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cwV05niSEd-iNcV8QPhhiQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cwV053iSEd-iNcV8QPhhiQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cwV06HiSEd-iNcV8QPhhiQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cwV06XiSEd-iNcV8QPhhiQ" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cwWb8HiSEd-iNcV8QPhhiQ" type="1071">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cwWb8XiSEd-iNcV8QPhhiQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cwWb8niSEd-iNcV8QPhhiQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cwWb83iSEd-iNcV8QPhhiQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cwWb9HiSEd-iNcV8QPhhiQ" visible="false" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cwWb9XiSEd-iNcV8QPhhiQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cwWb9niSEd-iNcV8QPhhiQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cwWb93iSEd-iNcV8QPhhiQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4KYHkHI0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4KYHkXI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4KYHknI0EeOZxcUd14vDog"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_cwV04XiSEd-iNcV8QPhhiQ"/>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_JSKpIHiLEd-iNcV8QPhhiQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cwV04niSEd-iNcV8QPhhiQ" x="20" y="120" width="134" height="91"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kTGUUHiVEd-owss_ACqnJA" type="1031" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kTGUUXiVEd-owss_ACqnJA" type="1084"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4Kaj0HI0EeOZxcUd14vDog" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4Kaj0XI0EeOZxcUd14vDog" showTitle="true"/>
+ <element xmi:type="standard:Metaclass" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_Sh6H8KtKEeGF4uwJob34Mw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4Kaj0nI0EeOZxcUd14vDog"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4Kaj03I0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4Kaj1HI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4Kaj1XI0EeOZxcUd14vDog"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Whb2QCzCEeWf2IvZSSBQwg" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_Whb2QSzCEeWf2IvZSSBQwg" name="stereotype" stringValue="StandardProfile::Metaclass"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Whb2QizCEeWf2IvZSSBQwg"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kTGUUniVEd-owss_ACqnJA" x="20" y="19" width="401"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_JXHXYJDxEd-I9dVdNhZAGQ" type="1026" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JXH-cJDxEd-I9dVdNhZAGQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JXH-cZDxEd-I9dVdNhZAGQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JXH-cpDxEd-I9dVdNhZAGQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JXH-c5DxEd-I9dVdNhZAGQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JXH-dJDxEd-I9dVdNhZAGQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JXH-dZDxEd-I9dVdNhZAGQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JXH-dpDxEd-I9dVdNhZAGQ" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JXH-d5DxEd-I9dVdNhZAGQ" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_SyoHMHiVEd-owss_ACqnJA" type="3002" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_vy0YYKYiEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_JZaBAAAjEd-0dMgailnZgA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SyoHMXiVEd-owss_ACqnJA" x="56" y="18"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XMpbcHiVEd-owss_ACqnJA" type="3002" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_xAiIsKYiEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>multiplicity</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_3SMAIAAmEd-0dMgailnZgA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XMpbcXiVEd-owss_ACqnJA" x="137" y="74"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_JXH-eJDxEd-I9dVdNhZAGQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_JXH-eZDxEd-I9dVdNhZAGQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JXH-epDxEd-I9dVdNhZAGQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JXH-e5DxEd-I9dVdNhZAGQ" visible="false" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_JXH-fJDxEd-I9dVdNhZAGQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_JXH-fZDxEd-I9dVdNhZAGQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JXH-fpDxEd-I9dVdNhZAGQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4KdAEHI0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4KdAEXI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4KdAEnI0EeOZxcUd14vDog"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_JXHXYZDxEd-I9dVdNhZAGQ"/>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_JWyAMJDxEd-I9dVdNhZAGQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JXHXYpDxEd-I9dVdNhZAGQ" x="20" y="360" width="261" height="91"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9aAYUPS2EeCLI_ythlfGJw" type="1031" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9aC0kPS2EeCLI_ythlfGJw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9aC0kfS2EeCLI_ythlfGJw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9aC0kvS2EeCLI_ythlfGJw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9aC0k_S2EeCLI_ythlfGJw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9aC0lPS2EeCLI_ythlfGJw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9aDboPS2EeCLI_ythlfGJw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9aDbofS2EeCLI_ythlfGJw" type="1084"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4KgDYHI0EeOZxcUd14vDog" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4KgDYXI0EeOZxcUd14vDog" showTitle="true"/>
+ <element xmi:type="standard:Metaclass" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_SlSMEKtKEeGF4uwJob34Mw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4KgDYnI0EeOZxcUd14vDog"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4KgDY3I0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4KgDZHI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4KgDZXI0EeOZxcUd14vDog"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wh37ICzCEeWf2IvZSSBQwg" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_Wh37ISzCEeWf2IvZSSBQwg" name="stereotype" stringValue="StandardProfile::Metaclass"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Wh37IizCEeWf2IvZSSBQwg"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9aDbovS2EeCLI_ythlfGJw" x="20" y="260" width="109"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FFzh4Cm_EeKgOdm6HirHfA" type="2006" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FF3zUCm_EeKgOdm6HirHfA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FF3zUSm_EeKgOdm6HirHfA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FF4aYCm_EeKgOdm6HirHfA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FF4aYSm_EeKgOdm6HirHfA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FF4aYim_EeKgOdm6HirHfA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FF4aYym_EeKgOdm6HirHfA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FF4aZCm_EeKgOdm6HirHfA" type="5023"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_FF4aZSm_EeKgOdm6HirHfA" type="1063">
+ <children xmi:type="notation:Shape" xmi:id="_GMT28Cm_EeKgOdm6HirHfA" type="1037" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="FCM.profile.uml#_GMSBwCm_EeKgOdm6HirHfA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GMT28Sm_EeKgOdm6HirHfA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_HsKgICm_EeKgOdm6HirHfA" type="1037" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="FCM.profile.uml#_HsIq8Cm_EeKgOdm6HirHfA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_HsKgISm_EeKgOdm6HirHfA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_FF4aZim_EeKgOdm6HirHfA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FF4aZym_EeKgOdm6HirHfA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FF4aaCm_EeKgOdm6HirHfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FF4aaSm_EeKgOdm6HirHfA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4KifoHI0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4KifoXI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4KifonI0EeOZxcUd14vDog"/>
+ </children>
+ <element xmi:type="uml:Enumeration" href="FCM.profile.uml#_FFvQcCm_EeKgOdm6HirHfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FFzh4Sm_EeKgOdm6HirHfA" x="520" y="260" width="161" height="81"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_bc1QkCq3EeKWMcuhL1C5sA" type="1031" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bc3s0Cq3EeKWMcuhL1C5sA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bc4T4Cq3EeKWMcuhL1C5sA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bc4T4Sq3EeKWMcuhL1C5sA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bc4T4iq3EeKWMcuhL1C5sA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bc4T4yq3EeKWMcuhL1C5sA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bc4T5Cq3EeKWMcuhL1C5sA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bc4T5Sq3EeKWMcuhL1C5sA" type="1084"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4Kk74HI0EeOZxcUd14vDog" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4Kk74XI0EeOZxcUd14vDog" showTitle="true"/>
+ <element xmi:type="standard:Metaclass" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_Sk2HMKtKEeGF4uwJob34Mw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4Kk74nI0EeOZxcUd14vDog"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4Kli8HI0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4Kli8XI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4Kli8nI0EeOZxcUd14vDog"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WiUnECzCEeWf2IvZSSBQwg" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_WiUnESzCEeWf2IvZSSBQwg" name="stereotype" stringValue="StandardProfile::Metaclass"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WiUnEizCEeWf2IvZSSBQwg"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bc468Cq3EeKWMcuhL1C5sA" x="180" y="260"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WiBfUNTgEeKiLbHSN_MIRQ" type="1002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WiBfUtTgEeKiLbHSN_MIRQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WiBfU9TgEeKiLbHSN_MIRQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WiBfVNTgEeKiLbHSN_MIRQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WiBfVdTgEeKiLbHSN_MIRQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WiBfVtTgEeKiLbHSN_MIRQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WiBfV9TgEeKiLbHSN_MIRQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WiCGYNTgEeKiLbHSN_MIRQ" type="3"/>
+ <element xmi:type="uml:Comment" href="FCM.profile.uml#_Wh6KkNTgEeKiLbHSN_MIRQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WiBfUdTgEeKiLbHSN_MIRQ" x="460" y="120" width="270"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_a995cIInEeOCe7O91ElfCA" type="1002">
+ <children xmi:type="notation:DecorationNode" xmi:id="_a9-ggIInEeOCe7O91ElfCA" type="3"/>
+ <element xmi:type="uml:Comment" href="FCM.profile.uml#_a96PEIInEeOCe7O91ElfCA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_a995cYInEeOCe7O91ElfCA" x="500" y="360" width="361" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WhpRoCzCEeWf2IvZSSBQwg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WhpRoSzCEeWf2IvZSSBQwg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WhpRoyzCEeWf2IvZSSBQwg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WhpRoizCEeWf2IvZSSBQwg" x="220" y="19"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WiGkoCzCEeWf2IvZSSBQwg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WiGkoSzCEeWf2IvZSSBQwg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WiGkoyzCEeWf2IvZSSBQwg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WiGkoizCEeWf2IvZSSBQwg" x="220" y="260"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WiiCcCzCEeWf2IvZSSBQwg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WiiCcSzCEeWf2IvZSSBQwg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WiiCcyzCEeWf2IvZSSBQwg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WiiCcizCEeWf2IvZSSBQwg" x="380" y="260"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_AypCoXiMEd-iNcV8QPhhiQ"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_We9xECzCEeWf2IvZSSBQwg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Profile" href="FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_b63wAHiTEd-iNcV8QPhhiQ" type="1013" source="_cwV04HiSEd-iNcV8QPhhiQ" target="_kTGUUHiVEd-owss_ACqnJA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_b63wAXiTEd-iNcV8QPhhiQ" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_b6cSMHiTEd-iNcV8QPhhiQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_b63wAniTEd-iNcV8QPhhiQ" points="[1, -9, -12, 71]$[10, -73, -3, 7]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_b7jFcHiTEd-iNcV8QPhhiQ" id="(0.5074626865671642,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_b7jFcXiTEd-iNcV8QPhhiQ" id="(0.14962593516209477,0.82)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kVwYMHjAEd-be4c-807k2A" type="1013" source="_Gw80IHiMEd-iNcV8QPhhiQ" target="_kTGUUHiVEd-owss_ACqnJA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_kVwYMXjAEd-be4c-807k2A" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_s6giAAAjEd-0dMgailnZgA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kVwYMnjAEd-be4c-807k2A" points="[-95, 39, 123, -52]$[-158, 66, 60, -25]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5UiGkKYfEeSti6341zpcDg" id="(0.518324607329843,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5UitoKYfEeSti6341zpcDg" id="(0.7481296758104738,0.82)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Qnfg4PS3EeCLI_ythlfGJw" type="1013" source="_JXHXYJDxEd-I9dVdNhZAGQ" target="_9aAYUPS2EeCLI_ythlfGJw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Qnfg4fS3EeCLI_ythlfGJw" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_Qnb2gPS3EeCLI_ythlfGJw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Qnfg4vS3EeCLI_ythlfGJw" points="[-7, -15, 74, 167]$[-75, -157, 6, 25]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QnhWEPS3EeCLI_ythlfGJw" id="(0.26382978723404255,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_e4KvACq3EeKWMcuhL1C5sA" id="(0.5688073394495413,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_gFVswCq3EeKWMcuhL1C5sA" type="1013" source="_JXHXYJDxEd-I9dVdNhZAGQ" target="_bc1QkCq3EeKWMcuhL1C5sA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_gFVswSq3EeKWMcuhL1C5sA" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_gEFvkCq3EeKWMcuhL1C5sA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gFVswiq3EeKWMcuhL1C5sA" points="[0, -2, -2, 65]$[0, -42, -2, 25]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gFdokCq3EeKWMcuhL1C5sA" id="(0.8045977011494253,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6Cv3cKYfEeSti6341zpcDg" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_mFl64NTgEeKiLbHSN_MIRQ" type="1022" source="_WiBfUNTgEeKiLbHSN_MIRQ" target="_Gw80IHiMEd-iNcV8QPhhiQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_mFl64dTgEeKiLbHSN_MIRQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mFl64tTgEeKiLbHSN_MIRQ" points="[-40, 4, 90, 0]$[-92, -5, 38, -9]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mFnJANTgEeKiLbHSN_MIRQ" id="(0.0,0.3854166666666667)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mFnJAdTgEeKiLbHSN_MIRQ" id="(1.0,0.4065934065934066)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_KKdDgIIoEeOCe7O91ElfCA" type="1022" source="_a995cIInEeOCe7O91ElfCA" target="_GNycsHiMEd-iNcV8QPhhiQ">
+ <styles xmi:type="notation:FontStyle" xmi:id="_KKdDgYIoEeOCe7O91ElfCA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KKdDgoIoEeOCe7O91ElfCA" points="[-22, -3, 38, 0]$[-53, 2, 7, 5]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KKk_UIIoEeOCe7O91ElfCA" id="(0.0,0.3548387096774194)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KKk_UYIoEeOCe7O91ElfCA" id="(1.0,0.7943262411347518)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WhpRpCzCEeWf2IvZSSBQwg" type="StereotypeCommentLink" source="_kTGUUHiVEd-owss_ACqnJA" target="_WhpRoCzCEeWf2IvZSSBQwg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_WhpRpSzCEeWf2IvZSSBQwg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Whp4sizCEeWf2IvZSSBQwg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WhpRpizCEeWf2IvZSSBQwg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Whp4sCzCEeWf2IvZSSBQwg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Whp4sSzCEeWf2IvZSSBQwg"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WiGkpCzCEeWf2IvZSSBQwg" type="StereotypeCommentLink" source="_9aAYUPS2EeCLI_ythlfGJw" target="_WiGkoCzCEeWf2IvZSSBQwg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_WiGkpSzCEeWf2IvZSSBQwg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WiGkqSzCEeWf2IvZSSBQwg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WiGkpizCEeWf2IvZSSBQwg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WiGkpyzCEeWf2IvZSSBQwg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WiGkqCzCEeWf2IvZSSBQwg"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WiiCdCzCEeWf2IvZSSBQwg" type="StereotypeCommentLink" source="_bc1QkCq3EeKWMcuhL1C5sA" target="_WiiCcCzCEeWf2IvZSSBQwg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_WiiCdSzCEeWf2IvZSSBQwg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WiiCeSzCEeWf2IvZSSBQwg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WiiCdizCEeWf2IvZSSBQwg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WiiCdyzCEeWf2IvZSSBQwg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WiiCeCzCEeWf2IvZSSBQwg"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_uxB-EIKhEd-aI_x8ivV7vQ" type="PapyrusUMLProfileDiagram" name="Libraries" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_1gsUAIKhEd-aI_x8ivV7vQ" type="1031" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1gtiIIKhEd-aI_x8ivV7vQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1gtiIYKhEd-aI_x8ivV7vQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1gtiIoKhEd-aI_x8ivV7vQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1gtiI4KhEd-aI_x8ivV7vQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1gtiJIKhEd-aI_x8ivV7vQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1gtiJYKhEd-aI_x8ivV7vQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1gtiJoKhEd-aI_x8ivV7vQ" type="1084"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4Ng7IHI0EeOZxcUd14vDog" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4Ng7IXI0EeOZxcUd14vDog" showTitle="true"/>
+ <element xmi:type="standard:Metaclass" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_Sk8N0KtKEeGF4uwJob34Mw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4Ng7InI0EeOZxcUd14vDog"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4NhiMHI0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4NhiMXI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4NhiMnI0EeOZxcUd14vDog"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1gsUAYKhEd-aI_x8ivV7vQ" x="80" y="40" width="298" height="49"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_C-RnwNRwEeKiLbHSN_MIRQ" type="1026" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_C-RnwtRwEeKiLbHSN_MIRQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_C-Rnw9RwEeKiLbHSN_MIRQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_C-SO0NRwEeKiLbHSN_MIRQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_C-SO0dRwEeKiLbHSN_MIRQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_C-SO0tRwEeKiLbHSN_MIRQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_C-SO09RwEeKiLbHSN_MIRQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_C-SO1NRwEeKiLbHSN_MIRQ" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_C-SO1dRwEeKiLbHSN_MIRQ" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_fjQEINRwEeKiLbHSN_MIRQ" type="3002" fontName="Sans Serif" lineColor="0">
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_S2GU8KYjEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_fi6s8NRwEeKiLbHSN_MIRQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fjQEIdRwEeKiLbHSN_MIRQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_oTdVgNRwEeKiLbHSN_MIRQ" type="3002" fontName="Sans Serif" lineColor="0">
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_R7zP4KYjEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_oTWn0NRwEeKiLbHSN_MIRQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oTdVgdRwEeKiLbHSN_MIRQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_C-SO1tRwEeKiLbHSN_MIRQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_C-SO19RwEeKiLbHSN_MIRQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_C-SO2NRwEeKiLbHSN_MIRQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_C-SO2dRwEeKiLbHSN_MIRQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_C-SO2tRwEeKiLbHSN_MIRQ" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_C-SO29RwEeKiLbHSN_MIRQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_C-SO3NRwEeKiLbHSN_MIRQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_C-SO3dRwEeKiLbHSN_MIRQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_C-SO3tRwEeKiLbHSN_MIRQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4NjXYHI0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4NjXYXI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4NjXYnI0EeOZxcUd14vDog"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_C-GooNRwEeKiLbHSN_MIRQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_C-RnwdRwEeKiLbHSN_MIRQ" x="80" y="120" width="298" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_HjQO0NRwEeKiLbHSN_MIRQ" type="1026" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HjQ14NRwEeKiLbHSN_MIRQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HjQ14dRwEeKiLbHSN_MIRQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HjQ14tRwEeKiLbHSN_MIRQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HjQ149RwEeKiLbHSN_MIRQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HjQ15NRwEeKiLbHSN_MIRQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HjQ15dRwEeKiLbHSN_MIRQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_HjQ15tRwEeKiLbHSN_MIRQ" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_HjQ159RwEeKiLbHSN_MIRQ" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_HjQ16NRwEeKiLbHSN_MIRQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_HjQ16dRwEeKiLbHSN_MIRQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_HjQ16tRwEeKiLbHSN_MIRQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HjQ169RwEeKiLbHSN_MIRQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_HjQ17NRwEeKiLbHSN_MIRQ" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_HjQ17dRwEeKiLbHSN_MIRQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_HjQ17tRwEeKiLbHSN_MIRQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_HjQ179RwEeKiLbHSN_MIRQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HjQ18NRwEeKiLbHSN_MIRQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4NlzoHI0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4NlzoXI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4NlzonI0EeOZxcUd14vDog"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_HjF2wNRwEeKiLbHSN_MIRQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HjQO0dRwEeKiLbHSN_MIRQ" x="580" y="120" width="141" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QdTYsNRwEeKiLbHSN_MIRQ" type="1031" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QdT_wNRwEeKiLbHSN_MIRQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QdT_wdRwEeKiLbHSN_MIRQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QdT_wtRwEeKiLbHSN_MIRQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QdT_w9RwEeKiLbHSN_MIRQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QdT_xNRwEeKiLbHSN_MIRQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QdT_xdRwEeKiLbHSN_MIRQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QdT_xtRwEeKiLbHSN_MIRQ" type="1084"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4NoP4HI0EeOZxcUd14vDog" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4NoP4XI0EeOZxcUd14vDog" showTitle="true"/>
+ <element xmi:type="standard:Metaclass" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_Sh6H8KtKEeGF4uwJob34Mw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4NoP4nI0EeOZxcUd14vDog"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4NoP43I0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4NoP5HI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4NoP5XI0EeOZxcUd14vDog"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WlFnMCzCEeWf2IvZSSBQwg" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_WlFnMSzCEeWf2IvZSSBQwg" name="stereotype" stringValue="StandardProfile::Metaclass"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WlFnMizCEeWf2IvZSSBQwg"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QdT_x9RwEeKiLbHSN_MIRQ" x="440" y="40" width="281"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__QZyYNRwEeKiLbHSN_MIRQ" type="1026" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__QaZcNRwEeKiLbHSN_MIRQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__QaZcdRwEeKiLbHSN_MIRQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__QaZctRwEeKiLbHSN_MIRQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__QaZc9RwEeKiLbHSN_MIRQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__QaZdNRwEeKiLbHSN_MIRQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__QaZddRwEeKiLbHSN_MIRQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="__QaZdtRwEeKiLbHSN_MIRQ" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__QaZd9RwEeKiLbHSN_MIRQ" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__QaZeNRwEeKiLbHSN_MIRQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__QaZedRwEeKiLbHSN_MIRQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__QaZetRwEeKiLbHSN_MIRQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__QaZe9RwEeKiLbHSN_MIRQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__QaZfNRwEeKiLbHSN_MIRQ" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__QaZfdRwEeKiLbHSN_MIRQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__QaZftRwEeKiLbHSN_MIRQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__QaZf9RwEeKiLbHSN_MIRQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__QaZgNRwEeKiLbHSN_MIRQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4NqsIHI0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4NqsIXI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4NqsInI0EeOZxcUd14vDog"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#__QLv8NRwEeKiLbHSN_MIRQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__QZyYdRwEeKiLbHSN_MIRQ" x="440" y="120" width="109" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_EOs4YNRxEeKiLbHSN_MIRQ" type="1002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EOtfcNRxEeKiLbHSN_MIRQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EOtfcdRxEeKiLbHSN_MIRQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EOtfctRxEeKiLbHSN_MIRQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EOtfc9RxEeKiLbHSN_MIRQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EOtfdNRxEeKiLbHSN_MIRQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EOtfddRxEeKiLbHSN_MIRQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_EOtfdtRxEeKiLbHSN_MIRQ" type="3"/>
+ <element xmi:type="uml:Comment" href="FCM.profile.uml#_EOljoNRxEeKiLbHSN_MIRQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EOs4YdRxEeKiLbHSN_MIRQ" x="443" y="231" width="278" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0NN94NTVEeKiLbHSN_MIRQ" type="1002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0NN94tTVEeKiLbHSN_MIRQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0NN949TVEeKiLbHSN_MIRQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0NN95NTVEeKiLbHSN_MIRQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0NN95dTVEeKiLbHSN_MIRQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0NN95tTVEeKiLbHSN_MIRQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0NN959TVEeKiLbHSN_MIRQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0NN96NTVEeKiLbHSN_MIRQ" type="3"/>
+ <element xmi:type="uml:Comment" href="FCM.profile.uml#_0NGpINTVEeKiLbHSN_MIRQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0NN94dTVEeKiLbHSN_MIRQ" x="80" y="240" width="298"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WlAusCzCEeWf2IvZSSBQwg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WlAusSzCEeWf2IvZSSBQwg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WlAusyzCEeWf2IvZSSBQwg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WlAusizCEeWf2IvZSSBQwg" x="280" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WlRNYCzCEeWf2IvZSSBQwg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WlRNYSzCEeWf2IvZSSBQwg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WlRNYyzCEeWf2IvZSSBQwg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WlRNYizCEeWf2IvZSSBQwg" x="640" y="40"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_uxB-EYKhEd-aI_x8ivV7vQ"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_Wi2ykCzCEeWf2IvZSSBQwg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Profile" href="FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_aT5DUNRwEeKiLbHSN_MIRQ" type="1013" source="_C-RnwNRwEeKiLbHSN_MIRQ" target="_1gsUAIKhEd-aI_x8ivV7vQ" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_aT5DUdRwEeKiLbHSN_MIRQ" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_aTxukNRwEeKiLbHSN_MIRQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_aT5DUtRwEeKiLbHSN_MIRQ" points="[-1, -4, 18, 74]$[50, -79, 69, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aT8tsNRwEeKiLbHSN_MIRQ" id="(0.4697986577181208,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aT8tsdRwEeKiLbHSN_MIRQ" id="(0.4697986577181208,0.8163265306122449)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_eio7sNRwEeKiLbHSN_MIRQ" type="1013" source="_HjQO0NRwEeKiLbHSN_MIRQ" target="_QdTYsNRwEeKiLbHSN_MIRQ" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_eio7sdRwEeKiLbHSN_MIRQ" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_eiejoNRwEeKiLbHSN_MIRQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_eio7stRwEeKiLbHSN_MIRQ" points="[-6, -7, -2, 71]$[-6, -53, -2, 25]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eitNINRwEeKiLbHSN_MIRQ" id="(0.47794117647058826,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DAZSMNRxEeKiLbHSN_MIRQ" id="(0.7061068702290076,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_B_LFwNRxEeKiLbHSN_MIRQ" type="1013" source="__QZyYNRwEeKiLbHSN_MIRQ" target="_QdTYsNRwEeKiLbHSN_MIRQ" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_B_LFwdRxEeKiLbHSN_MIRQ" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_B_Ci4NRxEeKiLbHSN_MIRQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_B_LFwtRxEeKiLbHSN_MIRQ" points="[-4, -12, 0, 64]$[55, -72, 59, 4]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_B_OJENRxEeKiLbHSN_MIRQ" id="(0.5045871559633027,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_B_OJEdRxEeKiLbHSN_MIRQ" id="(0.2099236641221374,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_r5AsANTVEeKiLbHSN_MIRQ" type="1022" source="_EOs4YNRxEeKiLbHSN_MIRQ" target="_HjQO0NRwEeKiLbHSN_MIRQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_r5AsAdTVEeKiLbHSN_MIRQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_r5BTENTVEeKiLbHSN_MIRQ" points="[-3, -16, 7, 63]$[-14, -42, -4, 37]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_r5ChMNTVEeKiLbHSN_MIRQ" id="(0.7519083969465649,0.08181818181818182)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_n8bLQKYfEeSti6341zpcDg" id="(0.425531914893617,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_s1YNoNTVEeKiLbHSN_MIRQ" type="1022" source="_EOs4YNRxEeKiLbHSN_MIRQ" target="__QZyYNRwEeKiLbHSN_MIRQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_s1YNodTVEeKiLbHSN_MIRQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_s1YNotTVEeKiLbHSN_MIRQ" points="[-22, -16, 78, 63]$[-98, -42, 2, 37]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_s1ZbwNTVEeKiLbHSN_MIRQ" id="(0.22900763358778625,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_n8Nv4KYfEeSti6341zpcDg" id="(0.5779816513761468,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7Qz8cNTVEeKiLbHSN_MIRQ" type="1022" source="_0NN94NTVEeKiLbHSN_MIRQ" target="_C-RnwNRwEeKiLbHSN_MIRQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_7Qz8cdTVEeKiLbHSN_MIRQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7Qz8ctTVEeKiLbHSN_MIRQ" points="[-4, -11, -15, 81]$[-21, -55, -32, 37]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7Q1xoNTVEeKiLbHSN_MIRQ" id="(0.4697986577181208,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8VtvANTVEeKiLbHSN_MIRQ" id="(0.4697986577181208,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WlAutCzCEeWf2IvZSSBQwg" type="StereotypeCommentLink" source="_1gsUAIKhEd-aI_x8ivV7vQ" target="_WlAusCzCEeWf2IvZSSBQwg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_WlAutSzCEeWf2IvZSSBQwg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WlAuuSzCEeWf2IvZSSBQwg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WlAutizCEeWf2IvZSSBQwg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WlAutyzCEeWf2IvZSSBQwg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WlAuuCzCEeWf2IvZSSBQwg"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WlRNZCzCEeWf2IvZSSBQwg" type="StereotypeCommentLink" source="_QdTYsNRwEeKiLbHSN_MIRQ" target="_WlRNYCzCEeWf2IvZSSBQwg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_WlRNZSzCEeWf2IvZSSBQwg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WlR0cCzCEeWf2IvZSSBQwg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WlRNZizCEeWf2IvZSSBQwg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WlRNZyzCEeWf2IvZSSBQwg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WlRNaCzCEeWf2IvZSSBQwg"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_2t0Q4JMoEd-I9dVdNhZAGQ" type="PapyrusUMLProfileDiagram" name="Deployment" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_KNBf8JNHEd-KZJPU-tgoOQ" type="1026" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KNDVIJNHEd-KZJPU-tgoOQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KNDVIZNHEd-KZJPU-tgoOQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KND8MJNHEd-KZJPU-tgoOQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KND8MZNHEd-KZJPU-tgoOQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KND8MpNHEd-KZJPU-tgoOQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KND8M5NHEd-KZJPU-tgoOQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_KND8NJNHEd-KZJPU-tgoOQ" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_KND8NZNHEd-KZJPU-tgoOQ" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_KCl74JPnEd-wZaz0yGzw_g" type="3002" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_zqH8AH8UEd-oF-y8FyT5sA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KCl74ZPnEd-wZaz0yGzw_g" x="34" y="10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FjOOwJQBEd-UMN59oR7XbA" type="3002" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_Fi5eoJQBEd-UMN59oR7XbA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FjO10JQBEd-UMN59oR7XbA"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_KND8NpNHEd-KZJPU-tgoOQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_KND8N5NHEd-KZJPU-tgoOQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KND8OJNHEd-KZJPU-tgoOQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_KND8OZNHEd-KZJPU-tgoOQ" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_KND8OpNHEd-KZJPU-tgoOQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_KND8O5NHEd-KZJPU-tgoOQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KND8PJNHEd-KZJPU-tgoOQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_KNBf8ZNHEd-KZJPU-tgoOQ"/>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_E0tzcGE_Ed-eArNXja7SuA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KNBf8pNHEd-KZJPU-tgoOQ" x="270" y="375" width="196"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LHDfQJNHEd-KZJPU-tgoOQ" type="1026" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LHEGUJNHEd-KZJPU-tgoOQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LHEGUZNHEd-KZJPU-tgoOQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LHEGUpNHEd-KZJPU-tgoOQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LHEGU5NHEd-KZJPU-tgoOQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LHEGVJNHEd-KZJPU-tgoOQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LHEGVZNHEd-KZJPU-tgoOQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LHEGVpNHEd-KZJPU-tgoOQ" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LHEGV5NHEd-KZJPU-tgoOQ" type="1071">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LHEGWJNHEd-KZJPU-tgoOQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LHEGWZNHEd-KZJPU-tgoOQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LHEGWpNHEd-KZJPU-tgoOQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LHEGW5NHEd-KZJPU-tgoOQ" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LHEGXJNHEd-KZJPU-tgoOQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LHEGXZNHEd-KZJPU-tgoOQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LHEGXpNHEd-KZJPU-tgoOQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_LHDfQZNHEd-KZJPU-tgoOQ"/>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_361C4FapEd-w9f5DG2hQCA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LHDfQpNHEd-KZJPU-tgoOQ" x="285" y="165" width="136" height="91"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8u-IIJOCEd-5qPBhYeIVtw" type="1026" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8u-IIpOCEd-5qPBhYeIVtw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8u-II5OCEd-5qPBhYeIVtw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8u-IJJOCEd-5qPBhYeIVtw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8u-IJZOCEd-5qPBhYeIVtw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8u-IJpOCEd-5qPBhYeIVtw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8u-IJ5OCEd-5qPBhYeIVtw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8u-IKJOCEd-5qPBhYeIVtw" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8u-vMJOCEd-5qPBhYeIVtw" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_hvyIYJODEd-5qPBhYeIVtw" type="3002" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_C5WBYGGLEd-yH9S4VNNbSQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hvyIYZODEd-5qPBhYeIVtw" x="47"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_hwU68JODEd-5qPBhYeIVtw" type="3002" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <element xmi:type="uml:Property" href="FCM.profile.uml#__5rAUGE_Ed-eArNXja7SuA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hwViAJODEd-5qPBhYeIVtw" x="47"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BZWsQJOGEd-5qPBhYeIVtw" type="3002" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_BZCjMJOGEd-5qPBhYeIVtw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BZWsQZOGEd-5qPBhYeIVtw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_D_rLoJPxEd-UMN59oR7XbA" type="3002" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_D-cckJPxEd-UMN59oR7XbA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_D_rLoZPxEd-UMN59oR7XbA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_HtlAwJPxEd-UMN59oR7XbA" type="3002" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_HtMmQJPxEd-UMN59oR7XbA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_HtlAwZPxEd-UMN59oR7XbA"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8u-vMZOCEd-5qPBhYeIVtw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8u-vMpOCEd-5qPBhYeIVtw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8u-vM5OCEd-5qPBhYeIVtw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8u-vNJOCEd-5qPBhYeIVtw" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8u-vNZOCEd-5qPBhYeIVtw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8u-vNpOCEd-5qPBhYeIVtw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8u-vN5OCEd-5qPBhYeIVtw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_0KEH0JOCEd-5qPBhYeIVtw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8u-IIZOCEd-5qPBhYeIVtw" x="510" y="165" width="196" height="136"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_RZl9EJODEd-5qPBhYeIVtw" type="1031" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RZl9EpODEd-5qPBhYeIVtw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RZl9E5ODEd-5qPBhYeIVtw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RZl9FJODEd-5qPBhYeIVtw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RZmkIJODEd-5qPBhYeIVtw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RZmkIZODEd-5qPBhYeIVtw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RZmkIpODEd-5qPBhYeIVtw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RZmkI5ODEd-5qPBhYeIVtw" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RZl9EZODEd-5qPBhYeIVtw" x="60" y="75" width="361"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZeN60JODEd-5qPBhYeIVtw" type="1031" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZeOh4JODEd-5qPBhYeIVtw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZeOh4ZODEd-5qPBhYeIVtw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZeOh4pODEd-5qPBhYeIVtw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZeOh45ODEd-5qPBhYeIVtw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZeOh5JODEd-5qPBhYeIVtw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZeOh5ZODEd-5qPBhYeIVtw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZePI8JODEd-5qPBhYeIVtw" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZePwAJODEd-5qPBhYeIVtw" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZePwAZODEd-5qPBhYeIVtw" key="StereotypeList" value="Standard::Metaclass"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZePwApODEd-5qPBhYeIVtw" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZePwA5ODEd-5qPBhYeIVtw" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZePwBJODEd-5qPBhYeIVtw" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZeOh5pODEd-5qPBhYeIVtw" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Node"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZeOh55ODEd-5qPBhYeIVtw" x="510" y="75" width="196"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_oieSQJOFEd-5qPBhYeIVtw" type="1026" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oie5UJOFEd-5qPBhYeIVtw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oie5UZOFEd-5qPBhYeIVtw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oie5UpOFEd-5qPBhYeIVtw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oie5U5OFEd-5qPBhYeIVtw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oie5VJOFEd-5qPBhYeIVtw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oie5VZOFEd-5qPBhYeIVtw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oie5VpOFEd-5qPBhYeIVtw" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_oie5V5OFEd-5qPBhYeIVtw" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_rP9zQJOFEd-5qPBhYeIVtw" type="3002" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_40nNwFatEd-w9f5DG2hQCA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_rP9zQZOFEd-5qPBhYeIVtw" x="69" y="10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_rQhM4JOFEd-5qPBhYeIVtw" type="3002" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_jmeY4FapEd-w9f5DG2hQCA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_rQhM4ZOFEd-5qPBhYeIVtw" x="69" y="10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_rRFNkJOFEd-5qPBhYeIVtw" type="3002" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_b5KH4FapEd-w9f5DG2hQCA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_rRFNkZOFEd-5qPBhYeIVtw" x="69" y="10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_MuVAcJOGEd-5qPBhYeIVtw" type="3002" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_Mt6wwJOGEd-5qPBhYeIVtw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MuVAcZOGEd-5qPBhYeIVtw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TJwLwJOGEd-5qPBhYeIVtw" type="3002" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_TJXKMJOGEd-5qPBhYeIVtw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TJwLwZOGEd-5qPBhYeIVtw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_oie5WJOFEd-5qPBhYeIVtw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_oie5WZOFEd-5qPBhYeIVtw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oie5WpOFEd-5qPBhYeIVtw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_oie5W5OFEd-5qPBhYeIVtw" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_oie5XJOFEd-5qPBhYeIVtw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_oie5XZOFEd-5qPBhYeIVtw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oie5XpOFEd-5qPBhYeIVtw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_ZF8ZYFapEd-w9f5DG2hQCA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oieSQZOFEd-5qPBhYeIVtw" x="60" y="375" width="181" height="136"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2x2iEJOFEd-5qPBhYeIVtw" type="1026" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2x3JIJOFEd-5qPBhYeIVtw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2x3JIZOFEd-5qPBhYeIVtw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2x3JIpOFEd-5qPBhYeIVtw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2x3JI5OFEd-5qPBhYeIVtw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2x3JJJOFEd-5qPBhYeIVtw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2x3JJZOFEd-5qPBhYeIVtw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2x3JJpOFEd-5qPBhYeIVtw" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2x3JJ5OFEd-5qPBhYeIVtw" type="1071">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2x3JKJOFEd-5qPBhYeIVtw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2x3JKZOFEd-5qPBhYeIVtw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2x3JKpOFEd-5qPBhYeIVtw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2x3JK5OFEd-5qPBhYeIVtw" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2x3JLJOFEd-5qPBhYeIVtw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2x3JLZOFEd-5qPBhYeIVtw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2x3JLpOFEd-5qPBhYeIVtw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_1rKtYFapEd-w9f5DG2hQCA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2x2iEZOFEd-5qPBhYeIVtw" x="60" y="165" width="116" height="91"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FHbocJPyEd-UMN59oR7XbA" type="1031" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FHcPgJPyEd-UMN59oR7XbA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FHc2kJPyEd-UMN59oR7XbA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FHc2kZPyEd-UMN59oR7XbA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FHc2kpPyEd-UMN59oR7XbA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FHc2k5PyEd-UMN59oR7XbA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FHc2lJPyEd-UMN59oR7XbA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FHc2lZPyEd-UMN59oR7XbA" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FHbocZPyEd-UMN59oR7XbA" x="60" y="285" width="406"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_mc4zgLCJEd-D5aqfqbr7IQ" type="1026" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mc720LCJEd-D5aqfqbr7IQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mc720bCJEd-D5aqfqbr7IQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mc8d4LCJEd-D5aqfqbr7IQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mc8d4bCJEd-D5aqfqbr7IQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mc9E8LCJEd-D5aqfqbr7IQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mc9E8bCJEd-D5aqfqbr7IQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mc9E8rCJEd-D5aqfqbr7IQ" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mc9E87CJEd-D5aqfqbr7IQ" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_7fGCALCJEd-D5aqfqbr7IQ" type="3002" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_7dGd8LCJEd-D5aqfqbr7IQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7fGpELCJEd-D5aqfqbr7IQ"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mc9E9LCJEd-D5aqfqbr7IQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mc9E9bCJEd-D5aqfqbr7IQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mc9E9rCJEd-D5aqfqbr7IQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mc9E97CJEd-D5aqfqbr7IQ" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mc9E-LCJEd-D5aqfqbr7IQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mc9E-bCJEd-D5aqfqbr7IQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mc9E-rCJEd-D5aqfqbr7IQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_maLdwLCJEd-D5aqfqbr7IQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mc4zgbCJEd-D5aqfqbr7IQ" x="60" y="612" width="181" height="76"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2iiocLCJEd-D5aqfqbr7IQ" type="1031" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2ij2kLCJEd-D5aqfqbr7IQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2ikdoLCJEd-D5aqfqbr7IQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2ikdobCJEd-D5aqfqbr7IQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2ikdorCJEd-D5aqfqbr7IQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2ikdo7CJEd-D5aqfqbr7IQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2ikdpLCJEd-D5aqfqbr7IQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2ikdpbCJEd-D5aqfqbr7IQ" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2ijPgLCJEd-D5aqfqbr7IQ" x="60" y="540" width="526" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QjZFwLCLEd-D5aqfqbr7IQ" type="1026" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QjaT4LCLEd-D5aqfqbr7IQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QjaT4bCLEd-D5aqfqbr7IQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QjaT4rCLEd-D5aqfqbr7IQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QjaT47CLEd-D5aqfqbr7IQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Qja68LCLEd-D5aqfqbr7IQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qja68bCLEd-D5aqfqbr7IQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Qja68rCLEd-D5aqfqbr7IQ" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Qja687CLEd-D5aqfqbr7IQ" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_fC4OILCLEd-D5aqfqbr7IQ" type="3002" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_fBzQELCLEd-D5aqfqbr7IQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fC4OIbCLEd-D5aqfqbr7IQ"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Qja69LCLEd-D5aqfqbr7IQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Qja69bCLEd-D5aqfqbr7IQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Qja69rCLEd-D5aqfqbr7IQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Qja697CLEd-D5aqfqbr7IQ" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QjbiALCLEd-D5aqfqbr7IQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QjbiAbCLEd-D5aqfqbr7IQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QjbiArCLEd-D5aqfqbr7IQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_QiSSgLCLEd-D5aqfqbr7IQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QjZFwbCLEd-D5aqfqbr7IQ" x="396" y="612" width="166" height="76"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7yGgsLFREd-D5aqfqbr7IQ" type="1026" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7yHHwLFREd-D5aqfqbr7IQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7yHHwbFREd-D5aqfqbr7IQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7yHu0LFREd-D5aqfqbr7IQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7yHu0bFREd-D5aqfqbr7IQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7yHu0rFREd-D5aqfqbr7IQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7yHu07FREd-D5aqfqbr7IQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7yHu1LFREd-D5aqfqbr7IQ" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7yHu1bFREd-D5aqfqbr7IQ" type="1071">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7yHu1rFREd-D5aqfqbr7IQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7yHu17FREd-D5aqfqbr7IQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7yHu2LFREd-D5aqfqbr7IQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7yIV4LFREd-D5aqfqbr7IQ" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7yIV4bFREd-D5aqfqbr7IQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7yIV4rFREd-D5aqfqbr7IQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7yIV47FREd-D5aqfqbr7IQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_7yDdYLFREd-D5aqfqbr7IQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7yGgsbFREd-D5aqfqbr7IQ" x="252" y="612" width="121" height="75"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CREvQLFSEd-D5aqfqbr7IQ" type="1026" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CRFWULFSEd-D5aqfqbr7IQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CRFWUbFSEd-D5aqfqbr7IQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CRFWUrFSEd-D5aqfqbr7IQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CRFWU7FSEd-D5aqfqbr7IQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CRFWVLFSEd-D5aqfqbr7IQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CRFWVbFSEd-D5aqfqbr7IQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CRF9YLFSEd-D5aqfqbr7IQ" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CRF9YbFSEd-D5aqfqbr7IQ" type="1071">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CRF9YrFSEd-D5aqfqbr7IQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CRF9Y7FSEd-D5aqfqbr7IQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CRF9ZLFSEd-D5aqfqbr7IQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CRF9ZbFSEd-D5aqfqbr7IQ" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CRF9ZrFSEd-D5aqfqbr7IQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CRF9Z7FSEd-D5aqfqbr7IQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CRF9aLFSEd-D5aqfqbr7IQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_CRCTALFSEd-D5aqfqbr7IQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CREvQbFSEd-D5aqfqbr7IQ" x="252" y="756" width="121" height="85"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kMWzMLTaEd-jOpA9YHRXqw" type="1031" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kMXaQLTaEd-jOpA9YHRXqw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kMXaQbTaEd-jOpA9YHRXqw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kMXaQrTaEd-jOpA9YHRXqw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kMXaQ7TaEd-jOpA9YHRXqw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kMXaRLTaEd-jOpA9YHRXqw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kMXaRbTaEd-jOpA9YHRXqw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kMogALTaEd-jOpA9YHRXqw" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kMogAbTaEd-jOpA9YHRXqw" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kMogArTaEd-jOpA9YHRXqw" key="StereotypeList" value="Standard::Metaclass"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kMogA7TaEd-jOpA9YHRXqw" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kMogBLTaEd-jOpA9YHRXqw" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kMogBbTaEd-jOpA9YHRXqw" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kMXaRrTaEd-jOpA9YHRXqw" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Abstraction"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kMn48LTaEd-jOpA9YHRXqw" x="510" y="330" width="196"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9L630Lc6Ed-kAZ42Z8lTBg" type="1026" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9L8F8Lc6Ed-kAZ42Z8lTBg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9L8F8bc6Ed-kAZ42Z8lTBg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9L8tALc6Ed-kAZ42Z8lTBg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9L8tAbc6Ed-kAZ42Z8lTBg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9L8tArc6Ed-kAZ42Z8lTBg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9L8tA7c6Ed-kAZ42Z8lTBg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9L8tBLc6Ed-kAZ42Z8lTBg" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9L8tBbc6Ed-kAZ42Z8lTBg" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_JZ9iALc7Ed-kAZ42Z8lTBg" type="3002" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_JZGmYLc7Ed-kAZ42Z8lTBg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JZ9iAbc7Ed-kAZ42Z8lTBg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SX-l4Lc7Ed-kAZ42Z8lTBg" type="3002" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_SX8JoLc7Ed-kAZ42Z8lTBg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SX-l4bc7Ed-kAZ42Z8lTBg"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9L8tBrc6Ed-kAZ42Z8lTBg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9L8tB7c6Ed-kAZ42Z8lTBg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9L8tCLc6Ed-kAZ42Z8lTBg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9L8tCbc6Ed-kAZ42Z8lTBg" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9L8tCrc6Ed-kAZ42Z8lTBg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9L8tC7c6Ed-kAZ42Z8lTBg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9L8tDLc6Ed-kAZ42Z8lTBg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_8t77ULc6Ed-kAZ42Z8lTBg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9L630bc6Ed-kAZ42Z8lTBg" x="630" y="615" width="181" height="85"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6ykokLc_Ed-kAZ42Z8lTBg" type="1031" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6ykokbc_Ed-kAZ42Z8lTBg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6ykokrc_Ed-kAZ42Z8lTBg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6ykok7c_Ed-kAZ42Z8lTBg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6ykolLc_Ed-kAZ42Z8lTBg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6ykolbc_Ed-kAZ42Z8lTBg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6ykolrc_Ed-kAZ42Z8lTBg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6ykol7c_Ed-kAZ42Z8lTBg" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6ykomLc_Ed-kAZ42Z8lTBg" x="630" y="540" width="181" height="46"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_egUlkLy-Ed-9GLEvRgvEyg" type="1026" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_egVzsLy-Ed-9GLEvRgvEyg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_egVzsby-Ed-9GLEvRgvEyg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_egWawLy-Ed-9GLEvRgvEyg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_egWawby-Ed-9GLEvRgvEyg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_egWawry-Ed-9GLEvRgvEyg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_egWaw7y-Ed-9GLEvRgvEyg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_egWaxLy-Ed-9GLEvRgvEyg" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_egqj0Ly-Ed-9GLEvRgvEyg" type="1071">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_egqj0by-Ed-9GLEvRgvEyg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_egqj0ry-Ed-9GLEvRgvEyg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_egqj07y-Ed-9GLEvRgvEyg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_egqj1Ly-Ed-9GLEvRgvEyg" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_egqj1by-Ed-9GLEvRgvEyg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_egqj1ry-Ed-9GLEvRgvEyg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_egqj17y-Ed-9GLEvRgvEyg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_L8b3wMtvEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_egUlkby-Ed-9GLEvRgvEyg" x="504" y="720" width="136"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tSCtcLy-Ed-9GLEvRgvEyg" type="1002" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tSDUgLy-Ed-9GLEvRgvEyg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tSD7kLy-Ed-9GLEvRgvEyg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tSD7kby-Ed-9GLEvRgvEyg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tSD7kry-Ed-9GLEvRgvEyg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tSD7k7y-Ed-9GLEvRgvEyg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tSD7lLy-Ed-9GLEvRgvEyg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tSD7lby-Ed-9GLEvRgvEyg" type="3"/>
+ <element xmi:type="uml:Comment" href="FCM.profile.uml#_tP3jMLy-Ed-9GLEvRgvEyg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tSCtcby-Ed-9GLEvRgvEyg" x="660" y="768" width="367"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_mqJloNXnEd-CUqOXH3INsw" type="1026" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mqKzwNXnEd-CUqOXH3INsw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mqKzwdXnEd-CUqOXH3INsw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mqLa0NXnEd-CUqOXH3INsw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mqLa0dXnEd-CUqOXH3INsw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mqLa0tXnEd-CUqOXH3INsw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mqLa09XnEd-CUqOXH3INsw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mqLa1NXnEd-CUqOXH3INsw" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mqLa1dXnEd-CUqOXH3INsw" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_2H_dkNXwEd-CUqOXH3INsw" type="3002" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_16-VQNXwEd-CUqOXH3INsw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2H_dkdXwEd-CUqOXH3INsw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mqLa1tXnEd-CUqOXH3INsw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mqLa19XnEd-CUqOXH3INsw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mqLa2NXnEd-CUqOXH3INsw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mqLa2dXnEd-CUqOXH3INsw" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mqLa2tXnEd-CUqOXH3INsw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mqLa29XnEd-CUqOXH3INsw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mqLa3NXnEd-CUqOXH3INsw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_mditANXnEd-CUqOXH3INsw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mqJlodXnEd-CUqOXH3INsw" x="60" y="936" width="181"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1FcKgNXnEd-CUqOXH3INsw" type="1031" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1FcKgtXnEd-CUqOXH3INsw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1FcxkNXnEd-CUqOXH3INsw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1FcxkdXnEd-CUqOXH3INsw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1FcxktXnEd-CUqOXH3INsw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1Fcxk9XnEd-CUqOXH3INsw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1FcxlNXnEd-CUqOXH3INsw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1FdYoNXnEd-CUqOXH3INsw" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1Fd_sNXnEd-CUqOXH3INsw" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1Fd_sdXnEd-CUqOXH3INsw" key="StereotypeList" value="Standard::Metaclass"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1Fd_stXnEd-CUqOXH3INsw" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1Fd_s9XnEd-CUqOXH3INsw" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1Fd_tNXnEd-CUqOXH3INsw" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1FcxldXnEd-CUqOXH3INsw" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Slot"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1FcxltXnEd-CUqOXH3INsw" x="60" y="852" width="397"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_2t0Q4ZMoEd-I9dVdNhZAGQ"/>
+ <element xmi:type="uml:Profile" href="FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_bi3TIJODEd-5qPBhYeIVtw" type="1013" source="_8u-IIJOCEd-5qPBhYeIVtw" target="_ZeN60JODEd-5qPBhYeIVtw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_bi3TIZODEd-5qPBhYeIVtw" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_biaAIJODEd-5qPBhYeIVtw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_bi3TIpODEd-5qPBhYeIVtw" points="[50, -22, -103, 40]$[103, -54, -50, 8]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_mggFYJODEd-5qPBhYeIVtw" type="1013" source="_LHDfQJNHEd-KZJPU-tgoOQ" target="_RZl9EJODEd-5qPBhYeIVtw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_mggFYZODEd-5qPBhYeIVtw" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_-jKo0FapEd-w9f5DG2hQCA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mggFYpODEd-5qPBhYeIVtw" points="[-2, -50, 8, 185]$[-9, -210, 1, 25]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3xJHUJPyEd-UMN59oR7XbA" id="(0.8227146814404432,0.84)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kygnoJOFEd-5qPBhYeIVtw" type="1013" source="_KNBf8JNHEd-KZJPU-tgoOQ" target="_FHbocJPyEd-UMN59oR7XbA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_kygnoZOFEd-5qPBhYeIVtw" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_bkIWUHWmEd-EI-xpxehsbA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kygnopOFEd-5qPBhYeIVtw" points="[-33, -50, 137, 210]$[-170, -260, 0, 0]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9zQ3QJPxEd-UMN59oR7XbA" id="(0.7586206896551724,0.96)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ojBr4JOFEd-5qPBhYeIVtw" type="1013" source="_oieSQJOFEd-5qPBhYeIVtw" target="_FHbocJPyEd-UMN59oR7XbA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_ojBr4ZOFEd-5qPBhYeIVtw" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_4mq4YFatEd-w9f5DG2hQCA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ojBr4pOFEd-5qPBhYeIVtw" points="[0, 0, -480, -130]$[420, 113, -60, -17]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GjevsJPyEd-UMN59oR7XbA" id="(0.22660098522167488,0.72)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_4PryAJOFEd-5qPBhYeIVtw" type="1013" source="_2x2iEJOFEd-5qPBhYeIVtw" target="_RZl9EJODEd-5qPBhYeIVtw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_4PryAZOFEd-5qPBhYeIVtw" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_7yep4FapEd-w9f5DG2hQCA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4PryApOFEd-5qPBhYeIVtw" points="[51, -21, -253, 102]$[244, -99, -60, 24]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-c6JQJOFEd-5qPBhYeIVtw" id="(0.5517241379310345,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4sNBYJPyEd-UMN59oR7XbA" id="(0.18282548476454294,0.98)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_5ToQALCJEd-D5aqfqbr7IQ" type="1013" source="_mc4zgLCJEd-D5aqfqbr7IQ" target="_2iiocLCJEd-D5aqfqbr7IQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5ToQAbCJEd-D5aqfqbr7IQ" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_5QfccLCJEd-D5aqfqbr7IQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5To3ELCJEd-D5aqfqbr7IQ" points="[0, -9, -4, 53]$[2, -34, -2, 28]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5XdAELCJEd-D5aqfqbr7IQ" id="(0.5193370165745856,0.05952380952380952)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5XdAEbCJEd-D5aqfqbr7IQ" id="(0.18250950570342206,0.9142857142857143)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_j4FCgLCLEd-D5aqfqbr7IQ" type="1013" source="_QjZFwLCLEd-D5aqfqbr7IQ" target="_2iiocLCJEd-D5aqfqbr7IQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_j4FCgbCLEd-D5aqfqbr7IQ" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_j0vaoLCLEd-D5aqfqbr7IQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_j4FCgrCLEd-D5aqfqbr7IQ" points="[2, -13, 0, 33]$[85, -39, 83, 7]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_j7nesLCLEd-D5aqfqbr7IQ" id="(0.4879518072289157,0.13)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_j7nesbCLEd-D5aqfqbr7IQ" id="(0.7870722433460076,0.8260869565217391)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_EmYZwLFSEd-D5aqfqbr7IQ" type="4002" source="_CREvQLFSEd-D5aqfqbr7IQ" target="_7yGgsLFREd-D5aqfqbr7IQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_EmZn4LFSEd-D5aqfqbr7IQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EmZn4bFSEd-D5aqfqbr7IQ" x="4" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_EmZA0LFSEd-D5aqfqbr7IQ" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="FCM.profile.uml#_ElzyALFSEd-D5aqfqbr7IQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_EmZA0bFSEd-D5aqfqbr7IQ" points="[-2, -13, 3, 51]$[-6, -49, -1, 15]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_EmfHcLFSEd-D5aqfqbr7IQ" id="(0.5206611570247934,0.058823529411764705)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_EmfugLFSEd-D5aqfqbr7IQ" id="(0.49586776859504134,0.8214285714285714)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_IpUqwLFSEd-D5aqfqbr7IQ" type="1013" source="_7yGgsLFREd-D5aqfqbr7IQ" target="_2iiocLCJEd-D5aqfqbr7IQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_IpUqwbFSEd-D5aqfqbr7IQ" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_IpRncLFSEd-D5aqfqbr7IQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IpUqwrFSEd-D5aqfqbr7IQ" points="[-1, -5, 0, 38]$[57, -42, 58, 1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IpaKULFSEd-D5aqfqbr7IQ" id="(0.5289256198347108,0.05952380952380952)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IpaKUbFSEd-D5aqfqbr7IQ" id="(0.4847908745247148,0.9565217391304348)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_s1EvwLc7Ed-kAZ42Z8lTBg" type="1013" source="_9L630Lc6Ed-kAZ42Z8lTBg" target="_6ykokLc_Ed-kAZ42Z8lTBg" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_s1Evwbc7Ed-kAZ42Z8lTBg" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_szqagLc7Ed-kAZ42Z8lTBg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_s1Evwrc7Ed-kAZ42Z8lTBg" points="[0, -1, 0, 31]$[0, -26, 0, 6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_s2UF4Lc7Ed-kAZ42Z8lTBg" id="(0.5027624309392266,0.011764705882352941)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_s2UF4bc7Ed-kAZ42Z8lTBg" id="(0.5027624309392266,0.8913043478260869)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_g3kJwLy-Ed-9GLEvRgvEyg" type="1013" source="_egUlkLy-Ed-9GLEvRgvEyg" target="_2iiocLCJEd-D5aqfqbr7IQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_g3kJwby-Ed-9GLEvRgvEyg" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_Sn9UkMtvEd2H_o0jIC6qDQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_g3kJwry-Ed-9GLEvRgvEyg" points="[27, -50, -100, 182]$[114, -209, -13, 23]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_X8ujYNXxEd-CUqOXH3INsw" id="(0.5294117647058824,0.01)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jJrWULy-Ed-9GLEvRgvEyg" id="(0.9828897338403042,0.9565217391304348)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_HGuMcLy_Ed-9GLEvRgvEyg" type="1022" source="_tSCtcLy-Ed-9GLEvRgvEyg" target="_egUlkLy-Ed-9GLEvRgvEyg" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_HGuMcby_Ed-9GLEvRgvEyg" fontName="Sans Serif" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HGuMcry_Ed-9GLEvRgvEyg" points="[0, 0, 112, 25]$[-96, -35, 16, -10]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HKYkcLy_Ed-9GLEvRgvEyg" id="(0.12534059945504086,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HKYkcby_Ed-9GLEvRgvEyg" id="(0.8709677419354839,0.24)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ZsP1sNXwEd-CUqOXH3INsw" type="1013" source="_mqJloNXnEd-CUqOXH3INsw" target="_1FcKgNXnEd-CUqOXH3INsw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_ZsP1sdXwEd-CUqOXH3INsw" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_ZfRJoNXwEd-CUqOXH3INsw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ZsP1stXwEd-CUqOXH3INsw" points="[2, -3, 0, 40]$[431, -87, 429, -44]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aG7mkNXwEd-CUqOXH3INsw" id="(0.5027624309392266,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aG7mkdXwEd-CUqOXH3INsw" id="(0.23425692695214106,0.96)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_UBBU8JWJEd-xqrYFQVL_qg" type="PapyrusUMLProfileDiagram" name="Ports" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_VSgyAJWJEd-xqrYFQVL_qg" type="1026" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VSgyApWJEd-xqrYFQVL_qg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VSgyA5WJEd-xqrYFQVL_qg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VSgyBJWJEd-xqrYFQVL_qg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VSgyBZWJEd-xqrYFQVL_qg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VSgyBpWJEd-xqrYFQVL_qg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VSgyB5WJEd-xqrYFQVL_qg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VShZEJWJEd-xqrYFQVL_qg" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VShZEZWJEd-xqrYFQVL_qg" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_gQNOoJWJEd-xqrYFQVL_qg" type="3002" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8VyVALmNEeKsCfS4vGDjZw" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8VyVAbmNEeKsCfS4vGDjZw" key="CustomAppearance_MaskValue" value="24"/>
+ </eAnnotations>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_wnrT4KYOEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>multiplicity</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_xdmfIMuHEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gQNOoZWJEd-xqrYFQVL_qg" x="65" y="5"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gQxPUJWJEd-xqrYFQVL_qg" type="3002" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8tsesLmNEeKsCfS4vGDjZw" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8ttFwLmNEeKsCfS4vGDjZw" key="CustomAppearance_MaskValue" value="24"/>
+ </eAnnotations>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_xExfkKYOEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>multiplicity</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_wa_yoMuHEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gQxPUZWJEd-xqrYFQVL_qg" x="65" y="5"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nk5xkOSBEeCPMMwBhvVAnA" type="3002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9LnJwLmNEeKsCfS4vGDjZw" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9Lnw0LmNEeKsCfS4vGDjZw" key="CustomAppearance_MaskValue" value="24"/>
+ </eAnnotations>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_xgEUcKYOEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>multiplicity</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_nkb3gOSBEeCPMMwBhvVAnA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nk6YoOSBEeCPMMwBhvVAnA"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_VShZEpWJEd-xqrYFQVL_qg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_VShZE5WJEd-xqrYFQVL_qg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VShZFJWJEd-xqrYFQVL_qg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VShZFZWJEd-xqrYFQVL_qg" visible="false" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_VShZFpWJEd-xqrYFQVL_qg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_VShZF5WJEd-xqrYFQVL_qg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VShZGJWJEd-xqrYFQVL_qg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4RA7EHI0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4RA7EXI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4RA7EnI0EeOZxcUd14vDog"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_tBRZYMtpEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VSgyAZWJEd-xqrYFQVL_qg" x="420" y="140" width="281" height="106"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_V3iKoJWJEd-xqrYFQVL_qg" type="1026" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V3ixsJWJEd-xqrYFQVL_qg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V3ixsZWJEd-xqrYFQVL_qg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V3ixspWJEd-xqrYFQVL_qg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V3ixs5WJEd-xqrYFQVL_qg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V3ixtJWJEd-xqrYFQVL_qg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V3ixtZWJEd-xqrYFQVL_qg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_V3ixtpWJEd-xqrYFQVL_qg" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_V3ixt5WJEd-xqrYFQVL_qg" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_ZFG54JWJEd-xqrYFQVL_qg" type="3002" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1UsQ0LmNEeKsCfS4vGDjZw" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1Us34LmNEeKsCfS4vGDjZw" key="CustomAppearance_MaskValue" value="24"/>
+ </eAnnotations>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_wNJUAKYOEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>multiplicity</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_AorBUMtrEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZFG54ZWJEd-xqrYFQVL_qg" x="48" y="12"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_esBSECzCEeWf2IvZSSBQwg" type="3002">
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_7gniACzGEeWf2IvZSSBQwg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>type</stringListValue>
+ <stringListValue>derived</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_erj_ECzCEeWf2IvZSSBQwg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_esBSESzCEeWf2IvZSSBQwg"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_V3ixuJWJEd-xqrYFQVL_qg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_V3ixuZWJEd-xqrYFQVL_qg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V3ixupWJEd-xqrYFQVL_qg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_V3ixu5WJEd-xqrYFQVL_qg" visible="false" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_V3ixvJWJEd-xqrYFQVL_qg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_V3ixvZWJEd-xqrYFQVL_qg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V3ixvpWJEd-xqrYFQVL_qg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4RElcHI0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4RElcXI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4RElcnI0EeOZxcUd14vDog"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_pP-ckMtqEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V3iKoZWJEd-xqrYFQVL_qg" x="60" y="140" width="321" height="106"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_iw1YUJWJEd-xqrYFQVL_qg" type="1031" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iw1YUpWJEd-xqrYFQVL_qg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iw1YU5WJEd-xqrYFQVL_qg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iw1_YJWJEd-xqrYFQVL_qg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iw1_YZWJEd-xqrYFQVL_qg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iw1_YpWJEd-xqrYFQVL_qg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iw1_Y5WJEd-xqrYFQVL_qg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iw1_ZJWJEd-xqrYFQVL_qg" type="1084"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4RHowHI0EeOZxcUd14vDog" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4RHowXI0EeOZxcUd14vDog" showTitle="true"/>
+ <element xmi:type="standard:Metaclass" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_SlLeYatKEeGF4uwJob34Mw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4RHownI0EeOZxcUd14vDog"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4RIP0HI0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4RIP0XI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4RIP0nI0EeOZxcUd14vDog"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iw1YUZWJEd-xqrYFQVL_qg" x="60" y="40" width="321"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jWfqIJWJEd-xqrYFQVL_qg" type="1031" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jWfqIpWJEd-xqrYFQVL_qg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jWfqI5WJEd-xqrYFQVL_qg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jWfqJJWJEd-xqrYFQVL_qg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jWfqJZWJEd-xqrYFQVL_qg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jWfqJpWJEd-xqrYFQVL_qg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jWfqJ5WJEd-xqrYFQVL_qg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jWgRMJWJEd-xqrYFQVL_qg" type="1084"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4RKsEHI0EeOZxcUd14vDog" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4RKsEXI0EeOZxcUd14vDog" showTitle="true"/>
+ <element xmi:type="standard:Metaclass" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_Sh6H8KtKEeGF4uwJob34Mw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4RKsEnI0EeOZxcUd14vDog"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4RLTIHI0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4RLTIXI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4RLTInI0EeOZxcUd14vDog"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jWfqIZWJEd-xqrYFQVL_qg" x="420" y="40" width="281"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_KCSSsDyEEeCYGtteoBz6vQ" type="1026" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KCV9EDyEEeCYGtteoBz6vQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KCV9ETyEEeCYGtteoBz6vQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KCV9EjyEEeCYGtteoBz6vQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KCV9EzyEEeCYGtteoBz6vQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KCWkIDyEEeCYGtteoBz6vQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KCWkITyEEeCYGtteoBz6vQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_KCWkIjyEEeCYGtteoBz6vQ" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_KCWkIzyEEeCYGtteoBz6vQ" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_Rh4coOHNEeKl1vaXi7stuw" type="3002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_An4fYOIqEeKl1vaXi7stuw" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_An4fYeIqEeKl1vaXi7stuw" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_yKApUKYOEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>multiplicity</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_RgadAOHNEeKl1vaXi7stuw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Rh4coeHNEeKl1vaXi7stuw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_KCWkJDyEEeCYGtteoBz6vQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_KCWkJTyEEeCYGtteoBz6vQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KCWkJjyEEeCYGtteoBz6vQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_KCWkJzyEEeCYGtteoBz6vQ" visible="false" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_KCWkKDyEEeCYGtteoBz6vQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_KCWkKTyEEeCYGtteoBz6vQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KCWkKjyEEeCYGtteoBz6vQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4RNvYHI0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4RNvYXI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4RNvYnI0EeOZxcUd14vDog"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_KBrOsDyEEeCYGtteoBz6vQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KCSSsTyEEeCYGtteoBz6vQ" x="55" y="280" width="326" height="82"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_hlecEOHNEeKl1vaXi7stuw" type="1002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hlfDIOHNEeKl1vaXi7stuw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hlfqMOHNEeKl1vaXi7stuw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hlfqMeHNEeKl1vaXi7stuw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hlfqMuHNEeKl1vaXi7stuw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hlfqM-HNEeKl1vaXi7stuw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hlgRQOHNEeKl1vaXi7stuw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hlgRQeHNEeKl1vaXi7stuw" type="3"/>
+ <element xmi:type="uml:Comment" href="FCM.profile.uml#_hkxRcOHNEeKl1vaXi7stuw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hlecEeHNEeKl1vaXi7stuw" x="433" y="280" width="307" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WoNMoCzCEeWf2IvZSSBQwg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WoNMoSzCEeWf2IvZSSBQwg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WoNMoyzCEeWf2IvZSSBQwg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WoNMoizCEeWf2IvZSSBQwg" x="260" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WoYy0CzCEeWf2IvZSSBQwg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WoYy0SzCEeWf2IvZSSBQwg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WoZZ4CzCEeWf2IvZSSBQwg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WoYy0izCEeWf2IvZSSBQwg" x="620" y="40"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_UBBU8ZWJEd-xqrYFQVL_qg"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_WlpA0CzCEeWf2IvZSSBQwg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Profile" href="FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_ixb1QJWJEd-xqrYFQVL_qg" type="1013" source="_V3iKoJWJEd-xqrYFQVL_qg" target="_iw1YUJWJEd-xqrYFQVL_qg" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_ixb1QZWJEd-xqrYFQVL_qg" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_y0ITYMtqEd2H_o0jIC6qDQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ixb1QpWJEd-xqrYFQVL_qg" points="[-93, -85, 172, 160]$[-265, -245, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oQip0aYOEeSti6341zpcDg" id="(0.4984423676012461,0.18867924528301888)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oQjQ4KYOEeSti6341zpcDg" id="(0.4560260586319218,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_jXDq0JWJEd-xqrYFQVL_qg" type="1013" source="_VSgyAJWJEd-xqrYFQVL_qg" target="_jWfqIJWJEd-xqrYFQVL_qg" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_jXDq0ZWJEd-xqrYFQVL_qg" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_PlrooMtqEd2H_o0jIC6qDQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_jXDq0pWJEd-xqrYFQVL_qg" points="[-90, -42, 450, 203]$[-540, -245, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oQrMsKYOEeSti6341zpcDg" id="(0.498220640569395,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oQrMsaYOEeSti6341zpcDg" id="(0.498220640569395,0.8)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_OVP8sDyEEeCYGtteoBz6vQ" type="4002" source="_KCSSsDyEEeCYGtteoBz6vQ" target="_V3iKoJWJEd-xqrYFQVL_qg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_OVQjwDyEEeCYGtteoBz6vQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OVQjwTyEEeCYGtteoBz6vQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_OVP8sTyEEeCYGtteoBz6vQ" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="FCM.profile.uml#_OUdSgDyEEeCYGtteoBz6vQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_OVP8sjyEEeCYGtteoBz6vQ" points="[0, -1, -4, 109]$[6, -173, 2, -63]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OVU1MDyEEeCYGtteoBz6vQ" id="(0.495114006514658,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oQip0KYOEeSti6341zpcDg" id="(0.4984423676012461,0.9433962264150944)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_QYCQUOIoEeKl1vaXi7stuw" type="1022" source="_hlecEOHNEeKl1vaXi7stuw" target="_KCSSsDyEEeCYGtteoBz6vQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_QYCQUeIoEeKl1vaXi7stuw" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QYCQUuIoEeKl1vaXi7stuw" points="[-19, 5, 114, 0]$[-90, 1, 43, -4]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QYFToOIoEeKl1vaXi7stuw" id="(0.0,0.3188405797101449)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QYF6sOIoEeKl1vaXi7stuw" id="(1.0,0.2682926829268293)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WoNMpCzCEeWf2IvZSSBQwg" type="StereotypeCommentLink" source="_iw1YUJWJEd-xqrYFQVL_qg" target="_WoNMoCzCEeWf2IvZSSBQwg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_WoNMpSzCEeWf2IvZSSBQwg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WoNzsizCEeWf2IvZSSBQwg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WoNMpizCEeWf2IvZSSBQwg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WoNzsCzCEeWf2IvZSSBQwg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WoNzsSzCEeWf2IvZSSBQwg"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WoZZ4SzCEeWf2IvZSSBQwg" type="StereotypeCommentLink" source="_jWfqIJWJEd-xqrYFQVL_qg" target="_WoYy0CzCEeWf2IvZSSBQwg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_WoZZ4izCEeWf2IvZSSBQwg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WoZZ5izCEeWf2IvZSSBQwg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WoZZ4yzCEeWf2IvZSSBQwg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WoZZ5CzCEeWf2IvZSSBQwg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WoZZ5SzCEeWf2IvZSSBQwg"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_1hRXQObEEd-oHsJhS1620Q" type="PapyrusUMLProfileDiagram" name="Templates" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_3dcwEObEEd-oHsJhS1620Q" type="1026" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3delQObEEd-oHsJhS1620Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3delQebEEd-oHsJhS1620Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3delQubEEd-oHsJhS1620Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3delQ-bEEd-oHsJhS1620Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3delRObEEd-oHsJhS1620Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3delRebEEd-oHsJhS1620Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3dfMUObEEd-oHsJhS1620Q" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3dfMUebEEd-oHsJhS1620Q" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_ASHDsHI1EeOZxcUd14vDog" type="3002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DQhgoISAEeO2oJGF2cvpFw" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DQiHsISAEeO2oJGF2cvpFw" key="CustomAppearance_MaskValue" value="24"/>
+ </eAnnotations>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_2yvH8KYOEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>multiplicity</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_AROS4HI1EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ASHDsXI1EeOZxcUd14vDog"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3dfMUubEEd-oHsJhS1620Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3dfMU-bEEd-oHsJhS1620Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3dfMVObEEd-oHsJhS1620Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3dfMVebEEd-oHsJhS1620Q" visible="false" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3dfMVubEEd-oHsJhS1620Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3dfMV-bEEd-oHsJhS1620Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3dfMWObEEd-oHsJhS1620Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4TtCsHI0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4TtCsXI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4TtCsnI0EeOZxcUd14vDog"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_BOnDoFLpEd6rYflXebIz1g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3dcwEebEEd-oHsJhS1620Q" x="240" y="160" width="221" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8I7AwHI0EeOZxcUd14vDog" type="1026" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8I818HI0EeOZxcUd14vDog" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8I818XI0EeOZxcUd14vDog" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8I818nI0EeOZxcUd14vDog" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8I8183I0EeOZxcUd14vDog" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8I9dAHI0EeOZxcUd14vDog" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8I9dAXI0EeOZxcUd14vDog" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8I9dAnI0EeOZxcUd14vDog" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8I9dA3I0EeOZxcUd14vDog" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8I9dBHI0EeOZxcUd14vDog"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8I9dBXI0EeOZxcUd14vDog"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8I9dBnI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8I9dB3I0EeOZxcUd14vDog"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8I9dCHI0EeOZxcUd14vDog" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8I9dCXI0EeOZxcUd14vDog"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8I9dCnI0EeOZxcUd14vDog"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8I9dC3I0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8I9dDHI0EeOZxcUd14vDog"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8JGm8HI0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8JGm8XI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8JGm8nI0EeOZxcUd14vDog"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_8IkbcHI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8I7AwXI0EeOZxcUd14vDog" x="500" y="160" width="136" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NdO50HI4EeOCrdvV8oxOKA" type="1031" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NdPg4HI4EeOCrdvV8oxOKA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NdPg4XI4EeOCrdvV8oxOKA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NdPg4nI4EeOCrdvV8oxOKA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NdPg43I4EeOCrdvV8oxOKA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NdPg5HI4EeOCrdvV8oxOKA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NdPg5XI4EeOCrdvV8oxOKA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NdPg5nI4EeOCrdvV8oxOKA" type="1084"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Ndk4EHI4EeOCrdvV8oxOKA" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Ndk4EXI4EeOCrdvV8oxOKA" showTitle="true"/>
+ <element xmi:type="standard:Metaclass" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_Sh6H8KtKEeGF4uwJob34Mw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ndk4EnI4EeOCrdvV8oxOKA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_NdlfIHI4EeOCrdvV8oxOKA" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_NdlfIXI4EeOCrdvV8oxOKA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NdlfInI4EeOCrdvV8oxOKA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WqqqwCzCEeWf2IvZSSBQwg" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_WqqqwSzCEeWf2IvZSSBQwg" name="stereotype" stringValue="StandardProfile::Metaclass"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WqqqwizCEeWf2IvZSSBQwg"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NdPg53I4EeOCrdvV8oxOKA" x="500" y="40" width="136" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_MyjSYHJqEeOMF7YEvnQt5g" type="1002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Myj5cHJqEeOMF7YEvnQt5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Myj5cXJqEeOMF7YEvnQt5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Myj5cnJqEeOMF7YEvnQt5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Myj5c3JqEeOMF7YEvnQt5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Myj5dHJqEeOMF7YEvnQt5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Myj5dXJqEeOMF7YEvnQt5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Myj5dnJqEeOMF7YEvnQt5g" type="3"/>
+ <element xmi:type="uml:Comment" href="FCM.profile.uml#_MyfoAHJqEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MyjSYXJqEeOMF7YEvnQt5g" x="657" y="126" width="208" height="82"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_q5ihwIRKEeO2oJGF2cvpFw" type="1026">
+ <children xmi:type="notation:DecorationNode" xmi:id="_q5ihwoRKEeO2oJGF2cvpFw" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_q5ihw4RKEeO2oJGF2cvpFw" type="1071">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_q5jI1YRKEeO2oJGF2cvpFw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q5jI1oRKEeO2oJGF2cvpFw" key="showTitle" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:Shape" xmi:id="_veWwwIRKEeO2oJGF2cvpFw" type="3002">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CPF40ISAEeO2oJGF2cvpFw" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CPGf4ISAEeO2oJGF2cvpFw" key="CustomAppearance_MaskValue" value="24"/>
+ </eAnnotations>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_2Rdm4KYOEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>multiplicity</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_veM_wIRKEeO2oJGF2cvpFw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_veWwwYRKEeO2oJGF2cvpFw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_q5ihxIRKEeO2oJGF2cvpFw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_q5ihxYRKEeO2oJGF2cvpFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_q5ihxoRKEeO2oJGF2cvpFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q5ihx4RKEeO2oJGF2cvpFw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_q5jI0IRKEeO2oJGF2cvpFw" visible="false" type="1019">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_q5k-AIRKEeO2oJGF2cvpFw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q5k-AYRKEeO2oJGF2cvpFw" key="showTitle" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_q5jI0YRKEeO2oJGF2cvpFw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_q5jI0oRKEeO2oJGF2cvpFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_q5jI04RKEeO2oJGF2cvpFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q5jI1IRKEeO2oJGF2cvpFw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_q5Z-4IRKEeO2oJGF2cvpFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q5ihwYRKEeO2oJGF2cvpFw" x="40" y="160" width="161" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_C-uzwISFEeOY0rziOe6V0Q" type="1031">
+ <children xmi:type="notation:DecorationNode" xmi:id="_C-va0ISFEeOY0rziOe6V0Q" type="1084"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wq9lsCzCEeWf2IvZSSBQwg" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_Wq9lsSzCEeWf2IvZSSBQwg" name="stereotype" stringValue="StandardProfile::Metaclass"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Wq9lsizCEeWf2IvZSSBQwg"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_C-va0YSFEeOY0rziOe6V0Q" x="40" y="40" width="161" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9ic70ISFEeOY0rziOe6V0Q" type="1031">
+ <children xmi:type="notation:DecorationNode" xmi:id="_9ic70oSFEeOY0rziOe6V0Q" type="1084"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WrWAMCzCEeWf2IvZSSBQwg" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_WrWAMSzCEeWf2IvZSSBQwg" name="stereotype" stringValue="StandardProfile::Metaclass"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WrWAMizCEeWf2IvZSSBQwg"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Element"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9ic70YSFEeOY0rziOe6V0Q" x="240" y="40" width="221" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WqzNoCzCEeWf2IvZSSBQwg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WqzNoSzCEeWf2IvZSSBQwg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WqzNoyzCEeWf2IvZSSBQwg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WqzNoizCEeWf2IvZSSBQwg" x="700" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WrKaACzCEeWf2IvZSSBQwg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WrKaASzCEeWf2IvZSSBQwg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WrKaAyzCEeWf2IvZSSBQwg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WrKaAizCEeWf2IvZSSBQwg" x="240" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WrlQwCzCEeWf2IvZSSBQwg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WrlQwSzCEeWf2IvZSSBQwg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Wrl30CzCEeWf2IvZSSBQwg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Element"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WrlQwizCEeWf2IvZSSBQwg" x="440" y="40"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_1hRXQebEEd-oHsJhS1620Q"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_WoqfoCzCEeWf2IvZSSBQwg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Profile" href="FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_SdsjAHI4EeOCrdvV8oxOKA" type="1013" source="_8I7AwHI0EeOZxcUd14vDog" target="_NdO50HI4EeOCrdvV8oxOKA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_SdsjAXI4EeOCrdvV8oxOKA" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_SdnDcHI4EeOCrdvV8oxOKA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SdsjAnI4EeOCrdvV8oxOKA" points="[0, -10, 0, 65]$[0, -50, 0, 25]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Sd5XUHI4EeOCrdvV8oxOKA" id="(0.4485294117647059,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__PAwsKYOEeSti6341zpcDg" id="(0.4485294117647059,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_OUiCgHJqEeOMF7YEvnQt5g" type="1022" source="_MyjSYHJqEeOMF7YEvnQt5g" target="_8I7AwHI0EeOZxcUd14vDog" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_OUiCgXJqEeOMF7YEvnQt5g" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_OUiCgnJqEeOMF7YEvnQt5g" points="[29, 21, -58, -43]$[64, 58, -23, -6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OUm7AHJqEeOMF7YEvnQt5g" id="(0.014423076923076924,0.391304347826087)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OUniEHJqEeOMF7YEvnQt5g" id="(1.0,0.32786885245901637)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_KK-_EISFEeOY0rziOe6V0Q" type="1013" source="_q5ihwIRKEeO2oJGF2cvpFw" target="_C-uzwISFEeOY0rziOe6V0Q">
+ <styles xmi:type="notation:FontStyle" xmi:id="_KK-_EYSFEeOY0rziOe6V0Q"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_KKt5UISFEeOY0rziOe6V0Q"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KK-_EoSFEeOY0rziOe6V0Q" points="[-2, -10, 1, 95]$[-2, -80, 1, 25]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KLCpcISFEeOY0rziOe6V0Q" id="(0.4968944099378882,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4aWmAKYOEeSti6341zpcDg" id="(0.4968944099378882,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9ik3oISFEeOY0rziOe6V0Q" type="1013" source="_3dcwEObEEd-oHsJhS1620Q" target="_9ic70ISFEeOY0rziOe6V0Q">
+ <styles xmi:type="notation:FontStyle" xmi:id="_9ik3oYSFEeOY0rziOe6V0Q"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_hC4tkFLpEd6rYflXebIz1g"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9ik3ooSFEeOY0rziOe6V0Q" points="[-53, -30, 277, 160]$[-330, -190, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WqzNpCzCEeWf2IvZSSBQwg" type="StereotypeCommentLink" source="_NdO50HI4EeOCrdvV8oxOKA" target="_WqzNoCzCEeWf2IvZSSBQwg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_WqzNpSzCEeWf2IvZSSBQwg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WqzNqSzCEeWf2IvZSSBQwg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WqzNpizCEeWf2IvZSSBQwg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WqzNpyzCEeWf2IvZSSBQwg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WqzNqCzCEeWf2IvZSSBQwg"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WrKaBCzCEeWf2IvZSSBQwg" type="StereotypeCommentLink" source="_C-uzwISFEeOY0rziOe6V0Q" target="_WrKaACzCEeWf2IvZSSBQwg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_WrKaBSzCEeWf2IvZSSBQwg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WrKaCSzCEeWf2IvZSSBQwg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WrKaBizCEeWf2IvZSSBQwg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WrKaByzCEeWf2IvZSSBQwg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WrKaCCzCEeWf2IvZSSBQwg"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Wrl30SzCEeWf2IvZSSBQwg" type="StereotypeCommentLink" source="_9ic70ISFEeOY0rziOe6V0Q" target="_WrlQwCzCEeWf2IvZSSBQwg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Wrl30izCEeWf2IvZSSBQwg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Wrl31izCEeWf2IvZSSBQwg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Element"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Wrl30yzCEeWf2IvZSSBQwg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Wrl31CzCEeWf2IvZSSBQwg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Wrl31SzCEeWf2IvZSSBQwg"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_w-KvwMniEeCWXsgs0yuyKQ" type="PapyrusUMLProfileDiagram" name="Hardware" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_x935QMniEeCWXsgs0yuyKQ" type="1026" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_x95ucMniEeCWXsgs0yuyKQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_x95uccniEeCWXsgs0yuyKQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_x96VgMniEeCWXsgs0yuyKQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_x96VgcniEeCWXsgs0yuyKQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_x96VgsniEeCWXsgs0yuyKQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_x96Vg8niEeCWXsgs0yuyKQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_x96VhMniEeCWXsgs0yuyKQ" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_x96VhcniEeCWXsgs0yuyKQ" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_Tn8lEEzmEeGSD5wnU7hiAw" type="3002" fontName="Sans Serif" lineColor="0">
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_HiOkEKYPEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="FCM.profile.uml#__5rAUGE_Ed-eArNXja7SuA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Tn8lEUzmEeGSD5wnU7hiAw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Tn9zMEzmEeGSD5wnU7hiAw" type="3002" fontName="Sans Serif" lineColor="0">
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_H6cPwKYPEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>multiplicity</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_C5WBYGGLEd-yH9S4VNNbSQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Tn9zMUzmEeGSD5wnU7hiAw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Tn_oYEzmEeGSD5wnU7hiAw" type="3002" fontName="Sans Serif" lineColor="0">
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_IUOBsKYPEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_BZCjMJOGEd-5qPBhYeIVtw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Tn_oYUzmEeGSD5wnU7hiAw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ToAPcEzmEeGSD5wnU7hiAw" type="3002" fontName="Sans Serif" lineColor="0">
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_IoN7wKYPEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_D-cckJPxEd-UMN59oR7XbA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ToAPcUzmEeGSD5wnU7hiAw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ToAPckzmEeGSD5wnU7hiAw" type="3002" fontName="Sans Serif" lineColor="0">
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_JVX8sKYPEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_HtMmQJPxEd-UMN59oR7XbA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ToAPc0zmEeGSD5wnU7hiAw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8hF2YNTGEeKiLbHSN_MIRQ" type="3002" fontName="Sans Serif" lineColor="0">
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_J0VwoKYPEeSti6341zpcDg" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>multiplicity</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_8g_IsNTGEeKiLbHSN_MIRQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8hF2YdTGEeKiLbHSN_MIRQ"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_x96VhsniEeCWXsgs0yuyKQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_x96Vh8niEeCWXsgs0yuyKQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x96ViMniEeCWXsgs0yuyKQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_x96VicniEeCWXsgs0yuyKQ" visible="false" type="1019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_x968kMniEeCWXsgs0yuyKQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_x968kcniEeCWXsgs0yuyKQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x968ksniEeCWXsgs0yuyKQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4WIEkHI0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4WIEkXI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4WIEknI0EeOZxcUd14vDog"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_0KEH0JOCEd-5qPBhYeIVtw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x935QcniEeCWXsgs0yuyKQ" x="60" y="160" width="261" height="135"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0A7WIMniEeCWXsgs0yuyKQ" type="1031" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0A7WIsniEeCWXsgs0yuyKQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0A79MMniEeCWXsgs0yuyKQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0A79McniEeCWXsgs0yuyKQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0A79MsniEeCWXsgs0yuyKQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0A79M8niEeCWXsgs0yuyKQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0A79NMniEeCWXsgs0yuyKQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0A79NcniEeCWXsgs0yuyKQ" type="1084"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4WLu8HI0EeOZxcUd14vDog" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4WLu8XI0EeOZxcUd14vDog" showTitle="true"/>
+ <element xmi:type="standard:Metaclass" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_SksWMKtKEeGF4uwJob34Mw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4WLu8nI0EeOZxcUd14vDog"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4WLu83I0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4WLu9HI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4WLu9XI0EeOZxcUd14vDog"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Node"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0A7WIcniEeCWXsgs0yuyKQ" x="60" y="40" width="261" height="51"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7VhVgLMkEeKKMNfz1DLnog" type="1026" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7VkY0LMkEeKKMNfz1DLnog" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7VkY0bMkEeKKMNfz1DLnog" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7VkY0rMkEeKKMNfz1DLnog" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7VkY07MkEeKKMNfz1DLnog" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7Vk_4LMkEeKKMNfz1DLnog" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7Vk_4bMkEeKKMNfz1DLnog" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7Vk_4rMkEeKKMNfz1DLnog" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7Vk_47MkEeKKMNfz1DLnog" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7Vk_5LMkEeKKMNfz1DLnog"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7Vk_5bMkEeKKMNfz1DLnog"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7Vk_5rMkEeKKMNfz1DLnog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7Vk_57MkEeKKMNfz1DLnog"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7Vk_6LMkEeKKMNfz1DLnog" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7Vk_6bMkEeKKMNfz1DLnog"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7Vk_6rMkEeKKMNfz1DLnog"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7Vk_67MkEeKKMNfz1DLnog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7Vk_7LMkEeKKMNfz1DLnog"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4WOLMHI0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4WOLMXI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4WOLMnI0EeOZxcUd14vDog"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_361C4FapEd-w9f5DG2hQCA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7VhVgbMkEeKKMNfz1DLnog" x="360" y="160" width="145" height="132"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8588sLMkEeKKMNfz1DLnog" type="1031" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_859jwLMkEeKKMNfz1DLnog" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_859jwbMkEeKKMNfz1DLnog" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_859jwrMkEeKKMNfz1DLnog" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_859jw7MkEeKKMNfz1DLnog" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_85-K0LMkEeKKMNfz1DLnog" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_85-K0bMkEeKKMNfz1DLnog" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_85-K0rMkEeKKMNfz1DLnog" type="1084"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4WQncHI0EeOZxcUd14vDog" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4WQncXI0EeOZxcUd14vDog" showTitle="true"/>
+ <element xmi:type="standard:Metaclass" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_Sh6H8KtKEeGF4uwJob34Mw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4WQncnI0EeOZxcUd14vDog"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4WROgHI0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4WROgXI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4WROgnI0EeOZxcUd14vDog"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wu_KECzCEeWf2IvZSSBQwg" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_Wu_KESzCEeWf2IvZSSBQwg" name="stereotype" stringValue="StandardProfile::Metaclass"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Wu_KEizCEeWf2IvZSSBQwg"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8588sbMkEeKKMNfz1DLnog" x="360" y="40" width="145"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Wu7fsCzCEeWf2IvZSSBQwg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Wu7fsSzCEeWf2IvZSSBQwg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Wu7fsyzCEeWf2IvZSSBQwg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Node"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Wu7fsizCEeWf2IvZSSBQwg" x="260" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WvHs8CzCEeWf2IvZSSBQwg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WvHs8SzCEeWf2IvZSSBQwg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WvHs8yzCEeWf2IvZSSBQwg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WvHs8izCEeWf2IvZSSBQwg" x="560" y="40"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_w-KvwcniEeCWXsgs0yuyKQ"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_Ws7UkCzCEeWf2IvZSSBQwg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Profile" href="FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_0CNvkMniEeCWXsgs0yuyKQ" type="1013" source="_x935QMniEeCWXsgs0yuyKQ" target="_0A7WIMniEeCWXsgs0yuyKQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_0CNvkcniEeCWXsgs0yuyKQ" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_biaAIJODEd-5qPBhYeIVtw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0CNvksniEeCWXsgs0yuyKQ" points="[-27, -50, 134, 253]$[-161, -303, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Df7MQKYPEeSti6341zpcDg" id="(0.5363984674329502,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Df7MQaYPEeSti6341zpcDg" id="(0.5363984674329502,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_-yQiILMkEeKKMNfz1DLnog" type="1013" source="_7VhVgLMkEeKKMNfz1DLnog" target="_8588sLMkEeKKMNfz1DLnog" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_-yQiIbMkEeKKMNfz1DLnog" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_-jKo0FapEd-w9f5DG2hQCA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-yQiIrMkEeKKMNfz1DLnog" points="[0, -66, 0, 105]$[0, -146, 0, 25]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Df260KYPEeSti6341zpcDg" id="(0.496551724137931,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Df260aYPEeSti6341zpcDg" id="(0.496551724137931,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Wu7ftCzCEeWf2IvZSSBQwg" type="StereotypeCommentLink" source="_0A7WIMniEeCWXsgs0yuyKQ" target="_Wu7fsCzCEeWf2IvZSSBQwg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Wu7ftSzCEeWf2IvZSSBQwg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Wu7fuSzCEeWf2IvZSSBQwg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Node"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Wu7ftizCEeWf2IvZSSBQwg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Wu7ftyzCEeWf2IvZSSBQwg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Wu7fuCzCEeWf2IvZSSBQwg"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WvHs9CzCEeWf2IvZSSBQwg" type="StereotypeCommentLink" source="_8588sLMkEeKKMNfz1DLnog" target="_WvHs8CzCEeWf2IvZSSBQwg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_WvHs9SzCEeWf2IvZSSBQwg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WvHs-SzCEeWf2IvZSSBQwg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WvHs9izCEeWf2IvZSSBQwg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WvHs9yzCEeWf2IvZSSBQwg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WvHs-CzCEeWf2IvZSSBQwg"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_hbTVgMnpEeK-j9yGRHQ3Jw" type="PapyrusUMLProfileDiagram" name="Distribution" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_jOZq0MnpEeK-j9yGRHQ3Jw" type="1026" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jOcHEMnpEeK-j9yGRHQ3Jw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jOcHEcnpEeK-j9yGRHQ3Jw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jOcHEsnpEeK-j9yGRHQ3Jw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jOcHE8npEeK-j9yGRHQ3Jw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jOcHFMnpEeK-j9yGRHQ3Jw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jOcHFcnpEeK-j9yGRHQ3Jw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jOcuIMnpEeK-j9yGRHQ3Jw" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jOcuIcnpEeK-j9yGRHQ3Jw" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jOcuIsnpEeK-j9yGRHQ3Jw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jOcuI8npEeK-j9yGRHQ3Jw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jOcuJMnpEeK-j9yGRHQ3Jw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jOcuJcnpEeK-j9yGRHQ3Jw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jOcuJsnpEeK-j9yGRHQ3Jw" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jOcuJ8npEeK-j9yGRHQ3Jw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jOcuKMnpEeK-j9yGRHQ3Jw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jOcuKcnpEeK-j9yGRHQ3Jw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jOcuKsnpEeK-j9yGRHQ3Jw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4ZXl0HI0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4ZXl0XI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4ZXl0nI0EeOZxcUd14vDog"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_maLdwLCJEd-D5aqfqbr7IQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jOZq0cnpEeK-j9yGRHQ3Jw" x="60" y="140" width="141" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nq0y0MnpEeK-j9yGRHQ3Jw" type="1031" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nq0y0snpEeK-j9yGRHQ3Jw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nq1Z4MnpEeK-j9yGRHQ3Jw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nq1Z4cnpEeK-j9yGRHQ3Jw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nq1Z4snpEeK-j9yGRHQ3Jw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nq1Z48npEeK-j9yGRHQ3Jw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nq1Z5MnpEeK-j9yGRHQ3Jw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_nq1Z5cnpEeK-j9yGRHQ3Jw" type="1084"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4ZbQMHI0EeOZxcUd14vDog" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4ZbQMXI0EeOZxcUd14vDog" showTitle="true"/>
+ <element xmi:type="standard:Metaclass" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_Sh6H8KtKEeGF4uwJob34Mw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4ZbQMnI0EeOZxcUd14vDog"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4Zb3QHI0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4Zb3QXI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4Zb3QnI0EeOZxcUd14vDog"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Ww4ngCzCEeWf2IvZSSBQwg" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_Ww4ngSzCEeWf2IvZSSBQwg" name="stereotype" stringValue="StandardProfile::Metaclass"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ww4ngizCEeWf2IvZSSBQwg"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nq1Z5snpEeK-j9yGRHQ3Jw" x="60" y="40" width="461" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_D8tI8NM-EeKflOoYwofqLA" type="1026" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D8twANM-EeKflOoYwofqLA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D8twAdM-EeKflOoYwofqLA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D8twAtM-EeKflOoYwofqLA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D8twA9M-EeKflOoYwofqLA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D8twBNM-EeKflOoYwofqLA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D8uXENM-EeKflOoYwofqLA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_D8uXEdM-EeKflOoYwofqLA" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_D8uXEtM-EeKflOoYwofqLA" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_D8uXE9M-EeKflOoYwofqLA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_D8uXFNM-EeKflOoYwofqLA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_D8uXFdM-EeKflOoYwofqLA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D8uXFtM-EeKflOoYwofqLA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_D8uXF9M-EeKflOoYwofqLA" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_D8uXGNM-EeKflOoYwofqLA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_D8uXGdM-EeKflOoYwofqLA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_D8uXGtM-EeKflOoYwofqLA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D8uXG9M-EeKflOoYwofqLA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4ZdscHI0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4ZdscXI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4ZdscnI0EeOZxcUd14vDog"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_D8dRUNM-EeKflOoYwofqLA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D8tI8dM-EeKflOoYwofqLA" x="380" y="140" width="136" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Md6NoNNBEeKflOoYwofqLA" type="1002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Md60sNNBEeKflOoYwofqLA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Md60sdNBEeKflOoYwofqLA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Md60stNBEeKflOoYwofqLA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Md60s9NBEeKflOoYwofqLA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Md60tNNBEeKflOoYwofqLA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Md60tdNBEeKflOoYwofqLA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Md60ttNBEeKflOoYwofqLA" type="3"/>
+ <element xmi:type="uml:Comment" href="FCM.profile.uml#_MdcTkNNBEeKflOoYwofqLA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Md6NodNBEeKflOoYwofqLA" x="600" y="60" width="241" height="91"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0dEvgNRsEeKiLbHSN_MIRQ" type="1026" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0dFWkNRsEeKiLbHSN_MIRQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0dFWkdRsEeKiLbHSN_MIRQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0dFWktRsEeKiLbHSN_MIRQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0dFWk9RsEeKiLbHSN_MIRQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0dFWlNRsEeKiLbHSN_MIRQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0dFWldRsEeKiLbHSN_MIRQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0dFWltRsEeKiLbHSN_MIRQ" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0dFWl9RsEeKiLbHSN_MIRQ" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0dFWmNRsEeKiLbHSN_MIRQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0dFWmdRsEeKiLbHSN_MIRQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0dFWmtRsEeKiLbHSN_MIRQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0dFWm9RsEeKiLbHSN_MIRQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0dFWnNRsEeKiLbHSN_MIRQ" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0dFWndRsEeKiLbHSN_MIRQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0dFWntRsEeKiLbHSN_MIRQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0dFWn9RsEeKiLbHSN_MIRQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0dFWoNRsEeKiLbHSN_MIRQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4ZgIsHI0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4ZgIsXI0EeOZxcUd14vDog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4ZgIsnI0EeOZxcUd14vDog"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_0c1e8NRsEeKiLbHSN_MIRQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0dEvgdRsEeKiLbHSN_MIRQ" x="220" y="140" width="141" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_JQLLANRtEeKiLbHSN_MIRQ" type="1002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JQLLAtRtEeKiLbHSN_MIRQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JQLLA9RtEeKiLbHSN_MIRQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JQLLBNRtEeKiLbHSN_MIRQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JQLyENRtEeKiLbHSN_MIRQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JQLyEdRtEeKiLbHSN_MIRQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JQLyEtRtEeKiLbHSN_MIRQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JQLyE9RtEeKiLbHSN_MIRQ" type="3"/>
+ <element xmi:type="uml:Comment" href="FCM.profile.uml#_JPyJcNRtEeKiLbHSN_MIRQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JQLLAdRtEeKiLbHSN_MIRQ" x="220" y="240" width="301" height="121"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ikw0sNRtEeKiLbHSN_MIRQ" type="1002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ikw0stRtEeKiLbHSN_MIRQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ikxbwNRtEeKiLbHSN_MIRQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ikxbwdRtEeKiLbHSN_MIRQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ikxbwtRtEeKiLbHSN_MIRQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ikxbw9RtEeKiLbHSN_MIRQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ikxbxNRtEeKiLbHSN_MIRQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ikxbxdRtEeKiLbHSN_MIRQ" type="3"/>
+ <element xmi:type="uml:Comment" href="FCM.profile.uml#_ikpf8NRtEeKiLbHSN_MIRQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ikw0sdRtEeKiLbHSN_MIRQ" x="600" y="200" width="241"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WxIfICzCEeWf2IvZSSBQwg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WxIfISzCEeWf2IvZSSBQwg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WxIfIyzCEeWf2IvZSSBQwg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WxIfIizCEeWf2IvZSSBQwg" x="260" y="40"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_hbTVgcnpEeK-j9yGRHQ3Jw"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_WvT6MCzCEeWf2IvZSSBQwg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Profile" href="FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_k9rQEMnpEeK-j9yGRHQ3Jw" type="1013" source="_jOZq0MnpEeK-j9yGRHQ3Jw" target="_nq0y0MnpEeK-j9yGRHQ3Jw" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_k9rQEcnpEeK-j9yGRHQ3Jw" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_5QfccLCJEd-D5aqfqbr7IQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_k9rQEsnpEeK-j9yGRHQ3Jw" points="[-61, -50, 301, 247]$[-362, -297, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UX40oaYfEeSti6341zpcDg" id="(0.47794117647058826,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rHUH0MnpEeK-j9yGRHQ3Jw" id="(0.13859275053304904,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_I02joNM-EeKflOoYwofqLA" type="1013" source="_D8tI8NM-EeKflOoYwofqLA" target="_nq0y0MnpEeK-j9yGRHQ3Jw" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_I02jodM-EeKflOoYwofqLA" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_I0syoNM-EeKflOoYwofqLA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_I02jotM-EeKflOoYwofqLA" points="[-4, -4, 85, 104]$[-71, -98, 18, 10]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_I09RUNM-EeKflOoYwofqLA" id="(0.5661764705882353,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_I09RUdM-EeKflOoYwofqLA" id="(0.8464818763326226,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Fu3AYNRtEeKiLbHSN_MIRQ" type="1013" source="_0dEvgNRsEeKiLbHSN_MIRQ" target="_nq0y0MnpEeK-j9yGRHQ3Jw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Fu3AYdRtEeKiLbHSN_MIRQ" fontName="Sans Serif"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_FutPYNRtEeKiLbHSN_MIRQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Fu3AYtRtEeKiLbHSN_MIRQ" points="[-3, -8, 4, 74]$[-3, -57, 4, 25]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Fu6qwNRtEeKiLbHSN_MIRQ" id="(0.5441176470588235,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UX40oKYfEeSti6341zpcDg" id="(0.4989339019189765,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8VyiwNRtEeKiLbHSN_MIRQ" type="1022" source="_JQLLANRtEeKiLbHSN_MIRQ" target="_0dEvgNRsEeKiLbHSN_MIRQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_8VyiwdRtEeKiLbHSN_MIRQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8VyiwtRtEeKiLbHSN_MIRQ" points="[-6, -12, 23, 48]$[-3, -49, 26, 11]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8V0_ANRtEeKiLbHSN_MIRQ" id="(0.3944636678200692,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8V0_AdRtEeKiLbHSN_MIRQ" id="(0.8085106382978723,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9CWGwNRtEeKiLbHSN_MIRQ" type="1022" source="_ikw0sNRtEeKiLbHSN_MIRQ" target="_D8tI8NM-EeKflOoYwofqLA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_9CWGwdRtEeKiLbHSN_MIRQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9CWGwtRtEeKiLbHSN_MIRQ" points="[-95, -42, 77, 34]$[-157, -76, 15, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ViowgKYfEeSti6341zpcDg" id="(0.0,0.09444444444444444)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9CYjANRtEeKiLbHSN_MIRQ" id="(1.0,0.6986301369863014)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WxIfJCzCEeWf2IvZSSBQwg" type="StereotypeCommentLink" source="_nq0y0MnpEeK-j9yGRHQ3Jw" target="_WxIfICzCEeWf2IvZSSBQwg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_WxIfJSzCEeWf2IvZSSBQwg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WxJGMizCEeWf2IvZSSBQwg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WxIfJizCEeWf2IvZSSBQwg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WxJGMCzCEeWf2IvZSSBQwg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WxJGMSzCEeWf2IvZSSBQwg"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/model/FCM.profile.uml b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/model/FCM.profile.uml
new file mode 100644
index 00000000000..1e2517210f2
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/model/FCM.profile.uml
@@ -0,0 +1,679 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/5" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
+ <uml:Profile xmi:id="_5mvT0MtjEd2H_o0jIC6qDQ" name="FCM" metaclassReference="_NYUA4MtkEd2H_o0jIC6qDQ _pb8DsMtkEd2H_o0jIC6qDQ _WPBJkMtpEd2H_o0jIC6qDQ _WSSgAMtpEd2H_o0jIC6qDQ _4Sf2AMtpEd2H_o0jIC6qDQ _IDbl4MtvEd2H_o0jIC6qDQ _ofc4YMuHEd2H_o0jIC6qDQ _asQCAC5SEd6q9cO948d5Fw _5OunYGV9Ed6b6erIXzmEEA _nKCJAGu2Ed647PfocwT3eg _wo2GgMewEd6zpahAtGCOkA _9HS28MnvEd6fKfvcq7rbxA _Y3dP0DdMEd-Qn7_dAqT11Q _Zc-ksJODEd-5qPBhYeIVtw _wTDjYKvTEd-i17GN-GaZ6g _kK724LTaEd-jOpA9YHRXqw _03w64NXnEd-CUqOXH3INsw _eAlkcCm_EeKgOdm6HirHfA _4r98wIR_EeO2oJGF2cvpFw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_D0js0O69Ed2rSKyRUaSRjw">
+ <body>The associations between PortKind and Operation simply denote the fact that we want to target something that encapsulates the definition of interface mapping rules (i.e. the rules that determine the interfaces that are provided/required on a port &#xD;
+of a particular PortKind). Further experiments are still needed to confirm that the Operation metaclass is the right metaclass to encapsulate this definition.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_dxcGcDTvEd-aL8GNXYXa-Q" annotatedElement="_BOnDoFLpEd6rYflXebIz1g">
+ <body>The template parameters list defines the parameters that are passed to the Acceleo template. If empty, the formal parameter list of the package template is used.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_2Lq5wDR4Ed-aL8GNXYXa-Q">
+ <body>LateEvaluation is more a tempalte binding rather than a template definition. In</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_tP3jMLy-Ed-9GLEvRgvEyg" annotatedElement="_L8b3wMtvEd2H_o0jIC6qDQ">
+ <body>This stereotype indicuates that the attribute does not only store values but needs to be configured initially be the user. It corresponds to the automatic creation of an entry (slot+nstance specification) in the deployment plan </body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_0h1qEMGiEd-BXcifqN3Y_A" annotatedElement="_aQTf0FSdEd-w9f5DG2hQCA">
+ <body>A group of interaction components should apply both stereotypes. Each member of such a group must be an interaction component, but this is not enforced by the meta-model</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_jJohACNgEeKGuM7MKNu-KA" annotatedElement="_DaA8UCNaEeKGuM7MKNu-KA">
+ <body>A rule that is applied to a package applies automatically to all elements that are contained within</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_MdcTkNNBEeKflOoYwofqLA">
+ <body>Assembly and FlatComposite are components whose parts are allocated to different nodes.
+Both may not have a behavior</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_JPyJcNRtEeKiLbHSN_MIRQ" annotatedElement="_0c1e8NRsEeKiLbHSN_MIRQ">
+ <body>An assembly is a collection of (interconnected) parts. During distribution, a variant of the assembly is created for each node, that contains only a subset of the parts. This requires that
+(1) no inheritance
+(2) all instances of the assembly on a node must be split in an identical way
+The system component is also an assembly</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_ikpf8NRtEeKiLbHSN_MIRQ" annotatedElement="_D8dRUNM-EeKflOoYwofqLA">
+ <body>A composite that will get flattened during distribution. This means that it vanishes and its parts are added to the composite in which the flat composite is defined. A flat composite may not have assembly connections. It is primarily used by interaction components</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_EOljoNRxEeKiLbHSN_MIRQ" annotatedElement="_HjF2wNRwEeKiLbHSN_MIRQ __QLv8NRwEeKiLbHSN_MIRQ">
+ <body>We assume that a model library defines a set of supported programming languages as well as a set of provided component to mappings. We do not use a fixed enumeration defined in the profile to assure extensibility</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_0NGpINTVEeKiLbHSN_MIRQ" annotatedElement="_C-GooNRwEeKiLbHSN_MIRQ">
+ <body>This information on a package tells the code generators which programming language and which component-to-OO mapping should be used</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Zq7VgNTWEeKiLbHSN_MIRQ" annotatedElement="_Z1W68MtlEd2H_o0jIC6qDQ">
+ <body>An interaction component is responsible for realization the communication between two components. It typically owns conjugated ports. It might be defined within a package template to enable the adaption of ports to those used by the interacting components</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_2VgqoNTWEeKiLbHSN_MIRQ" annotatedElement="_zjaC8MtkEd2H_o0jIC6qDQ">
+ <body>Indicate that this component is instantiated only once within the system. It also implies that this component is automatically instantiated by a generated bootloader</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_8Ize8NTWEeKiLbHSN_MIRQ" annotatedElement="_JWD9UMttEd2H_o0jIC6qDQ">
+ <body>This stereotype references the interaction component that should realize the communication. It can be applied to UML connectors as well as to properties. The former is used, if there are two communication partners, the latter is more flexible. For instance, in case of a DDS interaction, a publisher does not know the consumers, it therefore communicates with a part (property) representing the publisher part of the interaction component</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_UMWd4NTfEeKiLbHSN_MIRQ" annotatedElement="_beqmAEZ0EeCLCJBkU67iDQ">
+ <body>Use a dedicated component that that is responsible for configuring component instances. The concept is primarily intented for container extensions. For instance, a container extension might provide reflection data about a component. In this case, the instance configuration would create the value specifications using data available in the model</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_FPnjYNTgEeKiLbHSN_MIRQ" annotatedElement="_te7YAMtkEd2H_o0jIC6qDQ">
+ <body>Apply a set of container rules. It can be applied to a single class or to a package, implying that all components within the package apply the specified rule.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Wh6KkNTgEeKiLbHSN_MIRQ" annotatedElement="_5SI38AAhEd-0dMgailnZgA">
+ <body>A container rule, i.e. a specification of extension or interception within a container. Beside the two options, a container rule is basically a composite class whose parts are added to the container.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_hkxRcOHNEeKl1vaXi7stuw" annotatedElement="_KBrOsDyEEeCYGtteoBz6vQ">
+ <body>Template ports are ports that enable the binding of an extended port with an actual parameter: the resulting port kind is the port kind bound to the current port type.
+For instance, we cound type a port with &quot;MyType&quot; and use an extended port Writer with a template with formal parameter T. Resulting port would be Writer with T bound to MyType.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_MyfoAHJqEeOMF7YEvnQt5g" annotatedElement="_8IkbcHI0EeOZxcUd14vDog">
+ <body>A binding helper is responsible for creating sub-elements. For instance, if the formal parameter of a template is an interface, it might be required to instantiate an operation for each operation of the interface.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_a96PEIInEeOCe7O91ElfCA" annotatedElement="_-ZqycAAhEd-0dMgailnZgA">
+ <body>Condition whether an interceptor should be used within a container.
+- &quot;Some&quot; = set of ports defined in interception rule
+- &quot;AllOut/AllIn&quot; = ports with required/provided ports only
+- &quot;Matching&quot; = kind of interceptor and component port need to match
+</body>
+ </ownedComment>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_NYUA4MtkEd2H_o0jIC6qDQ" alias="Package">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_pb8DsMtkEd2H_o0jIC6qDQ" alias="Class">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_WPBJkMtpEd2H_o0jIC6qDQ" alias="Port">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_WSSgAMtpEd2H_o0jIC6qDQ" alias="Connector">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_4Sf2AMtpEd2H_o0jIC6qDQ" alias="Operation">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_IDbl4MtvEd2H_o0jIC6qDQ" alias="Property">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_ofc4YMuHEd2H_o0jIC6qDQ" alias="Interface">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Interface"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_asQCAC5SEd6q9cO948d5Fw" alias="InstanceSpecification">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#InstanceSpecification"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_5OunYGV9Ed6b6erIXzmEEA" alias="Element">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Element"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_nKCJAGu2Ed647PfocwT3eg" alias="Generalization">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Generalization"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_wo2GgMewEd6zpahAtGCOkA" alias="Collaboration">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Collaboration"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_9HS28MnvEd6fKfvcq7rbxA" alias="PrimitiveType">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#PrimitiveType"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_Y3dP0DdMEd-Qn7_dAqT11Q" alias="TemplateSignature">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#TemplateSignature"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_Zc-ksJODEd-5qPBhYeIVtw" alias="Node">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Node"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_wTDjYKvTEd-i17GN-GaZ6g" alias="Comment">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Comment"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_kK724LTaEd-jOpA9YHRXqw" alias="Abstraction">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Abstraction"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_03w64NXnEd-CUqOXH3INsw" alias="Slot">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Slot"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_eAlkcCm_EeKgOdm6HirHfA" alias="Feature">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Feature"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_4r98wIR_EeO2oJGF2cvpFw" alias="Type">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Type"/>
+ </elementImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_5mvT0ctjEd2H_o0jIC6qDQ">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_te7YAMtkEd2H_o0jIC6qDQ" name="RuleApplication">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_8Rw6MctkEd2H_o0jIC6qDQ" name="base_Class" isUnique="false" association="_8QuYYMtkEd2H_o0jIC6qDQ">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Rbw4gBufEeOHaItjCC-qsA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Rb3mMBufEeOHaItjCC-qsA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_r2VLUJD2Ed-I9dVdNhZAGQ" name="containerRule" visibility="public" type="_5SI38AAhEd-0dMgailnZgA" isUnique="false">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zTT6QJD2Ed-I9dVdNhZAGQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zTVIYJD2Ed-I9dVdNhZAGQ" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_DZQuYCNaEeKGuM7MKNu-KA" name="base_Package" association="_DaA8UCNaEeKGuM7MKNu-KA">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Sk0yUBufEeOHaItjCC-qsA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Sk7gABufEeOHaItjCC-qsA" value="1"/>
+ </ownedAttribute>
+ <icon xmi:type="uml:Image" xmi:id="_UvJO8PupEd6Ur5Lh7TH4tA" content="71%73%70%56%57%97%16%0%16%0%-29%12%0%20%30%100%29%39%109%39%49%119%40%50%120%49%59%-127%60%70%-116%80%90%-101%80%90%-100%120%-126%-70%120%-126%-69%-106%-96%-46%-76%-76%-76%-1%-1%-1%-1%-1%-1%-1%-1%-1%-1%-1%-1%33%-7%4%1%10%0%15%0%44%0%0%0%0%16%0%16%0%0%4%50%-16%-55%73%-21%92%56%107%76%-105%-19%-109%33%126%-110%39%25%-117%-15%108%-100%-7%-120%-22%5%-54%115%25%-114%-76%125%-90%-11%122%-57%-70%-96%-81%-25%26%-110%-118%69%11%-110%36%100%-79%-104%-52%8%0%59%">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VsSzsPupEd6Ur5Lh7TH4tA" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VsV3APupEd6Ur5Lh7TH4tA" key="image_kind_key" value="icon"/>
+ </eAnnotations>
+ </icon>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_zjaC8MtkEd2H_o0jIC6qDQ" name="Singleton">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Bo7rsEzvEeG_JK8KIEXPxQ" name="base_Class" association="_Bo7rsUzvEeG_JK8KIEXPxQ">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ <icon xmi:type="uml:Image" xmi:id="_lAeIYPupEd6Ur5Lh7TH4tA" content="71%73%70%56%57%97%16%0%16%0%-29%12%0%20%30%100%29%39%109%39%49%119%40%50%120%49%59%-127%60%70%-116%80%90%-101%80%90%-100%120%-126%-70%120%-126%-69%-106%-96%-46%-76%-76%-76%-1%-1%-1%-1%-1%-1%-1%-1%-1%-1%-1%-1%33%-7%4%1%10%0%15%0%44%0%0%0%0%16%0%16%0%0%4%52%-16%-55%73%-21%92%56%107%76%-105%-19%-109%33%126%-110%39%25%-117%113%113%101%56%94%32%28%-73%-25%75%-33%-88%42%-29%-10%99%-34%-66%-54%47%-72%-13%-79%-120%64%-53%112%-88%-20%108%-98%-92%-24%35%2%0%59%" format="" location="">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_l07EIPupEd6Ur5Lh7TH4tA" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_l08SQPupEd6Ur5Lh7TH4tA" key="image_kind_key" value="icon"/>
+ </eAnnotations>
+ </icon>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_8QuYYMtkEd2H_o0jIC6qDQ" name="E_RuleApplication_Class2" memberEnd="_8Rw6MMtkEd2H_o0jIC6qDQ _8Rw6MctkEd2H_o0jIC6qDQ">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_8Rw6MMtkEd2H_o0jIC6qDQ" name="extension_RuleApplication" type="_te7YAMtkEd2H_o0jIC6qDQ" aggregation="composite" association="_8QuYYMtkEd2H_o0jIC6qDQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_Z1W68MtlEd2H_o0jIC6qDQ" name="InteractionComponent">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_X4RqMFaaEd-w9f5DG2hQCA" name="forDistribution" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_afN3QFaaEd-w9f5DG2hQCA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_agsd8FaaEd-w9f5DG2hQCA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="MultiplicityElement-isOrdered-_defaultValue"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_zhkAEMewEd6zpahAtGCOkA" name="connectionPattern" isUnique="false">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Collaboration"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zh5XQMewEd6zpahAtGCOkA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zh6lYMewEd6zpahAtGCOkA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_f-DFcEzuEeG_JK8KIEXPxQ" name="base_Class" association="_f-DsgEzuEeG_JK8KIEXPxQ">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_tBRZYMtpEd2H_o0jIC6qDQ" name="PortKind">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_PnUnYctqEd2H_o0jIC6qDQ" name="base_Class" isUnique="false" association="_PlrooMtqEd2H_o0jIC6qDQ">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_wa_yoMuHEd2H_o0jIC6qDQ" name="providedInterface" isUnique="false">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Interface"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wbI8kMuHEd2H_o0jIC6qDQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wbI8kcuHEd2H_o0jIC6qDQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xdmfIMuHEd2H_o0jIC6qDQ" name="requiredInterface" isUnique="false">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Interface"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xdwQIMuHEd2H_o0jIC6qDQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xdwQIcuHEd2H_o0jIC6qDQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_nkb3gOSBEeCPMMwBhvVAnA" name="extendedPort" visibility="public" isReadOnly="true" isDerived="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_pHFWAOSBEeCPMMwBhvVAnA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_pHLcoOSBEeCPMMwBhvVAnA" value="1"/>
+ </ownedAttribute>
+ <icon xmi:type="uml:Image" xmi:id="_cCkwQDrYEeGmX53MUlt37g">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dgh8ADrYEeGmX53MUlt37g" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dgijEDrYEeGmX53MUlt37g" key="image_kind_key" value="icon"/>
+ </eAnnotations>
+ </icon>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_PlrooMtqEd2H_o0jIC6qDQ" name="Extension_FCM_PortKind" memberEnd="_PnUnYMtqEd2H_o0jIC6qDQ _PnUnYctqEd2H_o0jIC6qDQ">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_PnUnYMtqEd2H_o0jIC6qDQ" name="extension_FCM_PortKind" type="_tBRZYMtpEd2H_o0jIC6qDQ" aggregation="composite" association="_PlrooMtqEd2H_o0jIC6qDQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_pP-ckMtqEd2H_o0jIC6qDQ" name="Port">
+ <generalization xmi:type="uml:Generalization" xmi:id="_GAtDsMtwEd2H_o0jIC6qDQ" general="_d1T90MtvEd2H_o0jIC6qDQ"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_y3Zp0MtqEd2H_o0jIC6qDQ" name="base_Port" isUnique="false" association="_y0ITYMtqEd2H_o0jIC6qDQ">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_AorBUMtrEd2H_o0jIC6qDQ" name="kind" type="_tBRZYMtpEd2H_o0jIC6qDQ" isUnique="false">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_G1nvUFRxEd6ckL6AwjSdEg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_G1udAFRxEd6ckL6AwjSdEg" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_erj_ECzCEeWf2IvZSSBQwg" name="type" visibility="public">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Type"/>
+ </ownedAttribute>
+ <icon xmi:type="uml:Image" xmi:id="_YSnssDrYEeGmX53MUlt37g">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aOu0EDrYEeGmX53MUlt37g" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aOvbIDrYEeGmX53MUlt37g" key="image_kind_key" value="icon"/>
+ </eAnnotations>
+ </icon>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_y0ITYMtqEd2H_o0jIC6qDQ" name="Extension_FCM_Port" memberEnd="_y3Qf4MtqEd2H_o0jIC6qDQ _y3Zp0MtqEd2H_o0jIC6qDQ">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_y3Qf4MtqEd2H_o0jIC6qDQ" name="extension_FCM_Port" type="_pP-ckMtqEd2H_o0jIC6qDQ" aggregation="composite" association="_y0ITYMtqEd2H_o0jIC6qDQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nURSAFD6Ed66Asc5WgWosA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-VQmYEzsEeG_JK8KIEXPxQ" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_JWD9UMttEd2H_o0jIC6qDQ" name="Connector">
+ <generalization xmi:type="uml:Generalization" xmi:id="_EfZpAMtwEd2H_o0jIC6qDQ" general="_d1T90MtvEd2H_o0jIC6qDQ"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_jHWxIcttEd2H_o0jIC6qDQ" name="base_Connector" isUnique="false" association="_jDoHsMttEd2H_o0jIC6qDQ">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HobWMBufEeOHaItjCC-qsA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HolHMBufEeOHaItjCC-qsA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_lznjEMttEd2H_o0jIC6qDQ" name="ic" visibility="public" type="_Z1W68MtlEd2H_o0jIC6qDQ" isUnique="false">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9HGQoMttEd2H_o0jIC6qDQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9HQBoMttEd2H_o0jIC6qDQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_GEXGkMtuEd2H_o0jIC6qDQ" name="base_Property" isUnique="false" association="_F_vFQMtuEd2H_o0jIC6qDQ">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IuwFEBufEeOHaItjCC-qsA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Iu5PABufEeOHaItjCC-qsA" value="1"/>
+ </ownedAttribute>
+ <icon xmi:type="uml:Image" xmi:id="_TLgoYFyXEeGSFubOzJOnSg" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%20%0%0%0%12%8%0%0%0%0%71%103%-62%39%0%0%0%-85%73%68%65%84%8%-103%99%-8%15%4%91%61%94%-2%7%-125%57%-119%111%64%20%3%16%111%22%-13%-4%0%17%-36%40%28%-4%22%34%-72%85%-36%-27%49%68%-20%-1%-17%-123%66%-95%-17%64%-126%59%-60%44%54%-99%-127%-127%19%53%66%-31%-17%-2%51%-20%18%-77%-97%33%38%0%7%54%-45%4%35%-34%51%-56%40%63%124%-65%103%39%28%-100%-5%-35%-57%84%-49%16%-64%-65%-14%108%-80%47%28%84%62%13%18%-34%-64%-16%-50%91%-96%-36%-41%11%14%-94%-4%-124%22%3%45%122%-25%37%-72%-26%47%-44%-10%-1%-81%-62%4%23%-126%-99%-12%-42%67%112%29%84%-12%77%-104%-64%66%-88%-29%-33%-70%75%60%-123%8%-74%9%-52%-121%-7%-24%-1%-5%13%-33%33%-126%-41%15%-128%41%0%-105%3%-94%-119%-59%-55%85%100%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TLgoYVyXEeGSFubOzJOnSg" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TLgoYlyXEeGSFubOzJOnSg" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TLgoY1yXEeGSFubOzJOnSg" key="image_name_key" value="conn"/>
+ </eAnnotations>
+ </icon>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_jDoHsMttEd2H_o0jIC6qDQ" name="Extension_FCM_Connector" memberEnd="_jHWxIMttEd2H_o0jIC6qDQ _jHWxIcttEd2H_o0jIC6qDQ">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_jHWxIMttEd2H_o0jIC6qDQ" name="extension_FCM_Connector" type="_JWD9UMttEd2H_o0jIC6qDQ" aggregation="composite" association="_jDoHsMttEd2H_o0jIC6qDQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_F_vFQMtuEd2H_o0jIC6qDQ" name="Extension_FCM_Connector" memberEnd="_GENVkMtuEd2H_o0jIC6qDQ _GEXGkMtuEd2H_o0jIC6qDQ">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_GENVkMtuEd2H_o0jIC6qDQ" name="extension_FCM_Connector" type="_JWD9UMttEd2H_o0jIC6qDQ" aggregation="composite" association="_F_vFQMtuEd2H_o0jIC6qDQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_L8b3wMtvEd2H_o0jIC6qDQ" name="ConfigurationProperty">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_SrYcAMtvEd2H_o0jIC6qDQ" name="base_Property" isUnique="false" association="_Sn9UkMtvEd2H_o0jIC6qDQ">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_Sn9UkMtvEd2H_o0jIC6qDQ" name="Extension_ConfigurationProperty" memberEnd="_SrOrAMtvEd2H_o0jIC6qDQ _SrYcAMtvEd2H_o0jIC6qDQ">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_SrOrAMtvEd2H_o0jIC6qDQ" name="extension_ConfigurationProperty" type="_L8b3wMtvEd2H_o0jIC6qDQ" aggregation="composite" association="_Sn9UkMtvEd2H_o0jIC6qDQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_d1T90MtvEd2H_o0jIC6qDQ" name="ConfigurableElementInstance" isAbstract="true">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_lARBIOLzEd2hC_i8ZB1Yiw" name="configuration" isUnique="false">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#InstanceSpecification"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_paWm0OLzEd2hC_i8ZB1Yiw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_paWm0eLzEd2hC_i8ZB1Yiw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_5XyRUFLoEd6rYflXebIz1g" name="DeploymentPlan">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_E2MOUFLpEd6rYflXebIz1g" name="mainInstance" isUnique="false">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#InstanceSpecification"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_ecD1QFLpEd6rYflXebIz1g" name="base_Package" isUnique="false" association="_eamcsFLpEd6rYflXebIz1g">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_BOnDoFLpEd6rYflXebIz1g" name="Template">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_hEi6cFLpEd6rYflXebIz1g" name="base_Element" isUnique="false" association="_hC4tkFLpEd6rYflXebIz1g">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Element"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_AROS4HI1EeOZxcUd14vDog" name="helper" type="_8IkbcHI0EeOZxcUd14vDog">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IRor8HJqEeOMF7YEvnQt5g"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IRpTAHJqEeOMF7YEvnQt5g" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_eamcsFLpEd6rYflXebIz1g" name="Extension_DeploymentPlan" memberEnd="_ecAK4FLpEd6rYflXebIz1g _ecD1QFLpEd6rYflXebIz1g">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_ecAK4FLpEd6rYflXebIz1g" name="extension_DeploymentPlan" type="_5XyRUFLoEd6rYflXebIz1g" aggregation="composite" association="_eamcsFLpEd6rYflXebIz1g"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_hC4tkFLpEd6rYflXebIz1g" name="E_Template_Element" memberEnd="_hEf3IFLpEd6rYflXebIz1g _hEi6cFLpEd6rYflXebIz1g">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_hEf3IFLpEd6rYflXebIz1g" name="extension_Operation" type="_BOnDoFLpEd6rYflXebIz1g" aggregation="composite" association="_hC4tkFLpEd6rYflXebIz1g"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_6B80EGV9Ed6b6erIXzmEEA" name="DerivedElement">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_iIYhcGV-Ed6b6erIXzmEEA" name="base_Element" isUnique="false" association="_iAkpQGV-Ed6b6erIXzmEEA">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Element"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_km8OkGV-Ed6b6erIXzmEEA" name="source" visibility="public" isUnique="false">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Element"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_urcZYGV-Ed6b6erIXzmEEA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_urgDwGV-Ed6b6erIXzmEEA" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_iAkpQGV-Ed6b6erIXzmEEA" name="Extension_DerivedElement" memberEnd="_iIRMsGV-Ed6b6erIXzmEEA _iIYhcGV-Ed6b6erIXzmEEA">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_iIRMsGV-Ed6b6erIXzmEEA" name="extension_DerivedElement" type="_6B80EGV9Ed6b6erIXzmEEA" aggregation="composite" association="_iAkpQGV-Ed6b6erIXzmEEA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_2p6j0MnvEd6fKfvcq7rbxA" name="CompImplTemplate">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_BHXU4MrGEd6fKfvcq7rbxA" name="templateDefs" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BHXU4srGEd6fKfvcq7rbxA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BHXU4crGEd6fKfvcq7rbxA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_JA8kYM30Ed6fKfvcq7rbxA" name="base_Class" isUnique="false" association="_I4YeQM30Ed6fKfvcq7rbxA">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_I4YeQM30Ed6fKfvcq7rbxA" name="Extension_CompImplTemplate" memberEnd="_JA46AM30Ed6fKfvcq7rbxA _JA8kYM30Ed6fKfvcq7rbxA">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_JA46AM30Ed6fKfvcq7rbxA" name="extension_CompImplTemplate" type="_2p6j0MnvEd6fKfvcq7rbxA" aggregation="composite" association="_I4YeQM30Ed6fKfvcq7rbxA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_5SI38AAhEd-0dMgailnZgA" name="ContainerRule">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_s9dIUAAjEd-0dMgailnZgA" name="base_Class" isUnique="false" association="_s6giAAAjEd-0dMgailnZgA">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_fqiIwHPqEd-XO5WB9B_TDA" name="forConfig" type="_JSKpIHiLEd-iNcV8QPhhiQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__IhDgHPzEd-J3uX_5f8M-A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__IqNcHPzEd-J3uX_5f8M-A" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_BvGEwCm_EeKgOdm6HirHfA" name="kind" visibility="public" type="_FFvQcCm_EeKgOdm6HirHfA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_EJkjICm_EeKgOdm6HirHfA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_EJnmcCm_EeKgOdm6HirHfA" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_-ZqycAAhEd-0dMgailnZgA" name="InterceptionKind">
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="__5IaEAAhEd-0dMgailnZgA" name="InterceptSome"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_ABWh8AAiEd-0dMgailnZgA" name="InterceptAll"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_uah8gJDtEd-I9dVdNhZAGQ" name="InterceptAllOut"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_w6U_wJDtEd-I9dVdNhZAGQ" name="InterceptAllIn"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_VtMjYIInEeOCe7O91ElfCA" name="InterceptMatching"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_s6giAAAjEd-0dMgailnZgA" name="E_ContainerRule_Class0" memberEnd="_s9YP0AAjEd-0dMgailnZgA _s9dIUAAjEd-0dMgailnZgA">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_s9YP0AAjEd-0dMgailnZgA" name="extension_ContainerRule" type="_5SI38AAhEd-0dMgailnZgA" aggregation="composite" association="_s6giAAAjEd-0dMgailnZgA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_aQTf0FSdEd-w9f5DG2hQCA" name="ImplementationGroup">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_5OkHcEzuEeG_JK8KIEXPxQ" name="base_Class" association="_5OkugEzuEeG_JK8KIEXPxQ">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_ZF8ZYFapEd-w9f5DG2hQCA" name="ImplementationProperties">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_b5KH4FapEd-w9f5DG2hQCA" name="sizeRAM" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_jmeY4FapEd-w9f5DG2hQCA" name="supportedOS" type="_1rKtYFapEd-w9f5DG2hQCA" isUnique="false">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_UskI4FaqEd-w9f5DG2hQCA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_UswWIFaqEd-w9f5DG2hQCA" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_o1UcUFapEd-w9f5DG2hQCA" name="arch" visibility="public" type="_361C4FapEd-w9f5DG2hQCA" isUnique="false">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVslcFaqEd-w9f5DG2hQCA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VV4LoFaqEd-w9f5DG2hQCA" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_40nNwFatEd-w9f5DG2hQCA" name="base_Class" isUnique="false" association="_4mq4YFatEd-w9f5DG2hQCA">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Mt6wwJOGEd-5qPBhYeIVtw" name="sizeROM" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_OdIEkJOGEd-5qPBhYeIVtw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_OdNkIJOGEd-5qPBhYeIVtw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_TJXKMJOGEd-5qPBhYeIVtw" name="supportedTargetArch" visibility="public" type="_361C4FapEd-w9f5DG2hQCA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VGIY4JOGEd-5qPBhYeIVtw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VGYQgJOGEd-5qPBhYeIVtw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_1rKtYFapEd-w9f5DG2hQCA" name="OperatingSystem">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_747QIFapEd-w9f5DG2hQCA" name="base_Class" isUnique="false" association="_7yep4FapEd-w9f5DG2hQCA">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_361C4FapEd-w9f5DG2hQCA" name="TargetArchitecture">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_-qs0MFapEd-w9f5DG2hQCA" name="base_Class" isUnique="false" association="_-jKo0FapEd-w9f5DG2hQCA">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_7yep4FapEd-w9f5DG2hQCA" name="Extension_OperatingSystem" memberEnd="_742-sFapEd-w9f5DG2hQCA _747QIFapEd-w9f5DG2hQCA">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_742-sFapEd-w9f5DG2hQCA" name="extension_OperatingSystem" type="_1rKtYFapEd-w9f5DG2hQCA" aggregation="composite" association="_7yep4FapEd-w9f5DG2hQCA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_-jKo0FapEd-w9f5DG2hQCA" name="Extension_TargetArchitecture" memberEnd="_-qn7sFapEd-w9f5DG2hQCA _-qs0MFapEd-w9f5DG2hQCA">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_-qn7sFapEd-w9f5DG2hQCA" name="extension_TargetArchitecture" type="_361C4FapEd-w9f5DG2hQCA" aggregation="composite" association="_-jKo0FapEd-w9f5DG2hQCA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_4mq4YFatEd-w9f5DG2hQCA" name="Extension_ImplementationProperties" memberEnd="_40hHIFatEd-w9f5DG2hQCA _40nNwFatEd-w9f5DG2hQCA">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_40hHIFatEd-w9f5DG2hQCA" name="extension_ImplementationProperties" type="_ZF8ZYFapEd-w9f5DG2hQCA" aggregation="composite" association="_4mq4YFatEd-w9f5DG2hQCA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_E0tzcGE_Ed-eArNXja7SuA" name="Configuration">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_bkF6EHWmEd-EI-xpxehsbA" name="base_Class" association="_bkIWUHWmEd-EI-xpxehsbA">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_zqH8AH8UEd-oF-y8FyT5sA" name="configOptions" type="_JSKpIHiLEd-iNcV8QPhhiQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_4507EH8UEd-oF-y8FyT5sA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_452wQH8UEd-oF-y8FyT5sA" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Fi5eoJQBEd-UMN59oR7XbA" name="deploymentPlan" visibility="public" type="_5XyRUFLoEd6rYflXebIz1g">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IgppMJQBEd-UMN59oR7XbA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IgzaMJQBEd-UMN59oR7XbA" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_bkIWUHWmEd-EI-xpxehsbA" name="Extension_Configuration" memberEnd="_bkIWUXWmEd-EI-xpxehsbA _bkF6EHWmEd-EI-xpxehsbA">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_bkIWUXWmEd-EI-xpxehsbA" name="extension_Configuration" type="_E0tzcGE_Ed-eArNXja7SuA" aggregation="composite" association="_bkIWUHWmEd-EI-xpxehsbA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_JSKpIHiLEd-iNcV8QPhhiQ" name="ConfigOption">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_b6bEEHiTEd-iNcV8QPhhiQ" name="base_Class" association="_b6cSMHiTEd-iNcV8QPhhiQ">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_b6cSMHiTEd-iNcV8QPhhiQ" name="Extension_ConfigOption" memberEnd="_b6cSMXiTEd-iNcV8QPhhiQ _b6bEEHiTEd-iNcV8QPhhiQ">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_b6cSMXiTEd-iNcV8QPhhiQ" name="extension_ConfigOption" type="_JSKpIHiLEd-iNcV8QPhhiQ" aggregation="composite" association="_b6cSMHiTEd-iNcV8QPhhiQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_JWyAMJDxEd-I9dVdNhZAGQ" name="InterceptionRule">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_JZaBAAAjEd-0dMgailnZgA" name="interceptionKind" visibility="public" type="_-ZqycAAhEd-0dMgailnZgA" isUnique="false">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MIadkAAmEd-0dMgailnZgA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MIcSwAAmEd-0dMgailnZgA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_3SMAIAAmEd-0dMgailnZgA" name="interceptionSet" visibility="public" isUnique="false">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Feature"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_uqZjkAApEd-0dMgailnZgA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_uqkisAApEd-0dMgailnZgA" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_QnaoYPS3EeCLI_ythlfGJw" name="base_Property" association="_Qnb2gPS3EeCLI_ythlfGJw">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_gEEhcCq3EeKWMcuhL1C5sA" name="base_Operation" association="_gEFvkCq3EeKWMcuhL1C5sA">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_0KEH0JOCEd-5qPBhYeIVtw" name="Target">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="__5rAUGE_Ed-eArNXja7SuA" name="targetArch" visibility="public" type="_361C4FapEd-w9f5DG2hQCA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Glq-QGFAEd-eArNXja7SuA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GlszcGFAEd-eArNXja7SuA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_C5WBYGGLEd-yH9S4VNNbSQ" name="options" visibility="public" type="_JSKpIHiLEd-iNcV8QPhhiQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FGz-gGGLEd-yH9S4VNNbSQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FG1MoGGLEd-yH9S4VNNbSQ" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_biZZEJODEd-5qPBhYeIVtw" name="base_Node" association="_biaAIJODEd-5qPBhYeIVtw">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Node"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_BZCjMJOGEd-5qPBhYeIVtw" name="usedOS" visibility="public" type="_1rKtYFapEd-w9f5DG2hQCA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_E7f9UJOGEd-5qPBhYeIVtw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_E7nSEJOGEd-5qPBhYeIVtw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_D-cckJPxEd-UMN59oR7XbA" name="availRAM" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GX4ZIJPxEd-UMN59oR7XbA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GX8DgJPxEd-UMN59oR7XbA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_HtMmQJPxEd-UMN59oR7XbA" name="availROM" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JzMpcJPxEd-UMN59oR7XbA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Jzar4JPxEd-UMN59oR7XbA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_8g_IsNTGEeKiLbHSN_MIRQ" name="compiler" visibility="public" type="_iDiaINRxEeKiLbHSN_MIRQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_AIgB8NTHEeKiLbHSN_MIRQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_AJC0gNTHEeKiLbHSN_MIRQ" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_biaAIJODEd-5qPBhYeIVtw" name="E_Target_Node0" memberEnd="_biaAIZODEd-5qPBhYeIVtw _biZZEJODEd-5qPBhYeIVtw">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_biaAIZODEd-5qPBhYeIVtw" name="extension_Target" type="_0KEH0JOCEd-5qPBhYeIVtw" aggregation="composite" association="_biaAIJODEd-5qPBhYeIVtw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_maLdwLCJEd-D5aqfqbr7IQ" name="Fragment">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_5QeOULCJEd-D5aqfqbr7IQ" name="base_Class" association="_5QfccLCJEd-D5aqfqbr7IQ">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_5QfccLCJEd-D5aqfqbr7IQ" name="E_Part_Class1" memberEnd="_5QfccbCJEd-D5aqfqbr7IQ _5QeOULCJEd-D5aqfqbr7IQ">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_5QfccbCJEd-D5aqfqbr7IQ" name="extension_Fragment" type="_maLdwLCJEd-D5aqfqbr7IQ" aggregation="composite" association="_5QfccLCJEd-D5aqfqbr7IQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_QiSSgLCLEd-D5aqfqbr7IQ" name="CopyAttributeValue">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_fBzQELCLEd-D5aqfqbr7IQ" name="source" visibility="public">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_fo4eMLCLEd-D5aqfqbr7IQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_fpDdULCLEd-D5aqfqbr7IQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_j0uzkLCLEd-D5aqfqbr7IQ" name="base_Property" association="_j0vaoLCLEd-D5aqfqbr7IQ">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_j0vaoLCLEd-D5aqfqbr7IQ" name="E_CopyAttributeValue_Property0" memberEnd="_j0vaobCLEd-D5aqfqbr7IQ _j0uzkLCLEd-D5aqfqbr7IQ">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_j0vaobCLEd-D5aqfqbr7IQ" name="extension_CopyAttributeValue" type="_QiSSgLCLEd-D5aqfqbr7IQ" aggregation="composite" association="_j0vaoLCLEd-D5aqfqbr7IQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_7yDdYLFREd-D5aqfqbr7IQ" name="AutoIndex">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_IpRAYLFSEd-D5aqfqbr7IQ" name="base_Property" association="_IpRncLFSEd-D5aqfqbr7IQ">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_CRCTALFSEd-D5aqfqbr7IQ" name="AutoIndexPerNode">
+ <generalization xmi:type="uml:Generalization" xmi:id="_ElzyALFSEd-D5aqfqbr7IQ" general="_7yDdYLFREd-D5aqfqbr7IQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_IpRncLFSEd-D5aqfqbr7IQ" name="E_autoIndex_Property0" memberEnd="_IpRncbFSEd-D5aqfqbr7IQ _IpRAYLFSEd-D5aqfqbr7IQ">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_IpRncbFSEd-D5aqfqbr7IQ" name="extension_AutoIndex" type="_7yDdYLFREd-D5aqfqbr7IQ" aggregation="composite" association="_IpRncLFSEd-D5aqfqbr7IQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_8t77ULc6Ed-kAZ42Z8lTBg" name="InitPrecedence">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_JZGmYLc7Ed-kAZ42Z8lTBg" name="invokeAfter" visibility="public" isUnique="false">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JsHB8Lc7Ed-kAZ42Z8lTBg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JsJeMLc7Ed-kAZ42Z8lTBg" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_SX8JoLc7Ed-kAZ42Z8lTBg" name="invokeBefore" visibility="public" isUnique="false">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVT5sLc7Ed-kAZ42Z8lTBg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VXUE0Lc7Ed-kAZ42Z8lTBg" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_szpzcLc7Ed-kAZ42Z8lTBg" name="base_Class" association="_szqagLc7Ed-kAZ42Z8lTBg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_szqagLc7Ed-kAZ42Z8lTBg" name="E_Precedence_Port0" memberEnd="_szqagbc7Ed-kAZ42Z8lTBg _szpzcLc7Ed-kAZ42Z8lTBg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_szqagbc7Ed-kAZ42Z8lTBg" name="extension_InitPrecedence" type="_8t77ULc6Ed-kAZ42Z8lTBg" aggregation="composite" association="_szqagLc7Ed-kAZ42Z8lTBg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_mditANXnEd-CUqOXH3INsw" name="ConnectorConfiguration">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_ZfQikNXwEd-CUqOXH3INsw" name="base_Slot" association="_ZfRJoNXwEd-CUqOXH3INsw">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Slot"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_16-VQNXwEd-CUqOXH3INsw" name="connector" visibility="public" type="_JWD9UMttEd2H_o0jIC6qDQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_694OcNXwEd-CUqOXH3INsw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6-J7QNXwEd-CUqOXH3INsw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_ZfRJoNXwEd-CUqOXH3INsw" name="E_ConnectorConfiguration_Slot0" memberEnd="_ZfRJodXwEd-CUqOXH3INsw _ZfQikNXwEd-CUqOXH3INsw">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_ZfRJodXwEd-CUqOXH3INsw" name="extension_ConnectorConfiguration" type="_mditANXnEd-CUqOXH3INsw" aggregation="composite" association="_ZfRJoNXwEd-CUqOXH3INsw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_KBrOsDyEEeCYGtteoBz6vQ" name="TemplatePort">
+ <generalization xmi:type="uml:Generalization" xmi:id="_OUdSgDyEEeCYGtteoBz6vQ" general="_pP-ckMtqEd2H_o0jIC6qDQ"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_RgadAOHNEeKl1vaXi7stuw" name="boundType" visibility="public" type="_tBRZYMtpEd2H_o0jIC6qDQ" isDerived="true">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VfrH4OHNEeKl1vaXi7stuw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VgfAMOHNEeKl1vaXi7stuw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_beqmAEZ0EeCLCJBkU67iDQ" name="UseInstanceConfigurator">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_ejisQEZ0EeCLCJBkU67iDQ" name="base_Class" association="_ejj6YEZ0EeCLCJBkU67iDQ">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_vkwxkEZ0EeCLCJBkU67iDQ" name="configurator" visibility="public" type="_kDGFMEZ0EeCLCJBkU67iDQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_x906sEZ0EeCLCJBkU67iDQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_x-ozAEZ0EeCLCJBkU67iDQ" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_ejj6YEZ0EeCLCJBkU67iDQ" name="E_UseInstanceConfigurator_Class0" memberEnd="_ejj6YUZ0EeCLCJBkU67iDQ _ejisQEZ0EeCLCJBkU67iDQ">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_ejj6YUZ0EeCLCJBkU67iDQ" name="extension_UseInstanceConfigurator" type="_beqmAEZ0EeCLCJBkU67iDQ" aggregation="composite" association="_ejj6YEZ0EeCLCJBkU67iDQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_kDGFMEZ0EeCLCJBkU67iDQ" name="InstanceConfigurator">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_rsCMgEZ0EeCLCJBkU67iDQ" name="base_Class" association="_rsCMgUZ0EeCLCJBkU67iDQ">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_sE27MGm4EeOEG7lSPuRLag" name="onNodeModel">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ceiysGsuEeOoCYTKo-XKlQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_cekA0GsuEeOoCYTKo-XKlQ" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_rsCMgUZ0EeCLCJBkU67iDQ" name="E_InstanceConfigurator_Class0" memberEnd="_rsCMgkZ0EeCLCJBkU67iDQ _rsCMgEZ0EeCLCJBkU67iDQ">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_rsCMgkZ0EeCLCJBkU67iDQ" name="extension_InstanceConfigurator" type="_kDGFMEZ0EeCLCJBkU67iDQ" aggregation="composite" association="_rsCMgUZ0EeCLCJBkU67iDQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_Qnb2gPS3EeCLI_ythlfGJw" name="E_InterceptionRule_Property0" memberEnd="_Qnb2gfS3EeCLI_ythlfGJw _QnaoYPS3EeCLI_ythlfGJw">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Qnb2gfS3EeCLI_ythlfGJw" name="extension_InterceptionRule" type="_JWyAMJDxEd-I9dVdNhZAGQ" aggregation="composite" association="_Qnb2gPS3EeCLI_ythlfGJw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_f-DsgEzuEeG_JK8KIEXPxQ" name="E_InteractionComponent_Class1" memberEnd="_f-DsgUzuEeG_JK8KIEXPxQ _f-DFcEzuEeG_JK8KIEXPxQ">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_f-DsgUzuEeG_JK8KIEXPxQ" name="extension_InteractionComponent" type="_Z1W68MtlEd2H_o0jIC6qDQ" aggregation="composite" association="_f-DsgEzuEeG_JK8KIEXPxQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_5OkugEzuEeG_JK8KIEXPxQ" name="E_ImplementationGroup_Class1" memberEnd="_5OkugUzuEeG_JK8KIEXPxQ _5OkHcEzuEeG_JK8KIEXPxQ">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_5OkugUzuEeG_JK8KIEXPxQ" name="extension_ImplementationGroup" type="_aQTf0FSdEd-w9f5DG2hQCA" aggregation="composite" association="_5OkugEzuEeG_JK8KIEXPxQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_Bo7rsUzvEeG_JK8KIEXPxQ" name="E_Singleton_Class2" memberEnd="_Bo7rskzvEeG_JK8KIEXPxQ _Bo7rsEzvEeG_JK8KIEXPxQ">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Bo7rskzvEeG_JK8KIEXPxQ" name="extension_Singleton" type="_zjaC8MtkEd2H_o0jIC6qDQ" aggregation="composite" association="_Bo7rsUzvEeG_JK8KIEXPxQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_DaA8UCNaEeKGuM7MKNu-KA" name="E_RuleApplication_Package1" memberEnd="_DaA8USNaEeKGuM7MKNu-KA _DZQuYCNaEeKGuM7MKNu-KA">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_DaA8USNaEeKGuM7MKNu-KA" name="extension_RuleApplication" type="_te7YAMtkEd2H_o0jIC6qDQ" aggregation="composite" association="_DaA8UCNaEeKGuM7MKNu-KA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_FFvQcCm_EeKgOdm6HirHfA" name="ContainerRuleKind">
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_GMSBwCm_EeKgOdm6HirHfA" name="ComponentRule"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_HsIq8Cm_EeKgOdm6HirHfA" name="LightWeightOORule"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_gEFvkCq3EeKWMcuhL1C5sA" name="E_InterceptionRule_Operation1" memberEnd="_gEFvkSq3EeKWMcuhL1C5sA _gEEhcCq3EeKWMcuhL1C5sA">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_gEFvkSq3EeKWMcuhL1C5sA" name="extension_InterceptionRule" type="_JWyAMJDxEd-I9dVdNhZAGQ" aggregation="composite" association="_gEFvkCq3EeKWMcuhL1C5sA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_D8dRUNM-EeKflOoYwofqLA" name="Flatten">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_I0pIQNM-EeKflOoYwofqLA" name="base_Class" association="_I0syoNM-EeKflOoYwofqLA">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_I0syoNM-EeKflOoYwofqLA" name="E_Flatten_Class1" memberEnd="_I0syodM-EeKflOoYwofqLA _I0pIQNM-EeKflOoYwofqLA">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_I0syodM-EeKflOoYwofqLA" name="extension_Flatten" type="_D8dRUNM-EeKflOoYwofqLA" aggregation="composite" association="_I0syoNM-EeKflOoYwofqLA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_0c1e8NRsEeKiLbHSN_MIRQ" name="Assembly">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_FuqMENRtEeKiLbHSN_MIRQ" name="base_Class" association="_FutPYNRtEeKiLbHSN_MIRQ">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_FutPYNRtEeKiLbHSN_MIRQ" name="E_Assembly_Class1" memberEnd="_FutPYdRtEeKiLbHSN_MIRQ _FuqMENRtEeKiLbHSN_MIRQ">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_FutPYdRtEeKiLbHSN_MIRQ" name="extension_Assembly" type="_0c1e8NRsEeKiLbHSN_MIRQ" aggregation="composite" association="_FutPYNRtEeKiLbHSN_MIRQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_C-GooNRwEeKiLbHSN_MIRQ" name="CodeGenOptions">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_aTurQNRwEeKiLbHSN_MIRQ" name="base_Package" association="_aTxukNRwEeKiLbHSN_MIRQ">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_fi6s8NRwEeKiLbHSN_MIRQ" name="compToOOmapping" visibility="public" type="_HjF2wNRwEeKiLbHSN_MIRQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mp59wNRwEeKiLbHSN_MIRQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mqyukNRwEeKiLbHSN_MIRQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_oTWn0NRwEeKiLbHSN_MIRQ" name="progLanguage" visibility="public" type="__QLv8NRwEeKiLbHSN_MIRQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_p94P8NRwEeKiLbHSN_MIRQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_p-DPENRwEeKiLbHSN_MIRQ" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_HjF2wNRwEeKiLbHSN_MIRQ" name="CompToOOmapping">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_eiZrINRwEeKiLbHSN_MIRQ" name="base_Class" association="_eiejoNRwEeKiLbHSN_MIRQ">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_aTxukNRwEeKiLbHSN_MIRQ" name="E_CodeGenOptions_Package1" memberEnd="_aTxukdRwEeKiLbHSN_MIRQ _aTurQNRwEeKiLbHSN_MIRQ">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_aTxukdRwEeKiLbHSN_MIRQ" name="extension_CodeGenOptions" type="_C-GooNRwEeKiLbHSN_MIRQ" aggregation="composite" association="_aTxukNRwEeKiLbHSN_MIRQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_eiejoNRwEeKiLbHSN_MIRQ" name="E_CompToOOmapping_Class1" memberEnd="_eiejodRwEeKiLbHSN_MIRQ _eiZrINRwEeKiLbHSN_MIRQ">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_eiejodRwEeKiLbHSN_MIRQ" name="extension_CompToOOmapping" type="_HjF2wNRwEeKiLbHSN_MIRQ" aggregation="composite" association="_eiejoNRwEeKiLbHSN_MIRQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="__QLv8NRwEeKiLbHSN_MIRQ" name="ProgLanguage">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_B--4gNRxEeKiLbHSN_MIRQ" name="base_Class" association="_B_Ci4NRxEeKiLbHSN_MIRQ">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_B_Ci4NRxEeKiLbHSN_MIRQ" name="E_ProgLanguage_Class1" memberEnd="_B_Ci4dRxEeKiLbHSN_MIRQ _B--4gNRxEeKiLbHSN_MIRQ">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_B_Ci4dRxEeKiLbHSN_MIRQ" name="extension_ProgLanguage" type="__QLv8NRwEeKiLbHSN_MIRQ" aggregation="composite" association="_B_Ci4NRxEeKiLbHSN_MIRQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_iDiaINRxEeKiLbHSN_MIRQ" name="CompilerChain">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_jzVj0NRxEeKiLbHSN_MIRQ" name="base_Class" association="_jzYnINRxEeKiLbHSN_MIRQ">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_jzYnINRxEeKiLbHSN_MIRQ" name="E_CompilerChain_Class1" memberEnd="_jzYnIdRxEeKiLbHSN_MIRQ _jzVj0NRxEeKiLbHSN_MIRQ">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_jzYnIdRxEeKiLbHSN_MIRQ" name="extension_CompilerChain" type="_iDiaINRxEeKiLbHSN_MIRQ" aggregation="composite" association="_jzYnINRxEeKiLbHSN_MIRQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_8IkbcHI0EeOZxcUd14vDog" name="BindingHelper">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_SdmcYHI4EeOCrdvV8oxOKA" name="base_Class" association="_SdnDcHI4EeOCrdvV8oxOKA">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_SdnDcHI4EeOCrdvV8oxOKA" name="E_BindingHelper_Class1" memberEnd="_SdnDcXI4EeOCrdvV8oxOKA _SdmcYHI4EeOCrdvV8oxOKA">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_SdnDcXI4EeOCrdvV8oxOKA" name="extension_BindingHelper" type="_8IkbcHI0EeOZxcUd14vDog" aggregation="composite" association="_SdnDcHI4EeOCrdvV8oxOKA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_q5Z-4IRKEeO2oJGF2cvpFw" name="BindTemplate">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_veM_wIRKEeO2oJGF2cvpFw" name="actual">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Type"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HgMmEISAEeO2oJGF2cvpFw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HgMmEYSAEeO2oJGF2cvpFw" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_KKRNYISFEeOY0rziOe6V0Q" name="base_Property" association="_KKt5UISFEeOY0rziOe6V0Q">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_KKt5UISFEeOY0rziOe6V0Q" name="E_BindTemplate_Property1" memberEnd="_KKt5UYSFEeOY0rziOe6V0Q _KKRNYISFEeOY0rziOe6V0Q">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_KKt5UYSFEeOY0rziOe6V0Q" name="extension_BindTemplate" type="_q5Z-4IRKEeO2oJGF2cvpFw" aggregation="composite" association="_KKt5UISFEeOY0rziOe6V0Q"/>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_aTo0UC27Ed6q9cO948d5Fw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aa7vIC27Ed6q9cO948d5Fw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Ecore.profile.uml#_0"/>
+ </profileApplication>
+ </uml:Profile>
+ <Ecore:EPackage xmi:id="_bIrl8C27Ed6q9cO948d5Fw" base_Package="_5mvT0MtjEd2H_o0jIC6qDQ" packageName="FCM" nsPrefix="FCM" nsURI="http://www.eclipse.org/papyrus/FCM/1" prefix="FCM"/>
+ <Ecore:EAttribute xmi:id="_yiNMoOSBEeCPMMwBhvVAnA" isTransient="true" isVolatile="true" isUnsettable="true" base_Property="_nkb3gOSBEeCPMMwBhvVAnA"/>
+ <Ecore:EReference xmi:id="_ERitsOIqEeKl1vaXi7stuw" isTransient="true" isVolatile="true" isUnsettable="true" base_Property="_RgadAOHNEeKl1vaXi7stuw"/>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/palettes/palette-classdep.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/palettes/palette-classdep.xml
new file mode 100644
index 00000000000..2352951986c
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/palettes/palette-classdep.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<paletteDefinition><content>
+ <drawer iconpath="platform:/plugin/org.eclipse.papyrus.fcm.profile/icons/fcm.gif" id="drawer_1290374271120" name="FCM (class)">
+ <aspectTool description="" iconpath="platform:/plugin/org.eclipse.papyrus.fcm.profile/icons/deploy.gif" id="clazz.tool.package_1290374300398"
+ name="DeploymentPlan (Package)" refToolId="clazz.tool.package">
+ <postAction id="org.eclipse.papyrus.applystereotypeactionprovider">
+ <stereotypesToApply><stereotype stereotypeName="FCM::DeploymentPlan"/></stereotypesToApply>
+ </postAction>
+ </aspectTool>
+ <aspectTool description="" iconpath="platform:/plugin/org.eclipse.papyrus.fcm.profile/icons/target.gif" id="clazz.tool.class_123"
+ name="Target (Node)" refToolId="clazz.tool.class">
+ <postAction id="org.eclipse.papyrus.applystereotypeactionprovider">
+ <stereotypesToApply><stereotype stereotypeName="FCM::Target"/></stereotypesToApply>
+ </postAction>
+ </aspectTool>
+ <aspectTool description="" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Class.gif" id="clazz.tool.class_1290374348967"
+ name="PortKind (Class)" refToolId="clazz.tool.class">
+ <postAction id="org.eclipse.papyrus.applystereotypeactionprovider">
+ <stereotypesToApply><stereotype stereotypeName="FCM::PortKind"/></stereotypesToApply>
+ </postAction>
+ </aspectTool>
+ <aspectTool description="" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Class.gif" id="clazz.tool.class_1290374391074"
+ name="Configuration (Class)" refToolId="clazz.tool.class">
+ <postAction id="org.eclipse.papyrus.applystereotypeactionprovider">
+ <stereotypesToApply><stereotype stereotypeName="FCM::Configuration"/></stereotypesToApply>
+ </postAction>
+ </aspectTool>
+ </drawer>
+</content></paletteDefinition> \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/palettes/palette-composite.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/palettes/palette-composite.xml
new file mode 100644
index 00000000000..d5afbd294a9
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/palettes/palette-composite.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<paletteDefinition><content>
+ <drawer iconpath="platform:/plugin/org.eclipse.papyrus.fcm.profile/icons/fcm.gif" id="drawer_1290172652572" name="FCM (composite)">
+ <aspectTool description="" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Connector.gif" id="composite.tool.connector_1290173450913"
+ name="Connector (Connector)" refToolId="composite.tool.connector">
+ <postAction id="org.eclipse.papyrus.applystereotypeactionprovider">
+ <stereotypesToApply><stereotype stereotypeName="FCM::Connector"/></stereotypesToApply>
+ </postAction>
+ </aspectTool>
+ <aspectTool description="" iconpath="platform:/plugin/org.eclipse.papyrus.fcm.profile/icons/port.gif" id="composite.tool.class_1290173467575"
+ name="FCM Port" refToolId="composite.tool.port">
+ <postAction id="org.eclipse.papyrus.applystereotypeactionprovider">
+ <stereotypesToApply><stereotype stereotypeName="FCM::Port"/></stereotypesToApply>
+ </postAction>
+ </aspectTool>
+ <aspectTool description="" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Class.gif" id="composite.tool.class_1290173489631"
+ name="Rule Application (Class)" refToolId="composite.tool.class">
+ <postAction id="org.eclipse.papyrus.applystereotypeactionprovider">
+ <stereotypesToApply><stereotype stereotypeName="FCM::RuleApplication"/></stereotypesToApply>
+ </postAction>
+ </aspectTool>
+ </drawer>
+</content></paletteDefinition> \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/plugin.properties b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/plugin.properties
new file mode 100644
index 00000000000..f15495b325f
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/plugin.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2013 CEA LIST.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# CEA LIST - initial API and implementation
+###############################################################################
+pluginName=Papyrus extra: profile for flexible component model - FCM (Incubation)
+providerName=Eclipse Modeling Project
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/plugin.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/plugin.xml
new file mode 100644
index 00000000000..fd9d5ec828a
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/plugin.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ <copyright>
+ </copyright>
+
+ $Id$
+-->
+
+<plugin>
+ <extension-point id="fcmPortMappingRule" name="Port Mapping Rule" schema="schema/fcmPortMappingRule.exsd"/>
+ <extension-point id="fcmEmbeddingRule" name="Connector embedding rule" schema="schema/fcmPortMappingRule.exsd"/>
+ <extension-point id="fcmBindingHelper" name="Helper for template binnding" schema="schema/fcmBindingHelper.exsd"/>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri = "http://www.eclipse.org/papyrus/FCM/1"
+ class = "org.eclipse.papyrus.FCM.FCMPackage"
+ genModel = "model/FCM.genmodel"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.extension_parser">
+ <!-- @generated FCM -->
+ <parser
+ type="fcm"
+ class="org.eclipse.papyrus.FCM.util.FCMResourceFactoryImpl"/>
+ </extension>
+
+ <extension point="org.eclipse.uml2.uml.generated_package">
+ <profile
+ uri="http://www.eclipse.org/papyrus/FCM/1"
+ location="pathmap://FCM_PROFILES/FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.uri_mapping">
+ <mapping
+ source="pathmap://FCM_PROFILES/"
+ target="platform:/plugin/org.eclipse.papyrus.fcm.profile/model/"/>
+ </extension>
+
+ <extension point="org.eclipse.papyrus.uml.extensionpoints.UMLProfile">
+ <profile
+ description="Flexible component model"
+ iconpath="icons/fcm.gif"
+ name="FCM"
+ path="pathmap://FCM_PROFILES/FCM.profile.uml"
+ provider="CEA LIST"/>
+ </extension>
+
+ <extension
+ point="org.eclipse.papyrus.uml.diagram.common.paletteDefinition">
+ <paletteDefinition
+ ID="com.cea.profiles.fcm.compositePalette"
+ class="org.eclipse.papyrus.uml.diagram.common.service.PluginPaletteProvider"
+ name="com.cea.profiles.fcm.compositePalette"
+ path="palettes/palette-composite.xml">
+ <Priority
+ name="Medium">
+ </Priority>
+ <editor
+ id="org.eclipse.papyrus.uml.diagram.composite">
+ </editor>
+ </paletteDefinition>
+ </extension>
+
+ <extension
+ point="org.eclipse.papyrus.uml.diagram.common.paletteDefinition">
+ <paletteDefinition
+ ID="com.cea.profiles.fcm.classPalette"
+ class="org.eclipse.papyrus.uml.diagram.common.service.PluginPaletteProvider"
+ name="com.cea.profiles.fcm.classPalette"
+ path="palettes/palette-classdep.xml">
+ <Priority
+ name="Medium">
+ </Priority>
+ <editor
+ id="org.eclipse.papyrus.uml.diagram.clazz">
+ </editor>
+ </paletteDefinition>
+ </extension>
+</plugin>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/pom.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/pom.xml
new file mode 100644
index 00000000000..ae9c10ff8a4
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.fcm.profile</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/schema/fcmBindingHelper.exsd b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/schema/fcmBindingHelper.exsd
new file mode 100644
index 00000000000..e51291f98af
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/schema/fcmBindingHelper.exsd
@@ -0,0 +1,99 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.papyrus.fcm.profile" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.papyrus.fcm.profile" id="fcmBindingHelper" name="Binding Helper"/>
+ </appInfo>
+ <documentation>
+ [Enter description of this extension point.]
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appInfo>
+ <meta.element />
+ </appInfo>
+ </annotation>
+ <complexType>
+ <sequence minOccurs="1" maxOccurs="unbounded">
+ <element ref="client"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="client">
+ <complexType>
+ <attribute name="bindingHelperName" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn=":org.eclipse.papyrus.FCM.util.IBindingHelper"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ [Enter the first release in which this extension point appears.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ [Enter extension point usage example here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiinfo"/>
+ </appInfo>
+ <documentation>
+ [Enter API information here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ [Enter information about supplied implementation of this extension point.]
+ </documentation>
+ </annotation>
+
+
+</schema>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/schema/fcmEmbeddingRule.exsd b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/schema/fcmEmbeddingRule.exsd
new file mode 100644
index 00000000000..82aa794425b
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/schema/fcmEmbeddingRule.exsd
@@ -0,0 +1,99 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.papyrus.fcm.profile" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.papyrus.fcm.profile" id="fcmEmbeddingRule" name="FCM embedding rule"/>
+ </appInfo>
+ <documentation>
+ [Enter description of this extension point.]
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appInfo>
+ <meta.element />
+ </appInfo>
+ </annotation>
+ <complexType>
+ <sequence minOccurs="1" maxOccurs="unbounded">
+ <element ref="client"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="client">
+ <complexType>
+ <attribute name="connectorName" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn=":FCM.util.IEmbeddingRule"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ [Enter the first release in which this extension point appears.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ [Enter extension point usage example here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiinfo"/>
+ </appInfo>
+ <documentation>
+ [Enter API information here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ [Enter information about supplied implementation of this extension point.]
+ </documentation>
+ </annotation>
+
+
+</schema>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/schema/fcmPortMappingRule.exsd b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/schema/fcmPortMappingRule.exsd
new file mode 100644
index 00000000000..77f6e9cb5e4
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/schema/fcmPortMappingRule.exsd
@@ -0,0 +1,99 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.papyrus.fcm.profile" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.papyrus.fcm.profile" id="fcmPortMappingRule" name="Port Mapping Rule"/>
+ </appInfo>
+ <documentation>
+ A port mapping rule, i.e. a rule that maps port kinds to a provider and/or required interface
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appInfo>
+ <meta.element />
+ </appInfo>
+ </annotation>
+ <complexType>
+ <sequence minOccurs="1" maxOccurs="unbounded">
+ <element ref="client"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="client">
+ <complexType>
+ <attribute name="portKindName" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn=":FCM.util.IMappingRule"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ [Enter the first release in which this extension point appears.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ [Enter extension point usage example here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiinfo"/>
+ </appInfo>
+ <documentation>
+ [Enter API information here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ [Enter information about supplied implementation of this extension point.]
+ </documentation>
+ </annotation>
+
+
+</schema>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Activator.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Activator.java
new file mode 100644
index 00000000000..2d60ac344ee
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Activator.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.fcm.profile"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Assembly.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Assembly.java
new file mode 100644
index 00000000000..1d4189e3920
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Assembly.java
@@ -0,0 +1,66 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Assembly</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * An assembly is a collection of (interconnected) parts. During distribution, a variant of the assembly is created for each node, that contains only a subset of the parts. This requires that
+ * (1) no inheritance
+ * (2) all instances of the assembly on a node must be split in an identical way
+ * The system component is also an assembly
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.Assembly#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getAssembly()
+ * @model
+ * @generated
+ */
+public interface Assembly extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getAssembly_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Assembly#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // Assembly
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/AutoIndex.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/AutoIndex.java
new file mode 100644
index 00000000000..40a23903437
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/AutoIndex.java
@@ -0,0 +1,60 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Auto Index</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.AutoIndex#getBase_Property <em>Base Property</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getAutoIndex()
+ * @model
+ * @generated
+ */
+public interface AutoIndex extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Property</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Property</em>' reference.
+ * @see #setBase_Property(Property)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getAutoIndex_Base_Property()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Property getBase_Property();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.AutoIndex#getBase_Property <em>Base Property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Property</em>' reference.
+ * @see #getBase_Property()
+ * @generated
+ */
+ void setBase_Property(Property value);
+
+} // AutoIndex
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/AutoIndexPerNode.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/AutoIndexPerNode.java
new file mode 100644
index 00000000000..d986de382f4
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/AutoIndexPerNode.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Auto Index Per Node</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getAutoIndexPerNode()
+ * @model
+ * @generated
+ */
+public interface AutoIndexPerNode extends AutoIndex {
+} // AutoIndexPerNode
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/BindTemplate.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/BindTemplate.java
new file mode 100644
index 00000000000..94380f0d970
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/BindTemplate.java
@@ -0,0 +1,78 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Type;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Bind Template</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.BindTemplate#getActual <em>Actual</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.BindTemplate#getBase_Property <em>Base Property</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getBindTemplate()
+ * @model
+ * @generated
+ */
+public interface BindTemplate extends EObject {
+ /**
+ * Returns the value of the '<em><b>Actual</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.uml2.uml.Type}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Actual</em>' reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Actual</em>' reference list.
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getBindTemplate_Actual()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<Type> getActual();
+
+ /**
+ * Returns the value of the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Property</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Property</em>' reference.
+ * @see #setBase_Property(Property)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getBindTemplate_Base_Property()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Property getBase_Property();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.BindTemplate#getBase_Property <em>Base Property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Property</em>' reference.
+ * @see #getBase_Property()
+ * @generated
+ */
+ void setBase_Property(Property value);
+
+} // BindTemplate
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/BindingHelper.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/BindingHelper.java
new file mode 100644
index 00000000000..901e429efb1
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/BindingHelper.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Binding Helper</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * A binding helper is responsible for creating sub-elements. For instance, if the formal parameter of a template is an interface, it might be required to instantiate an operation for each operation of the interface.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.BindingHelper#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getBindingHelper()
+ * @model
+ * @generated
+ */
+public interface BindingHelper extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getBindingHelper_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.BindingHelper#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+} // BindingHelper
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CodeGenOptions.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CodeGenOptions.java
new file mode 100644
index 00000000000..a0554816e52
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CodeGenOptions.java
@@ -0,0 +1,115 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Code Gen Options</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This information on a package tells the code generators which programming language and which component-to-OO mapping should be used
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.CodeGenOptions#getBase_Package <em>Base Package</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.CodeGenOptions#getCompToOOmapping <em>Comp To OOmapping</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.CodeGenOptions#getProgLanguage <em>Prog Language</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getCodeGenOptions()
+ * @model
+ * @generated
+ */
+public interface CodeGenOptions extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Package</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Package</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Package</em>' reference.
+ * @see #setBase_Package(org.eclipse.uml2.uml.Package)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getCodeGenOptions_Base_Package()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Package getBase_Package();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.CodeGenOptions#getBase_Package <em>Base Package</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Package</em>' reference.
+ * @see #getBase_Package()
+ * @generated
+ */
+ void setBase_Package(org.eclipse.uml2.uml.Package value);
+
+ /**
+ * Returns the value of the '<em><b>Comp To OOmapping</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Comp To OOmapping</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Comp To OOmapping</em>' reference.
+ * @see #setCompToOOmapping(CompToOOmapping)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getCodeGenOptions_CompToOOmapping()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ CompToOOmapping getCompToOOmapping();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.CodeGenOptions#getCompToOOmapping <em>Comp To OOmapping</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Comp To OOmapping</em>' reference.
+ * @see #getCompToOOmapping()
+ * @generated
+ */
+ void setCompToOOmapping(CompToOOmapping value);
+
+ /**
+ * Returns the value of the '<em><b>Prog Language</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Prog Language</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Prog Language</em>' reference.
+ * @see #setProgLanguage(ProgLanguage)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getCodeGenOptions_ProgLanguage()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ ProgLanguage getProgLanguage();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.CodeGenOptions#getProgLanguage <em>Prog Language</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Prog Language</em>' reference.
+ * @see #getProgLanguage()
+ * @generated
+ */
+ void setProgLanguage(ProgLanguage value);
+
+} // CodeGenOptions
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CompImplTemplate.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CompImplTemplate.java
new file mode 100644
index 00000000000..25ff298bda8
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CompImplTemplate.java
@@ -0,0 +1,85 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Comp Impl Template</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.CompImplTemplate#getTemplateDefs <em>Template Defs</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.CompImplTemplate#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getCompImplTemplate()
+ * @model
+ * @generated
+ */
+public interface CompImplTemplate extends EObject {
+ /**
+ * Returns the value of the '<em><b>Template Defs</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Template Defs</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Template Defs</em>' attribute.
+ * @see #setTemplateDefs(String)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getCompImplTemplate_TemplateDefs()
+ * @model unique="false" dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ String getTemplateDefs();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.CompImplTemplate#getTemplateDefs <em>Template Defs</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Template Defs</em>' attribute.
+ * @see #getTemplateDefs()
+ * @generated
+ */
+ void setTemplateDefs(String value);
+
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getCompImplTemplate_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.CompImplTemplate#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // CompImplTemplate
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CompToOOmapping.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CompToOOmapping.java
new file mode 100644
index 00000000000..45a6ac2a439
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CompToOOmapping.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Comp To OOmapping</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * We assume that a model library defines a set of supported programming languages as well as a set of provided component to mappings. We do not use a fixed enumeration defined in the profile to assure extensibility
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.CompToOOmapping#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getCompToOOmapping()
+ * @model
+ * @generated
+ */
+public interface CompToOOmapping extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getCompToOOmapping_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.CompToOOmapping#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // CompToOOmapping
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CompilerChain.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CompilerChain.java
new file mode 100644
index 00000000000..c788bf107d5
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CompilerChain.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Compiler Chain</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.CompilerChain#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getCompilerChain()
+ * @model
+ * @generated
+ */
+public interface CompilerChain extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getCompilerChain_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.CompilerChain#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // CompilerChain
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ConfigOption.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ConfigOption.java
new file mode 100644
index 00000000000..18537c5d33b
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ConfigOption.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Config Option</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.ConfigOption#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getConfigOption()
+ * @model
+ * @generated
+ */
+public interface ConfigOption extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getConfigOption_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.ConfigOption#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // ConfigOption
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ConfigurableElementInstance.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ConfigurableElementInstance.java
new file mode 100644
index 00000000000..480e38b98fb
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ConfigurableElementInstance.java
@@ -0,0 +1,60 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.InstanceSpecification;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Configurable Element Instance</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.ConfigurableElementInstance#getConfiguration <em>Configuration</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getConfigurableElementInstance()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ConfigurableElementInstance extends EObject {
+ /**
+ * Returns the value of the '<em><b>Configuration</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Configuration</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Configuration</em>' reference.
+ * @see #setConfiguration(InstanceSpecification)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getConfigurableElementInstance_Configuration()
+ * @model ordered="false"
+ * @generated
+ */
+ InstanceSpecification getConfiguration();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.ConfigurableElementInstance#getConfiguration <em>Configuration</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Configuration</em>' reference.
+ * @see #getConfiguration()
+ * @generated
+ */
+ void setConfiguration(InstanceSpecification value);
+
+} // ConfigurableElementInstance
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Configuration.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Configuration.java
new file mode 100644
index 00000000000..af652b2f3de
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Configuration.java
@@ -0,0 +1,102 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Configuration</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.Configuration#getBase_Class <em>Base Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.Configuration#getConfigOptions <em>Config Options</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.Configuration#getDeploymentPlan <em>Deployment Plan</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getConfiguration()
+ * @model
+ * @generated
+ */
+public interface Configuration extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getConfiguration_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Configuration#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+ /**
+ * Returns the value of the '<em><b>Config Options</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.FCM.ConfigOption}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Config Options</em>' reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Config Options</em>' reference list.
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getConfiguration_ConfigOptions()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<ConfigOption> getConfigOptions();
+
+ /**
+ * Returns the value of the '<em><b>Deployment Plan</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Deployment Plan</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Deployment Plan</em>' reference.
+ * @see #setDeploymentPlan(DeploymentPlan)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getConfiguration_DeploymentPlan()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ DeploymentPlan getDeploymentPlan();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Configuration#getDeploymentPlan <em>Deployment Plan</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Deployment Plan</em>' reference.
+ * @see #getDeploymentPlan()
+ * @generated
+ */
+ void setDeploymentPlan(DeploymentPlan value);
+
+} // Configuration
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ConfigurationProperty.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ConfigurationProperty.java
new file mode 100644
index 00000000000..505e9ad4b84
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ConfigurationProperty.java
@@ -0,0 +1,64 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Configuration Property</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This stereotype indicuates that the attribute does not only store values but needs to be configured initially be the user. It corresponds to the automatic creation of an entry (slot+nstance specification) in the deployment plan
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.ConfigurationProperty#getBase_Property <em>Base Property</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getConfigurationProperty()
+ * @model
+ * @generated
+ */
+public interface ConfigurationProperty extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Property</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Property</em>' reference.
+ * @see #setBase_Property(Property)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getConfigurationProperty_Base_Property()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Property getBase_Property();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.ConfigurationProperty#getBase_Property <em>Base Property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Property</em>' reference.
+ * @see #getBase_Property()
+ * @generated
+ */
+ void setBase_Property(Property value);
+
+} // ConfigurationProperty
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Connector.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Connector.java
new file mode 100644
index 00000000000..e8ad70be248
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Connector.java
@@ -0,0 +1,115 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Connector</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This stereotype references the interaction component that should realize the communication. It can be applied to UML connectors as well as to properties. The former is used, if there are two communication partners, the latter is more flexible. For instance, in case of a DDS interaction, a publisher does not know the consumers, it therefore communicates with a part (property) representing the publisher part of the interaction component
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.Connector#getBase_Connector <em>Base Connector</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.Connector#getIc <em>Ic</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.Connector#getBase_Property <em>Base Property</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getConnector()
+ * @model
+ * @generated
+ */
+public interface Connector extends ConfigurableElementInstance {
+ /**
+ * Returns the value of the '<em><b>Base Connector</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Connector</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Connector</em>' reference.
+ * @see #setBase_Connector(org.eclipse.uml2.uml.Connector)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getConnector_Base_Connector()
+ * @model ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Connector getBase_Connector();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Connector#getBase_Connector <em>Base Connector</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Connector</em>' reference.
+ * @see #getBase_Connector()
+ * @generated
+ */
+ void setBase_Connector(org.eclipse.uml2.uml.Connector value);
+
+ /**
+ * Returns the value of the '<em><b>Ic</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Ic</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Ic</em>' reference.
+ * @see #setIc(InteractionComponent)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getConnector_Ic()
+ * @model ordered="false"
+ * @generated
+ */
+ InteractionComponent getIc();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Connector#getIc <em>Ic</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Ic</em>' reference.
+ * @see #getIc()
+ * @generated
+ */
+ void setIc(InteractionComponent value);
+
+ /**
+ * Returns the value of the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Property</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Property</em>' reference.
+ * @see #setBase_Property(Property)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getConnector_Base_Property()
+ * @model ordered="false"
+ * @generated
+ */
+ Property getBase_Property();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Connector#getBase_Property <em>Base Property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Property</em>' reference.
+ * @see #getBase_Property()
+ * @generated
+ */
+ void setBase_Property(Property value);
+
+} // Connector
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ConnectorConfiguration.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ConnectorConfiguration.java
new file mode 100644
index 00000000000..cd7bb6bcd19
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ConnectorConfiguration.java
@@ -0,0 +1,86 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Slot;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Connector Configuration</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.ConnectorConfiguration#getBase_Slot <em>Base Slot</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.ConnectorConfiguration#getConnector <em>Connector</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getConnectorConfiguration()
+ * @model
+ * @generated
+ */
+public interface ConnectorConfiguration extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Slot</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Slot</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Slot</em>' reference.
+ * @see #setBase_Slot(Slot)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getConnectorConfiguration_Base_Slot()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Slot getBase_Slot();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.ConnectorConfiguration#getBase_Slot <em>Base Slot</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Slot</em>' reference.
+ * @see #getBase_Slot()
+ * @generated
+ */
+ void setBase_Slot(Slot value);
+
+ /**
+ * Returns the value of the '<em><b>Connector</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Connector</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Connector</em>' reference.
+ * @see #setConnector(Connector)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getConnectorConfiguration_Connector()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Connector getConnector();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.ConnectorConfiguration#getConnector <em>Connector</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Connector</em>' reference.
+ * @see #getConnector()
+ * @generated
+ */
+ void setConnector(Connector value);
+
+} // ConnectorConfiguration
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ContainerRule.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ContainerRule.java
new file mode 100644
index 00000000000..4b4ad0161f8
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ContainerRule.java
@@ -0,0 +1,109 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Container Rule</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * A container rule, i.e. a specification of extension or interception within a container. Beside the two options, a container rule is basically a composite class whose parts are added to the container.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.ContainerRule#getBase_Class <em>Base Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.ContainerRule#getForConfig <em>For Config</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.ContainerRule#getKind <em>Kind</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getContainerRule()
+ * @model
+ * @generated
+ */
+public interface ContainerRule extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getContainerRule_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.ContainerRule#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+ /**
+ * Returns the value of the '<em><b>For Config</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.FCM.ConfigOption}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>For Config</em>' reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>For Config</em>' reference list.
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getContainerRule_ForConfig()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<ConfigOption> getForConfig();
+
+ /**
+ * Returns the value of the '<em><b>Kind</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.papyrus.FCM.ContainerRuleKind}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Kind</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Kind</em>' attribute.
+ * @see org.eclipse.papyrus.FCM.ContainerRuleKind
+ * @see #setKind(ContainerRuleKind)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getContainerRule_Kind()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ ContainerRuleKind getKind();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.ContainerRule#getKind <em>Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Kind</em>' attribute.
+ * @see org.eclipse.papyrus.FCM.ContainerRuleKind
+ * @see #getKind()
+ * @generated
+ */
+ void setKind(ContainerRuleKind value);
+
+} // ContainerRule
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ContainerRuleKind.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ContainerRuleKind.java
new file mode 100644
index 00000000000..6366f1cc62a
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ContainerRuleKind.java
@@ -0,0 +1,225 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Container Rule Kind</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getContainerRuleKind()
+ * @model
+ * @generated
+ */
+public enum ContainerRuleKind implements Enumerator {
+ /**
+ * The '<em><b>Component Rule</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #COMPONENT_RULE_VALUE
+ * @generated
+ * @ordered
+ */
+ COMPONENT_RULE(0, "ComponentRule", "ComponentRule"), //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Light Weight OO Rule</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LIGHT_WEIGHT_OO_RULE_VALUE
+ * @generated
+ * @ordered
+ */
+ LIGHT_WEIGHT_OO_RULE(1, "LightWeightOORule", "LightWeightOORule"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Component Rule</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Component Rule</b></em>' literal object isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #COMPONENT_RULE
+ * @model name="ComponentRule"
+ * @generated
+ * @ordered
+ */
+ public static final int COMPONENT_RULE_VALUE = 0;
+
+ /**
+ * The '<em><b>Light Weight OO Rule</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Light Weight OO Rule</b></em>' literal object isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LIGHT_WEIGHT_OO_RULE
+ * @model name="LightWeightOORule"
+ * @generated
+ * @ordered
+ */
+ public static final int LIGHT_WEIGHT_OO_RULE_VALUE = 1;
+
+ /**
+ * An array of all the '<em><b>Container Rule Kind</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final ContainerRuleKind[] VALUES_ARRAY =
+ new ContainerRuleKind[] {
+ COMPONENT_RULE,
+ LIGHT_WEIGHT_OO_RULE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Container Rule Kind</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<ContainerRuleKind> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Container Rule Kind</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param literal the literal.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static ContainerRuleKind get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ContainerRuleKind result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Container Rule Kind</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param name the name.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static ContainerRuleKind getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ContainerRuleKind result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Container Rule Kind</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the integer value.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static ContainerRuleKind get(int value) {
+ switch (value) {
+ case COMPONENT_RULE_VALUE: return COMPONENT_RULE;
+ case LIGHT_WEIGHT_OO_RULE_VALUE: return LIGHT_WEIGHT_OO_RULE;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private ContainerRuleKind(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} // ContainerRuleKind
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CopyAttributeValue.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CopyAttributeValue.java
new file mode 100644
index 00000000000..414ccb88e3d
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CopyAttributeValue.java
@@ -0,0 +1,86 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Copy Attribute Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.CopyAttributeValue#getSource <em>Source</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.CopyAttributeValue#getBase_Property <em>Base Property</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getCopyAttributeValue()
+ * @model
+ * @generated
+ */
+public interface CopyAttributeValue extends EObject {
+ /**
+ * Returns the value of the '<em><b>Source</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Source</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Source</em>' reference.
+ * @see #setSource(Property)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getCopyAttributeValue_Source()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Property getSource();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.CopyAttributeValue#getSource <em>Source</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Source</em>' reference.
+ * @see #getSource()
+ * @generated
+ */
+ void setSource(Property value);
+
+ /**
+ * Returns the value of the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Property</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Property</em>' reference.
+ * @see #setBase_Property(Property)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getCopyAttributeValue_Base_Property()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Property getBase_Property();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.CopyAttributeValue#getBase_Property <em>Base Property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Property</em>' reference.
+ * @see #getBase_Property()
+ * @generated
+ */
+ void setBase_Property(Property value);
+
+} // CopyAttributeValue
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/DeploymentPlan.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/DeploymentPlan.java
new file mode 100644
index 00000000000..7a0d9dc3d44
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/DeploymentPlan.java
@@ -0,0 +1,86 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.InstanceSpecification;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Deployment Plan</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.DeploymentPlan#getMainInstance <em>Main Instance</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.DeploymentPlan#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getDeploymentPlan()
+ * @model
+ * @generated
+ */
+public interface DeploymentPlan extends EObject {
+ /**
+ * Returns the value of the '<em><b>Main Instance</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Main Instance</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Main Instance</em>' reference.
+ * @see #setMainInstance(InstanceSpecification)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getDeploymentPlan_MainInstance()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ InstanceSpecification getMainInstance();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.DeploymentPlan#getMainInstance <em>Main Instance</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Main Instance</em>' reference.
+ * @see #getMainInstance()
+ * @generated
+ */
+ void setMainInstance(InstanceSpecification value);
+
+ /**
+ * Returns the value of the '<em><b>Base Package</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Package</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Package</em>' reference.
+ * @see #setBase_Package(org.eclipse.uml2.uml.Package)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getDeploymentPlan_Base_Package()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Package getBase_Package();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.DeploymentPlan#getBase_Package <em>Base Package</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Package</em>' reference.
+ * @see #getBase_Package()
+ * @generated
+ */
+ void setBase_Package(org.eclipse.uml2.uml.Package value);
+
+} // DeploymentPlan
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/DerivedElement.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/DerivedElement.java
new file mode 100644
index 00000000000..58ff9aee3ba
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/DerivedElement.java
@@ -0,0 +1,86 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Element;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Derived Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.DerivedElement#getBase_Element <em>Base Element</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.DerivedElement#getSource <em>Source</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getDerivedElement()
+ * @model
+ * @generated
+ */
+public interface DerivedElement extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Element</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Element</em>' reference.
+ * @see #setBase_Element(Element)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getDerivedElement_Base_Element()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Element getBase_Element();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.DerivedElement#getBase_Element <em>Base Element</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Element</em>' reference.
+ * @see #getBase_Element()
+ * @generated
+ */
+ void setBase_Element(Element value);
+
+ /**
+ * Returns the value of the '<em><b>Source</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Source</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Source</em>' reference.
+ * @see #setSource(Element)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getDerivedElement_Source()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Element getSource();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.DerivedElement#getSource <em>Source</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Source</em>' reference.
+ * @see #getSource()
+ * @generated
+ */
+ void setSource(Element value);
+
+} // DerivedElement
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/FCMFactory.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/FCMFactory.java
new file mode 100644
index 00000000000..907c2d5b4e3
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/FCMFactory.java
@@ -0,0 +1,376 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.FCMPackage
+ * @generated
+ */
+public interface FCMFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ FCMFactory eINSTANCE = org.eclipse.papyrus.FCM.impl.FCMFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Template</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Template</em>'.
+ * @generated
+ */
+ Template createTemplate();
+
+ /**
+ * Returns a new object of class '<em>Binding Helper</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Binding Helper</em>'.
+ * @generated
+ */
+ BindingHelper createBindingHelper();
+
+ /**
+ * Returns a new object of class '<em>Configuration Property</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Configuration Property</em>'.
+ * @generated
+ */
+ ConfigurationProperty createConfigurationProperty();
+
+ /**
+ * Returns a new object of class '<em>Implementation Group</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Implementation Group</em>'.
+ * @generated
+ */
+ ImplementationGroup createImplementationGroup();
+
+ /**
+ * Returns a new object of class '<em>Assembly</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Assembly</em>'.
+ * @generated
+ */
+ Assembly createAssembly();
+
+ /**
+ * Returns a new object of class '<em>Flatten</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Flatten</em>'.
+ * @generated
+ */
+ Flatten createFlatten();
+
+ /**
+ * Returns a new object of class '<em>Comp To OOmapping</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Comp To OOmapping</em>'.
+ * @generated
+ */
+ CompToOOmapping createCompToOOmapping();
+
+ /**
+ * Returns a new object of class '<em>Prog Language</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Prog Language</em>'.
+ * @generated
+ */
+ ProgLanguage createProgLanguage();
+
+ /**
+ * Returns a new object of class '<em>Code Gen Options</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Code Gen Options</em>'.
+ * @generated
+ */
+ CodeGenOptions createCodeGenOptions();
+
+ /**
+ * Returns a new object of class '<em>Interaction Component</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Interaction Component</em>'.
+ * @generated
+ */
+ InteractionComponent createInteractionComponent();
+
+ /**
+ * Returns a new object of class '<em>Singleton</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Singleton</em>'.
+ * @generated
+ */
+ Singleton createSingleton();
+
+ /**
+ * Returns a new object of class '<em>Connector</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Connector</em>'.
+ * @generated
+ */
+ Connector createConnector();
+
+ /**
+ * Returns a new object of class '<em>Use Instance Configurator</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Use Instance Configurator</em>'.
+ * @generated
+ */
+ UseInstanceConfigurator createUseInstanceConfigurator();
+
+ /**
+ * Returns a new object of class '<em>Instance Configurator</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Instance Configurator</em>'.
+ * @generated
+ */
+ InstanceConfigurator createInstanceConfigurator();
+
+ /**
+ * Returns a new object of class '<em>Rule Application</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Rule Application</em>'.
+ * @generated
+ */
+ RuleApplication createRuleApplication();
+
+ /**
+ * Returns a new object of class '<em>Container Rule</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Container Rule</em>'.
+ * @generated
+ */
+ ContainerRule createContainerRule();
+
+ /**
+ * Returns a new object of class '<em>Config Option</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Config Option</em>'.
+ * @generated
+ */
+ ConfigOption createConfigOption();
+
+ /**
+ * Returns a new object of class '<em>Template Port</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Template Port</em>'.
+ * @generated
+ */
+ TemplatePort createTemplatePort();
+
+ /**
+ * Returns a new object of class '<em>Port</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Port</em>'.
+ * @generated
+ */
+ Port createPort();
+
+ /**
+ * Returns a new object of class '<em>Port Kind</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Port Kind</em>'.
+ * @generated
+ */
+ PortKind createPortKind();
+
+ /**
+ * Returns a new object of class '<em>Deployment Plan</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Deployment Plan</em>'.
+ * @generated
+ */
+ DeploymentPlan createDeploymentPlan();
+
+ /**
+ * Returns a new object of class '<em>Derived Element</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Derived Element</em>'.
+ * @generated
+ */
+ DerivedElement createDerivedElement();
+
+ /**
+ * Returns a new object of class '<em>Comp Impl Template</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Comp Impl Template</em>'.
+ * @generated
+ */
+ CompImplTemplate createCompImplTemplate();
+
+ /**
+ * Returns a new object of class '<em>Implementation Properties</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Implementation Properties</em>'.
+ * @generated
+ */
+ ImplementationProperties createImplementationProperties();
+
+ /**
+ * Returns a new object of class '<em>Operating System</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Operating System</em>'.
+ * @generated
+ */
+ OperatingSystem createOperatingSystem();
+
+ /**
+ * Returns a new object of class '<em>Target Architecture</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Target Architecture</em>'.
+ * @generated
+ */
+ TargetArchitecture createTargetArchitecture();
+
+ /**
+ * Returns a new object of class '<em>Configuration</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Configuration</em>'.
+ * @generated
+ */
+ Configuration createConfiguration();
+
+ /**
+ * Returns a new object of class '<em>Interception Rule</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Interception Rule</em>'.
+ * @generated
+ */
+ InterceptionRule createInterceptionRule();
+
+ /**
+ * Returns a new object of class '<em>Target</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Target</em>'.
+ * @generated
+ */
+ Target createTarget();
+
+ /**
+ * Returns a new object of class '<em>Compiler Chain</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Compiler Chain</em>'.
+ * @generated
+ */
+ CompilerChain createCompilerChain();
+
+ /**
+ * Returns a new object of class '<em>Fragment</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Fragment</em>'.
+ * @generated
+ */
+ Fragment createFragment();
+
+ /**
+ * Returns a new object of class '<em>Copy Attribute Value</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Copy Attribute Value</em>'.
+ * @generated
+ */
+ CopyAttributeValue createCopyAttributeValue();
+
+ /**
+ * Returns a new object of class '<em>Auto Index</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Auto Index</em>'.
+ * @generated
+ */
+ AutoIndex createAutoIndex();
+
+ /**
+ * Returns a new object of class '<em>Auto Index Per Node</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Auto Index Per Node</em>'.
+ * @generated
+ */
+ AutoIndexPerNode createAutoIndexPerNode();
+
+ /**
+ * Returns a new object of class '<em>Init Precedence</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Init Precedence</em>'.
+ * @generated
+ */
+ InitPrecedence createInitPrecedence();
+
+ /**
+ * Returns a new object of class '<em>Connector Configuration</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Connector Configuration</em>'.
+ * @generated
+ */
+ ConnectorConfiguration createConnectorConfiguration();
+
+ /**
+ * Returns a new object of class '<em>Bind Template</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Bind Template</em>'.
+ * @generated
+ */
+ BindTemplate createBindTemplate();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ FCMPackage getFCMPackage();
+
+} // FCMFactory
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/FCMPackage.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/FCMPackage.java
new file mode 100644
index 00000000000..1dc5cea5fed
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/FCMPackage.java
@@ -0,0 +1,3911 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.FCMFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface FCMPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "FCM"; //$NON-NLS-1$
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/papyrus/FCM/1"; //$NON-NLS-1$
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "FCM"; //$NON-NLS-1$
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ FCMPackage eINSTANCE = org.eclipse.papyrus.FCM.impl.FCMPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.TemplateImpl <em>Template</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.TemplateImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getTemplate()
+ * @generated
+ */
+ int TEMPLATE = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPLATE__BASE_ELEMENT = 0;
+
+ /**
+ * The feature id for the '<em><b>Helper</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPLATE__HELPER = 1;
+
+ /**
+ * The number of structural features of the '<em>Template</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPLATE_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.BindingHelperImpl <em>Binding Helper</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.BindingHelperImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getBindingHelper()
+ * @generated
+ */
+ int BINDING_HELPER = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BINDING_HELPER__BASE_CLASS = 0;
+
+ /**
+ * The number of structural features of the '<em>Binding Helper</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BINDING_HELPER_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.ConfigurationPropertyImpl <em>Configuration Property</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ConfigurationPropertyImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getConfigurationProperty()
+ * @generated
+ */
+ int CONFIGURATION_PROPERTY = 2;
+
+ /**
+ * The feature id for the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONFIGURATION_PROPERTY__BASE_PROPERTY = 0;
+
+ /**
+ * The number of structural features of the '<em>Configuration Property</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONFIGURATION_PROPERTY_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.ImplementationGroupImpl <em>Implementation Group</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ImplementationGroupImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getImplementationGroup()
+ * @generated
+ */
+ int IMPLEMENTATION_GROUP = 3;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPLEMENTATION_GROUP__BASE_CLASS = 0;
+
+ /**
+ * The number of structural features of the '<em>Implementation Group</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPLEMENTATION_GROUP_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.AssemblyImpl <em>Assembly</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.AssemblyImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getAssembly()
+ * @generated
+ */
+ int ASSEMBLY = 4;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ASSEMBLY__BASE_CLASS = 0;
+
+ /**
+ * The number of structural features of the '<em>Assembly</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ASSEMBLY_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.FlattenImpl <em>Flatten</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.FlattenImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getFlatten()
+ * @generated
+ */
+ int FLATTEN = 5;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FLATTEN__BASE_CLASS = 0;
+
+ /**
+ * The number of structural features of the '<em>Flatten</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FLATTEN_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.CompToOOmappingImpl <em>Comp To OOmapping</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.CompToOOmappingImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getCompToOOmapping()
+ * @generated
+ */
+ int COMP_TO_OOMAPPING = 6;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMP_TO_OOMAPPING__BASE_CLASS = 0;
+
+ /**
+ * The number of structural features of the '<em>Comp To OOmapping</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMP_TO_OOMAPPING_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.ProgLanguageImpl <em>Prog Language</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ProgLanguageImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getProgLanguage()
+ * @generated
+ */
+ int PROG_LANGUAGE = 7;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROG_LANGUAGE__BASE_CLASS = 0;
+
+ /**
+ * The number of structural features of the '<em>Prog Language</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROG_LANGUAGE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.CodeGenOptionsImpl <em>Code Gen Options</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.CodeGenOptionsImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getCodeGenOptions()
+ * @generated
+ */
+ int CODE_GEN_OPTIONS = 8;
+
+ /**
+ * The feature id for the '<em><b>Base Package</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CODE_GEN_OPTIONS__BASE_PACKAGE = 0;
+
+ /**
+ * The feature id for the '<em><b>Comp To OOmapping</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CODE_GEN_OPTIONS__COMP_TO_OOMAPPING = 1;
+
+ /**
+ * The feature id for the '<em><b>Prog Language</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CODE_GEN_OPTIONS__PROG_LANGUAGE = 2;
+
+ /**
+ * The number of structural features of the '<em>Code Gen Options</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CODE_GEN_OPTIONS_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.InteractionComponentImpl <em>Interaction Component</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.InteractionComponentImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getInteractionComponent()
+ * @generated
+ */
+ int INTERACTION_COMPONENT = 9;
+
+ /**
+ * The feature id for the '<em><b>For Distribution</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTERACTION_COMPONENT__FOR_DISTRIBUTION = 0;
+
+ /**
+ * The feature id for the '<em><b>Connection Pattern</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTERACTION_COMPONENT__CONNECTION_PATTERN = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTERACTION_COMPONENT__BASE_CLASS = 2;
+
+ /**
+ * The number of structural features of the '<em>Interaction Component</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTERACTION_COMPONENT_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.SingletonImpl <em>Singleton</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.SingletonImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getSingleton()
+ * @generated
+ */
+ int SINGLETON = 10;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLETON__BASE_CLASS = 0;
+
+ /**
+ * The number of structural features of the '<em>Singleton</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLETON_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.ConfigurableElementInstanceImpl <em>Configurable Element Instance</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ConfigurableElementInstanceImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getConfigurableElementInstance()
+ * @generated
+ */
+ int CONFIGURABLE_ELEMENT_INSTANCE = 12;
+
+ /**
+ * The feature id for the '<em><b>Configuration</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONFIGURABLE_ELEMENT_INSTANCE__CONFIGURATION = 0;
+
+ /**
+ * The number of structural features of the '<em>Configurable Element Instance</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONFIGURABLE_ELEMENT_INSTANCE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.ConnectorImpl <em>Connector</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ConnectorImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getConnector()
+ * @generated
+ */
+ int CONNECTOR = 11;
+
+ /**
+ * The feature id for the '<em><b>Configuration</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONNECTOR__CONFIGURATION = CONFIGURABLE_ELEMENT_INSTANCE__CONFIGURATION;
+
+ /**
+ * The feature id for the '<em><b>Base Connector</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONNECTOR__BASE_CONNECTOR = CONFIGURABLE_ELEMENT_INSTANCE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Ic</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONNECTOR__IC = CONFIGURABLE_ELEMENT_INSTANCE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONNECTOR__BASE_PROPERTY = CONFIGURABLE_ELEMENT_INSTANCE_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Connector</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONNECTOR_FEATURE_COUNT = CONFIGURABLE_ELEMENT_INSTANCE_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.UseInstanceConfiguratorImpl <em>Use Instance Configurator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.UseInstanceConfiguratorImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getUseInstanceConfigurator()
+ * @generated
+ */
+ int USE_INSTANCE_CONFIGURATOR = 13;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int USE_INSTANCE_CONFIGURATOR__BASE_CLASS = 0;
+
+ /**
+ * The feature id for the '<em><b>Configurator</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int USE_INSTANCE_CONFIGURATOR__CONFIGURATOR = 1;
+
+ /**
+ * The number of structural features of the '<em>Use Instance Configurator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int USE_INSTANCE_CONFIGURATOR_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.InstanceConfiguratorImpl <em>Instance Configurator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.InstanceConfiguratorImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getInstanceConfigurator()
+ * @generated
+ */
+ int INSTANCE_CONFIGURATOR = 14;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_CONFIGURATOR__BASE_CLASS = 0;
+
+ /**
+ * The feature id for the '<em><b>On Node Model</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_CONFIGURATOR__ON_NODE_MODEL = 1;
+
+ /**
+ * The number of structural features of the '<em>Instance Configurator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_CONFIGURATOR_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.RuleApplicationImpl <em>Rule Application</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.RuleApplicationImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getRuleApplication()
+ * @generated
+ */
+ int RULE_APPLICATION = 15;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RULE_APPLICATION__BASE_CLASS = 0;
+
+ /**
+ * The feature id for the '<em><b>Container Rule</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RULE_APPLICATION__CONTAINER_RULE = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Package</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RULE_APPLICATION__BASE_PACKAGE = 2;
+
+ /**
+ * The number of structural features of the '<em>Rule Application</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RULE_APPLICATION_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.ContainerRuleImpl <em>Container Rule</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ContainerRuleImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getContainerRule()
+ * @generated
+ */
+ int CONTAINER_RULE = 16;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTAINER_RULE__BASE_CLASS = 0;
+
+ /**
+ * The feature id for the '<em><b>For Config</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTAINER_RULE__FOR_CONFIG = 1;
+
+ /**
+ * The feature id for the '<em><b>Kind</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTAINER_RULE__KIND = 2;
+
+ /**
+ * The number of structural features of the '<em>Container Rule</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTAINER_RULE_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.ConfigOptionImpl <em>Config Option</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ConfigOptionImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getConfigOption()
+ * @generated
+ */
+ int CONFIG_OPTION = 17;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONFIG_OPTION__BASE_CLASS = 0;
+
+ /**
+ * The number of structural features of the '<em>Config Option</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONFIG_OPTION_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.PortImpl <em>Port</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.PortImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getPort()
+ * @generated
+ */
+ int PORT = 19;
+
+ /**
+ * The feature id for the '<em><b>Configuration</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PORT__CONFIGURATION = CONFIGURABLE_ELEMENT_INSTANCE__CONFIGURATION;
+
+ /**
+ * The feature id for the '<em><b>Base Port</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PORT__BASE_PORT = CONFIGURABLE_ELEMENT_INSTANCE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Kind</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PORT__KIND = CONFIGURABLE_ELEMENT_INSTANCE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PORT__TYPE = CONFIGURABLE_ELEMENT_INSTANCE_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Port</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PORT_FEATURE_COUNT = CONFIGURABLE_ELEMENT_INSTANCE_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.TemplatePortImpl <em>Template Port</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.TemplatePortImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getTemplatePort()
+ * @generated
+ */
+ int TEMPLATE_PORT = 18;
+
+ /**
+ * The feature id for the '<em><b>Configuration</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPLATE_PORT__CONFIGURATION = PORT__CONFIGURATION;
+
+ /**
+ * The feature id for the '<em><b>Base Port</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPLATE_PORT__BASE_PORT = PORT__BASE_PORT;
+
+ /**
+ * The feature id for the '<em><b>Kind</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPLATE_PORT__KIND = PORT__KIND;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPLATE_PORT__TYPE = PORT__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Bound Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPLATE_PORT__BOUND_TYPE = PORT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Template Port</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPLATE_PORT_FEATURE_COUNT = PORT_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.PortKindImpl <em>Port Kind</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.PortKindImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getPortKind()
+ * @generated
+ */
+ int PORT_KIND = 20;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PORT_KIND__BASE_CLASS = 0;
+
+ /**
+ * The feature id for the '<em><b>Provided Interface</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PORT_KIND__PROVIDED_INTERFACE = 1;
+
+ /**
+ * The feature id for the '<em><b>Required Interface</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PORT_KIND__REQUIRED_INTERFACE = 2;
+
+ /**
+ * The feature id for the '<em><b>Extended Port</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PORT_KIND__EXTENDED_PORT = 3;
+
+ /**
+ * The number of structural features of the '<em>Port Kind</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PORT_KIND_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.DeploymentPlanImpl <em>Deployment Plan</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.DeploymentPlanImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getDeploymentPlan()
+ * @generated
+ */
+ int DEPLOYMENT_PLAN = 21;
+
+ /**
+ * The feature id for the '<em><b>Main Instance</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEPLOYMENT_PLAN__MAIN_INSTANCE = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Package</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEPLOYMENT_PLAN__BASE_PACKAGE = 1;
+
+ /**
+ * The number of structural features of the '<em>Deployment Plan</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEPLOYMENT_PLAN_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.DerivedElementImpl <em>Derived Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.DerivedElementImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getDerivedElement()
+ * @generated
+ */
+ int DERIVED_ELEMENT = 22;
+
+ /**
+ * The feature id for the '<em><b>Base Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DERIVED_ELEMENT__BASE_ELEMENT = 0;
+
+ /**
+ * The feature id for the '<em><b>Source</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DERIVED_ELEMENT__SOURCE = 1;
+
+ /**
+ * The number of structural features of the '<em>Derived Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DERIVED_ELEMENT_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.CompImplTemplateImpl <em>Comp Impl Template</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.CompImplTemplateImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getCompImplTemplate()
+ * @generated
+ */
+ int COMP_IMPL_TEMPLATE = 23;
+
+ /**
+ * The feature id for the '<em><b>Template Defs</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMP_IMPL_TEMPLATE__TEMPLATE_DEFS = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMP_IMPL_TEMPLATE__BASE_CLASS = 1;
+
+ /**
+ * The number of structural features of the '<em>Comp Impl Template</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMP_IMPL_TEMPLATE_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.ImplementationPropertiesImpl <em>Implementation Properties</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ImplementationPropertiesImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getImplementationProperties()
+ * @generated
+ */
+ int IMPLEMENTATION_PROPERTIES = 24;
+
+ /**
+ * The feature id for the '<em><b>Size RAM</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPLEMENTATION_PROPERTIES__SIZE_RAM = 0;
+
+ /**
+ * The feature id for the '<em><b>Supported OS</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPLEMENTATION_PROPERTIES__SUPPORTED_OS = 1;
+
+ /**
+ * The feature id for the '<em><b>Arch</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPLEMENTATION_PROPERTIES__ARCH = 2;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPLEMENTATION_PROPERTIES__BASE_CLASS = 3;
+
+ /**
+ * The feature id for the '<em><b>Size ROM</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPLEMENTATION_PROPERTIES__SIZE_ROM = 4;
+
+ /**
+ * The feature id for the '<em><b>Supported Target Arch</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPLEMENTATION_PROPERTIES__SUPPORTED_TARGET_ARCH = 5;
+
+ /**
+ * The number of structural features of the '<em>Implementation Properties</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPLEMENTATION_PROPERTIES_FEATURE_COUNT = 6;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.OperatingSystemImpl <em>Operating System</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.OperatingSystemImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getOperatingSystem()
+ * @generated
+ */
+ int OPERATING_SYSTEM = 25;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OPERATING_SYSTEM__BASE_CLASS = 0;
+
+ /**
+ * The number of structural features of the '<em>Operating System</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OPERATING_SYSTEM_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.TargetArchitectureImpl <em>Target Architecture</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.TargetArchitectureImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getTargetArchitecture()
+ * @generated
+ */
+ int TARGET_ARCHITECTURE = 26;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TARGET_ARCHITECTURE__BASE_CLASS = 0;
+
+ /**
+ * The number of structural features of the '<em>Target Architecture</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TARGET_ARCHITECTURE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.ConfigurationImpl <em>Configuration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ConfigurationImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getConfiguration()
+ * @generated
+ */
+ int CONFIGURATION = 27;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONFIGURATION__BASE_CLASS = 0;
+
+ /**
+ * The feature id for the '<em><b>Config Options</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONFIGURATION__CONFIG_OPTIONS = 1;
+
+ /**
+ * The feature id for the '<em><b>Deployment Plan</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONFIGURATION__DEPLOYMENT_PLAN = 2;
+
+ /**
+ * The number of structural features of the '<em>Configuration</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONFIGURATION_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.InterceptionRuleImpl <em>Interception Rule</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.InterceptionRuleImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getInterceptionRule()
+ * @generated
+ */
+ int INTERCEPTION_RULE = 28;
+
+ /**
+ * The feature id for the '<em><b>Interception Kind</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTERCEPTION_RULE__INTERCEPTION_KIND = 0;
+
+ /**
+ * The feature id for the '<em><b>Interception Set</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTERCEPTION_RULE__INTERCEPTION_SET = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTERCEPTION_RULE__BASE_PROPERTY = 2;
+
+ /**
+ * The feature id for the '<em><b>Base Operation</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTERCEPTION_RULE__BASE_OPERATION = 3;
+
+ /**
+ * The number of structural features of the '<em>Interception Rule</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTERCEPTION_RULE_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.TargetImpl <em>Target</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.TargetImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getTarget()
+ * @generated
+ */
+ int TARGET = 29;
+
+ /**
+ * The feature id for the '<em><b>Target Arch</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TARGET__TARGET_ARCH = 0;
+
+ /**
+ * The feature id for the '<em><b>Options</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TARGET__OPTIONS = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Node</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TARGET__BASE_NODE = 2;
+
+ /**
+ * The feature id for the '<em><b>Used OS</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TARGET__USED_OS = 3;
+
+ /**
+ * The feature id for the '<em><b>Avail RAM</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TARGET__AVAIL_RAM = 4;
+
+ /**
+ * The feature id for the '<em><b>Avail ROM</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TARGET__AVAIL_ROM = 5;
+
+ /**
+ * The feature id for the '<em><b>Compiler</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TARGET__COMPILER = 6;
+
+ /**
+ * The number of structural features of the '<em>Target</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TARGET_FEATURE_COUNT = 7;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.CompilerChainImpl <em>Compiler Chain</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.CompilerChainImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getCompilerChain()
+ * @generated
+ */
+ int COMPILER_CHAIN = 30;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPILER_CHAIN__BASE_CLASS = 0;
+
+ /**
+ * The number of structural features of the '<em>Compiler Chain</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPILER_CHAIN_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.FragmentImpl <em>Fragment</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.FragmentImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getFragment()
+ * @generated
+ */
+ int FRAGMENT = 31;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FRAGMENT__BASE_CLASS = 0;
+
+ /**
+ * The number of structural features of the '<em>Fragment</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FRAGMENT_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.CopyAttributeValueImpl <em>Copy Attribute Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.CopyAttributeValueImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getCopyAttributeValue()
+ * @generated
+ */
+ int COPY_ATTRIBUTE_VALUE = 32;
+
+ /**
+ * The feature id for the '<em><b>Source</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COPY_ATTRIBUTE_VALUE__SOURCE = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COPY_ATTRIBUTE_VALUE__BASE_PROPERTY = 1;
+
+ /**
+ * The number of structural features of the '<em>Copy Attribute Value</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COPY_ATTRIBUTE_VALUE_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.AutoIndexImpl <em>Auto Index</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.AutoIndexImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getAutoIndex()
+ * @generated
+ */
+ int AUTO_INDEX = 33;
+
+ /**
+ * The feature id for the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AUTO_INDEX__BASE_PROPERTY = 0;
+
+ /**
+ * The number of structural features of the '<em>Auto Index</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AUTO_INDEX_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.AutoIndexPerNodeImpl <em>Auto Index Per Node</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.AutoIndexPerNodeImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getAutoIndexPerNode()
+ * @generated
+ */
+ int AUTO_INDEX_PER_NODE = 34;
+
+ /**
+ * The feature id for the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AUTO_INDEX_PER_NODE__BASE_PROPERTY = AUTO_INDEX__BASE_PROPERTY;
+
+ /**
+ * The number of structural features of the '<em>Auto Index Per Node</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AUTO_INDEX_PER_NODE_FEATURE_COUNT = AUTO_INDEX_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.InitPrecedenceImpl <em>Init Precedence</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.InitPrecedenceImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getInitPrecedence()
+ * @generated
+ */
+ int INIT_PRECEDENCE = 35;
+
+ /**
+ * The feature id for the '<em><b>Invoke After</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INIT_PRECEDENCE__INVOKE_AFTER = 0;
+
+ /**
+ * The feature id for the '<em><b>Invoke Before</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INIT_PRECEDENCE__INVOKE_BEFORE = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INIT_PRECEDENCE__BASE_CLASS = 2;
+
+ /**
+ * The number of structural features of the '<em>Init Precedence</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INIT_PRECEDENCE_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.ConnectorConfigurationImpl <em>Connector Configuration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ConnectorConfigurationImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getConnectorConfiguration()
+ * @generated
+ */
+ int CONNECTOR_CONFIGURATION = 36;
+
+ /**
+ * The feature id for the '<em><b>Base Slot</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONNECTOR_CONFIGURATION__BASE_SLOT = 0;
+
+ /**
+ * The feature id for the '<em><b>Connector</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONNECTOR_CONFIGURATION__CONNECTOR = 1;
+
+ /**
+ * The number of structural features of the '<em>Connector Configuration</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONNECTOR_CONFIGURATION_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.BindTemplateImpl <em>Bind Template</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.BindTemplateImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getBindTemplate()
+ * @generated
+ */
+ int BIND_TEMPLATE = 37;
+
+ /**
+ * The feature id for the '<em><b>Actual</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BIND_TEMPLATE__ACTUAL = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BIND_TEMPLATE__BASE_PROPERTY = 1;
+
+ /**
+ * The number of structural features of the '<em>Bind Template</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BIND_TEMPLATE_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.ContainerRuleKind <em>Container Rule Kind</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.ContainerRuleKind
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getContainerRuleKind()
+ * @generated
+ */
+ int CONTAINER_RULE_KIND = 38;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.InterceptionKind <em>Interception Kind</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.InterceptionKind
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getInterceptionKind()
+ * @generated
+ */
+ int INTERCEPTION_KIND = 39;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.Template <em>Template</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Template</em>'.
+ * @see org.eclipse.papyrus.FCM.Template
+ * @generated
+ */
+ EClass getTemplate();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.Template#getBase_Element <em>Base Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Element</em>'.
+ * @see org.eclipse.papyrus.FCM.Template#getBase_Element()
+ * @see #getTemplate()
+ * @generated
+ */
+ EReference getTemplate_Base_Element();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.Template#getHelper <em>Helper</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Helper</em>'.
+ * @see org.eclipse.papyrus.FCM.Template#getHelper()
+ * @see #getTemplate()
+ * @generated
+ */
+ EReference getTemplate_Helper();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.BindingHelper <em>Binding Helper</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Binding Helper</em>'.
+ * @see org.eclipse.papyrus.FCM.BindingHelper
+ * @generated
+ */
+ EClass getBindingHelper();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.BindingHelper#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.BindingHelper#getBase_Class()
+ * @see #getBindingHelper()
+ * @generated
+ */
+ EReference getBindingHelper_Base_Class();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.ConfigurationProperty <em>Configuration Property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Configuration Property</em>'.
+ * @see org.eclipse.papyrus.FCM.ConfigurationProperty
+ * @generated
+ */
+ EClass getConfigurationProperty();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.ConfigurationProperty#getBase_Property <em>Base Property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Property</em>'.
+ * @see org.eclipse.papyrus.FCM.ConfigurationProperty#getBase_Property()
+ * @see #getConfigurationProperty()
+ * @generated
+ */
+ EReference getConfigurationProperty_Base_Property();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.ImplementationGroup <em>Implementation Group</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Implementation Group</em>'.
+ * @see org.eclipse.papyrus.FCM.ImplementationGroup
+ * @generated
+ */
+ EClass getImplementationGroup();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.ImplementationGroup#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.ImplementationGroup#getBase_Class()
+ * @see #getImplementationGroup()
+ * @generated
+ */
+ EReference getImplementationGroup_Base_Class();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.Assembly <em>Assembly</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Assembly</em>'.
+ * @see org.eclipse.papyrus.FCM.Assembly
+ * @generated
+ */
+ EClass getAssembly();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.Assembly#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.Assembly#getBase_Class()
+ * @see #getAssembly()
+ * @generated
+ */
+ EReference getAssembly_Base_Class();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.Flatten <em>Flatten</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Flatten</em>'.
+ * @see org.eclipse.papyrus.FCM.Flatten
+ * @generated
+ */
+ EClass getFlatten();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.Flatten#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.Flatten#getBase_Class()
+ * @see #getFlatten()
+ * @generated
+ */
+ EReference getFlatten_Base_Class();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.CompToOOmapping <em>Comp To OOmapping</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Comp To OOmapping</em>'.
+ * @see org.eclipse.papyrus.FCM.CompToOOmapping
+ * @generated
+ */
+ EClass getCompToOOmapping();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.CompToOOmapping#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.CompToOOmapping#getBase_Class()
+ * @see #getCompToOOmapping()
+ * @generated
+ */
+ EReference getCompToOOmapping_Base_Class();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.ProgLanguage <em>Prog Language</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Prog Language</em>'.
+ * @see org.eclipse.papyrus.FCM.ProgLanguage
+ * @generated
+ */
+ EClass getProgLanguage();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.ProgLanguage#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.ProgLanguage#getBase_Class()
+ * @see #getProgLanguage()
+ * @generated
+ */
+ EReference getProgLanguage_Base_Class();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.CodeGenOptions <em>Code Gen Options</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Code Gen Options</em>'.
+ * @see org.eclipse.papyrus.FCM.CodeGenOptions
+ * @generated
+ */
+ EClass getCodeGenOptions();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.CodeGenOptions#getBase_Package <em>Base Package</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Package</em>'.
+ * @see org.eclipse.papyrus.FCM.CodeGenOptions#getBase_Package()
+ * @see #getCodeGenOptions()
+ * @generated
+ */
+ EReference getCodeGenOptions_Base_Package();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.CodeGenOptions#getCompToOOmapping <em>Comp To OOmapping</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Comp To OOmapping</em>'.
+ * @see org.eclipse.papyrus.FCM.CodeGenOptions#getCompToOOmapping()
+ * @see #getCodeGenOptions()
+ * @generated
+ */
+ EReference getCodeGenOptions_CompToOOmapping();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.CodeGenOptions#getProgLanguage <em>Prog Language</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Prog Language</em>'.
+ * @see org.eclipse.papyrus.FCM.CodeGenOptions#getProgLanguage()
+ * @see #getCodeGenOptions()
+ * @generated
+ */
+ EReference getCodeGenOptions_ProgLanguage();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.InteractionComponent <em>Interaction Component</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Interaction Component</em>'.
+ * @see org.eclipse.papyrus.FCM.InteractionComponent
+ * @generated
+ */
+ EClass getInteractionComponent();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.FCM.InteractionComponent#isForDistribution <em>For Distribution</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>For Distribution</em>'.
+ * @see org.eclipse.papyrus.FCM.InteractionComponent#isForDistribution()
+ * @see #getInteractionComponent()
+ * @generated
+ */
+ EAttribute getInteractionComponent_ForDistribution();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.InteractionComponent#getConnectionPattern <em>Connection Pattern</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Connection Pattern</em>'.
+ * @see org.eclipse.papyrus.FCM.InteractionComponent#getConnectionPattern()
+ * @see #getInteractionComponent()
+ * @generated
+ */
+ EReference getInteractionComponent_ConnectionPattern();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.InteractionComponent#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.InteractionComponent#getBase_Class()
+ * @see #getInteractionComponent()
+ * @generated
+ */
+ EReference getInteractionComponent_Base_Class();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.Singleton <em>Singleton</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Singleton</em>'.
+ * @see org.eclipse.papyrus.FCM.Singleton
+ * @generated
+ */
+ EClass getSingleton();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.Singleton#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.Singleton#getBase_Class()
+ * @see #getSingleton()
+ * @generated
+ */
+ EReference getSingleton_Base_Class();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.Connector <em>Connector</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Connector</em>'.
+ * @see org.eclipse.papyrus.FCM.Connector
+ * @generated
+ */
+ EClass getConnector();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.Connector#getBase_Connector <em>Base Connector</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Connector</em>'.
+ * @see org.eclipse.papyrus.FCM.Connector#getBase_Connector()
+ * @see #getConnector()
+ * @generated
+ */
+ EReference getConnector_Base_Connector();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.Connector#getIc <em>Ic</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Ic</em>'.
+ * @see org.eclipse.papyrus.FCM.Connector#getIc()
+ * @see #getConnector()
+ * @generated
+ */
+ EReference getConnector_Ic();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.Connector#getBase_Property <em>Base Property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Property</em>'.
+ * @see org.eclipse.papyrus.FCM.Connector#getBase_Property()
+ * @see #getConnector()
+ * @generated
+ */
+ EReference getConnector_Base_Property();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.ConfigurableElementInstance <em>Configurable Element Instance</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Configurable Element Instance</em>'.
+ * @see org.eclipse.papyrus.FCM.ConfigurableElementInstance
+ * @generated
+ */
+ EClass getConfigurableElementInstance();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.ConfigurableElementInstance#getConfiguration <em>Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Configuration</em>'.
+ * @see org.eclipse.papyrus.FCM.ConfigurableElementInstance#getConfiguration()
+ * @see #getConfigurableElementInstance()
+ * @generated
+ */
+ EReference getConfigurableElementInstance_Configuration();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.UseInstanceConfigurator <em>Use Instance Configurator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Use Instance Configurator</em>'.
+ * @see org.eclipse.papyrus.FCM.UseInstanceConfigurator
+ * @generated
+ */
+ EClass getUseInstanceConfigurator();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.UseInstanceConfigurator#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.UseInstanceConfigurator#getBase_Class()
+ * @see #getUseInstanceConfigurator()
+ * @generated
+ */
+ EReference getUseInstanceConfigurator_Base_Class();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.UseInstanceConfigurator#getConfigurator <em>Configurator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Configurator</em>'.
+ * @see org.eclipse.papyrus.FCM.UseInstanceConfigurator#getConfigurator()
+ * @see #getUseInstanceConfigurator()
+ * @generated
+ */
+ EReference getUseInstanceConfigurator_Configurator();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.InstanceConfigurator <em>Instance Configurator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Instance Configurator</em>'.
+ * @see org.eclipse.papyrus.FCM.InstanceConfigurator
+ * @generated
+ */
+ EClass getInstanceConfigurator();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.InstanceConfigurator#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.InstanceConfigurator#getBase_Class()
+ * @see #getInstanceConfigurator()
+ * @generated
+ */
+ EReference getInstanceConfigurator_Base_Class();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.FCM.InstanceConfigurator#isOnNodeModel <em>On Node Model</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>On Node Model</em>'.
+ * @see org.eclipse.papyrus.FCM.InstanceConfigurator#isOnNodeModel()
+ * @see #getInstanceConfigurator()
+ * @generated
+ */
+ EAttribute getInstanceConfigurator_OnNodeModel();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.RuleApplication <em>Rule Application</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Rule Application</em>'.
+ * @see org.eclipse.papyrus.FCM.RuleApplication
+ * @generated
+ */
+ EClass getRuleApplication();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.RuleApplication#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.RuleApplication#getBase_Class()
+ * @see #getRuleApplication()
+ * @generated
+ */
+ EReference getRuleApplication_Base_Class();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.FCM.RuleApplication#getContainerRule <em>Container Rule</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Container Rule</em>'.
+ * @see org.eclipse.papyrus.FCM.RuleApplication#getContainerRule()
+ * @see #getRuleApplication()
+ * @generated
+ */
+ EReference getRuleApplication_ContainerRule();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.RuleApplication#getBase_Package <em>Base Package</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Package</em>'.
+ * @see org.eclipse.papyrus.FCM.RuleApplication#getBase_Package()
+ * @see #getRuleApplication()
+ * @generated
+ */
+ EReference getRuleApplication_Base_Package();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.ContainerRule <em>Container Rule</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Container Rule</em>'.
+ * @see org.eclipse.papyrus.FCM.ContainerRule
+ * @generated
+ */
+ EClass getContainerRule();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.ContainerRule#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.ContainerRule#getBase_Class()
+ * @see #getContainerRule()
+ * @generated
+ */
+ EReference getContainerRule_Base_Class();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.FCM.ContainerRule#getForConfig <em>For Config</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>For Config</em>'.
+ * @see org.eclipse.papyrus.FCM.ContainerRule#getForConfig()
+ * @see #getContainerRule()
+ * @generated
+ */
+ EReference getContainerRule_ForConfig();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.FCM.ContainerRule#getKind <em>Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Kind</em>'.
+ * @see org.eclipse.papyrus.FCM.ContainerRule#getKind()
+ * @see #getContainerRule()
+ * @generated
+ */
+ EAttribute getContainerRule_Kind();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.ConfigOption <em>Config Option</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Config Option</em>'.
+ * @see org.eclipse.papyrus.FCM.ConfigOption
+ * @generated
+ */
+ EClass getConfigOption();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.ConfigOption#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.ConfigOption#getBase_Class()
+ * @see #getConfigOption()
+ * @generated
+ */
+ EReference getConfigOption_Base_Class();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.TemplatePort <em>Template Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Template Port</em>'.
+ * @see org.eclipse.papyrus.FCM.TemplatePort
+ * @generated
+ */
+ EClass getTemplatePort();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.TemplatePort#getBoundType <em>Bound Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Bound Type</em>'.
+ * @see org.eclipse.papyrus.FCM.TemplatePort#getBoundType()
+ * @see #getTemplatePort()
+ * @generated
+ */
+ EReference getTemplatePort_BoundType();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.Port <em>Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Port</em>'.
+ * @see org.eclipse.papyrus.FCM.Port
+ * @generated
+ */
+ EClass getPort();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.Port#getBase_Port <em>Base Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Port</em>'.
+ * @see org.eclipse.papyrus.FCM.Port#getBase_Port()
+ * @see #getPort()
+ * @generated
+ */
+ EReference getPort_Base_Port();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.Port#getKind <em>Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Kind</em>'.
+ * @see org.eclipse.papyrus.FCM.Port#getKind()
+ * @see #getPort()
+ * @generated
+ */
+ EReference getPort_Kind();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.Port#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Type</em>'.
+ * @see org.eclipse.papyrus.FCM.Port#getType()
+ * @see #getPort()
+ * @generated
+ */
+ EReference getPort_Type();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.PortKind <em>Port Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Port Kind</em>'.
+ * @see org.eclipse.papyrus.FCM.PortKind
+ * @generated
+ */
+ EClass getPortKind();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.PortKind#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.PortKind#getBase_Class()
+ * @see #getPortKind()
+ * @generated
+ */
+ EReference getPortKind_Base_Class();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.PortKind#getProvidedInterface <em>Provided Interface</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Provided Interface</em>'.
+ * @see org.eclipse.papyrus.FCM.PortKind#getProvidedInterface()
+ * @see #getPortKind()
+ * @generated
+ */
+ EReference getPortKind_ProvidedInterface();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.PortKind#getRequiredInterface <em>Required Interface</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Required Interface</em>'.
+ * @see org.eclipse.papyrus.FCM.PortKind#getRequiredInterface()
+ * @see #getPortKind()
+ * @generated
+ */
+ EReference getPortKind_RequiredInterface();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.FCM.PortKind#isExtendedPort <em>Extended Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Extended Port</em>'.
+ * @see org.eclipse.papyrus.FCM.PortKind#isExtendedPort()
+ * @see #getPortKind()
+ * @generated
+ */
+ EAttribute getPortKind_ExtendedPort();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.DeploymentPlan <em>Deployment Plan</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Deployment Plan</em>'.
+ * @see org.eclipse.papyrus.FCM.DeploymentPlan
+ * @generated
+ */
+ EClass getDeploymentPlan();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.DeploymentPlan#getMainInstance <em>Main Instance</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Main Instance</em>'.
+ * @see org.eclipse.papyrus.FCM.DeploymentPlan#getMainInstance()
+ * @see #getDeploymentPlan()
+ * @generated
+ */
+ EReference getDeploymentPlan_MainInstance();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.DeploymentPlan#getBase_Package <em>Base Package</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Package</em>'.
+ * @see org.eclipse.papyrus.FCM.DeploymentPlan#getBase_Package()
+ * @see #getDeploymentPlan()
+ * @generated
+ */
+ EReference getDeploymentPlan_Base_Package();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.DerivedElement <em>Derived Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Derived Element</em>'.
+ * @see org.eclipse.papyrus.FCM.DerivedElement
+ * @generated
+ */
+ EClass getDerivedElement();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.DerivedElement#getBase_Element <em>Base Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Element</em>'.
+ * @see org.eclipse.papyrus.FCM.DerivedElement#getBase_Element()
+ * @see #getDerivedElement()
+ * @generated
+ */
+ EReference getDerivedElement_Base_Element();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.DerivedElement#getSource <em>Source</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Source</em>'.
+ * @see org.eclipse.papyrus.FCM.DerivedElement#getSource()
+ * @see #getDerivedElement()
+ * @generated
+ */
+ EReference getDerivedElement_Source();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.CompImplTemplate <em>Comp Impl Template</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Comp Impl Template</em>'.
+ * @see org.eclipse.papyrus.FCM.CompImplTemplate
+ * @generated
+ */
+ EClass getCompImplTemplate();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.FCM.CompImplTemplate#getTemplateDefs <em>Template Defs</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Template Defs</em>'.
+ * @see org.eclipse.papyrus.FCM.CompImplTemplate#getTemplateDefs()
+ * @see #getCompImplTemplate()
+ * @generated
+ */
+ EAttribute getCompImplTemplate_TemplateDefs();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.CompImplTemplate#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.CompImplTemplate#getBase_Class()
+ * @see #getCompImplTemplate()
+ * @generated
+ */
+ EReference getCompImplTemplate_Base_Class();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.ImplementationProperties <em>Implementation Properties</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Implementation Properties</em>'.
+ * @see org.eclipse.papyrus.FCM.ImplementationProperties
+ * @generated
+ */
+ EClass getImplementationProperties();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.FCM.ImplementationProperties#getSizeRAM <em>Size RAM</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Size RAM</em>'.
+ * @see org.eclipse.papyrus.FCM.ImplementationProperties#getSizeRAM()
+ * @see #getImplementationProperties()
+ * @generated
+ */
+ EAttribute getImplementationProperties_SizeRAM();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.FCM.ImplementationProperties#getSupportedOS <em>Supported OS</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Supported OS</em>'.
+ * @see org.eclipse.papyrus.FCM.ImplementationProperties#getSupportedOS()
+ * @see #getImplementationProperties()
+ * @generated
+ */
+ EReference getImplementationProperties_SupportedOS();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.FCM.ImplementationProperties#getArch <em>Arch</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Arch</em>'.
+ * @see org.eclipse.papyrus.FCM.ImplementationProperties#getArch()
+ * @see #getImplementationProperties()
+ * @generated
+ */
+ EReference getImplementationProperties_Arch();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.ImplementationProperties#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.ImplementationProperties#getBase_Class()
+ * @see #getImplementationProperties()
+ * @generated
+ */
+ EReference getImplementationProperties_Base_Class();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.FCM.ImplementationProperties#getSizeROM <em>Size ROM</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Size ROM</em>'.
+ * @see org.eclipse.papyrus.FCM.ImplementationProperties#getSizeROM()
+ * @see #getImplementationProperties()
+ * @generated
+ */
+ EAttribute getImplementationProperties_SizeROM();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.ImplementationProperties#getSupportedTargetArch <em>Supported Target Arch</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Supported Target Arch</em>'.
+ * @see org.eclipse.papyrus.FCM.ImplementationProperties#getSupportedTargetArch()
+ * @see #getImplementationProperties()
+ * @generated
+ */
+ EReference getImplementationProperties_SupportedTargetArch();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.OperatingSystem <em>Operating System</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Operating System</em>'.
+ * @see org.eclipse.papyrus.FCM.OperatingSystem
+ * @generated
+ */
+ EClass getOperatingSystem();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.OperatingSystem#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.OperatingSystem#getBase_Class()
+ * @see #getOperatingSystem()
+ * @generated
+ */
+ EReference getOperatingSystem_Base_Class();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.TargetArchitecture <em>Target Architecture</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Target Architecture</em>'.
+ * @see org.eclipse.papyrus.FCM.TargetArchitecture
+ * @generated
+ */
+ EClass getTargetArchitecture();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.TargetArchitecture#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.TargetArchitecture#getBase_Class()
+ * @see #getTargetArchitecture()
+ * @generated
+ */
+ EReference getTargetArchitecture_Base_Class();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.Configuration <em>Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Configuration</em>'.
+ * @see org.eclipse.papyrus.FCM.Configuration
+ * @generated
+ */
+ EClass getConfiguration();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.Configuration#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.Configuration#getBase_Class()
+ * @see #getConfiguration()
+ * @generated
+ */
+ EReference getConfiguration_Base_Class();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.FCM.Configuration#getConfigOptions <em>Config Options</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Config Options</em>'.
+ * @see org.eclipse.papyrus.FCM.Configuration#getConfigOptions()
+ * @see #getConfiguration()
+ * @generated
+ */
+ EReference getConfiguration_ConfigOptions();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.Configuration#getDeploymentPlan <em>Deployment Plan</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Deployment Plan</em>'.
+ * @see org.eclipse.papyrus.FCM.Configuration#getDeploymentPlan()
+ * @see #getConfiguration()
+ * @generated
+ */
+ EReference getConfiguration_DeploymentPlan();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.InterceptionRule <em>Interception Rule</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Interception Rule</em>'.
+ * @see org.eclipse.papyrus.FCM.InterceptionRule
+ * @generated
+ */
+ EClass getInterceptionRule();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.FCM.InterceptionRule#getInterceptionKind <em>Interception Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Interception Kind</em>'.
+ * @see org.eclipse.papyrus.FCM.InterceptionRule#getInterceptionKind()
+ * @see #getInterceptionRule()
+ * @generated
+ */
+ EAttribute getInterceptionRule_InterceptionKind();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.FCM.InterceptionRule#getInterceptionSet <em>Interception Set</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Interception Set</em>'.
+ * @see org.eclipse.papyrus.FCM.InterceptionRule#getInterceptionSet()
+ * @see #getInterceptionRule()
+ * @generated
+ */
+ EReference getInterceptionRule_InterceptionSet();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.InterceptionRule#getBase_Property <em>Base Property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Property</em>'.
+ * @see org.eclipse.papyrus.FCM.InterceptionRule#getBase_Property()
+ * @see #getInterceptionRule()
+ * @generated
+ */
+ EReference getInterceptionRule_Base_Property();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.InterceptionRule#getBase_Operation <em>Base Operation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Operation</em>'.
+ * @see org.eclipse.papyrus.FCM.InterceptionRule#getBase_Operation()
+ * @see #getInterceptionRule()
+ * @generated
+ */
+ EReference getInterceptionRule_Base_Operation();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.Target <em>Target</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Target</em>'.
+ * @see org.eclipse.papyrus.FCM.Target
+ * @generated
+ */
+ EClass getTarget();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.Target#getTargetArch <em>Target Arch</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Target Arch</em>'.
+ * @see org.eclipse.papyrus.FCM.Target#getTargetArch()
+ * @see #getTarget()
+ * @generated
+ */
+ EReference getTarget_TargetArch();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.FCM.Target#getOptions <em>Options</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Options</em>'.
+ * @see org.eclipse.papyrus.FCM.Target#getOptions()
+ * @see #getTarget()
+ * @generated
+ */
+ EReference getTarget_Options();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.Target#getBase_Node <em>Base Node</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Node</em>'.
+ * @see org.eclipse.papyrus.FCM.Target#getBase_Node()
+ * @see #getTarget()
+ * @generated
+ */
+ EReference getTarget_Base_Node();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.Target#getUsedOS <em>Used OS</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Used OS</em>'.
+ * @see org.eclipse.papyrus.FCM.Target#getUsedOS()
+ * @see #getTarget()
+ * @generated
+ */
+ EReference getTarget_UsedOS();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.FCM.Target#getAvailRAM <em>Avail RAM</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Avail RAM</em>'.
+ * @see org.eclipse.papyrus.FCM.Target#getAvailRAM()
+ * @see #getTarget()
+ * @generated
+ */
+ EAttribute getTarget_AvailRAM();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.FCM.Target#getAvailROM <em>Avail ROM</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Avail ROM</em>'.
+ * @see org.eclipse.papyrus.FCM.Target#getAvailROM()
+ * @see #getTarget()
+ * @generated
+ */
+ EAttribute getTarget_AvailROM();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.Target#getCompiler <em>Compiler</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Compiler</em>'.
+ * @see org.eclipse.papyrus.FCM.Target#getCompiler()
+ * @see #getTarget()
+ * @generated
+ */
+ EReference getTarget_Compiler();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.CompilerChain <em>Compiler Chain</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Compiler Chain</em>'.
+ * @see org.eclipse.papyrus.FCM.CompilerChain
+ * @generated
+ */
+ EClass getCompilerChain();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.CompilerChain#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.CompilerChain#getBase_Class()
+ * @see #getCompilerChain()
+ * @generated
+ */
+ EReference getCompilerChain_Base_Class();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.Fragment <em>Fragment</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Fragment</em>'.
+ * @see org.eclipse.papyrus.FCM.Fragment
+ * @generated
+ */
+ EClass getFragment();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.Fragment#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.Fragment#getBase_Class()
+ * @see #getFragment()
+ * @generated
+ */
+ EReference getFragment_Base_Class();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.CopyAttributeValue <em>Copy Attribute Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Copy Attribute Value</em>'.
+ * @see org.eclipse.papyrus.FCM.CopyAttributeValue
+ * @generated
+ */
+ EClass getCopyAttributeValue();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.CopyAttributeValue#getSource <em>Source</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Source</em>'.
+ * @see org.eclipse.papyrus.FCM.CopyAttributeValue#getSource()
+ * @see #getCopyAttributeValue()
+ * @generated
+ */
+ EReference getCopyAttributeValue_Source();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.CopyAttributeValue#getBase_Property <em>Base Property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Property</em>'.
+ * @see org.eclipse.papyrus.FCM.CopyAttributeValue#getBase_Property()
+ * @see #getCopyAttributeValue()
+ * @generated
+ */
+ EReference getCopyAttributeValue_Base_Property();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.AutoIndex <em>Auto Index</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Auto Index</em>'.
+ * @see org.eclipse.papyrus.FCM.AutoIndex
+ * @generated
+ */
+ EClass getAutoIndex();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.AutoIndex#getBase_Property <em>Base Property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Property</em>'.
+ * @see org.eclipse.papyrus.FCM.AutoIndex#getBase_Property()
+ * @see #getAutoIndex()
+ * @generated
+ */
+ EReference getAutoIndex_Base_Property();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.AutoIndexPerNode <em>Auto Index Per Node</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Auto Index Per Node</em>'.
+ * @see org.eclipse.papyrus.FCM.AutoIndexPerNode
+ * @generated
+ */
+ EClass getAutoIndexPerNode();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.InitPrecedence <em>Init Precedence</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Init Precedence</em>'.
+ * @see org.eclipse.papyrus.FCM.InitPrecedence
+ * @generated
+ */
+ EClass getInitPrecedence();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.FCM.InitPrecedence#getInvokeAfter <em>Invoke After</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Invoke After</em>'.
+ * @see org.eclipse.papyrus.FCM.InitPrecedence#getInvokeAfter()
+ * @see #getInitPrecedence()
+ * @generated
+ */
+ EReference getInitPrecedence_InvokeAfter();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.FCM.InitPrecedence#getInvokeBefore <em>Invoke Before</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Invoke Before</em>'.
+ * @see org.eclipse.papyrus.FCM.InitPrecedence#getInvokeBefore()
+ * @see #getInitPrecedence()
+ * @generated
+ */
+ EReference getInitPrecedence_InvokeBefore();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.InitPrecedence#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.InitPrecedence#getBase_Class()
+ * @see #getInitPrecedence()
+ * @generated
+ */
+ EReference getInitPrecedence_Base_Class();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.ConnectorConfiguration <em>Connector Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Connector Configuration</em>'.
+ * @see org.eclipse.papyrus.FCM.ConnectorConfiguration
+ * @generated
+ */
+ EClass getConnectorConfiguration();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.ConnectorConfiguration#getBase_Slot <em>Base Slot</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Slot</em>'.
+ * @see org.eclipse.papyrus.FCM.ConnectorConfiguration#getBase_Slot()
+ * @see #getConnectorConfiguration()
+ * @generated
+ */
+ EReference getConnectorConfiguration_Base_Slot();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.ConnectorConfiguration#getConnector <em>Connector</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Connector</em>'.
+ * @see org.eclipse.papyrus.FCM.ConnectorConfiguration#getConnector()
+ * @see #getConnectorConfiguration()
+ * @generated
+ */
+ EReference getConnectorConfiguration_Connector();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.BindTemplate <em>Bind Template</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Bind Template</em>'.
+ * @see org.eclipse.papyrus.FCM.BindTemplate
+ * @generated
+ */
+ EClass getBindTemplate();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.FCM.BindTemplate#getActual <em>Actual</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Actual</em>'.
+ * @see org.eclipse.papyrus.FCM.BindTemplate#getActual()
+ * @see #getBindTemplate()
+ * @generated
+ */
+ EReference getBindTemplate_Actual();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.BindTemplate#getBase_Property <em>Base Property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Property</em>'.
+ * @see org.eclipse.papyrus.FCM.BindTemplate#getBase_Property()
+ * @see #getBindTemplate()
+ * @generated
+ */
+ EReference getBindTemplate_Base_Property();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.papyrus.FCM.ContainerRuleKind <em>Container Rule Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Container Rule Kind</em>'.
+ * @see org.eclipse.papyrus.FCM.ContainerRuleKind
+ * @generated
+ */
+ EEnum getContainerRuleKind();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.papyrus.FCM.InterceptionKind <em>Interception Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Interception Kind</em>'.
+ * @see org.eclipse.papyrus.FCM.InterceptionKind
+ * @generated
+ */
+ EEnum getInterceptionKind();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ FCMFactory getFCMFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.TemplateImpl <em>Template</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.TemplateImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getTemplate()
+ * @generated
+ */
+ EClass TEMPLATE = eINSTANCE.getTemplate();
+
+ /**
+ * The meta object literal for the '<em><b>Base Element</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TEMPLATE__BASE_ELEMENT = eINSTANCE.getTemplate_Base_Element();
+
+ /**
+ * The meta object literal for the '<em><b>Helper</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TEMPLATE__HELPER = eINSTANCE.getTemplate_Helper();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.BindingHelperImpl <em>Binding Helper</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.BindingHelperImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getBindingHelper()
+ * @generated
+ */
+ EClass BINDING_HELPER = eINSTANCE.getBindingHelper();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference BINDING_HELPER__BASE_CLASS = eINSTANCE.getBindingHelper_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.ConfigurationPropertyImpl <em>Configuration Property</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ConfigurationPropertyImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getConfigurationProperty()
+ * @generated
+ */
+ EClass CONFIGURATION_PROPERTY = eINSTANCE.getConfigurationProperty();
+
+ /**
+ * The meta object literal for the '<em><b>Base Property</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONFIGURATION_PROPERTY__BASE_PROPERTY = eINSTANCE.getConfigurationProperty_Base_Property();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.ImplementationGroupImpl <em>Implementation Group</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ImplementationGroupImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getImplementationGroup()
+ * @generated
+ */
+ EClass IMPLEMENTATION_GROUP = eINSTANCE.getImplementationGroup();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference IMPLEMENTATION_GROUP__BASE_CLASS = eINSTANCE.getImplementationGroup_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.AssemblyImpl <em>Assembly</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.AssemblyImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getAssembly()
+ * @generated
+ */
+ EClass ASSEMBLY = eINSTANCE.getAssembly();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ASSEMBLY__BASE_CLASS = eINSTANCE.getAssembly_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.FlattenImpl <em>Flatten</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.FlattenImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getFlatten()
+ * @generated
+ */
+ EClass FLATTEN = eINSTANCE.getFlatten();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FLATTEN__BASE_CLASS = eINSTANCE.getFlatten_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.CompToOOmappingImpl <em>Comp To OOmapping</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.CompToOOmappingImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getCompToOOmapping()
+ * @generated
+ */
+ EClass COMP_TO_OOMAPPING = eINSTANCE.getCompToOOmapping();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference COMP_TO_OOMAPPING__BASE_CLASS = eINSTANCE.getCompToOOmapping_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.ProgLanguageImpl <em>Prog Language</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ProgLanguageImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getProgLanguage()
+ * @generated
+ */
+ EClass PROG_LANGUAGE = eINSTANCE.getProgLanguage();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PROG_LANGUAGE__BASE_CLASS = eINSTANCE.getProgLanguage_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.CodeGenOptionsImpl <em>Code Gen Options</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.CodeGenOptionsImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getCodeGenOptions()
+ * @generated
+ */
+ EClass CODE_GEN_OPTIONS = eINSTANCE.getCodeGenOptions();
+
+ /**
+ * The meta object literal for the '<em><b>Base Package</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CODE_GEN_OPTIONS__BASE_PACKAGE = eINSTANCE.getCodeGenOptions_Base_Package();
+
+ /**
+ * The meta object literal for the '<em><b>Comp To OOmapping</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CODE_GEN_OPTIONS__COMP_TO_OOMAPPING = eINSTANCE.getCodeGenOptions_CompToOOmapping();
+
+ /**
+ * The meta object literal for the '<em><b>Prog Language</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CODE_GEN_OPTIONS__PROG_LANGUAGE = eINSTANCE.getCodeGenOptions_ProgLanguage();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.InteractionComponentImpl <em>Interaction Component</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.InteractionComponentImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getInteractionComponent()
+ * @generated
+ */
+ EClass INTERACTION_COMPONENT = eINSTANCE.getInteractionComponent();
+
+ /**
+ * The meta object literal for the '<em><b>For Distribution</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute INTERACTION_COMPONENT__FOR_DISTRIBUTION = eINSTANCE.getInteractionComponent_ForDistribution();
+
+ /**
+ * The meta object literal for the '<em><b>Connection Pattern</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INTERACTION_COMPONENT__CONNECTION_PATTERN = eINSTANCE.getInteractionComponent_ConnectionPattern();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INTERACTION_COMPONENT__BASE_CLASS = eINSTANCE.getInteractionComponent_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.SingletonImpl <em>Singleton</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.SingletonImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getSingleton()
+ * @generated
+ */
+ EClass SINGLETON = eINSTANCE.getSingleton();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SINGLETON__BASE_CLASS = eINSTANCE.getSingleton_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.ConnectorImpl <em>Connector</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ConnectorImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getConnector()
+ * @generated
+ */
+ EClass CONNECTOR = eINSTANCE.getConnector();
+
+ /**
+ * The meta object literal for the '<em><b>Base Connector</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONNECTOR__BASE_CONNECTOR = eINSTANCE.getConnector_Base_Connector();
+
+ /**
+ * The meta object literal for the '<em><b>Ic</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONNECTOR__IC = eINSTANCE.getConnector_Ic();
+
+ /**
+ * The meta object literal for the '<em><b>Base Property</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONNECTOR__BASE_PROPERTY = eINSTANCE.getConnector_Base_Property();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.ConfigurableElementInstanceImpl <em>Configurable Element Instance</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ConfigurableElementInstanceImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getConfigurableElementInstance()
+ * @generated
+ */
+ EClass CONFIGURABLE_ELEMENT_INSTANCE = eINSTANCE.getConfigurableElementInstance();
+
+ /**
+ * The meta object literal for the '<em><b>Configuration</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONFIGURABLE_ELEMENT_INSTANCE__CONFIGURATION = eINSTANCE.getConfigurableElementInstance_Configuration();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.UseInstanceConfiguratorImpl <em>Use Instance Configurator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.UseInstanceConfiguratorImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getUseInstanceConfigurator()
+ * @generated
+ */
+ EClass USE_INSTANCE_CONFIGURATOR = eINSTANCE.getUseInstanceConfigurator();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference USE_INSTANCE_CONFIGURATOR__BASE_CLASS = eINSTANCE.getUseInstanceConfigurator_Base_Class();
+
+ /**
+ * The meta object literal for the '<em><b>Configurator</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference USE_INSTANCE_CONFIGURATOR__CONFIGURATOR = eINSTANCE.getUseInstanceConfigurator_Configurator();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.InstanceConfiguratorImpl <em>Instance Configurator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.InstanceConfiguratorImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getInstanceConfigurator()
+ * @generated
+ */
+ EClass INSTANCE_CONFIGURATOR = eINSTANCE.getInstanceConfigurator();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INSTANCE_CONFIGURATOR__BASE_CLASS = eINSTANCE.getInstanceConfigurator_Base_Class();
+
+ /**
+ * The meta object literal for the '<em><b>On Node Model</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute INSTANCE_CONFIGURATOR__ON_NODE_MODEL = eINSTANCE.getInstanceConfigurator_OnNodeModel();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.RuleApplicationImpl <em>Rule Application</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.RuleApplicationImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getRuleApplication()
+ * @generated
+ */
+ EClass RULE_APPLICATION = eINSTANCE.getRuleApplication();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference RULE_APPLICATION__BASE_CLASS = eINSTANCE.getRuleApplication_Base_Class();
+
+ /**
+ * The meta object literal for the '<em><b>Container Rule</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference RULE_APPLICATION__CONTAINER_RULE = eINSTANCE.getRuleApplication_ContainerRule();
+
+ /**
+ * The meta object literal for the '<em><b>Base Package</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference RULE_APPLICATION__BASE_PACKAGE = eINSTANCE.getRuleApplication_Base_Package();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.ContainerRuleImpl <em>Container Rule</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ContainerRuleImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getContainerRule()
+ * @generated
+ */
+ EClass CONTAINER_RULE = eINSTANCE.getContainerRule();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONTAINER_RULE__BASE_CLASS = eINSTANCE.getContainerRule_Base_Class();
+
+ /**
+ * The meta object literal for the '<em><b>For Config</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONTAINER_RULE__FOR_CONFIG = eINSTANCE.getContainerRule_ForConfig();
+
+ /**
+ * The meta object literal for the '<em><b>Kind</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CONTAINER_RULE__KIND = eINSTANCE.getContainerRule_Kind();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.ConfigOptionImpl <em>Config Option</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ConfigOptionImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getConfigOption()
+ * @generated
+ */
+ EClass CONFIG_OPTION = eINSTANCE.getConfigOption();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONFIG_OPTION__BASE_CLASS = eINSTANCE.getConfigOption_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.TemplatePortImpl <em>Template Port</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.TemplatePortImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getTemplatePort()
+ * @generated
+ */
+ EClass TEMPLATE_PORT = eINSTANCE.getTemplatePort();
+
+ /**
+ * The meta object literal for the '<em><b>Bound Type</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TEMPLATE_PORT__BOUND_TYPE = eINSTANCE.getTemplatePort_BoundType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.PortImpl <em>Port</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.PortImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getPort()
+ * @generated
+ */
+ EClass PORT = eINSTANCE.getPort();
+
+ /**
+ * The meta object literal for the '<em><b>Base Port</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PORT__BASE_PORT = eINSTANCE.getPort_Base_Port();
+
+ /**
+ * The meta object literal for the '<em><b>Kind</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PORT__KIND = eINSTANCE.getPort_Kind();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PORT__TYPE = eINSTANCE.getPort_Type();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.PortKindImpl <em>Port Kind</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.PortKindImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getPortKind()
+ * @generated
+ */
+ EClass PORT_KIND = eINSTANCE.getPortKind();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PORT_KIND__BASE_CLASS = eINSTANCE.getPortKind_Base_Class();
+
+ /**
+ * The meta object literal for the '<em><b>Provided Interface</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PORT_KIND__PROVIDED_INTERFACE = eINSTANCE.getPortKind_ProvidedInterface();
+
+ /**
+ * The meta object literal for the '<em><b>Required Interface</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PORT_KIND__REQUIRED_INTERFACE = eINSTANCE.getPortKind_RequiredInterface();
+
+ /**
+ * The meta object literal for the '<em><b>Extended Port</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PORT_KIND__EXTENDED_PORT = eINSTANCE.getPortKind_ExtendedPort();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.DeploymentPlanImpl <em>Deployment Plan</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.DeploymentPlanImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getDeploymentPlan()
+ * @generated
+ */
+ EClass DEPLOYMENT_PLAN = eINSTANCE.getDeploymentPlan();
+
+ /**
+ * The meta object literal for the '<em><b>Main Instance</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DEPLOYMENT_PLAN__MAIN_INSTANCE = eINSTANCE.getDeploymentPlan_MainInstance();
+
+ /**
+ * The meta object literal for the '<em><b>Base Package</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DEPLOYMENT_PLAN__BASE_PACKAGE = eINSTANCE.getDeploymentPlan_Base_Package();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.DerivedElementImpl <em>Derived Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.DerivedElementImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getDerivedElement()
+ * @generated
+ */
+ EClass DERIVED_ELEMENT = eINSTANCE.getDerivedElement();
+
+ /**
+ * The meta object literal for the '<em><b>Base Element</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DERIVED_ELEMENT__BASE_ELEMENT = eINSTANCE.getDerivedElement_Base_Element();
+
+ /**
+ * The meta object literal for the '<em><b>Source</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DERIVED_ELEMENT__SOURCE = eINSTANCE.getDerivedElement_Source();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.CompImplTemplateImpl <em>Comp Impl Template</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.CompImplTemplateImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getCompImplTemplate()
+ * @generated
+ */
+ EClass COMP_IMPL_TEMPLATE = eINSTANCE.getCompImplTemplate();
+
+ /**
+ * The meta object literal for the '<em><b>Template Defs</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute COMP_IMPL_TEMPLATE__TEMPLATE_DEFS = eINSTANCE.getCompImplTemplate_TemplateDefs();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference COMP_IMPL_TEMPLATE__BASE_CLASS = eINSTANCE.getCompImplTemplate_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.ImplementationPropertiesImpl <em>Implementation Properties</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ImplementationPropertiesImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getImplementationProperties()
+ * @generated
+ */
+ EClass IMPLEMENTATION_PROPERTIES = eINSTANCE.getImplementationProperties();
+
+ /**
+ * The meta object literal for the '<em><b>Size RAM</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute IMPLEMENTATION_PROPERTIES__SIZE_RAM = eINSTANCE.getImplementationProperties_SizeRAM();
+
+ /**
+ * The meta object literal for the '<em><b>Supported OS</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference IMPLEMENTATION_PROPERTIES__SUPPORTED_OS = eINSTANCE.getImplementationProperties_SupportedOS();
+
+ /**
+ * The meta object literal for the '<em><b>Arch</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference IMPLEMENTATION_PROPERTIES__ARCH = eINSTANCE.getImplementationProperties_Arch();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference IMPLEMENTATION_PROPERTIES__BASE_CLASS = eINSTANCE.getImplementationProperties_Base_Class();
+
+ /**
+ * The meta object literal for the '<em><b>Size ROM</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute IMPLEMENTATION_PROPERTIES__SIZE_ROM = eINSTANCE.getImplementationProperties_SizeROM();
+
+ /**
+ * The meta object literal for the '<em><b>Supported Target Arch</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference IMPLEMENTATION_PROPERTIES__SUPPORTED_TARGET_ARCH = eINSTANCE.getImplementationProperties_SupportedTargetArch();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.OperatingSystemImpl <em>Operating System</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.OperatingSystemImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getOperatingSystem()
+ * @generated
+ */
+ EClass OPERATING_SYSTEM = eINSTANCE.getOperatingSystem();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference OPERATING_SYSTEM__BASE_CLASS = eINSTANCE.getOperatingSystem_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.TargetArchitectureImpl <em>Target Architecture</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.TargetArchitectureImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getTargetArchitecture()
+ * @generated
+ */
+ EClass TARGET_ARCHITECTURE = eINSTANCE.getTargetArchitecture();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TARGET_ARCHITECTURE__BASE_CLASS = eINSTANCE.getTargetArchitecture_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.ConfigurationImpl <em>Configuration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ConfigurationImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getConfiguration()
+ * @generated
+ */
+ EClass CONFIGURATION = eINSTANCE.getConfiguration();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONFIGURATION__BASE_CLASS = eINSTANCE.getConfiguration_Base_Class();
+
+ /**
+ * The meta object literal for the '<em><b>Config Options</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONFIGURATION__CONFIG_OPTIONS = eINSTANCE.getConfiguration_ConfigOptions();
+
+ /**
+ * The meta object literal for the '<em><b>Deployment Plan</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONFIGURATION__DEPLOYMENT_PLAN = eINSTANCE.getConfiguration_DeploymentPlan();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.InterceptionRuleImpl <em>Interception Rule</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.InterceptionRuleImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getInterceptionRule()
+ * @generated
+ */
+ EClass INTERCEPTION_RULE = eINSTANCE.getInterceptionRule();
+
+ /**
+ * The meta object literal for the '<em><b>Interception Kind</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute INTERCEPTION_RULE__INTERCEPTION_KIND = eINSTANCE.getInterceptionRule_InterceptionKind();
+
+ /**
+ * The meta object literal for the '<em><b>Interception Set</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INTERCEPTION_RULE__INTERCEPTION_SET = eINSTANCE.getInterceptionRule_InterceptionSet();
+
+ /**
+ * The meta object literal for the '<em><b>Base Property</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INTERCEPTION_RULE__BASE_PROPERTY = eINSTANCE.getInterceptionRule_Base_Property();
+
+ /**
+ * The meta object literal for the '<em><b>Base Operation</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INTERCEPTION_RULE__BASE_OPERATION = eINSTANCE.getInterceptionRule_Base_Operation();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.TargetImpl <em>Target</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.TargetImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getTarget()
+ * @generated
+ */
+ EClass TARGET = eINSTANCE.getTarget();
+
+ /**
+ * The meta object literal for the '<em><b>Target Arch</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TARGET__TARGET_ARCH = eINSTANCE.getTarget_TargetArch();
+
+ /**
+ * The meta object literal for the '<em><b>Options</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TARGET__OPTIONS = eINSTANCE.getTarget_Options();
+
+ /**
+ * The meta object literal for the '<em><b>Base Node</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TARGET__BASE_NODE = eINSTANCE.getTarget_Base_Node();
+
+ /**
+ * The meta object literal for the '<em><b>Used OS</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TARGET__USED_OS = eINSTANCE.getTarget_UsedOS();
+
+ /**
+ * The meta object literal for the '<em><b>Avail RAM</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TARGET__AVAIL_RAM = eINSTANCE.getTarget_AvailRAM();
+
+ /**
+ * The meta object literal for the '<em><b>Avail ROM</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TARGET__AVAIL_ROM = eINSTANCE.getTarget_AvailROM();
+
+ /**
+ * The meta object literal for the '<em><b>Compiler</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TARGET__COMPILER = eINSTANCE.getTarget_Compiler();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.CompilerChainImpl <em>Compiler Chain</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.CompilerChainImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getCompilerChain()
+ * @generated
+ */
+ EClass COMPILER_CHAIN = eINSTANCE.getCompilerChain();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference COMPILER_CHAIN__BASE_CLASS = eINSTANCE.getCompilerChain_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.FragmentImpl <em>Fragment</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.FragmentImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getFragment()
+ * @generated
+ */
+ EClass FRAGMENT = eINSTANCE.getFragment();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FRAGMENT__BASE_CLASS = eINSTANCE.getFragment_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.CopyAttributeValueImpl <em>Copy Attribute Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.CopyAttributeValueImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getCopyAttributeValue()
+ * @generated
+ */
+ EClass COPY_ATTRIBUTE_VALUE = eINSTANCE.getCopyAttributeValue();
+
+ /**
+ * The meta object literal for the '<em><b>Source</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference COPY_ATTRIBUTE_VALUE__SOURCE = eINSTANCE.getCopyAttributeValue_Source();
+
+ /**
+ * The meta object literal for the '<em><b>Base Property</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference COPY_ATTRIBUTE_VALUE__BASE_PROPERTY = eINSTANCE.getCopyAttributeValue_Base_Property();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.AutoIndexImpl <em>Auto Index</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.AutoIndexImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getAutoIndex()
+ * @generated
+ */
+ EClass AUTO_INDEX = eINSTANCE.getAutoIndex();
+
+ /**
+ * The meta object literal for the '<em><b>Base Property</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference AUTO_INDEX__BASE_PROPERTY = eINSTANCE.getAutoIndex_Base_Property();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.AutoIndexPerNodeImpl <em>Auto Index Per Node</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.AutoIndexPerNodeImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getAutoIndexPerNode()
+ * @generated
+ */
+ EClass AUTO_INDEX_PER_NODE = eINSTANCE.getAutoIndexPerNode();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.InitPrecedenceImpl <em>Init Precedence</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.InitPrecedenceImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getInitPrecedence()
+ * @generated
+ */
+ EClass INIT_PRECEDENCE = eINSTANCE.getInitPrecedence();
+
+ /**
+ * The meta object literal for the '<em><b>Invoke After</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INIT_PRECEDENCE__INVOKE_AFTER = eINSTANCE.getInitPrecedence_InvokeAfter();
+
+ /**
+ * The meta object literal for the '<em><b>Invoke Before</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INIT_PRECEDENCE__INVOKE_BEFORE = eINSTANCE.getInitPrecedence_InvokeBefore();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INIT_PRECEDENCE__BASE_CLASS = eINSTANCE.getInitPrecedence_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.ConnectorConfigurationImpl <em>Connector Configuration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ConnectorConfigurationImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getConnectorConfiguration()
+ * @generated
+ */
+ EClass CONNECTOR_CONFIGURATION = eINSTANCE.getConnectorConfiguration();
+
+ /**
+ * The meta object literal for the '<em><b>Base Slot</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONNECTOR_CONFIGURATION__BASE_SLOT = eINSTANCE.getConnectorConfiguration_Base_Slot();
+
+ /**
+ * The meta object literal for the '<em><b>Connector</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONNECTOR_CONFIGURATION__CONNECTOR = eINSTANCE.getConnectorConfiguration_Connector();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.BindTemplateImpl <em>Bind Template</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.BindTemplateImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getBindTemplate()
+ * @generated
+ */
+ EClass BIND_TEMPLATE = eINSTANCE.getBindTemplate();
+
+ /**
+ * The meta object literal for the '<em><b>Actual</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference BIND_TEMPLATE__ACTUAL = eINSTANCE.getBindTemplate_Actual();
+
+ /**
+ * The meta object literal for the '<em><b>Base Property</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference BIND_TEMPLATE__BASE_PROPERTY = eINSTANCE.getBindTemplate_Base_Property();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.ContainerRuleKind <em>Container Rule Kind</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.ContainerRuleKind
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getContainerRuleKind()
+ * @generated
+ */
+ EEnum CONTAINER_RULE_KIND = eINSTANCE.getContainerRuleKind();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.InterceptionKind <em>Interception Kind</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.InterceptionKind
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getInterceptionKind()
+ * @generated
+ */
+ EEnum INTERCEPTION_KIND = eINSTANCE.getInterceptionKind();
+
+ }
+
+} // FCMPackage
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Flatten.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Flatten.java
new file mode 100644
index 00000000000..9a89c91f924
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Flatten.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Flatten</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * A composite that will get flattened during distribution. This means that it vanishes and its parts are added to the composite in which the flat composite is defined. A flat composite may not have assembly connections. It is primarily used by interaction components
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.Flatten#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getFlatten()
+ * @model
+ * @generated
+ */
+public interface Flatten extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getFlatten_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Flatten#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // Flatten
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Fragment.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Fragment.java
new file mode 100644
index 00000000000..53f4baac33e
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Fragment.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Fragment</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.Fragment#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getFragment()
+ * @model
+ * @generated
+ */
+public interface Fragment extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getFragment_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Fragment#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // Fragment
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ImplementationGroup.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ImplementationGroup.java
new file mode 100644
index 00000000000..fc79e9d0ea6
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ImplementationGroup.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Implementation Group</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * A group of interaction components should apply both stereotypes. Each member of such a group must be an interaction component, but this is not enforced by the meta-model
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.ImplementationGroup#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getImplementationGroup()
+ * @model
+ * @generated
+ */
+public interface ImplementationGroup extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getImplementationGroup_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.ImplementationGroup#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // ImplementationGroup
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ImplementationProperties.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ImplementationProperties.java
new file mode 100644
index 00000000000..8a3bd56e5bc
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ImplementationProperties.java
@@ -0,0 +1,170 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Implementation Properties</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.ImplementationProperties#getSizeRAM <em>Size RAM</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.ImplementationProperties#getSupportedOS <em>Supported OS</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.ImplementationProperties#getArch <em>Arch</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.ImplementationProperties#getBase_Class <em>Base Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.ImplementationProperties#getSizeROM <em>Size ROM</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.ImplementationProperties#getSupportedTargetArch <em>Supported Target Arch</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getImplementationProperties()
+ * @model
+ * @generated
+ */
+public interface ImplementationProperties extends EObject {
+ /**
+ * Returns the value of the '<em><b>Size RAM</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Size RAM</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Size RAM</em>' attribute.
+ * @see #setSizeRAM(int)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getImplementationProperties_SizeRAM()
+ * @model unique="false" dataType="org.eclipse.uml2.types.Integer" required="true" ordered="false"
+ * @generated
+ */
+ int getSizeRAM();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.ImplementationProperties#getSizeRAM <em>Size RAM</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Size RAM</em>' attribute.
+ * @see #getSizeRAM()
+ * @generated
+ */
+ void setSizeRAM(int value);
+
+ /**
+ * Returns the value of the '<em><b>Supported OS</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.FCM.OperatingSystem}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Supported OS</em>' reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Supported OS</em>' reference list.
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getImplementationProperties_SupportedOS()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<OperatingSystem> getSupportedOS();
+
+ /**
+ * Returns the value of the '<em><b>Arch</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.FCM.TargetArchitecture}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Arch</em>' reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Arch</em>' reference list.
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getImplementationProperties_Arch()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<TargetArchitecture> getArch();
+
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getImplementationProperties_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.ImplementationProperties#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+ /**
+ * Returns the value of the '<em><b>Size ROM</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Size ROM</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Size ROM</em>' attribute.
+ * @see #setSizeROM(int)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getImplementationProperties_SizeROM()
+ * @model dataType="org.eclipse.uml2.types.Integer" required="true" ordered="false"
+ * @generated
+ */
+ int getSizeROM();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.ImplementationProperties#getSizeROM <em>Size ROM</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Size ROM</em>' attribute.
+ * @see #getSizeROM()
+ * @generated
+ */
+ void setSizeROM(int value);
+
+ /**
+ * Returns the value of the '<em><b>Supported Target Arch</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Supported Target Arch</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Supported Target Arch</em>' reference.
+ * @see #setSupportedTargetArch(TargetArchitecture)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getImplementationProperties_SupportedTargetArch()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ TargetArchitecture getSupportedTargetArch();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.ImplementationProperties#getSupportedTargetArch <em>Supported Target Arch</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Supported Target Arch</em>' reference.
+ * @see #getSupportedTargetArch()
+ * @generated
+ */
+ void setSupportedTargetArch(TargetArchitecture value);
+
+} // ImplementationProperties
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InitPrecedence.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InitPrecedence.java
new file mode 100644
index 00000000000..8c6af695105
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InitPrecedence.java
@@ -0,0 +1,92 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Init Precedence</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.InitPrecedence#getInvokeAfter <em>Invoke After</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.InitPrecedence#getInvokeBefore <em>Invoke Before</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.InitPrecedence#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getInitPrecedence()
+ * @model
+ * @generated
+ */
+public interface InitPrecedence extends EObject {
+ /**
+ * Returns the value of the '<em><b>Invoke After</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.uml2.uml.Class}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Invoke After</em>' reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Invoke After</em>' reference list.
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getInitPrecedence_InvokeAfter()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<org.eclipse.uml2.uml.Class> getInvokeAfter();
+
+ /**
+ * Returns the value of the '<em><b>Invoke Before</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.uml2.uml.Class}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Invoke Before</em>' reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Invoke Before</em>' reference list.
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getInitPrecedence_InvokeBefore()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<org.eclipse.uml2.uml.Class> getInvokeBefore();
+
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getInitPrecedence_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.InitPrecedence#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // InitPrecedence
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InstanceConfigurator.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InstanceConfigurator.java
new file mode 100644
index 00000000000..bb463ad5340
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InstanceConfigurator.java
@@ -0,0 +1,85 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Instance Configurator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.InstanceConfigurator#getBase_Class <em>Base Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.InstanceConfigurator#isOnNodeModel <em>On Node Model</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getInstanceConfigurator()
+ * @model
+ * @generated
+ */
+public interface InstanceConfigurator extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getInstanceConfigurator_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.InstanceConfigurator#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+ /**
+ * Returns the value of the '<em><b>On Node Model</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>On Node Model</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>On Node Model</em>' attribute.
+ * @see #setOnNodeModel(boolean)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getInstanceConfigurator_OnNodeModel()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isOnNodeModel();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.InstanceConfigurator#isOnNodeModel <em>On Node Model</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>On Node Model</em>' attribute.
+ * @see #isOnNodeModel()
+ * @generated
+ */
+ void setOnNodeModel(boolean value);
+
+} // InstanceConfigurator
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InteractionComponent.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InteractionComponent.java
new file mode 100644
index 00000000000..cbef19b172b
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InteractionComponent.java
@@ -0,0 +1,117 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Collaboration;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Interaction Component</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * An interaction component is responsible for realization the communication between two components. It typically owns conjugated ports. It might be defined within a package template to enable the adaption of ports to those used by the interacting components
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.InteractionComponent#isForDistribution <em>For Distribution</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.InteractionComponent#getConnectionPattern <em>Connection Pattern</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.InteractionComponent#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getInteractionComponent()
+ * @model
+ * @generated
+ */
+public interface InteractionComponent extends EObject {
+ /**
+ * Returns the value of the '<em><b>For Distribution</b></em>' attribute.
+ * The default value is <code>"false"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>For Distribution</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>For Distribution</em>' attribute.
+ * @see #setForDistribution(boolean)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getInteractionComponent_ForDistribution()
+ * @model default="false" unique="false" dataType="org.eclipse.uml2.types.Boolean" required="true" ordered="false"
+ * @generated
+ */
+ boolean isForDistribution();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.InteractionComponent#isForDistribution <em>For Distribution</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>For Distribution</em>' attribute.
+ * @see #isForDistribution()
+ * @generated
+ */
+ void setForDistribution(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Connection Pattern</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Connection Pattern</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Connection Pattern</em>' reference.
+ * @see #setConnectionPattern(Collaboration)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getInteractionComponent_ConnectionPattern()
+ * @model ordered="false"
+ * @generated
+ */
+ Collaboration getConnectionPattern();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.InteractionComponent#getConnectionPattern <em>Connection Pattern</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Connection Pattern</em>' reference.
+ * @see #getConnectionPattern()
+ * @generated
+ */
+ void setConnectionPattern(Collaboration value);
+
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getInteractionComponent_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.InteractionComponent#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // InteractionComponent
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InterceptionKind.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InterceptionKind.java
new file mode 100644
index 00000000000..24de3ce829e
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InterceptionKind.java
@@ -0,0 +1,310 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Interception Kind</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Condition whether an interceptor should be used within a container.
+ * - "Some" = set of ports defined in interception rule
+ * - "AllOut/AllIn" = ports with required/provided ports only
+ * - "Matching" = kind of interceptor and component port need to match
+ *
+ * <!-- end-model-doc -->
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getInterceptionKind()
+ * @model
+ * @generated
+ */
+public enum InterceptionKind implements Enumerator {
+ /**
+ * The '<em><b>Intercept Some</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INTERCEPT_SOME_VALUE
+ * @generated
+ * @ordered
+ */
+ INTERCEPT_SOME(0, "InterceptSome", "InterceptSome"), //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Intercept All</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INTERCEPT_ALL_VALUE
+ * @generated
+ * @ordered
+ */
+ INTERCEPT_ALL(1, "InterceptAll", "InterceptAll"), //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Intercept All Out</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INTERCEPT_ALL_OUT_VALUE
+ * @generated
+ * @ordered
+ */
+ INTERCEPT_ALL_OUT(2, "InterceptAllOut", "InterceptAllOut"), //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Intercept All In</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INTERCEPT_ALL_IN_VALUE
+ * @generated
+ * @ordered
+ */
+ INTERCEPT_ALL_IN(3, "InterceptAllIn", "InterceptAllIn"), //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Intercept Matching</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INTERCEPT_MATCHING_VALUE
+ * @generated
+ * @ordered
+ */
+ INTERCEPT_MATCHING(4, "InterceptMatching", "InterceptMatching"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Intercept Some</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Intercept Some</b></em>' literal object isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #INTERCEPT_SOME
+ * @model name="InterceptSome"
+ * @generated
+ * @ordered
+ */
+ public static final int INTERCEPT_SOME_VALUE = 0;
+
+ /**
+ * The '<em><b>Intercept All</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Intercept All</b></em>' literal object isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #INTERCEPT_ALL
+ * @model name="InterceptAll"
+ * @generated
+ * @ordered
+ */
+ public static final int INTERCEPT_ALL_VALUE = 1;
+
+ /**
+ * The '<em><b>Intercept All Out</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Intercept All Out</b></em>' literal object isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #INTERCEPT_ALL_OUT
+ * @model name="InterceptAllOut"
+ * @generated
+ * @ordered
+ */
+ public static final int INTERCEPT_ALL_OUT_VALUE = 2;
+
+ /**
+ * The '<em><b>Intercept All In</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Intercept All In</b></em>' literal object isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #INTERCEPT_ALL_IN
+ * @model name="InterceptAllIn"
+ * @generated
+ * @ordered
+ */
+ public static final int INTERCEPT_ALL_IN_VALUE = 3;
+
+ /**
+ * The '<em><b>Intercept Matching</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Intercept Matching</b></em>' literal object isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #INTERCEPT_MATCHING
+ * @model name="InterceptMatching"
+ * @generated
+ * @ordered
+ */
+ public static final int INTERCEPT_MATCHING_VALUE = 4;
+
+ /**
+ * An array of all the '<em><b>Interception Kind</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final InterceptionKind[] VALUES_ARRAY =
+ new InterceptionKind[] {
+ INTERCEPT_SOME,
+ INTERCEPT_ALL,
+ INTERCEPT_ALL_OUT,
+ INTERCEPT_ALL_IN,
+ INTERCEPT_MATCHING,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Interception Kind</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<InterceptionKind> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Interception Kind</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param literal the literal.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static InterceptionKind get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ InterceptionKind result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Interception Kind</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param name the name.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static InterceptionKind getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ InterceptionKind result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Interception Kind</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the integer value.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static InterceptionKind get(int value) {
+ switch (value) {
+ case INTERCEPT_SOME_VALUE: return INTERCEPT_SOME;
+ case INTERCEPT_ALL_VALUE: return INTERCEPT_ALL;
+ case INTERCEPT_ALL_OUT_VALUE: return INTERCEPT_ALL_OUT;
+ case INTERCEPT_ALL_IN_VALUE: return INTERCEPT_ALL_IN;
+ case INTERCEPT_MATCHING_VALUE: return INTERCEPT_MATCHING;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private InterceptionKind(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} // InterceptionKind
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InterceptionRule.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InterceptionRule.java
new file mode 100644
index 00000000000..44adb8c7700
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InterceptionRule.java
@@ -0,0 +1,134 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Feature;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Interception Rule</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.InterceptionRule#getInterceptionKind <em>Interception Kind</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.InterceptionRule#getInterceptionSet <em>Interception Set</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.InterceptionRule#getBase_Property <em>Base Property</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.InterceptionRule#getBase_Operation <em>Base Operation</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getInterceptionRule()
+ * @model
+ * @generated
+ */
+public interface InterceptionRule extends EObject {
+ /**
+ * Returns the value of the '<em><b>Interception Kind</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.papyrus.FCM.InterceptionKind}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Interception Kind</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Interception Kind</em>' attribute.
+ * @see org.eclipse.papyrus.FCM.InterceptionKind
+ * @see #setInterceptionKind(InterceptionKind)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getInterceptionRule_InterceptionKind()
+ * @model unique="false" required="true" ordered="false"
+ * @generated
+ */
+ InterceptionKind getInterceptionKind();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.InterceptionRule#getInterceptionKind <em>Interception Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Interception Kind</em>' attribute.
+ * @see org.eclipse.papyrus.FCM.InterceptionKind
+ * @see #getInterceptionKind()
+ * @generated
+ */
+ void setInterceptionKind(InterceptionKind value);
+
+ /**
+ * Returns the value of the '<em><b>Interception Set</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.uml2.uml.Feature}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Interception Set</em>' reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Interception Set</em>' reference list.
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getInterceptionRule_InterceptionSet()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<Feature> getInterceptionSet();
+
+ /**
+ * Returns the value of the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Property</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Property</em>' reference.
+ * @see #setBase_Property(Property)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getInterceptionRule_Base_Property()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Property getBase_Property();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.InterceptionRule#getBase_Property <em>Base Property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Property</em>' reference.
+ * @see #getBase_Property()
+ * @generated
+ */
+ void setBase_Property(Property value);
+
+ /**
+ * Returns the value of the '<em><b>Base Operation</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Operation</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Operation</em>' reference.
+ * @see #setBase_Operation(Operation)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getInterceptionRule_Base_Operation()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Operation getBase_Operation();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.InterceptionRule#getBase_Operation <em>Base Operation</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Operation</em>' reference.
+ * @see #getBase_Operation()
+ * @generated
+ */
+ void setBase_Operation(Operation value);
+
+} // InterceptionRule
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/OperatingSystem.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/OperatingSystem.java
new file mode 100644
index 00000000000..e9dc05079f7
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/OperatingSystem.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Operating System</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.OperatingSystem#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getOperatingSystem()
+ * @model
+ * @generated
+ */
+public interface OperatingSystem extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getOperatingSystem_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.OperatingSystem#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // OperatingSystem
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Port.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Port.java
new file mode 100644
index 00000000000..0f1da61cd0c
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Port.java
@@ -0,0 +1,117 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Type;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Port</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.Port#getBase_Port <em>Base Port</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.Port#getKind <em>Kind</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.Port#getType <em>Type</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getPort()
+ * @model
+ * @generated
+ */
+public interface Port extends ConfigurableElementInstance {
+ /**
+ * Returns the value of the '<em><b>Base Port</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Port</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Port</em>' reference.
+ * @see #setBase_Port(org.eclipse.uml2.uml.Port)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getPort_Base_Port()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Port getBase_Port();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Port#getBase_Port <em>Base Port</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Port</em>' reference.
+ * @see #getBase_Port()
+ * @generated
+ */
+ void setBase_Port(org.eclipse.uml2.uml.Port value);
+
+ /**
+ * Returns the value of the '<em><b>Kind</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Kind</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Kind</em>' reference.
+ * @see #setKind(PortKind)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getPort_Kind()
+ * @model ordered="false"
+ * @generated
+ */
+ PortKind getKind();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Port#getKind <em>Kind</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Kind</em>' reference.
+ * @see #getKind()
+ * @generated
+ */
+ void setKind(PortKind value);
+
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type</em>' reference.
+ * @see #setType(Type)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getPort_Type()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Type getType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Port#getType <em>Type</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Type</em>' reference.
+ * @see #getType()
+ * @generated
+ */
+ void setType(Type value);
+
+ /**
+ * Update the derived interfaces of a port. Manually added method
+ */
+ void update();
+} // Port
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/PortKind.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/PortKind.java
new file mode 100644
index 00000000000..82ad56f8cf7
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/PortKind.java
@@ -0,0 +1,138 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Interface;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Port Kind</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.PortKind#getBase_Class <em>Base Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.PortKind#getProvidedInterface <em>Provided Interface</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.PortKind#getRequiredInterface <em>Required Interface</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.PortKind#isExtendedPort <em>Extended Port</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getPortKind()
+ * @model
+ * @generated
+ */
+public interface PortKind extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getPortKind_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.PortKind#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+ /**
+ * Returns the value of the '<em><b>Provided Interface</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Provided Interface</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Provided Interface</em>' reference.
+ * @see #setProvidedInterface(Interface)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getPortKind_ProvidedInterface()
+ * @model ordered="false"
+ * @generated
+ */
+ Interface getProvidedInterface();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.PortKind#getProvidedInterface <em>Provided Interface</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Provided Interface</em>' reference.
+ * @see #getProvidedInterface()
+ * @generated
+ */
+ void setProvidedInterface(Interface value);
+
+ /**
+ * Returns the value of the '<em><b>Required Interface</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Required Interface</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Required Interface</em>' reference.
+ * @see #setRequiredInterface(Interface)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getPortKind_RequiredInterface()
+ * @model ordered="false"
+ * @generated
+ */
+ Interface getRequiredInterface();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.PortKind#getRequiredInterface <em>Required Interface</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Required Interface</em>' reference.
+ * @see #getRequiredInterface()
+ * @generated
+ */
+ void setRequiredInterface(Interface value);
+
+ /**
+ * Returns the value of the '<em><b>Extended Port</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Extended Port</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Extended Port</em>' attribute.
+ * @see #isSetExtendedPort()
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getPortKind_ExtendedPort()
+ * @model unsettable="true" dataType="org.eclipse.uml2.types.Boolean" required="true" transient="true" changeable="false" volatile="true" derived="true" ordered="false"
+ * @generated
+ */
+ boolean isExtendedPort();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.papyrus.FCM.PortKind#isExtendedPort <em>Extended Port</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Extended Port</em>' attribute is set.
+ * @see #isExtendedPort()
+ * @generated
+ */
+ boolean isSetExtendedPort();
+
+} // PortKind
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ProgLanguage.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ProgLanguage.java
new file mode 100644
index 00000000000..8458d640c94
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ProgLanguage.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Prog Language</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * We assume that a model library defines a set of supported programming languages as well as a set of provided component to mappings. We do not use a fixed enumeration defined in the profile to assure extensibility
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.ProgLanguage#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getProgLanguage()
+ * @model
+ * @generated
+ */
+public interface ProgLanguage extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getProgLanguage_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.ProgLanguage#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // ProgLanguage
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/RuleApplication.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/RuleApplication.java
new file mode 100644
index 00000000000..5fedd0d9a3a
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/RuleApplication.java
@@ -0,0 +1,106 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Rule Application</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Apply a set of container rules. It can be applied to a single class or to a package, implying that all components within the package apply the specified rule.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.RuleApplication#getBase_Class <em>Base Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.RuleApplication#getContainerRule <em>Container Rule</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.RuleApplication#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getRuleApplication()
+ * @model
+ * @generated
+ */
+public interface RuleApplication extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getRuleApplication_Base_Class()
+ * @model ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.RuleApplication#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+ /**
+ * Returns the value of the '<em><b>Container Rule</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.FCM.ContainerRule}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Container Rule</em>' reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Container Rule</em>' reference list.
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getRuleApplication_ContainerRule()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<ContainerRule> getContainerRule();
+
+ /**
+ * Returns the value of the '<em><b>Base Package</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Package</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Package</em>' reference.
+ * @see #setBase_Package(org.eclipse.uml2.uml.Package)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getRuleApplication_Base_Package()
+ * @model ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Package getBase_Package();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.RuleApplication#getBase_Package <em>Base Package</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Package</em>' reference.
+ * @see #getBase_Package()
+ * @generated
+ */
+ void setBase_Package(org.eclipse.uml2.uml.Package value);
+
+} // RuleApplication
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Singleton.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Singleton.java
new file mode 100644
index 00000000000..097280acf11
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Singleton.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Singleton</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Indicate that this component is instantiated only once within the system. It also implies that this component is automatically instantiated by a generated bootloader
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.Singleton#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getSingleton()
+ * @model
+ * @generated
+ */
+public interface Singleton extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getSingleton_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Singleton#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // Singleton
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Target.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Target.java
new file mode 100644
index 00000000000..41bf2accb32
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Target.java
@@ -0,0 +1,207 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Node;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Target</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.Target#getTargetArch <em>Target Arch</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.Target#getOptions <em>Options</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.Target#getBase_Node <em>Base Node</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.Target#getUsedOS <em>Used OS</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.Target#getAvailRAM <em>Avail RAM</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.Target#getAvailROM <em>Avail ROM</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.Target#getCompiler <em>Compiler</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getTarget()
+ * @model
+ * @generated
+ */
+public interface Target extends EObject {
+ /**
+ * Returns the value of the '<em><b>Target Arch</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Target Arch</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Target Arch</em>' reference.
+ * @see #setTargetArch(TargetArchitecture)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getTarget_TargetArch()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ TargetArchitecture getTargetArch();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Target#getTargetArch <em>Target Arch</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Target Arch</em>' reference.
+ * @see #getTargetArch()
+ * @generated
+ */
+ void setTargetArch(TargetArchitecture value);
+
+ /**
+ * Returns the value of the '<em><b>Options</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.FCM.ConfigOption}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Options</em>' reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Options</em>' reference list.
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getTarget_Options()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<ConfigOption> getOptions();
+
+ /**
+ * Returns the value of the '<em><b>Base Node</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Node</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Node</em>' reference.
+ * @see #setBase_Node(Node)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getTarget_Base_Node()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Node getBase_Node();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Target#getBase_Node <em>Base Node</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Node</em>' reference.
+ * @see #getBase_Node()
+ * @generated
+ */
+ void setBase_Node(Node value);
+
+ /**
+ * Returns the value of the '<em><b>Used OS</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Used OS</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Used OS</em>' reference.
+ * @see #setUsedOS(OperatingSystem)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getTarget_UsedOS()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ OperatingSystem getUsedOS();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Target#getUsedOS <em>Used OS</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Used OS</em>' reference.
+ * @see #getUsedOS()
+ * @generated
+ */
+ void setUsedOS(OperatingSystem value);
+
+ /**
+ * Returns the value of the '<em><b>Avail RAM</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Avail RAM</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Avail RAM</em>' attribute.
+ * @see #setAvailRAM(int)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getTarget_AvailRAM()
+ * @model dataType="org.eclipse.uml2.types.Integer" required="true" ordered="false"
+ * @generated
+ */
+ int getAvailRAM();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Target#getAvailRAM <em>Avail RAM</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Avail RAM</em>' attribute.
+ * @see #getAvailRAM()
+ * @generated
+ */
+ void setAvailRAM(int value);
+
+ /**
+ * Returns the value of the '<em><b>Avail ROM</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Avail ROM</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Avail ROM</em>' attribute.
+ * @see #setAvailROM(int)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getTarget_AvailROM()
+ * @model dataType="org.eclipse.uml2.types.Integer" required="true" ordered="false"
+ * @generated
+ */
+ int getAvailROM();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Target#getAvailROM <em>Avail ROM</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Avail ROM</em>' attribute.
+ * @see #getAvailROM()
+ * @generated
+ */
+ void setAvailROM(int value);
+
+ /**
+ * Returns the value of the '<em><b>Compiler</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Compiler</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Compiler</em>' reference.
+ * @see #setCompiler(CompilerChain)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getTarget_Compiler()
+ * @model ordered="false"
+ * @generated
+ */
+ CompilerChain getCompiler();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Target#getCompiler <em>Compiler</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Compiler</em>' reference.
+ * @see #getCompiler()
+ * @generated
+ */
+ void setCompiler(CompilerChain value);
+
+} // Target
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/TargetArchitecture.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/TargetArchitecture.java
new file mode 100644
index 00000000000..9d5c63c871a
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/TargetArchitecture.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Target Architecture</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.TargetArchitecture#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getTargetArchitecture()
+ * @model
+ * @generated
+ */
+public interface TargetArchitecture extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getTargetArchitecture_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.TargetArchitecture#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // TargetArchitecture
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Template.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Template.java
new file mode 100644
index 00000000000..bf444e4e4b9
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Template.java
@@ -0,0 +1,90 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Element;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Template</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * The template parameters list defines the parameters that are passed to the Acceleo template. If empty, the formal parameter list of the package template is used.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.Template#getBase_Element <em>Base Element</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.Template#getHelper <em>Helper</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getTemplate()
+ * @model
+ * @generated
+ */
+public interface Template extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Element</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Element</em>' reference.
+ * @see #setBase_Element(Element)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getTemplate_Base_Element()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Element getBase_Element();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Template#getBase_Element <em>Base Element</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Element</em>' reference.
+ * @see #getBase_Element()
+ * @generated
+ */
+ void setBase_Element(Element value);
+
+ /**
+ * Returns the value of the '<em><b>Helper</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Helper</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Helper</em>' reference.
+ * @see #setHelper(BindingHelper)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getTemplate_Helper()
+ * @model ordered="false"
+ * @generated
+ */
+ BindingHelper getHelper();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Template#getHelper <em>Helper</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Helper</em>' reference.
+ * @see #getHelper()
+ * @generated
+ */
+ void setHelper(BindingHelper value);
+
+} // Template
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/TemplatePort.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/TemplatePort.java
new file mode 100644
index 00000000000..77f0d02222f
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/TemplatePort.java
@@ -0,0 +1,90 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Template Port</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Template ports are ports that enable the binding of an extended port with an actual parameter: the resulting port kind is the port kind bound to the current port type.
+ * For instance, we cound type a port with "MyType" and use an extended port Writer with a template with formal parameter T. Resulting port would be Writer with T bound to MyType.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.TemplatePort#getBoundType <em>Bound Type</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getTemplatePort()
+ * @model
+ * @generated
+ */
+public interface TemplatePort extends Port {
+ /**
+ * Returns the value of the '<em><b>Bound Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Bound Type</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Bound Type</em>' reference.
+ * @see #isSetBoundType()
+ * @see #unsetBoundType()
+ * @see #setBoundType(PortKind)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getTemplatePort_BoundType()
+ * @model unsettable="true" transient="true" volatile="true" derived="true" ordered="false"
+ * @generated
+ */
+ PortKind getBoundType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.TemplatePort#getBoundType <em>Bound Type</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Bound Type</em>' reference.
+ * @see #isSetBoundType()
+ * @see #unsetBoundType()
+ * @see #getBoundType()
+ * @generated
+ */
+ void setBoundType(PortKind value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.papyrus.FCM.TemplatePort#getBoundType <em>Bound Type</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetBoundType()
+ * @see #getBoundType()
+ * @see #setBoundType(PortKind)
+ * @generated
+ */
+ void unsetBoundType();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.papyrus.FCM.TemplatePort#getBoundType <em>Bound Type</em>}' reference is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Bound Type</em>' reference is set.
+ * @see #unsetBoundType()
+ * @see #getBoundType()
+ * @see #setBoundType(PortKind)
+ * @generated
+ */
+ boolean isSetBoundType();
+
+} // TemplatePort
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/UseInstanceConfigurator.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/UseInstanceConfigurator.java
new file mode 100644
index 00000000000..f0232d7637f
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/UseInstanceConfigurator.java
@@ -0,0 +1,89 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Use Instance Configurator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Use a dedicated component that that is responsible for configuring component instances. The concept is primarily intented for container extensions. For instance, a container extension might provide reflection data about a component. In this case, the instance configuration would create the value specifications using data available in the model
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.UseInstanceConfigurator#getBase_Class <em>Base Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.UseInstanceConfigurator#getConfigurator <em>Configurator</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getUseInstanceConfigurator()
+ * @model
+ * @generated
+ */
+public interface UseInstanceConfigurator extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getUseInstanceConfigurator_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.UseInstanceConfigurator#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+ /**
+ * Returns the value of the '<em><b>Configurator</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Configurator</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Configurator</em>' reference.
+ * @see #setConfigurator(InstanceConfigurator)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getUseInstanceConfigurator_Configurator()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ InstanceConfigurator getConfigurator();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.UseInstanceConfigurator#getConfigurator <em>Configurator</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Configurator</em>' reference.
+ * @see #getConfigurator()
+ * @generated
+ */
+ void setConfigurator(InstanceConfigurator value);
+
+} // UseInstanceConfigurator
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/AssemblyImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/AssemblyImpl.java
new file mode 100644
index 00000000000..8d53df41fe1
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/AssemblyImpl.java
@@ -0,0 +1,165 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.Assembly;
+import org.eclipse.papyrus.FCM.FCMPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Assembly</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.AssemblyImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class AssemblyImpl extends EObjectImpl implements Assembly {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AssemblyImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.ASSEMBLY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.ASSEMBLY__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.ASSEMBLY__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.ASSEMBLY__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.ASSEMBLY__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.ASSEMBLY__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.ASSEMBLY__BASE_CLASS:
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // AssemblyImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/AutoIndexImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/AutoIndexImpl.java
new file mode 100644
index 00000000000..9379bae368d
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/AutoIndexImpl.java
@@ -0,0 +1,166 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.AutoIndex;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Auto Index</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.AutoIndexImpl#getBase_Property <em>Base Property</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class AutoIndexImpl extends EObjectImpl implements AutoIndex {
+ /**
+ * The cached value of the '{@link #getBase_Property() <em>Base Property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Property()
+ * @generated
+ * @ordered
+ */
+ protected Property base_Property;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AutoIndexImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.AUTO_INDEX;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Property getBase_Property() {
+ if (base_Property != null && base_Property.eIsProxy()) {
+ InternalEObject oldBase_Property = (InternalEObject)base_Property;
+ base_Property = (Property)eResolveProxy(oldBase_Property);
+ if (base_Property != oldBase_Property) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.AUTO_INDEX__BASE_PROPERTY, oldBase_Property, base_Property));
+ }
+ }
+ return base_Property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property basicGetBase_Property() {
+ return base_Property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Property(Property newBase_Property) {
+ Property oldBase_Property = base_Property;
+ base_Property = newBase_Property;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.AUTO_INDEX__BASE_PROPERTY, oldBase_Property, base_Property));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.AUTO_INDEX__BASE_PROPERTY:
+ if (resolve) return getBase_Property();
+ return basicGetBase_Property();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.AUTO_INDEX__BASE_PROPERTY:
+ setBase_Property((Property)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.AUTO_INDEX__BASE_PROPERTY:
+ setBase_Property((Property)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.AUTO_INDEX__BASE_PROPERTY:
+ return base_Property != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // AutoIndexImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/AutoIndexPerNodeImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/AutoIndexPerNodeImpl.java
new file mode 100644
index 00000000000..ca4713734be
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/AutoIndexPerNodeImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.papyrus.FCM.AutoIndexPerNode;
+import org.eclipse.papyrus.FCM.FCMPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Auto Index Per Node</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class AutoIndexPerNodeImpl extends AutoIndexImpl implements AutoIndexPerNode {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AutoIndexPerNodeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.AUTO_INDEX_PER_NODE;
+ }
+
+} // AutoIndexPerNodeImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/BindTemplateImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/BindTemplateImpl.java
new file mode 100644
index 00000000000..84097ab7ee5
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/BindTemplateImpl.java
@@ -0,0 +1,207 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.papyrus.FCM.BindTemplate;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Type;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Bind Template</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.BindTemplateImpl#getActual <em>Actual</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.BindTemplateImpl#getBase_Property <em>Base Property</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class BindTemplateImpl extends EObjectImpl implements BindTemplate {
+ /**
+ * The cached value of the '{@link #getActual() <em>Actual</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getActual()
+ * @generated
+ * @ordered
+ */
+ protected EList<Type> actual;
+
+ /**
+ * The cached value of the '{@link #getBase_Property() <em>Base Property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Property()
+ * @generated
+ * @ordered
+ */
+ protected Property base_Property;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BindTemplateImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.BIND_TEMPLATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<Type> getActual() {
+ if (actual == null) {
+ actual = new EObjectResolvingEList<Type>(Type.class, this, FCMPackage.BIND_TEMPLATE__ACTUAL);
+ }
+ return actual;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Property getBase_Property() {
+ if (base_Property != null && base_Property.eIsProxy()) {
+ InternalEObject oldBase_Property = (InternalEObject)base_Property;
+ base_Property = (Property)eResolveProxy(oldBase_Property);
+ if (base_Property != oldBase_Property) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.BIND_TEMPLATE__BASE_PROPERTY, oldBase_Property, base_Property));
+ }
+ }
+ return base_Property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property basicGetBase_Property() {
+ return base_Property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Property(Property newBase_Property) {
+ Property oldBase_Property = base_Property;
+ base_Property = newBase_Property;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.BIND_TEMPLATE__BASE_PROPERTY, oldBase_Property, base_Property));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.BIND_TEMPLATE__ACTUAL:
+ return getActual();
+ case FCMPackage.BIND_TEMPLATE__BASE_PROPERTY:
+ if (resolve) return getBase_Property();
+ return basicGetBase_Property();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.BIND_TEMPLATE__ACTUAL:
+ getActual().clear();
+ getActual().addAll((Collection<? extends Type>)newValue);
+ return;
+ case FCMPackage.BIND_TEMPLATE__BASE_PROPERTY:
+ setBase_Property((Property)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.BIND_TEMPLATE__ACTUAL:
+ getActual().clear();
+ return;
+ case FCMPackage.BIND_TEMPLATE__BASE_PROPERTY:
+ setBase_Property((Property)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.BIND_TEMPLATE__ACTUAL:
+ return actual != null && !actual.isEmpty();
+ case FCMPackage.BIND_TEMPLATE__BASE_PROPERTY:
+ return base_Property != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // BindTemplateImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/BindingHelperImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/BindingHelperImpl.java
new file mode 100644
index 00000000000..cca6f30bf16
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/BindingHelperImpl.java
@@ -0,0 +1,165 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.BindingHelper;
+import org.eclipse.papyrus.FCM.FCMPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Binding Helper</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.BindingHelperImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class BindingHelperImpl extends EObjectImpl implements BindingHelper {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BindingHelperImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.BINDING_HELPER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.BINDING_HELPER__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.BINDING_HELPER__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.BINDING_HELPER__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.BINDING_HELPER__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.BINDING_HELPER__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.BINDING_HELPER__BASE_CLASS:
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // BindingHelperImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CodeGenOptionsImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CodeGenOptionsImpl.java
new file mode 100644
index 00000000000..87c4df5de26
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CodeGenOptionsImpl.java
@@ -0,0 +1,291 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.CodeGenOptions;
+import org.eclipse.papyrus.FCM.CompToOOmapping;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.ProgLanguage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Code Gen Options</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.CodeGenOptionsImpl#getBase_Package <em>Base Package</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.CodeGenOptionsImpl#getCompToOOmapping <em>Comp To OOmapping</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.CodeGenOptionsImpl#getProgLanguage <em>Prog Language</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class CodeGenOptionsImpl extends EObjectImpl implements CodeGenOptions {
+ /**
+ * The cached value of the '{@link #getBase_Package() <em>Base Package</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Package()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Package base_Package;
+
+ /**
+ * The cached value of the '{@link #getCompToOOmapping() <em>Comp To OOmapping</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCompToOOmapping()
+ * @generated
+ * @ordered
+ */
+ protected CompToOOmapping compToOOmapping;
+
+ /**
+ * The cached value of the '{@link #getProgLanguage() <em>Prog Language</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProgLanguage()
+ * @generated
+ * @ordered
+ */
+ protected ProgLanguage progLanguage;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CodeGenOptionsImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.CODE_GEN_OPTIONS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Package getBase_Package() {
+ if (base_Package != null && base_Package.eIsProxy()) {
+ InternalEObject oldBase_Package = (InternalEObject)base_Package;
+ base_Package = (org.eclipse.uml2.uml.Package)eResolveProxy(oldBase_Package);
+ if (base_Package != oldBase_Package) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.CODE_GEN_OPTIONS__BASE_PACKAGE, oldBase_Package, base_Package));
+ }
+ }
+ return base_Package;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Package basicGetBase_Package() {
+ return base_Package;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Package(org.eclipse.uml2.uml.Package newBase_Package) {
+ org.eclipse.uml2.uml.Package oldBase_Package = base_Package;
+ base_Package = newBase_Package;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.CODE_GEN_OPTIONS__BASE_PACKAGE, oldBase_Package, base_Package));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public CompToOOmapping getCompToOOmapping() {
+ if (compToOOmapping != null && compToOOmapping.eIsProxy()) {
+ InternalEObject oldCompToOOmapping = (InternalEObject)compToOOmapping;
+ compToOOmapping = (CompToOOmapping)eResolveProxy(oldCompToOOmapping);
+ if (compToOOmapping != oldCompToOOmapping) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.CODE_GEN_OPTIONS__COMP_TO_OOMAPPING, oldCompToOOmapping, compToOOmapping));
+ }
+ }
+ return compToOOmapping;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CompToOOmapping basicGetCompToOOmapping() {
+ return compToOOmapping;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setCompToOOmapping(CompToOOmapping newCompToOOmapping) {
+ CompToOOmapping oldCompToOOmapping = compToOOmapping;
+ compToOOmapping = newCompToOOmapping;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.CODE_GEN_OPTIONS__COMP_TO_OOMAPPING, oldCompToOOmapping, compToOOmapping));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ProgLanguage getProgLanguage() {
+ if (progLanguage != null && progLanguage.eIsProxy()) {
+ InternalEObject oldProgLanguage = (InternalEObject)progLanguage;
+ progLanguage = (ProgLanguage)eResolveProxy(oldProgLanguage);
+ if (progLanguage != oldProgLanguage) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.CODE_GEN_OPTIONS__PROG_LANGUAGE, oldProgLanguage, progLanguage));
+ }
+ }
+ return progLanguage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ProgLanguage basicGetProgLanguage() {
+ return progLanguage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setProgLanguage(ProgLanguage newProgLanguage) {
+ ProgLanguage oldProgLanguage = progLanguage;
+ progLanguage = newProgLanguage;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.CODE_GEN_OPTIONS__PROG_LANGUAGE, oldProgLanguage, progLanguage));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.CODE_GEN_OPTIONS__BASE_PACKAGE:
+ if (resolve) return getBase_Package();
+ return basicGetBase_Package();
+ case FCMPackage.CODE_GEN_OPTIONS__COMP_TO_OOMAPPING:
+ if (resolve) return getCompToOOmapping();
+ return basicGetCompToOOmapping();
+ case FCMPackage.CODE_GEN_OPTIONS__PROG_LANGUAGE:
+ if (resolve) return getProgLanguage();
+ return basicGetProgLanguage();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.CODE_GEN_OPTIONS__BASE_PACKAGE:
+ setBase_Package((org.eclipse.uml2.uml.Package)newValue);
+ return;
+ case FCMPackage.CODE_GEN_OPTIONS__COMP_TO_OOMAPPING:
+ setCompToOOmapping((CompToOOmapping)newValue);
+ return;
+ case FCMPackage.CODE_GEN_OPTIONS__PROG_LANGUAGE:
+ setProgLanguage((ProgLanguage)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.CODE_GEN_OPTIONS__BASE_PACKAGE:
+ setBase_Package((org.eclipse.uml2.uml.Package)null);
+ return;
+ case FCMPackage.CODE_GEN_OPTIONS__COMP_TO_OOMAPPING:
+ setCompToOOmapping((CompToOOmapping)null);
+ return;
+ case FCMPackage.CODE_GEN_OPTIONS__PROG_LANGUAGE:
+ setProgLanguage((ProgLanguage)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.CODE_GEN_OPTIONS__BASE_PACKAGE:
+ return base_Package != null;
+ case FCMPackage.CODE_GEN_OPTIONS__COMP_TO_OOMAPPING:
+ return compToOOmapping != null;
+ case FCMPackage.CODE_GEN_OPTIONS__PROG_LANGUAGE:
+ return progLanguage != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // CodeGenOptionsImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CompImplTemplateImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CompImplTemplateImpl.java
new file mode 100644
index 00000000000..ef442c13a78
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CompImplTemplateImpl.java
@@ -0,0 +1,235 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.CompImplTemplate;
+import org.eclipse.papyrus.FCM.FCMPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Comp Impl Template</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.CompImplTemplateImpl#getTemplateDefs <em>Template Defs</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.CompImplTemplateImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class CompImplTemplateImpl extends EObjectImpl implements CompImplTemplate {
+ /**
+ * The default value of the '{@link #getTemplateDefs() <em>Template Defs</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTemplateDefs()
+ * @generated
+ * @ordered
+ */
+ protected static final String TEMPLATE_DEFS_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getTemplateDefs() <em>Template Defs</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTemplateDefs()
+ * @generated
+ * @ordered
+ */
+ protected String templateDefs = TEMPLATE_DEFS_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CompImplTemplateImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.COMP_IMPL_TEMPLATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getTemplateDefs() {
+ return templateDefs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setTemplateDefs(String newTemplateDefs) {
+ String oldTemplateDefs = templateDefs;
+ templateDefs = newTemplateDefs;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.COMP_IMPL_TEMPLATE__TEMPLATE_DEFS, oldTemplateDefs, templateDefs));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.COMP_IMPL_TEMPLATE__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.COMP_IMPL_TEMPLATE__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.COMP_IMPL_TEMPLATE__TEMPLATE_DEFS:
+ return getTemplateDefs();
+ case FCMPackage.COMP_IMPL_TEMPLATE__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.COMP_IMPL_TEMPLATE__TEMPLATE_DEFS:
+ setTemplateDefs((String)newValue);
+ return;
+ case FCMPackage.COMP_IMPL_TEMPLATE__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.COMP_IMPL_TEMPLATE__TEMPLATE_DEFS:
+ setTemplateDefs(TEMPLATE_DEFS_EDEFAULT);
+ return;
+ case FCMPackage.COMP_IMPL_TEMPLATE__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.COMP_IMPL_TEMPLATE__TEMPLATE_DEFS:
+ return TEMPLATE_DEFS_EDEFAULT == null ? templateDefs != null : !TEMPLATE_DEFS_EDEFAULT.equals(templateDefs);
+ case FCMPackage.COMP_IMPL_TEMPLATE__BASE_CLASS:
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (templateDefs: "); //$NON-NLS-1$
+ result.append(templateDefs);
+ result.append(')');
+ return result.toString();
+ }
+
+} // CompImplTemplateImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CompToOOmappingImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CompToOOmappingImpl.java
new file mode 100644
index 00000000000..c8337d11912
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CompToOOmappingImpl.java
@@ -0,0 +1,165 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.CompToOOmapping;
+import org.eclipse.papyrus.FCM.FCMPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Comp To OOmapping</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.CompToOOmappingImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class CompToOOmappingImpl extends EObjectImpl implements CompToOOmapping {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CompToOOmappingImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.COMP_TO_OOMAPPING;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.COMP_TO_OOMAPPING__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.COMP_TO_OOMAPPING__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.COMP_TO_OOMAPPING__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.COMP_TO_OOMAPPING__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.COMP_TO_OOMAPPING__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.COMP_TO_OOMAPPING__BASE_CLASS:
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // CompToOOmappingImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CompilerChainImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CompilerChainImpl.java
new file mode 100644
index 00000000000..9f1edb84aa1
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CompilerChainImpl.java
@@ -0,0 +1,165 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.CompilerChain;
+import org.eclipse.papyrus.FCM.FCMPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Compiler Chain</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.CompilerChainImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class CompilerChainImpl extends EObjectImpl implements CompilerChain {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CompilerChainImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.COMPILER_CHAIN;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.COMPILER_CHAIN__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.COMPILER_CHAIN__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.COMPILER_CHAIN__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.COMPILER_CHAIN__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.COMPILER_CHAIN__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.COMPILER_CHAIN__BASE_CLASS:
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // CompilerChainImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConfigOptionImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConfigOptionImpl.java
new file mode 100644
index 00000000000..ddf33cb0dbc
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConfigOptionImpl.java
@@ -0,0 +1,165 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.ConfigOption;
+import org.eclipse.papyrus.FCM.FCMPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Config Option</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ConfigOptionImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ConfigOptionImpl extends EObjectImpl implements ConfigOption {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConfigOptionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.CONFIG_OPTION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.CONFIG_OPTION__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.CONFIG_OPTION__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.CONFIG_OPTION__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.CONFIG_OPTION__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.CONFIG_OPTION__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.CONFIG_OPTION__BASE_CLASS:
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // ConfigOptionImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConfigurableElementInstanceImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConfigurableElementInstanceImpl.java
new file mode 100644
index 00000000000..fb9e509e607
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConfigurableElementInstanceImpl.java
@@ -0,0 +1,166 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.ConfigurableElementInstance;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.uml2.uml.InstanceSpecification;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Configurable Element Instance</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ConfigurableElementInstanceImpl#getConfiguration <em>Configuration</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class ConfigurableElementInstanceImpl extends EObjectImpl implements ConfigurableElementInstance {
+ /**
+ * The cached value of the '{@link #getConfiguration() <em>Configuration</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getConfiguration()
+ * @generated
+ * @ordered
+ */
+ protected InstanceSpecification configuration;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConfigurableElementInstanceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.CONFIGURABLE_ELEMENT_INSTANCE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public InstanceSpecification getConfiguration() {
+ if (configuration != null && configuration.eIsProxy()) {
+ InternalEObject oldConfiguration = (InternalEObject)configuration;
+ configuration = (InstanceSpecification)eResolveProxy(oldConfiguration);
+ if (configuration != oldConfiguration) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.CONFIGURABLE_ELEMENT_INSTANCE__CONFIGURATION, oldConfiguration, configuration));
+ }
+ }
+ return configuration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InstanceSpecification basicGetConfiguration() {
+ return configuration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setConfiguration(InstanceSpecification newConfiguration) {
+ InstanceSpecification oldConfiguration = configuration;
+ configuration = newConfiguration;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.CONFIGURABLE_ELEMENT_INSTANCE__CONFIGURATION, oldConfiguration, configuration));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.CONFIGURABLE_ELEMENT_INSTANCE__CONFIGURATION:
+ if (resolve) return getConfiguration();
+ return basicGetConfiguration();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.CONFIGURABLE_ELEMENT_INSTANCE__CONFIGURATION:
+ setConfiguration((InstanceSpecification)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.CONFIGURABLE_ELEMENT_INSTANCE__CONFIGURATION:
+ setConfiguration((InstanceSpecification)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.CONFIGURABLE_ELEMENT_INSTANCE__CONFIGURATION:
+ return configuration != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // ConfigurableElementInstanceImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConfigurationImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConfigurationImpl.java
new file mode 100644
index 00000000000..b4910abb934
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConfigurationImpl.java
@@ -0,0 +1,269 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.papyrus.FCM.ConfigOption;
+import org.eclipse.papyrus.FCM.Configuration;
+import org.eclipse.papyrus.FCM.DeploymentPlan;
+import org.eclipse.papyrus.FCM.FCMPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Configuration</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ConfigurationImpl#getBase_Class <em>Base Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ConfigurationImpl#getConfigOptions <em>Config Options</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ConfigurationImpl#getDeploymentPlan <em>Deployment Plan</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ConfigurationImpl extends EObjectImpl implements Configuration {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * The cached value of the '{@link #getConfigOptions() <em>Config Options</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getConfigOptions()
+ * @generated
+ * @ordered
+ */
+ protected EList<ConfigOption> configOptions;
+
+ /**
+ * The cached value of the '{@link #getDeploymentPlan() <em>Deployment Plan</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDeploymentPlan()
+ * @generated
+ * @ordered
+ */
+ protected DeploymentPlan deploymentPlan;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConfigurationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.CONFIGURATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.CONFIGURATION__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.CONFIGURATION__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<ConfigOption> getConfigOptions() {
+ if (configOptions == null) {
+ configOptions = new EObjectResolvingEList<ConfigOption>(ConfigOption.class, this, FCMPackage.CONFIGURATION__CONFIG_OPTIONS);
+ }
+ return configOptions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public DeploymentPlan getDeploymentPlan() {
+ if (deploymentPlan != null && deploymentPlan.eIsProxy()) {
+ InternalEObject oldDeploymentPlan = (InternalEObject)deploymentPlan;
+ deploymentPlan = (DeploymentPlan)eResolveProxy(oldDeploymentPlan);
+ if (deploymentPlan != oldDeploymentPlan) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.CONFIGURATION__DEPLOYMENT_PLAN, oldDeploymentPlan, deploymentPlan));
+ }
+ }
+ return deploymentPlan;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DeploymentPlan basicGetDeploymentPlan() {
+ return deploymentPlan;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setDeploymentPlan(DeploymentPlan newDeploymentPlan) {
+ DeploymentPlan oldDeploymentPlan = deploymentPlan;
+ deploymentPlan = newDeploymentPlan;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.CONFIGURATION__DEPLOYMENT_PLAN, oldDeploymentPlan, deploymentPlan));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.CONFIGURATION__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ case FCMPackage.CONFIGURATION__CONFIG_OPTIONS:
+ return getConfigOptions();
+ case FCMPackage.CONFIGURATION__DEPLOYMENT_PLAN:
+ if (resolve) return getDeploymentPlan();
+ return basicGetDeploymentPlan();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.CONFIGURATION__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ case FCMPackage.CONFIGURATION__CONFIG_OPTIONS:
+ getConfigOptions().clear();
+ getConfigOptions().addAll((Collection<? extends ConfigOption>)newValue);
+ return;
+ case FCMPackage.CONFIGURATION__DEPLOYMENT_PLAN:
+ setDeploymentPlan((DeploymentPlan)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.CONFIGURATION__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ case FCMPackage.CONFIGURATION__CONFIG_OPTIONS:
+ getConfigOptions().clear();
+ return;
+ case FCMPackage.CONFIGURATION__DEPLOYMENT_PLAN:
+ setDeploymentPlan((DeploymentPlan)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.CONFIGURATION__BASE_CLASS:
+ return base_Class != null;
+ case FCMPackage.CONFIGURATION__CONFIG_OPTIONS:
+ return configOptions != null && !configOptions.isEmpty();
+ case FCMPackage.CONFIGURATION__DEPLOYMENT_PLAN:
+ return deploymentPlan != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // ConfigurationImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConfigurationPropertyImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConfigurationPropertyImpl.java
new file mode 100644
index 00000000000..38eab69aac7
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConfigurationPropertyImpl.java
@@ -0,0 +1,166 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.ConfigurationProperty;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Configuration Property</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ConfigurationPropertyImpl#getBase_Property <em>Base Property</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ConfigurationPropertyImpl extends EObjectImpl implements ConfigurationProperty {
+ /**
+ * The cached value of the '{@link #getBase_Property() <em>Base Property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Property()
+ * @generated
+ * @ordered
+ */
+ protected Property base_Property;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConfigurationPropertyImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.CONFIGURATION_PROPERTY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Property getBase_Property() {
+ if (base_Property != null && base_Property.eIsProxy()) {
+ InternalEObject oldBase_Property = (InternalEObject)base_Property;
+ base_Property = (Property)eResolveProxy(oldBase_Property);
+ if (base_Property != oldBase_Property) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.CONFIGURATION_PROPERTY__BASE_PROPERTY, oldBase_Property, base_Property));
+ }
+ }
+ return base_Property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property basicGetBase_Property() {
+ return base_Property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Property(Property newBase_Property) {
+ Property oldBase_Property = base_Property;
+ base_Property = newBase_Property;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.CONFIGURATION_PROPERTY__BASE_PROPERTY, oldBase_Property, base_Property));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.CONFIGURATION_PROPERTY__BASE_PROPERTY:
+ if (resolve) return getBase_Property();
+ return basicGetBase_Property();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.CONFIGURATION_PROPERTY__BASE_PROPERTY:
+ setBase_Property((Property)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.CONFIGURATION_PROPERTY__BASE_PROPERTY:
+ setBase_Property((Property)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.CONFIGURATION_PROPERTY__BASE_PROPERTY:
+ return base_Property != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // ConfigurationPropertyImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConnectorConfigurationImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConnectorConfigurationImpl.java
new file mode 100644
index 00000000000..21bc4a77305
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConnectorConfigurationImpl.java
@@ -0,0 +1,229 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.Connector;
+import org.eclipse.papyrus.FCM.ConnectorConfiguration;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.uml2.uml.Slot;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Connector Configuration</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ConnectorConfigurationImpl#getBase_Slot <em>Base Slot</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ConnectorConfigurationImpl#getConnector <em>Connector</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ConnectorConfigurationImpl extends EObjectImpl implements ConnectorConfiguration {
+ /**
+ * The cached value of the '{@link #getBase_Slot() <em>Base Slot</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Slot()
+ * @generated
+ * @ordered
+ */
+ protected Slot base_Slot;
+
+ /**
+ * The cached value of the '{@link #getConnector() <em>Connector</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getConnector()
+ * @generated
+ * @ordered
+ */
+ protected Connector connector;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConnectorConfigurationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.CONNECTOR_CONFIGURATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Slot getBase_Slot() {
+ if (base_Slot != null && base_Slot.eIsProxy()) {
+ InternalEObject oldBase_Slot = (InternalEObject)base_Slot;
+ base_Slot = (Slot)eResolveProxy(oldBase_Slot);
+ if (base_Slot != oldBase_Slot) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.CONNECTOR_CONFIGURATION__BASE_SLOT, oldBase_Slot, base_Slot));
+ }
+ }
+ return base_Slot;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Slot basicGetBase_Slot() {
+ return base_Slot;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Slot(Slot newBase_Slot) {
+ Slot oldBase_Slot = base_Slot;
+ base_Slot = newBase_Slot;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.CONNECTOR_CONFIGURATION__BASE_SLOT, oldBase_Slot, base_Slot));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Connector getConnector() {
+ if (connector != null && connector.eIsProxy()) {
+ InternalEObject oldConnector = (InternalEObject)connector;
+ connector = (Connector)eResolveProxy(oldConnector);
+ if (connector != oldConnector) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.CONNECTOR_CONFIGURATION__CONNECTOR, oldConnector, connector));
+ }
+ }
+ return connector;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Connector basicGetConnector() {
+ return connector;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setConnector(Connector newConnector) {
+ Connector oldConnector = connector;
+ connector = newConnector;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.CONNECTOR_CONFIGURATION__CONNECTOR, oldConnector, connector));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.CONNECTOR_CONFIGURATION__BASE_SLOT:
+ if (resolve) return getBase_Slot();
+ return basicGetBase_Slot();
+ case FCMPackage.CONNECTOR_CONFIGURATION__CONNECTOR:
+ if (resolve) return getConnector();
+ return basicGetConnector();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.CONNECTOR_CONFIGURATION__BASE_SLOT:
+ setBase_Slot((Slot)newValue);
+ return;
+ case FCMPackage.CONNECTOR_CONFIGURATION__CONNECTOR:
+ setConnector((Connector)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.CONNECTOR_CONFIGURATION__BASE_SLOT:
+ setBase_Slot((Slot)null);
+ return;
+ case FCMPackage.CONNECTOR_CONFIGURATION__CONNECTOR:
+ setConnector((Connector)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.CONNECTOR_CONFIGURATION__BASE_SLOT:
+ return base_Slot != null;
+ case FCMPackage.CONNECTOR_CONFIGURATION__CONNECTOR:
+ return connector != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // ConnectorConfigurationImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConnectorImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConnectorImpl.java
new file mode 100644
index 00000000000..fc4c4381033
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConnectorImpl.java
@@ -0,0 +1,290 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.papyrus.FCM.Connector;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.InteractionComponent;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Connector</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ConnectorImpl#getBase_Connector <em>Base Connector</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ConnectorImpl#getIc <em>Ic</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ConnectorImpl#getBase_Property <em>Base Property</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ConnectorImpl extends ConfigurableElementInstanceImpl implements Connector {
+ /**
+ * The cached value of the '{@link #getBase_Connector() <em>Base Connector</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Connector()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Connector base_Connector;
+
+ /**
+ * The cached value of the '{@link #getIc() <em>Ic</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIc()
+ * @generated
+ * @ordered
+ */
+ protected InteractionComponent ic;
+
+ /**
+ * The cached value of the '{@link #getBase_Property() <em>Base Property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Property()
+ * @generated
+ * @ordered
+ */
+ protected Property base_Property;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConnectorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.CONNECTOR;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Connector getBase_Connector() {
+ if (base_Connector != null && base_Connector.eIsProxy()) {
+ InternalEObject oldBase_Connector = (InternalEObject)base_Connector;
+ base_Connector = (org.eclipse.uml2.uml.Connector)eResolveProxy(oldBase_Connector);
+ if (base_Connector != oldBase_Connector) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.CONNECTOR__BASE_CONNECTOR, oldBase_Connector, base_Connector));
+ }
+ }
+ return base_Connector;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Connector basicGetBase_Connector() {
+ return base_Connector;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Connector(org.eclipse.uml2.uml.Connector newBase_Connector) {
+ org.eclipse.uml2.uml.Connector oldBase_Connector = base_Connector;
+ base_Connector = newBase_Connector;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.CONNECTOR__BASE_CONNECTOR, oldBase_Connector, base_Connector));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public InteractionComponent getIc() {
+ if (ic != null && ic.eIsProxy()) {
+ InternalEObject oldIc = (InternalEObject)ic;
+ ic = (InteractionComponent)eResolveProxy(oldIc);
+ if (ic != oldIc) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.CONNECTOR__IC, oldIc, ic));
+ }
+ }
+ return ic;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InteractionComponent basicGetIc() {
+ return ic;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setIc(InteractionComponent newIc) {
+ InteractionComponent oldIc = ic;
+ ic = newIc;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.CONNECTOR__IC, oldIc, ic));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Property getBase_Property() {
+ if (base_Property != null && base_Property.eIsProxy()) {
+ InternalEObject oldBase_Property = (InternalEObject)base_Property;
+ base_Property = (Property)eResolveProxy(oldBase_Property);
+ if (base_Property != oldBase_Property) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.CONNECTOR__BASE_PROPERTY, oldBase_Property, base_Property));
+ }
+ }
+ return base_Property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property basicGetBase_Property() {
+ return base_Property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Property(Property newBase_Property) {
+ Property oldBase_Property = base_Property;
+ base_Property = newBase_Property;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.CONNECTOR__BASE_PROPERTY, oldBase_Property, base_Property));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.CONNECTOR__BASE_CONNECTOR:
+ if (resolve) return getBase_Connector();
+ return basicGetBase_Connector();
+ case FCMPackage.CONNECTOR__IC:
+ if (resolve) return getIc();
+ return basicGetIc();
+ case FCMPackage.CONNECTOR__BASE_PROPERTY:
+ if (resolve) return getBase_Property();
+ return basicGetBase_Property();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.CONNECTOR__BASE_CONNECTOR:
+ setBase_Connector((org.eclipse.uml2.uml.Connector)newValue);
+ return;
+ case FCMPackage.CONNECTOR__IC:
+ setIc((InteractionComponent)newValue);
+ return;
+ case FCMPackage.CONNECTOR__BASE_PROPERTY:
+ setBase_Property((Property)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.CONNECTOR__BASE_CONNECTOR:
+ setBase_Connector((org.eclipse.uml2.uml.Connector)null);
+ return;
+ case FCMPackage.CONNECTOR__IC:
+ setIc((InteractionComponent)null);
+ return;
+ case FCMPackage.CONNECTOR__BASE_PROPERTY:
+ setBase_Property((Property)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.CONNECTOR__BASE_CONNECTOR:
+ return base_Connector != null;
+ case FCMPackage.CONNECTOR__IC:
+ return ic != null;
+ case FCMPackage.CONNECTOR__BASE_PROPERTY:
+ return base_Property != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // ConnectorImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ContainerRuleImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ContainerRuleImpl.java
new file mode 100644
index 00000000000..8b705f5b4fb
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ContainerRuleImpl.java
@@ -0,0 +1,277 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.papyrus.FCM.ConfigOption;
+import org.eclipse.papyrus.FCM.ContainerRule;
+import org.eclipse.papyrus.FCM.ContainerRuleKind;
+import org.eclipse.papyrus.FCM.FCMPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Container Rule</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ContainerRuleImpl#getBase_Class <em>Base Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ContainerRuleImpl#getForConfig <em>For Config</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ContainerRuleImpl#getKind <em>Kind</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ContainerRuleImpl extends EObjectImpl implements ContainerRule {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * The cached value of the '{@link #getForConfig() <em>For Config</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getForConfig()
+ * @generated
+ * @ordered
+ */
+ protected EList<ConfigOption> forConfig;
+
+ /**
+ * The default value of the '{@link #getKind() <em>Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getKind()
+ * @generated
+ * @ordered
+ */
+ protected static final ContainerRuleKind KIND_EDEFAULT = ContainerRuleKind.COMPONENT_RULE;
+
+ /**
+ * The cached value of the '{@link #getKind() <em>Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getKind()
+ * @generated
+ * @ordered
+ */
+ protected ContainerRuleKind kind = KIND_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ContainerRuleImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.CONTAINER_RULE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.CONTAINER_RULE__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.CONTAINER_RULE__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<ConfigOption> getForConfig() {
+ if (forConfig == null) {
+ forConfig = new EObjectResolvingEList<ConfigOption>(ConfigOption.class, this, FCMPackage.CONTAINER_RULE__FOR_CONFIG);
+ }
+ return forConfig;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ContainerRuleKind getKind() {
+ return kind;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setKind(ContainerRuleKind newKind) {
+ ContainerRuleKind oldKind = kind;
+ kind = newKind == null ? KIND_EDEFAULT : newKind;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.CONTAINER_RULE__KIND, oldKind, kind));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.CONTAINER_RULE__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ case FCMPackage.CONTAINER_RULE__FOR_CONFIG:
+ return getForConfig();
+ case FCMPackage.CONTAINER_RULE__KIND:
+ return getKind();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.CONTAINER_RULE__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ case FCMPackage.CONTAINER_RULE__FOR_CONFIG:
+ getForConfig().clear();
+ getForConfig().addAll((Collection<? extends ConfigOption>)newValue);
+ return;
+ case FCMPackage.CONTAINER_RULE__KIND:
+ setKind((ContainerRuleKind)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.CONTAINER_RULE__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ case FCMPackage.CONTAINER_RULE__FOR_CONFIG:
+ getForConfig().clear();
+ return;
+ case FCMPackage.CONTAINER_RULE__KIND:
+ setKind(KIND_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.CONTAINER_RULE__BASE_CLASS:
+ return base_Class != null;
+ case FCMPackage.CONTAINER_RULE__FOR_CONFIG:
+ return forConfig != null && !forConfig.isEmpty();
+ case FCMPackage.CONTAINER_RULE__KIND:
+ return kind != KIND_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (kind: "); //$NON-NLS-1$
+ result.append(kind);
+ result.append(')');
+ return result.toString();
+ }
+
+} // ContainerRuleImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CopyAttributeValueImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CopyAttributeValueImpl.java
new file mode 100644
index 00000000000..bc73efb61af
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CopyAttributeValueImpl.java
@@ -0,0 +1,228 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.CopyAttributeValue;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Copy Attribute Value</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.CopyAttributeValueImpl#getSource <em>Source</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.CopyAttributeValueImpl#getBase_Property <em>Base Property</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class CopyAttributeValueImpl extends EObjectImpl implements CopyAttributeValue {
+ /**
+ * The cached value of the '{@link #getSource() <em>Source</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSource()
+ * @generated
+ * @ordered
+ */
+ protected Property source;
+
+ /**
+ * The cached value of the '{@link #getBase_Property() <em>Base Property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Property()
+ * @generated
+ * @ordered
+ */
+ protected Property base_Property;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CopyAttributeValueImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.COPY_ATTRIBUTE_VALUE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Property getSource() {
+ if (source != null && source.eIsProxy()) {
+ InternalEObject oldSource = (InternalEObject)source;
+ source = (Property)eResolveProxy(oldSource);
+ if (source != oldSource) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.COPY_ATTRIBUTE_VALUE__SOURCE, oldSource, source));
+ }
+ }
+ return source;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property basicGetSource() {
+ return source;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setSource(Property newSource) {
+ Property oldSource = source;
+ source = newSource;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.COPY_ATTRIBUTE_VALUE__SOURCE, oldSource, source));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Property getBase_Property() {
+ if (base_Property != null && base_Property.eIsProxy()) {
+ InternalEObject oldBase_Property = (InternalEObject)base_Property;
+ base_Property = (Property)eResolveProxy(oldBase_Property);
+ if (base_Property != oldBase_Property) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.COPY_ATTRIBUTE_VALUE__BASE_PROPERTY, oldBase_Property, base_Property));
+ }
+ }
+ return base_Property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property basicGetBase_Property() {
+ return base_Property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Property(Property newBase_Property) {
+ Property oldBase_Property = base_Property;
+ base_Property = newBase_Property;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.COPY_ATTRIBUTE_VALUE__BASE_PROPERTY, oldBase_Property, base_Property));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.COPY_ATTRIBUTE_VALUE__SOURCE:
+ if (resolve) return getSource();
+ return basicGetSource();
+ case FCMPackage.COPY_ATTRIBUTE_VALUE__BASE_PROPERTY:
+ if (resolve) return getBase_Property();
+ return basicGetBase_Property();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.COPY_ATTRIBUTE_VALUE__SOURCE:
+ setSource((Property)newValue);
+ return;
+ case FCMPackage.COPY_ATTRIBUTE_VALUE__BASE_PROPERTY:
+ setBase_Property((Property)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.COPY_ATTRIBUTE_VALUE__SOURCE:
+ setSource((Property)null);
+ return;
+ case FCMPackage.COPY_ATTRIBUTE_VALUE__BASE_PROPERTY:
+ setBase_Property((Property)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.COPY_ATTRIBUTE_VALUE__SOURCE:
+ return source != null;
+ case FCMPackage.COPY_ATTRIBUTE_VALUE__BASE_PROPERTY:
+ return base_Property != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // CopyAttributeValueImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/DeploymentPlanImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/DeploymentPlanImpl.java
new file mode 100644
index 00000000000..eeec84970e5
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/DeploymentPlanImpl.java
@@ -0,0 +1,228 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.DeploymentPlan;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.uml2.uml.InstanceSpecification;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Deployment Plan</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.DeploymentPlanImpl#getMainInstance <em>Main Instance</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.DeploymentPlanImpl#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class DeploymentPlanImpl extends EObjectImpl implements DeploymentPlan {
+ /**
+ * The cached value of the '{@link #getMainInstance() <em>Main Instance</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMainInstance()
+ * @generated
+ * @ordered
+ */
+ protected InstanceSpecification mainInstance;
+
+ /**
+ * The cached value of the '{@link #getBase_Package() <em>Base Package</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Package()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Package base_Package;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DeploymentPlanImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.DEPLOYMENT_PLAN;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public InstanceSpecification getMainInstance() {
+ if (mainInstance != null && mainInstance.eIsProxy()) {
+ InternalEObject oldMainInstance = (InternalEObject)mainInstance;
+ mainInstance = (InstanceSpecification)eResolveProxy(oldMainInstance);
+ if (mainInstance != oldMainInstance) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.DEPLOYMENT_PLAN__MAIN_INSTANCE, oldMainInstance, mainInstance));
+ }
+ }
+ return mainInstance;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InstanceSpecification basicGetMainInstance() {
+ return mainInstance;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setMainInstance(InstanceSpecification newMainInstance) {
+ InstanceSpecification oldMainInstance = mainInstance;
+ mainInstance = newMainInstance;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.DEPLOYMENT_PLAN__MAIN_INSTANCE, oldMainInstance, mainInstance));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Package getBase_Package() {
+ if (base_Package != null && base_Package.eIsProxy()) {
+ InternalEObject oldBase_Package = (InternalEObject)base_Package;
+ base_Package = (org.eclipse.uml2.uml.Package)eResolveProxy(oldBase_Package);
+ if (base_Package != oldBase_Package) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.DEPLOYMENT_PLAN__BASE_PACKAGE, oldBase_Package, base_Package));
+ }
+ }
+ return base_Package;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Package basicGetBase_Package() {
+ return base_Package;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Package(org.eclipse.uml2.uml.Package newBase_Package) {
+ org.eclipse.uml2.uml.Package oldBase_Package = base_Package;
+ base_Package = newBase_Package;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.DEPLOYMENT_PLAN__BASE_PACKAGE, oldBase_Package, base_Package));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.DEPLOYMENT_PLAN__MAIN_INSTANCE:
+ if (resolve) return getMainInstance();
+ return basicGetMainInstance();
+ case FCMPackage.DEPLOYMENT_PLAN__BASE_PACKAGE:
+ if (resolve) return getBase_Package();
+ return basicGetBase_Package();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.DEPLOYMENT_PLAN__MAIN_INSTANCE:
+ setMainInstance((InstanceSpecification)newValue);
+ return;
+ case FCMPackage.DEPLOYMENT_PLAN__BASE_PACKAGE:
+ setBase_Package((org.eclipse.uml2.uml.Package)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.DEPLOYMENT_PLAN__MAIN_INSTANCE:
+ setMainInstance((InstanceSpecification)null);
+ return;
+ case FCMPackage.DEPLOYMENT_PLAN__BASE_PACKAGE:
+ setBase_Package((org.eclipse.uml2.uml.Package)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.DEPLOYMENT_PLAN__MAIN_INSTANCE:
+ return mainInstance != null;
+ case FCMPackage.DEPLOYMENT_PLAN__BASE_PACKAGE:
+ return base_Package != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // DeploymentPlanImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/DerivedElementImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/DerivedElementImpl.java
new file mode 100644
index 00000000000..3217b6ff94e
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/DerivedElementImpl.java
@@ -0,0 +1,228 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.DerivedElement;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.uml2.uml.Element;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Derived Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.DerivedElementImpl#getBase_Element <em>Base Element</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.DerivedElementImpl#getSource <em>Source</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class DerivedElementImpl extends EObjectImpl implements DerivedElement {
+ /**
+ * The cached value of the '{@link #getBase_Element() <em>Base Element</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Element()
+ * @generated
+ * @ordered
+ */
+ protected Element base_Element;
+
+ /**
+ * The cached value of the '{@link #getSource() <em>Source</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSource()
+ * @generated
+ * @ordered
+ */
+ protected Element source;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DerivedElementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.DERIVED_ELEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Element getBase_Element() {
+ if (base_Element != null && base_Element.eIsProxy()) {
+ InternalEObject oldBase_Element = (InternalEObject)base_Element;
+ base_Element = (Element)eResolveProxy(oldBase_Element);
+ if (base_Element != oldBase_Element) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.DERIVED_ELEMENT__BASE_ELEMENT, oldBase_Element, base_Element));
+ }
+ }
+ return base_Element;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetBase_Element() {
+ return base_Element;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Element(Element newBase_Element) {
+ Element oldBase_Element = base_Element;
+ base_Element = newBase_Element;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.DERIVED_ELEMENT__BASE_ELEMENT, oldBase_Element, base_Element));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Element getSource() {
+ if (source != null && source.eIsProxy()) {
+ InternalEObject oldSource = (InternalEObject)source;
+ source = (Element)eResolveProxy(oldSource);
+ if (source != oldSource) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.DERIVED_ELEMENT__SOURCE, oldSource, source));
+ }
+ }
+ return source;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetSource() {
+ return source;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setSource(Element newSource) {
+ Element oldSource = source;
+ source = newSource;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.DERIVED_ELEMENT__SOURCE, oldSource, source));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.DERIVED_ELEMENT__BASE_ELEMENT:
+ if (resolve) return getBase_Element();
+ return basicGetBase_Element();
+ case FCMPackage.DERIVED_ELEMENT__SOURCE:
+ if (resolve) return getSource();
+ return basicGetSource();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.DERIVED_ELEMENT__BASE_ELEMENT:
+ setBase_Element((Element)newValue);
+ return;
+ case FCMPackage.DERIVED_ELEMENT__SOURCE:
+ setSource((Element)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.DERIVED_ELEMENT__BASE_ELEMENT:
+ setBase_Element((Element)null);
+ return;
+ case FCMPackage.DERIVED_ELEMENT__SOURCE:
+ setSource((Element)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.DERIVED_ELEMENT__BASE_ELEMENT:
+ return base_Element != null;
+ case FCMPackage.DERIVED_ELEMENT__SOURCE:
+ return source != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // DerivedElementImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FCMFactoryImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FCMFactoryImpl.java
new file mode 100644
index 00000000000..9cd6ea0b76d
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FCMFactoryImpl.java
@@ -0,0 +1,652 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.papyrus.FCM.*;
+import org.eclipse.papyrus.FCM.Assembly;
+import org.eclipse.papyrus.FCM.AutoIndex;
+import org.eclipse.papyrus.FCM.AutoIndexPerNode;
+import org.eclipse.papyrus.FCM.BindTemplate;
+import org.eclipse.papyrus.FCM.BindingHelper;
+import org.eclipse.papyrus.FCM.CodeGenOptions;
+import org.eclipse.papyrus.FCM.CompImplTemplate;
+import org.eclipse.papyrus.FCM.CompToOOmapping;
+import org.eclipse.papyrus.FCM.CompilerChain;
+import org.eclipse.papyrus.FCM.ConfigOption;
+import org.eclipse.papyrus.FCM.Configuration;
+import org.eclipse.papyrus.FCM.ConfigurationProperty;
+import org.eclipse.papyrus.FCM.Connector;
+import org.eclipse.papyrus.FCM.ConnectorConfiguration;
+import org.eclipse.papyrus.FCM.ContainerRule;
+import org.eclipse.papyrus.FCM.ContainerRuleKind;
+import org.eclipse.papyrus.FCM.CopyAttributeValue;
+import org.eclipse.papyrus.FCM.DeploymentPlan;
+import org.eclipse.papyrus.FCM.DerivedElement;
+import org.eclipse.papyrus.FCM.FCMFactory;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.Flatten;
+import org.eclipse.papyrus.FCM.Fragment;
+import org.eclipse.papyrus.FCM.ImplementationGroup;
+import org.eclipse.papyrus.FCM.ImplementationProperties;
+import org.eclipse.papyrus.FCM.InitPrecedence;
+import org.eclipse.papyrus.FCM.InstanceConfigurator;
+import org.eclipse.papyrus.FCM.InteractionComponent;
+import org.eclipse.papyrus.FCM.InterceptionKind;
+import org.eclipse.papyrus.FCM.InterceptionRule;
+import org.eclipse.papyrus.FCM.OperatingSystem;
+import org.eclipse.papyrus.FCM.Port;
+import org.eclipse.papyrus.FCM.PortKind;
+import org.eclipse.papyrus.FCM.ProgLanguage;
+import org.eclipse.papyrus.FCM.RuleApplication;
+import org.eclipse.papyrus.FCM.Singleton;
+import org.eclipse.papyrus.FCM.Target;
+import org.eclipse.papyrus.FCM.TargetArchitecture;
+import org.eclipse.papyrus.FCM.Template;
+import org.eclipse.papyrus.FCM.TemplatePort;
+import org.eclipse.papyrus.FCM.UseInstanceConfigurator;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class FCMFactoryImpl extends EFactoryImpl implements FCMFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static FCMFactory init() {
+ try {
+ FCMFactory theFCMFactory = (FCMFactory)EPackage.Registry.INSTANCE.getEFactory(FCMPackage.eNS_URI);
+ if (theFCMFactory != null) {
+ return theFCMFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new FCMFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FCMFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case FCMPackage.TEMPLATE: return createTemplate();
+ case FCMPackage.BINDING_HELPER: return createBindingHelper();
+ case FCMPackage.CONFIGURATION_PROPERTY: return createConfigurationProperty();
+ case FCMPackage.IMPLEMENTATION_GROUP: return createImplementationGroup();
+ case FCMPackage.ASSEMBLY: return createAssembly();
+ case FCMPackage.FLATTEN: return createFlatten();
+ case FCMPackage.COMP_TO_OOMAPPING: return createCompToOOmapping();
+ case FCMPackage.PROG_LANGUAGE: return createProgLanguage();
+ case FCMPackage.CODE_GEN_OPTIONS: return createCodeGenOptions();
+ case FCMPackage.INTERACTION_COMPONENT: return createInteractionComponent();
+ case FCMPackage.SINGLETON: return createSingleton();
+ case FCMPackage.CONNECTOR: return createConnector();
+ case FCMPackage.USE_INSTANCE_CONFIGURATOR: return createUseInstanceConfigurator();
+ case FCMPackage.INSTANCE_CONFIGURATOR: return createInstanceConfigurator();
+ case FCMPackage.RULE_APPLICATION: return createRuleApplication();
+ case FCMPackage.CONTAINER_RULE: return createContainerRule();
+ case FCMPackage.CONFIG_OPTION: return createConfigOption();
+ case FCMPackage.TEMPLATE_PORT: return createTemplatePort();
+ case FCMPackage.PORT: return createPort();
+ case FCMPackage.PORT_KIND: return createPortKind();
+ case FCMPackage.DEPLOYMENT_PLAN: return createDeploymentPlan();
+ case FCMPackage.DERIVED_ELEMENT: return createDerivedElement();
+ case FCMPackage.COMP_IMPL_TEMPLATE: return createCompImplTemplate();
+ case FCMPackage.IMPLEMENTATION_PROPERTIES: return createImplementationProperties();
+ case FCMPackage.OPERATING_SYSTEM: return createOperatingSystem();
+ case FCMPackage.TARGET_ARCHITECTURE: return createTargetArchitecture();
+ case FCMPackage.CONFIGURATION: return createConfiguration();
+ case FCMPackage.INTERCEPTION_RULE: return createInterceptionRule();
+ case FCMPackage.TARGET: return createTarget();
+ case FCMPackage.COMPILER_CHAIN: return createCompilerChain();
+ case FCMPackage.FRAGMENT: return createFragment();
+ case FCMPackage.COPY_ATTRIBUTE_VALUE: return createCopyAttributeValue();
+ case FCMPackage.AUTO_INDEX: return createAutoIndex();
+ case FCMPackage.AUTO_INDEX_PER_NODE: return createAutoIndexPerNode();
+ case FCMPackage.INIT_PRECEDENCE: return createInitPrecedence();
+ case FCMPackage.CONNECTOR_CONFIGURATION: return createConnectorConfiguration();
+ case FCMPackage.BIND_TEMPLATE: return createBindTemplate();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object createFromString(EDataType eDataType, String initialValue) {
+ switch (eDataType.getClassifierID()) {
+ case FCMPackage.CONTAINER_RULE_KIND:
+ return createContainerRuleKindFromString(eDataType, initialValue);
+ case FCMPackage.INTERCEPTION_KIND:
+ return createInterceptionKindFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String convertToString(EDataType eDataType, Object instanceValue) {
+ switch (eDataType.getClassifierID()) {
+ case FCMPackage.CONTAINER_RULE_KIND:
+ return convertContainerRuleKindToString(eDataType, instanceValue);
+ case FCMPackage.INTERCEPTION_KIND:
+ return convertInterceptionKindToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Template createTemplate() {
+ TemplateImpl template = new TemplateImpl();
+ return template;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public BindingHelper createBindingHelper() {
+ BindingHelperImpl bindingHelper = new BindingHelperImpl();
+ return bindingHelper;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ConfigurationProperty createConfigurationProperty() {
+ ConfigurationPropertyImpl configurationProperty = new ConfigurationPropertyImpl();
+ return configurationProperty;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ImplementationGroup createImplementationGroup() {
+ ImplementationGroupImpl implementationGroup = new ImplementationGroupImpl();
+ return implementationGroup;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Assembly createAssembly() {
+ AssemblyImpl assembly = new AssemblyImpl();
+ return assembly;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Flatten createFlatten() {
+ FlattenImpl flatten = new FlattenImpl();
+ return flatten;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public CompToOOmapping createCompToOOmapping() {
+ CompToOOmappingImpl compToOOmapping = new CompToOOmappingImpl();
+ return compToOOmapping;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ProgLanguage createProgLanguage() {
+ ProgLanguageImpl progLanguage = new ProgLanguageImpl();
+ return progLanguage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public CodeGenOptions createCodeGenOptions() {
+ CodeGenOptionsImpl codeGenOptions = new CodeGenOptionsImpl();
+ return codeGenOptions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public InteractionComponent createInteractionComponent() {
+ InteractionComponentImpl interactionComponent = new InteractionComponentImpl();
+ return interactionComponent;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Singleton createSingleton() {
+ SingletonImpl singleton = new SingletonImpl();
+ return singleton;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Connector createConnector() {
+ ConnectorImpl connector = new ConnectorImpl();
+ return connector;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public UseInstanceConfigurator createUseInstanceConfigurator() {
+ UseInstanceConfiguratorImpl useInstanceConfigurator = new UseInstanceConfiguratorImpl();
+ return useInstanceConfigurator;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public InstanceConfigurator createInstanceConfigurator() {
+ InstanceConfiguratorImpl instanceConfigurator = new InstanceConfiguratorImpl();
+ return instanceConfigurator;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public RuleApplication createRuleApplication() {
+ RuleApplicationImpl ruleApplication = new RuleApplicationImpl();
+ return ruleApplication;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ContainerRule createContainerRule() {
+ ContainerRuleImpl containerRule = new ContainerRuleImpl();
+ return containerRule;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ConfigOption createConfigOption() {
+ ConfigOptionImpl configOption = new ConfigOptionImpl();
+ return configOption;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public TemplatePort createTemplatePort() {
+ TemplatePortImpl templatePort = new TemplatePortImpl();
+ return templatePort;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Port createPort() {
+ PortImpl port = new PortImpl();
+ return port;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public PortKind createPortKind() {
+ PortKindImpl portKind = new PortKindImpl();
+ return portKind;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public DeploymentPlan createDeploymentPlan() {
+ DeploymentPlanImpl deploymentPlan = new DeploymentPlanImpl();
+ return deploymentPlan;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public DerivedElement createDerivedElement() {
+ DerivedElementImpl derivedElement = new DerivedElementImpl();
+ return derivedElement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public CompImplTemplate createCompImplTemplate() {
+ CompImplTemplateImpl compImplTemplate = new CompImplTemplateImpl();
+ return compImplTemplate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ImplementationProperties createImplementationProperties() {
+ ImplementationPropertiesImpl implementationProperties = new ImplementationPropertiesImpl();
+ return implementationProperties;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public OperatingSystem createOperatingSystem() {
+ OperatingSystemImpl operatingSystem = new OperatingSystemImpl();
+ return operatingSystem;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public TargetArchitecture createTargetArchitecture() {
+ TargetArchitectureImpl targetArchitecture = new TargetArchitectureImpl();
+ return targetArchitecture;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Configuration createConfiguration() {
+ ConfigurationImpl configuration = new ConfigurationImpl();
+ return configuration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public InterceptionRule createInterceptionRule() {
+ InterceptionRuleImpl interceptionRule = new InterceptionRuleImpl();
+ return interceptionRule;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Target createTarget() {
+ TargetImpl target = new TargetImpl();
+ return target;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public CompilerChain createCompilerChain() {
+ CompilerChainImpl compilerChain = new CompilerChainImpl();
+ return compilerChain;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Fragment createFragment() {
+ FragmentImpl fragment = new FragmentImpl();
+ return fragment;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public CopyAttributeValue createCopyAttributeValue() {
+ CopyAttributeValueImpl copyAttributeValue = new CopyAttributeValueImpl();
+ return copyAttributeValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public AutoIndex createAutoIndex() {
+ AutoIndexImpl autoIndex = new AutoIndexImpl();
+ return autoIndex;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public AutoIndexPerNode createAutoIndexPerNode() {
+ AutoIndexPerNodeImpl autoIndexPerNode = new AutoIndexPerNodeImpl();
+ return autoIndexPerNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public InitPrecedence createInitPrecedence() {
+ InitPrecedenceImpl initPrecedence = new InitPrecedenceImpl();
+ return initPrecedence;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ConnectorConfiguration createConnectorConfiguration() {
+ ConnectorConfigurationImpl connectorConfiguration = new ConnectorConfigurationImpl();
+ return connectorConfiguration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public BindTemplate createBindTemplate() {
+ BindTemplateImpl bindTemplate = new BindTemplateImpl();
+ return bindTemplate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ContainerRuleKind createContainerRuleKindFromString(EDataType eDataType, String initialValue) {
+ ContainerRuleKind result = ContainerRuleKind.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertContainerRuleKindToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InterceptionKind createInterceptionKindFromString(EDataType eDataType, String initialValue) {
+ InterceptionKind result = InterceptionKind.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertInterceptionKindToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public FCMPackage getFCMPackage() {
+ return (FCMPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static FCMPackage getPackage() {
+ return FCMPackage.eINSTANCE;
+ }
+
+} // FCMFactoryImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FCMPackageImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FCMPackageImpl.java
new file mode 100644
index 00000000000..c59952dab6e
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FCMPackageImpl.java
@@ -0,0 +1,2002 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.papyrus.FCM.Assembly;
+import org.eclipse.papyrus.FCM.AutoIndex;
+import org.eclipse.papyrus.FCM.AutoIndexPerNode;
+import org.eclipse.papyrus.FCM.BindTemplate;
+import org.eclipse.papyrus.FCM.BindingHelper;
+import org.eclipse.papyrus.FCM.CodeGenOptions;
+import org.eclipse.papyrus.FCM.CompImplTemplate;
+import org.eclipse.papyrus.FCM.CompToOOmapping;
+import org.eclipse.papyrus.FCM.CompilerChain;
+import org.eclipse.papyrus.FCM.ConfigOption;
+import org.eclipse.papyrus.FCM.ConfigurableElementInstance;
+import org.eclipse.papyrus.FCM.Configuration;
+import org.eclipse.papyrus.FCM.ConfigurationProperty;
+import org.eclipse.papyrus.FCM.Connector;
+import org.eclipse.papyrus.FCM.ConnectorConfiguration;
+import org.eclipse.papyrus.FCM.ContainerRule;
+import org.eclipse.papyrus.FCM.ContainerRuleKind;
+import org.eclipse.papyrus.FCM.CopyAttributeValue;
+import org.eclipse.papyrus.FCM.DeploymentPlan;
+import org.eclipse.papyrus.FCM.DerivedElement;
+import org.eclipse.papyrus.FCM.FCMFactory;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.Flatten;
+import org.eclipse.papyrus.FCM.Fragment;
+import org.eclipse.papyrus.FCM.ImplementationGroup;
+import org.eclipse.papyrus.FCM.ImplementationProperties;
+import org.eclipse.papyrus.FCM.InitPrecedence;
+import org.eclipse.papyrus.FCM.InstanceConfigurator;
+import org.eclipse.papyrus.FCM.InteractionComponent;
+import org.eclipse.papyrus.FCM.InterceptionKind;
+import org.eclipse.papyrus.FCM.InterceptionRule;
+import org.eclipse.papyrus.FCM.OperatingSystem;
+import org.eclipse.papyrus.FCM.Port;
+import org.eclipse.papyrus.FCM.PortKind;
+import org.eclipse.papyrus.FCM.ProgLanguage;
+import org.eclipse.papyrus.FCM.RuleApplication;
+import org.eclipse.papyrus.FCM.Singleton;
+import org.eclipse.papyrus.FCM.Target;
+import org.eclipse.papyrus.FCM.TargetArchitecture;
+import org.eclipse.papyrus.FCM.Template;
+import org.eclipse.papyrus.FCM.TemplatePort;
+import org.eclipse.papyrus.FCM.UseInstanceConfigurator;
+import org.eclipse.uml2.types.TypesPackage;
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class FCMPackageImpl extends EPackageImpl implements FCMPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass templateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass bindingHelperEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass configurationPropertyEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass implementationGroupEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass assemblyEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass flattenEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass compToOOmappingEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass progLanguageEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass codeGenOptionsEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass interactionComponentEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass singletonEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass connectorEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass configurableElementInstanceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass useInstanceConfiguratorEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass instanceConfiguratorEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass ruleApplicationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass containerRuleEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass configOptionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass templatePortEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass portEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass portKindEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass deploymentPlanEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass derivedElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass compImplTemplateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass implementationPropertiesEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass operatingSystemEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass targetArchitectureEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass configurationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass interceptionRuleEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass targetEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass compilerChainEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass fragmentEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass copyAttributeValueEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass autoIndexEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass autoIndexPerNodeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass initPrecedenceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass connectorConfigurationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass bindTemplateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum containerRuleKindEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum interceptionKindEEnum = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.papyrus.FCM.FCMPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private FCMPackageImpl() {
+ super(eNS_URI, FCMFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link FCMPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static FCMPackage init() {
+ if (isInited) return (FCMPackage)EPackage.Registry.INSTANCE.getEPackage(FCMPackage.eNS_URI);
+
+ // Obtain or create and register package
+ FCMPackageImpl theFCMPackage = (FCMPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof FCMPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new FCMPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ UMLPackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theFCMPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theFCMPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theFCMPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(FCMPackage.eNS_URI, theFCMPackage);
+ return theFCMPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getTemplate() {
+ return templateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getTemplate_Base_Element() {
+ return (EReference)templateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getTemplate_Helper() {
+ return (EReference)templateEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getBindingHelper() {
+ return bindingHelperEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getBindingHelper_Base_Class() {
+ return (EReference)bindingHelperEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getConfigurationProperty() {
+ return configurationPropertyEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getConfigurationProperty_Base_Property() {
+ return (EReference)configurationPropertyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getImplementationGroup() {
+ return implementationGroupEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getImplementationGroup_Base_Class() {
+ return (EReference)implementationGroupEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getAssembly() {
+ return assemblyEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getAssembly_Base_Class() {
+ return (EReference)assemblyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getFlatten() {
+ return flattenEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getFlatten_Base_Class() {
+ return (EReference)flattenEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getCompToOOmapping() {
+ return compToOOmappingEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getCompToOOmapping_Base_Class() {
+ return (EReference)compToOOmappingEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getProgLanguage() {
+ return progLanguageEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getProgLanguage_Base_Class() {
+ return (EReference)progLanguageEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getCodeGenOptions() {
+ return codeGenOptionsEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getCodeGenOptions_Base_Package() {
+ return (EReference)codeGenOptionsEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getCodeGenOptions_CompToOOmapping() {
+ return (EReference)codeGenOptionsEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getCodeGenOptions_ProgLanguage() {
+ return (EReference)codeGenOptionsEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getInteractionComponent() {
+ return interactionComponentEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getInteractionComponent_ForDistribution() {
+ return (EAttribute)interactionComponentEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getInteractionComponent_ConnectionPattern() {
+ return (EReference)interactionComponentEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getInteractionComponent_Base_Class() {
+ return (EReference)interactionComponentEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getSingleton() {
+ return singletonEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getSingleton_Base_Class() {
+ return (EReference)singletonEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getConnector() {
+ return connectorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getConnector_Base_Connector() {
+ return (EReference)connectorEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getConnector_Ic() {
+ return (EReference)connectorEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getConnector_Base_Property() {
+ return (EReference)connectorEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getConfigurableElementInstance() {
+ return configurableElementInstanceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getConfigurableElementInstance_Configuration() {
+ return (EReference)configurableElementInstanceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getUseInstanceConfigurator() {
+ return useInstanceConfiguratorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getUseInstanceConfigurator_Base_Class() {
+ return (EReference)useInstanceConfiguratorEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getUseInstanceConfigurator_Configurator() {
+ return (EReference)useInstanceConfiguratorEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getInstanceConfigurator() {
+ return instanceConfiguratorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getInstanceConfigurator_Base_Class() {
+ return (EReference)instanceConfiguratorEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getInstanceConfigurator_OnNodeModel() {
+ return (EAttribute)instanceConfiguratorEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getRuleApplication() {
+ return ruleApplicationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getRuleApplication_Base_Class() {
+ return (EReference)ruleApplicationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getRuleApplication_ContainerRule() {
+ return (EReference)ruleApplicationEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getRuleApplication_Base_Package() {
+ return (EReference)ruleApplicationEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getContainerRule() {
+ return containerRuleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getContainerRule_Base_Class() {
+ return (EReference)containerRuleEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getContainerRule_ForConfig() {
+ return (EReference)containerRuleEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getContainerRule_Kind() {
+ return (EAttribute)containerRuleEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getConfigOption() {
+ return configOptionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getConfigOption_Base_Class() {
+ return (EReference)configOptionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getTemplatePort() {
+ return templatePortEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getTemplatePort_BoundType() {
+ return (EReference)templatePortEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getPort() {
+ return portEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getPort_Base_Port() {
+ return (EReference)portEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getPort_Kind() {
+ return (EReference)portEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPort_Type() {
+ return (EReference)portEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getPortKind() {
+ return portKindEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getPortKind_Base_Class() {
+ return (EReference)portKindEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getPortKind_ProvidedInterface() {
+ return (EReference)portKindEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getPortKind_RequiredInterface() {
+ return (EReference)portKindEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getPortKind_ExtendedPort() {
+ return (EAttribute)portKindEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getDeploymentPlan() {
+ return deploymentPlanEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getDeploymentPlan_MainInstance() {
+ return (EReference)deploymentPlanEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getDeploymentPlan_Base_Package() {
+ return (EReference)deploymentPlanEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getDerivedElement() {
+ return derivedElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getDerivedElement_Base_Element() {
+ return (EReference)derivedElementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getDerivedElement_Source() {
+ return (EReference)derivedElementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getCompImplTemplate() {
+ return compImplTemplateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getCompImplTemplate_TemplateDefs() {
+ return (EAttribute)compImplTemplateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getCompImplTemplate_Base_Class() {
+ return (EReference)compImplTemplateEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getImplementationProperties() {
+ return implementationPropertiesEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getImplementationProperties_SizeRAM() {
+ return (EAttribute)implementationPropertiesEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getImplementationProperties_SupportedOS() {
+ return (EReference)implementationPropertiesEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getImplementationProperties_Arch() {
+ return (EReference)implementationPropertiesEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getImplementationProperties_Base_Class() {
+ return (EReference)implementationPropertiesEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getImplementationProperties_SizeROM() {
+ return (EAttribute)implementationPropertiesEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getImplementationProperties_SupportedTargetArch() {
+ return (EReference)implementationPropertiesEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getOperatingSystem() {
+ return operatingSystemEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getOperatingSystem_Base_Class() {
+ return (EReference)operatingSystemEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getTargetArchitecture() {
+ return targetArchitectureEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getTargetArchitecture_Base_Class() {
+ return (EReference)targetArchitectureEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getConfiguration() {
+ return configurationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getConfiguration_Base_Class() {
+ return (EReference)configurationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getConfiguration_ConfigOptions() {
+ return (EReference)configurationEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getConfiguration_DeploymentPlan() {
+ return (EReference)configurationEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getInterceptionRule() {
+ return interceptionRuleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getInterceptionRule_InterceptionKind() {
+ return (EAttribute)interceptionRuleEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getInterceptionRule_InterceptionSet() {
+ return (EReference)interceptionRuleEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getInterceptionRule_Base_Property() {
+ return (EReference)interceptionRuleEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getInterceptionRule_Base_Operation() {
+ return (EReference)interceptionRuleEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getTarget() {
+ return targetEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getTarget_TargetArch() {
+ return (EReference)targetEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getTarget_Options() {
+ return (EReference)targetEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getTarget_Base_Node() {
+ return (EReference)targetEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getTarget_UsedOS() {
+ return (EReference)targetEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getTarget_AvailRAM() {
+ return (EAttribute)targetEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getTarget_AvailROM() {
+ return (EAttribute)targetEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getTarget_Compiler() {
+ return (EReference)targetEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getCompilerChain() {
+ return compilerChainEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getCompilerChain_Base_Class() {
+ return (EReference)compilerChainEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getFragment() {
+ return fragmentEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getFragment_Base_Class() {
+ return (EReference)fragmentEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getCopyAttributeValue() {
+ return copyAttributeValueEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getCopyAttributeValue_Source() {
+ return (EReference)copyAttributeValueEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getCopyAttributeValue_Base_Property() {
+ return (EReference)copyAttributeValueEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getAutoIndex() {
+ return autoIndexEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getAutoIndex_Base_Property() {
+ return (EReference)autoIndexEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getAutoIndexPerNode() {
+ return autoIndexPerNodeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getInitPrecedence() {
+ return initPrecedenceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getInitPrecedence_InvokeAfter() {
+ return (EReference)initPrecedenceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getInitPrecedence_InvokeBefore() {
+ return (EReference)initPrecedenceEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getInitPrecedence_Base_Class() {
+ return (EReference)initPrecedenceEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getConnectorConfiguration() {
+ return connectorConfigurationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getConnectorConfiguration_Base_Slot() {
+ return (EReference)connectorConfigurationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getConnectorConfiguration_Connector() {
+ return (EReference)connectorConfigurationEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getBindTemplate() {
+ return bindTemplateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getBindTemplate_Actual() {
+ return (EReference)bindTemplateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getBindTemplate_Base_Property() {
+ return (EReference)bindTemplateEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EEnum getContainerRuleKind() {
+ return containerRuleKindEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EEnum getInterceptionKind() {
+ return interceptionKindEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public FCMFactory getFCMFactory() {
+ return (FCMFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ templateEClass = createEClass(TEMPLATE);
+ createEReference(templateEClass, TEMPLATE__BASE_ELEMENT);
+ createEReference(templateEClass, TEMPLATE__HELPER);
+
+ bindingHelperEClass = createEClass(BINDING_HELPER);
+ createEReference(bindingHelperEClass, BINDING_HELPER__BASE_CLASS);
+
+ configurationPropertyEClass = createEClass(CONFIGURATION_PROPERTY);
+ createEReference(configurationPropertyEClass, CONFIGURATION_PROPERTY__BASE_PROPERTY);
+
+ implementationGroupEClass = createEClass(IMPLEMENTATION_GROUP);
+ createEReference(implementationGroupEClass, IMPLEMENTATION_GROUP__BASE_CLASS);
+
+ assemblyEClass = createEClass(ASSEMBLY);
+ createEReference(assemblyEClass, ASSEMBLY__BASE_CLASS);
+
+ flattenEClass = createEClass(FLATTEN);
+ createEReference(flattenEClass, FLATTEN__BASE_CLASS);
+
+ compToOOmappingEClass = createEClass(COMP_TO_OOMAPPING);
+ createEReference(compToOOmappingEClass, COMP_TO_OOMAPPING__BASE_CLASS);
+
+ progLanguageEClass = createEClass(PROG_LANGUAGE);
+ createEReference(progLanguageEClass, PROG_LANGUAGE__BASE_CLASS);
+
+ codeGenOptionsEClass = createEClass(CODE_GEN_OPTIONS);
+ createEReference(codeGenOptionsEClass, CODE_GEN_OPTIONS__BASE_PACKAGE);
+ createEReference(codeGenOptionsEClass, CODE_GEN_OPTIONS__COMP_TO_OOMAPPING);
+ createEReference(codeGenOptionsEClass, CODE_GEN_OPTIONS__PROG_LANGUAGE);
+
+ interactionComponentEClass = createEClass(INTERACTION_COMPONENT);
+ createEAttribute(interactionComponentEClass, INTERACTION_COMPONENT__FOR_DISTRIBUTION);
+ createEReference(interactionComponentEClass, INTERACTION_COMPONENT__CONNECTION_PATTERN);
+ createEReference(interactionComponentEClass, INTERACTION_COMPONENT__BASE_CLASS);
+
+ singletonEClass = createEClass(SINGLETON);
+ createEReference(singletonEClass, SINGLETON__BASE_CLASS);
+
+ connectorEClass = createEClass(CONNECTOR);
+ createEReference(connectorEClass, CONNECTOR__BASE_CONNECTOR);
+ createEReference(connectorEClass, CONNECTOR__IC);
+ createEReference(connectorEClass, CONNECTOR__BASE_PROPERTY);
+
+ configurableElementInstanceEClass = createEClass(CONFIGURABLE_ELEMENT_INSTANCE);
+ createEReference(configurableElementInstanceEClass, CONFIGURABLE_ELEMENT_INSTANCE__CONFIGURATION);
+
+ useInstanceConfiguratorEClass = createEClass(USE_INSTANCE_CONFIGURATOR);
+ createEReference(useInstanceConfiguratorEClass, USE_INSTANCE_CONFIGURATOR__BASE_CLASS);
+ createEReference(useInstanceConfiguratorEClass, USE_INSTANCE_CONFIGURATOR__CONFIGURATOR);
+
+ instanceConfiguratorEClass = createEClass(INSTANCE_CONFIGURATOR);
+ createEReference(instanceConfiguratorEClass, INSTANCE_CONFIGURATOR__BASE_CLASS);
+ createEAttribute(instanceConfiguratorEClass, INSTANCE_CONFIGURATOR__ON_NODE_MODEL);
+
+ ruleApplicationEClass = createEClass(RULE_APPLICATION);
+ createEReference(ruleApplicationEClass, RULE_APPLICATION__BASE_CLASS);
+ createEReference(ruleApplicationEClass, RULE_APPLICATION__CONTAINER_RULE);
+ createEReference(ruleApplicationEClass, RULE_APPLICATION__BASE_PACKAGE);
+
+ containerRuleEClass = createEClass(CONTAINER_RULE);
+ createEReference(containerRuleEClass, CONTAINER_RULE__BASE_CLASS);
+ createEReference(containerRuleEClass, CONTAINER_RULE__FOR_CONFIG);
+ createEAttribute(containerRuleEClass, CONTAINER_RULE__KIND);
+
+ configOptionEClass = createEClass(CONFIG_OPTION);
+ createEReference(configOptionEClass, CONFIG_OPTION__BASE_CLASS);
+
+ templatePortEClass = createEClass(TEMPLATE_PORT);
+ createEReference(templatePortEClass, TEMPLATE_PORT__BOUND_TYPE);
+
+ portEClass = createEClass(PORT);
+ createEReference(portEClass, PORT__BASE_PORT);
+ createEReference(portEClass, PORT__KIND);
+ createEReference(portEClass, PORT__TYPE);
+
+ portKindEClass = createEClass(PORT_KIND);
+ createEReference(portKindEClass, PORT_KIND__BASE_CLASS);
+ createEReference(portKindEClass, PORT_KIND__PROVIDED_INTERFACE);
+ createEReference(portKindEClass, PORT_KIND__REQUIRED_INTERFACE);
+ createEAttribute(portKindEClass, PORT_KIND__EXTENDED_PORT);
+
+ deploymentPlanEClass = createEClass(DEPLOYMENT_PLAN);
+ createEReference(deploymentPlanEClass, DEPLOYMENT_PLAN__MAIN_INSTANCE);
+ createEReference(deploymentPlanEClass, DEPLOYMENT_PLAN__BASE_PACKAGE);
+
+ derivedElementEClass = createEClass(DERIVED_ELEMENT);
+ createEReference(derivedElementEClass, DERIVED_ELEMENT__BASE_ELEMENT);
+ createEReference(derivedElementEClass, DERIVED_ELEMENT__SOURCE);
+
+ compImplTemplateEClass = createEClass(COMP_IMPL_TEMPLATE);
+ createEAttribute(compImplTemplateEClass, COMP_IMPL_TEMPLATE__TEMPLATE_DEFS);
+ createEReference(compImplTemplateEClass, COMP_IMPL_TEMPLATE__BASE_CLASS);
+
+ implementationPropertiesEClass = createEClass(IMPLEMENTATION_PROPERTIES);
+ createEAttribute(implementationPropertiesEClass, IMPLEMENTATION_PROPERTIES__SIZE_RAM);
+ createEReference(implementationPropertiesEClass, IMPLEMENTATION_PROPERTIES__SUPPORTED_OS);
+ createEReference(implementationPropertiesEClass, IMPLEMENTATION_PROPERTIES__ARCH);
+ createEReference(implementationPropertiesEClass, IMPLEMENTATION_PROPERTIES__BASE_CLASS);
+ createEAttribute(implementationPropertiesEClass, IMPLEMENTATION_PROPERTIES__SIZE_ROM);
+ createEReference(implementationPropertiesEClass, IMPLEMENTATION_PROPERTIES__SUPPORTED_TARGET_ARCH);
+
+ operatingSystemEClass = createEClass(OPERATING_SYSTEM);
+ createEReference(operatingSystemEClass, OPERATING_SYSTEM__BASE_CLASS);
+
+ targetArchitectureEClass = createEClass(TARGET_ARCHITECTURE);
+ createEReference(targetArchitectureEClass, TARGET_ARCHITECTURE__BASE_CLASS);
+
+ configurationEClass = createEClass(CONFIGURATION);
+ createEReference(configurationEClass, CONFIGURATION__BASE_CLASS);
+ createEReference(configurationEClass, CONFIGURATION__CONFIG_OPTIONS);
+ createEReference(configurationEClass, CONFIGURATION__DEPLOYMENT_PLAN);
+
+ interceptionRuleEClass = createEClass(INTERCEPTION_RULE);
+ createEAttribute(interceptionRuleEClass, INTERCEPTION_RULE__INTERCEPTION_KIND);
+ createEReference(interceptionRuleEClass, INTERCEPTION_RULE__INTERCEPTION_SET);
+ createEReference(interceptionRuleEClass, INTERCEPTION_RULE__BASE_PROPERTY);
+ createEReference(interceptionRuleEClass, INTERCEPTION_RULE__BASE_OPERATION);
+
+ targetEClass = createEClass(TARGET);
+ createEReference(targetEClass, TARGET__TARGET_ARCH);
+ createEReference(targetEClass, TARGET__OPTIONS);
+ createEReference(targetEClass, TARGET__BASE_NODE);
+ createEReference(targetEClass, TARGET__USED_OS);
+ createEAttribute(targetEClass, TARGET__AVAIL_RAM);
+ createEAttribute(targetEClass, TARGET__AVAIL_ROM);
+ createEReference(targetEClass, TARGET__COMPILER);
+
+ compilerChainEClass = createEClass(COMPILER_CHAIN);
+ createEReference(compilerChainEClass, COMPILER_CHAIN__BASE_CLASS);
+
+ fragmentEClass = createEClass(FRAGMENT);
+ createEReference(fragmentEClass, FRAGMENT__BASE_CLASS);
+
+ copyAttributeValueEClass = createEClass(COPY_ATTRIBUTE_VALUE);
+ createEReference(copyAttributeValueEClass, COPY_ATTRIBUTE_VALUE__SOURCE);
+ createEReference(copyAttributeValueEClass, COPY_ATTRIBUTE_VALUE__BASE_PROPERTY);
+
+ autoIndexEClass = createEClass(AUTO_INDEX);
+ createEReference(autoIndexEClass, AUTO_INDEX__BASE_PROPERTY);
+
+ autoIndexPerNodeEClass = createEClass(AUTO_INDEX_PER_NODE);
+
+ initPrecedenceEClass = createEClass(INIT_PRECEDENCE);
+ createEReference(initPrecedenceEClass, INIT_PRECEDENCE__INVOKE_AFTER);
+ createEReference(initPrecedenceEClass, INIT_PRECEDENCE__INVOKE_BEFORE);
+ createEReference(initPrecedenceEClass, INIT_PRECEDENCE__BASE_CLASS);
+
+ connectorConfigurationEClass = createEClass(CONNECTOR_CONFIGURATION);
+ createEReference(connectorConfigurationEClass, CONNECTOR_CONFIGURATION__BASE_SLOT);
+ createEReference(connectorConfigurationEClass, CONNECTOR_CONFIGURATION__CONNECTOR);
+
+ bindTemplateEClass = createEClass(BIND_TEMPLATE);
+ createEReference(bindTemplateEClass, BIND_TEMPLATE__ACTUAL);
+ createEReference(bindTemplateEClass, BIND_TEMPLATE__BASE_PROPERTY);
+
+ // Create enums
+ containerRuleKindEEnum = createEEnum(CONTAINER_RULE_KIND);
+ interceptionKindEEnum = createEEnum(INTERCEPTION_KIND);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ UMLPackage theUMLPackage = (UMLPackage)EPackage.Registry.INSTANCE.getEPackage(UMLPackage.eNS_URI);
+ TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ connectorEClass.getESuperTypes().add(this.getConfigurableElementInstance());
+ templatePortEClass.getESuperTypes().add(this.getPort());
+ portEClass.getESuperTypes().add(this.getConfigurableElementInstance());
+ autoIndexPerNodeEClass.getESuperTypes().add(this.getAutoIndex());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(templateEClass, Template.class, "Template", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getTemplate_Base_Element(), theUMLPackage.getElement(), null, "base_Element", null, 1, 1, Template.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getTemplate_Helper(), this.getBindingHelper(), null, "helper", null, 0, 1, Template.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(bindingHelperEClass, BindingHelper.class, "BindingHelper", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getBindingHelper_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, BindingHelper.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(configurationPropertyEClass, ConfigurationProperty.class, "ConfigurationProperty", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getConfigurationProperty_Base_Property(), theUMLPackage.getProperty(), null, "base_Property", null, 1, 1, ConfigurationProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(implementationGroupEClass, ImplementationGroup.class, "ImplementationGroup", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getImplementationGroup_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, ImplementationGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(assemblyEClass, Assembly.class, "Assembly", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getAssembly_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, Assembly.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(flattenEClass, Flatten.class, "Flatten", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getFlatten_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, Flatten.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(compToOOmappingEClass, CompToOOmapping.class, "CompToOOmapping", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getCompToOOmapping_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, CompToOOmapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(progLanguageEClass, ProgLanguage.class, "ProgLanguage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getProgLanguage_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, ProgLanguage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(codeGenOptionsEClass, CodeGenOptions.class, "CodeGenOptions", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getCodeGenOptions_Base_Package(), theUMLPackage.getPackage(), null, "base_Package", null, 1, 1, CodeGenOptions.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getCodeGenOptions_CompToOOmapping(), this.getCompToOOmapping(), null, "compToOOmapping", null, 1, 1, CodeGenOptions.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getCodeGenOptions_ProgLanguage(), this.getProgLanguage(), null, "progLanguage", null, 1, 1, CodeGenOptions.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(interactionComponentEClass, InteractionComponent.class, "InteractionComponent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getInteractionComponent_ForDistribution(), theTypesPackage.getBoolean(), "forDistribution", "false", 1, 1, InteractionComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEReference(getInteractionComponent_ConnectionPattern(), theUMLPackage.getCollaboration(), null, "connectionPattern", null, 0, 1, InteractionComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getInteractionComponent_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, InteractionComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(singletonEClass, Singleton.class, "Singleton", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getSingleton_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, Singleton.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(connectorEClass, Connector.class, "Connector", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getConnector_Base_Connector(), theUMLPackage.getConnector(), null, "base_Connector", null, 0, 1, Connector.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getConnector_Ic(), this.getInteractionComponent(), null, "ic", null, 0, 1, Connector.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getConnector_Base_Property(), theUMLPackage.getProperty(), null, "base_Property", null, 0, 1, Connector.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(configurableElementInstanceEClass, ConfigurableElementInstance.class, "ConfigurableElementInstance", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getConfigurableElementInstance_Configuration(), theUMLPackage.getInstanceSpecification(), null, "configuration", null, 0, 1, ConfigurableElementInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(useInstanceConfiguratorEClass, UseInstanceConfigurator.class, "UseInstanceConfigurator", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getUseInstanceConfigurator_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, UseInstanceConfigurator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getUseInstanceConfigurator_Configurator(), this.getInstanceConfigurator(), null, "configurator", null, 1, 1, UseInstanceConfigurator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(instanceConfiguratorEClass, InstanceConfigurator.class, "InstanceConfigurator", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getInstanceConfigurator_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, InstanceConfigurator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getInstanceConfigurator_OnNodeModel(), theTypesPackage.getBoolean(), "onNodeModel", null, 0, 1, InstanceConfigurator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(ruleApplicationEClass, RuleApplication.class, "RuleApplication", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getRuleApplication_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 0, 1, RuleApplication.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getRuleApplication_ContainerRule(), this.getContainerRule(), null, "containerRule", null, 0, -1, RuleApplication.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getRuleApplication_Base_Package(), theUMLPackage.getPackage(), null, "base_Package", null, 0, 1, RuleApplication.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(containerRuleEClass, ContainerRule.class, "ContainerRule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getContainerRule_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, ContainerRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getContainerRule_ForConfig(), this.getConfigOption(), null, "forConfig", null, 0, -1, ContainerRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getContainerRule_Kind(), this.getContainerRuleKind(), "kind", null, 1, 1, ContainerRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(configOptionEClass, ConfigOption.class, "ConfigOption", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getConfigOption_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, ConfigOption.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(templatePortEClass, TemplatePort.class, "TemplatePort", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getTemplatePort_BoundType(), this.getPortKind(), null, "boundType", null, 0, 1, TemplatePort.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(portEClass, Port.class, "Port", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getPort_Base_Port(), theUMLPackage.getPort(), null, "base_Port", null, 1, 1, Port.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getPort_Kind(), this.getPortKind(), null, "kind", null, 0, 1, Port.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getPort_Type(), theUMLPackage.getType(), null, "type", null, 1, 1, Port.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(portKindEClass, PortKind.class, "PortKind", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getPortKind_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, PortKind.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getPortKind_ProvidedInterface(), theUMLPackage.getInterface(), null, "providedInterface", null, 0, 1, PortKind.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getPortKind_RequiredInterface(), theUMLPackage.getInterface(), null, "requiredInterface", null, 0, 1, PortKind.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getPortKind_ExtendedPort(), theTypesPackage.getBoolean(), "extendedPort", null, 1, 1, PortKind.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(deploymentPlanEClass, DeploymentPlan.class, "DeploymentPlan", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getDeploymentPlan_MainInstance(), theUMLPackage.getInstanceSpecification(), null, "mainInstance", null, 1, 1, DeploymentPlan.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDeploymentPlan_Base_Package(), theUMLPackage.getPackage(), null, "base_Package", null, 1, 1, DeploymentPlan.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(derivedElementEClass, DerivedElement.class, "DerivedElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getDerivedElement_Base_Element(), theUMLPackage.getElement(), null, "base_Element", null, 1, 1, DerivedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDerivedElement_Source(), theUMLPackage.getElement(), null, "source", null, 1, 1, DerivedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(compImplTemplateEClass, CompImplTemplate.class, "CompImplTemplate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getCompImplTemplate_TemplateDefs(), theTypesPackage.getString(), "templateDefs", null, 0, 1, CompImplTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getCompImplTemplate_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, CompImplTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(implementationPropertiesEClass, ImplementationProperties.class, "ImplementationProperties", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getImplementationProperties_SizeRAM(), theTypesPackage.getInteger(), "sizeRAM", null, 1, 1, ImplementationProperties.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getImplementationProperties_SupportedOS(), this.getOperatingSystem(), null, "supportedOS", null, 0, -1, ImplementationProperties.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getImplementationProperties_Arch(), this.getTargetArchitecture(), null, "arch", null, 0, -1, ImplementationProperties.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getImplementationProperties_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, ImplementationProperties.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getImplementationProperties_SizeROM(), theTypesPackage.getInteger(), "sizeROM", null, 1, 1, ImplementationProperties.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getImplementationProperties_SupportedTargetArch(), this.getTargetArchitecture(), null, "supportedTargetArch", null, 1, 1, ImplementationProperties.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(operatingSystemEClass, OperatingSystem.class, "OperatingSystem", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getOperatingSystem_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, OperatingSystem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(targetArchitectureEClass, TargetArchitecture.class, "TargetArchitecture", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getTargetArchitecture_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, TargetArchitecture.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(configurationEClass, Configuration.class, "Configuration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getConfiguration_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, Configuration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getConfiguration_ConfigOptions(), this.getConfigOption(), null, "configOptions", null, 0, -1, Configuration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getConfiguration_DeploymentPlan(), this.getDeploymentPlan(), null, "deploymentPlan", null, 1, 1, Configuration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(interceptionRuleEClass, InterceptionRule.class, "InterceptionRule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getInterceptionRule_InterceptionKind(), this.getInterceptionKind(), "interceptionKind", null, 1, 1, InterceptionRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getInterceptionRule_InterceptionSet(), theUMLPackage.getFeature(), null, "interceptionSet", null, 0, -1, InterceptionRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getInterceptionRule_Base_Property(), theUMLPackage.getProperty(), null, "base_Property", null, 1, 1, InterceptionRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getInterceptionRule_Base_Operation(), theUMLPackage.getOperation(), null, "base_Operation", null, 1, 1, InterceptionRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(targetEClass, Target.class, "Target", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getTarget_TargetArch(), this.getTargetArchitecture(), null, "targetArch", null, 1, 1, Target.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getTarget_Options(), this.getConfigOption(), null, "options", null, 0, -1, Target.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getTarget_Base_Node(), theUMLPackage.getNode(), null, "base_Node", null, 1, 1, Target.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getTarget_UsedOS(), this.getOperatingSystem(), null, "usedOS", null, 1, 1, Target.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getTarget_AvailRAM(), theTypesPackage.getInteger(), "availRAM", null, 1, 1, Target.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getTarget_AvailROM(), theTypesPackage.getInteger(), "availROM", null, 1, 1, Target.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getTarget_Compiler(), this.getCompilerChain(), null, "compiler", null, 0, 1, Target.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(compilerChainEClass, CompilerChain.class, "CompilerChain", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getCompilerChain_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, CompilerChain.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(fragmentEClass, Fragment.class, "Fragment", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getFragment_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, Fragment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(copyAttributeValueEClass, CopyAttributeValue.class, "CopyAttributeValue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getCopyAttributeValue_Source(), theUMLPackage.getProperty(), null, "source", null, 1, 1, CopyAttributeValue.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getCopyAttributeValue_Base_Property(), theUMLPackage.getProperty(), null, "base_Property", null, 1, 1, CopyAttributeValue.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(autoIndexEClass, AutoIndex.class, "AutoIndex", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getAutoIndex_Base_Property(), theUMLPackage.getProperty(), null, "base_Property", null, 1, 1, AutoIndex.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(autoIndexPerNodeEClass, AutoIndexPerNode.class, "AutoIndexPerNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(initPrecedenceEClass, InitPrecedence.class, "InitPrecedence", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getInitPrecedence_InvokeAfter(), theUMLPackage.getClass_(), null, "invokeAfter", null, 0, -1, InitPrecedence.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getInitPrecedence_InvokeBefore(), theUMLPackage.getClass_(), null, "invokeBefore", null, 0, -1, InitPrecedence.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getInitPrecedence_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, InitPrecedence.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(connectorConfigurationEClass, ConnectorConfiguration.class, "ConnectorConfiguration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getConnectorConfiguration_Base_Slot(), theUMLPackage.getSlot(), null, "base_Slot", null, 1, 1, ConnectorConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getConnectorConfiguration_Connector(), this.getConnector(), null, "connector", null, 1, 1, ConnectorConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(bindTemplateEClass, BindTemplate.class, "BindTemplate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getBindTemplate_Actual(), theUMLPackage.getType(), null, "actual", null, 0, -1, BindTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getBindTemplate_Base_Property(), theUMLPackage.getProperty(), null, "base_Property", null, 1, 1, BindTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ // Initialize enums and add enum literals
+ initEEnum(containerRuleKindEEnum, ContainerRuleKind.class, "ContainerRuleKind"); //$NON-NLS-1$
+ addEEnumLiteral(containerRuleKindEEnum, ContainerRuleKind.COMPONENT_RULE);
+ addEEnumLiteral(containerRuleKindEEnum, ContainerRuleKind.LIGHT_WEIGHT_OO_RULE);
+
+ initEEnum(interceptionKindEEnum, InterceptionKind.class, "InterceptionKind"); //$NON-NLS-1$
+ addEEnumLiteral(interceptionKindEEnum, InterceptionKind.INTERCEPT_SOME);
+ addEEnumLiteral(interceptionKindEEnum, InterceptionKind.INTERCEPT_ALL);
+ addEEnumLiteral(interceptionKindEEnum, InterceptionKind.INTERCEPT_ALL_OUT);
+ addEEnumLiteral(interceptionKindEEnum, InterceptionKind.INTERCEPT_ALL_IN);
+ addEEnumLiteral(interceptionKindEEnum, InterceptionKind.INTERCEPT_MATCHING);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} // FCMPackageImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FlattenImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FlattenImpl.java
new file mode 100644
index 00000000000..df03b58b1df
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FlattenImpl.java
@@ -0,0 +1,165 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.Flatten;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Flatten</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.FlattenImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class FlattenImpl extends EObjectImpl implements Flatten {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FlattenImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.FLATTEN;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.FLATTEN__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.FLATTEN__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.FLATTEN__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.FLATTEN__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.FLATTEN__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.FLATTEN__BASE_CLASS:
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // FlattenImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FragmentImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FragmentImpl.java
new file mode 100644
index 00000000000..3b0f821b496
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FragmentImpl.java
@@ -0,0 +1,165 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.Fragment;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Fragment</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.FragmentImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class FragmentImpl extends EObjectImpl implements Fragment {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FragmentImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.FRAGMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.FRAGMENT__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.FRAGMENT__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.FRAGMENT__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.FRAGMENT__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.FRAGMENT__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.FRAGMENT__BASE_CLASS:
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // FragmentImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ImplementationGroupImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ImplementationGroupImpl.java
new file mode 100644
index 00000000000..42d65ff5e31
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ImplementationGroupImpl.java
@@ -0,0 +1,165 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.ImplementationGroup;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Implementation Group</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ImplementationGroupImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ImplementationGroupImpl extends EObjectImpl implements ImplementationGroup {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ImplementationGroupImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.IMPLEMENTATION_GROUP;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.IMPLEMENTATION_GROUP__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.IMPLEMENTATION_GROUP__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.IMPLEMENTATION_GROUP__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.IMPLEMENTATION_GROUP__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.IMPLEMENTATION_GROUP__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.IMPLEMENTATION_GROUP__BASE_CLASS:
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // ImplementationGroupImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ImplementationPropertiesImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ImplementationPropertiesImpl.java
new file mode 100644
index 00000000000..7f86201abbf
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ImplementationPropertiesImpl.java
@@ -0,0 +1,430 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.ImplementationProperties;
+import org.eclipse.papyrus.FCM.OperatingSystem;
+import org.eclipse.papyrus.FCM.TargetArchitecture;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Implementation Properties</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ImplementationPropertiesImpl#getSizeRAM <em>Size RAM</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ImplementationPropertiesImpl#getSupportedOS <em>Supported OS</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ImplementationPropertiesImpl#getArch <em>Arch</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ImplementationPropertiesImpl#getBase_Class <em>Base Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ImplementationPropertiesImpl#getSizeROM <em>Size ROM</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ImplementationPropertiesImpl#getSupportedTargetArch <em>Supported Target Arch</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ImplementationPropertiesImpl extends EObjectImpl implements ImplementationProperties {
+ /**
+ * The default value of the '{@link #getSizeRAM() <em>Size RAM</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSizeRAM()
+ * @generated
+ * @ordered
+ */
+ protected static final int SIZE_RAM_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getSizeRAM() <em>Size RAM</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSizeRAM()
+ * @generated
+ * @ordered
+ */
+ protected int sizeRAM = SIZE_RAM_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getSupportedOS() <em>Supported OS</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSupportedOS()
+ * @generated
+ * @ordered
+ */
+ protected EList<OperatingSystem> supportedOS;
+
+ /**
+ * The cached value of the '{@link #getArch() <em>Arch</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getArch()
+ * @generated
+ * @ordered
+ */
+ protected EList<TargetArchitecture> arch;
+
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * The default value of the '{@link #getSizeROM() <em>Size ROM</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSizeROM()
+ * @generated
+ * @ordered
+ */
+ protected static final int SIZE_ROM_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getSizeROM() <em>Size ROM</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSizeROM()
+ * @generated
+ * @ordered
+ */
+ protected int sizeROM = SIZE_ROM_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getSupportedTargetArch() <em>Supported Target Arch</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSupportedTargetArch()
+ * @generated
+ * @ordered
+ */
+ protected TargetArchitecture supportedTargetArch;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ImplementationPropertiesImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.IMPLEMENTATION_PROPERTIES;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getSizeRAM() {
+ return sizeRAM;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setSizeRAM(int newSizeRAM) {
+ int oldSizeRAM = sizeRAM;
+ sizeRAM = newSizeRAM;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.IMPLEMENTATION_PROPERTIES__SIZE_RAM, oldSizeRAM, sizeRAM));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<OperatingSystem> getSupportedOS() {
+ if (supportedOS == null) {
+ supportedOS = new EObjectResolvingEList<OperatingSystem>(OperatingSystem.class, this, FCMPackage.IMPLEMENTATION_PROPERTIES__SUPPORTED_OS);
+ }
+ return supportedOS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<TargetArchitecture> getArch() {
+ if (arch == null) {
+ arch = new EObjectResolvingEList<TargetArchitecture>(TargetArchitecture.class, this, FCMPackage.IMPLEMENTATION_PROPERTIES__ARCH);
+ }
+ return arch;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.IMPLEMENTATION_PROPERTIES__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.IMPLEMENTATION_PROPERTIES__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getSizeROM() {
+ return sizeROM;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setSizeROM(int newSizeROM) {
+ int oldSizeROM = sizeROM;
+ sizeROM = newSizeROM;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.IMPLEMENTATION_PROPERTIES__SIZE_ROM, oldSizeROM, sizeROM));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public TargetArchitecture getSupportedTargetArch() {
+ if (supportedTargetArch != null && supportedTargetArch.eIsProxy()) {
+ InternalEObject oldSupportedTargetArch = (InternalEObject)supportedTargetArch;
+ supportedTargetArch = (TargetArchitecture)eResolveProxy(oldSupportedTargetArch);
+ if (supportedTargetArch != oldSupportedTargetArch) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.IMPLEMENTATION_PROPERTIES__SUPPORTED_TARGET_ARCH, oldSupportedTargetArch, supportedTargetArch));
+ }
+ }
+ return supportedTargetArch;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TargetArchitecture basicGetSupportedTargetArch() {
+ return supportedTargetArch;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setSupportedTargetArch(TargetArchitecture newSupportedTargetArch) {
+ TargetArchitecture oldSupportedTargetArch = supportedTargetArch;
+ supportedTargetArch = newSupportedTargetArch;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.IMPLEMENTATION_PROPERTIES__SUPPORTED_TARGET_ARCH, oldSupportedTargetArch, supportedTargetArch));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__SIZE_RAM:
+ return getSizeRAM();
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__SUPPORTED_OS:
+ return getSupportedOS();
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__ARCH:
+ return getArch();
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__SIZE_ROM:
+ return getSizeROM();
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__SUPPORTED_TARGET_ARCH:
+ if (resolve) return getSupportedTargetArch();
+ return basicGetSupportedTargetArch();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__SIZE_RAM:
+ setSizeRAM((Integer)newValue);
+ return;
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__SUPPORTED_OS:
+ getSupportedOS().clear();
+ getSupportedOS().addAll((Collection<? extends OperatingSystem>)newValue);
+ return;
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__ARCH:
+ getArch().clear();
+ getArch().addAll((Collection<? extends TargetArchitecture>)newValue);
+ return;
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__SIZE_ROM:
+ setSizeROM((Integer)newValue);
+ return;
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__SUPPORTED_TARGET_ARCH:
+ setSupportedTargetArch((TargetArchitecture)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__SIZE_RAM:
+ setSizeRAM(SIZE_RAM_EDEFAULT);
+ return;
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__SUPPORTED_OS:
+ getSupportedOS().clear();
+ return;
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__ARCH:
+ getArch().clear();
+ return;
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__SIZE_ROM:
+ setSizeROM(SIZE_ROM_EDEFAULT);
+ return;
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__SUPPORTED_TARGET_ARCH:
+ setSupportedTargetArch((TargetArchitecture)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__SIZE_RAM:
+ return sizeRAM != SIZE_RAM_EDEFAULT;
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__SUPPORTED_OS:
+ return supportedOS != null && !supportedOS.isEmpty();
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__ARCH:
+ return arch != null && !arch.isEmpty();
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__BASE_CLASS:
+ return base_Class != null;
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__SIZE_ROM:
+ return sizeROM != SIZE_ROM_EDEFAULT;
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__SUPPORTED_TARGET_ARCH:
+ return supportedTargetArch != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (sizeRAM: "); //$NON-NLS-1$
+ result.append(sizeRAM);
+ result.append(", sizeROM: "); //$NON-NLS-1$
+ result.append(sizeROM);
+ result.append(')');
+ return result.toString();
+ }
+
+} // ImplementationPropertiesImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/InitPrecedenceImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/InitPrecedenceImpl.java
new file mode 100644
index 00000000000..f3912aed57b
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/InitPrecedenceImpl.java
@@ -0,0 +1,240 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.InitPrecedence;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Init Precedence</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.InitPrecedenceImpl#getInvokeAfter <em>Invoke After</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.InitPrecedenceImpl#getInvokeBefore <em>Invoke Before</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.InitPrecedenceImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class InitPrecedenceImpl extends EObjectImpl implements InitPrecedence {
+ /**
+ * The cached value of the '{@link #getInvokeAfter() <em>Invoke After</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInvokeAfter()
+ * @generated
+ * @ordered
+ */
+ protected EList<org.eclipse.uml2.uml.Class> invokeAfter;
+
+ /**
+ * The cached value of the '{@link #getInvokeBefore() <em>Invoke Before</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInvokeBefore()
+ * @generated
+ * @ordered
+ */
+ protected EList<org.eclipse.uml2.uml.Class> invokeBefore;
+
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InitPrecedenceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.INIT_PRECEDENCE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<org.eclipse.uml2.uml.Class> getInvokeAfter() {
+ if (invokeAfter == null) {
+ invokeAfter = new EObjectResolvingEList<org.eclipse.uml2.uml.Class>(org.eclipse.uml2.uml.Class.class, this, FCMPackage.INIT_PRECEDENCE__INVOKE_AFTER);
+ }
+ return invokeAfter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<org.eclipse.uml2.uml.Class> getInvokeBefore() {
+ if (invokeBefore == null) {
+ invokeBefore = new EObjectResolvingEList<org.eclipse.uml2.uml.Class>(org.eclipse.uml2.uml.Class.class, this, FCMPackage.INIT_PRECEDENCE__INVOKE_BEFORE);
+ }
+ return invokeBefore;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.INIT_PRECEDENCE__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.INIT_PRECEDENCE__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.INIT_PRECEDENCE__INVOKE_AFTER:
+ return getInvokeAfter();
+ case FCMPackage.INIT_PRECEDENCE__INVOKE_BEFORE:
+ return getInvokeBefore();
+ case FCMPackage.INIT_PRECEDENCE__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.INIT_PRECEDENCE__INVOKE_AFTER:
+ getInvokeAfter().clear();
+ getInvokeAfter().addAll((Collection<? extends org.eclipse.uml2.uml.Class>)newValue);
+ return;
+ case FCMPackage.INIT_PRECEDENCE__INVOKE_BEFORE:
+ getInvokeBefore().clear();
+ getInvokeBefore().addAll((Collection<? extends org.eclipse.uml2.uml.Class>)newValue);
+ return;
+ case FCMPackage.INIT_PRECEDENCE__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.INIT_PRECEDENCE__INVOKE_AFTER:
+ getInvokeAfter().clear();
+ return;
+ case FCMPackage.INIT_PRECEDENCE__INVOKE_BEFORE:
+ getInvokeBefore().clear();
+ return;
+ case FCMPackage.INIT_PRECEDENCE__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.INIT_PRECEDENCE__INVOKE_AFTER:
+ return invokeAfter != null && !invokeAfter.isEmpty();
+ case FCMPackage.INIT_PRECEDENCE__INVOKE_BEFORE:
+ return invokeBefore != null && !invokeBefore.isEmpty();
+ case FCMPackage.INIT_PRECEDENCE__BASE_CLASS:
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // InitPrecedenceImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/InstanceConfiguratorImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/InstanceConfiguratorImpl.java
new file mode 100644
index 00000000000..98c39d1bb77
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/InstanceConfiguratorImpl.java
@@ -0,0 +1,234 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.InstanceConfigurator;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Instance Configurator</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.InstanceConfiguratorImpl#getBase_Class <em>Base Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.InstanceConfiguratorImpl#isOnNodeModel <em>On Node Model</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class InstanceConfiguratorImpl extends EObjectImpl implements InstanceConfigurator {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * The default value of the '{@link #isOnNodeModel() <em>On Node Model</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isOnNodeModel()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean ON_NODE_MODEL_EDEFAULT = false;
+ /**
+ * The cached value of the '{@link #isOnNodeModel() <em>On Node Model</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isOnNodeModel()
+ * @generated
+ * @ordered
+ */
+ protected boolean onNodeModel = ON_NODE_MODEL_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InstanceConfiguratorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.INSTANCE_CONFIGURATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.INSTANCE_CONFIGURATOR__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.INSTANCE_CONFIGURATOR__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isOnNodeModel() {
+ return onNodeModel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setOnNodeModel(boolean newOnNodeModel) {
+ boolean oldOnNodeModel = onNodeModel;
+ onNodeModel = newOnNodeModel;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.INSTANCE_CONFIGURATOR__ON_NODE_MODEL, oldOnNodeModel, onNodeModel));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.INSTANCE_CONFIGURATOR__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ case FCMPackage.INSTANCE_CONFIGURATOR__ON_NODE_MODEL:
+ return isOnNodeModel();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.INSTANCE_CONFIGURATOR__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ case FCMPackage.INSTANCE_CONFIGURATOR__ON_NODE_MODEL:
+ setOnNodeModel((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.INSTANCE_CONFIGURATOR__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ case FCMPackage.INSTANCE_CONFIGURATOR__ON_NODE_MODEL:
+ setOnNodeModel(ON_NODE_MODEL_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.INSTANCE_CONFIGURATOR__BASE_CLASS:
+ return base_Class != null;
+ case FCMPackage.INSTANCE_CONFIGURATOR__ON_NODE_MODEL:
+ return onNodeModel != ON_NODE_MODEL_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (onNodeModel: "); //$NON-NLS-1$
+ result.append(onNodeModel);
+ result.append(')');
+ return result.toString();
+ }
+
+} // InstanceConfiguratorImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/InteractionComponentImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/InteractionComponentImpl.java
new file mode 100644
index 00000000000..eda594ff7b3
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/InteractionComponentImpl.java
@@ -0,0 +1,298 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.InteractionComponent;
+import org.eclipse.uml2.uml.Collaboration;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Interaction Component</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.InteractionComponentImpl#isForDistribution <em>For Distribution</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.InteractionComponentImpl#getConnectionPattern <em>Connection Pattern</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.InteractionComponentImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class InteractionComponentImpl extends EObjectImpl implements InteractionComponent {
+ /**
+ * The default value of the '{@link #isForDistribution() <em>For Distribution</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isForDistribution()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean FOR_DISTRIBUTION_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isForDistribution() <em>For Distribution</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isForDistribution()
+ * @generated
+ * @ordered
+ */
+ protected boolean forDistribution = FOR_DISTRIBUTION_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getConnectionPattern() <em>Connection Pattern</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getConnectionPattern()
+ * @generated
+ * @ordered
+ */
+ protected Collaboration connectionPattern;
+
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InteractionComponentImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.INTERACTION_COMPONENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isForDistribution() {
+ return forDistribution;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setForDistribution(boolean newForDistribution) {
+ boolean oldForDistribution = forDistribution;
+ forDistribution = newForDistribution;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.INTERACTION_COMPONENT__FOR_DISTRIBUTION, oldForDistribution, forDistribution));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collaboration getConnectionPattern() {
+ if (connectionPattern != null && connectionPattern.eIsProxy()) {
+ InternalEObject oldConnectionPattern = (InternalEObject)connectionPattern;
+ connectionPattern = (Collaboration)eResolveProxy(oldConnectionPattern);
+ if (connectionPattern != oldConnectionPattern) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.INTERACTION_COMPONENT__CONNECTION_PATTERN, oldConnectionPattern, connectionPattern));
+ }
+ }
+ return connectionPattern;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Collaboration basicGetConnectionPattern() {
+ return connectionPattern;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setConnectionPattern(Collaboration newConnectionPattern) {
+ Collaboration oldConnectionPattern = connectionPattern;
+ connectionPattern = newConnectionPattern;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.INTERACTION_COMPONENT__CONNECTION_PATTERN, oldConnectionPattern, connectionPattern));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.INTERACTION_COMPONENT__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.INTERACTION_COMPONENT__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.INTERACTION_COMPONENT__FOR_DISTRIBUTION:
+ return isForDistribution();
+ case FCMPackage.INTERACTION_COMPONENT__CONNECTION_PATTERN:
+ if (resolve) return getConnectionPattern();
+ return basicGetConnectionPattern();
+ case FCMPackage.INTERACTION_COMPONENT__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.INTERACTION_COMPONENT__FOR_DISTRIBUTION:
+ setForDistribution((Boolean)newValue);
+ return;
+ case FCMPackage.INTERACTION_COMPONENT__CONNECTION_PATTERN:
+ setConnectionPattern((Collaboration)newValue);
+ return;
+ case FCMPackage.INTERACTION_COMPONENT__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.INTERACTION_COMPONENT__FOR_DISTRIBUTION:
+ setForDistribution(FOR_DISTRIBUTION_EDEFAULT);
+ return;
+ case FCMPackage.INTERACTION_COMPONENT__CONNECTION_PATTERN:
+ setConnectionPattern((Collaboration)null);
+ return;
+ case FCMPackage.INTERACTION_COMPONENT__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.INTERACTION_COMPONENT__FOR_DISTRIBUTION:
+ return forDistribution != FOR_DISTRIBUTION_EDEFAULT;
+ case FCMPackage.INTERACTION_COMPONENT__CONNECTION_PATTERN:
+ return connectionPattern != null;
+ case FCMPackage.INTERACTION_COMPONENT__BASE_CLASS:
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (forDistribution: "); //$NON-NLS-1$
+ result.append(forDistribution);
+ result.append(')');
+ return result.toString();
+ }
+
+} // InteractionComponentImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/InterceptionRuleImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/InterceptionRuleImpl.java
new file mode 100644
index 00000000000..5c061d96327
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/InterceptionRuleImpl.java
@@ -0,0 +1,341 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.InterceptionKind;
+import org.eclipse.papyrus.FCM.InterceptionRule;
+import org.eclipse.uml2.uml.Feature;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Interception Rule</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.InterceptionRuleImpl#getInterceptionKind <em>Interception Kind</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.InterceptionRuleImpl#getInterceptionSet <em>Interception Set</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.InterceptionRuleImpl#getBase_Property <em>Base Property</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.InterceptionRuleImpl#getBase_Operation <em>Base Operation</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class InterceptionRuleImpl extends EObjectImpl implements InterceptionRule {
+ /**
+ * The default value of the '{@link #getInterceptionKind() <em>Interception Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInterceptionKind()
+ * @generated
+ * @ordered
+ */
+ protected static final InterceptionKind INTERCEPTION_KIND_EDEFAULT = InterceptionKind.INTERCEPT_SOME;
+
+ /**
+ * The cached value of the '{@link #getInterceptionKind() <em>Interception Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInterceptionKind()
+ * @generated
+ * @ordered
+ */
+ protected InterceptionKind interceptionKind = INTERCEPTION_KIND_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getInterceptionSet() <em>Interception Set</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInterceptionSet()
+ * @generated
+ * @ordered
+ */
+ protected EList<Feature> interceptionSet;
+
+ /**
+ * The cached value of the '{@link #getBase_Property() <em>Base Property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Property()
+ * @generated
+ * @ordered
+ */
+ protected Property base_Property;
+
+ /**
+ * The cached value of the '{@link #getBase_Operation() <em>Base Operation</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Operation()
+ * @generated
+ * @ordered
+ */
+ protected Operation base_Operation;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InterceptionRuleImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.INTERCEPTION_RULE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public InterceptionKind getInterceptionKind() {
+ return interceptionKind;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setInterceptionKind(InterceptionKind newInterceptionKind) {
+ InterceptionKind oldInterceptionKind = interceptionKind;
+ interceptionKind = newInterceptionKind == null ? INTERCEPTION_KIND_EDEFAULT : newInterceptionKind;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.INTERCEPTION_RULE__INTERCEPTION_KIND, oldInterceptionKind, interceptionKind));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<Feature> getInterceptionSet() {
+ if (interceptionSet == null) {
+ interceptionSet = new EObjectResolvingEList<Feature>(Feature.class, this, FCMPackage.INTERCEPTION_RULE__INTERCEPTION_SET);
+ }
+ return interceptionSet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Property getBase_Property() {
+ if (base_Property != null && base_Property.eIsProxy()) {
+ InternalEObject oldBase_Property = (InternalEObject)base_Property;
+ base_Property = (Property)eResolveProxy(oldBase_Property);
+ if (base_Property != oldBase_Property) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.INTERCEPTION_RULE__BASE_PROPERTY, oldBase_Property, base_Property));
+ }
+ }
+ return base_Property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property basicGetBase_Property() {
+ return base_Property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Property(Property newBase_Property) {
+ Property oldBase_Property = base_Property;
+ base_Property = newBase_Property;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.INTERCEPTION_RULE__BASE_PROPERTY, oldBase_Property, base_Property));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Operation getBase_Operation() {
+ if (base_Operation != null && base_Operation.eIsProxy()) {
+ InternalEObject oldBase_Operation = (InternalEObject)base_Operation;
+ base_Operation = (Operation)eResolveProxy(oldBase_Operation);
+ if (base_Operation != oldBase_Operation) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.INTERCEPTION_RULE__BASE_OPERATION, oldBase_Operation, base_Operation));
+ }
+ }
+ return base_Operation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Operation basicGetBase_Operation() {
+ return base_Operation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Operation(Operation newBase_Operation) {
+ Operation oldBase_Operation = base_Operation;
+ base_Operation = newBase_Operation;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.INTERCEPTION_RULE__BASE_OPERATION, oldBase_Operation, base_Operation));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.INTERCEPTION_RULE__INTERCEPTION_KIND:
+ return getInterceptionKind();
+ case FCMPackage.INTERCEPTION_RULE__INTERCEPTION_SET:
+ return getInterceptionSet();
+ case FCMPackage.INTERCEPTION_RULE__BASE_PROPERTY:
+ if (resolve) return getBase_Property();
+ return basicGetBase_Property();
+ case FCMPackage.INTERCEPTION_RULE__BASE_OPERATION:
+ if (resolve) return getBase_Operation();
+ return basicGetBase_Operation();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.INTERCEPTION_RULE__INTERCEPTION_KIND:
+ setInterceptionKind((InterceptionKind)newValue);
+ return;
+ case FCMPackage.INTERCEPTION_RULE__INTERCEPTION_SET:
+ getInterceptionSet().clear();
+ getInterceptionSet().addAll((Collection<? extends Feature>)newValue);
+ return;
+ case FCMPackage.INTERCEPTION_RULE__BASE_PROPERTY:
+ setBase_Property((Property)newValue);
+ return;
+ case FCMPackage.INTERCEPTION_RULE__BASE_OPERATION:
+ setBase_Operation((Operation)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.INTERCEPTION_RULE__INTERCEPTION_KIND:
+ setInterceptionKind(INTERCEPTION_KIND_EDEFAULT);
+ return;
+ case FCMPackage.INTERCEPTION_RULE__INTERCEPTION_SET:
+ getInterceptionSet().clear();
+ return;
+ case FCMPackage.INTERCEPTION_RULE__BASE_PROPERTY:
+ setBase_Property((Property)null);
+ return;
+ case FCMPackage.INTERCEPTION_RULE__BASE_OPERATION:
+ setBase_Operation((Operation)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.INTERCEPTION_RULE__INTERCEPTION_KIND:
+ return interceptionKind != INTERCEPTION_KIND_EDEFAULT;
+ case FCMPackage.INTERCEPTION_RULE__INTERCEPTION_SET:
+ return interceptionSet != null && !interceptionSet.isEmpty();
+ case FCMPackage.INTERCEPTION_RULE__BASE_PROPERTY:
+ return base_Property != null;
+ case FCMPackage.INTERCEPTION_RULE__BASE_OPERATION:
+ return base_Operation != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (interceptionKind: "); //$NON-NLS-1$
+ result.append(interceptionKind);
+ result.append(')');
+ return result.toString();
+ }
+
+} // InterceptionRuleImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/OperatingSystemImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/OperatingSystemImpl.java
new file mode 100644
index 00000000000..f102dd9fd32
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/OperatingSystemImpl.java
@@ -0,0 +1,165 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.OperatingSystem;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Operating System</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.OperatingSystemImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class OperatingSystemImpl extends EObjectImpl implements OperatingSystem {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected OperatingSystemImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.OPERATING_SYSTEM;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.OPERATING_SYSTEM__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.OPERATING_SYSTEM__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.OPERATING_SYSTEM__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.OPERATING_SYSTEM__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.OPERATING_SYSTEM__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.OPERATING_SYSTEM__BASE_CLASS:
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // OperatingSystemImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/PortImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/PortImpl.java
new file mode 100644
index 00000000000..474cdf56684
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/PortImpl.java
@@ -0,0 +1,334 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.Port;
+import org.eclipse.papyrus.FCM.PortKind;
+import org.eclipse.papyrus.FCM.util.MapUtil;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Image;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Stereotype;
+import org.eclipse.uml2.uml.Type;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Port</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.PortImpl#getBase_Port <em>Base Port</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.PortImpl#getKind <em>Kind</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.PortImpl#getType <em>Type</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class PortImpl extends ConfigurableElementInstanceImpl implements Port {
+
+ /**
+ * The cached value of the '{@link #getBase_Port() <em>Base Port</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Port()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Port base_Port;
+
+ /**
+ * The cached value of the '{@link #getKind() <em>Kind</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getKind()
+ * @generated
+ * @ordered
+ */
+ protected PortKind kind;
+
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected Type type;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PortImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.PORT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Port getBase_Port() {
+ if (base_Port != null && base_Port.eIsProxy()) {
+ InternalEObject oldBase_Port = (InternalEObject)base_Port;
+ base_Port = (org.eclipse.uml2.uml.Port)eResolveProxy(oldBase_Port);
+ if (base_Port != oldBase_Port) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.PORT__BASE_PORT, oldBase_Port, base_Port));
+ }
+ }
+ return base_Port;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Port basicGetBase_Port() {
+ return base_Port;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Port(org.eclipse.uml2.uml.Port newBase_Port) {
+ org.eclipse.uml2.uml.Port oldBase_Port = base_Port;
+ base_Port = newBase_Port;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.PORT__BASE_PORT, oldBase_Port, base_Port));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public PortKind getKind() {
+ if (kind != null && kind.eIsProxy()) {
+ InternalEObject oldKind = (InternalEObject)kind;
+ kind = (PortKind)eResolveProxy(oldKind);
+ if (kind != oldKind) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.PORT__KIND, oldKind, kind));
+ }
+ }
+ return kind;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PortKind basicGetKind() {
+ return kind;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setKind(PortKind newKind) {
+ PortKind oldKind = kind;
+ kind = newKind;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.PORT__KIND, oldKind, kind));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Type getType() {
+ if (type != null && type.eIsProxy()) {
+ InternalEObject oldType = (InternalEObject)type;
+ type = (Type)eResolveProxy(oldType);
+ if (type != oldType) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.PORT__TYPE, oldType, type));
+ }
+ }
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Type basicGetType() {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setType(Type newType) {
+ Type oldType = type;
+ type = newType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.PORT__TYPE, oldType, type));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.PORT__BASE_PORT:
+ if (resolve) return getBase_Port();
+ return basicGetBase_Port();
+ case FCMPackage.PORT__KIND:
+ if (resolve) return getKind();
+ return basicGetKind();
+ case FCMPackage.PORT__TYPE:
+ if (resolve) return getType();
+ return basicGetType();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.PORT__BASE_PORT:
+ setBase_Port((org.eclipse.uml2.uml.Port)newValue);
+ return;
+ case FCMPackage.PORT__KIND:
+ setKind((PortKind)newValue);
+ return;
+ case FCMPackage.PORT__TYPE:
+ setType((Type)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.PORT__BASE_PORT:
+ setBase_Port((org.eclipse.uml2.uml.Port)null);
+ return;
+ case FCMPackage.PORT__KIND:
+ setKind((PortKind)null);
+ return;
+ case FCMPackage.PORT__TYPE:
+ setType((Type)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.PORT__BASE_PORT:
+ return base_Port != null;
+ case FCMPackage.PORT__KIND:
+ return kind != null;
+ case FCMPackage.PORT__TYPE:
+ return type != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * * @generated NOT
+ */
+ static EList<Interface> emptyList = new BasicEList<Interface>();
+
+ /**
+ * @return icon (serialized in port kind)
+ * @generated NOT
+ */
+ public Image getIcon()
+ {
+ if (getKind() != null) {
+ Class clazz = getKind().getBase_Class();
+
+ if (clazz instanceof Stereotype) {
+ EList<Image> icons = ((Stereotype) clazz).getIcons();
+ if (base_Port.isConjugated()) {
+ if (icons.size() > 1) {
+ // standard position for conjugated icon
+ return icons.get(1);
+ }
+ }
+ else {
+ if (icons.size() > 0) {
+ return icons.get(0);
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public void update() {
+ MapUtil.update(this);
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/PortKindImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/PortKindImpl.java
new file mode 100644
index 00000000000..eb480f3a3fc
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/PortKindImpl.java
@@ -0,0 +1,351 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.PortKind;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Image;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Stereotype;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Port Kind</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.PortKindImpl#getBase_Class <em>Base Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.PortKindImpl#getProvidedInterface <em>Provided Interface</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.PortKindImpl#getRequiredInterface <em>Required Interface</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.PortKindImpl#isExtendedPort <em>Extended Port</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class PortKindImpl extends EObjectImpl implements PortKind {
+
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * The cached value of the '{@link #getProvidedInterface() <em>Provided Interface</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProvidedInterface()
+ * @generated
+ * @ordered
+ */
+ protected Interface providedInterface;
+
+ /**
+ * The cached value of the '{@link #getRequiredInterface() <em>Required Interface</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRequiredInterface()
+ * @generated
+ * @ordered
+ */
+ protected Interface requiredInterface;
+
+ /**
+ * The default value of the '{@link #isExtendedPort() <em>Extended Port</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isExtendedPort()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean EXTENDED_PORT_EDEFAULT = false;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PortKindImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.PORT_KIND;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.PORT_KIND__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.PORT_KIND__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Interface getProvidedInterface() {
+ if (providedInterface != null && providedInterface.eIsProxy()) {
+ InternalEObject oldProvidedInterface = (InternalEObject)providedInterface;
+ providedInterface = (Interface)eResolveProxy(oldProvidedInterface);
+ if (providedInterface != oldProvidedInterface) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.PORT_KIND__PROVIDED_INTERFACE, oldProvidedInterface, providedInterface));
+ }
+ }
+ return providedInterface;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Interface basicGetProvidedInterface() {
+ return providedInterface;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setProvidedInterface(Interface newProvidedInterface) {
+ Interface oldProvidedInterface = providedInterface;
+ providedInterface = newProvidedInterface;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.PORT_KIND__PROVIDED_INTERFACE, oldProvidedInterface, providedInterface));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Interface getRequiredInterface() {
+ if (requiredInterface != null && requiredInterface.eIsProxy()) {
+ InternalEObject oldRequiredInterface = (InternalEObject)requiredInterface;
+ requiredInterface = (Interface)eResolveProxy(oldRequiredInterface);
+ if (requiredInterface != oldRequiredInterface) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.PORT_KIND__REQUIRED_INTERFACE, oldRequiredInterface, requiredInterface));
+ }
+ }
+ return requiredInterface;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Interface basicGetRequiredInterface() {
+ return requiredInterface;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setRequiredInterface(Interface newRequiredInterface) {
+ Interface oldRequiredInterface = requiredInterface;
+ requiredInterface = newRequiredInterface;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.PORT_KIND__REQUIRED_INTERFACE, oldRequiredInterface, requiredInterface));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public boolean isExtendedPort() {
+ if (getBase_Class() != null) {
+ return getBase_Class().getOwnedPorts().size() > 0;
+ }
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public boolean isSetExtendedPort() {
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.PORT_KIND__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ case FCMPackage.PORT_KIND__PROVIDED_INTERFACE:
+ if (resolve) return getProvidedInterface();
+ return basicGetProvidedInterface();
+ case FCMPackage.PORT_KIND__REQUIRED_INTERFACE:
+ if (resolve) return getRequiredInterface();
+ return basicGetRequiredInterface();
+ case FCMPackage.PORT_KIND__EXTENDED_PORT:
+ return isExtendedPort();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.PORT_KIND__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ case FCMPackage.PORT_KIND__PROVIDED_INTERFACE:
+ setProvidedInterface((Interface)newValue);
+ return;
+ case FCMPackage.PORT_KIND__REQUIRED_INTERFACE:
+ setRequiredInterface((Interface)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.PORT_KIND__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ case FCMPackage.PORT_KIND__PROVIDED_INTERFACE:
+ setProvidedInterface((Interface)null);
+ return;
+ case FCMPackage.PORT_KIND__REQUIRED_INTERFACE:
+ setRequiredInterface((Interface)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.PORT_KIND__BASE_CLASS:
+ return base_Class != null;
+ case FCMPackage.PORT_KIND__PROVIDED_INTERFACE:
+ return providedInterface != null;
+ case FCMPackage.PORT_KIND__REQUIRED_INTERFACE:
+ return requiredInterface != null;
+ case FCMPackage.PORT_KIND__EXTENDED_PORT:
+ return isSetExtendedPort();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * @return icon (serialized in port kind)
+ * @generated NOT
+ */
+ public Image getIcon()
+ {
+ Class clazz = getBase_Class();
+
+ if (clazz instanceof Stereotype) {
+ EList<Image> icons = ((Stereotype) clazz).getIcons();
+ if (icons.size() > 0) {
+ return icons.get(0);
+ }
+ }
+ return null;
+ }
+} // PortKindImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ProgLanguageImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ProgLanguageImpl.java
new file mode 100644
index 00000000000..367900b37a8
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ProgLanguageImpl.java
@@ -0,0 +1,165 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.ProgLanguage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Prog Language</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ProgLanguageImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ProgLanguageImpl extends EObjectImpl implements ProgLanguage {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ProgLanguageImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.PROG_LANGUAGE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.PROG_LANGUAGE__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.PROG_LANGUAGE__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.PROG_LANGUAGE__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.PROG_LANGUAGE__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.PROG_LANGUAGE__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.PROG_LANGUAGE__BASE_CLASS:
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // ProgLanguageImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/RuleApplicationImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/RuleApplicationImpl.java
new file mode 100644
index 00000000000..8e9183bee71
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/RuleApplicationImpl.java
@@ -0,0 +1,268 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.papyrus.FCM.ContainerRule;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.RuleApplication;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Rule Application</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.RuleApplicationImpl#getBase_Class <em>Base Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.RuleApplicationImpl#getContainerRule <em>Container Rule</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.RuleApplicationImpl#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class RuleApplicationImpl extends EObjectImpl implements RuleApplication {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * The cached value of the '{@link #getContainerRule() <em>Container Rule</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getContainerRule()
+ * @generated
+ * @ordered
+ */
+ protected EList<ContainerRule> containerRule;
+
+ /**
+ * The cached value of the '{@link #getBase_Package() <em>Base Package</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Package()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Package base_Package;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RuleApplicationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.RULE_APPLICATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.RULE_APPLICATION__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.RULE_APPLICATION__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<ContainerRule> getContainerRule() {
+ if (containerRule == null) {
+ containerRule = new EObjectResolvingEList<ContainerRule>(ContainerRule.class, this, FCMPackage.RULE_APPLICATION__CONTAINER_RULE);
+ }
+ return containerRule;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Package getBase_Package() {
+ if (base_Package != null && base_Package.eIsProxy()) {
+ InternalEObject oldBase_Package = (InternalEObject)base_Package;
+ base_Package = (org.eclipse.uml2.uml.Package)eResolveProxy(oldBase_Package);
+ if (base_Package != oldBase_Package) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.RULE_APPLICATION__BASE_PACKAGE, oldBase_Package, base_Package));
+ }
+ }
+ return base_Package;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Package basicGetBase_Package() {
+ return base_Package;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Package(org.eclipse.uml2.uml.Package newBase_Package) {
+ org.eclipse.uml2.uml.Package oldBase_Package = base_Package;
+ base_Package = newBase_Package;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.RULE_APPLICATION__BASE_PACKAGE, oldBase_Package, base_Package));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.RULE_APPLICATION__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ case FCMPackage.RULE_APPLICATION__CONTAINER_RULE:
+ return getContainerRule();
+ case FCMPackage.RULE_APPLICATION__BASE_PACKAGE:
+ if (resolve) return getBase_Package();
+ return basicGetBase_Package();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.RULE_APPLICATION__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ case FCMPackage.RULE_APPLICATION__CONTAINER_RULE:
+ getContainerRule().clear();
+ getContainerRule().addAll((Collection<? extends ContainerRule>)newValue);
+ return;
+ case FCMPackage.RULE_APPLICATION__BASE_PACKAGE:
+ setBase_Package((org.eclipse.uml2.uml.Package)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.RULE_APPLICATION__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ case FCMPackage.RULE_APPLICATION__CONTAINER_RULE:
+ getContainerRule().clear();
+ return;
+ case FCMPackage.RULE_APPLICATION__BASE_PACKAGE:
+ setBase_Package((org.eclipse.uml2.uml.Package)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.RULE_APPLICATION__BASE_CLASS:
+ return base_Class != null;
+ case FCMPackage.RULE_APPLICATION__CONTAINER_RULE:
+ return containerRule != null && !containerRule.isEmpty();
+ case FCMPackage.RULE_APPLICATION__BASE_PACKAGE:
+ return base_Package != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // RuleApplicationImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/SingletonImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/SingletonImpl.java
new file mode 100644
index 00000000000..80a515a8d12
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/SingletonImpl.java
@@ -0,0 +1,165 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.Singleton;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Singleton</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.SingletonImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class SingletonImpl extends EObjectImpl implements Singleton {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SingletonImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.SINGLETON;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.SINGLETON__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.SINGLETON__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.SINGLETON__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.SINGLETON__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.SINGLETON__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.SINGLETON__BASE_CLASS:
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // SingletonImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/TargetArchitectureImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/TargetArchitectureImpl.java
new file mode 100644
index 00000000000..5af10b34478
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/TargetArchitectureImpl.java
@@ -0,0 +1,165 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.TargetArchitecture;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Target Architecture</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.TargetArchitectureImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class TargetArchitectureImpl extends EObjectImpl implements TargetArchitecture {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TargetArchitectureImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.TARGET_ARCHITECTURE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.TARGET_ARCHITECTURE__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.TARGET_ARCHITECTURE__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.TARGET_ARCHITECTURE__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.TARGET_ARCHITECTURE__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.TARGET_ARCHITECTURE__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.TARGET_ARCHITECTURE__BASE_CLASS:
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // TargetArchitectureImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/TargetImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/TargetImpl.java
new file mode 100644
index 00000000000..512c44b434d
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/TargetImpl.java
@@ -0,0 +1,522 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.papyrus.FCM.CompilerChain;
+import org.eclipse.papyrus.FCM.ConfigOption;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.OperatingSystem;
+import org.eclipse.papyrus.FCM.Target;
+import org.eclipse.papyrus.FCM.TargetArchitecture;
+import org.eclipse.uml2.uml.Node;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Target</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.TargetImpl#getTargetArch <em>Target Arch</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.TargetImpl#getOptions <em>Options</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.TargetImpl#getBase_Node <em>Base Node</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.TargetImpl#getUsedOS <em>Used OS</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.TargetImpl#getAvailRAM <em>Avail RAM</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.TargetImpl#getAvailROM <em>Avail ROM</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.TargetImpl#getCompiler <em>Compiler</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class TargetImpl extends EObjectImpl implements Target {
+ /**
+ * The cached value of the '{@link #getTargetArch() <em>Target Arch</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTargetArch()
+ * @generated
+ * @ordered
+ */
+ protected TargetArchitecture targetArch;
+
+ /**
+ * The cached value of the '{@link #getOptions() <em>Options</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOptions()
+ * @generated
+ * @ordered
+ */
+ protected EList<ConfigOption> options;
+
+ /**
+ * The cached value of the '{@link #getBase_Node() <em>Base Node</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Node()
+ * @generated
+ * @ordered
+ */
+ protected Node base_Node;
+
+ /**
+ * The cached value of the '{@link #getUsedOS() <em>Used OS</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUsedOS()
+ * @generated
+ * @ordered
+ */
+ protected OperatingSystem usedOS;
+
+ /**
+ * The default value of the '{@link #getAvailRAM() <em>Avail RAM</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAvailRAM()
+ * @generated
+ * @ordered
+ */
+ protected static final int AVAIL_RAM_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getAvailRAM() <em>Avail RAM</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAvailRAM()
+ * @generated
+ * @ordered
+ */
+ protected int availRAM = AVAIL_RAM_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getAvailROM() <em>Avail ROM</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAvailROM()
+ * @generated
+ * @ordered
+ */
+ protected static final int AVAIL_ROM_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getAvailROM() <em>Avail ROM</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAvailROM()
+ * @generated
+ * @ordered
+ */
+ protected int availROM = AVAIL_ROM_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getCompiler() <em>Compiler</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCompiler()
+ * @generated
+ * @ordered
+ */
+ protected CompilerChain compiler;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TargetImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.TARGET;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public TargetArchitecture getTargetArch() {
+ if (targetArch != null && targetArch.eIsProxy()) {
+ InternalEObject oldTargetArch = (InternalEObject)targetArch;
+ targetArch = (TargetArchitecture)eResolveProxy(oldTargetArch);
+ if (targetArch != oldTargetArch) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.TARGET__TARGET_ARCH, oldTargetArch, targetArch));
+ }
+ }
+ return targetArch;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TargetArchitecture basicGetTargetArch() {
+ return targetArch;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setTargetArch(TargetArchitecture newTargetArch) {
+ TargetArchitecture oldTargetArch = targetArch;
+ targetArch = newTargetArch;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.TARGET__TARGET_ARCH, oldTargetArch, targetArch));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<ConfigOption> getOptions() {
+ if (options == null) {
+ options = new EObjectResolvingEList<ConfigOption>(ConfigOption.class, this, FCMPackage.TARGET__OPTIONS);
+ }
+ return options;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Node getBase_Node() {
+ if (base_Node != null && base_Node.eIsProxy()) {
+ InternalEObject oldBase_Node = (InternalEObject)base_Node;
+ base_Node = (Node)eResolveProxy(oldBase_Node);
+ if (base_Node != oldBase_Node) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.TARGET__BASE_NODE, oldBase_Node, base_Node));
+ }
+ }
+ return base_Node;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Node basicGetBase_Node() {
+ return base_Node;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Node(Node newBase_Node) {
+ Node oldBase_Node = base_Node;
+ base_Node = newBase_Node;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.TARGET__BASE_NODE, oldBase_Node, base_Node));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public OperatingSystem getUsedOS() {
+ if (usedOS != null && usedOS.eIsProxy()) {
+ InternalEObject oldUsedOS = (InternalEObject)usedOS;
+ usedOS = (OperatingSystem)eResolveProxy(oldUsedOS);
+ if (usedOS != oldUsedOS) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.TARGET__USED_OS, oldUsedOS, usedOS));
+ }
+ }
+ return usedOS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OperatingSystem basicGetUsedOS() {
+ return usedOS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setUsedOS(OperatingSystem newUsedOS) {
+ OperatingSystem oldUsedOS = usedOS;
+ usedOS = newUsedOS;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.TARGET__USED_OS, oldUsedOS, usedOS));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getAvailRAM() {
+ return availRAM;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setAvailRAM(int newAvailRAM) {
+ int oldAvailRAM = availRAM;
+ availRAM = newAvailRAM;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.TARGET__AVAIL_RAM, oldAvailRAM, availRAM));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getAvailROM() {
+ return availROM;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setAvailROM(int newAvailROM) {
+ int oldAvailROM = availROM;
+ availROM = newAvailROM;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.TARGET__AVAIL_ROM, oldAvailROM, availROM));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public CompilerChain getCompiler() {
+ if (compiler != null && compiler.eIsProxy()) {
+ InternalEObject oldCompiler = (InternalEObject)compiler;
+ compiler = (CompilerChain)eResolveProxy(oldCompiler);
+ if (compiler != oldCompiler) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.TARGET__COMPILER, oldCompiler, compiler));
+ }
+ }
+ return compiler;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CompilerChain basicGetCompiler() {
+ return compiler;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setCompiler(CompilerChain newCompiler) {
+ CompilerChain oldCompiler = compiler;
+ compiler = newCompiler;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.TARGET__COMPILER, oldCompiler, compiler));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.TARGET__TARGET_ARCH:
+ if (resolve) return getTargetArch();
+ return basicGetTargetArch();
+ case FCMPackage.TARGET__OPTIONS:
+ return getOptions();
+ case FCMPackage.TARGET__BASE_NODE:
+ if (resolve) return getBase_Node();
+ return basicGetBase_Node();
+ case FCMPackage.TARGET__USED_OS:
+ if (resolve) return getUsedOS();
+ return basicGetUsedOS();
+ case FCMPackage.TARGET__AVAIL_RAM:
+ return getAvailRAM();
+ case FCMPackage.TARGET__AVAIL_ROM:
+ return getAvailROM();
+ case FCMPackage.TARGET__COMPILER:
+ if (resolve) return getCompiler();
+ return basicGetCompiler();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.TARGET__TARGET_ARCH:
+ setTargetArch((TargetArchitecture)newValue);
+ return;
+ case FCMPackage.TARGET__OPTIONS:
+ getOptions().clear();
+ getOptions().addAll((Collection<? extends ConfigOption>)newValue);
+ return;
+ case FCMPackage.TARGET__BASE_NODE:
+ setBase_Node((Node)newValue);
+ return;
+ case FCMPackage.TARGET__USED_OS:
+ setUsedOS((OperatingSystem)newValue);
+ return;
+ case FCMPackage.TARGET__AVAIL_RAM:
+ setAvailRAM((Integer)newValue);
+ return;
+ case FCMPackage.TARGET__AVAIL_ROM:
+ setAvailROM((Integer)newValue);
+ return;
+ case FCMPackage.TARGET__COMPILER:
+ setCompiler((CompilerChain)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.TARGET__TARGET_ARCH:
+ setTargetArch((TargetArchitecture)null);
+ return;
+ case FCMPackage.TARGET__OPTIONS:
+ getOptions().clear();
+ return;
+ case FCMPackage.TARGET__BASE_NODE:
+ setBase_Node((Node)null);
+ return;
+ case FCMPackage.TARGET__USED_OS:
+ setUsedOS((OperatingSystem)null);
+ return;
+ case FCMPackage.TARGET__AVAIL_RAM:
+ setAvailRAM(AVAIL_RAM_EDEFAULT);
+ return;
+ case FCMPackage.TARGET__AVAIL_ROM:
+ setAvailROM(AVAIL_ROM_EDEFAULT);
+ return;
+ case FCMPackage.TARGET__COMPILER:
+ setCompiler((CompilerChain)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.TARGET__TARGET_ARCH:
+ return targetArch != null;
+ case FCMPackage.TARGET__OPTIONS:
+ return options != null && !options.isEmpty();
+ case FCMPackage.TARGET__BASE_NODE:
+ return base_Node != null;
+ case FCMPackage.TARGET__USED_OS:
+ return usedOS != null;
+ case FCMPackage.TARGET__AVAIL_RAM:
+ return availRAM != AVAIL_RAM_EDEFAULT;
+ case FCMPackage.TARGET__AVAIL_ROM:
+ return availROM != AVAIL_ROM_EDEFAULT;
+ case FCMPackage.TARGET__COMPILER:
+ return compiler != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (availRAM: "); //$NON-NLS-1$
+ result.append(availRAM);
+ result.append(", availROM: "); //$NON-NLS-1$
+ result.append(availROM);
+ result.append(')');
+ return result.toString();
+ }
+
+} // TargetImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/TemplateImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/TemplateImpl.java
new file mode 100644
index 00000000000..9bae3f5d98c
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/TemplateImpl.java
@@ -0,0 +1,229 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.BindingHelper;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.Template;
+import org.eclipse.uml2.uml.Element;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Template</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.TemplateImpl#getBase_Element <em>Base Element</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.TemplateImpl#getHelper <em>Helper</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class TemplateImpl extends EObjectImpl implements Template {
+ /**
+ * The cached value of the '{@link #getBase_Element() <em>Base Element</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Element()
+ * @generated
+ * @ordered
+ */
+ protected Element base_Element;
+
+ /**
+ * The cached value of the '{@link #getHelper() <em>Helper</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHelper()
+ * @generated
+ * @ordered
+ */
+ protected BindingHelper helper;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TemplateImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.TEMPLATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Element getBase_Element() {
+ if (base_Element != null && base_Element.eIsProxy()) {
+ InternalEObject oldBase_Element = (InternalEObject)base_Element;
+ base_Element = (Element)eResolveProxy(oldBase_Element);
+ if (base_Element != oldBase_Element) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.TEMPLATE__BASE_ELEMENT, oldBase_Element, base_Element));
+ }
+ }
+ return base_Element;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetBase_Element() {
+ return base_Element;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Element(Element newBase_Element) {
+ Element oldBase_Element = base_Element;
+ base_Element = newBase_Element;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.TEMPLATE__BASE_ELEMENT, oldBase_Element, base_Element));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public BindingHelper getHelper() {
+ if (helper != null && helper.eIsProxy()) {
+ InternalEObject oldHelper = (InternalEObject)helper;
+ helper = (BindingHelper)eResolveProxy(oldHelper);
+ if (helper != oldHelper) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.TEMPLATE__HELPER, oldHelper, helper));
+ }
+ }
+ return helper;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BindingHelper basicGetHelper() {
+ return helper;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setHelper(BindingHelper newHelper) {
+ BindingHelper oldHelper = helper;
+ helper = newHelper;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.TEMPLATE__HELPER, oldHelper, helper));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.TEMPLATE__BASE_ELEMENT:
+ if (resolve) return getBase_Element();
+ return basicGetBase_Element();
+ case FCMPackage.TEMPLATE__HELPER:
+ if (resolve) return getHelper();
+ return basicGetHelper();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.TEMPLATE__BASE_ELEMENT:
+ setBase_Element((Element)newValue);
+ return;
+ case FCMPackage.TEMPLATE__HELPER:
+ setHelper((BindingHelper)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.TEMPLATE__BASE_ELEMENT:
+ setBase_Element((Element)null);
+ return;
+ case FCMPackage.TEMPLATE__HELPER:
+ setHelper((BindingHelper)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.TEMPLATE__BASE_ELEMENT:
+ return base_Element != null;
+ case FCMPackage.TEMPLATE__HELPER:
+ return helper != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // TemplateImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/TemplatePortImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/TemplatePortImpl.java
new file mode 100644
index 00000000000..60fcc261168
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/TemplatePortImpl.java
@@ -0,0 +1,181 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.PortKind;
+import org.eclipse.papyrus.FCM.TemplatePort;
+import org.eclipse.papyrus.FCM.util.MapUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Template Port</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.TemplatePortImpl#getBoundType <em>Bound Type</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class TemplatePortImpl extends PortImpl implements TemplatePort {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TemplatePortImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.TEMPLATE_PORT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public PortKind getBoundType() {
+ PortKind boundType = basicGetBoundType();
+ return boundType != null && boundType.eIsProxy() ? (PortKind)eResolveProxy((InternalEObject)boundType) : boundType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ public PortKind basicGetBoundType() {
+ if(base_Port == null) {
+ return null;
+ }
+ if(base_Port.isConjugated()) {
+ return MapUtil.getBoundType(this);
+ }
+ else {
+ return MapUtil.getBoundType(this);
+ }
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public void setBoundType(PortKind newBoundType) {
+ // TODO: implement this method to set the 'Bound Type' reference
+ // Ensure that you remove @generated or mark it @generated NOT
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public void unsetBoundType() {
+ // TODO: implement this method to unset the 'Bound Type' reference
+ // Ensure that you remove @generated or mark it @generated NOT
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public boolean isSetBoundType() {
+ // TODO: implement this method to return whether the 'Bound Type' reference is set
+ // Ensure that you remove @generated or mark it @generated NOT
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.TEMPLATE_PORT__BOUND_TYPE:
+ if (resolve) return getBoundType();
+ return basicGetBoundType();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.TEMPLATE_PORT__BOUND_TYPE:
+ setBoundType((PortKind)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.TEMPLATE_PORT__BOUND_TYPE:
+ unsetBoundType();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.TEMPLATE_PORT__BOUND_TYPE:
+ return isSetBoundType();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // TemplatePortImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/UseInstanceConfiguratorImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/UseInstanceConfiguratorImpl.java
new file mode 100644
index 00000000000..21b2bcece52
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/UseInstanceConfiguratorImpl.java
@@ -0,0 +1,228 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.InstanceConfigurator;
+import org.eclipse.papyrus.FCM.UseInstanceConfigurator;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Use Instance Configurator</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.UseInstanceConfiguratorImpl#getBase_Class <em>Base Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.UseInstanceConfiguratorImpl#getConfigurator <em>Configurator</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class UseInstanceConfiguratorImpl extends EObjectImpl implements UseInstanceConfigurator {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * The cached value of the '{@link #getConfigurator() <em>Configurator</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getConfigurator()
+ * @generated
+ * @ordered
+ */
+ protected InstanceConfigurator configurator;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected UseInstanceConfiguratorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.USE_INSTANCE_CONFIGURATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.USE_INSTANCE_CONFIGURATOR__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.USE_INSTANCE_CONFIGURATOR__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public InstanceConfigurator getConfigurator() {
+ if (configurator != null && configurator.eIsProxy()) {
+ InternalEObject oldConfigurator = (InternalEObject)configurator;
+ configurator = (InstanceConfigurator)eResolveProxy(oldConfigurator);
+ if (configurator != oldConfigurator) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.USE_INSTANCE_CONFIGURATOR__CONFIGURATOR, oldConfigurator, configurator));
+ }
+ }
+ return configurator;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InstanceConfigurator basicGetConfigurator() {
+ return configurator;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setConfigurator(InstanceConfigurator newConfigurator) {
+ InstanceConfigurator oldConfigurator = configurator;
+ configurator = newConfigurator;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.USE_INSTANCE_CONFIGURATOR__CONFIGURATOR, oldConfigurator, configurator));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.USE_INSTANCE_CONFIGURATOR__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ case FCMPackage.USE_INSTANCE_CONFIGURATOR__CONFIGURATOR:
+ if (resolve) return getConfigurator();
+ return basicGetConfigurator();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.USE_INSTANCE_CONFIGURATOR__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ case FCMPackage.USE_INSTANCE_CONFIGURATOR__CONFIGURATOR:
+ setConfigurator((InstanceConfigurator)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.USE_INSTANCE_CONFIGURATOR__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ case FCMPackage.USE_INSTANCE_CONFIGURATOR__CONFIGURATOR:
+ setConfigurator((InstanceConfigurator)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.USE_INSTANCE_CONFIGURATOR__BASE_CLASS:
+ return base_Class != null;
+ case FCMPackage.USE_INSTANCE_CONFIGURATOR__CONFIGURATOR:
+ return configurator != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // UseInstanceConfiguratorImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/ConnectorTypeUtil.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/ConnectorTypeUtil.java
new file mode 100644
index 00000000000..919a7fcbff1
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/ConnectorTypeUtil.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+
+package org.eclipse.papyrus.FCM.util;
+
+import java.util.ArrayList;
+
+import org.eclipse.papyrus.FCM.InteractionComponent;
+import org.eclipse.uml2.uml.Collaboration;
+
+public class ConnectorTypeUtil {
+
+ protected Collaboration connectionPattern = null;
+
+ protected InteractionComponent connectorComp = null;
+
+ protected FCMUtil.RoleBindingTable bindingTable = null;
+
+ public FCMUtil.RoleBindingTable getRoleBindings(org.eclipse.papyrus.FCM.Connector connector) {
+ if (connector.getIc() instanceof InteractionComponent) {
+ connectorComp = connector.getIc();
+ connectionPattern = connectorComp.getConnectionPattern();
+ bindingTable = new FCMUtil.RoleBindingTable();
+ for (org.eclipse.uml2.uml.ConnectableElement role : connectionPattern.getRoles()) {
+ bindingTable.addEntry(role, new ArrayList<org.eclipse.uml2.uml.NamedElement>());
+ }
+ return bindingTable;
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMAdapterFactory.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMAdapterFactory.java
new file mode 100644
index 00000000000..ae3a258af53
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMAdapterFactory.java
@@ -0,0 +1,832 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.FCM.*;
+import org.eclipse.papyrus.FCM.Assembly;
+import org.eclipse.papyrus.FCM.AutoIndex;
+import org.eclipse.papyrus.FCM.AutoIndexPerNode;
+import org.eclipse.papyrus.FCM.BindTemplate;
+import org.eclipse.papyrus.FCM.BindingHelper;
+import org.eclipse.papyrus.FCM.CodeGenOptions;
+import org.eclipse.papyrus.FCM.CompImplTemplate;
+import org.eclipse.papyrus.FCM.CompToOOmapping;
+import org.eclipse.papyrus.FCM.CompilerChain;
+import org.eclipse.papyrus.FCM.ConfigOption;
+import org.eclipse.papyrus.FCM.ConfigurableElementInstance;
+import org.eclipse.papyrus.FCM.Configuration;
+import org.eclipse.papyrus.FCM.ConfigurationProperty;
+import org.eclipse.papyrus.FCM.Connector;
+import org.eclipse.papyrus.FCM.ConnectorConfiguration;
+import org.eclipse.papyrus.FCM.ContainerRule;
+import org.eclipse.papyrus.FCM.CopyAttributeValue;
+import org.eclipse.papyrus.FCM.DeploymentPlan;
+import org.eclipse.papyrus.FCM.DerivedElement;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.Flatten;
+import org.eclipse.papyrus.FCM.Fragment;
+import org.eclipse.papyrus.FCM.ImplementationGroup;
+import org.eclipse.papyrus.FCM.ImplementationProperties;
+import org.eclipse.papyrus.FCM.InitPrecedence;
+import org.eclipse.papyrus.FCM.InstanceConfigurator;
+import org.eclipse.papyrus.FCM.InteractionComponent;
+import org.eclipse.papyrus.FCM.InterceptionRule;
+import org.eclipse.papyrus.FCM.OperatingSystem;
+import org.eclipse.papyrus.FCM.Port;
+import org.eclipse.papyrus.FCM.PortKind;
+import org.eclipse.papyrus.FCM.ProgLanguage;
+import org.eclipse.papyrus.FCM.RuleApplication;
+import org.eclipse.papyrus.FCM.Singleton;
+import org.eclipse.papyrus.FCM.Target;
+import org.eclipse.papyrus.FCM.TargetArchitecture;
+import org.eclipse.papyrus.FCM.Template;
+import org.eclipse.papyrus.FCM.TemplatePort;
+import org.eclipse.papyrus.FCM.UseInstanceConfigurator;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.FCMPackage
+ * @generated
+ */
+public class FCMAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static FCMPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FCMAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = FCMPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FCMSwitch<Adapter> modelSwitch =
+ new FCMSwitch<Adapter>() {
+ @Override
+ public Adapter caseTemplate(Template object) {
+ return createTemplateAdapter();
+ }
+ @Override
+ public Adapter caseBindingHelper(BindingHelper object) {
+ return createBindingHelperAdapter();
+ }
+ @Override
+ public Adapter caseConfigurationProperty(ConfigurationProperty object) {
+ return createConfigurationPropertyAdapter();
+ }
+ @Override
+ public Adapter caseImplementationGroup(ImplementationGroup object) {
+ return createImplementationGroupAdapter();
+ }
+ @Override
+ public Adapter caseAssembly(Assembly object) {
+ return createAssemblyAdapter();
+ }
+ @Override
+ public Adapter caseFlatten(Flatten object) {
+ return createFlattenAdapter();
+ }
+ @Override
+ public Adapter caseCompToOOmapping(CompToOOmapping object) {
+ return createCompToOOmappingAdapter();
+ }
+ @Override
+ public Adapter caseProgLanguage(ProgLanguage object) {
+ return createProgLanguageAdapter();
+ }
+ @Override
+ public Adapter caseCodeGenOptions(CodeGenOptions object) {
+ return createCodeGenOptionsAdapter();
+ }
+ @Override
+ public Adapter caseInteractionComponent(InteractionComponent object) {
+ return createInteractionComponentAdapter();
+ }
+ @Override
+ public Adapter caseSingleton(Singleton object) {
+ return createSingletonAdapter();
+ }
+ @Override
+ public Adapter caseConnector(Connector object) {
+ return createConnectorAdapter();
+ }
+ @Override
+ public Adapter caseConfigurableElementInstance(ConfigurableElementInstance object) {
+ return createConfigurableElementInstanceAdapter();
+ }
+ @Override
+ public Adapter caseUseInstanceConfigurator(UseInstanceConfigurator object) {
+ return createUseInstanceConfiguratorAdapter();
+ }
+ @Override
+ public Adapter caseInstanceConfigurator(InstanceConfigurator object) {
+ return createInstanceConfiguratorAdapter();
+ }
+ @Override
+ public Adapter caseRuleApplication(RuleApplication object) {
+ return createRuleApplicationAdapter();
+ }
+ @Override
+ public Adapter caseContainerRule(ContainerRule object) {
+ return createContainerRuleAdapter();
+ }
+ @Override
+ public Adapter caseConfigOption(ConfigOption object) {
+ return createConfigOptionAdapter();
+ }
+ @Override
+ public Adapter caseTemplatePort(TemplatePort object) {
+ return createTemplatePortAdapter();
+ }
+ @Override
+ public Adapter casePort(Port object) {
+ return createPortAdapter();
+ }
+ @Override
+ public Adapter casePortKind(PortKind object) {
+ return createPortKindAdapter();
+ }
+ @Override
+ public Adapter caseDeploymentPlan(DeploymentPlan object) {
+ return createDeploymentPlanAdapter();
+ }
+ @Override
+ public Adapter caseDerivedElement(DerivedElement object) {
+ return createDerivedElementAdapter();
+ }
+ @Override
+ public Adapter caseCompImplTemplate(CompImplTemplate object) {
+ return createCompImplTemplateAdapter();
+ }
+ @Override
+ public Adapter caseImplementationProperties(ImplementationProperties object) {
+ return createImplementationPropertiesAdapter();
+ }
+ @Override
+ public Adapter caseOperatingSystem(OperatingSystem object) {
+ return createOperatingSystemAdapter();
+ }
+ @Override
+ public Adapter caseTargetArchitecture(TargetArchitecture object) {
+ return createTargetArchitectureAdapter();
+ }
+ @Override
+ public Adapter caseConfiguration(Configuration object) {
+ return createConfigurationAdapter();
+ }
+ @Override
+ public Adapter caseInterceptionRule(InterceptionRule object) {
+ return createInterceptionRuleAdapter();
+ }
+ @Override
+ public Adapter caseTarget(Target object) {
+ return createTargetAdapter();
+ }
+ @Override
+ public Adapter caseCompilerChain(CompilerChain object) {
+ return createCompilerChainAdapter();
+ }
+ @Override
+ public Adapter caseFragment(Fragment object) {
+ return createFragmentAdapter();
+ }
+ @Override
+ public Adapter caseCopyAttributeValue(CopyAttributeValue object) {
+ return createCopyAttributeValueAdapter();
+ }
+ @Override
+ public Adapter caseAutoIndex(AutoIndex object) {
+ return createAutoIndexAdapter();
+ }
+ @Override
+ public Adapter caseAutoIndexPerNode(AutoIndexPerNode object) {
+ return createAutoIndexPerNodeAdapter();
+ }
+ @Override
+ public Adapter caseInitPrecedence(InitPrecedence object) {
+ return createInitPrecedenceAdapter();
+ }
+ @Override
+ public Adapter caseConnectorConfiguration(ConnectorConfiguration object) {
+ return createConnectorConfigurationAdapter();
+ }
+ @Override
+ public Adapter caseBindTemplate(BindTemplate object) {
+ return createBindTemplateAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.Template <em>Template</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.Template
+ * @generated
+ */
+ public Adapter createTemplateAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.BindingHelper <em>Binding Helper</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.BindingHelper
+ * @generated
+ */
+ public Adapter createBindingHelperAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.ConfigurationProperty <em>Configuration Property</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.ConfigurationProperty
+ * @generated
+ */
+ public Adapter createConfigurationPropertyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.ImplementationGroup <em>Implementation Group</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.ImplementationGroup
+ * @generated
+ */
+ public Adapter createImplementationGroupAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.Assembly <em>Assembly</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.Assembly
+ * @generated
+ */
+ public Adapter createAssemblyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.Flatten <em>Flatten</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.Flatten
+ * @generated
+ */
+ public Adapter createFlattenAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.CompToOOmapping <em>Comp To OOmapping</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.CompToOOmapping
+ * @generated
+ */
+ public Adapter createCompToOOmappingAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.ProgLanguage <em>Prog Language</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.ProgLanguage
+ * @generated
+ */
+ public Adapter createProgLanguageAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.CodeGenOptions <em>Code Gen Options</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.CodeGenOptions
+ * @generated
+ */
+ public Adapter createCodeGenOptionsAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.InteractionComponent <em>Interaction Component</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.InteractionComponent
+ * @generated
+ */
+ public Adapter createInteractionComponentAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.Singleton <em>Singleton</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.Singleton
+ * @generated
+ */
+ public Adapter createSingletonAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.Connector <em>Connector</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.Connector
+ * @generated
+ */
+ public Adapter createConnectorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.ConfigurableElementInstance <em>Configurable Element Instance</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.ConfigurableElementInstance
+ * @generated
+ */
+ public Adapter createConfigurableElementInstanceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.UseInstanceConfigurator <em>Use Instance Configurator</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.UseInstanceConfigurator
+ * @generated
+ */
+ public Adapter createUseInstanceConfiguratorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.InstanceConfigurator <em>Instance Configurator</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.InstanceConfigurator
+ * @generated
+ */
+ public Adapter createInstanceConfiguratorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.RuleApplication <em>Rule Application</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.RuleApplication
+ * @generated
+ */
+ public Adapter createRuleApplicationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.ContainerRule <em>Container Rule</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.ContainerRule
+ * @generated
+ */
+ public Adapter createContainerRuleAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.ConfigOption <em>Config Option</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.ConfigOption
+ * @generated
+ */
+ public Adapter createConfigOptionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.TemplatePort <em>Template Port</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.TemplatePort
+ * @generated
+ */
+ public Adapter createTemplatePortAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.Port <em>Port</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.Port
+ * @generated
+ */
+ public Adapter createPortAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.PortKind <em>Port Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.PortKind
+ * @generated
+ */
+ public Adapter createPortKindAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.DeploymentPlan <em>Deployment Plan</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.DeploymentPlan
+ * @generated
+ */
+ public Adapter createDeploymentPlanAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.DerivedElement <em>Derived Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.DerivedElement
+ * @generated
+ */
+ public Adapter createDerivedElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.CompImplTemplate <em>Comp Impl Template</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.CompImplTemplate
+ * @generated
+ */
+ public Adapter createCompImplTemplateAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.ImplementationProperties <em>Implementation Properties</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.ImplementationProperties
+ * @generated
+ */
+ public Adapter createImplementationPropertiesAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.OperatingSystem <em>Operating System</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.OperatingSystem
+ * @generated
+ */
+ public Adapter createOperatingSystemAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.TargetArchitecture <em>Target Architecture</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.TargetArchitecture
+ * @generated
+ */
+ public Adapter createTargetArchitectureAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.Configuration <em>Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.Configuration
+ * @generated
+ */
+ public Adapter createConfigurationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.InterceptionRule <em>Interception Rule</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.InterceptionRule
+ * @generated
+ */
+ public Adapter createInterceptionRuleAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.Target <em>Target</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.Target
+ * @generated
+ */
+ public Adapter createTargetAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.CompilerChain <em>Compiler Chain</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.CompilerChain
+ * @generated
+ */
+ public Adapter createCompilerChainAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.Fragment <em>Fragment</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.Fragment
+ * @generated
+ */
+ public Adapter createFragmentAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.CopyAttributeValue <em>Copy Attribute Value</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.CopyAttributeValue
+ * @generated
+ */
+ public Adapter createCopyAttributeValueAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.AutoIndex <em>Auto Index</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.AutoIndex
+ * @generated
+ */
+ public Adapter createAutoIndexAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.AutoIndexPerNode <em>Auto Index Per Node</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.AutoIndexPerNode
+ * @generated
+ */
+ public Adapter createAutoIndexPerNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.InitPrecedence <em>Init Precedence</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.InitPrecedence
+ * @generated
+ */
+ public Adapter createInitPrecedenceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.ConnectorConfiguration <em>Connector Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.ConnectorConfiguration
+ * @generated
+ */
+ public Adapter createConnectorConfigurationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.BindTemplate <em>Bind Template</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.BindTemplate
+ * @generated
+ */
+ public Adapter createBindTemplateAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} // FCMAdapterFactory
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMResourceFactoryImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMResourceFactoryImpl.java
new file mode 100644
index 00000000000..5a422f9f93f
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMResourceFactoryImpl.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.util;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.impl.ResourceFactoryImpl;
+import org.eclipse.emf.ecore.xmi.XMLResource;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Resource Factory</b> associated with the package.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.util.FCMResourceImpl
+ * @generated
+ */
+public class FCMResourceFactoryImpl extends ResourceFactoryImpl {
+ /**
+ * Creates an instance of the resource factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FCMResourceFactoryImpl() {
+ super();
+ }
+
+ /**
+ * Creates an instance of the resource.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Resource createResource(URI uri) {
+ Resource result = new FCMResourceImpl(uri);
+ return result;
+ }
+
+} // FCMResourceFactoryImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMResourceImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMResourceImpl.java
new file mode 100644
index 00000000000..44226971798
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMResourceImpl.java
@@ -0,0 +1,37 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.util;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Resource </b> associated with the package.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.util.FCMResourceFactoryImpl
+ * @generated
+ */
+public class FCMResourceImpl extends XMLResourceImpl {
+ /**
+ * Creates an instance of the resource.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param uri the URI of the new resource.
+ * @generated
+ */
+ public FCMResourceImpl(URI uri) {
+ super(uri);
+ }
+
+} // FCMResourceImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMSwitch.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMSwitch.java
new file mode 100644
index 00000000000..8850265f42a
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMSwitch.java
@@ -0,0 +1,938 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.papyrus.FCM.*;
+import org.eclipse.papyrus.FCM.Assembly;
+import org.eclipse.papyrus.FCM.AutoIndex;
+import org.eclipse.papyrus.FCM.AutoIndexPerNode;
+import org.eclipse.papyrus.FCM.BindTemplate;
+import org.eclipse.papyrus.FCM.BindingHelper;
+import org.eclipse.papyrus.FCM.CodeGenOptions;
+import org.eclipse.papyrus.FCM.CompImplTemplate;
+import org.eclipse.papyrus.FCM.CompToOOmapping;
+import org.eclipse.papyrus.FCM.CompilerChain;
+import org.eclipse.papyrus.FCM.ConfigOption;
+import org.eclipse.papyrus.FCM.ConfigurableElementInstance;
+import org.eclipse.papyrus.FCM.Configuration;
+import org.eclipse.papyrus.FCM.ConfigurationProperty;
+import org.eclipse.papyrus.FCM.Connector;
+import org.eclipse.papyrus.FCM.ConnectorConfiguration;
+import org.eclipse.papyrus.FCM.ContainerRule;
+import org.eclipse.papyrus.FCM.CopyAttributeValue;
+import org.eclipse.papyrus.FCM.DeploymentPlan;
+import org.eclipse.papyrus.FCM.DerivedElement;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.Flatten;
+import org.eclipse.papyrus.FCM.Fragment;
+import org.eclipse.papyrus.FCM.ImplementationGroup;
+import org.eclipse.papyrus.FCM.ImplementationProperties;
+import org.eclipse.papyrus.FCM.InitPrecedence;
+import org.eclipse.papyrus.FCM.InstanceConfigurator;
+import org.eclipse.papyrus.FCM.InteractionComponent;
+import org.eclipse.papyrus.FCM.InterceptionRule;
+import org.eclipse.papyrus.FCM.OperatingSystem;
+import org.eclipse.papyrus.FCM.Port;
+import org.eclipse.papyrus.FCM.PortKind;
+import org.eclipse.papyrus.FCM.ProgLanguage;
+import org.eclipse.papyrus.FCM.RuleApplication;
+import org.eclipse.papyrus.FCM.Singleton;
+import org.eclipse.papyrus.FCM.Target;
+import org.eclipse.papyrus.FCM.TargetArchitecture;
+import org.eclipse.papyrus.FCM.Template;
+import org.eclipse.papyrus.FCM.TemplatePort;
+import org.eclipse.papyrus.FCM.UseInstanceConfigurator;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)} to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.FCMPackage
+ * @generated
+ */
+public class FCMSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static FCMPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FCMSwitch() {
+ if (modelPackage == null) {
+ modelPackage = FCMPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case FCMPackage.TEMPLATE: {
+ Template template = (Template)theEObject;
+ T result = caseTemplate(template);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.BINDING_HELPER: {
+ BindingHelper bindingHelper = (BindingHelper)theEObject;
+ T result = caseBindingHelper(bindingHelper);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.CONFIGURATION_PROPERTY: {
+ ConfigurationProperty configurationProperty = (ConfigurationProperty)theEObject;
+ T result = caseConfigurationProperty(configurationProperty);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.IMPLEMENTATION_GROUP: {
+ ImplementationGroup implementationGroup = (ImplementationGroup)theEObject;
+ T result = caseImplementationGroup(implementationGroup);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.ASSEMBLY: {
+ Assembly assembly = (Assembly)theEObject;
+ T result = caseAssembly(assembly);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.FLATTEN: {
+ Flatten flatten = (Flatten)theEObject;
+ T result = caseFlatten(flatten);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.COMP_TO_OOMAPPING: {
+ CompToOOmapping compToOOmapping = (CompToOOmapping)theEObject;
+ T result = caseCompToOOmapping(compToOOmapping);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.PROG_LANGUAGE: {
+ ProgLanguage progLanguage = (ProgLanguage)theEObject;
+ T result = caseProgLanguage(progLanguage);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.CODE_GEN_OPTIONS: {
+ CodeGenOptions codeGenOptions = (CodeGenOptions)theEObject;
+ T result = caseCodeGenOptions(codeGenOptions);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.INTERACTION_COMPONENT: {
+ InteractionComponent interactionComponent = (InteractionComponent)theEObject;
+ T result = caseInteractionComponent(interactionComponent);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.SINGLETON: {
+ Singleton singleton = (Singleton)theEObject;
+ T result = caseSingleton(singleton);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.CONNECTOR: {
+ Connector connector = (Connector)theEObject;
+ T result = caseConnector(connector);
+ if (result == null) result = caseConfigurableElementInstance(connector);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.CONFIGURABLE_ELEMENT_INSTANCE: {
+ ConfigurableElementInstance configurableElementInstance = (ConfigurableElementInstance)theEObject;
+ T result = caseConfigurableElementInstance(configurableElementInstance);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.USE_INSTANCE_CONFIGURATOR: {
+ UseInstanceConfigurator useInstanceConfigurator = (UseInstanceConfigurator)theEObject;
+ T result = caseUseInstanceConfigurator(useInstanceConfigurator);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.INSTANCE_CONFIGURATOR: {
+ InstanceConfigurator instanceConfigurator = (InstanceConfigurator)theEObject;
+ T result = caseInstanceConfigurator(instanceConfigurator);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.RULE_APPLICATION: {
+ RuleApplication ruleApplication = (RuleApplication)theEObject;
+ T result = caseRuleApplication(ruleApplication);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.CONTAINER_RULE: {
+ ContainerRule containerRule = (ContainerRule)theEObject;
+ T result = caseContainerRule(containerRule);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.CONFIG_OPTION: {
+ ConfigOption configOption = (ConfigOption)theEObject;
+ T result = caseConfigOption(configOption);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.TEMPLATE_PORT: {
+ TemplatePort templatePort = (TemplatePort)theEObject;
+ T result = caseTemplatePort(templatePort);
+ if (result == null) result = casePort(templatePort);
+ if (result == null) result = caseConfigurableElementInstance(templatePort);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.PORT: {
+ Port port = (Port)theEObject;
+ T result = casePort(port);
+ if (result == null) result = caseConfigurableElementInstance(port);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.PORT_KIND: {
+ PortKind portKind = (PortKind)theEObject;
+ T result = casePortKind(portKind);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.DEPLOYMENT_PLAN: {
+ DeploymentPlan deploymentPlan = (DeploymentPlan)theEObject;
+ T result = caseDeploymentPlan(deploymentPlan);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.DERIVED_ELEMENT: {
+ DerivedElement derivedElement = (DerivedElement)theEObject;
+ T result = caseDerivedElement(derivedElement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.COMP_IMPL_TEMPLATE: {
+ CompImplTemplate compImplTemplate = (CompImplTemplate)theEObject;
+ T result = caseCompImplTemplate(compImplTemplate);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.IMPLEMENTATION_PROPERTIES: {
+ ImplementationProperties implementationProperties = (ImplementationProperties)theEObject;
+ T result = caseImplementationProperties(implementationProperties);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.OPERATING_SYSTEM: {
+ OperatingSystem operatingSystem = (OperatingSystem)theEObject;
+ T result = caseOperatingSystem(operatingSystem);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.TARGET_ARCHITECTURE: {
+ TargetArchitecture targetArchitecture = (TargetArchitecture)theEObject;
+ T result = caseTargetArchitecture(targetArchitecture);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.CONFIGURATION: {
+ Configuration configuration = (Configuration)theEObject;
+ T result = caseConfiguration(configuration);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.INTERCEPTION_RULE: {
+ InterceptionRule interceptionRule = (InterceptionRule)theEObject;
+ T result = caseInterceptionRule(interceptionRule);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.TARGET: {
+ Target target = (Target)theEObject;
+ T result = caseTarget(target);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.COMPILER_CHAIN: {
+ CompilerChain compilerChain = (CompilerChain)theEObject;
+ T result = caseCompilerChain(compilerChain);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.FRAGMENT: {
+ Fragment fragment = (Fragment)theEObject;
+ T result = caseFragment(fragment);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.COPY_ATTRIBUTE_VALUE: {
+ CopyAttributeValue copyAttributeValue = (CopyAttributeValue)theEObject;
+ T result = caseCopyAttributeValue(copyAttributeValue);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.AUTO_INDEX: {
+ AutoIndex autoIndex = (AutoIndex)theEObject;
+ T result = caseAutoIndex(autoIndex);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.AUTO_INDEX_PER_NODE: {
+ AutoIndexPerNode autoIndexPerNode = (AutoIndexPerNode)theEObject;
+ T result = caseAutoIndexPerNode(autoIndexPerNode);
+ if (result == null) result = caseAutoIndex(autoIndexPerNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.INIT_PRECEDENCE: {
+ InitPrecedence initPrecedence = (InitPrecedence)theEObject;
+ T result = caseInitPrecedence(initPrecedence);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.CONNECTOR_CONFIGURATION: {
+ ConnectorConfiguration connectorConfiguration = (ConnectorConfiguration)theEObject;
+ T result = caseConnectorConfiguration(connectorConfiguration);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.BIND_TEMPLATE: {
+ BindTemplate bindTemplate = (BindTemplate)theEObject;
+ T result = caseBindTemplate(bindTemplate);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Template</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Template</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTemplate(Template object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Binding Helper</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Binding Helper</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBindingHelper(BindingHelper object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Configuration Property</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Configuration Property</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConfigurationProperty(ConfigurationProperty object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Implementation Group</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Implementation Group</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseImplementationGroup(ImplementationGroup object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Assembly</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Assembly</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAssembly(Assembly object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Flatten</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Flatten</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFlatten(Flatten object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Comp To OOmapping</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Comp To OOmapping</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCompToOOmapping(CompToOOmapping object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Prog Language</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Prog Language</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseProgLanguage(ProgLanguage object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Code Gen Options</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Code Gen Options</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCodeGenOptions(CodeGenOptions object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Interaction Component</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Interaction Component</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseInteractionComponent(InteractionComponent object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Singleton</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Singleton</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSingleton(Singleton object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Connector</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Connector</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConnector(Connector object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Configurable Element Instance</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Configurable Element Instance</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConfigurableElementInstance(ConfigurableElementInstance object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Use Instance Configurator</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Use Instance Configurator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseUseInstanceConfigurator(UseInstanceConfigurator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Instance Configurator</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Instance Configurator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseInstanceConfigurator(InstanceConfigurator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Rule Application</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Rule Application</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRuleApplication(RuleApplication object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Container Rule</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Container Rule</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseContainerRule(ContainerRule object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Config Option</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Config Option</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConfigOption(ConfigOption object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Template Port</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Template Port</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTemplatePort(TemplatePort object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Port</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Port</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePort(Port object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Port Kind</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Port Kind</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePortKind(PortKind object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Deployment Plan</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Deployment Plan</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDeploymentPlan(DeploymentPlan object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Derived Element</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Derived Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDerivedElement(DerivedElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Comp Impl Template</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Comp Impl Template</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCompImplTemplate(CompImplTemplate object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Implementation Properties</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Implementation Properties</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseImplementationProperties(ImplementationProperties object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Operating System</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Operating System</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseOperatingSystem(OperatingSystem object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Target Architecture</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Target Architecture</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTargetArchitecture(TargetArchitecture object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Configuration</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Configuration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConfiguration(Configuration object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Interception Rule</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Interception Rule</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseInterceptionRule(InterceptionRule object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Target</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Target</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTarget(Target object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Compiler Chain</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Compiler Chain</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCompilerChain(CompilerChain object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Fragment</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Fragment</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFragment(Fragment object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Copy Attribute Value</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Copy Attribute Value</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCopyAttributeValue(CopyAttributeValue object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Auto Index</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Auto Index</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAutoIndex(AutoIndex object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Auto Index Per Node</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Auto Index Per Node</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAutoIndexPerNode(AutoIndexPerNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Init Precedence</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Init Precedence</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseInitPrecedence(InitPrecedence object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Connector Configuration</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Connector Configuration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConnectorConfiguration(ConnectorConfiguration object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Bind Template</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Bind Template</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBindTemplate(BindTemplate object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} // FCMSwitch
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMUtil.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMUtil.java
new file mode 100644
index 00000000000..70d93d48d1b
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMUtil.java
@@ -0,0 +1,240 @@
+package org.eclipse.papyrus.FCM.util;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.UniqueEList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.FCM.Connector;
+import org.eclipse.papyrus.FCM.ContainerRule;
+import org.eclipse.papyrus.FCM.InteractionComponent;
+import org.eclipse.papyrus.FCM.RuleApplication;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.CollaborationUse;
+import org.eclipse.uml2.uml.ConnectableElement;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Slot;
+import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.uml2.uml.ValueSpecification;
+
+
+public class FCMUtil {
+
+ /**
+ * @param specification
+ * @param configPropertyName
+ * @return
+ */
+ public static EList<ValueSpecification> getConfigurationValue(InstanceSpecification specification, String configPropertyName) {
+ if (specification != null) {
+ for (Iterator<Slot> i = specification.getSlots().iterator(); i.hasNext();) {
+ Slot currentSlot = i.next();
+ if (currentSlot.getDefiningFeature() != null &&
+ currentSlot.getDefiningFeature().getName().equals(configPropertyName)) {
+ return currentSlot.getValues();
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
+ * @param interfaces
+ * @param interfaceName
+ * @return
+ */
+ public static Interface findInterfaceByName(EList<Interface> interfaces, String interfaceName) {
+ for (Iterator<Interface> i = interfaces.iterator(); i.hasNext();) {
+ Interface currentInterface = i.next();
+ if (currentInterface.getName().equals(interfaceName)) {
+ return currentInterface;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * A data structure to be used for the specification of how the roles of the collaboration associated with
+ * the type of param "connector" are bound to actual elements of the composite containing param "connector".
+ * This data structure contains an hashmap<ConnectableElement, List<Element>>:
+ * - keys must be roles of a Collaboration
+ * - values must be list of elements playing this role in the context of a particular composite
+ *
+ * @author ac221913
+ *
+ */
+ public static final class RoleBindingTable {
+
+ private HashMap<org.eclipse.uml2.uml.ConnectableElement, List<org.eclipse.uml2.uml.NamedElement>> table;
+
+ public RoleBindingTable() {
+ this.table = new HashMap<org.eclipse.uml2.uml.ConnectableElement,
+ List<org.eclipse.uml2.uml.NamedElement>>();
+ }
+
+ public void addEntry(org.eclipse.uml2.uml.ConnectableElement role,
+ List<org.eclipse.uml2.uml.NamedElement> playedBy) {
+ table.put(role, playedBy);
+ }
+
+ public List<org.eclipse.uml2.uml.NamedElement> getEntry(org.eclipse.uml2.uml.ConnectableElement role) {
+ return table.get(role);
+ }
+
+ public Iterator<org.eclipse.uml2.uml.ConnectableElement> iterator() {
+ return table.keySet().iterator();
+ }
+
+ public HashMap<org.eclipse.uml2.uml.ConnectableElement, List<org.eclipse.uml2.uml.NamedElement>> getTable() {
+ return table;
+ }
+
+ public ConnectableElement getRoleKeyByName(String roleName) {
+ for (ConnectableElement role : table.keySet()) {
+ if (role.getName().equals(roleName)) {
+ return role;
+ }
+ }
+ return null;
+ }
+ }
+
+ /**
+ * Generate a connection pattern. Currently unused
+ *
+ * @param connectorComp
+ */
+ public static void generateDefaultConnectionPattern(InteractionComponent connectorComp) {
+ org.eclipse.uml2.uml.Collaboration connectionPattern =
+ UMLFactory.eINSTANCE.createCollaboration();
+
+ // ((org.eclipse.uml2.uml.Package)connectorComp.getBase_Class().getOwner()).getPackagedElements().add(connectionPattern) ;
+ connectorComp.getBase_Class().getNestedClassifiers().add(connectionPattern);
+ connectionPattern.setName(connectorComp.getBase_Class().getName() + "ConnectionPattern"); //$NON-NLS-1$
+
+ org.eclipse.uml2.uml.Property connectorRole =
+ connectionPattern.createOwnedAttribute("connector", connectorComp.getBase_Class(), 1, 1); //$NON-NLS-1$
+ for (Iterator<org.eclipse.uml2.uml.Port> i = connectorComp.getBase_Class().getOwnedPorts().iterator(); i.hasNext();) {
+ org.eclipse.uml2.uml.Port port = i.next();
+ org.eclipse.uml2.uml.Property role;
+ org.eclipse.uml2.uml.Connector connector;
+ role = connectionPattern.createOwnedAttribute(port.getName(), null);
+ connector = connectionPattern.createOwnedConnector(""); //$NON-NLS-1$
+ org.eclipse.uml2.uml.ConnectorEnd source, target;
+ source = connector.createEnd();
+ source.setRole(port);
+ source.setPartWithPort(connectorRole);
+ target = connector.createEnd();
+ target.setRole(role);
+ }
+
+ connectorComp.setConnectionPattern(connectionPattern);
+ }
+
+ /**
+ * TODO Move this method in ConnectorReification.java
+ *
+ * @author ac221913
+ *
+ */
+ public static void generateCollaborationUse(Connector connector) {
+
+ InteractionComponent connectorCompGen = connector.getIc();
+
+ if (!(connectorCompGen instanceof InteractionComponent)) {
+ return;
+ }
+ InteractionComponent connectorComp = connectorCompGen;
+ org.eclipse.uml2.uml.Collaboration connectionPattern =
+ connectorComp.getConnectionPattern();
+
+ if (connectionPattern == null) {
+ FCMUtil.generateDefaultConnectionPattern(connectorComp);
+ connectionPattern = connectorComp.getConnectionPattern();
+ }
+
+ Class composite = (Class) connector.getBase_Connector().getOwner();
+ CollaborationUse collaborationUse;
+ RoleBindingTable bindingTable = getConnectorRoleBindings(connector);
+
+ if (bindingTable == null) {
+ return;
+ }
+
+ collaborationUse = composite.createCollaborationUse("useOf" + connectionPattern.getName()); //$NON-NLS-1$
+ collaborationUse.setType(connectionPattern);
+ for (Iterator<org.eclipse.uml2.uml.ConnectableElement> i = bindingTable.iterator(); i.hasNext();) {
+ org.eclipse.uml2.uml.ConnectableElement role = i.next();
+ org.eclipse.uml2.uml.Dependency roleBinding;
+ roleBinding = collaborationUse.createRoleBinding(role.getName() + "RoleBinding"); //$NON-NLS-1$
+ roleBinding.getSuppliers().add(role);
+ for (Iterator<org.eclipse.uml2.uml.NamedElement> j = bindingTable.getEntry(role).iterator(); j.hasNext();) {
+ roleBinding.getClients().add(j.next());
+ }
+ }
+ }
+
+ /**
+ * Computes a RoleBindingTable for a given ConnectorComp
+ * Implies that a java class has been defined in FCMProfile.util for this ConnectorComp,
+ * and that it encapsulates corresponding role binding rule
+ *
+ * @author ac221913
+ *
+ */
+ public static RoleBindingTable getConnectorRoleBindings(Connector connector) {
+ InteractionComponent connectorCompGen = connector.getIc();
+
+ if (!(connectorCompGen instanceof InteractionComponent)) {
+ return null;
+ }
+ InteractionComponent type = connectorCompGen;
+
+ IExtensionRegistry reg = Platform.getExtensionRegistry();
+ IConfigurationElement[] configElements = reg.getConfigurationElementsFor("fcmEmbeddingRule"); //$NON-NLS-1$
+ for (IConfigurationElement configElement : configElements) {
+ try {
+ final String extConnName = configElement.getAttribute("connectorName"); //$NON-NLS-1$
+ if (extConnName.equals(type.getBase_Class().getName())) {
+ final Object obj = configElement.createExecutableExtension("class"); //$NON-NLS-1$
+ if (obj instanceof IEmbeddingRule) {
+ return ((IEmbeddingRule) obj).getRoleBindings(connector);
+ }
+ }
+ } catch (CoreException exception) {
+ exception.printStackTrace();
+ }
+ }
+ return null;
+ }
+
+ /*
+ * return a list of all rules based on containment packages of rules
+ * from owning elements
+ */
+ public static EList<ContainerRule> getAllContainerRules(Element element) {
+ EList<ContainerRule> list = new UniqueEList<ContainerRule>();
+ if (element != null) {
+ for (EObject eObj : element.getStereotypeApplications()) {
+ if (eObj instanceof RuleApplication) {
+ list.addAll(((RuleApplication) eObj).getContainerRule());
+ break;
+ }
+ }
+ element = element.getOwner();
+ if (element != null) {
+ list.addAll(getAllContainerRules(element));
+ }
+ }
+ return list;
+ }
+
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMXMLProcessor.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMXMLProcessor.java
new file mode 100644
index 00000000000..c529e27f558
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMXMLProcessor.java
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.util;
+
+import java.util.Map;
+
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.xmi.util.XMLProcessor;
+import org.eclipse.papyrus.FCM.FCMPackage;
+
+/**
+ * This class contains helper methods to serialize and deserialize XML documents
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class FCMXMLProcessor extends XMLProcessor {
+
+ /**
+ * Public constructor to instantiate the helper.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FCMXMLProcessor() {
+ super((EPackage.Registry.INSTANCE));
+ FCMPackage.eINSTANCE.eClass();
+ }
+
+ /**
+ * Register for "*" and "xml" file extensions the FCMResourceFactoryImpl factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected Map<String, Resource.Factory> getRegistrations() {
+ if (registrations == null) {
+ super.getRegistrations();
+ registrations.put(XML_EXTENSION, new FCMResourceFactoryImpl());
+ registrations.put(STAR_EXTENSION, new FCMResourceFactoryImpl());
+ }
+ return registrations;
+ }
+
+} // FCMXMLProcessor
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/IBindingHelper.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/IBindingHelper.java
new file mode 100644
index 00000000000..b512b1e5b11
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/IBindingHelper.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+
+package org.eclipse.papyrus.FCM.util;
+
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.TemplateBinding;
+
+/**
+ * BindingHelper interface. The interface is intentionally left empty. Implementations
+ * (such as Qompass designer) might check for subclasses.
+ *
+ */
+public interface IBindingHelper {
+ public void handleElement(TemplateBinding binding, Element object);
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/IEmbeddingRule.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/IEmbeddingRule.java
new file mode 100644
index 00000000000..8489c5377cc
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/IEmbeddingRule.java
@@ -0,0 +1,31 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+
+package org.eclipse.papyrus.FCM.util;
+
+import org.eclipse.papyrus.FCM.Connector;
+
+/**
+ * Interface used by extension point for embedding rules
+ */
+public interface IEmbeddingRule {
+ /**
+ * Return a role binding table for a given connector
+ *
+ * @param connector
+ * the connector
+ * @return role binding table
+ */
+ public FCMUtil.RoleBindingTable getRoleBindings(Connector connector);
+
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/IMappingRule.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/IMappingRule.java
new file mode 100644
index 00000000000..f5b37646df5
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/IMappingRule.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+
+package org.eclipse.papyrus.FCM.util;
+
+import org.eclipse.papyrus.FCM.Port;
+import org.eclipse.uml2.uml.Type;
+
+/**
+ * Interface used by extension point for evaluation of interface mappings
+ *
+ */
+public interface IMappingRule {
+ /**
+ * Calculate the derived portType
+ *
+ * @param p
+ * the port
+ * @param update
+ * if true, make model updates during calculation of derived interface
+ * @return the list of provided interfaces
+ */
+ public Type calcDerivedType(Port p, boolean update);
+
+ /**
+ * check whether a port needs to be updated (recalculation of its derived interfaces)
+ *
+ * @return true, if update is required, false otherwise
+ */
+ public boolean needsUpdate(Port p);
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/ITemplateMappingRule.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/ITemplateMappingRule.java
new file mode 100644
index 00000000000..2b9ef6487db
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/ITemplateMappingRule.java
@@ -0,0 +1,40 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+
+package org.eclipse.papyrus.FCM.util;
+
+import org.eclipse.papyrus.FCM.Port;
+import org.eclipse.papyrus.FCM.PortKind;
+
+
+/**
+ * A specific mapping rule for template ports, i.e. ports that facilitate the
+ * use of bound ports: i.e. instead of creating explicitly a binding for an extended
+ * port, the type of the port is used as actual and the kind points to an extended
+ * port
+ */
+public interface ITemplateMappingRule extends IMappingRule {
+
+ /**
+ * Update the created binding
+ */
+ public void updateBinding(Port port);
+
+ /**
+ * Return the bound type
+ *
+ * @param port
+ * @return
+ */
+ public PortKind getBoundType(Port port);
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/MapUtil.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/MapUtil.java
new file mode 100644
index 00000000000..c6e4699fb8e
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/MapUtil.java
@@ -0,0 +1,530 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+
+package org.eclipse.papyrus.FCM.util;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.FCM.Activator;
+import org.eclipse.papyrus.FCM.DerivedElement;
+import org.eclipse.papyrus.FCM.Port;
+import org.eclipse.papyrus.FCM.PortKind;
+import org.eclipse.papyrus.FCM.TemplatePort;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Namespace;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PackageMerge;
+import org.eclipse.uml2.uml.PackageableElement;
+import org.eclipse.uml2.uml.Stereotype;
+import org.eclipse.uml2.uml.TemplateSignature;
+import org.eclipse.uml2.uml.TemplateableElement;
+import org.eclipse.uml2.uml.Type;
+
+
+/**
+ * This class is responsible for creating derived types associated with ports. The derived
+ * type is the class that will type the port and contain imported and used interfaces depending
+ * on the FCM type and kind.
+ * A particular question related to the derived types is into which package we can place them
+ * within the type hierarchy:
+ * (1) Of course, the package must be writable. That means, it must not belong to an imported library.
+ * (2) The source type must be clearly identifiable.
+ * (3) If a template get's instantiated, derived types within (if we place them there) might
+ * need (re-) instantiation. Imagine AMI_ interface that contains some of I's method. The creation of an AMI_I type within the template
+ *
+ * Therefore, a global "derived types" package is created within the model that owns the port. This
+ * package contains the full folder hierarchy of the original type and places the elements there.
+ * TODO: Align with package template instantiation => create type specific sub-folder, e.g. kind_type. Use package specific side-folders.
+ * Need specific solution for elements within template (placing into same template is finally not a good idea).
+ * Idea of package template (and the possibility to extend) was, that common elements are instantiated once. Thus, we will have interfaceBased_<intfName>/UseInterface/Use.cpp,
+ * not UseInterface_<intfName>/Use.cpp
+ * [Users choice to define template with additional package or not?]
+ */
+public class MapUtil {
+
+ private static final String DERIVED_TYPES = "derivedTypes"; //$NON-NLS-1$
+
+ // specific treatment of "root" model that is created by eC3M for deployment
+ // It avoids that copies of derived interfaces are created at different places
+ // [better alternative: avoid problem by using set of models instead of single large one]
+ // [other option?: no-update flag?]
+ public static final String rootModelName = "root"; //$NON-NLS-1$
+
+ public static final String MAPPING_RULE_ID = "fcmPortMappingRule"; //$NON-NLS-1$
+
+ public enum CREATE_KIND {
+ CLASS, INTERFACE, NONE
+ }
+
+ /**
+ * Get the template signature of a templateable element (typically a package). The class must
+ * (1) either own the signature
+ * (2) or merge with a package which owns the signature.
+ * Qompass enables the "extension" of existing packages via the package merge mechanism
+ *
+ * @param template
+ * The potential template
+ * @return the signature or null, if none can be found.
+ */
+ public static TemplateSignature getSignature(TemplateableElement template) {
+ for (Element element : template.getOwnedElements()) {
+ if (element instanceof TemplateSignature) {
+ return (TemplateSignature) element;
+ }
+ }
+
+ // enable multiple package templates sharing the same signature.
+ if (template instanceof Package) {
+ Package pkg = (Package) template;
+ for (PackageMerge pkgImport : pkg.getPackageMerges()) {
+ Package importedPkg = pkgImport.getMergedPackage();
+ return getSignature(importedPkg);
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Return the top-level owner of an element. This function returns the same value
+ * as getModel, if the top-level element is a model and not contained in a template
+ * While this is the case for models, model libraries have a top-level package (not
+ * a model). In this case, getTop returns the top-level package whereas getModel
+ * would return null.
+ * In case of a package owning a signature, it returns this package instead of the
+ * top level package. The reason is that the derived types might reference elements
+ * of the template signature which would be undefined outside.
+ *
+ * @param element
+ * An element of which we want to query
+ * @return the top-level owning package
+ */
+ public static Package getTop(Element element) {
+ while (element != null) {
+ Element owner = element.getOwner();
+ if (owner == null) {
+ if (element instanceof Package) {
+ return (Package) element;
+ }
+ } else if ((owner instanceof Package) && (owner.getOwner() == null) &&
+ ((Package) owner).getName().equals(rootModelName)) {
+ // Hack: assure that no new derived interface folder is created in "root" model
+ // that eC3M creates for deployment
+ if (element instanceof Package) {
+ // return (Package)element;
+ }
+ }
+ if ((element instanceof Package) && (getSignature((Package) element) != null)) {
+ return (Package) element;
+ }
+ element = owner;
+ }
+ return null;
+ }
+
+ /**
+ * Apply the derived element stereotype to a model element
+ *
+ * @param element
+ * @return
+ */
+ public static DerivedElement applyDE(Element element) {
+ Stereotype stereotype = element.getApplicableStereotype("FCM::DerivedElement"); //$NON-NLS-1$
+ if (stereotype != null) {
+ EObject alreadyApplied = element.getStereotypeApplication(stereotype);
+ if (alreadyApplied instanceof DerivedElement) {
+ return (DerivedElement) alreadyApplied;
+ }
+ alreadyApplied = element.applyStereotype(stereotype);
+ if (alreadyApplied instanceof DerivedElement) {
+ return (DerivedElement) alreadyApplied;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Get or create a package within another package (often the root of a model), i.e. return
+ * a package with the passed name, if it exists or create a new one of this name
+ *
+ * @param root
+ * a package potentially owning a certain element
+ * @param name
+ * the name of a package that should be be returned.
+ * @return a package
+ */
+ public static Package getAndCreate(Package root, String name, boolean createOnDemand) {
+ NamedElement pkg = root.getOwnedMember(name);
+ if ((pkg == null) && createOnDemand) {
+ pkg = root.createNestedPackage(name);
+ }
+ return (Package) pkg;
+ }
+
+ /**
+ * Get or create a derived interface for a port using a fixed prefix
+ * type name
+ *
+ * @param port
+ * The port
+ * @param prefix
+ * prefix string
+ * @param type
+ * type name
+ * @return the derived interface or null (if it cannot be created)
+ */
+ public static Class getDerivedClass(Port port, String prefix) {
+ Type type = getOrCreateDerivedTypeIntern(port, prefix, port.getType(), CREATE_KIND.NONE);
+ return type instanceof Class ? (Class) type : null;
+ }
+
+ /**
+ * Get or create a derived interface for a port using a fixed prefix
+ * type name
+ *
+ * @param port
+ * The port
+ * @param prefix
+ * prefix string
+ * @param type
+ * type name
+ * @return the derived interface or null (if it cannot be created)
+ */
+ public static Class getDerivedClass(Port port, String prefix, boolean update) {
+ return update ? getOrCreateDerivedClass(port, prefix) : getDerivedClass(port, prefix);
+ }
+
+ /**
+ * Get a derived interface of a port. The interface is searched within the derived types
+ * folder based on the passed prefix
+ *
+ * @param port
+ * The port
+ * @param prefix
+ * prefix string
+ * @param type
+ * FCM port type
+ * @return the derived interface or null (if it cannot be created)
+ */
+ public static Interface getDerivedInterface(Port port, String prefix) {
+ Type type = getOrCreateDerivedTypeIntern(port, prefix, port.getType(), CREATE_KIND.NONE);
+ return type instanceof Interface ? (Interface) type : null;
+ }
+
+ /**
+ * Get or create a derived interface for a port using a fixed prefix
+ * type name
+ *
+ * @param port
+ * The port
+ * @param prefix
+ * prefix string
+ * @param type
+ * type name
+ * @return the derived interface or null (if it cannot be created)
+ */
+ public static Interface getDerivedInterface(Port port, String prefix, boolean update) {
+ return update ? getOrCreateDerivedInterface(port, prefix) : getDerivedInterface(port, prefix);
+ }
+
+ /**
+ * Get or create a derived interface for a port using a fixed prefix
+ * type name
+ *
+ * @param port
+ * The port
+ * @param prefix
+ * prefix string
+ * @param type
+ * type name
+ * @param createKind
+ * if non NONE, create either an interfaces or a class, if it does not exist yet
+ * @return the derived interface or null (if it cannot be created)
+ */
+ public static Class getOrCreateDerivedClass(Port port, String prefix) {
+ Type type = getOrCreateDerivedTypeIntern(port, prefix, port.getType(), CREATE_KIND.CLASS);
+ return type instanceof Class ? (Class) type : null;
+ }
+
+ /**
+ * Get or create a derived interface for a port using a fixed prefix
+ * type name
+ *
+ * @param port
+ * The port
+ * @param prefix
+ * prefix string
+ * @param type
+ * type name
+ * @return the derived interface or null (if it cannot be created)
+ */
+ public static Interface getOrCreateDerivedInterface(Port port, String prefix) {
+ Type type = getOrCreateDerivedTypeIntern(port, prefix, port.getType(), CREATE_KIND.INTERFACE);
+ return type instanceof Interface ? (Interface) type : null;
+ }
+
+
+
+ /**
+ * This function returns a Package reference that corresponds to a qualified name.
+ * Packages are created, if not existing yet - the function is thus a bit similar to
+ * the unix "mkdir -p" command. Note that the main model within the list of name-spaces is
+ * ignored, in order to avoid that a sub-package within a model starts with the name
+ * of the model.
+ *
+ * @param model
+ * a model
+ * @param list
+ * a list of namespace elements (as can be obtained via allNamespaces),
+ * the top-level element is the last within the list.
+ * @param skipTop
+ * if true, skip top level namespace element
+ * @return
+ */
+ public static Package getAndCreate(Package root, EList<Namespace> list, boolean createOnDemand) {
+ boolean first = true;
+ for (int i = list.size() - 1; i >= 0; i--) {
+ Namespace ns = list.get(i);
+
+ if (first) {
+ first = false;
+ // Hack: if rootModel is used, skip top
+ // (avoid that new derived interface with "root" prefix is created)
+ if (ns.getName().equals(rootModelName)) {
+ continue;
+ }
+ }
+ NamedElement pkg = root.getOwnedMember(ns.getName());
+ if ((pkg == null) && createOnDemand) {
+ // package does not exist => create it.
+ pkg = root.createNestedPackage(ns.getName());
+ // copy stereotype to create package
+ }
+ if (!(pkg instanceof Package)) {
+ break;
+ }
+ root = (Package) pkg;
+ }
+ return root;
+ }
+
+ /**
+ * Get or create a derived interface for a port using the name given by concatenation of prefix and
+ * type name
+ *
+ * @param port
+ * The port for which to create a derived interface. Only used to determine the place where the
+ * derived interface is placed
+ * @param prefix
+ * prefix string
+ * @param type
+ * type name
+ * @param createKind
+ * if non NONE, create either an interfaces or a class, if it does not exist yet
+ * @return
+ */
+ private static Type getOrCreateDerivedTypeIntern(Port port, String prefix, Type type, CREATE_KIND createKind) {
+ String typeName = prefix + type.getName();
+
+ // create derived element in "derivedInterface" package within the model owning
+ // the port (which must be an FCM model, since the port carries the FCM stereotype)
+ Package baseModelOfPort = getTop(port.getBase_Port());
+ // handle specific case of type within template. Place derived type into same template.
+ Package derivedTypes = getAndCreate(baseModelOfPort, DERIVED_TYPES, createKind != CREATE_KIND.NONE);
+ if (derivedTypes != null) {
+ Package owner = getAndCreate(derivedTypes, type.allNamespaces(), createKind != CREATE_KIND.NONE);
+ Interface intf = null;
+
+ PackageableElement pe = owner.getPackagedElement(typeName);
+ if (pe instanceof Type) {
+ // type already exists
+ return (Type) pe;
+ } else if (createKind == CREATE_KIND.INTERFACE) {
+ // System.out.println ("Derived port types: create new interface " + typeName + " in package " + owner.getQualifiedName ());
+ intf = owner.createOwnedInterface(typeName);
+
+ // System.out.println ("Derived port types: Apply derived stereotype annotation to interface: " + intf.getQualifiedName());
+ DerivedElement de = applyDE(intf);
+ if (de != null) {
+ // de may be null, if FCM is not properly applied
+ de.setSource(type);
+ }
+ return intf;
+ } else if (createKind == CREATE_KIND.CLASS) {
+ // System.out.println ("Derived port types: create new interface " + typeName + " in package " + owner.getQualifiedName ());
+ Class newType = owner.createOwnedClass(typeName, false);
+
+ // System.out.println ("Derived port types: Apply derived stereotype annotation to interface: " + intf.getQualifiedName());
+ DerivedElement de = applyDE(newType);
+ if (de != null) {
+ // de may be null, if FCM is not properly applied
+ de.setSource(type);
+ }
+ return newType;
+ }
+ }
+
+ // instead of returning null, return a dummy interface that indicates the user that an element needs updating.
+ PackageableElement portKinds = baseModelOfPort.getImportedMember("PortKinds"); //$NON-NLS-1$
+ if (portKinds instanceof Package) {
+ PackageableElement pe = ((Package) portKinds).getPackagedElement("Please update derived elements"); //$NON-NLS-1$
+ if (pe instanceof Interface) {
+ // dummy interface exists
+ return (Interface) pe;
+ }
+ }
+ return null;
+ }
+
+ public static void addRealization(Class portType, Interface providedInterface) {
+ if (!portType.getImplementedInterfaces().contains(providedInterface)) {
+ portType.createInterfaceRealization(null, providedInterface);
+ }
+ }
+
+ public static void addUsage(Class portType, Interface usedInterface) {
+ if (!portType.getUsedInterfaces().contains(usedInterface)) {
+ portType.createUsage(usedInterface);
+ }
+ }
+
+ /**
+ * Calculate derived required interface in function of port type and kind
+ *
+ * @param port
+ * the port, for which the calculation should be done
+ * @return
+ */
+ public static Type getDerivedType(final Port port) {
+ if (port.getBase_Port() == null) {
+ // should not happen, but can occur in case of corrupted XMI files
+ return null;
+ }
+ PortKind portKind = port.getKind();
+ if (portKind != null) {
+ String ruleName = portKind.isExtendedPort() ? "ExtendedPort" : portKind.getBase_Class().getName(); //$NON-NLS-1$
+ final IMappingRule mappingRule = getMappingRule(ruleName);
+ if (mappingRule != null) {
+ return mappingRule.calcDerivedType(port, false);
+ }
+ }
+ return null;
+ }
+
+
+ /**
+ * Obtain the mapping rule for a port when the name of the portKind is given
+ *
+ * @param portKindName
+ * the name of the port-kind
+ *
+ * @return the mapping rule or null, if no rule could be found
+ */
+ public static IMappingRule getMappingRule(String portKindName) {
+ IExtensionRegistry reg = Platform.getExtensionRegistry();
+ IConfigurationElement[] configElements = reg.getConfigurationElementsFor(Activator.PLUGIN_ID + "." + MAPPING_RULE_ID); //$NON-NLS-1$
+ for (IConfigurationElement configElement : configElements) {
+ try {
+ final String extPortKindName = configElement.getAttribute("portKindName"); //$NON-NLS-1$
+ if (extPortKindName.equals(portKindName)) {
+ final Object obj = configElement.createExecutableExtension("class"); //$NON-NLS-1$
+ if (obj instanceof IMappingRule) {
+ return (IMappingRule) obj;
+ }
+ }
+ } catch (CoreException exception) {
+ exception.printStackTrace();
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Get the mapping rule for a port
+ *
+ * @param port
+ * the FCM port
+ * @return the mapping rule or null, if no rule could be found
+ */
+ public static IMappingRule getMappingRule(final Port port) {
+ if (port.getBase_Port() == null) {
+ // should not happen, but can occur in case of corrupted XMI files
+ return null;
+ }
+ PortKind portKind = port.getKind();
+ if (portKind == null) {
+ return null;
+ }
+ if (portKind.getBase_Class() != null) {
+ String ruleName = portKind.isExtendedPort() ? "ExtendedPort" : portKind.getBase_Class().getName(); //$NON-NLS-1$
+ if (port instanceof TemplatePort) {
+ ruleName = "TemplatePort"; //$NON-NLS-1$
+ }
+ return getMappingRule(ruleName);
+ }
+ return null;
+ }
+
+ public static PortKind getBoundType(final Port port) {
+ if (port.getBase_Port() == null) {
+ // should not happen, but can occur in case of corrupted XMI files
+ return null;
+ } else {
+ String ruleName = "TemplatePort"; //$NON-NLS-1$
+ final IMappingRule mappingRule = getMappingRule(ruleName);
+ if (mappingRule instanceof ITemplateMappingRule) {
+ return ((ITemplateMappingRule) mappingRule).getBoundType(port);
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Update the derived interfaces of a port this operation needs to be
+ * called in the context of an update command (transaction).
+ *
+ * @param port
+ */
+ public static void update(final Port port) {
+ final IMappingRule mappingRule = getMappingRule(port);
+
+ if (mappingRule != null) {
+ Type type = mappingRule.calcDerivedType(port, true);
+ port.getBase_Port().setType(type);
+ if (mappingRule instanceof ITemplateMappingRule) {
+ ((ITemplateMappingRule) mappingRule).updateBinding(port);
+ }
+ }
+ }
+
+ /**
+ * Check whether a port needs to be updated, since its derived interfaces
+ * are either not existing or out of date.
+ *
+ * @param port
+ * @return
+ */
+ public static boolean needsUpdate(final Port port) {
+ final IMappingRule mappingRule = getMappingRule(port);
+ if (mappingRule != null) {
+ return mappingRule.needsUpdate(port);
+ }
+ return false;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/.classpath b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/.classpath
new file mode 100644
index 00000000000..098194ca4b7
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/.project b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/.project
new file mode 100644
index 00000000000..65c53f6af96
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/.project
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.qompass.designer.core</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.acceleo.ide.ui.acceleoBuilder</name>
+ <arguments>
+ <dictionary>
+ <key>compilation.kind</key>
+ <value>compilation.absolute.path</value>
+ </dictionary>
+ <dictionary>
+ <key>compliance</key>
+ <value>pragmatic</value>
+ </dictionary>
+ <dictionary>
+ <key>resource.kind</key>
+ <value>xmi</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.acceleo.ide.ui.acceleoNature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/.settings/org.eclipse.jdt.core.prefs b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..f42de363afa
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/META-INF/MANIFEST.MF b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..9228e09c908
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/META-INF/MANIFEST.MF
@@ -0,0 +1,47 @@
+Manifest-Version: 1.0
+Export-Package: org.eclipse.papyrus.qompass.designer.core,
+ org.eclipse.papyrus.qompass.designer.core.commands,
+ org.eclipse.papyrus.qompass.designer.core.deployment,
+ org.eclipse.papyrus.qompass.designer.core.extensions,
+ org.eclipse.papyrus.qompass.designer.core.generate,
+ org.eclipse.papyrus.qompass.designer.core.listeners,
+ org.eclipse.papyrus.qompass.designer.core.preferences,
+ org.eclipse.papyrus.qompass.designer.core.sync,
+ org.eclipse.papyrus.qompass.designer.core.templates,
+ org.eclipse.papyrus.qompass.designer.core.transformations,
+ org.eclipse.papyrus.qompass.designer.core.transformations.connector,
+ org.eclipse.papyrus.qompass.designer.core.transformations.container,
+ org.eclipse.papyrus.qompass.designer.core.transformations.filters
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore,
+ org.eclipse.uml2.uml,
+ org.eclipse.ui.ide,
+ org.eclipse.core.resources,
+ org.eclipse.papyrus.fcm.profile;bundle-version="1.2.0",
+ org.eclipse.papyrus.marte.static.profile;bundle-version="1.2.0",
+ org.eclipse.papyrus.qompass.designer.vsl;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.modelexplorer.widgets;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.tools;bundle-version="1.2.0",
+ org.eclipse.acceleo.engine;bundle-version="3.1.0",
+ org.eclipse.papyrus.cpp.profile;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.core;bundle-version="1.2.0",
+ org.eclipse.gmf.runtime.common.core;bundle-version="1.7.0",
+ org.eclipse.gmf.runtime.emf.commands.core;bundle-version="1.4.0",
+ org.eclipse.papyrus.infra.widgets;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.emf;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.services.labelprovider;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.tools.utils;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.widgets.toolbox;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.core.log;bundle-version="1.2.0",
+ org.eclipse.ui,
+ org.eclipse.papyrus.codegen.extensionpoints;bundle-version="1.2.0",
+ org.eclipse.uml2.uml.profile.standard;bundle-version="1.0.100"
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-Version: 1.2.0.qualifier
+Bundle-Localization: plugin
+Bundle-Name: %pluginName
+Bundle-Activator: org.eclipse.papyrus.qompass.designer.core.Activator
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.qompass.designer.core;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.7
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/about.html b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/about.html
new file mode 100644
index 00000000000..209103075a7
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>November 14, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/about.properties b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/about.properties
new file mode 100644
index 00000000000..c06246d0761
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/about.properties
@@ -0,0 +1,12 @@
+# about.properties
+# contains externalized strings for about.ini
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# fill-ins are supplied by about.mappings
+# This file should be translated.
+
+featureText=Qompass \n\
+\n\
+Copyright (c) 2010 CEA LIST
+\n\
+Qompass is a component oriented model based on the connector and container patterns. The implementation produces executable
+models a user model and a set of imported model libraries. \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/build.acceleo b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/build.acceleo
new file mode 100644
index 00000000000..f1dfcddd5ce
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/build.acceleo
@@ -0,0 +1,26 @@
+<!-- ===================================================================== -->
+<!-- Custom targets. -->
+<!-- Set customBuildCallbacks = build.acceleo in your build.properties. -->
+<!-- ===================================================================== -->
+<project name="Build Acceleo Module" default="noDefault">
+ <!-- ================================================================= -->
+ <!-- Default target -->
+ <!-- ================================================================= -->
+ <target name="noDefault">
+ <echo message="This file must be called with explicit targets" />
+ </target>
+
+ <!-- ================================================================= -->
+ <!-- This will be called automatically after the compilation of each -->
+ <!-- Bundle... in dependency order. -->
+ <!-- ================================================================= -->
+ <target name="post.compile.@dot">
+ <acceleoCompiler
+ sourceFolder="${target.folder}"
+ outputFolder="${target.folder}"
+ dependencies="${target.folder}/../../org.eclipse.papyrus.fcm.profile;${target.folder}/../../org.eclipse.papyrus.qompass.designer.vsl;${target.folder}/../../org.eclipse.papyrus.cpp.profile;${target.folder}/../../org.eclipse.papyrus.infra.widgets;${target.folder}/../../org.eclipse.papyrus.acceleo;${target.folder}/../../org.eclipse.papyrus.uml.tools.utils;${target.folder}/../../org.eclipse.papyrus.codegen.extensionpoints;"
+ binaryResource="false"
+ packagesToRegister="">
+ </acceleoCompiler>
+ </target>
+</project>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/build.properties b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/build.properties
new file mode 100644
index 00000000000..064ad77eb48
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/build.properties
@@ -0,0 +1,12 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ about.properties,\
+ build.acceleo,\
+ about.html,\
+ plugin.properties,\
+ schema/
+customBuildCallbacks = build.acceleo
+src.includes = about.html
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/plugin.properties b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/plugin.properties
new file mode 100644
index 00000000000..25c07e8c396
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/plugin.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2013 CEA LIST.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# CEA LIST - initial API and implementation
+###############################################################################
+pluginName=Papyrus extra: Qompass Designer core (Incubation)
+providerName=Eclipse Modeling Project
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/plugin.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/plugin.xml
new file mode 100644
index 00000000000..48a64c5147e
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/plugin.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+ <extension-point id="instanceConfig" name="instanceConfigName" schema="schema/instanceConfig.exsd"/>
+ <extension-point id="externalGenerator" name="externalGenerator" schema="schema/externalGenerator.exsd"/>
+ <extension-point id="ooTransformation" name="ooTransformation" schema="schema/ooTransformation.exsd"/>
+ <extension-point id="xtendGenerator" name="xtendGeneratorName" schema="schema/xtendGenerator.exsd"/>
+ <extension
+ point="org.eclipse.papyrus.infra.core.modelListener">
+ <listener
+ name="Qompass.modelListener"
+ realization="org.eclipse.papyrus.qompass.designer.core.listeners.ModelListener">
+ </listener>
+ </extension>
+ </plugin>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/pom.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/pom.xml
new file mode 100644
index 00000000000..b567a2458a0
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.qompass.designer.core</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/schema/externalGenerator.exsd b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/schema/externalGenerator.exsd
new file mode 100644
index 00000000000..f91f9c1ce35
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/schema/externalGenerator.exsd
@@ -0,0 +1,109 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.papyrus.qompass.designer.core" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.papyrus.qompass.designer.core" id="externalGenerator" name="externalGenerator"/>
+ </appInfo>
+ <documentation>
+ [Enter description of this extension point.]
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appInfo>
+ <meta.element />
+ </appInfo>
+ </annotation>
+ <complexType>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element ref="client"/>
+ </choice>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="client">
+ <complexType>
+ <attribute name="generatorID" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn=":org.eclipse.papyrus.qompass.designer.core.extensions.IExternalGenerator"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ [Enter the first release in which this extension point appears.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ [Enter extension point usage example here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiinfo"/>
+ </appInfo>
+ <documentation>
+ [Enter API information here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ [Enter information about supplied implementation of this extension point.]
+ </documentation>
+ </annotation>
+
+
+</schema>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/schema/instanceConfig.exsd b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/schema/instanceConfig.exsd
new file mode 100644
index 00000000000..9ebd4f01529
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/schema/instanceConfig.exsd
@@ -0,0 +1,109 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.papyrus.qompass.designer.core" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.papyrus.qompass.designer.core" id="instanceConfig" name="instanceConfigName"/>
+ </appInfo>
+ <documentation>
+ [Enter description of this extension point.]
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appInfo>
+ <meta.element />
+ </appInfo>
+ </annotation>
+ <complexType>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element ref="client"/>
+ </choice>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="client">
+ <complexType>
+ <attribute name="configuratorID" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn=":org.eclipse.papyrus.qompass.designer.core.extensions.IInstanceConfigurator"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ [Enter the first release in which this extension point appears.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ [Enter extension point usage example here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiinfo"/>
+ </appInfo>
+ <documentation>
+ [Enter API information here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ [Enter information about supplied implementation of this extension point.]
+ </documentation>
+ </annotation>
+
+
+</schema>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/schema/language.exsd b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/schema/language.exsd
new file mode 100644
index 00000000000..9e7e950f59b
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/schema/language.exsd
@@ -0,0 +1,109 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.papyrus.qompass.designer.core" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.papyrus.qompass.designer.core" id="language" name="languageSupport"/>
+ </appInfo>
+ <documentation>
+ [Enter description of this extension point.]
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appInfo>
+ <meta.element />
+ </appInfo>
+ </annotation>
+ <complexType>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element ref="client"/>
+ </choice>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="client">
+ <complexType>
+ <attribute name="language" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn=":org.eclipse.papyrus.qompass.designer.core.ILangSupport"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ [Enter the first release in which this extension point appears.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ [Enter extension point usage example here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiinfo"/>
+ </appInfo>
+ <documentation>
+ [Enter API information here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ [Enter information about supplied implementation of this extension point.]
+ </documentation>
+ </annotation>
+
+
+</schema>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/schema/ooTransformation.exsd b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/schema/ooTransformation.exsd
new file mode 100644
index 00000000000..ade738bcc04
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/schema/ooTransformation.exsd
@@ -0,0 +1,109 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.papyrus.qompass.designer.core" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.papyrus.qompass.designer.core" id="ooTransformation" name="ooTransformation"/>
+ </appInfo>
+ <documentation>
+ [Enter description of this extension point.]
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appInfo>
+ <meta.element />
+ </appInfo>
+ </annotation>
+ <complexType>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element ref="client"/>
+ </choice>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="client">
+ <complexType>
+ <attribute name="ooTrafoID" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn=":org.eclipse.papyrus.qompass.designer.core.extensions.IOOTrafo"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ [Enter the first release in which this extension point appears.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ [Enter extension point usage example here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiinfo"/>
+ </appInfo>
+ <documentation>
+ [Enter API information here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ [Enter information about supplied implementation of this extension point.]
+ </documentation>
+ </annotation>
+
+
+</schema>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/schema/xtendGenerator.exsd b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/schema/xtendGenerator.exsd
new file mode 100644
index 00000000000..33e2446c5f2
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/schema/xtendGenerator.exsd
@@ -0,0 +1,109 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.papyrus.qompass.designer.core" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.papyrus.qompass.designer.core" id="xtendGenerator" name="xtendGeneratorName"/>
+ </appInfo>
+ <documentation>
+ [Enter description of this extension point.]
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appInfo>
+ <meta.element />
+ </appInfo>
+ </annotation>
+ <complexType>
+ <sequence minOccurs="1" maxOccurs="unbounded">
+ <element ref="client"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="client">
+ <complexType>
+ <attribute name="templateID" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn=":org.eclipse.papyrus.qompass.designer.core.extensions.IXtend"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ [Enter the first release in which this extension point appears.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ [Enter extension point usage example here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiinfo"/>
+ </appInfo>
+ <documentation>
+ [Enter API information here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ [Enter information about supplied implementation of this extension point.]
+ </documentation>
+ </annotation>
+
+
+</schema>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/Activator.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/Activator.java
new file mode 100644
index 00000000000..faee3a17083
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/Activator.java
@@ -0,0 +1,60 @@
+package org.eclipse.papyrus.qompass.designer.core;
+
+import org.eclipse.papyrus.infra.core.log.LogHelper;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.qompass.designer.core"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ public static LogHelper log;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+
+ // register the login helper
+ log = new LogHelper(plugin);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/CORBAtypeNames.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/CORBAtypeNames.java
new file mode 100644
index 00000000000..641fb676985
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/CORBAtypeNames.java
@@ -0,0 +1,23 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core;
+
+public class CORBAtypeNames {
+ public static final String Octet = "corba::Octet"; //$NON-NLS-1$
+ public static final String Long = "corba::Long"; //$NON-NLS-1$
+ public static final String UnsignedLong = "corba::UnsignedLong"; //$NON-NLS-1$
+ public static final String Short = "corba::Short"; //$NON-NLS-1$
+ public static final String UnsignedShort = "corba::UnsignedShort"; //$NON-NLS-1$
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/CommandSupport.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/CommandSupport.java
new file mode 100644
index 00000000000..1ec058df103
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/CommandSupport.java
@@ -0,0 +1,118 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core;
+
+import java.util.Collections;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.operations.IOperationHistory;
+import org.eclipse.core.commands.operations.IUndoableOperation;
+import org.eclipse.core.commands.operations.OperationHistoryFactory;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.emf.utils.ServiceUtilsForHandlers;
+
+/**
+ * Utility function. Allow execution of commands on a transactional command stack
+ *
+ * @author ansgar
+ *
+ */
+public class CommandSupport {
+
+ /**
+ * Execute the passed Runnable within a command
+ *
+ * @param label
+ * @param command
+ */
+ public static void exec(String label, ExecutionEvent event, final Runnable command) {
+ ServiceUtilsForHandlers serviceUtils = ServiceUtilsForHandlers.getInstance();
+ try {
+ exec(serviceUtils.getTransactionalEditingDomain(event), label, command);
+ } catch (ServiceException e) {
+ Log.log(IStatus.ERROR, Log.UTILS, Messages.CommandSupport_NoEditingDomain, e);
+ }
+ }
+
+ /**
+ * Execute the passed Runnable with result within a command
+ *
+ * @param label
+ * @param command
+ */
+ public static void exec(String label, ExecutionEvent event, final RunnableWithResult command) {
+ // ServiceUtilsForActionHandlers serviceUtils = ServiceUtilsForActionHandlers.getInstance();
+ ServiceUtilsForHandlers serviceUtils = ServiceUtilsForHandlers.getInstance();
+ IOperationHistory history = OperationHistoryFactory.getOperationHistory();
+ try {
+ history.execute(new AbstractTransactionalCommand(serviceUtils.getTransactionalEditingDomain(event),
+ label, Collections.EMPTY_LIST) {
+
+ @Override
+ public CommandResult doExecuteWithResult(IProgressMonitor dummy, IAdaptable info) {
+ return command.run();
+ }
+ }, null, null);
+ } catch (ExecutionException e) {
+ Log.log(IStatus.ERROR, Log.UTILS, Messages.CommandSupport_ErrorDuringCmdExec, e);
+ } catch (ServiceException e) {
+ Log.log(IStatus.ERROR, Log.UTILS, Messages.CommandSupport_NoEditingDomain, e);
+ }
+ }
+
+ /**
+ * Execute the passed Runnable within a command
+ *
+ * @param label
+ * @param command
+ */
+ public static void exec(TransactionalEditingDomain domain, String label, final Runnable command) {
+ if (domain == null) {
+ command.run();
+ }
+ else {
+ IOperationHistory history = OperationHistoryFactory.getOperationHistory();
+ try {
+ history.execute(new AbstractTransactionalCommand(domain, label, Collections.EMPTY_LIST) {
+
+ @Override
+ public CommandResult doExecuteWithResult(IProgressMonitor dummy, IAdaptable info) {
+ command.run();
+ return CommandResult.newOKCommandResult();
+ }
+ }, null, null);
+ } catch (ExecutionException e) {
+ Activator.log.error(e);
+ }
+ }
+ }
+
+ public static void exec(IUndoableOperation command) {
+ IOperationHistory history = OperationHistoryFactory.getOperationHistory();
+ try {
+ history.execute(command, new NullProgressMonitor(), null);
+ } catch (ExecutionException e) {
+ Activator.log.error(e);
+ }
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/ConfigUtils.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/ConfigUtils.java
new file mode 100644
index 00000000000..ccd34b07609
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/ConfigUtils.java
@@ -0,0 +1,93 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.FCM.ConfigurationProperty;
+import org.eclipse.papyrus.FCM.ContainerRule;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Type;
+
+public class ConfigUtils {
+
+ /**
+ * Get the configuration properties of a class
+ *
+ * @param component
+ * @return
+ */
+ public static EList<Property> getConfigAttributes(Classifier component) {
+
+ EList<Property> list = new BasicEList<Property>();
+
+ for (Property part : component.getAllAttributes()) {
+ if (part instanceof Port) {
+ continue;
+ }
+ Element owner = part.getOwner();
+
+ if (Utils.allAttributesAreConfigAttributs()) {
+ // return all attributes
+ list.add(part);
+ }
+ // add all attributes of component types
+ else if (owner instanceof Class && Utils.isCompType((Class) owner)) {
+ list.add(part);
+ }
+ // otherwise add only attributes tagged as configuration properties
+ else if (StereotypeUtil.isApplied(part, ConfigurationProperty.class)) {
+ list.add(part);
+ }
+ }
+ return list;
+ }
+
+ /**
+ * Get the configuration attributes behind a container rule
+ * TODO: rule might not be active - should we still configure it??
+ *
+ * @param aRule
+ * @return
+ * @throws TransformationException
+ */
+ public static EList<Property> getConfigAttributes(ContainerRule rule) throws TransformationException {
+ EList<Property> list = new BasicEList<Property>();
+ Class composite = rule.getBase_Class(); // a rule should always have a base class, unless malformed
+ if (composite == null) {
+ throw new TransformationException(Messages.ConfigUtils_RuleWithoutBaseClass);
+ }
+ for (Property part : composite.getAttributes()) {
+ if (part instanceof Port) {
+ continue;
+ }
+ Type type = part.getType();
+ if (StereotypeUtil.isApplied(part, ConfigurationProperty.class)) {
+ list.add(part);
+ }
+ if (type instanceof Class) {
+ list.addAll(getConfigAttributes((Class) type));
+ }
+ }
+
+ return list;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/CreationUtils.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/CreationUtils.java
new file mode 100644
index 00000000000..517d8822117
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/CreationUtils.java
@@ -0,0 +1,81 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Namespace;
+import org.eclipse.uml2.uml.Package;
+
+public class CreationUtils {
+
+ /**
+ * This function returns a Package reference that corresponds to a qualified name.
+ * Packages are created, if not existing yet - the function is thus a bit similar to
+ * the unix mkdir -p command. Note that the main model within the list of name-spaces is
+ * ignored, in order to avoid that a sub-package within a model starts with the name
+ * of the model.
+ *
+ * Caveat: imported elements must be checked beforehand. In case of a package import,
+ * getMembers (and getImportedMembers) will not return the name of the imported model
+ * but the elements (directly) owned by the imported model.
+ * Example: getMember ("BasicTypes") will return null whereas getMember ("CORBA")
+ * returns a package (CORBA is a package within the model library BasicTypes)
+ *
+ * @param model
+ * a model
+ * @param list
+ * a list of namespace elements (as can be obtained via allNamespaces),
+ * the top-level element is the last within the list.
+ * @param skipTop
+ * if true, skip top level namespace element
+ * @return
+ */
+ public static Package getAndCreate(Package root, EList<Namespace> list, boolean skipTop) {
+ int offset = (skipTop ? 2 : 1);
+ for (int i = list.size() - offset; i >= 0; i--) {
+ Namespace ns = list.get(i);
+ Log.log(IStatus.INFO, Log.UTILS, "getAndCreate:" + ns.getName()); //$NON-NLS-1$
+
+ NamedElement pkg = root.getOwnedMember(ns.getName());
+ if (pkg == null) {
+ // package does not exist => create it.
+ pkg = root.createNestedPackage(ns.getName());
+ LazyCopier.copyID(ns, pkg);
+ // copy stereotype to create package
+ StUtils.copyStereotypes(ns, pkg);
+ }
+ if (!(pkg instanceof Package)) {
+ break;
+ }
+ root = (Package) pkg;
+ }
+ return root;
+ }
+
+ public static Package getAndCreate(Package root, EList<Namespace> list) {
+ return getAndCreate(root, list, true);
+ }
+
+ public static Package getAndCreate(Package root, String name) {
+ NamedElement pkg = root.getMember(name);
+ if (pkg == null) {
+ pkg = root.createNestedPackage(name);
+ }
+ return (Package) pkg;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/Description.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/Description.java
new file mode 100644
index 00000000000..58868c69112
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/Description.java
@@ -0,0 +1,83 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core;
+
+import org.eclipse.uml2.uml.Comment;
+import org.eclipse.uml2.uml.Element;
+
+public class Description {
+
+ /**
+ * Return a description of an element. By default search comments that are
+ * owned by this elements owner (e.g. the class, if we search for a description of a property or the owning package,
+ * if we search for a description of a class)
+ *
+ * @param element
+ * the element for which to obtain a description
+ * @return the description of the element
+ */
+ public static String getDescription(Element element) {
+ return getDescription(element.getOwner(), element);
+ }
+
+ /**
+ * Convenience function: Return a description of an element. It will delegate to
+ * default getDescription, but returns a user specified text, if a description is
+ * not available in the model.
+ *
+ * @param element
+ * @param unavailable
+ * The text that is return, if no description is available
+ * @return
+ */
+ public static String getDescription(Element element, String unavailable) {
+ String description = getDescription(element);
+ if (description != null) {
+ return description;
+ }
+ else {
+ return unavailable;
+ }
+ }
+
+ /**
+ * Return a description or implementation description of an element, i.e. the
+ * first owned comment that annotated the passed element
+ *
+ * @param the
+ * owner of the comment
+ * the element for which to obtain a description
+ * @param annotated
+ * element
+ * the element for which to obtain a description
+ * @return the description of the element
+ */
+ public static String getDescription(Element owner, Element annotatedElement) {
+ if (owner == null) {
+ return null;
+ }
+ // loop over all owned comments, check those that begins with
+ // "description"
+ for (Comment comment : owner.getOwnedComments()) {
+ // identify "right" comment via annotated element ref (to a specific
+ // class of the BasicCalls library) instead?
+ if (comment.getAnnotatedElements().contains(annotatedElement)) {
+ return comment.getBody();
+ }
+
+ }
+ return Messages.Description_NoAvail;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/ElementFilter.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/ElementFilter.java
new file mode 100644
index 00000000000..297433c35a6
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/ElementFilter.java
@@ -0,0 +1,7 @@
+package org.eclipse.papyrus.qompass.designer.core;
+
+import org.eclipse.uml2.uml.Element;
+
+public interface ElementFilter {
+ public boolean acceptElement(Element element);
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/EnumService.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/EnumService.java
new file mode 100644
index 00000000000..0062ec0809f
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/EnumService.java
@@ -0,0 +1,151 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationContext;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Dependency;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Enumeration;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.UMLPackage;
+
+
+/**
+ * Manage enumerations within Acceleo code
+ */
+public class EnumService {
+
+ private static final String GLOBALENUMS = "globalenums"; //$NON-NLS-1$
+
+ public static void init() {
+ enumHash.clear();
+ }
+
+ /**
+ * Return qualified name of enum package which is used to prefix enumerations (namespace)
+ *
+ * @param dummy
+ * @return
+ */
+ public static String enumSvcPrefix() {
+ return enumPkg.getQualifiedName();
+ }
+
+ public static String literalKey(Element dummy, String enumName, String literalKey) {
+ String prefix = "ID_"; //$NON-NLS-1$
+ String literal = ""; //$NON-NLS-1$
+ if (literalKey.equals("Port")) { //$NON-NLS-1$
+ literal = prefix + TransformationContext.port.getName();
+ }
+ else if (literalKey.equals("Formal")) { //$NON-NLS-1$
+ literal = prefix + TransformationContext.formalParameter.getName();
+ }
+ else if (literalKey.equals("Instance")) { //$NON-NLS-1$
+ literal = prefix + TransformationContext.instance.getName();
+ }
+ else if (literalKey.equals("Interface")) { //$NON-NLS-1$
+ literal = prefix + TransformationContext.classifier.getName();
+ }
+ return literal(enumName, literal);
+ }
+
+ public static String quoteLiteral(Element dummy, String enumName, String literal) {
+ return Utils.quoteString(literal(enumName, literal));
+ }
+
+ /**
+ * Create a literal within an enumeration. Both, the literal and the enumeration may be an
+ * Acceleo template. If the name of the enumeration starts with "L", it is considered as a
+ * local enumeration, i.e. a nested classifier within the classifier (it has to be a class)
+ * from the transformation context.
+ *
+ * @param enumName
+ * the name of an enumeration
+ * @param literal
+ * the name of a literal within that enumeration.
+ * @return
+ */
+ public static String literal(String enumName, String literal) {
+ Enumeration enumeration = enumHash.get(enumName);
+ if (enumPkg == null) {
+ return literal;
+ }
+ if (enumeration == null) {
+ if (enumName.startsWith("L")) { //$NON-NLS-1$
+ // magic prefix for class local
+ enumeration = (Enumeration)
+ ((Class) TransformationContext.classifier).createNestedClassifier(enumName, UMLPackage.eINSTANCE.getEnumeration());
+ }
+ else {
+ enumeration = enumPkg.createOwnedEnumeration(enumName);
+ }
+ enumHash.put(enumName, enumeration);
+ }
+ if (enumeration.getOwnedLiteral(literal) == null) {
+ enumeration.createOwnedLiteral(literal);
+ }
+ // declare a dependency to the enumeration from the current classifier
+ checkAndCreateDependency(TransformationContext.classifier, enumeration);
+
+ if (enumName.startsWith("L")) { //$NON-NLS-1$
+ return literal;
+ }
+ else {
+ return GLOBALENUMS + "::" + literal; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * Create a dependency between the passed classifier, target pair. The objective
+ * of this function is that code generators do the necessary to assure that the
+ * target is known within the classifier (e.g. include directives)
+ *
+ * @param classifier
+ * a classifier
+ * @param target
+ * a target, on which the classifier or its code depends.
+ */
+ public static void checkAndCreateDependency(Classifier classifier, NamedElement target) {
+ boolean found = false;
+ for (Dependency dep : classifier.getClientDependencies()) {
+ if (dep.getSuppliers().contains(target)) {
+ found = true;
+ }
+ }
+ if (!found) {
+ Dependency dep = classifier.createDependency(target);
+ dep.setName(String.format("from %s to %s", classifier.getName(), target.getName())); //$NON-NLS-1$
+ }
+ }
+
+ public static void createEnumPackage(Package root) {
+ init();
+ enumPkg = root.createNestedPackage(GLOBALENUMS);
+ }
+
+ public static Package enumPkg;
+
+ public static void createEnums() {
+
+ }
+
+ private static Map<String, Enumeration> enumHash = new HashMap<String, Enumeration>();
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/Log.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/Log.java
new file mode 100644
index 00000000000..27777c02ea8
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/Log.java
@@ -0,0 +1,99 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+
+/**
+ * Very simple message logging class
+ *
+ * @author ansgar
+ *
+ */
+public class Log {
+
+ public static final int TRAFO_CONNECTOR = 1;
+
+ public static final int TRAFO_CONTAINER = 2;
+
+ public static final int TRAFO_COPY = 4;
+
+ public static final int TRAFO_SYNC = 8;
+
+ public static final int TEMPLATE_BINDING = 0x10;
+
+ public static final int TEMPLATE_INSTANTIATION = 0x20;
+
+ public static final int DEPLOYMENT = 0x40;
+
+ public static final int DIALOGS = 0x80;
+
+ public static final int UTILS = 0x100;
+
+ public static final int CODEGEN = 0x200;
+
+ public static final int CALC_PORTKIND = 0x400;
+
+ static Map<Integer, String> moduleMap;
+
+ static String getModuleInfo(int moduleKind) {
+ if (moduleMap == null) {
+ moduleMap = new HashMap<Integer, String>();
+ moduleMap.put(TRAFO_CONNECTOR, "Trafo connector"); //$NON-NLS-1$
+ moduleMap.put(TRAFO_CONTAINER, "Trafo container"); //$NON-NLS-1$
+ moduleMap.put(TRAFO_COPY, "Trafo copy"); //$NON-NLS-1$
+ moduleMap.put(TRAFO_SYNC, "Synchronization"); //$NON-NLS-1$
+ moduleMap.put(TEMPLATE_BINDING, "Template binding"); //$NON-NLS-1$
+ moduleMap.put(TEMPLATE_INSTANTIATION, "Template instantiation"); //$NON-NLS-1$
+ moduleMap.put(DEPLOYMENT, "Template binding"); //$NON-NLS-1$
+ moduleMap.put(DIALOGS, "Qompass dialogs"); //$NON-NLS-1$
+ moduleMap.put(UTILS, "Utils"); //$NON-NLS-1$
+ moduleMap.put(CODEGEN, "Code generation"); //$NON-NLS-1$
+ moduleMap.put(CALC_PORTKIND, "Calculate portkind"); //$NON-NLS-1$
+ }
+ return "Module " + moduleMap.get(moduleKind) + ": "; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ public static void log(int msgKind, int moduleKind, String message) {
+ if (msgKind == IStatus.INFO) {
+ // only show info messages that match a filter criterion
+ if ((moduleKind & moduleFilter) != 0) {
+ Activator.getDefault().getLog().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, message));
+ }
+ }
+ else {
+ Activator.getDefault().getLog().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, message));
+ }
+ }
+
+ public static void log(int msgKind, int moduleKind, String message, Exception exception) {
+ if (msgKind == IStatus.INFO) {
+ // only show info messages that match a filter criterion
+ if ((moduleKind & moduleFilter) != 0) {
+ Activator.getDefault().getLog().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, exception.getMessage(), exception));
+ }
+ }
+ else {
+ Activator.getDefault().getLog().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, exception.getMessage(), exception));
+ }
+ }
+
+ // TODO: make it a configuration property
+ static int moduleFilter = 0;
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/Messages.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/Messages.java
new file mode 100644
index 00000000000..645e06be789
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/Messages.java
@@ -0,0 +1,128 @@
+package org.eclipse.papyrus.qompass.designer.core;
+
+import org.eclipse.osgi.util.NLS;
+
+public class Messages extends NLS {
+ private static final String BUNDLE_NAME = "org.eclipse.papyrus.qompass.designer.core.messages"; //$NON-NLS-1$
+
+ public static String BootLoaderGen_AtLeastOneBlockingCall;
+
+ public static String BootLoaderGen_CannotApplyCppInclude;
+
+ public static String BootLoaderGen_CannotRetrieveTemplate;
+
+ public static String CommandSupport_NoEditingDomain;
+ public static String CommandSupport_ErrorDuringCmdExec;
+ public static String ConfigUtils_RuleWithoutBaseClass;
+ public static String DepCreation_SingletonExistsAlready;
+
+ public static String DepCreation_CannotFindImplementation;
+
+ public static String DepCreation_CircularReference;
+
+ public static String DepCreation_DefiningFeatureNull;
+
+ public static String DepCreation_FCMconnectorWithoutBaseClass;
+
+ public static String DepCreation_InfoCreateDepPlan;
+
+ public static String DepCreation_TypeInAttributeUndefined;
+
+ public static String Deploy_0;
+
+ public static String Description_NoAvail;
+
+ public static String LWContainerTrafo_CannotApplyRule;
+
+ public static String ConnectorBinding_CannotFindBinding;
+ public static String ConnectorBinding_CannotFindBindingForPort;
+ public static String ConnectorBinding_CannotFindConsistentBinding;
+ public static String ConnectorBinding_ConnectorsPort;
+ public static String ConnectorBinding_FormalAlreadyBound;
+ public static String ConnectorBinding_InfoActualReturnIntfIs;
+ public static String ConnectorBinding_InfoConnPortConnectedVia;
+ public static String ConnectorBinding_InfoConnectsPort;
+ public static String ConnectorBinding_InfoCreateBoundPackage;
+
+ public static String ConnectorBinding_InfoMatchOtherEnd;
+
+ public static String ConnectorBinding_InfoProvidedPortTypeMatches;
+ public static String ConnectorBinding_NoTemplateSignature;
+
+ public static String ConnectorReification_CannotFindMatchingPort;
+ public static String ConnectorReification_CouldNotBind;
+ public static String ConnectorReification_CouldNotConnectPort;
+ public static String ConnectorReification_CouldNotConnectPortOfType;
+ public static String ConnectorReification_InfoAddConnectorPart;
+ public static String ConnectorReification_InfoPortTypes;
+ public static String ConnectorReification_RequiresUseOfPorts;
+ public static String ConnectorReification_TemplateTypeNotClass;
+
+ public static String GenerateCode_CouldNotDeleteOldCode;
+ public static String GenerateCode_GeneratingCodeForNode;
+ public static String GenerateCode_GeneratingCode;
+
+ public static String TemplateUtils_InfoCreateBoundPackage;
+ public static String TemplateUtils_InfoGetActualFrom;
+ public static String TemplateUtils_NoTemplateSignature;
+
+ public static String TemplateInstantiation_TemplateIsNull;
+ public static String TemplateInstantiationListener_TrafoException;
+
+ public static String CompImplTrafos_CannotFindType;
+ public static String CompImplTrafos_IntfNotImplemented;
+ public static String CompTypeTrafos_CannotFindType;
+
+ public static String ContainerTrafo_CannotApplyRule;
+ public static String ContainerTrafo_CannotFindDelegationConn;
+ public static String ContainerTrafo_InterceptionRuleButNoInterceptor;
+
+ public static String ContainerTrafo_RecursiveLWnotSupported;
+
+ public static String InstanceConfigurator_InvalidPluginExtension;
+
+ public static String InstantiateDepPlan_AcceleoErrors;
+ public static String InstantiateDepPlan_AcceleoErrorsCheckLog;
+ public static String InstantiateDepPlan_CannotGenModel;
+ public static String InstantiateDepPlan_CheckInputImportPkg;
+ public static String InstantiateDepPlan_CheckInputImportPkgNoRes;
+ public static String InstantiateDepPlan_CheckInputModelProfile3;
+ public static String InstantiateDepPlan_CheckInputModelProfileNoRes;
+ public static String InstantiateDepPlan_CheckInputModelProfileNoResNoName;
+ public static String InstantiateDepPlan_ConsultConsole;
+ public static String InstantiateDepPlan_DepPlanStereotypeNotInitialized;
+ public static String InstantiateDepPlan_ErrorsDuringTransformation;
+ public static String InstantiateDepPlan_IllegalArgumentDuringCopy;
+ public static String InstantiateDepPlan_InfoApplyProfile;
+ public static String InstantiateDepPlan_InfoDeployingForNode;
+ public static String InstantiateDepPlan_InfoExpandingConnectors;
+ public static String InstantiateDepPlan_InfoGeneratingModel;
+ public static String InstantiateDepPlan_InfoImportPackage;
+ public static String InstantiateDepPlan_InfoNoneAllocated;
+ public static String InstantiateDepPlan_TransformationException;
+
+ public static String MainModelTrafo_ChangePartType;
+ public static String MainModelTrafo_NoDefiningFeature;
+ public static String MainModelTrafo_NoInstanceAssociated;
+
+ public static String CompImplSync_InfoSyncIntf;
+ public static String CompImplSync_InfoSyncViaImpl;
+ public static String CompImplSync_InfoSyncViaType;
+
+ public static String DepPlanUtils_CannotFindAttribute;
+ public static String DepPlanUtils_ConfigOfPropertyFailed;
+
+ public static String UpdateUtils_CannotApplyFCMstereo;
+
+ public static String XtendTemplateBinding_TemplateNotFound;
+
+ public static String XtendTemplateBinding_TemplateResultIsNotAString;
+
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ private Messages() {
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/ModelManagement.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/ModelManagement.java
new file mode 100644
index 00000000000..2971bbff614
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/ModelManagement.java
@@ -0,0 +1,174 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core;
+
+import java.io.IOException;
+import java.util.Iterator;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.uml2.common.util.UML2Util;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Model;
+import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.uml2.uml.UMLPackage;
+
+
+/**
+ * Manages a model (and the associated resource). Allows saving this model. It uses its own static resource set.
+ *
+ */
+public class ModelManagement {
+
+ /**
+ * Create a new model and associate it with a temporary
+ * resource
+ */
+ public ModelManagement() {
+ getResourceSet();
+ model = UMLFactory.eINSTANCE.createModel();
+ resource = resourceSet.createResource(URI.createURI("temp.uml")); //$NON-NLS-1$
+ resource.getContents().add(model);
+ }
+
+ public void dispose() {
+ if (model != null) {
+ model.destroy();
+ model = null;
+ }
+ resourceSet.getResources().remove(resource);
+ }
+
+ /**
+ * provide access to the model
+ * @return the model amanaged by this instance of model manager
+ */
+ public Model getModel() {
+ return model;
+ }
+
+ /**
+ * Save a model within the given project at a default location.
+ * This location is [model.name/].uml within the project root.
+ * @link ModelManagement.getPath
+ *
+ * @param project
+ * an existing project
+ */
+ public void saveModel(IProject project) {
+ saveModel(getPath(project, null, null));
+ }
+
+ /**
+ * Save the model within a given project, folder and postfix
+ * @param project
+ * @param modelFolder
+ * @param modelPostfix
+ */
+ public void saveModel(IProject project, String modelFolder, String modelPostfix) {
+ String path = this.getPath(project, modelFolder, this.getModel().getName() + modelPostfix);
+ this.saveModel(path);
+ }
+
+ /**
+ * Save a model using the passed path
+ *
+ * @param path A string representation of the path. It will be converted into a URI
+ */
+ public void saveModel(String path) {
+
+ try {
+ URI uri = URI.createURI(path);
+
+ ResourceSetImpl resourceSet = new ResourceSetImpl();
+ resourceSet.getPackageRegistry().put(UMLPackage.eNS_URI, UMLPackage.eINSTANCE);
+
+ resource.setURI(uri);
+ EList<EObject> contents = resource.getContents();
+
+ for (Iterator<EObject> allContents = UML2Util.getAllContents(model, true, false); allContents.hasNext();) {
+ EObject eObject = allContents.next();
+
+ if (eObject instanceof Element) {
+ contents.addAll(((Element) eObject).getStereotypeApplications());
+ }
+ }
+ resource.save(null);
+ }
+ catch (IOException e) {
+ Activator.log.error(e);
+ }
+ }
+
+ /**
+ * Return a path based on project, folder and file name
+ *
+ * @param project
+ * an existing project
+ * @param subFolder
+ * a subfolder within the project (will be created, if it does not exist)
+ * if null, the project will be saved in the root of the project
+ * @param filename
+ * the name of the file or null (in his case, the name of the
+ * model with the postfix .uml is used)
+ *
+ * @return The access path to a file
+ */
+ public String getPath(IProject project, String subFolder, String filename) {
+ IFile file;
+ if (filename == null) {
+ filename = model.getName() + ".uml"; //$NON-NLS-1$
+ }
+ if (subFolder != null) {
+ IFolder ifolder = project.getFolder(subFolder);
+ if (!ifolder.exists()) {
+ try {
+ ifolder.create(false, true, null);
+ } catch (CoreException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ file = ifolder.getFile(filename);
+ } else {
+ file = project.getFile(filename);
+ }
+ return file.getFullPath().toString();
+ }
+
+ /**
+ * return the used resource set (a singleton)
+ */
+ public static ResourceSet getResourceSet() {
+ if (resourceSet == null) {
+ resourceSet = new ResourceSetImpl();
+ }
+ return resourceSet;
+ }
+
+ private static ResourceSet resourceSet = null;
+
+ private Model model;
+
+ private Resource resource;
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/OperationUtils.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/OperationUtils.java
new file mode 100644
index 00000000000..cdd17f48716
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/OperationUtils.java
@@ -0,0 +1,166 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core;
+
+import java.util.Iterator;
+
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.Type;
+
+public class OperationUtils {
+
+ /**
+ * Search an identical operation within a class.
+ * This function is useful to identify (and synchronize) operations.
+ *
+ * @param op
+ * The operation that should be compared.
+ * @param owner
+ * @return
+ */
+ public static Operation getSameOperation(Operation op, Class owner) {
+ for (Operation ownedOp : owner.getOwnedOperations()) {
+ if (isSameOperation(op, ownedOp)) {
+ return ownedOp;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns true, if two operations are identical.
+ * An operation is considered identical, if the operation name as well as all
+ * parameter names and types are equal. Type equality is checked via names only, to
+ * avoid that identical types within a source and a copy model would yield false.
+ *
+ * @param op1
+ * first operation
+ * @param op2
+ * second operation
+ * @return true, if operations are identical
+ */
+ public static boolean isSameOperation(Operation op1, Operation op2) {
+ return isSameOperation(op1, op2, true);
+ }
+
+
+ /**
+ * Returns true, if two operations are identical with optional name check.
+ * An operation is considered identical, if the operation name (optional) as well as all
+ * parameter names and types are equal. Type equality is checked via names only, to
+ * avoid that identical types within a source and a copy model would yield false.
+ *
+ * @param op1
+ * first operation
+ * @param op2
+ * second operation
+ * @param checkName
+ * if true, require that operation names are identical
+ * @return true, if operations are identical
+ */
+ public static boolean isSameOperation(Operation op1, Operation op2, boolean checkName) {
+
+ if (checkName) {
+ String op1Name = op1.getName();
+ String op2Name = op2.getName();
+ // one of the names might be null
+ if (op1Name == null) {
+ if (op2Name != null) {
+ return false;
+ }
+ } else if (!op1Name.equals(op2Name)) {
+ return false;
+ }
+ }
+ Iterator<Parameter> parameters1 = op1.getOwnedParameters().iterator();
+ Iterator<Parameter> parameters2 = op2.getOwnedParameters().iterator();
+ while (parameters1.hasNext() && parameters2.hasNext()) {
+ Parameter parameter1 = parameters1.next();
+ Parameter parameter2 = parameters2.next();
+ String par1Name = parameter1.getName();
+ Type par1Type = parameter1.getType();
+ String par2Name = parameter2.getName();
+ Type par2Type = parameter2.getType();
+
+ // one of the names might be null
+ if (par1Name == null) {
+ if (par2Name != null) {
+ return false;
+ }
+ } else if (!par1Name.equals(par2Name)) {
+ return false;
+ }
+ if ((par1Type != null) && (par2Type != null)) {
+ // the names might be null. Return false, if only one of these is set
+ if (par1Type.getName() == null) {
+ if (par2Type.getName() != null) {
+ return false;
+ }
+ }
+ else if (!par1Type.getName().equals(par2Type.getName())) {
+ return false;
+ }
+ } else if (par1Type != par2Type) {
+ // at least one of the two must be null due to earlier check
+ // return false, if they are different, i.e. not both null
+ return false;
+ }
+ if ((parameter1.getUpper() != parameter2.getUpper()) ||
+ (parameter1.getLower() != parameter2.getLower())) {
+ return false;
+ }
+ }
+ // true, if operations have same number of parameters
+ return (parameters1.hasNext() == parameters2.hasNext());
+ }
+
+
+ /**
+ * synchronize source and target operation
+ * (remove all parameters, copy afterwards)
+ *
+ * @param sourceOp
+ * the source operation
+ * @param targetOp
+ * the target operation
+ * @param newRoot
+ * a new root package (e.g. another model). Ensure that types referenced by the
+ * parameter exist within this root package (copy, if not). Null indicates that no copying
+ * should be done.
+ * @return
+ */
+ public static void syncOperation(Operation sourceOp, Operation targetOp) {
+ if (targetOp != null) {
+ LazyCopier.copyFeatureModifiers(sourceOp, targetOp);
+ // ordered and unique are derived from ret-parameter
+ targetOp.setIsQuery(sourceOp.isQuery());
+ targetOp.setIsAbstract(sourceOp.isAbstract());
+ targetOp.setName(sourceOp.getName());
+ targetOp.getOwnedParameters().clear();
+ for (Parameter parameter : sourceOp.getOwnedParameters()) {
+ Type type = parameter.getType();
+ Parameter newParameter =
+ targetOp.createOwnedParameter(parameter.getLabel(), type);
+ newParameter.setDirection(parameter.getDirection());
+ LazyCopier.copyMultElemModifiers(parameter, newParameter);
+ StUtils.copyStereotypes(parameter, newParameter);
+ }
+ }
+ StUtils.copyStereotypes(sourceOp, targetOp);
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/PortInfo.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/PortInfo.java
new file mode 100644
index 00000000000..ad70a8b6ce0
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/PortInfo.java
@@ -0,0 +1,139 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core;
+
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Port;
+
+/**
+ * Information about a port that might belong to an extended port
+ * It provides information about that port while taking the (optional) parent
+ * port into account
+ */
+public class PortInfo {
+ /**
+ * Create a new portInfo.
+ *
+ * @param port
+ * @param parentPort
+ * optional parent port (null, if no parent port exist, i.e. if this is not an extended port)
+ */
+ public PortInfo(Port port, Port parentPort) {
+ this.port = port;
+ this.parentPort = parentPort;
+ }
+
+ /**
+ * Create a new port info for a combination of Port and sub-port. Compared to the constructor,
+ * the order of sub and parent port is inverted. The function is useful, if the sub-port is optional
+ *
+ * @param port
+ * a port
+ * @param subPort
+ * an optional supPort.
+ * @return
+ */
+ public static PortInfo fromSubPort(Port port, Port subPort) {
+ if (subPort != null) {
+ return new PortInfo(subPort, port);
+ }
+ else {
+ return new PortInfo(port, null);
+ }
+ }
+
+ /**
+ * @return The name of a port. Might be a composite name in case of an extended port
+ */
+ public String getName() {
+ if (parentPort != null) {
+ return parentPort.getName() + "_" + port.getName(); //$NON-NLS-1$
+ }
+ else {
+ return port.getName();
+ }
+ }
+
+ /**
+ * @return the interface provided by a port or sub-port. Takes conjugation of the parent port into account
+ */
+ public Interface getProvided() {
+ if ((parentPort != null) && parentPort.isConjugated()) {
+ return PortUtils.getRequired(port);
+ }
+ else {
+ return PortUtils.getProvided(port);
+ }
+ }
+
+ /**
+ * @return the interface required by a port or sub-port. Takes conjugation of the parent port into account
+ */
+ public Interface getRequired() {
+ if ((parentPort != null) && parentPort.isConjugated()) {
+ return PortUtils.getProvided(port);
+ }
+ else {
+ return PortUtils.getRequired(port);
+ }
+ }
+
+ /**
+ * @return true, if port is conjugated. Takes conjugation of the parent port into account
+ */
+ public boolean isConjugated() {
+ if (parentPort != null) {
+ return port.isConjugated() != parentPort.isConjugated();
+ }
+ else {
+ return port.isConjugated();
+ }
+ }
+
+ /**
+ * TODO: take multiplicity of parent-port into account
+ *
+ * @return upper multiplicity of port
+ */
+ public int getUpper() {
+ return port.getUpper();
+ }
+
+ /**
+ * @return the described port or sub-port
+ */
+ public Port getPort() {
+ return port;
+ }
+
+ /**
+ * @return Return the port of the original model, i.e. the parent port, if the port is actually
+ * a sub-port or the original port, if it is not.
+ * This function is useful for testing delegation relationships (which could not exist for a
+ * sub-port)
+ */
+ public Port getModelPort() {
+ if (parentPort != null) {
+ return parentPort;
+ }
+ else {
+ return port;
+ }
+ }
+
+ protected Port port;
+
+ protected Port parentPort;
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/PortUtils.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/PortUtils.java
new file mode 100644
index 00000000000..9c60af571ef
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/PortUtils.java
@@ -0,0 +1,312 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.FCM.PortKind;
+import org.eclipse.papyrus.FCM.TemplatePort;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.EncapsulatedClassifier;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+public class PortUtils {
+
+ /**
+ * Return the provided interface associated with the UML port, i.e.
+ * the derived attribute of the FCM profile
+ *
+ * @param port
+ * the UML port
+ * @return the provided interface
+ */
+ public static Interface getProvided(Port port) {
+ if (port.getProvideds().size() > 0) {
+ // return first standard UML provided port
+ return port.getProvideds().get(0);
+ }
+ return null;
+ }
+
+ /**
+ * Return the required interface associated with the UML port, i.e.
+ * the derived attribute of the FCM profile
+ *
+ * @param port
+ * the UML port
+ * @return the required interface
+ */
+ public static Interface getRequired(Port port) {
+ if (port.getRequireds().size() > 0) {
+ // return first standard UML required port
+ return port.getRequireds().get(0);
+ }
+ return null;
+ }
+
+ /**
+ * Return the FCM port (static profile) from a given UML port
+ *
+ * @param port
+ * @return
+ */
+ public static org.eclipse.papyrus.FCM.Port getFCMport(Port port) {
+ return UMLUtil.getStereotypeApplication(port, org.eclipse.papyrus.FCM.Port.class);
+ }
+
+ /**
+ * Return the value of the FCM stereotype attribute "type"
+ * @param port a UML port
+ * @return the value of the type attribute
+ */
+ public static Type getFCMType(Port port) {
+ org.eclipse.papyrus.FCM.Port fcmPort = getFCMport(port);
+ if (fcmPort != null) {
+ return fcmPort.getType();
+ }
+ return null;
+ }
+
+ /**
+ * Returns all ports (including inherited ones) for an encapsulated classifier
+ * It will also flatten extended ports
+ *
+ * @param ec
+ * @return
+ */
+ public static EList<Port> getAllPorts(EncapsulatedClassifier ec) {
+ EList<Port> ports = new BasicEList<Port>();
+ for (Property attribute : ec.getAllAttributes()) {
+ if (attribute instanceof Port) {
+ ports.add((Port) attribute);
+ }
+ }
+
+ // TODO: for the moment, don't add aggregated ports to list.
+ /*
+ * ComponentType compType = = UMLUtil.getStereotypeApplication (ec, ComponentType.class);
+ * for (ContainerRule rule : compType.getContainerRule ())
+ * {
+ * if ((rule.getExtensionKind () == ContainerExtKind.AGGREGATION) &&
+ * (rule.getExtension () != null)) {
+ * ports.addAll (getAllPorts (rule.getExtension ().getBase_Class ()));
+ * }
+ * }
+ */
+
+ return ports;
+ }
+
+ /**
+ * Returns all ports for an encapsulated classifier. Inherited ports are
+ * included, except if the superclass is already a component implementation.
+ * The motivation for this function is that ports inherited by a
+ * component implementation have already corresponding operations/attributes,
+ * only ports inherited by types need these definitions in subclasses.
+ * TODO: support for abstract implementations that partially implement ports
+ *
+ * @param ec
+ * @return
+ */
+ public static EList<Port> getAllPorts2(EncapsulatedClassifier ec) {
+ EList<Port> ports = new BasicEList<Port>();
+
+ ports.addAll(ec.getOwnedPorts());
+
+ for (Classifier general : ec.getGenerals()) {
+ if ((general instanceof EncapsulatedClassifier) && (!Utils.isCompImpl(general))) {
+ ports.addAll(getAllPorts2((EncapsulatedClassifier) general));
+ }
+ }
+ return ports;
+ }
+
+ /**
+ * When given a list of ports, flatten the extended ports within this list
+ * and return a list of port-infos, i.e. information about ports.
+ *
+ * @param ports
+ * A list of ports
+ * @return A list of port-infos
+ */
+ public static EList<PortInfo> flattenExtendedPorts(EList<Port> ports) {
+ EList<PortInfo> portInfos = new BasicEList<PortInfo>();
+ for (Port port : ports) {
+ portInfos.addAll(flattenExtendedPort(port));
+ }
+ return portInfos;
+ }
+
+
+ /**
+ * Flatten the given extended port and return a list of port-infos.
+ *
+ * @param port
+ * @return
+ */
+ public static EList<PortInfo> flattenExtendedPort(Port port) {
+ EList<PortInfo> portInfos = new BasicEList<PortInfo>();
+ if (isExtendedPort(port)) {
+ org.eclipse.papyrus.FCM.Port fcmPort = getFCMport(port);
+ org.eclipse.uml2.uml.Class cl;
+ if (isTemplatePort(port)) {
+ TemplatePort tp = UMLUtil.getStereotypeApplication(port, TemplatePort.class);
+ if (tp.getBoundType() == null) {
+ Activator.log.debug("Bound type of template port is null, choosing base class of kind instead"); //$NON-NLS-1$
+ cl = fcmPort.getKind().getBase_Class();
+ }
+ else {
+ cl = tp.getBoundType().getBase_Class();
+ }
+ }
+ else {
+ cl = fcmPort.getKind().getBase_Class();
+ }
+ if ((cl != null) && (getAllPorts(cl).size() > 0)) {
+ EList<Port> extendedPorts = getAllPorts(cl);
+ for (Port extendedPort : extendedPorts) {
+ portInfos.add(new PortInfo(extendedPort, port));
+ }
+ }
+ }
+ else {
+ portInfos.add(new PortInfo(port, null));
+ }
+ return portInfos;
+ }
+
+ /**
+ * Return true, if the passed port is an extended port
+ *
+ * @param port
+ * @return
+ */
+ public static boolean isExtendedPort(Port port) {
+ org.eclipse.papyrus.FCM.Port fcmPort = getFCMport(port);
+ if ((fcmPort != null) && (fcmPort.getKind() != null)) {
+ org.eclipse.uml2.uml.Class cl = fcmPort.getKind().getBase_Class();
+ return ((cl != null) && (getAllPorts(cl).size() > 0));
+ }
+ return false;
+ }
+
+ /**
+ * Return true, if the passed port is an extended port
+ *
+ * @param port
+ * @return
+ */
+ public static boolean isTemplatePort(Port port) {
+ return StereotypeUtil.isApplied(port, TemplatePort.class);
+ }
+
+ /**
+ * Return the port kind, an element of the static profile
+ *
+ * @param port
+ * @return
+ */
+ public static PortKind getKind(Port port) {
+ org.eclipse.papyrus.FCM.Port fcmPort = getFCMport(port);
+ if (fcmPort != null) {
+ return fcmPort.getKind();
+ }
+ return null;
+ }
+
+ /**
+ * Check whether two ports have the same port kind. Since different models apparently
+ * use different Java instances for the same port kind, the check is therefore based
+ * on the equality of full qualified name.
+ *
+ * @param portA
+ * @param portB
+ * @return true, if port kinds are identical
+ */
+ public static boolean sameKinds(Port portA, Port portB) {
+ PortKind kindA = getKind(portA);
+ PortKind kindB = getKind(portB);
+ return kindA == kindB;
+ }
+
+ /**
+ * Check whether two ports match, i.e. have the same kind but different conjugation (assembly)
+ * or same (delegation)
+ *
+ * @param portA
+ * first port
+ * @param portB
+ * second port
+ * @param isAssembly
+ * true, if the ports should be connected by an assembly connector (i.e. no delegation)
+ * @return true, if ports match
+ */
+ public static boolean matches(Port portA, Port portB, boolean isAssembly) {
+ if (isAssembly) {
+ return ((portA.getType() == portB.getType()) && sameKinds(portA, portB) && (portA.isConjugated() != portB.isConjugated()));
+ } else {
+ // delegation
+ return ((portA.getType() == portB.getType()) && sameKinds(portA, portB) && (portA.isConjugated() == portB.isConjugated()));
+ }
+ }
+
+ /**
+ * Check whether two ports are compatible. i.e. either match or are compatible interface wise
+ *
+ * @param portA
+ * @param portB
+ * @param isAssembly
+ * true, if the ports should be connected by an assembly connector (i.e. no delegation)
+ * @return
+ */
+ public static boolean isCompatible(Port portA, Port portB, boolean isAssembly) {
+ if (matches(portA, portB, isAssembly)) {
+ return true;
+ }
+ // no match found, try weaker condition: find 1st match for provided ...
+ if (isAssembly) {
+ Interface reqA = PortUtils.getRequired(portA);
+ Interface reqB = PortUtils.getRequired(portB);
+ Interface prodA = PortUtils.getProvided(portA);
+ Interface prodB = PortUtils.getProvided(portB);
+ return (((reqA == null) && isSubInterface(prodA, reqB))
+ || ((reqB == null) && isSubInterface(prodB, reqA))
+ || (isSubInterface(prodA, reqB) && isSubInterface(prodB, reqA)));
+ }
+ else {
+ return (PortUtils.getProvided(portA) == PortUtils.getProvided(portB)) &&
+ (PortUtils.getRequired(portB) == PortUtils.getRequired(portA));
+ }
+ }
+
+ /**
+ * return true, if intfA is a sub-interface of intfB, i.e. either both interfaces are identical or one of the
+ * super-classes (generalizations of intfA) is identical to B.
+ * more general than interfaceB.
+ *
+ * @param intfA
+ * @param intfB
+ * @return
+ */
+ public static boolean isSubInterface(Interface intfA, Interface intfB) {
+ return (intfA == intfB) || (intfA != null && intfA.getGeneralizations().contains(intfB));
+ }
+}
+ \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/ProjectManagement.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/ProjectManagement.java
new file mode 100644
index 00000000000..3f66f3752a2
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/ProjectManagement.java
@@ -0,0 +1,55 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IFileEditorInput;
+import org.eclipse.ui.PlatformUI;
+
+// TODO: mixture of model and Eclipse project management. Move parts depending on CDT into
+// a separate plugin
+
+public class ProjectManagement {
+
+ /**
+ * Retrieve current project from active editor
+ *
+ * @return
+ */
+ public static IProject getCurrentProject() {
+ IEditorPart editorPart = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
+ // Maybe null, if opened via model explorer
+ if (editorPart == null) {
+ return null;
+ }
+ IEditorInput editorInput = editorPart.getEditorInput();
+ if (editorInput instanceof IFileEditorInput) {
+ return ((IFileEditorInput) editorInput).getFile().getProject();
+ }
+ return null;
+ }
+
+ public static IProject getNamedProject(String projectName) {
+ IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+ if (root != null) {
+ return root.getProject(projectName);
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/RunnableWithResult.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/RunnableWithResult.java
new file mode 100644
index 00000000000..6ebca20a768
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/RunnableWithResult.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core;
+
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+
+public interface RunnableWithResult {
+
+ /**
+ * Execute a command
+ *
+ * @return CommandResult.newOKCommandResult() if successful
+ * CommandResult.newErrorCommandResult(..) or
+ * CommandReuslt.newCancelCommandResult(..) otherwise
+ */
+ public CommandResult run();
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/StUtils.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/StUtils.java
new file mode 100644
index 00000000000..b58b188edc5
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/StUtils.java
@@ -0,0 +1,170 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.uml2.uml.Connector;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Extension;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Stereotype;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * Some functions around stereotype usage.
+ *
+ * @author ansgar
+ *
+ */
+public class StUtils {
+
+ /**
+ * Copy the stereotype application from a source to a destination element. The
+ * function will also copy the stereotype attributes.
+ *
+ * @param source
+ * @param destination
+ * @return
+ */
+ public static void copyStereotypes(LazyCopier copy, Element source, Element destination) {
+ for (Stereotype stereotype : source.getAppliedStereotypes()) {
+ copyAttributes(copy, stereotype.getQualifiedName(), source, destination);
+ }
+ }
+
+ public static void copyStereotypes(Element source, Element destination) {
+ copyStereotypes(null, source, destination);
+ }
+
+ /**
+ * copy stereotype attributes.
+ *
+ * TODO: verify if it is necessary to distinguish between stereoSource and stereoDest
+ * (they should be identical, if the resource sets are).
+ * => simplify code
+ *
+ * @param stereotypeName
+ * @param source
+ * @param destination
+ * @return
+ */
+ @SuppressWarnings({ "unchecked" })
+ public static boolean copyAttributes(LazyCopier copy, String stereotypeName, Element source, Element destination) {
+ Stereotype stereoSource = source.getAppliedStereotype(stereotypeName);
+ Stereotype stereoDest = destination.getApplicableStereotype(stereotypeName);
+
+ if ((stereoSource == null) || (stereoDest == null)) {
+ return false;
+ }
+ Stereotype alreadyApplied = destination.getAppliedStereotype(stereotypeName);
+ if (alreadyApplied == null) {
+ // only apply stereotype, if not already applied
+ destination.applyStereotype(stereoDest);
+ }
+
+ // getAllAttributes? (but have to avoid attribute base_Class which resets stereotype application)
+ for (Property attribute : stereoSource.getAllAttributes()) {
+ String attrName = attribute.getName();
+
+ if (attrName.length() >= 5) {
+ // do not copy base_ stereotypes (base_class, base_package and base_PackageImport)
+ if (attrName.startsWith(Extension.METACLASS_ROLE_PREFIX)) {
+ continue;
+ }
+ }
+ // do not copy derived attributes
+ if (attribute.isDerived()) {
+ continue;
+ }
+
+ Object value = source.getValue(stereoSource, attrName);
+ // handle specific case: need to copy referenced containerExt, since it points to element
+ // in the original model.
+ /*
+ * if ((value instanceof EObject) && (attrName.equals ("containerExt"))) {
+ * continue;
+ * }
+ */
+
+ if (value instanceof EList) {
+ // copy list
+ EList<Object> newList = new BasicEList<Object>();
+ for (Object valueEl : (EList<Object>) value) {
+ if ((copy != null) && (valueEl instanceof Element)) {
+ newList.add(copy.getCopy((Element) valueEl));
+ } else {
+ newList.add(valueEl);
+ }
+ }
+ if (newList.size() > 0) {
+ destination.setValue(stereoDest, attrName, newList);
+ }
+ } else if ((copy != null) && (value instanceof EObject)) {
+ if (value instanceof Element) {
+ destination.setValue(stereoDest, attrName, copy.getCopy((Element) value));
+ }
+ // TODO: remove hack: the template port references directly an element of a package template
+ // the package template should not be copied, but instantiated as done in class TemplatePort
+ else if (!stereotypeName.endsWith("TemplatePort")) { //$NON-NLS-1$
+ // value is likely a stereotype application. If copy does a package-template instantiation, it would
+ // check whether the passed element is within the package template. This would fail if we pass
+ // a stereotype application. (could also do check within copy??)
+ EObject eValue = (EObject) value;
+ Element base = UMLUtil.getBaseElement(eValue);
+ EClass eClass = eValue.eClass();
+ Element newBase = copy.getCopy(base);
+ for (EObject stereoApp : newBase.getStereotypeApplications()) {
+ if (stereoApp.eClass() == eClass) {
+ destination.setValue(stereoDest, attrName, stereoApp);
+ break;
+ }
+ }
+ }
+ else {
+ destination.setValue(stereoDest, attrName, value);
+ }
+ }
+ else {
+ destination.setValue(stereoDest, attrName, value);
+ }
+ }
+
+ return true;
+ }
+
+ public static boolean copyAttribute(String stereotypeName, String attribute, Element source, Element destination) {
+ Stereotype stereotype = source.getAppliedStereotype(stereotypeName);
+ if (stereotype == null) {
+ return false;
+ }
+ Object value = source.getValue(stereotype, attribute);
+ destination.applyStereotype(stereotype);
+ destination.setValue(stereotype, attribute, value);
+ return true;
+ }
+
+ public static org.eclipse.papyrus.FCM.Connector getConnector(Connector connector) {
+ return UMLUtil.getStereotypeApplication(connector, org.eclipse.papyrus.FCM.Connector.class);
+ }
+
+ public static boolean isConnector(Connector candidate) {
+ return StereotypeUtil.isApplied(candidate, org.eclipse.papyrus.FCM.Connector.class);
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/Stereotypes.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/Stereotypes.java
new file mode 100644
index 00000000000..fdaefbed703
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/Stereotypes.java
@@ -0,0 +1,27 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core;
+
+/**
+ * Specific stereotypes. This file should not be used any more
+ */
+@Deprecated
+public class Stereotypes {
+
+ // FT stereotypes
+ public final static String activeWithVoting = "FTRedundancy::FTActiveWithVotingReplicationStyle"; //$NON-NLS-1$
+
+ public final static String replicationInfo = "DP::Replication"; //$NON-NLS-1$
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/UMLTool.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/UMLTool.java
new file mode 100644
index 00000000000..448fc15a77c
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/UMLTool.java
@@ -0,0 +1,410 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ * Christophe JOUVRAY
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.common.util.UniqueEList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.xmi.XMLResource;
+import org.eclipse.papyrus.C_Cpp.External;
+import org.eclipse.papyrus.C_Cpp.NoCodeGen;
+import org.eclipse.papyrus.C_Cpp.Typedef;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.uml2.uml.BehavioredClassifier;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Dependency;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.InterfaceRealization;
+import org.eclipse.uml2.uml.Model;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Namespace;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.ParameterDirectionKind;
+import org.eclipse.uml2.uml.PrimitiveType;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Relationship;
+import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+
+/**
+ * Collection of utility functions. In contrast to core.Utils, it is chiefly used by xtend classes
+ */
+public class UMLTool {
+
+ private static final String UNDERSCORE = "_"; //$NON-NLS-1$
+
+ public static <T extends EObject> EList<T> reverse(EList<T> list) {
+ EList<T> reverseList = new BasicEList<T>();
+ for (int i=list.size()-1; i>=0; i--) {
+ reverseList.add(list.get(i));
+ }
+ return reverseList;
+ }
+
+ /**
+ * @param operation
+ * @return all in and inout parameters of an operation
+ */
+ public static EList<Parameter> parametersInInout(Operation operation) {
+ EList<Parameter> list = new BasicEList<Parameter>();
+ for (Parameter parameter : operation.getOwnedParameters()) {
+ if ((parameter.getDirection().getValue() == ParameterDirectionKind.IN) ||
+ (parameter.getDirection().getValue() == ParameterDirectionKind.INOUT)) {
+ list.add(parameter);
+ }
+ }
+ return list;
+ }
+
+ /**
+ * @param operation
+ * @return all out, inout and return parameters of an operation
+ */
+ public static EList<Parameter> parametersOutInout(Operation operation) {
+ EList<Parameter> list = new BasicEList<Parameter>();
+ for (Parameter parameter : operation.getOwnedParameters()) {
+ if ((parameter.getDirection().getValue() == ParameterDirectionKind.OUT) ||
+ (parameter.getDirection().getValue() == ParameterDirectionKind.RETURN) ||
+ (parameter.getDirection().getValue() == ParameterDirectionKind.INOUT)) {
+ list.add(parameter);
+ }
+ }
+ return list;
+ }
+
+ /**
+ * @param operation
+ * @return all non-return parameters of an operation
+ */
+ public static EList<Parameter> parametersNonRet(Operation operation) {
+ EList<Parameter> list = new BasicEList<Parameter>();
+ for (Parameter parameter : operation.getOwnedParameters()) {
+ if (parameter.getDirection().getValue() != ParameterDirectionKind.RETURN) {
+ list.add(parameter);
+ }
+ }
+ return list;
+ }
+
+ /**
+ * A small helper function that makes names compliant with variable
+ * names in programming languages such as C++ or Java
+ * Unlike varName2, replace scoping signs as well
+ */
+ public static String varName(NamedElement element) {
+ return varName(element.getName());
+ }
+
+ /**
+ * A small helper function that makes names compliant with variable
+ * names in programming languages such as C++ or Java
+ * Unlike varName2, replace scoping signs as well
+ */
+ public static String varName(String umlName) {
+ umlName = umlName.replace(".", UNDERSCORE); //$NON-NLS-1$
+ umlName = umlName.replace(NamedElement.SEPARATOR, UNDERSCORE);
+ return varName2(umlName);
+ }
+
+ /**
+ * A small helper function that makes names compliant with variable
+ * names in programming languages such as C++ or Java
+ * TODO: obviously, it is not complete (e.g. in case of "$", national characters ("ä", "é", ...) , ...)
+ */
+ public static String varName2(NamedElement element) {
+ String umlName = element.getName();
+ return varName2(umlName);
+ }
+
+ /**
+ * Like varName, but does not replace "." with "_"
+ *
+ * @param umlName
+ * @return
+ */
+ public static String varName2(String umlName) {
+ umlName = umlName.replace(" ", UNDERSCORE); //$NON-NLS-1$
+ umlName = umlName.replace("-", UNDERSCORE); //$NON-NLS-1$
+ umlName = umlName.replace("+", UNDERSCORE); //$NON-NLS-1$
+ umlName = umlName.replace("?", UNDERSCORE); //$NON-NLS-1$
+ return umlName;
+ }
+
+ public static EList<Namespace> usedNamespaces(NamedElement element) {
+ EList<Namespace> list = new BasicEList<Namespace>(element.allNamespaces());
+
+ if (list.size() < 1) {
+ return null;
+ }
+ list.remove(list.size() - 1); // remove last element (top-level)
+ return list;
+ }
+
+ /**
+ * Return a sequence of namespaces for a given element, starting from the "bottom"
+ * one, i.e. the one in which the element is contained. It will end before the
+ * searchNS namespace is reached. Returns null, if the element is not contained
+ * within the search namespace.
+ *
+ * @param element
+ * @param searchNS
+ * @return
+ */
+ public static EList<Namespace> relativePath(Element element, Namespace searchNS) {
+ EList<Namespace> pathList = new BasicEList<Namespace>();
+ Element owner = element.getOwner();
+ if (!(owner instanceof Namespace)) {
+ // happens, if element is contained in a template signature
+ return null;
+ }
+ Namespace ns = (Namespace) owner;
+ while (ns != null) {
+ if (ns == searchNS) {
+ return pathList;
+ }
+ pathList.add(ns);
+
+ ns = (Namespace) ns.getOwner();
+ }
+ return null;
+ }
+
+ /**
+ * This method returns all types that are referenced by a classifier. This includes
+ * attribute types, types within operations as well as inherited types.
+ * This is useful to generate the #includes
+ * (which is used by the Acceleo code within the packaging plugin)
+ */
+ public static EList<Classifier> getReferencedClassifiers(Classifier classifier) {
+ EList<Classifier> list = new UniqueEList<Classifier>();
+ list.addAll(classifier.parents());
+
+ if (classifier instanceof Class) {
+ // get classifiers referenced by attributes
+ for (Operation operation : ((Class) classifier).getOwnedOperations()) {
+ for (Parameter parameter : operation.getOwnedParameters()) {
+ Type type = parameter.getType();
+ if (type instanceof Classifier) {
+ list.add((Classifier) type);
+ }
+ }
+ }
+
+ // get classifiers referenced by attributes
+ for (Property attribute : ((Class) classifier).getOwnedAttributes()) {
+ Type type = attribute.getType();
+ if (type instanceof Classifier) {
+ list.add((Classifier) type);
+ }
+ }
+ }
+ return list;
+ }
+
+ /**
+ * TODO: copy&paste from C++ generator (& specific for C++)
+ *
+ * @param ne
+ * @return
+ */
+ public static String cppQName(NamedElement ne) {
+ if ((StereotypeUtil.isApplied(ne, External.class)) || (StereotypeUtil.isApplied(ne, NoCodeGen.class))) {
+ return ne.getName();
+ } else {
+ String qName = ne.getName();
+ for (Namespace ns : ne.allNamespaces()) {
+ if (!(ns instanceof Model)) {
+ qName = ns.getName() + "::" + qName; //$NON-NLS-1$
+ }
+ }
+ return qName;
+ }
+ }
+
+ /**
+ * Return the name of a parameter. In case of a return parameter, always return the name
+ * "retValue". This is quite useful for marshalling operations (which need to assign a
+ * value to the return parameter, which is sometimes not initialized)
+ *
+ * @param parameter
+ * @return
+ */
+ public static String paramName(Parameter parameter) {
+ if (parameter.getDirection().getValue() == ParameterDirectionKind.RETURN) {
+ return "retValue"; //$NON-NLS-1$
+ } else {
+ return parameter.getName();
+ }
+ }
+
+ /**
+ * Return the interface which owns an operation that is implemented by a class.
+ * Context: a class might implement several interfaces by defining their operations.
+ * The operation is useful in the context of state-machines: when a transition is triggered by
+ * the call of an operation of the class, we'd like to know which interceptor (for which interface)
+ * belongs to it (since the operations are enumerated within each interface).
+ * TODO: move operation into state-chart java code
+ * TODO: would not work for ROOM ports typed with a collaboration
+ *
+ * @param operation
+ * @return the interface which the operation belongs
+ */
+ public static Interface implementsInterface(Operation operation) {
+ Element owner = operation.getOwner();
+ if (owner instanceof BehavioredClassifier) {
+ String name = operation.getName();
+ EList<Type> types = new BasicEList<Type>();
+ for (Parameter parameter : operation.getOwnedParameters()) {
+ types.add(parameter.getType());
+ }
+ // loop over implemented realizations. Do not rely on FCM derivedElement information
+ // as it might be missing on some models (it would point from an operation of the class
+ // to the associated operation of the interface)
+ for (InterfaceRealization ir : ((BehavioredClassifier) owner).getInterfaceRealizations()) {
+ // check for types to allow for overloading
+ Operation candidate = ir.getContract().getOwnedOperation(name, null, types);
+ if (candidate != null) {
+ return ir.getContract();
+ }
+ }
+ }
+ else if (owner instanceof Interface) {
+ return (Interface) owner;
+ }
+ return null;
+ }
+
+ /**
+ * Convenience function: Declare a dependency from source to destination. The function checks,
+ * if a dependency already exists to avoid double dependencies.
+ *
+ * @param source
+ * source type of the dependency
+ * @param dest
+ * destination of the dependency
+ */
+ public static void declareDependency(Type source, Type dest) {
+ // check, if a relationship already exists
+ for (Relationship dependency : source.getRelationships(UMLPackage.eINSTANCE.getDependency())) {
+ if (((Dependency) dependency).getSuppliers().contains(dest)) {
+ return;
+ }
+ }
+ source.createDependency(dest);
+ }
+
+ /**
+ * Get the URI fragment of an element within your model
+ * Useful for transmitting model references
+ *
+ * @param element
+ * a UML element
+ * @return
+ */
+ public static String fragment(Element element) {
+ Resource resource = element.eResource();
+ // TODO: use EcoreUtil getURI (InternalEObject) instead?
+
+ if (resource instanceof XMLResource) {
+ XMLResource xmlResource = (XMLResource) resource;
+ return "\"" + xmlResource.getURIFragment(element) + "\""; //$NON-NLS-1$//$NON-NLS-2$
+ }
+ return null;
+ }
+
+ /**
+ * Get the XML (URI) Id of an element within your model
+ * Useful for transmitting model references
+ *
+ * @param element
+ * a UML element
+ * @return
+ */
+ public static String xmlID(Element element) {
+ Resource resource = element.eResource();
+ // TODO: use EcoreUtil getURI (InternalEObject) instead?
+
+ if (resource instanceof XMLResource) {
+ XMLResource xmlResource = (XMLResource) resource;
+ return xmlResource.getID(element);
+ }
+ return null;
+ }
+
+ public static String getURI(Element element) {
+ Resource resource = element.eResource();
+ if (resource != null) {
+ URI uri = resource.getURI();
+ return uri.toString();
+ }
+ return null;
+ }
+
+ /**
+ *
+ * TODO: Specific to C++
+ *
+ * @param type
+ * a type
+ * @return return the definition of a typedef, if the type has been defined via
+ * the stereotype CppType of the Cpp profile
+ */
+ public static String dereferenceTypedef(Type type) {
+ if (type instanceof PrimitiveType) {
+ Typedef cppType = UMLUtil.getStereotypeApplication(type, Typedef.class);
+ if (cppType != null) {
+ return cppType.getDefinition();
+ }
+ }
+ return type.getQualifiedName();
+
+ }
+
+ public static String encodeID(String uri) {
+ // _ becomes escape character. original _ is __, '-' becomes _M
+ return uri.
+ replace(UNDERSCORE, UNDERSCORE + UNDERSCORE).
+ replace("-", "_M"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ public static String decodeID(String encodedURI) {
+ String result = ""; //$NON-NLS-1$
+ for (int i = 0; i < encodedURI.length(); i++) {
+ char c = encodedURI.charAt(i);
+ if (c == '_') {
+ char next = encodedURI.charAt(i + 1);
+ if (next == 'M') {
+ result += '-';
+ } else if (next == '_') {
+ result += '_';
+ }
+ i++;
+ }
+ else {
+ result += c;
+ }
+ }
+ return result;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/Utils.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/Utils.java
new file mode 100644
index 00000000000..ea3a43f07c7
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/Utils.java
@@ -0,0 +1,471 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core;
+
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Iterator;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.UniqueEList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.papyrus.FCM.Assembly;
+import org.eclipse.papyrus.FCM.ContainerRule;
+import org.eclipse.papyrus.FCM.InteractionComponent;
+import org.eclipse.papyrus.FCM.Singleton;
+import org.eclipse.papyrus.qompass.designer.core.preferences.QompassPreferenceConstants;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.uml2.uml.AggregationKind;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+public class Utils {
+
+ public static final String QUOTE = "\""; //$NON-NLS-1$
+
+ /**
+ * Retrieve an element from a list of named elements via its name
+ *
+ * @param namedElementList
+ * @param name
+ * @return
+ */
+ public static NamedElement getNamedElementFromList(
+ EList<? extends NamedElement> namedElementList, String name) {
+ Iterator<? extends NamedElement> namedElements = namedElementList
+ .iterator();
+ while (namedElements.hasNext()) {
+ NamedElement namedElement = namedElements.next();
+ if (namedElement.getName().equals(name)) {
+ return namedElement;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * return the top-level owner of an element. This function returns the same
+ * value as getModel, if the top-level element is a model. While this is the
+ * case for models, model libraries have a top-level package (not a model).
+ * In this case, getTop returns the top-level package whereas getModel would
+ * return null.
+ *
+ * @param element
+ * @return the top-level owning package
+ * @deprecated Use getRootPackage method in oep.uml.tools.utils.PackageUtil
+ */
+ @Deprecated
+ public static Package getTop(Element element) {
+ while (element != null) {
+ Element owner = element.getOwner();
+ if (owner == null) {
+ if (element instanceof Package) {
+ return (Package) element;
+ }
+ }
+ element = owner;
+ }
+ return null;
+ }
+
+ /**
+ * Return package at first level. Useful, since last model transformation
+ * will put elements under a new "root"
+ *
+ * @param element
+ * @return
+ */
+ public static Package getFirstLevel(Element element) {
+ Element lastElement = element;
+ while (element != null) {
+ Element owner = element.getOwner();
+ if (owner == null) {
+ if (lastElement instanceof Package) {
+ return (Package) lastElement;
+ }
+ }
+ lastElement = element;
+ element = owner;
+ }
+ return null;
+ }
+
+ /**
+ * @param element
+ * an element which is owned by a model.
+ * @param subfolder
+ * the name of a sub-folder within root (created, if not
+ * existent)
+ * @return a reference to the sub folder within the root of the model that
+ * belongs to the passed element.
+ */
+ public static Package getRoot(Element element, String subfolder) {
+ Package root = getTop(element);
+ if (root.getNestedPackage(subfolder) != null) {
+ return root.getNestedPackage(subfolder);
+ } else {
+ return root.createNestedPackage(subfolder);
+ }
+ }
+
+ /**
+ * Convenience method enabling to apply getOwnedOperation equally to classes
+ * and interfaces
+ *
+ * @param cl
+ * @param name
+ * @param paramNames
+ * @param paramTypes
+ * @return
+ */
+ public static Operation createOwnedOperation(Classifier cl, String name,
+ EList<String> paramNames, EList<Type> paramTypes, Type retType) {
+ if (cl instanceof Class) {
+ return ((Class) cl).createOwnedOperation(name, paramNames,
+ paramTypes, retType);
+ } else if (cl instanceof Interface) {
+ return ((Interface) cl).createOwnedOperation(name, paramNames,
+ paramTypes, retType);
+ } else {
+ return null;
+ }
+ }
+
+ public static Operation getOwnedOperation(Classifier cl, String name,
+ EList<String> paramNames, EList<Type> paramTypes) {
+ if (cl instanceof Class) {
+ return ((Class) cl).getOwnedOperation(name, paramNames, paramTypes);
+ } else if (cl instanceof Interface) {
+ return ((Interface) cl).getOwnedOperation(name, paramNames,
+ paramTypes);
+ } else {
+ return null;
+ }
+ }
+
+ /**
+ * this method returns the component type of an implementation. It is based
+ * on the modeling convention that implementations inherit from types.
+ */
+ public static Class componentType(Class implementation) {
+ if (Utils.isCompImpl(implementation)) {
+ Iterator<Class> superclasses = implementation.getSuperClasses()
+ .iterator();
+ while (superclasses.hasNext()) {
+ Class componentType = superclasses.next();
+ if (Utils.isCompType(componentType)) {
+ return componentType;
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
+ * return true, if a component (implementation) is a composite, i.e. has
+ * inner parts
+ */
+ public static boolean isComposite(Class implementation) {
+ return Utils.isCompImpl(implementation)
+ && (getParts(implementation).size() > 0);
+ }
+
+ public static EList<Property> getParts(Class implementation) {
+ if (treatNoneAsComposite()) {
+ EList<Property> parts = new BasicEList<Property>();
+ for (Property part : implementation.getAttributes()) {
+ if (part.getAggregation() != AggregationKind.SHARED_LITERAL) {
+ parts.add(part);
+ }
+ }
+ return parts;
+ }
+ else {
+ return implementation.getParts();
+ }
+ }
+
+
+ /**
+ * @param attribute
+ * an attribute
+ * @return true, if the aggregation kind is considered as a composition
+ */
+ public static boolean isComposition(Property attribute) {
+ if (treatNoneAsComposite()) {
+ return (attribute.getAggregation() != AggregationKind.SHARED_LITERAL);
+ }
+ else {
+ return (attribute.getAggregation() == AggregationKind.COMPOSITE_LITERAL);
+ }
+ }
+
+ /**
+ * return true, if an instance specification is a composite, i.e. has > 1
+ * slots TODO: distinguish parts and configuration attributes
+ */
+
+ public static boolean isComposite(InstanceSpecification is) {
+ return (is.getSlots().size() > 0);
+ }
+
+ /**
+ * Get an element via its qualified name. Will find elements from the root
+ * model and elements in imported models. Also supports target model in
+ * which imports have been copied (while keeping the top-level name)
+ *
+ * @param root
+ * @param qualifiedName
+ * @return
+ */
+ public static NamedElement getQualifiedElement(Package root,
+ String qualifiedName) {
+ NamedElement namedElement = null;
+ int index = qualifiedName.indexOf("::"); //$NON-NLS-1$
+ if (index != -1) {
+ // first try using a path without top element (since
+ // getQualifiedElement is typically used for
+ // imported elements)
+ String remainder = qualifiedName.substring(index + 2);
+ namedElement = getQualifiedElement(root, remainder, qualifiedName);
+ }
+ if (namedElement == null) {
+ // try with complete name as path name, but assume that the element
+ // has been copied into the model,
+ // i.e. qualifiedName is prefixed by model name
+ namedElement = getQualifiedElement(root, qualifiedName,
+ root.getName() + "::" + qualifiedName); //$NON-NLS-1$
+ }
+ return namedElement;
+ }
+
+ /**
+ * Retrieve an element via its qualified name within a package The segments
+ * of the package may be non unique due to imports
+ *
+ * @return the found element, if it exists
+ */
+ public static NamedElement getQualifiedElement(Package root,
+ String remainingPath, String qualifiedName) {
+ if (root == null) {
+ return null;
+ }
+ if (!remainingPath.contains(NamedElement.SEPARATOR)) {
+ for (NamedElement candidate : root.getMembers()) {
+ String name = candidate.getName();
+ if ((name != null) && name.equals(remainingPath)) {
+ if (candidate.getQualifiedName().equals(qualifiedName)) {
+ return candidate;
+ }
+ }
+ }
+ } else {
+ String segment = remainingPath.split(NamedElement.SEPARATOR)[0];
+ String remainder = remainingPath.substring(segment.length() + 2);
+ for (Element element : root.getMembers()) {
+ if (element instanceof Package) {
+ if (((NamedElement) element).getName().equals(segment)) {
+ NamedElement foundElement = getQualifiedElement(
+ (Package) element, remainder, qualifiedName);
+ // return, if not found
+ if (foundElement != null) {
+ return foundElement;
+ }
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Simple check whether an element is in a different model than the passed
+ * package It will return true, whenever the the top elements do not match.
+ * This is always true, if the 2nd belongs to a different model, whether
+ * imported or not. This distinction is however not required in our context.
+ */
+ public static boolean isElementInDifferentModel(Package model,
+ NamedElement namedElement) {
+ return model != getTop(namedElement);
+ }
+
+ /**
+ * /**
+ * Check whether a class contains a non-port attribute of a given name
+ *
+ * @param cl
+ * @return
+ */
+ public static boolean hasNonPortOwnedAttribute(Class cl, String name) {
+ for (Property p : cl.getOwnedAttributes()) {
+ if (!(p instanceof Port)) {
+ if (p.getName().equals(name)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ public static <T extends EObject> EList<T> getAllElementsOfType(Element examineElement, java.lang.Class<T> clazz)
+ {
+ EList<Element> visitedPackages = new BasicEList<Element>();
+ return getAllElementsOfType(examineElement, clazz, visitedPackages);
+ }
+
+ @SuppressWarnings("unchecked")
+ public static <T extends EObject> EList<T> getAllElementsOfType(Element examineElement, java.lang.Class<T> clazz, EList<Element> visitedPackages)
+ {
+ EList<T> list = new UniqueEList<T>();
+ for (Element element : examineElement.allOwnedElements()) {
+ if (element instanceof Package) {
+ if (!visitedPackages.contains(element)) {
+ visitedPackages.add(element);
+ list.addAll(getAllElementsOfType(element, clazz,
+ visitedPackages));
+ }
+ } else if (clazz.isInstance(element)) {
+ list.add((T) element);
+ }
+ }
+ return list;
+ }
+
+ /**
+ * @param a
+ * potential implementation
+ * @return true, if passed classifier is an implementation (i.e. declared
+ * via stereotypes as component or connector implementation (a sub-type of component implementations,
+ * therefore no additional check is required)
+ */
+ public static boolean isCompImpl(Classifier implementation) {
+ return !implementation.isAbstract();
+ }
+
+ /**
+ * Check whether the passed class is a component type (and not a component implementation).
+ * This includes connector and container types as well.
+ *
+ * @param component
+ * @return
+ */
+ public static boolean isCompType(Class component) {
+ return component.isAbstract();
+ }
+
+ public static boolean isInteractionComponent(Classifier component) {
+ return StereotypeUtil.isApplied(component, InteractionComponent.class);
+ }
+
+ public static boolean isSingleton(Class component) {
+ return StereotypeUtil.isApplied(component, Singleton.class);
+ }
+
+ public static boolean isAssembly(Class component) {
+ return StereotypeUtil.isApplied(component, Assembly.class);
+ }
+
+ public static boolean treatNoneAsComposite() {
+ IPreferenceStore store = Activator.getDefault().getPreferenceStore();
+ return store.getBoolean(QompassPreferenceConstants.P_TREAT_NONE_AS_COMPOSITE);
+ }
+
+ public static boolean allAttributesAreConfigAttributs() {
+ IPreferenceStore store = Activator.getDefault().getPreferenceStore();
+ return store.getBoolean(QompassPreferenceConstants.P_ALL_ATTRIBUTES_ARE_CONFIG_ATTRIBUTES);
+ }
+
+ /**
+ * True, if either a component implementation or a type
+ *
+ * @param component
+ * @return
+ */
+ public static boolean isComponent(Class component) {
+ return (isCompType(component) || isCompImpl(component));
+ }
+
+ /**
+ * Return the absolute file name to a file name given e.g. in the form platform:/plugin/xxx
+ *
+ * @param fileName
+ * the file name using eclipse elements such as platform:/plugin
+ * @return the absolute file name
+ */
+ public static String getAbsoluteFN(String fileName) {
+ try {
+ URL absoluteURL = FileLocator.toFileURL(new URL(fileName));
+ return absoluteURL.getFile();
+ } catch (MalformedURLException e) {
+ } catch (IOException e) {
+ }
+ return null;
+ }
+
+ // TODO: need a generic utility function for getting all elements obeying a certain
+ // criteria from a model
+ public static EList<ContainerRule> getAllRules(Package pkg) {
+ EList<Package> visitedPackages = new BasicEList<Package>();
+ EList<ContainerRule> contRuleList = new BasicEList<ContainerRule>();
+ getAllRules(pkg, visitedPackages, contRuleList);
+ return contRuleList;
+ }
+
+ public static void getAllRules(Package pkg, EList<Package> visitedPackages, EList<ContainerRule> contRuleList) {
+ for (Element el : pkg.getMembers()) {
+ if (el instanceof Package) {
+ if (!visitedPackages.contains(el)) {
+ visitedPackages.add((Package) el);
+ getAllRules((Package) el, visitedPackages, contRuleList);
+ }
+ }
+ else if (el instanceof Class) {
+ if (StereotypeUtil.isApplied(el, ContainerRule.class)) {
+ ContainerRule rule = UMLUtil.getStereotypeApplication(el, ContainerRule.class);
+ contRuleList.add(rule);
+ }
+ }
+ }
+ }
+
+ /**
+ * Put quotes around a string, unless string already starts with a quote.
+ *
+ * @param str
+ * @return
+ */
+ public static String quoteString(String str) {
+ if (str.startsWith(QUOTE)) {
+ return str;
+ }
+ else {
+ return QUOTE + str + QUOTE;
+ }
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/commands/AddMarteAndFcmProfile.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/commands/AddMarteAndFcmProfile.java
new file mode 100644
index 00000000000..8371706e9c7
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/commands/AddMarteAndFcmProfile.java
@@ -0,0 +1,148 @@
+/*******************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.papyrus.qompass.designer.core.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.emf.workspace.AbstractEMFOperation;
+import org.eclipse.papyrus.qompass.designer.core.Activator;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PackageableElement;
+import org.eclipse.uml2.uml.Profile;
+
+/**
+ * This class adds the FCM profile, parts of the MARTE profile and required package imports to your model.
+ */
+public class AddMarteAndFcmProfile extends AbstractEMFOperation {
+
+ public AddMarteAndFcmProfile(Package selectedPkg, int applyCode, TransactionalEditingDomain domain) {
+ super(domain, CMD_LABEL);
+ this.selectedPkg = selectedPkg;
+ this.applyCode = applyCode;
+ }
+
+ public static final String CMD_LABEL = "Add MARTE/FCM profiles"; //$NON-NLS-1$
+
+ public static final String FCM_PROFILE_URI = "pathmap://FCM_PROFILES/FCM.profile.uml"; //$NON-NLS-1$
+
+ public static final String MARTE_PROFILE_URI = "pathmap://Papyrus_PROFILES/MARTE.profile.uml";//$NON-NLS-1$
+
+ static final String MARTE_FOUNDATIONS = "MARTE_Foundations"; //$NON-NLS-1$
+
+ static final String MARTE_F_ALLOC = "Alloc"; //$NON-NLS-1$
+
+ static final String MARTE_DESIGN_MODEL = "MARTE_DesignModel"; //$NON-NLS-1$
+
+ static final String MARTE_DM_HLAM = "HLAM"; //$NON-NLS-1$
+
+ static final String MARTE_DM_GCM = "GCM"; //$NON-NLS-1$
+
+ public static final int APPLY_FCM = 1;
+
+ public static final int APPLY_ALLOC = 2;
+
+ public static final int APPLY_HLAM_GCM = 4;
+
+ Package selectedPkg;
+
+ int applyCode;
+
+ public static Element getContent(URI uri, ResourceSet rs) {
+ // Resource resource = getTransactionalEditingDomain ().getResourceSet().getResource (uri, true);
+ Resource resource = rs.getResource(uri, true);
+ return getContent(resource);
+ }
+
+ public static Element getContent(Resource resource) {
+ EList<EObject> contentObj = resource.getContents();
+ if ((contentObj.size() > 0) && (contentObj.get(0) instanceof Element)) {
+ return (Element) contentObj.get(0);
+ }
+ return null;
+ }
+
+ @Override
+ protected IStatus doExecute(IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ final ResourceSet resourceSet = selectedPkg.eResource().getResourceSet();
+
+ try {
+ /*
+ * // Apply UML Standard profile
+ * // Retrieve standard profile
+ * Profile umlStdProfile =
+ * (Profile) getContent (URI.createURI(UMLResource.STANDARD_PROFILE_URI));
+ * // Apply to new model
+ * umlModel.applyProfile(umlStdProfile);
+ */
+
+ if ((applyCode & APPLY_FCM) != 0) {
+ // Retrieve FCM profile
+ Profile fcmProfile =
+ (Profile) getContent(URI.createURI(FCM_PROFILE_URI), resourceSet);
+
+ // Apply FCM profile and its nested profiles to new model
+ if (fcmProfile instanceof Profile) {
+ Profile profile = selectedPkg.getAppliedProfile(fcmProfile.getQualifiedName());
+ if ((profile == null) && (!fcmProfile.getOwnedStereotypes().isEmpty())) {
+ selectedPkg.applyProfile(fcmProfile);
+ }
+ }
+ else {
+ Activator.log.debug("The FCM profile is not available."); //$NON-NLS-1$
+ }
+ }
+
+ if ((applyCode & (APPLY_ALLOC | APPLY_HLAM_GCM)) != 0) {
+ // Retrieve MARTE profile
+ Profile marteProfile =
+ (Profile) getContent(URI.createURI(MARTE_PROFILE_URI), resourceSet);
+
+ // Apply MARTE::MARTE_DesignModel::HLAM
+ // & MARTE::MARTE_DesignModel::GCM
+ if (marteProfile != null) {
+ PackageableElement foundationModel = marteProfile.getPackagedElement(MARTE_FOUNDATIONS);
+ if ((foundationModel instanceof Package) && ((applyCode & APPLY_ALLOC) != 0)) {
+ PackageableElement alloc = ((Package) foundationModel).getPackagedElement(MARTE_F_ALLOC);
+ selectedPkg.applyProfile((Profile) alloc);
+ }
+ PackageableElement designModel = marteProfile.getPackagedElement(MARTE_DESIGN_MODEL);
+ if ((designModel instanceof Package) && ((applyCode & APPLY_HLAM_GCM) != 0)) {
+ PackageableElement hlam = ((Package) designModel).getPackagedElement(MARTE_DM_HLAM);
+ if (hlam instanceof Profile) {
+ selectedPkg.applyProfile((Profile) hlam);
+ }
+ PackageableElement gcm = ((Package) designModel).getPackagedElement(MARTE_DM_GCM);
+ if (gcm instanceof Profile) {
+ selectedPkg.applyProfile((Profile) gcm);
+ }
+ }
+ }
+ else {
+ Activator.log.debug("The MARTE profile is not available."); //$NON-NLS-1$
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return Status.OK_STATUS;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/commands/AddQompassModelLibs.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/commands/AddQompassModelLibs.java
new file mode 100644
index 00000000000..94c6d34f0b9
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/commands/AddQompassModelLibs.java
@@ -0,0 +1,202 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.papyrus.qompass.designer.core.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.emf.workspace.AbstractEMFOperation;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PackageImport;
+import org.eclipse.uml2.uml.UMLFactory;
+
+/**
+ * This class adds the FCM profile, parts of the MARTE profile and required package imports to your model.
+ */
+public class AddQompassModelLibs extends AbstractEMFOperation {
+
+ public AddQompassModelLibs(Package pkg, TransactionalEditingDomain domain) {
+ super(domain, CMD_LABEL);
+ selectedPkg = pkg;
+ availableImportPackages = null;
+ importList = null;
+ }
+
+ public static final String CMD_LABEL = "Add Qompass CORE libraries"; //$NON-NLS-1$
+
+ public static final String EC3M_BASIC_CALLS_URI = "pathmap://QML_CORE/core.uml"; //$NON-NLS-1$
+
+ public static final String EC3M_MARTE_CALLS_URI = "pathmap://QML_MARTE/marte.uml"; //$NON-NLS-1$
+
+ protected EList<PackageImport> importList;
+
+ protected EList<PackageImport> availableImportPackages;
+
+ protected Package selectedPkg;
+
+ /**
+ * Retrieve a model library from the repository
+ *
+ * @param uri
+ * the URI of the repository
+ *
+ * @return
+ */
+ public PackageImport getModelLibraryImportFromURI(URI uri, ResourceSet resourceSet) {
+ // Try to reach model
+ Element root = getContent(uri, resourceSet);
+ if (root instanceof Package) {
+
+ // Import model library
+ Package libToImport = (Package) root;
+ // create import package
+ PackageImport modelLibImport = UMLFactory.eINSTANCE.createPackageImport();
+ modelLibImport.setImportedPackage(libToImport);
+
+ return modelLibImport;
+ }
+ return null;
+ }
+
+ public static Element getContent(URI uri, ResourceSet rs) {
+ // Resource resource = getTransactionalEditingDomain ().getResourceSet().getResource (uri, true);
+ Resource resource = rs.getResource(uri, true);
+ return getContent(resource);
+ }
+
+ public static Element getContent(Resource resource) {
+ EList<EObject> contentObj = resource.getContents();
+ if ((contentObj.size() > 0) && (contentObj.get(0) instanceof Element)) {
+ return (Element) contentObj.get(0);
+ }
+ return null;
+ }
+
+ /**
+ * Check whether a package import is already done
+ *
+ * @param selectedPkg
+ * @param pi
+ * @return
+ */
+ boolean isAlreadyImported(Package selectedPkg, PackageImport pi) {
+ for (PackageImport existingPI : selectedPkg.getPackageImports()) {
+ if ((existingPI.getImportedPackage() == null) ||
+ (pi.getImportedPackage() == null)) {
+ // import package are null (should not happen?!)
+ continue;
+ }
+ if ((existingPI.getImportedPackage().getName() == null) ||
+ (pi.getImportedPackage().getName() == null)) {
+ // import package name not set (should not happen?!)
+ continue;
+ } else if (existingPI.getImportedPackage().getName().equals(pi.getImportedPackage().getName())) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
+ */
+
+ /**
+ * Return a list of package-imports for standard Qompass model libraries
+ *
+ * @return
+ * @throws ExecutionException
+ */
+ public EList<PackageImport> getAvailableImportPackages() {
+ if (availableImportPackages != null) {
+ return availableImportPackages;
+ }
+ final ResourceSet resourceSet = selectedPkg.eResource().getResourceSet();
+ availableImportPackages = new BasicEList<PackageImport>();
+
+ PackageImport pi = getModelLibraryImportFromURI(URI.createURI(EC3M_BASIC_CALLS_URI), resourceSet);
+ if (pi != null) {
+ availableImportPackages.add(pi);
+ }
+ pi = getModelLibraryImportFromURI(URI.createURI(EC3M_MARTE_CALLS_URI), resourceSet);
+ if (pi != null) {
+ availableImportPackages.add(pi);
+ }
+ return availableImportPackages;
+ }
+
+ /**
+ * @return a list of package-imports that are already imported (within the selected pkg).
+ */
+ public EList<PackageImport> getAlreadyImportedPackages() {
+ EList<PackageImport> availablePackages = getAvailableImportPackages();
+ EList<PackageImport> selection = new BasicEList<PackageImport>();
+ for (PackageImport pi : availablePackages) {
+ if (isAlreadyImported(selectedPkg, pi)) {
+ selection.add(pi);
+ }
+ }
+ return selection;
+ }
+
+ /**
+ * Initialize import list. Must be called, before the command gets executed.
+ *
+ * @param importList
+ * a list of package-imports that will be added to the selectedPkg when
+ * the command gets executed.
+ */
+ public void setImportList(EList<PackageImport> importList) {
+ this.importList = importList;
+ }
+
+
+ /**
+ * Initialize import list. Must be called, before the command gets executed.
+ * Convenience method for dialogs that return an array.
+ *
+ * @param importArray
+ * an array of objects (which must contain package-imports) that will
+ * be added to the selectedPkg when the command gets executed.
+ */
+ public void setImportList(Object importArray[]) {
+ importList = new BasicEList<PackageImport>();
+ for (Object importPkg : importArray) {
+ if (importPkg instanceof PackageImport) {
+ importList.add((PackageImport) importPkg);
+ }
+ }
+ }
+
+ @Override
+ protected IStatus doExecute(IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+
+ for (PackageImport pi : importList) {
+ if (!isAlreadyImported(selectedPkg, pi)) {
+ selectedPkg.getPackageImports().add(pi);
+ }
+ }
+ return Status.OK_STATUS;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/AllocUtils.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/AllocUtils.java
new file mode 100644
index 00000000000..c66d45918b5
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/AllocUtils.java
@@ -0,0 +1,373 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.deployment;
+
+import java.util.Collection;
+import java.util.Iterator;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.UniqueEList;
+import org.eclipse.papyrus.FCM.Fragment;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.SRM.SW_Concurrency.SwSchedulableResource;
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.Alloc.Allocate;
+import org.eclipse.papyrus.qompass.designer.core.Log;
+import org.eclipse.papyrus.qompass.designer.core.Utils;
+import org.eclipse.papyrus.uml.tools.utils.ConnectorUtil;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.uml2.uml.Abstraction;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Connector;
+import org.eclipse.uml2.uml.ConnectorEnd;
+import org.eclipse.uml2.uml.DirectedRelationship;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Node;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Slot;
+import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+public class AllocUtils {
+
+ public static final String startPortName = "start"; //$NON-NLS-1$
+
+ public static final String startPortType = "IStart"; //$NON-NLS-1$
+
+ /**
+ * Retrieve a list of nodes to which the instance is allocated to *or*
+ * to which one of the contained instances is allocated to (recursively)
+ *
+ * @param instance
+ * @return a list of nodes
+ */
+ public static EList<InstanceSpecification> getAllNodes(InstanceSpecification instance) {
+ EList<InstanceSpecification> nodeList = getNodes(instance);
+ for (Slot slot : instance.getSlots()) {
+ if (!DepUtils.isShared(slot)) {
+ InstanceSpecification containedInstance = DepUtils.getInstance(slot);
+ if (containedInstance != null) {
+ nodeList.addAll(getAllNodes(containedInstance));
+ }
+ }
+ }
+ return nodeList;
+ }
+
+ /**
+ * Retrieve a list of nodes to which the set of passed instance is allocated to *or*
+ * to which one of the contained instances is allocated to (recursively)
+ *
+ * @param instanceList a list of instances
+ * @return a list of nodes
+ */
+ public static EList<InstanceSpecification> getAllNodes(Collection<InstanceSpecification> instances) {
+ EList<InstanceSpecification> nodeList = new UniqueEList<InstanceSpecification>();
+ for (InstanceSpecification instance : instances) {
+ nodeList.addAll(getAllNodes(instance));
+ }
+ return nodeList;
+ }
+ /**
+ * Retrieve a list of nodes to which the instance is allocated to *or*
+ * to which one of the contained instances is allocated to (recursively)
+ *
+ * @param instanceAttribute
+ * an attribute within a composite that represents a component instance
+ * or a set thereof, if the composite itself is instantiated multiple times)
+ * @return a list of nodes
+ */
+ public static Property getThreadAlloc(Property instanceAttribute) {
+ for (DirectedRelationship relation : instanceAttribute.getSourceDirectedRelationships()) {
+ if (StereotypeUtil.isApplied(relation, Allocate.class)) {
+ if (relation.getTargets().size() != 1) {
+ continue;
+ }
+ Element targetElem = relation.getTargets().get(0);
+ if (!(targetElem instanceof Property)) {
+ continue;
+ }
+ Property target = (Property) targetElem;
+ if (StereotypeUtil.isApplied(target.getType(), SwSchedulableResource.class)) {
+ return target;
+ }
+ }
+ }
+ return null;
+ }
+
+
+ /**
+ * Retrieve a list of nodes to which the instance is allocated to *or*
+ * to which one of the containing instances is explicitly allocated
+ *
+ * @param instance
+ * @return a list of nodes
+ */
+ public static EList<InstanceSpecification> getAllNodesOrThreadsParent(InstanceSpecification instance) {
+ EList<InstanceSpecification> nodeList = getNodesOrThreads(instance);
+ Package cdp = instance.getNearestPackage();
+ // TODO: not very efficient: loop each time over all instance specifications
+ for (NamedElement parentNE : cdp.getMembers()) {
+ if (parentNE instanceof InstanceSpecification) {
+ // possible parent instance specification
+ InstanceSpecification parentIS = (InstanceSpecification) parentNE;
+ if (DepUtils.getContainedInstances(parentIS).contains(instance)) {
+ nodeList.addAll(getAllNodesOrThreadsParent(parentIS));
+ }
+ }
+ }
+ return nodeList;
+ }
+
+ public static InstanceSpecification getNode(InstanceSpecification instance) {
+ EList<InstanceSpecification> nodeList = getNodes(instance);
+ if (nodeList.size() != 0) {
+ return nodeList.get(0);
+ }
+ return null;
+ }
+
+ public static InstanceSpecification getNodeOrThread(InstanceSpecification instanceOrThread) {
+ EList<InstanceSpecification> nodeList = getNodesOrThreads(instanceOrThread);
+ if (nodeList.size() != 0) {
+ return nodeList.get(0);
+ }
+ return null;
+ }
+
+ /**
+ * This method returns a list of nodes (or threads) to which the passed instance is allocated.
+ * It is based on MARTE Allocation (a stereotyped abstraction) which is a generic
+ * mechanism to deploy UML elements to nodes.
+ *
+ * @param instanceOrThread
+ * The instance for which we like to know the allocation information
+ * @return
+ */
+ public static EList<InstanceSpecification> getNodesOrThreads(InstanceSpecification instanceOrThread) {
+ EList<InstanceSpecification> nodeList = new UniqueEList<InstanceSpecification>();
+
+ for (DirectedRelationship relationship : instanceOrThread.getSourceDirectedRelationships(UMLPackage.eINSTANCE.getAbstraction())) {
+ Abstraction abstraction = (Abstraction) relationship;
+ if (StereotypeUtil.isApplied(abstraction, Allocate.class)) {
+ for (Element target : abstraction.getTargets()) {
+ if (target instanceof InstanceSpecification) {
+ nodeList.add((InstanceSpecification) target);
+ }
+ }
+ }
+ }
+ return nodeList;
+ }
+
+ /**
+ * This method returns a list of nodes to which the passed instance is allocated. If
+ * the instance is allocated directly to a node, this node is returned. If the instance
+ * is allocated to a thread, the allocation of the thread to a node is returned.
+ *
+ * @param instanceOrThread
+ * The instance that should be deployed
+ * @return
+ */
+ public static EList<InstanceSpecification> getNodes(InstanceSpecification instanceOrThread) {
+ EList<InstanceSpecification> nodeList = new UniqueEList<InstanceSpecification>();
+ EList<InstanceSpecification> nodeOrThreads = getNodesOrThreads(instanceOrThread);
+ for (InstanceSpecification nodeOrThread : nodeOrThreads)
+ {
+ Classifier nodeOrThreadC = DepUtils.getClassifier(nodeOrThread);
+ if (StereotypeUtil.isApplied(nodeOrThreadC, SwSchedulableResource.class)) {
+ // treat case that instance is allocated to a thread
+ // follow allocation of Thread
+ nodeList.add(getNode(nodeOrThread));
+ }
+ else {
+ nodeList.add(nodeOrThread);
+ }
+ }
+ return nodeList;
+ }
+
+ /**
+ * This method updates (and optionally removes) the allocations of an instance
+ *
+ * @param instance
+ * The instance that should be deployed
+ * @param oldNode
+ * the old node allocation
+ * @param newNode
+ * the new node allocation, may be null to indicate removal
+ * @return
+ */
+ public static EList<Node> updateAllocation(InstanceSpecification instance, InstanceSpecification oldNode, InstanceSpecification newNode) {
+ EList<Node> nodeList = new UniqueEList<Node>();
+
+ Iterator<DirectedRelationship> relShipIt =
+ instance.getSourceDirectedRelationships(UMLPackage.eINSTANCE.getAbstraction()).iterator();
+
+ while (relShipIt.hasNext()) {
+ Abstraction abstraction = (Abstraction) relShipIt.next();
+ if (StereotypeUtil.isApplied(abstraction, Allocate.class)) {
+ EList<NamedElement> suppliers = abstraction.getSuppliers(); // use suppliers instead of targets (derived)
+ for (int index = 0; index < suppliers.size(); index++) {
+ if (suppliers.get(index) == oldNode) {
+ if (newNode == null) {
+ // remove relationship completely, since we assume a single target
+ // (cannot call remove on relShipIt, since list is derived)
+ abstraction.destroy();
+ } else {
+ suppliers.set(index, newNode);
+ }
+ break;
+ }
+ }
+ }
+ }
+ return nodeList;
+ }
+
+ /**
+ * Retrieve a list of nodes to which the instance is allocated to *or*
+ * to which one of the contained instances is allocated to (recursively)
+ *
+ * @param instance
+ * @param A
+ * port of the composite. Contained instances are examined only if
+ * they have a connection with this port.
+ * @return a list of nodes
+ */
+ public static EList<InstanceSpecification> getAllNodesForPort(InstanceSpecification instance, Port port) {
+ EList<InstanceSpecification> nodeList = getNodes(instance);
+ Classifier composite = DepUtils.getClassifier(instance);
+ if (composite instanceof Class) {
+ Class compositeCL = (Class) composite;
+ for (Slot slot : instance.getSlots()) {
+ Property containedProperty = (Property) slot.getDefiningFeature();
+
+ for (Connector connection : compositeCL.getOwnedConnectors()) {
+ // is one connector end targeted at the containedProperty ?
+ ConnectorEnd end = ConnectorUtil.connEndForPart(connection, containedProperty);
+ if (end == null) {
+ continue;
+ }
+
+ // does the connector at the same connect the composite's port?
+ if (ConnectorUtil.connectsPort(connection, port)) {
+ Port containedPort = (Port) end.getRole();
+ nodeList.addAll(getAllNodesForPort(DepUtils.getInstance(slot), containedPort));
+ }
+ }
+ }
+ }
+ return nodeList;
+ }
+
+ public static boolean allocate(InstanceSpecification instance, InstanceSpecification node) {
+ Package cdp = (Package) instance.getOwner();
+ Abstraction allocation = (Abstraction)
+ cdp.createPackagedElement("allocate " + instance.getName() + //$NON-NLS-1$
+ " to " + node.getName(), UMLPackage.eINSTANCE.getAbstraction()); //$NON-NLS-1$
+ if (StereotypeUtil.apply(allocation, Allocate.class) == null) {
+ // stereotype application failed
+ allocation.destroy();
+ return false;
+ }
+ allocation.getClients().add(instance);
+ allocation.getSuppliers().add(node);
+ return true;
+ }
+
+ /**
+ * Assign node name to leafs
+ *
+ * @param instance
+ * @param A
+ * port of the composite. Contained instances are examined only if the
+ * have a connection with this port. If null, no sub-instances are examined
+ * @param nodes
+ * A list of nodes to which leafs are allocated
+ */
+ public static void propagateNodesViaPort(InstanceSpecification instance, Port port, EList<InstanceSpecification> nodes) {
+ if (instance == null) {
+ return;
+ }
+ EList<Slot> slots = instance.getSlots();
+ Class composite = DepUtils.getImplementation(instance);
+
+ // Only set allocation on leafs (TODO: assure that components with configuration attributes are not considered as leafs)
+ // if(composite.getParts().size() == 0) {
+ for (InstanceSpecification node : nodes) {
+ AllocUtils.allocate(instance, node);
+ }
+
+ if ((composite != null) && (port != null)) {
+ Class compositeCL = composite;
+ for (Slot slot : slots) {
+ Property containedProperty = (Property) slot.getDefiningFeature();
+
+ Fragment fragment = UMLUtil.getStereotypeApplication(containedProperty, Fragment.class);
+ if (fragment != null) {
+ // TODO
+ /*
+ * EList<Port> colocateWithPort = fragment.getColocateWithPort();
+ * // is the port within the list?
+ * if(Utils.getNamedElementFromList(colocateWithPort, port.getName()) != null) {
+ * // compare qualified name, since containedPort (stereotype attribute)
+ * // points to a source model element
+ * propagateNodesViaPort(DepUtils.getInstance(slot), port, nodes);
+ * continue;
+ * }
+ */
+ }
+ for (Connector connection : compositeCL.getOwnedConnectors()) {
+ if (ConnectorUtil.connectsPort(connection, port)) {
+ Log.log(IStatus.INFO, Log.TRAFO_CONNECTOR, "connector: " + connection.getName()); //$NON-NLS-1$
+ Log.log(IStatus.INFO, Log.TRAFO_CONNECTOR, "end1: " + connection.getEnds().get(0).getPartWithPort()); //$NON-NLS-1$
+ Log.log(IStatus.INFO, Log.TRAFO_CONNECTOR, "end2: " + connection.getEnds().get(1).getPartWithPort()); //$NON-NLS-1$
+ ConnectorEnd end = ConnectorUtil.connEndForPart(connection, containedProperty);
+ // other connector end targeted at containedProperty?
+ if (end != null) {
+ Port containedPort = (Port) end.getRole();
+ propagateNodesViaPort(DepUtils.getInstance(slot), containedPort, nodes);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Return the start Port of a component, i.e. a port that corresponds to the "magic" port name
+ * start and is typed with the interface IStart
+ *
+ * @param component
+ * a component implementation
+ * @return The start port or null
+ */
+ public static Port getStartPort(Class component) {
+ Element startPortElem = Utils.getNamedElementFromList(component.getAllAttributes(), startPortName);
+ if (startPortElem instanceof Port) {
+ Port startPort = (Port) startPortElem;
+ if (startPort.getType().getName().equals(startPortType)) {
+ return startPort;
+ }
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/BootLoaderGen.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/BootLoaderGen.java
new file mode 100644
index 00000000000..595e5aba037
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/BootLoaderGen.java
@@ -0,0 +1,546 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.deployment;
+
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Stack;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.C_Cpp.Include;
+import org.eclipse.papyrus.FCM.InitPrecedence;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.SRM.SW_Concurrency.SwSchedulableResource;
+import org.eclipse.papyrus.qompass.designer.core.Messages;
+import org.eclipse.papyrus.qompass.designer.core.StUtils;
+import org.eclipse.papyrus.qompass.designer.core.UMLTool;
+import org.eclipse.papyrus.qompass.designer.core.Utils;
+import org.eclipse.papyrus.qompass.designer.core.transformations.ExecuteOOTrafo;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
+import org.eclipse.papyrus.qompass.designer.core.transformations.PrefixConstants;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
+import org.eclipse.papyrus.uml.tools.utils.ConnectorUtil;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Connector;
+import org.eclipse.uml2.uml.ConnectorEnd;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.OpaqueBehavior;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Slot;
+import org.eclipse.uml2.uml.StructuralFeature;
+import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.ValueSpecification;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * The task of the boot-loader is twofold: create the instances of all
+ * implementations (non-recursive).
+ * - create Connections: what should be done?
+ *
+ * TODO: factor out common code (TemplateInstantiation mechanism & createConnections below)
+ * Split between C++ specific and C++ independent aspects
+ */
+public class BootLoaderGen {
+
+ private static final String EMPTYSTR = ""; //$NON-NLS-1$
+
+ final public static String NODE_INFO = "NodeInfo"; //$NON-NLS-1$
+
+ final public static String INIT_OP_NAME = "init"; //$NON-NLS-1$
+
+ final public static String NL = "\n"; //$NON-NLS-1$
+
+ final public static String EOL = ";\n"; //$NON-NLS-1$
+
+ final public static String BOOTLOADER_NAME = "BootLoader"; //$NON-NLS-1$
+
+ /**
+ * Create a new boot-loader in a specific package
+ * (which represents a node of the system).
+ *
+ * @param copier a lazy copier
+ * @param nodeIndex the index of the node
+ * @param numberOfNodes the number of nodes
+ * @throws TransformationException
+ */
+ public BootLoaderGen(LazyCopier copier, int nodeIndex, int numberOfNodes)
+ throws TransformationException {
+ // Class composite = (Class) ut.getClassifier (mainInstance);
+ // place in root (getModel()) to avoid the problem that the declaration of the bootLoader
+ // instance is within a namespace (a static attribute on the model level would not solve the
+ // problem as it must be accessed by function main).
+
+ Class nodeInfo = copier.target.createOwnedClass(NODE_INFO, false);
+ String headerStr =
+ "const int nodeIndex = " + nodeIndex + ";" + NL + //$NON-NLS-1$//$NON-NLS-2$
+ "const int numberOfNodes = " + numberOfNodes + ";" + NL; //$NON-NLS-1$ //$NON-NLS-2$
+ Include cppIncludeNodeInfo = StereotypeUtil.applyApp(nodeInfo, Include.class);
+ if (cppIncludeNodeInfo == null) {
+ throw new TransformationException("Can not apply C++ stereotypes during bootloader generation. Please apply the C++ profile to the source model");
+ }
+ cppIncludeNodeInfo.setHeader(headerStr);
+
+ // bootLoader.createOwnedAttribute (mainInstance.getName (), composite);
+
+ m_bootLoader = copier.target.createOwnedClass(BOOTLOADER_NAME, false);
+ outputSizeof = false;
+ m_copy = copier;
+ Class template = (Class) Utils.getQualifiedElement(copier.source, bootloaderQNAME);
+ if (template == null) {
+ throw new TransformationException(String.format(
+ Messages.BootLoaderGen_CannotRetrieveTemplate, bootloaderQNAME));
+ }
+ // TODO: currently, only stereotypes are copied from template
+ StUtils.copyStereotypes(template, m_bootLoader);
+
+
+ // TODO: commented code below already fixed?
+ /*
+ * Problem: defaultValue not taken into account by code generator
+ * => use global variables via cppInclude instead (see below: "bodyStr = ...")
+ * NamedElement corba_long = Utils.getQualifiedElement (owner, "CORBA::Long");
+ * if (corba_long instanceof Type) {
+ * Property nodeNumber =
+ * m_bootLoader.createOwnedAttribute ("nodeNumber", (Type) corba_long);
+ * nodeNumber.setIsStatic (true);
+ * nodeNumber.setDefault ("0"); // for testing
+ * Property numberOfNodes =
+ * m_bootLoader.createOwnedAttribute ("numberOfNodes", (Type) corba_long);
+ * numberOfNodes.setIsStatic (true);
+ * numberOfNodes.setDefault ("2");
+ * }
+ */
+ Include cppInclude = StereotypeUtil.applyApp(m_bootLoader, Include.class);
+ if (cppInclude == null) {
+ throw new TransformationException(Messages.BootLoaderGen_CannotApplyCppInclude);
+ }
+ String existingBody = cppInclude.getBody();
+ String bodyStr = EMPTYSTR;
+
+ if (outputSizeof) {
+ bodyStr +=
+ "#include <iostream>" + NL + //$NON-NLS-1$
+ "using namespace std;" + NL; //$NON-NLS-1$
+ }
+ cppInclude.setBody(existingBody + bodyStr);
+
+ // bootLoader.createOwnedAttribute (mainInstance.getName (), composite);
+
+ m_initCode = EMPTYSTR;
+ m_initCodeRun = EMPTYSTR;
+ m_activation = new HashMap<Class, EList<String>>();
+ m_initCodeCConnections = EMPTYSTR;
+ m_initCodeCConfig = EMPTYSTR;
+
+ if (outputSizeof) {
+ m_initCode += "cout << \"sizeof bootloader: \" << sizeof (bootloader) << endl;" + EOL; //$NON-NLS-1$
+ }
+ // indexMap = new HashMap<String, Integer>();
+ }
+
+ /**
+ * Return the path from the main instance towards a sub-instance using the proper dereference
+ * operators, i.e. ".", if the sub-instance is enclosed via composition or "->" if the sub-instance
+ * is a pointer (since created by the bootloader).
+ *
+ * @param slotPath
+ * @param instance
+ * @param accessName
+ * return the name to access the feature. Returns access path to instance, not
+ * the name of the variable for this instance (if instantiated by bootloader)
+ * @return
+ */
+ public String getPath(Stack<Slot> slotPath, InstanceSpecification instance, boolean accessName) {
+ if (slotPath.size() > 0) {
+ // start with first instance
+ String path = slotPath.get(0).getOwningInstance().getName();
+ boolean previousInstantiatedByBL = false;
+ for (Slot pathElement : slotPath) {
+ if (pathElement != null) {
+ if (previousInstantiatedByBL && accessName) {
+ // If an instance is instantiated by the bootloader, it is only referenced via its type in the
+ // owning composite. Thus, configuration (and activation calls) might fail as the type might not
+ // have these configuration properties or operations.
+ // Therefore, configuration and initial calls use
+ // - the path, if instantiated by the composite
+ // - the variable name, if done by the bootloader
+ path = UMLTool.varName(path); // use variable name instead.
+ }
+ path += "." + pathElement.getDefiningFeature().getName(); //$NON-NLS-1$
+ previousInstantiatedByBL = ExecuteOOTrafo.instantiateViaBootloader(pathElement.getDefiningFeature());
+ }
+ }
+ if (previousInstantiatedByBL && !accessName) {
+ // name of the variable for this expression instantiated by the bootloader
+ path = UMLTool.varName(path);
+ }
+ return path;
+ }
+ else {
+ return instance.getName(); // instance has no path via slots, it is a top level instance
+ }
+ }
+
+ public Property addInstance(Stack<Slot> slotPath, InstanceSpecification instance, Class implementation, InstanceSpecification node)
+ throws TransformationException
+ {
+ // TODO: comments not clear. seems unnecessary complex. Problem in general is that access to
+ // shared instances needs to be configured.
+ // It should always be possible to configure this instance via a path w/o sharing.
+ String accessName = getPath(slotPath, instance, true);
+ String varName = getPath(slotPath, instance, false);
+
+ Property implemPart = null;
+
+ // containing instance not null (=> neither main instance nor singleton)
+ Slot containerSlot = null;
+ if (slotPath.size() > 0) {
+ containerSlot = slotPath.peek();
+
+ // initialize part/property in containing instance. The containing instance itself is accessed
+ // via the naming of the associated instance, the part itself via the name of the defining feature.
+ if (DepUtils.isShared(containerSlot)) {
+ // we need to initialize the property (a reference) with the given instance
+ Stack<Slot> referencePath = DepUtils.getAccessPath(instance);
+ String referenceVarName = getPath(referencePath, instance, false);
+
+ // add code for initialization
+ m_initCode += accessName + " = &" + referenceVarName + EOL; //$NON-NLS-1$
+ // is a reference which should not be called via activation & start
+ // return now and skip code below
+ return implemPart;
+ }
+ else if (ExecuteOOTrafo.instantiateViaBootloader(containerSlot.getDefiningFeature())) {
+ // let bootloader instantiate
+ implemPart = m_bootLoader.createOwnedAttribute(/* "i_" + */varName, implementation);
+ // add code for initialization
+ m_initCode += accessName + " = &" + varName + EOL; //$NON-NLS-1$
+ implemPart.setIsComposite(true);
+ }
+ }
+ else {
+ // top level, either main instance or singleton => bootloader instantiates, create attribute
+ implemPart = m_bootLoader.createOwnedAttribute(/* "i_" + */varName, implementation);
+ implemPart.setIsComposite(true);
+ }
+ if (outputSizeof) {
+ m_initCode += "cout << \"sizeof " + implementation.getName() + ": \" << sizeof (" + varName + ") << endl;" + EOL; //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
+ }
+
+ // if start thread => existing thread activation interceptor? Connection?
+ if (StereotypeUtil.isApplied(implementation, SwSchedulableResource.class)) {
+ // yes, but is the thread instance part of the deployment plan?? [mmh, probably yes...]
+ // call threads start routine here? (via main thread?) which in turn will activate the start routine?
+ }
+
+ // implementation contains get_start operation => has start port
+ // which is called automatically
+ String get_start = PrefixConstants.getP_Prefix + "start"; //$NON-NLS-1$
+
+ // Need to check whether implementation is an executor which is encapsulated in a container. In this case, only
+ // the method of the container and not the method of the executor (which owns the same port) maybe called.
+ // Currently, this check is based on the use of "executor" as reserved part name (validation checks that the
+ // user does not use this name for application components)
+ if (hasUnconnectedStartRoutine(m_copy, implementation, containerSlot)) {
+ if (m_initCodeRun.equals(EMPTYSTR)) {
+ // call start's run method
+ // TODO: Need path that uses the right dereference operator ("->" or ".")
+ m_initCodeRun = varName + "." + get_start + "()->run()" + EOL; //$NON-NLS-1$ //$NON-NLS-2$
+ } else {
+ throw new TransformationException(String.format(
+ Messages.BootLoaderGen_AtLeastOneBlockingCall,
+ varName, m_initCodeRun));
+ }
+ }
+ if (hasUnconnectedLifeCycle(m_copy, implementation, containerSlot)) {
+ // precedence is checked below (when code is actually produced)
+ // multiple varNames might share the same implementation. Put a list of variable names into the table
+ EList<String> varNameList = m_activation.get(implementation);
+ if (varNameList == null) {
+ varNameList = new BasicEList<String>();
+ }
+ varNameList.add(varName + "."); //$NON-NLS-1$
+ m_activation.put(implementation, varNameList);
+ }
+
+ // check, if implementation contains a composite if (implementation.getOwnedOperation (StaticOOTrafo.CREATE_CONNECTIONS, null, null) != null) {
+ boolean bCreateConn = false;
+ for (Connector connector : implementation.getOwnedConnectors()) {
+ if (ConnectorUtil.isAssembly(connector)) {
+ bCreateConn = true;
+ break;
+ }
+ }
+
+ if (bCreateConn) {
+ m_initCodeCConnections += varName + "." + ExecuteOOTrafo.CREATE_CONNECTIONS +"();\n"; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ return implemPart;
+ }
+
+ /**
+ * Check whether the passed implementation has an unconnected start port.
+ * This information is required, since only unconnected start ports are automatically called by the
+ * bootloader, in particular we want to avoid calling a start port of an executor (which is connected)
+ * and its container.
+ *
+ * @param implementation
+ * @param containerSlot
+ * @return
+ */
+ public static boolean hasUnconnectedStartRoutine(LazyCopier copy, Class implementation, Slot containerSlot) {
+ if (implementation != null) {
+ Port startPort = AllocUtils.getStartPort(implementation);
+ if (startPort != null) {
+ return !isConnected(copy, containerSlot, startPort);
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Check, if the passed implementation has an unconnected life-cycle interface (activate/deactivate).
+ * This information is required, since only unconnected life cycle ports are automatically called by the
+ * bootloader, in particular we want to avoid calling a life cycle port of an executor (which is connected)
+ * and its container.
+ *
+ * @param implementation
+ * @param name
+ * @return
+ */
+ public static boolean hasUnconnectedLifeCycle(LazyCopier copy, Class implementation, Slot containerSlot) {
+ if (implementation != null) {
+ Element lcPortElem = Utils.getNamedElementFromList(implementation.getAllAttributes(), "lc"); //$NON-NLS-1$
+ if (lcPortElem instanceof Port) {
+ Port lcPort = (Port) lcPortElem;
+ // check, if port typed with ILifeCycle interface
+ if (lcPort.getType().getName().equals("ILifeCycle")) { //$NON-NLS-1$
+ return !isConnected(copy, containerSlot, lcPort);
+ }
+ }
+
+ }
+ return false;
+ }
+
+ /**
+ * The check verifies whether the passed port is connected within
+ * the context of the composite represented by the passed slot
+ *
+ * @param containerSlot
+ * a slot within an instance that represents a composite class
+ * @Param a port that is checked for being connected
+ * @return true, if connected
+ */
+ private static boolean isConnected(LazyCopier copy, Slot containerSlot, Port port) {
+ if (containerSlot != null) {
+ StructuralFeature sf = containerSlot.getDefiningFeature();
+ if (sf instanceof Property) {
+ // instance still points to a part in the tmp-model (there are no
+ // instance specifications in the final model). Therefore, we use copy to
+ // obtain the mapped instance.
+ Property part = (Property) copy.copy(sf);
+ Class composite = part.getClass_();
+ for (Connector connector : composite.getOwnedConnectors()) {
+ // must assure same connector end connects part & port
+ ConnectorEnd end = ConnectorUtil.connEndForPart(connector, part);
+ if ((end != null) && (end.getRole() == port)) {
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ public void instanceConfig(Stack<Slot> slotPath, InstanceSpecification instance) throws TransformationException {
+ Slot slot = slotPath.peek();
+ // String varName = getPath(slotPath, instance, false);
+ StructuralFeature sf = slot.getDefiningFeature();
+ if (sf == null) {
+ throw new TransformationException(String.format("A slot for instance %s has no defining feature", instance.getName())); //$NON-NLS-1$
+ }
+
+ String varName = instance.getName() + "." + sf.getName(); //$NON-NLS-1$
+ for (ValueSpecification value : slot.getValues()) {
+
+ // only set value, if not null
+ if (value.stringValue() != null) {
+ m_initCodeCConfig += varName + " = " + value.stringValue() + EOL; //$NON-NLS-1$
+ }
+ }
+ }
+
+ public void addCreateConnections() {
+ // code generators do not handle connectors in a suitable way. Remove
+ // (alternative: no-code-gen tag, as available for C++)
+ m_bootLoader.getOwnedConnectors().clear();
+ }
+
+ /**
+ * add the initialize operation. Must be called after a set of addInstance invocations
+ * @param mainInstance
+ */
+ public void addInit(String language) {
+ // TODO: use template
+ Operation init = m_bootLoader.createOwnedOperation(INIT_OP_NAME, null, null);
+ OpaqueBehavior initBehavior = (OpaqueBehavior)
+ m_bootLoader.createOwnedBehavior(INIT_OP_NAME, UMLPackage.eINSTANCE.getOpaqueBehavior());
+ init.getMethods().add(initBehavior);
+
+ initBehavior.getLanguages().add(language);
+ String code = m_initCode + "\n"; //$NON-NLS-1$
+ if (m_initCodeCConfig.length() > 0) {
+ code += "\n// instance configuration\n" + //$NON-NLS-1$
+ m_initCodeCConfig + "\n"; //$NON-NLS-1$
+ }
+ if (m_initCodeCConnections.length() > 0) {
+ code += "\n// create connections between instances\n" + //$NON-NLS-1$
+ m_initCodeCConnections + "\n"; //$NON-NLS-1$
+ }
+ Comparator<Class> comparator = new Comparator<Class>() {
+
+ @Override
+ public int compare(Class clazz1, Class clazz2) {
+
+ InitPrecedence precedenceC1 = UMLUtil.getStereotypeApplication(clazz1, InitPrecedence.class);
+ InitPrecedence precedenceC2 = UMLUtil.getStereotypeApplication(clazz2, InitPrecedence.class);
+ if (precedenceC1 != null) {
+ // need to use named comparison instead of precedenceC1.getInvokeAfter ().contains (clazz2)
+ // since class referenced by stereotype attribute still points to element in source model
+ if (Utils.getNamedElementFromList(precedenceC1.getInvokeAfter(), clazz2.getName()) != null) {
+ return 1;
+ }
+ else if (Utils.getNamedElementFromList(precedenceC1.getInvokeBefore(), clazz2.getName()) != null) {
+ return -1;
+ }
+ }
+ else if (precedenceC2 != null) {
+ if (Utils.getNamedElementFromList(precedenceC2.getInvokeAfter(), clazz1.getName()) != null) {
+ return -1;
+ }
+ else if (Utils.getNamedElementFromList(precedenceC2.getInvokeBefore(), clazz1.getName()) != null) {
+ return 1;
+ }
+ }
+ // singletons have precedence over "normal" classes
+ boolean ci1IsSingleton = Utils.isSingleton(clazz1);
+ boolean ci2IsSingleton = Utils.isSingleton(clazz2);
+ if (ci1IsSingleton) {
+ if (!ci2IsSingleton) {
+ // not both are singletons
+ return -1;
+ }
+ }
+ else if (ci2IsSingleton) {
+ return 1;
+ }
+ return 0;
+ }
+ };
+ Class[] activationKeys = m_activation.keySet().toArray(new Class[0]);
+ String get_lc = PrefixConstants.getP_Prefix + "lc"; //$NON-NLS-1$
+ if (activationKeys.length > 0) {
+ Arrays.sort(activationKeys, comparator);
+ code += "// activation code\n"; //$NON-NLS-1$
+ for (Class implementation : activationKeys) {
+ EList<String> varNameList = m_activation.get(implementation);
+ for (String varName : varNameList) {
+ code += varName + get_lc + "()->activate();\n"; //$NON-NLS-1$
+ }
+ }
+ }
+
+ Include cppInclude = UMLUtil.getStereotypeApplication(m_bootLoader, Include.class);
+ if (m_initCodeRun.length() > 0) {
+ code += "// initial user start\n" + m_initCodeRun; //$NON-NLS-1$
+ } else {
+ // no component implements the initial start, therefore enter a sleep
+ // unistd is required (at least on unix systems) for sleep
+ cppInclude.setPreBody("#include <unistd.h> // for sleep\n"); //$NON-NLS-1$
+
+ code += "// sleep forever\n"; //$NON-NLS-1$
+ code += "for (;;) { sleep(100); }\n"; //$NON-NLS-1$
+ // throw new TransformationRTException("no component implements the initial start. Assure that one component inherits from the CStart component");
+ }
+ if (activationKeys.length > 0) {
+ code += "// deactivation code (reverse order)\n"; //$NON-NLS-1$
+
+ // traverse in reverse order
+ for (int i = activationKeys.length - 1; i >= 0; i--) {
+ Class implementation = activationKeys[i];
+ EList<String> varNameList = m_activation.get(implementation);
+ for (String varName : varNameList) {
+ code += varName + get_lc + "()->deactivate();\n"; //$NON-NLS-1$
+ }
+ }
+ }
+
+ initBehavior.getBodies().add(code);
+ }
+
+ public Class getUML() {
+ return m_bootLoader;
+ }
+
+ private Class m_bootLoader;
+
+ private final static String bootloaderQNAME = "core::composites::BootLoader"; //$NON-NLS-1$
+
+ /**
+ * Initialization code, in particular assignment of part properties within composites
+ */
+ private String m_initCode;
+
+ /**
+ * Init code for create connections calls in composites with at least one assembly
+ * connector
+ */
+ private String m_initCodeCConfig;
+
+ /**
+ * Init code for create connections calls in composites with at least one assembly
+ * connector
+ */
+ private String m_initCodeCConnections;
+
+ /**
+ * Init code for blocking "run" calls (related to CStart system component)
+ */
+ private String m_initCodeRun;
+
+ /**
+ * Map containing activations/de-activations
+ */
+ private Map<Class, EList<String>> m_activation;
+
+ private boolean outputSizeof;
+
+ /**
+ * copy variable (instances still point to non-copied classes)
+ */
+ private LazyCopier m_copy;
+
+ /**
+ * Store a map with index values to manage configuration of arrays
+ */
+ // protected Map<String, Integer> indexMap;
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/DepCreation.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/DepCreation.java
new file mode 100644
index 00000000000..a712642e584
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/DepCreation.java
@@ -0,0 +1,646 @@
+package org.eclipse.papyrus.qompass.designer.core.deployment;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Stack;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.FCM.AutoIndex;
+import org.eclipse.papyrus.FCM.AutoIndexPerNode;
+import org.eclipse.papyrus.FCM.ConfigurationProperty;
+import org.eclipse.papyrus.FCM.ContainerRule;
+import org.eclipse.papyrus.FCM.CopyAttributeValue;
+import org.eclipse.papyrus.FCM.InteractionComponent;
+import org.eclipse.papyrus.FCM.util.FCMUtil;
+import org.eclipse.papyrus.qompass.designer.core.CORBAtypeNames;
+import org.eclipse.papyrus.qompass.designer.core.ConfigUtils;
+import org.eclipse.papyrus.qompass.designer.core.Log;
+import org.eclipse.papyrus.qompass.designer.core.Messages;
+import org.eclipse.papyrus.qompass.designer.core.Utils;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationRTException;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.uml2.uml.AggregationKind;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Connector;
+import org.eclipse.uml2.uml.Enumeration;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.InstanceValue;
+import org.eclipse.uml2.uml.LiteralInteger;
+import org.eclipse.uml2.uml.Node;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PackageableElement;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Slot;
+import org.eclipse.uml2.uml.StructuralFeature;
+import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.ValueSpecification;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+public class DepCreation {
+
+ private static Map<Object, Integer> map;
+
+ public static final String valueFor = "value for "; //$NON-NLS-1$
+
+ /**
+ * Create a slot and add an instance value associated with a part instance
+ * specification.
+ *
+ * @param is
+ * the instance specification for which a slot should be created
+ * @param partIS
+ * the instance specification associated with the slot (to be
+ * precise with slot's instance value)
+ * @param part
+ * the part associated with the slot, i.e. its defining feature
+ * @return The created slot
+ */
+ public static Slot createSlot(InstanceSpecification is,
+ InstanceSpecification partIS, Property part) {
+ // the instance specification of the composite has a slot for each part
+ // and it points
+ // to the instance specification associated with the part.
+ Slot slot = is.createSlot();
+ slot.setDefiningFeature(part);
+
+ InstanceValue iv = (InstanceValue) slot.createValue(null, null,
+ UMLPackage.eINSTANCE.getInstanceValue());
+ iv.setInstance(partIS);
+ return slot;
+
+ }
+
+ /**
+ * Create a Slot and a value for a configuration attribute
+ *
+ * @param attribute
+ */
+ public static Slot createSlotForConfigProp(InstanceSpecification is,
+ Property attribute) {
+
+ Slot slot = is.createSlot();
+ slot.setDefiningFeature(attribute);
+ // For primitive types, the UML type does not provide sufficient information to decide
+ // whether it is a string or a numerical value. In case of the C++ profile, primitive
+ // UML types denote a language specific type, but we want to avoid C++ specific code, if
+ // possible.
+ // => pragmatic solution: use LiteralString as default, unless a check for some known numerical
+ // primitive types holds (in particular the UML as well as Qompass CORBA types)
+ // In addition, string values are not automatically quoted, i.e. it is possible to enter e.g.
+ // a float value as a string expression (it also means that a "real" string value must be quoted
+ // by the user).
+ Type type = attribute.getType();
+ if (type != null) {
+ String name = type.getName();
+ String qname = type.getQualifiedName();
+ if (type instanceof Enumeration) {
+ slot.createValue(valueFor + attribute.getName(), type, UMLPackage.eINSTANCE.getInstanceValue());
+ } else if (name.equals("Integer") || qname.equals(CORBAtypeNames.Octet) //$NON-NLS-1$
+ || qname.equals(CORBAtypeNames.Long)
+ || qname.equals(CORBAtypeNames.UnsignedLong)
+ || qname.equals(CORBAtypeNames.Short)
+ || qname.equals(CORBAtypeNames.UnsignedShort)) {
+ slot.createValue(valueFor + attribute.getName(), type,
+ UMLPackage.eINSTANCE.getLiteralInteger());
+ } else if (name.equals("Boolean")) { //$NON-NLS-1$
+ slot.createValue(valueFor + attribute.getName(), type,
+ UMLPackage.eINSTANCE.getLiteralBoolean());
+ } else {
+ slot.createValue(valueFor + attribute.getName(), type,
+ UMLPackage.eINSTANCE.getLiteralString());
+ }
+ }
+ return slot;
+ }
+
+ /**
+ * Create a string slot and a value for a configuration attribute
+ *
+ * @param attribute
+ */
+ public static Slot createStringSlotForConfigProp(InstanceSpecification is,
+ Property attribute) {
+
+ Slot slot = is.createSlot();
+ slot.setDefiningFeature(attribute);
+ Type type = attribute.getType();
+ if (type != null) {
+ slot.createValue(valueFor + attribute.getName(), type,
+ UMLPackage.eINSTANCE.getLiteralString());
+ }
+ return slot;
+ }
+
+ /**
+ * create a deployment plan, i.e. a set of instances that correspond to an
+ * implementation which is potentially a composite. In case of the latter,
+ * this function is called recursively to create deployment plans for the
+ * parts. Since a composite implementation may optionally specify only the
+ * type of parts (not the concrete implementation), this function also
+ * supports that a type is passed. In this case, an implementation is
+ * automatically assigned.
+ *
+ * @param cdp
+ * the deployment plan (package) in which to create instances
+ * @param typeOrImplem
+ * the type
+ * @param nane
+ * the name of the instance
+ * @param createSlotsForConfigValues
+ * if true, create slots for configuration values
+ */
+ public static InstanceSpecification createDepPlan(Package cdp,
+ Class typeOrImplem, String name, boolean createSlotsForConfigValues)
+ throws TransformationException {
+ return createDepPlan(cdp, typeOrImplem, name, createSlotsForConfigValues, new Stack<Classifier>());
+ }
+
+ public static InstanceSpecification createDepPlan(Package cdp,
+ Class typeOrImplem, String name, boolean createSlotsForConfigValues, Stack<Classifier> visitedClassifiers)
+ throws TransformationException {
+ // create an instance specification for the composite
+ if (visitedClassifiers.contains(typeOrImplem)) {
+ String path = ""; //$NON-NLS-1$
+ for (Classifier cl : visitedClassifiers) {
+ if (path.length() > 0) {
+ path += ", "; //$NON-NLS-1$
+ }
+ path += cl.getName();
+ }
+ path += ", " + typeOrImplem.getName(); //$NON-NLS-1$
+ throw new TransformationException(String.format(
+ Messages.DepCreation_CircularReference,
+ typeOrImplem.getQualifiedName(), path));
+ }
+ visitedClassifiers.push(typeOrImplem);
+
+ InstanceSpecification is;
+ // treat singleton
+ if (Utils.isSingleton(typeOrImplem)) {
+ // is a singleton - exactly one instance exists
+ InstanceSpecification mainInstance = DepUtils.getMainInstance(cdp);
+
+ // use canonical name for singleton instance - lower case for type-name
+ String partName = DeployConstants.singletonPrefix + typeOrImplem.getName().toLowerCase();
+ name = mainInstance.getName() + DeployConstants.SEP_CHAR + partName;
+ PackageableElement pe = cdp.getPackagedElement(name);
+
+ if (pe == null) {
+ // instance specification for singleton does not exist yet => create
+
+ Classifier system = DepUtils.getClassifier(mainInstance);
+ Property singletonAttr = system.getAttribute(partName, typeOrImplem);
+ if ((singletonAttr == null) && system instanceof Class) {
+ singletonAttr = ((Class) system).createOwnedAttribute(partName, typeOrImplem);
+ singletonAttr.setAggregation(AggregationKind.COMPOSITE_LITERAL);
+ }
+
+ is = (InstanceSpecification) cdp.createPackagedElement(name, UMLPackage.eINSTANCE.getInstanceSpecification());
+ // create slot within main instance
+ createSlot(mainInstance, is, singletonAttr);
+ } else if (pe instanceof InstanceSpecification) {
+ // exists already, return it without recursing into its sub-specifications
+ return (InstanceSpecification) pe;
+ } else {
+ // unlikely case that a packaged element with the name
+ // <singletonISname> exists already, but is not an instance specification
+ throw new TransformationException(String.format(
+ Messages.DepCreation_SingletonExistsAlready, name));
+ }
+ } else {
+ is = (InstanceSpecification) cdp.createPackagedElement(name, UMLPackage.eINSTANCE.getInstanceSpecification());
+ }
+
+ if (name.equals(DeployConstants.MAIN_INSTANCE)) {
+ DepUtils.setMainInstance(cdp, is);
+ }
+
+ Class implementation = null;
+
+ // treat HW architecture or nodes as implementations
+ if (Utils.isCompImpl(typeOrImplem)
+ || typeOrImplem instanceof Node) {
+ // implementation is known => must be able to do this.
+ if (typeOrImplem instanceof Class) {
+ implementation = typeOrImplem;
+ }
+ } else {
+ // problem? further tree expansion might depend on chosen
+ // implementation)
+ // TODO: don't know node yet => implementation choice is more
+ // general than necessary
+ implementation = DepUtils.chooseImplementation(typeOrImplem, null, null);
+ }
+
+ if (!(implementation instanceof Class)) {
+ throw new TransformationException(String.format(
+ Messages.DepCreation_CannotFindImplementation,
+ name, typeOrImplem.getName()));
+ }
+ // else implementation is instance of Class (and not null)
+
+ is.getClassifiers().add(implementation);
+ // add connector and container implementations
+ if (createSlotsForConfigValues) {
+ EList<ContainerRule> rules = FCMUtil.getAllContainerRules(implementation);
+ for (ContainerRule rule : rules) {
+ addConfigurationOfContainer(rule, is);
+ }
+ }
+
+ for (Connector connector : implementation.getOwnedConnectors()) {
+ org.eclipse.papyrus.FCM.Connector fcmConn = UMLUtil.getStereotypeApplication(connector, org.eclipse.papyrus.FCM.Connector.class);
+ if (fcmConn != null) {
+ String partName = name + "." + connector.getName(); //$NON-NLS-1$
+ InteractionComponent connectorComp = fcmConn.getIc();
+ if (connectorComp != null) {
+ Class cl = fcmConn.getIc().getBase_Class();
+ if (cl == null) {
+ throw new TransformationException(Messages.DepCreation_FCMconnectorWithoutBaseClass);
+ }
+ // create sub-instance for connector. It is not possible to
+ // create a slot in the owning instance specification,
+ // since the connector cannot be referenced as a defining-feature
+ createDepPlan(cdp, cl, partName, createSlotsForConfigValues, visitedClassifiers);
+ }
+ }
+ }
+
+ for (Property attribute : implementation.getAllAttributes()) {
+ // loop over all attributes (not only parts, since we need to
+ // capture singletons)
+ if (attribute instanceof Port) {
+ continue;
+ }
+ Type type = attribute.getType();
+
+ if (Utils.isComposition(attribute)) {
+ // composition, attribute is a part
+ if (((type instanceof Class) && Utils.isComponent((Class) type)) || type instanceof Node) {
+ Class cl = (Class) type;
+
+ // TODO: ad-hoc replication support. Better solution via design patterns
+ int upper = attribute.getUpper();
+ String infix = ""; //$NON-NLS-1$
+
+ // TODO: check validation constraints
+ for (int i = 0; i < upper; i++) {
+ String partName = name + "." + attribute.getName(); //$NON-NLS-1$
+ if (upper > 1) {
+ partName += "_" + infix + i; //$NON-NLS-1$
+ }
+ InstanceSpecification partIS = createDepPlan(cdp, cl,
+ partName, createSlotsForConfigValues, visitedClassifiers);
+ // may not create slot for singleton, since automatically done
+ if (!Utils.isSingleton((Class) type)) {
+ createSlot(is, partIS, attribute);
+ }
+ }
+ } else if (StereotypeUtil.isApplied(attribute, ConfigurationProperty.class)
+ && createSlotsForConfigValues) {
+ // is a configuration property, create slot
+ // TODO: implicit assumption that configuration attributes
+ // are not components
+ createSlotForConfigProp(is, attribute);
+ }
+ } else if (type instanceof Class) {
+ // no composition - only create slot, if a singleton
+ // (otherwise, it's not clear with which instance the slot
+ // should be associated)
+ Log.log(IStatus.INFO, Log.DEPLOYMENT, String.format(
+ Messages.DepCreation_InfoCreateDepPlan, type.getQualifiedName()));
+ if (Utils.isSingleton((Class) type)) {
+ // is a singleton - exactly one instance exists
+ // recursive call - pass empty name, since name for singletons is re-calculated.
+ InstanceSpecification singletonIS = createDepPlan(cdp,
+ (Class) type, "", createSlotsForConfigValues, visitedClassifiers); //$NON-NLS-1$
+ createSlot(is, singletonIS, attribute);
+ }
+ } else if (type == null) {
+ throw new TransformationException(String.format(Messages.DepCreation_TypeInAttributeUndefined,
+ attribute.getName(), implementation.getName()));
+ }
+ }
+ visitedClassifiers.pop();
+ return is;
+ }
+
+ /**
+ * Create slot for configuration properties that come from container rules
+ *
+ * @param aRule
+ * @param is
+ * @throws TransformationException
+ */
+ private static void addConfigurationOfContainer(ContainerRule rule,
+ InstanceSpecification is) throws TransformationException {
+ boolean first = true;
+ for (Property attribute : ConfigUtils.getConfigAttributes(rule)) {
+ Type type = attribute.getType();
+ if ((StereotypeUtil.isApplied(attribute, ConfigurationProperty.class))
+ && (type instanceof Classifier)) {
+ Classifier aggregateOrInterceptor;
+ if (type instanceof Class) {
+ aggregateOrInterceptor = DepUtils.chooseImplementation(
+ (Class) type, new BasicEList<InstanceSpecification>(),
+ null);
+ } else {
+ aggregateOrInterceptor = (Classifier) type;
+ }
+ // is a configuration property, create slot
+ if (first) {
+ // add contExtImpl to list of classifiers that the instance
+ // specification describes
+ is.getClassifiers().add(aggregateOrInterceptor);
+ first = false;
+ }
+ // CAVEAT:
+ // - single value specification for all occurrences of an interceptor
+ // - Could be done, but: how to know whether user wants single
+ // vs. interceptor specific configuration?
+ // - two different interceptors may not share the same type with
+ // a configuration attribute
+ createSlotForConfigProp(is, attribute);
+ }
+ }
+ }
+
+ /**
+ * create a deployment plan, i.e. a set of instances that correspond to an
+ * implementation which is potentially a composite. In case of the latter,
+ * this function is called recursively to create deployment plans for the
+ * parts. Since a composite implementation may optionally specify only the
+ * type of parts (not the concrete implementation), this function also
+ * supports that a type is passed. In this case, an implementation is
+ * automatically assigned.
+ *
+ * @param cdp
+ * the deployment plan (package) in which to create instances
+ * @param typeOrImplem
+ * the type
+ * @param nane
+ * the name of the instance
+ * @param createSlotsForConfigValues
+ * if true, create slots for configuration values
+ */
+ public static InstanceSpecification createPlatformInstances(
+ Package platform, Class implementation, String name)
+ throws TransformationException {
+ // create an instance specification for the composite
+ InstanceSpecification is = null;
+ is = (InstanceSpecification) platform.createPackagedElement(name,
+ UMLPackage.eINSTANCE.getInstanceSpecification());
+ is.getClassifiers().add(implementation);
+
+ // add connector and container implementations
+
+ for (Property attribute : implementation.getAllAttributes()) {
+ // loop over all attributes (not only parts, since we need to
+ // capture singletons)
+ if (attribute instanceof Port) {
+ continue;
+ }
+ Type type = attribute.getType();
+
+ if (Utils.isComposition(attribute)) {
+ // composition, attribute is a part
+ if (type instanceof Class) { // should be a node, but do not require it
+ Class cl = (Class) type;
+
+ int upper = attribute.getUpper();
+ String infix = ""; //$NON-NLS-1$
+ // TODO: check validation constraints
+ for (int i = 0; i < upper; i++) {
+ // prefix with name, unless null
+ String partName = (name != null) ? name + DeployConstants.SEP_CHAR : ""; //$NON-NLS-1$
+ partName += attribute.getName();
+ if (upper > 1) {
+ partName += "_" + infix + i; //$NON-NLS-1$
+ }
+ InstanceSpecification partIS = createPlatformInstances(
+ platform, cl, partName);
+
+ if (is != null) {
+ createSlot(is, partIS, attribute);
+ }
+ }
+ } else if (StereotypeUtil.isApplied(attribute,
+ ConfigurationProperty.class)) {
+ // is a configuration property, create slot
+ // TODO: implicit assumption that configuration attributes
+ // are not components
+ createSlotForConfigProp(is, attribute);
+ }
+ }
+ }
+ return is;
+ }
+
+ /**
+ * Initialize the automatic values within a deployment plan - and the update
+ * eventual copies of these values.
+ *
+ * @param is
+ * the main instance of the deployment plan
+ */
+ public static void initAutoValues(InstanceSpecification is) {
+ Collection<InstanceSpecification> isList = new ArrayList<InstanceSpecification>();
+ isList.add(is);
+ initAutoValues(isList);
+ }
+
+ /**
+ * Initialize the automatic values within a deployment plan - and the update
+ * eventual copies of these values.
+ *
+ * @param is
+ * the main instance of the deployment plan
+ */
+ public static void initAutoValues(Collection<InstanceSpecification> isList) {
+ map = new HashMap<Object, Integer>();
+ for (InstanceSpecification is : isList) {
+ initAutoValuesHelper(is);
+ }
+ Stack<InstanceSpecification> isStack = new Stack<InstanceSpecification>();
+ for (InstanceSpecification is : isList) {
+ copyAutoValues(isStack, is);
+ }
+ }
+
+ /**
+ * Initialize the automatic values within a deployment plan.
+ *
+ * @param is
+ * the main instance of the deployment plan
+ */
+ public static void initAutoValuesHelper(InstanceSpecification is) {
+ for (Slot slot : is.getSlots()) {
+ StructuralFeature sf = slot.getDefiningFeature();
+ if (sf == null) {
+ throw new RuntimeException(String.format(Messages.DepCreation_DefiningFeatureNull,
+ slot.getOwningInstance().getName()));
+ }
+ if (StereotypeUtil.isApplied(sf, AutoIndex.class)) {
+ Integer value = null;
+ Object key;
+ if (StereotypeUtil.isApplied(sf, AutoIndexPerNode.class)) {
+ InstanceSpecification nodeOrThread = AllocUtils.getNode(is);
+ key = sf.getName() + nodeOrThread.getName();
+ } else {
+ key = sf;
+ }
+ if (!map.containsKey(key)) {
+ map.put(key, new Integer(0));
+ }
+ value = map.get(key);
+ value++; // no need to put incremented value back into map,
+ // since Integer is a reference => value is updated
+
+ // create slot and value specification (literal-integer) for the
+ // auto index
+ LiteralInteger li = (LiteralInteger) slot.createValue(
+ sf.getName() + DeployConstants.AUTO_POSTFIX, sf.getType(),
+ UMLPackage.eINSTANCE.getLiteralInteger());
+ li.setValue(value);
+
+ // recursion in case of values that are instance values
+ for (ValueSpecification vs : slot.getValues()) {
+ if (vs instanceof InstanceValue) {
+ InstanceSpecification subIS = ((InstanceValue) vs).getInstance();
+ initAutoValues(subIS);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Copy automatic values within a deployment plan.
+ * Attributes can apply the CopyAttributeValue stereotype. The stereotype can point
+ * to another attribute (source). If the other attribute has a configuration value, it gets
+ * copied.
+ * The function takes into account that the source attribute might be in a component that is
+ * instantiated several times with different configuration values. The attribute that gets the
+ * copy must use the "nearest" value which means that there must be a common composite that
+ * contains both attribute (indirectly).
+ * The main use case is that connector fragments need to have common configuration attributes
+ * (e-g- server fragment has automatic index value, client fragment needs to copy this value)
+ *
+ * @param is
+ * the main instance of the deployment plan
+ */
+ public static void copyAutoValues(Stack<InstanceSpecification> isStack,
+ InstanceSpecification is) {
+ isStack.push(is);
+ for (Slot slot : is.getSlots()) {
+ StructuralFeature sf = slot.getDefiningFeature();
+ if (sf == null) {
+ throw new TransformationRTException(is.getName() + " has a slot without defining feature"); //$NON-NLS-1$
+ }
+ if (StereotypeUtil.isApplied(sf, CopyAttributeValue.class)) {
+ CopyAttributeValue cav = UMLUtil.getStereotypeApplication(sf,
+ CopyAttributeValue.class);
+ Property source = cav.getSource();
+ ValueSpecification vs = getNearestValue(isStack, source);
+ if (vs instanceof LiteralInteger) {
+ LiteralInteger liCopy = (LiteralInteger) slot.createValue(
+ sf.getName() + "_copy", sf.getType(), //$NON-NLS-1$
+ UMLPackage.eINSTANCE.getLiteralInteger());
+ int value = ((LiteralInteger) vs).getValue();
+ liCopy.setValue(value);
+ }
+ }
+
+ // recursion in case of values that are instance values
+ for (ValueSpecification vs : slot.getValues()) {
+ if (vs instanceof InstanceValue) {
+ InstanceSpecification subIS = ((InstanceValue) vs).getInstance();
+ if (subIS != null) {
+ copyAutoValues(isStack, subIS);
+ }
+ }
+ }
+ }
+ isStack.pop();
+ }
+
+ /**
+ * try to find a value (ValueSpecification) for the passed source element,
+ * beginning a the "deepest" instance specification of the passed stack. If
+ * not found, continue at elements higher up in the hierarchy
+ *
+ * @param isStack
+ * a stack of instance specifications corresponding to a path
+ * within an instance tree
+ * @param source
+ * a property (defining feature) for which we search an instance
+ * specification
+ * @return The value specifications for the passed source property or null
+ */
+ public static ValueSpecification getNearestValue(
+ Stack<InstanceSpecification> isStack, Property source) {
+ Stack<InstanceSpecification> copy = new Stack<InstanceSpecification>();
+ copy.addAll(isStack);
+ while (!copy.isEmpty()) {
+ InstanceSpecification pop = copy.pop();
+ ValueSpecification vs = getNearestValueHelper(isStack, pop, source);
+ if (vs != null) {
+ return vs;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Helper for getNearestValue: search for an instance specification that has
+ * source as defining feature. Start at the passed instance specification,
+ * but do not recurse into elements that are contained in the stack.
+ *
+ * @param isStack
+ * A stack of instance specifications corresponding to a path
+ * within an instance tree
+ * @param is
+ * the starting instance specification
+ * @param source
+ * source a property (defining feature) for which we search an
+ * instance specification
+ * @return The value specifications for the passed source property or null
+ */
+ public static ValueSpecification getNearestValueHelper(
+ Stack<InstanceSpecification> isStack, InstanceSpecification is,
+ Property source) {
+ for (Slot slot : is.getSlots()) {
+ StructuralFeature sf = slot.getDefiningFeature();
+ if (sf == source) {
+ // found property, now return first value specification
+ for (ValueSpecification vs : slot.getValues()) {
+ return vs;
+ }
+ return null;
+ }
+
+ // recursion in case of values that are instance values
+ for (ValueSpecification vs : slot.getValues()) {
+ if (vs instanceof InstanceValue) {
+ InstanceSpecification subIS = ((InstanceValue) vs)
+ .getInstance();
+ if (!isStack.contains(subIS)) {
+ // only recurse, if not contained in stack of instance
+ // specifications (avoid traversing
+ // the same elements multiple times)
+ return getNearestValueHelper(isStack, subIS, source);
+ }
+ }
+ }
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/DepPlanUtils.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/DepPlanUtils.java
new file mode 100644
index 00000000000..f1f9b08d475
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/DepPlanUtils.java
@@ -0,0 +1,375 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.deployment;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.Enumerator;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.papyrus.FCM.DeploymentPlan;
+import org.eclipse.papyrus.qompass.designer.core.Messages;
+import org.eclipse.papyrus.qompass.designer.core.Utils;
+import org.eclipse.papyrus.uml.tools.utils.PackageUtil;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Enumeration;
+import org.eclipse.uml2.uml.EnumerationLiteral;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.InstanceValue;
+import org.eclipse.uml2.uml.LiteralInteger;
+import org.eclipse.uml2.uml.LiteralString;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Slot;
+import org.eclipse.uml2.uml.StructuralFeature;
+import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.ValueSpecification;
+
+public class DepPlanUtils {
+
+ /**
+ * Return the package in which deployment plans are stored. Caveat: needs to be executed within a
+ * transition, since the deployment plan package will be created, if it does not exist yet.
+ *
+ * @param element
+ * an arbitrary element of the source model (i.e. the model that will
+ * store the deployment plan
+ * @return package in which deployment plans are stored
+ */
+ public static Package getDepPlanRoot(Element element) {
+ return Utils.getRoot(element, DeployConstants.depPlanFolder);
+ }
+
+ /**
+ * Return all deployment plans
+ *
+ * @param element
+ * an arbitrary element of the source model (i.e. the model that will
+ * store the deployment plan
+ * @return
+ */
+ public static EList<Package> getAllDepPlans(Element element) {
+ Package root = PackageUtil.getRootPackage(element);
+ Package depPlanRoot = root.getNestedPackage(DeployConstants.depPlanFolder);
+ EList<Package> depPlanList = new BasicEList<Package>();
+ if (depPlanRoot != null) {
+ for (Package pkg : depPlanRoot.getNestedPackages()) {
+ if (StereotypeUtil.isApplied(pkg, DeploymentPlan.class)) {
+ depPlanList.add(pkg);
+ }
+ }
+ }
+ return depPlanList;
+ }
+
+ public static void delDepPlan(InstanceSpecification is) {
+ Iterator<Slot> slots = is.getSlots().iterator();
+ while (slots.hasNext()) {
+ Slot slot = slots.next();
+ InstanceSpecification subInstance = getInstance(slot);
+ if (subInstance != null) {
+ delDepPlan(subInstance);
+ }
+ }
+ Element owner = is.getOwner();
+ if (owner instanceof Package) {
+ ((Package) owner).getPackagedElements().remove(is);
+ }
+ }
+
+ /**
+ * Return the instance that is defined by a slot value
+ *
+ * @param slot
+ * @return the first slot that corresponds to an instance specification
+ */
+ public static InstanceSpecification getInstance(Slot slot) {
+ Iterator<ValueSpecification> values = slot.getValues().iterator();
+ while (values.hasNext()) {
+ ValueSpecification value = values.next();
+ // instances are accessible via ValueSpecification subclass InstanceValue
+ if (value instanceof InstanceValue) {
+ return ((InstanceValue) value).getInstance();
+ }
+ }
+ return null;
+ }
+
+ /**
+ * create a slot for a given sub-instance specification.
+ *
+ * @param cdp
+ * a deployment plan
+ * @param is
+ * an instance specification for a composite class
+ * @param partIS
+ * the instance specification of a part within the composite
+ * @param part
+ * the part within the composite
+ */
+ public static Slot createSlot(Package cdp, InstanceSpecification is, InstanceSpecification partIS, Property part) {
+ // the instance specification of the composite has a slot for each part and it points
+ // to the instance specification associated with the part.
+ Slot slot = is.createSlot();
+ slot.setDefiningFeature(part);
+
+ InstanceValue iv = (InstanceValue)
+ slot.createValue(null, null, UMLPackage.eINSTANCE.getInstanceValue());
+ iv.setInstance(partIS);
+ return slot;
+
+ }
+
+ /**
+ * Apply the stereotype deployment plan and set the mainInstance value
+ *
+ * @param cdp
+ * the deployment plan
+ * @param main
+ * instance the top-level instance specification of the plan
+ */
+ public static void setMainInstance(Package cdp, InstanceSpecification mainInstance) {
+ DeploymentPlan cdpApp = StereotypeUtil.applyApp(cdp, DeploymentPlan.class);
+ if (cdpApp != null) {
+ cdpApp.setMainInstance(mainInstance);
+ }
+ }
+
+ /**
+ * Automatically choose an implementation, i.e. choose the first implementation
+ * within the component model that implements a given component type.
+ */
+ public static Class autoChooseImplementation(Classifier componentType) {
+ // choose implementation automatically: get the first one that implements the passed type
+ // (problem: further tree expansion might depend on chosen implementation)
+ // get reference to component model, then search all classes contained in it.
+ Package compModel = Utils.getRoot(componentType, DeployConstants.COMPONENT_MODEL);
+ Iterator<Element> elements = compModel.allOwnedElements().iterator();
+ while (elements.hasNext()) {
+ Element element = elements.next();
+ if (element instanceof Class) {
+ Class candidate = (Class) element;
+ if (candidate.getSuperClass(componentType.getName()) != null) {
+ return candidate;
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Configure an attribute of an instance specification
+ *
+ * @param instance
+ * the instance specification
+ * @param property
+ * An ENamedElement denoting the name of an attribute of a classifier that
+ * is in the classifier list of the instance specification
+ * @param value
+ * the string value. An enumeration can be configured via the name of the literal
+ */
+ public static void configureProperty(InstanceSpecification instance, ENamedElement property, String value) {
+ configureProperty(instance, property.getName(), value);
+ }
+
+ /**
+ * Configure an attribute of an instance specification
+ *
+ * @param instance
+ * the instance specification
+ * @param propertyName
+ * the name of an attribute of a classifier that is in the classifier list
+ * of the instance specification
+ * @param value
+ * the string value. An enumeration can be configured via the name of the literal
+ */
+ public static void configureProperty(InstanceSpecification instance, String propertyName, String value) {
+ Classifier extension = DepUtils.getClassifier(instance);
+ Property attribute = (Property) Utils.getNamedElementFromList(extension.getAllAttributes(), propertyName);
+ if (attribute == null) {
+ throw new RuntimeException(String.format(Messages.DepPlanUtils_CannotFindAttribute, propertyName, extension.getName()));
+ }
+ configureProperty(instance, attribute, value);
+ }
+
+ /**
+ * Configure an attribute of an instance specification
+ *
+ * @param instance
+ * the instance specification
+ * @param attribute
+ * an attribute of a classifier that is in the classifier list of the instance specification
+ * @param value
+ * the string value. An enumeration can be configured via the name of the literal
+ */
+ public static void configureProperty(InstanceSpecification instance, Property attribute, String value) {
+ if (attribute.getType() instanceof Enumeration) {
+ configureEnumProperty(instance, attribute, value);
+ }
+ else {
+ // create a slot for a string value
+ Slot slotStringVal = DepCreation.createSlotForConfigProp(instance, attribute);
+ if (slotStringVal.getValues().get(0) instanceof LiteralString) {
+ ((LiteralString) slotStringVal.getValues().get(0)).setValue(value);
+ }
+ else {
+ // indicates that operation has been called although types do not match
+ throw new RuntimeException(String.format(Messages.DepPlanUtils_ConfigOfPropertyFailed, attribute.getName()));
+ }
+ }
+ }
+
+ /**
+ * Configure an attribute of an instance specification
+ *
+ * @param instance
+ * the instance specification
+ * @param property
+ * An ENamedElement denoting the name of an attribute of a classifier that
+ * is in the classifier list of the instance specification
+ * @param value
+ * the integer value.
+ */
+ public static void configureProperty(InstanceSpecification instance, ENamedElement property, int value) {
+ configureProperty(instance, property.getName(), value);
+ }
+
+ /**
+ * Configure an attribute of an instance specification
+ *
+ * @param instance
+ * the instance specification
+ * @param propertyName
+ * the name of an attribute of a classifier that is in the classifier list
+ * of the instance specification
+ * @param value
+ * the integer value.
+ */
+ public static void configureProperty(InstanceSpecification instance, String propertyName, int value) {
+ Classifier extension = DepUtils.getClassifier(instance);
+ Property attribute = (Property) Utils.getNamedElementFromList(extension.getAllAttributes(), propertyName);
+ if (attribute == null) {
+ throw new RuntimeException(String.format(Messages.DepPlanUtils_CannotFindAttribute, propertyName, extension.getName()));
+ }
+ configureProperty(instance, attribute, value);
+ }
+
+ /**
+ * Configure an attribute of an instance specification
+ *
+ * @param instance
+ * the instance specification
+ * @param attribute
+ * an attribute of a classifier that is in the classifier list of the instance specification
+ * @param value
+ * the integer value.
+ */
+ public static void configureProperty(InstanceSpecification instance, Property attribute, int value) {
+ Slot slotIntVal = instance.createSlot();
+ slotIntVal.setDefiningFeature(attribute);
+ LiteralInteger intValue = (LiteralInteger)
+ slotIntVal.createValue("value for " + attribute.getName(), attribute.getType(), UMLPackage.eINSTANCE.getLiteralInteger()); //$NON-NLS-1$
+ intValue.setValue(value);
+ }
+
+ /**
+ * Convenience function: allow that an ECore named element is passed instead of a property name. This is useful if the
+ * parameter that should be configured stems from a static profile
+ *
+ * @param instance
+ * The instance of which an attribute should be configured.
+ * @param property
+ * The name of the property (denoted by an ENamedElement) that should be configured
+ * @param value
+ * its value in form of an element of an ECore enumerator value
+ */
+ public static void configureProperty(InstanceSpecification instance, ENamedElement property, Enumerator value) {
+ configureProperty(instance, property.getName(), value);
+ }
+
+ /**
+ * Configure a property for an enumeration. Enumerations are a bit difficult to handle, since the enumeration literal itself
+ * must be created first in form of an instance specification
+ *
+ * @param instance
+ * The instance of which an attribute should be configured.
+ * @param propertyName
+ * The name of the property that should be configured
+ * @param value
+ * its value in form of an element of an ECore enumerator value
+ */
+ public static void configureProperty(InstanceSpecification instance, String propertyName, Enumerator value) {
+ configureProperty(instance, propertyName, value.getName());
+ }
+
+ /**
+ * Configure a property for an enumeration. Enumerations are a bit difficult to handle, since the enumeration literal itself
+ * must be created first in form of an instance specification.
+ *
+ * @param instance
+ * The instance of which an attribute should be configured.
+ * @param propertyName
+ * The name of the property that should be configured
+ * @param value
+ * its value in form of an String. The function does nothing, if no literal corresponds to the passed
+ * String
+ */
+ public static void configureEnumProperty(InstanceSpecification instance, String propertyName, String literalName) {
+ Classifier extension = DepUtils.getClassifier(instance);
+ Property attribute = (Property) Utils.getNamedElementFromList(extension.getAllAttributes(), propertyName);
+ if (attribute == null) {
+ throw new RuntimeException(String.format(Messages.DepPlanUtils_CannotFindAttribute, propertyName, extension.getName()));
+ }
+ configureEnumProperty(instance, attribute, literalName);
+ }
+
+ public static void configureEnumProperty(InstanceSpecification instance, Property attribute, String literalName) {
+ if (attribute.getType() instanceof Enumeration) {
+ Enumeration enumeration = (Enumeration) attribute.getType();
+ for (EnumerationLiteral enumLiteral : enumeration.getOwnedLiterals()) {
+ if (enumLiteral.getLabel().equals(literalName)) {
+ Slot slotEnumVal = instance.createSlot();
+ slotEnumVal.setDefiningFeature(attribute);
+ InstanceValue enumLitValue = (InstanceValue)
+ slotEnumVal.createValue("value for " + attribute.getName(), attribute.getType(), UMLPackage.eINSTANCE.getInstanceValue()); //$NON-NLS-1$
+ enumLitValue.setInstance(enumLiteral);
+ break;
+ }
+ }
+ }
+ }
+
+ /**
+ * Update the names of instances within a deployment plan to correspond to changes
+ * in the hierarchy. In particular, flattening of interaction components requires this update.
+ *
+ * @param composite
+ * System composite
+ */
+ public static void updateInstanceNames(InstanceSpecification instance, String name) {
+ instance.setName(name);
+ for (Slot slot : instance.getSlots()) {
+ InstanceSpecification subInstance = DepUtils.getInstance(slot);
+ StructuralFeature sf = slot.getDefiningFeature();
+ if ((subInstance != null) && !DepUtils.isShared(slot)) {
+ updateInstanceNames(subInstance, name + DeployConstants.SEP_CHAR + sf.getName());
+ }
+ }
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/DepUtils.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/DepUtils.java
new file mode 100644
index 00000000000..9d687ed40d1
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/DepUtils.java
@@ -0,0 +1,564 @@
+package org.eclipse.papyrus.qompass.designer.core.deployment;
+
+import java.util.Iterator;
+import java.util.Stack;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.UniqueEList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+import org.eclipse.papyrus.FCM.CodeGenOptions;
+import org.eclipse.papyrus.FCM.DeploymentPlan;
+import org.eclipse.papyrus.FCM.ImplementationGroup;
+import org.eclipse.papyrus.FCM.ImplementationProperties;
+import org.eclipse.papyrus.FCM.InteractionComponent;
+import org.eclipse.papyrus.FCM.Target;
+import org.eclipse.papyrus.qompass.designer.core.ElementFilter;
+import org.eclipse.papyrus.qompass.designer.core.Utils;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.uml2.common.util.UML2Util;
+import org.eclipse.uml2.uml.AggregationKind;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.DirectedRelationship;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Generalization;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.InstanceValue;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PackageableElement;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Slot;
+import org.eclipse.uml2.uml.StructuralFeature;
+import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.ValueSpecification;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * Utilities around instances (within deployment plan)
+ * [DepPlanUtils?]
+ * [but missing: creation, ..., allocation?]
+ * Structuration ??
+ *
+ * @author ansgar
+ *
+ */
+public class DepUtils {
+
+ /**
+ * Check whether a class is an eligible implementation for a certain node, i.e.
+ * has compatible requirements.
+ * Requires that setCurrentNode has been called earlier
+ * TODO: how does that work with connector reification between distributeToNode has been
+ * called??!
+ *
+ * @param implemCandidate
+ * @return
+ */
+ public static boolean isImplEligible(Class implemCandidate, EList<InstanceSpecification> nodes) {
+ if (!Utils.isCompImpl(implemCandidate)) {
+ return false;
+ }
+ if (nodes != null) {
+ // now check properties
+ if (nodes.size() > 1) {
+ // indicates distribution
+ InteractionComponent connImpl = UMLUtil.getStereotypeApplication(implemCandidate, InteractionComponent.class);
+ // if a connector implementation, it must support distribution (in case of multiple nodes)
+ // TODO: criteria is not optimal, since a composite may be deployed on multiple nodes,
+ // but a contained connector might still only connect local parts.
+ if (connImpl != null) {
+ if (!connImpl.isForDistribution()) {
+ return false;
+ }
+ }
+ }
+ // must fit requirements of all nodes
+ for (InstanceSpecification nodeInstance : nodes) {
+ Target target = UMLUtil.getStereotypeApplication(nodeInstance, Target.class);
+ if (target == null) {
+ // no target information on instance => try to get this
+ // information from the node referenced by the instance
+ target = UMLUtil.getStereotypeApplication(DepUtils.getClassifier(nodeInstance), Target.class);
+ }
+ if (target != null) {
+ ImplementationProperties implProps = UMLUtil.getStereotypeApplication(implemCandidate, ImplementationProperties.class);
+ if (implProps != null) {
+ if (!implProps.getArch().contains(target.getTargetArch())) {
+ return false;
+ }
+ // TODO: check OS and size as well!
+ }
+ }
+ }
+ }
+ return true;
+ }
+
+ /**
+ * Find a sub instance via its name. This is in particular useful for connectors that cannot be
+ * found via a slot, since UML only supports structural features (a connector is only a feature)
+ * in the definingFeature attribute of a slot.
+ *
+ * @param owningInstance
+ * an owning instance
+ * @param name
+ * name of the sub-element (unqualified)
+ * @return the found sub-instance or null
+ */
+ public static InstanceSpecification getNamedSubInstance(InstanceSpecification owningInstance, String name) {
+ Element cdp = owningInstance.getOwner();
+ String candidateName = owningInstance.getName() + "." + name; //$NON-NLS-1$
+ if (cdp instanceof Package) {
+ for (PackageableElement instance : ((Package) cdp).getPackagedElements()) {
+ if (instance instanceof InstanceSpecification) {
+ InstanceSpecification candidate = (InstanceSpecification) instance;
+
+ if (candidateName != null) {
+ if (candidateName.equals(candidate.getName())) {
+ return candidate;
+ }
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Automatically choose an implementation, i.e. if the passed classifier
+ * (1) is already an implementation, simply return it
+ * (2) is an implementation group, choose the first implementation that fits the requirements
+ * (3) is a type: choose the first implementation among the heirs that fits the requirements
+ *
+ * @param componentType
+ * a component type or implementation (class, optionally abstract)
+ * @param nodes
+ * a set of instance specification representing nodes on which this component will be allocated
+ * @param chooser
+ * A chooser for an implementation in case of multiple candidates
+ * @return a suitable implementation
+ */
+ public static Class chooseImplementation(Class componentType, EList<InstanceSpecification> nodes, ImplementationChooser chooser) {
+ // choose implementation automatically: get the first one that implements the passed type
+ // get reference to component model, then search all classes contained in it.
+ // TODO: assumption that implementations are in same package as type;
+
+ EList<Class> implList = new BasicEList<Class>();
+ if (StereotypeUtil.isApplied(componentType, ImplementationGroup.class)) {
+ for (Property groupAttribute : componentType.getAttributes()) {
+ Type implClass = groupAttribute.getType();
+ if ((implClass instanceof Class) && isImplEligible((Class) implClass, nodes)) {
+ InteractionComponent connImpl = UMLUtil.getStereotypeApplication(implClass, InteractionComponent.class);
+ if ((connImpl != null) && connImpl.isForDistribution()) {
+ // only add distributed connector, if distributed
+ // don't put check into
+ if (nodes.size() > 1) {
+ implList.add((Class) implClass);
+ }
+ }
+ else {
+ implList.add((Class) implClass);
+ }
+ }
+ }
+ } else if (Utils.isCompImpl(componentType)) {
+ // check this after implementation group, since the latter inherits from component implementation
+ return componentType;
+ } else if (Utils.isCompType(componentType)) {
+ for (DirectedRelationship relship : componentType.getTargetDirectedRelationships()) {
+ if (relship instanceof Generalization) {
+ Classifier source = ((Generalization) relship).getSpecific();
+ if (source instanceof Class) {
+ Class implClass = (Class) source;
+ if (isImplEligible(implClass, nodes)) {
+ implList.add(implClass);
+ }
+ }
+ }
+ }
+ }
+ if (implList.size() == 0) {
+ return null;
+ } else if (implList.size() == 1) {
+ return implList.get(0);
+ } else if (chooser != null) {
+ Class impl = chooser.chooseImplementation(componentType, implList);
+ if (impl != null) {
+ return impl;
+ }
+ } else if (implList.size() > 0) {
+ return implList.get(0);
+ }
+ return null;
+ }
+
+ /**
+ * return an instance specification for the main instance within
+ * a package.
+ *
+ * @param cdp
+ * the deployment plan
+ */
+ public static InstanceSpecification getMainInstance(Package cdp) {
+ DeploymentPlan dp = UMLUtil.getStereotypeApplication(cdp, DeploymentPlan.class);
+ return dp.getMainInstance();
+ }
+
+ /**
+ * Check whether an instance specification is a top-level instance, i.e. not referenced
+ * by another one.
+ * @param is an instance specification
+ */
+ public static boolean isTopLevelInstance(InstanceSpecification is) {
+ return getReferencingSlots(is).size() == 0;
+ }
+
+ /**
+ * Apply the stereotype deployment plan and set the mainInstance value
+ *
+ * @param cdp
+ * the deployment plan
+ * @param main
+ * instance the top-level instance specification of the plan
+ */
+ public static void setMainInstance(Package cdp, InstanceSpecification mainInstance) {
+ StereotypeUtil.apply(cdp, DeploymentPlan.class);
+ DeploymentPlan dp = UMLUtil.getStereotypeApplication(cdp, DeploymentPlan.class);
+ dp.setMainInstance(mainInstance);
+ }
+
+ /**
+ * return the implementation associated with an instance specification, i.e. a
+ * Class.
+ *
+ * @param instance
+ * @return
+ */
+ public static Class getImplementation(InstanceSpecification instance) {
+ Classifier cl = getClassifier(instance);
+ if (cl instanceof Class) {
+ return (Class) cl;
+ }
+ return null;
+ }
+
+ /**
+ * Small helper function
+ *
+ * @param instance
+ * an instance specification
+ * @return returns true, if the stereotype ConnectorComp
+ * is applied to the classifier associated with an instance specification
+ */
+ public static boolean isConnector(InstanceSpecification instance) {
+ Classifier cl = getClassifier(instance);
+ return StereotypeUtil.isApplied(cl, InteractionComponent.class);
+ }
+
+ /**
+ * Return the first classifier referenced by an instance specification. Whereas UML supports
+ * a set of classifiers, we assume that that an instance specification has only one.
+ *
+ * @param instance
+ * the instance, for which we are interested in type information
+ */
+ public static Classifier getClassifier(InstanceSpecification instance) {
+ Iterator<Classifier> classifierIt = instance.getClassifiers().iterator();
+ // simply return the first element (if there is any)
+ if (classifierIt.hasNext()) {
+ return classifierIt.next();
+ }
+ return null;
+ }
+
+ /**
+ * Return the first instance specification within a deployment plan that instantiates a given
+ * classifier
+ *
+ * @param cdp
+ * the deployment plan
+ * @param cl
+ * the classifier
+ * @return
+ */
+ public static InstanceSpecification getInstanceForClassifier(Package cdp, Classifier cl) {
+ for (PackageableElement pe : cdp.getPackagedElements()) {
+ if (pe instanceof InstanceSpecification) {
+ InstanceSpecification is = (InstanceSpecification) pe;
+ if (getClassifier(is) == cl) {
+ return is;
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Return the (unique) list of implementations that are contained within an
+ * instance specification
+ */
+ public static EList<Classifier> getContainedImplementations(InstanceSpecification is) {
+ Iterator<InstanceSpecification> instances = getContainedInstances(is).iterator();
+ EList<Classifier> list = new UniqueEList<Classifier>();
+ while (instances.hasNext()) {
+ Classifier implementation = getClassifier(instances.next());
+ list.add(implementation);
+ }
+ return list;
+ }
+
+ /**
+ * Return the slot that is associated with a property
+ *
+ * @param is
+ * an instance specification (of a class having properties)
+ * @param property
+ * A property of the classifier associated with the passed instance specification
+ * @return the associated slot or null, if it does not exist
+ */
+ public static Slot getSlot(InstanceSpecification is, Property property) {
+ for (Slot slot : is.getSlots()) {
+ if (slot.getDefiningFeature() == property) {
+ return slot;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Return the instance referenced by a slot value, i.e. the first instance value associated
+ * with a slot
+ *
+ * @param slot
+ * @return
+ */
+ public static InstanceSpecification getInstance(Slot slot) {
+ for (ValueSpecification value : slot.getValues()) {
+ // instances are accessible via ValueSpecification subclass InstanceValue
+ if (value instanceof InstanceValue) {
+ return ((InstanceValue) value).getInstance();
+ }
+ }
+ return null;
+ }
+
+ /**
+ * This method returns the instances contained within a composite instance
+ * specification for an assembly.
+ */
+ public static EList<InstanceSpecification> getContainedInstances(InstanceSpecification is) {
+ EList<InstanceSpecification> contained = new BasicEList<InstanceSpecification>();
+ for (Slot slot : is.getSlots()) {
+ InstanceSpecification instance = getInstance(slot);
+ if (instance != null) {
+ contained.add(instance);
+ }
+ }
+ return contained;
+ }
+
+ /**
+ * This method returns the instances contained within a composite instance
+ * specification for an assembly. Unlike @see getContainedInstances, this method only
+ * returns contained instances that are not shared.
+ */
+ public static EList<InstanceSpecification> getContainedNonSharedInstances(InstanceSpecification is) {
+ EList<InstanceSpecification> contained = new BasicEList<InstanceSpecification>();
+ for (Slot slot : is.getSlots()) {
+ InstanceSpecification instance = getInstance(slot);
+ if ((instance != null) && !DepUtils.isShared(slot)) {
+ contained.add(instance);
+ }
+ }
+ return contained;
+ }
+
+ /**
+ * return all slots that reference an instance specification
+ *
+ * @param is
+ * @return
+ */
+ public static EList<Slot> getReferencingSlots(InstanceSpecification is) {
+ EList<Slot> list = new BasicEList<Slot>();
+ for (Setting setting : UML2Util.getNonNavigableInverseReferences(is)) {
+ EObject eObj = setting.getEObject();
+ if (eObj instanceof ValueSpecification) {
+ ValueSpecification vs = (ValueSpecification) eObj;
+ Element owner = vs.getOwner();
+ if (owner instanceof Slot) {
+ list.add((Slot) owner);
+ }
+ }
+ }
+ return list;
+ }
+
+ /**
+ * Return a slot for a given instance specification. The slot is the first one in a list of slots
+ * whose value points to the passed instance.
+ *
+ * @param is
+ * an instance that is contained within an composite (i.e. that
+ * belongs to a part of this composite).
+ * @return
+ */
+ public static Slot getParentSlot(InstanceSpecification is) {
+ for (Slot slot : getReferencingSlots(is)) {
+ if (slot.getDefiningFeature() instanceof Property) {
+ if (((Property) slot.getDefiningFeature()).getAggregation() == AggregationKind.COMPOSITE_LITERAL) {
+ return slot;
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Return an instance specification that refers to the composite in which the
+ * passed instance is contained
+ *
+ * @param is
+ * an instance that is contained within an composite (i.e. that
+ * belongs to a part of this composite).
+ * @return
+ */
+ public static InstanceSpecification getParentIS(InstanceSpecification is) {
+ Slot parentSlot = getParentSlot(is);
+ if (parentSlot != null) {
+ return parentSlot.getOwningInstance();
+ }
+ return null;
+ }
+
+ /**
+ * Return the access path in terms of slots to an instance specification, i.e. the
+ * set of slots starting with the slot within the main instance that identifies the next
+ * instance until arriving at the passed instance.
+ *
+ * @param is
+ * @return
+ */
+ public static Stack<Slot> getAccessPath(InstanceSpecification is) {
+ Stack<Slot> path = new Stack<Slot>();
+ while (is != null) {
+ Slot parentSlot = getParentSlot(is);
+ if (parentSlot == null) {
+ break;
+ }
+ path.insertElementAt(parentSlot, 0);
+ is = parentSlot.getOwningInstance();
+ }
+ return path;
+ }
+
+ /**
+ * Return true, if an instance is shared
+ *
+ * @param slot
+ * @return
+ */
+ public static boolean isShared(Slot slot) {
+ StructuralFeature df = slot.getDefiningFeature();
+ if (df instanceof Property) {
+ return ((Property) df).getAggregation() == AggregationKind.SHARED_LITERAL;
+ }
+ return false;
+ }
+
+ /**
+ * Determine which programming language should be generated for a classifier. The
+ * stereotype CodeGenOptions (which could be on any owning package) is evaluated.
+ *
+ * @param pkg
+ * a classifier
+ * @return the programming language
+ */
+ public static String getLanguageFromPackage(Package pkg) {
+ CodeGenOptions codeGenOpt = UMLUtil.getStereotypeApplication(pkg, CodeGenOptions.class);
+ if ((codeGenOpt != null) && (codeGenOpt.getProgLanguage() != null)) {
+ return codeGenOpt.getProgLanguage().getBase_Class().getName();
+ }
+ else if (pkg.getOwner() instanceof Package) {
+ return getLanguageFromPackage((Package) pkg.getOwner());
+ }
+ else {
+ return null;
+ }
+ }
+
+ /**
+ * Return the target language when given the mainInstance
+ * @param mainInstance the mainInstance of an application
+ * @return target language
+ */
+ public static String getTargetLanguage(InstanceSpecification mainInstance) {
+ Classifier cl = DepUtils.getClassifier(mainInstance);
+ String targetLanguage = DepUtils.getLanguageFromPackage(cl.getNearestPackage());
+ if (targetLanguage == null) {
+ targetLanguage = "C++"; //$NON-NLS-1$
+ }
+ return targetLanguage;
+ }
+
+ /**
+ * Determine the component to OO language. The stereotype CodeGenOptions
+ * (which could be on any owning package) is evaluated.
+ *
+ * @param pkg
+ * a classifier
+ * @return the programming language
+ */
+ public static String getOOTransformationFromPackage(Package pkg) {
+ CodeGenOptions codeGenOpt = UMLUtil.getStereotypeApplication(pkg, CodeGenOptions.class);
+ if ((codeGenOpt != null) && (codeGenOpt.getProgLanguage() != null)) {
+ return codeGenOpt.getCompToOOmapping().getBase_Class().getName();
+ }
+ else if (pkg.getOwner() instanceof Package) {
+ return getLanguageFromPackage((Package) pkg.getOwner());
+ }
+ else {
+ return null;
+ }
+ }
+
+ /**
+ * Get all instances within a package that comply with a filter criterion. Recurse into sub-packages.
+ *
+ * @param pkg
+ * Starting package for search
+ * @param instanceList
+ * list of instances
+ * @param filter
+ * filter criterion.
+ */
+ public static void getAllInstances(Package pkg, EList<InstanceSpecification> instanceList, ElementFilter filter) {
+ for (PackageableElement el : pkg.getPackagedElements()) {
+ if (el instanceof Package) {
+ getAllInstances((Package) el, instanceList, filter);
+ }
+ else if (el instanceof InstanceSpecification) {
+ InstanceSpecification instance = (InstanceSpecification) el;
+ if (filter.acceptElement(instance)) {
+ instanceList.add(instance);
+ }
+ }
+ }
+ }
+
+ /**
+ * Return the first value for a slot.
+ *
+ * @param slot
+ * the slot for which the first value should be returned.
+ * @return
+ */
+ public static ValueSpecification firstValue(Slot slot) {
+ if (slot.getValues().size() > 0) {
+ return slot.getValues().get(0);
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/Deploy.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/Deploy.java
new file mode 100644
index 00000000000..45ae01fc3db
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/Deploy.java
@@ -0,0 +1,188 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.deployment;
+
+import java.util.Stack;
+
+import org.eclipse.papyrus.qompass.designer.core.Messages;
+import org.eclipse.papyrus.qompass.designer.core.extensions.InstanceConfigurator;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Slot;
+import org.eclipse.uml2.uml.StructuralFeature;
+
+/*
+ * This file is part of Qompass GenTools
+ * Copyright (C) 2008 CEA LIST (http://www-list.cea.fr/)
+
+ * initial developer : Ansgar Radermacher, Christophe JOUVRAY from CEA LIST
+ */
+
+public class Deploy {
+
+ /**
+ * distribute an instance, its contained sub-instances and the referenced
+ * classifiers to a certain target node
+ *
+ * @param copier
+ * lazy copier from intermediate to target model
+ * @param gatherConfigData
+ * an implementation that is able to gather configuration data (e.g. information about dependencies to external libraries) that will be used for project configuration
+ * @param node
+ * the instance specification of the target node
+ * @param nodeIndex
+ * the index of the target node (used for bootloader generation)
+ * @param numberOfNodes
+ * the total number of indexes (used for bootloader generation)
+ * @throws TransformationException
+ */
+ public Deploy(LazyCopier copier, GatherConfigData gatherConfigData, InstanceSpecification node,
+ int nodeIndex, int numberOfNodes)
+ throws TransformationException {
+ bootLoaderGen = new BootLoaderGen(copier, nodeIndex, numberOfNodes);
+ bootLoaderGen.addCreateConnections();
+
+ this.node = node;
+
+ // change to flat copy eventually later (not yet working)
+ depInstance = new PartialCopy();
+
+ depInstance.init(copier, bootLoaderGen, node);
+
+ // set a copy listener in order to assure that indirectly added classes
+ // are taken into account as well
+ this.copier = copier;
+ copier.preCopyListeners.add(gatherConfigData);
+ }
+
+ public void finalize(String language) {
+ bootLoaderGen.addInit(language);
+ }
+
+ /**
+ * distribute an instance, its contained sub-instances and the referenced
+ * classifiers to a certain node
+ *
+ * @param instance
+ * the specification of the instance to distribute
+ * @return the instance specification in the target model
+ * @throws TransformationException
+ */
+ public InstanceSpecification distributeToNode(InstanceSpecification instance)
+ throws TransformationException {
+ Stack<Slot> slotPath = new Stack<Slot>();
+ InstanceSpecification newIS = distributeToNode(false, slotPath, instance);
+
+ return newIS;
+ }
+
+ /**
+ * Distribute an instance specification to the node by this
+ *
+ * @param allocAll
+ * @param slotPath
+ * @param instance
+ * @throws TransformationException
+ */
+ public InstanceSpecification distributeToNode(boolean allocAll, Stack<Slot> slotPath, InstanceSpecification instance)
+ throws TransformationException {
+
+ // once an instance is explicitly allocated on a partition (use of getNodes instead of getAllNodes)
+ // all of its sub-instances are allocated on the node as well
+
+ if (AllocUtils.getNodesOrThreads(instance).contains(node)) {
+ allocAll = true;
+ }
+
+ // obtain implementation within source model
+ Classifier smImplementation = DepUtils.getClassifier(instance);
+ if (smImplementation == null) {
+ throw new TransformationException(String.format(
+ Messages.Deploy_0, instance.getName()));
+ }
+
+ // copy implementation into node specific model
+ InstanceSpecification tmInstance = depInstance.deployInstance(instance, slotPath);
+ Classifier tmImplementation = DepUtils.getClassifier(tmInstance);
+ // Classifier tmImplementation = copy.getCopy(smImplementation);
+
+ for (Slot slot : instance.getSlots()) {
+ InstanceSpecification containedInstance = DepUtils.getInstance(slot);
+
+ if (containedInstance != null) {
+ if (!DepUtils.isShared(slot)) {
+ StructuralFeature sf = slot.getDefiningFeature();
+ boolean viaAllocAll = allocAll;
+ if (allocAll && (sf instanceof Property)) {
+ // only take allocation of parent instance into account, if composition
+ // However, problematic, since code gets copied anyway.
+ // viaAllocAll = (((Property) sf).getAggregation() == AggregationKind.COMPOSITE_LITERAL);
+ }
+ if (viaAllocAll || AllocUtils.getAllNodes(containedInstance).contains(node)) {
+ slotPath.push(slot);
+ if (sf instanceof Property) {
+ // place configurator before recursive call. Otherwise
+ // values put here would be ignored.
+ // TODO: instances are not copied to node model. Thus, the instances here are the same as in the
+ // configuration on the intermediate model.
+ // TODO: MIX of bootloaderGeneration and splitting.
+ InstanceConfigurator.configureInstance(containedInstance, (Property) sf, tmInstance);
+ }
+ // distribute subInstance
+ distributeToNode(allocAll, slotPath, containedInstance);
+ slotPath.pop();
+ }
+ } else if (allocAll || AllocUtils.getAllNodes(containedInstance).contains(node)) {
+ slotPath.push(slot);
+ // bootLoaderGen.instanceConfig(slotPath, instance);
+ bootLoaderGen.addInstance(slotPath, containedInstance, null, node);
+ slotPath.pop();
+ }
+ } else {
+ // slot contains configuration of primitive attribute (no
+ // sub-instance, but primitive value)
+ slotPath.push(slot);
+ bootLoaderGen.instanceConfig(slotPath, instance);
+ slotPath.pop();
+ }
+ }
+
+ // ... and add the instance to the bootloader (this is done after
+ // copying the slots to
+ // ensure that the bootloader generator has the information about
+ // contained parts & connectors
+ // TODO: really necessary?
+ if (tmImplementation instanceof Class) {
+ bootLoaderGen.addInstance(slotPath, instance, (Class) tmImplementation, node);
+ }
+ return tmInstance;
+ }
+
+ public Class getBootloader() {
+ return bootLoaderGen.getUML();
+ }
+
+ protected BootLoaderGen bootLoaderGen;
+
+ protected InstanceSpecification node;
+
+ protected InstanceDeployer depInstance;
+
+ protected LazyCopier copier;
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/DeployConstants.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/DeployConstants.java
new file mode 100644
index 00000000000..0c087999818
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/DeployConstants.java
@@ -0,0 +1,14 @@
+package org.eclipse.papyrus.qompass.designer.core.deployment;
+
+public class DeployConstants {
+
+ public static final String singletonPrefix = "singleton_"; //$NON-NLS-1$
+ public static final String COMPONENT_MODEL = "ComponentModel"; //$NON-NLS-1$
+ public static final String depPlanFolder = "deployment"; //$NON-NLS-1$
+ public static final String depPlanFolderHw = "platform"; //$NON-NLS-1$
+ public static final String DepPlanPostfix = "DepPlan"; //$NON-NLS-1$
+ public static final String DepPlanPostfixHw = "Platform"; //$NON-NLS-1$
+ public static final String MAIN_INSTANCE = "mainInstance"; //$NON-NLS-1$
+ public static final String SEP_CHAR = "."; //$NON-NLS-1$
+ public static final String AUTO_POSTFIX = "_auto"; //$NON-NLS-1$
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/GatherConfigData.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/GatherConfigData.java
new file mode 100644
index 00000000000..62574661a24
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/GatherConfigData.java
@@ -0,0 +1,64 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.deployment;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.codegen.extensionpoints.AbstractSettings;
+import org.eclipse.papyrus.codegen.extensionpoints.ILangProjectSupport;
+import org.eclipse.papyrus.qompass.designer.core.listeners.PreCopyListener;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
+import org.eclipse.uml2.uml.Class;
+
+/**
+ * Gather configuration data for a code generation project
+ * In particular, a class might be stereotyped to provide additional information
+ * about required compilation options (in case of C++ include paths, libraries, ...)
+ *
+ * @author ansgar
+ */
+public class GatherConfigData implements PreCopyListener {
+
+ /**
+ * Gather configuration data for a code generation project
+ * Constructor.
+ *
+ * @param projectSupport
+ * A reference to a class providing the language support interface
+ */
+ public GatherConfigData(ILangProjectSupport projectSupport) {
+ this.projectSupport = projectSupport;
+ settings = projectSupport.initialConfigurationData();
+ }
+
+ @Override
+ public EObject preCopyEObject(LazyCopier copy, EObject sourceEObj) {
+ if (sourceEObj instanceof Class) {
+ projectSupport.gatherConfigData((Class) sourceEObj, settings);
+ }
+ return sourceEObj;
+ }
+
+ /**
+ * Return the settings that have been gathered
+ * @return
+ */
+ public AbstractSettings getSettings() {
+ return settings;
+ }
+
+ protected ILangProjectSupport projectSupport;
+
+ protected AbstractSettings settings;
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/ImplementationChooser.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/ImplementationChooser.java
new file mode 100644
index 00000000000..a80a4d4a5df
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/ImplementationChooser.java
@@ -0,0 +1,34 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.deployment;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.uml2.uml.Class;
+
+/**
+ * Choose a component implementation for a given component type
+ */
+public interface ImplementationChooser {
+ /**
+ * Choose a component implementation from a list of available implementations
+ *
+ * @param componentType
+ * a (abstract) component
+ * @param implList
+ * a list of available component implementations
+ * @return the chosen implementation.
+ */
+ public Class chooseImplementation(Class componentType, EList<Class> implList);
+};
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/InstanceDeployer.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/InstanceDeployer.java
new file mode 100644
index 00000000000..eaf07e3b0a7
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/InstanceDeployer.java
@@ -0,0 +1,63 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.deployment;
+
+import java.util.Stack;
+
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.Slot;
+
+/**
+ * Deploy an instance (on a certain node). This operation is specifically non recursive
+ *
+ * @author ansgar
+ *
+ */
+public interface InstanceDeployer {
+
+ /**
+ * Initialize the deployment
+ *
+ * @param sat
+ * information about source and target model
+ * @param bootloader
+ * the bootloader generator, which will contain instance information
+ * @param node
+ * the node onto which the allocation should be done.
+ */
+ public void init(LazyCopier sat, BootLoaderGen bootloader, InstanceSpecification node);
+
+ /**
+ * Deploy an instance and copy the required classes into the target model.
+ * In case of a composite (assembly) class that is partially deployed on a target node
+ * (i.e. a subset of its parts is deployed on the target node, but not composite itself),
+ * this function may only partially copy the class or omit it completely.
+ * Parts and connections are not copied in the first place to take care of partially
+ * deployed composites and added when needed.
+ * Therefore, this function is also responsible for creating the part associated with the
+ * instance in the owning composite class and eventually complete connections within the
+ * composites.
+ *
+ * @param is
+ * an instance (UML instance specification) within the deployment plan
+ * @param slotPath
+ * a list (stack) of slots starting from the main instance
+ * @return the classifier modified for deployment
+ * @throws TransformationException
+ */
+ public InstanceSpecification deployInstance(InstanceSpecification is, Stack<Slot> slotPath) throws TransformationException;
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/PartialCopy.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/PartialCopy.java
new file mode 100644
index 00000000000..6e8f10248fc
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/PartialCopy.java
@@ -0,0 +1,126 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.deployment;
+
+import java.util.Stack;
+
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
+import org.eclipse.papyrus.uml.tools.utils.ConnectorUtil;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Connector;
+import org.eclipse.uml2.uml.ConnectorEnd;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Slot;
+
+/**
+ * Copy a composite class while taking into account node allocation, i.e. only
+ * copy parts that are deployed on a certain node (properties that are not typed
+ * by a component are always copied). This function may be called several times
+ * and will successively add parts that are required. If the same composite
+ * (class level) is used in two different contexts, e.g. a socket connector
+ * serving as client and server on the same node (for the same interface), the
+ * resulting composite will be complete. On the instance level however, such as
+ * composite is sub-optimal, since their are two different instances that use a
+ * different subset. These cases are not very critical, since unused parts are
+ * not instantiated (overhead = pointer)
+ *
+ * The function will change assembly composites
+ *
+ * @author ansgar
+ *
+ */
+public class PartialCopy implements InstanceDeployer {
+
+ @Override
+ public void init(LazyCopier copy, BootLoaderGen bootloader,
+ InstanceSpecification node) {
+ this.copy = copy;
+ this.node = node; // only needed for debug output
+ // add copy listeners ---
+ // 1. only add required parts
+ // does nothing for the moment
+ }
+
+ @Override
+ public InstanceSpecification deployInstance(InstanceSpecification is, Stack<Slot> slotPath) throws TransformationException {
+ Classifier classifier = DepUtils.getClassifier(is);
+
+ // only make a partial copy of the system class (slotPath size 0) for the moment.
+ if (!(classifier instanceof Class) || slotPath.size() > 0) {
+ return copy.getCopy(is);
+ }
+ if (AllocUtils.getNodes(is).contains(node)) {
+ return copy.getCopy(is);
+ }
+
+ Class smCl = (Class) classifier;
+
+ // create parts in target model, if allocated.
+ for (Slot slot : is.getSlots()) {
+ copyPart(smCl, slot);
+ }
+ // since we copied some of its attributes, the copy class created a shallow copy of the class itself
+ InstanceSpecification tmIS = (InstanceSpecification) copy.get(is);
+ return tmIS;
+ }
+
+ /**
+ * copy a part of a classifier, without being recursive [shouldn't that be in the generic deploy part?]
+ * This function is called, whenever a sub-instance is deployed
+ * Brainstorming: add containing composite to deployInstance? (in this case, deployInstance could create the
+ * part in the containing composite, if it does not exist yet)
+ *
+ * @param cl
+ * @param newCl
+ * @param slot
+ * @param allocAll
+ * @throws TransformationException
+ */
+ protected void copyPart(Class smCl, Slot slot) throws TransformationException {
+ Property smPart = (Property) slot.getDefiningFeature();
+ // Log.log(Status.INFO, Log.DEPLOYMENT, "smCl:" + smCl.getQualifiedName ());
+ // Log.log(Status.INFO, Log.DEPLOYMENT, "tmCl:" + tmCl.getQualifiedName ());
+
+ // String partName = smPart.getName();
+ InstanceSpecification instanceOrThread = DepUtils.getInstance(slot);
+ // instance may be null, if slot refers to a basic type, e.g. a string
+ if ((instanceOrThread == null) || AllocUtils.getNodes(instanceOrThread).contains(node)) {
+ copy.copy(slot);
+
+ // add connectors when possible, i.e. connectors that target the newly added part
+ for (Connector smConnector : smCl.getOwnedConnectors()) {
+ // check whether the newly added property enables the addition of connectors
+ // that connect this port.
+ if (ConnectorUtil.connectsPart(smConnector, smPart)) {
+ ConnectorEnd otherEnd = ConnectorUtil.connEndNotPart(smConnector, smPart);
+ // check whether the part references by the other end (i.e. that not connected with the part)
+ // TODO: take connections without port into account
+ Property otherPart = otherEnd.getPartWithPort();
+ // compare part names, since connector points to parts within the source model
+ if ((otherPart == null) || (copy.get(otherPart) != null)) {
+ copy.copy(smConnector);
+ }
+ }
+ }
+ }
+ }
+
+ private InstanceSpecification node;
+
+ private LazyCopier copy;
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/BindingHelperExt.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/BindingHelperExt.java
new file mode 100644
index 00000000000..b62aa607bfe
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/BindingHelperExt.java
@@ -0,0 +1,98 @@
+/*******************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.extensions;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.FCM.BindingHelper;
+import org.eclipse.papyrus.FCM.util.IBindingHelper;
+import org.eclipse.papyrus.qompass.designer.core.listeners.PostCopyListener;
+import org.eclipse.papyrus.qompass.designer.core.listeners.PreCopyListener;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationRTException;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.TemplateBinding;
+
+
+/**
+ * Support for binding helper
+ */
+public class BindingHelperExt {
+
+ public static final String IBINDING_HELPER_ID = org.eclipse.papyrus.FCM.Activator.PLUGIN_ID + ".fcmBindingHelper"; //$NON-NLS-1$
+
+ /**
+ *
+ * @param iConfiguratorName
+ * @param component
+ * containing composite (container)
+ * @param instance
+ */
+ public static EObject applyPreHelper(BindingHelper helper, LazyCopier copier, TemplateBinding binding, EObject sourceEObj) {
+ IBindingHelper ihelper = getBindingHelper(helper.getBase_Class().getName());
+ if (sourceEObj instanceof Element) {
+ ihelper.handleElement(binding, (Element) sourceEObj);
+ }
+ if (ihelper instanceof PreCopyListener) {
+ return ((PreCopyListener) ihelper).preCopyEObject(copier, sourceEObj);
+ }
+ return sourceEObj;
+ }
+
+ /**
+ *
+ * @param iConfiguratorName
+ * @param component
+ * containing composite (container)
+ * @param instance
+ */
+ public static void applyPostHelper(BindingHelper helper, LazyCopier copier, TemplateBinding binding, EObject targetEObj) {
+ IBindingHelper ihelper = getBindingHelper(helper.getBase_Class().getName());
+ if (targetEObj instanceof Element) {
+ ihelper.handleElement(binding, (Element) targetEObj);
+ }
+ if (ihelper instanceof PostCopyListener) {
+ ((PostCopyListener) ihelper).postCopyEObject(copier, targetEObj);
+ }
+ }
+
+ public static IBindingHelper getBindingHelper(BindingHelper helper) {
+ if (helper != null) {
+ return getBindingHelper(helper.getBase_Class().getName());
+ }
+ return null;
+ }
+
+ public static IBindingHelper getBindingHelper(String helperName) {
+ IExtensionRegistry reg = Platform.getExtensionRegistry();
+ IConfigurationElement[] configElements = reg.getConfigurationElementsFor(IBINDING_HELPER_ID);
+ for (IConfigurationElement configElement : configElements) {
+ try {
+ final String configHelperName = configElement.getAttribute("bindingHelperName"); //$NON-NLS-1$
+ if (configHelperName.equals(helperName)) {
+ // TODO: cache returned instance (avoid creating a new instance each time => more efficient, no need for static attributes)
+ final Object obj = configElement.createExecutableExtension("class"); //$NON-NLS-1$
+ if (obj instanceof IBindingHelper) {
+ return (IBindingHelper) obj;
+ }
+ }
+ } catch (CoreException exception) {
+ exception.printStackTrace();
+ }
+ }
+ throw new TransformationRTException(
+ String.format("Cannot find binding helper <%s>", helperName));
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/EmbeddingRule.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/EmbeddingRule.java
new file mode 100644
index 00000000000..7427a38a21f
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/EmbeddingRule.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.extensions;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.papyrus.qompass.designer.core.Activator;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.Port;
+
+
+/**
+ * Support for embedding rules.
+ * CAVEAT: Currently not used, unclear if kept
+ */
+@Deprecated
+public class EmbeddingRule {
+
+ public static final String IEMBEDDING_RULE_ID = Activator.PLUGIN_ID + ".embeddingRule"; //$NON-NLS-1$
+
+ /**
+ *
+ * @param iConfiguratorName
+ * @param component
+ * containing composite (container)
+ * @param instance
+ */
+ public static void embeddExtension(String embeddingRuleID, InstanceSpecification executorIS, InstanceSpecification instance, Port port) {
+ IEmbeddingRule iEmbeddingRule = getEmbeddingRule(embeddingRuleID);
+ if (iEmbeddingRule != null) {
+ iEmbeddingRule.embeddExtension(executorIS, instance, port);
+ }
+ }
+
+ private static IEmbeddingRule getEmbeddingRule(String embeddingRuleID) {
+ IExtensionRegistry reg = Platform.getExtensionRegistry();
+ IConfigurationElement[] configElements = reg.getConfigurationElementsFor(IEMBEDDING_RULE_ID);
+ for (IConfigurationElement configElement : configElements) {
+ try {
+ final String iConfiguratorIDext = configElement.getAttribute("configuratorID"); //$NON-NLS-1$
+ if (iConfiguratorIDext.equals(embeddingRuleID)) {
+ // TODO: cache returned instance (avoid creating a new instance each time => more efficient, no need for static attributes)
+ final Object obj = configElement.createExecutableExtension("class"); //$NON-NLS-1$
+ if (obj instanceof IEmbeddingRule) {
+ return (IEmbeddingRule) obj;
+ }
+ }
+ } catch (CoreException exception) {
+ exception.printStackTrace();
+ }
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/ExternalGenerator.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/ExternalGenerator.java
new file mode 100644
index 00000000000..2094a2239f8
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/ExternalGenerator.java
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.extensions;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.qompass.designer.core.Activator;
+import org.eclipse.uml2.uml.Classifier;
+
+
+/**
+ * Support for multiple target languages via the Eclipse extension mechanism
+ */
+public class ExternalGenerator {
+
+ public static final String IEXTERNAL_GENERATOR_ID = Activator.PLUGIN_ID + ".externalGenerator"; //$NON-NLS-1$
+
+ /**
+ *
+ * @param iConfiguratorName
+ * @param component
+ * containing composite (container)
+ * @param instance
+ */
+ public static EList<Classifier> generate(String iGeneratorID, Classifier source) {
+ IExternalGenerator iExternalGenerator = getExternalGenerator(iGeneratorID);
+ if (iExternalGenerator != null) {
+ return iExternalGenerator.generate(source);
+ }
+ return null;
+ }
+
+ private static IExternalGenerator getExternalGenerator(String iGeneratorID) {
+ IExtensionRegistry reg = Platform.getExtensionRegistry();
+ IConfigurationElement[] configElements = reg.getConfigurationElementsFor(IEXTERNAL_GENERATOR_ID);
+ for (IConfigurationElement configElement : configElements) {
+ try {
+ final String iConfiguratorIDext = configElement.getAttribute("extGeneratorID"); //$NON-NLS-1$
+ if (iConfiguratorIDext.equals(iGeneratorID)) {
+ // TODO: cache returned instance (avoid creating a new instance each time => more efficient, no need for static attributes)
+ final Object obj = configElement.createExecutableExtension("class"); //$NON-NLS-1$
+ if (obj instanceof IExternalGenerator) {
+ return (IExternalGenerator) obj;
+ }
+ }
+ } catch (CoreException exception) {
+ exception.printStackTrace();
+ }
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/IEmbeddingRule.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/IEmbeddingRule.java
new file mode 100644
index 00000000000..72b573222ad
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/IEmbeddingRule.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.extensions;
+
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.Port;
+
+/**
+ * Interface used by Qompass extensions that supports specific embedding rules.
+ * CAVEAT: Currently not used, unclear if kept
+ */
+@Deprecated
+public interface IEmbeddingRule {
+
+ // TODO: application order?
+ /**
+ * configure an instance (within a container)
+ *
+ * @param executorIS
+ * the instance specification of the component that is used as basis for configuring the instance
+ * @param instance
+ * the instance of an element of the container.
+ * @param port
+ * the port within a container transformation for which the instance is used as an interceptor.
+ * Is null for "normal" connectors or container extensions is configured.
+ */
+ public void embeddExtension(InstanceSpecification executorIS, InstanceSpecification instance, Port port);
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/IExternalGenerator.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/IExternalGenerator.java
new file mode 100644
index 00000000000..df578fec3de
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/IExternalGenerator.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.extensions;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.uml2.uml.Classifier;
+
+/**
+ * Interface used by Qompass extensions that supports specific external code generators, e.g. CORBA and DDS
+ */
+public interface IExternalGenerator {
+
+ /**
+ * generate a class by means of an external generator
+ *
+ * @param source
+ * A source element for the generator, e.g. an interface for a CORBA generator
+ * @returns a list of generated classifiers:
+ * Even, if the external generator produces code directly, the Java wrapper should return a set
+ * model elements (may be incomplete) that represent the generated elements. For instance, in case
+ * of C++, an empty class with the stereotype "extern C" could be returned
+ */
+ public EList<Classifier> generate(Classifier source);
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/IInstanceConfigurator.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/IInstanceConfigurator.java
new file mode 100644
index 00000000000..fd2231f525d
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/IInstanceConfigurator.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.extensions;
+
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * Interface used by Qompass extensions that supports specific instance configurators,
+ * used for containers.
+ */
+public interface IInstanceConfigurator {
+
+ /**
+ * configure an instance (within a container)
+ *
+ * @param instance
+ * the instance of an element which should be configured.
+ * @param componentPart
+ * the property that represents the component within the enclosing composite. May be null, if the instance
+ * that should be configured is the main instance.
+ * @param parentInstance
+ * the instance specification of the parent, i.e. the enclosing composite. If the instance that should be
+ * configured has a container, the parent instance corresponds to the instance specification of this
+ * container. This instance specification provides thus access to additional infromation available on the
+ * container level.
+ */
+ public void configureInstance(InstanceSpecification instance, Property componentPart, InstanceSpecification parentInstance);
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/IOOTrafo.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/IOOTrafo.java
new file mode 100644
index 00000000000..df62ee1300a
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/IOOTrafo.java
@@ -0,0 +1,97 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.qompass.designer.core.extensions;
+
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
+import org.eclipse.uml2.uml.Class;
+
+/**
+ * An interface that must be implemented by classes that realize the transformation
+ * from component-based to object-oriented models. It includes the replacement of
+ * ports and connectors. Ports are
+ * replaced with attributes and access operations, connectors within a composite
+ * by an operation that creates the initial setup.
+ *
+ * 1. add an operation that allows to retrieve the reference to an interface provided
+ * by a port. This operation has a mapping specific name, e.g. get_<port_name>
+ * 2. add an operation that allows to connect a specific port.
+ * the connect_q operation (*including a
+ * storage attribute*) for a port with a required interface
+ * 3. add an implementation for the getcnx_q operation for a port
+ * with a required interface (the operation itself has been added before)
+ *
+ * Problems: need to align bootloader creation with this mapping, since
+ * the bootloader may be responsible for instantiation
+ *
+ * Caveat: Assure that the folder derivedInterfaces already exists in a model.
+ * Otherwise the call to getProvided/getRequired interface might trigger its
+ * creation resulting in the corruption of list iterators (ConcurrentAccess
+ * exception)
+ *
+ * New considerations: could the OO trafo be seen as a specific form of the
+ * LwContainerTrafo?
+ * [if yes, would that be useful?] Problem: it's not only a merge and operation
+ * interception, but additional operation(s) for ports. But, it might well
+ * be based on similar mechanisms as in merging in a template + Java code instead
+ * of Java code only. Also possible: still have OOTrafo, but there is a collaboration
+ * between the OO trafo and a LW container rule.
+ */
+public interface IOOTrafo {
+
+ /**
+ * Initialize the transformation. Pass the copier and the bootloader to the
+ * transformation in case it is needed by an implementation of this interface.
+ * @param copier an instance of the lazy copier that copies from source (intermediate) model to the OO model.
+ * @param bootloader
+ */
+ public void init(LazyCopier copier, Class bootloader);
+
+ /**
+ * Transformations adds operations for accessing ports. A common but not necessary
+ * code generation pattern is to associate different operations with ports that
+ * provide services (access operations) and ports requiring services (connection operations)
+ *
+ * @param implementation
+ * A component implementation
+ */
+ public void addPortOperations(Class implementation);
+
+
+ /**
+ * Add an operation that connects the parts within a composite class based on the
+ * UML connector information.
+ *
+ * @param compositeImplementation
+ * A (composite) component implementation
+ * @throws TransformationException
+ */
+ public void addConnectionOperation(Class compositeImplementation)
+ throws TransformationException;
+
+ /**
+ * Transform parts if necessary. This transformation is for target programming languages
+ * like C++ that support different ways of composition for attributes, i.e. references/pointers
+ * versus values. In case of the latter, the instantiation of a composite directly implies
+ * the instantiation of its sub-components. In case of the former, parts need to be instantiated
+ * by a different mechanism, e.g. by the constructor (which is still a valid correspondence for
+ * composition in UML at a logical level).
+ * Another possible use is the support of a more dynamic deployment: it is for instance possible
+ * to use a use a part-list (single attribute) instead of fixed named attributes.
+ *
+ * @param compositeImplementation
+ * A (composite) component implementation
+ */
+ public void transformParts(Class compositeImplementation);
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/IXtend.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/IXtend.java
new file mode 100644
index 00000000000..1028f6f2ac6
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/IXtend.java
@@ -0,0 +1,15 @@
+/*******************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.extensions;
+
+public interface IXtend {
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/InstanceConfigurator.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/InstanceConfigurator.java
new file mode 100644
index 00000000000..709c8236cd2
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/InstanceConfigurator.java
@@ -0,0 +1,121 @@
+/*******************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.extensions;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.papyrus.FCM.ContainerRule;
+import org.eclipse.papyrus.FCM.UseInstanceConfigurator;
+import org.eclipse.papyrus.qompass.designer.core.Activator;
+import org.eclipse.papyrus.qompass.designer.core.Messages;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepUtils;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+
+/**
+ * Support for the configuration of instances via the Eclipse extension mechanism
+ */
+public class InstanceConfigurator {
+
+ public static final String IINSTANCE_CONFIG_ID = Activator.PLUGIN_ID + ".instanceConfig"; //$NON-NLS-1$
+
+ public static boolean onNodeModel = false;
+
+ /**
+ * Configure an instance. The configurator is selected by means of a stereotype on the classifier of
+ * the passed instance.
+ *
+ * @see org.eclipse.papyrus.qompass.designer.core.extensions.IInstanceConfigurator
+ * @param instance
+ * the specification of instance that should be configured
+ * @param componentPart
+ * the part representing the instance (before container expansion)
+ * @param port
+ * a port within the context of container
+ */
+ public static void configureInstance(InstanceSpecification instance, Property componentPart, InstanceSpecification parentInstance) {
+ Classifier component = DepUtils.getClassifier(instance);
+ UseInstanceConfigurator useInstanceConfigurator = UMLUtil.getStereotypeApplication(component, UseInstanceConfigurator.class);
+ configureInstance(useInstanceConfigurator, instance, componentPart, parentInstance);
+ }
+
+ /**
+ * Configure an instance. The configurator is selected by means of a stereotype on the passed container rule.
+ *
+ * @see org.eclipse.papyrus.qompass.designer.core.extensions.IInstanceConfigurator
+ * @param rule
+ * the applied container rule
+ * @param instance
+ * the specification of instance that should be configured
+ * @param componentPart
+ * the part representing the instance (before container expansion)
+ * @param port
+ * a port within the context of container
+ */
+ public static void configureInstance(ContainerRule rule, InstanceSpecification instance, Property componentPart, InstanceSpecification parentInstance) {
+ UseInstanceConfigurator useInstanceConfigurator = UMLUtil.getStereotypeApplication(rule.getBase_Class(), UseInstanceConfigurator.class);
+ configureInstance(useInstanceConfigurator, instance, componentPart, parentInstance);
+ }
+
+ /**
+ * Configure an instance with a given configurator
+ *
+ * @param useInstanceConfigurator
+ * @param instance
+ * @param componentPart
+ * @param containerContext
+ */
+ public static void configureInstance(UseInstanceConfigurator useInstanceConfigurator, InstanceSpecification instance, Property componentPart, InstanceSpecification parentInstance) {
+ if (useInstanceConfigurator != null) {
+ org.eclipse.papyrus.FCM.InstanceConfigurator instanceConfigurator = useInstanceConfigurator.getConfigurator();
+ if (instanceConfigurator.isOnNodeModel() == onNodeModel) {
+ if (instanceConfigurator != null) {
+ String id = instanceConfigurator.getBase_Class().getName();
+ IInstanceConfigurator iConfigurator = getInstanceConfigurator(id);
+ if (iConfigurator != null) {
+ iConfigurator.configureInstance(instance, componentPart, parentInstance);
+
+ }
+ }
+ }
+ }
+ }
+
+ protected static IInstanceConfigurator getInstanceConfigurator(String iConfiguratorID) {
+ IExtensionRegistry reg = Platform.getExtensionRegistry();
+ IConfigurationElement[] configElements = reg.getConfigurationElementsFor(IINSTANCE_CONFIG_ID);
+ for (IConfigurationElement configElement : configElements) {
+ try {
+ final String iConfiguratorIDext = configElement.getAttribute("configuratorID"); //$NON-NLS-1$
+ if (iConfiguratorIDext == null) {
+ throw new RuntimeException(String.format(
+ Messages.InstanceConfigurator_InvalidPluginExtension, iConfiguratorID));
+ }
+ if (iConfiguratorIDext.equals(iConfiguratorID)) {
+ // TODO: cache returned instance (avoid creating a new instance each time => more efficient, no need for static attributes)
+ final Object obj = configElement.createExecutableExtension("class"); //$NON-NLS-1$
+ if (obj instanceof IInstanceConfigurator) {
+ return (IInstanceConfigurator) obj;
+ }
+ }
+ } catch (CoreException exception) {
+ exception.printStackTrace();
+ }
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/OOTrafo.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/OOTrafo.java
new file mode 100644
index 00000000000..f96ccad4765
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/OOTrafo.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.extensions;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.papyrus.qompass.designer.core.Activator;
+import org.eclipse.papyrus.qompass.designer.core.Messages;
+
+/**
+ * Support for different OO transformation via the Eclipse extension
+ * mechanism
+ */
+public class OOTrafo {
+
+ public static final String IOO_TRANSFORMATION_ID = Activator.PLUGIN_ID + ".ooTransformation"; //$NON-NLS-1$
+
+ /**
+ * Get an OOTransformation for a given ID (language)
+ *
+ * @param iOOTrafoID
+ * the ID of an OO Transformation
+ * @return
+ */
+ public static IOOTrafo getOOTrafo(String iOOTrafoID) {
+ IExtensionRegistry reg = Platform.getExtensionRegistry();
+ IConfigurationElement[] configElements = reg.getConfigurationElementsFor(IOO_TRANSFORMATION_ID);
+ for (IConfigurationElement configElement : configElements) {
+ try {
+ final String iOOTrafoIDext = configElement.getAttribute("ooTrafoID"); //$NON-NLS-1$
+ if (iOOTrafoIDext == null) {
+ throw new RuntimeException(String.format(Messages.InstanceConfigurator_InvalidPluginExtension,
+ iOOTrafoID));
+ }
+ if (iOOTrafoIDext.endsWith("." + iOOTrafoID)) { //$NON-NLS-1$
+ // TODO: cache returned instance (avoid creating a new
+ // instance each time => more efficient, no need for static
+ // attributes)
+ final Object obj = configElement.createExecutableExtension("class"); //$NON-NLS-1$
+ if (obj instanceof IOOTrafo) {
+ return (IOOTrafo) obj;
+ }
+ }
+ } catch (CoreException exception) {
+ exception.printStackTrace();
+ }
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/XtendGenerator.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/XtendGenerator.java
new file mode 100644
index 00000000000..9737559803b
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/XtendGenerator.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.extensions;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.papyrus.qompass.designer.core.Activator;
+
+
+/**
+ * Support for embedding rules.
+ * CAVEAT: Currently not used, unclear if kept
+ */
+public class XtendGenerator {
+
+ public static final String ITEMPLATE_ID = Activator.PLUGIN_ID + ".xtendGenerator"; //$NON-NLS-1$
+
+ public static IXtend getXtendGenerator(String generatorID) {
+ IExtensionRegistry reg = Platform.getExtensionRegistry();
+ IConfigurationElement[] configElements = reg.getConfigurationElementsFor(ITEMPLATE_ID);
+ for (IConfigurationElement configElement : configElements) {
+ try {
+ final String iTemplateID = configElement.getAttribute("templateID"); //$NON-NLS-1$
+ if (iTemplateID.equals(generatorID)) {
+ // TODO: cache returned instance (avoid creating a new instance each time => more efficient, no need for static attributes)
+ final Object obj = configElement.createExecutableExtension("class"); //$NON-NLS-1$
+ if (obj instanceof IXtend) {
+ return (IXtend) obj;
+ }
+ }
+ } catch (CoreException exception) {
+ exception.printStackTrace();
+ }
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/generate/GenerateCode.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/generate/GenerateCode.java
new file mode 100644
index 00000000000..1b948ff0cb6
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/generate/GenerateCode.java
@@ -0,0 +1,195 @@
+package org.eclipse.papyrus.qompass.designer.core.generate;
+
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+// deactivated differential code generation for the moment.
+/*
+ import org.eclipse.emf.compare.diff.metamodel.AttributeChange;
+ import org.eclipse.emf.compare.diff.metamodel.DiffElement;
+ import org.eclipse.emf.compare.diff.metamodel.DiffModel;
+ import org.eclipse.emf.compare.diff.metamodel.DifferenceKind;
+ import org.eclipse.emf.compare.diff.metamodel.ModelElementChangeLeftTarget;
+ import org.eclipse.emf.compare.diff.metamodel.ModelElementChangeRightTarget;
+ import org.eclipse.emf.compare.diff.service.DiffService;
+ import org.eclipse.emf.compare.match.MatchOptions;
+ import org.eclipse.emf.compare.match.metamodel.MatchModel;
+ import org.eclipse.emf.compare.match.service.MatchService;
+ import org.eclipse.emf.compare.util.ModelUtils;
+ */
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.codegen.extensionpoints.ILangCodegen;
+import org.eclipse.papyrus.qompass.designer.core.Messages;
+import org.eclipse.papyrus.qompass.designer.core.ModelManagement;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PackageableElement;
+
+public class GenerateCode {
+
+ public GenerateCode(IProject genProject, ILangCodegen codegen, ModelManagement genMM, IProgressMonitor monitor) {
+ this.genProject = genProject;
+ this.genMM = genMM;
+ this.monitor = monitor;
+ this.codegen = codegen;
+ }
+
+ public void generate(InstanceSpecification node, String targetLanguage, boolean differential)
+ throws TransformationException, InterruptedException
+ {
+ String path = genMM.getPath(genProject, "model", null); //$NON-NLS-1$
+ Package genModel = genMM.getModel();
+ EObject oldGenModel = null;
+ if (differential) {
+ /*
+ * try {
+ * oldGenModel = ModelUtils.load(URI.createURI(path), ModelManagement.getResourceSet());
+ * } catch (IOException io) {
+ * }
+ */
+ }
+ genMM.saveModel(path);
+
+ monitor.worked(1);
+
+ if (genProject == null) {
+ return;
+ }
+
+ if (oldGenModel != null) {
+ // Matching model elements
+ /*
+ * Map<String, Object> options = new HashMap<String, Object>();
+ * options.put(MatchOptions.OPTION_IGNORE_XMI_ID, true);
+ * monitor.setTaskName("generating " + targetLanguage + " code for node " + node.getName());
+ * monitor.subTask("create difference model for node " + node.getName());
+ * monitor.worked(1);
+ * MatchModel match = MatchService.doMatch(genModel, oldGenModel, options);
+ * // Computing differences
+ * DiffModel diffModel = DiffService.doDiff(match, false);
+ * deleteRemovedClasses(diffModel);
+ *
+ * Map<PackageableElement, Boolean> alreadyGenerated = new HashMap<PackageableElement, Boolean>();
+ * monitor.subTask("generate code");
+ *
+ * for(DiffElement diff : diffModel.getDifferences()) {
+ * if((diff.getKind() == DifferenceKind.ADDITION) ||
+ * (diff.getKind() == DifferenceKind.CHANGE)) {
+ * EObject modifiedEObj = null;
+ * if(diff instanceof AttributeChange) {
+ * modifiedEObj = ((AttributeChange)diff).getLeftElement();
+ * }
+ * else if(diff instanceof ModelElementChangeLeftTarget) {
+ * modifiedEObj = ((ModelElementChangeLeftTarget)diff).getLeftElement();
+ * }
+ * if(modifiedEObj instanceof Element) {
+ * PackageableElement modifiedPElement = getNearestClassifierOrPackage((Element)modifiedEObj);
+ * Element modifiedElement = modifiedPElement;
+ * // check whether code has already been generated for a parent
+ * boolean found = false;
+ * while(modifiedElement != null) {
+ * modifiedElement = modifiedElement.getOwner();
+ * if(alreadyGenerated.containsKey(modifiedElement)) {
+ * found = true;
+ * }
+ * }
+ * // TODO: re-create code for elements that depend on this one (e.g. if the modified element is a
+ * // class and its name has changed, caller have to use a different name, even if the model reference
+ * // has not changed.
+ * if(!found) {
+ * alreadyGenerated.put(modifiedPElement, true);
+ * langSupport.generateCode(monitor, modifiedPElement);
+ * }
+ * }
+ * }
+ * }
+ */
+ }
+ else {
+ if (node == null) {
+ monitor.setTaskName(String.format(Messages.GenerateCode_GeneratingCode, targetLanguage));
+ }
+ else {
+ monitor.setTaskName(String.format(Messages.GenerateCode_GeneratingCodeForNode, targetLanguage, node.getName()));
+ }
+ IFolder folder = genProject.getFolder(genModel.getName());
+ try {
+ folder.delete(true, null);
+ } catch (CoreException e) {
+ throw new TransformationException(String.format(Messages.GenerateCode_CouldNotDeleteOldCode, e.getMessage()));
+ }
+ codegen.generateCode(genProject, genModel, monitor);
+ }
+ if (monitor.isCanceled()) {
+ return;
+ }
+ monitor.worked(1);
+ }
+
+ /**
+ * @param element
+ * @return
+ */
+ public PackageableElement getNearestClassifierOrPackage(Element element) {
+ while (element != null) {
+ if (element instanceof Classifier) {
+ return (Classifier) element;
+ }
+ if (element instanceof Package) {
+ return (Package) element;
+ }
+ element = element.getOwner();
+ }
+ return null;
+ }
+
+ /*
+ * public void deleteRemovedClasses(EObject diffModelOrElement) throws TransformationException {
+ * EList<DiffElement> diffs;
+ * if(diffModelOrElement instanceof DiffModel) {
+ * diffs = ((DiffModel)diffModelOrElement).getDifferences();
+ * }
+ * else if(diffModelOrElement instanceof DiffElement) {
+ * diffs = ((DiffElement)diffModelOrElement).getSubDiffElements();
+ * }
+ * else {
+ * return;
+ * }
+ * for(DiffElement diff : diffs) {
+ * EObject modifiedEObj = null;
+ *
+ * if(diff.getKind() == DifferenceKind.DELETION) {
+ * if(diff instanceof AttributeChange) {
+ * modifiedEObj = ((AttributeChange)diff).getRightElement();-
+ * }
+ * else if(diff instanceof ModelElementChangeRightTarget) {
+ * modifiedEObj = ((ModelElementChangeRightTarget)diff).getRightElement();
+ * }
+ * }
+ * else if(diff.getKind() == DifferenceKind.CHANGE) {
+ * if(diff instanceof AttributeChange) {
+ * modifiedEObj = ((AttributeChange)diff).getRightElement();
+ * }
+ * }
+ * if(modifiedEObj instanceof PackageableElement) {
+ * // => delete tree
+ * langSupport.cleanCode(monitor, (PackageableElement)modifiedEObj);
+ * }
+ * // no recursion needed?
+ * // deleteRemovedClasses(diff);
+ * }
+ * }
+ */
+
+ private ModelManagement genMM;
+
+ private IProject genProject;
+
+ private IProgressMonitor monitor;
+
+ private ILangCodegen codegen;
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/generate/GenerationOptions.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/generate/GenerationOptions.java
new file mode 100644
index 00000000000..48230b2b987
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/generate/GenerationOptions.java
@@ -0,0 +1,19 @@
+package org.eclipse.papyrus.qompass.designer.core.generate;
+
+/**
+ * Constants for generation options (must be powers of 2)
+ *
+ * @author ansgar
+ *
+ */
+public interface GenerationOptions {
+
+ final public static int REWRITE_SETTINGS = 1;
+
+ final public static int ONLY_CHANGED = 2;
+
+ final public static int MODEL_ONLY = 4;
+
+ final public static int CAC_ONLY = 8;
+
+};
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/DepPlanListener.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/DepPlanListener.java
new file mode 100644
index 00000000000..f6773177432
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/DepPlanListener.java
@@ -0,0 +1,59 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.listeners;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.papyrus.FCM.DeploymentPlan;
+import org.eclipse.papyrus.infra.core.listenerservice.IPapyrusListener;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * A model listener that updates a deployment plan, e.g. add, remove or
+ * rename instance specifications , if the composites referenced
+ * by a deployment plan change. Since the code is very incomplete, it is
+ * currently not used. It needs to be clarified what changes are useful,
+ * in particular whether delete operations in a composite should immediately
+ * remove the associate slot in instance specifications of the composite and the
+ * referenced instance specifications.
+ *
+ * @author ansgar
+ *
+ */
+public class DepPlanListener implements IPapyrusListener {
+
+ @Override
+ public void notifyChanged(Notification notification) {
+ // TODO Auto-generated method stub
+ int evtType = notification.getEventType();
+ Object notifier = notification.getNotifier();
+ // String name = "";
+
+ if (evtType == Notification.SET) {
+ // Object oldValue = notification.getOldValue ();
+ if (notifier instanceof Package) {
+ DeploymentPlan de = UMLUtil.getStereotypeApplication((Package) notifier, DeploymentPlan.class);
+ Object mainInstance = (de != null) ? de.getMainInstance() : null;
+ if (mainInstance instanceof InstanceSpecification) {
+ // TODO user wants to declare the system component, the instance specification should be created
+ // automatically
+
+ }
+ // if ((oldValue instanceof ) && (notifier instanceof Class)) {
+ }
+ }
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/InterfaceListener.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/InterfaceListener.java
new file mode 100644
index 00000000000..a7d4f962536
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/InterfaceListener.java
@@ -0,0 +1,64 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.listeners;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.papyrus.infra.core.listenerservice.IPapyrusListener;
+import org.eclipse.papyrus.qompass.designer.core.Log;
+import org.eclipse.papyrus.qompass.designer.core.sync.CompImplSync;
+import org.eclipse.uml2.uml.BehavioralFeature;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Interface;
+
+public class InterfaceListener implements IPapyrusListener {
+
+ public static InterfaceListener getInstance() {
+ if (instance == null) {
+ instance = new InterfaceListener();
+ }
+ return instance;
+ }
+
+ private static InterfaceListener instance = null;
+
+ @Override
+ public void notifyChanged(Notification notification) {
+ Log.log(IStatus.INFO, Log.TRAFO_SYNC, "Interface adapter"); //$NON-NLS-1$
+ int evtType = notification.getEventType();
+ Object notifier = notification.getNotifier();
+ if (evtType == Notification.SET) {
+ if (notifier instanceof Class) {
+ // UMLExecutor.addCCM_intf ((Class) notifier);
+ }
+ } else if (evtType == Notification.ADD) {
+
+ if (notifier instanceof Interface) {
+ // Interface intf = (Interface) notifier;
+
+ // never executed since name is always unset when
+ // an operation is newly added
+ }
+ } else if (evtType == Notification.REMOVE) {
+ Object oldValue = notification.getOldValue();
+ if (oldValue instanceof BehavioralFeature) {
+ BehavioralFeature toBeRemoved = (BehavioralFeature) oldValue;
+
+ Interface intf = (Interface) notifier;
+ CompImplSync.syncViaInterface(intf, toBeRemoved);
+ }
+ }
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/ModelListener.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/ModelListener.java
new file mode 100644
index 00000000000..786dcd051c9
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/ModelListener.java
@@ -0,0 +1,56 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.listeners;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.papyrus.infra.core.listenerservice.IPapyrusListener;
+import org.eclipse.papyrus.qompass.designer.core.Log;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.Port;
+
+/**
+ * Main listener for model changes (registered via plugin.xml). It will delegate
+ * to the sub-listeners for specific sub-elements (type, operation, port, ...) that
+ * can be found in this package
+ *
+ * @author ansgar
+ *
+ */
+public class ModelListener implements IPapyrusListener {
+
+ @Override
+ public void notifyChanged(Notification notification) {
+ Log.log(IStatus.INFO, Log.TRAFO_SYNC, String.format("ModelListener.notifyChanged: %s", notification.getFeature()));
+ Object notifier = notification.getNotifier();
+ if (notifier instanceof NamedElement) {
+ String name = ((NamedElement) notifier).getName();
+ Log.log(IStatus.INFO, Log.TRAFO_SYNC, "Change notification for element: " + name);
+ }
+
+ if (notifier instanceof Operation) {
+ OperationListener.getInstance().notifyChanged(notification);
+ } else if (notifier instanceof Parameter) {
+ ParameterListener.getInstance().notifyChanged(notification);
+ } else if (notifier instanceof Interface) {
+ InterfaceListener.getInstance().notifyChanged(notification);
+ } else if (notifier instanceof Port) {
+ PortListener.getInstance().notifyChanged(notification);
+ }
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/OperationListener.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/OperationListener.java
new file mode 100644
index 00000000000..4444a92fa73
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/OperationListener.java
@@ -0,0 +1,71 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.listeners;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.papyrus.infra.core.listenerservice.IPapyrusListener;
+import org.eclipse.papyrus.qompass.designer.core.Log;
+import org.eclipse.papyrus.qompass.designer.core.sync.CompImplSync;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Operation;
+
+/**
+ * Track changes of an operation, typically within an interface provided
+ * by a port. This is used to update derived oeprations, e.g. when parameters
+ * are added or removed.
+ *
+ * @author ansgar
+ *
+ */
+public class OperationListener implements IPapyrusListener {
+
+ // TODO: used by TypeAdapter (useful??)
+ public static OperationListener getInstance() {
+ if (instance == null) {
+ instance = new OperationListener();
+ }
+ return instance;
+ }
+
+ private static OperationListener instance = null;
+
+ @Override
+ public void notifyChanged(Notification notification) {
+ int evtType = notification.getEventType();
+ Object notifier = notification.getNotifier();
+ String name = ""; //$NON-NLS-1$
+ if (notifier instanceof NamedElement) {
+ name = ((NamedElement) notifier).getName();
+ }
+ if ((evtType == Notification.SET) || (evtType == Notification.ADD)) {
+ Log.log(IStatus.INFO, Log.TRAFO_SYNC, "Operation.adapter, set " + name);
+
+ if (notifier instanceof Operation) {
+ Operation operation = (Operation) notifier;
+
+ Element owner = operation.getOwner();
+ if (owner instanceof Interface) {
+ Interface intf = (Interface) owner;
+ CompImplSync.syncViaInterface(intf);
+ }
+ }
+ } else {
+ Log.log(IStatus.INFO, Log.TRAFO_SYNC, "Operation.adapter, code: " + notification.getEventType() + ", name: " + name);
+ }
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/ParameterListener.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/ParameterListener.java
new file mode 100644
index 00000000000..c810970ed15
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/ParameterListener.java
@@ -0,0 +1,63 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.listeners;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.papyrus.infra.core.listenerservice.IPapyrusListener;
+import org.eclipse.papyrus.qompass.designer.core.Log;
+import org.eclipse.papyrus.qompass.designer.core.sync.CompImplSync;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Parameter;
+
+public class ParameterListener implements IPapyrusListener {
+
+ public static ParameterListener getInstance() {
+ if (instance == null) {
+ instance = new ParameterListener();
+ }
+ return instance;
+ }
+
+ private static ParameterListener instance = null;
+
+ @Override
+ public void notifyChanged(Notification notification) {
+ int evtType = notification.getEventType();
+ Object notifier = notification.getNotifier();
+ String name = ""; //$NON-NLS-1$
+ if (notifier instanceof NamedElement) {
+ name = ((NamedElement) notifier).getName();
+ }
+ if ((evtType == Notification.SET) || (evtType == Notification.ADD)) {
+ Log.log(IStatus.INFO, Log.TRAFO_SYNC, "Parameter.adapter, set " + name);
+
+ if (notifier instanceof Parameter) {
+ Element owner = ((Parameter) notifier).getOwner();
+ if (owner instanceof Operation) {
+ owner = owner.getOwner();
+ if (owner instanceof Interface) {
+ CompImplSync.syncViaInterface((Interface) owner);
+ }
+ }
+ }
+ } else {
+ Log.log(IStatus.INFO, Log.TRAFO_SYNC, "Parameter.adapter, code: " + notification.getEventType() + ", name: " + name);
+ }
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/PortListener.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/PortListener.java
new file mode 100644
index 00000000000..09039013ee7
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/PortListener.java
@@ -0,0 +1,77 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.listeners;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.papyrus.infra.core.listenerservice.IPapyrusListener;
+import org.eclipse.papyrus.qompass.designer.core.Log;
+import org.eclipse.papyrus.qompass.designer.core.sync.CompTypeSync;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Port;
+
+public class PortListener implements IPapyrusListener {
+
+ public Notifier getTarget() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public static PortListener getInstance() {
+ if (instance == null) {
+ instance = new PortListener();
+ }
+ return instance;
+ }
+
+ private static PortListener instance;
+
+
+ public boolean isAdapterForType(Object type) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public void notifyChanged(Notification notification) {
+ int evtType = notification.getEventType();
+ Object notifier = notification.getNotifier();
+
+ if (evtType == Notification.SET) {
+ Log.log(IStatus.INFO, Log.TRAFO_SYNC, "Port adapter, set: " + ((NamedElement) notifier).getName());
+ Object obj = notification.getFeature();
+ if (notifier instanceof Port) {
+ Port port = (Port) notifier;
+ if (obj instanceof ENamedElement) {
+ ENamedElement ne = (ENamedElement) obj;
+ if (ne.getName().equals("name")) {
+ String oldName = notification.getOldStringValue();
+ CompTypeSync.renamePort((Class) port.getOwner(), port, oldName);
+ // profile modifications are also be indicated as name changes, but might imply a change
+ // of provided and required interfaces.
+ CompTypeSync.syncPort((Class) port.getOwner(), port);
+ } else if (ne.getName().equals("type")) {
+ // CompTypeSync.syncPort((Class) port.getOwner(), port);
+ }
+ }
+ }
+ } else {
+ Log.log(IStatus.INFO, Log.TRAFO_SYNC, "Port adapter, code: " + notification.getEventType() + ", " + notifier);
+ }
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/PostCopyListener.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/PostCopyListener.java
new file mode 100644
index 00000000000..967d4765bf0
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/PostCopyListener.java
@@ -0,0 +1,35 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.listeners;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
+
+/**
+ * Interface for listeners that are notified when an eObject
+ * is copied
+ *
+ * @see org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier
+ */
+public interface PostCopyListener {
+
+ /**
+ * Is called for each EObject after is has been copied.
+ *
+ * @param targetEObj
+ * the EObject that has been copied
+ */
+ public void postCopyEObject(LazyCopier copy, EObject targetEObj);
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/PreCopyListener.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/PreCopyListener.java
new file mode 100644
index 00000000000..d865c4a586e
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/PreCopyListener.java
@@ -0,0 +1,38 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.listeners;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
+
+/**
+ * Interface for listeners that are notified when an eObject
+ * is copied
+ *
+ * @see org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier
+ */
+public interface PreCopyListener {
+
+ /**
+ * Is called for each EObject that is copied. If it returns null, the
+ * indicated object should not be copied. If it returns a different object
+ * than the passed EObject, this object is used (the returned object of the
+ * first listener is used).
+ *
+ * @param sourceEObj
+ * the added classifier
+ */
+ public EObject preCopyEObject(LazyCopier copy, EObject sourceEObj);
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/make/GenerateMakefile.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/make/GenerateMakefile.java
new file mode 100644
index 00000000000..e2c88564887
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/make/GenerateMakefile.java
@@ -0,0 +1,118 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Manel Fredj
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.make;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.ArrayList;
+
+import org.eclipse.papyrus.qompass.designer.core.Activator;
+
+/*
+ * TODO:
+ * - Currently not used (and unclear, if useful)
+ *
+ * - Determination of root folder
+ * - files within fileList have relative folder names? (if not assure)
+ * - supporting def file (not only for Accord)
+ * - integration with execution
+ */
+
+/**
+ * Generate a makefile based on found source files, i.e. .cpp files
+ *
+ * @author manel
+ *
+ */
+@Deprecated
+public class GenerateMakefile {
+
+ /**
+ * Makefile Generation Algorithm:
+ * For each Node
+ * include $(ROOT_PATH)/Makefile.defs
+ * NAME = Util
+ * SRCS =\
+ * File1.cpp\
+ * File2.cpp\
+ * ...
+ * FileN.cpp
+ * include $(ROOT_PATH)/Makefile.rules
+ */
+ public static void generate() {
+ ArrayList<String> fileList = new ArrayList<String>();
+ ArrayList<String> folderList = new ArrayList<String>();
+ ArrayList<String> nodeList = new ArrayList<String>();
+ ArrayList<String> nodeSources = new ArrayList<String>();
+
+ ShowFiles showFiles = new ShowFiles("/local/home/ansgar/workspace-v3.3/TestCppProject/AluSocketGen"); //$NON-NLS-1$
+
+ showFiles.getFilesRec(fileList, folderList);
+ nodeList = showFiles.findNodesDir(folderList);
+ for (String node : nodeList) {
+ nodeSources = showFiles.getNodeSources(fileList, node);
+ String nodePath = showFiles.getRootPath() + File.pathSeparator + node + File.pathSeparator + "Makefile"; //$NON-NLS-1$
+ createFileList(nodePath, nodeSources, node);
+ }
+ }
+
+ /**
+ * Create a list of .cpp files
+ *
+ * @param fileName
+ * @param cppFileList
+ * @param NodeName
+ */
+ public static void createFileList(String fileName, ArrayList<String> cppFileList, String NodeName) {
+ // create the makefile
+ try {
+ java.io.File makefile = new java.io.File(fileName);
+
+ makefile.createNewFile();
+ // not avail in Java 1.5?
+ // makefile.setWritable(true);
+
+ FileOutputStream writer = new java.io.FileOutputStream(makefile);
+
+ writer.write("include $(ACCORD_ROOT)/Makefile.defs\n\n".getBytes()); //$NON-NLS-1$
+ writer.write(("NAME=" + NodeName + "\n\n").getBytes()); //$NON-NLS-1$ //$NON-NLS-2$
+
+ // Calculate list of sources
+ writer.write("SRCS=\\\n".getBytes()); //$NON-NLS-1$
+
+ if (cppFileList != null && cppFileList.size() != 0) {
+
+ // Calculate list of .cpp files
+ for (int i = 0; i < cppFileList.size(); i++) {
+ writer.write(("\t" + cppFileList.get(i)).getBytes()); //$NON-NLS-1$
+ if (i < cppFileList.size() - 1) {
+ // add \ to all but last item
+ writer.write("\\".getBytes()); //$NON-NLS-1$
+ }
+ writer.write("\n".getBytes()); //$NON-NLS-1$
+ }
+ }
+ writer.write("\n".getBytes()); //$NON-NLS-1$
+
+ writer.write("include $(ACCORD_ROOT)/Makefile.rules".getBytes()); //$NON-NLS-1$
+
+ writer.flush();
+ writer.close();
+ } catch (IOException e) {
+ Activator.log.error(e);
+ }
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/make/ShowFiles.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/make/ShowFiles.java
new file mode 100644
index 00000000000..2568c45a61d
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/make/ShowFiles.java
@@ -0,0 +1,104 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.make;
+
+import java.io.File;
+import java.util.ArrayList;
+
+@Deprecated
+public class ShowFiles {
+
+ /**
+ * Initialize the ShowFiles class
+ *
+ * @param rootPath
+ * the path of a folder, that in turn contains a set of folders. It is assume that the
+ * latter contain code related to a specific node
+ */
+ public ShowFiles(String rootPath) {
+ m_rootPath = rootPath;
+ }
+
+ private String m_rootPath;
+
+ public String getRootPath() {
+ return m_rootPath;
+ }
+
+ /**
+ * takes as input the list of all directories that are included under a root path (allDir), and
+ * the root path (in case different from ACCORD_ROOT), and potentially, a list of (non empty) files,
+ * which will be enriched with the set of source files (.cpp) under all directories under the root path
+ */
+ public void getFilesRec(ArrayList<String> allFiles, ArrayList<String> allDir) {
+ getFilesRec(allFiles, allDir, m_rootPath);
+ }
+
+
+ public void getFilesRec(ArrayList<String> fileList, ArrayList<String> folderList, String root) {
+ File f = new File(root);
+ File[] listFiles = f.listFiles();
+ for (File file : listFiles) {
+ if (file.isDirectory()) {
+ // call recursively with
+ getFilesRec(fileList, folderList, file.toString());
+ folderList.add(file.toString());
+ } else {
+ if (file.toString().endsWith(".cpp")) { //$NON-NLS-1$
+ // found a C++ file
+ fileList.add(file.toString());
+ }
+ }
+ }
+ }
+
+ /**
+ * takes as input the list of all directories that are included under a root path (folderList),
+ * in order to provide as a result the subset of directories, corresponding to the nodes
+ */
+ public ArrayList<String> findNodesDir(ArrayList<String> folderList) {
+ ArrayList<String> allNodes = new ArrayList<String>();
+ for (String dir : folderList) {
+ String tmp = dir.replaceFirst(m_rootPath, ""); //$NON-NLS-1$
+ // all the nodes are at the level (ACCORD_ROOT + 1)
+ tmp = tmp.trim().replaceFirst(File.pathSeparator, ""); //$NON-NLS-1$
+ if (!tmp.contains(File.pathSeparator)) {
+ allNodes.add(tmp.trim());
+ }
+ }
+ return allNodes;
+ }
+
+ /**
+ * takes as input the list of all files that are included under ACCORD_ROOT path (allFiles), and
+ * the node name (nodeName) in order to provide as a result the subset of files, corresponding to the
+ * sources of the node (NodeName)
+ */
+ public ArrayList<String> getNodeSources(ArrayList<String> allFiles, String nodeName) {
+ ArrayList<String> sourceFilesPath = new ArrayList<String>();
+
+ for (String filePath : allFiles) {
+ if (filePath.contains(nodeName)) {
+ // path is related to given node
+ int index = filePath.indexOf(nodeName);
+ String tmp = filePath.substring(index);
+ index = tmp.indexOf(File.pathSeparator);
+ tmp = tmp.substring(index + 1);
+ sourceFilesPath.add(tmp.trim());
+ }
+ }
+ return sourceFilesPath;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/messages.properties b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/messages.properties
new file mode 100644
index 00000000000..332fca3462d
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/messages.properties
@@ -0,0 +1,91 @@
+BootLoaderGen_AtLeastOneBlockingCall=There must be at most one blocking "run" operation per node. Not adding "run" call for component instance %s. Existing invocations: %s
+BootLoaderGen_CannotApplyCppInclude=Cannot apply cppInclude stereotype. Make sure that C/C++ profile is applied to your model
+BootLoaderGen_CannotRetrieveTemplate=Cannot retrieve bootLoader template (should be in %s)
+CommandSupport_NoEditingDomain=Can not get editing domain
+CommandSupport_ErrorDuringCmdExec=Error during command execution
+ConfigUtils_RuleWithoutBaseClass=A container rule has no base class (broken model library?)
+DepCreation_SingletonExistsAlready=singleton instantiation: element with name %s exists already in deployment plan, but is not an instance specification
+DepCreation_CannotFindImplementation=cannot find suitable implementation for instance <%s> (given type <%s>)
+DepCreation_CircularReference=Class %s is referenced in a circle\! Thus, an infinite number of instance specifications would be required.\nrecursion path:
+DepCreation_DefiningFeatureNull=The defining feature of a slot of instance %s is null
+DepCreation_FCMconnectorWithoutBaseClass=An FCM connector has no base class. Check for broken model library
+DepCreation_InfoCreateDepPlan=DepCreation.createDepPlan: %s
+DepCreation_TypeInAttributeUndefined=type of attribute %s within class %s is not defined
+Deploy_0=Cannot find implementation for instance %s
+Description_NoAvail=not available
+
+LWContainerTrafo_CannotApplyRule=Cannot apply container rule <%s>, since the type of one of its parts is undefined. Check for unresolved proxies in imports
+
+TemplateUtils_InfoCreateBoundPackage=create bound package (fixed binding): %s within %s
+TemplateUtils_InfoGetActualFrom=TemplateInstantiation.getActualFromBinding: substitution formal = %s
+TemplateUtils_NoTemplateSignature=no template signature found for %s
+
+ConnectorBinding_InfoConnPortConnectedVia=connector port <%s> is connected via <%s>
+ConnectorBinding_CannotFindBinding=error: can not find a binding for formal parameter %s in the context of composite %s, connector %s and (connector) template %s.
+ConnectorBinding_CannotFindBindingForPort=Cannot find a binding for port %s of connector %s.
+ConnectorBinding_CannotFindConsistentBinding=cannot find a consistent binding for port %s of connector %s (in %s). Formal already bound to type %s
+ConnectorBinding_ConnectorsPort=connects port, otherInterface = %s
+ConnectorBinding_FormalAlreadyBound=Formal already bound to type %s
+ConnectorBinding_InfoActualReturnIntfIs=actual return interface: %s
+ConnectorBinding_InfoConnectsPort=connects port, otherInterface = %s
+ConnectorBinding_InfoCreateBoundPackage=create bound package %s within %s
+ConnectorBinding_InfoMatchOtherEnd=matchOtherEnd: port %s
+ConnectorBinding_InfoProvidedPortTypeMatches=getActual: provided port type matches, port %s.
+ConnectorBinding_NoTemplateSignature=ConnectorBinding: no template signature found for %s
+ConnectorReification_CannotFindMatchingPort=Connector reification: cannot find a matching port on reified connector %s for port %s. This should not happen and indicates an internal tool chain error.
+ConnectorReification_CouldNotBind=could not bind connector implementation template <%s>
+ConnectorReification_CouldNotConnectPort=Error: could not connect connector port <%s>.
+ConnectorReification_CouldNotConnectPortOfType=Error: could not connect connector port <%s> of type <%s>.
+ConnectorReification_InfoAddConnectorPart=ConnectorReification, add part with connector implementation template <%s> and implementation <%s>
+ConnectorReification_InfoPortTypes=ConnectorReification: otherPort type: <%s> - port <%s>.
+ConnectorReification_RequiresUseOfPorts=Connector reification requires the use of ports (otherwise, the ports of the reified connector can not be assigned unambiguously
+ConnectorReification_TemplateTypeNotClass=template type is not a class
+GenerateCode_CouldNotDeleteOldCode=Could not delete old code: %s
+GenerateCode_GeneratingCode=generating %s code
+GenerateCode_GeneratingCodeForNode=generating %s code for node %s
+
+TemplateInstantiation_TemplateIsNull=Passed template element is null
+
+TemplateInstantiationListener_TrafoException=TransformationException: %s
+
+CompImplTrafos_CannotFindType=Can not find type %s. Thus, unable to create suitable connect operation in component to OO transformation.
+CompImplTrafos_IntfNotImplemented=Interface <%s> provided by port <%s> of class <%s> is not implemented by the component itself nor does the port delegate to a part
+CompTypeTrafos_CannotFindType=Can not find type <%s>. Thus, unable to create suitable connect operation in component to OO transformation
+
+ContainerTrafo_CannotApplyRule=Cannot apply container rule <%s>, since the type of one of its parts is undefined. Check for unresolved proxies in imports
+ContainerTrafo_CannotFindDelegationConn=(during interceptor transformation for container): cannot find existing delegation connector
+ContainerTrafo_InterceptionRuleButNoInterceptor=The part %s in rule %s has an interceptionRule, but is not typed with an interaction component
+ContainerTrafo_RecursiveLWnotSupported=Recursive lightweight container rules currently not supported
+InstanceConfigurator_InvalidPluginExtension=InstanceConfigurator: plugin extension for id %s is invalid
+InstantiateDepPlan_AcceleoErrors=Acceleo errors occured
+InstantiateDepPlan_AcceleoErrorsCheckLog=Acceleo errors occured during code generation. Please check the error log
+InstantiateDepPlan_CannotGenModel=Cannot generate model
+InstantiateDepPlan_CheckInputImportPkg=An imported package is null. Verify the imported packages
+InstantiateDepPlan_CheckInputImportPkgNoRes=An imported package has no eResource. Verify imported packages
+InstantiateDepPlan_CheckInputModelProfile3=Check input model: profile <%s> is not contained in a resource
+InstantiateDepPlan_CheckInputModelProfileNoRes=Check input model: the applied profile with URI <%s> has no name and is not contained in a resource
+InstantiateDepPlan_CheckInputModelProfileNoResNoName=Check input model: one of the applied profiles has no name and is not contained in a resource
+InstantiateDepPlan_ConsultConsole=Consult error log or console for details
+InstantiateDepPlan_DepPlanStereotypeNotInitialized=The stereotype attribute <deploymentPlan> of configuration <%s> is not initialized.
+InstantiateDepPlan_ErrorsDuringTransformation=An error occurred during transformation
+InstantiateDepPlan_IllegalArgumentDuringCopy=An Illegal argument exception occured during the copy of profile applications. This may indicate that the original model contains an invalid profile application\n\n
+InstantiateDepPlan_InfoApplyProfile=apply profile
+InstantiateDepPlan_InfoDeployingForNode=deploying for node %s
+InstantiateDepPlan_InfoExpandingConnectors=expanding connectors and containers
+InstantiateDepPlan_InfoGeneratingModel=Generating deployment model ...
+InstantiateDepPlan_InfoImportPackage=import package %s
+InstantiateDepPlan_InfoNoneAllocated=None of the instances in the deployment plan is allocated to a node. Verify the node allocation.
+InstantiateDepPlan_TransformationException=A transformation exception occurred
+MainModelTrafo_ChangePartType=change type of part <%s> due to container trafo
+MainModelTrafo_NoDefiningFeature=Error: no defining feature associated with <%s>.
+MainModelTrafo_NoInstanceAssociated=Error: no instance is associated with slot for feature <%s>.
+
+CompImplSync_InfoSyncIntf=interface rel-ship %s
+CompImplSync_InfoSyncViaImpl=Sync. type and implementation
+CompImplSync_InfoSyncViaType=syncViaType => implementation %s
+
+DepPlanUtils_CannotFindAttribute=cannot find attribute %s in classifier %s
+DepPlanUtils_ConfigOfPropertyFailed=configuration of property %s failed: type is not a string
+UpdateUtils_CannotApplyFCMstereo=cannot apply FCM stereotype. Check whether profile is applied
+XtendTemplateBinding_TemplateNotFound=template with reference <%s.%s> can not be found. Verify whether the reference is correctly spelled, the template has been registered and implements the interface <IXtend> (in oep.designer.core.extensions).
+XtendTemplateBinding_TemplateResultIsNotAString=bind template: return result is not a string
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/preferences/QompassPreferenceConstants.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/preferences/QompassPreferenceConstants.java
new file mode 100644
index 00000000000..3b3f3c7d2a4
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/preferences/QompassPreferenceConstants.java
@@ -0,0 +1,33 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.qompass.designer.core.preferences;
+
+/**
+ * Constant definitions for plug-in preferences
+ */
+public class QompassPreferenceConstants {
+
+ /**
+ * For attributes, the default "aggregation kind" value is "none". When this option is set
+ * it will be treated as composite
+ */
+ public static final String P_TREAT_NONE_AS_COMPOSITE = "treatNoneAsComposite"; //$NON-NLS-1$
+
+ public static final String P_ALL_ATTRIBUTES_ARE_CONFIG_ATTRIBUTES = "allAttributesAreConfigAttributes"; //$NON-NLS-1$
+
+ public static final String P_SHOW_PROV_REQ_AS_PORT_ICONS = "showProvReqAsPortIcons"; //$NON-NLS-1$
+
+ public static final String P_CODE_GEN_PREFIX = "codeGenPrefix"; //$NON-NLS-1$
+
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/sync/CompImplSync.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/sync/CompImplSync.java
new file mode 100644
index 00000000000..89659d326da
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/sync/CompImplSync.java
@@ -0,0 +1,451 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.sync;
+
+import java.util.Iterator;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.transaction.util.TransactionUtil;
+import org.eclipse.papyrus.FCM.DerivedElement;
+import org.eclipse.papyrus.qompass.designer.core.CommandSupport;
+import org.eclipse.papyrus.qompass.designer.core.Log;
+import org.eclipse.papyrus.qompass.designer.core.Messages;
+import org.eclipse.papyrus.qompass.designer.core.OperationUtils;
+import org.eclipse.papyrus.qompass.designer.core.PortInfo;
+import org.eclipse.papyrus.qompass.designer.core.PortUtils;
+import org.eclipse.papyrus.qompass.designer.core.Utils;
+import org.eclipse.papyrus.qompass.designer.core.transformations.PrefixConstants;
+import org.eclipse.papyrus.qompass.designer.core.transformations.UpdateUtils;
+import org.eclipse.papyrus.uml.tools.utils.ConnectorUtil;
+import org.eclipse.uml2.uml.Behavior;
+import org.eclipse.uml2.uml.BehavioralFeature;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.ConnectorEnd;
+import org.eclipse.uml2.uml.DirectedRelationship;
+import org.eclipse.uml2.uml.Generalization;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.InterfaceRealization;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * Synchronize component implementation classes.
+ * An implementation depends on the component type in the following way:
+ * (1) It has to realize the interfaces that are provided by the components ports, unless
+ * the port is delegated
+ * (1b) For each realized interface, its operations need to be implemented (the tool should detect and report
+ * double entries which can be resolved via delegation)
+ * (2) It can use interface that are required by the component ports. These changes are reflected in the
+ * context object, but are currently not propagated on an implementation level.
+ *
+ * The first aspect may be triggered by
+ * (a) modification of the port (name, kind or type)
+ * (b) modification due to changes of the interface: rename the interface itself or add, remove or rename operations
+ * and add, remove or rename parameters.
+ *
+ * InterfaceRealizations are implemented by means of stereotyped generalizations. This has the advantage
+ * that the operation itself is inherited and does not have to be synchronized.
+ *
+ * @author ansgar
+ *
+ */
+public class CompImplSync {
+
+ public static void syncViaInterface(Interface intf) {
+ syncViaInterface(intf, null);
+ }
+
+ /**
+ * Delegate a synchronization operation to one or more implementations when an interface
+ * (which may have changed) is given. I.e. this operation is called when an operation
+ * of an implemented interface is added, removed or modified.
+ *
+ * @param an
+ * interface which may be implemented by a set of component implementations.
+ * @param port
+ */
+ public static void syncViaInterface(Interface intf, BehavioralFeature toBeRemoved) {
+ // find all implementations of this interface
+ for (DirectedRelationship relationship : intf.getTargetDirectedRelationships(UMLPackage.eINSTANCE.getInterfaceRealization())) {
+ InterfaceRealization ir = (InterfaceRealization) relationship;
+ Classifier cl = ir.getImplementingClassifier();
+ if (cl instanceof Class) {
+ Log.log(IStatus.INFO, Log.TRAFO_SYNC, String.format(Messages.CompImplSync_InfoSyncIntf, cl.getName()));
+ Class implementation = (Class) cl;
+ // syncRealizations (implementation);
+ CompImplSync.interfaceModifications(implementation, toBeRemoved);
+ }
+ }
+ }
+
+ /**
+ * Delegate a synchronization operation to one or more implementations when a component
+ * type is given.
+ * The function will in particular handle realization operations due to provided
+ * ports and the behaviors associated with it (e.g. opaque-behaviors implementing the provided
+ * operations of a component)
+ *
+ * @param a
+ * component type or a realized interface
+ * @param port
+ */
+ public static boolean syncViaType(Class compType, boolean addOnly) {
+ // find all implementations ...
+ boolean foundGeneralization = false;
+ for (DirectedRelationship relationship : compType.getTargetDirectedRelationships(UMLPackage.eINSTANCE.getGeneralization())) {
+ if (relationship instanceof Generalization) {
+ foundGeneralization = true;
+ Classifier cl = ((Generalization) relationship).getSpecific();
+ if (cl instanceof Class) {
+ Log.log(IStatus.INFO, Log.TRAFO_SYNC, String.format(Messages.CompImplSync_InfoSyncViaType, cl.getName()));
+ Class implementation = (Class) cl;
+ updatePorts(implementation);
+ if (Utils.isCompImpl(cl)) {
+ // add realization relationship only for implementations
+ if (addOnly) {
+ addRealizations(implementation);
+ // syncContextOps (implementation, false);
+ } else {
+ syncRealizations(implementation);
+ // syncContextOps (implementation, true);
+ }
+ }
+ }
+ }
+ }
+ return foundGeneralization;
+ }
+
+ /*
+ * public static void renamePortViaType (Class compType, Port port, String oldName)
+ * {
+ * // find all implementations ...
+ * for (DirectedRelationship relationship :
+ * compType.getTargetDirectedRelationships (UMLPackage.eINSTANCE.getGeneralization ()))
+ * {
+ * if (relationship instanceof Generalization) {
+ * Classifier cl = ((Generalization) relationship).getSpecific ();
+ * if (cl instanceof Class) {
+ * renamePort ((Class) cl, port, oldName);
+ * }
+ * }
+ * }
+ * }
+ */
+
+ /**
+ * Update the ports of a class, i.e. recalculate its derived interfaces
+ *
+ * @param component
+ * @param port
+ */
+ public static void updatePorts(Class implementation) {
+ for (Port port : PortUtils.getAllPorts(implementation)) {
+ org.eclipse.papyrus.FCM.Port fcmPort = UMLUtil.getStereotypeApplication(port, org.eclipse.papyrus.FCM.Port.class);
+ // verify if in same eResource (= editable)
+ if ((fcmPort != null) && (port.eResource() == implementation.eResource())) {
+ fcmPort.update();
+ }
+ }
+ }
+
+ /**
+ * Add an interface realization relationship from an implementation (Class) towards an interface
+ *
+ * @param implementation
+ * A component implementation
+ * @param providedIntf
+ * The interface that is provided at one of its port
+ */
+ protected static void addRealization(final Class implementation, final Interface providedIntf) {
+ if (!hasRealization(implementation, providedIntf)) {
+ InterfaceRealization ir =
+ implementation.createInterfaceRealization(calcRealizationName(providedIntf), providedIntf);
+ ir.getClients().add(implementation);
+ ir.getSuppliers().add(providedIntf);
+ }
+ }
+
+ /**
+ * Calculate the name of an interface realization towards an interface that is
+ * provided at one of its ports
+ *
+ * @param providedIntf
+ * an interface provided by a component
+ * @return the calculated name
+ */
+ protected static String calcRealizationName(Interface providedIntf) {
+ String name = providedIntf.getName();
+ if (name == null) {
+ name = "undefined"; //$NON-NLS-1$
+ }
+ return "derived realization of " + name; //$NON-NLS-1$
+ }
+
+ /**
+ * return existing interface-realization relationship
+ *
+ * @param implementation
+ * @param intf
+ * @return
+ */
+ protected static InterfaceRealization getRealization(Class implementation, Interface intf) {
+ return implementation.getInterfaceRealization(null, intf);
+ }
+
+ /**
+ * check, whether an interface-realization relationship already exists
+ *
+ * @param implementation
+ * @param intf
+ * @return
+ */
+ protected static boolean hasRealization(Class implementation, Interface intf) {
+ return getRealization(implementation, intf) != null;
+ }
+
+ /**
+ * Synchronize realization (generalization) relationship.
+ *
+ * @param implementation
+ * @param port
+ */
+ public static void syncRealizations(Class implementation) {
+ EList<Interface> providedIntfs = addRealizations(implementation);
+ removeRealizations(providedIntfs, implementation);
+ }
+
+ /**
+ * add derived realization relationships of a component implementation
+ * due to provided interfaces of its ports
+ *
+ * TODO: depends on OOTrafo, duplicate functionality
+ *
+ * @param implementation a component implementation
+ */
+ public static EList<Interface> addRealizations(Class implementation) {
+ // create a list of all provided interfaces and check whether realization relationship
+ // exists. If not, create
+ EList<Interface> providedIntfs = new BasicEList<Interface>();
+ for (PortInfo portInfo : PortUtils.flattenExtendedPorts(PortUtils.getAllPorts2(implementation))) {
+ Interface providedIntf = portInfo.getProvided();
+ // check, if there is a getter already. In this case, we assume that we should not synchronize
+ // operations
+ String opName = PrefixConstants.getP_Prefix + portInfo.getName();
+ if (implementation.getOwnedOperation(opName, null, null) != null) {
+ continue;
+ }
+ ConnectorEnd connEnd = ConnectorUtil.getDelegation(implementation, portInfo.getPort());
+ // check that there is no delegation to a part which in turn has to implement the operations.
+ if ((providedIntf != null) && (connEnd == null)) {
+ if (providedIntfs.contains(providedIntf)) {
+ // emit warning that more than one provider for same interface
+ Log.log(IStatus.WARNING, Log.TRAFO_SYNC, "The interface " + providedIntf.getName() + //$NON-NLS-1$
+ " is provided by more than one port of class <" + implementation.getQualifiedName() + //$NON-NLS-1$
+ ">, inputs would therefore be undistinguishable"); //$NON-NLS-1$
+ }
+ providedIntfs.add(providedIntf);
+ InterfaceRealization ir = getRealization(implementation, providedIntf);
+ if (ir == null) {
+ addRealization(implementation, providedIntf);
+ } else {
+ String name = calcRealizationName(providedIntf);
+ if (!name.equals(ir.getName())) {
+ ir.setName(name);
+ }
+ }
+ }
+ }
+ return providedIntfs;
+ }
+
+ /**
+ * remove derived realization relationships of a component implementation
+ * due to provided interfaces of its ports, i.e. remove those for which the
+ * port no longer provides the interface.
+ *
+ * @param implementation
+ */
+ private static void removeRealizations(EList<Interface> providedIntfs, final Class implementation) {
+ // now loop through all interface realization relations and remove those that are not
+ // related to a provided port.
+ final EList<InterfaceRealization> toBeRemoved = new BasicEList<InterfaceRealization>();
+ for (InterfaceRealization ir : implementation.getInterfaceRealizations()) {
+ String name = ir.getName();
+ // automatically added interface realization is identified via its name (simpler
+ // compared to use of stereotype)
+ if ((name != null) && name.startsWith("derived")) { //$NON-NLS-1$
+ Interface inheritedIntf = ir.getContract();
+ if (!providedIntfs.contains(inheritedIntf)) {
+ toBeRemoved.add(ir);
+ }
+ }
+ }
+ if (toBeRemoved.size() > 0) {
+ // remove InterfaceRealization, since not part of provided interfaces
+ CommandSupport.exec(TransactionUtil.getEditingDomain(implementation), Messages.CompImplSync_InfoSyncViaImpl, new Runnable() {
+
+ @Override
+ public void run() {
+ // implCopy = implementation;
+ for (InterfaceRealization ir : toBeRemoved) {
+ ir.destroy();
+ }
+ }
+ });
+ }
+ }
+
+ /**
+ * The interface that types a port has been modified. Subsequently, the names of
+ * methods have to be adapted accordingly, methods have to be removed or added
+ *
+ * @param implementation
+ * @param port
+ * @param newName
+ */
+ public static void interfaceModifications(Class implementation, BehavioralFeature toBeRemoved) {
+ syncDerivedOperations(implementation);
+
+ EList<Operation> ownedOperations = implementation.getOwnedOperations();
+ // loop through all methods, adapt name according to specification name.
+ Iterator<Behavior> behaviors = implementation.getOwnedBehaviors().iterator();
+ while (behaviors.hasNext()) {
+ Behavior behavior = behaviors.next();
+ BehavioralFeature bf = behavior.getSpecification();
+ if ((bf != null) && ownedOperations.contains(bf)) {
+ BehavioralFeature sourceBf = (BehavioralFeature)
+ UpdateUtils.getSource(bf);
+
+ // if an operation is scheduled for deletion, it still exists at this
+ // point (This operation is called by an InterfaceListener which gets called
+ // before the deletion takes place) and the specification of associated behaviors
+ // still point to it. Therefore the check toBeRemoved is added.
+ if (sourceBf != toBeRemoved) {
+ String name = calcBehaviorName(sourceBf, implementation);
+ if (!name.equals(behavior.getName())) {
+ behavior.setName(name);
+ }
+ }
+ }
+ }
+ }
+
+ public static void syncDerivedOperations(Class implementation) {
+ // check for unimplemented operations
+ // EList<DirectedRelationship> relShips = implementation.getSourceDirectedRelationships (UMLPackage.eINSTANCE.getInterfaceRealization ());
+ EList<Interface> realizedInterfaces = new BasicEList<Interface>();
+ // implementation.getInterfaceRealizations returns wrong value??
+
+ EList<Operation> ownedOperations = implementation.getOwnedOperations();
+ for (InterfaceRealization ir : implementation.getInterfaceRealizations()) {
+ /*
+ * for (DirectedRelationship relShip : relShips)
+ * if (relShip instanceof InterfaceRealization) {
+ * InterfaceRealization ir = (InterfaceRealization) relShip;
+ */
+ Interface intf = ir.getContract();
+ if (intf == null) {
+ // should not happen?
+ continue;
+ }
+ realizedInterfaces.add(intf);
+
+ for (Operation operation : intf.getAllOperations()) {
+ Operation copiedOperation = (Operation)
+ UpdateUtils.getDerivedElement(ownedOperations, operation);
+ if (copiedOperation == null) {
+ // no owned operation derived from the interface operation found.
+ // Would indicate normally that there is no suitable owned operation.
+ // However: stereotype values may not be available during model load, check
+ // whether there is an identical operation, before copying one.
+ copiedOperation = OperationUtils.getSameOperation(operation, implementation);
+ if (copiedOperation == null) {
+ copiedOperation = implementation.createOwnedOperation(operation.getName(), null, null);
+ OperationUtils.syncOperation(operation, copiedOperation);
+ copiedOperation.setIsAbstract(false);
+ }
+ UpdateUtils.setSource(copiedOperation, operation);
+ } else if (!OperationUtils.isSameOperation(operation, copiedOperation)) {
+ OperationUtils.syncOperation(operation, copiedOperation);
+ copiedOperation.setIsAbstract(false);
+ }
+ }
+ }
+ for (Behavior method : implementation.getOwnedBehaviors()) {
+ SyncBehaviorParameters.syncParameters(method);
+ }
+
+ // remove operations that are no longer provided via an interface of a port (and
+ // that are derived elements, i.e. have a source attribute)
+ Iterator<Operation> ownedOpsIter = ownedOperations.iterator();
+ while (ownedOpsIter.hasNext()) {
+ Operation ownedOp = ownedOpsIter.next();
+
+ DerivedElement de = UMLUtil.getStereotypeApplication(ownedOp, DerivedElement.class);
+ if (de != null) {
+ if (de.getSource() instanceof Operation) {
+
+ Operation sourceOp = (Operation) de.getSource();
+ // check, whether sourceOp is offered by one of the realized interfaces
+ boolean contains = false;
+ for (Interface realizedIntf : realizedInterfaces) {
+ if (realizedIntf.getAllOperations().contains(sourceOp)) {
+ contains = true;
+ }
+ }
+ if (!contains) {
+ // operation belongs to an interface which is not implemented => remove
+ ownedOpsIter.remove();
+ ownedOp.destroy();
+ }
+ }
+ else if (de.getSource() == null) {
+ // source element does not exist => remove
+ ownedOpsIter.remove();
+ ownedOp.destroy();
+ }
+ }
+ }
+ }
+
+
+
+ /**
+ * Calculate the name of a behavior for a given operation
+ * TODO better handling of overloading (better representation of signature)
+ *
+ * @param operation
+ * @return
+ */
+ private static String calcBehaviorName(BehavioralFeature bf, Classifier cl) {
+ /*
+ * Iterator<Operation> operations = cl.getOperations ().iterator ();
+ * while (operations.hasNext ()) {
+ * Operation op = operations.next ();
+ * if ((op.getName () == bf.getName ()) && (op != bf)) {
+ * // at least one other operation with same name, return long name
+ * return bf.getName () + bf.getOwnedParameters ().toString ();
+ * }
+ * }
+ */
+ return bf.getName();
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/sync/CompTypeSync.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/sync/CompTypeSync.java
new file mode 100644
index 00000000000..4bb5070b757
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/sync/CompTypeSync.java
@@ -0,0 +1,55 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.sync;
+
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Port;
+
+/**
+ * Create a UML like executor, i.e.
+ * for each port p with a provided interface I, add a get_p to the executor
+ * for each port q with a required interface I, add an attribute q to the executor. This
+ * attribute is manipulated by the container.
+ *
+ * @author ansgar
+ *
+ */
+public class CompTypeSync {
+
+ /**
+ * Rename the operations/attributes associated with a port, if the ports
+ * name or type has changed.
+ * TODO: obsolete, since the port-operations aren't there yet.
+ *
+ * @param component
+ * @param port
+ */
+ public static void renamePort(Class component, Port port, String oldName) {
+ // CompImplSync.renamePortViaType (component, port, oldName);
+ // CompImplSync.renamePort(component, port, oldName);
+ }
+
+
+ /**
+ * Synchronizes the operations/attributes associated with a port
+ *
+ * @param component
+ * @param port
+ */
+ public static void syncPort(Class component, Port port) {
+ CompImplSync.syncViaType(component, false);
+ // CompImplSync.syncContextOps (component, true);
+ }
+};
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/sync/DepPlanSync.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/sync/DepPlanSync.java
new file mode 100644
index 00000000000..6dd0266179a
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/sync/DepPlanSync.java
@@ -0,0 +1,147 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.sync;
+
+import java.util.Iterator;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.papyrus.FCM.DeploymentPlan;
+import org.eclipse.papyrus.qompass.designer.core.Log;
+import org.eclipse.papyrus.qompass.designer.core.Utils;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepCreation;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepPlanUtils;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepUtils;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationRTException;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.InstanceValue;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Slot;
+import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.ValueSpecification;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * Currently unused synchronization for deployment plans.
+ *
+ * @see comp.cea.ec3m.gentools.core.listeners.DepPlanListener
+ *
+ * @author ansgar
+ */
+public class DepPlanSync {
+
+ /**
+ * Synchronize a deployment plan: remove slots that refer to properties that exist no longer
+ * and add those that do not exist yet
+ *
+ * @param element
+ * an arbitrary element of the source model (i.e. the model that will
+ * store the deployment plan
+ * @throws TransformationException
+ */
+ public static void syncAllDepPlans(Element element) {
+ for (Package depPlan : DepPlanUtils.getAllDepPlans(element)) {
+ syncDepPlan(depPlan);
+ }
+ }
+
+ /**
+ * Synchronize a deployment plan: remove slots that refer to properties that exist no longer
+ * and add those that do not exist yet
+ *
+ * @param depPlan
+ * @throws TransformationException
+ */
+ public static void syncDepPlan(Package depPlan) {
+ removeUnusedSlots(depPlan);
+ // EList<InstanceSpecification> list = new BasicEList<InstanceSpecification>();
+ DeploymentPlan cdp = UMLUtil.getStereotypeApplication(depPlan, DeploymentPlan.class);
+ if (cdp == null) {
+ return;
+ }
+ InstanceSpecification mainInstance = cdp.getMainInstance();
+ addCDP(depPlan, mainInstance, mainInstance.getName());
+ // now add elements that are not in the plan - although they should
+ // avoid to replicate code already in dep-creation. => createDepPlan(top)
+ // strategy: create new dep-plan and compare?
+ }
+
+ private static void addCDP(Package depPlan, InstanceSpecification instance, String canonicalName)
+ {
+ Class implementation = DepUtils.getImplementation(instance);
+ if (!instance.getName().equals(canonicalName)) {
+ instance.setName(canonicalName);
+ }
+ // check sub-instances
+ for (Slot slot : instance.getSlots()) {
+ InstanceSpecification subInstance = DepUtils.getInstance(slot);
+ if (subInstance != null) {
+ addCDP(depPlan, subInstance, canonicalName + "." + slot.getDefiningFeature().getName()); //$NON-NLS-1$
+ }
+ }
+ for (Property attribute : Utils.getParts(implementation)) {
+ Type type = attribute.getType();
+ if (type instanceof Class) {
+ if (!hasSlot(instance, attribute)) {
+ try {
+ InstanceSpecification partIS =
+ DepCreation.createDepPlan(depPlan, (Class) type, instance.getName() + "." + attribute.getName(), true); //$NON-NLS-1$
+ DepPlanUtils.createSlot(depPlan, instance, partIS, attribute);
+ } catch (TransformationException e) {
+ Log.log(IStatus.ERROR, Log.DEPLOYMENT, e.getMessage());
+ throw new TransformationRTException(e.getMessage());
+ }
+ }
+ }
+ }
+ }
+
+ private static boolean hasSlot(InstanceSpecification instance, Property attribute) {
+ for (Slot slot : instance.getSlots()) {
+ if (slot.getDefiningFeature() == attribute) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public static void removeUnusedSlots(Package depPlan) {
+ // remove elements that are no longer in the plan
+ for (NamedElement member : depPlan.getMembers()) {
+ if (member instanceof InstanceSpecification) {
+ InstanceSpecification instance = (InstanceSpecification) member;
+ Iterator<Slot> slotIt = instance.getSlots().iterator();
+ while (slotIt.hasNext()) {
+ Slot slot = slotIt.next();
+ if (slot.getDefiningFeature() == null) {
+ // property has been removed => remove associated slot
+ for (ValueSpecification value : slot.getValues()) {
+ if (value instanceof InstanceValue) {
+ InstanceSpecification is = ((InstanceValue) value).getInstance();
+ DepPlanUtils.delDepPlan(is);
+ }
+ }
+ slot.destroy();
+ slotIt.remove();
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/sync/InterfaceSync.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/sync/InterfaceSync.java
new file mode 100644
index 00000000000..66e85da0cb6
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/sync/InterfaceSync.java
@@ -0,0 +1,141 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.sync;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.FCM.DerivedElement;
+import org.eclipse.papyrus.qompass.designer.core.OperationUtils;
+import org.eclipse.papyrus.qompass.designer.core.Utils;
+import org.eclipse.papyrus.uml.tools.utils.PackageUtil;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Generalization;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Reception;
+import org.eclipse.uml2.uml.Signal;
+import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * Synchronize the use of a common superclass for signal reception with the
+ * question whether an interface has at least one owned reception.
+ */
+public class InterfaceSync {
+
+ public static final String SIG_PREFIX = "SIG_"; //$NON-NLS-1$
+
+ /**
+ * Name of an interface for generic reception support within the Qompass
+ * sysinterfaces modeling library
+ */
+ private static final String SIGNAL_RECEPTION_QN = "sysinterfaces::SignalReception"; //$NON-NLS-1$
+
+ protected static boolean useGenericSigInterface = false;
+
+ public static void syncSignalReceptionSupport(Interface intf) {
+ if (useGenericSigInterface) {
+ syncGenericSignalReceptionSupport(intf);
+ } else {
+ syncSpecificSignalReceptionSupport(intf);
+ }
+ }
+
+ public static void syncSpecificSignalReceptionSupport(Interface intf) {
+ for (Reception reception : intf.getOwnedReceptions()) {
+ Signal signal = reception.getSignal();
+ if (signal != null) {
+ String opName = SIG_PREFIX + signal.getName();
+ Operation existingOperation = intf.getOwnedOperation(opName, null, null);
+ Operation newOperation = UMLFactory.eINSTANCE.createOperation();
+ newOperation.setName(opName);
+ for (Property attribute : signal.getAttributes()) {
+ Parameter parameter = newOperation.createOwnedParameter(attribute.getName(), attribute.getType());
+ parameter.setLower(attribute.getLower());
+ parameter.setUpper(attribute.getUpper());
+ }
+ if (existingOperation == null) {
+ intf.getOwnedOperations().add(newOperation);
+ } else if (!OperationUtils.isSameOperation(existingOperation, newOperation)) {
+ OperationUtils.syncOperation(newOperation, existingOperation);
+ }
+ DerivedElement de = StereotypeUtil.applyApp(newOperation, DerivedElement.class);
+ if (de != null) {
+ de.setSource(reception);
+ }
+ }
+ }
+ // now remove derived operations that are no longer needed.
+ EList<Operation> ownedOperations = new BasicEList<Operation>();
+ ownedOperations.addAll(intf.getOwnedOperations());
+ for (Operation operation : ownedOperations) {
+ DerivedElement de = UMLUtil.getStereotypeApplication(operation, DerivedElement.class);
+ if (de != null) {
+ if (de.getSource() instanceof Reception) {
+ Reception reception = (Reception) de.getSource();
+ Signal signal = reception.getSignal();
+ if ((signal == null) || !(SIG_PREFIX + signal.getName()).equals(operation.getName())) {
+ // reception exists, but has no signal or another signal
+ operation.destroy();
+ }
+ } else {
+ // reception does not exist any more
+ operation.destroy();
+ }
+ }
+ }
+ }
+
+ public static void syncGenericSignalReceptionSupport(Interface intf) {
+
+ NamedElement genericReceptionNE = Utils.getQualifiedElement(PackageUtil.getRootPackage(intf), SIGNAL_RECEPTION_QN);
+ if (genericReceptionNE instanceof Interface) {
+ Interface genericReceptionIntf = (Interface) genericReceptionNE;
+ if (intf.getOwnedReceptions().size() > 0) {
+ if (!hasReceptionSupport(intf, genericReceptionIntf)) {
+ addReceptionSupport(intf, genericReceptionIntf);
+ }
+ } else if (hasReceptionSupport(intf, genericReceptionIntf)) {
+ removeReceptionSupport(intf, genericReceptionIntf);
+ }
+ }
+ }
+
+ public static boolean hasReceptionSupport(Interface intf, Interface genericReceptionIntf) {
+ // TODO: does it find an indirect reception?
+ for (Classifier general : intf.getGenerals()) {
+ if (general == genericReceptionIntf) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public static void addReceptionSupport(Interface intf, Interface genericReceptionIntf) {
+ intf.createGeneralization(genericReceptionIntf);
+ }
+
+ public static void removeReceptionSupport(Interface intf, Interface genericReceptionIntf) {
+ for (Generalization generalization : intf.getGeneralizations()) {
+ if (generalization.getGeneral() == genericReceptionIntf) {
+ generalization.destroy();
+ }
+ }
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/sync/SyncBehaviorParameters.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/sync/SyncBehaviorParameters.java
new file mode 100644
index 00000000000..8cc35234e1d
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/sync/SyncBehaviorParameters.java
@@ -0,0 +1,44 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.sync;
+
+import org.eclipse.papyrus.qompass.designer.core.StUtils;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
+import org.eclipse.uml2.uml.Behavior;
+import org.eclipse.uml2.uml.BehavioralFeature;
+import org.eclipse.uml2.uml.Parameter;
+
+/**
+ * Synchronize behavior parameters
+ *
+ * A behavior is often a method for a behavioral feature. In this case, UML validation checks that the number and type
+ * of parameters of the behavior and the behavioral feature match.
+ * This class synchronizes the parameters of the behavior with that of the behavioral feature.
+ */
+public class SyncBehaviorParameters {
+ public static final void syncParameters(Behavior method) {
+
+ BehavioralFeature bf = method.getSpecification();
+ if (bf != null) {
+ method.getOwnedParameters().clear();
+ for (Parameter parameter : bf.getOwnedParameters()) {
+ Parameter newParameter = method.createOwnedParameter(parameter.getName(), parameter.getType());
+ newParameter.setDirection(parameter.getDirection());
+ LazyCopier.copyMultElemModifiers(parameter, newParameter);
+ StUtils.copyStereotypes(parameter, newParameter);
+ }
+ }
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/BindingUtils.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/BindingUtils.java
new file mode 100644
index 00000000000..1a138465cb1
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/BindingUtils.java
@@ -0,0 +1,150 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ */
+
+package org.eclipse.papyrus.qompass.designer.core.templates;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.papyrus.C_Cpp.ConstInit;
+import org.eclipse.papyrus.qompass.designer.core.Messages;
+import org.eclipse.papyrus.qompass.designer.core.PortUtils;
+import org.eclipse.papyrus.qompass.designer.core.StUtils;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationContext;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.OpaqueBehavior;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+public class BindingUtils {
+
+ /**
+ * Bind an operation by copying the signature from the actual.
+ *
+ * @param copy
+ * the copier
+ * @param actual
+ * the actual. If an operation, its signature is copied to the template
+ * @param operation
+ * The operation template
+ * @return
+ */
+ public static Operation instantiateOperation(LazyCopier copy, Element actual, Operation operation) {
+ try {
+ Operation newOperation = copy.getCopy(operation);
+ if (actual instanceof Operation) {
+ for (Parameter parameter : ((Operation) actual).getOwnedParameters()) {
+ Parameter newParam = EcoreUtil.copy(parameter); // copy parameter via EcoreUtil
+ newParam.setType(copy.getCopy(parameter.getType()));
+ newOperation.getOwnedParameters().add(newParam);
+ StUtils.copyStereotypes(parameter, newParam); // copy stereotypes of the parameter
+ }
+ }
+ TransformationContext.classifier = newOperation.getClass_();
+ if (actual instanceof Classifier) {
+ bindOperation(newOperation, (Classifier) actual);
+ }
+ String newName = TextTemplateBinding.bind(operation.getName(), actual, null);
+ newOperation.setName(newName);
+
+ return newOperation;
+ } catch (TransformationException e) {
+ // throw runtime exception
+ throw new RuntimeException(String.format(Messages.TemplateInstantiationListener_TrafoException, e.getMessage()));
+ }
+ }
+
+ /**
+ * Instantiate a behavior
+ *
+ * @param copy
+ * copier
+ * @param actual
+ * actual in template instantiation
+ * @param opaqueBehavior
+ * behavior with body in form of an Acceleo template.
+ * @return instantiated (bound) behavior.
+ * @throws TransformationException
+ */
+ public static OpaqueBehavior instantiateBehavior(LazyCopier copy, Element actual, OpaqueBehavior opaqueBehavior) throws TransformationException {
+ OpaqueBehavior newBehavior = copy.getCopy(opaqueBehavior);
+ if (actual instanceof NamedElement) {
+ String newName = TextTemplateBinding.bind(opaqueBehavior.getName(), actual, null);
+ newBehavior.setName(newName);
+ }
+ EList<String> bodyList = newBehavior.getBodies();
+ for (int i = 0; i < bodyList.size(); i++) {
+ String body = bodyList.get(i);
+ TransformationContext.classifier = (Classifier) newBehavior.getOwner();
+ // pass qualified operation name as template name. Used to identify script in case of an error
+ String newBody = TextTemplateBinding.bind(body, actual);
+ bodyList.set(i, newBody);
+ }
+ return newBehavior;
+ }
+
+
+
+ /**
+ * Bind C++ const initializer
+ *
+ * @param operation
+ * @param actual
+ * @throws TransformationException
+ */
+ public static void bindOperation(Operation operation, Classifier actual) throws TransformationException {
+ // perform binding in case of C++ initializer
+ ConstInit cppConstInit = UMLUtil.getStereotypeApplication(operation, ConstInit.class);
+ if (cppConstInit != null) {
+ // TODO: specific to C++
+ String init = cppConstInit.getInitialisation();
+ String newInit = TextTemplateBinding.bind(init, actual);
+ cppConstInit.setInitialisation(newInit);
+ }
+ }
+
+ /**
+ * @param actual
+ * the actual template parameter
+ * @param boundClass
+ * the bound class
+ * @param provides
+ * true, if the provided interface should be returned
+ * @return the provided or required interface of a port (of the passed
+ * boundClass) that is typed with the the actual.
+ */
+ public static Interface getInterfaceFromPortTypedWithActual(Type actual, Class boundClass, boolean provided) {
+ for (Port port : PortUtils.getAllPorts(boundClass)) {
+ Interface provOrReqIntf;
+ if (provided) {
+ provOrReqIntf = PortUtils.getProvided(port);
+ } else {
+ provOrReqIntf = PortUtils.getRequired(port);
+ }
+
+ if ((port.getType() == actual) && (provOrReqIntf != null)) {
+ return provOrReqIntf;
+ }
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/ConnectorBinding.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/ConnectorBinding.java
new file mode 100644
index 00000000000..dca6f447db3
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/ConnectorBinding.java
@@ -0,0 +1,455 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.templates;
+
+import java.util.Iterator;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.qompass.designer.core.CreationUtils;
+import org.eclipse.papyrus.qompass.designer.core.Log;
+import org.eclipse.papyrus.qompass.designer.core.Messages;
+import org.eclipse.papyrus.qompass.designer.core.PortUtils;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationContext;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
+import org.eclipse.papyrus.uml.tools.utils.ConnectorUtil;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.ConnectableElement;
+import org.eclipse.uml2.uml.Connector;
+import org.eclipse.uml2.uml.ConnectorEnd;
+import org.eclipse.uml2.uml.Feature;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Namespace;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.ParameterableElement;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.TemplateBinding;
+import org.eclipse.uml2.uml.TemplateParameter;
+import org.eclipse.uml2.uml.TemplateParameterSubstitution;
+import org.eclipse.uml2.uml.TemplateSignature;
+import org.eclipse.uml2.uml.Type;
+
+/**
+ * Create an automatic template binding for a connector, i.e. a binding that assures
+ * that the ports of an interaction component match those of an application component
+ * (if possible)
+ */
+public class ConnectorBinding {
+
+ /**
+ * Helper function for getActual
+ *
+ * @param port
+ * a port of the the connector template (not evaluated except for debugging output)
+ * @param connector
+ * the connector that is checked for reification
+ * @param composite
+ * a composite class
+ * @param actual
+ * the current candidate for an actual, i.e. result of previous attempts to bind (at different connector ends)
+ * @param isProvided
+ * is an interface provided or required.
+ * @return the type at the "other" (makes sense for property connector only) end of a connector
+ * @throws TransformationException
+ */
+ private static Type matchOtherEnd(Port port, Feature connector, Type actual, boolean isProvided)
+ throws TransformationException {
+ if (connector instanceof Connector) {
+ return matchOtherEnd(port, (Connector) connector, actual, isProvided);
+ }
+ else if (connector instanceof Property) {
+ return matchOtherEnd(port, (Property) connector, actual, isProvided);
+ }
+ return null;
+ }
+
+ private static Type matchOtherEnd(Port port, Connector connector, Type actual, boolean isProvided)
+ throws TransformationException {
+ // the template provides the formal parameter at one of its ports. Now examine
+ // with whom this port is connected, i.e. examine all connectorEnds
+ // The type of the connected port determines the binding.
+ Log.log(IStatus.INFO, Log.TEMPLATE_BINDING, String.format("", port.getName())); //$NON-NLS-1$
+ boolean found = false;
+ for (ConnectorEnd connEnd : connector.getEnds()) {
+ // the connector end targets a port of a part or the composite (in case of delegation)
+ ConnectableElement connElem = connEnd.getRole();
+ if (connElem instanceof Port) {
+ Port otherPort = (Port) connElem;
+ Interface otherInterface;
+
+ // distinction between assembly or delegation (other end is null) connectors
+ boolean isAssembly = (connEnd.getPartWithPort() != null);
+
+ if (isProvided == isAssembly) {
+ // need required for other, if first port isProvided and assembly, or if first port isRequired and delegation
+ otherInterface = PortUtils.getRequired(otherPort);
+ } else {
+ otherInterface = PortUtils.getProvided(otherPort);
+ }
+ Log.log(IStatus.INFO, Log.TEMPLATE_BINDING, String.format(Messages.ConnectorBinding_ConnectorsPort, otherInterface));
+ if (otherInterface != null) {
+ if (actual == null || actual == otherInterface) {
+ actual = otherInterface;
+ Log.log(IStatus.INFO, Log.TEMPLATE_BINDING, String.format(
+ Messages.ConnectorBinding_InfoActualReturnIntfIs, actual.getQualifiedName()));
+ found = true;
+ } else if (actual != otherInterface) {
+ continue;
+ }
+ }
+ }
+ }
+ if (!found) {
+ throw new TransformationException(String.format(
+ Messages.ConnectorBinding_CannotFindConsistentBinding,
+ port.getName(), connector.getName(), connector.getNamespace().getName(), actual.getName()));
+ }
+ return actual;
+ }
+
+
+ private static Type matchOtherEnd(Port port, Property partConnector, Type actual, boolean isProvided)
+ throws TransformationException {
+ // the template provides the formal parameter at one of its ports. Now examine
+ // with whom this port is connected, i.e. examine all connectors of the
+ // composite. The type of the connected port determines the binding.
+ Log.log(IStatus.INFO, Log.TEMPLATE_BINDING, String.format(
+ Messages.ConnectorBinding_InfoMatchOtherEnd, port.getName()));
+
+ for (Connector connector : partConnector.getClass_().getOwnedConnectors()) {
+ if (ConnectorUtil.connectsPart(connector, partConnector)) {
+ // the connector end targets a port of a part or the composite (in case of delegation)
+ ConnectorEnd connEnd = ConnectorUtil.connEndNotPart(connector, partConnector);
+ ConnectableElement connElem = connEnd.getRole();
+ if (connElem instanceof Port) {
+ Port otherPort = (Port) connElem;
+ Interface otherInterface;
+
+ // distinction between assembly or delegation (other end is null) connectors
+ boolean isAssembly = (connEnd.getPartWithPort() != null);
+
+ if (isProvided == isAssembly) {
+ // need required for other, if first port isProvided and assembly, or if first port isRequired and delegation
+ otherInterface = PortUtils.getRequired(otherPort);
+ } else {
+ otherInterface = PortUtils.getProvided(otherPort);
+ }
+ Log.log(IStatus.INFO, Log.TEMPLATE_BINDING, String.format(Messages.ConnectorBinding_InfoConnectsPort, otherInterface));
+ if (otherInterface != null) {
+ if (actual == null) {
+ actual = otherInterface;
+ Log.log(IStatus.INFO, Log.TEMPLATE_BINDING, String.format(
+ Messages.ConnectorBinding_InfoActualReturnIntfIs, actual.getQualifiedName()));
+ } else if (actual != otherInterface) {
+ throw new TransformationException(String.format(
+ Messages.ConnectorBinding_CannotFindConsistentBinding,
+ port.getName(), connector.getName(), connector.getNamespace().getName(), actual.getName()));
+ }
+ }
+ }
+ }
+ }
+ return actual;
+ }
+
+
+ /**
+ * This function tries to bind a formal template parameter to an "actual". The criterion
+ * for a successful binding is that the (primitive) connections of the reified connector
+ * part have a matching port kind.
+ * The function makes a matching based on (1) either provided and required interfaces (2)
+ * or identical portKinds and different conjugations
+ *
+ * @param composite
+ * The composite in which a binding should be determined.
+ * @param part
+ * the part within the composite for which we try to find a binding,
+ * The information about the part is used to determine which connection
+ * end belongs to the template part and which to another part/port (which
+ * determines the binding).
+ * @param template
+ * A template class
+ * @param formal
+ * the formal template parameter
+ * @throws TransformationException
+ * if no consistent binding can be found
+ * @return the actual
+ */
+ public static Type getActual(Feature partOrConnector, Class template, ParameterableElement formal)
+ throws TransformationException {
+ Type actual = null;
+
+ // loop through all ports of the template, use getAllPorts to include inherited ports as well.
+ for (Port port : PortUtils.getAllPorts(template)) {
+ Interface providedIntf = PortUtils.getProvided(port);
+
+ // need to check, if the port at the opposite connector is matching, provided that we use a specific
+ // value for the the formal. Typically, ports of the template are typed with the formal parameter. Thus,
+ // we would have to infer the formal from a given provided or required interface. This is not possible
+ // in general (no inverse mapping operation), but the simple case that either the provided or required
+ // interface is identical to the formal parameter are checked.
+ //
+ // 1. provided interface is formal
+ if (providedIntf == formal) {
+ actual = matchOtherEnd(port, partOrConnector, actual, true);
+ }
+
+ // 2. required interface is formal
+ Interface requiredIntf = PortUtils.getRequired(port);
+ if (requiredIntf == formal) {
+ actual = matchOtherEnd(port, partOrConnector, actual, false);
+ }
+
+ // 3. port type is formal (but none of the two cases above)
+ // this check is stronger than the first two, since it requires port kind identity.
+ // If none of the first two variants holds, the port is translating interfaces
+ // for which this stronger condition holds.
+ Type type = PortUtils.getFCMType(port);
+ if ((providedIntf != formal) && (requiredIntf != formal) && (type == formal)) {
+ // the template provides the formal parameter at one of its ports. Now examine
+ // with whom this port is connected, i.e. examine all ends of the
+ // connector. The type of the connected port determines the binding.
+ Log.log(IStatus.INFO, Log.TEMPLATE_BINDING, String.format(
+ Messages.ConnectorBinding_InfoProvidedPortTypeMatches, port.getName()));
+ boolean found = false;
+
+ if (partOrConnector instanceof Property) {
+ Property partConnector = (Property) partOrConnector;
+ // iterate over the connectors of the composite containing the part
+ for (Connector connector : partConnector.getClass_().getOwnedConnectors()) {
+ if (ConnectorUtil.connectsPart(connector, partConnector)) {
+ // the connector end targets a port of a part or the composite (in case of delegation)
+ ConnectorEnd connEnd = ConnectorUtil.connEndNotPart(connector, partConnector);
+ actual = matchViaEnd(connEnd, port, partOrConnector, actual);
+ if (actual != null) {
+ found = true;
+ break;
+ }
+ }
+ }
+ }
+ else {
+ for (ConnectorEnd connEnd : ((Connector) partOrConnector).getEnds()) {
+ actual = matchViaEnd(connEnd, port, partOrConnector, actual);
+ if (actual != null) {
+ found = true;
+ break;
+ }
+ }
+ }
+ if (!found) {
+ String errorMsg = createErrorMsg(port, partOrConnector);
+ throw new TransformationException(errorMsg);
+ }
+ }
+ }
+ return actual;
+ }
+
+ protected static String createErrorMsg(Port port, Feature partOrConnector) {
+ String errorMsg = String.format(
+ Messages.ConnectorBinding_CannotFindBindingForPort,
+ port.getName(), partOrConnector.getName());
+ for (Classifier cl : partOrConnector.getFeaturingClassifiers()) {
+ errorMsg += " of class '" + cl.getName() + "'"; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ errorMsg += ". "; //$NON-NLS-1$
+ return errorMsg;
+ }
+
+ private static Type matchViaEnd(ConnectorEnd connEnd, Port port, Feature partOrConnector, Type actual) throws
+ TransformationException {
+ String errorMsg = createErrorMsg(port, partOrConnector);
+ Log.log(IStatus.INFO, Log.TEMPLATE_BINDING, "port: " + port); //$NON-NLS-1$
+ // Log.log(Status.INFO, Log.TEMPLATE_BINDING, "role1: " + connector.getEnds().get(0).getRole());
+ // Log.log(Status.INFO, Log.TEMPLATE_BINDING, "role2: " + connector.getEnds().get(1).getRole());
+
+ ConnectableElement connElem = connEnd.getRole();
+ if (connElem instanceof Port) {
+ Port otherPort = (Port) connElem;
+
+ Log.log(IStatus.INFO, Log.TEMPLATE_BINDING, String.format(
+ Messages.ConnectorBinding_InfoConnPortConnectedVia,
+ port.getName(), partOrConnector.getName()));
+ Type otherType = PortUtils.getFCMType(otherPort);
+
+
+ // type must be the same, kind as well. But depending on delegation or not, one of the ports
+ // must be conjugated
+ // TODO: isAssembly check will wrongly return false, if no port is connected [well, in this case, the role is not a port but a part]
+ boolean isAssembly = (connEnd.getPartWithPort() != null);
+ boolean sameConjugation = (otherPort.isConjugated() == port.isConjugated());
+ // if assembly connection, conjugations must be different.
+ if (isAssembly == sameConjugation) {
+ return actual; // was: continue
+ }
+
+ // now compare kinds
+ if (!PortUtils.sameKinds(port, otherPort)) {
+ // no match, try next end
+ return actual; // was: continue
+ }
+
+ if (otherType != null) {
+ if (actual == null) {
+ actual = otherType;
+ Log.log(IStatus.INFO, Log.TEMPLATE_BINDING, String.format(
+ Messages.ConnectorBinding_InfoActualReturnIntfIs, actual.getQualifiedName()));
+ } else if (actual != otherType) {
+ throw new TransformationException(errorMsg + " " + String.format( //$NON-NLS-1$
+ Messages.ConnectorBinding_FormalAlreadyBound, actual.getName()));
+ }
+ }
+ }
+ return actual;
+ }
+
+ /**
+ * The objective of this function is to find a suitable binding for a part
+ * typed with a template class (connector) based compatible port types. The binding
+ * is obtained by examining the connections between the composite and the contained
+ * part.
+ *
+ * @param composite
+ * the composite which owns the part
+ * @param containedPart
+ * the part which represents the connector
+ * @param template
+ * an element within a package template (might be deeply nested) which
+ * has ports that depend on a template parameter. This method tries to find a binding
+ * for the template parameters that renders the ports of this element compatible with
+ * the ports of the composition context.
+ * @return the bound package
+ * ? binding information, i.e. information about the bound package, whether already bound and the binding.
+ */
+ public static TemplateBinding obtainBinding(Class composite,
+ Feature connector, Class template, boolean createBinding) throws TransformationException {
+ // obtain the signature of an element within a package template.
+
+ TemplateSignature signature = TemplateUtils.getSignature(template);
+ if (signature == null) {
+ // not a template. This is not an exception, caller need to handle "null" a return
+ // value indicating that no template instantiation needs to be done.
+ Log.log(IStatus.INFO, Log.TEMPLATE_BINDING, String.format(
+ Messages.ConnectorBinding_NoTemplateSignature, template.getName()));
+ return null;
+ }
+
+ // list of actuals (must be ParameterableElements, in our case always a named element as well.
+ EList<ParameterableElement> actuals = new BasicEList<ParameterableElement>();
+
+ Package pkgTemplate = (Package) signature.getOwner();
+ String name = pkgTemplate.getName();
+
+ /*
+ * Signature extension - useful?? (since binding has to be made as well)
+ * Stereotype sigExtSt = signature.getAppliedStereotype ("FCM::SignatureExt");
+ * SignatureExt sigExt = null;
+ * if (sigExtSt != null) {
+ * sigExt = (SignatureExt) signature.getStereotypeApplication (sigExtSt);
+ * }
+ *
+ * for (TemplateSignature sig : sigExt.getExtension ()) {
+ * bindFormal ();
+ * }
+ */
+
+ // loop on template parameters
+ boolean firstTP = true;
+ for (TemplateParameter parameter : signature.getParameters()) {
+ ParameterableElement formal = parameter.getParameteredElement();
+
+ // now obtain suitable binding for this parameter - look for ports that are typed with
+ // the formal template parameter
+ ParameterableElement actual = null;
+ if (firstTP) {
+ // only try to match the first template parameter based on ports.
+ actual = getActual(connector, template, formal);
+ firstTP = false;
+ } else {
+ // additional template parameters that are bound automatically based on their name
+ // (this might be considered as a hack, it is merely a convention for automatic template
+ // binding within the Qompass context.
+ if (formal instanceof NamedElement) {
+ NamedElement formalNE = (NamedElement) formal;
+ if ((formal instanceof Class) && (formalNE.getName().equals("T"))) { //$NON-NLS-1$
+ actual = composite;
+ }
+ if ((formal instanceof Port) && (formalNE.getName().equals("P"))) { //$NON-NLS-1$
+ // port (but not available?)
+ actual = TransformationContext.port;
+ }
+ }
+ }
+ if (actual instanceof NamedElement) {
+ actuals.add(actual);
+ name = name + "_" + ((NamedElement) actual).getName(); //$NON-NLS-1$
+ } else {
+ String reason = String.format(
+ Messages.ConnectorBinding_CannotFindBinding,
+ ((NamedElement) formal).getName(), composite.getName(), connector.getName(), template.getName());
+ throw new TransformationException(reason);
+ }
+ }
+
+ // the bound package is instantiated in the same model, in which the
+ // composite can be found (avoid modifying an imported model).
+
+ if (!createBinding) {
+ return null;
+ }
+
+ Namespace owner = (Namespace) pkgTemplate.getOwner();
+ owner = CreationUtils.getAndCreate(composite.getModel(), owner.allNamespaces());
+
+ Package boundPackage = (Package) owner.getMember(name);
+ if (boundPackage == null) {
+ // class does not exist yet, needs to be created.
+ boundPackage = ((Package) owner).createNestedPackage(name);
+
+ Log.log(IStatus.INFO, Log.TEMPLATE_BINDING, String.format(
+ Messages.ConnectorBinding_InfoCreateBoundPackage, name, owner.getName()));
+ }
+
+ TemplateBinding binding = boundPackage.getTemplateBinding(signature);
+ if (binding == null) {
+ // binding is not existing yet (should normally only happen, if the class has
+ // just been created - but it's better to re-check, even if the bound package
+ // was already there)
+ binding = boundPackage.createTemplateBinding(signature);
+
+ Iterator<ParameterableElement> actualsIter = actuals.iterator();
+
+ // loop on template parameters;
+ for (TemplateParameter parameter : signature.getParameters()) {
+ TemplateParameterSubstitution substitution = binding.createParameterSubstitution();
+ substitution.setFormal(parameter);
+
+ // now obtain suitable binding for this parameter - look for ports that are typed with
+ // the formal template parameter
+ ParameterableElement actual = actualsIter.next();
+ // for UML <= 2.1
+ // substitution.getActuals ().add ((ParameterableElement) actual);
+ // for UML > 2.2
+ substitution.setActual(actual);
+ }
+ }
+ return binding;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/PostTemplateInstantiationListener.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/PostTemplateInstantiationListener.java
new file mode 100644
index 00000000000..7fbbc0387db
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/PostTemplateInstantiationListener.java
@@ -0,0 +1,62 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.templates;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.FCM.BindingHelper;
+import org.eclipse.papyrus.FCM.Template;
+import org.eclipse.papyrus.qompass.designer.core.extensions.BindingHelperExt;
+import org.eclipse.papyrus.qompass.designer.core.listeners.PostCopyListener;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.TemplateBinding;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * Specific tweaking of template instantiation is implemented by means of a PostCopyListener that
+ * evaluates the template stereotype.
+ * Chiefly used for text templates
+ */
+public class PostTemplateInstantiationListener implements PostCopyListener {
+
+ public static PostTemplateInstantiationListener getInstance() {
+ if (postTemplateInstantiationListener == null) {
+ postTemplateInstantiationListener = new PostTemplateInstantiationListener();
+ }
+ return postTemplateInstantiationListener;
+ }
+
+ public void init(LazyCopier copy, TemplateBinding binding) {
+ this.binding = binding;
+ }
+
+ private TemplateBinding binding;
+
+ private static PostTemplateInstantiationListener postTemplateInstantiationListener;
+
+ @Override
+ public void postCopyEObject(LazyCopier copy, EObject targetEObj) {
+ if (targetEObj instanceof Element) {
+
+ Template template = UMLUtil.getStereotypeApplication((Element) targetEObj, Template.class);
+ if ((template != null)) {
+ BindingHelper helper = template.getHelper();
+ if (helper != null) {
+ BindingHelperExt.applyPostHelper(helper, copy, binding, targetEObj);
+ }
+ }
+ }
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/PreTemplateInstantiationListener.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/PreTemplateInstantiationListener.java
new file mode 100644
index 00000000000..eed7c3ddbb6
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/PreTemplateInstantiationListener.java
@@ -0,0 +1,94 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.templates;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.FCM.BindingHelper;
+import org.eclipse.papyrus.FCM.Template;
+import org.eclipse.papyrus.qompass.designer.core.extensions.BindingHelperExt;
+import org.eclipse.papyrus.qompass.designer.core.listeners.PreCopyListener;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
+import org.eclipse.uml2.uml.BehavioralFeature;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.OpaqueBehavior;
+import org.eclipse.uml2.uml.TemplateBinding;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * Template instantiation is implemented by means of an CopyListener that
+ * evaluates the template stereotype.
+ */
+
+public class PreTemplateInstantiationListener implements PreCopyListener {
+
+ public static PreTemplateInstantiationListener getInstance() {
+ if (preTemplateInstantiationListener == null) {
+ preTemplateInstantiationListener = new PreTemplateInstantiationListener();
+ preTemplateInstantiationListener.treatTemplate = false;
+ }
+ return preTemplateInstantiationListener;
+ }
+
+ public void init(LazyCopier copy, TemplateBinding binding) {
+ this.binding = binding;
+ preTemplateInstantiationListener.treatTemplate = false;
+ }
+
+ private TemplateBinding binding;
+
+ private boolean treatTemplate;
+
+ private static PreTemplateInstantiationListener preTemplateInstantiationListener;
+
+ @Override
+ public EObject preCopyEObject(LazyCopier copy, EObject sourceEObj) {
+ if (treatTemplate) {
+ return sourceEObj;
+ }
+ treatTemplate = true;
+ EObject targetEObj = checkEObject(copy, sourceEObj);
+ treatTemplate = false;
+ return targetEObj;
+ }
+
+ protected EObject checkEObject(LazyCopier copy, EObject sourceEObj) {
+
+ // Specific treatment of OpaqueBehaviors: Template instantiations are typically managed
+ // by the associated operation which instantiates operation and behavior. In this case, the
+ // behavior should not be instantiated.
+ if (sourceEObj instanceof OpaqueBehavior) {
+ OpaqueBehavior behavior = (OpaqueBehavior) sourceEObj;
+ BehavioralFeature bf = behavior.getSpecification();
+ if (bf != null) {
+ Template template = UMLUtil.getStereotypeApplication(bf, Template.class);
+ if (template != null) {
+ return null;
+ }
+ }
+ }
+
+ if (sourceEObj instanceof Element) {
+
+ Template template = UMLUtil.getStereotypeApplication((Element) sourceEObj, Template.class);
+ if ((template != null)) {
+ BindingHelper helper = template.getHelper();
+ if (helper != null) {
+ return BindingHelperExt.applyPreHelper(helper, copy, binding, sourceEObj);
+ }
+ }
+ }
+ return sourceEObj;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/TemplateInstantiation.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/TemplateInstantiation.java
new file mode 100644
index 00000000000..2caa5bb8464
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/TemplateInstantiation.java
@@ -0,0 +1,284 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.templates;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.FCM.BindingHelper;
+import org.eclipse.papyrus.FCM.Template;
+import org.eclipse.papyrus.qompass.designer.core.Messages;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationContext;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
+import org.eclipse.papyrus.qompass.designer.core.transformations.filters.FilterSignatures;
+import org.eclipse.papyrus.qompass.designer.core.transformations.filters.FilterTemplate;
+import org.eclipse.papyrus.qompass.designer.core.transformations.filters.FixTemplateSync;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Namespace;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PackageableElement;
+import org.eclipse.uml2.uml.ParameterableElement;
+import org.eclipse.uml2.uml.TemplateBinding;
+import org.eclipse.uml2.uml.TemplateParameter;
+import org.eclipse.uml2.uml.TemplateParameterSubstitution;
+import org.eclipse.uml2.uml.TemplateSignature;
+import org.eclipse.uml2.uml.TemplateableElement;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * This class encapsulates functions around template instantiation.
+ *
+ * With respect to composite structures, we need to consider two different
+ * cases: (1) the type of a property is a template class itself (2) the type of
+ * a property is a sub-class (nesting) of the template class. We consider that
+ * such a class inherits the template signature of its owner, i.e. it can access
+ * formal parameters of the owning template class. (3) the type of a property is
+ * a normal class
+ */
+
+public class TemplateInstantiation {
+
+ public TemplateInstantiation(LazyCopier copy, TemplateBinding binding) throws TransformationException {
+ this(copy, binding, null);
+ }
+
+ /**
+ *
+ * @param copier_
+ * copier
+ * @param binding
+ * UML template binding
+ * @param args
+ * currently unused
+ * @throws TransformationException
+ */
+ public TemplateInstantiation(final LazyCopier copier_, final TemplateBinding binding, Object args[]) throws TransformationException {
+ if (binding == null) {
+ // user should never see this exception
+ throw new TransformationException("Passed binding is null"); //$NON-NLS-1$
+ }
+ signature = binding.getSignature();
+ if (signature == null) {
+ throw new TransformationException("Passed template binding does not have a signature"); //$NON-NLS-1$
+ }
+ packageTemplate = (Package) signature.getOwner();
+ /*
+ * copy = (Copy)copy_.clone();
+ * // make copy of copy listeners (clone alone does not duplicate contained lists)
+ * copy.preCopyListeners = new BasicEList<CopyListener>();
+ * copy.preCopyListeners.addAll(copy_.preCopyListeners);
+ * copy.postCopyListeners = new BasicEList<CopyListener>();
+ * copy.postCopyListeners.addAll(copy_.postCopyListeners);
+ */
+ copier = copier_;
+
+ Package boundPackage = (Package) binding.getBoundElement();
+ // set template instantiation parameter. Used by Acceleo templates to get relation between
+ // formal and actual parameters
+ TransformationContext.setTemplateInstantiation(this);
+ TransformationContext.copier = copier;
+
+ copier.setPackageTemplate(packageTemplate, boundPackage);
+ // some parameters of the package template may not be owned. Thus, an additional package
+ // template is involved in the instantiation
+ for (TemplateParameter parameter : signature.getParameters()) {
+ //
+ if (parameter.getSignature() != signature) {
+ Package addedPkgTemplate = parameter.getSignature().getNearestPackage();
+ copier.setPackageTemplate(addedPkgTemplate, boundPackage);
+ }
+ }
+
+ if (boundPackage.getPackagedElements() != null) {
+ // bound package is not empty, but copy does not know about it. Fill copyMap with information about the relation
+ // This happens, if the original model already contains template instantiations, e.g. for template ports
+ if (copier.getMap(signature).keySet().size() == 0) {
+ syncCopyMap(packageTemplate, boundPackage);
+ }
+ }
+
+ this.binding = binding;
+
+ // register a combination of formal/actual in the hashmap
+ // => copy will replace actual with formal
+ for (TemplateParameterSubstitution substitution : binding.getParameterSubstitutions()) {
+ ParameterableElement formal = substitution.getFormal().getParameteredElement();
+ ParameterableElement actual = substitution.getActual();
+ copier.putPair(formal, actual);
+ }
+
+ // add copy listeners ---
+ // remove template signature
+ if (!copier.preCopyListeners.contains(FilterSignatures.getInstance())) {
+ copier.preCopyListeners.add(FilterSignatures.getInstance());
+ }
+
+ // 2a. special treatment for elements stereotyped with template parameter
+ if (!copier.preCopyListeners.contains(PreTemplateInstantiationListener.getInstance())) {
+ copier.preCopyListeners.add(PreTemplateInstantiationListener.getInstance());
+ }
+ PreTemplateInstantiationListener.getInstance().init(copier, binding);
+ // 2b. special treatment for elements stereotyped with template parameter
+ if (!copier.postCopyListeners.contains(PostTemplateInstantiationListener.getInstance())) {
+ copier.postCopyListeners.add(PostTemplateInstantiationListener.getInstance());
+ }
+ PostTemplateInstantiationListener.getInstance().init(copier, binding);
+
+ if (!copier.postCopyListeners.contains(FixTemplateSync.getInstance())) {
+ copier.postCopyListeners.add(FixTemplateSync.getInstance());
+ }
+ }
+
+ /**
+ * Synchronize the copy map, i.e. put the correspondences between existing source and target elements into the map.
+ * Otherwise, a new binding would produce duplicates.
+ * TODO: A more efficient way would be to cache the copy function and only re-sync, if a new model has been loaded.
+ * On the other hand, the bound package is normally not very large
+ *
+ * @param sourcePkg
+ * The package template (source)
+ * @param targetPkg
+ * The bound package (target)
+ */
+ public void syncCopyMap(Package sourcePkg, Package targetPkg) {
+ copier.put(sourcePkg, targetPkg);
+ for (PackageableElement target : targetPkg.getPackagedElements()) {
+ if (target instanceof NamedElement) {
+ String targetName = ((NamedElement) target).getName();
+ PackageableElement source = sourcePkg.getPackagedElement(targetName);
+ if ((source instanceof Package) && (target instanceof Package)) {
+ syncCopyMap((Package) source, (Package) target);
+ }
+ else {
+ copier.put(source, target);
+ }
+ }
+ }
+
+ }
+
+ Package packageTemplate;
+
+ public TemplateBinding binding;
+
+ public LazyCopier copier;
+
+ TemplateSignature signature;
+
+ /**
+ * Bind a named element. Besides of binding the passed element, this
+ * operation will bind all elements that are referenced (required) by the
+ * passed element.
+ *
+ * In consequence, typically only a small part of a package template is
+ * actually created within the bound package. We call this mechanism lazy
+ * instantiation/binding
+ *
+ * @param copier
+ * Source and target model
+ * @param namedElement
+ * A member within the package template which should be bound,
+ * i.e. for which template instantiation should be performed.
+ * @param binding
+ * The binding between the bound package and the package template
+ */
+ @SuppressWarnings("unchecked")
+ public <T extends Element> T bindElement(T namedElement) throws TransformationException {
+ if (namedElement == null) {
+ // user should never see this exception
+ throw new TransformationException(Messages.TemplateInstantiation_TemplateIsNull);
+ }
+
+ Package boundPackage = (Package) binding.getBoundElement();
+ EList<Namespace> path = TemplateUtils.relativePathWithMerge(namedElement, packageTemplate);
+ Template template = UMLUtil.getStereotypeApplication(namedElement, Template.class);
+ BindingHelper helper = (template != null) ?
+ template.getHelper() : null;
+
+ /*
+ * if((templateKind == TemplateKind.ACCUMULATE) || (templateKind == TemplateKind.LATE_EVALUATION)) {
+ * // TODO: not very clean yet
+ * path = TemplateUtils.relativePathWithMerge(namedElement, copy.source);
+ * if(path == null) {
+ * // element is imported
+ * path = namedElement.allNamespaces();
+ * }
+ * boundPackage = copy.target; // CreationUtils.getAndCreate
+ * // (sat.target, "accumulate");
+ * }
+ */
+
+ if (path != null) {
+ // register owning package template (template can be defined in
+ // multiple packages)
+ Element owner = TemplateUtils.getTemplateOwner(namedElement, signature);
+ if (owner != null) {
+ // note that we might overwrite an existing value
+ copier.put(owner, boundPackage);
+ }
+ }
+ else {
+ // element is not part of the package template referenced by the
+ // binding
+ if (namedElement instanceof TemplateableElement) {
+ // check whether the referenced element is part of another
+ // package template,
+ // (for which we allow for implicit binding with the first
+ // template parameter)
+ TemplateSignature signatureOfNE = TemplateUtils.getSignature((TemplateableElement) namedElement);
+ if ((signatureOfNE != null) && (signature != signatureOfNE)) {
+ TemplateBinding subBinding = TemplateUtils.getSubBinding(copier.target, (TemplateableElement) namedElement, binding);
+ TemplateInstantiation ti = new TemplateInstantiation(copier, subBinding);
+ Element ret = ti.bindElement(namedElement);
+ return (T) ret;
+ }
+ }
+
+ // => nothing to do with respect to template instantiation, but
+ // since the template is potentially instantiated in another model,
+ // the referenced element might need to be copied.
+
+ return copier.getCopy(namedElement);
+ }
+ // element is contained in the template package, examine whether it
+ // already exists in the
+ // bound package.
+
+ NamedElement existingMember = (NamedElement) copier.get(namedElement);
+ /*
+ * if((existingMember != null) && (templateKind != TemplateKind.ACCUMULATE)) {
+ * // element is already existing (and thus bound), nothing to do
+ * // additional check, whether the ACCUMULATE information is unset)
+ * // however: if the element is a package, existence is not sufficient
+ * // since it might have been created via getAndCreate above
+ *
+ * //if(namedElement instanceof Package) {
+ * // bindPackage((Package)namedElement);
+ * //}
+ * return (T)existingMember;
+ * }
+ */
+ if (existingMember == null) {
+ FilterTemplate.getInstance().setActive(false);
+ T copiedElement = copier.getCopy(namedElement);
+ FilterTemplate.getInstance().setActive(true);
+ copier.setPackageTemplate(null, null);
+ return copiedElement;
+ }
+
+ return (T) existingMember;
+ }
+
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/TemplateUtils.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/TemplateUtils.java
new file mode 100644
index 00000000000..0b31ae7efaf
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/TemplateUtils.java
@@ -0,0 +1,395 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.templates;
+
+import java.util.Iterator;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.qompass.designer.core.CreationUtils;
+import org.eclipse.papyrus.qompass.designer.core.Log;
+import org.eclipse.papyrus.qompass.designer.core.Messages;
+import org.eclipse.papyrus.qompass.designer.core.PortUtils;
+import org.eclipse.papyrus.qompass.designer.core.Utils;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
+import org.eclipse.papyrus.uml.tools.utils.ConnectorUtil;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.ConnectableElement;
+import org.eclipse.uml2.uml.Connector;
+import org.eclipse.uml2.uml.ConnectorEnd;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.EncapsulatedClassifier;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Namespace;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PackageMerge;
+import org.eclipse.uml2.uml.ParameterableElement;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.StructuredClassifier;
+import org.eclipse.uml2.uml.TemplateBinding;
+import org.eclipse.uml2.uml.TemplateParameter;
+import org.eclipse.uml2.uml.TemplateParameterSubstitution;
+import org.eclipse.uml2.uml.TemplateSignature;
+import org.eclipse.uml2.uml.TemplateableElement;
+import org.eclipse.uml2.uml.Type;
+
+public class TemplateUtils {
+
+ /**
+ * Get the template signature of a classifier. If the classifier does not
+ * have a signature, examine if the owning class provides one
+ *
+ * @param template
+ * The potential template
+ * @return the signature or null, if none can be found.
+ */
+ public static TemplateSignature getSignature(TemplateableElement template) {
+ TemplateSignature signature = getSignatureDirect(template);
+ if (signature != null) {
+ return signature;
+ }
+
+ // no signature found, try signature of owning classifier (nested class)
+ // or package
+ Element owner = template.getOwner();
+ if (owner instanceof TemplateableElement) {
+ // owned by a classifier, not a package
+ return getSignature((TemplateableElement) owner);
+ } else {
+ return null;
+ }
+ }
+
+ public static Element getTemplateOwner(Element ne, TemplateSignature signature) {
+ if ((ne instanceof TemplateableElement) && getSignatureDirect((TemplateableElement) ne) == signature) {
+ return ne;
+ }
+ Element owner = ne.getOwner();
+ if (owner != null) {
+ return getTemplateOwner(owner, signature);
+ }
+ return null;
+ }
+
+ /**
+ * Get the template signature of a templateable element (typically a package). The class must
+ * (1) either own the signature
+ * (2) or merge with a package which owns the signature.
+ * Qompass enables the "extension" of existing packages via the package merge mechanism
+ *
+ * @param template
+ * The potential template
+ * @return the signature or null, if none can be found.
+ */
+
+ public static TemplateSignature getSignatureDirect(TemplateableElement template) {
+ for (Element element : template.getOwnedElements()) {
+ if (element instanceof TemplateSignature) {
+ return (TemplateSignature) element;
+ }
+ }
+
+ // enable multiple package templates sharing the same signature.
+ if (template instanceof Package) {
+ Package pkg = (Package) template;
+ for (PackageMerge pkgImport : pkg.getPackageMerges()) {
+ Package importedPkg = pkgImport.getMergedPackage();
+ return getSignature(importedPkg);
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Create a template binding by using a single, fixed actual (used within
+ * Qompass for the binding of container extensions depending on the component
+ * executor)
+ *
+ * @param model
+ * : target model in which to create the bound package
+ * @param template
+ * @param fixedActual
+ * @return
+ * @throws TransformationException
+ */
+ public static TemplateBinding fixedBinding(Package model, TemplateableElement template, Classifier fixedActual)
+ throws TransformationException {
+ // obtain the signature of an element within a package template.
+
+ TemplateSignature signature = getSignature(template);
+ if (signature == null) {
+ // not a template, retain original name
+ Log.log(IStatus.INFO, Log.TEMPLATE_BINDING, String.format(
+ Messages.TemplateUtils_NoTemplateSignature, (template instanceof NamedElement ?
+ ((NamedElement) template).getName() : "undef"))); //$NON-NLS-1$
+ return null;
+ }
+
+ EList<Type> actuals = new BasicEList<Type>();
+
+ Package pkgTemplate = (Package) signature.getOwner();
+ String name = pkgTemplate.getName();
+
+ // loop on template parameters;
+ // for (TemplateParameter parameter : signature.getOwnedParameters ()) {
+ // ParameterableElement formal = parameter.getParameteredElement();
+
+ // now obtain suitable binding for this parameter - look for ports that
+ // are typed with the formal template parameter
+
+ actuals.add(fixedActual);
+ name = name + "_" + fixedActual.getName(); //$NON-NLS-1$
+ // }
+
+ // the bound package is instantiated in the same model, in which the
+ // composite can be found (avoid modifying an imported model).
+ // todo: root model as an additional parameter?
+ Namespace owner = (Namespace) pkgTemplate.getOwner();
+ owner = CreationUtils.getAndCreate(model, owner.allNamespaces());
+
+ Package boundPackage = (Package) owner.getMember(name);
+ if (boundPackage == null) {
+ // class does not exist yet, needs to be created.
+ boundPackage = ((Package) owner).createNestedPackage(name);
+
+ Log.log(IStatus.INFO, Log.TEMPLATE_BINDING, String.format(
+ Messages.TemplateUtils_InfoCreateBoundPackage, name, owner.getName()));
+ }
+
+ TemplateBinding binding = boundPackage.getTemplateBinding(signature);
+ if (binding == null) {
+ // binding is not existing yet (should normally only happen, if the class has
+ // just been created - but it's better to re-check, even if the bound package
+ // was already there)
+ binding = boundPackage.createTemplateBinding(signature);
+
+ Iterator<Type> actualsIter = actuals.iterator();
+
+ // loop on template parameters;
+ for (TemplateParameter parameter : signature.getOwnedParameters()) {
+
+ TemplateParameterSubstitution substitution =
+ binding.createParameterSubstitution();
+ substitution.setFormal(parameter);
+
+ // now obtain suitable binding for this parameter - look for
+ // ports that are typed with
+ // the formal template parameter
+ Type actual = actualsIter.next();
+ substitution.setActual(actual);
+ }
+ }
+ return binding;
+ }
+
+ /**
+ * create a "sub" binding in which the first parameter of type Cl is assumed
+ * to bind the sub-signature TODO: compared type and name of parameters in
+ * two signatures TODO: support more than one template parameter
+ *
+ * @param model
+ * @param te
+ * @param existingBinding
+ * @return
+ * @throws TransformationException
+ */
+ public static TemplateBinding getSubBinding(Package model,
+ TemplateableElement te, TemplateBinding existingBinding)
+ throws TransformationException {
+
+ for (TemplateParameterSubstitution tps : existingBinding.getParameterSubstitutions()) {
+ ParameterableElement pe = tps.getActual();
+ if (pe instanceof Classifier) {
+ return fixedBinding(model, te, (Classifier) pe);
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Adapt the actuals within the binding (which correspond either to an
+ * element of the source model or an imported element) to the target model.
+ *
+ * @param sat
+ * @param binding
+ */
+ public static void adaptActualsToTargetModel(LazyCopier copy, TemplateBinding binding) {
+ for (TemplateParameterSubstitution substitution : binding.getParameterSubstitutions()) {
+ substitution.setActual(copy.getCopy(substitution.getActual()));
+ }
+ }
+
+ /**
+ * Return the actual for a potential formal parameter within a
+ * templateBinding (move to TemplateUtils?)
+ *
+ * @param binding
+ * a template binding
+ * @param formal
+ * a potential formal parameter, i.e. a parameter for which we
+ * check, if it really corresponds to a formal parameter within
+ * the template binding.
+ * @return the actual parameter that is associated with the potential formal
+ * parameter, or null if the 2nd parameter does not correspond to a
+ * formal parameter of the binding.
+ */
+ public static Classifier getActualFromBinding(TemplateBinding binding, Type formal) {
+ for (TemplateParameterSubstitution substitution : binding.getParameterSubstitutions()) {
+ ParameterableElement pe = substitution.getFormal().getParameteredElement();
+ if (pe == formal) {
+ Log.log(IStatus.INFO, Log.TEMPLATE_INSTANTIATION, String.format(
+ Messages.TemplateUtils_InfoGetActualFrom, pe));
+ return (Classifier) substitution.getActual();
+ }
+ }
+ return null;
+ }
+
+ public static Classifier getActualFromBinding(TemplateBinding binding, String formalName) {
+ for (TemplateParameterSubstitution substitution : binding.getParameterSubstitutions()) {
+ ParameterableElement pe = substitution.getFormal().getParameteredElement();
+ Log.log(IStatus.INFO, Log.TEMPLATE_INSTANTIATION, String.format(
+ Messages.TemplateUtils_InfoGetActualFrom, pe));
+ if ((pe instanceof NamedElement)
+ && ((NamedElement) pe).getName().equals(formalName)) {
+ return (Classifier) substitution.getActual();
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Get the first actual from the binding.
+ *
+ * @param binding
+ * the template binding
+ * @return the first actual.
+ */
+ public static Classifier getFirstActualFromBinding(TemplateBinding binding) {
+ for (TemplateParameterSubstitution substitution : binding.getParameterSubstitutions()) {
+ ParameterableElement pe = substitution.getFormal().getParameteredElement();
+ Log.log(IStatus.INFO, Log.TEMPLATE_INSTANTIATION, String.format(
+ Messages.TemplateUtils_InfoGetActualFrom, pe));
+ return (Classifier) substitution.getActual();
+ }
+ return null;
+ }
+
+ /**
+ * Return a sequence of namespaces for a given element, starting from the "bottom"
+ * one, i.e. the one in which the element is contained. It will end before the
+ * searchNS namespace is reached. Returns null, if the element is not contained
+ * within the search namespace.
+ * This function will put a merged package into the path (instead of the owner), enabling
+ * the extension of existing packages.
+ *
+ * @param element
+ * @param searchNS
+ * @return
+ */
+ public static EList<Namespace> relativePathWithMerge(Element element, Namespace searchNS) {
+ EList<Namespace> pathList = new BasicEList<Namespace>();
+ Element owner = element.getOwner();
+ if (!(owner instanceof Namespace)) {
+ // happens, if element is contained in a template signature
+ return null;
+ }
+ Namespace ns = (Namespace) owner;
+ while (ns != null) {
+ if (ns == searchNS) {
+ return pathList;
+ }
+ pathList.add(ns);
+
+ if (ns instanceof Package) {
+ Package pkg = (Package) ns;
+ Iterator<PackageMerge> pkgMerges = pkg.getPackageMerges().iterator();
+ // if package merge exists, get first merged package and add it to path
+ if (pkgMerges.hasNext()) {
+ PackageMerge pkgImport = pkgMerges.next();
+ ns = pkgImport.getMergedPackage();
+ continue;
+ }
+ }
+
+ ns = (Namespace) ns.getOwner();
+ }
+ return null;
+ }
+
+ /**
+ * Re-target connectors after a part has changed its type from template to an instantiation
+ * of this template. In this case, the roles of the connector ends still reference the port
+ * of the template instead of the bound template binding.
+ * The new roles are assigned based on an equal name, assuming that template instantiation
+ * does not change the name of the ports.
+ *
+ * @param composite
+ * a composite containing connectors
+ * @param part
+ * a part within the composite whose type has changed.
+ */
+ public static void retargetConnectors(StructuredClassifier composite, Property part) {
+ Type partType = part.getType();
+ if (partType instanceof EncapsulatedClassifier) {
+ EncapsulatedClassifier partTypeEC = (EncapsulatedClassifier) partType;
+ for (Connector connector : composite.getOwnedConnectors()) {
+ if (ConnectorUtil.connectsPart(connector, part)) {
+ // the connector end targets a port of a part or the composite (in case of delegation)
+ ConnectorEnd connEnd = ConnectorUtil.connEndForPart(connector, part);
+ // redirect role, if pointing to port
+ if (connEnd.getRole() instanceof Port) {
+ Port connectedTemplatePort = (Port) connEnd.getRole();
+ Port connectedBoundPort = (Port) Utils.getNamedElementFromList(
+ PortUtils.getAllPorts(partTypeEC), connectedTemplatePort.getName());
+ connEnd.setRole(connectedBoundPort);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Re-target connectors after an unknown number of parts have changed their type from template
+ * to an instantiation of this template. In this case, the roles of the connector ends still
+ * reference the port of the template instead of the bound template binding.
+ * The new roles are assigned based on an equal name, assuming that template instantiation
+ * does not change the name of the ports.
+ *
+ * @param composite
+ * a composite containing connectors
+ */
+ public static void retargetConnectors(StructuredClassifier composite) {
+ for (Connector connector : composite.getOwnedConnectors()) {
+ // the connector end targets a port of a part or the composite (in case of delegation)
+ for (ConnectorEnd connEnd : connector.getEnds()) {
+ Property part = connEnd.getPartWithPort();
+ if ((part != null) && (part.getType() instanceof EncapsulatedClassifier)) {
+ EncapsulatedClassifier partTypeEC = (EncapsulatedClassifier) part.getType();
+ ConnectableElement role = connEnd.getRole();
+ EList<Port> ports = PortUtils.getAllPorts(partTypeEC);
+ if ((role instanceof Port) && !ports.contains(role)) {
+ // role is not in list of ports
+ Port connectedBoundPort = (Port) Utils.getNamedElementFromList(ports, role.getName());
+ connEnd.setRole(connectedBoundPort);
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/TextTemplateBinding.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/TextTemplateBinding.java
new file mode 100644
index 00000000000..aa89bc58c8e
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/TextTemplateBinding.java
@@ -0,0 +1,80 @@
+/**
+ * Copyright CEA-LIST 2009
+ * available under EPL 1.0 licence
+ *
+ * This file is part of the Qompass tool chain (www.ec3m.net)
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * $Id$
+ */
+
+package org.eclipse.papyrus.qompass.designer.core.templates;
+
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.NamedElement;
+
+/**
+ * Wrap different ways to bind a template. This may be either a reference to an
+ * Xtend template or a specific name template.
+ */
+public class TextTemplateBinding {
+
+ /**
+ * Simple template expression that is replaced with the name of a named
+ * element. Uses an Acceleo syntax
+ * The objective is that the access to an element name is very common and does
+ * not need an xtend script behind.
+ */
+ private static final String NAME_IN_BRACKETS = "[name/]"; //$NON-NLS-1$
+
+ /**
+ * Simple template expression that is replaced with the name of a named
+ * element. Slight variation of the Acceleo syntax
+ */
+ private static final String NAME_IN_BRACKETS_SIMPLE = "[name]"; //$NON-NLS-1$
+
+ /**
+ * Execute a script passed as parameter. It will be executed in the context
+ * of a base script that declares the meta-model (UML2) and has additional
+ * imports (currently none).
+ *
+ * @param template
+ * The template in string form
+ * @param element
+ * The UML element to which the template is applied
+ * @return the evaluated template
+ */
+ public static String bind(String templateStr, Element element) throws TransformationException {
+ return bind(templateStr, element, null);
+ }
+
+ /**
+ * Execute a script passed as parameter. It will be executed in the context
+ * of a base script that declares the meta-model (UML2). It allows for
+ * additional arguments
+ *
+ * @param template
+ * The template in string form
+ * @param element
+ * The UML element to which the template is applied
+ * @return the evaluated template
+ */
+ public static String bind(String templateStr, Element element, Object args[]) throws TransformationException {
+ if (templateStr.startsWith(XtendTemplateBinding.XTEND_MAGIC)) {
+ return XtendTemplateBinding.bind(templateStr, element, args);
+ }
+ else if (element instanceof NamedElement) {
+ String name = ((NamedElement) element).getName();
+ if (templateStr.contains(NAME_IN_BRACKETS)) {
+ return templateStr.replace(NAME_IN_BRACKETS, name);
+ }
+ else if (templateStr.contains(NAME_IN_BRACKETS_SIMPLE)) {
+ return templateStr.replace(NAME_IN_BRACKETS_SIMPLE, name);
+ }
+ }
+ return templateStr;
+ // throw new TransformationException("Template is not supported"); //$NON-NLS-1$
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/XtendTemplateBinding.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/XtendTemplateBinding.java
new file mode 100644
index 00000000000..14527c6aa23
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/XtendTemplateBinding.java
@@ -0,0 +1,84 @@
+package org.eclipse.papyrus.qompass.designer.core.templates;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+import org.eclipse.papyrus.qompass.designer.core.Messages;
+import org.eclipse.papyrus.qompass.designer.core.extensions.IXtend;
+import org.eclipse.papyrus.qompass.designer.core.extensions.XtendGenerator;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
+import org.eclipse.uml2.uml.Element;
+
+public class XtendTemplateBinding {
+
+ public static final String XTEND_MAGIC = "!xtend"; //$NON-NLS-1$
+
+ /**
+ * Execute a script passed as parameter. It will be executed in the context
+ * of a base script that declares the meta-model (UML2) and has additional
+ * imports (currently none).
+ *
+ * @param template
+ * The template in string form
+ * @param element
+ * The UML element to which the template is applied
+ * @return the evaluated template
+ */
+ public static String bind(String templateStr, Element element) throws TransformationException {
+ return bind(templateStr, element, null);
+ }
+
+ /**
+ * Execute a script passed as parameter. It will be executed in the context
+ * of a base script that declares the meta-model (UML2) and has additional
+ * imports (currently none).
+ *
+ * @param template
+ * The template in string form
+ * @param element
+ * The UML element to which the template is applied
+ * @return the evaluated template
+ */
+ public static String bind(String templateStr, Element element, Object args[]) throws TransformationException {
+ String[] templateRef = templateStr.substring(XTEND_MAGIC.length() + 1).split("\\."); //$NON-NLS-1$
+ String templateId = templateRef[0].trim();
+ String methodName = templateRef[1].trim();
+ IXtend generator = XtendGenerator.getXtendGenerator(templateId);
+ if (generator == null) {
+ throw new TransformationException(String.format(Messages.XtendTemplateBinding_TemplateNotFound, templateId, methodName));
+ }
+
+ try {
+ Object result;
+ if (args != null) {
+ Method method = getMethod(generator, methodName, 1+args.length);
+ result = method.invoke(generator, element, args);
+ }
+ else {
+ Method method = getMethod(generator, methodName, 1);
+ result = method.invoke(generator, element);
+ }
+ if (result instanceof String) {
+ return (String) result;
+ }
+ else if (result instanceof CharSequence) {
+ return result.toString();
+ }
+ else {
+ throw new TransformationException(Messages.XtendTemplateBinding_TemplateResultIsNotAString);
+ }
+ } catch (SecurityException | IllegalAccessException
+ | IllegalArgumentException | InvocationTargetException | NullPointerException e) {
+ throw new TransformationException(e.getMessage());
+ }
+ }
+
+ public static Method getMethod(IXtend generator, String methodName, int numberOfArguments) {
+ for (Method method : generator.getClass().getMethods()) {
+ if (method.getName().equals(methodName) && method.getParameterTypes().length == numberOfArguments) {
+ return method;
+ }
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/AbstractContainerTrafo.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/AbstractContainerTrafo.java
new file mode 100644
index 00000000000..75dd752b1df
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/AbstractContainerTrafo.java
@@ -0,0 +1,114 @@
+/*******************************************************************import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.papyrus.FCM.ContainerRule;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.Package;
+s distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.transformations;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.papyrus.FCM.ContainerRule;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.Package;
+
+
+public abstract class AbstractContainerTrafo {
+
+ public static void init() {
+ containers = new HashMap<Class, AbstractContainerTrafo>();
+ }
+
+ /**
+ * return the container trafo associated with the tmComponent
+ *
+ * @param tmComponent
+ * @return Container-trafo instance of null
+ */
+ public static AbstractContainerTrafo get(Class tmComponent) {
+ return containers.get(tmComponent);
+ }
+
+ /**
+ * Hash map used to identify for which components we already created a container.
+ * Indexed with components in target model (but before container expansion)
+ */
+ protected static Map<Class, AbstractContainerTrafo> containers;
+
+ public abstract void createContainer(Class smComponent, Class tmComponent) throws TransformationException;
+
+ /**
+ * Create an instance of the container (UML instance specification)
+ *
+ * @param tmComponent
+ * the component within the target model for which we want to create an instance
+ *
+ * @param tmIS
+ * the existing instance specification for the component before container expansion.
+ * @param context
+ * Additional information about the container that is used by instance configurators
+ */
+ public abstract InstanceSpecification createContainerInstance(Class tmComponent, InstanceSpecification tmIS)
+ throws TransformationException;
+
+ /**
+ * apply a container rule, i.e. add either a container extension or an
+ * interceptor to the container
+ *
+ * @param smContainerRule
+ * An container rule
+ * @param smComponent
+ * the application component in the source model
+ * @param tmComponent
+ * the application component in the target model
+ * @throws TransformationException
+ */
+ public abstract void applyRule(ContainerRule smContainerRule, Class smComponent, Class tmComponent)
+ throws TransformationException;
+
+ /**
+ * The instance specification of the created container
+ */
+ // protected InstanceSpecification containerIS;
+
+ /**
+ * Copy class from source to target model
+ */
+ protected LazyCopier copier;
+
+
+ /**
+ * Is called after a set of rule applications.
+ * Does nothing by default
+ */
+ @Override
+ public void finalize() {
+ }
+
+ /**
+ * The created container implementation (prefixed with tm, since part of
+ * target model)
+ */
+ protected Class tmClass;
+
+ /**
+ * deployment plan within source model
+ */
+ protected Package smCDP;
+
+ /**
+ * deployment plan within target model
+ */
+ protected Package tmCDP;
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/AllocTransfo.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/AllocTransfo.java
new file mode 100644
index 00000000000..60f563cdb58
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/AllocTransfo.java
@@ -0,0 +1,93 @@
+package org.eclipse.papyrus.qompass.designer.core.transformations;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+import org.eclipse.papyrus.qompass.designer.core.Utils;
+import org.eclipse.papyrus.qompass.designer.core.deployment.AllocUtils;
+import org.eclipse.papyrus.uml.tools.utils.ConnectorUtil;
+import org.eclipse.uml2.common.util.UML2Util;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Connector;
+import org.eclipse.uml2.uml.ConnectorEnd;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Slot;
+import org.eclipse.uml2.uml.Type;
+
+/**
+ * Transform the allocations towards an execution resource (thread) into a suitable connection
+ * Current restriction: a thread needs to be defined the same composite as the component which
+ * is allocated to this thread.
+ */
+public class AllocTransfo {
+ public static final String MAIN = "main"; //$NON-NLS-1$
+
+ /**
+ *
+ * @param copy
+ * The copy class. Currently unused
+ * @param composite
+ * A composite. We analyze the allocations of the properties within this
+ * Composite. The composite must be an element of the target model that can be modified.
+ */
+ public void transformAllocs(LazyCopier copy, Class composite) {
+ EList<Property> attributeList = new BasicEList<Property>();
+ attributeList.addAll(composite.getOwnedAttributes()); // use a copy, since the loop eventually destroys an element of the list.
+ for (Property attribute : attributeList) {
+ Type type = attribute.getType();
+ if (!(type instanceof Class)) {
+ continue;
+ }
+ Property thread = AllocUtils.getThreadAlloc(attribute);
+ if (thread != null) {
+ // this attribute represents a thread.
+ if (thread.getName().equals(MAIN)) {
+ // TODO: currently, no support for setting up the priority of the main thread.
+ // we need to get a cleaner solution for the main thread.
+ // destroy eventual connector and associated thread => thread as component with unconnected start thread
+ Connector conn = ConnectorUtil.getConnector(composite, attribute, thread);
+ // Connector targetConn = copy.getCopy(conn);
+ // Property targetThread = copy.getCopy(thread);
+ if (conn != null) {
+ conn.destroy();
+ }
+ // destroy not only the thread, but also the slot within the composites instance specification
+ // (that references the thread via its defining feature).
+ for (Setting setting : UML2Util.getInverseReferences(thread)) {
+ if (setting.getEObject() instanceof Slot) {
+ ((Element) setting.getEObject()).destroy();
+ }
+ }
+ thread.destroy();
+ }
+ // check, if there is already a connector between the attribute and the thread
+ else if (!ConnectorUtil.existsConnector(composite, attribute, thread)) {
+ // no connector => create;
+ Class component = (Class) type;
+ Connector c = composite.createOwnedConnector("alloc to " + thread.getName()); //$NON-NLS-1$
+ ConnectorEnd ce1 = c.createEnd();
+ ce1.setPartWithPort(attribute);
+ // TODO: should really use start port instead...
+ // ce1.setRole(AllocUtils.getStartPort(component));
+ NamedElement ne = Utils.getNamedElementFromList(component.getAllAttributes(), "lc"); //$NON-NLS-1$
+ if (ne instanceof Property) {
+ ce1.setRole((Property) ne);
+ }
+ ConnectorEnd ce2 = c.createEnd();
+ ce2.setPartWithPort(thread);
+ Type threadT = thread.getType();
+ if (threadT instanceof Class) {
+ // TODO: nicer way to obtain port ...
+ Property rLC = ((Class) threadT).getAttribute("rLC", null); //$NON-NLS-1$
+ if (rLC instanceof Port) {
+ ce2.setRole(rLC);
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/CompTypeTrafos.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/CompTypeTrafos.java
new file mode 100644
index 00000000000..4fa6256b36a
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/CompTypeTrafos.java
@@ -0,0 +1,127 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.transformations;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.papyrus.C_Cpp.Ptr;
+import org.eclipse.papyrus.qompass.designer.core.Messages;
+import org.eclipse.papyrus.qompass.designer.core.PortUtils;
+import org.eclipse.papyrus.qompass.designer.core.Utils;
+import org.eclipse.papyrus.uml.tools.utils.PackageUtil;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PackageableElement;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.ParameterDirectionKind;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Type;
+
+/**
+ * A collection of transformations related to component-types (or abstract implementations)
+ *
+ * 1. Add access operations for ports, i.e. operations that return a reference of a port
+ * (if port provides interface) and/or allow to connect a port with a given reference
+ * (if port requires an interface)
+ * 2. Remove ports (after ports have been replaced with standard properties)
+ *
+ * TODO: transformation is specific to C++
+ * TODO: currently unused
+ *
+ * @author ansgar
+ *
+ */
+@Deprecated
+public class CompTypeTrafos {
+
+ public static final String INDEX_TYPE_FOR_MULTI_RECEPTACLE = "corba::Long"; //$NON-NLS-1$
+
+ /**
+ * Complete access operations recursively, i.e. traverse all packageable
+ * elements and apply the completeAccessOps operation on classes
+ *
+ * @param pkg
+ * the package for which the completion should start
+ * @see completeAccessOps(Class)
+ */
+ public static void completeAccessOps(Package pkg) {
+ for (PackageableElement element : new BasicEList<PackageableElement>(pkg.getPackagedElements())) {
+ if (element instanceof Package) {
+ completeAccessOps((Package) element);
+ } else if (element instanceof Class) {
+ completeAccessOps((Class) element);
+ }
+ }
+ }
+
+ /**
+ * Complete access operations that return the reference. This function is a completion,
+ * since the access operations have already been added for component implementations
+ * (partly, if implementation was abstract).
+ *
+ * @param component
+ * the component for which access operation should be completed.
+ * @return
+ */
+ private static void completeAccessOps(Class component) {
+ // only owned ports => since the operation is also applied on inherited types.
+ for (Port port : component.getOwnedPorts()) {
+ Interface providedIntf = PortUtils.getProvided(port);
+ if (providedIntf != null) {
+ // add operation CCM_<%type%> get_<portname>
+ String getName = PrefixConstants.getP_Prefix + port.getName();
+
+ // create unless already existing
+ if (component.getOwnedOperation(getName, null, null) == null) {
+ Operation op = component.createOwnedOperation(getName, null, null);
+ op.setIsAbstract(true);
+ Parameter retParam = op.createOwnedParameter("ret", providedIntf); //$NON-NLS-1$
+ retParam.setDirection(ParameterDirectionKind.RETURN_LITERAL);
+ StereotypeUtil.apply(retParam, Ptr.class);
+ // StereotypeUtil.apply(op, CppVirtual.class);
+ }
+ }
+ Interface requiredIntf = PortUtils.getRequired(port);
+ if (requiredIntf != null) {
+ // add operation CCM_<%type%> connect_q <portname>
+ String connName = PrefixConstants.connectQ_Prefix + port.getName();
+
+ // create unless already existing
+ if (component.getOwnedOperation(connName, null, null) == null) {
+ Operation op = component.createOwnedOperation(connName, null, null);
+ op.setIsAbstract(true);
+ boolean multiPort = (port.getUpper() > 1) || (port.getUpper() == -1); // -1 indicates "*"
+ if (multiPort) {
+ // add index parameter
+ Element eLong = Utils.getQualifiedElement(PackageUtil.getRootPackage(component), INDEX_TYPE_FOR_MULTI_RECEPTACLE);
+ if (eLong instanceof Type) {
+ op.createOwnedParameter("index", (Type) eLong); //$NON-NLS-1$
+ }
+ else {
+ throw new RuntimeException(String.format(Messages.CompTypeTrafos_CannotFindType, INDEX_TYPE_FOR_MULTI_RECEPTACLE));
+ }
+ }
+ Parameter refParam = op.createOwnedParameter("ref", requiredIntf); //$NON-NLS-1$
+ refParam.setDirection(ParameterDirectionKind.IN_LITERAL);
+ StereotypeUtil.apply(refParam, Ptr.class);
+ // StereotypeUtil.apply(op, CppVirtual.class);
+ }
+ }
+ }
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/CopyTo.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/CopyTo.java
new file mode 100644
index 00000000000..7aa54599ebd
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/CopyTo.java
@@ -0,0 +1,35 @@
+package org.eclipse.papyrus.qompass.designer.core.transformations;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil.Copier;
+import org.eclipse.uml2.uml.Element;
+
+/**
+ * This class enables the copy from a source to a given target element.
+ * It assumes that a copy has already been created, but will just not copy it...
+ * Unlike the @see Copy class, the element might be copied to a different place
+ */
+public class CopyTo {
+ /**
+ * Copy an element from the source to a target
+ *
+ * @param source
+ * The element that should be copied
+ * @param targetContainer
+ * The container into which it the source should be copied
+ * @return the copied object
+ */
+ @SuppressWarnings("unchecked")
+ public static <T extends Element> T copyTo(T source, Element targetContainer) {
+ Copier copier = new Copier();
+ EObject sourceContainer = source.eContainer();
+ if (sourceContainer != null) {
+ copier.put(sourceContainer, targetContainer);
+ }
+
+ EObject copy = copier.copy(source);
+ copier.copyAll(source.getStereotypeApplications());
+ copier.copyReferences();
+ return (T) copy;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/ExecuteOOTrafo.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/ExecuteOOTrafo.java
new file mode 100644
index 00000000000..17ae079d584
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/ExecuteOOTrafo.java
@@ -0,0 +1,175 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.transformations;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.FCM.PortKind;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepUtils;
+import org.eclipse.papyrus.qompass.designer.core.extensions.IOOTrafo;
+import org.eclipse.papyrus.qompass.designer.core.extensions.OOTrafo;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Connector;
+import org.eclipse.uml2.uml.EncapsulatedClassifier;
+import org.eclipse.uml2.uml.Model;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PackageableElement;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.StructuralFeature;
+import org.eclipse.uml2.uml.StructuredClassifier;
+
+public class ExecuteOOTrafo {
+
+ IOOTrafo ooTrafo;
+
+ ExecuteOOTrafo(IOOTrafo ooTrafo) {
+ this.ooTrafo = ooTrafo;
+ }
+
+ /**
+ * Execute the OO transformation for a package, include removal of connectors
+ *
+ * @param pkg
+ * @throws TransformationException
+ */
+ public void transformPackage(Package pkg) throws TransformationException {
+ recursiveOOTransformation(pkg);
+ // transformation and removal is not done in same loop. Otherwise it would be possible
+ // that inherited ports have already been removed.
+ recursiveRemoval(pkg);
+ }
+
+ /**
+ * Execute the OO transformation for a package
+ *
+ * @param pkg
+ * @throws TransformationException
+ */
+ public void recursiveOOTransformation(Package pkg) throws TransformationException {
+ EList<PackageableElement> peList = new BasicEList<PackageableElement>();
+ peList.addAll(pkg.getPackagedElements());
+ for (PackageableElement element : peList) {
+ if (element instanceof Package) {
+ recursiveOOTransformation((Package) element);
+ } else if (element instanceof Class) {
+ Class implementation = (Class) element;
+ // do not apply transformation to port-kinds
+ if (!StereotypeUtil.isApplied(implementation, PortKind.class)) {
+ ooTrafo.addPortOperations(implementation);
+ ooTrafo.addConnectionOperation(implementation);
+ ooTrafo.transformParts(implementation);
+ }
+ }
+ }
+ }
+
+ /**
+ * Remove connectors and ports from elements within a package
+ *
+ * @param pkg
+ * @throws TransformationException
+ */
+ public void recursiveRemoval(Package pkg) throws TransformationException {
+ EList<PackageableElement> peList = new BasicEList<PackageableElement>();
+ peList.addAll(pkg.getPackagedElements());
+ for (PackageableElement element : peList) {
+ if (element instanceof Package) {
+ recursiveRemoval((Package) element);
+ }
+ else {
+ // delete connectors and ports
+ if (element instanceof StructuredClassifier) {
+ removeConnectors((StructuredClassifier) element);
+ }
+ if (element instanceof EncapsulatedClassifier) {
+ removePorts((EncapsulatedClassifier) element);
+ }
+ }
+ }
+ }
+
+ /**
+ * Helper: remove connectors from a structured classifier (in most cases a
+ * class)
+ *
+ * @param implementation
+ * A component
+ */
+ public void removeConnectors(StructuredClassifier implementation) {
+ EList<Connector> connectors = new BasicEList<Connector>();
+ connectors.addAll(implementation.getOwnedConnectors());
+ for (Connector connector : connectors) {
+ connector.destroy();
+ }
+ }
+
+ /**
+ * Helper: remove ports from a from an encapsulated classifier (in most
+ * cases a class)
+ *
+ * @param implementation
+ * A component
+ */
+ public void removePorts(EncapsulatedClassifier implementation) {
+ EList<Port> portListCopy = new BasicEList<Port>();
+ portListCopy.addAll(implementation.getOwnedPorts());
+ // avoid dangling references by calling destroy on the port list
+ for (Port port : portListCopy) {
+ port.destroy();
+ }
+ }
+
+ /**
+ * Transform a component model into an object oriented model.
+ *
+ * @param copier a copier
+ * @param bootloader the generated bootloader
+ * @param genModel the model to generate into
+ * @param OOmodel ignored.
+ * @throws TransformationException
+ * @deprecated use variant with ignored parameter
+ */
+ @Deprecated
+ public static void transform(LazyCopier copier, Class bootloader, Model genModel, boolean OOmodel)
+ throws TransformationException {
+ transform(copier, bootloader, genModel);
+ }
+
+ public static void transform(LazyCopier copier, Class bootloader, Model genModel)
+ throws TransformationException {
+ String ooTransformation = DepUtils.getOOTransformationFromPackage(genModel);
+ if (ooTransformation == null) {
+ // default OO transformation
+ ooTransformation = "StaticCpp"; //$NON-NLS-1$
+ }
+ IOOTrafo ooTrafo = OOTrafo.getOOTrafo(ooTransformation);
+ ooTrafo.init(copier, bootloader);
+ ExecuteOOTrafo executeOOTrafo = new ExecuteOOTrafo(ooTrafo);
+ executeOOTrafo.transformPackage(genModel);
+
+ // complete access operations?
+ }
+
+ // TODO: always false. Is it really task of OO trafo to decide whether
+ // something is
+ // instantiated by bootloader or not?
+ public static boolean instantiateViaBootloader(StructuralFeature slot) {
+ return false;
+ }
+
+ // TODO: currently used by BOOTLOADER generator. Why needed?
+ public static final String CREATE_CONNECTIONS = "createConnections"; //$NON-NLS-1$
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/FlattenInteractionComponents.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/FlattenInteractionComponents.java
new file mode 100644
index 00000000000..1d9cabc87c0
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/FlattenInteractionComponents.java
@@ -0,0 +1,224 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.transformations;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.FCM.InteractionComponent;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepPlanUtils;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepUtils;
+import org.eclipse.papyrus.uml.tools.utils.ConnectorUtil;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Connector;
+import org.eclipse.uml2.uml.ConnectorEnd;
+import org.eclipse.uml2.uml.DirectedRelationship;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Slot;
+import org.eclipse.uml2.uml.StructuralFeature;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * Deploy instances in a flat way, i.e. only deploy leaves. "Normal" composites
+ * still need to be deployed (since they might have a behavior of their own).
+ * However, composites tagged as assemblies (FCM stereotype attribute) may be
+ * not be deployed, instead their contents is deployed.
+ *
+ * A composite that is not deployed implies that
+ * - assembly connections within this composite need to move up one or more levels
+ * in the composite hierarchy
+ * - re-targeting connections from/to a composite to the inner part (along delegation connections inside
+ * the composite)
+ * [Need to stop at a composite]
+ *
+ * Problems: need to do that on instance level. It could be that the same composite is instantiated
+ * at different places in the tree with a different implementation choices => would require different
+ * variants of the sub-type.
+ * Solution: a. completely flatten except system of which we know that a single
+ * instance exists)
+ * b. forbid that different implementation variants are used by different instances of same composant
+ *
+ * CAVEAT: function not yet properly working,
+ * function currently not used
+ *
+ * @author ansgar
+ *
+ *
+ */
+public class FlattenInteractionComponents {
+
+ private static final String FLATTEN_SEP = "_"; //$NON-NLS-1$
+
+ public static FlattenInteractionComponents getInstance() {
+ return instance;
+ }
+
+ private static FlattenInteractionComponents instance = new FlattenInteractionComponents();
+
+ /**
+ * flatten an assembly, i.e. remove the passed containedPart (which must be a part within the passed containing
+ * composite)
+ *
+ * @param containingComposite
+ * @param containedPart
+ * a part within the passed containing composite
+ * @param containedComposite
+ * the type (implementation) of the passed part
+ */
+ public void flattenAssembly(InstanceSpecification instance, Slot slot)
+ {
+ Classifier cl = DepUtils.getClassifier(instance);
+ if ((cl instanceof Class) && (slot != null)) {
+ InteractionComponent ic = UMLUtil.getStereotypeApplication(cl, InteractionComponent.class);
+ if ((ic != null) && ic.isForDistribution()) {
+ Slot containingSlot = DepUtils.getParentSlot(instance);
+ InstanceSpecification containingInstance = containingSlot.getOwningInstance();
+ flattenAssembly((Class) cl, instance, containingInstance, containingSlot);
+ }
+ }
+ // loop over sub-instances and apply flatten recursively.
+ // create a copy of the slots, since the recursive flatten call might modify
+ // the number of slots
+ EList<Slot> slots = new BasicEList<Slot>(instance.getSlots());
+ for (Slot subISslot : slots) {
+ InstanceSpecification subIS = DepUtils.getInstance(subISslot);
+ if (subIS != null) {
+ flattenAssembly(subIS, subISslot);
+ }
+ }
+ }
+
+ /**
+ *
+ * Flatten a composite interaction component, i.e. replace it by the containing fragments. This includes the following actions
+ * 1. Parts typed with the interaction component must be replaced with a set of parts typed with the fragment.
+ * 2. Connectors must be redirected.
+ *
+ * Please note that we do not delete the original interaction component, but it will not appear in a model generated for a specific node.
+ * TODO: We need to re-target connectors in all containing composites, but the same containingComposite might have several instances within an application. In this case,
+ * we only need to move slots.
+ *
+ * Well, there are different classes: first: the flattened interaction component and other components that reference the flattened interaction component.
+ *
+ * @param composite
+ * a composite class
+ * @param instance
+ * the instance associated with the composite class (1st parameter)
+ * @param containingInstance
+ * an instance of the containing composite
+ * @param containingSlot
+ * the slot associated with the instance (2nd parameter)
+ */
+ public void flattenAssembly(Class composite, InstanceSpecification instance, InstanceSpecification containingInstance, Slot containingSlot)
+ {
+ Classifier containingCompositeCl = DepUtils.getClassifier(containingInstance);
+ StructuralFeature sfForIA = containingSlot.getDefiningFeature();
+ Map<Property, Property> replaceParts = new HashMap<Property, Property>();
+ if ((containingCompositeCl instanceof Class) && (sfForIA instanceof Property)) {
+ Class containingComposite = (Class) containingCompositeCl;
+ Property partForIA = (Property) sfForIA;
+
+ for (Property fragmentPart : composite.getAllAttributes()) {
+ if (fragmentPart instanceof Port) {
+ continue;
+ }
+ String partName = partForIA.getName() + FLATTEN_SEP + fragmentPart.getName();
+ // create a new part in the containing composite
+ Property newPartForFragment = containingComposite.createOwnedAttribute(partName, fragmentPart.getType());
+ replaceParts.put(fragmentPart, newPartForFragment);
+
+ boolean foundConnector = false;
+ // now redirect connectors: find whether a port delegates to the fragment
+ for (Connector connector : composite.getOwnedConnectors()) {
+ if (ConnectorUtil.connectsPart(connector, fragmentPart)) {
+ foundConnector = true;
+ // internal connector for the part, check whether delegation
+ ConnectorEnd ce = ConnectorUtil.connEndNotPart(connector, fragmentPart);
+ if ((ce != null) && (ce.getPartWithPort() == null)) {
+ // delegation connector, need to re-targed connections to external port
+ Port port = (Port) ce.getRole();
+ // now look for connections to this port in the containingComposite and shortcut these ...
+ retargetConnections(containingComposite, port, partForIA, newPartForFragment);
+ } else {
+ // assembly: assembly connection between fragments are not authorized
+ }
+ }
+ }
+ if (!foundConnector) {
+ throw new RuntimeException("the part <" + fragmentPart.getName() + "> within composite <" + composite.getName() + "> is not connected with any of its ports"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ }
+ }
+ // on instance level: move slots from instance to containingInstance
+ EList<Slot> slots = instance.getSlots();
+ containingInstance.getSlots().addAll(slots);
+ // replace defining feature
+ for (Slot slot : containingInstance.getSlots()) {
+ StructuralFeature sf = slot.getDefiningFeature();
+ if (replaceParts.containsKey(sf)) {
+ slot.setDefiningFeature(replaceParts.get(sf));
+ // assure naming convention for instances: here, we update the name of the instance
+ // and its sub-instances with the name of the containingInstance
+ InstanceSpecification subInstance = DepUtils.getInstance(slot);
+ if ((subInstance != null) && !DepUtils.isShared(slot)) {
+ DepPlanUtils.updateInstanceNames(subInstance, instance.getName() + FLATTEN_SEP + sf.getName());
+ }
+ }
+ }
+
+ containingSlot.destroy();
+ // destroy relationships of flattened instance, in particular allocation
+ for (DirectedRelationship dr : instance.getSourceDirectedRelationships()) {
+ dr.destroy();
+ }
+ instance.destroy();
+ partForIA.destroy();
+
+ // move is
+ /*
+ * InstanceSpecification partIS;
+ * DepUtils.createSlot (cdp, newIS, partIS, newPart);
+ */
+ }
+ }
+
+ /**
+ * Find a connection within a connecting
+ *
+ * @param containingComposite
+ * @param port
+ * A port which delegates to a fragment
+ * @param part
+ * the part within the containing composite (1st parameter) point to the interactionComponent
+ * @param subPart
+ * a newly created part corresponding to the fragment
+ */
+ public void retargetConnections(Class containingComposite, Port port, Property part, Property subPart) {
+ for (Connector connector : containingComposite.getOwnedConnectors()) {
+ if (ConnectorUtil.connectsPart(connector, part) && ConnectorUtil.connectsPort(connector, port)) {
+ ConnectorEnd ce = ConnectorUtil.connEndForPart(connector, part);
+ if (ce != null) {
+ // TODO: only with with connections targeting a port of a part, not with
+ // those targeting directly a part
+ ce.setPartWithPort(subPart);
+ }
+ }
+ }
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/InstantiateDepPlan.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/InstantiateDepPlan.java
new file mode 100644
index 00000000000..f0a2d6c3a7d
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/InstantiateDepPlan.java
@@ -0,0 +1,619 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.transformations;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.common.util.WrappedException;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.papyrus.FCM.Configuration;
+import org.eclipse.papyrus.FCM.OperatingSystem;
+import org.eclipse.papyrus.FCM.Target;
+import org.eclipse.papyrus.FCM.util.MapUtil;
+import org.eclipse.papyrus.codegen.extensionpoints.AbstractSettings;
+import org.eclipse.papyrus.codegen.extensionpoints.ILangCodegen;
+import org.eclipse.papyrus.codegen.extensionpoints.ILangProjectSupport;
+import org.eclipse.papyrus.codegen.extensionpoints.LanguageCodegen;
+import org.eclipse.papyrus.codegen.extensionpoints.LanguageProjectSupport;
+import org.eclipse.papyrus.qompass.designer.core.EnumService;
+import org.eclipse.papyrus.qompass.designer.core.Log;
+import org.eclipse.papyrus.qompass.designer.core.Messages;
+import org.eclipse.papyrus.qompass.designer.core.ModelManagement;
+import org.eclipse.papyrus.qompass.designer.core.ProjectManagement;
+import org.eclipse.papyrus.qompass.designer.core.StUtils;
+import org.eclipse.papyrus.qompass.designer.core.Utils;
+import org.eclipse.papyrus.qompass.designer.core.deployment.AllocUtils;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepCreation;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepUtils;
+import org.eclipse.papyrus.qompass.designer.core.deployment.Deploy;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DeployConstants;
+import org.eclipse.papyrus.qompass.designer.core.deployment.GatherConfigData;
+import org.eclipse.papyrus.qompass.designer.core.extensions.InstanceConfigurator;
+import org.eclipse.papyrus.qompass.designer.core.generate.GenerateCode;
+import org.eclipse.papyrus.qompass.designer.core.generate.GenerationOptions;
+import org.eclipse.papyrus.qompass.designer.core.transformations.filters.FilterRuleApplication;
+import org.eclipse.papyrus.qompass.designer.core.transformations.filters.FilterStateMachines;
+import org.eclipse.papyrus.qompass.designer.core.transformations.filters.FilterTemplate;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.Model;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PackageableElement;
+import org.eclipse.uml2.uml.Profile;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * This class executes all transformations during the instantiation of a
+ * deployment plan, i.e. 1. The reification of connectors (including template
+ * instantiation). This transformation targets a new model 2. Adding
+ * get_p/connect_q operations to a class (transformation within same model) 3.
+ * Remove all component types 4. distribute to nodes
+ *
+ * @author ansgar
+ *
+ */
+public class InstantiateDepPlan {
+
+ /**
+ * The location of the temporary model (relative to current project). TODO:
+ * make configurable?
+ */
+ public static final String TEMP_MODEL_FOLDER = "tmpModel"; //$NON-NLS-1$
+
+ /**
+ * Postfix of the temporary model (prefix = name of top-level package).
+ * TODO: make configurable?
+ */
+ public static final String TEMP_MODEL_POSTFIX = "Tmp.uml"; //$NON-NLS-1$
+
+ /**
+ * Progress monitor of Eclipse.
+ */
+ protected IProgressMonitor monitor = null;
+
+ protected int generationOptions;
+
+ protected boolean generateCode;
+
+ protected boolean generateCACOnly;
+
+ protected Package srcModelComponentDeploymentPlan = null;
+
+ protected Configuration configuration = null;
+
+ protected IProject project;
+
+ protected IProject genProject;
+
+ public void instantiate(Configuration configuration,
+ IProgressMonitor monitor, IProject project, int genOptions) {
+ this.configuration = configuration;
+ srcModelComponentDeploymentPlan = configuration
+ .getDeploymentPlan().getBase_Package();
+ //
+ if (srcModelComponentDeploymentPlan == null) {
+ String message = String
+ .format(Messages.InstantiateDepPlan_DepPlanStereotypeNotInitialized,
+ configuration.getBase_Class().getName());
+ displayError(Messages.InstantiateDepPlan_TransformationException,
+ message);
+ }
+
+ this.project = project;
+ if (project == null) {
+ String projectName = configuration.getBase_Class().eResource()
+ .getURI().toString();
+ this.project = ResourcesPlugin.getWorkspace().getRoot()
+ .getProject(projectName);
+ }
+ //
+ instantiate(monitor, genOptions);
+ }
+
+ public void instantiate(Package pkg, IProgressMonitor monitor,
+ IProject project, int genOptions) {
+ configuration = null;
+ srcModelComponentDeploymentPlan = pkg;
+ //
+ this.project = project;
+ if (project == null) {
+ String projectName = pkg.eResource().getURI().toString();
+ this.project = ResourcesPlugin.getWorkspace().getRoot()
+ .getProject(projectName);
+ }
+
+ //
+ instantiate(monitor, genOptions);
+ }
+
+ /**
+ * Instantiate a deployment plan, i.e. generate an intermediate model via a
+ * sequence of transformations
+ *
+ * @param umlElement
+ * a deployment plan (UML package) or a configuration (UML class)
+ * @param monitor
+ * a progress monitor.
+ *
+ * @param project
+ * the current project. This information is used to store the
+ * intermediate model in a subfolder (tmpModel) of the current
+ * project
+ * @param genOptions
+ * select whether to produce an intermediate model only, also
+ * code, ... @see GenerationOptions
+ */
+ private void instantiate(IProgressMonitor monitor, int genOptions) {
+ try {
+ initialize(monitor, genOptions);
+ executeTransformation();
+ } catch (final TransformationException e) {
+ printAndDisplayErrorMessage(e,
+ Messages.InstantiateDepPlan_TransformationException, false);
+ } catch (final Exception e) {
+ printAndDisplayErrorMessage(e,
+ Messages.InstantiateDepPlan_ErrorsDuringTransformation,
+ true);
+ }
+ }
+
+ private void initialize(IProgressMonitor monitor, int genOptions)
+ throws TransformationException {
+ this.monitor = monitor;
+ this.generationOptions = genOptions;
+ this.generateCode = (genOptions & GenerationOptions.MODEL_ONLY) == 0;
+ this.generateCACOnly = (genOptions & GenerationOptions.CAC_ONLY) != 0;
+
+ RuleManagement.setConfiguration(configuration);
+ }
+
+ protected void executeTransformation() throws Exception {
+ ModelManagement intermediateModelManagement = null;
+
+ // 1a: create a new model (and applies same profiles / imports)
+ Model existingModel = srcModelComponentDeploymentPlan.getModel();
+ TransformationContext.sourceRoot = existingModel;
+
+ intermediateModelManagement = createTargetModel(existingModel,
+ existingModel.getName(), true);
+
+ // get the temporary model
+ Model intermediateModel = intermediateModelManagement.getModel();
+
+ // create a package for global enumerations that are used by Acceleo code
+ EnumService.createEnumPackage(intermediateModel);
+
+ // create a lazy copier towards the intermediate model
+ LazyCopier intermediateModelCopier = new LazyCopier(existingModel, intermediateModel, false, true);
+ // add pre-copy and post-copy listeners to the copier
+ intermediateModelCopier.preCopyListeners.add(FilterTemplate.getInstance());
+
+ // 1b: reify the connectors "into" the new model
+ monitor.subTask(Messages.InstantiateDepPlan_InfoExpandingConnectors);
+
+ // obtain the component deployment plan in target model
+ Package intermediateModelComponentDeploymentPlan = (Package) intermediateModelCopier
+ .shallowCopy(srcModelComponentDeploymentPlan);
+ intermediateModelCopier.createShallowContainer(srcModelComponentDeploymentPlan);
+
+ AbstractContainerTrafo.init();
+ InstanceConfigurator.onNodeModel = false;
+ MainModelTrafo mainModelTrafo = new MainModelTrafo(intermediateModelCopier,
+ intermediateModelComponentDeploymentPlan);
+
+ Map<InstanceSpecification, InstanceSpecification> instanceMap =
+ new HashMap<InstanceSpecification, InstanceSpecification>();
+ for (PackageableElement pe : srcModelComponentDeploymentPlan.getPackagedElements()) {
+ if (pe instanceof InstanceSpecification) {
+ InstanceSpecification instance = (InstanceSpecification) pe;
+ // check whether a top level instance and not an instance specification of a connector. The latter
+ // is added, since interaction components might have configuration parameters that appear in the
+ // deployment plan. Since the container transformation is not executed at this moment, the interaction is
+ // not represented by a part yet.
+ if (DepUtils.isTopLevelInstance(instance) && !Utils.isInteractionComponent(DepUtils.getClassifier(instance))) {
+ InstanceSpecification newInstance = mainModelTrafo.transformInstance(instance, null);
+
+ // --------------------------------------------------------------------
+ checkProgressStatus();
+ // --------------------------------------------------------------------
+
+ TransformationUtil.applyInstanceConfigurators(newInstance);
+
+ FlattenInteractionComponents.getInstance().flattenAssembly(
+ newInstance, null);
+ TransformationUtil.propagateAllocation(newInstance);
+ instanceMap.put(instance, newInstance);
+ }
+ }
+ }
+
+ if (!generateCACOnly) {
+ deployOnNodes(instanceMap, existingModel, intermediateModel);
+ }
+
+ intermediateModelManagement.saveModel(project, TEMP_MODEL_FOLDER,
+ TEMP_MODEL_POSTFIX);
+
+ // --------------------------------------------------------------------
+ checkProgressStatus();
+ // --------------------------------------------------------------------
+
+ intermediateModelManagement.dispose();
+ }
+
+private void deployOnNodes(Map<InstanceSpecification, InstanceSpecification> instanceMap,
+ Model existingModel, Model tmpModel)
+ throws TransformationException, InterruptedException {
+
+ // not deploy on each node
+ DepCreation.initAutoValues(instanceMap.values());
+
+ EList<InstanceSpecification> nodes = AllocUtils.getAllNodes(instanceMap.values());
+ if (nodes.size() > 0) {
+ InstanceConfigurator.onNodeModel = true;
+ for (int nodeIndex = 0; nodeIndex < nodes.size(); nodeIndex++) {
+ InstanceSpecification node = nodes.get(nodeIndex);
+
+ deployNode(instanceMap, existingModel, tmpModel, nodes, nodeIndex, node);
+ }
+ } else {
+ throw new TransformationException(
+ Messages.InstantiateDepPlan_InfoNoneAllocated);
+ }
+ }
+
+ private void deployNode(Map<InstanceSpecification, InstanceSpecification> instanceMap,
+ Model existingModel, Model tmpModel,
+ EList<InstanceSpecification> nodes, int nodeIndex, InstanceSpecification node)
+ throws TransformationException, InterruptedException {
+ ModelManagement genModelManagement = createTargetModel(existingModel,
+ MapUtil.rootModelName, false);
+ Model generatedModel = genModelManagement.getModel();
+
+ // --------------------------------------------------------------------
+ checkProgressStatus();
+ // --------------------------------------------------------------------
+
+ // new model has name "root" and contains a package with the
+ // existing model
+ // Package originalRoot = genModel.createNestedPackage
+ // (existingModel.getName ());
+ LazyCopier targetCopy = new LazyCopier(tmpModel, generatedModel, true, true);
+ // TODO: distribution to nodes is currently not done. How
+ // can it be realized with a copy filter ?
+ targetCopy.preCopyListeners.add(FilterStateMachines.getInstance());
+ targetCopy.preCopyListeners.add(FilterRuleApplication.getInstance());
+
+ monitor.setTaskName(String.format(
+ Messages.InstantiateDepPlan_InfoDeployingForNode,
+ node.getName()));
+
+ if (instanceMap.isEmpty()) {
+ return;
+ }
+ // get first language (restricted to single target language, acceptable?)
+ String targetLanguage = DepUtils.getTargetLanguage(instanceMap.keySet().iterator().next());
+ ILangProjectSupport projectSupport = configureLanguageSupport(targetLanguage,
+ existingModel, node);
+ if (projectSupport == null) {
+ return;
+ }
+
+ GatherConfigData gatherConfigData = new GatherConfigData(projectSupport);
+ Deploy deployment = new Deploy(targetCopy, gatherConfigData, node,
+ nodeIndex, nodes.size());
+
+ for (InstanceSpecification topLevelInstance : instanceMap.keySet()) {
+ InstanceSpecification newTopLevelInstance = instanceMap.get(topLevelInstance);
+ InstanceSpecification nodeRootIS = deployment.distributeToNode(newTopLevelInstance);
+ TransformationUtil.updateDerivedInterfaces(nodeRootIS);
+ }
+ deployment.finalize(targetLanguage);
+ if ((generationOptions & GenerationOptions.REWRITE_SETTINGS) != 0) {
+ projectSupport.setSettings(genProject, gatherConfigData.getSettings());
+ }
+
+ // --------------------------------------------------------------------
+ checkProgressStatus();
+ // --------------------------------------------------------------------
+
+ removeDerivedInterfacesInRoot(generatedModel);
+
+ ExecuteOOTrafo.transform(targetCopy, deployment.getBootloader(), generatedModel);
+
+ // --------------------------------------------------------------------
+ checkProgressStatus();
+ // --------------------------------------------------------------------
+
+ destroyDeploymentPlanFolder(generatedModel);
+
+ if (generateCode) {
+ ILangCodegen codegen = LanguageCodegen.getGenerator(targetLanguage);
+ GenerateCode codeGenerator = new GenerateCode(genProject, codegen, genModelManagement,
+ monitor);
+ boolean option = (generationOptions & GenerationOptions.ONLY_CHANGED) != 0;
+ codeGenerator.generate(node, targetLanguage, option);
+ }
+
+ genModelManagement.dispose();
+ }
+
+ /**
+ *
+ * @param mainInstance
+ * @param existingModel
+ * @param node
+ * @return null, if no language support is available or no project could be created.
+ * @throws TransformationException
+ */
+ private ILangProjectSupport configureLanguageSupport(
+ String targetLanguage, Model existingModel,
+ InstanceSpecification node) throws TransformationException {
+ ILangProjectSupport projectSupport = LanguageProjectSupport.getProjectSupport(targetLanguage);
+ AbstractSettings settings = projectSupport.initialConfigurationData();
+ settings.targetOS = getTargetOS(node);
+
+ String modelName = getModelName(existingModel, node);
+ genProject = ProjectManagement.getNamedProject(modelName);
+ if ((genProject == null) || !genProject.exists()) {
+ genProject = projectSupport.createProject(modelName);
+ // project is new, force re-write of settings
+ generationOptions |= GenerationOptions.REWRITE_SETTINGS;
+ }
+ return projectSupport;
+ }
+
+ protected String getTargetOS(InstanceSpecification node) {
+ Target target = UMLUtil.getStereotypeApplication(node, Target.class);
+ if (target == null) {
+ // get information from node referenced by the instance
+ target = UMLUtil.getStereotypeApplication(DepUtils.getClassifier(node), Target.class);
+ }
+ if (target != null) {
+ OperatingSystem os = target.getUsedOS();
+ if (os != null) {
+ return os.getBase_Class().getName();
+ }
+ }
+ return null;
+ }
+
+ private void destroyDeploymentPlanFolder(Model generatedModel) {
+ PackageableElement deploymentPlanFolder = generatedModel
+ .getPackagedElement(DeployConstants.depPlanFolderHw);
+ if (deploymentPlanFolder != null) {
+ deploymentPlanFolder.destroy();
+ }
+ }
+
+ private void removeDerivedInterfacesInRoot(Model generatedModel) {
+ // 2b: remove derived interfaces in root: derived interfaces
+ // that can not be placed in the same package as the port type (e.g.
+ // since read-only type from system library), are put in a top-level
+ // package called "derivedInterfaces". Due to the copying of imports,
+ // the top-level package has changed which implies that new derived
+ // interfaces are put into a different package and the derivedInterfaces
+ // package in the original root becomes obsolete. Delete this obsolete
+ // package, if existing.
+ for (PackageableElement packagedElement : generatedModel
+ .getPackagedElements()) {
+ if (packagedElement instanceof Package) {
+ NamedElement derivedInterfaces = ((Package) packagedElement)
+ .getPackagedElement("derivedInterfaces"); //$NON-NLS-1$
+ if (derivedInterfaces instanceof Package) {
+ derivedInterfaces.destroy();
+ }
+ }
+ }
+ }
+
+ private String getModelName(Model existingModel, InstanceSpecification node) {
+ String modelName = existingModel.getName() + "_" + node.getName(); //$NON-NLS-1$
+ if (configuration != null) {
+ modelName += "_" + configuration.getBase_Class().getName(); //$NON-NLS-1$
+ } else {
+ modelName += "_" + srcModelComponentDeploymentPlan.getName(); //$NON-NLS-1$
+ }
+ return modelName;
+ }
+
+ private void initiateProgressMonitor(boolean generateCode,
+ EList<InstanceSpecification> nodes) {
+ // -- calc # of steps for progress monitor
+ // 1 (tmpModel creation) + 1 (reification) + 1 (tmpModel save)
+ // 5x on each deployed node (see below)
+ // problem? Connector reification is a single, relatively long step
+ int steps = 3;
+ steps += 5 * nodes.size();
+ if (generateCode) {
+ steps += nodes.size();
+ }
+ monitor.beginTask(Messages.InstantiateDepPlan_InfoGeneratingModel,
+ steps);
+ }
+
+ private void checkProgressStatus() throws InterruptedException {
+ if (monitor.isCanceled()) {
+ throw new InterruptedException();
+ }
+ monitor.worked(1);
+ }
+
+ private void printAndDisplayErrorMessage(Exception e, final String title,
+ final boolean consultConsole) {
+ String message = e.toString();
+ if (consultConsole) {
+ message = message + "\n\n" //$NON-NLS-1$
+ + Messages.InstantiateDepPlan_ConsultConsole;
+ }
+
+ printAndDisplayErrorMessage(e, title, message, consultConsole);
+ }
+
+ private void printAndDisplayErrorMessage(Exception e, final String title,
+ final String message, final boolean consultConsole) {
+ e.printStackTrace();
+ displayError(title, message);
+ Log.log(IStatus.ERROR, Log.DEPLOYMENT, "", e); //$NON-NLS-1$
+ }
+
+ private void displayError(final String title, final String message) {
+ Display.getDefault().syncExec(new Runnable() {
+ @Override
+ public void run() {
+ Shell shell = Display.getDefault().getActiveShell();
+ MessageDialog.openInformation(shell, title, message);
+ }
+ });
+ }
+
+ /**
+ * Create a new empty model from an existing model that applies the same
+ * profiles and has the same imports
+ *
+ * @param existingModel
+ * @return
+ */
+ public ModelManagement createTargetModel(Model existingModel, String name,
+ boolean copyImports) throws TransformationException {
+ ModelManagement mm = new ModelManagement();
+ Model newModel = mm.getModel();
+ newModel.setName(name);
+
+ try {
+ // copy profile application
+ for (Profile profile : existingModel.getAppliedProfiles()) {
+ // reload profile in resource of new model
+ monitor.subTask(Messages.InstantiateDepPlan_InfoApplyProfile
+ + profile.getQualifiedName());
+
+ if (profile.eResource() == null) {
+ String profileName = profile.getQualifiedName();
+ if (profileName == null) {
+ if (profile instanceof MinimalEObjectImpl.Container) {
+ URI uri = ((MinimalEObjectImpl.Container) profile)
+ .eProxyURI();
+ if (uri != null) {
+ throw new TransformationException(
+ String.format(
+ Messages.InstantiateDepPlan_CheckInputModelProfileNoRes,
+ uri));
+ }
+ }
+ throw new TransformationException(
+ Messages.InstantiateDepPlan_CheckInputModelProfileNoResNoName);
+ }
+ throw new TransformationException(
+ String.format(
+ Messages.InstantiateDepPlan_CheckInputModelProfile3,
+ profileName));
+ }
+
+ Resource profileResource = null;
+ try {
+ profileResource = ModelManagement.getResourceSet()
+ .getResource(profile.eResource().getURI(), true);
+ } catch (WrappedException e) {
+ // read 2nd time (some diagnostic errors are raised only
+ // once)
+ Log.log(IStatus.WARNING,
+ Log.DEPLOYMENT,
+ "Warning: exception in profile.eResource() " + e.getMessage()); //$NON-NLS-1$
+ profileResource = ModelManagement.getResourceSet()
+ .getResource(profile.eResource().getURI(), true);
+ }
+ Profile newProfileTop = (Profile) profileResource.getContents().get(0);
+ Profile newProfile;
+ String qname = profile.getQualifiedName();
+ if ((qname != null) && qname.contains("::")) { //$NON-NLS-1$
+ // profile is a sub-profile within same resource
+ // TODO: should Copy class copy profile applications?
+ // Should be handled in shallowContainer class.
+ // if we put profile/newProfile pair into copy map, copy
+ // would find (and copy profile
+ // applications in sub-folders
+ qname = qname.substring(qname.indexOf("::") + 2); //$NON-NLS-1$
+ newProfile = (Profile) Utils.getQualifiedElement(
+ newProfileTop, qname);
+ } else {
+ newProfile = newProfileTop;
+ }
+ newProfile.getMember("dummy"); // force profile loading //$NON-NLS-1$
+ newModel.applyProfile(newProfile);
+ }
+ } catch (IllegalArgumentException e) {
+ throw new TransformationException(
+ Messages.InstantiateDepPlan_IllegalArgumentDuringCopy
+ + e.toString());
+ }
+
+ // copy imports (and load resources associated - TODO: might not be
+ // necessary)
+ // While this is useful in general, it implies that code for imported
+ // models
+ // has been generated and compiled (for the right target) into a
+ // library. This may be
+ // quite tedious, unless automatically managed.
+ // Therefore we do not activate this option in a first pass of the model
+ // transformations.
+ if (copyImports) {
+ for (Package importedPackage : existingModel.getImportedPackages()) {
+ if (importedPackage == null) {
+ throw new TransformationException(
+ Messages.InstantiateDepPlan_CheckInputImportPkg);
+ }
+ if (importedPackage.eResource() == null) {
+ String errorMsg = Messages.InstantiateDepPlan_CheckInputImportPkgNoRes;
+ if (importedPackage instanceof MinimalEObjectImpl.Container) {
+ URI uri = ((MinimalEObjectImpl.Container) importedPackage)
+ .eProxyURI();
+ if (uri != null) {
+ errorMsg += " - URI: " + uri.devicePath(); //$NON-NLS-1$
+ }
+ }
+ throw new TransformationException(errorMsg);
+ }
+ newModel.createPackageImport(importedPackage);
+ monitor.subTask(String.format(
+ Messages.InstantiateDepPlan_InfoImportPackage,
+ importedPackage.getName()));
+
+ try {
+ importedPackage.eResource().load(null);
+ newModel.getMember("dummy"); // force loading of model //$NON-NLS-1$
+ } catch (IOException e) {
+ throw new TransformationException(e.getMessage());
+ }
+
+ }
+ }
+
+ StUtils.copyStereotypes(existingModel, newModel);
+
+ return mm;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/LazyCopier.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/LazyCopier.java
new file mode 100644
index 00000000000..9ce3514fce5
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/LazyCopier.java
@@ -0,0 +1,1044 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.transformations;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Stack;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.util.EcoreUtil.Copier;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.emf.ecore.xmi.XMLResource;
+import org.eclipse.papyrus.qompass.designer.core.Log;
+import org.eclipse.papyrus.qompass.designer.core.listeners.PostCopyListener;
+import org.eclipse.papyrus.qompass.designer.core.listeners.PreCopyListener;
+import org.eclipse.uml2.uml.Behavior;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Feature;
+import org.eclipse.uml2.uml.LiteralBoolean;
+import org.eclipse.uml2.uml.LiteralInteger;
+import org.eclipse.uml2.uml.LiteralNull;
+import org.eclipse.uml2.uml.LiteralString;
+import org.eclipse.uml2.uml.LiteralUnlimitedNatural;
+import org.eclipse.uml2.uml.MultiplicityElement;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Namespace;
+import org.eclipse.uml2.uml.OpaqueExpression;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PackageableElement;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Slot;
+import org.eclipse.uml2.uml.Stereotype;
+import org.eclipse.uml2.uml.ValueSpecification;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * A specific copier that enables to make iterative and shallow copies of model elements
+ * from a source to a target model. It also supports copy-listeners, i.e. listeners that
+ * might apply modifications before and after an element is copied.
+ * This class is very useful for model transformations that make a lazy copy of elements,
+ * i.e. copy only elements that are needed in the target model.
+ *
+ * Iterative means that you can copy one element after another, i.e. you do not need
+ * to copy all elements in a single call.
+ * Shallow means that some elements are incomplete copies. For instance, if you copy an
+ * attribute of a class into the target model, the copy routine will create the attribute within
+ * a shallow copy of the original class. The created class is a kind of shallow "container". It
+ * is required, since we can't create the attribute without having a class, but it would initially
+ * only contain the attribute that we copy. This class would have the same qualified name as the
+ * original, i.e. it would be created within shallow packages.
+ * A shallow copy can be transformed into a "real" copy
+ * by explicitly copying it.
+ *
+ */
+public class LazyCopier extends Copier {
+
+ public enum CopyStatus {
+ /**
+ * The status is not known, in most cases this indicates that the object has not yet been copied.
+ */
+ UNKNOWN,
+
+ /**
+ * A full copy obtained via the copy function. Full means that the contained features have been completely
+ * copied
+ */
+ FULL,
+
+ /**
+ * A full copy in progress. Intermediate state of a target element after creation within the copy function,
+ * before all attributes & references have been copied.
+ */
+ INPROGRESS,
+
+ /**
+ * A shallow copy, i.e. a copy only containing a subset of the original element. These are typically containers
+ * for copied objects and avoids that the copies are not enclosed in an object. A shallow copy may become a full
+ * copy later on.
+ */
+ SHALLOW
+ }
+
+ /**
+ *
+ * @param source
+ * source package (root)
+ * @param target
+ * target package (root)
+ * @param copyExtResources_
+ * copy elements that are not within the same resource instead of referencing them.
+ * @param copyID
+ * copyID true, if XML IDs should be copied as well.
+ */
+ public LazyCopier(Package source, Package target, boolean copyExtResources_, boolean copyID) {
+ this.source = source;
+ this.target = target;
+ // useOriginalReferences = false;
+ copyExtReferences = copyExtResources_;
+ preCopyListeners = new BasicEList<PreCopyListener>();
+ postCopyListeners = new BasicEList<PostCopyListener>();
+ templateMapInfo = new HashMap<EObject, Map<EObject, EObject>>();
+ standardMap = new HashMap<EObject, EObject>();
+ statusMap = new HashMap<EObject, CopyStatus>();
+ boundPackages = new Stack<Namespace>();
+ if (copyExtReferences) {
+ // original source package becomes a sub-package in the target model
+ Package newSourceRoot = target.createNestedPackage(source.getName());
+ put(source, newSourceRoot);
+ setStatus(newSourceRoot, CopyStatus.SHALLOW);
+ }
+ else {
+ put(source, target);
+ setStatus(target, CopyStatus.SHALLOW);
+ }
+ this.copyID = copyID;
+ if (copyID) {
+ copyID(source, target);
+ }
+ };
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -1664013545661635289L;
+
+ /**
+ * Source model within a transformation
+ */
+
+ public Package source;
+
+ /**
+ * Target model within a transformation
+ */
+ public Package target;
+
+ /**
+ * if true, copy packages or elements that are imported into the target
+ * model
+ */
+ public boolean copyExtReferences;
+
+ /**
+ * Bound package template
+ */
+ protected Namespace boundPackage;
+
+ /**
+ * Map to identify target objects when given source objects
+ */
+ protected Map<EObject, EObject> standardMap;
+
+ /**
+ * Map to identify target objects when given source objects
+ */
+ protected Map<EObject, EObject> templateMap;
+
+ /**
+ * Set of maps for template instantiations
+ */
+ protected Map<EObject, Map<EObject, EObject>> templateMapInfo;
+
+ /**
+ * Map using a target EObject as key
+ */
+ protected Map<EObject, CopyStatus> statusMap;
+
+ protected boolean copyID;
+
+ /**
+ * Elements within package templates must be treated differently, we have to ensure that:
+ * (1) several instantiations with same binding of the same package template do not lead to double copies
+ * (yet, it may be possible that a 2nd instantiation adds contents, e.g. the trace package template could be
+ * instantiated containing only OTF trace (and superclasses), a second instantiation might add a different trace
+ * implementation)
+ * (2) several instantiations with different binding do not prevent classes from being copied that have already
+ * been copied earlier.
+ * The solution is to use a different map for the elements with package template. This map is instantiated once
+ * for each binding (managed by the TemplateInstantiation class)
+ */
+ public Map<EObject, EObject> getMap(EObject sourceEObj) {
+ boolean withinTemplate = withinTemplate(sourceEObj);
+ return withinTemplate ?
+ templateMap :
+ standardMap;
+ }
+
+ @Override
+ public EObject get(Object sourceEObj) {
+ if (sourceEObj instanceof EObject) {
+ Map<EObject, EObject> map = getMap((EObject) sourceEObj);
+ return map.get(sourceEObj);
+ }
+ return null;
+ }
+
+ @Override
+ public EObject put(EObject sourceEObj, EObject targetEObj) {
+ if (sourceEObj instanceof EObject) {
+ Map<EObject, EObject> map = getMap(sourceEObj);
+ return map.put(sourceEObj, targetEObj);
+ }
+ return null;
+ }
+
+ /**
+ * Put a pair into the copy map. Unlike the standard put operation,
+ * the target object is marked as full copy.
+ * Just using the put operation lead to bug 422899 - [QDesigner] Regression in
+ * template instantiation
+ *
+ * @return
+ */
+ public EObject putPair(EObject sourceEObj, EObject targetEObj) {
+ EObject target = put(sourceEObj, targetEObj);
+ setStatus(targetEObj, CopyStatus.FULL);
+ return target;
+ }
+
+ @Override
+ public boolean containsKey(Object sourceEObj) {
+ if (sourceEObj instanceof EObject) {
+ Map<EObject, EObject> map = getMap((EObject) sourceEObj);
+ return map.containsKey(sourceEObj);
+ }
+ return false;
+ }
+
+ @Override
+ public EObject remove(Object sourceEObj) {
+ if (sourceEObj instanceof EObject) {
+ Map<EObject, EObject> map = getMap((EObject) sourceEObj);
+ return map.remove(sourceEObj);
+ }
+ return null;
+ }
+
+ /**
+ * Set the status of a copy object
+ *
+ * @param targetEObj
+ * @param status
+ */
+ public void setStatus(EObject targetEObj, CopyStatus status) {
+ statusMap.put(targetEObj, status);
+ }
+
+ /**
+ * return true, if a shallow copy of the passed EObject exists
+ *
+ * @param sourceEObj
+ * @return
+ */
+ public CopyStatus getStatus(EObject targetEObj) {
+ if (targetEObj != null) {
+ CopyStatus status = statusMap.get(targetEObj);
+ if (status != null) {
+ return status;
+ }
+ }
+ return CopyStatus.UNKNOWN;
+ }
+
+ /**
+ * Set the reference of a bound package template. It must be a member of the target model.
+ * Setting the package template is required to assure that elements that are part of a different
+ * resource get copied (if the copyExtReferences flag is set to false, copying would not be done otherwise)
+ *
+ * @param packageTemplate
+ * Reference to package (with a template signature) in source model that should be instantiated
+ * @param boundPackage
+ * Reference to (an initially empty) package in which the packate template will be instantiated
+ * during the copy process
+ */
+ public void setPackageTemplate(Namespace packageTemplate, Namespace boundPackage) {
+ this.boundPackage = boundPackage;
+ if (packageTemplate == null) {
+ return;
+ }
+ templateMap =
+ templateMapInfo.get(boundPackage);
+ if (templateMap == null) {
+ templateMap = new HashMap<EObject, EObject>();
+ templateMapInfo.put(boundPackage, templateMap);
+ }
+ // declare relation between packageTemplate and bound package
+ // but: the owner of the package template is not equal to the packageTemplate (e.g. perClass)
+ // since we can extend package templates in different models.
+ standardMap.put(packageTemplate, boundPackage);
+ }
+
+ public void pushPackageTemplate() {
+ boundPackages.push(boundPackage);
+ }
+
+ public void popPackageTemplate() {
+ boundPackage = boundPackages.pop();
+ templateMap =
+ templateMapInfo.get(boundPackage);
+ }
+
+ private Stack<Namespace> boundPackages;
+
+ /**
+ * Remove an element and its children from the map to enable subsequent copies, in particular if the
+ * same element (e.g. an operation) is bound multiple times within a template instantiation.
+ * TODO: there must be a better way to do this.
+ *
+ * @param element
+ */
+ public void removeForCopy(EObject element) {
+ templateMap.remove(element);
+ if (element instanceof Element) {
+ // also remove applied stereotypes
+ for (EObject stereoApplication : ((Element) element).getStereotypeApplications()) {
+ removeForCopy(stereoApplication);
+ }
+ }
+ EClass eClass = element.eClass();
+ for (int i = 0, size = eClass.getFeatureCount(); i < size; ++i)
+ {
+ EStructuralFeature eStructuralFeature = eClass.getEStructuralFeature(i);
+ if (eStructuralFeature.isChangeable() && !eStructuralFeature.isDerived())
+ {
+ if (eStructuralFeature instanceof EAttribute) {
+ // copyAttribute((EAttribute)eStructuralFeature, sourceEObj, targetEObj);
+ }
+ else {
+ EReference eReference = (EReference) eStructuralFeature;
+ if (eReference.isContainment()) {
+ for (EObject ref : getRefs(eReference, element)) {
+ removeForCopy(ref);
+ }
+ }
+ else if (!eReference.isContainer()) {
+ // not contained, but copy reference as well
+
+ }
+ }
+ }
+ }
+ }
+
+ @SuppressWarnings("unchecked")
+ public EList<EObject> getRefs(EReference eReference, EObject eObject) {
+ EList<EObject> refs = new BasicEList<EObject>();
+ if (eObject.eIsSet(eReference)) {
+ if (eReference.isMany()) {
+ // @SuppressWarnings("unchecked")
+ refs.addAll((List<EObject>) eObject.eGet(eReference));
+ } else {
+ refs.add((EObject) eObject.eGet(eReference));
+ }
+ }
+ return refs;
+ }
+
+ /**
+ * Check whether the passed element (within the source model) is within a
+ * a template, i.e. one of is owners is mapped towards the bound package in
+ * the target model. Note that multiple owners in the source model may be
+ * mapped to the same bound package.
+ *
+ * @param element
+ * @return
+ */
+ public boolean withinTemplate(EObject element) {
+ if (boundPackage != null) {
+ EObject owner = element;
+ if ((element.eContainer() == null) &&
+ !(element instanceof Element)) { // has no eContainer and is not a UML element => likely to be a be a stereotype application.
+ // it is important not to call getBaseElement for all eobjects, since its execution can take
+ // quite a while (in particular, if not called on a stereotype application)
+ Element base = UMLUtil.getBaseElement(owner);
+ if (base != null) {
+ owner = base; // containment check is done with base element
+ }
+ }
+ while (owner != null) {
+ owner = owner.eContainer();
+ if (get(owner) == boundPackage) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Returns a copy of the given eObject.
+ *
+ * Normally, we do not want to copy elements that are from a different
+ * resource. There are two exceptions (1) if this is explicitly specified
+ * (for producing "complete" models) (2) if we want to copy elements from a
+ * template into the target model.
+ *
+ * @param sourceEObj
+ * the object to copy.
+ * @return the copy.
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public EObject copy(EObject sourceEObj) {
+ if (sourceEObj == null) {
+ // this case may happen, if elements are systematically copied without checking for
+ // null references in the application code (e.g. if we copy a part-with-port which might
+ // be null in case of delegation or connectors without ports
+ return null;
+ }
+
+
+ EObject targetEObj = get(sourceEObj);
+
+ CopyStatus status = getStatus(targetEObj);
+
+ if (status == CopyStatus.FULL || status == CopyStatus.INPROGRESS) {
+ // copy already exists, return targetEObj
+ return targetEObj;
+ }
+
+ boolean withinTemplate = withinTemplate(sourceEObj);
+ boolean sameResource = (sourceEObj.eResource() == source.eResource());
+ if (!sameResource && !copyExtReferences && !withinTemplate) {
+ // do not copy if within different resource, unless
+ // 1. copyImports
+ // 2. within package template
+ return sourceEObj;
+ }
+
+ if (sourceEObj instanceof Stereotype) {
+ // do not copy Stereotypes, as it would imply copying meta-model elements (the base_X
+ // attribute of the stereotype is typed with a meta-model element)
+ return sourceEObj;
+ }
+
+ for (PreCopyListener listener : preCopyListeners) {
+ EObject result = listener.preCopyEObject(this, sourceEObj);
+ if (result != sourceEObj) {
+ return result;
+ }
+ }
+
+ if (sourceEObj instanceof NamedElement) {
+ String name = ((NamedElement) sourceEObj).getQualifiedName();
+ if ((name != null) && name.startsWith("uml::")) { //$NON-NLS-1$
+ Log.log(IStatus.ERROR, Log.TRAFO_COPY, "copy for meta-model element \"" + name + //$NON-NLS-1$
+ "\" requested. Return original element"); //$NON-NLS-1$
+ return sourceEObj;
+ }
+ }
+ // additional sanity check: want to avoid copying (instead of instantiating) elements
+ // of a package template
+ if ((sourceEObj instanceof Package) && (!withinTemplate)) {
+ if (((Package) sourceEObj).getOwnedTemplateSignature() != null) {
+ Log.log(IStatus.WARNING, Log.TRAFO_COPY, "warning: copying a package template without instantiating a template"); //$NON-NLS-1$
+ }
+ }
+
+ if (status == CopyStatus.SHALLOW) {
+ // copy exists, but was a shallow copy, change status to INPROGRESS
+ setStatus(targetEObj, CopyStatus.INPROGRESS);
+ }
+ else {
+ targetEObj = createCopy(sourceEObj);
+ put(sourceEObj, targetEObj);
+ setStatus(targetEObj, CopyStatus.INPROGRESS);
+ if (copyID) {
+ copyID(sourceEObj, targetEObj);
+ }
+ // creates a shallow copy of the container. This container will update containment references (such as packagedElement)
+ // and thus update links
+ createShallowContainer(sourceEObj);
+ }
+ EClass eClass = sourceEObj.eClass();
+ for (int i = 0, size = eClass.getFeatureCount(); i < size; ++i)
+ {
+ EStructuralFeature eStructuralFeature = eClass.getEStructuralFeature(i);
+ if (eStructuralFeature.isChangeable() && !eStructuralFeature.isDerived())
+ {
+ if (eStructuralFeature instanceof EAttribute) {
+ copyAttribute((EAttribute) eStructuralFeature, sourceEObj, targetEObj);
+ }
+ else {
+ EReference eReference = (EReference) eStructuralFeature;
+ if (eReference.isContainment()) {
+ copyContainment(eReference, sourceEObj, targetEObj);
+ }
+ // some containment relationships require copying the container completely
+ // e.g. if an owned template signature is referenced, we need to follow the "template"
+ // reference, which subsets the "owner" relationship.
+ // e.g. if an operation is referenced, we need to copy the whole interface
+ // Currently: only the standard owning reference is not copied recursively.
+
+ else if (!eReference.getName().equals("owner") && //$NON-NLS-1$
+ (!eReference.getName().equals("owningInstance"))) { //$NON-NLS-1$
+ Object feature = sourceEObj.eGet(eStructuralFeature);
+ if (feature instanceof Element) {
+ copy((Element) feature);
+ } else if (feature instanceof EList) {
+ copyAll((EList<Object>) feature);
+ }
+ copyReference(eReference, sourceEObj, targetEObj);
+ }
+ }
+ }
+ else if ((eStructuralFeature instanceof EReference)) {
+ if (eStructuralFeature.getName().equals("clientDependency")) { //$NON-NLS-1$
+ Object feature = sourceEObj.eGet(eStructuralFeature);
+
+ if (feature instanceof Element) {
+ copy((Element) feature);
+ } else if (feature instanceof EList) {
+ copyAll((EList<Object>) feature);
+ }
+ }
+ }
+ }
+ copyProxyURI(sourceEObj, targetEObj);
+ copyID(sourceEObj, targetEObj);
+ copyStereotypes(sourceEObj);
+ setStatus(targetEObj, CopyStatus.FULL);
+
+ for (PostCopyListener listener : postCopyListeners) {
+ listener.postCopyEObject(this, targetEObj);
+ }
+
+ return targetEObj;
+ }
+
+ /**
+ * @param sourceEObj
+ * @return a copy, if it already exists. If it does not exist, return the
+ * source object itself, if no copy is required, otherwise return null.
+ */
+ public EObject noCopy(EObject sourceEObj) {
+ boolean withinTemplate = withinTemplate(sourceEObj);
+ boolean sameResource = (sourceEObj.eResource() == source.eResource());
+ if (!sameResource && !copyExtReferences && !withinTemplate) {
+ return sourceEObj;
+ }
+ else {
+ return get(sourceEObj);
+ }
+ }
+
+ /**
+ * Copy stereotype applications. Since stereotype applications are not part of the containment of an eObject, they are not copied by the
+ * generic function.
+ * A problem of copying stereotypes is that it may drag whole hierarchies with it, for instance if we copy the base_ attributes,
+ * we transform a shallow copy into a normal copy.
+ * => always make shallow copies of packages, never shallow copies of classes? [the split into fragments is solved, but the split of the system component???]
+ */
+ public void copyStereotypes(EObject sourceEObj, boolean duringShallow) {
+ if (sourceEObj instanceof Element) {
+
+ for (EObject stereoApplication : ((Element) sourceEObj).getStereotypeApplications()) {
+ EObject copiedStereoApplication = (duringShallow) ?
+ shallowCopy(stereoApplication) :
+ copy(stereoApplication);
+
+ if (copiedStereoApplication != null) {
+ // UMLUtil.setBaseElement(copiedStereoApplication, (Element) get(sourceEObj));
+ // add copied stereotype application to the resource (as top-level objects).
+ if (!target.eResource().getContents().contains(copiedStereoApplication)) {
+ target.eResource().getContents().add(copiedStereoApplication);
+ }
+ }
+ }
+ }
+ }
+
+ public void copyStereotypes(EObject sourceEObj) {
+ copyStereotypes(sourceEObj, false);
+ }
+
+ public void shallowCopyStereotypes(EObject sourceEObj) {
+ copyStereotypes(sourceEObj, true);
+ }
+
+ /**
+ * Copy the containment of an element with respect to a certain reference
+ *
+ * @see org.eclipse.emf.ecore.util.EcoreUtil.Copier#copyContainment(org.eclipse.emf.ecore.EReference, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EObject)
+ * Differences to referenced function in ECoreUtil
+ * - If an element in copyAll is null, it is not added
+ * - List elements are always cleared before copying, since the list elements may already have been
+ * partially filled by a previous shallow copy
+ *
+ * @param eReference
+ * a reference, such as for instance packagedElement (the
+ * caller needs to check, is this reference is a containment reference).
+ * @param eObject
+ * the source eObject
+ * @param copyEObject
+ * the copy of this eObject
+ */
+ @Override
+ protected void copyContainment(EReference eReference, EObject eObject, EObject copyEObject) {
+ if (eObject.eIsSet(eReference)) {
+ if (eReference.isMany()) {
+ @SuppressWarnings("unchecked")
+ List<EObject> source = (List<EObject>) eObject.eGet(eReference);
+ @SuppressWarnings("unchecked")
+ List<EObject> target = (List<EObject>) copyEObject.eGet(getTarget(eReference));
+ // do not clear (would remove elements that are added by copy listeners)
+ // But: better enforce exact copy? (listeners could only add in a post-copy step)
+ // target.clear();
+ if (!source.isEmpty()) {
+ for (EObject copyEObj : copyAll(source)) {
+ if (copyEObj != null) {
+ target.add(copyEObj);
+ }
+ }
+ }
+ } else {
+ EObject childEObject = (EObject) eObject.eGet(eReference);
+ copyEObject.eSet(getTarget(eReference), childEObject == null ? null : copy(childEObject));
+ }
+ }
+ }
+
+ /**
+ * Copy the containment in a "shallow" way, i.e. copy references to contained objects, if these exist already.
+ * If called for instance for a package, it will add those elements to the packagedElements list of the
+ * target package, that have already been copied.
+ *
+ * @param eReference
+ * @param eObject
+ * @param copyEObject
+ */
+ protected void shallowCopyContainment(EReference eReference, EObject eObject, EObject copyEObject) {
+ if (eObject.eIsSet(eReference)) {
+ if (eReference.isMany()) {
+ @SuppressWarnings("unchecked")
+ List<EObject> source = (List<EObject>) eObject.eGet(eReference);
+ @SuppressWarnings("unchecked")
+ List<EObject> target = (List<EObject>) copyEObject.eGet(getTarget(eReference));
+ if (source.isEmpty()) {
+ target.clear();
+ } else {
+ for (EObject sourceEObj : source) {
+ // if eObject has already been copied, add it to target
+ // don't add, if copyEObj is identical to sourceEObj. This would imply manipulating an
+ // element of the source model.
+ EObject copyEObj = noCopy(sourceEObj);
+ if ((copyEObj != null) && (copyEObj != sourceEObj) && (!target.contains(copyEObj))) {
+ try {
+ target.add(copyEObj);
+ }
+ catch (Exception e) {
+ System.err.println(e);
+ }
+ }
+ }
+ }
+ } else {
+ EObject childEObject = (EObject) eObject.eGet(eReference);
+ // get will return null, if object should not be copied. In this case, we do not want to replace
+ copyEObject.eSet(getTarget(eReference), childEObject == null ? null : noCopy(childEObject));
+ }
+ }
+ }
+
+ /**
+ * Create a "shallow" container for an object, i.e. create (recursively) the owner without
+ * adding all other children of this owner (e.g. in case of a package, the package itself will
+ * be created, but not all elements within that package).
+ *
+ * @param sourceEObj
+ */
+ public void createShallowContainer(EObject sourceEObj) {
+ EObject owner = sourceEObj.eContainer();
+ EObject copy = null;
+ EObject lastSource = null;
+ EList<EObject> copyStereoList = new BasicEList<EObject>();
+ while (owner != null) {
+ if (containsKey(owner)) {
+ // owner is in map, still need to re-copy (update) the containment
+ // references, since one of the children did not exist before
+ //
+ shallowCopy(owner);
+ if (lastSource != null) {
+ // StUtils.copyStereotypes(this, (Element)lastSource, (Element)copy);
+ }
+ return;
+ // break;
+ }
+ copy = shallowCopy(owner);
+ // copyStereoList.add(sourceEObj);
+ owner = owner.eContainer();
+ }
+ // copy the stereotypes after the container has been created completely
+ for (EObject copyStereo : copyStereoList) {
+ copyStereotypes(copyStereo);
+ }
+ if (copy instanceof PackageableElement) {
+ // if we copy external resources, we might reach the "top" on the source level
+ // which becomes a sub-package of the new model.
+ target.getPackagedElements().add((PackageableElement) copy);
+ }
+ }
+
+ /**
+ * Make a shallow copy of an element, i.e. only create the element itself and not
+ * all of its contents. If a subset of the containing elements already exist in the copied
+ * model, update the containment references pointing to these. The function may be called
+ * multiple times in order to add elements to the containment references that
+ * have been copied since the previous call (i.e. it is possible to make a shallow copy
+ * of a package after a single class within it has been copied. It may be called again,
+ * once a second class within the package has been copied => the packagedElements reference
+ * of the package will be updated).
+ *
+ * It is important that the implementation of this object does not make recursive calls.
+ * In particular, stereotypes are based on shallow copy as well. This means that stereotype
+ * attributes that reference other model elements will only be initialized if these elements
+ * exist already.
+ *
+ * @param sourceEObj
+ * @return
+ */
+ public EObject shallowCopy(EObject sourceEObj) {
+ boolean first = false;
+ EObject targetEObj = get(sourceEObj);
+ if (targetEObj == null) {
+ targetEObj = createCopy(sourceEObj);
+ put(sourceEObj, targetEObj);
+ setStatus(targetEObj, CopyStatus.SHALLOW);
+ if (copyID) {
+ copyID(sourceEObj, targetEObj);
+ }
+ first = true;
+ }
+ else if (getStatus(targetEObj) == CopyStatus.FULL) {
+ // object has already been completely copied. Nothing to do, return targetEObj.
+ // Note that this implies that the update of references below is called for full copies
+ // in progress and shallow copies. The former assures that all copied elements have an
+ // eContainer during the call of pre-copy listeners (example: if a class is copied, its
+ // operations are recursively copied, the ownedOperation relationship is only updated
+ // *afterwards* by the code within the (full) copy operation).
+ return targetEObj;
+ }
+
+ shallowCopyStereotypes(sourceEObj);
+
+ EClass eClass = sourceEObj.eClass();
+
+ for (int i = 0, size = eClass.getFeatureCount(); i < size; ++i) {
+ EStructuralFeature eStructuralFeature = eClass.getEStructuralFeature(i);
+ if (eStructuralFeature.isChangeable() && !eStructuralFeature.isDerived()) {
+ if (eStructuralFeature instanceof EAttribute) {
+ // copy all attributes during first pass after creation of target object
+ if (first) {
+ copyAttribute((EAttribute) eStructuralFeature, sourceEObj, targetEObj);
+ }
+ } else {
+ EReference eReference = (EReference) eStructuralFeature;
+ // create a shallow copy of the containment: update only references already in the copy map
+ if (sourceEObj != targetEObj) {
+ shallowCopyContainment(eReference, sourceEObj, targetEObj);
+ }
+ }
+ }
+ }
+ return targetEObj;
+ }
+
+ @SuppressWarnings("unchecked")
+ public <T extends Element> T getCopy(T source) {
+ return (T) copy(source);
+ }
+
+ public EList<PreCopyListener> preCopyListeners;
+
+ public EList<PostCopyListener> postCopyListeners;
+
+ /**
+ * Called to handle the copying of a cross reference;
+ * this adds values or sets a single value as appropriate for the multiplicity
+ * while omitting any bidirectional reference that isn't in the copy map.
+ *
+ * @param eReference
+ * the reference to copy.
+ * @param eObject
+ * the object from which to copy.
+ * @param copyEObject
+ * the object to copy to.
+ */
+ @Override
+ protected void copyReference(EReference eReference, EObject eObject, EObject copyEObject)
+ {
+ if (eObject.eIsSet(eReference)) {
+ if (eReference.isMany()) {
+ @SuppressWarnings("unchecked")
+ InternalEList<EObject> source = (InternalEList<EObject>) eObject.eGet(eReference);
+ @SuppressWarnings("unchecked")
+ InternalEList<EObject> target = (InternalEList<EObject>) copyEObject.eGet(getTarget(eReference));
+ if (source.isEmpty()) {
+ target.clear();
+ }
+ else {
+ boolean isBidirectional = eReference.getEOpposite() != null;
+ int index = 0;
+ for (Iterator<EObject> k = resolveProxies ? source.iterator() : source.basicIterator(); k.hasNext();) {
+ EObject referencedEObject = k.next();
+ EObject copyReferencedEObject = get(referencedEObject);
+ // check filters (modification compared to method in superclass)
+ boolean noCopy = false;
+ for (PreCopyListener listener : preCopyListeners) {
+ EObject result = listener.preCopyEObject(this, referencedEObject);
+ if (result != referencedEObject) {
+ copyReferencedEObject = result;
+ noCopy = (result == null);
+ break;
+ }
+ }
+ if (noCopy) {
+ continue;
+ }
+ if (copyReferencedEObject == null) {
+ if (useOriginalReferences && !isBidirectional) {
+ target.addUnique(index, referencedEObject);
+ ++index;
+ }
+ }
+ else {
+ if (isBidirectional) {
+ int position = target.indexOf(copyReferencedEObject);
+ if (position == -1) {
+ target.addUnique(index, copyReferencedEObject);
+ }
+ else if (index != position) {
+ target.move(index, copyReferencedEObject);
+ }
+ }
+ else if (!target.contains(copyReferencedEObject)) {
+ // TODO: does not allow multiple identical elements in the list. Problematic?
+ // Check above is necessary, since some references that are not
+ // part of the containment may have already been copied (e.g. in case of
+ // a TemplateSignature "ownedParameter" subsets "parameter", thus copying
+ // ownedParameter as part of the containment adds a template parameter)
+ target.addUnique(index, copyReferencedEObject);
+ }
+ ++index;
+ }
+ }
+ }
+ }
+ else {
+ Object referencedEObject = eObject.eGet(eReference, resolveProxies);
+ if (referencedEObject == null) {
+ copyEObject.eSet(getTarget(eReference), null);
+ }
+ else if (referencedEObject instanceof EObject) {
+ // difference to original code in EcoreUtil: we obtain a copy (which might be null or the
+ // source object) of the referenced EObject. This assures that we only set a value of a
+ // reference to something we actually want to have in the target model.
+ // Specific problematic case in original code: classifierBehavior is a reference, but assigning such
+ // a behavior will also add an owned behavior. If we assign a referencedEObject (a behavior) from the
+ // source model in the target, we will actually remove it from the source model (as it is uniquely owned).
+ EObject copyReferencedEObject = copy((EObject) referencedEObject);
+ if (copyReferencedEObject != null) {
+ copyEObject.eSet(getTarget(eReference), copyReferencedEObject);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Copy all methods from the passed source-model class.
+ * This function is useful, if the passed class only exist
+ * as a shallow copy.
+ *
+ * @param source
+ * A class within the source model
+ */
+ public void copyMethods(Class source) {
+ for (Behavior method : source.getOwnedBehaviors()) {
+ getCopy(method);
+ }
+ }
+
+ /**
+ * Copy all attributes from the source-model classifier
+ * This function is useful, if the passed class only exist
+ * as a shallow copy.
+ *
+ * @param source
+ * A classifier within the source model
+ */
+ public void copyAttributes(Classifier source) {
+ for (Property attribute : source.getAttributes()) {
+ getCopy(attribute);
+ }
+ }
+
+ /**
+ * copy all operations from the source-model classifier.
+ * This function is useful, if the passed class only exist
+ * as a shallow copy.
+ *
+ * @param source
+ * A classifier within the source model
+ */
+ public void copyOperations(Classifier source) {
+ for (Operation operation : source.getOperations()) {
+ getCopy(operation);
+ }
+ }
+
+ // TODO: the functions that follow are static and should not be part of this class
+ // as they use a different way of copying things.
+
+
+ public static void copyFeatureModifiers(Feature source, Feature target) {
+ target.setIsStatic(source.isStatic());
+ target.setIsLeaf(source.isLeaf());
+ }
+
+ public static void copyMultElemModifiers(MultiplicityElement source, MultiplicityElement target) {
+ target.setIsOrdered(source.isOrdered());
+ target.setIsUnique(source.isUnique());
+ target.setLower(source.getLower());
+ target.setUpper(source.getUpper());
+ }
+
+ /**
+ * Copy a value to a target slot
+ *
+ * @param smValue
+ * @param target
+ * @return
+ */
+ public static ValueSpecification copyValue(ValueSpecification value, Slot target) {
+ ValueSpecification newValue = target.createValue(value.getName(), value.getType(), value.eClass());
+ return copyValue(value, newValue);
+ }
+
+ public static ValueSpecification copyDefaultValue(Property source, Property target) {
+ ValueSpecification value = source.getDefaultValue();
+ if (value != null) {
+ ValueSpecification newValue = target.createDefaultValue(value.getName(), value.getType(), value.eClass());
+ return copyValue(value, newValue);
+ } else {
+ return null;
+ }
+ }
+
+ public static ValueSpecification copyValue(ValueSpecification smValue, ValueSpecification tmValue) {
+ if (smValue instanceof OpaqueExpression) {
+ OpaqueExpression oeValue = (OpaqueExpression) smValue;
+ OpaqueExpression noeValue = (OpaqueExpression) tmValue;
+ for (String language : oeValue.getLanguages()) {
+ noeValue.getLanguages().add(language);
+ }
+ for (String body : oeValue.getBodies()) {
+ noeValue.getBodies().add(body);
+ }
+ } else if (smValue instanceof LiteralString) {
+ ((LiteralString) tmValue).setValue(((LiteralString) smValue).getValue());
+ } else if (smValue instanceof LiteralInteger) {
+ ((LiteralInteger) tmValue).setValue(((LiteralInteger) smValue).getValue());
+ } else if (smValue instanceof LiteralUnlimitedNatural) {
+ ((LiteralUnlimitedNatural) tmValue).setValue(((LiteralUnlimitedNatural) smValue).getValue());
+ } else if (smValue instanceof LiteralBoolean) {
+ ((LiteralBoolean) tmValue).setValue(((LiteralBoolean) smValue).booleanValue());
+ } else if (smValue instanceof LiteralNull) {
+ }
+ return tmValue;
+ }
+
+ /**
+ * Copy the (XML) ID from the source to the destination model element. This
+ * is useful, if you want to create a diagram for (parts of) the generated
+ * target model. Otherwise, the IDs would change with each generation and
+ * references from the diagram to model elements would break (of course,
+ * they could still break, for instance if structural modifications of the
+ * source model are made).
+ *
+ * @param source
+ * source model element
+ * @param dest
+ * corresponding target model element
+ */
+ public static void copyID(EObject source, EObject target) {
+ copyID(source, target, ""); //$NON-NLS-1$
+ }
+
+ /**
+ * Copy the (XML) ID from the source to the destination model element.
+ * Prefix the ID with a string passed as parameter
+ *
+ * @param source
+ * source model element
+ * @param dest
+ * corresponding target model element
+ * @param prefix
+ * a prefix for the target model ID
+ */
+ @SuppressWarnings("deprecation")
+ public static void copyID(EObject source, EObject target, String prefix) {
+ Resource resourceSource = source.eResource();
+ Resource resourceTarget = target.eResource();
+ // TODO: use EcoreUtil getURI (InternalEObject) instead?
+
+ if ((resourceSource instanceof XMLResource) && (resourceTarget instanceof XMLResource)) {
+ XMLResource xmlResSource = (XMLResource) resourceSource;
+ XMLResource xmlResTarget = (XMLResource) resourceTarget;
+ String id = prefix + xmlResSource.getID(source);
+ int counter = 0;
+ String uniqueID = id;
+ while (xmlResTarget.getIDToEObjectMap().containsKey(uniqueID)) {
+ uniqueID = id + counter;
+ counter++;
+ }
+ xmlResTarget.setID(target, uniqueID);
+ }
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/MainModelTrafo.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/MainModelTrafo.java
new file mode 100644
index 00000000000..f89e9dd930d
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/MainModelTrafo.java
@@ -0,0 +1,479 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.transformations;
+
+/**
+ * This file is part of Qompass GenTools
+ * Copyright (C) 2008 CEA LIST (http://www-list.cea.fr/)
+
+ * initial developer : Christophe JOUVRAY from CEA LIST
+ * Major contributions: Ansgar Radermacher from CEA LIST
+ */
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.papyrus.FCM.ContainerRule;
+import org.eclipse.papyrus.FCM.ContainerRuleKind;
+import org.eclipse.papyrus.FCM.DeploymentPlan;
+import org.eclipse.papyrus.FCM.InteractionComponent;
+import org.eclipse.papyrus.FCM.util.FCMUtil;
+import org.eclipse.papyrus.qompass.designer.core.Log;
+import org.eclipse.papyrus.qompass.designer.core.Messages;
+import org.eclipse.papyrus.qompass.designer.core.PortUtils;
+import org.eclipse.papyrus.qompass.designer.core.StUtils;
+import org.eclipse.papyrus.qompass.designer.core.UMLTool;
+import org.eclipse.papyrus.qompass.designer.core.deployment.AllocUtils;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepCreation;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepPlanUtils;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepUtils;
+import org.eclipse.papyrus.qompass.designer.core.templates.TemplateInstantiation;
+import org.eclipse.papyrus.qompass.designer.core.transformations.connector.ConnectorReification;
+import org.eclipse.papyrus.qompass.designer.core.transformations.container.ContainerTrafo;
+import org.eclipse.papyrus.qompass.designer.core.transformations.container.LWContainerTrafo;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Connector;
+import org.eclipse.uml2.uml.EncapsulatedClassifier;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.InstanceValue;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Slot;
+import org.eclipse.uml2.uml.StructuralFeature;
+import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.ValueSpecification;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * This class executes the main model transformation. It traverses the
+ * instances of a deployment plan in a recursive way and executes
+ * connector reification and container expansion.
+ */
+public class MainModelTrafo {
+
+
+ public static final String HW_COMP_PREFIX = "Hwc"; //$NON-NLS-1$
+
+ /**
+ * Create a new instance of main-model-transformation
+ *
+ * @param copy
+ * Copier
+ * @param tmCDP
+ * deployment plan in target model
+ */
+ public MainModelTrafo(LazyCopier copy, Package tmCDP) {
+ nodeHandled = new HashMap<InstanceSpecification, Boolean>();
+ this.copy = copy;
+ this.tmCDP = tmCDP;
+ }
+
+ /**
+ * Return an instance specification that corresponds to a part. This
+ * function is useful in the connector context, since it allows to retrieve
+ * the instance specification that is reference by a connection end-point
+ * (which points to the part).
+ *
+ * @param system
+ * the instance specification for the assembly
+ * @param part
+ * the part within a class
+ * @return The instance specification for the passed part
+ */
+ public static InstanceSpecification getInstanceForPart(
+ InstanceSpecification system, Property part) {
+ for (Slot slot : system.getSlots()) {
+ if (slot.getDefiningFeature() == part) {
+ for (ValueSpecification value : slot.getValues()) {
+ // instances are accessible via ValueSpecification subclass
+ // InstanceValue
+ if (value instanceof InstanceValue) {
+ return (((InstanceValue) value).getInstance());
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Find a port that would match a connection
+ *
+ * @param connectorType
+ * a connector type, i.e. a component with ports
+ * @param the
+ * port on the other side of the connection
+ * @return the first port (of all ports owned or inherited by the type) that
+ * is compatible with the passed otherPort.
+ */
+ public static Port getConnectorPort(EncapsulatedClassifier connectorType,
+ Port otherPort, boolean isAssembly) {
+ EList<Port> ports = PortUtils.getAllPorts(connectorType);
+ // try to find match via kind
+ for (Port port : ports) {
+ if (PortUtils.matches(port, otherPort, isAssembly)) {
+ return port;
+ }
+ }
+ // no match found, try weaker condition: find 1st match for provided ...
+ boolean otherEndProvides = PortUtils.getProvided(otherPort) != null;
+ for (Port port : ports) {
+ Interface intf;
+ // if isAssembly: take "opposite" port
+ if (otherEndProvides != isAssembly) {
+ intf = PortUtils.getProvided(port);
+ } else {
+ intf = PortUtils.getRequired(port);
+ }
+ if (intf != null) {
+ return port;
+ }
+ }
+ return null;
+ }
+
+
+ /**
+ * This method performs a model transformation that replaces an Qompass
+ * connector by a property and a set of simple connectors. The type of the
+ * newly added connector must be instantiated from its template definition
+ * in order to adapt the connector to its context. This is done in a
+ * recursive manner on a compositeInstance. The result is a (composite)
+ * class which has the added connector. The function will also trigger
+ * container expansion, if necessary. Please note that we use the naming
+ * convention to prefix elements of the source model (wrt. to the
+ * transformation) with sm and elements of the target model with tm.
+ *
+ * @param smIS
+ * source model instance specification
+ * @param smDF
+ * source model defining feature (null for top-level instance).
+ * @param inheritedRules
+ * container rules inherited from containing composite
+ * @return new instance specification in traget model
+ *
+ * @throws TransformationException
+ */
+ public InstanceSpecification transformInstance(
+ InstanceSpecification smIS, StructuralFeature smDF) throws TransformationException {
+ Class smComponent = null;
+ Classifier smCl = DepUtils.getClassifier(smIS);
+ if (smCl instanceof Class) {
+ smComponent = (Class) smCl;
+ } else {
+ // should not happen
+ return null;
+ }
+
+ String instName = smIS.getName();
+ // first check, if instance specification exists already. This may be the case for explicitly modeled singleton instances.
+ InstanceSpecification tmIS = (InstanceSpecification)
+ tmCDP.getPackagedElement(instName);
+ if (tmIS == null) {
+ tmIS = (InstanceSpecification)
+ tmCDP.createPackagedElement(instName, UMLPackage.eINSTANCE.getInstanceSpecification());
+ }
+ if (smDF == null) {
+ // no defining feature => must be main instance
+ // => apply deployment plan stereotype and set main instance
+ DeploymentPlan newCDP = StereotypeUtil.applyApp(tmCDP, DeploymentPlan.class);
+ newCDP.setMainInstance(tmIS);
+ }
+
+ Class tmComponent = copy.getCopy(smComponent);
+ if (tmComponent == null) {
+ return null;
+ }
+ tmIS.getClassifiers().add(tmComponent);
+
+ // retrieve the component type object from the static profile (in order
+ // to process rules)
+ EList<ContainerRule> rules = FCMUtil.getAllContainerRules(smComponent);
+
+ // get container trafo instance, if already existing
+ AbstractContainerTrafo containerTrafo = AbstractContainerTrafo.get(tmComponent);
+
+ // general idea: an instance of class ContainerTafo is responsible for a specific component.
+ // the method createContainerInstance must be called for each instance of the application component
+ // (caveat: don't mix-up with instance of Java classes of the development tool)
+ // TODO: since we support multiple container kinds, we need to keep their container map separate!
+ InstanceSpecification containerIS = null;
+ if (containerTrafo == null) {
+ // no container exists, check rules and create eventually
+ for (ContainerRule rule : rules) {
+ if (RuleManagement.isRuleActive(rule)) {
+ // at least one active rule => create container (or get previously instantiated))
+ if (containerTrafo == null) {
+ if (rule.getKind() == ContainerRuleKind.LIGHT_WEIGHT_OO_RULE) {
+ containerTrafo = new LWContainerTrafo(copy, tmCDP);
+ }
+ else {
+ containerTrafo = new ContainerTrafo(copy, tmCDP, tmIS);
+ }
+ containerTrafo.createContainer(smComponent, tmComponent);
+ }
+ else {
+ // configure only??
+ }
+ containerTrafo.applyRule(rule, smComponent, tmComponent);
+ }
+ }
+ if (containerTrafo != null) {
+ containerTrafo.finalize();
+ }
+ }
+ if (containerTrafo != null) {
+ // create instance of container. This is done after rule application, since
+ // elements that are added by the rules need to be instantiated as well.
+ // TODO: Cannot mix both rules.
+ containerIS = containerTrafo.createContainerInstance(tmComponent, tmIS);
+ }
+ // ------------------- end of container handling of SW nodes
+
+ // copy node allocation
+ for (InstanceSpecification smNode : AllocUtils.getNodes(smIS)) {
+ InstanceSpecification tmNode = copy.getCopy(smNode);
+ if (containerIS != null) {
+ // allocate container instead of executor.
+ AllocUtils.allocate(containerIS, tmNode);
+ }
+ else {
+ AllocUtils.allocate(tmIS, tmNode);
+ }
+
+ if (!nodeHandled.containsKey(tmNode)) {
+ // check if node (on an instance level) has already been treated. This is required, since many
+ // instances might be allocated to the same node.
+ nodeHandled.put(tmNode, true);
+
+ // check, whether a container rule is applied on the tmNode
+ Classifier tmCS = DepUtils.getClassifier(tmNode);
+ if (tmCS instanceof Class) {
+ // ---------------------------
+ EList<ContainerRule> hwRules = FCMUtil.getAllContainerRules(tmCS);
+
+ if (hwRules.size() > 0) {
+
+ ContainerTrafo nodeContainerTrafo = (ContainerTrafo) AbstractContainerTrafo.get((Class) tmCS);
+
+ // issues
+ // - unlike SW component container, don't update references pointing towards the HW node
+ // - create additional part in system (top-level) component for the node container
+ // - container (_cc class) appears in platform component (same package as HW node)
+ // - port copying and creation of delegation connectors does not make much sense, creation of
+ // executor itself does not make much sense, additional operation "createHwContainer"
+
+ // obtain property related to node instance
+ Package smCDP = smIS.getNearestPackage();
+ DeploymentPlan smFCM_CDP = UMLUtil.getStereotypeApplication(smCDP, DeploymentPlan.class);
+
+ if (nodeContainerTrafo == null) {
+ // container does not exist, check rules and create eventually
+ for (ContainerRule rule : hwRules) {
+ if (RuleManagement.isRuleActive(rule)) {
+ if (nodeContainerTrafo == null) {
+ // at least one active rule => create container (or get previously instantiated))
+ nodeContainerTrafo = new ContainerTrafo(copy, tmCDP, tmIS);
+ nodeContainerTrafo.createHwContainer((Class) tmCS);
+ nodeContainerTrafo.applyRule(rule, smComponent, tmComponent);
+ }
+ }
+ }
+ }
+ if (nodeContainerTrafo != null) {
+ InstanceSpecification hwContainerIS =
+ nodeContainerTrafo.createHwContainerInstance(tmComponent, tmNode);
+ // now add attribute in system (obtain via classifier of main instance in smCDP)
+ if (smFCM_CDP != null) {
+ InstanceSpecification smMI = smFCM_CDP.getMainInstance();
+ Classifier smSystem = DepUtils.getClassifier(smMI);
+ Classifier tmSystem = copy.getCopy(smSystem);
+ InstanceSpecification tmMI = DepUtils.getInstanceForClassifier(tmCDP, tmSystem);
+ if (tmSystem instanceof Class) {
+ Property hwcPart =
+ ((Class) tmSystem).createOwnedAttribute(smNode.getName() + HW_COMP_PREFIX, nodeContainerTrafo.getContainer());
+ // and now create a slot for the created instance.
+ DepPlanUtils.createSlot(tmCDP, tmMI, hwContainerIS, hwcPart);
+ }
+
+ // now allocate instance
+ AllocUtils.allocate(hwContainerIS, tmNode);
+ }
+ }
+ }
+ }
+ }
+ } // ------------------- end of container handling of HW nodes
+
+
+ // reread instName (may have been changed by container transformation).
+ instName = tmIS.getName();
+
+ // copy parts, i.e. referenced slots
+ // loop on instances (instead of parts), since reification needs to be
+ // based on used implementations.
+ for (Slot slot : smIS.getSlots()) {
+ if (slot.getDefiningFeature() == null) {
+ throw new TransformationException(
+ String.format(Messages.MainModelTrafo_NoDefiningFeature, smIS.getName()));
+ }
+ StructuralFeature smPartDF = slot.getDefiningFeature();
+ if (StereotypeUtil.isApplied(smPartDF.getType(), InteractionComponent.class)) {
+ if (smPartDF instanceof Property) {
+ Property tmPart = ConnectorReification.reifyConnector(copy, tmComponent, (Property) smPartDF, tmIS);
+ // update value specification (to the one just created)
+ Type type = tmPart.getType();
+ InstanceSpecification tmPartIS = EcoreUtil.copy(DepUtils.getInstance(slot));
+ tmCDP.getPackagedElements().add(tmPartIS);
+ if (type instanceof Classifier) {
+ if (tmPartIS.getClassifiers().size() > 0) {
+ tmPartIS.getClassifiers().set(0, (Classifier) type);
+ }
+ }
+ DepCreation.createSlot(tmIS, tmPartIS, tmPart);
+ }
+ }
+ else if (smPartDF.getType() instanceof Class) {
+
+ InstanceSpecification smPartIS = DepUtils.getInstance(slot);
+ if (smPartIS == null) {
+ throw new TransformationException(
+ String.format(Messages.MainModelTrafo_NoInstanceAssociated, smPartDF.getName()));
+ }
+
+ // recursive reification
+ // returned instance specification in target model is an instance specification for the part
+ // or for a container for that part.
+ InstanceSpecification tmPartIS = transformInstance(smPartIS, smPartDF);
+ // AllocUtils.propagateNodesViaPort (tmPartIS, null, AllocUtils.getNodes(containedInstance));
+
+ // retrieve part in the target model (it has been created during
+ // the copyClassifier operation before)
+ // TODO: avoid cast (use StructuralFeature instead)
+ Property tmPart = (Property) copy.getCopy(smPartDF);
+
+ // check whether the instance specification has been modified
+ // (due to a container transformation)
+ // modification would not be required, if
+ if ((tmPartIS != null) && (DepUtils.getClassifier(tmPartIS) != tmPart.getType())) {
+ Log.log(IStatus.INFO, Log.TRAFO_CONNECTOR, String.format(Messages.MainModelTrafo_ChangePartType, tmPart.getName()));
+ tmPart.setType(DepUtils.getClassifier(tmPartIS));
+ }
+ DepCreation.createSlot(tmIS, tmPartIS, tmPart);
+ } else {
+ // assume primitive type, copy slot values
+ // don't use "copy" to avoid duplicate entries (since not all instance specification created
+ // before are correctly inserted into the map of "copy").
+ Slot tmSlot = EcoreUtil.copy(slot);
+ tmSlot.setDefiningFeature(copy.getCopy(slot.getDefiningFeature()));
+ tmIS.getSlots().add(tmSlot);
+ }
+
+ }
+
+ // NamedElement socket = Utils.getQualifiedElement(smComponent.getModel(), "SocketRuntime::Socket");
+ // NamedElement socketCopy = copy.getCopy(socket);
+
+ // loop on connectors
+ // TODO: check, if true (no instance specification exists for these - unlike a connector which is explicitly specified via a part)
+ // TODO: quite inefficient (and likely wrong), if same composite is instantiated several times (re-reification of connectors)
+ for (Connector smConnector : smComponent.getOwnedConnectors()) {
+ if (StUtils.isConnector(smConnector)) {
+ org.eclipse.papyrus.FCM.Connector fcmConn = StUtils.getConnector(smConnector);
+ if (fcmConn != null) {
+ // found an Qompass connector, connector type is specified.
+ // => Reify the connector within the target component, i.e. create a new part and
+ // additional connections for it.
+ Property connectorPart = ConnectorReification.reifyConnector(copy, tmComponent,
+ UMLTool.varName(smConnector), smConnector, tmIS);
+
+ if (connectorPart == null) {
+ continue;
+ }
+
+ // remove simple connector from composite in target model
+ Connector tmConnector = copy.getCopy(smConnector);
+ tmConnector.destroy();
+
+ // Now create an instance specification for the reified connector
+ InstanceSpecification tmReifiedConnectorIS = DepCreation.createDepPlan(
+ tmCDP, (Class) connectorPart.getType(),
+ instName + "." + smConnector.getName(), false); //$NON-NLS-1$
+
+ // copy slots from the source deployment plan that are related to connector configuration
+ InstanceSpecification smConnectorIS = DepUtils.getNamedSubInstance(smIS, smConnector.getName());
+ if (smConnectorIS != null) {
+ // use putPair instead of put only - see bug 426748, avoid that classifier attribute points
+ // to two classifiers (bound and unbound)
+ copy.putPair(smConnectorIS, tmReifiedConnectorIS);
+ // problem: the defining feature of the slot points to the original connector which we don't
+ // want to copy (would have to be done in context of template binding)
+ TemplateInstantiation ti = new TemplateInstantiation(copy, ConnectorReification.binding);
+ for (Slot smSlot : smConnectorIS.getSlots()) {
+ ti.bindElement(smSlot);
+ }
+ }
+
+ Slot partSlot =
+ DepCreation.createSlot(tmIS, tmReifiedConnectorIS, connectorPart);
+
+ ConnectorReification.propagateNodeAllocation(tmComponent, tmIS, partSlot);
+ }
+ }
+ }
+ /*
+ * for(Property part : smComponent.getOwnedAttributes()) {
+ * Type type = part.getType();
+ * if(type != null) {
+ * if(StereotypeUtil.isApplied(type, InteractionComponent.class)) {
+ * ConnectorReification.reifyConnector(copy, tmComponent, part, tmIS, null);
+ * }
+ * }
+ * }
+ */
+
+ // needs to be called independently
+ // propagateNodeAllocation (cdp, compositeInstance);
+ AllocTransfo at = new AllocTransfo();
+ at.transformAllocs(copy, tmComponent);
+
+ if (containerIS != null) {
+ // return containerIS
+ return containerIS;
+ } else {
+ return tmIS;
+ }
+ }
+
+ protected Map<InstanceSpecification, Boolean> nodeHandled;
+
+ /**
+ * Copier from source to target model
+ */
+ protected LazyCopier copy;
+
+ /**
+ * deployment plan within target model
+ */
+ protected Package tmCDP;
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/PrefixConstants.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/PrefixConstants.java
new file mode 100644
index 00000000000..8cab7ddf4cf
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/PrefixConstants.java
@@ -0,0 +1,57 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.transformations;
+
+/**
+ * A set of constants used for the CIF. In particular prefixes for the operations
+ * to access the implementation of a provided interface and connect a required interface
+ *
+ */
+public class PrefixConstants {
+
+ public static String getP_Prefix = "get_"; //$NON-NLS-1$
+
+ public static String getConnQ_Prefix = ""; //$NON-NLS-1$
+
+ public static String connectQ_Prefix = "connect_"; //$NON-NLS-1$
+
+ public static String attributePrefix = ""; //$NON-NLS-1$
+
+ enum CIFvariant {
+ UML, CCM
+ };
+
+ /**
+ * Initialize a specific CIF variant
+ *
+ * TODO currently unused
+ *
+ * @param cif
+ * Which CIF variant should used?
+ */
+ void init(CIFvariant cif) {
+ if (cif == CIFvariant.UML) {
+ getP_Prefix = "get_"; //$NON-NLS-1$
+ getConnQ_Prefix = ""; //$NON-NLS-1$
+ connectQ_Prefix = "connect_"; //$NON-NLS-1$
+ attributePrefix = ""; //$NON-NLS-1$
+ } else if (cif == CIFvariant.CCM) {
+ getP_Prefix = "get_"; //$NON-NLS-1$
+ getConnQ_Prefix = "getconnection_"; //$NON-NLS-1$
+ connectQ_Prefix = "connect_"; //$NON-NLS-1$
+ attributePrefix = "m_"; //$NON-NLS-1$
+ }
+ }
+};
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/RuleManagement.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/RuleManagement.java
new file mode 100644
index 00000000000..2692e06cb5a
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/RuleManagement.java
@@ -0,0 +1,32 @@
+package org.eclipse.papyrus.qompass.designer.core.transformations;
+
+import org.eclipse.papyrus.FCM.ConfigOption;
+import org.eclipse.papyrus.FCM.Configuration;
+import org.eclipse.papyrus.FCM.ContainerRule;
+
+public class RuleManagement {
+ private static Configuration m_config;
+
+ public static void setConfiguration(Configuration config) {
+ m_config = config;
+ }
+
+ /**
+ * check whether a rule is active in a given configuration
+ *
+ * @param aRule
+ * @return
+ */
+ public static boolean isRuleActive(ContainerRule rule) {
+ if (m_config != null) {
+ for (ConfigOption option : m_config.getConfigOptions()) {
+ if (rule.getForConfig().contains(option)) {
+ return true;
+ }
+ }
+ }
+ // not already true via specific configuration.
+ // => Also turn on rules by default that are not for a specific configuration option
+ return (rule.getForConfig().size() == 0);
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/TrafoAndCodegenPackage.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/TrafoAndCodegenPackage.java
new file mode 100644
index 00000000000..9b68a2474e6
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/TrafoAndCodegenPackage.java
@@ -0,0 +1,351 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.transformations;
+
+import java.io.IOException;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.common.util.WrappedException;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.papyrus.FCM.ContainerRule;
+import org.eclipse.papyrus.FCM.ContainerRuleKind;
+import org.eclipse.papyrus.FCM.util.FCMUtil;
+import org.eclipse.papyrus.codegen.extensionpoints.ILangCodegen;
+import org.eclipse.papyrus.codegen.extensionpoints.ILangProjectSupport;
+import org.eclipse.papyrus.codegen.extensionpoints.LanguageCodegen;
+import org.eclipse.papyrus.codegen.extensionpoints.LanguageProjectSupport;
+import org.eclipse.papyrus.qompass.designer.core.EnumService;
+import org.eclipse.papyrus.qompass.designer.core.Log;
+import org.eclipse.papyrus.qompass.designer.core.Messages;
+import org.eclipse.papyrus.qompass.designer.core.ModelManagement;
+import org.eclipse.papyrus.qompass.designer.core.StUtils;
+import org.eclipse.papyrus.qompass.designer.core.Utils;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepUtils;
+import org.eclipse.papyrus.qompass.designer.core.generate.GenerateCode;
+import org.eclipse.papyrus.qompass.designer.core.transformations.container.LWContainerTrafo;
+import org.eclipse.papyrus.qompass.designer.core.transformations.filters.FilterTemplate;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Model;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PackageableElement;
+import org.eclipse.uml2.uml.Profile;
+
+/**
+ * This class executes all transformations during the instantiation of a
+ * deployment plan, i.e.
+ * 1. The reification of connectors (including template instantiation). This transformation targets a new model
+ * 2. Adding get_p/connect_q operations to a class (transformation within same model)
+ * 3. Remove all component types
+ * 4. distribute to nodes
+ *
+ * @author ansgar
+ *
+ */
+public class TrafoAndCodegenPackage {
+
+ /**
+ * Iterate over source model and apply transformation
+ *
+ * @param copy
+ * @param pkg
+ * @throws TransformationException
+ */
+ public static void applyTrafo(LazyCopier copy, Package pkg) throws TransformationException {
+ EList<PackageableElement> peList = new BasicEList<PackageableElement>();
+ peList.addAll(pkg.getPackagedElements());
+ for (PackageableElement element : peList) {
+ if (element instanceof Package) {
+ applyTrafo(copy, (Package) element);
+ }
+ else if (element instanceof Class) {
+
+ Class smImplementation = (Class) element;
+ Class tmImplementation = copy.getCopy(smImplementation);
+
+ // get container trafo instance, if already existing
+ AbstractContainerTrafo containerTrafo = AbstractContainerTrafo.get(tmImplementation);
+
+ // we may not apply the transformation to the boot-loader itself, in particular it would transform
+ // singletons into pointers.
+ EList<ContainerRule> rules = FCMUtil.getAllContainerRules(smImplementation);
+ for (ContainerRule rule : rules) {
+ // if(RuleManagement.isRuleActive(rule)) {
+ // at least one active rule => create container (or get previously instantiated))
+ if (rule.getKind() == ContainerRuleKind.LIGHT_WEIGHT_OO_RULE) {
+ if (containerTrafo == null) {
+ // container does not exist yet, create
+ containerTrafo = new LWContainerTrafo(copy, null);
+ containerTrafo.createContainer(smImplementation, tmImplementation);
+ }
+ containerTrafo.applyRule(rule, smImplementation, tmImplementation);
+ }
+ }
+ // }
+ }
+ }
+ }
+
+ /**
+ * Instantiate a deployment plan, i.e. generate an intermediate model via a sequence of transformations
+ *
+ * @param cdpOrConfig
+ * a deployment plan (UML package) or a configuration (UML class)
+ * @param monitor
+ * a progress monitor.
+ *
+ * @param project
+ * the current project. This information is used to store the intermediate model in
+ * a subfolder (tmpModel) of the current project
+ * @param genOptions
+ * select whether to produce an intermediate model only, also code, ... @see GenerationOptions
+ */
+ public static void instantiate(Element cdpOrConfig, IProgressMonitor monitor, IProject project) {
+ if (project == null) {
+ String projectName = cdpOrConfig.eResource().getURI().toString();
+ project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
+ }
+ Model tmpModel = null;
+ ModelManagement tmpMM = null;
+
+ Package selectedPkg;
+ if (cdpOrConfig instanceof Package) {
+ selectedPkg = (Package) cdpOrConfig;
+ RuleManagement.setConfiguration(null);
+ }
+ else {
+ return;
+ }
+
+ try {
+ EnumService.init();
+ // Package copyCDP = dt.getCopyCDT (selectedCDP);
+
+ // -- calc # of steps for progress monitor
+ // 1 (tmpModel creation) + 1 (reification) + 1 (tmpModel save)
+ // 5x on each deployed node (see below)
+ // problem? Connector reification is a single, relatively long step
+ int steps = 3;
+
+ monitor.beginTask(Messages.InstantiateDepPlan_InfoGeneratingModel, steps);
+ if (monitor.isCanceled()) {
+ return;
+ }
+
+ // 1a: create a new model (and applies same profiles / imports)
+ Model existingModel = selectedPkg.getModel();
+ TransformationContext.sourceRoot = existingModel;
+ tmpMM = createTargetModel(existingModel, monitor, existingModel.getName(), true);
+ tmpModel = tmpMM.getModel();
+ // Declare that the new model is a derivedElement (kind of hack, since the source
+ // element (attribute of derive element) remains undefined). This is used to
+ // de-activate automatic transformations that should not be applied to the generated
+ // model.
+ monitor.worked(1);
+ if (monitor.isCanceled()) {
+ return;
+ }
+
+ // LateEval.clear();
+
+ EnumService.createEnumPackage(tmpModel);
+
+ LazyCopier tmpCopy = new LazyCopier(existingModel, tmpModel, false, true);
+ tmpCopy.preCopyListeners.add(FilterTemplate.getInstance());
+
+ // 1b: reify the connectors "into" the new model
+ monitor.subTask(Messages.InstantiateDepPlan_InfoExpandingConnectors);
+
+ // obtain reference to CDP in target model
+
+ AbstractContainerTrafo.init();
+ monitor.worked(1);
+
+ // create recursive copy of selectedPackage
+ tmpCopy.getCopy(selectedPkg);
+
+ // apply container transformation
+ applyTrafo(tmpCopy, selectedPkg);
+
+ // 1c: late bindings
+ // LateEval.bindLateOperations();
+ // 3: distribute to nodes
+
+ String tmpPath = tmpMM.getPath(project, InstantiateDepPlan.TEMP_MODEL_FOLDER, tmpModel.getName() + InstantiateDepPlan.TEMP_MODEL_POSTFIX);
+ tmpMM.saveModel(tmpPath);
+
+ String targetLanguage = DepUtils.getLanguageFromPackage(selectedPkg);
+ if (targetLanguage == null) {
+ targetLanguage = "C++"; //$NON-NLS-1$
+ }
+ // genProject = project
+ ModelManagement genMM = tmpMM;
+ IProject genProject = project;
+ ILangProjectSupport projectSupport = LanguageProjectSupport.getProjectSupport(targetLanguage);
+ ILangCodegen codegen = LanguageCodegen.getGenerator(targetLanguage);
+
+ GenerateCode codeGen = new GenerateCode(genProject, codegen, genMM, monitor);
+ codeGen.generate(null, targetLanguage, false);
+
+ genMM.dispose();
+
+ if (monitor.isCanceled()) {
+ return;
+ }
+ monitor.worked(1);
+
+ } catch (TransformationException te) {
+ // Get UI thread to show dialog
+ final TransformationException teFinal = te;
+ Display.getDefault().syncExec(new Runnable() {
+
+ @Override
+ public void run() {
+ Shell shell = Display.getDefault().getActiveShell();
+ MessageDialog.openError(shell, Messages.InstantiateDepPlan_TransformationException, teFinal.getMessage());
+ }
+ });
+ Log.log(IStatus.ERROR, Log.DEPLOYMENT, "", teFinal); //$NON-NLS-1$
+ } catch (Exception e) {
+ final Exception eFinal = e;
+ e.printStackTrace();
+ Display.getDefault().syncExec(new Runnable() {
+
+ @Override
+ public void run() {
+ Shell shell = Display.getDefault().getActiveShell();
+ String msg = eFinal.toString() + "\n\n" + //$NON-NLS-1$
+ Messages.InstantiateDepPlan_ConsultConsole;
+ MessageDialog.openError(shell, Messages.InstantiateDepPlan_ErrorsDuringTransformation, msg);
+ }
+ });
+ Log.log(IStatus.ERROR, Log.DEPLOYMENT, "", e); //$NON-NLS-1$
+ }
+ if (tmpMM != null) {
+ tmpMM.dispose();
+ }
+ }
+
+
+ /**
+ * Create a new empty model from an existing model that applies the same
+ * profiles and has the same imports
+ *
+ * @param existingModel
+ * @return
+ */
+ public static ModelManagement createTargetModel(Model existingModel, IProgressMonitor monitor, String name, boolean copyImports) throws TransformationException {
+ ModelManagement mm = new ModelManagement();
+ Model newModel = mm.getModel();
+ newModel.setName(name);
+
+ try {
+ // copy profile application
+ for (Profile profile : existingModel.getAppliedProfiles()) {
+ // reload profile in resource of new model
+ monitor.subTask(Messages.InstantiateDepPlan_InfoApplyProfile + profile.getQualifiedName());
+
+ if (profile.eResource() == null) {
+ String profileName = profile.getQualifiedName();
+ if (profileName == null) {
+ if (profile instanceof MinimalEObjectImpl.Container) {
+ URI uri = ((MinimalEObjectImpl.Container) profile).eProxyURI();
+ if (uri != null) {
+ throw new TransformationException(String.format(Messages.InstantiateDepPlan_CheckInputModelProfileNoRes, uri));
+ }
+ }
+ throw new TransformationException(Messages.InstantiateDepPlan_CheckInputModelProfileNoResNoName);
+ }
+ throw new TransformationException(String.format(Messages.InstantiateDepPlan_CheckInputModelProfile3, profileName));
+ }
+
+ Resource profileResource = null;
+ try {
+ profileResource = ModelManagement.getResourceSet().getResource(profile.eResource().getURI(), true);
+ } catch (WrappedException e) {
+ // read 2nd time (some diagnostic errors are raised only once)
+ Log.log(IStatus.WARNING, Log.DEPLOYMENT, "Warning: exception in profile.eResource() " + e.getMessage()); //$NON-NLS-1$
+ profileResource = ModelManagement.getResourceSet().getResource(profile.eResource().getURI(), true);
+ }
+ Profile newProfileTop = (Profile) profileResource.getContents().get(0);
+ Profile newProfile;
+ String qname = profile.getQualifiedName();
+ if ((qname != null) && qname.contains("::")) { //$NON-NLS-1$
+ // profile is a sub-profile within same resource
+ // TODO: should Copy class copy profile applications?
+ // Should be handled in shallowContainer class.
+ // if we put profile/newProfile pair into copy map, copy would find (and copy profile
+ // applications in sub-folders
+ qname = qname.substring(qname.indexOf("::") + 2); //$NON-NLS-1$
+ newProfile = (Profile) Utils.getQualifiedElement(newProfileTop, qname);
+ }
+ else {
+ newProfile = newProfileTop;
+ }
+ newProfile.getMember("dummy"); // force profile loading //$NON-NLS-1$
+ newModel.applyProfile(newProfile);
+ }
+ } catch (IllegalArgumentException e) {
+ throw new TransformationException(Messages.InstantiateDepPlan_IllegalArgumentDuringCopy + e.toString());
+ }
+
+ // copy imports (and load resources associated - TODO: might not be necessary)
+ // While this is useful in general, it implies that code for imported models
+ // has been generated and compiled (for the right target) into a library. This may be
+ // quite tedious, unless automatically managed.
+ // Therefore we do not activate this option in a first pass of the model transformations.
+ if (copyImports) {
+ for (Package importedPackage : existingModel.getImportedPackages()) {
+ if (importedPackage == null) {
+ throw new TransformationException(Messages.InstantiateDepPlan_CheckInputImportPkg);
+ }
+ if (importedPackage.eResource() == null) {
+ String errorMsg = Messages.InstantiateDepPlan_CheckInputImportPkgNoRes;
+ if (importedPackage instanceof MinimalEObjectImpl.Container) {
+ URI uri = ((MinimalEObjectImpl.Container) importedPackage).eProxyURI();
+ if (uri != null) {
+ errorMsg += " - URI: " + uri.devicePath(); //$NON-NLS-1$
+ }
+ }
+ throw new TransformationException(errorMsg);
+ }
+ newModel.createPackageImport(importedPackage);
+ monitor.subTask(String.format(Messages.InstantiateDepPlan_InfoImportPackage, importedPackage.getName()));
+
+ try {
+ importedPackage.eResource().load(null);
+ newModel.getMember("dummy"); // force loading of model //$NON-NLS-1$
+ } catch (IOException e) {
+ throw new TransformationException(e.getMessage());
+ }
+
+ }
+ }
+
+ StUtils.copyStereotypes(existingModel, newModel);
+
+ return mm;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/TransformationContext.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/TransformationContext.java
new file mode 100644
index 00000000000..81f1b2a6bea
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/TransformationContext.java
@@ -0,0 +1,106 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.transformations;
+
+import org.eclipse.papyrus.qompass.designer.core.templates.TemplateInstantiation;
+import org.eclipse.papyrus.qompass.designer.core.templates.TemplateUtils;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.TemplateBinding;
+
+/**
+ * Return information about the current values in the context of a transformation
+ * e.g. the current instance, the current port (container transformation), ...
+ *
+ * TODO: clean separation ContainerContext? (e.g. port should only be in the latter)
+ *
+ * @author ansgar
+ *
+ */
+public class TransformationContext {
+
+ public static InstanceSpecification instance;
+
+ public static InstanceSpecification getInstance() {
+ return instance;
+ }
+
+ public static Port port;
+
+ public static Port getPort() {
+ return port;
+ }
+
+ public static Package sourceRoot;
+
+ public static Package getSourceRoot() {
+ return sourceRoot;
+ }
+
+ public static LazyCopier copier;
+
+ public static LazyCopier getCopier() {
+ return copier;
+ };
+
+ public static Classifier formalParameter;
+
+ public static Classifier getFormalParameter() {
+ return formalParameter;
+ }
+
+ // the element, to which transformations are currently applied.
+ public static Classifier classifier;
+
+ public static Classifier getClassifier() {
+ return classifier;
+ }
+
+ /**
+ * Set sat and binding context for pkgTemplateParameter function
+ *
+ * @param sat
+ * @param binding
+ */
+ public static void setTemplateInstantiation(TemplateInstantiation ti) {
+ TransformationContext.ti = ti;
+ }
+
+ public static TemplateInstantiation ti;
+
+ /**
+ * Return actual (in the current binding context) from a named package template parameter
+ * Used during template instantiation: code can access actual template parameter via formal
+ *
+ * @param formal
+ * the name of the formal parameter
+ * @return the actual
+ */
+ public static String pkgTemplateParameter(String formal) {
+ Classifier actual = TemplateUtils.getActualFromBinding(ti.binding, formal);
+ if (actual != null) {
+ return actual.getQualifiedName();
+ }
+ else {
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ public static TemplateBinding getBinding() {
+ return ti.binding;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/TransformationException.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/TransformationException.java
new file mode 100644
index 00000000000..b0331d9e98a
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/TransformationException.java
@@ -0,0 +1,28 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.transformations;
+
+/**
+ * Main exception class that is used to represent errors during model transformations
+ */
+public class TransformationException extends Exception {
+
+ public TransformationException(String reason) {
+ super(reason);
+ }
+
+ // String m_reason;
+ final static long serialVersionUID = 1234;
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/TransformationRTException.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/TransformationRTException.java
new file mode 100644
index 00000000000..776cd6b3239
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/TransformationRTException.java
@@ -0,0 +1,33 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.transformations;
+
+/**
+ * Variant of the transformation exception that extends RuntimeException. This
+ * is sometimes useful, since it avoids to declare exceptions specifically
+ *
+ */
+public class TransformationRTException extends RuntimeException {
+
+ public TransformationRTException(String reason) {
+ super(reason);
+ }
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1235L;
+
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/TransformationUtil.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/TransformationUtil.java
new file mode 100644
index 00000000000..d696183686e
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/TransformationUtil.java
@@ -0,0 +1,81 @@
+package org.eclipse.papyrus.qompass.designer.core.transformations;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.UniqueEList;
+import org.eclipse.papyrus.qompass.designer.core.Log;
+import org.eclipse.papyrus.qompass.designer.core.deployment.AllocUtils;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepUtils;
+import org.eclipse.papyrus.qompass.designer.core.extensions.InstanceConfigurator;
+import org.eclipse.papyrus.qompass.designer.core.sync.CompImplSync;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Slot;
+
+public class TransformationUtil {
+ public static void applyInstanceConfigurators(InstanceSpecification instance) {
+ for (Slot slot : instance.getSlots()) {
+ InstanceSpecification subInstance = DepUtils.getInstance(slot);
+ if (!DepUtils.isShared(slot) && (subInstance != null)) {
+ if (slot.getDefiningFeature() instanceof Property) {
+ InstanceConfigurator.configureInstance(subInstance, (Property) slot.getDefiningFeature(), instance);
+ }
+ applyInstanceConfigurators(subInstance);
+ }
+ }
+ }
+
+ public static void propagateAllocation(InstanceSpecification instance) {
+ propagateAllocation(instance, new UniqueEList<InstanceSpecification>());
+ }
+
+ public static void propagateAllocation(InstanceSpecification instance, EList<InstanceSpecification> nodes) {
+ // create copy of node (otherwise, more and more nodes get aggregated.
+ UniqueEList<InstanceSpecification> nodesCopy = new UniqueEList<InstanceSpecification>();
+ nodesCopy.addAll(nodes);
+ nodesCopy.addAll(AllocUtils.getNodes(instance));
+ for (Slot slot : instance.getSlots()) {
+ InstanceSpecification subInstance = DepUtils.getInstance(slot);
+ if (subInstance != null) {
+ if (DepUtils.isShared(slot)) {
+ for (InstanceSpecification node : nodesCopy) {
+ Log.log(IStatus.INFO, Log.DEPLOYMENT, String.format("Propagate node allocation: %s to %s", subInstance.getName(), node.getName())); //$NON-NLS-1$
+ AllocUtils.allocate(subInstance, node);
+ }
+ }
+ else {
+ propagateAllocation(subInstance, nodesCopy);
+ }
+ }
+ }
+ }
+
+ /**
+ * Update derived interfaces of ports. This is required, since the Copier does not follow references
+ * that are referenced via a derived attribute. Derived attributes are used for provided and required
+ * interfaces in the stereotype attributes of an FCM port. Thus, required (derived) interfaces would be
+ * unavailable in the copy, if not explicitly updated.
+ * However, the provided interface is not concerned as it appears in an "implements" relation. If the
+ * port is connected, the used interface of one port is the provided interface of the port counter part.
+ * Thus, the explicit update done by this function is not needed in most cases.
+ *
+ * see also FixTemplateSync (remove the latter?)
+ */
+ public static void updateDerivedInterfaces(InstanceSpecification instance) {
+ Classifier cl = DepUtils.getClassifier(instance);
+ if (cl instanceof Class) {
+ Class implementation = (Class) cl;
+ CompImplSync.updatePorts(implementation);
+ CompImplSync.syncRealizations(implementation);
+ }
+ for (Slot slot : instance.getSlots()) {
+ InstanceSpecification subInstance = DepUtils.getInstance(slot);
+ if (!DepUtils.isShared(slot) && (subInstance != null)) {
+ updateDerivedInterfaces(subInstance);
+ }
+ }
+ }
+
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/UpdateUtils.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/UpdateUtils.java
new file mode 100644
index 00000000000..cdf8175be25
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/UpdateUtils.java
@@ -0,0 +1,84 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.transformations;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.FCM.DerivedElement;
+import org.eclipse.papyrus.qompass.designer.core.Messages;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * Utility functions for the update derived elements, e.g. operations of a component
+ * that depend on the operations of an interface that is offered by the component.
+ */
+public class UpdateUtils {
+
+ public static EList<Element> getDerivedElements(Package pkg, NamedElement source) {
+ EList<Element> list = new BasicEList<Element>();
+ Iterator<NamedElement> members = pkg.getOwnedMembers().iterator();
+ while (members.hasNext()) {
+ NamedElement member = members.next();
+ if (getSource(member) == source) {
+ list.add(member);
+ }
+ if (member instanceof Package) {
+ EList<Element> subList = getDerivedElements((Package) member, source);
+ list.addAll(subList);
+ }
+ }
+ return list;
+ }
+
+ public static Element getDerivedElement(EList<? extends Element> list, Element source) {
+ Iterator<? extends Element> elements = list.iterator();
+ while (elements.hasNext()) {
+ Element element = elements.next();
+ if (StereotypeUtil.isApplied(element, DerivedElement.class)) {
+ DerivedElement de = UMLUtil.getStereotypeApplication(element, DerivedElement.class);
+ if ((de != null) && (de.getSource() == source)) {
+ return element;
+ }
+ }
+ }
+ return null;
+ }
+
+ public static void setSource(Element derivedElement, Element source) {
+ DerivedElement de = StereotypeUtil.applyApp(derivedElement, DerivedElement.class);
+ if (de != null) {
+ de.setSource(source);
+ }
+ else {
+ throw new TransformationRTException(Messages.UpdateUtils_CannotApplyFCMstereo);
+ }
+ }
+
+ public static Element getSource(Element element) {
+ if (StereotypeUtil.isApplied(element, DerivedElement.class)) {
+ DerivedElement de = UMLUtil.getStereotypeApplication(element, DerivedElement.class);
+ if (de != null) {
+ return de.getSource();
+ }
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/connector/ConnectorReification.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/connector/ConnectorReification.java
new file mode 100644
index 00000000000..14511d3627f
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/connector/ConnectorReification.java
@@ -0,0 +1,400 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.transformations.connector;
+
+/**
+ * This file is part of Qompass GenTools
+ * Copyright (C) 2008 CEA LIST (http://www-list.cea.fr/)
+
+ * initial developer : Christophe JOUVRAY from CEA LIST
+ * Major contributions: Ansgar Radermacher from CEA LIST
+ */
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.FCM.InteractionComponent;
+import org.eclipse.papyrus.infra.core.Activator;
+import org.eclipse.papyrus.qompass.designer.core.Log;
+import org.eclipse.papyrus.qompass.designer.core.Messages;
+import org.eclipse.papyrus.qompass.designer.core.PortUtils;
+import org.eclipse.papyrus.qompass.designer.core.deployment.AllocUtils;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepUtils;
+import org.eclipse.papyrus.qompass.designer.core.templates.ConnectorBinding;
+import org.eclipse.papyrus.qompass.designer.core.templates.TemplateInstantiation;
+import org.eclipse.papyrus.qompass.designer.core.templates.TemplateUtils;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
+import org.eclipse.papyrus.uml.tools.utils.ConnectorUtil;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.ConnectableElement;
+import org.eclipse.uml2.uml.Connector;
+import org.eclipse.uml2.uml.ConnectorEnd;
+import org.eclipse.uml2.uml.EncapsulatedClassifier;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Slot;
+import org.eclipse.uml2.uml.TemplateBinding;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * This class enables the reification of connectors, i.e. the replacement of
+ * a UML connector with an interaction component. Reification is primarily
+ * done on the level of a composite class, the
+ */
+public class ConnectorReification {
+
+ /**
+ * Find a port that would match a connection
+ *
+ * @param connectorType
+ * a connector type, i.e. a component with ports
+ * @param the
+ * port on the other side of the connection
+ * @return the first port (of all ports owned or inherited by the type) that
+ * is compatible with the passed otherPort.
+ */
+ public static Port getConnectorPort(EncapsulatedClassifier connectorType,
+ Port otherPort, boolean isAssembly) {
+ EList<Port> ports = PortUtils.getAllPorts(connectorType);
+ // try to find matching port
+ for (Port port : ports) {
+ if (PortUtils.isCompatible(port, otherPort, isAssembly)) {
+ return port;
+ }
+ }
+ throw new RuntimeException(String.format(Messages.ConnectorReification_CannotFindMatchingPort,
+ connectorType.getName(), otherPort.getQualifiedName()));
+ }
+
+ /**
+ * Reify a connector already represented in form of a part (useful for n-ary connectors)
+ *
+ * @param copier
+ * a lazy copier
+ * @param tmComponent
+ * containing composite in target target model
+ * @param smConnectorPart
+ * Part representing the connector
+ * @param tmIS
+ * target instance specification of the composite passed as 2nd parameter
+ * (required for obtaining node allocation and choosing the right implementation.
+ * Main use: decide whether a distributed implementation of an interaction component needs to be used)
+ * @return The created part within tmComponent that represents the reified
+ * connector
+ * @throws TransformationException
+ */
+ public static Property reifyConnector(LazyCopier copier, Class tmComponent,
+ Property smConnectorPart, InstanceSpecification tmIS)
+ throws TransformationException {
+
+ if (!(smConnectorPart.getType() instanceof Class)) {
+ // can not happen since caller checks whether type is stereotyped as ConnectorComp
+ // which extends class
+ Log.log(IStatus.ERROR, Log.TRAFO_CONNECTOR, Messages.ConnectorReification_TemplateTypeNotClass);
+ return null;
+ }
+ // choose an implementation
+ Class connectorImplemTemplate = DepUtils.chooseImplementation(
+ (Class) smConnectorPart.getType(), AllocUtils.getAllNodes(tmIS), null);
+
+ TemplateBinding binding = ConnectorBinding.obtainBinding(tmComponent,
+ smConnectorPart, connectorImplemTemplate, true);
+ Class connectorImplem;
+
+ if (binding != null) {
+ TemplateUtils.adaptActualsToTargetModel(copier, binding);
+ TemplateInstantiation ti = new TemplateInstantiation(copier, binding);
+ connectorImplem = ti.bindElement(connectorImplemTemplate);
+ } else {
+ // no binding, class is not a template => copy as it is
+ connectorImplem = copier.getCopy(connectorImplemTemplate);
+ }
+ Property tmConnectorPart = copier.getCopy(smConnectorPart);
+ tmConnectorPart.setType(connectorImplem);
+ // now re-target connectors towards this part
+ TemplateUtils.retargetConnectors(tmComponent, tmConnectorPart);
+ return tmConnectorPart;
+ }
+
+ /**
+ * Reify a connector
+ *
+ * @param copier
+ * The coper from source to target mode
+ * @param tmComponent
+ * containing composite in target target
+ * @param name
+ * name of the connector
+ * @param smConnector
+ * connector element within the source model
+ * @param tmIS
+ * target instance specification of the composite passed as 2nd parameter
+ * (required for obtaining node allocation and choosing the right implementation.
+ * Main use: decide whether a distributed implementation of an interaction component needs to be used)
+ * @return the created part within tmComponent
+ * @throws TransformationException
+ */
+ public static Property reifyConnector(LazyCopier copier, Class tmComponent,
+ String name, Connector smConnector, InstanceSpecification tmIS)
+ throws TransformationException {
+
+ org.eclipse.papyrus.FCM.Connector fcmConn = UMLUtil.getStereotypeApplication(smConnector, org.eclipse.papyrus.FCM.Connector.class);
+
+ InteractionComponent connType = fcmConn.getIc();
+ if (connType == null) {
+ return null;
+ }
+
+ // choose an implementation
+ Class connectorImplemTemplate = DepUtils.chooseImplementation(connType.getBase_Class(), AllocUtils.getAllNodes(tmIS), null);
+
+ // ---- obtain binding & instantiate template type ...
+ binding = ConnectorBinding.obtainBinding(tmComponent,
+ smConnector, connectorImplemTemplate, true);
+ Class connectorImplem;
+
+ if (binding != null) {
+ TemplateUtils.adaptActualsToTargetModel(copier, binding);
+ // make copy of bound package and restore it later. Required for nested template instantiations, in particular
+ // the bound package is set within container transformations and is (by default) restored to "null" afterwards.
+ // TODO: TemplateInstantiation should do this automatically
+ copier.pushPackageTemplate();
+ TemplateInstantiation ti = new TemplateInstantiation(copier, binding);
+ connectorImplem = ti.bindElement(connectorImplemTemplate);
+ copier.popPackageTemplate();
+ } else {
+ // no binding, class is not a template => copy as it is
+ connectorImplem = copier.getCopy(connectorImplemTemplate);
+ }
+
+ if (connectorImplem == null) {
+ throw new TransformationException(
+ String.format(Messages.ConnectorReification_CouldNotBind, connectorImplemTemplate.getName()));
+ }
+
+ Property tmConnectorPart = tmComponent.createOwnedAttribute(name, connectorImplemTemplate);
+ // copy id, but prefix it with "p" (for part)
+ LazyCopier.copyID(smConnector, tmConnectorPart, "p"); //$NON-NLS-1$
+ tmConnectorPart.setIsComposite(true);
+
+ Log.log(IStatus.INFO, Log.TRAFO_CONNECTOR,
+ String.format(Messages.ConnectorReification_InfoAddConnectorPart,
+ connectorImplemTemplate.getName(), connectorImplem.getName()));
+
+ // now create (simple) connections towards the new part
+ int i = 0;
+ for (ConnectorEnd smEnd : smConnector.getEnds()) {
+ Connector tmConnector = tmComponent.createOwnedConnector("c " //$NON-NLS-1$
+ + name + " " + String.valueOf(i)); //$NON-NLS-1$
+ LazyCopier.copyID(smConnector, tmConnector);
+ i++;
+ // the new connector connects the existing end with an end of the
+ // reified connector (the newly created property.)
+
+ // --- first end, connected with the existing end (of another non-connector part)
+ ConnectorEnd tmEnd1 = tmConnector.createEnd();
+ Property smPartWithPort = smEnd.getPartWithPort();
+ Property tmPartWithPort = copier.getCopy(smPartWithPort);
+ ConnectableElement smRole = smEnd.getRole();
+ ConnectableElement tmRole = copier.getCopy(smRole);
+ tmEnd1.setPartWithPort(tmPartWithPort);
+ tmEnd1.setRole(tmRole);
+
+ // --- 2nd end, connected with the reified connector (new part)
+ ConnectorEnd tmEnd2 = tmConnector.createEnd();
+ tmEnd2.setPartWithPort(tmConnectorPart);
+ // inheritance between connector type and implementation (ports should be identical)
+ // TODO: check whether filter condition is unique? (first returned by getConnectorPort is "good" one)
+ if (tmRole instanceof Port) {
+ tmEnd2.setRole(getConnectorPort(connectorImplem, (Port) tmRole, (tmPartWithPort != null)));
+ } else {
+ throw new TransformationException(
+ Messages.ConnectorReification_RequiresUseOfPorts);
+ }
+ }
+
+ tmConnectorPart.setType(connectorImplem);
+ // updatePorts(tmComponent, connectorPart, connectorImplem);
+ // connectContainerPorts(tmComponent, connectorPart);
+
+ return tmConnectorPart;
+ }
+
+ public static TemplateBinding binding;
+
+ /**
+ * Simple helper function
+ *
+ * @param part
+ * @param connection
+ * @return the connector end that is associated with the "other" end of a
+ * connection, i.e. the end that is not connected with the part
+ * passed as parameter.
+ */
+ public static ConnectorEnd oppositeConnEnd(Connector connection,
+ ConnectorEnd myEnd) {
+ // look for the other end (connectedEnd != myEnd)
+ for (ConnectorEnd end : connection.getEnds()) {
+ if (end != myEnd) {
+ return end;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Components can contain additional ports that are inherited via the
+ * container extension. These ports should typically be connected with
+ * additional ports of the (reified) connector. This connection is based on
+ * equal port types and is done automatically by this function, i.e. it
+ * cannot be done by the developer.
+ *
+ * @param composite
+ * the composite in which a connector has been reified.
+ * @param reifiedConnector
+ * the part associated with the reifiedConnector
+ */
+ static void connectContainerPorts(Class composite, Property reifiedConnector) {
+ // This function is based on the assumption that the additional ports of the reified
+ // connector need to be connected with a port of a component that is already
+ // connected via the "normal" connectors (explicitly modeled by the user).
+ // For instance, in case of ACCORD-calls, the server component provides the additional
+ // RTU port via its container.
+
+ // Create a subset of connectors that are connected with the reified connector
+ EList<Connector> connSubset = new BasicEList<Connector>();
+ for (Connector connector : composite.getOwnedConnectors()) {
+ if (ConnectorUtil.connectsPart(connector, reifiedConnector)) {
+ connSubset.add(connector);
+ }
+ }
+
+ for (Port port : PortUtils.getAllPorts((Class) reifiedConnector
+ .getType())) {
+ // check, if port is unconnected.
+ boolean connected = false;
+ // check whether a port of the reified connector is not yet
+ // connected.
+ for (Connector connector : connSubset) {
+ if (ConnectorUtil.connectsPort(connector, port)) {
+ connected = true;
+ }
+ }
+ if (!connected) {
+ // port is not connected yet. Check to find a connectable port
+ // among all ports of connected parts.
+ // In the moment, we assume the processes is stopped, as soon as
+ // the port is connected, i.e. we do not want to connect the port to
+ // potentially set of ports (todo: restriction always useful?)
+ for (Connector connector : connSubset) {
+ ConnectorEnd connEnd = ConnectorUtil.connEndNotPart(
+ connector, reifiedConnector);
+ Property otherPart = connEnd.getPartWithPort();
+ // this is a part which is connected with the reified
+ // connector check whether one of its ports is compatible with the
+ // non-connected port.
+ if (!(otherPart.getType() instanceof EncapsulatedClassifier)) {
+ continue;
+ }
+
+ for (Port otherPort : PortUtils.getAllPorts((EncapsulatedClassifier) otherPart.getType())) {
+ Log.log(IStatus.INFO, Log.TRAFO_CONNECTOR, String.format(
+ Messages.ConnectorReification_InfoPortTypes,
+ otherPort.getType().getQualifiedName(),
+ port.getType().getQualifiedName()));
+ if (otherPort.getType() == port.getType()) {
+ Connector newConnector = composite.createOwnedConnector("connector - container of " //$NON-NLS-1$
+ + otherPart.getName());
+ ConnectorEnd end1 = newConnector.createEnd();
+ ConnectorEnd end2 = newConnector.createEnd();
+ end1.setPartWithPort(reifiedConnector);
+ end1.setRole(port);
+ end2.setPartWithPort(otherPart);
+ end2.setRole(otherPort);
+ connected = true;
+ break;
+ }
+ }
+ if (connected) {
+ break;
+ }
+ }
+ if (!connected) {
+ if (port.getType() == null) {
+ Activator.log.debug(
+ String.format(Messages.ConnectorReification_CouldNotConnectPort, port.getName()));
+ } else {
+ Activator.log.debug(
+ String.format(Messages.ConnectorReification_CouldNotConnectPortOfType, port.getName(), port.getType().getName()));
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Propagate node allocation into a reified connector (identified via its part)
+ *
+ * The allocation algorithm works as follows.
+ * - get a connector (simple) originating from the passed part
+ * - get the opposite end of this simple connector and identify the connected part
+ * (other part, e.g. a part typed with an application component)
+ * - obtain the nodes to which this other part is allocated:
+ * - in case of a composite, connections are followed up to a monolithic component
+ * - propagate the node allocation into the connector (propagation will finally
+ * allocate leafs within a (composite) connector.
+ *
+ * @param composite
+ * the composite class (e.g. system) in which a connector is reified
+ * @param compositeIS
+ * the associated instance specification
+ * @param partSlot
+ * the slot associated with the part for which nodes are
+ * allocated.
+ */
+ public static void propagateNodeAllocation(Class composite,
+ InstanceSpecification compositeIS, Slot partSlot) {
+ Property part = (Property) partSlot.getDefiningFeature();
+
+ // loop over connectors of composite that originate from passed part.
+ for (Connector connector : composite.getOwnedConnectors()) {
+ ConnectorEnd myEnd = ConnectorUtil.connEndForPart(connector, part);
+ if (myEnd == null) {
+ // the connector does not connect this part
+ continue;
+ }
+ ConnectorEnd otherEnd = ConnectorUtil.connEndNotPart(connector,
+ part);
+
+ Property otherPart = otherEnd.getPartWithPort();
+ Port otherPort = (Port) otherEnd.getRole();
+ // Property myPart = myEnd.getPartWithPort();
+ Port myPort = (Port) myEnd.getRole();
+
+ // find instance that is associated with other part.
+ for (Slot slot : compositeIS.getSlots()) {
+ if (slot.getDefiningFeature() == otherPart) {
+ InstanceSpecification containedInstance = DepUtils.getInstance(slot);
+ EList<InstanceSpecification> nodes = AllocUtils.getAllNodesForPort(containedInstance, otherPort);
+ AllocUtils.propagateNodesViaPort(
+ DepUtils.getInstance(partSlot), myPort, nodes);
+ break;
+ }
+ }
+ }
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/container/ContainerTrafo.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/container/ContainerTrafo.java
new file mode 100644
index 00000000000..927dee07143
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/container/ContainerTrafo.java
@@ -0,0 +1,770 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.transformations.container;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.papyrus.FCM.BindTemplate;
+import org.eclipse.papyrus.FCM.ContainerRule;
+import org.eclipse.papyrus.FCM.ContainerRuleKind;
+import org.eclipse.papyrus.FCM.InteractionComponent;
+import org.eclipse.papyrus.FCM.InterceptionKind;
+import org.eclipse.papyrus.FCM.InterceptionRule;
+import org.eclipse.papyrus.FCM.Singleton;
+import org.eclipse.papyrus.FCM.util.FCMUtil;
+import org.eclipse.papyrus.FCM.util.MapUtil;
+import org.eclipse.papyrus.qompass.designer.core.Messages;
+import org.eclipse.papyrus.qompass.designer.core.PortUtils;
+import org.eclipse.papyrus.qompass.designer.core.StUtils;
+import org.eclipse.papyrus.qompass.designer.core.UMLTool;
+import org.eclipse.papyrus.qompass.designer.core.Utils;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepCreation;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepUtils;
+import org.eclipse.papyrus.qompass.designer.core.templates.TemplateInstantiation;
+import org.eclipse.papyrus.qompass.designer.core.templates.TemplateUtils;
+import org.eclipse.papyrus.qompass.designer.core.transformations.AbstractContainerTrafo;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
+import org.eclipse.papyrus.qompass.designer.core.transformations.RuleManagement;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationContext;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
+import org.eclipse.papyrus.qompass.designer.core.transformations.connector.ConnectorReification;
+import org.eclipse.papyrus.uml.tools.utils.ConnectorUtil;
+import org.eclipse.papyrus.uml.tools.utils.PackageUtil;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.uml2.uml.Association;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Connector;
+import org.eclipse.uml2.uml.ConnectorEnd;
+import org.eclipse.uml2.uml.EncapsulatedClassifier;
+import org.eclipse.uml2.uml.Feature;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Slot;
+import org.eclipse.uml2.uml.TemplateBinding;
+import org.eclipse.uml2.uml.TemplateParameter;
+import org.eclipse.uml2.uml.TemplateSignature;
+import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.ValueSpecification;
+import org.eclipse.uml2.uml.VisibilityKind;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * Make the container transformation, i.e. add elements into a container
+ *
+ */
+public class ContainerTrafo extends AbstractContainerTrafo {
+
+ public static final String executorPartName = "_executor"; //$NON-NLS-1$
+
+ public static final String interceptorName = "intercept "; //$NON-NLS-1$
+
+ public static final String containerPostfix = "_cc"; //$NON-NLS-1$
+
+ public static final String hwContainerPostfix = "_hwcc"; //$NON-NLS-1$
+
+ /**
+ * Constructor
+ *
+ * @param sat
+ * information about source and target model
+ * @param tmCDP
+ * deployment plan within target model
+ */
+ public ContainerTrafo(LazyCopier copier, Package tmCDP, InstanceSpecification executorIS) {
+ this.copier = copier;
+ this.tmCDP = tmCDP;
+ this.executorIS = executorIS;
+ portInfo = new HashMap<Property, Port>();
+ }
+
+ /**
+ * creates the executor. Needs to be called *before* the other operations of
+ * this class.
+ *
+ * @param tmComponent
+ * the implementation of a component
+ *
+ * @throws TransformationException
+ */
+ @Override
+ public void createContainer(Class smComponent, Class tmComponent) throws TransformationException {
+ Package tmPkgOwner;
+ if (tmComponent.eResource() == tmCDP.eResource()) {
+ // tmComponent is in same model as tmContainer
+ tmPkgOwner = tmComponent.getNearestPackage();
+ }
+ else {
+ // tmComponent is not a member of the target model. This is the case, if tmComponent is
+ // in an imported model that has not been copied during the transformation towards an intermediate
+ // model.
+ tmPkgOwner = MapUtil.getAndCreate(PackageUtil.getRootPackage(tmCDP), tmComponent.allNamespaces(), true);
+ }
+ // create a container with the suitable postfix
+ tmContainerImpl = tmPkgOwner.createOwnedClass(tmComponent.getName() + containerPostfix, false);
+
+ // Apply singleton to container, if original class is a singleton
+ boolean isSingleton = StereotypeUtil.isApplied(smComponent, Singleton.class);
+ if (isSingleton) {
+ StereotypeUtil.apply(tmContainerImpl, Singleton.class);
+ }
+ LazyCopier.copyID(tmComponent, tmContainerImpl, containerPostfix);
+
+ // add part and slot corresponding to component;
+ executorPart = tmContainerImpl.createOwnedAttribute(executorPartName, tmComponent);
+ LazyCopier.copyID(tmComponent, executorPart, "e"); //$NON-NLS-1$
+
+ executorPart.setIsComposite(true);
+
+ // copy ports from the executor (tmComponent) to the container
+ // (tmContainerImpl)
+ // TODO: connectors still point to the ports of the executor, implying a non-well-formed
+ // model. Yet code generation works, as port names are identical
+ for (Port port : PortUtils.getAllPorts(tmComponent)) {
+ // copy port
+ if (port.getVisibility() == VisibilityKind.PUBLIC_LITERAL) {
+ Port newPort = EcoreUtil.copy(port); // don't use Qompass copy, since this is not a copy from source to target model
+ tmContainerImpl.getOwnedAttributes().add(newPort);
+ StUtils.copyStereotypes(port, newPort);
+
+ // create delegation for application port
+ Connector containerDelegation = tmContainerImpl.createOwnedConnector("delegation " + port.getName()); //$NON-NLS-1$
+ LazyCopier.copyID(tmContainerImpl, containerDelegation);
+ ConnectorEnd end1 = containerDelegation.createEnd();
+ end1.setRole(newPort);
+ ConnectorEnd end2 = containerDelegation.createEnd();
+ end2.setPartWithPort(executorPart);
+ end2.setRole(port);
+ }
+ }
+
+ // Inheritance issues:
+ // currently: container never copies inheritance relationships, but copies inherited ports into container
+ // Problem: polymorphism would stop working.
+ // Objective: use inheritance, if possible, but avoid that container inherits from an original non-abstract class (avoid duplication of attributes, ...)
+ // Option: container inherits from fully abstract super-classes (might have to consider indirect super-classes).
+ // All connectors and container extension remain within container (i.e. no inheritance of connectors and container extensions)
+ // Remaining problems: Imagine that component A inherits from component B and both have state-charts.
+ // => containers of A and B would define a state-Machine and an event pool.
+ // => No shared pool (but anyway: semantics of this construct is not very clear).
+ containers.put(tmComponent, this);
+ }
+
+ /**
+ * Create a container for a HW class. This is an additional software class
+ * within the system. There is no executor part, i.e. executorPart remains
+ *
+ * @param tmComponent
+ * the implementation of a component
+ *
+ * @throws TransformationException
+ */
+ public void createHwContainer(Class tmComponent) throws TransformationException {
+ Package tmPkgOwner = (Package) tmComponent.getOwner();
+ tmContainerImpl = tmPkgOwner.createOwnedClass(tmComponent.getName() + hwContainerPostfix, false);
+ LazyCopier.copyID(tmComponent, tmContainerImpl, hwContainerPostfix);
+
+ // register created container
+ containers.put(tmComponent, this);
+ }
+
+ /**
+ * Create an instance of the container (UML instance specification)
+ *
+ * @param tmComponent
+ * the component within the target model for which we want to create an instance
+ *
+ * @param tmIS
+ * the existing instance specification for the component before container expansion. This
+ * instance specification becomes the new instance specification of the executor.
+ * @param context
+ * Additional information about the container that is used by instance configurators
+ */
+ @Override
+ public InstanceSpecification createContainerInstance(Class tmComponent, InstanceSpecification tmIS) throws TransformationException {
+ // create an instance specification for the container
+ InstanceSpecification containerIS =
+ (InstanceSpecification) tmCDP.createPackagedElement(tmIS.getName(), UMLPackage.eINSTANCE.getInstanceSpecification());
+ // assign new name to original instance specification which reflects
+ // role within containment hierarchy
+ tmIS.setName(tmIS.getName() + "." + executorPartName); //$NON-NLS-1$
+ containerIS.getClassifiers().add(tmContainerImpl);
+ // existing instance specification (tmIS) is the executor instance specification
+ DepCreation.createSlot(containerIS, tmIS, executorPart);
+ counter = 0;
+ // containers.put(tmComponent, this);
+ EList<Slot> connectorSlots = new BasicEList<Slot>();
+
+ executorIS = tmIS;
+ // now create instances for the contained elements
+ for (Property extensionPart : tmContainerImpl.getAttributes()) {
+ Type tmContainerExtImpl = extensionPart.getType();
+ if (tmContainerExtImpl instanceof Class) {
+ if (DepUtils.getSlot(containerIS, extensionPart) == null) {
+ // no slot for part exists => assume that the part has been added by the container and create an instance specification for it.
+ InstanceSpecification containerExtIS = null;
+
+ String isName = containerIS.getName() + "." + extensionPart.getName(); //$NON-NLS-1$
+
+ // create sub-instance and slot for extensions
+ if (containerExtIS == null) {
+ containerExtIS = DepCreation.createDepPlan(tmCDP, (Class) tmContainerExtImpl, isName, false);
+ }
+ Slot partSlot = DepCreation.createSlot(containerIS, containerExtIS, extensionPart);
+ if (StereotypeUtil.isApplied(tmContainerExtImpl, InteractionComponent.class)) {
+ connectorSlots.add(partSlot);
+ }
+ }
+ }
+ }
+
+ // handle propagation of node allocation for connectors. Do that in 2nd loop, since the allocation
+ // of parts might be incomplete before.
+ for (Slot connectorSlot : connectorSlots) {
+ ConnectorReification.propagateNodeAllocation(tmContainerImpl, containerIS, connectorSlot);
+ }
+ moveSlots(executorIS);
+ return containerIS;
+ }
+
+ /**
+ * Create an instance of the container (UML instance specification)
+ *
+ * @param tmComponent
+ * @param tmIS
+ */
+ public InstanceSpecification createHwContainerInstance(Class tmComponent, InstanceSpecification tmNode) {
+ // create an instance specification for the container
+ InstanceSpecification containerIS =
+ (InstanceSpecification) tmCDP.createPackagedElement(tmNode.getName() + hwContainerPostfix, UMLPackage.eINSTANCE.getInstanceSpecification());
+ // assign new name to original instance specification which reflects
+ // role within containment hierarchy
+ containerIS.getClassifiers().add(tmContainerImpl);
+ // containers.put(tmComponent, this);
+ counter = 0;
+ executorIS = tmNode;
+ // copy slots from HW instance specification
+ for (Slot slot : tmNode.getSlots()) {
+ Slot slotCopy = containerIS.createSlot();
+ slotCopy.setDefiningFeature(slot.getDefiningFeature());
+ // copy values (use CopyTo.copyTo(slot, containerIS) instead?)
+ for (ValueSpecification value : slot.getValues()) {
+ LazyCopier.copyValue(value, slotCopy);
+ }
+ }
+ return containerIS;
+ }
+
+ /**
+ * return the reference of the created container class
+ *
+ * @return
+ */
+ public Class getContainer() {
+ return tmContainerImpl;
+ }
+
+ /**
+ * apply a container rule, i.e. add either a container extension or an
+ * interceptor to the container
+ *
+ * @param smContainerRule
+ * An container rule
+ * @param smComponent
+ * the application component in the source model
+ * @param tmComponent
+ * the application component in the target model
+ * @param tmIS
+ * the instance specification for the application component in the target model
+ * @throws TransformationException
+ */
+ @Override
+ public void applyRule(ContainerRule smContainerRule, Class smComponent, Class tmComponent)
+ throws TransformationException
+ {
+ Map<Property, EList<Property>> interceptorPartsMap = new HashMap<Property, EList<Property>>();
+
+ for (Property part : smContainerRule.getBase_Class().getAllAttributes()) {
+ Type type = part.getType();
+ if (type == null) {
+ String ruleName = (smContainerRule.getBase_Class() != null) ? smContainerRule.getBase_Class().getName() : "undefined"; //$NON-NLS-1$
+ throw new TransformationException(String.format(
+ Messages.ContainerTrafo_CannotApplyRule, ruleName));
+ }
+ if (part instanceof Port) {
+ Port newPort = tmContainerImpl.createOwnedPort(part.getName(), part.getType());
+ StUtils.copyStereotypes(part, newPort);
+ }
+ else if (type instanceof Class) {
+ Class extOrInterceptor = (Class) type;
+ // DepUtils.chooseImplementation((Class) type,
+ // new BasicEList<InstanceSpecification>(), false);
+
+ if (StereotypeUtil.isApplied(part, InterceptionRule.class)) {
+ if (StereotypeUtil.isApplied(extOrInterceptor, InteractionComponent.class)) {
+
+ InterceptionRule interceptionRule = UMLUtil.getStereotypeApplication(part, InterceptionRule.class);
+ InterceptionKind interceptionKind = interceptionRule.getInterceptionKind();
+ EList<Feature> interceptFeatures = interceptionRule.getInterceptionSet();
+ EList<Property> interceptorParts =
+ expandInterceptorExtension(interceptionKind, interceptFeatures, extOrInterceptor, tmComponent);
+ interceptorPartsMap.put(part, interceptorParts);
+ }
+ else {
+ throw new TransformationException(String.format(
+ Messages.ContainerTrafo_InterceptionRuleButNoInterceptor,
+ part.getName(), smContainerRule.getBase_Class().getName()));
+ }
+ }
+ else {
+ Property extensionPart =
+ expandAggregationExtension(part, extOrInterceptor, tmComponent);
+ // register relation to facilitate connector copy
+ copier.setPackageTemplate(smContainerRule.getBase_Class(), tmContainerImpl);
+ copier.putPair(part, extensionPart);
+ copier.setPackageTemplate(null, null);
+ }
+ }
+ }
+ createConnectorForAssociations();
+
+ // tell copier that tmcontainerImpl is associated with the smContainerRule
+ // register a package template (although it is not a template) to assure that the connectors
+ // get copied, although they are in a different resource (only the connectors are copied, not
+ // the types of the referenced parts).
+ // [main issue here: properties of container rule are not copies in the sense of identical
+ // copies]
+ copier.setPackageTemplate(smContainerRule.getBase_Class(), tmContainerImpl);
+
+ for (Connector connector : smContainerRule.getBase_Class().getOwnedConnectors()) {
+ Property ruleInterceptorPart = null;
+ for (Property part : interceptorPartsMap.keySet()) {
+ if (ConnectorUtil.connectsPart(connector, part)) {
+ // this connector is a connection between an interceptor (and another part which may not
+ // be an interceptor => TODO: validation rule yet to write
+ // we need to copy this connector multiple times, once for each associated interceptor part
+ ruleInterceptorPart = part;
+ break;
+ }
+ }
+ if (ruleInterceptorPart != null) {
+ for (Property interceptorPart : interceptorPartsMap.get(ruleInterceptorPart)) {
+ // map an interceptor part within rule successively to to an interceptor part
+ // within the container
+ copier.putPair(ruleInterceptorPart, interceptorPart);
+ copier.removeForCopy(connector);
+ copier.getCopy(connector);
+ }
+ }
+ else {
+ // check whether FCM connector
+ org.eclipse.papyrus.FCM.Connector fcmConn = StUtils.getConnector(connector);
+ if (fcmConn != null) {
+ ConnectorReification.reifyConnector(copier, tmContainerImpl,
+ UMLTool.varName(connector), connector, executorIS);
+ }
+ else {
+ copier.remove(connector);
+ copier.getCopy(connector);
+ }
+ }
+ }
+ copier.setPackageTemplate(null, null);
+
+ TemplateUtils.retargetConnectors(tmContainerImpl);
+ }
+
+ /**
+ * This container expansion does not create a new composite. Instead, it
+ * adds the extension as a part to the copied application component. The
+ * application component also inherits from the type of the container
+ * extension in order to avoid copying ports.
+ */
+ Property expandAggregationExtension(Property smExtensionPart, Class smContainerExtImpl, Class tmComponent) throws TransformationException {
+ Property extensionPart;
+ String name = smExtensionPart.getName();
+ Class tmContainerExtImpl = null;
+
+ TemplateSignature signature = TemplateUtils.getSignature(smContainerExtImpl);
+ if (signature == null) {
+ // no template signature, just copy the container extension into the target model
+ tmContainerExtImpl = copier.getCopy(smContainerExtImpl);
+ }
+ else {
+ // template signature found, instantiate container extension via template binding mechanism
+ Classifier actual;
+ if (StereotypeUtil.isApplied(smExtensionPart, BindTemplate.class)) {
+ BindTemplate bt = UMLUtil.getStereotypeApplication(smExtensionPart, BindTemplate.class);
+ // use explicit binding from stereotype
+ actual = (Classifier) bt.getActual().get(0);
+ }
+ else {
+ // use executor component as actual
+ actual = tmComponent;
+ }
+ // template signature and instantiate container extension via the
+ // template binding mechanism, use executor component as actual
+ TemplateBinding binding = TemplateUtils.fixedBinding(copier.target, smContainerExtImpl, actual);
+ TemplateInstantiation ti = new TemplateInstantiation(copier, binding);
+ tmContainerExtImpl = ti.bindElement(smContainerExtImpl);
+ }
+
+ // --------------------------------------------------
+ // a container extension could be subject to container rules as well, i.e. need
+ // to handle recursive rule application.
+ EList<ContainerRule> rules = FCMUtil.getAllContainerRules(smContainerExtImpl);
+
+ // get container trafo instance, if already existing
+ AbstractContainerTrafo containerTrafo = AbstractContainerTrafo.get(tmContainerExtImpl);
+
+ if (containerTrafo == null) {
+ // no container exists, check rules and create eventually
+ for (ContainerRule rule : rules) {
+ if (RuleManagement.isRuleActive(rule)) {
+ // at least one active rule => create container (or get previously instantiated))
+ if (containerTrafo == null) {
+ if (rule.getKind() == ContainerRuleKind.LIGHT_WEIGHT_OO_RULE) {
+ throw new TransformationException(Messages.ContainerTrafo_RecursiveLWnotSupported);
+ }
+ else {
+ containerTrafo = new ContainerTrafo(copier, tmCDP, null);
+ }
+ containerTrafo.createContainer(smContainerExtImpl, tmContainerExtImpl);
+ }
+ else {
+ // configure only??
+ }
+ containerTrafo.applyRule(rule, smContainerExtImpl, tmContainerExtImpl);
+ }
+ }
+ if (containerTrafo != null) {
+ containerTrafo.finalize();
+ tmContainerExtImpl = ((ContainerTrafo) containerTrafo).getContainer();
+ }
+ }
+ // --------------------------------------------------
+
+ // add part associated with the extension to the container
+ extensionPart = tmContainerImpl.createOwnedAttribute(name, tmContainerExtImpl);
+
+ // Copy.copyID(tmComponent, extensionPart, "a");
+ extensionPart.setAggregation(smExtensionPart.getAggregation());
+ LazyCopier.copyMultElemModifiers(smExtensionPart, extensionPart);
+ LazyCopier.copyFeatureModifiers(smExtensionPart, extensionPart);
+
+ return extensionPart;
+ }
+
+ /**
+ * Expand an interceptor definition between the container and the executor.
+ *
+ * @param extKind
+ * the interception kind (intercept which ports: all, some, out, ...)
+ * @param featureList
+ * The set of ports to intercept (In case of "some" above)
+ * @param smContainerConnImpl
+ * The connector (interceptor) implementation in the source model
+ * @param tmComponent
+ * the application component (executor) in the target model
+ * @return
+ * @throws TransformationException
+ */
+ EList<Property> expandInterceptorExtension(InterceptionKind extKind, EList<Feature> featureList, Class smContainerConnImpl, Class tmComponent)
+ throws TransformationException
+ {
+ EList<Property> connectorParts = new BasicEList<Property>();
+ // replace delegation connectors with extension connector
+ for (Port port : PortUtils.getAllPorts(tmComponent)) {
+ // delegate to component via connector
+ boolean match = true;
+ if (extKind == InterceptionKind.INTERCEPT_ALL_IN) {
+ // IN-PORT = provided port
+ match = (PortUtils.getProvided(port) != null);
+ }
+ else if (extKind == InterceptionKind.INTERCEPT_ALL_OUT) {
+ // IN-PORT = provided port
+ match = (PortUtils.getRequired(port) != null);
+ }
+ else if (extKind == InterceptionKind.INTERCEPT_SOME) {
+ // comparison based on name, since in different models
+ match = (Utils.getNamedElementFromList(featureList, port.getName()) != null);
+ }
+ else if (extKind == InterceptionKind.INTERCEPT_MATCHING) {
+ EList<Port> interceptorPorts = PortUtils.getAllPorts(smContainerConnImpl);
+ match = false;
+ // get first port from interception connector that is typed with a template parameter
+ for (Port interceptorPort : interceptorPorts) {
+ if (interceptorPort.getType().getOwner() instanceof TemplateParameter) {
+ match = (PortUtils.getKind(port) == PortUtils.getKind(interceptorPort));
+ break;
+ }
+ }
+ }
+
+ // else INTERCEPT_ALL_PORT => match remains true
+ if (!match) {
+ // port does not match criterion, continue with next port
+ continue;
+ }
+
+ Property connectorPart;
+ String interceptionName = interceptorName + port.getName() + counter;
+ Connector interceptionConnector = null;
+ // get delegation connector
+ for (Connector connector : tmContainerImpl.getOwnedConnectors()) {
+ if (ConnectorUtil.connectsPort(connector, port)) {
+ interceptionConnector = connector;
+ break;
+ }
+ }
+ // interceptionConnector = tmContainerImpl.getOwnedConnector
+ // ("delegation " + port.getName ());
+ if (interceptionConnector == null) {
+ throw new TransformationException(Messages.ContainerTrafo_CannotFindDelegationConn);
+ }
+
+ interceptionConnector.setName(interceptionName);
+ org.eclipse.papyrus.FCM.Connector fcmConn = StereotypeUtil.applyApp(interceptionConnector, org.eclipse.papyrus.FCM.Connector.class);
+ InteractionComponent fcmConnType = UMLUtil.getStereotypeApplication(smContainerConnImpl, InteractionComponent.class);
+ fcmConn.setIc(fcmConnType);
+
+ // pass target component and port to interceptor (not clean, define
+ // suitable template signature as for instance in methodCall_comp
+ TransformationContext.instance = executorIS;
+ TransformationContext.port = port;
+ connectorPart = ConnectorReification.reifyConnector(copier, tmContainerImpl, UMLTool.varName(interceptionConnector), interceptionConnector, executorIS);
+ connectorParts.add(connectorPart);
+ TransformationContext.port = null;
+ portInfo.put(connectorPart, port);
+ // delete intermediate connector (has been replaced by two
+ // connections to the reified connector)
+ interceptionConnector.destroy();
+ }
+ counter++;
+ return connectorParts;
+ }
+
+ /**
+ * Move a slot from the executor instance specification to an instance
+ * specification of an extension/interceptor. This is required, since
+ * users cannot configure containers directly. The modification is done in
+ * the target model, i.e. the user model is not affected.
+ *
+ * Configuration is based on the idea that we can have multiple classifiers for an
+ * instance specification and that we add additional slots for attributes of the 2nd
+ * classifier which becomes "visible" after container transformation.
+ * Main use: configure priority of thread within container.
+ *
+ * TODO: Not clear, whether we should keep this operation, since configuration of elements that are not
+ * (directly) part of the user model is confusing. Application was: configuration
+ * of thread priorities within container.
+ */
+ public void moveSlots(InstanceSpecification containerIS) {
+ // Log.log(Status.INFO, Log.TRAFO_CONTAINER, String.format(Messages.ContainerTrafo_InfoMoveSlots, executorIS.getQualifiedName()));
+ Classifier mainCl = DepUtils.getClassifier(executorIS);
+ Iterator<Slot> slotIt = executorIS.getSlots().iterator();
+ while (slotIt.hasNext()) {
+ Slot slot = slotIt.next();
+ String featureName = slot.getDefiningFeature().getName();
+ if (!mainCl.getAllAttributes().contains(slot.getDefiningFeature())) {
+ // defining feature does not belong to main classifier
+ // => move it to first matching instance specification
+ for (InstanceSpecification is : DepUtils.getContainedInstances(containerIS)) {
+ Classifier containedCl = DepUtils.getClassifier(is);
+ if (Utils.getNamedElementFromList(containedCl.getAllAttributes(), featureName) != null) {
+ if (executorIS != is) {
+ // remove slot first from iterator, as addition below removes it from the list (slots are owned)
+ slotIt.remove();
+ is.getSlots().add(slot);
+ break;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Create an connector for parts that have an association. The rationale
+ * behind this is support connections between the state machine in the container
+ * and the executor.
+ *
+ */
+ public void createConnectorForAssociations() {
+ // TODO: keep list of added parts, only re-check those!
+
+ for (Property part : Utils.getParts(tmContainerImpl)) {
+ if (part.getType() == null) {
+ continue;
+ }
+ for (Association association : part.getType().getAssociations()) {
+ // Part has an association. Check if the other association end
+ // targets one of
+ // other parts within the container
+ for (Property end : association.getMemberEnds()) {
+ Type type = end.getType();
+ if ((type != null) && (type != part.getType())) {
+ // end is not typed with the part we are currently
+ // examining
+ // thus, it might belong to another part of the
+ // composite
+ for (Property checkPart : Utils.getParts(tmContainerImpl)) {
+ if (type == checkPart.getType()) {
+ // found an association between two parts of the
+ // container => create connection,
+ // unless already existing.
+ if (!ConnectorUtil.existsConnector(tmContainerImpl, part, checkPart)) {
+ Connector conn = tmContainerImpl.createOwnedConnector(part.getName() + "_" + checkPart.getName()); //$NON-NLS-1$
+ conn.setType(association);
+ conn.createEnd().setRole(part);
+ conn.createEnd().setRole(checkPart);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ @Override
+ public void finalize() {
+ discoverServices();
+ }
+
+ /**
+ * Connector ports of executor with compatible ports offered by container extensions
+ * (runtime system)
+ */
+ public void discoverServices() {
+ Type executorType = executorPart.getType();
+ if (!(executorType instanceof EncapsulatedClassifier)) {
+ return;
+ }
+ EncapsulatedClassifier ec = (EncapsulatedClassifier) executorType;
+ for (Port executorPort : ec.getOwnedPorts()) {
+ for (Property svcPart : tmContainerImpl.getOwnedAttributes()) {
+ if (svcPart == executorPart) {
+ continue;
+ }
+ Type containerSvcType = svcPart.getType();
+ if (containerSvcType instanceof EncapsulatedClassifier) {
+ EncapsulatedClassifier containerSvc = (EncapsulatedClassifier) containerSvcType;
+ for (Port svcPort : containerSvc.getOwnedPorts()) {
+ if (PortUtils.matches(executorPort, svcPort, true)) {
+ // create connector
+ Connector c = tmContainerImpl.createOwnedConnector(
+ String.format("auto from %s to %s", executorPart.getName(), svcPart.getName())); //$NON-NLS-1$
+ ConnectorEnd ce1 = c.createEnd();
+ ConnectorEnd ce2 = c.createEnd();
+ ce1.setPartWithPort(executorPart);
+ ce1.setRole(executorPort);
+ ce2.setPartWithPort(svcPart);
+ ce2.setRole(svcPort);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Return the containerTrafo associated with a container. This operation is useful for instance
+ * configurators that need more information about the container context, in particular to associate
+ * a part with a port that is intercepted.
+ *
+ * @param containerInstance
+ * the container instance (the parent instance of an instance of a container extension)ight be a container instance)
+ * @return the containerTrafo info, if found.
+ */
+ public static ContainerTrafo getContainerTrafo(InstanceSpecification containerInstance) {
+ Classifier containerCandidate = DepUtils.getClassifier(containerInstance);
+ Property executorPart = containerCandidate.getAttribute(executorPartName, null);
+ if ((executorPart != null) && executorPart.getType() instanceof Class) {
+ AbstractContainerTrafo containerTrafo = AbstractContainerTrafo.get((Class) executorPart.getType());
+ if (containerTrafo instanceof ContainerTrafo) {
+ return (ContainerTrafo) containerTrafo;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Utility function to retrieve the executor slot, when given the container instance.
+ * Needs to be called, after a container instance has been created.
+ *
+ * @param containerInstance
+ * the instance of a container specification
+ * @return the associated executor slot, or null, if it cannot be found
+ */
+ public static Slot getExecutorSlot(InstanceSpecification containerInstance) {
+ for (Slot slot : containerInstance.getSlots()) {
+ if (slot.getDefiningFeature().getName().equals(ContainerTrafo.executorPartName)) {
+ return slot;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Return the port that is intercepted when given a part
+ *
+ * @param containerPart
+ * a part that participates in a port interception
+ * @return intercepted port
+ */
+ public Port getInterceptedPort(Property containerPart) {
+ return portInfo.get(containerPart);
+ }
+
+ /**
+ * The attribute within the container that holds the executor, i.e. the
+ * original component
+ */
+ protected Property executorPart;
+
+ /**
+ * An instance specification of the executor in the target model (todo: should be source model instead?), i.e.
+ * of the component before container expansion
+ */
+ protected InstanceSpecification executorIS;
+
+ /**
+ * The created container implementation (prefixed with tm, since part of
+ * target model)
+ */
+ protected Class tmContainerImpl;
+
+ /**
+ * A counter which is used to manage unique names for interceptors (if
+ * multiple interceptors are applied)
+ */
+ protected int counter;
+
+ /**
+ * Store information about intercepted port. The map contains a mapping from the part representing
+ * a reified connector to the port that was intercepted. It is stored, since it might be used by instance
+ * configurators that configure the container instance.
+ */
+ protected Map<Property, Port> portInfo;
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/container/LWContainerTrafo.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/container/LWContainerTrafo.java
new file mode 100644
index 00000000000..adcba9d75fe
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/container/LWContainerTrafo.java
@@ -0,0 +1,438 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.transformations.container;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.papyrus.FCM.ContainerRule;
+import org.eclipse.papyrus.FCM.InterceptionRule;
+import org.eclipse.papyrus.FCM.Template;
+import org.eclipse.papyrus.qompass.designer.core.Messages;
+import org.eclipse.papyrus.qompass.designer.core.StUtils;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepCreation;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepUtils;
+import org.eclipse.papyrus.qompass.designer.core.extensions.InstanceConfigurator;
+import org.eclipse.papyrus.qompass.designer.core.templates.TemplateInstantiation;
+import org.eclipse.papyrus.qompass.designer.core.templates.TemplateUtils;
+import org.eclipse.papyrus.qompass.designer.core.templates.TextTemplateBinding;
+import org.eclipse.papyrus.qompass.designer.core.transformations.AbstractContainerTrafo;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier.CopyStatus;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationContext;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.uml2.uml.Behavior;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Dependency;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.OpaqueBehavior;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.TemplateBinding;
+import org.eclipse.uml2.uml.TemplateSignature;
+import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.profile.standard.Create;
+import org.eclipse.uml2.uml.profile.standard.Destroy;
+
+/**
+ * A light-weight container transformation. Unlike the standard component-based transformation, this transformation does not add a new class.
+ * It is target for standard object-oriented architecture, enabling in particular to intercept the methods of a class (instead of
+ * adding interceptors to ports).
+ *
+ */
+public class LWContainerTrafo extends AbstractContainerTrafo {
+
+ public final String origOpPrefix = "orig_"; //$NON-NLS-1$
+
+ /**
+ * Constructor
+ *
+ * @param sat
+ * information about source and target model
+ * @param tmCDP
+ * deployment plan within target model
+ */
+ public LWContainerTrafo(LazyCopier copy, Package tmCDP) {
+ this.copier = copy;
+ this.tmCDP = tmCDP;
+ interceptionOpMap = new HashMap<Operation, Operation>();
+ }
+
+ /**
+ * creates the executor. Needs to be called *before* the other operations of
+ * this class.
+ *
+ * @param tmComponent
+ * the implementation of a component
+ *
+ * @throws TransformationException
+ */
+ @Override
+ public void createContainer(Class smClass, Class tmClass) throws TransformationException {
+
+ // for non-components: create a delegation operation for all operations that are provided by a class (excluding those derived by ports)
+ // Calls on model level use CallOperationAction, will point to existing operation, unless changed.
+ // If deployed dynamically (no static component deployment), need to change factories as well.
+ // Pragmatic: rename/add existing operations (as Accord has done), do some renaming and clever model handling (assure
+ // that code referencing classes via name automatically uses the new class.
+ // => container with name of existing class, rename existing class.
+ // possible: move operations into container, existing class gets copy (and update behaviors)
+
+ // TODO: need something simple ...
+ // requirements:
+ // - existing creation operations create container (separation activity CreateAction: needs to change.)
+ // trivially in this case case, since container is no separate entity.
+ // - => references could be exchanged during copy operation with a suitable copyFilter (=> container transfo becomes a copy filter)
+ // [in case of ports: quite difficult to handle: if port belongs to abstract components, it may be inherited by multiple components that
+ // might or might-not have a container => only some references need to be changed]
+ // => clarify, how container handles super-classes, i.e. if it inherits ports as well (from a container of the abstract component) or not (not trivial at all!)
+ // TODO: don't copy derived operations
+
+ this.smClass = smClass;
+ this.tmClass = tmClass;
+ // create a copy of all operations
+ operations = new BasicEList<Operation>(smClass.getOperations());
+ }
+
+ public void createInstance() {
+ }
+
+ /**
+ * original operation => operation gets interception prefix
+ *
+ * Objectives: existing call operations call interception operation. Existing operations include CallOperationActions as well as calls within
+ * opaque behavior
+ * This is assured by keeping same model reference for the operation, but associating a new interception behavior, existing behavior will be
+ * associated
+ * with a new renamed operation
+ *
+ * @param operation
+ */
+ protected Operation createInterceptionOperation(Operation operation) throws TransformationException {
+ // create copy of operation
+ Operation copiedOperation = EcoreUtil.copy(operation);
+ tmClass.getOwnedOperations().add(copiedOperation);
+ StUtils.copyStereotypes(operation, copiedOperation);
+
+ copiedOperation.setName(origOpPrefix + operation.getName());
+
+ // create interception code
+ // TODO: this is Java/C++ specific!
+ OpaqueBehavior b = (OpaqueBehavior) tmClass.createOwnedBehavior(operation.getName(), UMLPackage.eINSTANCE.getOpaqueBehavior());
+ // TODO: this is defined in modellibs.core, no dependency
+ // String body = CppUtils.cppCall(copiedOperation);
+ String body = "testBody";
+ // TODO: solution is specific to C++
+ b.getLanguages().add("C/C++"); //$NON-NLS-1$
+ b.getBodies().add(body);
+ // copy existing methods into new operation, copy method list,
+ // since adding the method to copied operation will remove these from original operation)
+ EList<Behavior> methods = new BasicEList<Behavior>(operation.getMethods());
+ for (Behavior behavior : methods) {
+ copiedOperation.getMethods().add(behavior);
+ }
+ // new behavior is associated with existing call.
+ b.setSpecification(operation);
+ return copiedOperation;
+ }
+
+ /**
+ * return the reference of the created container class
+ *
+ * @return
+ */
+ public Class getContainer() {
+ return tmClass;
+ }
+
+ /**
+ * apply a container rule, i.e. add either a container extension or an
+ * interceptor to the container.
+ *
+ * @param smContainerRule
+ * An container rule
+ * @param smComponent
+ * the application component in the source model
+ * @param tmComponent
+ * the application component in the target model
+ * @param tmIS
+ * the instance specification for the application component in the target model
+ * @throws TransformationException
+ */
+ @Override
+ public void applyRule(ContainerRule smContainerRule, Class smComponent, Class tmComponent)
+ throws TransformationException
+ {
+ // dependencies of the rule become dependencies of he class. These dependencies must be instantiated
+ for (Dependency dependency : smContainerRule.getBase_Class().getClientDependencies()) {
+ //
+ for (Element target : dependency.getTargets()) {
+ // target may, or may not be in a template
+ if (target instanceof Classifier) {
+ Classifier targetCl = (Classifier) target;
+ Class extClass = expandAggregationDep((Class) targetCl, smComponent);
+ tmComponent.createDependency(extClass);
+ // if(TemplateUtils.getSignature(targetCl) != null) {
+ // }
+ }
+ }
+ }
+
+ boolean hasConstructor = isOperationStereotypeApplied(Create.class);
+ boolean hasDestructor = isOperationStereotypeApplied(Destroy.class);
+
+ // register relation to facilitate connector copy
+ copier.setPackageTemplate(smContainerRule.getBase_Class(), tmClass);
+ // reset status to in-progress. Otherwise, the copier will not properly add new
+ // elements.
+ copier.setStatus(tmClass, CopyStatus.INPROGRESS);
+
+ for (Operation templateOperation : smContainerRule.getBase_Class().getOperations()) {
+ // Need a specific treatment of Constructor/destructor: if original class has a
+ // constructor, must add to all constructors, if it has none, copy constructor
+ boolean templateIsConstructor = StereotypeUtil.isApplied(templateOperation, Create.class);
+ boolean templateIsDestructor = StereotypeUtil.isApplied(templateOperation, Destroy.class);
+
+ boolean needsMerge = (templateIsConstructor && hasConstructor) || (templateIsDestructor && hasDestructor);
+ if (needsMerge || StereotypeUtil.isApplied(templateOperation, InterceptionRule.class)) {
+ // operation is an interceptor: add its content to the methods of the
+ // original class
+ expandInterceptorExtension(smContainerRule, templateOperation);
+ }
+ else {
+ // normal operation. Copy from container to class
+ Operation newOperation = copier.getCopy(templateOperation);
+ if (StereotypeUtil.isApplied(templateOperation, Template.class)) {
+ String opBody = getBody(templateOperation);
+ // operation is not an interceptor, assume binding with class itself
+ TransformationContext.classifier = tmClass;
+ opBody = TextTemplateBinding.bind(opBody, smClass, null);
+ setBody(newOperation, opBody);
+ }
+ if (templateIsConstructor) {
+ newOperation.setName(tmClass.getName());
+ }
+ else if (templateIsConstructor) {
+ newOperation.setName("~" + tmClass.getName());
+ }
+ }
+ }
+
+ for (Property part : smContainerRule.getBase_Class().getAllAttributes()) {
+ Type type = part.getType();
+ if (type == null) {
+ String ruleName = (smContainerRule.getBase_Class() != null) ? smContainerRule.getBase_Class().getName() : "undefined"; //$NON-NLS-1$
+ throw new TransformationException(String.format(Messages.LWContainerTrafo_CannotApplyRule, ruleName));
+ }
+ if (part instanceof Port) {
+ Port newPort = tmClass.createOwnedPort(part.getName(), part.getType());
+ StUtils.copyStereotypes(part, newPort);
+ }
+ else if (type instanceof Class) {
+ Class extOrInterceptor = (Class) type;
+ // DepUtils.chooseImplementation((Class) type,
+ // new BasicEList<InstanceSpecification>(), false);
+
+ if (StereotypeUtil.isApplied(part, InterceptionRule.class)) {
+ // port.filter
+ //
+ }
+ else {
+ Property extensionPart =
+ expandAggregationExtension(part.getName(), extOrInterceptor, tmComponent);
+ copier.put(part, extensionPart);
+ copier.setPackageTemplate(null, null);
+ }
+ }
+ else {
+ Property newAttribute = EcoreUtil.copy(part);
+ tmClass.getOwnedAttributes().add(newAttribute);
+ }
+ }
+
+ // tell copy that tmcontainerImpl is associated with the smContainerRule
+ // register a package template (although it is not a template) to assure that the connectors
+ // get copied, although they are in a different resource (only the connectors are copied, not
+ // the types of the referenced parts).
+ // [main issue here: properties of container rule are not copies in the sense of identical
+ // copies]
+
+ // copy.setPackageTemplate(smContainerRule.getBase_Class(), tmClass);
+ // copy.setPackageTemplate(null, null);
+ }
+
+ protected boolean isOperationStereotypeApplied(java.lang.Class<? extends EObject> stereotype) {
+ for (Operation op : tmClass.getOwnedOperations()) {
+ if (StereotypeUtil.isApplied(op, stereotype)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * This container expansion does not create a new composite. Instead, it
+ * adds the extension as a part to the copied application component. The
+ * application component also inherits from the type of the container
+ * extension in order to avoid copying ports.
+ */
+ Property expandAggregationExtension(String name, Class smContainerExtImpl, Class tmComponent) throws TransformationException {
+ Class tmContainerExtImpl = expandAggregationDep(smContainerExtImpl, tmComponent);
+
+ // add part associated with the extension to the container
+ Property extensionPart = tmClass.createOwnedAttribute(name, tmContainerExtImpl);
+
+ // problem: would not be unique in case of multiple extensions
+ // Copy.copyID(tmComponent, extensionPart, "a");
+ extensionPart.setIsComposite(true);
+
+ return extensionPart;
+ }
+
+ Class expandAggregationDep(Class smContainerExtImpl, Class tmComponent) throws TransformationException {
+ Class tmContainerExtImpl = null;
+
+ TemplateSignature signature = TemplateUtils.getSignature(smContainerExtImpl);
+ if (signature == null) {
+ // no template signature, just copy the container extension into the target model
+ tmContainerExtImpl = copier.getCopy(smContainerExtImpl);
+ } else {
+ // template signature found, instantiate container extension via the
+ // template binding mechanism
+ TemplateBinding binding = TemplateUtils.fixedBinding(copier.target, smContainerExtImpl, tmComponent);
+ Object[] args = new Object[] {};
+ TemplateInstantiation ti = new TemplateInstantiation(copier, binding, args);
+ tmContainerExtImpl = ti.bindElement(smContainerExtImpl);
+ }
+
+ return tmContainerExtImpl;
+ }
+
+ /**
+ * Expand an interceptor definition between the container and the executor.
+ * Can be called several times with different interception operations (which will then be concatenated)
+ *
+ * @throws TransformationException
+ */
+ EList<Property> expandInterceptorExtension(ContainerRule smContainerRule, Operation interceptionOperationInRule)
+ throws TransformationException
+ {
+ for (Operation smOperation : operations) {
+ Operation tmOperation = copier.getCopy(smOperation);
+ String interceptionBody = getBody(interceptionOperationInRule);
+ if (StereotypeUtil.isApplied(interceptionOperationInRule, Create.class) !=
+ StereotypeUtil.isApplied(smOperation, Create.class)) {
+ // if the intercepting operation is a constructor, the intercepted operation must also be a constructor
+ continue;
+ }
+ if (StereotypeUtil.isApplied(interceptionOperationInRule, Destroy.class) !=
+ StereotypeUtil.isApplied(smOperation, Destroy.class)) {
+ // if the intercepting operation is a destructor, the intercepted operation must also be a destructor
+ continue;
+ }
+ if (StereotypeUtil.isApplied(interceptionOperationInRule, Template.class)) {
+ // pass operation in source model, since this enables Xtend code to check
+ // for markers on model
+ interceptionBody = TextTemplateBinding.bind(interceptionBody, smOperation, null);
+ }
+ if (interceptionBody.length() > 0) {
+ // only add interception operation, if the interception is not empty
+ interceptionBody = "// --- interception code from rule <" + smContainerRule.getBase_Class().getName() + "> ---\n" + //$NON-NLS-1$ //$NON-NLS-2$
+ interceptionBody;
+ Operation interceptionOpInClass = interceptionOpMap.get(tmOperation);
+ if (interceptionOpInClass == null) {
+ createInterceptionOperation(tmOperation);
+ // existing operation becomes interception operation (by assigning it a new behavior and moving its behavior to a new operation
+ interceptionOpInClass = tmOperation;
+ interceptionOpMap.put(tmOperation, interceptionOpInClass);
+ }
+ String newBody = interceptionBody + "\n" + //$NON-NLS-1$
+ getBody(interceptionOpInClass);
+ setBody(interceptionOpInClass, newBody);
+ }
+ }
+ return null;
+ }
+
+ public static String getBody(Operation op) {
+ for (Behavior behavior : op.getMethods()) {
+ if (behavior instanceof OpaqueBehavior) {
+ EList<String> bodies = ((OpaqueBehavior) behavior).getBodies();
+ if (bodies.size() > 0) {
+ // always take first
+ return bodies.get(0);
+ }
+ }
+ }
+ return ""; //$NON-NLS-1$
+ }
+
+ public static void setBody(Operation op, String body) {
+ for (Behavior behavior : op.getMethods()) {
+ if (behavior instanceof OpaqueBehavior) {
+ EList<String> bodies = ((OpaqueBehavior) behavior).getBodies();
+ if (bodies.size() > 0) {
+ // always take first
+ bodies.set(0, body);
+ break;
+ }
+ }
+ }
+ }
+
+ // protected InstanceSpecification tmClassIS;
+ protected Class smClass;
+
+ protected EList<Operation> operations;
+
+ protected Map<Operation, Operation> interceptionOpMap;
+
+ /**
+ * @see AbstractContainerTrafo.createContainerInstance
+ */
+ @Override
+ public InstanceSpecification createContainerInstance(Class tmComponent, InstanceSpecification executorIS) throws TransformationException {
+ InstanceSpecification containerIS = executorIS;
+ // TODO ... incomplete!
+ // InstanceConfigurator.configureInstance(smContainerRule, containerIS, null, context);
+
+ // now create instances for the contained elements
+ for (Property extensionPart : tmComponent.getAttributes()) {
+ Type tmContainerExtImpl = extensionPart.getType();
+ if (tmContainerExtImpl instanceof Class) {
+ if (DepUtils.getSlot(executorIS, extensionPart) == null) {
+ // no slot for part exists => assume that the part has been added by the container and create an instance specification for it.
+
+ InstanceSpecification containerExtIS = DepCreation.createDepPlan(tmCDP, (Class) tmContainerExtImpl, containerIS.getName() + "." + //$NON-NLS-1$
+ extensionPart.getName(), false);
+ // configure extension
+ InstanceConfigurator.configureInstance(containerExtIS, extensionPart, null);
+ DepCreation.createSlot(containerIS, containerExtIS, extensionPart);
+ }
+ }
+ }
+ return containerIS;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterRuleApplication.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterRuleApplication.java
new file mode 100644
index 00000000000..93173286910
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterRuleApplication.java
@@ -0,0 +1,46 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.transformations.filters;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.FCM.RuleApplication;
+import org.eclipse.papyrus.qompass.designer.core.listeners.PreCopyListener;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
+
+/**
+ * Filter the rule application stereotype. The rule application stereotype is not
+ * required in the target model (per node). It is harmful, since the container rule
+ * can contain interceptors which typically reference elements from package templates.
+ * These elements should not should be copied into the target model.
+ */
+public class FilterRuleApplication implements PreCopyListener {
+
+ public static FilterRuleApplication getInstance() {
+ if (instance == null) {
+ instance = new FilterRuleApplication();
+ }
+ return instance;
+ }
+
+ @Override
+ public EObject preCopyEObject(LazyCopier copy, EObject sourceEObj) {
+ if (sourceEObj instanceof RuleApplication) {
+ return null;
+ }
+ return sourceEObj;
+ }
+
+ private static FilterRuleApplication instance = null;
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterSignatures.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterSignatures.java
new file mode 100644
index 00000000000..69e040f9676
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterSignatures.java
@@ -0,0 +1,50 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.transformations.filters;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.qompass.designer.core.listeners.PreCopyListener;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
+import org.eclipse.uml2.uml.TemplateSignature;
+
+
+/**
+ * Remove signatures from package template (only remove signatures within the
+ * template, not others)
+ *
+ * @author ansgar
+ *
+ */
+public class FilterSignatures implements PreCopyListener {
+
+ public static FilterSignatures getInstance() {
+ if (instance == null) {
+ instance = new FilterSignatures();
+ }
+ return instance;
+ }
+
+ @Override
+ public EObject preCopyEObject(LazyCopier copy, EObject sourceEObj) {
+ if (sourceEObj instanceof TemplateSignature) {
+ if (copy.withinTemplate(sourceEObj)) {
+ return null;
+ }
+ }
+ return sourceEObj;
+ }
+
+ private static FilterSignatures instance = null;
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterStateMachines.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterStateMachines.java
new file mode 100644
index 00000000000..3111104d984
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterStateMachines.java
@@ -0,0 +1,95 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.transformations.filters;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.papyrus.qompass.designer.core.StUtils;
+import org.eclipse.papyrus.qompass.designer.core.listeners.PreCopyListener;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
+import org.eclipse.uml2.uml.Behavior;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.Region;
+import org.eclipse.uml2.uml.StateMachine;
+import org.eclipse.uml2.uml.Transition;
+
+/**
+ * This filter copies the effect of transitions to the class level.
+ */
+public class FilterStateMachines implements PreCopyListener {
+
+ public static FilterStateMachines getInstance() {
+ if (instance == null) {
+ instance = new FilterStateMachines();
+ }
+ return instance;
+ }
+
+ @Override
+ public EObject preCopyEObject(LazyCopier copy, EObject sourceEObj) {
+ if (sourceEObj instanceof StateMachine) {
+ StateMachine sm = (StateMachine) sourceEObj;
+ Class tmClass = getTargetClass(copy, sm);
+
+ // copy opaque behavior in state machine to class level
+ for (Region region : sm.getRegions()) {
+ for (Transition transition : region.getTransitions()) {
+ Behavior effect = transition.getEffect();
+ if (effect != null) {
+ if (tmClass != null) {
+ String newName = sm.getName() + "_" + transition.getName() //$NON-NLS-1$
+ + "_" + effect.getName(); //$NON-NLS-1$
+ moveBehavior(newName, tmClass, effect);
+ }
+ }
+ }
+ }
+ // remove state machine
+ return null;
+ }
+ return sourceEObj;
+ }
+
+ public Class getTargetClass(LazyCopier copy, StateMachine sm) {
+ Element smOwner = sm.getOwner();
+ EObject tmOwner = copy.getMap(smOwner).get(smOwner);
+ if (tmOwner instanceof Class) {
+ return (Class) tmOwner;
+ }
+ return null;
+ }
+
+ public void moveBehavior(String newName, Class tmClass, Behavior effect) {
+ Behavior copiedEffect = EcoreUtil.copy(effect);
+ if (tmClass.getOwnedOperation(newName, null, null) != null) {
+ // has already been added
+ return;
+ }
+ Operation operation = tmClass.createOwnedOperation(newName, null, null);
+ for (Parameter parameter : effect.getOwnedParameters()) {
+ Parameter newParameter = EcoreUtil.copy(parameter);
+ operation.getOwnedParameters().add(newParameter);
+ StUtils.copyStereotypes(parameter, newParameter);
+ }
+ copiedEffect.setSpecification(operation);
+ copiedEffect.setName(newName);
+ tmClass.getOwnedBehaviors().add(copiedEffect);
+ }
+
+ private static FilterStateMachines instance = null;
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterTemplate.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterTemplate.java
new file mode 100644
index 00000000000..288fc1ab64a
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterTemplate.java
@@ -0,0 +1,75 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.transformations.filters;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.FCM.InteractionComponent;
+import org.eclipse.papyrus.qompass.designer.core.listeners.PreCopyListener;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Connector;
+import org.eclipse.uml2.uml.Element;
+
+
+/**
+ * Do not copy connector related elements, i.e.
+ * 1. UML connectors with stereotype FCM.Connector
+ * The rationale behind this is that we want to avoid copying a FCM connector from the source model
+ * into the target model since the target model should only contain the reified form of the connector
+ *
+ * 2. UML classes that are stereotyped as interaction components
+ * We do not want to copy interaction components, since they typically need to be instantiated.
+ * TODO: there is no check whether we are actually in a template. An interaction component might be fixed (i.e. not
+ * depend on template instantiation) and needs to be copied in this case.
+ * (in most cases, these are not copied anyway, since these are in a different model,
+ * but we do not want to exclude the case of defining model-local connectors)
+ *
+ */
+public class FilterTemplate implements PreCopyListener {
+
+ public FilterTemplate() {
+ active = true;
+ }
+
+ public static FilterTemplate getInstance() {
+ if (instance == null) {
+ instance = new FilterTemplate();
+ }
+ return instance;
+ }
+
+ @Override
+ public EObject preCopyEObject(LazyCopier copy, EObject sourceEObj) {
+ if (active && (sourceEObj instanceof Element)) {
+ Element sourceElem = (Element) sourceEObj;
+ if ((sourceEObj instanceof Connector) && StereotypeUtil.isApplied(sourceElem, org.eclipse.papyrus.FCM.Connector.class)) {
+ // return null;
+ }
+ if ((sourceEObj instanceof Class) && StereotypeUtil.isApplied(sourceElem, InteractionComponent.class)) {
+ return null;
+ }
+ }
+ return sourceEObj;
+ }
+
+ public void setActive(boolean active) {
+ this.active = active;
+ }
+
+ private boolean active;
+
+ private static FilterTemplate instance = null;
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FixTemplateSync.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FixTemplateSync.java
new file mode 100644
index 00000000000..fdb7c64d06d
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FixTemplateSync.java
@@ -0,0 +1,56 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.transformations.filters;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.qompass.designer.core.Utils;
+import org.eclipse.papyrus.qompass.designer.core.listeners.PostCopyListener;
+import org.eclipse.papyrus.qompass.designer.core.sync.CompImplSync;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
+import org.eclipse.uml2.uml.Behavior;
+import org.eclipse.uml2.uml.Class;
+
+/**
+ * Synchronize derived realizations (after copying). If re-synchronization is not done, the
+ * relationship would point to wrong interface, if it is derived and depending on a formal parameter.
+ * (e.g. derived push interface with formal parameter T would be at wrong location).
+ * TODO: need better explanation. Solution is quite a hack.
+ */
+public class FixTemplateSync implements PostCopyListener {
+
+ public static FixTemplateSync getInstance() {
+ if (instance == null) {
+ instance = new FixTemplateSync();
+ }
+ return instance;
+ }
+
+ @Override
+ public void postCopyEObject(LazyCopier copy, EObject targetEObj) {
+ // if (copy.get(sourceEObj) isWithinTemplate)
+ if (!(targetEObj instanceof Behavior)) {
+ if ((targetEObj instanceof Class) && Utils.isCompImpl((Class) targetEObj)) {
+ Class implementation = (Class) targetEObj;
+ CompImplSync.updatePorts(implementation);
+ CompImplSync.syncRealizations(implementation);
+ // commented out, since it causes dangling references
+ // TODO: why needed originally? (
+ // CompImplSync.syncDerivedOperations(implementation);
+ }
+ }
+ }
+
+ private static FixTemplateSync instance = null;
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/.classpath b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/.classpath
new file mode 100644
index 00000000000..248b4c5dc7a
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="xtend-gen"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/.project b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/.project
new file mode 100644
index 00000000000..e75a53b4f3e
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.qompass.designer.cpp</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/.settings/org.eclipse.jdt.core.prefs b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..f42de363afa
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/META-INF/MANIFEST.MF b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..a104bc94858
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/META-INF/MANIFEST.MF
@@ -0,0 +1,21 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ com.google.guava;bundle-version="11.0.0",
+ org.eclipse.xtext.xbase.lib,
+ org.eclipse.xtend.lib,
+ org.eclipse.xtend.lib.macro,
+ org.eclipse.papyrus.qompass.designer.core;bundle-version="1.2.0",
+ org.eclipse.uml2.uml;bundle-version="5.0.1",
+ org.eclipse.papyrus.uml.tools.utils;bundle-version="1.2.0",
+ org.eclipse.papyrus.cpp.profile;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.tools;bundle-version="1.2.0"
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-Version: 1.2.0.qualifier
+Bundle-Name: %pluginName
+Bundle-Localization: plugin
+Bundle-ManifestVersion: 2
+Bundle-Activator: org.eclipse.papyrus.qompass.designer.cpp.Activator
+Bundle-SymbolicName: org.eclipse.papyrus.qompass.designer.cpp;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.7
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/about.html b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/about.html
new file mode 100644
index 00000000000..209103075a7
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>November 14, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/build.properties b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/build.properties
new file mode 100644
index 00000000000..3fa3c740b2b
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/build.properties
@@ -0,0 +1,8 @@
+source.. = src/,\
+ xtend-gen/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ about.html,\
+ plugin.properties,\
+ plugin.xml
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/plugin.properties b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/plugin.properties
new file mode 100644
index 00000000000..41efca52119
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/plugin.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2013 CEA LIST.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# CEA LIST - initial API and implementation
+###############################################################################
+pluginName=Papyrus extra: Qompass Designer C++ support (Incubation)
+providerName=Eclipse Modeling Project
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/plugin.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/plugin.xml
new file mode 100644
index 00000000000..7e269f6b934
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/plugin.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.papyrus.qompass.designer.core.ooTransformation">
+ <client
+ class="org.eclipse.papyrus.qompass.designer.cpp.xtend.StaticCppToOO"
+ ooTrafoID="org.eclipse.papyrus.qompass.designer.cpp.StaticCpp">
+ </client>
+ </extension>
+ <extension
+ point="org.eclipse.papyrus.qompass.designer.core.ooTransformation">
+ <client
+ class="org.eclipse.papyrus.qompass.designer.cpp.xtend.DynamicCppToOO"
+ ooTrafoID="org.eclipse.papyrus.qompass.designer.cpp.DynamicCpp">
+ </client>
+ </extension>
+</plugin>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/pom.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/pom.xml
new file mode 100644
index 00000000000..7ac5e5e3409
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/pom.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.qompass.designer.cpp</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-clean-plugin</artifactId>
+ <configuration>
+ <filesets>
+ <fileset>
+ <directory>xtend-gen</directory>
+ <includes>
+ <include>**/*</include>
+ </includes>
+ <excludes>
+ <exclude>.gitignore</exclude>
+ </excludes>
+ </fileset>
+ </filesets>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.eclipse.xtend</groupId>
+ <artifactId>xtend-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>compile</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <outputDirectory>xtend-gen</outputDirectory>
+ <testOutputDirectory>${project.build.directory}/xtend-gen/test</testOutputDirectory>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/Activator.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/Activator.java
new file mode 100644
index 00000000000..8d1c38fcd87
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/Activator.java
@@ -0,0 +1,50 @@
+package org.eclipse.papyrus.qompass.designer.cpp;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.qompass.designer.cpp"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/Constants.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/Constants.java
new file mode 100644
index 00000000000..546144c98e5
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/Constants.java
@@ -0,0 +1,9 @@
+package org.eclipse.papyrus.qompass.designer.cpp;
+
+public class Constants {
+ public static final String CREATE_CONNECTIONS = "createConnections"; //$NON-NLS-1$
+
+ public static final String progLang = "C/C++"; //$NON-NLS-1$
+
+ public static final String retParamName = "ret"; //$NON-NLS-1$
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/Messages.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/Messages.java
new file mode 100644
index 00000000000..ae3f8380e5b
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/Messages.java
@@ -0,0 +1,19 @@
+package org.eclipse.papyrus.qompass.designer.cpp;
+
+import org.eclipse.osgi.util.NLS;
+
+public class Messages extends NLS {
+ private static final String BUNDLE_NAME = "org.eclipse.papyrus.qompass.designer.cpp.messages"; //$NON-NLS-1$
+
+ public static String CompImplTrafos_CannotFindType;
+ public static String CompImplTrafos_IntfNotImplemented;
+ public static String CompTypeTrafos_CannotFindType;
+
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ private Messages() {
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/messages.properties b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/messages.properties
new file mode 100644
index 00000000000..c4c2141c7e6
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/messages.properties
@@ -0,0 +1,3 @@
+CompImplTrafos_CannotFindType=Can not find type %s. Thus, unable to create suitable connect operation in component to OO transformation.
+CompImplTrafos_IntfNotImplemented=Interface <%s> provided by port <%s> of class <%s> is not implemented by the component itself nor does the port delegate to a part
+CompTypeTrafos_CannotFindType=Can not find type <%s>. Thus, unable to create suitable connect operation in component to OO transformation
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/xtend/CppPortMapping.xtend b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/xtend/CppPortMapping.xtend
new file mode 100644
index 00000000000..05dd7c50459
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/xtend/CppPortMapping.xtend
@@ -0,0 +1,553 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.qompass.designer.cpp.xtend
+
+import org.eclipse.papyrus.qompass.designer.core.extensions.IOOTrafo
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier
+import org.eclipse.uml2.uml.Class
+import org.eclipse.uml2.uml.Property
+import org.eclipse.uml2.uml.Port
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException
+import org.eclipse.papyrus.qompass.designer.core.PortInfo
+import org.eclipse.papyrus.qompass.designer.core.PortUtils
+import org.eclipse.papyrus.qompass.designer.core.transformations.PrefixConstants
+import org.eclipse.papyrus.qompass.designer.core.Utils
+import org.eclipse.papyrus.qompass.designer.core.transformations.CompTypeTrafos
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil
+import org.eclipse.uml2.uml.AggregationKind
+import org.eclipse.uml2.uml.UMLPackage
+import org.eclipse.uml2.uml.OpaqueBehavior
+import org.eclipse.uml2.uml.ConnectorEnd
+import org.eclipse.papyrus.uml.tools.utils.ConnectorUtil
+import org.eclipse.papyrus.C_Cpp.Ptr
+import org.eclipse.uml2.uml.Type
+import java.util.HashMap
+import java.util.Map
+import org.eclipse.uml2.uml.Connector
+import org.eclipse.emf.common.util.EList
+import org.eclipse.uml2.uml.StructuralFeature
+import org.eclipse.papyrus.qompass.designer.cpp.Messages
+import org.eclipse.papyrus.qompass.designer.cpp.Constants
+import static extension org.eclipse.papyrus.qompass.designer.cpp.xtend.CppUtils.nameRef;
+import org.eclipse.papyrus.uml.tools.utils.PackageUtil
+
+/**
+ * This class realizes the transformation from component-based to object-oriented
+ * models. It includes the replacement of ports and connectors. Ports are
+ * replaced with attributes and access operations, connectors within a composite
+ * by an operation that creates the initial setup.
+ *
+ * 1. add an operation that allows to retrieve the reference to an interface provided
+ * by a port. This operation has a mapping specific name, e.g. get_<port_name>
+ * 2. add an operation that allows to connect a specific port.
+ * the connect_q operation (*including a
+ * storage attribute*) for a port with a required interface
+ * 3. add an implementation for the getcnx_q operation for a port
+ * with a required interface (the operation itself has been added before)
+ *
+ * TODO: C++ specific, support different "component to OO" mappings
+ *
+ * Problems: need to align bootloader creation with this mapping, since
+ * the bootloader may be responsible for instantiation
+ *
+ * Caveat: Assure that the folder derivedInterfaces already exists in a model.
+ * Otherwise the call to getProvided/getRequired interface might trigger its
+ * creation resulting in the corruption of list iterators (ConcurrentAccess
+ * exception)
+ *
+ */
+class CppPortMapping implements IOOTrafo {
+
+ // protected LazyCopier copier
+
+ def override init(LazyCopier copier, Class bootloader) {
+ // this.copier = copier
+ }
+
+ override addPortOperations(Class implementation) {
+ addGetPortOperation(implementation)
+ addConnectPortOperation(implementation)
+ }
+
+ /**
+ * Add the get_p operation for each port with a provided interface. It also
+ * adds a suitable implementation that evaluates delegation connectors from
+ * the port to a property within the composite. The delegation target could
+ * either be a normal class (no port) or an inner component.
+ *
+ * @param implementation
+ */
+ def addGetPortOperation(Class implementation) {
+ for (PortInfo portInfo : PortUtils.flattenExtendedPorts(PortUtils.getAllPorts2(implementation))) {
+ val providedIntf = portInfo.getProvided()
+ if (providedIntf != null) {
+
+ // port provides an interface, add "get_p" operation &
+ // implementation
+ val opName = PrefixConstants.getP_Prefix + portInfo.name
+ var op = implementation.getOwnedOperation(opName, null, null)
+ if (op != null) {
+
+ // operation already exists. Assume that user wants to
+ // override standard delegation
+ if (op.type != providedIntf) {
+ op.createOwnedParameter(Constants.retParamName, providedIntf)
+ }
+ } else {
+ op = implementation.createOwnedOperation(opName, null, null, providedIntf)
+ val retParam = op.getOwnedParameters().get(0)
+ retParam.setName(Constants.retParamName)
+ StereotypeUtil.apply(retParam, Ptr)
+
+ val behavior = implementation.createOwnedBehavior(opName, UMLPackage.eINSTANCE.getOpaqueBehavior()) as OpaqueBehavior
+ op.getMethods().add(behavior)
+
+ val ce = ConnectorUtil.getDelegation(implementation, portInfo.getModelPort())
+
+ // if there is an delegation to an inner property, delegate to
+ // it
+ // Make distinction between delegation to component (with a
+ // port) or
+ // "normal" class (without).
+ var String body
+ if (ce != null) {
+ val part = ce.partWithPort
+ val role = ce.role
+
+ body = "return "
+ if (role instanceof Port) {
+
+ // check whether the part exists within the implementation (might not be the case
+ // due to partially copied composites).
+ // Check is based on names, since the connector points to elements within another
+ // model (copyClassifier does not make a proper connector copy)
+ // TODO: this will NOT work for extended ports!
+ body += '''«part.nameRef»«PrefixConstants.getP_Prefix»«role.name»();'''
+ } else {
+
+ // role is not a port: connector connects directly to a
+ // structural feature
+ // without passing via a port
+ // TODO: check whether structural feature exists
+ body += role.name
+ }
+ } else {
+
+ // no delegation, check whether port implements provided interface
+ var implementsIntf = implementation.getInterfaceRealization(null, providedIntf) != null
+ if (!implementsIntf) {
+ // TODO: This is a hack/workaround. Fix on level of extended port.
+ // The extended port itself is not copied to the target
+ // model (since referenced via a stereotype). Therefore,
+ // a port of an extended port still points to the
+ // original model. We try whether the providedIntf
+ // within the target model is within the interface
+ // realizations.
+
+ // val providedIntfInCopy = copier.getCopy(providedIntf)
+ // implementsIntf = implementation.getInterfaceRealization(null, providedIntfInCopy) != null
+ }
+ if (implementsIntf) {
+ body = "return this;"
+ } else {
+ throw new RuntimeException(
+ String.format(Messages.CompImplTrafos_IntfNotImplemented, providedIntf.name,
+ portInfo.port.name, implementation.name))
+ }
+ }
+ behavior.getLanguages().add(Constants.progLang)
+ behavior.getBodies().add(body)
+ }
+ }
+ }
+ }
+
+ /**
+ * Add a connect_<portName> operation for ports with a required interface.
+ * Whereas operation and a behavior is added for each owned port, a behavior
+ * (method) is needed for ports inherited from a component type (the
+ * behavior is implementation specific, as it needs to take delegation to
+ * parts into account)
+ *
+ * @param implementation
+ */
+ static def addConnectPortOperation(Class implementation) {
+ for (PortInfo portInfo : PortUtils.flattenExtendedPorts(PortUtils.getAllPorts2(implementation))) {
+ val requiredIntf = portInfo.getRequired()
+ if (requiredIntf != null) {
+
+ // port requires an interface, add "connect_p" operation &
+ // implementation
+ val opName = PrefixConstants.connectQ_Prefix + portInfo.name
+
+ if (implementation.getOwnedOperation(opName, null, null) != null) {
+ // do not add the operation, if it already exists. This means that the
+ // user wants to override it with custom behavior. In case of extended
+ // ports, we may have to do that.
+ } else {
+ var op = implementation.createOwnedOperation(opName, null, null)
+ val boolean multiPort = (portInfo.getUpper() > 1) || (portInfo.getUpper() == -1) // -1 indicates "*"
+ if (multiPort) {
+
+ // add index parameter
+ val eLong = Utils.getQualifiedElement(PackageUtil.getRootPackage(implementation),
+ CompTypeTrafos.INDEX_TYPE_FOR_MULTI_RECEPTACLE)
+ if (eLong instanceof Type) {
+ op.createOwnedParameter("index", eLong as Type)
+ } else {
+ throw new RuntimeException(
+ String.format(Messages.CompImplTrafos_CannotFindType,
+ CompTypeTrafos.INDEX_TYPE_FOR_MULTI_RECEPTACLE))
+ }
+ }
+ val refParam = op.createOwnedParameter("ref", requiredIntf)
+ StereotypeUtil.apply(refParam, Ptr)
+
+ val behavior = implementation.createOwnedBehavior(opName, UMLPackage.eINSTANCE.getOpaqueBehavior()) as OpaqueBehavior
+
+ op.getMethods().add(behavior)
+
+ val ConnectorEnd ce = ConnectorUtil.getDelegation(implementation, portInfo.getModelPort())
+
+ // if there is an delegation to an inner property, delegate to it
+ // Make distinction between delegation to component (with a port) or
+ // "normal" class (without).
+ var String body
+ if (ce != null) {
+ val part = ce.partWithPort
+ body = part.name
+ val role = ce.role
+ if (role instanceof Port) {
+ // in case of a delegation, use name of target port which might be different
+ val targetOpName = PrefixConstants.connectQ_Prefix + role.name
+ body = '''«part.nameRef»«targetOpName»'''
+
+ // TODO: no check that multiplicity of both port matches
+ if ((portInfo.getUpper() > 1) || (portInfo.getUpper() == -1)) {
+ body += "(index, ref);";
+ }
+ else {
+ body += "(ref);";
+ }
+
+ } else {
+ // TODO: does this case make sense?
+ body += '''«part.name»;'''
+ }
+ } else {
+ // no delegation - create attribute for port
+ val attributeName = PrefixConstants.attributePrefix + portInfo.name
+ if (!Utils.hasNonPortOwnedAttribute(implementation, attributeName)) {
+ val attr = implementation.createOwnedAttribute(attributeName, requiredIntf)
+ LazyCopier.copyMultElemModifiers(portInfo.port, attr)
+
+ // is shared (should store a reference)
+ attr.setAggregation(AggregationKind.SHARED_LITERAL)
+ }
+ body = attributeName
+ if(multiPort) body += "[index]"
+ body += " = ref;"
+ }
+
+ // TODO: defined by template
+ behavior.getLanguages().add(Constants.progLang)
+ behavior.getBodies().add(body)
+
+ // -------------------------
+ // add body to get-connection operation (which exists already if the port is also
+ // owned, since it is synchronized automatically during model edit)
+ // getConnQ prefix may be empty to indicate that the port is accessed directly
+ // TODO: reconsider optimization that delegated required ports do not have a
+ // local attribute & associated operation (an inner class may delegate, but the
+ // composite may be using it as well).
+ if ((PrefixConstants.getConnQ_Prefix.length() > 0) && (ce != null)) {
+ val getConnOpName = PrefixConstants.getConnQ_Prefix + portInfo.name
+ var getConnOp = implementation.getOwnedOperation(getConnOpName, null, null)
+ if (getConnOp == null) {
+ getConnOp = implementation.createOwnedOperation(getConnOpName, null, null, requiredIntf)
+ val retParam = op.getOwnedParameters().get(0)
+ retParam.setName(Constants.retParamName)
+ StereotypeUtil.apply(retParam, Ptr)
+ }
+ val getConnBehavior = implementation.createOwnedBehavior(getConnOpName,
+ UMLPackage.eINSTANCE.getOpaqueBehavior()) as OpaqueBehavior
+ getConnOp.getMethods().add(getConnBehavior)
+
+ // no delegation
+ val String name = PrefixConstants.attributePrefix + portInfo.name
+ body = '''return «name»;'''
+ behavior.getLanguages().add(Constants.progLang)
+ behavior.getBodies().add(body)
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Add an operation "createConnections" that implements the connections
+ * between composite parts. It only takes the assembly connections into
+ * account, since delegation connectors are handled by the get_ and connect_
+ * port operations above.
+ *
+ * @param implementation
+ */
+ override addConnectionOperation(Class compositeImplementation) throws TransformationException {
+ var createConnBody = ""
+ val Map<ConnectorEnd, Integer> indexMap = new HashMap<ConnectorEnd, Integer>()
+
+ for (Connector connector : compositeImplementation.getOwnedConnectors()) {
+ if (ConnectorUtil.isAssembly(connector)) {
+
+ // Boolean associationBased = false
+ if (connector.ends.size() != 2) {
+ throw new TransformationException(
+ '''Connector <«connector.name»> does not have two ends. This is currently not supported''')
+ }
+ val end1 = connector.ends.get(0)
+ val end2 = connector.ends.get(1)
+ var cmd = '''// realization of connector <«connector.name»>\n'''
+ if ((end1.role instanceof Port) && PortUtils.isExtendedPort(end1.role as Port)) {
+ val port = end1.role as Port
+ val EList<PortInfo> subPorts = PortUtils.flattenExtendedPort(port)
+ for (PortInfo subPort : subPorts) {
+ cmd += ''' // realization of connection for sub-port «subPort.port.name»\n'''
+ cmd += connectPorts(indexMap, connector, end1, end2, subPort.port)
+ cmd += connectPorts(indexMap, connector, end2, end1, subPort.port)
+ }
+ } else {
+ cmd += connectPorts(indexMap, connector, end1, end2, null)
+ cmd += connectPorts(indexMap, connector, end2, end1, null)
+ }
+ createConnBody += cmd + "\n"
+ }
+ }
+
+ // TODO: use template, as in bootloader
+ if (createConnBody.length() > 0) {
+ val operation = compositeImplementation.createOwnedOperation(Constants.CREATE_CONNECTIONS, null, null)
+
+ val behavior = compositeImplementation.createOwnedBehavior("b:" + operation.name,
+ UMLPackage.eINSTANCE.getOpaqueBehavior()) as OpaqueBehavior
+ behavior.getLanguages().add(Constants.progLang)
+ behavior.getBodies().add(createConnBody)
+ behavior.setSpecification(operation)
+ }
+ }
+
+ /**
+ * Create the body C++ code code that creates a connection between the two ends
+ * of a connector. This function checks whether the first end really is a receptacle
+ * and the second really is a facet.
+ * TODO: cleaner rewrite in xtend
+ *
+ * @param indexMap
+ * a map of indices that are used in case of multiplex
+ * receptacles
+ * @param connector
+ * a connector
+ * @param receptacleEnd
+ * an end of the connector that may point to a receptacle port
+ * @param facetEnd
+ * an end of the connector that may point to a facet port
+ * @param subPort
+ * a sub-port in case of extended ports
+ * @return
+ * @throws TransformationException
+ */
+ static def connectPorts(Map<ConnectorEnd, Integer> indexMap, Connector connector, ConnectorEnd receptacleEnd,
+ ConnectorEnd facetEnd, Port subPort) throws TransformationException {
+ val association = connector.type
+ if ((receptacleEnd.role instanceof Port) && (facetEnd.role instanceof Port)) {
+ val facetPort = facetEnd.role as Port
+ val receptaclePort = receptacleEnd.role as Port
+ val facetPI = PortInfo.fromSubPort(facetPort, subPort)
+ val receptaclePI = PortInfo.fromSubPort(receptaclePort, subPort)
+
+ if ((facetPI.getProvided() != null) && (receptaclePI.getRequired() != null)) {
+ val facetPart = facetEnd.partWithPort
+ val receptaclePart = receptacleEnd.partWithPort
+
+ var subPortName = ""
+ if(subPort != null) subPortName += "_" + subPort.name
+ val indexName = getIndexName(indexMap, receptaclePort, receptacleEnd)
+ val setter = '''«receptaclePart.nameRef»connect_«receptaclePort.name» «subPortName»;'''
+ val getter = '''«facetPart.nameRef»get_«facetPort.name» «subPortName»()'''
+ return '''«setter»(«indexName»«getter»);\n'''
+ }
+
+ } else if (receptacleEnd.role instanceof Port) {
+
+ // only the receptacle end is of type port.
+ val Port receptaclePort = receptacleEnd.role as Port
+ if (PortUtils.getRequired(receptaclePort) != null) {
+ val facetPart = facetEnd.role as Property
+ val receptaclePart = facetEnd.partWithPort
+
+ val indexName = getIndexName(indexMap, receptaclePort, receptacleEnd)
+ val setter = '''«receptaclePart.nameRef»connect_«receptaclePort.name»'''
+ val getter = '''&«facetPart.name»'''
+ return '''«setter»(«indexName»«getter»);\n'''
+ }
+ } else if (facetEnd.role instanceof Port) {
+
+ // only the facet end is of type port. Unsupported combination
+ val facetPort = facetEnd.role as Port
+ if (PortUtils.getProvided(facetPort) != null) {
+ val facetPart = facetEnd.partWithPort
+ val receptaclePart = facetEnd.role as Property
+
+ val setter = receptaclePart.name
+ val getter = '''«facetPart.nameRef»get_«facetPort.name»();'''
+ return '''«setter» = «getter»;\n'''
+ }
+ } else if (association != null) {
+
+ // both connector ends do not target ports. In this case, we require that the connector is typed
+ // with an association. We use this association to find out which end is navigable and assume that
+ // the part pointed to by the other end is a pointer that gets initialized with the part of the
+ // navigable end.
+ val facetPart = facetEnd.role as Property
+ val receptaclePart = receptacleEnd.role as Property
+
+ val assocProp1 = association.getMemberEnd(null, facetPart.type)
+
+ // Property assocProp2 = facetPart.getOtherEnd()
+ if ((assocProp1 != null) && assocProp1.isNavigable) {
+ val setter = '''«receptaclePart.nameRef»«assocProp1.name»'''
+ val getter = '''&«facetPart.name»'''
+ return '''«setter» = «getter»;\n'''
+ }
+ } else {
+
+ // not handled (a connector not targeting a port must be typed)
+ throw new TransformationException(
+ "Connector <" + connector.name +
+ "> does not use ports, but it is not typed (only connectors between ports should not be typed)")
+ }
+ return ""
+ }
+
+ /**
+ * Handle ports with multiplicity > 1. The idea is that we could have
+ * multiple connections targeting a receptacle. The first connection would
+ * start with index 0. Implementations can make no assumption which
+ * connection is associated with a certain index. [want to avoid associative
+ * array in runtime].
+ *
+ * @param port
+ * @param end
+ * @return
+ */
+ static def getIndexName(Map<ConnectorEnd, Integer> indexMap, Port port, ConnectorEnd end) {
+ if ((port.getUpper() > 1) || (port.getUpper() == -1)) {
+
+ // index depends of combination of property and port, use connector
+ // end as key
+ var indexValue = indexMap.get(end)
+ if (indexValue == null) {
+ indexValue = 0
+ indexMap.put(end, indexValue)
+ }
+ var index = indexValue + ", "
+ indexValue++
+ indexMap.put(end, indexValue)
+ return index
+ }
+ return ""
+ }
+
+ /**
+ * Return true, if the bootloader is responsible for the instantiation of a
+ * part. [Structual difference: bootloader can decide instance based - and
+ * instances are deployed]
+ *
+ * If a part is a component type or an abstract implementation, it cannot be
+ * instantiated. Thus, a heir has to be selected in the deployment plan.
+ * Since the selection might be different for different instances of the
+ * composite, the instantiation is not done by the component itself, but by
+ * the bootloader. The bootloader also has to instantiate, if different
+ * allocation variants are required. (this is for instance the case for
+ * distribution connectors and for the system itself)
+ *
+ * If possible, we want to let composites instantiate sub-components, since
+ * this eases the transition to systems which support reconfiguration.
+ *
+ * [TODO: optimization: analyze whether the deployment plan selects a single
+ * implementation. If yes, let the composite instantiate]
+ *
+ * [TODO: elements within an assembly need to be instantiated by composite -
+ * if System - by bootloader. assembly also need to be instantiated by
+ * composite!!
+ *
+ * @param implementation
+ * @return
+ */
+ static def instantiateViaBootloader(Class implementation) {
+ return implementation.isAbstract() || Utils.isAssembly(implementation)
+ }
+
+ /**
+ * Return whether a part needs to be instantiated by the bootloader instead
+ * by the composite in which it is contained. The criteria is based on the
+ * question whether the containing composite is flattened, as it is the case
+ * for the system component and the interaction components for distribution.
+ *
+ * @param part
+ * @return
+ */
+ static def instantiateViaBootloader(StructuralFeature part) {
+ if (part != null) {
+ if (part.type instanceof Class) {
+ val implementation = part.type as Class
+
+ // TODO: wrong criteria? (must be shared or not?)
+ return instantiateViaBootloader(implementation)
+ } else {
+
+ // not a class, assume primitive type instantiated by composite
+ return false
+ }
+ }
+ return false
+ }
+
+ /**
+ * Transform parts if necessary.
+ *
+ * If the bootloader is responsible for creating an instance (if it is a
+ * abstract type), mark the associated part as a C++ pointer. We do not want
+ * to change the aggregation kind, since it remains logically a composition,
+ * it is merely an implementation issue that it must be a pointer for C++ if
+ * the concrete type is not yet known.
+ *
+ * @param compositeImplementation
+ * a (composite) component
+ */
+ override transformParts(Class compositeImplementation) {
+
+ for (Property attribute : Utils.getParts(compositeImplementation)) {
+ val type = attribute.type
+ if (type instanceof Class) {
+ val cl = type as Class
+
+ // => requires adaptations of boot-loader which is then only
+ // responsible for creating instances corresponding to types
+ if (instantiateViaBootloader(cl)) {
+ StereotypeUtil.apply(attribute, Ptr)
+ }
+ }
+ }
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/xtend/CppUtils.xtend b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/xtend/CppUtils.xtend
new file mode 100644
index 00000000000..1d568623d14
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/xtend/CppUtils.xtend
@@ -0,0 +1,26 @@
+package org.eclipse.papyrus.qompass.designer.cpp.xtend
+
+import org.eclipse.uml2.uml.Property ;
+import org.eclipse.uml2.uml.AggregationKind
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil
+import org.eclipse.papyrus.C_Cpp.Ptr
+
+public class CppUtils {
+ public static def nameRef(Property part) {
+ part.name + refOp(part)
+ }
+
+ /**
+ * return the operator for (de-) referencing a part. If the part is
+ * instantiate via the bootloader, it becomes a pointer. If it is
+ * instantiated by the composite itself, it is not a pointer, it will be
+ * instantiated along with the composite
+ *
+ * @param part
+ * @return
+ */
+ public static def refOp(Property part) {
+ if((part.getAggregation() == AggregationKind.SHARED_LITERAL) || StereotypeUtil.isApplied(part, Ptr)) "->" else "."
+ }
+
+} \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/xtend/DynamicCpptoOO.xtend b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/xtend/DynamicCpptoOO.xtend
new file mode 100644
index 00000000000..15a4477e2e4
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/xtend/DynamicCpptoOO.xtend
@@ -0,0 +1,505 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.qompass.designer.cpp.xtend
+
+import org.eclipse.papyrus.qompass.designer.core.extensions.IOOTrafo
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier
+import org.eclipse.uml2.uml.Class
+import org.eclipse.uml2.uml.Property
+import org.eclipse.uml2.uml.Port
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException
+import org.eclipse.papyrus.qompass.designer.core.PortInfo
+import org.eclipse.papyrus.qompass.designer.core.PortUtils
+import org.eclipse.papyrus.qompass.designer.core.transformations.PrefixConstants
+import org.eclipse.papyrus.qompass.designer.core.Utils
+import org.eclipse.papyrus.qompass.designer.core.transformations.CompTypeTrafos
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil
+import org.eclipse.uml2.uml.AggregationKind
+import org.eclipse.uml2.uml.UMLPackage
+import org.eclipse.uml2.uml.OpaqueBehavior
+import org.eclipse.uml2.uml.ConnectorEnd
+import org.eclipse.papyrus.uml.tools.utils.ConnectorUtil
+import org.eclipse.papyrus.C_Cpp.Ptr
+import org.eclipse.uml2.uml.Type
+import java.util.HashMap
+import java.util.Map
+import org.eclipse.uml2.uml.Connector
+import org.eclipse.emf.common.util.EList
+import org.eclipse.papyrus.qompass.designer.cpp.Messages
+import org.eclipse.papyrus.qompass.designer.cpp.Constants
+import static extension org.eclipse.papyrus.qompass.designer.cpp.xtend.CppUtils.nameRef;
+import org.eclipse.papyrus.uml.tools.utils.PackageUtil
+
+/**
+ * This class realizes the dynamic variant of the OO-transformation
+ *
+ */
+class DynamicCppToOO implements IOOTrafo {
+
+ protected LazyCopier copier
+
+ val static final String PART_MANAGER = "services::PartManager"
+
+ val static final String INIT_PARTS = "initParts"
+
+ // name of generic "parts" attribute for dynamic deployment (TODO: should be inherited)
+ val static final String PARTS = "parts"
+
+ val static final String progLang = "C/C++"
+
+ protected Class bootloader // why required?
+
+ def override init(LazyCopier copier, Class bootloader) {
+ this.copier = copier
+ this.bootloader = bootloader
+ }
+
+ override addPortOperations(Class implementation) {
+ addGetPortOperation(implementation)
+ addConnectPortOperation(implementation)
+ }
+
+ /**
+ * Add the get_p operation for each port with a provided interface. It also
+ * adds a suitable implementation that evaluates delegation connectors from
+ * the port to a property within the composite. The delegation target could
+ * either be a normal class (no port) or an inner component.
+ *
+ * @param implementation
+ */
+ def addGetPortOperation(Class implementation) {
+ for (PortInfo portInfo : PortUtils.flattenExtendedPorts(PortUtils.getAllPorts2(implementation))) {
+ val providedIntf = portInfo.getProvided()
+ if (providedIntf != null) {
+
+ // port provides an interface, add "get_p" operation &
+ // implementation
+ val opName = PrefixConstants.getP_Prefix + portInfo.name
+ var op = implementation.getOwnedOperation(opName, null, null)
+ if (op != null) {
+
+ // operation already exists. Assume that user wants to
+ // override standard delegation
+ if (op.type != providedIntf) {
+ op.createOwnedParameter(Constants.retParamName, providedIntf)
+ }
+ } else {
+ op = implementation.createOwnedOperation(opName, null, null, providedIntf)
+ val retParam = op.getOwnedParameters().get(0)
+ retParam.setName(Constants.retParamName)
+ StereotypeUtil.apply(retParam, Ptr)
+
+ val behavior = implementation.createOwnedBehavior(opName, UMLPackage.eINSTANCE.getOpaqueBehavior()) as OpaqueBehavior
+ op.getMethods().add(behavior)
+
+ val ce = ConnectorUtil.getDelegation(implementation, portInfo.getModelPort())
+
+ // if there is an delegation to an inner property, delegate to
+ // it
+ // Make distinction between delegation to component (with a
+ // port) or
+ // "normal" class (without).
+ var String body
+ if (ce != null) {
+ val part = ce.partWithPort
+ val role = ce.role
+
+ body = "return "
+ if (role instanceof Port) {
+
+ // check whether the part exists within the implementation (might not be the case
+ // due to partially copied composites).
+ // Check is based on names, since the connector points to elements within another
+ // model (copyClassifier does not make a proper connector copy)
+ // TODO: this will NOT work for extended ports!
+ body += '''«part.nameRef»«PrefixConstants.getP_Prefix»«role.name»();'''
+ } else {
+
+ // role is not a port: connector connects directly to a
+ // structural feature
+ // without passing via a port
+ // TODO: check whether structural feature exists
+ body += role.name
+ }
+ } else {
+
+ // no delegation, check whether port implements provided interface
+ var implementsIntf = implementation.getInterfaceRealization(null, providedIntf) != null
+ if (!implementsIntf) {
+
+ // The extended port itself is not copied to the target
+ // model (since referenced via a stereotype). Therefore,
+ // a port of an extended port still points to the
+ // original model. We try whether the providedIntf
+ // within
+ // the target model is within the interface
+ // realizations.
+ val providedIntfInCopy = copier.getCopy(providedIntf)
+ implementsIntf = implementation.getInterfaceRealization(null, providedIntfInCopy) != null
+ }
+ if (implementsIntf) {
+ body = "return this;"
+ } else {
+ throw new RuntimeException(
+ String.format(Messages.CompImplTrafos_IntfNotImplemented, providedIntf.name,
+ portInfo.port.name, implementation.name))
+ }
+ }
+ behavior.getLanguages().add(Constants.progLang)
+ behavior.getBodies().add(body)
+ }
+ }
+ }
+ }
+
+ /**
+ * Add a connect_<portName> operation for ports with a required interface.
+ * Whereas operation and a behavior is added for each owned port, a behavior
+ * (method) is needed for ports inherited from a component type (the
+ * behavior is implementation specific, as it needs to take delegation to
+ * parts into account)
+ *
+ * @param implementation
+ */
+ static def addConnectPortOperation(Class implementation) {
+ for (PortInfo portInfo : PortUtils.flattenExtendedPorts(PortUtils.getAllPorts2(implementation))) {
+ val requiredIntf = portInfo.getRequired()
+ if (requiredIntf != null) {
+
+ // port requires an interface, add "connect_p" operation &
+ // implementation
+ val opName = PrefixConstants.connectQ_Prefix + portInfo.name
+
+ if (implementation.getOwnedOperation(opName, null, null) != null) {
+ // do not add the operation, if it already exists. This means that the
+ // user wants to override it with custom behavior. In case of extended
+ // ports, we may have to do that.
+ } else {
+ var op = implementation.createOwnedOperation(opName, null, null)
+ val boolean multiPort = (portInfo.getUpper() > 1) || (portInfo.getUpper() == -1) // -1 indicates "*"
+ if (multiPort) {
+
+ // add index parameter
+ val eLong = Utils.getQualifiedElement(PackageUtil.getRootPackage(implementation),
+ CompTypeTrafos.INDEX_TYPE_FOR_MULTI_RECEPTACLE)
+ if (eLong instanceof Type) {
+ op.createOwnedParameter("index", eLong as Type)
+ } else {
+ throw new RuntimeException(
+ String.format(Messages.CompImplTrafos_CannotFindType,
+ CompTypeTrafos.INDEX_TYPE_FOR_MULTI_RECEPTACLE))
+ }
+ }
+ val refParam = op.createOwnedParameter("ref", requiredIntf)
+ StereotypeUtil.apply(refParam, Ptr)
+
+ val behavior = implementation.createOwnedBehavior(opName, UMLPackage.eINSTANCE.getOpaqueBehavior()) as OpaqueBehavior
+
+ op.getMethods().add(behavior)
+
+ val ConnectorEnd ce = ConnectorUtil.getDelegation(implementation, portInfo.getModelPort())
+
+ // if there is an delegation to an inner property, delegate to it
+ // Make distinction between delegation to component (with a port) or
+ // "normal" class (without).
+ var String body
+ if (ce != null) {
+ val part = ce.partWithPort
+ body = part.name
+ val role = ce.role
+ if (role instanceof Port) {
+ // in case of a delegation, use name of target port which might be different
+ val targetOpName = PrefixConstants.connectQ_Prefix + role.name
+ body = '''«part.nameRef»«targetOpName»'''
+
+ // TODO: no check that multiplicity of both port matches
+ if ((portInfo.getUpper() > 1) || (portInfo.getUpper() == -1)) {
+ body += "(index, ref);";
+ }
+ else {
+ body += "(ref);";
+ }
+
+ } else {
+ // TODO: does this case make sense?
+ body += '''«part.name»;'''
+ }
+ } else {
+ // no delegation - create attribute for port
+ val attributeName = PrefixConstants.attributePrefix + portInfo.name
+ if (!Utils.hasNonPortOwnedAttribute(implementation, attributeName)) {
+ val attr = implementation.createOwnedAttribute(attributeName, requiredIntf)
+ LazyCopier.copyMultElemModifiers(portInfo.port, attr)
+
+ // is shared (should store a reference)
+ attr.setAggregation(AggregationKind.SHARED_LITERAL)
+ }
+ body = attributeName
+ if(multiPort) body += "[index]"
+ body += " = ref;"
+ }
+
+ // TODO: defined by template
+ behavior.getLanguages().add(Constants.progLang)
+ behavior.getBodies().add(body)
+
+ // -------------------------
+ // add body to get-connection operation (which exists already if the port is also
+ // owned, since it is synchronized automatically during model edit)
+ // getConnQ prefix may be empty to indicate that the port is accessed directly
+ // TODO: reconsider optimization that delegated required ports do not have a
+ // local attribute & associated operation (an inner class may delegate, but the
+ // composite may be using it as well).
+ if ((PrefixConstants.getConnQ_Prefix.length() > 0) && (ce != null)) {
+ val getConnOpName = PrefixConstants.getConnQ_Prefix + portInfo.name
+ var getConnOp = implementation.getOwnedOperation(getConnOpName, null, null)
+ if (getConnOp == null) {
+ getConnOp = implementation.createOwnedOperation(getConnOpName, null, null, requiredIntf)
+ val retParam = op.getOwnedParameters().get(0)
+ retParam.setName(Constants.retParamName)
+ StereotypeUtil.apply(retParam, Ptr)
+ }
+ val getConnBehavior = implementation.createOwnedBehavior(getConnOpName,
+ UMLPackage.eINSTANCE.getOpaqueBehavior()) as OpaqueBehavior
+ getConnOp.getMethods().add(getConnBehavior)
+
+ // no delegation
+ val String name = PrefixConstants.attributePrefix + portInfo.name
+ body = '''return «name»;'''
+ behavior.getLanguages().add(Constants.progLang)
+ behavior.getBodies().add(body)
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Add an operation "createConnections" that implements the connections
+ * between composite parts. It only takes the assembly connections into
+ * account, since delegation connectors are handled by the get_ and connect_
+ * port operations above.
+ *
+ * @param implementation
+ */
+ override addConnectionOperation(Class compositeImplementation) throws TransformationException {
+ var createConnBody = ""
+ val Map<ConnectorEnd, Integer> indexMap = new HashMap<ConnectorEnd, Integer>()
+
+ for (Connector connector : compositeImplementation.getOwnedConnectors()) {
+ if (ConnectorUtil.isAssembly(connector)) {
+
+ // Boolean associationBased = false
+ if (connector.ends.size() != 2) {
+ throw new TransformationException(
+ '''Connector <«connector.name»> does not have two ends. This is currently not supported''')
+ }
+ val end1 = connector.ends.get(0)
+ val end2 = connector.ends.get(1)
+ var cmd = '''// realization of connector <«connector.name»>\n'''
+ if ((end1.role instanceof Port) && PortUtils.isExtendedPort(end1.role as Port)) {
+ val port = end1.role as Port
+ val EList<PortInfo> subPorts = PortUtils.flattenExtendedPort(port)
+ for (PortInfo subPort : subPorts) {
+ cmd += ''' // realization of connection for sub-port «subPort.port.name»\n'''
+ cmd += connectPorts(indexMap, connector, end1, end2, subPort.port)
+ cmd += connectPorts(indexMap, connector, end2, end1, subPort.port)
+ }
+ } else {
+ cmd += connectPorts(indexMap, connector, end1, end2, null)
+ cmd += connectPorts(indexMap, connector, end2, end1, null)
+ }
+ createConnBody += cmd + "\n"
+ }
+ }
+
+ // TODO: use template, as in bootloader
+ if (createConnBody.length() > 0) {
+ val operation = compositeImplementation.createOwnedOperation(Constants.CREATE_CONNECTIONS, null, null)
+
+ val behavior = compositeImplementation.createOwnedBehavior("b:" + operation.name,
+ UMLPackage.eINSTANCE.getOpaqueBehavior()) as OpaqueBehavior
+ behavior.getLanguages().add(Constants.progLang)
+ behavior.getBodies().add(createConnBody)
+ behavior.setSpecification(operation)
+ }
+ }
+
+ /**
+ * Create the body C++ code code that creates a connection between the two ends
+ * of a connector. This function checks whether the first end really is a receptacle
+ * and the second really is a facet.
+ * TODO: cleaner rewrite in xtend
+ *
+ * @param indexMap
+ * a map of indices that are used in case of multiplex
+ * receptacles
+ * @param connector
+ * a connector
+ * @param receptacleEnd
+ * an end of the connector that may point to a receptacle port
+ * @param facetEnd
+ * an end of the connector that may point to a facet port
+ * @param subPort
+ * a sub-port in case of extended ports
+ * @return
+ * @throws TransformationException
+ */
+ static def connectPorts(Map<ConnectorEnd, Integer> indexMap, Connector connector, ConnectorEnd receptacleEnd,
+ ConnectorEnd facetEnd, Port subPort) throws TransformationException {
+ val association = connector.type
+ if ((receptacleEnd.role instanceof Port) && (facetEnd.role instanceof Port)) {
+ val facetPort = facetEnd.role as Port
+ val receptaclePort = receptacleEnd.role as Port
+ val facetPI = PortInfo.fromSubPort(facetPort, subPort)
+ val receptaclePI = PortInfo.fromSubPort(receptaclePort, subPort)
+
+ if ((facetPI.getProvided() != null) && (receptaclePI.getRequired() != null)) {
+ val facetPart = facetEnd.partWithPort
+ val receptaclePart = receptacleEnd.partWithPort
+
+ var subPortName = ""
+ if(subPort != null) subPortName += "_" + subPort.name
+ val indexName = getIndexName(indexMap, receptaclePort, receptacleEnd)
+ val setter = '''«receptaclePart.nameRef»connect_«receptaclePort.name» «subPortName»;'''
+ val getter = '''«facetPart.nameRef»get_«facetPort.name» «subPortName»()'''
+ return '''«setter»(«indexName»«getter»);\n'''
+ }
+
+ } else if (receptacleEnd.role instanceof Port) {
+
+ // only the receptacle end is of type port.
+ val Port receptaclePort = receptacleEnd.role as Port
+ if (PortUtils.getRequired(receptaclePort) != null) {
+ val facetPart = facetEnd.role as Property
+ val receptaclePart = facetEnd.partWithPort
+
+ val indexName = getIndexName(indexMap, receptaclePort, receptacleEnd)
+ val setter = '''«receptaclePart.nameRef»connect_«receptaclePort.name»'''
+ val getter = '''&«facetPart.name»'''
+ return '''«setter»(«indexName»«getter»);\n'''
+ }
+ } else if (facetEnd.role instanceof Port) {
+
+ // only the facet end is of type port. Unsupported combination
+ val facetPort = facetEnd.role as Port
+ if (PortUtils.getProvided(facetPort) != null) {
+ val facetPart = facetEnd.partWithPort
+ val receptaclePart = facetEnd.role as Property
+
+ val setter = receptaclePart.name
+ val getter = '''«facetPart.nameRef»get_«facetPort.name»();'''
+ return '''«setter» = «getter»;\n'''
+ }
+ } else if (association != null) {
+
+ // both connector ends do not target ports. In this case, we require that the connector is typed
+ // with an association. We use this association to find out which end is navigable and assume that
+ // the part pointed to by the other end is a pointer that gets initialized with the part of the
+ // navigable end.
+ val facetPart = facetEnd.role as Property
+ val receptaclePart = receptacleEnd.role as Property
+
+ val assocProp1 = association.getMemberEnd(null, facetPart.type)
+
+ // Property assocProp2 = facetPart.getOtherEnd()
+ if ((assocProp1 != null) && assocProp1.isNavigable) {
+ val setter = '''«receptaclePart.nameRef»«assocProp1.name»'''
+ val getter = '''&«facetPart.name»'''
+ return '''«setter» = «getter»;\n'''
+ }
+ } else {
+
+ // not handled (a connector not targeting a port must be typed)
+ throw new TransformationException(
+ "Connector <" + connector.name +
+ "> does not use ports, but it is not typed (only connectors between ports should not be typed)")
+ }
+ return ""
+ }
+
+ /**
+ * Handle ports with multiplicity > 1. The idea is that we could have
+ * multiple connections targeting a receptacle. The first connection would
+ * start with index 0. Implementations can make no assumption which
+ * connection is associated with a certain index. [want to avoid associative
+ * array in runtime].
+ *
+ * @param port
+ * @param end
+ * @return
+ */
+ static def getIndexName(Map<ConnectorEnd, Integer> indexMap, Port port, ConnectorEnd end) {
+ if ((port.getUpper() > 1) || (port.getUpper() == -1)) {
+
+ // index depends of combination of property and port, use connector
+ // end as key
+ var indexValue = indexMap.get(end)
+ if (indexValue == null) {
+ indexValue = 0
+ indexMap.put(end, indexValue)
+ }
+ var index = indexValue + ", "
+ indexValue++
+ indexMap.put(end, indexValue)
+ return index
+ }
+ return ""
+ }
+
+ /**
+ * Transform parts if necessary.
+ *
+ * @param compositeImplementation
+ * a (composite) component
+ */
+ override transformParts(Class compositeImplementation) {
+
+/*
+ for (Property attribute : Utils.getParts(compositeImplementation)) {
+ val type = attribute.type
+ if (type instanceof Class) {
+ val cl = type as Class
+
+ // always transform into pointer (enable dynamic creation)
+ StereotypeUtil.apply(attribute, Ptr)
+ }
+ }
+*/
+ var String initPartsBody = ""
+ for (Property attribute : Utils.getParts(compositeImplementation)) {
+ val type = attribute.type;
+ if (type instanceof Class) {
+ initPartsBody += initPartBody(attribute);
+ attribute.destroy();
+ }
+ }
+
+ val partManager = Utils.getQualifiedElement(PackageUtil.getRootPackage(compositeImplementation), PART_MANAGER);
+ if (partManager instanceof Type) {
+ compositeImplementation.createOwnedAttribute(PARTS, partManager as Type);
+ }
+
+ val operation = compositeImplementation.createOwnedOperation(INIT_PARTS, null, null);
+
+ val behavior = compositeImplementation.createOwnedBehavior("b:" + operation.name, UMLPackage.eINSTANCE.opaqueBehavior)
+ as OpaqueBehavior
+ behavior.getLanguages().add(progLang);
+ behavior.getBodies().add(initPartsBody);
+ }
+
+ def initPartBody(Property part) {
+ "parts.add(" + part.getName() + ", " + part.getType() + ")"
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/xtend/StaticCppToOO.xtend b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/xtend/StaticCppToOO.xtend
new file mode 100644
index 00000000000..4788177ede6
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/xtend/StaticCppToOO.xtend
@@ -0,0 +1,550 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.qompass.designer.cpp.xtend
+
+import org.eclipse.papyrus.qompass.designer.core.extensions.IOOTrafo
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier
+import org.eclipse.uml2.uml.Class
+import org.eclipse.uml2.uml.Property
+import org.eclipse.uml2.uml.Port
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException
+import org.eclipse.papyrus.qompass.designer.core.PortInfo
+import org.eclipse.papyrus.qompass.designer.core.PortUtils
+import org.eclipse.papyrus.qompass.designer.core.transformations.PrefixConstants
+import org.eclipse.papyrus.qompass.designer.core.Utils
+import org.eclipse.papyrus.qompass.designer.core.transformations.CompTypeTrafos
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil
+import org.eclipse.uml2.uml.AggregationKind
+import org.eclipse.uml2.uml.UMLPackage
+import org.eclipse.uml2.uml.OpaqueBehavior
+import org.eclipse.uml2.uml.ConnectorEnd
+import org.eclipse.papyrus.uml.tools.utils.ConnectorUtil
+import org.eclipse.papyrus.C_Cpp.Ptr
+import org.eclipse.uml2.uml.Type
+import java.util.HashMap
+import java.util.Map
+import org.eclipse.uml2.uml.Connector
+import org.eclipse.emf.common.util.EList
+import org.eclipse.uml2.uml.StructuralFeature
+import org.eclipse.papyrus.qompass.designer.cpp.Messages
+import org.eclipse.papyrus.qompass.designer.cpp.Constants
+import static extension org.eclipse.papyrus.qompass.designer.cpp.xtend.CppUtils.nameRef;
+import org.eclipse.papyrus.uml.tools.utils.PackageUtil
+
+/**
+ * This class realizes the transformation from component-based to object-oriented
+ * models. It includes the replacement of ports and connectors. Ports are
+ * replaced with attributes and access operations, connectors within a composite
+ * by an operation that creates the initial setup.
+ *
+ * 1. add an operation that allows to retrieve the reference to an interface provided
+ * by a port. This operation has a mapping specific name, e.g. get_<port_name>
+ * 2. add an operation that allows to connect a specific port.
+ * the connect_q operation (*including a
+ * storage attribute*) for a port with a required interface
+ * 3. add an implementation for the getcnx_q operation for a port
+ * with a required interface (the operation itself has been added before)
+ *
+ * Problems: need to align bootloader creation with this mapping, since
+ * the bootloader may be responsible for instantiation
+ *
+ * Caveat: Assure that the folder derivedInterfaces already exists in a model.
+ * Otherwise the call to getProvided/getRequired interface might trigger its
+ * creation resulting in the corruption of list iterators (ConcurrentAccess
+ * exception)
+ */
+class StaticCppToOO implements IOOTrafo {
+
+ protected LazyCopier copier
+
+ def override init(LazyCopier copier, Class bootloader) {
+ this.copier = copier
+ }
+
+ override addPortOperations(Class implementation) {
+ // only implementations (non abstract classes) have get operations for ports
+ if (Utils.isCompImpl(implementation)) {
+ addGetPortOperation(implementation)
+ }
+ // but all classes need a connection operation, since it does not rely on an implementation
+ addConnectPortOperation(implementation)
+ }
+
+ /**
+ * Add the get_p operation for each port with a provided interface. It also
+ * adds a suitable implementation that evaluates delegation connectors from
+ * the port to a property within the composite. The delegation target could
+ * either be a normal class (no port) or an inner component.
+ *
+ * @param implementation
+ */
+ def addGetPortOperation(Class implementation) {
+ for (PortInfo portInfo : PortUtils.flattenExtendedPorts(PortUtils.getAllPorts2(implementation))) {
+ val providedIntf = portInfo.getProvided()
+ if (providedIntf != null) {
+
+ // port provides an interface, add "get_p" operation &
+ // implementation
+ val opName = PrefixConstants.getP_Prefix + portInfo.name
+ var op = implementation.getOwnedOperation(opName, null, null)
+ if (op != null) {
+
+ // operation already exists. Assume that user wants to
+ // override standard delegation
+ if (op.type != providedIntf) {
+ op.createOwnedParameter(Constants.retParamName, providedIntf)
+ }
+ } else {
+ op = implementation.createOwnedOperation(opName, null, null, providedIntf)
+ val retParam = op.getOwnedParameters().get(0)
+ retParam.setName(Constants.retParamName)
+ StereotypeUtil.apply(retParam, Ptr)
+
+ val behavior = implementation.createOwnedBehavior(opName,
+ UMLPackage.eINSTANCE.getOpaqueBehavior()) as OpaqueBehavior
+ op.getMethods().add(behavior)
+
+ val ce = ConnectorUtil.getDelegation(implementation, portInfo.getModelPort())
+
+ // if there is an delegation to an inner property, delegate to it
+ // Make distinction between delegation to component (with a port) or
+ // "normal" class (without).
+ var String body
+ if (ce != null) {
+ val part = ce.partWithPort
+ val role = ce.role
+
+ body = "return "
+ if (role instanceof Port) {
+
+ // check whether the part exists within the implementation (might not be the case
+ // due to partially copied composites).
+ // Check is based on names, since the connector points to elements within another
+ // model (copyClassifier does not make a proper connector copy)
+ // TODO: this will NOT work for extended ports!
+ body += '''«part.nameRef»«PrefixConstants.getP_Prefix»«role.name»();'''
+ } else {
+
+ // role is not a port: connector connects directly to a
+ // structural feature
+ // without passing via a port
+ // TODO: check whether structural feature exists
+ body += role.name
+ }
+ } else {
+
+ // no delegation, check whether port implements provided interface
+ var implementsIntf = implementation.getInterfaceRealization(null, providedIntf) != null
+ if (!implementsIntf) {
+
+ // The extended port itself is not copied to the target
+ // model (since referenced via a stereotype). Therefore,
+ // a port of an extended port still points to the
+ // original model. We try whether the providedIntf
+ // within
+ // the target model is within the interface
+ // realizations.
+ val providedIntfInCopy = copier.getCopy(providedIntf)
+ implementsIntf = implementation.getInterfaceRealization(null, providedIntfInCopy) != null
+ }
+ if (implementsIntf) {
+ body = "return this;"
+ } else {
+ throw new RuntimeException(
+ String.format(Messages.CompImplTrafos_IntfNotImplemented, providedIntf.name,
+ portInfo.port.name, implementation.name))
+ }
+ }
+ behavior.getLanguages().add(Constants.progLang)
+ behavior.getBodies().add(body)
+ }
+ }
+ }
+ }
+
+ /**
+ * Add a connect_<portName> operation for ports with a required interface.
+ * Whereas operation and a behavior is added for each owned port, a behavior
+ * (method) is needed for ports inherited from a component type (the
+ * behavior is implementation specific, as it needs to take delegation to
+ * parts into account)
+ *
+ * @param implementation
+ */
+ static def addConnectPortOperation(Class implementation) {
+ for (PortInfo portInfo : PortUtils.flattenExtendedPorts(PortUtils.getAllPorts2(implementation))) {
+ val requiredIntf = portInfo.getRequired()
+ if (requiredIntf != null) {
+
+ // port requires an interface, add "connect_p" operation &
+ // implementation
+ val opName = PrefixConstants.connectQ_Prefix + portInfo.name
+
+ if (implementation.getOwnedOperation(opName, null, null) != null) {
+ // do not add the operation, if it already exists. This means that the
+ // user wants to override it with custom behavior. In case of extended
+ // ports, we may have to do that.
+ } else {
+ var op = implementation.createOwnedOperation(opName, null, null)
+ val boolean multiPort = (portInfo.getUpper() > 1) || (portInfo.getUpper() == -1) // -1 indicates "*"
+ if (multiPort) {
+
+ // add index parameter
+ val eLong = Utils.getQualifiedElement(PackageUtil.getRootPackage(implementation),
+ CompTypeTrafos.INDEX_TYPE_FOR_MULTI_RECEPTACLE)
+ if (eLong instanceof Type) {
+ op.createOwnedParameter("index", eLong as Type)
+ } else {
+ throw new RuntimeException(
+ String.format(Messages.CompImplTrafos_CannotFindType,
+ CompTypeTrafos.INDEX_TYPE_FOR_MULTI_RECEPTACLE))
+ }
+ }
+ val refParam = op.createOwnedParameter("ref", requiredIntf)
+ StereotypeUtil.apply(refParam, Ptr)
+
+ val behavior = implementation.createOwnedBehavior(opName,
+ UMLPackage.eINSTANCE.getOpaqueBehavior()) as OpaqueBehavior
+
+ op.getMethods().add(behavior)
+
+ val ConnectorEnd ce = ConnectorUtil.getDelegation(implementation, portInfo.getModelPort())
+
+ // if there is an delegation to an inner property, delegate to it
+ // Make distinction between delegation to component (with a port) or
+ // "normal" class (without).
+ var String body
+ if (ce != null) {
+ val part = ce.partWithPort
+ body = part.name
+ val role = ce.role
+ if (role instanceof Port) {
+ // in case of a delegation, use name of target port which might be different
+ val targetOpName = PrefixConstants.connectQ_Prefix + role.name
+ body = '''«part.nameRef»«targetOpName»'''
+
+ // TODO: no check that multiplicity of both port matches
+ if ((portInfo.getUpper() > 1) || (portInfo.getUpper() == -1)) {
+ body += "(index, ref);"
+ } else {
+ body += "(ref);"
+ }
+
+ } else {
+ // TODO: does this case make sense?
+ body += '''«part.name»;'''
+ }
+ } else {
+ // no delegation - create attribute for port
+ val attributeName = PrefixConstants.attributePrefix + portInfo.name
+ if (!Utils.hasNonPortOwnedAttribute(implementation, attributeName)) {
+ val attr = implementation.createOwnedAttribute(attributeName, requiredIntf)
+ LazyCopier.copyMultElemModifiers(portInfo.port, attr)
+
+ // is shared (should store a reference)
+ attr.setAggregation(AggregationKind.SHARED_LITERAL)
+ }
+ body = attributeName
+ if(multiPort) body += "[index]"
+ body += " = ref;"
+ }
+
+ // TODO: defined by template
+ behavior.getLanguages().add(Constants.progLang)
+ behavior.getBodies().add(body)
+
+ // -------------------------
+ // add body to get-connection operation (which exists already if the port is also
+ // owned, since it is synchronized automatically during model edit)
+ // getConnQ prefix may be empty to indicate that the port is accessed directly
+ // TODO: reconsider optimization that delegated required ports do not have a
+ // local attribute & associated operation (an inner class may delegate, but the
+ // composite may be using it as well).
+ if ((PrefixConstants.getConnQ_Prefix.length() > 0) && (ce != null)) {
+ val getConnOpName = PrefixConstants.getConnQ_Prefix + portInfo.name
+ var getConnOp = implementation.getOwnedOperation(getConnOpName, null, null)
+ if (getConnOp == null) {
+ getConnOp = implementation.createOwnedOperation(getConnOpName, null, null, requiredIntf)
+ val retParam = op.getOwnedParameters().get(0)
+ retParam.setName(Constants.retParamName)
+ StereotypeUtil.apply(retParam, Ptr)
+ }
+ val getConnBehavior = implementation.createOwnedBehavior(getConnOpName,
+ UMLPackage.eINSTANCE.getOpaqueBehavior()) as OpaqueBehavior
+ getConnOp.getMethods().add(getConnBehavior)
+
+ // no delegation
+ val String name = PrefixConstants.attributePrefix + portInfo.name
+ body = '''return «name»;'''
+ behavior.getLanguages().add(Constants.progLang)
+ behavior.getBodies().add(body)
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Add an operation "createConnections" that implements the connections
+ * between composite parts. It only takes the assembly connections into
+ * account, since delegation connectors are handled by the get_ and connect_
+ * port operations above.
+ *
+ * @param implementation
+ */
+ override addConnectionOperation(Class compositeImplementation) throws TransformationException {
+ var createConnBody = ""
+ val Map<ConnectorEnd, Integer> indexMap = new HashMap<ConnectorEnd, Integer>()
+
+ for (Connector connector : compositeImplementation.getOwnedConnectors()) {
+ if (ConnectorUtil.isAssembly(connector)) {
+
+ // Boolean associationBased = false
+ if (connector.ends.size() != 2) {
+ throw new TransformationException(
+ '''Connector <«connector.name»> does not have two ends. This is currently not supported''')
+ }
+ val end1 = connector.ends.get(0)
+ val end2 = connector.ends.get(1)
+ var cmd = '''// realization of connector <«connector.name»>''' + "\n"
+ if ((end1.role instanceof Port) && PortUtils.isExtendedPort(end1.role as Port)) {
+ val port = end1.role as Port
+ val EList<PortInfo> subPorts = PortUtils.flattenExtendedPort(port)
+ for (PortInfo subPort : subPorts) {
+ cmd += ''' // realization of connection for sub-port «subPort.port.name»''' + "\n"
+ cmd += connectPorts(indexMap, connector, end1, end2, subPort.port)
+ cmd += connectPorts(indexMap, connector, end2, end1, subPort.port)
+ }
+ } else {
+ cmd += connectPorts(indexMap, connector, end1, end2, null)
+ cmd += connectPorts(indexMap, connector, end2, end1, null)
+ }
+ createConnBody += cmd + "\n"
+ }
+ }
+
+ // TODO: use template, as in bootloader
+ if (createConnBody.length() > 0) {
+ val operation = compositeImplementation.createOwnedOperation(Constants.CREATE_CONNECTIONS, null, null)
+
+ val behavior = compositeImplementation.createOwnedBehavior("b:" + operation.name,
+ UMLPackage.eINSTANCE.getOpaqueBehavior()) as OpaqueBehavior
+ behavior.getLanguages().add(Constants.progLang)
+ behavior.getBodies().add(createConnBody)
+ behavior.setSpecification(operation)
+ }
+ }
+
+ /**
+ * Create the body C++ code code that creates a connection between the two ends
+ * of a connector. This function checks whether the first end really is a receptacle
+ * and the second really is a facet.
+ *
+ * @param indexMap
+ * a map of indices that are used in case of multiplex
+ * receptacles
+ * @param connector
+ * a connector
+ * @param receptacleEnd
+ * an end of the connector that may point to a receptacle port
+ * @param facetEnd
+ * an end of the connector that may point to a facet port
+ * @param subPort
+ * a sub-port in case of extended ports
+ * @return
+ * @throws TransformationException
+ */
+ static def connectPorts(Map<ConnectorEnd, Integer> indexMap, Connector connector, ConnectorEnd receptacleEnd,
+ ConnectorEnd facetEnd, Port subPort) throws TransformationException {
+ val association = connector.type
+ if ((receptacleEnd.role instanceof Port) && (facetEnd.role instanceof Port)) {
+ val facetPort = facetEnd.role as Port
+ val receptaclePort = receptacleEnd.role as Port
+ val facetPI = PortInfo.fromSubPort(facetPort, subPort)
+ val receptaclePI = PortInfo.fromSubPort(receptaclePort, subPort)
+
+ if ((facetPI.getProvided() != null) && (receptaclePI.getRequired() != null)) {
+ val facetPart = facetEnd.partWithPort
+ val receptaclePart = receptacleEnd.partWithPort
+
+ var subPortName = ""
+ if(subPort != null) subPortName += "_" + subPort.name
+ val indexName = getIndexName(indexMap, receptaclePort, receptacleEnd)
+ val setter = '''«receptaclePart.nameRef»connect_«receptaclePort.name» «subPortName»'''
+ val getter = '''«facetPart.nameRef»get_«facetPort.name» «subPortName»()'''
+ return '''«setter»(«indexName»«getter»);''' + "\n"
+ }
+
+ } else if (receptacleEnd.role instanceof Port) {
+
+ // only the receptacle end is of type port.
+ val Port receptaclePort = receptacleEnd.role as Port
+ if (PortUtils.getRequired(receptaclePort) != null) {
+ val facetPart = facetEnd.role as Property
+ val receptaclePart = facetEnd.partWithPort
+
+ val indexName = getIndexName(indexMap, receptaclePort, receptacleEnd)
+ val setter = '''«receptaclePart.nameRef»connect_«receptaclePort.name»'''
+ val getter = '''&«facetPart.name»'''
+ return '''«setter»(«indexName»«getter»);''' + "\n"
+ }
+ } else if (facetEnd.role instanceof Port) {
+
+ // only the facet end is of type port. Unsupported combination
+ val facetPort = facetEnd.role as Port
+ if (PortUtils.getProvided(facetPort) != null) {
+ val facetPart = facetEnd.partWithPort
+ val receptaclePart = facetEnd.role as Property
+
+ val setter = receptaclePart.name
+ val getter = '''«facetPart.nameRef»get_«facetPort.name»();'''
+ return '''«setter» = «getter»;''' + "\n"
+ }
+ } else if (association != null) {
+
+ // both connector ends do not target ports. In this case, we require that the connector is typed
+ // with an association. We use this association to find out which end is navigable and assume that
+ // the part pointed to by the other end is a pointer that gets initialized with the part of the
+ // navigable end.
+ val facetPart = facetEnd.role as Property
+ val receptaclePart = receptacleEnd.role as Property
+
+ val assocProp1 = association.getMemberEnd(null, facetPart.type)
+
+ // Property assocProp2 = facetPart.getOtherEnd()
+ if ((assocProp1 != null) && assocProp1.isNavigable) {
+ val setter = '''«receptaclePart.nameRef»«assocProp1.name»'''
+ val getter = '''&«facetPart.name»'''
+ return '''«setter» = «getter»;''' + "\n"
+ }
+ } else {
+
+ // not handled (a connector not targeting a port must be typed)
+ throw new TransformationException("Connector <" + connector.name +
+ "> does not use ports, but it is not typed (only connectors between ports should not be typed)")
+ }
+ return ""
+ }
+
+ /**
+ * Handle ports with multiplicity > 1. The idea is that we could have
+ * multiple connections targeting a receptacle. The first connection would
+ * start with index 0. Implementations can make no assumption which
+ * connection is associated with a certain index. [want to avoid associative
+ * array in runtime].
+ *
+ * @param port
+ * @param end
+ * @return
+ */
+ static def getIndexName(Map<ConnectorEnd, Integer> indexMap, Port port, ConnectorEnd end) {
+ if ((port.getUpper() > 1) || (port.getUpper() == -1)) {
+
+ // index depends of combination of property and port, use connector
+ // end as key
+ var indexValue = indexMap.get(end)
+ if (indexValue == null) {
+ indexValue = 0
+ indexMap.put(end, indexValue)
+ }
+ var index = indexValue + ", "
+ indexValue++
+ indexMap.put(end, indexValue)
+ return index
+ }
+ return ""
+ }
+
+ /**
+ * Return true, if the bootloader is responsible for the instantiation of a
+ * part. [Structual difference: bootloader can decide instance based - and
+ * instances are deployed]
+ *
+ * If a part is a component type or an abstract implementation, it cannot be
+ * instantiated. Thus, a heir has to be selected in the deployment plan.
+ * Since the selection might be different for different instances of the
+ * composite, the instantiation is not done by the component itself, but by
+ * the bootloader. The bootloader also has to instantiate, if different
+ * allocation variants are required. (this is for instance the case for
+ * distribution connectors and for the system itself)
+ *
+ * If possible, we want to let composites instantiate sub-components, since
+ * this eases the transition to systems which support reconfiguration.
+ *
+ * [TODO: optimization: analyze whether the deployment plan selects a single
+ * implementation. If yes, let the composite instantiate]
+ *
+ * [TODO: elements within an assembly need to be instantiated by composite -
+ * if System - by bootloader. assembly also need to be instantiated by
+ * composite!!
+ *
+ * @param implementation
+ * @return
+ */
+ static def instantiateViaBootloader(Class implementation) {
+ return implementation.isAbstract() || Utils.isAssembly(implementation)
+ }
+
+ /**
+ * Return whether a part needs to be instantiated by the bootloader instead
+ * by the composite in which it is contained. The criteria is based on the
+ * question whether the containing composite is flattened, as it is the case
+ * for the system component and the interaction components for distribution.
+ *
+ * @param part
+ * @return
+ */
+ static def instantiateViaBootloader(StructuralFeature part) {
+ if (part != null) {
+ if (part.type instanceof Class) {
+ val implementation = part.type as Class
+ // TODO: wrong criteria? (must be shared or not?)
+ return instantiateViaBootloader(implementation)
+ } else {
+
+ // not a class, assume primitive type instantiated by composite
+ return false
+ }
+ }
+ return false
+ }
+
+ /**
+ * Transform parts if necessary.
+ *
+ * If the bootloader is responsible for creating an instance (if it is a
+ * abstract type), mark the associated part as a C++ pointer. We do not want
+ * to change the aggregation kind, since it remains logically a composition,
+ * it is merely an implementation issue that it must be a pointer for C++ if
+ * the concrete type is not yet known.
+ *
+ * @param compositeImplementation
+ * a (composite) component
+ */
+ override transformParts(Class compositeImplementation) {
+
+ for (Property attribute : Utils.getParts(compositeImplementation)) {
+ val type = attribute.type
+ if (type instanceof Class) {
+ val cl = type as Class
+
+ // => requires adaptations of boot-loader which is then only
+ // responsible for creating instances corresponding to types
+ if (instantiateViaBootloader(cl)) {
+ StereotypeUtil.apply(attribute, Ptr)
+ }
+ }
+ }
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/xtend-gen/.gitignore b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/xtend-gen/.gitignore
new file mode 100644
index 00000000000..c96a04f008e
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.cpp/xtend-gen/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/.classpath b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/.classpath
new file mode 100644
index 00000000000..ad32c83a788
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/.project b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/.project
new file mode 100644
index 00000000000..95ded03ad32
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.qompass.designer.doc</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/.settings/org.eclipse.jdt.core.prefs b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..c537b63063c
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/META-INF/MANIFEST.MF b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..d043db34c31
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/META-INF/MANIFEST.MF
@@ -0,0 +1,14 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.help;bundle-version="3.5.0",
+ org.eclipse.ui.cheatsheets;bundle-version="3.4.0"
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-Version: 1.2.0.qualifier
+Bundle-Localization: plugin
+Bundle-Name: %pluginName
+Bundle-Activator: org.eclipse.papyrus.qompass.designer.doc.Activator
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.qompass.designer.doc;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/about.html b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/about.html
new file mode 100644
index 00000000000..209103075a7
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>November 14, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/build.properties b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/build.properties
new file mode 100644
index 00000000000..7ea784f3854
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/build.properties
@@ -0,0 +1,12 @@
+source.. = src/
+output.. = bin/
+bin.includes = .,\
+ plugin.xml,\
+ help/,\
+ cheatsheet/,\
+ html/,\
+ toc.xml,\
+ about.html,\
+ plugin.properties,\
+ META-INF/
+src.includes = about.html
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/AddPorts.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/AddPorts.xml
new file mode 100644
index 00000000000..59c01e6c693
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/AddPorts.xml
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<cheatsheet title="Component development">
+<intro>
+ <description>
+ Model the ports of a component
+ </description>
+</intro>
+
+
+
+<item title="Model the ports of your components" skip="true">
+ <description>
+ Select a port from the &quot;Palette&quot;, under &quot;Nodes&quot;, and create a new
+ port on a component type or implementation.<br/>
+ <br/>
+ Note: a port of a component type is implicitly included in all
+ component implementations inheriting from it<br/>
+ Note: inherited ports are not shown by default. In order to visualize these, do
+ not create a new port, but drag and drop the inherited port from the
+ model explorer on the component that inherits the port.
+ </description>
+</item>
+
+<item title="Choose a port kind" skip="true">
+ <description>
+ Your ports need to be named and a <i>port kind</i> (see below) needs to be chosen.
+ There are several ways to change a port name: either via the
+ &quot;Properties&quot; view or via a textual dialog that is shown once F2 is pressed.
+
+ An Qompass (FCM) port has an additional parameter: it is characterized by a
+ port kind. The latter defines for instance if the port
+ provides or requires an interface or consumes a data-type.<br/>
+ A port kind may require a certain variant of a type: data-flow oriented kinds
+ require a datatype, client/server port kinds require an interface as port type. The user can
+ verify the suitability of the port type by observing the derived attributes provided and
+ required interface. If both are not set, the port is wrongly typed. This rule is part of
+ a set of Qompass related constraints that can be validated at any time.
+ <br/>
+ <br/>
+ Assign the port kind attribute:
+ &quot;Properties&quot; view &gt; Profile &gt; under &quot;Port&quot; and &quot;kind&quot;.
+ Select the value of the port kind. The shown list is a collection of all PortKinds that are
+ defined in the model itself or one of the libraries it imports. For example, if the ports
+ requires an interface, the value of the port kind is &quot;BasicCalls::PortKind::UseInterface&quot;<br/>
+ Note that the stereotype &quot;Port&quot; from the profile FCM is applied automatically
+ on all the ports you add to your model.
+ </description>
+</item>
+
+<item title="Type your ports">
+ <description>
+ As for the name, this can be either be done via the &quot;Properties&quot; view or via
+ a textual dialog that is shown once F2 is pressed. But before a type can be selected, it may have to
+ be created first.
+ In our example we want to type the port with an interface which is stored in an additional
+ package called &quot;interfaces&quot;.
+
+ As a good practice, you can group interfaces that are referenced by multiple components in a
+ package called &quot;interfaces&quot;
+ &quot;model explorer&quot; view &gt; Right-click on
+ &quot;ComponentModel&quot; package &gt; New child &gt; Package &gt; Name it &quot;interfaces&quot;<br/>
+ <br/>
+ Then, under &quot;interfaces&quot; package, create a new class diagram:
+ &quot;model explorer&quot; view &gt; Right-click on
+ &quot;interfaces&quot; package &gt; New diagram &gt; Create a new Class Diagram.<br/>
+ <br/>
+ Open your class diagram and add an interface and operation in standard Papyrus way.
+ </description>
+</item>
+
+<item title="(Optional) Define an entry point" skip="true">
+ <description>
+ The component that is executed at system startup has to be clearly defined.
+ Such a component has to inherit from the component type &quot;Cstart&quot; that is defined
+ in the &quot;BasicCalls&quot; library in the package &quot;StdPorts&quot;. It has the port &quot;start&quot; with the provided interface
+ &quot;IStart&quot;, containing the operation run. This operation is called at application start.<p/>
+ The addition of Cstart to your composite diagram is performed in 5 steps:<br/>
+ 1 - Expand the imports in the &quot;Outline&quot; view &gt; Expand the library
+ &quot;BasicCalls&quot; &gt; &quot;StdPorts&quot; &gt;. Select &quot;Cstart&quot; component type.<br/>
+ 2 - Drag and drop the component type &quot;Cstart&quot; in your composite diagram.<br/>
+ 3 - (Optionally) If you want to visualize the port in the diagram, drag and drop the port
+ &quot;start&quot; on the newly added &quot;Cstart&quot; component.<br/>
+ 4 - Add a &quot;Generalization&quot; link that points from your component (type/implementation),
+ to &quot;Cstart&quot;.<br/>
+ 5 - (Optionally) If you want to visualize the port in the diagram, drag and drop the port
+ &quot;start&quot; to the application component
+ </description>
+</item>
+
+<item title="(Optional) Support life cycle events" skip="true">
+ <description>
+ A component may want to perform actions directly after instantiation and before destruction.
+ Such a component has to inherit from the component type &quot;LifeCycle&quot; that is defined
+ in the &quot;BasicCalls&quot; library in the package &quot;StdPorts&quot;. It has the port
+ &quot;lc&quot; with the provided interface &quot;ILifeCycle&quot;, containing the operations
+ activate and deactivate.
+ The addition of LifeCycle to your composite diagram is performed in 5 steps:<br/>
+ 1 - Expand the imports in the &quot;Outline&quot; view &gt; Expand the library
+ &quot;BasicCalls&quot; &gt; &quot;StdPorts&quot; &gt;. Select &quot;LifeCylce&quot; component type.<br/>
+ 2 - Drag and drop the component type &quot;LifeCycle&quot; in your composite diagram.<br/>
+ 3 - (Optionally) If you want to visualize the port in the diagram, drag and drop the port
+ &quot;lc&quot; on the newly added &quot;LifeCylce&quot; component.<br/>
+ 4 - Add a &quot;Generalization&quot; link that points from your component (type/implementation),
+ to &quot;Cstart&quot;.<br/>
+ 5 - (Optionally) If you want to visualize the port in the diagram, drag and drop the port
+ &quot;lc&quot; to the application component
+ </description>
+</item>
+</cheatsheet>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/CodeCompilation.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/CodeCompilation.xml
new file mode 100644
index 00000000000..a8de088de93
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/CodeCompilation.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<cheatsheet
+ title="Title">
+ <intro>
+ <description>
+ Finally, compile the generated code on each node.
+ </description>
+ </intro>
+
+ <item
+ title="Code Compilation" skip="true">
+ <description>
+
+ </description>
+ <subitem
+ label="It is proposed to use the eclipse internal built mechanisms, e.g. CDT builder in case of C/C++.
+ &#x0A;&#x0A; Libraries and include pathes required by the runtime mechanisms of used connector libraries are automatically taken into account."
+ skip="true">
+ </subitem>
+ </item>
+
+</cheatsheet>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/CodeGeneration.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/CodeGeneration.xml
new file mode 100644
index 00000000000..3de326cbd43
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/CodeGeneration.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<cheatsheet title="Code generation">
+<intro>
+ <description>
+ Once the allocation is specified, the Qompass plug-in applies a sequence of model transformations to generate the code required on each node.
+ </description>
+</intro>
+<item title="The sequence of actions performed automatically by Qompass" skip="true">
+ <description>
+ Select a deployment plan. Right click and choose "Qompass: generate deployment models and code from plan". Choose among
+ the available options: (1) only generate a target model and not code, (2) re-create compilations settings and (3) only
+ generate code for types that have changed. The first option is useful for testing purposes or if the intermediate
+ models produced by Qompass are inputs for other models.
+ The second option is useful, if additional container or connector elements require additional libraries that would not
+ found otherwise. But it overrides user settings.
+ The last option aims to reduce the time for generating an executable: for each elements that is re-generated, the associated
+ file need to be re-compiled.
+ The Qompass plug-in applies a sequence of model transformations that<br/>
+ (1) add and adapt connectors and containers as required by the application,
+ (2) transform the component model into an object-oriented model, i.e. replace ports with attributes and suitable access operations,
+ (3) create boot-code that instantiates the components and
+ (4) calculate the sub-set of the resulting model that is required on each node.
+ Qompass produces a new plugin for each node of the platform model. It contains a suitable project
+ definition (Eclipse CDT) in the sense that the build settings (macros, include and library paths)
+ should be configured for the application needs. It also contains a folder "model" along with
+ the generated model (called "root.uml") and applies the standard UML model-to-code generators
+ (currently C++) to produce the code required on each node and "
+ </description>
+</item>
+</cheatsheet>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/ComponentDev.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/ComponentDev.xml
new file mode 100644
index 00000000000..242e723f337
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/ComponentDev.xml
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<cheatsheet title="Component development">
+<intro>
+ <description>
+ <b>In this step, you model a component within a composite diagram.</b>
+ </description>
+</intro>
+
+<item title="Step1: Create a new component" skip="true">
+ <description>
+ The first decision is whether you want to define a component type or a component implementation.
+ A component type is useful, if you anticipate that more than one implementation are required sooner or later.
+ The decision is comparable to the decision whether interfaces should be used in an object-oriented
+ approach: it is more flexible, but requires an additional definition (beside this reflection, there is nothing to do
+ in this step).
+ </description>
+</item>
+
+<item title="(Optional) Create a package for your component" skip="true">
+ <description>
+ As a good practice, we recommend to create a package for each component which will group all
+ component-related elements e.g. type, implementation(s) and associated diagrams.<br/>
+ ModelExplorer > Right-click on your "ComponentModel" package > Add child > Package.
+ Name the created package according to your application needs. A convention (not enforced) used in Qompass is
+ to use the same name for the package and component type, add the post-fix "Impl" in case of a
+ component implementation.
+ <subitem label=
+ "Show model explorer: Window > Show View > Papyrus > Model Explorer (or select Papyrus perspective)" skip="true">
+ <command required="false"
+ serialization="org.eclipse.ui.views.showView(org.eclipse.ui.views.showView.viewId=org.eclipse.papyrus.modelexplorer.modelexplorer)"/>
+ </subitem>
+ </description>
+</item>
+
+<item title="Create a composite diagram" skip="true">
+ <description>
+ Select the package created in the previous step (or the top-level package). Create a composite diagram and open it. Right-click on your package in the
+ model explorer > new diagram > Create a new Composite Diagram.
+ </description>
+</item>
+
+<item title="Create a new component (type or implementation)" skip="true">
+ <description>
+ Create a class. Make it abstract (via the properties view) if it is a component type.
+ Choose a name which suits your application needs. If you created a type, you
+ might also want to add an implementation. Convention (not compulsory): use the same name as for the type
+ and add the postfix "Impl". The link between component type and implementation is manifested by means
+ of generalization relationship. Use the standard Papyrus mechanisms to create this relationship.
+ (The realization of an implementation is described in more detail in step 4).
+ </description>
+</item>
+
+<item title="Select container properties">
+ <description>
+ A component is optionally enclosed by a so-called container which can perform additional processing.
+ So called container extensions either intercept incoming port request or perform additional processing.
+ For further information, consult the Qompass online help. From a user perspective, the choice of a
+ certain container option is controlled by the application of an ordered set of <i>container rules</i>.
+ which select the extension or interceptor to use and optionally restrict the use of the rule to
+ a specific configuration (see deployment)<br></br>
+
+ Qompass provides a specific dialog to selected a container extension. This can be found in the context
+ menu of a component.
+ </description>
+</item>
+
+<item title="Create the system component">
+ <description>
+ A specific component is typically called "System". It is the main component that will be instantiated
+ later on. This component is the root of the composition hierarchy, your application components are
+ parts within it - it is a composite or assembly implementation and further information is therefore
+ available in the next section. It must not have any ports.
+ </description>
+</item>
+
+</cheatsheet>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/ComponentImplementation.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/ComponentImplementation.xml
new file mode 100644
index 00000000000..335fb27986a
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/ComponentImplementation.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<cheatsheet
+ title="Component implementation">
+<intro>
+ <description>
+ A component implementation has to realize the operations of interfaces that are provided by
+ its ports. For each port, there are two options: either the component implements the interface
+ itself, or it delegates the port to a part which has to implement the interface.
+ If a component does not have any parts, we call it primitive (or monolithic).
+ </description>
+</intro>
+
+<item title="Synchronize derived elements">
+ <description>
+ If order to implement the operations of a provided interface, these operations have to be
+ added to the component first. Since it would be tedious to copy an operation signature manually
+ and keep it synchronized, Qompass offers an operation "Synchronize derived elements" in the
+ context menu of a component. It will automatically add an "interface realization"
+ relationship and the operations of the provided interfaces - as long as there is no delegation
+ to an internal component. These relationships carry the FCM stereotype "DerivedElement"
+ in order to indicate that these have been added automatically.
+ </description>
+</item>
+
+<item title="Implement an operation of a provided port">
+ <description>
+ The implementation could use either the UML action language or a programming language specific
+ implementation in form of an opaque behavior definition (not yet supported). Here, we will cover
+ the case of C++<br/>
+ Activate the C/C++ view (Views > Papyrus > C/C++). Then, select the operation in the
+ model explorer or diagram. Enter your code. Note that you can call operations of required ports
+ by using the port name as a property, i.e. in case of C++ use "portName" -> "operation name"
+ </description>
+ <subitem label="If the &quot;Properties&quot; view is not shown: Window > Show View > Select Properties (or click on perform within this sheet)"
+ skip="true">
+ <command required="false"
+ serialization="org.eclipse.ui.views.showView(org.eclipse.ui.views.showView.viewId=org.eclipse.ui.views.PropertySheet)"/>
+ </subitem>
+ <subitem label="If the &quot;C/C++&quot; view is not shown: Window > Show View > Other > Select Papyrus C/C++ (or click on perform within this sheet)"
+ skip="true">
+ <command required="false"
+ serialization="org.eclipse.ui.views.showView(org.eclipse.ui.views.showView.viewId=com.cea.papyrus.views.cpp)"/>
+ </subitem>
+</item>
+
+<item title="Create inner parts">
+ <description>
+ An component implementation may have an internal structure, i.e. if may contain other components
+ via composition. Please note that the containment does not mean that a new component is defined
+ in an existing one, but that the composite component contains an attribute typed with another
+ component. If this attribute has the "composition" aggregation style, the creation of
+ an instance of the composite component implies creating an instance of the contained component.<br/>
+ <br/>
+ The "System" component is a specific composite implementation of your system.
+ It does not have any implementation of its own but is a kind of aggregation container of your
+ application components and defines how these are connected (see next step).
+ </description>
+ <subitem
+ label="You can drag and drop an existing component type into the composite. A property will
+ automatically be created for you">
+ </subitem>
+ <subitem
+ label="If the component does not exist yet, you can create a new property within the composite
+ and type it later with the appropriate component">
+ </subitem>
+</item>
+
+<item title="Connect inner parts (assembly)">
+ <description>
+ Once the inner parts have been added, the may be connected. Connectors may either delegate
+ from the composite towards an inner part or connect (assemble) two (or more) internal parts.
+ A connector may connect either the ports of internal parts or directly an internal part. For the
+ moment, Qompass supports only the first option. It may be required to drag and drop ports first from
+ the model explorer to a part (whose type owns the port).<br/>
+ <br/>
+ A major concept in Qompass is that of a connector. Instead of simply being a "line" between
+ parts, a connector may be realized a specific interaction component. Which interaction component
+ is used, is defined by an FCM stereotype attribute owned by the connector. The Qompass palette allows
+ you to add a connector with the appropriate FCM stereotype directly to your component.<br/>
+ <br/>
+ In addition, Qompass provides a specific dialog for the selection of an interaction component.
+ (open the context menu, once a connector is selected).
+ </description>
+</item>
+</cheatsheet>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/ComponentModel.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/ComponentModel.xml
new file mode 100644
index 00000000000..7af6183b976
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/ComponentModel.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<cheatsheet
+ title="Creation of component model">
+ <intro>
+ <description>
+ A component model consists of a set of component definitions. Each component may be either a
+ primitive (or monolithic) component or a composite component. Whereas the latter contains one
+ or more <i>parts</i> typed with other components, the former does not contain other components.
+ Typically, a composite component delegates services provided by some of its ports to inner
+ components while a primitive component implements the services itself.
+ There are different strategies, in which order components are implemented, e.g. starting
+ with the composite components and then defining the sub-components (top-down) or vice-versa
+ (bottom-up). Both strategies could be mixed.
+ </description>
+ </intro>
+ <item
+ title="(Top-down) Step1: Create your system">
+ <description>
+ <b>In this step, you start by modeling your system in a composite diagram.</b>
+ <br> </br>Start modeling the system type and implementation.
+ <br> </br>A component defines a type when it has more that one implementation,
+ or when the evolution of the component envisions to group a set of implementations using a type definition.
+ Optionally, a component may be abstract, i.e. does not provide an implementation.
+ <br> </br>As a good practice, we recommend to define component type only when necessary.
+ <br> </br>In the following, we will define a component type for the components that we will create.
+ </description>
+ <subitem
+ label="Open the &quot;Model explorer&quot; view: Window &gt; Show View &gt; Papyrus &gt; Model Explorer (alternative: select Papyrus perspective): The explorer shows a tree-view of your model." skip="true">
+ <command
+ required="false"
+ serialization="org.eclipse.ui.views.showView(org.eclipse.ui.views.showView.viewId=org.eclipse.papyrus.modelexplorer.modelexplorer)"/>
+ </subitem>
+ <subitem
+ label="Expand your model, you will find under it three packages from the template: &quot;ComponentModel&quot;, &quot;Platform&quot;, and &quot;DeploymentPlans&quot;. To organize you models, each package will include the appropriate diagrams."
+ skip="true">
+ </subitem>
+ <subitem
+ label="As a good practice, we recommend to create a package for each component (monolithic or composite) under the package &quot;ComponentModel&quot;. The package will group all the component-related elements (i.e., type, implementation(s), port(s)). Nevertheless, you can model all your components in the same diagram. This may only affect the clarity of your model. Under &quot;ComponentModel&quot;, you create a package related to each monolithic component your system will include, as well as a package for modeling your system: Outline &gt; Right-click on your &quot;ComponentModel&quot; package &gt; Add an element &gt; Package. Select your package and name it according to your application needs from the &quot;Properties&quot; view. In the following, we will use the name &quot;System&quot; to denote the component that models your system."
+ skip="true">
+ </subitem>
+ <subitem
+ label="If the &quot;Properties&quot; view is not shown: Window &gt; Show Perspective &gt; Select Properties"
+ skip="true">
+ <command
+ required="false"
+ serialization="org.eclipse.ui.views.showView(org.eclipse.ui.views.showView.viewId=org.eclipse.ui.views.PropertySheet)"/>
+ </subitem>
+ <subitem
+ label="In your package &quot;System&quot;, create a composite diagram and open it. Outline &gt; Right-click on your package &gt; Add a diagram &gt; Create a new Composite Diagram. Double click on your newly created composite diagram to open it." skip="true">
+ </subitem>
+ <subitem
+ label="From the &quot;Palette&quot; view, under &quot;Qompass&quot;, drag-and-drop a new component type (ComponentType), and name it according to your application needs. Herein, we will call it &quot;System&quot;. In addition, drag and drop a new component implementation (ComponentImpl), and name it. In this tutorial, we will call it &quot;System_Impl&quot;."
+ skip="true" >
+ </subitem>
+ <subitem
+ label="The component implementation(s) inherit(s) from the component type. The inheritance relation is useful in order to remove redundancy when generating the code from the model. Drag and drop a &quot;Generalization&quot; link from the &quot;Palette&quot;, under &quot;UML Links&quot;.
+ The link has as origin the component implementation (i.e., &quot;System_Impl&quot;) and, the component type (i.e. &quot;System&quot;) as destination." skip="true">
+ </subitem>
+ <subitem
+ label="In your &quot;System_Impl&quot;, add as many properties as parts you require in your system. The properties represent the instances of the primitive components you will create in the next step. To this aim: From the &quot;Palette&quot; view, drag-and-drop &quot;Property&quot; provided under &quot;UML Elements&quot;. Name each property: Select the property in your composite diagram then, from the &quot;Properties&quot; view, under &quot;General&quot;, you can give a name to your part (property). Later on, you will select the type of your part. Furthermore, in the &quot;Properties&quot; view, under &quot;General&quot;, you can select the &quot;aggregation kind&quot;: &quot;Aggregation&quot; when the part is shared by more than one subcomponent, or &quot;Composition&quot; when the property is not shared. &quot;Composition&quot; is the most commonly used &quot;aggregation kind&quot;."
+ >
+ <command
+ required="false"
+ serialization="org.eclipse.team.svn.ui.command.EditPropertiesCommand"/>
+ </subitem>
+
+ </item>
+ <item
+ title="Enter component modeling">
+ <description>
+ <b>In this step, you model the monolithic components that your system includes (i.e., the internal parts of your system). </b>
+ <br> </br>Start by modeling the components type, implementation, and their ports in a &quot;component diagram&quot; then model their interfaces in &quot;class diagrams&quot;.
+ </description>
+ </item>
+</cheatsheet>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/DeploymentPlan.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/DeploymentPlan.xml
new file mode 100644
index 00000000000..726d08968d4
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/DeploymentPlan.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<cheatsheet title="Create deployment plan">
+<intro>
+ <description>
+ Generate the instance specification of the system and its internal parts, specify values for configuration attributes and finally
+ allocate to nodes
+ </description>
+</intro>
+
+<item title="Create initial deployment plan" skip="false">
+ <description>
+ Up to now, we have modeled components and their composition, but we have not yet instantiated these.
+ The convention in Qompass is that a single component, typically called System, is the primary
+ instance. The instantiation of this component implies an instantiation of its parts which
+ in turn will instantiate their parts (if composites). This instantiation process is
+ automated by Qompass. The generated instances are part of a package which we call deployment plan
+ in the sequence.
+ <br/>
+ The automatic generation of the initial deployment plan is performed as follows:
+ Right click on your "system" component > Qompass: Instantiate system (create deployment plan).
+ As a result, a "newDeploymentPlan" package is created within "DeploymentPlans". Note that a
+ deployment plan is a stereotyped UML package serving as a container for the instance
+ specifications. A stereotype attribute points to the main instance.
+ </description>
+</item>
+
+<item title="Configure instance specifications" skip="true">
+ <description>
+ The initial deployment plan contains information about the instances within their system (along with their allocation
+ to a node, see next step). Each instance may have a set of attributes that are subject to configuration, e.g. a FIFO
+ component might have an attribute that denotes its size or the application of a specific policy. By default, all
+ attributes that are part of a component type, are considered as configuration attributes, attributes of implementations
+ need to be marked explicitly by the stereotype FCM::ConfigProperty. UML supports the specification of values via slots.
+ This is done in Qompass as well, a custom dialog facilitates this configuration:
+ Right click on your "system" component > Qompass: Configure instantiate properties.
+ The dialog displays a set of instance specifications that are associated with the property. The
+ previous operation should have created these instances (there should be one instance per deployment plan).
+ Once an instance is selected, the user can select a configuration attribute and provide a value for it. If the attribute
+ has an attached comment, it is assumed to be a description of the configuration attribute and displayed in the dialog
+ (this is the case for elements of the Qompass library).
+ </description>
+</item>
+
+<item title="Allocate instance specifications to nodes" skip="true">
+ <description>
+ In order to deploy the system, the instances created before need to be allocated to a
+ node. The allocation relationship is transitive in two directions: if a composite component
+ instance is allocated to a node, all sub-instances (= instances of contained parts) are
+ implicitly also allocated on this node. Vice versa, a composite needs to exist on all
+ instances where its sub-instances are allocated.
+ <br></br>
+ Qompass supports the allocation by means of a specific dialog. It is available in the
+ context menu of a deployment plan.
+ </description>
+</item>
+
+</cheatsheet>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/Main.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/Main.xml
new file mode 100644
index 00000000000..7196d1103ef
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/Main.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<compositeCheatsheet name="Create an Qompass-supported Model">
+<taskGroup kind="sequence" name="Create your model" skip="false">
+<intro>
+ <b>Introduction</b>
+ This guide will walk you though the process of creating an &quot;Qompass-supported&quot; model and generate the code related to your model.
+ You will create an empty model and build it gradually to finally generate the related code.
+
+ If you need help at any step, click the (?) to the right. Let&apos;s get started!
+</intro>
+
+<taskGroup kind="choice" name="Step1: Create a new model" skip="true">
+ <intro>
+ Either create a new Qompass model or start with a working example
+ </intro>
+
+ <task kind="cheatsheet" name="Step1a: Create a new model" skip="true">
+ <param name="path" value="NewModel.xml"></param>
+ </task>
+
+ <task kind="cheatsheet" name="Step1b: Start with a working example" skip="true">
+ <param name="path" value="OpenExample.xml"/>
+ </task>
+</taskGroup>
+
+<task kind="cheatsheet" name="Step2: Define components" skip="true">
+ <param name="path" value="ComponentDev.xml"/>
+</task>
+
+<task kind="cheatsheet" name="Step3: Define component ports" skip="true">
+ <param name="path" value="AddPorts.xml"/>
+</task>
+
+<task kind="cheatsheet" name="Step4: Develop component implementations" skip="true">
+ <param name="path" value="ComponentImplementation.xml"/>
+</task>
+
+<task kind="cheatsheet" name="Step5: Model the platform" skip="true">
+ <onCompletion>
+ <b>Conclusion</b>
+ </onCompletion>
+ <param name="path" value="PlatformModel.xml"/>
+</task>
+
+<task kind="cheatsheet" name="Step6: Validate the model" skip="false">
+ <param name="path" value="Validation.xml"/>
+</task>
+
+
+<task kind="cheatsheet" name="Step7: Generate the deployment plan of the system" skip="true">
+ <param name="path" value="DeploymentPlan.xml"/>
+</task>
+
+<task kind="cheatsheet" name="Step8: Code generation" skip="true">
+ <onCompletion>
+ <b>Conclusion</b>
+ </onCompletion>
+ <param name="path" value="CodeGeneration.xml"/>
+</task>
+
+<task kind="cheatsheet" name="Step9: Code compilation" skip="true">
+ <onCompletion>
+ <b>Conclusion</b>
+ </onCompletion>
+ <param name="path" value="CodeCompilation.xml"/>
+</task>
+
+</taskGroup>
+</compositeCheatsheet>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/MarteAddComponents.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/MarteAddComponents.xml
new file mode 100644
index 00000000000..f7ec40e7aa4
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/MarteAddComponents.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<cheatsheet title="Add GCM components to your model">
+<intro>
+ <description>
+ In this step, you model the application components as forseen by MARTE GCM &amp; HLAM.
+ </description>
+</intro>
+
+<item title="Create a new composite diagram">
+ <description>
+ Use the model explorer to create a new composite diagram within the "ComponentModel" package
+ </description>
+</item>
+<item title="Select a MARTE component in the palette and add it to your model" dialog="true" skip="true">
+ <description>
+ Select an element from the MARTE/HLAM palette, i.e. a RtUnit or a PpUnit. These are available,
+ if the MARTE profile is applied (which should be the case, if you have chosen the Qompass for MARTE template
+ during model creation).
+ Now create the GCM component in the diagram. Mapping rules in Qompass will automatically add the FCM implementation
+ stereotype and set its container rule attribute appropriately to support the two component variants.<br/>
+ Verify stereotype application/attribute values in the properties/profile view. Alternatively, right click on
+ the created component and call the "Qompass show/choose container rules" dialog.
+ </description>
+</item>
+<item href="/org.eclipse.papyrus.qompass.designer.doc/html/reference/marte.html" title="More information about the Qompass MARTE integration" skip="true">
+ <description>
+ Click on the "?" on right to open the online html help
+ </description>
+</item>
+</cheatsheet>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/MarteAddPorts.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/MarteAddPorts.xml
new file mode 100644
index 00000000000..38233bc7312
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/MarteAddPorts.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<cheatsheet title="Creating a new model">
+<intro>
+ <description>
+ In this step you will add ports to your MARTE/GCM components
+ </description>
+</intro>
+<item title="Add ports">
+ <description>
+ Use the model explorer to create a new composite diagram within the "components" package
+ Use the standard MARTE mechanism to add ports, i.e. client/server or flow ports - the associated
+ FCM stereotypes will be set automatically.
+ </description>
+</item>
+<item href="/org.eclipse.papyrus.qompass.designer.doc/html/reference/marte.html#ports" title="More information about the Qompass integration of MARTE ports" skip="true">
+ <description>
+ Click on "?" on the right to open the online html help
+ </description>
+</item>
+</cheatsheet>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/MarteMain.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/MarteMain.xml
new file mode 100644
index 00000000000..e32ef8326fe
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/MarteMain.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<compositeCheatsheet name="Create an Qompass-supported Model with MARTE">
+<taskGroup kind="sequence" name="Create your model" skip="false">
+<intro>
+ <b>Introduction</b>
+ This guide will walk you though the process of creating a MARTE model with &quot;Qompass-support&quot;
+ and generate the code related to your model.
+ You will create an empty model and build it gradually to finally generate the related code.
+ If you need help at any step, click the (?) to the right. Let&apos;s get started!
+</intro>
+
+<taskGroup kind="choice" name="Step1: Create a new model" skip="true">
+ <intro>
+ Either create a new Qompass model or start with a working example
+ </intro>
+
+ <task kind="cheatsheet" name="Step1a: Create a new model" skip="true">
+ <param name="path" value="MarteNewModel.xml"/>
+ </task>
+
+ <task kind="cheatsheet" name="Step1b: Start with a working example" skip="true">
+ <param name="path" value="OpenExample.xml"/>
+ </task>
+</taskGroup>
+
+<task kind="cheatsheet" name="Step2: Model the application components" skip="true">
+ <param name="path" value="MarteAddComponents.xml"/>
+</task>
+
+<task kind="cheatsheet" name="Step3: Add ports" skip="true">
+ <param name="path" value="MarteAddPorts.xml"/>
+</task>
+
+<task kind="cheatsheet" name="Step3b: Review standard FCM port definition (Start and LifeCycle)" skip="true">
+ <param name="path" value="AddPorts.xml"/>
+</task>
+
+<task kind="cheatsheet" name="Step4: Component implementation (not MARTE specific)" skip="true">
+ <onCompletion>
+ <b>Conclusion</b>
+ You have now created a MARTE component which has at the same time FCM annotations. You can now
+ proceed with implementation and deployment as for a standard FCM component
+ </onCompletion>
+ <param name="path" value="ComponentImplementation.xml"/>
+</task>
+
+<task kind="cheatsheet" name="Step5: continue with platform modeling" skip="true">
+ <onCompletion>
+ <b>Conclusion</b><br/>
+ You have now created a MARTE component which has at the same time FCM annotations. You can now
+ proceed with implementation and deployment as for a standard FCM component
+ </onCompletion>
+ <param name="path" value="PlatformModel.xml"/>
+</task>
+
+<task kind="cheatsheet" name="Step6: Validate the model" skip="false">
+ <param name="path" value="Validation.xml"/>
+</task>
+
+<task kind="cheatsheet" name="Step7: Generate the deployment plan of the system" skip="true">
+ <param name="path" value="DeploymentPlan.xml"/>
+</task>
+
+<task kind="cheatsheet" name="Step8: Code generation" skip="true">
+ <onCompletion>
+ <b>Conclusion</b><br/>
+ You have now a project, a model and source code for each target.
+ </onCompletion>
+ <param name="path" value="CodeGeneration.xml"/>
+</task>
+
+<task kind="cheatsheet" name="Step9: Code compilation" skip="true">
+ <onCompletion>
+ <b>Conclusion</b><br/>
+ You have now a binary per target which is ready for deployment. The actual transfer
+ to the target is out of Qompass's scope.
+ </onCompletion>
+ <param name="path" value="CodeCompilation.xml"/>
+</task>
+</taskGroup>
+</compositeCheatsheet>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/MarteNewModel.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/MarteNewModel.xml
new file mode 100644
index 00000000000..dbbe1802e86
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/MarteNewModel.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<cheatsheet title="Creating a new model">
+<intro>
+ <description>
+ In this step you will create a new Qompass Model for MARTE, i.e. a MODEL that applied MARTE GCM as well as the
+ FCM profile.
+ </description>
+</intro>
+<item title="Papyrus Perspective" dialog="false" skip="true">
+ <description> Start setting up your environment&apos;s perspective.</description>
+ <subitem label="Open Papyrus Perspective." skip="true">
+ <command required="false"
+ serialization="org.eclipse.ui.perspectives.showPerspective(org.eclipse.ui.perspectives.showPerspective.perspectiveId=org.eclipse.papyrus.perspective)"/>
+ </subitem>
+</item>
+
+<item title="Create a new project" dialog="true" skip="true">
+ <description>
+ </description>
+ <subitem
+ label="Start creating the project that will host your model or create a new model within an existing project.
+ &#x0A;File &gt; New &gt; Project &gt; Papyrus project &gt; Enter your project name, then select UML as diagram language. On the next page, choose the Qompass template for MARTE."
+ skip="true">
+ <command required="false"
+ serialization="org.eclipse.ui.newWizard(newWizardId=org.eclipse.ui.wizards.new.project)"/>
+ </subitem>
+</item>
+</cheatsheet>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/NewModel.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/NewModel.xml
new file mode 100644
index 00000000000..68c3c72b990
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/NewModel.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<cheatsheet title="Creating a new model">
+<intro>
+ <description>In this step you will create a new Qompass Model which applies the profile and optionally MARTE GCM</description>
+</intro>
+<item title="Open the Papyrus perspective" dialog="false" skip="true">
+ <description> Start setting up your environment&apos;s perspective. </description>
+ <command required="false"
+ serialization="org.eclipse.ui.perspectives.showPerspective(org.eclipse.ui.perspectives.showPerspective.perspectiveId=org.eclipse.papyrus.infra.core.perspective)"/>
+</item>
+<item title="Create a new project" dialog="true" skip="true">
+ <description>
+ Start creating the project that will host your model or create a new model within an existing project.
+ &#x0A;File &gt; New &gt; Project &gt; Papyrus project &gt; Enter your project name, then select UML as diagram language. On the next page, choose one of the Qompass templates
+ (currently two, one including MARTE and one without)
+ </description>
+ <command required="false"
+ serialization="org.eclipse.ui.newWizard(newWizardId=org.eclipse.papyrus.uml.diagram.wizards.1createproject)"/>
+</item>
+<item title="Create additional Papyrus model within the project" dialog="true" skip="true">
+ <description>
+ If you need to create additional models within a project, you can do this at any time using the
+ Papyrus model wizard. In the context of this tutorial, you can simply skip this step.
+ Enter your model name, then select UML as diagram language. On the next page, choose one of the Qompass templates
+ (currently two, one including MARTE and one without)
+ </description>
+ <command required="true"
+ serialization="org.eclipse.ui.newWizard(newWizardId=org.eclipse.papyrus.uml.diagram.wizards.createmodel)"/>
+</item>
+</cheatsheet>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/OpenExample.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/OpenExample.xml
new file mode 100644
index 00000000000..e6e0d5537a6
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/OpenExample.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<cheatsheet title="Create a new model from an example">
+<intro>
+ <description>In this step you will create a new Qompass model from an example</description>
+</intro>
+<item title="Open Papyrus Perspective" dialog="false" skip="true">
+ <description> Start setting up your environment&apos;s perspective. </description>
+ <command required="false"
+ serialization="org.eclipse.ui.perspectives.showPerspective(org.eclipse.ui.perspectives.showPerspective.perspectiveId=org.eclipse.papyrus.perspective)"/>
+</item>
+<item title="Create a new project" dialog="true" skip="true">
+ <description>
+ Creating the project that will host your model. You can skip this step, if you want to create the model
+ in an existing project.
+ File > New > Project. Enter your project name.
+ </description>
+ <command required="false"
+ serialization="org.eclipse.ui.newWizard(newWizardId=org.eclipse.ui.wizards.new.project)"/>
+</item>
+<item title="Create a new project" dialog="true" skip="true">
+ <description>
+ Create a new model from an example.
+ File > New > Example. Choose an Qompass example. Select the parent folder (it is not possible
+ to change the name of the example, since the model files reference each other. Use File > Save As after opening,
+ if required).
+ </description>
+ <command required="false"
+ serialization="org.eclipse.ui.newWizard(newWizardId=org.eclipse.ui.wizards.new.project)"/>
+</item>
+</cheatsheet>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/PlatformModel.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/PlatformModel.xml
new file mode 100644
index 00000000000..894c7172939
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/PlatformModel.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<cheatsheet title="Platform Model">
+<intro>
+ <description>
+ The platform modeling consists in specifying the set of nodes on which the system
+ will be deployed.
+ </description>
+</intro>
+
+<item title="Create your platform model" skip="true">
+ <description>
+ The platform definition contains a set of nodes. Each node represents a computation resource on a type level.
+ The specification of a platform is quite similar to the specification of a composite component: it is done by
+ means of a component (class) whose parts represent the nodes. Each of the parts is typed with a node. Since a
+ node is a class as well, the inner structure of a node can be equally modeled via parts. Thus, a hardware
+ specification can be organized hierarchically.
+ As for software components, we are in the end interested in the instances of our computation resources. An
+ operation of the Qompass context menu will create this hardware instances from the class representing the hardware
+ in a similar way as a deployment plan is created.
+
+ Use the FCM stereotype "Target" on nodes to provide information about supported operating system and
+ available RAM and ROM (currently only the supported operation system information is evaluated).
+ A node represents a certain type of a computing resource, UML instance specifications represent a concrete
+ node instance. This concept is useful, if several identical nodes are used within a system.
+ </description>
+ <subitem
+ label="Create a new class &quot;HWArchitecture;&quot; within a composite diagram (in the package &quot;PlatformModel&quot;), stereotype it as FCM::HwArchitecture"
+ skip="true">
+ </subitem>
+ <subitem
+ label="Create one or more new node types by calling AddChild &gt; Node in the package &quot;PlatformModel&quot;"
+ skip="true">
+ </subitem>
+ <subitem
+ label="Apply the stereotype FCM::Target to the created nodes"
+ skip="true">
+ </subitem>
+ <subitem
+ label="Provide values for stereotype attributes, currently only &quot;supportedOS&quot; is evaluated"
+ skip="true">
+ </subitem>
+ <subitem
+ label="Create parts (make sure that aggregation-kind is set to composite) in the class representing the HW architecture (composite diagram). Type the parts with a node (created in the previous step);"
+ skip="true">
+ </subitem>
+ <subitem
+ label="Create tree of instance specifications associated with the HWArchitecture class: use the context menu on the HWArchitecture class (the menu entry &quot;Create platform definition;&quot; will appear if the HWArchitecture stereotype is applied)"
+ skip="true">
+ </subitem>
+</item>
+</cheatsheet>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/Validation.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/Validation.xml
new file mode 100644
index 00000000000..d9822313b5d
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/cheatsheet/Validation.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<cheatsheet
+ title="Model Validation">
+<intro>
+ <description>
+ Model validation enables the verification of a certain set of rules. Besides the standard UML rules,
+ Qompass defines a dozen of additional rules, for instance a validation of the typing rules for
+ ports.
+ </description>
+</intro>
+<item title="Verify validation settings" skip="true">
+ <description>
+ Verify the validation settings, i.e. the currently active validation rules (constraints).
+ Open the entry "Model Validation" within Window/Preferences and verify the active constraints.
+ Qompass related constraints are grouped.
+ </description>
+</item>
+<item title="Validate your Model" skip="true">
+ <description>
+ Validate your model. Click right on an element within the model explorer. Choose
+ the option "Validate model". Erroneous elements will appear in the Problem view,
+ will be marked in the model explorer and in the diagrams. Caveat: the model explorer
+ creates a visual marker for problems found within a child whereas this is not the case for
+ diagrams.
+ </description>
+</item>
+<item title="Open the &quot;Problems&quot; view" skip="true">
+ <description>
+ Window > Show View > Problems
+ </description>
+ <command
+ required="false"
+ serialization="org.eclipse.ui.views.showView(org.eclipse.ui.views.showView.viewId=org.eclipse.ui.views.ProblemView)"/>
+</item>
+</cheatsheet>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/help/index.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/help/index.xml
new file mode 100644
index 00000000000..6ca8880c3dc
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/help/index.xml
@@ -0,0 +1 @@
+<index></index>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/help/tocconcepts.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/help/tocconcepts.xml
new file mode 100644
index 00000000000..a70c9f0c946
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/help/tocconcepts.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?NLS TYPE="org.eclipse.help.toc"?>
+
+<toc label="Concepts" link_to="toc.xml#concepts">
+ <topic label="Qompass overview" href="html/concepts/overview.html">
+ </topic>
+ <topic label="Input models" href="html/concepts/input-models.html">
+ </topic>
+ <topic label="Connector/container" href="html/concepts/connector-container.html">
+ </topic>
+ <topic label="Code generation" href="html/concepts/codegen.html">
+ </topic>
+ <topic label="Bibliography" href="html/concepts/bibliography.html">
+ </topic>
+</toc>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/help/tocdevguide.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/help/tocdevguide.xml
new file mode 100644
index 00000000000..254dbf34b5d
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/help/tocdevguide.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?NLS TYPE="org.eclipse.help.toc"?>
+
+<toc label="Developer guide" link_to="toc.xml#devguide">
+ <topic
+ label="Plugin overview"
+ href="html/developer-guide/developer.html">
+ </topic>
+ <topic
+ label="Create a new Qompass interaction component"
+ href="html/developer-guide/createInteractionComponents.html">
+ </topic>
+ <topic
+ label="Create a new Qompass container extension"
+ href="html/developer-guide/createContainers.html">
+ </topic>
+ <topic
+ label="Create a new Qompass port kind"
+ href="html/developer-guide/DefineNewPortKinds.html">
+ </topic>
+</toc>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/help/tocreference.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/help/tocreference.xml
new file mode 100644
index 00000000000..7f27d062c18
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/help/tocreference.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?NLS TYPE="org.eclipse.help.toc"?>
+
+<toc label="Reference" link_to="toc.xml#reference">
+ <topic
+ label="Components"
+ href="html/reference/component.html">
+ </topic>
+ <topic
+ label="Interaction Components"
+ href="html/reference/interactionComponent.html">
+ </topic>
+ <topic
+ label="Containers"
+ href="html/reference/container.html">
+ </topic>
+ <topic
+ label="Port kinds"
+ href="html/reference/portKind.html">
+ </topic>
+ <topic
+ label="Port"
+ href="html/reference/port.html">
+ </topic>
+</toc>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/concepts/bibliography.html b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/concepts/bibliography.html
new file mode 100644
index 00000000000..a5bec374c1b
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/concepts/bibliography.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+ <meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8">
+ <TITLE>Bibliography</TITLE>
+ <title>Qompass</title>
+ <link rel="StyleSheet"
+ href="../sitestyle.css"
+ type="text/css">
+</head>
+<BODY>
+<img src="../img/qompass-0.33.jpg" alt="Qompass logo">
+<H1>Bibliography</H1>
+
+<dl>
+<dt>
+<A NAME="Fractal:04">[1]</A>
+<dd>
+E. Bruneton, T. Coupaye, and J. Stefani.
+<EM>The Fractal Component Model</EM>, 2004,
+<a href="http://fractal.objectweb.org/specification/">Fractal specification</a>.
+
+<dt>
+<A NAME="OMG:CCM:08">[2]</A>
+<dd>
+OMG, <EM>CORBA Component Model Specification, V3.3 (part 3 of the
+ CORBA specification)</EM>, 2012,
+OMG Document formal/2012-11-16. <a href="http://www.omg.org/spec/CORBA/3.3/">CORBA 3.3</a>
+
+<dt>
+<A NAME="OMG:MARTE:09">[3]</A>
+<dd>
+OMG, <EM>UML Profile for MARTE: Modeling and Analysis of Real-Time
+ Embedded systems, Version 1.0</EM>, 2009.
+OMG document ptc/2009-11-02.<a href="http://www.omg.org/spec/MARTE/1.1/">MARTE 1.1</a>
+
+<dt>
+<A NAME="Robert:05a">[4]</A>
+<dd>
+S. Robert, A. Radermacher, V. Seignole, S. G&#233;rard, V. Watine, and F. Terrier,
+Enhancing Interaction Support in the CORBA Component Model.
+In A. Rettberg, M. C. Zanella, and F. J. Rammig, editors, <EM>From
+ Specification to Embedded Systems Application</EM>, IFIP TC10 Working Conference:
+ International Embedded Systems Symposium (IESS). Springer, 2005.
+
+<dt>
+<A NAME="Robert:05b">[5]</A>
+<dd>
+S. Robert, A. Radermacher, V. Seignole, S. G&#233;rard, V. Watine, and F. Terrier.
+The CORBA Connector Model.
+In <EM>Proceedings of the 5th International Workshop on Software Engineering and Middleware</EM>. ACM Digital Library, 2005.
+
+<dt>
+<A NAME="GarlanShaw:95">[6]</A>
+<dd>
+M. Shaw and D. Garlan, <EM>Software Architecture: Perspectives on an Emerging Discipline</EM>, Prentice Hall, 1995.
+</dl>
+
+</BODY>
+</HTML>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/concepts/codegen.html b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/concepts/codegen.html
new file mode 100644
index 00000000000..37adce760f1
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/concepts/codegen.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+ <meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8">
+ <title>Code generation</title>
+ <link rel="StyleSheet"
+ href="../sitestyle.css"
+ type="text/css">
+</head>
+<BODY >
+<img src="../img/qompass-0.33.jpg" alt="Qompass logo">
+
+<H1>Code generation</H1>
+
+The result of the previous phase is a component model of the application, enriched with reified connectors and expanded containers.
+The code generation starting from this model requires two actions: (1) the realization of the component deployment consisting of a
+splitting the global model into sub models for each execution node and (2) the transformation of ports and connectors that do not have
+a direct equivalent concepts in object-oriented programming languages.
+
+<P>
+The former is not as trivial as it may seem since dependencies have to be taken into account and composites may have to be
+deployed on multiple nodes due to allocations of theirs parts. This imposes constraints such as only read-only attributes in
+these composites to ensure consistency. We do not discuss this issue further in the context of this paper and focus on the
+second aspect, the transformation of ports and connectors.
+
+<P>
+<A NAME="trafo_OO"></A>Ports and connectors do not possess a direct equivalent in an object-oriented programming language.
+Thus, it is necessary to relate component-oriented concepts to object-oriented concepts, i.e. classes, interfaces, attributes
+and operations.
+We distinguish ports with provided interfaces and ports with required interfaces (a port might also have both).
+A port providing an interface is an access point to a service and a caller needs to obtain a reference to this service, in
+our implementation pattern via a specific operation. For instance, if a component owns a port "p" providing interface "I",
+the realization of a component needs an operation "get_p" returning a reference to the service. The implementation of this
+operation is determined automatically: in case of a delegation connector between the port and an internal part of a component,
+this reference is returned, otherwise a reference to the component reference itself is returned.
+
+<P>
+A port with a required interface is an interaction point which requires a reference of another component that provides the
+interface. Thus, the component needs to store this reference and provide an operation to initialize the reference in the moment
+of instantiation. For instance, a port "q" with an required interface is transformed into an attribute which stores a reference
+to a port providing the interface and an operation "connect_q" which initializes this reference.
+
+<P>
+Connectors within a composite are transformed into a realization of a specific operation that creates the connections between
+parts, i.e. contains suitable combinations of <I>some-part</I>.connect_<I>some-port</I> <I>other-part</I>.get_<I>other-port</I>.
+
+<P>
+Once the transformation of component-based models to object-oriented models is done, a "classical" code generator taking an
+object-oriented UML model as input is sufficient for the code generation (in our case C++).
+For each class or interface, a C++ class is generated. The UML packages are transformed into C++ name spaces. The organization
+of the files follows the same as in Java. A name space corresponds to a directory and thus reflects the package structure in UML.
+
+<P>
+The dependencies to the external packages are translated into <I>include</I> directives to libraries. The generated code can now
+be compiled, for instance in the context of the Eclipse CDT environment.
+
+<P>
+
+</BODY>
+</HTML>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/concepts/connector-container.html b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/concepts/connector-container.html
new file mode 100644
index 00000000000..057bf4612d1
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/concepts/connector-container.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+ <meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8">
+ <title>Connector and container pattern</title>
+ <link rel="StyleSheet"
+ href="../sitestyle.css"
+ type="text/css">
+</head>
+
+<body>
+<img src="../img/qompass-0.33.jpg" alt="Qompass logo">
+<h1>Connector and container pattern</h1>
+
+<P>
+The connector pattern is based on the idea of Garlan and Shaw that a realization of an interaction must be
+a first class citizen of the application model. It must be possible that an interaction - like an
+application component - has multiple realizations and can be configured. The idea of connectors has been
+formalized in the context of UML in [<A
+ HREF="bibliography.html#Robert:05a">4</A>] and [<A
+ HREF="bibliography.html#Robert:05b">5</A>]: a UML connector - a "line" within a composite class - is replaced by an
+ interaction component as shown in the left part of Fig. <A HREF="#fig:cont-conn">3</A>.
+
+<P>
+The interaction component is typically defined in a model library in form of a <I>template</I>. This is required,
+since the interaction component must be able to adapt to the context in which it is used. For instance, in case of
+an operation call of a component, the interaction component must provide the same operation as the component.
+In most cases, the formal parameter of the template is either an interface or a data-type. The implementation of
+the interaction component must be adapted as well, in order to correspond to the interface. The implementation body
+is thus provided in a form a a template of a typical model-to-text (M2T) language, in our case Acceleo.
+
+<P>
+The container pattern may be used to modify the way a component interacts with its environment. This pattern has been
+identified by existing middleware solutions, such as
+CCM[<A HREF="bibliography.html#OMG:CCM:08">2</A>] and
+Fractal[<A HREF="bibliography.html#Fractal:04">1</A>].
+The container encapsulates an object (component) and can provide additional service and observer or manipulate the
+interactions with the component. In order to enhance flexibility (and readability) of the application model, it is
+preferable to add information about the container (in form of rules) to the model, but not the container itself.
+Thus, a transformation step adds the container to the model.
+
+<P>
+
+<center>
+<a name="fig:cont-conn">
+<img src="../img/container-connector.png"><br>
+Connector reification and container expansion
+</center>
+
+<P>
+The right side of Figure <A HREF="#fig:cont-conn">3</A> shows this principle: a component "C" is enriched with rules
+to apply. This information is evaluated by a transformation that creates the container and adds the elements that are
+associated with the rule. The component becomes an <I>executor</I>, i.e the business code behind a component. It is possible
+to distinguish two different types of elements within the container: the <I>interceptor</I> and the <I>extensions</I>. The
+interceptor is placed on a delegation connection between a port of the container and the executor. The extension is
+an additional element which can be connected with external ports of the container.
+<P>
+
+<center>
+<a name="figSMrule">
+<img src="../img/statemachine-rule.png"><br>
+Container rule for a state machine
+</center>
+
+<P>
+The current container libraries offer for instance the production of execution traces or the realization of mutual access.
+An interesting feature is the support for state-machines. Its realization requires three elements within the container:
+the state-machine itself, an event pool and an interceptor which feeds the pool (e.g. each time an operation is called,
+an associated call event is produced). These elements are captured by the rule shown in Figure <A HREF="#figSMrule">4</A>.
+
+<P>
+In a similar way as the FIFO interaction component, the state machine and the interceptor are defined in a package template.
+The model of the state machine is defined for a component (class). The implementation of the state machines depends on the
+formal parameter which is instantiated with a class. The message interceptor is typed with an interface, since it primarily
+captures call-events.
+
+<P>
+The following code fragment describes the template of an operation which manages the execution of a state-machine.
+The code, here using the C++ language, is modeled by an UML opaque behavior. The access to the model element is embedded
+between <TT>[</TT> and <TT>/]</TT>, i.e. <TT>[name/]</TT> allows to access the name of a UML element. This excerpt shows
+the power to adapt the behavior of embedded components via the container to add new functionality that is well separated
+of the business code.
+
+<P>
+<PRE>
+[for (sm : StateMachine | ownedBehavior-&gt;select(oclIsKindOf(StateMachine)))]
+switch(m_currentState)
+{
+ [for (state : State | sm.region.subvertex-&gt;select(oclIsKindOf(State)))]
+ case [clazz.name/]_[state.name/]:
+ ...
+ [/for] ...
+</PRE>
+
+<P>
+The instantiation of the template with a fictive class "A" is shown in the next code fragment. This class contains a
+state machine with the state "state1", which appears in the code's "switch" statement. In each state, the events defined
+as triggers for transitions are compared with the event read from the pool (in which a timer or interceptor write).
+
+<P>
+<PRE>
+switch(m_currentState)
+{
+ case A_state1:
+ ...
+</PRE>
+
+<P>
+
+<P>
+<HR>
+
+</BODY>
+</HTML>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/concepts/input-models.html b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/concepts/input-models.html
new file mode 100644
index 00000000000..1d910b4c70c
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/concepts/input-models.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+ <meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8">
+ <title>Qompass</title>
+ <link rel="StyleSheet"
+ href="../sitestyle.css"
+ type="text/css">
+</head>
+<body>
+<img src="../img/qompass-0.33.jpg" alt="Qompass logo">
+<h1>Input models</h1>
+
+The set of input models contains three sub-models that are shortly described in the sequel:
+<ol>
+<li> the software component model,
+<li> the hardware platform and
+<li> the deployment model.
+</ol>
+
+In the context of this page, the input models are discussed without referring to a specific example. Sample models are available via the Qompass
+online help or via the "create-new example" dialog of Eclipse.
+
+<h2>Component model</h2>
+
+We use the UML MARTE component model that describes components (with their internal behavior), and the interaction points (ports)
+characterized by the transferred data or by the provided/required services. Interactions are realized by the design patterns described
+in section <a href="connector-container.html">Connector/Container</a>.
+The concurrent behavior is specified via the HLAM (High Level Application Modeling) sub-profile of MARTE. This concurrency model
+identifies the components that possesses execution resources (RtUnit) and the shared ones (PpUnit) which do not have execution resources,
+but resources that manage the concurrent access.
+
+<h2>Platform model</h2>
+
+A hardware architecture is described in a similar way as the logical architecture by composition of elements. A class called
+"HWArchitecture" represents the complete platform. The attributes of this class represent nodes. Each node is typed with a class
+that captures the properties of this node. Each node can have a further internal structure, a hierarchical structure
+can thus be modeled.
+<p>
+
+
+<h2>Deployment model</h2>
+
+The deployment of an application consists to define the component instance, their configuration and their allocation to an
+execution node. The UML composite structure defines the roles that are played by each component of the system. The deployed
+component is always an instance of a component that has a specfied allocation to an execution resource (node or thread) and
+a specific configuration. In UML, an instance is defined by an "InstanceSpecification", the values of properties are given via
+"slots". In case that the property represents a sub-component, the associated value is a further instance specification. The
+resulting hierarchical structure is quite difficult to maintain and is automatically generated and maintained by tools.
+
+A component-based system requires a configuration. The configuration attribute of a timer for instance define its frequency. The
+values of this configuration attribute can be defined at two different levels.
+<ul>
+<li> on declaration level by associating a default value with an attribute
+<li> on instance level, by specify a corresponding slot value
+</ul>
+Once all component are instantiated and configured, they can be allocated.
+
+The allocation phase consists of defining the relation between the the instances of software components and those of the platform elements.
+The Figure below describes the deployment of the component DeviceControlMonitor and PGController on the hardware platform. The MARTE
+"Allocate" relationship is used to describe the allocation model.
+
+The allocation can be refined by introducing local resources of the platform between the application the hardware platforms -- in
+MARTE via the concept of a "SwSchedulableResource".
+
+</body>
+</html>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/concepts/overview.html b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/concepts/overview.html
new file mode 100644
index 00000000000..9148d7e6230
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/concepts/overview.html
@@ -0,0 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+ <meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8">
+ <title>Qompass</title>
+ <link rel="StyleSheet"
+ href="../sitestyle.css"
+ type="text/css">
+</head>
+<body>
+<img src="../img/qompass-0.33.jpg" alt="Qompass logo">
+<a href="http://www.eclipse.org/modeling/mdt/papyrus/" target="_parent"><img src="../img/logo-papyrus.png" border="0"></a>
+<a href="http://www.omgmarte.org" target="_parent"><img src="../img/logo-marte.png" alt="OMG MARTE" border="0"></a>
+
+<h1>Overview</h1>
+
+Qompass Designer is a component based modeling approach that supports the code generation from embedded
+systems. Theses systems are characterized by timing and resource constraints - sometimes also
+denoted as non-functional properties. Since these systems get more and more complex, it is important
+that the non-functional properties are not just specified in the documentation and respected by the
+implemented system, but that these are explicitly modeled and suitable code is derived from the model.
+
+Qompass Designer is part of the Qompass tool-suite integrated into Papyrus. The separation of concerns between
+the two tools is that
+<ul>
+<li>Qompass analyzer analyzes a system, in particular with respect to schedulability
+ analysis. It enables the validation of several variants to allocate software components to execution
+ resources and thus provides an architectural exploration
+<li>Qompass designer supports the code generation for a specified architecture. It enables this code
+ generation by means of a sequence of transformations steps and a final code generation step as
+ shown in the figure below.
+</ul>
+
+<center>
+<img src="../img/overview-eng.png" alt="Tool Chain overview">
+</center>
+<p>
+
+Qompass is integrated into the open source UML editor <a href="http://www.eclipse.org/modeling/mdt/papyrus/">Papyrus</a>,
+The UML profile <a href="http://www.omgmarte.org" target="_parent">MARTE</a> is used for non-functional properties.
+Parts of the component model were developed in the context of the French national project <a href="http://www.flex-eware.org">Flex-eWare</a>.
+
+In the sequel, you find information about the
+<ul>
+<li><a href="input-models.html">input models for code generation"</a>
+<li><a href="connector-container.html">The idea of using dedicated interaction components and realizing cross-cutting concerns via the container</a>
+<li><a href="input-models.html">The code generation</a>
+</ul>
+
+We also recommend the examples section in the documentation index as a starting point for using Qompass, as well as the <a href="https://wiki.eclipse.org/Papyrus_Qompass">Qompass wiki page</a>.
+
+<p>
+
+</BODY>
+</HTML>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/developer-guide/DefineNewPortKinds.html b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/developer-guide/DefineNewPortKinds.html
new file mode 100644
index 00000000000..44b6609371a
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/developer-guide/DefineNewPortKinds.html
@@ -0,0 +1,34 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+ <meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8">
+ <title>Qompass</title>
+ <link rel="StyleSheet"
+ href="/sitestyle.css"
+ type="text/css">
+</head>
+<body>
+<h1>How-to create your own port-kinds</h1>
+
+A port kind characterizes a port. Simple examples of port kinds are (1) the UseInterface and
+ProvideInterface kinds which describe client/server ports and (2) PushPublisher which describe a data
+publisher port for a given data type. In the first case, the port is typed with the interface that is
+provided or required, in the second case, the port is typed with datatype.<br></br>
+Although it does not formally define its semantics, each port kind should be associated with a
+description of the intention behind it. A port kind is always associated with a <b>mapping rule</b>
+that describes which interface a port provides and/or requires when in function
+of its type (and/or additional information, e.g. coming from a MARTE stereotype).
+On the model level, a port kind is first a stereotyped class. It can be created with the Qompass palette.
+<p></p>
+The associated mapping rule is defined defined by means of Java code. You have to create a plugin
+that defines the (plug-in) extension port-mapping provided by the FCM profile plugin. The extension
+contains the (unqualified) name of the port kind and associated rules for the mapping.<br></br>
+
+The class must implement the interface FCM.util.IMappingRule, i.e. the operations getProvided,
+getRequired and needsTransaction. The former two return the provided (required) interface in function
+of the port type. The latter indicates whether the calculation of one of these (potentially) modifies
+the model by creating/or updating a derived interface and thus requires a transaction.
+Examples can be found in the plug-in org.eclipse.papyrus.qompass.designer.stdmappingRules.
+
+</body>
+</html> \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/developer-guide/createContainers.html b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/developer-guide/createContainers.html
new file mode 100644
index 00000000000..7c9b1ec491e
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/developer-guide/createContainers.html
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+ <meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8">
+ <title>Qompass</title>
+ <link rel="StyleSheet"
+ href="/sitestyle.css"
+ type="text/css">
+</head>
+<body>
+<h1>Qompass container development</h1>
+
+A container encapsules a component, i.e. it encloses an existing components and delegates ports to
+it. The following figure depicts a container enclosing an component. The principal idea is that the
+container handles the treatment of non-functional properties. Therefore, the existing component can
+focus on the implementation of the business logic. It is therefore also called executor, a term
+introduced by the OMG standard CORBA component model (CCM).<br></br>
+There are two different ways how a container can influence the execution of an executor. Either via
+interception or via extension. The two variants are shown in the sequel.
+
+<h2>How to create a container interceptor</h2>
+
+A container interceptor is basically a connector between a port of the . Thus, it can be defined in the same way as a
+connector, but needs to carry the stereotype interceptor.
+
+<h2>How to create a container extension</h2>
+
+A container extension is a
+
+<h2>How to create a container rule</h2>
+
+Before you create a container rule, you typically create either a interceptor or a container
+extension (see above).
+
+There are two different kinds of rules:
+<ol>
+<li>local rules that are only visible to a component owning them
+<li>global rules that are visible for all models that import the model library. In both
+ cases, the container rule is principally a stereotyped UML class. In the first case, it is a
+ sub-class owned by the component, which is typically created by the container rule dialog available
+ for the package. In the second the container rule is a normal class owned by a package; use the Qompass
+ palette to create the rule. Then, right on the rule to edit its properties.
+</body>
+</html> \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/developer-guide/createInteractionComponents.html b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/developer-guide/createInteractionComponents.html
new file mode 100644
index 00000000000..d6a0c24d682
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/developer-guide/createInteractionComponents.html
@@ -0,0 +1,58 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+ <meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8">
+ <title>Qompass</title>
+ <link rel="StyleSheet"
+ href="../sitestyle.css"
+ type="text/css">
+</head>
+<body>
+<h1>Connector Development</h1>
+
+The definition of a connector is quite similar to that of a component. Thus, its development is
+quite similar as well. The major differences are:
+<ul>
+<li>The type of ports are typically generic, i.e. template parameters.
+<li>A connector is often distributed, i.e. the connector itself is an assembly of connector fragments
+<li>It may be required to define additional port kinds
+</ul>
+
+In the following steps, we address the issues above in addition to the normal development of a component.
+
+<h2>Integration into a package template</h2>
+
+The ports of a connector are often generic, since the connector should connect a large variety of
+components. Therefore, the type of the ports often refer to a template parameter. For instance, in
+case of ports providing or requiring an interface, the BasicCalls model library defines a package
+template with the template parameter &quot;I&quot; which denotes an arbitrary interface.
+When a new connector is defined, the developer should first verify if a suitable package template
+already exists.
+The use of a package import declares the extension of a existing package.
+It is possible to extend this package template by eds to refer to a generic port type - a port whose type adapts that refers to template parameters
+<p>
+
+In the context of a new interaction component definition, it may be necessary to define new port kinds. A port kind associates a semantics (informally) with a port. It consists of a rule for the provided and required interface in function of the port type.
+The rule is currently coded in Java and provided via an (Eclipse) extension point defined by the FCM plugin. This extension point is called fcmPortMappingRule and associates the name of a port kind with a class.&lt;br&gt;
+The class must implement the interface FCM.util.IMappingRule, i.e. the operations getProvided, getRequired and needsTransaction. The former two return the provided (required) interface in function of the port type. The latter indicates whether the calculation of one of these (potentially) modifies the model by creating/or updating a derived interface and thus requires a transaction.
+
+<p>
+An interaction component is the realization of an interaction pattern which is defined by an abstract interaction
+component. There are two cases,
+<ol>
+<li>You want to create a new implementation of an existing interaction mechanism
+<li>You want to create an additional interaction mechanism
+</ol>
+
+A particularity of a connector is that it is typically defined in a package template. In the first case, i.e.
+the creation of an existing implementation.
+Instead of creating a new package template for each new connector, an existing package template should be
+extended - provided that the formal parameters are identical. This favors reuse, e.g. the existing package
+template for method calls contains the definition of (a)synchronous connector types as well an enumeration
+over all the operation within the interface (template parameter).<br>
+
+There is no means in UML of extending an existing package. In Qompass, a package is extending an existing package
+template, if it merges with the existing package template.
+
+</body>
+</html> \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/developer-guide/developer.html b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/developer-guide/developer.html
new file mode 100644
index 00000000000..419936e9f52
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/developer-guide/developer.html
@@ -0,0 +1,57 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <title>Main Topic</title>
+ <link rel="StyleSheet"
+ href="../sitestyle.css"
+ type="text/css">
+</head>
+
+<body>
+<h1>Qompass developer guide</h1>
+
+The objective of this guide is to provide information about the architecture of Qompass designer and enable developers to
+contribute to its development, i.e. it is not intend for people that want to develop applications with Qompass designer.
+This guide is currently quite incomplete and should give a rough overview of the Qompass plug-ins.
+
+In general, there is a separation between the generic transformation mechanisms and the model libraries defining
+interaction components and container extensions. It is quite likely that a contribution only focusses on one of these two,
+for instance on a model library for a dedicated interaction mechanism.
+
+The transformation mechanisms consists of the following plug.ins:
+<ul>
+<li>org.eclipse.papyrus.qompass.designer.feature This plugin contains the definition of the Qompass feature
+<p>
+<li><a href="org.eclipse.papyrus.qompass.designer.core.html">org.eclipse.papyrus.qompass.designer.core:</a> The main Qompass plugin
+<li>org.eclipse.papyrus.qompass.designer.validation: A set of validation rules that check the well-formedness of models,
+ for instance, whether a connection betwee ports if syntactically valid.
+ The validation plug-ins defines a set of EMF validation rules in form of Java code.
+
+<li>org.eclipse.papyrus.qompass.designer.cpp: A plugin with support for C++, in particular (1) for the creation
+ and configuration of Eclipse CDT projects and (2) the interaction with the C++ code generator.
+<li>org.eclipse.papyrus.fcm.profile: A plugin container the Flex-eware component model in form of a static profile
+<li>org.eclipse.papyrus.codegen.cpp: C++ code generator and simple C++ view
+
+</ul>
+
+<p>
+In addition to the generation plugins, Qompass contains a set of model libraries that are
+dedicated for a specific domain and/or interaction mechanisms.
+
+<ul>
+<li>org.eclipse.papyrus.qompass.designer.modellibs.core: A set of basic interaction mechanisms and container rules as well
+ as port kinds along with the calculation of provided and required interface from the port type
+ and kind ("mapping rules").
+<li>org.eclipse.papyrus.qompass.designer.modellibs.marte: A modeling library for MARTE, contains a set of FCM port kinds
+ suitable for MARTE (client/server and flow ports) and model elements for RtUnit and PpUnit.
+ A model listener performs automatic synchronization between MARTE and FCM stereotypes, e.g.
+ will automatically initialize the FCM port kind attribute with the kind that corresponds to
+ the MARTE stereotype and apply container rules associated with Rtunit and Ppunit.
+<li>org.eclipse.papyrus.qompass.designer.modellibs.distribution: Distribution support via sockets
+<li>org.eclipse.papyrus.qompass.designer.modellibs.tracing: Tracing support (container rule and interceptor) for OTF
+</ul>
+
+</body>
+</html>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/developer-guide/org.eclipse.papyrus.qompass.designer.core.html b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/developer-guide/org.eclipse.papyrus.qompass.designer.core.html
new file mode 100644
index 00000000000..2136ae652a7
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/developer-guide/org.eclipse.papyrus.qompass.designer.core.html
@@ -0,0 +1,34 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <title>Main Topic</title>
+ <link rel="StyleSheet"
+ href="../sitestyle.css"
+ type="text/css">
+</head>
+
+<body>
+<h1>org.eclipse.papyrus.qompass.designer.core</h1>
+
+This is the main Qompass plugin. It contains the dialogs and model transformations code as well as a
+set of utilities classes.
+Qompass consists of a set of package (oepqd is an abbreviation for the path org.eclipse.papyrus.qompass.designer):
+<ul>
+<li>ccegc.acceleo a driver for the versoin 2.7.x of Acceleo. This driver is used to instantiate text
+templates that refer to model elements. These are primarily used for the connector instantiation (since
+the implementations given in form of Opaque behaviors need to be instantiated as well.
+
+<li>oepqd.deployment
+<li>oepqd.transformation
+ Main transformation code
+<li>oepqd.synchronization
+ A part of the utilities that synchronize derived elements, in particular the implementation of
+ a component which has for instance
+ <ul>
+ <li>implement the interfaces provided by a component port
+ </ul>
+</ul>
+</body>
+</html>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/arrow.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/arrow.png
new file mode 100644
index 00000000000..1c66a6d427d
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/arrow.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/connector-after-trafo.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/connector-after-trafo.png
new file mode 100644
index 00000000000..aae501c9e90
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/connector-after-trafo.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/connector-before-trafo.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/connector-before-trafo.png
new file mode 100644
index 00000000000..04595b063cb
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/connector-before-trafo.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/connector-selection.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/connector-selection.png
new file mode 100644
index 00000000000..3e60881270c
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/connector-selection.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/container-aggregation.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/container-aggregation.png
new file mode 100644
index 00000000000..9f98f79e705
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/container-aggregation.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/container-connector.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/container-connector.png
new file mode 100644
index 00000000000..73cbaea6fa4
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/container-connector.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/container-interceptor.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/container-interceptor.png
new file mode 100644
index 00000000000..88d630ba405
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/container-interceptor.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/container-interceptor2.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/container-interceptor2.png
new file mode 100644
index 00000000000..82a0a5031f3
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/container-interceptor2.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/container-selection.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/container-selection.png
new file mode 100644
index 00000000000..0ee528ca514
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/container-selection.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/deployment.pdf b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/deployment.pdf
new file mode 100644
index 00000000000..7fd5e843362
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/deployment.pdf
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/deployment.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/deployment.png
new file mode 100644
index 00000000000..b0ae3117501
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/deployment.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/logo-flex-eWare-small.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/logo-flex-eWare-small.png
new file mode 100644
index 00000000000..42ad4899399
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/logo-flex-eWare-small.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/logo-marte.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/logo-marte.png
new file mode 100644
index 00000000000..d33ef562b5f
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/logo-marte.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/logo-papyrus.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/logo-papyrus.png
new file mode 100644
index 00000000000..f85045926f3
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/logo-papyrus.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/overview-eng.odg b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/overview-eng.odg
new file mode 100644
index 00000000000..a38a594fb7b
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/overview-eng.odg
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/overview-eng.pdf b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/overview-eng.pdf
new file mode 100644
index 00000000000..a615fa7ce91
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/overview-eng.pdf
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/overview-eng.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/overview-eng.png
new file mode 100644
index 00000000000..d22ad2fb51c
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/overview-eng.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/overview-eng.vsd b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/overview-eng.vsd
new file mode 100644
index 00000000000..a274050ab84
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/overview-eng.vsd
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/qompass-0.33.jpg b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/qompass-0.33.jpg
new file mode 100644
index 00000000000..8c429f9dc5e
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/qompass-0.33.jpg
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/qompass.jpg b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/qompass.jpg
new file mode 100644
index 00000000000..26807d913e4
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/qompass.jpg
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/scaled/connector-after-trafo.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/scaled/connector-after-trafo.png
new file mode 100644
index 00000000000..c19b14f091a
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/scaled/connector-after-trafo.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/scaled/connector-before-trafo.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/scaled/connector-before-trafo.png
new file mode 100644
index 00000000000..3568e8e8e08
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/scaled/connector-before-trafo.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/scaled/connector-selection.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/scaled/connector-selection.png
new file mode 100644
index 00000000000..0cf9151893c
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/scaled/connector-selection.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/scaled/container-aggregation.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/scaled/container-aggregation.png
new file mode 100644
index 00000000000..2f260c5498b
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/scaled/container-aggregation.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/scaled/container-interceptor.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/scaled/container-interceptor.png
new file mode 100644
index 00000000000..43c3f8b4edf
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/scaled/container-interceptor.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/scaled/container-interceptor2.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/scaled/container-interceptor2.png
new file mode 100644
index 00000000000..10b73141e50
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/scaled/container-interceptor2.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/scaled/container-selection.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/scaled/container-selection.png
new file mode 100644
index 00000000000..b8a372f44cd
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/scaled/container-selection.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/statemachine-rule.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/statemachine-rule.png
new file mode 100644
index 00000000000..2754cb16625
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/statemachine-rule.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/toolchain.odg b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/toolchain.odg
new file mode 100644
index 00000000000..c752e963472
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/toolchain.odg
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/toolchain.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/toolchain.png
new file mode 100644
index 00000000000..68442484be3
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/toolchain.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/trace2.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/trace2.png
new file mode 100644
index 00000000000..e8c9820c4c7
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/img/trace2.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/reference/component.html b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/reference/component.html
new file mode 100644
index 00000000000..fb6364efedb
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/reference/component.html
@@ -0,0 +1,33 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+ <meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8">
+ <title>Qompass</title>
+ <link rel="StyleSheet"
+ href="../sitestyle.css"
+ type="text/css">
+</head>
+<body>
+<h1>Components</h1>
+
+An Qompass component is a UML class (you might also use a UML component), since classes
+contain essential properties we require of a component:
+<ul>
+<li>they own a set of ports and may interact through these ports. On the port level, a component needs to declare explicitly,
+ which services it offers and which it requires from other others. It is important that a component does not know which
+ other component will provide a required service, it only states the required services (interfaces or data-types). Thus, compared
+ to an element of a classical library, dependencies on other elements are limited and the components are loosely coupled with
+ their environment
+<li>A class may have an explicit internal structure: a set of <i>parts</i> that are typed with other components (UML classes).
+ The ports of the parts may be connected (assembly), a port of the component itself might delegate to a port of a part.
+ These components are also called assembly components.
+</ul>
+
+A component might either be a type or an implementation. The former is mainly an abstract class with a set of ports
+and no internal structure. It may inherit from other component types, but not from implementations.
+The latter has to realize at least a subset of the services that are provided at its ports (if it does not define all, it
+needs to be declared as abstract). The realization could be either done by an implementation written in a specific programming
+language or the UML action language or by a delegation to an inner part.
+
+</body>
+</html>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/reference/container.html b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/reference/container.html
new file mode 100644
index 00000000000..73aaa3d3443
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/reference/container.html
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+ <meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8">
+ <title>Qompass</title>
+ <link rel="StyleSheet"
+ href="../sitestyle.css"
+ type="text/css">
+</head>
+<body>
+<h1>Qompass container development</h1>
+
+A container encapsules a component, i.e. it encloses an existing components and delegates ports to
+it. The following figure depicts a container enclosing an component. The principal idea is that the
+container handles the treatment of non-functional properties. Therefore, the existing component can
+focus on the implementation of the business logic. It is therefore also called executor, a term
+introduced by the OMG standard CORBA component model (CCM).<br></br>
+There are two different ways how a container can influence the execution of an executor. Either via
+interception or via extension. The two variants are shown in the sequel.
+
+<h2>How to create a container interceptor</h2>
+
+A container interceptor is basically a delegation connector between a port of the container and the
+executor. Thus, it can be defined in the same way as a connector, but needs to carry the stereotype
+interceptor.<br>
+
+<img src="../img/scaled/container-interceptor.png" alt="An example of a container interceptor">
+<img src="../img/arrow.png">
+<img src="../img/scaled/container-interceptor2.png" alt="Further expansion">
+
+<p>
+Further expansion as for a <a href="connector.html">connector</a>
+
+<h2>Container rules</h2>
+
+A container rule defines which container extensions and/or interceptors should be applied. The
+concept of a container rule has been introduced, since some aggregation/interceptor combinations
+depend on each other. Their independ selection would be error prone, instead a single container
+rule selects the combination.
+
+There are two different kinds of rules:
+<ol>
+<li>local rules that are only visible to a component owning them
+<li>global rules that are visible for all models that import the model library. In both
+ cases, the container rule is principally a stereotyped UML class. In the first case, it is a
+ sub-class owned by the component, which is typically created by the container rule dialog available
+ for the package. In the second the container rule is a normal class owned by a package; use the Qompass
+ palette to create the rule. Then, right on the rule to edit its properties.
+</ol>
+
+<img src="../img/scaled/container-selection.png" alt="container selection">
+
+</body>
+</html>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/reference/interactionComponent.html b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/reference/interactionComponent.html
new file mode 100644
index 00000000000..98391302fba
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/reference/interactionComponent.html
@@ -0,0 +1,61 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+ <meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8">
+ <title>Interaction components and connectors</title>
+ <link rel="StyleSheet"
+ href="../sitestyle.css"
+ type="text/css">
+</head>
+<body>
+<h1>Interaction components and connectors</h1>
+
+An interaction component is a component that is responsible for realizing an interaction between two or more
+components.<br>
+
+A UML connector denotes a link between two components, or more precisely between two or more parts (or ports of parts)
+within a composition. In UML, the connector only denotes that there is a connection, it does not carry further
+annotations that characterize the interaction or how it is implemented.
+
+<br>
+In Qompass, a connector carries additional information (via the FCM profile) about a type or implementation
+used for its realization, the interaction component.<br>
+
+An interaction component is quite similar to a standard component: there is an optional separation
+between its type and its implementation, it owns ports, it may be a composition of parts typed with
+other components.
+The main difference is that it needs to be generic, since the interaction component has to adapt itself
+to the environment in which it is used, e.g. to the interfaces of ports it connectors.
+The following figure shows a connector and the referenced connector component. The tool chain
+<i>reifies</i> a connector to a connector component during deployment, as shown in the following figure:
+
+<img src="../img/scaled/connector-before-trafo.png" alt="connector before transformation">
+<img src="../img/arrow.png">
+<img src="../img/scaled/connector-after-trafo.png" alt="connector after transformation">
+
+<h2>Connector matching algorithm</h2>
+
+In order to check whether a connector can be applied, we need to find a binding of its formal template
+parameter(s) for which all ports of the connector match a port of the application components with which
+it is connected. Of course, a single binding must establish matching for all connector ports at the same
+time. A match is fulfilled, if either
+<ol>
+<li>The ports have an identical kind and type, and one of the ports is conjugated (i.e its provided and
+ required interfaces are swapped). The connector port is typically typed with the formal parameter, i.e.
+ matching is reached if the formal is bound to the same type as the application port.
+<li>The provided interface of one port has a matching required interface of the opposite port and vice versa.
+ Assuming again,that a port of the connector is typed with the formal parameter of the template, the
+ calculation is limited to the case of mapping rules that expose the formal parameter directly as
+ provided or required interface, i.e. that do not create a derived interface that depends on the
+ formal parameter. Otherwise,
+ the calculation of the formal parameter would require a reverse execution of the mapping rule
+ (calculation of port type when a provided or required interface is given). This implies in practice
+ that connectors with simple ports using ProvideInterface or UseInterface match: the rule is actually
+ less strong that the first, since it is possible to match ports that have not specifically be designed
+ for each other. For instance, the PushProducer port for a dataype DT has a required interface with an
+ operation "push(in data : DT)". A port with the generic UseInterface kind can match the PushProducer
+ port. Thus, a synchronous call connector s compatible with a PushProducer/PushConsumer port combination.
+</ol>
+
+</body>
+</html>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/reference/port.html b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/reference/port.html
new file mode 100644
index 00000000000..dc0c832a6c7
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/reference/port.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+ <meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8">
+ <title>Qompass</title>
+ <link rel="StyleSheet"
+ href="../sitestyle.css"
+ type="text/css">
+</head>
+<body>
+<h1>Ports</h1>
+
+Ports are interaction points of components. A component may execute operation calls via a port when
+it requires a service. When a component provides a service, a operation of a port is called when the
+service is invoked. In Qompass, this abstraction is also used for data oriented ports, as calls are flexible
+and well handled by the underlying programming language. For instance, data consumption via polling might
+correspond to the call of an &quot;getData&quot; operation (component calls, required interface),
+consumption via push the call of an pushData operation (environment calls, provided interface).
+<p>
+From the user view point, the provision or use of a specific interface is an implementation aspect. Therefore,
+these two interfaces or not specified, but they are calculated or <i>derived</i> from two other port properties:
+its type and its <a href="portKind.html">kind</a>. For instance, a &quot;PullConsumer&quot; port kind could be used in
+conjunction with a data type and would define the &quot;getData&quot; operation above.
+
+</body>
+</html>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/reference/portKind.html b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/reference/portKind.html
new file mode 100644
index 00000000000..983c6983f58
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/reference/portKind.html
@@ -0,0 +1,27 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+ <meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8">
+ <title>Qompass</title>
+ <link rel="StyleSheet"
+ href="/sitestyle.css"
+ type="text/css">
+</head>
+<body>
+<h1>Port kinds</h1>
+
+A port kind characterizes a port. Simple examples of port kinds are (1) the UseInterface and
+ProvideInterface kinds which describe client/server ports and (2) PushPublisher which describe a data
+publisher port for a given data type. In the first case, the port is typed with the interface that is
+provided or required, in the second case, the port is typed with datatype.<br></br>
+Although it does not formally define its semantics, each port kind should be associated with a
+description of the intention behind it. A port kind is always associated with a <b>mapping rule</b>
+that describes which interface a port provides and/or requires when in function
+of its type (and/or additional information, e.g. coming from a MARTE stereotype).
+
+On the model level, a port kind is first a stereotyped class. In Qompass, the associated mapping rule
+is defined defined by means of Java code. but this is mainly an implementation issue.
+Examples can be found in the plug-in org.eclipse.papyrus.qompass.designer.stdmappingRules.
+
+</body>
+</html> \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/reference/trafos.html b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/reference/trafos.html
new file mode 100644
index 00000000000..27ad089bcb9
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/reference/trafos.html
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+ <meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8">
+ <title>Qompass</title>
+ <link rel="StyleSheet"
+ href="../sitestyle.css"
+ type="text/css">
+</head>
+<body>
+<h1>Transformations</h1>
+
+Before an Qompass component can be deployed, there is a set of transformations that is applied
+
+<ol>
+<li>Each port is translated into a tripel of a property, an operation returning a reference to the interface
+ provided by the port (if any) and an operation allowing to connect the port (if port has a required
+ interface).
+
+<li>Parts: if a part is typed with an abstract component implementation or a component type, it cannot
+ directly be instantiated in some programming languages, notably C++ (in Java, attributes typed
+ with a class are always implictly references). For these, there are basically two options:
+ <ul>
+ <li>Change the type of the part and replace it by a concrete implementation. Obviously, this can only
+ work, if the deployment uses always the same implementaiton for the part.
+ <li>Assure that the composite only holds a reference to the part, i.e. make the part a pointer and
+ let the bootloader instantiate the sub-parts. The advantage is that it always works, but would not
+ do something useful in the context of variable systems.
+ </ul>
+<li>
+</ol>
+
+A component might either be a type or an implementation. The former is mainly a class with a set of ports
+and no internal structure. It may inherit from other component types, but not from implementations.
+The latter has to realize at least a subset of the services that are provided at its ports (if it does not define all, it
+needs to be declared as abstract). The realization could be either done by an implementation written in a specific programming
+language or the UML action language or by a delegation to an inner part.
+
+</body>
+</html>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/sitestyle.css b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/sitestyle.css
new file mode 100644
index 00000000000..4f5bb078d99
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/html/sitestyle.css
@@ -0,0 +1,13 @@
+BODY { font-family: "Helvetica", sans-serif;
+ background-color: white
+}
+
+A:link { color: #4040c0 }
+A:active { color: #909090 }
+A:visited { color: #9090f0 }
+
+TT {
+ background-color: #d0f8f0;
+ /* font-family: monospace; */
+ /* font-size: 100% */
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/model/ec3m-transformations.di b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/model/ec3m-transformations.di
new file mode 100644
index 00000000000..63bf1a9db4a
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/model/ec3m-transformations.di
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="ASCII"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi">
+ <pageList>
+ <availablePage>
+ <emfPageIdentifier href="ec3m-transformations.notation#_WxLIEOVlEeC9WYPftC2-Gw"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="ec3m-transformations.notation#_82d0IOiGEeCNXKwlBzXqfA"/>
+ </availablePage>
+ </pageList>
+ <sashModel currentSelection="//@sashModel/@windows.0/@children.0">
+ <windows>
+ <children xsi:type="di:TabFolder">
+ <children>
+ <emfPageIdentifier href="ec3m-transformations.notation#_WxLIEOVlEeC9WYPftC2-Gw"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="ec3m-transformations.notation#_82d0IOiGEeCNXKwlBzXqfA"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+</di:SashWindowsMngr>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/model/ec3m-transformations.notation b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/model/ec3m-transformations.notation
new file mode 100644
index 00000000000..5c943021045
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/model/ec3m-transformations.notation
@@ -0,0 +1,669 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/3.0.0/UML">
+ <notation:Diagram xmi:id="_WxLIEOVlEeC9WYPftC2-Gw" type="CompositeStructure" name="ConnectorTrafo" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_ZRRtUOVlEeC9WYPftC2-Gw" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZRS7cOVlEeC9WYPftC2-Gw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZRS7ceVlEeC9WYPftC2-Gw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZRTigOVlEeC9WYPftC2-Gw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZRTigeVlEeC9WYPftC2-Gw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZRTiguVlEeC9WYPftC2-Gw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZRTig-VlEeC9WYPftC2-Gw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZRTihOVlEeC9WYPftC2-Gw" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ZRUJkOVlEeC9WYPftC2-Gw" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_d3OkwOVlEeC9WYPftC2-Gw" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_d3PL0OVlEeC9WYPftC2-Gw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_d3PL0eVlEeC9WYPftC2-Gw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_d3Py4OVlEeC9WYPftC2-Gw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_d3Py4eVlEeC9WYPftC2-Gw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_d3Py4uVlEeC9WYPftC2-Gw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_d3Py4-VlEeC9WYPftC2-Gw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_d3Py5OVlEeC9WYPftC2-Gw" type="5126"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_d3Py5eVlEeC9WYPftC2-Gw" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_d3Py5uVlEeC9WYPftC2-Gw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_d3Py5-VlEeC9WYPftC2-Gw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kx-wYOVlEeC9WYPftC2-Gw" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kx_XcOVlEeC9WYPftC2-Gw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kx_-gOVlEeC9WYPftC2-Gw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kx_-geVlEeC9WYPftC2-Gw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kx_-guVlEeC9WYPftC2-Gw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kx_-g-VlEeC9WYPftC2-Gw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kx_-hOVlEeC9WYPftC2-Gw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kx_-heVlEeC9WYPftC2-Gw" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yIuvEOVlEeC9WYPftC2-Gw" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y_KtYNJuEeGZnf36xvOG8w" key="CustomAppearance_MaskValue" value="44"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kx_-huVlEeC9WYPftC2-Gw" x="19"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kyAlkOVlEeC9WYPftC2-Gw" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kyAlkeVlEeC9WYPftC2-Gw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="ec3m-transformations.uml#_kw0SwOVlEeC9WYPftC2-Gw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kx-wYeVlEeC9WYPftC2-Gw" x="-10" y="36" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-qK7gOiIEeCNXKwlBzXqfA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-qLikOiIEeCNXKwlBzXqfA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-qLikeiIEeCNXKwlBzXqfA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-qMJoOiIEeCNXKwlBzXqfA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-qMJoeiIEeCNXKwlBzXqfA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-qMJouiIEeCNXKwlBzXqfA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-qMJo-iIEeCNXKwlBzXqfA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-qMJpOiIEeCNXKwlBzXqfA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__2VzsOiIEeCNXKwlBzXqfA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zZ6vsNJuEeGZnf36xvOG8w" key="CustomAppearance_MaskValue" value="44"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-qMJpeiIEeCNXKwlBzXqfA" x="-27"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-qMwsOiIEeCNXKwlBzXqfA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-qMwseiIEeCNXKwlBzXqfA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="ec3m-transformations.uml#_-p_8YOiIEeCNXKwlBzXqfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-qK7geiIEeCNXKwlBzXqfA" x="108" y="36" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:Property" href="ec3m-transformations.uml#_d2xRwOVlEeC9WYPftC2-Gw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_d3OkweVlEeC9WYPftC2-Gw" x="184" y="11" width="118" height="69"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7rv9cOVlEeC9WYPftC2-Gw" type="3097" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7rxLkOVlEeC9WYPftC2-Gw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7rxLkeVlEeC9WYPftC2-Gw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7rxyoOVlEeC9WYPftC2-Gw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7rxyoeVlEeC9WYPftC2-Gw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7rxyouVlEeC9WYPftC2-Gw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7ryZsOVlEeC9WYPftC2-Gw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7ryZseVlEeC9WYPftC2-Gw" type="5150"/>
+ <element xmi:type="uml:Comment" href="ec3m-transformations.uml#_7q3zsOVlEeC9WYPftC2-Gw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7rv9ceVlEeC9WYPftC2-Gw" x="31" y="83" width="127" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_DFSKAOiLEeCNXKwlBzXqfA" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DFSxEOiLEeCNXKwlBzXqfA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DFSxEeiLEeCNXKwlBzXqfA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DFTYIOiLEeCNXKwlBzXqfA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DFTYIeiLEeCNXKwlBzXqfA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DFTYIuiLEeCNXKwlBzXqfA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DFTYI-iLEeCNXKwlBzXqfA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_DFTYJOiLEeCNXKwlBzXqfA" type="5126"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_DFTYJeiLEeCNXKwlBzXqfA" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_DFT_MOiLEeCNXKwlBzXqfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DFT_MeiLEeCNXKwlBzXqfA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_JDvsgOiLEeCNXKwlBzXqfA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JDwTkOiLEeCNXKwlBzXqfA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JDwTkeiLEeCNXKwlBzXqfA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JDwTkuiLEeCNXKwlBzXqfA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JDwTk-iLEeCNXKwlBzXqfA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JDw6oOiLEeCNXKwlBzXqfA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JDw6oeiLEeCNXKwlBzXqfA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JDw6ouiLEeCNXKwlBzXqfA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SB4FIOiLEeCNXKwlBzXqfA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0NStYNJuEeGZnf36xvOG8w" key="CustomAppearance_MaskValue" value="44"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JDw6o-iLEeCNXKwlBzXqfA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JDw6pOiLEeCNXKwlBzXqfA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JDw6peiLEeCNXKwlBzXqfA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="ec3m-transformations.uml#_JDi4MOiLEeCNXKwlBzXqfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JDvsgeiLEeCNXKwlBzXqfA" x="-10" y="36" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:Property" href="ec3m-transformations.uml#_DFHK4OiLEeCNXKwlBzXqfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DFSKAeiLEeCNXKwlBzXqfA" x="184" y="119" width="118" height="64"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ZRUwoOVlEeC9WYPftC2-Gw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZRUwoeVlEeC9WYPftC2-Gw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_n0Sq0OVlEeC9WYPftC2-Gw" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_n0T48OVlEeC9WYPftC2-Gw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_n0T48eVlEeC9WYPftC2-Gw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_n0UgAOVlEeC9WYPftC2-Gw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_n0UgAeVlEeC9WYPftC2-Gw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_n0UgAuVlEeC9WYPftC2-Gw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_n0UgA-VlEeC9WYPftC2-Gw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_n0UgBOVlEeC9WYPftC2-Gw" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xfu1YOVlEeC9WYPftC2-Gw" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1WfKENJuEeGZnf36xvOG8w" key="CustomAppearance_MaskValue" value="44"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_n0VHEOVlEeC9WYPftC2-Gw" x="19" y="-9"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_n0VHEeVlEeC9WYPftC2-Gw" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_n0VHEuVlEeC9WYPftC2-Gw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="ec3m-transformations.uml#_n0KH8OVlEeC9WYPftC2-Gw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_n0Sq0eVlEeC9WYPftC2-Gw" x="-10" y="72" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_xIwk8OiIEeCNXKwlBzXqfA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xIxzEOiIEeCNXKwlBzXqfA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xIxzEeiIEeCNXKwlBzXqfA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xIxzEuiIEeCNXKwlBzXqfA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xIxzE-iIEeCNXKwlBzXqfA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xIxzFOiIEeCNXKwlBzXqfA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xIyaIOiIEeCNXKwlBzXqfA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xIyaIeiIEeCNXKwlBzXqfA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AbcE0OiJEeCNXKwlBzXqfA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zyQ-QNJuEeGZnf36xvOG8w" key="CustomAppearance_MaskValue" value="44"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xIyaIuiIEeCNXKwlBzXqfA" x="-27" y="18"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xIyaI-iIEeCNXKwlBzXqfA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xIyaJOiIEeCNXKwlBzXqfA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="ec3m-transformations.uml#_xHVBkOiIEeCNXKwlBzXqfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xIwk8eiIEeCNXKwlBzXqfA" x="360" y="72" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:Class" href="ec3m-transformations.uml#_ZPvcQOVlEeC9WYPftC2-Gw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZRRtUeVlEeC9WYPftC2-Gw" x="324" y="36" width="370" height="226"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_YY1AIOiLEeCNXKwlBzXqfA" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YY2OQOiLEeCNXKwlBzXqfA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YY2OQeiLEeCNXKwlBzXqfA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YY2OQuiLEeCNXKwlBzXqfA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YY2OQ-iLEeCNXKwlBzXqfA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YY2OROiLEeCNXKwlBzXqfA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YY21UOiLEeCNXKwlBzXqfA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YY21UeiLEeCNXKwlBzXqfA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_YY21UuiLEeCNXKwlBzXqfA" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_YY21U-iLEeCNXKwlBzXqfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YY21VOiLEeCNXKwlBzXqfA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZiglAOiLEeCNXKwlBzXqfA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZihMEOiLEeCNXKwlBzXqfA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZihMEeiLEeCNXKwlBzXqfA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZihMEuiLEeCNXKwlBzXqfA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZihME-iLEeCNXKwlBzXqfA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZihzIOiLEeCNXKwlBzXqfA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZihzIeiLEeCNXKwlBzXqfA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZihzIuiLEeCNXKwlBzXqfA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_c4aJ0OiLEeCNXKwlBzXqfA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2X9OINJuEeGZnf36xvOG8w" key="CustomAppearance_MaskValue" value="44"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZihzI-iLEeCNXKwlBzXqfA" x="19"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZihzJOiLEeCNXKwlBzXqfA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZihzJeiLEeCNXKwlBzXqfA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="ec3m-transformations.uml#_kw0SwOVlEeC9WYPftC2-Gw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZiglAeiLEeCNXKwlBzXqfA" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZiiaMOiLEeCNXKwlBzXqfA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZijBQOiLEeCNXKwlBzXqfA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZijBQeiLEeCNXKwlBzXqfA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZijBQuiLEeCNXKwlBzXqfA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZijoUOiLEeCNXKwlBzXqfA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZijoUeiLEeCNXKwlBzXqfA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZijoUuiLEeCNXKwlBzXqfA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZijoU-iLEeCNXKwlBzXqfA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dezbcOiLEeCNXKwlBzXqfA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_17k0INJuEeGZnf36xvOG8w" key="CustomAppearance_MaskValue" value="44"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZijoVOiLEeCNXKwlBzXqfA" x="-25"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZijoVeiLEeCNXKwlBzXqfA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZikPYOiLEeCNXKwlBzXqfA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="ec3m-transformations.uml#_-p_8YOiIEeCNXKwlBzXqfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZiiaMeiLEeCNXKwlBzXqfA" x="124" y="36"/>
+ </children>
+ <element xmi:type="uml:Class" href="ec3m-transformations.uml#_ifnFIOVlEeC9WYPftC2-Gw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YY1AIeiLEeCNXKwlBzXqfA" x="90" y="81" width="134" height="68"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_xHBYMOiLEeCNXKwlBzXqfA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xHCmUOiLEeCNXKwlBzXqfA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xHCmUeiLEeCNXKwlBzXqfA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xHCmUuiLEeCNXKwlBzXqfA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xHCmU-iLEeCNXKwlBzXqfA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xHCmVOiLEeCNXKwlBzXqfA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xHDNYOiLEeCNXKwlBzXqfA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xHDNYeiLEeCNXKwlBzXqfA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ec3m-transformations.uml#_xG0j4OiLEeCNXKwlBzXqfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xHB_QOiLEeCNXKwlBzXqfA" x="129" y="183" width="124"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_WxLIEeVlEeC9WYPftC2-Gw"/>
+ <element xmi:type="uml:Model" href="ec3m-transformations.uml#_ThOaQOVlEeC9WYPftC2-Gw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_veYosOVlEeC9WYPftC2-Gw" type="4013" source="_kx-wYOVlEeC9WYPftC2-Gw" target="_n0Sq0OVlEeC9WYPftC2-Gw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_vebE8OVlEeC9WYPftC2-Gw" type="6025">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vebE8eVlEeC9WYPftC2-Gw" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vebE8uVlEeC9WYPftC2-Gw" visible="false" type="6050">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vebE8-VlEeC9WYPftC2-Gw" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vebsAOVlEeC9WYPftC2-Gw" visible="false" type="6051">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vebsAeVlEeC9WYPftC2-Gw" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vebsAuVlEeC9WYPftC2-Gw" visible="false" type="6052">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vebsA-VlEeC9WYPftC2-Gw" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_veYoseVlEeC9WYPftC2-Gw" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Connector" href="ec3m-transformations.uml#_vdVf0OVlEeC9WYPftC2-Gw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_veYosuVlEeC9WYPftC2-Gw" points="[-3, -1, 162, 20]$[-163, -21, 2, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ve4X8OVlEeC9WYPftC2-Gw" id="(0.15,0.15)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ve4X8eVlEeC9WYPftC2-Gw" id="(0.9,0.55)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="__hpQ8OVlEeC9WYPftC2-Gw" type="4002" source="_7rv9cOVlEeC9WYPftC2-Gw" target="_veYosOVlEeC9WYPftC2-Gw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="__hpQ8eVlEeC9WYPftC2-Gw" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__hpQ8uVlEeC9WYPftC2-Gw" points="[9, -30, 2, 17]$[9, -47, 2, 0]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__h5voOVlEeC9WYPftC2-Gw" id="(0.5508021390374331,0.5238095238095238)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7DQNQOiKEeCNXKwlBzXqfA" type="4013" source="_xIwk8OiIEeCNXKwlBzXqfA" target="_-qK7gOiIEeCNXKwlBzXqfA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_7DQ0UOiKEeCNXKwlBzXqfA" type="6025">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7DQ0UeiKEeCNXKwlBzXqfA" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7DQ0UuiKEeCNXKwlBzXqfA" visible="false" type="6050">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7DQ0U-iKEeCNXKwlBzXqfA" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7DQ0VOiKEeCNXKwlBzXqfA" visible="false" type="6051">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7DQ0VeiKEeCNXKwlBzXqfA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7DQ0VuiKEeCNXKwlBzXqfA" visible="false" type="6052">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7DQ0V-iKEeCNXKwlBzXqfA" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_7DQNQeiKEeCNXKwlBzXqfA" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Connector" href="ec3m-transformations.uml#_7DHDUOiKEeCNXKwlBzXqfA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7DQNQuiKEeCNXKwlBzXqfA" points="[-3, 0, 109, -11]$[-109, 11, 3, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7DjIMOiKEeCNXKwlBzXqfA" id="(0.15,0.35)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7DjIMeiKEeCNXKwlBzXqfA" id="(0.85,0.55)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_1bTQ0OiLEeCNXKwlBzXqfA" type="4002" source="_xHBYMOiLEeCNXKwlBzXqfA" target="_YY1AIOiLEeCNXKwlBzXqfA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_1bT34OiLEeCNXKwlBzXqfA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1bT34eiLEeCNXKwlBzXqfA" points="[-1, -1, 30, 68]$[7, -35, 38, 34]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1brEQOiLEeCNXKwlBzXqfA" id="(0.47580645161290325,0.016666666666666666)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_82d0IOiGEeCNXKwlBzXqfA" type="CompositeStructure" name="ContainerTrafo" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_RAMigOiHEeCNXKwlBzXqfA" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RANJkOiHEeCNXKwlBzXqfA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RANJkeiHEeCNXKwlBzXqfA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RANJkuiHEeCNXKwlBzXqfA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RANJk-iHEeCNXKwlBzXqfA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RANJlOiHEeCNXKwlBzXqfA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RANJleiHEeCNXKwlBzXqfA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RANwoOiHEeCNXKwlBzXqfA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_RANwoeiHEeCNXKwlBzXqfA" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_SobroOiHEeCNXKwlBzXqfA" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SocSsOiHEeCNXKwlBzXqfA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Soc5wOiHEeCNXKwlBzXqfA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Soc5weiHEeCNXKwlBzXqfA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Soc5wuiHEeCNXKwlBzXqfA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Soc5w-iHEeCNXKwlBzXqfA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Soc5xOiHEeCNXKwlBzXqfA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Soc5xeiHEeCNXKwlBzXqfA" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6SHWkNJuEeGZnf36xvOG8w" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6SH9oNJuEeGZnf36xvOG8w" key="CustomAppearance_MaskValue" value="60"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Soc5xuiHEeCNXKwlBzXqfA" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Soc5x-iHEeCNXKwlBzXqfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Soc5yOiHEeCNXKwlBzXqfA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_v59PgOiIEeCNXKwlBzXqfA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v592kOiIEeCNXKwlBzXqfA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_v592keiIEeCNXKwlBzXqfA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v592kuiIEeCNXKwlBzXqfA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_v592k-iIEeCNXKwlBzXqfA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v592lOiIEeCNXKwlBzXqfA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_v592leiIEeCNXKwlBzXqfA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_v592luiIEeCNXKwlBzXqfA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I4tzIOiJEeCNXKwlBzXqfA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7J89gNJuEeGZnf36xvOG8w" key="CustomAppearance_MaskValue" value="44"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_v592l-iIEeCNXKwlBzXqfA" x="-18" y="1"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_v5-doOiIEeCNXKwlBzXqfA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_v5-doeiIEeCNXKwlBzXqfA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="ec3m-transformations.uml#_kw0SwOVlEeC9WYPftC2-Gw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_v59PgeiIEeCNXKwlBzXqfA" x="99" y="36"/>
+ </children>
+ <element xmi:type="uml:Property" href="ec3m-transformations.uml#_SoTIwOiHEeCNXKwlBzXqfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SobroeiHEeCNXKwlBzXqfA" x="49" y="12" width="109" height="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kAhjYOiIEeCNXKwlBzXqfA" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kAjYkOiIEeCNXKwlBzXqfA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kAjYkeiIEeCNXKwlBzXqfA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kAjYkuiIEeCNXKwlBzXqfA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kAjYk-iIEeCNXKwlBzXqfA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kAjYlOiIEeCNXKwlBzXqfA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kAjYleiIEeCNXKwlBzXqfA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kAjYluiIEeCNXKwlBzXqfA" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_32zKsNJuEeGZnf36xvOG8w" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_32zxwNJuEeGZnf36xvOG8w" key="CustomAppearance_MaskValue" value="60"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kAj_oOiIEeCNXKwlBzXqfA" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kAj_oeiIEeCNXKwlBzXqfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kAj_ouiIEeCNXKwlBzXqfA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_EI0VgOiJEeCNXKwlBzXqfA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EI0VguiJEeCNXKwlBzXqfA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EI08kOiJEeCNXKwlBzXqfA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EI08keiJEeCNXKwlBzXqfA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EI08kuiJEeCNXKwlBzXqfA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EI08k-iJEeCNXKwlBzXqfA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EI08lOiJEeCNXKwlBzXqfA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_EI08leiJEeCNXKwlBzXqfA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JYjJwOiJEeCNXKwlBzXqfA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6sHK8NJuEeGZnf36xvOG8w" key="CustomAppearance_MaskValue" value="44"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EI08luiJEeCNXKwlBzXqfA" x="28" y="1"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_EI08l-iJEeCNXKwlBzXqfA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EI08mOiJEeCNXKwlBzXqfA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="ec3m-transformations.uml#_-p_8YOiIEeCNXKwlBzXqfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EI0VgeiJEeCNXKwlBzXqfA" x="-10" y="36"/>
+ </children>
+ <element xmi:type="uml:Property" href="ec3m-transformations.uml#_kAQdoOiIEeCNXKwlBzXqfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kAhjYeiIEeCNXKwlBzXqfA" x="301" y="12" width="114" height="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_mHV0AOiKEeCNXKwlBzXqfA" type="3097" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mHWbEOiKEeCNXKwlBzXqfA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mHXCIOiKEeCNXKwlBzXqfA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mHXCIeiKEeCNXKwlBzXqfA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mHXCIuiKEeCNXKwlBzXqfA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mHXCI-iKEeCNXKwlBzXqfA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mHXCJOiKEeCNXKwlBzXqfA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mHXCJeiKEeCNXKwlBzXqfA" type="5150"/>
+ <element xmi:type="uml:Comment" href="ec3m-transformations.uml#_mGQ18OiKEeCNXKwlBzXqfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mHV0AeiKEeCNXKwlBzXqfA" x="112" y="93" width="280" height="28"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_RANwouiHEeCNXKwlBzXqfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RANwo-iHEeCNXKwlBzXqfA"/>
+ </children>
+ <element xmi:type="uml:Class" href="ec3m-transformations.uml#_RAF00OiHEeCNXKwlBzXqfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RAMigeiHEeCNXKwlBzXqfA" x="198" y="107" width="487" height="155"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WFO3wOiJEeCNXKwlBzXqfA" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WFPe0OiJEeCNXKwlBzXqfA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WFPe0eiJEeCNXKwlBzXqfA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WFPe0uiJEeCNXKwlBzXqfA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WFQF4OiJEeCNXKwlBzXqfA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WFQF4eiJEeCNXKwlBzXqfA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WFQF4uiJEeCNXKwlBzXqfA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WFQF4-iJEeCNXKwlBzXqfA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_WFQF5OiJEeCNXKwlBzXqfA" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_YYmokOiJEeCNXKwlBzXqfA" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YYnPoOiJEeCNXKwlBzXqfA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YYn2sOiJEeCNXKwlBzXqfA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YYn2seiJEeCNXKwlBzXqfA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YYn2suiJEeCNXKwlBzXqfA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YYn2s-iJEeCNXKwlBzXqfA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YYn2tOiJEeCNXKwlBzXqfA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YYn2teiJEeCNXKwlBzXqfA" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5h4McNJuEeGZnf36xvOG8w" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5h4zgNJuEeGZnf36xvOG8w" key="CustomAppearance_MaskValue" value="60"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_YYodwOiJEeCNXKwlBzXqfA" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_YYodweiJEeCNXKwlBzXqfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YYodwuiJEeCNXKwlBzXqfA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ig2q8OiJEeCNXKwlBzXqfA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ig3SAOiJEeCNXKwlBzXqfA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ig3SAeiJEeCNXKwlBzXqfA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ig3SAuiJEeCNXKwlBzXqfA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ig3SA-iJEeCNXKwlBzXqfA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ig3SBOiJEeCNXKwlBzXqfA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ig35EOiJEeCNXKwlBzXqfA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ig35EeiJEeCNXKwlBzXqfA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1ZMC4OiJEeCNXKwlBzXqfA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1ZMC4eiJEeCNXKwlBzXqfA" key="CustomAppearance_MaskValue" value="46"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ig35EuiJEeCNXKwlBzXqfA" x="-42"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ig35E-iJEeCNXKwlBzXqfA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ig35FOiJEeCNXKwlBzXqfA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="ec3m-transformations.uml#_kw0SwOVlEeC9WYPftC2-Gw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ig2q8eiJEeCNXKwlBzXqfA" x="96" y="36"/>
+ </children>
+ <element xmi:type="uml:Property" href="ec3m-transformations.uml#_YYcQgOiJEeCNXKwlBzXqfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YYmokeiJEeCNXKwlBzXqfA" x="13" y="11" width="106" height="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_c_hJUOiJEeCNXKwlBzXqfA" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_c_iXcOiJEeCNXKwlBzXqfA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_c_iXceiJEeCNXKwlBzXqfA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_c_iXcuiJEeCNXKwlBzXqfA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_c_iXc-iJEeCNXKwlBzXqfA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_c_i-gOiJEeCNXKwlBzXqfA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_c_i-geiJEeCNXKwlBzXqfA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_c_i-guiJEeCNXKwlBzXqfA" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4XbykNJuEeGZnf36xvOG8w" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4XbykdJuEeGZnf36xvOG8w" key="CustomAppearance_MaskValue" value="60"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_c_i-g-iJEeCNXKwlBzXqfA" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_c_i-hOiJEeCNXKwlBzXqfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c_i-heiJEeCNXKwlBzXqfA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jSyeMOiJEeCNXKwlBzXqfA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jSyeMuiJEeCNXKwlBzXqfA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jSyeM-iJEeCNXKwlBzXqfA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jSzFQOiJEeCNXKwlBzXqfA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jSzFQeiJEeCNXKwlBzXqfA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jSzFQuiJEeCNXKwlBzXqfA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jSzFQ-iJEeCNXKwlBzXqfA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jSzFROiJEeCNXKwlBzXqfA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_01PBQOiJEeCNXKwlBzXqfA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_09ciEOiJEeCNXKwlBzXqfA" key="CustomAppearance_MaskValue" value="46"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jSzFReiJEeCNXKwlBzXqfA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jSzFRuiJEeCNXKwlBzXqfA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jSzFR-iJEeCNXKwlBzXqfA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="ec3m-transformations.uml#_-p_8YOiIEeCNXKwlBzXqfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jSyeMeiJEeCNXKwlBzXqfA" x="-10" y="36"/>
+ </children>
+ <element xmi:type="uml:Property" href="ec3m-transformations.uml#_c_XYUOiJEeCNXKwlBzXqfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c_hJUeiJEeCNXKwlBzXqfA" x="355" y="11" width="108" height="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_5yKOQOiJEeCNXKwlBzXqfA" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5yK1UOiJEeCNXKwlBzXqfA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5yLcYOiJEeCNXKwlBzXqfA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5yLcYeiJEeCNXKwlBzXqfA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5yLcYuiJEeCNXKwlBzXqfA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5yLcY-iJEeCNXKwlBzXqfA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5yLcZOiJEeCNXKwlBzXqfA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5yLcZeiJEeCNXKwlBzXqfA" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_49TfwNJuEeGZnf36xvOG8w" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_49TfwdJuEeGZnf36xvOG8w" key="CustomAppearance_MaskValue" value="60"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5yMDcOiJEeCNXKwlBzXqfA" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5yMDceiJEeCNXKwlBzXqfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5yMDcuiJEeCNXKwlBzXqfA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FxK98OiKEeCNXKwlBzXqfA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FxLlAOiKEeCNXKwlBzXqfA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FxLlAeiKEeCNXKwlBzXqfA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FxMMEOiKEeCNXKwlBzXqfA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FxMMEeiKEeCNXKwlBzXqfA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FxMMEuiKEeCNXKwlBzXqfA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FxMME-iKEeCNXKwlBzXqfA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FxMMFOiKEeCNXKwlBzXqfA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UUh5sOiKEeCNXKwlBzXqfA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UUh5seiKEeCNXKwlBzXqfA" key="CustomAppearance_MaskValue" value="46"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FxMMFeiKEeCNXKwlBzXqfA" x="25"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FxMMFuiKEeCNXKwlBzXqfA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FxMzIOiKEeCNXKwlBzXqfA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="ec3m-transformations.uml#_Fw-wsOiKEeCNXKwlBzXqfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FxK98eiKEeCNXKwlBzXqfA" x="-10" y="37" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_JZZo4OiKEeCNXKwlBzXqfA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JZaP8OiKEeCNXKwlBzXqfA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JZaP8eiKEeCNXKwlBzXqfA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JZaP8uiKEeCNXKwlBzXqfA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JZaP8-iKEeCNXKwlBzXqfA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JZaP9OiKEeCNXKwlBzXqfA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JZaP9eiKEeCNXKwlBzXqfA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JZaP9uiKEeCNXKwlBzXqfA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U2jBoOiKEeCNXKwlBzXqfA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U2josOiKEeCNXKwlBzXqfA" key="CustomAppearance_MaskValue" value="46"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JZaP9-iKEeCNXKwlBzXqfA" x="-45"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JZaP-OiKEeCNXKwlBzXqfA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JZaP-eiKEeCNXKwlBzXqfA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="ec3m-transformations.uml#_JZNboOiKEeCNXKwlBzXqfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JZZo4eiKEeCNXKwlBzXqfA" x="117" y="37" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:Property" href="ec3m-transformations.uml#_5x_2MOiJEeCNXKwlBzXqfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5yKOQeiJEeCNXKwlBzXqfA" x="175" y="10" width="127" height="65"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WFQF5eiJEeCNXKwlBzXqfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WFQF5uiJEeCNXKwlBzXqfA"/>
+ </children>
+ <element xmi:type="uml:Class" href="ec3m-transformations.uml#_WFCqgOiJEeCNXKwlBzXqfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WFO3weiJEeCNXKwlBzXqfA" x="198" y="297" width="487" height="118"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_82d0IeiGEeCNXKwlBzXqfA"/>
+ <element xmi:type="uml:Model" href="ec3m-transformations.uml#_ThOaQOVlEeC9WYPftC2-Gw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_P2T3YOiJEeCNXKwlBzXqfA" type="4013" source="_v59PgOiIEeCNXKwlBzXqfA" target="_EI0VgOiJEeCNXKwlBzXqfA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_P2UecOiJEeCNXKwlBzXqfA" type="6025">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_P2UeceiJEeCNXKwlBzXqfA" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_P2UecuiJEeCNXKwlBzXqfA" visible="false" type="6050">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_P2Uec-iJEeCNXKwlBzXqfA" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_P2UedOiJEeCNXKwlBzXqfA" visible="false" type="6051">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_P2UedeiJEeCNXKwlBzXqfA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_P2UeduiJEeCNXKwlBzXqfA" visible="false" type="6052">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_P2Ued-iJEeCNXKwlBzXqfA" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_P2T3YeiJEeCNXKwlBzXqfA" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Connector" href="ec3m-transformations.uml#_P05iIOiJEeCNXKwlBzXqfA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_P2T3YuiJEeCNXKwlBzXqfA" points="[10, -3, -133, -2]$[138, -11, -5, -10]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_TkarYOiKEeCNXKwlBzXqfA" type="4013" source="_ig2q8OiJEeCNXKwlBzXqfA" target="_FxK98OiKEeCNXKwlBzXqfA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_TkbScOiKEeCNXKwlBzXqfA" type="6025">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TkbSceiKEeCNXKwlBzXqfA" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TkbScuiKEeCNXKwlBzXqfA" visible="false" type="6050">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TkbSc-iKEeCNXKwlBzXqfA" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TkbSdOiKEeCNXKwlBzXqfA" visible="false" type="6051">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TkbSdeiKEeCNXKwlBzXqfA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Tkb5gOiKEeCNXKwlBzXqfA" visible="false" type="6052">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Tkb5geiKEeCNXKwlBzXqfA" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_TkarYeiKEeCNXKwlBzXqfA" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Connector" href="ec3m-transformations.uml#_TkTWoOiKEeCNXKwlBzXqfA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TkarYuiKEeCNXKwlBzXqfA" points="[3, 0, -39, 0]$[39, -1, -3, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TkwCkOiKEeCNXKwlBzXqfA" id="(0.85,0.4)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TkwCkeiKEeCNXKwlBzXqfA" id="(0.15,0.4)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_dV3XUOiKEeCNXKwlBzXqfA" type="4013" source="_JZZo4OiKEeCNXKwlBzXqfA" target="_jSyeMOiJEeCNXKwlBzXqfA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dV3-YOiKEeCNXKwlBzXqfA" type="6025">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dV4lcOiKEeCNXKwlBzXqfA" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dV4lceiKEeCNXKwlBzXqfA" visible="false" type="6050">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dV4lcuiKEeCNXKwlBzXqfA" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dV4lc-iKEeCNXKwlBzXqfA" visible="false" type="6051">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dV4ldOiKEeCNXKwlBzXqfA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dV4ldeiKEeCNXKwlBzXqfA" visible="false" type="6052">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dV4lduiKEeCNXKwlBzXqfA" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dV3XUeiKEeCNXKwlBzXqfA" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Connector" href="ec3m-transformations.uml#_dVwpoOiKEeCNXKwlBzXqfA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dV3XUuiKEeCNXKwlBzXqfA" points="[3, -1, -34, 0]$[36, -2, -1, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dWJrMOiKEeCNXKwlBzXqfA" id="(0.85,0.45)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dWKSQOiKEeCNXKwlBzXqfA" id="(0.05,0.4)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_0aKZYOiKEeCNXKwlBzXqfA" type="4002" source="_mHV0AOiKEeCNXKwlBzXqfA" target="_P2T3YOiJEeCNXKwlBzXqfA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_0aKZYeiKEeCNXKwlBzXqfA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0aKZYuiKEeCNXKwlBzXqfA" points="[0, -1, -19, 44]$[22, -45, 3, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0aaRAOiKEeCNXKwlBzXqfA" id="(0.4748201438848921,0.016666666666666666)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0aaRAeiKEeCNXKwlBzXqfA" id="(0.6,0.4634146341463415)"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/model/ec3m-transformations.uml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/model/ec3m-transformations.uml
new file mode 100644
index 00000000000..30494c484ee
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/model/ec3m-transformations.uml
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:uml="http://www.eclipse.org/uml2/3.0.0/UML" xmi:id="_ThOaQOVlEeC9WYPftC2-Gw" name="model">
+ <ownedComment xmi:id="_xG0j4OiLEeCNXKwlBzXqfA" annotatedElement="_ifnFIOVlEeC9WYPftC2-Gw">
+ <body>Declarative information about container elements</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_ZPvcQOVlEeC9WYPftC2-Gw" name="Container_C">
+ <ownedComment xmi:id="_7q3zsOVlEeC9WYPftC2-Gw" annotatedElement="_vdVf0OVlEeC9WYPftC2-Gw">
+ <body>Delegation connector: interception</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_d2xRwOVlEeC9WYPftC2-Gw" name="executor" visibility="public" type="_ifnFIOVlEeC9WYPftC2-Gw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ev-xsOVlEeC9WYPftC2-Gw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_evaxAOVlEeC9WYPftC2-Gw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_ewV-EOVlEeC9WYPftC2-Gw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_n0KH8OVlEeC9WYPftC2-Gw" name="p" visibility="public" aggregation="composite">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_obo-sOVlEeC9WYPftC2-Gw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_obfNsOVlEeC9WYPftC2-Gw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_odGXQOVlEeC9WYPftC2-Gw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_xHVBkOiIEeCNXKwlBzXqfA" name="q" visibility="public" aggregation="composite">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6SdUYOiIEeCNXKwlBzXqfA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6QJnQOiIEeCNXKwlBzXqfA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_6S6nYOiIEeCNXKwlBzXqfA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_DFHK4OiLEeCNXKwlBzXqfA" name="ext" visibility="public" type="_GWHBkOiLEeCNXKwlBzXqfA">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_F9-OYOiLEeCNXKwlBzXqfA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_F9BzMOiLEeCNXKwlBzXqfA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_F_htkOiLEeCNXKwlBzXqfA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedConnector xmi:id="_vdVf0OVlEeC9WYPftC2-Gw" name="Connector0">
+ <end xmi:id="_vdWt8OVlEeC9WYPftC2-Gw" role="_kw0SwOVlEeC9WYPftC2-Gw" partWithPort="_d2xRwOVlEeC9WYPftC2-Gw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_vdWt8eVlEeC9WYPftC2-Gw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_vdWt8uVlEeC9WYPftC2-Gw" value="1"/>
+ </end>
+ <end xmi:id="_vdX8EOVlEeC9WYPftC2-Gw" role="_n0KH8OVlEeC9WYPftC2-Gw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_vdX8EeVlEeC9WYPftC2-Gw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_vdX8EuVlEeC9WYPftC2-Gw" value="1"/>
+ </end>
+ </ownedConnector>
+ <ownedConnector xmi:id="_7DHDUOiKEeCNXKwlBzXqfA" name="Connector1">
+ <end xmi:id="_7DHqYOiKEeCNXKwlBzXqfA" role="_xHVBkOiIEeCNXKwlBzXqfA">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_7DHqYeiKEeCNXKwlBzXqfA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_7DHqYuiKEeCNXKwlBzXqfA" value="1"/>
+ </end>
+ <end xmi:id="_7DHqY-iKEeCNXKwlBzXqfA" role="_-p_8YOiIEeCNXKwlBzXqfA" partWithPort="_d2xRwOVlEeC9WYPftC2-Gw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_7DHqZOiKEeCNXKwlBzXqfA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_7DHqZeiKEeCNXKwlBzXqfA" value="1"/>
+ </end>
+ </ownedConnector>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_ifnFIOVlEeC9WYPftC2-Gw" name="C">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_kw0SwOVlEeC9WYPftC2-Gw" name="p" visibility="public" aggregation="composite">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mNCZIOVlEeC9WYPftC2-Gw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mMrz0OVlEeC9WYPftC2-Gw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_mORIMOVlEeC9WYPftC2-Gw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_-p_8YOiIEeCNXKwlBzXqfA" name="q" visibility="public" aggregation="composite">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__EjKYOiIEeCNXKwlBzXqfA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__EW9IOiIEeCNXKwlBzXqfA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="__E8L8OiIEeCNXKwlBzXqfA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="__1qwMOiGEeCNXKwlBzXqfA" name="Class0"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_RAF00OiHEeCNXKwlBzXqfA" name="Composite">
+ <ownedComment xmi:id="_mGQ18OiKEeCNXKwlBzXqfA" annotatedElement="_P05iIOiJEeCNXKwlBzXqfA">
+ <body>Additional information about interaction component</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_SoTIwOiHEeCNXKwlBzXqfA" name="c1" visibility="public" type="_ifnFIOVlEeC9WYPftC2-Gw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sMQ1wOiIEeCNXKwlBzXqfA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sLsOAOiIEeCNXKwlBzXqfA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_sMvW4OiIEeCNXKwlBzXqfA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kAQdoOiIEeCNXKwlBzXqfA" name="c2" visibility="public" type="_ifnFIOVlEeC9WYPftC2-Gw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_towo8OiIEeCNXKwlBzXqfA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_togKQOiIEeCNXKwlBzXqfA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_tpqA0OiIEeCNXKwlBzXqfA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedConnector xmi:id="_P05iIOiJEeCNXKwlBzXqfA" name="Connector0">
+ <end xmi:id="_P06JMOiJEeCNXKwlBzXqfA" role="_kw0SwOVlEeC9WYPftC2-Gw" partWithPort="_SoTIwOiHEeCNXKwlBzXqfA">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_P06JMeiJEeCNXKwlBzXqfA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_P06JMuiJEeCNXKwlBzXqfA" value="1"/>
+ </end>
+ <end xmi:id="_P06wQOiJEeCNXKwlBzXqfA" role="_-p_8YOiIEeCNXKwlBzXqfA" partWithPort="_kAQdoOiIEeCNXKwlBzXqfA">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_P06wQeiJEeCNXKwlBzXqfA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_P06wQuiJEeCNXKwlBzXqfA" value="1"/>
+ </end>
+ </ownedConnector>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_WFCqgOiJEeCNXKwlBzXqfA" name="Composite'">
+ <ownedAttribute xmi:id="_YYcQgOiJEeCNXKwlBzXqfA" name="c1" visibility="public" type="_ifnFIOVlEeC9WYPftC2-Gw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_cVVj4OiJEeCNXKwlBzXqfA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cVO2MOiJEeCNXKwlBzXqfA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_cWO7wOiJEeCNXKwlBzXqfA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_c_XYUOiJEeCNXKwlBzXqfA" name="c2" visibility="public" type="_ifnFIOVlEeC9WYPftC2-Gw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dM_koOiJEeCNXKwlBzXqfA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dM4P4OiJEeCNXKwlBzXqfA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_dNQDUOiJEeCNXKwlBzXqfA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_5x_2MOiJEeCNXKwlBzXqfA" name="conn" visibility="public" type="_84j-gOiJEeCNXKwlBzXqfA">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6AJm8OiJEeCNXKwlBzXqfA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6AAdAOiJEeCNXKwlBzXqfA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_6Aj2oOiJEeCNXKwlBzXqfA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedConnector xmi:id="_TkTWoOiKEeCNXKwlBzXqfA" name="Connector0">
+ <end xmi:id="_TkTWoeiKEeCNXKwlBzXqfA" role="_kw0SwOVlEeC9WYPftC2-Gw" partWithPort="_YYcQgOiJEeCNXKwlBzXqfA">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TkTWouiKEeCNXKwlBzXqfA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TkTWo-iKEeCNXKwlBzXqfA" value="1"/>
+ </end>
+ <end xmi:id="_TkT9sOiKEeCNXKwlBzXqfA" role="_Fw-wsOiKEeCNXKwlBzXqfA" partWithPort="_5x_2MOiJEeCNXKwlBzXqfA">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TkT9seiKEeCNXKwlBzXqfA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TkT9suiKEeCNXKwlBzXqfA" value="1"/>
+ </end>
+ </ownedConnector>
+ <ownedConnector xmi:id="_dVwpoOiKEeCNXKwlBzXqfA" name="Connector1">
+ <end xmi:id="_dVwpoeiKEeCNXKwlBzXqfA" role="_JZNboOiKEeCNXKwlBzXqfA" partWithPort="_5x_2MOiJEeCNXKwlBzXqfA">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dVwpouiKEeCNXKwlBzXqfA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dVwpo-iKEeCNXKwlBzXqfA" value="1"/>
+ </end>
+ <end xmi:id="_dVwppOiKEeCNXKwlBzXqfA" role="_-p_8YOiIEeCNXKwlBzXqfA" partWithPort="_c_XYUOiJEeCNXKwlBzXqfA">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dVwppeiKEeCNXKwlBzXqfA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dVwppuiKEeCNXKwlBzXqfA" value="1"/>
+ </end>
+ </ownedConnector>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_84j-gOiJEeCNXKwlBzXqfA" name="Conn">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_Fw-wsOiKEeCNXKwlBzXqfA" name="pc" visibility="public" aggregation="composite">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_It1jYOiKEeCNXKwlBzXqfA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ItsZcOiKEeCNXKwlBzXqfA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_IuSPUOiKEeCNXKwlBzXqfA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_JZNboOiKEeCNXKwlBzXqfA" name="qc" visibility="public" aggregation="composite">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KDAmkOiKEeCNXKwlBzXqfA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KC21kOiKEeCNXKwlBzXqfA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_KDd5kOiKEeCNXKwlBzXqfA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_GWHBkOiLEeCNXKwlBzXqfA" name="Extension">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_JDi4MOiLEeCNXKwlBzXqfA" name="r" visibility="public" aggregation="composite">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ROA_QOiLEeCNXKwlBzXqfA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_RNFyMOiLEeCNXKwlBzXqfA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_RPiCMOiLEeCNXKwlBzXqfA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+</uml:Model>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/plugin.properties b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/plugin.properties
new file mode 100644
index 00000000000..1fccb2ec96f
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/plugin.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2013 CEA LIST.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# CEA LIST - initial API and implementation
+###############################################################################
+pluginName=Papyrus extra: Qompass designer documentation (Incubation)
+providerName=Eclipse Modeling Project
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/plugin.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/plugin.xml
new file mode 100644
index 00000000000..860a13a3743
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/plugin.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension point="org.eclipse.ui.cheatsheets.cheatSheetContent">
+ <category
+ id="org.eclipse.papyrus.qompass.designer.cheatsheet.category"
+ name="Qompass cheatsheets">
+ </category>
+ <cheatsheet
+ category="org.eclipse.papyrus.qompass.designer.cheatsheet.category"
+ composite="true"
+ contentFile="cheatsheet/Main.xml"
+ id="org.eclipse.papyrus.qompass.designer.cheatsheet.application"
+ name="Create an Qompass application">
+ </cheatsheet>
+ <cheatsheet
+ category="org.eclipse.papyrus.qompass.designer.cheatsheet.category"
+ composite="true"
+ contentFile="cheatsheet/MarteMain.xml"
+ id="org.eclipse.papyrus.qompass.designer.cheatsheet.applicationMARTE"
+ name="Create an Qompass application with MARTE">
+ </cheatsheet>
+ </extension>
+ <extension point="org.eclipse.help.toc">
+ <toc file="toc.xml" primary="true"/>
+ <toc file="help/tocconcepts.xml"/>
+ <toc file="help/tocreference.xml"/>
+ <toc file="help/tocdevguide.xml"/>
+ </extension>
+</plugin>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/pom.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/pom.xml
new file mode 100644
index 00000000000..623d0668a17
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.qompass.designer.doc</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/src/org/eclipse/papyrus/qompass/designer/doc/Activator.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/src/org/eclipse/papyrus/qompass/designer/doc/Activator.java
new file mode 100644
index 00000000000..dd7f6fbd95a
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/src/org/eclipse/papyrus/qompass/designer/doc/Activator.java
@@ -0,0 +1,53 @@
+package org.eclipse.papyrus.qompass.designer.doc;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.qompass.designer.doc"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/toc.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/toc.xml
new file mode 100644
index 00000000000..1f47f46e81f
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.doc/toc.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?NLS TYPE="org.eclipse.help.toc"?>
+
+<toc label="Qompass Designer User Guide">
+ <topic label="Concepts">
+ <anchor id="concepts"/>
+ </topic>
+ <topic label="Reference">
+ <anchor id="reference"/>
+ </topic>
+ <topic label="Samples">
+ <anchor id="samples"/>
+ </topic>
+ <topic label="Developer Guide">
+ <anchor id="devguide"/>
+ </topic>
+ <topic label="MARTE mapping">
+ <anchor id="marte"/>
+ </topic>
+ <topic label="Qompass model libraries">
+ <anchor id="modellibs"/>
+ </topic>
+</toc>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/.classpath b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/.classpath
new file mode 100644
index 00000000000..248b4c5dc7a
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="xtend-gen"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/.project b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/.project
new file mode 100644
index 00000000000..49ba9131ad8
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.qompass.designer.java</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/.settings/org.eclipse.jdt.core.prefs b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..f42de363afa
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/META-INF/MANIFEST.MF b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..9a5c0239ad2
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/META-INF/MANIFEST.MF
@@ -0,0 +1,20 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.uml2.uml;bundle-version="5.0.1",
+ org.eclipse.papyrus.uml.tools.utils;bundle-version="1.2.0",
+ org.eclipse.papyrus.qompass.designer.core;bundle-version="1.2.0",
+ com.google.guava,
+ org.eclipse.xtext.xbase.lib,
+ org.eclipse.xtend.lib,
+ org.eclipse.xtend.lib.macro,
+ org.eclipse.papyrus.uml.tools;bundle-version="1.2.0"
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-Version: 1.2.0.qualifier
+Bundle-Name: %pluginName
+Bundle-Localization: plugin
+Bundle-ManifestVersion: 2
+Bundle-Activator: org.eclipse.papyrus.qompass.designer.java.Activator
+Bundle-SymbolicName: org.eclipse.papyrus.qompass.designer.java;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.7
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/about.html b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/about.html
new file mode 100644
index 00000000000..209103075a7
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>November 14, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/build.properties b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/build.properties
new file mode 100644
index 00000000000..3fa3c740b2b
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/build.properties
@@ -0,0 +1,8 @@
+source.. = src/,\
+ xtend-gen/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ about.html,\
+ plugin.properties,\
+ plugin.xml
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/plugin.properties b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/plugin.properties
new file mode 100644
index 00000000000..5c6ac578195
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/plugin.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2013 CEA LIST.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# CEA LIST - initial API and implementation
+###############################################################################
+pluginName=Papyrus extra: Qompass Designer Java support (Incubation)
+providerName=Eclipse Modeling Project
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/plugin.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/plugin.xml
new file mode 100644
index 00000000000..325c6bd80d0
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/plugin.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.papyrus.qompass.designer.core.ooTransformation">
+ <client
+ class="org.eclipse.papyrus.qompass.designer.java.xtend.JavaToOO"
+ ooTrafoID="org.eclipse.papyrus.qompass.designer.java.Java">
+ </client>
+ </extension>
+</plugin>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/pom.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/pom.xml
new file mode 100644
index 00000000000..1bfee6eff52
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/pom.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.qompass.designer.java</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-clean-plugin</artifactId>
+ <configuration>
+ <filesets>
+ <fileset>
+ <directory>xtend-gen</directory>
+ <includes>
+ <include>**/*</include>
+ </includes>
+ <excludes>
+ <exclude>.gitignore</exclude>
+ </excludes>
+ </fileset>
+ </filesets>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.eclipse.xtend</groupId>
+ <artifactId>xtend-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>compile</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <outputDirectory>xtend-gen</outputDirectory>
+ <testOutputDirectory>${project.build.directory}/xtend-gen/test</testOutputDirectory>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
+</project>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/src/org/eclipse/papyrus/qompass/designer/java/Activator.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/src/org/eclipse/papyrus/qompass/designer/java/Activator.java
new file mode 100644
index 00000000000..1e7d5e25650
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/src/org/eclipse/papyrus/qompass/designer/java/Activator.java
@@ -0,0 +1,50 @@
+package org.eclipse.papyrus.qompass.designer.java;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.qompass.designer.cpp"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/src/org/eclipse/papyrus/qompass/designer/java/Messages.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/src/org/eclipse/papyrus/qompass/designer/java/Messages.java
new file mode 100644
index 00000000000..070d1956590
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/src/org/eclipse/papyrus/qompass/designer/java/Messages.java
@@ -0,0 +1,19 @@
+package org.eclipse.papyrus.qompass.designer.java;
+
+import org.eclipse.osgi.util.NLS;
+
+public class Messages extends NLS {
+ private static final String BUNDLE_NAME = "org.eclipse.papyrus.qompass.designer.cpp.messages"; //$NON-NLS-1$
+
+ public static String CompImplTrafos_CannotFindType;
+ public static String CompImplTrafos_IntfNotImplemented;
+ public static String CompTypeTrafos_CannotFindType;
+
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ private Messages() {
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/src/org/eclipse/papyrus/qompass/designer/java/messages.properties b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/src/org/eclipse/papyrus/qompass/designer/java/messages.properties
new file mode 100644
index 00000000000..c4c2141c7e6
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/src/org/eclipse/papyrus/qompass/designer/java/messages.properties
@@ -0,0 +1,3 @@
+CompImplTrafos_CannotFindType=Can not find type %s. Thus, unable to create suitable connect operation in component to OO transformation.
+CompImplTrafos_IntfNotImplemented=Interface <%s> provided by port <%s> of class <%s> is not implemented by the component itself nor does the port delegate to a part
+CompTypeTrafos_CannotFindType=Can not find type <%s>. Thus, unable to create suitable connect operation in component to OO transformation
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/src/org/eclipse/papyrus/qompass/designer/java/xtend/JavaToOO.xtend b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/src/org/eclipse/papyrus/qompass/designer/java/xtend/JavaToOO.xtend
new file mode 100644
index 00000000000..ef368eb0d76
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/src/org/eclipse/papyrus/qompass/designer/java/xtend/JavaToOO.xtend
@@ -0,0 +1,548 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.qompass.designer.java.xtend
+
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier
+import org.eclipse.uml2.uml.Class
+import org.eclipse.uml2.uml.Property
+import org.eclipse.uml2.uml.Port
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException
+import org.eclipse.papyrus.qompass.designer.core.PortInfo
+import org.eclipse.papyrus.qompass.designer.core.PortUtils
+import org.eclipse.papyrus.qompass.designer.core.transformations.PrefixConstants
+import org.eclipse.papyrus.qompass.designer.core.Utils
+import org.eclipse.papyrus.qompass.designer.core.transformations.CompTypeTrafos
+import org.eclipse.uml2.uml.AggregationKind
+import org.eclipse.uml2.uml.UMLPackage
+import org.eclipse.uml2.uml.OpaqueBehavior
+import org.eclipse.uml2.uml.ConnectorEnd
+import org.eclipse.papyrus.uml.tools.utils.ConnectorUtil
+import org.eclipse.uml2.uml.Type
+import java.util.HashMap
+import java.util.Map
+import org.eclipse.uml2.uml.Connector
+import org.eclipse.emf.common.util.EList
+import org.eclipse.uml2.uml.StructuralFeature
+import org.eclipse.papyrus.qompass.designer.java.Messages
+import org.eclipse.papyrus.qompass.designer.core.extensions.IOOTrafo
+import org.eclipse.papyrus.uml.tools.utils.PackageUtil
+
+/**
+ * This class realizes the transformation from component-based to object-oriented
+ * models. It includes the replacement of ports and connectors. Ports are
+ * replaced with attributes and access operations, connectors within a composite
+ * by an operation that creates the initial setup.
+ *
+ * 1. add an operation that allows to retrieve the reference to an interface provided
+ * by a port. This operation has a mapping specific name, e.g. get_<port_name>
+ * 2. add an operation that allows to connect a specific port.
+ * the connect_q operation (*including a
+ * storage attribute*) for a port with a required interface
+ * 3. add an implementation for the getcnx_q operation for a port
+ * with a required interface (the operation itself has been added before)
+ *
+ * TODO: C++ specific, support different "component to OO" mappings
+ *
+ * Problems: need to align bootloader creation with this mapping, since
+ * the bootloader may be responsible for instantiation
+ *
+ * Caveat: Assure that the folder derivedInterfaces already exists in a model.
+ * Otherwise the call to getProvided/getRequired interface might trigger its
+ * creation resulting in the corruption of list iterators (ConcurrentAccess
+ * exception)
+ *
+ */
+class JavaToOO implements IOOTrafo {
+
+ public static final String CREATE_CONNECTIONS = "createConnections"
+
+ protected LazyCopier copier
+
+ protected Class bootloader // why required?
+
+ override init(LazyCopier copier, Class bootloader) {
+ this.copier = copier
+ this.bootloader = bootloader
+ }
+
+ public static final String retParamName = "ret"
+
+ public static final String progLang = "JAVA"
+
+ override addPortOperations(Class implementation) {
+ addGetPortOperation(implementation)
+ addConnectPortOperation(implementation)
+ }
+
+ /**
+ * Add the get_p operation for each port with a provided interface. It also
+ * adds a suitable implementation that evaluates delegation connectors from
+ * the port to a property within the composite. The delegation target could
+ * either be a normal class (no port) or an inner component.
+ *
+ * @param implementation
+ */
+ def addGetPortOperation(Class implementation) {
+ for (PortInfo portInfo : PortUtils.flattenExtendedPorts(PortUtils.getAllPorts2(implementation))) {
+ val providedIntf = portInfo.getProvided()
+ if (providedIntf != null) {
+
+ // port provides an interface, add "get_p" operation &
+ // implementation
+ val opName = PrefixConstants.getP_Prefix + portInfo.name
+ var op = implementation.getOwnedOperation(opName, null, null)
+ if (op != null) {
+
+ // operation already exists. Assume that user wants to
+ // override standard delegation
+ if (op.type != providedIntf) {
+ op.createOwnedParameter(retParamName, providedIntf)
+ }
+ } else {
+ op = implementation.createOwnedOperation(opName, null, null, providedIntf)
+ val retParam = op.getOwnedParameters().get(0)
+ retParam.setName(retParamName)
+
+ val behavior = implementation.createOwnedBehavior(opName, UMLPackage.eINSTANCE.getOpaqueBehavior()) as OpaqueBehavior
+ op.getMethods().add(behavior)
+
+ val ce = ConnectorUtil.getDelegation(implementation, portInfo.getModelPort())
+
+ // if there is an delegation to an inner property, delegate to
+ // it
+ // Make distinction between delegation to component (with a
+ // port) or
+ // "normal" class (without).
+ var String body
+ if (ce != null) {
+ val part = ce.partWithPort
+ val role = ce.role
+
+ body = "return "
+ if (role instanceof Port) {
+
+ // check whether the part exists within the
+ // implementation (might not be the case
+ // due to partially copied composites).
+ // Check is based on names, since the connector points
+ // to elements within another
+ // model (copyClassifier does not make a proper
+ // connector copy)
+ // body += part.name + refOp(part) + opName + "();"
+ // TODO: this will NOT work for extended ports!
+ body += '''«part.name».«PrefixConstants.getP_Prefix»«role.name»();'''
+ } else {
+
+ // role is not a port: connector connects directly to a
+ // structural feature
+ // without passing via a port
+ // TODO: check whether structural feature exists
+ body += role.name
+ }
+ } else {
+
+ // no delegation, check whether port implements provided interface
+ var implementsIntf = implementation.getInterfaceRealization(null, providedIntf) != null
+ if (!implementsIntf) {
+
+ // The extended port itself is not copied to the target
+ // model (since referenced via a stereotype). Therefore,
+ // a port of an extended port still points to the
+ // original model. We try whether the providedIntf
+ // within
+ // the target model is within the interface
+ // realizations.
+ val providedIntfInCopy = copier.getCopy(providedIntf)
+ implementsIntf = implementation.getInterfaceRealization(null, providedIntfInCopy) != null
+ }
+ if (implementsIntf) {
+ body = "return this;"
+ } else {
+ throw new RuntimeException(
+ String.format(Messages.CompImplTrafos_IntfNotImplemented, providedIntf.name,
+ portInfo.port.name, implementation.name))
+ }
+ }
+ behavior.getLanguages().add(progLang)
+ behavior.getBodies().add(body)
+ }
+ }
+ }
+ }
+
+ /**
+ * Add a connect_<portName> operation for ports with a required interface.
+ * Whereas operation and a behavior is added for each owned port, a behavior
+ * (method) is needed for ports inherited from a component type (the
+ * behavior is implementation specific, as it needs to take delegation to
+ * parts into account)
+ *
+ * @param implementation
+ */
+ static def addConnectPortOperation(Class implementation) {
+ for (PortInfo portInfo : PortUtils.flattenExtendedPorts(PortUtils.getAllPorts2(implementation))) {
+ val requiredIntf = portInfo.getRequired()
+ if (requiredIntf != null) {
+
+ // port requires an interface, add "connect_p" operation &
+ // implementation
+ val opName = PrefixConstants.connectQ_Prefix + portInfo.name
+
+ if (implementation.getOwnedOperation(opName, null, null) != null) {
+ // do not add the operation, if it already exists. This means that the
+ // user wants to override it with custom behavior. In case of extended
+ // ports, we may have to do that.
+ } else {
+ var op = implementation.createOwnedOperation(opName, null, null)
+ val boolean multiPort = (portInfo.getUpper() > 1) || (portInfo.getUpper() == -1) // -1 indicates "*"
+ if (multiPort) {
+
+ // add index parameter
+ val eLong = Utils.getQualifiedElement(PackageUtil.getRootPackage(implementation),
+ CompTypeTrafos.INDEX_TYPE_FOR_MULTI_RECEPTACLE)
+ if (eLong instanceof Type) {
+ op.createOwnedParameter("index", eLong as Type)
+ } else {
+ throw new RuntimeException(
+ String.format(Messages.CompImplTrafos_CannotFindType,
+ CompTypeTrafos.INDEX_TYPE_FOR_MULTI_RECEPTACLE))
+ }
+ }
+ val refParam = op.createOwnedParameter("ref", requiredIntf)
+
+ val behavior = implementation.createOwnedBehavior(opName, UMLPackage.eINSTANCE.getOpaqueBehavior()) as OpaqueBehavior
+
+ op.getMethods().add(behavior)
+
+ val ConnectorEnd ce = ConnectorUtil.getDelegation(implementation, portInfo.getModelPort())
+
+ // if there is an delegation to an inner property, delegate to it
+ // Make distinction between delegation to component (with a port) or
+ // "normal" class (without).
+ var String body
+ if (ce != null) {
+ val part = ce.partWithPort
+ body = part.name
+ val role = ce.role
+ if (role instanceof Port) {
+ // in case of a delegation, use name of target port which might be different
+ val targetOpName = PrefixConstants.connectQ_Prefix + role.name
+ body = '''«part.name».«targetOpName»'''
+
+ // TODO: no check that multiplicity of both port matches
+ if ((portInfo.getUpper() > 1) || (portInfo.getUpper() == -1)) {
+ body += "(index, ref);";
+ }
+ else {
+ body += "(ref);";
+ }
+
+ } else {
+ // TODO: does this case make sense?
+ body += '''«part.name»;'''
+ }
+ } else {
+ // no delegation - create attribute for port
+ val attributeName = PrefixConstants.attributePrefix + portInfo.name
+ if (!Utils.hasNonPortOwnedAttribute(implementation, attributeName)) {
+ val attr = implementation.createOwnedAttribute(attributeName, requiredIntf)
+ LazyCopier.copyMultElemModifiers(portInfo.port, attr)
+
+ // is shared (should store a reference)
+ attr.setAggregation(AggregationKind.SHARED_LITERAL)
+ }
+ body = attributeName
+ if(multiPort) body += "[index]"
+ body += " = ref"
+ }
+
+ // TODO: defined by template
+ behavior.getLanguages().add(progLang)
+ behavior.getBodies().add(body)
+
+ // -------------------------
+ // add body to get-connection operation (which exists already if the port is also
+ // owned, since it is synchronized automatically during model edit)
+ // getConnQ prefix may be empty to indicate that the port is accessed directly
+ // TODO: reconsider optimization that delegated required ports do not have a
+ // local attribute & associated operation (an inner class may delegate, but the
+ // composite may be using it as well).
+ if ((PrefixConstants.getConnQ_Prefix.length() > 0) && (ce != null)) {
+ val getConnOpName = PrefixConstants.getConnQ_Prefix + portInfo.name
+ var getConnOp = implementation.getOwnedOperation(getConnOpName, null, null)
+ if (getConnOp == null) {
+ getConnOp = implementation.createOwnedOperation(getConnOpName, null, null, requiredIntf)
+ val retParam = op.getOwnedParameters().get(0)
+ retParam.setName(retParamName)
+ }
+ val getConnBehavior = implementation.createOwnedBehavior(getConnOpName,
+ UMLPackage.eINSTANCE.getOpaqueBehavior()) as OpaqueBehavior
+ getConnOp.getMethods().add(getConnBehavior)
+
+ // no delegation
+ val String name = PrefixConstants.attributePrefix + portInfo.name
+ body = '''return «name»;'''
+ behavior.getLanguages().add(progLang)
+ behavior.getBodies().add(body)
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Add an operation "createConnections" that implements the connections
+ * between composite parts. It only takes the assembly connections into
+ * account, since delegation connectors are handled by the get_ and connect_
+ * port operations above.
+ *
+ * @param implementation
+ */
+ override addConnectionOperation(Class compositeImplementation) throws TransformationException {
+ var createConnBody = ""
+ val Map<ConnectorEnd, Integer> indexMap = new HashMap<ConnectorEnd, Integer>()
+
+ for (Connector connector : compositeImplementation.getOwnedConnectors()) {
+ if (ConnectorUtil.isAssembly(connector)) {
+
+ // Boolean associationBased = false
+ if (connector.ends.size() != 2) {
+ throw new TransformationException(
+ '''Connector <«connector.name»> does not have two ends. This is currently not supported''')
+ }
+ val end1 = connector.ends.get(0)
+ val end2 = connector.ends.get(1)
+ var cmd = '''// realization of connector <«connector.name»>\n'''
+ if ((end1.role instanceof Port) && PortUtils.isExtendedPort(end1.role as Port)) {
+ val port = end1.role as Port
+ val EList<PortInfo> subPorts = PortUtils.flattenExtendedPort(port)
+ for (PortInfo subPort : subPorts) {
+ cmd += ''' // realization of connection for sub-port «subPort.port.name»\n'''
+ cmd += connectPorts(indexMap, connector, end1, end2, subPort.port)
+ cmd += connectPorts(indexMap, connector, end2, end1, subPort.port)
+ }
+ } else {
+ cmd += connectPorts(indexMap, connector, end1, end2, null)
+ cmd += connectPorts(indexMap, connector, end2, end1, null)
+ }
+ createConnBody += cmd + "\n"
+ }
+ }
+
+ // TODO: use template, as in bootloader
+ if (createConnBody.length() > 0) {
+ val operation = compositeImplementation.createOwnedOperation(CREATE_CONNECTIONS, null, null)
+
+ val behavior = compositeImplementation.createOwnedBehavior("b:" + operation.name,
+ UMLPackage.eINSTANCE.getOpaqueBehavior()) as OpaqueBehavior
+ behavior.getLanguages().add(progLang)
+ behavior.getBodies().add(createConnBody)
+ behavior.setSpecification(operation)
+ }
+ }
+
+ /**
+ * Create the body C++ code code that creates a connection between the two ends
+ * of a connector. This function checks whether the first end really is a receptacle
+ * and the second really is a facet.
+ * TODO: cleaner rewrite in xtend
+ *
+ * @param indexMap
+ * a map of indices that are used in case of multiplex
+ * receptacles
+ * @param connector
+ * a connector
+ * @param receptacleEnd
+ * an end of the connector that may point to a receptacle port
+ * @param facetEnd
+ * an end of the connector that may point to a facet port
+ * @param subPort
+ * a sub-port in case of extended ports
+ * @return
+ * @throws TransformationException
+ */
+ static def connectPorts(Map<ConnectorEnd, Integer> indexMap, Connector connector, ConnectorEnd receptacleEnd,
+ ConnectorEnd facetEnd, Port subPort) throws TransformationException {
+ val association = connector.type
+ if ((receptacleEnd.role instanceof Port) && (facetEnd.role instanceof Port)) {
+ val facetPort = facetEnd.role as Port
+ val receptaclePort = receptacleEnd.role as Port
+ val facetPI = PortInfo.fromSubPort(facetPort, subPort)
+ val receptaclePI = PortInfo.fromSubPort(receptaclePort, subPort)
+
+ if ((facetPI.getProvided() != null) && (receptaclePI.getRequired() != null)) {
+ val facetPart = facetEnd.partWithPort
+ val receptaclePart = receptacleEnd.partWithPort
+
+ var subPortName = ""
+ if(subPort != null) subPortName += "_" + subPort.name
+ val indexName = getIndexName(indexMap, receptaclePort, receptacleEnd)
+ val setter = '''«receptaclePart.name».connect_«receptaclePort.name» «subPortName»;'''
+ val getter = '''«facetPart.name».get_«facetPort.name» «subPortName»()'''
+ return '''«setter»(«indexName»«getter»);\n'''
+ }
+
+ } else if (receptacleEnd.role instanceof Port) {
+
+ // only the receptacle end is of type port.
+ val Port receptaclePort = receptacleEnd.role as Port
+ if (PortUtils.getRequired(receptaclePort) != null) {
+ val facetPart = facetEnd.role as Property
+ val receptaclePart = facetEnd.partWithPort
+
+ val indexName = getIndexName(indexMap, receptaclePort, receptacleEnd)
+ val setter = '''«receptaclePart.name».connect_«receptaclePort.name»'''
+ val getter = '''&«facetPart.name»'''
+ return '''«setter»(«indexName»«getter»);\n'''
+ }
+ } else if (facetEnd.role instanceof Port) {
+
+ // only the facet end is of type port. Unsupported combination
+ val facetPort = facetEnd.role as Port
+ if (PortUtils.getProvided(facetPort) != null) {
+ val facetPart = facetEnd.partWithPort
+ val receptaclePart = facetEnd.role as Property
+
+ val setter = receptaclePart.name
+ val getter = '''«facetPart.name».get_«facetPort.name»();'''
+ return '''«setter» = «getter»;\n'''
+ }
+ } else if (association != null) {
+
+ // both connector ends do not target ports. In this case, we require that the connector is typed
+ // with an association. We use this association to find out which end is navigable and assume that
+ // the part pointed to by the other end is a pointer that gets initialized with the part of the
+ // navigable end.
+ val facetPart = facetEnd.role as Property
+ val receptaclePart = receptacleEnd.role as Property
+
+ val assocProp1 = association.getMemberEnd(null, facetPart.type)
+
+ // Property assocProp2 = facetPart.getOtherEnd()
+ if ((assocProp1 != null) && assocProp1.isNavigable) {
+ val setter = '''«receptaclePart.name».«assocProp1.name»'''
+ val getter = '''&«facetPart.name»'''
+ return '''«setter» = «getter»;\n'''
+ }
+ } else {
+
+ // not handled (a connector not targeting a port must be typed)
+ throw new TransformationException(
+ "Connector <" + connector.name +
+ "> does not use ports, but it is not typed (only connectors between ports should not be typed)")
+ }
+ return ""
+ }
+
+ /**
+ * Handle ports with multiplicity > 1. The idea is that we could have
+ * multiple connections targeting a receptacle. The first connection would
+ * start with index 0. Implementations can make no assumption which
+ * connection is associated with a certain index. [want to avoid associative
+ * array in runtime].
+ *
+ * @param port
+ * @param end
+ * @return
+ */
+ static def getIndexName(Map<ConnectorEnd, Integer> indexMap, Port port, ConnectorEnd end) {
+ if ((port.getUpper() > 1) || (port.getUpper() == -1)) {
+
+ // index depends of combination of property and port, use connector
+ // end as key
+ var indexValue = indexMap.get(end)
+ if (indexValue == null) {
+ indexValue = 0
+ indexMap.put(end, indexValue)
+ }
+ var index = indexValue + ", "
+ indexValue++
+ indexMap.put(end, indexValue)
+ return index
+ }
+ return ""
+ }
+
+ /**
+ * Return true, if the bootloader is responsible for the instantiation of a
+ * part. [Structual difference: bootloader can decide instance based - and
+ * instances are deployed]
+ *
+ * If a part is a component type or an abstract implementation, it cannot be
+ * instantiated. Thus, a heir has to be selected in the deployment plan.
+ * Since the selection might be different for different instances of the
+ * composite, the instantiation is not done by the component itself, but by
+ * the bootloader. The bootloader also has to instantiate, if different
+ * allocation variants are required. (this is for instance the case for
+ * distribution connectors and for the system itself)
+ *
+ * If possible, we want to let composites instantiate sub-components, since
+ * this eases the transition to systems which support reconfiguration.
+ *
+ * [TODO: optimization: analyze whether the deployment plan selects a single
+ * implementation. If yes, let the composite instantiate]
+ *
+ * [TODO: elements within an assembly need to be instantiated by composite -
+ * if System - by bootloader. assembly also need to be instantiated by
+ * composite!!
+ *
+ * @param implementation
+ * @return
+ */
+ static def instantiateViaBootloader(Class implementation) {
+ return implementation.isAbstract() || Utils.isAssembly(implementation)
+ }
+
+ /**
+ * Return whether a part needs to be instantiated by the bootloader instead
+ * by the composite in which it is contained. The criteria is based on the
+ * question whether the containing composite is flattened, as it is the case
+ * for the system component and the interaction components for distribution.
+ *
+ * @param part
+ * @return
+ */
+ static def instantiateViaBootloader(StructuralFeature part) {
+ if (part != null) {
+ if (part.type instanceof Class) {
+ val implementation = part.type as Class
+
+ // TODO: wrong criteria? (must be shared or not?)
+ return instantiateViaBootloader(implementation)
+ } else {
+
+ // not a class, assume primitive type instantiated by composite
+ return false
+ }
+ }
+ return false
+ }
+
+ /**
+ * Transform parts if necessary.
+ *
+ * If the bootloader is responsible for creating an instance (if it is a
+ * abstract type), mark the associated part as a C++ pointer. We do not want
+ * to change the aggregation kind, since it remains logically a composition,
+ * it is merely an implementation issue that it must be a pointer for C++ if
+ * the concrete type is not yet known.
+ *
+ * @param compositeImplementation
+ * a (composite) component
+ */
+ override transformParts(Class compositeImplementation) {
+
+ // TODO
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/xtend-gen/.gitignore b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/xtend-gen/.gitignore
new file mode 100644
index 00000000000..c96a04f008e
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.java/xtend-gen/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/.classpath b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/.classpath
new file mode 100644
index 00000000000..098194ca4b7
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/.project b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/.project
new file mode 100644
index 00000000000..ee60ec6da05
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.qompass.designer.ui</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/.settings/org.eclipse.jdt.core.prefs b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..f42de363afa
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/META-INF/MANIFEST.MF b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..e34e95512eb
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,33 @@
+Manifest-Version: 1.0
+Export-Package: org.eclipse.papyrus.qompass.designer.ui.handlers
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.emf.ecore,
+ org.eclipse.uml2.uml,
+ org.eclipse.core.resources,
+ org.eclipse.ui.ide,
+ org.eclipse.papyrus.fcm.profile;bundle-version="1.2.0",
+ org.eclipse.papyrus.marte.static.profile;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.diagram.common;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.gmfdiag.widgets;bundle-version="1.2.0",
+ org.eclipse.gef;bundle-version="3.8.0",
+ org.eclipse.papyrus.uml.profile;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.properties;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.tools;bundle-version="1.2.0",
+ org.eclipse.gmf.runtime.common.core;bundle-version="1.7.0",
+ org.eclipse.gmf.runtime.emf.commands.core;bundle-version="1.4.0",
+ org.eclipse.papyrus.infra.widgets;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.emf;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.tools.utils;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.widgets.toolbox;bundle-version="1.2.0",
+ org.eclipse.papyrus.qompass.designer.core;bundle-version="1.2.0",
+ org.eclipse.papyrus.qompass.ui;bundle-version="1.2.0"
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-Version: 1.2.0.qualifier
+Bundle-Localization: plugin
+Bundle-Name: %pluginName
+Bundle-Activator: org.eclipse.papyrus.qompass.designer.ui.Activator
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.qompass.designer.ui;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.7
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/about.html b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/about.html
new file mode 100644
index 00000000000..209103075a7
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>November 14, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/build.properties b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/build.properties
new file mode 100644
index 00000000000..f1e29af020a
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/build.properties
@@ -0,0 +1,9 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.properties,\
+ about.html,\
+ icons/,\
+ plugin.xml
+src.includes = about.html
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/ADLInFlowPort.gif b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/ADLInFlowPort.gif
new file mode 100644
index 00000000000..e2b32c65cac
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/ADLInFlowPort.gif
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/Qompass-16x16.gif b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/Qompass-16x16.gif
new file mode 100644
index 00000000000..c47d52ad211
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/Qompass-16x16.gif
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/Stereotype.gif b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/Stereotype.gif
new file mode 100644
index 00000000000..145e5d589d8
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/Stereotype.gif
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/allocation.gif b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/allocation.gif
new file mode 100644
index 00000000000..ced634f9c9c
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/allocation.gif
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/depPlan.gif b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/depPlan.gif
new file mode 100644
index 00000000000..712a2485f8d
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/depPlan.gif
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/deploy.gif b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/deploy.gif
new file mode 100644
index 00000000000..7a7ced35f3d
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/deploy.gif
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/ec3m-16x16.gif b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/ec3m-16x16.gif
new file mode 100644
index 00000000000..327caa73f59
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/ec3m-16x16.gif
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/ec3m-32x32.gif b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/ec3m-32x32.gif
new file mode 100644
index 00000000000..9e1527b778f
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/ec3m-32x32.gif
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/sample.gif b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/sample.gif
new file mode 100644
index 00000000000..34fb3c9d8cb
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/sample.gif
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/selConnector.gif b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/selConnector.gif
new file mode 100644
index 00000000000..e47528e5447
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/selConnector.gif
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/selContainer.gif b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/selContainer.gif
new file mode 100644
index 00000000000..c16516c624b
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/selContainer.gif
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/sync.gif b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/sync.gif
new file mode 100644
index 00000000000..5935eb3cbba
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/icons/sync.gif
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/plugin.properties b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/plugin.properties
new file mode 100644
index 00000000000..09415057ea6
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/plugin.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2013 CEA LIST.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# CEA LIST - initial API and implementation
+###############################################################################
+pluginName=Papyrus extra: Qompass Designer UI (Incubation)
+providerName=Eclipse Modeling Project
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/plugin.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/plugin.xml
new file mode 100644
index 00000000000..a90ac73c900
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/plugin.xml
@@ -0,0 +1,231 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ categoryId="org.eclipse.papyrus.editor.category"
+ defaultHandler="org.eclipse.papyrus.qompass.designer.ui.handlers.CreateDepPlanHandler"
+ description="Create deployment plan"
+ id="org.eclipse.papyrus.qompass.designer.ui.menuActions.CreateDepPlanCmd"
+ name="dummy">
+ </command>
+ <command
+ categoryId="org.eclipse.papyrus.editor.category"
+ defaultHandler="org.eclipse.papyrus.qompass.designer.ui.handlers.CreatePlatformHandler"
+ description="Create platform definition"
+ id="org.eclipse.papyrus.qompass.designer.ui.menuActions.CreatePlatformCmd"
+ name="dummy">
+ </command>
+ <command
+ categoryId="org.eclipse.papyrus.editor.category"
+ defaultHandler="org.eclipse.papyrus.qompass.designer.ui.handlers.InstantiateDepPlanHandler"
+ description="Generate deployment models and code from plan"
+ id="org.eclipse.papyrus.qompass.designer.ui.menuActions.InstantiateDepPlanCmd"
+ name="dummy">
+ </command>
+ <command
+ categoryId="org.eclipse.papyrus.editor.category"
+ defaultHandler="org.eclipse.papyrus.qompass.designer.ui.handlers.SyncHandler"
+ description="Synchronize derived elements"
+ id="org.eclipse.papyrus.qompass.designer.ui.menuActions.SyncCmd"
+ name="dummy">
+ </command>
+ <command
+ categoryId="org.eclipse.papyrus.editor.category"
+ defaultHandler="org.eclipse.papyrus.qompass.designer.ui.handlers.SelectConnectorHandler"
+ description="Choose connector type and implementation"
+ id="org.eclipse.papyrus.qompass.designer.ui.menuActions.SelectionConnectorCmd"
+ name="dummy">
+ </command>
+ <command
+ categoryId="org.eclipse.papyrus.editor.category"
+ defaultHandler="org.eclipse.papyrus.qompass.designer.ui.handlers.SelectContainerHandler"
+ description="Choose container properties"
+ id="org.eclipse.papyrus.qompass.designer.ui.menuActions.SelectionContainerCmd"
+ name="dummy">
+ </command>
+ <command
+ categoryId="org.eclipse.papyrus.editor.category"
+ defaultHandler="org.eclipse.papyrus.qompass.designer.ui.handlers.ConfigureInstanceHandler"
+ description="Configure instance"
+ id="org.eclipse.papyrus.qompass.designer.ui.menuActions.ConfigureInstanceCmd"
+ name="dummy">
+ </command>
+ <command
+ categoryId="org.eclipse.papyrus.editor.category"
+ defaultHandler="org.eclipse.papyrus.qompass.designer.ui.handlers.ConfigurePortHandler"
+ description="Configure ports"
+ id="org.eclipse.papyrus.qompass.designer.ui.menuActions.ConfigurePortsCmd"
+ name="dummy">
+ </command>
+ <command
+ categoryId="org.eclipse.papyrus.editor.category"
+ defaultHandler="org.eclipse.papyrus.qompass.designer.ui.handlers.AddProfileAndModelLibsHandler"
+ description="Add Qompass profiles and model libraries"
+ id="org.eclipse.papyrus.qompass.designer.ui.menuActions.AddProfileAndModelLibsCmd"
+ name="dummy">
+ </command>
+ <command
+ categoryId="org.eclipse.papyrus.editor.category"
+ defaultHandler="org.eclipse.papyrus.qompass.designer.ui.handlers.AllocateHandler"
+ description="Allocate to node"
+ id="org.eclipse.papyrus.qompass.designer.ui.menuActions.AllocateCmd"
+ name="dummy">
+ </command>
+ <command
+ categoryId="org.eclipse.papyrus.editor.category"
+ defaultHandler="org.eclipse.papyrus.qompass.designer.ui.handlers.TrafoAndCodegenHandler"
+ description="dummy"
+ id="org.eclipse.papyrus.qompass.designer.ui.menuActions.TrafoAndCodegenCmd"
+ name="dummy">
+ </command>
+ </extension>
+ <extension
+ point="org.eclipse.ui.menus">
+ <menuContribution
+ allPopups="false"
+ locationURI="popup:org.eclipse.papyrus.qompass.popup?after=designer">
+ <command
+ commandId="org.eclipse.papyrus.qompass.designer.ui.menuActions.CreateDepPlanCmd"
+ icon="icons/depPlan.gif"
+
+ id="org.eclipse.papyrus.qompass.designer.ui.menuActions.CreateDepPlanMenu"
+ label="Create deployment plan"
+ mnemonic="d"
+ mode="FORCE_TEXT"
+ style="push">
+ <visibleWhen
+ checkEnabled="true">
+ </visibleWhen>
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.qompass.designer.ui.menuActions.CreatePlatformCmd"
+ icon="icons/depPlan.gif"
+ id="org.eclipse.papyrus.qompass.designer.ui.menuActions.CreatePlatformMenu"
+ label="Create platform definition"
+ mnemonic="d"
+ mode="FORCE_TEXT"
+ style="push">
+ <visibleWhen
+ checkEnabled="true">
+ </visibleWhen>
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.qompass.designer.ui.menuActions.SyncCmd"
+ icon="icons/sync.gif"
+ id="org.eclipse.papyrus.qompass.designer.ui.menuActions.SyncMenu"
+ label="Synchronize derived elements"
+ mnemonic="s"
+ mode="FORCE_TEXT"
+ style="push">
+ <visibleWhen
+ checkEnabled="true">
+ </visibleWhen>
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.qompass.designer.ui.menuActions.InstantiateDepPlanCmd"
+ icon="icons/deploy.gif"
+ id="org.eclipse.papyrus.qompass.designer.ui.menuActions.CreateDepPlanMenu"
+ label="Generate deployment models and code from plan"
+ mnemonic="g"
+ mode="FORCE_TEXT"
+ style="push">
+ <visibleWhen
+ checkEnabled="true">
+ </visibleWhen>
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.qompass.designer.ui.menuActions.SelectionConnectorCmd"
+ icon="icons/selConnector.gif"
+ id="org.eclipse.papyrus.qompass.designer.ui.menuActions.SelectionConnectorMenu"
+ label="Show / choose connector type and implementation"
+ mnemonic="C"
+ mode="FORCE_TEXT"
+ style="push">
+ <visibleWhen
+ checkEnabled="true">
+ </visibleWhen>
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.qompass.designer.ui.menuActions.SelectionContainerCmd"
+ icon="icons/selContainer.gif"
+ id="org.eclipse.papyrus.qompass.designer.ui.menuActions.SelectionContainerMenu"
+ label="Show / choose container properties"
+ mode="FORCE_TEXT"
+ style="push">
+ <visibleWhen
+ checkEnabled="true">
+ </visibleWhen>
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.qompass.designer.ui.menuActions.ConfigureInstanceCmd"
+ icon="icons/selContainer.gif"
+ id="org.eclipse.papyrus.qompass.designer.ui.menuActions.ConfigureInstanceMenu"
+ label="Configure instance properties"
+ mode="FORCE_TEXT"
+ style="push">
+ <visibleWhen
+ checkEnabled="true">
+ </visibleWhen>
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.qompass.designer.ui.menuActions.ConfigurePortsCmd"
+ icon="icons/selContainer.gif"
+ id="org.eclipse.papyrus.qompass.designer.ui.menuActions.ConfigurePortsMenu"
+ label="Configure ports"
+ style="push">
+ <visibleWhen
+ checkEnabled="true">
+ </visibleWhen>
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.qompass.designer.ui.menuActions.AddProfileAndModelLibsCmd"
+ icon="icons/Stereotype.gif"
+ id="org.eclipse.papyrus.qompass.designer.ui.menuActions.AddProfileAndModelLibsMenu"
+ label="Add profiles and model libraries"
+ mnemonic="P"
+ style="push">
+ <visibleWhen
+ checkEnabled="true">
+ </visibleWhen>
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.qompass.designer.ui.menuActions.AllocateCmd"
+ icon="icons/allocation.gif"
+ id="org.eclipse.papyrus.qompass.designer.ui.menuActions.AllocateMenu"
+ label="Allocate to node"
+ mnemonic="A"
+ style="push">
+ <visibleWhen
+ checkEnabled="true">
+ </visibleWhen>
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.qompass.designer.ui.menuActions.TrafoAndCodegenCmd"
+ icon="icons/deploy.gif"
+ id="org.eclipse.papyrus.qompass.designer.ui.menuActions.TrafoAndCodegenCmd"
+ label="Execute transformation and generate code (w/o deployment)"
+ style="push">
+ <visibleWhen
+ checkEnabled="true">
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ category="org.eclipse.papyrus.infra.core.sasheditor.preferences.generalcategory"
+ class="org.eclipse.papyrus.qompass.designer.ui.preferences.QompassPreferencePage"
+ id="org.eclipse.papyrus.qompass.designer.ui.preferences.QompassPreferencePage_ID"
+ name="Qompass preferences">
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.core.runtime.preferences">
+ <initializer
+ class="org.eclipse.papyrus.qompass.designer.ui.preferences.QompassPreferenceInitializer">
+ </initializer>
+ </extension>
+</plugin>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/pom.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/pom.xml
new file mode 100644
index 00000000000..c6fffb7c021
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.qompass.designer.ui</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/Activator.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/Activator.java
new file mode 100644
index 00000000000..54b1369473a
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/Activator.java
@@ -0,0 +1,54 @@
+package org.eclipse.papyrus.qompass.designer.ui;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.qompass.designer.ui"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/Messages.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/Messages.java
new file mode 100644
index 00000000000..53794a9743b
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/Messages.java
@@ -0,0 +1,43 @@
+package org.eclipse.papyrus.qompass.designer.ui;
+
+import org.eclipse.osgi.util.NLS;
+
+public class Messages extends NLS {
+ private static final String BUNDLE_NAME = "org.eclipse.papyrus.qompass.designer.ui.messages"; //$NON-NLS-1$
+
+ public static String ConfigurePortHandler_ConfigurePorts;
+ public static String ConfigurePortHandler_ConfigurePortsOfComponent;
+ public static String ConfigurePortHandler_ConfigureInstance;
+
+ public static String ConfigurePortDialog_AvailPorts;
+ public static String ConfigurePortDialog_PortConfig;
+ public static String ConfigurePortDialog_NotAvail;
+ public static String ConfigurePortDialog_Kind;
+ public static String ConfigurePortDialog_None;
+ public static String ConfigurePortDialog_Type;
+ public static String ConfigurePortDialog_ChangeType;
+ public static String ConfigurePortDialog_IntfDerived;
+ public static String ConfigurePortDialog_Provided;
+ public static String ConfigurePortDialog_Required;
+ public static String ConfigurePortDialog_Undef;
+
+ public static String CreateDepPlanHandler_CreateDPs;
+ public static String CreateDepPlanHandler_Sync;
+ public static String CreateDepPlanHandler_CreateNew;
+ public static String CreateDepPlanHandler_WhatShouldIDo;
+ public static String CreateDepPlanHandler_DPwithNameExistsAlready;
+ public static String CreateDepPlanHandler_DPwithNameExistsNoPackage;
+ public static String CreateDepPlanHandler_CannotSync;
+ public static String CreateDepPlanHandler_Cancel;
+ public static String CreateDepPlanHandler_CreateDP;
+ public static String CreateDepPlanHandler_CannotCreateDP;
+ public static String CreateDepPlanHandler_StereoApplicationFailed;
+
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ private Messages() {
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/AllocationDialog.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/AllocationDialog.java
new file mode 100644
index 00000000000..14a3e457d49
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/AllocationDialog.java
@@ -0,0 +1,311 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.ui.dialogs;
+
+import org.eclipse.draw2d.Label;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.transaction.util.TransactionUtil;
+import org.eclipse.emf.workspace.AbstractEMFOperation;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.papyrus.FCM.DeploymentPlan;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.SRM.SW_Concurrency.SwSchedulableResource;
+import org.eclipse.papyrus.infra.widgets.toolbox.utils.DialogUtils;
+import org.eclipse.papyrus.qompass.designer.core.CommandSupport;
+import org.eclipse.papyrus.qompass.designer.core.ElementFilter;
+import org.eclipse.papyrus.qompass.designer.core.commands.AddMarteAndFcmProfile;
+import org.eclipse.papyrus.qompass.designer.core.deployment.AllocUtils;
+import org.eclipse.papyrus.qompass.designer.core.deployment.BootLoaderGen;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepUtils;
+import org.eclipse.papyrus.uml.tools.utils.PackageUtil;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeColumn;
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.ui.dialogs.SelectionStatusDialog;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * Allocate elements in a deployment plan to a node or thread
+ *
+ */
+public class AllocationDialog extends SelectionStatusDialog {
+
+ private DeploymentPlan m_cdp;
+
+ private Tree fTree;
+
+ private Label fLabel;
+
+ private Combo fAlloc;
+
+ private InstanceSpecification currentIS;
+
+ private EList<InstanceSpecification> nodeOrThreadList;
+
+ public AllocationDialog(Shell parent, Package cdp) {
+ super(parent);
+ m_cdp = UMLUtil.getStereotypeApplication(cdp, DeploymentPlan.class);
+ nodeOrThreadList = new BasicEList<InstanceSpecification>();
+ nodeOrThreadList.add(null); // dummy entry for no allocation
+ DepUtils.getAllInstances(cdp.getModel(), nodeOrThreadList, new ElementFilter() {
+
+ @Override
+ public boolean acceptElement(Element element) {
+ if (element instanceof InstanceSpecification) {
+ InstanceSpecification instance = (InstanceSpecification) element;
+ if (instance.getName() == null) {
+ // donn't allocate to root element (detectable via the empty name)
+ return false;
+ }
+ Classifier cl = DepUtils.getClassifier(instance);
+ if (cl instanceof Class) {
+ if (StereotypeUtil.isApplied(cl, SwSchedulableResource.class)) {
+ // threads are valid allocation targets. Therefore, threads are always added to
+ // list, even if within a deployment plan.
+ return true;
+ }
+ if (StereotypeUtil.isApplied(instance.getNearestPackage(), DeploymentPlan.class)) {
+ // instance is part of a deployment plan => don't add to list.
+ return false;
+ }
+ return true;
+ }
+ }
+ return false;
+ }
+ });
+ }
+
+ /**
+ * @see SelectionStatusDialog#computeResult()
+ */
+ @Override
+ protected void computeResult() {
+ // nothing to do
+ }
+
+ @Override
+ public Control createDialogArea(Composite parent) {
+ Composite contents = (Composite) super.createDialogArea(parent);
+ // (parent, "Container rules", "Avail. extensions/interceptors");
+
+ fTree = new Tree(contents, SWT.H_SCROLL | SWT.BORDER);
+ fTree.setHeaderVisible(true);
+ GridData data = new GridData(GridData.FILL_BOTH);
+ fTree.setLayoutData(data);
+ data.heightHint = 150;
+ // data.widthHint = 200;
+
+ // Turn off drawing to avoid flicker
+ fTree.setRedraw(false);
+
+ TreeColumn instances = new TreeColumn(fTree, SWT.LEFT);
+ instances.setText("Instance");
+ instances.setWidth(200);
+ TreeColumn explicitAlloc = new TreeColumn(fTree, SWT.LEFT);
+ explicitAlloc.setText("explicit allocation");
+ explicitAlloc.setWidth(150);
+ TreeColumn implicitAlloc = new TreeColumn(fTree, SWT.LEFT);
+ implicitAlloc.setText("implicit allocation");
+ implicitAlloc.setWidth(150);
+
+ fillTree(fTree, null, m_cdp.getMainInstance());
+
+ // Turn drawing back on!
+ fTree.setRedraw(true);
+
+ fTree.addSelectionListener(new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ if (fTree.getSelection().length > 0) {
+ selectInstance(fTree.getSelection()[0]);
+ }
+ }
+ });
+
+ Label label = new Label();
+ label.setText("seletected instance:");
+ fLabel = new Label();
+
+ createAllocInfo(contents);
+ return contents;
+ }
+
+ /**
+ * Helper method to fill a tree with data
+ *
+ * @param tree
+ * the tree to fill
+ */
+ private void fillTree(Tree tree, TreeItem treeItem, InstanceSpecification is) {
+ TreeItem item;
+ if (treeItem != null) {
+ item = new TreeItem(treeItem, SWT.NONE);
+ } else {
+ item = new TreeItem(tree, SWT.NONE);
+ }
+ item.setData(is);
+ setTextFromData(item);
+
+ // create children
+ for (InstanceSpecification subIS : DepUtils.getContainedNonSharedInstances(is)) {
+ fillTree(tree, item, subIS);
+ }
+ }
+
+ // obtain name and explicit/implicit node Allocation
+ protected void setTextFromData(TreeItem ti) {
+ Object data = ti.getData();
+ if (data instanceof InstanceSpecification) {
+ InstanceSpecification is = (InstanceSpecification) data;
+
+ String name = is.getName();
+ int index = name.lastIndexOf("."); //$NON-NLS-1$
+ if (index != -1) {
+ name = name.substring(index + 1);
+ }
+ InstanceSpecification explicitNodeOrThread = AllocUtils.getNodeOrThread(is);
+ Classifier cl = DepUtils.getClassifier(is);
+ String nodeName;
+ if (explicitNodeOrThread == null) {
+ nodeName = "-"; //$NON-NLS-1$
+ } else {
+ nodeName = getAllocName(explicitNodeOrThread);
+ }
+ if (cl instanceof Class) {
+ if (BootLoaderGen.hasUnconnectedStartRoutine(null, (Class) cl, null)) {
+ nodeName += " (main)"; //$NON-NLS-1$
+ }
+ }
+ EList<InstanceSpecification> implicitNodes = AllocUtils.getAllNodesOrThreadsParent(is);
+ implicitNodes.addAll(AllocUtils.getAllNodesOrThreadsParent(is));
+ String list = ""; //$NON-NLS-1$
+ for (InstanceSpecification node : implicitNodes) {
+ if (list.equals("")) { //$NON-NLS-1$
+ list = getAllocName(node);
+ } else {
+ list += ", " + getAllocName(node); //$NON-NLS-1$
+ }
+ }
+ ti.setText(new String[] { name, nodeName, "[" + list + "]" }); //$NON-NLS-1$//$NON-NLS-2$
+ }
+ }
+
+ protected void refreshTree(TreeItem ti) {
+ setTextFromData(ti);
+ for (TreeItem subItem : ti.getItems()) {
+ refreshTree(subItem);
+ }
+ }
+
+ private String getAllocName(InstanceSpecification nodeOrThread) {
+ if (nodeOrThread == null) {
+ return "no explicit allocation";
+ } else {
+ String name = nodeOrThread.getName();
+ InstanceSpecification threadNode = AllocUtils.getNode(nodeOrThread);
+ return name + (threadNode != null ? " on " + threadNode.getName() : "");
+ }
+ }
+
+ protected void createAllocInfo(Composite parent) {
+ // create extension kind combo
+ fAlloc = DialogUtils.createComboWithText(parent, "Alloc to node:",
+ SWT.DROP_DOWN | SWT.READ_ONLY, SWT.NONE);
+
+ String items[] = new String[nodeOrThreadList.size()];
+ int i = 0;
+ for (InstanceSpecification nodeOrThread : nodeOrThreadList) {
+ items[i++] = getAllocName(nodeOrThread);
+ }
+ fAlloc.setItems(items);
+ fAlloc.addSelectionListener(new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent event) {
+ if (currentIS != null) {
+ updateAllocation(currentIS, fAlloc.getSelectionIndex());
+ // selectionCount should always be 1
+ for (TreeItem ti : fTree.getSelection()) {
+ refreshTree(ti);
+ }
+ }
+ }
+ });
+
+ fAlloc.setEnabled(false);
+ }
+
+ /**
+ * Select a rule, i.e. update the visual representation from the rule
+ *
+ * @param rule
+ */
+ protected void selectInstance(TreeItem item) {
+ // for (Port port : rule.getPortSet ()) {
+ // fPorts.setSelection()
+ // }
+ currentIS = (InstanceSpecification) item.getData();
+ fLabel.setText(currentIS.getName());
+
+ fAlloc.setEnabled(true);
+ InstanceSpecification nodeOrThread = AllocUtils.getNodeOrThread(currentIS);
+
+ for (int i = 0; i < nodeOrThreadList.size(); i++) {
+ if (nodeOrThreadList.get(i) == nodeOrThread) {
+ fAlloc.select(i);
+ }
+ }
+ }
+
+ private void updateAllocation(InstanceSpecification is, int index) {
+ InstanceSpecification oldNode = AllocUtils.getNodeOrThread(is);
+ InstanceSpecification newNode = nodeOrThreadList.get(index);
+
+ if (oldNode == newNode) {
+ return;
+ }
+
+ // add or update
+ if (oldNode == null) {
+ if (!AllocUtils.allocate(is, newNode)) {
+ if (MessageDialog.openQuestion(Display.getDefault().getActiveShell(), "Error",
+ "Stereotype application failed. The profile MARTE::Allocation is probably not applied. Try to apply it?")) {
+ AbstractEMFOperation applyProfile = new AddMarteAndFcmProfile(PackageUtil.getRootPackage(is), AddMarteAndFcmProfile.APPLY_ALLOC, TransactionUtil.getEditingDomain(is));
+ CommandSupport.exec(applyProfile);
+ AllocUtils.allocate(is, newNode);
+ }
+ }
+ } else {
+ AllocUtils.updateAllocation(is, oldNode, newNode);
+ }
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/AttributeLabelProvider.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/AttributeLabelProvider.java
new file mode 100644
index 00000000000..568acd2541f
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/AttributeLabelProvider.java
@@ -0,0 +1,36 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.ui.dialogs;
+
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Type;
+
+public class AttributeLabelProvider extends LabelProvider {
+
+ @Override
+ public String getText(Object element) {
+ if (element instanceof Property) {
+ Property p = (Property) element;
+ Type type = p.getType();
+ return p.getClass_().getName() + "." + p.getName() + ((type != null) ?
+ " : " + type.getQualifiedName() :
+ "");
+ }
+ else {
+ return "invalid";
+ }
+ }
+};
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/ChooseConfigOpt.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/ChooseConfigOpt.java
new file mode 100644
index 00000000000..8c2b5f6cda9
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/ChooseConfigOpt.java
@@ -0,0 +1,245 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.ui.dialogs;
+
+import java.util.ArrayList;
+import java.util.Collections;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.FCM.ConfigOption;
+import org.eclipse.papyrus.FCM.ContainerRule;
+import org.eclipse.papyrus.uml.profile.ui.dialogs.AlphabeticalViewerSorter;
+import org.eclipse.papyrus.uml.profile.ui.dialogs.ChooseSetAssistedDialog;
+import org.eclipse.papyrus.uml.profile.ui.dialogs.IChooseDialog;
+import org.eclipse.papyrus.uml.properties.profile.ui.dialogs.StereotypeQualifiedLabelProvider;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Package;
+
+
+public class ChooseConfigOpt extends ChooseSetAssistedDialog implements IChooseDialog {
+
+ protected EList<Package> visitedPackages;
+
+ /**
+ * LabelProvider for stereotype completion proposal provider with qualified names.
+ */
+ final private StereotypeQualifiedLabelProvider qualifiedLabelProvider = new StereotypeQualifiedLabelProvider();
+
+ /**
+ * Default Constructor.
+ *
+ * @param parentShell
+ * the parent shell
+ * @param theElement
+ * the UML element to be modified
+ */
+ public ChooseConfigOpt(Shell parentShell, Package model, ContainerRule rule) {
+ super(parentShell,
+ "Available configuration options: ",
+ "Applied configuration options: ");
+ labelProvider = new ConfigOptionLabelProvider();
+ decoratedContentProposalProvider = new ConfigOptContentProposalProvider();
+
+ for (ConfigOption option : rule.getForConfig()) {
+ selectedElementList.addElement(option.getBase_Class());
+ }
+
+ visitedPackages = new BasicEList<Package>();
+ EList<Class> configOptList = new BasicEList<Class>();
+ getAvailConfigOpts(model, configOptList);
+ for (Class current : configOptList) {
+ if (!selectedElementList.contains(current)) {
+ possibleElementList.addElement(current);
+ }
+ }
+ }
+
+ private void getAvailConfigOpts(Package pkg, EList<Class> configOptList) {
+ for (Element el : pkg.getMembers()) {
+ if (el instanceof Package) {
+ if (!visitedPackages.contains(el)) {
+ visitedPackages.add((Package) el);
+ getAvailConfigOpts((Package) el, configOptList);
+ }
+ } else if (el instanceof Class) {
+ if (StereotypeUtil.isApplied(el, ConfigOption.class)) {
+ configOptList.add((Class) el);
+ }
+ }
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.papyrus.ui.dialogs.ChooseSetAssistedDialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+ */
+ /**
+ * Creates the dialog area.
+ *
+ * @param parent
+ * the parent
+ *
+ * @return the control
+ */
+ @Override
+ protected Control createDialogArea(Composite parent) {
+ Control composite = super.createDialogArea(parent);
+
+ // Add 2 columns to the table area
+ // possibleElementsTable.setLinesVisible(true);
+ possibleElementsTable.setHeaderVisible(true);
+
+ // 1st column with image/checkboxes - NOTE: The SWT.CENTER has no effect!!
+ TableColumn column = new TableColumn(possibleElementsTable, SWT.CENTER, 0);
+ column.setText("Option");
+ column.setWidth(100);
+ column.addSelectionListener(new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ possibleElementsTableViewer.setSorter(new AlphabeticalViewerSorter(0));
+ }
+ });
+
+ // 2nd column with task Description
+ column = new TableColumn(possibleElementsTable, SWT.LEFT, 1);
+ column.setText("Information");
+ column.setWidth(165);
+ // Add listener to column so tasks are sorted by description when clicked
+ column.addSelectionListener(new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ possibleElementsTableViewer.setSorter(new AlphabeticalViewerSorter(1));
+ }
+ });
+
+ // set sorter to the possible element table viewer
+ possibleElementsTableViewer.setSorter(new AlphabeticalViewerSorter(0));
+
+ return composite;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.papyrus.ui.dialogs.ChooseSetAssistedDialog#runAddElement(java.lang.String)
+ */
+ /**
+ * Run add element.
+ *
+ * @param name
+ * the name
+ */
+ @Override
+ protected void runAddElement(String name) {
+ // find the stereotype in the list
+ Class option = null;
+ for (Object possibleElement : possibleElementList.getElements()) {
+ Class element = (Class) possibleElement;
+ if (name.equalsIgnoreCase(element.getName()) ||
+ name.equalsIgnoreCase(element.getQualifiedName())) {
+ option = element;
+ }
+ }
+ if (option != null) {
+ runActionAdd(option);
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.papyrus.ui.dialogs.ChooseSetAssistedDialog#isSelectableElement(java.lang.String)
+ */
+ /**
+ * Checks if is selectable element.
+ *
+ * @param text
+ * the text
+ *
+ * @return true, if is selectable element
+ */
+ @Override
+ protected boolean isSelectableElement(String text) {
+ // iterate through all possibilities and return true if text corresponds
+ for (Object possibleElement : possibleElementList.getElements()) {
+ Class element = (Class) possibleElement;
+ if (text.equalsIgnoreCase(element.getName()) || text.equalsIgnoreCase(element.getQualifiedName())) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Content Proposal provider for stereotypes dialog. Propose the simple
+ * name of the stereotype and its qualified name.
+ *
+ * @author Remi Schnekenburger
+ */
+ public class ConfigOptContentProposalProvider extends DecoratedContentProposalProvider {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.papyrus.ui.dialogs.ChooseSetAssistedDialog.DecoratedContentProposalProvider#getProposals(java.lang.String, int)
+ */
+ /**
+ * Gets the proposals.
+ *
+ * @param contents
+ * the contents
+ * @param position
+ * the position
+ *
+ * @return the proposals
+ */
+ @Override
+ public DecoratedContentProposal[] getProposals(String contents, int position) {
+ ArrayList<DecoratedContentProposal> proposals = new ArrayList<DecoratedContentProposal>();
+
+ if (possibleElementList != null) {
+ for (Object configOptObj : possibleElementList.getElements()) {
+ final Class configOpt = (Class) configOptObj;
+ final String simpleName = configOpt.getName();
+ final String qualifiedName = configOpt.getQualifiedName();
+
+ if (position < simpleName.length() && contents.substring(0, position).equalsIgnoreCase(simpleName.substring(0, position))) {
+ proposals.add(new DecoratedContentProposal(configOpt, labelProvider));
+ }
+
+ if (position < qualifiedName.length() && contents.substring(0, position).equalsIgnoreCase(qualifiedName.substring(0, position))) {
+ proposals.add(new DecoratedContentProposal(configOpt, qualifiedLabelProvider));
+ }
+ }
+ }
+
+ Collections.sort(proposals);
+ return proposals.toArray(new DecoratedContentProposal[proposals.size()]);
+ }
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/ChoosePorts.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/ChoosePorts.java
new file mode 100644
index 00000000000..df3f4e3e44f
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/ChoosePorts.java
@@ -0,0 +1,244 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.ui.dialogs;
+
+import java.util.ArrayList;
+import java.util.Collections;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.FCM.InterceptionRule;
+import org.eclipse.papyrus.qompass.designer.core.Utils;
+import org.eclipse.papyrus.uml.profile.ui.dialogs.AlphabeticalViewerSorter;
+import org.eclipse.papyrus.uml.profile.ui.dialogs.ChooseSetAssistedDialog;
+import org.eclipse.papyrus.uml.profile.ui.dialogs.IChooseDialog;
+import org.eclipse.papyrus.uml.properties.profile.ui.dialogs.StereotypeQualifiedLabelProvider;
+import org.eclipse.papyrus.uml.tools.utils.PackageUtil;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Feature;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Property;
+
+
+public class ChoosePorts extends ChooseSetAssistedDialog implements IChooseDialog {
+
+ protected EList<Package> visitedPackages;
+
+ /**
+ * LabelProvider for stereotype completion proposal provider with qualified names.
+ */
+ final private StereotypeQualifiedLabelProvider qualifiedLabelProvider = new StereotypeQualifiedLabelProvider();
+
+ /**
+ * Default Constructor.
+ *
+ * @param parentShell
+ * the parent shell
+ * @param theElement
+ * the UML element to be modified
+ */
+ public ChoosePorts(Shell parentShell, Class component, InterceptionRule rule) {
+ super(parentShell, "Available features", "Intercepted features");
+ labelProvider = new PortLabelProvider();
+ decoratedContentProposalProvider = new ConfigOptContentProposalProvider();
+
+ for (Feature feature : rule.getInterceptionSet()) {
+ selectedElementList.addElement(feature);
+ }
+
+ visitedPackages = new BasicEList<Package>();
+ if (component != null) {
+ // local rule with intercept some policy: choose executor ports
+ for (Property current : component.getOwnedAttributes()) {
+ if (!selectedElementList.contains(current)) {
+ possibleElementList.addElement(current);
+ }
+ }
+ for (Feature current : Utils.getAllElementsOfType(component, Feature.class)) {
+ if (!selectedElementList.contains(current)) {
+ possibleElementList.addElement(current);
+ }
+ }
+ } else {
+ // global rule with intercept some policy
+ // choose all ports vs. ports of "standard components"
+ Package top = PackageUtil.getRootPackage(rule.getBase_Property());
+ for (Feature current : Utils.getAllElementsOfType(top, Feature.class)) {
+ if (!selectedElementList.contains(current)) {
+ possibleElementList.addElement(current);
+ }
+ }
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.papyrus.ui.dialogs.ChooseSetAssistedDialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+ */
+ /**
+ * Creates the dialog area.
+ *
+ * @param parent
+ * the parent
+ *
+ * @return the control
+ */
+ @Override
+ protected Control createDialogArea(Composite parent) {
+ Control composite = super.createDialogArea(parent);
+
+ // Add 2 columns to the table area
+ // possibleElementsTable.setLinesVisible(true);
+ possibleElementsTable.setHeaderVisible(true);
+
+ // 1st column with image/checkboxes - NOTE: The SWT.CENTER has no effect!!
+ TableColumn column = new TableColumn(possibleElementsTable, SWT.CENTER, 0);
+ column.setText("Port");
+ column.setWidth(60);
+ column.addSelectionListener(new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ possibleElementsTableViewer.setSorter(new AlphabeticalViewerSorter(0));
+ }
+ });
+
+ // 2nd column with task Description
+ column = new TableColumn(possibleElementsTable, SWT.LEFT, 1);
+ column.setText("Type");
+ column.setWidth(100);
+ // Add listener to column so tasks are sorted by description when clicked
+ column.addSelectionListener(new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ possibleElementsTableViewer.setSorter(new AlphabeticalViewerSorter(1));
+ }
+ });
+
+ // set sorter to the possible element table viewer
+ possibleElementsTableViewer.setSorter(new AlphabeticalViewerSorter(0));
+
+ return composite;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.papyrus.ui.dialogs.ChooseSetAssistedDialog#runAddElement(java.lang.String)
+ */
+ /**
+ * Run add element.
+ *
+ * @param name
+ * the name
+ */
+ @Override
+ protected void runAddElement(String name) {
+ // find the stereotype in the list
+ Port port = null;
+ for (Object possibleElement : possibleElementList.getElements()) {
+ Port element = (Port) possibleElement;
+ if (name.equalsIgnoreCase(element.getName()) || name.equalsIgnoreCase(element.getQualifiedName())) {
+ port = element;
+ }
+ }
+ if (port != null) {
+ runActionAdd(port);
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.papyrus.ui.dialogs.ChooseSetAssistedDialog#isSelectableElement(java.lang.String)
+ */
+ /**
+ * Checks if is selectable element.
+ *
+ * @param text
+ * the text
+ *
+ * @return true, if is selectable element
+ */
+ @Override
+ protected boolean isSelectableElement(String text) {
+ // iterate through all possibilities and return true if text corresponds
+ for (Object possibleElement : possibleElementList.getElements()) {
+ Port element = (Port) possibleElement;
+ if (text.equalsIgnoreCase(element.getName()) || text.equalsIgnoreCase(element.getQualifiedName())) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Content Proposal provider for stereotypes dialog. Propose the simple
+ * name of the stereotype and its qualified name.
+ *
+ * @author Remi Schnekenburger
+ */
+ public class ConfigOptContentProposalProvider extends DecoratedContentProposalProvider {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.cea.papyrus.ui.dialogs.ChooseSetAssistedDialog.DecoratedContentProposalProvider#getProposals(java.lang.String, int)
+ */
+ /**
+ * Gets the proposals.
+ *
+ * @param contents
+ * the contents
+ * @param position
+ * the position
+ *
+ * @return the proposals
+ */
+ @Override
+ public DecoratedContentProposal[] getProposals(String contents, int position) {
+ ArrayList<DecoratedContentProposal> proposals = new ArrayList<DecoratedContentProposal>();
+
+ if (possibleElementList != null) {
+ for (Object portObj : possibleElementList.getElements()) {
+ final Port port = (Port) portObj;
+ final String simpleName = port.getName();
+ final String qualifiedName = port.getQualifiedName();
+
+ if (position < simpleName.length() && contents.substring(0, position).equalsIgnoreCase(simpleName.substring(0, position))) {
+ proposals.add(new DecoratedContentProposal(port, labelProvider));
+ }
+
+ if (position < qualifiedName.length() && contents.substring(0, position).equalsIgnoreCase(qualifiedName.substring(0, position))) {
+ proposals.add(new DecoratedContentProposal(port, qualifiedLabelProvider));
+ }
+ }
+ }
+
+ Collections.sort(proposals);
+ return proposals.toArray(new DecoratedContentProposal[proposals.size()]);
+ }
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/ConfigOptionLabelProvider.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/ConfigOptionLabelProvider.java
new file mode 100644
index 00000000000..ec588505f20
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/ConfigOptionLabelProvider.java
@@ -0,0 +1,50 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.ui.dialogs;
+
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.papyrus.qompass.designer.core.Description;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.uml2.uml.Class;
+
+public class ConfigOptionLabelProvider extends LabelProvider implements ITableLabelProvider {
+
+ @Override
+ public String getText(Object element) {
+ return ((Class) element).getName();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int)
+ */
+ @Override
+ public String getColumnText(Object element, int columnIndex) {
+ if (columnIndex == 0) {
+ return getText(element);
+ } else if (columnIndex == 1) {
+ return Description.getDescription((Class) element);
+ }
+ return null;
+ }
+
+ @Override
+ public Image getColumnImage(Object element, int columnIndex) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+};
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/ConfigureInstanceDialog.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/ConfigureInstanceDialog.java
new file mode 100644
index 00000000000..f5deb6de56c
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/ConfigureInstanceDialog.java
@@ -0,0 +1,642 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.ui.dialogs;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.papyrus.FCM.ContainerRule;
+import org.eclipse.papyrus.FCM.util.FCMUtil;
+import org.eclipse.papyrus.infra.widgets.toolbox.utils.DialogUtils;
+import org.eclipse.papyrus.qompass.designer.core.ConfigUtils;
+import org.eclipse.papyrus.qompass.designer.core.Description;
+import org.eclipse.papyrus.qompass.designer.core.ElementFilter;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepCreation;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepPlanUtils;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepUtils;
+import org.eclipse.papyrus.qompass.designer.core.sync.DepPlanSync;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
+import org.eclipse.papyrus.uml.tools.utils.PackageUtil;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.FocusEvent;
+import org.eclipse.swt.events.FocusListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.layout.RowLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.ui.dialogs.SelectionStatusDialog;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Connector;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Enumeration;
+import org.eclipse.uml2.uml.EnumerationLiteral;
+import org.eclipse.uml2.uml.Feature;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.InstanceValue;
+import org.eclipse.uml2.uml.LiteralBoolean;
+import org.eclipse.uml2.uml.LiteralInteger;
+import org.eclipse.uml2.uml.LiteralString;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Slot;
+import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.ValueSpecification;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * Select container rules, either from a list of globally defined rules or from
+ * local rules which may be created "on the fly" by this dialog.
+ *
+ * TODO: extend rule application to instances (problematic, since rules
+ * transformation is done on type level)
+ */
+public class ConfigureInstanceDialog extends SelectionStatusDialog {
+
+ protected Class m_component;
+
+ protected Label fDescriptionLabel;
+
+ protected Text fDescription;
+
+ protected TreeViewer fInstanceList;
+
+ protected TableViewer fPropertyList;
+
+ protected Property m_currentAttribute;
+
+ protected final String valueLabelPrefix = "Value:"; //$NON-NLS-1$
+
+ protected Label fValueLabel;
+
+ protected Text fValue;
+
+ protected Combo fComboValue;
+
+ protected Package m_model;
+
+ protected Feature m_feature;
+
+ protected EList<Package> visitedPackages;
+
+ protected boolean m_rulePropertiesOnly;
+
+ protected InstanceSpecification m_instance;
+
+ EList<InstanceSpecification> m_instanceList;
+
+ public ConfigureInstanceDialog(Shell parent) {
+ super(parent);
+ }
+
+ public boolean init(Class component, ExecutionEvent from) {
+ // visitedPackages = new BasicEList<Package> ();
+ DepPlanSync.syncAllDepPlans(component);
+ m_component = component;
+ m_instance = null;
+ m_feature = null;
+ m_model = PackageUtil.getUserModel(from);
+ if (m_model == null) {
+ return false;
+ }
+ return checkAndGetInstances();
+ }
+
+ public boolean init(InstanceSpecification instance, ExecutionEvent from) {
+ // visitedPackages = new BasicEList<Package> ();
+ DepPlanSync.syncDepPlan(instance.getNearestPackage());
+ m_component = DepUtils.getImplementation(instance);
+ m_instance = instance;
+ m_feature = null;
+ m_model = PackageUtil.getUserModel(from);
+ return checkAndGetInstances();
+ }
+
+ public boolean init(Feature feature, ExecutionEvent from) {
+ // visitedPackages = new BasicEList<Package> ();
+ m_feature = feature;
+ m_model = PackageUtil.getUserModel(from);
+ if (m_model == null) {
+ m_model = PackageUtil.getRootPackage(feature);
+ }
+ m_instance = null;
+ if (feature instanceof Connector) {
+ org.eclipse.papyrus.FCM.Connector fcmConn = UMLUtil.getStereotypeApplication(feature,
+ org.eclipse.papyrus.FCM.Connector.class);
+ if ((fcmConn != null) && (fcmConn.getIc() != null)) {
+ m_component = fcmConn.getIc().getBase_Class();
+ return checkAndGetInstances();
+ }
+ } else if (feature instanceof Property) {
+ Type type = ((Property) feature).getType();
+ if (type instanceof Class) {
+ m_component = (Class) type;
+ return checkAndGetInstances();
+ }
+ }
+ return false;
+ }
+
+ /**
+ * A filter class that selects instances associated with the selected feature or component
+ */
+ class InstanceFilter implements ElementFilter {
+
+ private String featureCandidateName;
+
+ @Override
+ public boolean acceptElement(Element element) {
+ if (element instanceof InstanceSpecification) {
+ InstanceSpecification instance = (InstanceSpecification) element;
+ if (m_feature instanceof Property) {
+ EList<Slot> slots = DepUtils.getReferencingSlots(instance);
+ for (Slot slot : slots) {
+ if (slot.getDefiningFeature() == m_feature) {
+ return true;
+ }
+ }
+ }
+ else if (m_feature instanceof Connector) {
+ // Connector instances cannot be found via a slot. Since a connector is not a structural feature,
+ // it cannot be referenced via the "definingFeature" property of a slot. Therefore, the deployment
+ // plan creation (@see DepCreation.createDepPlan) simply omits slots, but still creates instances
+ // for the interaction components referenced by an FCM connector.
+ // TODO: the following code relies on specific order of instances and might not always work.
+ Element owner = m_feature.getOwner();
+ if (DepUtils.getImplementation(instance) == owner) {
+ // instance is for owner of feature: examine name
+ featureCandidateName = instance.getName() + "." + m_feature.getName(); //$NON-NLS-1$
+ }
+ else if (featureCandidateName != null) {
+ if (featureCandidateName.equals(instance.getName())) {
+ return true;
+ }
+ }
+ } else if (DepUtils.getImplementation(instance) == m_component) {
+ return true;
+ }
+ }
+ return false;
+ }
+ }
+
+
+ /**
+ * retrieve the instance list. Returns false, if no deployment plan could be found.
+ *
+ * @return
+ */
+ public boolean checkAndGetInstances() {
+ visitedPackages = new BasicEList<Package>();
+ m_instanceList = new BasicEList<InstanceSpecification>();
+
+ ElementFilter filter = new InstanceFilter();
+ DepUtils.getAllInstances(m_model, m_instanceList, filter);
+
+ if (m_instanceList.size() == 0) {
+ Shell shell = Display.getDefault().getActiveShell();
+ if (DepPlanUtils.getAllDepPlans(m_model).size() == 0) {
+ MessageDialog.openInformation(shell, "Instance configuration",
+ "No deployment plans are defined. Create a deployment plan before configuring instances");
+ return false;
+ }
+ else if (MessageDialog.openConfirm(shell, "Instance configuration",
+ "The list of available instances is empty. Synchronize deployment plans?")) {
+ DepPlanSync.syncAllDepPlans(m_model);
+ visitedPackages = new BasicEList<Package>();
+ DepUtils.getAllInstances(m_model, m_instanceList, filter);
+
+ if (m_instanceList.size() == 0) {
+ MessageDialog
+ .openInformation(
+ shell,
+ "Instance configuration",
+ "There are still no instances available\n. Check whether you created already a deployment plan for your system. Check as well, if the parts in your a composite use \"composite\" as aggregation kind. (Results of deployment plan synchronizations will be unrolled)");
+ return false;
+ }
+ }
+ }
+ return true;
+ }
+
+ /**
+ * @see SelectionStatusDialog#computeResult()
+ */
+ @Override
+ protected void computeResult() {
+ // nothing to do
+ }
+
+ @Override
+ public Control createDialogArea(Composite parent) {
+ Composite contents = (Composite) super.createDialogArea(parent);
+ // (parent, "Container rules", "Avail. extensions/interceptors");
+
+ createInstanceSelectionGroup(contents);
+ createInstanceConfigurationGroup(contents);
+ return contents;
+ }
+
+ protected void createInstanceSelectionGroup(Composite parent) {
+ Composite instanceSelection = new Composite(parent, SWT.NONE);
+ GridLayout grid = new GridLayout(1, true);
+ GridData groupGridData = new GridData();
+
+ groupGridData.grabExcessVerticalSpace = true;
+ groupGridData.grabExcessHorizontalSpace = true;
+ groupGridData.horizontalAlignment = GridData.FILL;
+ groupGridData.verticalAlignment = GridData.FILL;
+ instanceSelection.setLayout(grid);
+ instanceSelection.setLayoutData(groupGridData);
+
+ /*
+ * fRules = DialogUtils.createFilteredList (ruleSelGroup, new
+ * RuleLabelProvider(), 200, 200, SWT.BORDER | SWT.V_SCROLL |
+ * SWT.H_SCROLL);
+ */
+
+ //
+ // --------------- instance selection -------------------
+ //
+ Group instanceSelGroup = new Group(instanceSelection, SWT.BORDER);
+ instanceSelGroup.setText(addSpaces("associated instance specifications"));
+ // ruleGroup.setLayout(new RowLayout (SWT.VERTICAL));
+ instanceSelGroup.setLayout(new GridLayout(1, false));
+ instanceSelGroup.setLayoutData(groupGridData);
+
+ fInstanceList = new TreeViewer(instanceSelGroup, SWT.BORDER);
+
+ GridData data = new GridData(GridData.FILL_BOTH);
+ data.heightHint = 100;
+ data.widthHint = 350;
+
+ fInstanceList.getTree().setLayoutData(data);
+ fInstanceList.setLabelProvider(new InstanceLabelProvider());
+ fInstanceList.setContentProvider(new ITreeContentProvider() {
+
+ @Override
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+ }
+
+ @Override
+ public void dispose() {
+ }
+
+ @Override
+ public boolean hasChildren(Object element) {
+ return getChildren(element).length > 0;
+ }
+
+ @Override
+ public Object getParent(Object element) {
+ return null;
+ }
+
+ @Override
+ public Object[] getElements(Object inputElement) {
+ return (Object[]) inputElement;
+ }
+
+ @Override
+ public Object[] getChildren(Object parentElement) {
+ if (parentElement instanceof InstanceSpecification) {
+ return DepUtils.getContainedInstances((InstanceSpecification) parentElement).toArray();
+ }
+ return new Object[0];
+ }
+ });
+
+ fInstanceList.setInput(m_instanceList.toArray());
+ fInstanceList.addSelectionChangedListener(new ISelectionChangedListener() {
+
+ @Override
+ public void selectionChanged(SelectionChangedEvent event) {
+ ISelection selection = fInstanceList.getSelection();
+ if (selection instanceof StructuredSelection) {
+ Object[] selected = ((StructuredSelection) selection)
+ .toArray();
+ if ((selected.length == 1)
+ && (selected[0] instanceof InstanceSpecification)) {
+ m_instance = (InstanceSpecification) selected[0];
+ Classifier cl = DepUtils.getClassifier(m_instance);
+ fPropertyList.setInput(getConfigAttributes(cl).toArray());
+ selectProperty(m_currentAttribute);
+ }
+ }
+ }
+ });
+ if (m_instance != null) {
+ int index = m_instanceList.indexOf(m_instance);
+ if (index != -1) {
+ TreeItem treeItem = fInstanceList.getTree().getItem(index);
+ fInstanceList.getTree().setSelection(treeItem);
+ }
+ }
+ }
+
+ // create instance configuration group
+ protected void createInstanceConfigurationGroup(Composite parent) {
+ GridData groupGridData = DialogUtils.createFillGridData();
+
+ Group instanceConfigurationGroup = new Group(parent, SWT.BORDER);
+ instanceConfigurationGroup.setText(addSpaces("Configuration"));
+ instanceConfigurationGroup.setLayout(new RowLayout(SWT.VERTICAL));
+ instanceConfigurationGroup.setLayout(new GridLayout(1, false));
+ instanceConfigurationGroup.setLayoutData(groupGridData);
+
+ // fRuleName = new Text (ruleInfoGroup, SWT.NONE);
+ Label configL = new Label(instanceConfigurationGroup, SWT.NONE);
+ configL.setText("Available properties:");
+
+ fPropertyList = new TableViewer(instanceConfigurationGroup, SWT.BORDER);
+ fPropertyList.setLabelProvider(new AttributeLabelProvider());
+ fPropertyList.setContentProvider(new ArrayContentProvider());
+ fPropertyList.setInput(getConfigAttributes(m_component).toArray());
+ fPropertyList
+ .addSelectionChangedListener(new ISelectionChangedListener() {
+
+ @Override
+ public void selectionChanged(SelectionChangedEvent event) {
+ ISelection selection = fPropertyList.getSelection();
+ if (selection instanceof StructuredSelection) {
+ Object[] selected = ((StructuredSelection) selection)
+ .toArray();
+ if ((selected.length == 1)
+ && (selected[0] instanceof Property)) {
+ selectProperty((Property) selected[0]);
+ }
+ }
+ }
+ });
+
+ fValueLabel = new Label(instanceConfigurationGroup, SWT.NONE);
+
+ GridData span2 = new GridData();
+ span2.horizontalAlignment = GridData.FILL;
+ span2.grabExcessHorizontalSpace = true;
+ span2.heightHint = 70;
+ fPropertyList.getTable().setLayoutData(span2);
+
+ fValue = new Text(instanceConfigurationGroup, SWT.WRAP);
+ span2 = new GridData();
+ span2.horizontalAlignment = GridData.FILL;
+ span2.grabExcessHorizontalSpace = true;
+ fValue.setLayoutData(span2);
+
+ fValue.addFocusListener(new FocusListener() {
+
+ @Override
+ public void focusLost(FocusEvent e) {
+ // store value, once focus is lost (different element is
+ // selected)
+ String valueStr = fValue.getText();
+ Slot valueSlot = null;
+ if (m_instance == null) {
+ // no instance has been selected
+ // (field should be inactive, if not selected)
+ return;
+ }
+ for (Slot slot : m_instance.getSlots()) {
+ if (slot.getDefiningFeature() == m_currentAttribute) {
+ valueSlot = slot;
+ }
+ }
+ if (valueSlot == null) {
+ // slot does not exist yet, create
+ valueSlot = DepCreation.createSlotForConfigProp(m_instance,
+ m_currentAttribute);
+ }
+ for (ValueSpecification value : valueSlot.getValues()) {
+ if (value instanceof LiteralString) {
+ ((LiteralString) value).setValue(valueStr);
+ } else if (value instanceof LiteralInteger) {
+ ((LiteralInteger) value).setValue(Integer
+ .parseInt(valueStr));
+ } else if (value instanceof LiteralBoolean) {
+ ((LiteralBoolean) value).setValue(Boolean
+ .parseBoolean(valueStr));
+ }
+ }
+ }
+
+ @Override
+ public void focusGained(FocusEvent e) {
+ }
+ });
+
+ fComboValue = new Combo(instanceConfigurationGroup, SWT.NONE);
+ span2 = new GridData();
+ span2.horizontalAlignment = GridData.FILL;
+ span2.grabExcessHorizontalSpace = true;
+ fComboValue.setLayoutData(span2);
+
+ fComboValue.addSelectionListener(new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent event) {
+ // store value, once focus is lost (different element is
+ // selected)
+ int index = fComboValue.getSelectionIndex();
+ if (m_instance == null) {
+ // no instance has been selected
+ // (field should be inactive, if not selected)
+ return;
+ }
+ Slot valueSlot = null;
+ for (Slot slot : m_instance.getSlots()) {
+ if (slot.getDefiningFeature() == m_currentAttribute) {
+ // slot for enumerations can only be configured with instanceValues.
+ // Destroy slots with do not contain at least one instanceValue
+ boolean destroySlot = true;
+ for (ValueSpecification value : slot.getValues()) {
+ if (value instanceof InstanceValue) {
+ destroySlot = false;
+ }
+ }
+ if (destroySlot) {
+ slot.destroy();
+ }
+ else {
+ valueSlot = slot;
+ }
+ break;
+ }
+ }
+ if (valueSlot == null) {
+ // slot does not exist yet, create
+ valueSlot = DepCreation.createSlotForConfigProp(m_instance,
+ m_currentAttribute);
+ }
+ Enumeration enumeration = (Enumeration) m_currentAttribute.getType();
+ for (ValueSpecification value : valueSlot.getValues()) {
+ if (value instanceof InstanceValue) {
+ ((InstanceValue) value).setInstance(enumeration.getOwnedLiterals().get(index));
+ }
+ }
+ }
+ });
+
+ fDescriptionLabel = new Label(instanceConfigurationGroup, SWT.NONE);
+ fDescriptionLabel.setText("Description:");
+ fDescriptionLabel.setLayoutData(span2);
+
+ span2 = new GridData();
+ span2.horizontalAlignment = GridData.FILL;
+ span2.grabExcessHorizontalSpace = true;
+ span2.grabExcessVerticalSpace = true;
+ span2.verticalAlignment = GridData.FILL;
+ span2.heightHint = 80;
+
+ fDescription = new Text(instanceConfigurationGroup, SWT.NONE | SWT.WRAP
+ | SWT.V_SCROLL | SWT.READ_ONLY);
+ fDescription.setLayoutData(span2);
+ // createMessageArea (ruleInfoGroup);
+ instanceConfigurationGroup.pack();
+ setEnabled(false);
+ }
+
+ /**
+ * Select a rule, i.e. update the visual representation from the rule
+ *
+ * @param rule
+ */
+ protected void selectProperty(Property attribute) {
+ m_currentAttribute = attribute;
+ if ((attribute == null) || (fValue == null)) {
+ setEnabled(false);
+ return;
+ }
+ setEnabled(true);
+ fDescription.setText(Description.getDescription(attribute, "not available"));
+ fValueLabel.setText(getValueLabel(attribute));
+ boolean isEnum = m_currentAttribute.getType() instanceof Enumeration;
+ fValue.setVisible(!isEnum);
+ fComboValue.setVisible(isEnum);
+ if (isEnum) {
+ Enumeration enumeration = (Enumeration) m_currentAttribute.getType();
+ EList<EnumerationLiteral> literals = enumeration.getOwnedLiterals();
+ String items[] = new String[literals.size()];
+ for (int i = 0; i < literals.size(); i++) {
+ items[i] = literals.get(i).getName();
+ }
+ fComboValue.setItems(items);
+ }
+
+ for (Slot slot : m_instance.getSlots()) {
+ if (slot.getDefiningFeature() == m_currentAttribute) {
+ for (ValueSpecification value : slot.getValues()) {
+ if (value instanceof LiteralInteger) {
+ Integer intVal = ((LiteralInteger) value).getValue();
+ fValue.setText(intVal.toString());
+ return;
+ }
+ if (value instanceof InstanceValue) {
+ InstanceSpecification enumIS = ((InstanceValue) value).getInstance();
+ if (enumIS instanceof EnumerationLiteral) {
+ EnumerationLiteral literal = (EnumerationLiteral) enumIS;
+ int index = literal.getEnumeration().getOwnedLiterals().indexOf(literal);
+ if (index != -1) {
+ fComboValue.select(index);
+ }
+ }
+ return;
+ }
+ else if (value instanceof LiteralBoolean) {
+ Boolean boolVal = ((LiteralBoolean) value).booleanValue();
+ fValue.setText(boolVal.toString());
+ return;
+ }
+ else if (value instanceof LiteralString) {
+ fValue.setText(((LiteralString) value).getValue());
+ return;
+ }
+ }
+ }
+ }
+ fValue.setText(""); //$NON-NLS-1$
+ }
+
+ private void setEnabled(boolean enabled) {
+ fDescriptionLabel.setEnabled(enabled);
+ fDescription.setEnabled(enabled);
+ fValueLabel.setEnabled(enabled);
+ fValue.setEnabled(enabled);
+ if (!enabled) {
+ fValue.setText(""); //$NON-NLS-1$
+ fDescription.setText(""); //$NON-NLS-1$
+ fValueLabel.setText(valueLabelPrefix);
+ }
+ }
+
+ private String getValueLabel(Property attribute) {
+ String label = valueLabelPrefix;
+ if (attribute.getDefault() != null) {
+ return label + " " + String.format("(default = %s)", attribute.getDefault()); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ return label;
+ }
+
+ private EList<Property> getConfigAttributes(Classifier component) {
+ EList<Property> list = new BasicEList<Property>();
+ // add properties of component
+ list.addAll(ConfigUtils.getConfigAttributes(component));
+ // now add properties of container rules
+ // TODO: is it possible that multiple container extensions of the same
+ // type exist, and if yes, how do we configure these?
+ if (component instanceof Class) {
+ EList<ContainerRule> rules = FCMUtil.getAllContainerRules((Class) component);
+ if (rules != null) {
+ for (ContainerRule aRule : rules) {
+ // (many, in case of a composite rule)
+ try {
+ list.addAll(ConfigUtils.getConfigAttributes(aRule));
+ } catch (TransformationException e) {
+ }
+ }
+ }
+ }
+ return list;
+ }
+
+ /**
+ * Add a space before and after
+ *
+ * @param text
+ * @return
+ */
+ public static String addSpaces(String text) {
+ return " " + text + " "; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/ConfigurePortDialog.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/ConfigurePortDialog.java
new file mode 100644
index 00000000000..7f8bc62475a
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/ConfigurePortDialog.java
@@ -0,0 +1,388 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.ui.dialogs;
+
+import java.util.Collections;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.UniqueEList;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.papyrus.FCM.PortKind;
+import org.eclipse.papyrus.infra.widgets.editors.TreeSelectorDialog;
+import org.eclipse.papyrus.infra.widgets.toolbox.utils.DialogUtils;
+import org.eclipse.papyrus.qompass.designer.core.Description;
+import org.eclipse.papyrus.qompass.designer.core.PortUtils;
+import org.eclipse.papyrus.qompass.designer.ui.Messages;
+import org.eclipse.papyrus.uml.tools.providers.ServiceEditFilteredContentProvider;
+import org.eclipse.papyrus.uml.tools.providers.UMLLabelProvider;
+import org.eclipse.papyrus.uml.tools.utils.PackageUtil;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.dialogs.SelectionStatusDialog;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * Select container rules, either from a list of globally defined rules or from
+ * local rules which may be created "on the fly" by this dialog.
+ *
+ * TODO: extend rule application to instances (problematic, since rules
+ * transformation is done on type level)
+ *
+ */
+public class ConfigurePortDialog extends SelectionStatusDialog {
+
+ protected Class m_component;
+
+ protected Text fDescription;
+
+ protected TableViewer fPortList;
+
+ protected Port m_currentPort;
+
+ protected Combo fKindCombo;
+
+ protected EList<PortKind> portKindList;
+
+ protected Label fType;
+
+ protected Button fTypeButton;
+
+ protected Label fProvided;
+
+ protected Label fRequired;
+
+ protected Package m_model;
+
+ protected EList<Port> m_ports;
+
+ public static final String COLON = ":"; //$NON-NLS-1$
+
+ public ConfigurePortDialog(Shell parent) {
+ super(parent);
+ }
+
+ public boolean init(Port port) {
+ // visitedPackages = new BasicEList<Package> ();
+ m_component = port.getClass_();
+ m_currentPort = port; // preselect port (don't call selectPort before initialization of dialog area);
+ m_model = PackageUtil.getRootPackage(m_component);
+ m_ports = PortUtils.getAllPorts(m_component);
+ return true;
+ }
+
+ public boolean init(Class clazz) {
+ // visitedPackages = new BasicEList<Package> ();
+ m_component = clazz;
+ m_model = PackageUtil.getRootPackage(m_component);
+ m_currentPort = null;
+ m_ports = PortUtils.getAllPorts(m_component);
+ return true;
+ }
+
+
+ /**
+ * @see SelectionStatusDialog#computeResult()
+ */
+ @Override
+ protected void computeResult() {
+ // nothing to do
+ }
+
+ @Override
+ public Control createDialogArea(Composite parent) {
+ Composite contents = (Composite) super.createDialogArea(parent);
+ // (parent, "Container rules", "Avail. extensions/interceptors");
+
+ createPortConfigurationGroup(contents);
+ if (m_currentPort != null) {
+ int index = m_ports.indexOf(m_currentPort);
+ if (index != -1) {
+ fPortList.getTable().setSelection(index);
+ selectPort(m_currentPort);
+ }
+ }
+ return contents;
+ }
+
+ // create instance configuration group
+ protected void createPortConfigurationGroup(Composite parent) {
+ GridData groupGridData = DialogUtils.createFillGridData();
+
+ // create grid data
+ GridData gridData = DialogUtils.createFillGridData();
+ GridData gridDataH80Span2 = DialogUtils.createFillGridData();
+ gridDataH80Span2.horizontalSpan = 2;
+ gridDataH80Span2.heightHint = 80;
+ GridData gridDataH25Span2 = DialogUtils.createFillGridData();
+ gridDataH25Span2.horizontalSpan = 2;
+ gridDataH25Span2.heightHint = 25;
+ GridData gridDataH60 = DialogUtils.createFillGridData();
+ gridDataH60.heightHint = 60;
+ GridData gridDataSpan2 = DialogUtils.createFillGridData();
+ gridDataSpan2.horizontalSpan = 2;
+
+ // fRuleName = new Text (ruleInfoGroup, SWT.NONE);
+ Group portSelection = new Group(parent, SWT.BORDER);
+ portSelection.setLayout(new GridLayout(1, false));
+ // configL.setLayout(new RowLayout());
+
+ portSelection.setText(" " + Messages.ConfigurePortDialog_AvailPorts + " "); //$NON-NLS-1$ //$NON-NLS-2$
+ portSelection.setLayoutData(gridDataH60);
+
+ fPortList = new TableViewer(portSelection, SWT.BORDER);
+ fPortList.setLabelProvider(new PortLabelProvider());
+ fPortList.setContentProvider(new ArrayContentProvider());
+ fPortList.setInput(m_ports.toArray());
+ fPortList.getTable().setLayoutData(gridDataH60);
+ fPortList.addSelectionChangedListener(new ISelectionChangedListener() {
+
+ @Override
+ public void selectionChanged(SelectionChangedEvent event) {
+ ISelection selection = fPortList.getSelection();
+ if (selection instanceof StructuredSelection) {
+ Object[] selected = ((StructuredSelection) selection)
+ .toArray();
+ if ((selected.length == 1)
+ && (selected[0] instanceof Port)) {
+ selectPort((Port) selected[0]);
+ }
+ }
+ }
+ });
+ portSelection.pack();
+
+ Group instanceConfigurationGroup = new Group(parent, SWT.BORDER);
+ instanceConfigurationGroup.setText(" " + Messages.ConfigurePortDialog_AvailPorts + " "); //$NON-NLS-1$ //$NON-NLS-2$
+ instanceConfigurationGroup.setLayout(new GridLayout(2, false));
+ instanceConfigurationGroup.setLayoutData(groupGridData);
+
+ Label kindText = new Label(instanceConfigurationGroup, SWT.NONE);
+ kindText.setText(Messages.ConfigurePortDialog_Kind + COLON);
+
+ fKindCombo = new Combo(instanceConfigurationGroup, SWT.NONE);
+ portKindList = getAvailableKinds(m_model);
+ if (portKindList.size() == 0) {
+ MessageDialog.openInformation(Display.getDefault().getActiveShell(), "No port kinds founds", "No port kinds are available. Please import a Qompass model library");
+ }
+ String[] portKindStrList = new String[portKindList.size() + 1];
+ portKindStrList[0] = Messages.ConfigurePortDialog_None;
+ for (int i = 0; i < portKindList.size(); i++) {
+ portKindStrList[i + 1] = portKindList.get(i).getBase_Class().getName();
+ }
+ fKindCombo.setItems(portKindStrList);
+ fKindCombo.addSelectionListener(new SelectionListener() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ // changePortKind
+ org.eclipse.papyrus.FCM.Port fcmPort = StereotypeUtil.applyApp(m_currentPort, org.eclipse.papyrus.FCM.Port.class);
+ if (fcmPort != null)
+ {
+ int index = fKindCombo.getSelectionIndex();
+ if (index > 0) {
+ PortKind kind = portKindList.get(index - 1);
+ fcmPort.setKind(kind);
+ selectPort(m_currentPort);
+ }
+ else {
+ StereotypeUtil.unapply(m_currentPort, org.eclipse.papyrus.FCM.Port.class);
+ selectPort(m_currentPort);
+ }
+ }
+ }
+
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+ });
+
+ Label fTypeLabel = new Label(instanceConfigurationGroup, SWT.NONE);
+ fTypeLabel.setText(Messages.ConfigurePortDialog_Type + COLON);
+ fTypeLabel.setLayoutData(gridData);
+
+ fType = new Label(instanceConfigurationGroup, SWT.NONE);
+ fType.setLayoutData(gridData);
+
+ fTypeButton = new Button(instanceConfigurationGroup, SWT.NONE);
+ fTypeButton.setText(Messages.ConfigurePortDialog_ChangeType);
+ fTypeButton.setLayoutData(gridDataH25Span2);
+ fTypeButton.addSelectionListener(new SelectionListener() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ // use Papyrus type selection dialog ...
+ TreeSelectorDialog tsd = new TreeSelectorDialog(Display.getDefault().getActiveShell());
+
+ EStructuralFeature feature = UMLPackage.eINSTANCE.getTypedElement_Type();
+ ServiceEditFilteredContentProvider contentProvider =
+ new ServiceEditFilteredContentProvider(m_currentPort, feature, new EObject[] { m_model });
+
+ EList<EClassifier> wantedMetaClasses = new BasicEList<EClassifier>();
+ wantedMetaClasses.add(feature.getEType());
+ // creates (indirect) dependency to org.eclipse.emf.facet.infra.browser.uicore.CustomizableModelContentProvider
+ contentProvider.setWantedMetaclasses(wantedMetaClasses);
+ contentProvider.setNotWantedMetaclasses(Collections.EMPTY_LIST);
+ tsd.setContentProvider(contentProvider);
+ tsd.setLabelProvider(new UMLLabelProvider());
+ tsd.open();
+ Object result[] = tsd.getResult();
+ if ((result != null) && (result.length == 1)) {
+ // if(result[0] instanceof IAdaptable) {
+ // Object type = ((IAdaptable)result[0]).getAdapter(EObject.class);
+ Object type = result[0];
+ if (type instanceof Type) {
+ m_currentPort.setType((Type) type);
+ selectPort(m_currentPort);
+ }
+ }
+ }
+
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+ });
+
+ // Label emptySpace = new Label(instanceConfigurationGroup, SWT.NONE);
+ // emptySpace.setLayoutData(gridDataSpan2);
+
+
+ // Composite derivedInterfaces = new Composite(instanceConfigurationGroup, SWT.NONE);
+ Group derivedInterfaces = new Group(instanceConfigurationGroup, SWT.NONE);
+ derivedInterfaces.setLayout(new GridLayout(2, false));
+
+ // Label dil = new Label(derivedInterfaces, SWT.NONE);
+ // dil.setText("Interfaces derived from port kind");
+ derivedInterfaces.setText(Messages.ConfigurePortDialog_IntfDerived);
+ // dil.setLayoutData(gridDataSpan2);
+ derivedInterfaces.setLayoutData(gridDataSpan2);
+
+ Label fProvidedLabel = new Label(derivedInterfaces, SWT.NONE);
+ fProvidedLabel.setText(Messages.ConfigurePortDialog_Provided + COLON);
+ fProvided = new Label(derivedInterfaces, SWT.NONE);
+ fProvided.setLayoutData(gridData);
+
+ Label fRequiredLabel = new Label(derivedInterfaces, SWT.NONE);
+ fRequiredLabel.setText(Messages.ConfigurePortDialog_Required + COLON);
+ fRequired = new Label(derivedInterfaces, SWT.NONE);
+ fRequired.setLayoutData(gridData);
+ derivedInterfaces.pack();
+
+ fDescription = new Text(instanceConfigurationGroup, SWT.NONE | SWT.WRAP
+ | SWT.V_SCROLL | SWT.READ_ONLY);
+ fDescription.setLayoutData(gridDataH80Span2);
+ // createMessageArea (ruleInfoGroup);
+ instanceConfigurationGroup.pack();
+ setEnabled(false);
+ }
+
+ /**
+ * Select a rule, i.e. update the visual representation from the rule
+ *
+ * @param rule
+ */
+ protected void selectPort(Port port) {
+ m_currentPort = port;
+ if (port == null) {
+ setEnabled(false);
+ return;
+ }
+ setEnabled(true);
+ org.eclipse.papyrus.FCM.Port fcmPort = UMLUtil.getStereotypeApplication(port, org.eclipse.papyrus.FCM.Port.class);
+ if (port.getType() != null) {
+ fType.setText(port.getType().getQualifiedName());
+ }
+ else {
+ fType.setText(Messages.ConfigurePortDialog_Undef);
+ }
+ if ((fcmPort != null) && (fcmPort.getKind() != null)) {
+ PortKind kind = fcmPort.getKind();
+ if (portKindList.contains(kind)) {
+ int index = portKindList.indexOf(kind) + 1;
+ fKindCombo.select(index);
+ }
+ fDescription.setText(Description.getDescription(kind.getBase_Class(), Messages.ConfigurePortDialog_NotAvail));
+ Interface providedI = PortUtils.getProvided(port);
+ Interface requiredI = PortUtils.getRequired(port);
+ fProvided.setText(providedI != null ? providedI.getQualifiedName() : Messages.ConfigurePortDialog_None);
+ fRequired.setText(requiredI != null ? requiredI.getQualifiedName() : Messages.ConfigurePortDialog_None);
+ }
+ else {
+ fProvided.setText(port.getProvideds().size() > 0 ? port.getProvideds().get(0).getQualifiedName() : Messages.ConfigurePortDialog_None);
+ fRequired.setText(port.getRequireds().size() > 0 ? port.getRequireds().get(0).getQualifiedName() : Messages.ConfigurePortDialog_None);
+ fKindCombo.select(0);
+ fDescription.setText(""); //$NON-NLS-1$
+ }
+ }
+
+ private void setEnabled(boolean enabled) {
+ fDescription.setEnabled(enabled);
+ if (!enabled) {
+ fDescription.setText(""); //$NON-NLS-1$
+ }
+ }
+
+ protected EList<PortKind> getAvailableKinds(Package pkg) {
+ EList<PortKind> portKindList = new UniqueEList<PortKind>();
+ EList<Package> visitedPackages = new BasicEList<Package>();
+ getAvailableKinds(pkg, portKindList, visitedPackages);
+ return portKindList;
+ }
+
+ protected void getAvailableKinds(Package pkg, EList<PortKind> portKindList, EList<Package> visitedPackages) {
+ for (Element el : pkg.getMembers()) {
+ if (el instanceof Package) {
+ if (!visitedPackages.contains(el)) {
+ visitedPackages.add((Package) el);
+ getAvailableKinds((Package) el, portKindList, visitedPackages);
+ }
+ } else if (el instanceof Class) {
+ PortKind portKind = UMLUtil.getStereotypeApplication(el, PortKind.class);
+ if (portKind != null) {
+ portKindList.add(portKind);
+ }
+ }
+ }
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/ConnectorSelectionDialog.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/ConnectorSelectionDialog.java
new file mode 100644
index 00000000000..1652acc7663
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/ConnectorSelectionDialog.java
@@ -0,0 +1,371 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.ui.dialogs;
+
+
+import java.util.Arrays;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.UniqueEList;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.papyrus.FCM.InteractionComponent;
+import org.eclipse.papyrus.infra.widgets.toolbox.utils.DialogUtils;
+import org.eclipse.papyrus.qompass.designer.core.Description;
+import org.eclipse.papyrus.qompass.designer.core.Log;
+import org.eclipse.papyrus.qompass.designer.core.Utils;
+import org.eclipse.papyrus.qompass.designer.core.templates.ConnectorBinding;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.dialogs.AbstractElementListSelectionDialog;
+import org.eclipse.ui.dialogs.FilteredList;
+import org.eclipse.ui.dialogs.SelectionStatusDialog;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Feature;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * Select a connector type and implementation (group)
+ * TODO: show information about the used connector [usage, implem properties, ...]
+ * similar help for ports?
+ *
+ * @author ansgar
+ *
+ */
+public class ConnectorSelectionDialog extends AbstractElementListSelectionDialog {
+
+ protected Package m_model;
+
+ protected EList<Package> visitedPackages;
+
+ protected Text m_description;
+
+ protected Button fTypeOnly;
+
+ private EList<Class> connectorList;
+
+ private Feature m_selectedConnector;
+
+ private Object[] fUpperElements;
+
+ protected FilteredList fUpper;
+
+ protected FilteredList fLower;
+
+ private InteractionComponent initialSelection = null;
+
+ public ConnectorSelectionDialog(Shell parent, Package model, Feature selectedConnector) {
+ super(parent, new QNameLabelProvider());
+ connectorList = new BasicEList<Class>();
+ visitedPackages = new BasicEList<Package>();
+ getAllConnectors(model, selectedConnector, connectorList);
+ m_selectedConnector = selectedConnector;
+ setMultipleSelection(false);
+ m_model = model;
+ }
+
+ @Override
+ public Control createDialogArea(Composite parent) {
+ Composite contents = (Composite) super.createDialogArea(parent);
+ createMessageArea(contents);
+ // createLabel(contents, "Connector type");
+ GridData gridData = DialogUtils.createFillGridData();
+ gridData.heightHint = 200;
+
+ Group fUpperGroup = new Group(contents, SWT.NONE);
+ fUpperGroup.setLayout(new GridLayout());
+ fUpperGroup.setLayoutData(gridData);
+ fUpperGroup.setText(" Abstract interaction components "); //$NON-NLS-1$
+ createFilterText(fUpperGroup);
+ fUpper = createFilteredList(fUpperGroup);
+
+ final Group fLowerGroup = new Group(contents, SWT.NONE);
+ fLowerGroup.setLayout(new GridLayout());
+ fLowerGroup.setLayoutData(gridData);
+ fLowerGroup.setText(" Realizations/groups of interaction components "); //$NON-NLS-1$
+ // createLabel(contents, lowerLabel);
+ fLower = createFilteredList(fLowerGroup);
+ fFilteredList = fUpper;
+ org.eclipse.papyrus.FCM.Connector fcmConnector = UMLUtil.getStereotypeApplication(m_selectedConnector, org.eclipse.papyrus.FCM.Connector.class);
+ if (fcmConnector != null) {
+ // getInitialElementSelections();
+ initialSelection = fcmConnector.getIc();
+ } else {
+ initialSelection = null;
+ }
+
+ fTypeOnly = new Button(contents, SWT.CHECK);
+ fTypeOnly.setText("Select type only"); //$NON-NLS-1$
+ SelectionListener fTypeOnlySL = new SelectionListener() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ if (fTypeOnly.getSelection()) {
+ fLower.setEnabled(false);
+ fLowerGroup.setEnabled(false);
+ fLower.setSelection(new int[0]);
+ fLower.setElements(null);
+ }
+ else {
+ fLower.setEnabled(true);
+ fLowerGroup.setEnabled(true);
+ handleSelectionChanged();
+ }
+ }
+
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+ };
+ fTypeOnly.addSelectionListener(fTypeOnlySL);
+
+ fUpper.setElements(connectorList.toArray());
+
+ // create initial selections
+ if (initialSelection instanceof InteractionComponent) {
+ InteractionComponent componentComp = initialSelection;
+ Class componentCompBase = componentComp.getBase_Class();
+ if (!componentCompBase.isAbstract()) {
+ // get first superclass that is a component type
+ Class componentTypeBase = Utils.componentType(componentCompBase);
+ componentComp = UMLUtil.getStereotypeApplication(componentTypeBase, InteractionComponent.class);
+ } else {
+ // fLower.setEnabled (false);
+ // fLowerGroup.setEnabled(false);
+ fTypeOnly.setSelection(true);
+ }
+ // update status (listener does not evaluate passed data)
+ fTypeOnlySL.widgetSelected(null);
+
+ // set initial selections
+ fUpper.setSelection(new Object[] { componentComp.getBase_Class() });
+ }
+
+ Label info = createMessageArea(contents);
+ info.setText("Information about connector implementation:"); //$NON-NLS-1$
+ // m_description = createMessageArea(contents);
+
+ GridData descriptionGD = new GridData();
+ descriptionGD.horizontalAlignment = GridData.FILL;
+ descriptionGD.grabExcessHorizontalSpace = true;
+ descriptionGD.heightHint = 80;
+ descriptionGD.grabExcessVerticalSpace = true;
+ descriptionGD.verticalAlignment = GridData.FILL;
+
+ m_description = new Text(contents, SWT.NONE | SWT.WRAP | SWT.V_SCROLL | SWT.READ_ONLY);
+ m_description.setLayoutData(descriptionGD);
+
+ fLower.addSelectionListener(new SelectionListener() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ Object[] selected = fLower.getSelection();
+ if ((selected.length > 0) && (selected[0] instanceof NamedElement)) {
+ NamedElement selectedNE = (NamedElement) selected[0];
+ m_description.setText(Description.getDescription(selectedNE));
+ }
+ else {
+ m_description.setText("");
+ updateOkState();
+ }
+ }
+
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+ });
+
+ return contents;
+ }
+
+ @Override
+ /**
+ * Update the enablement of the OK button based on whether or not there
+ * is a selection.
+ *
+ */
+ protected void updateOkState() {
+ if (fTypeOnly.getSelection()) {
+ super.updateOkState();
+ } else {
+ Button okButton = getOkButton();
+ if (okButton != null) {
+ okButton.setEnabled(fLower.getSelection().length != 0);
+ }
+ }
+ }
+
+
+ protected Label createLabel(Composite parent, String name) {
+ if (name == null) {
+ return null;
+ }
+ Label label = new Label(parent, SWT.NONE);
+ label.setText(name);
+ label.setFont(parent.getFont());
+ return label;
+ }
+
+ /**
+ * Creates a label if name was not <code>null</code>.
+ *
+ * @param parent
+ * the parent composite.
+ * @param name
+ * the name of the label.
+ * @return returns a label if a name was given, <code>null</code> otherwise.
+ */
+
+
+ /**
+ * @see SelectionStatusDialog#computeResult()
+ */
+ @Override
+ protected void computeResult() {
+ Object[] result = new Object[] { getSelectedElement(fTypeOnly.getSelection()) };
+ setResult(Arrays.asList(result));
+ }
+
+ /**
+ * @see AbstractElementListSelectionDialog#handleDefaultSelected()
+ */
+ @Override
+ protected void handleDefaultSelected() {
+ if (validateCurrentSelection() && (getSelectedElement(false) != null)) {
+ buttonPressed(IDialogConstants.OK_ID);
+ }
+ }
+
+ /**
+ * @see AbstractElementListSelectionDialog#handleSelectionChanged()
+ */
+ @Override
+ protected void handleSelectionChanged() {
+ handleUpperSelectionChanged();
+ }
+
+ private void handleUpperSelectionChanged() {
+ int index = getSelectionIndex();
+ if (index >= 0) {
+ fUpperElements = getFoldedElements(index);
+
+ if ((fUpperElements == null) || fTypeOnly.getSelection()) {
+ // lower list remains empty, if typeOnly is true
+ fLower.setElements(new Object[] {});
+ } else {
+ fLower.setElements(getLowerList(fUpperElements[0]));
+ if (initialSelection instanceof InteractionComponent) {
+ // select existing selection in lower section
+ fLower.setSelection(new Object[] { initialSelection });
+ // do not try to set it again.
+ initialSelection = null;
+ }
+ }
+ }
+ validateCurrentSelection();
+ }
+
+ /**
+ * Returns the selected element from the upper or lower pane.
+ *
+ * @return Object
+ */
+ protected Object getSelectedElement(boolean upper) {
+ Object[] selection;
+ if (upper) {
+ selection = fFilteredList.getSelection();
+ } else {
+ selection = fLower.getSelection();
+ }
+ if (selection.length > 0) {
+ return selection[0];
+ }
+ return null;
+ }
+
+ protected Object[] getLowerList(Object selectedUpperObj) {
+ EList<Class> connectorList = new UniqueEList<Class>();
+ if (selectedUpperObj instanceof Class) {
+ visitedPackages = new BasicEList<Package>();
+ getImplGroups(m_model, (Class) selectedUpperObj, connectorList);
+ }
+ return connectorList.toArray();
+ }
+
+ void getAllConnectors(Package pkg, Feature selectedConnector, EList<Class> connectorList) {
+ for (Element el : pkg.getMembers()) {
+ if (el instanceof Package) {
+ if (!visitedPackages.contains(el)) {
+ visitedPackages.add((Package) el);
+ getAllConnectors((Package) el, selectedConnector, connectorList);
+ }
+ } else if (el instanceof Class) {
+ if (StereotypeUtil.isApplied(el, InteractionComponent.class) && Utils.isCompType((Class) el)) {
+
+ if (selectedConnector == null) {
+ connectorList.add((Class) el);
+ } else {
+ try {
+ Element owner = selectedConnector.getOwner();
+ if (owner instanceof Class) {
+ Class composite = (Class) owner;
+ Log.log(IStatus.INFO, Log.DIALOGS, "ConnectorSelectionDialog.getAllConnectors: try to bind connector " + //$NON-NLS-1$
+ ((Class) el).getQualifiedName());
+ ConnectorBinding.obtainBinding(composite, selectedConnector, (Class) el, false);
+ connectorList.add((Class) el);
+ } else {
+ connectorList.add((Class) el);
+ }
+ } catch (TransformationException e) {
+ // silently ignore exception: it is normal that we cannot find a binding for some connectors
+ }
+ }
+ }
+ }
+ }
+ }
+
+ void getImplGroups(Package pkg, Class selectedConnType, EList<Class> implGroupList) {
+ for (Element el : pkg.getMembers()) {
+ if (el instanceof Package) {
+ if (!visitedPackages.contains(el)) {
+ visitedPackages.add((Package) el);
+ getImplGroups((Package) el, selectedConnType, implGroupList);
+ }
+ } else if (el instanceof Class) {
+ Class class_ = (Class) el;
+ if (class_.getGeneralization(selectedConnType) != null) {
+ implGroupList.add((Class) el);
+ }
+ }
+ }
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/ContainerDialog.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/ContainerDialog.java
new file mode 100644
index 00000000000..32a4bc5881d
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/ContainerDialog.java
@@ -0,0 +1,309 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.ui.dialogs;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.CheckStateChangedEvent;
+import org.eclipse.jface.viewers.CheckboxTableViewer;
+import org.eclipse.jface.viewers.ICheckStateListener;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.papyrus.FCM.ContainerRule;
+import org.eclipse.papyrus.FCM.RuleApplication;
+import org.eclipse.papyrus.infra.widgets.toolbox.utils.DialogUtils;
+import org.eclipse.papyrus.qompass.designer.core.Description;
+import org.eclipse.papyrus.qompass.designer.core.Utils;
+import org.eclipse.papyrus.uml.tools.utils.PackageUtil;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.dialogs.SelectionStatusDialog;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * Select container rules, either from a list of globally defined rules
+ * or from local rules which may be created "on the fly" by this dialog.
+ *
+ * TODO: extend rule application to instances (problematic, since rules transformation
+ * is done on type level)
+ *
+ */
+public class ContainerDialog extends SelectionStatusDialog {
+
+ protected Class m_component;
+
+ // protected EList<Package> visitedPackages;
+ protected Text fDescription;
+
+ // protected FilteredList fRules;
+ protected CheckboxTableViewer fRules;
+
+ // protected Combo fInterceptionKind;
+
+ // protected Button fInterButton;
+
+ // protected Label fPortLabel;
+ // protected Text fRuleName;
+ // protected Button fOptionButton;
+
+ // protected Button fPortButton;
+
+ protected ContainerRule m_currentRule;
+
+ protected Package m_model;
+
+ protected boolean m_rulePropertiesOnly;
+
+ public ContainerDialog(Shell parent, Class componentOrRule) {
+ super(parent);
+ // visitedPackages = new BasicEList<Package> ();
+ m_rulePropertiesOnly = StereotypeUtil.isApplied(componentOrRule, ContainerRule.class);
+ if (m_rulePropertiesOnly) {
+ // m_currentRule = UMLUtil.getStereotypeApplication(componentOrRule, ContainerRule.class);
+ } else {
+ m_component = componentOrRule;
+ }
+ m_model = PackageUtil.getRootPackage(componentOrRule);
+ }
+
+ /**
+ * @see SelectionStatusDialog#computeResult()
+ */
+ @Override
+ protected void computeResult() {
+ // nothing to do
+ }
+
+ @Override
+ public Control createDialogArea(Composite parent) {
+ Composite contents = (Composite) super.createDialogArea(parent);
+ // (parent, "Container rules", "Avail. extensions/interceptors");
+
+ if (m_rulePropertiesOnly) {
+ createRuleInfoGroup(contents);
+ selectRule(m_currentRule);
+ } else {
+ createRuleSelectionGroup(contents);
+ createRuleInfoGroup(contents);
+ }
+ return contents;
+ }
+
+ protected void createRuleSelectionGroup(Composite parent) {
+ Composite ruleSelections = new Composite(parent, SWT.NONE);
+ GridLayout grid = new GridLayout(1, true);
+ GridData groupGridData = new GridData();
+ // data3.widthHint = 400;
+ // data3.heightHint = 300;
+ groupGridData.grabExcessVerticalSpace = true;
+ groupGridData.grabExcessHorizontalSpace = true;
+ groupGridData.horizontalAlignment = GridData.FILL;
+ groupGridData.verticalAlignment = GridData.FILL;
+ ruleSelections.setLayout(grid);
+ ruleSelections.setLayoutData(groupGridData);
+ ruleSelections.setSize(400, 300);
+
+ /*
+ * fRules = DialogUtils.createFilteredList (ruleSelGroup, new RuleLabelProvider(), 200, 200,
+ * SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
+ */
+ GridData data = new GridData(GridData.FILL_BOTH);
+ data.heightHint = 150;
+ data.widthHint = 200;
+
+ ICheckStateListener checkListener = new ICheckStateListener() {
+
+ @Override
+ public void checkStateChanged(CheckStateChangedEvent event) {
+ Object obj = event.getElement();
+ if (obj instanceof ContainerRule) {
+ ContainerRule rule = (ContainerRule) obj;
+ if (event.getChecked()) {
+ applyRule(rule);
+ }
+ else {
+ unapplyRule(rule);
+ }
+ }
+ }
+ };
+
+ //
+ // --------------- global rules -------------------
+ //
+ Group gRuleSelGroup = new Group(ruleSelections, SWT.BORDER);
+ gRuleSelGroup.setText(" available rules ");
+ // ruleGroup.setLayout(new RowLayout (SWT.VERTICAL));
+ gRuleSelGroup.setLayout(new GridLayout(1, false));
+ gRuleSelGroup.setLayoutData(groupGridData);
+
+ EList<ContainerRule> globalRuleList = Utils.getAllRules(m_model);
+ // Table table = new Table(gRuleSelGroup, SWT.CHECK);
+ fRules = CheckboxTableViewer.newCheckList(gRuleSelGroup, SWT.BORDER);
+ // fRules = new CheckboxTableViewer(table);
+
+
+ GridData data2 = new GridData(GridData.FILL_BOTH);
+ data2.heightHint = 200;
+ // data.widthHint = 200;
+ fRules.getTable().setLayoutData(data);
+ fRules.setLabelProvider(new RuleLabelProvider());
+ fRules.setContentProvider(new ArrayContentProvider());
+
+ fRules.setInput(globalRuleList.toArray());
+ for (ContainerRule rule : globalRuleList) {
+ if (isRuleApplied(rule)) {
+ fRules.setChecked(rule, true);
+ }
+ }
+ fRules.addSelectionChangedListener(new ISelectionChangedListener() {
+
+ @Override
+ public void selectionChanged(SelectionChangedEvent event) {
+ ISelection selection = fRules.getSelection();
+ if (selection instanceof StructuredSelection) {
+ Object[] selected = ((StructuredSelection) selection).toArray();
+ if ((selected.length == 1) && (selected[0] instanceof ContainerRule)) {
+ if (m_currentRule != selected[0]) {
+ selectRule((ContainerRule) selected[0]);
+ }
+ }
+ }
+ }
+ });
+ fRules.addCheckStateListener(checkListener);
+ }
+
+ protected void createRuleInfoGroup(Composite parent) {
+ GridData groupGridData = DialogUtils.createFillGridData();
+ // data3.widthHint = 400;
+ // data3.heightHint = 300;
+
+ Group ruleInfoGroup = new Group(parent, SWT.BORDER);
+ ruleInfoGroup.setText(" rule information ");
+ // ruleGroup.setLayout(new RowLayout (SWT.VERTICAL));
+ ruleInfoGroup.setLayout(new GridLayout(2, false));
+ ruleInfoGroup.setLayoutData(groupGridData);
+
+ GridData span2 = new GridData();
+ span2.horizontalSpan = 2;
+ span2.horizontalAlignment = GridData.FILL;
+ span2.grabExcessHorizontalSpace = true;
+ span2.grabExcessVerticalSpace = true;
+ span2.verticalAlignment = GridData.FILL;
+ span2.heightHint = 80;
+
+
+ fDescription = new Text(ruleInfoGroup, SWT.WRAP | SWT.V_SCROLL | SWT.READ_ONLY);
+ fDescription.setLayoutData(span2);
+ // createMessageArea (ruleInfoGroup);
+ ruleInfoGroup.pack();
+ // fPortLabel = new Label (ruleInfoGroup, SWT.NONE);
+ // fPortLabel.setText ("for Ports");
+ // fPortLabel.setEnabled (false);
+ }
+
+ /**
+ * Select a rule, i.e. update the visual representation from the rule
+ *
+ * @param rule
+ */
+ protected void selectRule(ContainerRule rule) {
+ m_currentRule = rule;
+ fDescription.setText(Description.getDescription(rule.getBase_Class()));
+ }
+
+ /**
+ * Helper: add a local container rule to the current class
+ *
+ * @param name
+ * the name of the local rule
+ * @return
+ */
+ ContainerRule addRule(String name) {
+ Class ruleCl = (Class)
+ m_component.createNestedClassifier(name, UMLPackage.eINSTANCE.getClass_());
+ StereotypeUtil.apply(ruleCl, ContainerRule.class);
+ return UMLUtil.getStereotypeApplication(ruleCl, ContainerRule.class);
+ }
+
+ /**
+ * Helper function: delete a container rule from a class
+ *
+ * @param rule
+ */
+ void deleteRule(ContainerRule rule) {
+ Classifier ruleCl = m_component.getNestedClassifier(rule.getBase_Class().getName());
+ if (ruleCl instanceof Class) {
+ ruleCl.destroy();
+ }
+ }
+
+ /**
+ * Helper: apply a container rule to current component
+ *
+ * @param rule
+ */
+ void applyRule(ContainerRule rule) {
+ if (!StereotypeUtil.isApplied(m_component, RuleApplication.class)) {
+ StereotypeUtil.apply(m_component, RuleApplication.class);
+ }
+ RuleApplication containerConfig =
+ UMLUtil.getStereotypeApplication(m_component, RuleApplication.class);
+ containerConfig.getContainerRule().add(rule);
+ }
+
+ /**
+ * Helper: apply a container rule to current component
+ *
+ * @param rule
+ */
+ void unapplyRule(ContainerRule rule) {
+ RuleApplication containerConfig =
+ UMLUtil.getStereotypeApplication(m_component, RuleApplication.class);
+ int index = containerConfig.getContainerRule().indexOf(rule);
+ if ((index >= 0) && (index < containerConfig.getContainerRule().size())) {
+ containerConfig.getContainerRule().remove(index);
+ }
+ }
+
+ /**
+ * check whether a container rule is applied
+ * h * @param rule
+ *
+ * @return true, if container rule is applied
+ */
+ boolean isRuleApplied(ContainerRule rule) {
+ RuleApplication containerConfig =
+ UMLUtil.getStereotypeApplication(m_component, RuleApplication.class);
+ if (containerConfig != null) {
+ return containerConfig.getContainerRule().contains(rule);
+ }
+ return false;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/GenerationOptionsDialog.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/GenerationOptionsDialog.java
new file mode 100644
index 00000000000..fd6fc3d2116
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/GenerationOptionsDialog.java
@@ -0,0 +1,138 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.ui.dialogs;
+
+import java.util.Arrays;
+
+import org.eclipse.papyrus.qompass.designer.core.generate.GenerationOptions;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.dialogs.SelectionStatusDialog;
+
+/**
+ * Select options for code generation.
+ *
+ * @author ansgar
+ */
+public class GenerationOptionsDialog extends SelectionStatusDialog implements GenerationOptions {
+
+ protected Button fButtonModelOnly;
+
+ protected Button fButtonRewriteSettings;
+
+ protected Button fButtonOnlyChanged;
+
+ protected Button fButtonCACOnly;
+
+ public static int oldResultInt = 0;
+
+ public GenerationOptionsDialog(Shell parent) {
+ super(parent);
+ }
+
+ /**
+ * @see SelectionStatusDialog#computeResult()
+ */
+ @Override
+ protected void computeResult() {
+ int resultInt = (isRewriteSettings() ? REWRITE_SETTINGS : 0) +
+ (isOnlyChanged() ? ONLY_CHANGED : 0) +
+ (isModelOnly() ? MODEL_ONLY : 0) +
+ (isCACOnly() ? CAC_ONLY : 0);
+ oldResultInt = resultInt;
+ Object[] result = new Object[] {
+ resultInt
+ };
+ setResult(Arrays.asList(result));
+ }
+
+ @Override
+ public Control createDialogArea(Composite parent) {
+ Composite contents = (Composite) super.createDialogArea(parent);
+ // (parent, "Container rules", "Avail. extensions/interceptors");
+
+ fButtonCACOnly = new Button(contents, SWT.CHECK);
+ fButtonCACOnly.setText("Only perform container and connector expansion (intermediate model without code generation)");
+ fButtonCACOnly.addSelectionListener(new SelectionListener() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ updateButtonEnableStatus();
+ }
+
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+ });
+ fButtonCACOnly.setSelection((oldResultInt & CAC_ONLY) != 0);
+
+ fButtonModelOnly = new Button(contents, SWT.CHECK);
+ fButtonModelOnly.setText("Only generate model (not code)");
+ fButtonModelOnly.addSelectionListener(new SelectionListener() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ // only write types that have changed does not make sense, if the whole directory is cleaned
+ boolean modelOnly = fButtonModelOnly.getSelection();
+ fButtonOnlyChanged.setEnabled(!modelOnly);
+ }
+
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+ });
+ fButtonModelOnly.setSelection((oldResultInt & MODEL_ONLY) != 0);
+
+ fButtonRewriteSettings = new Button(contents, SWT.CHECK);
+ fButtonRewriteSettings.setText("Rewrite project settings, if project exists already (may overwrite user settings)");
+ fButtonRewriteSettings.setSelection((oldResultInt & REWRITE_SETTINGS) != 0);
+
+ fButtonOnlyChanged = new Button(contents, SWT.CHECK);
+ fButtonOnlyChanged.setText("Experimental: only write types that have changed (based on a difference model via EMF compare)");
+ fButtonOnlyChanged.setSelection((oldResultInt & ONLY_CHANGED) != 0);
+
+ updateButtonEnableStatus();
+ return contents;
+ }
+
+ protected void updateButtonEnableStatus() {
+ boolean onlyCAC = fButtonCACOnly.getSelection();
+ boolean modelOnly = fButtonModelOnly.getSelection();
+ fButtonModelOnly.setEnabled(!onlyCAC);
+ fButtonOnlyChanged.setEnabled(!modelOnly && !onlyCAC);
+ fButtonRewriteSettings.setEnabled(!onlyCAC);
+ }
+
+ public boolean isRewriteSettings() {
+ return fButtonRewriteSettings.getSelection();
+ }
+
+ public boolean isOnlyChanged() {
+ return fButtonOnlyChanged.getSelection();
+ }
+
+ public boolean isModelOnly() {
+ return fButtonModelOnly.getSelection();
+ }
+
+ public boolean isCACOnly() {
+ return fButtonCACOnly.getSelection();
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/InstanceLabelProvider.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/InstanceLabelProvider.java
new file mode 100644
index 00000000000..72ed1a737f8
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/InstanceLabelProvider.java
@@ -0,0 +1,39 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.ui.dialogs;
+
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.NamedElement;
+
+public class InstanceLabelProvider extends LabelProvider {
+
+ @Override
+ public String getText(Object element) {
+ if (element instanceof NamedElement) {
+ String instanceName = ((NamedElement) element).getName();
+ Element owner = ((Element) element).getOwner();
+ if (owner instanceof NamedElement) {
+ return "Plan " + ((NamedElement) owner).getName() + ": " + instanceName;
+ }
+ else {
+ return instanceName;
+ }
+ }
+ else {
+ return "not a named element";
+ }
+ }
+};
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/InteractiveImplementationChooser.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/InteractiveImplementationChooser.java
new file mode 100644
index 00000000000..bfdcf2d7040
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/InteractiveImplementationChooser.java
@@ -0,0 +1,55 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.ui.dialogs;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.papyrus.qompass.designer.core.deployment.ImplementationChooser;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.dialogs.ElementListSelectionDialog;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.NamedElement;
+
+public class InteractiveImplementationChooser implements ImplementationChooser {
+
+ @Override
+ public Class chooseImplementation(Class componentType, EList<Class> implList) {
+ // SelectionDialog = SelectionDialog.
+ ILabelProvider ilabel = new LabelProvider() {
+
+ @Override
+ public String getText(Object element) {
+ return ((NamedElement) element).getQualifiedName();
+ }
+ };
+ ElementListSelectionDialog dialog =
+ new ElementListSelectionDialog(Display.getDefault().getActiveShell(), ilabel);
+
+ dialog.setTitle("Multiple implementations found");
+ dialog.setMessage("Select an implementation for component type " + componentType.getName());
+
+ dialog.setElements(implList.toArray());
+
+ dialog.open();
+ Object[] selection = dialog.getResult();
+ if (selection.length == 1) {
+ if (selection[0] instanceof Class) {
+ return (Class) selection[0];
+ }
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/NameLabelProvider.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/NameLabelProvider.java
new file mode 100644
index 00000000000..fcf8a51c82c
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/NameLabelProvider.java
@@ -0,0 +1,26 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.ui.dialogs;
+
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.uml2.uml.NamedElement;
+
+public class NameLabelProvider extends LabelProvider {
+
+ @Override
+ public String getText(Object element) {
+ return ((NamedElement) element).getName();
+ }
+};
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/PortLabelProvider.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/PortLabelProvider.java
new file mode 100644
index 00000000000..b94bcf1bfca
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/PortLabelProvider.java
@@ -0,0 +1,80 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.ui.dialogs;
+
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.uml2.uml.Port;
+
+/**
+ * A label provider for either UML or FCM ports
+ *
+ * @author ansgar
+ *
+ */
+public class PortLabelProvider extends LabelProvider implements ITableLabelProvider {
+
+ /**
+ * small helper function: simply retrieval of port (element might be either a port or an FCM port)
+ *
+ * @param element
+ * @return
+ */
+ private Port getUMLport(Object element) {
+ if (element instanceof org.eclipse.papyrus.FCM.Port) {
+ org.eclipse.papyrus.FCM.Port port = (org.eclipse.papyrus.FCM.Port) element;
+ if (port != null) {
+ return port.getBase_Port();
+ }
+ } else if (element instanceof Port) {
+ return (Port) element;
+ }
+ return null;
+ }
+
+ @Override
+ public String getText(Object element) {
+ Port umlPort = getUMLport(element);
+ if (umlPort != null) {
+ return umlPort.getName();
+ }
+ return "";
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int)
+ */
+ @Override
+ public String getColumnText(Object element, int columnIndex) {
+ if (columnIndex == 0) {
+ return getText(element);
+ } else if (columnIndex == 1) {
+ Port umlPort = getUMLport(element);
+ if (umlPort != null) {
+ return umlPort.getType().getName();
+ }
+ }
+ return "";
+ }
+
+ @Override
+ public Image getColumnImage(Object element, int columnIndex) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+};
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/QNameLabelProvider.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/QNameLabelProvider.java
new file mode 100644
index 00000000000..0bc904fc210
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/QNameLabelProvider.java
@@ -0,0 +1,26 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.ui.dialogs;
+
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.uml2.uml.NamedElement;
+
+public class QNameLabelProvider extends LabelProvider {
+
+ @Override
+ public String getText(Object element) {
+ return ((NamedElement) element).getQualifiedName();
+ }
+};
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/RuleLabelProvider.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/RuleLabelProvider.java
new file mode 100644
index 00000000000..853eaa092b7
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/dialogs/RuleLabelProvider.java
@@ -0,0 +1,39 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.ui.dialogs;
+
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.papyrus.FCM.ContainerRule;
+
+/**
+ * Return a label for ContainerRules. Since the name of the rule itself, is not
+ * really interesting for the user, the returned name is based on the interceptor
+ * (or extension)
+ *
+ * @author ansgar
+ *
+ */
+public class RuleLabelProvider extends LabelProvider {
+
+ @Override
+ public String getText(Object element) {
+ if (element instanceof ContainerRule) {
+ ContainerRule rule = (ContainerRule) element;
+ // TODO? Add information about contained parts?
+ return rule.getBase_Class().getName();
+ }
+ return null;
+ }
+};
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/AddProfileAndModelLibsHandler.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/AddProfileAndModelLibsHandler.java
new file mode 100644
index 00000000000..588f0bc84de
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/AddProfileAndModelLibsHandler.java
@@ -0,0 +1,92 @@
+/*******************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.papyrus.qompass.designer.ui.handlers;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.emf.transaction.util.TransactionUtil;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.papyrus.qompass.designer.core.CommandSupport;
+import org.eclipse.papyrus.qompass.designer.core.commands.AddMarteAndFcmProfile;
+import org.eclipse.papyrus.qompass.designer.core.commands.AddQompassModelLibs;
+import org.eclipse.papyrus.uml.diagram.common.handlers.CmdHandler;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.dialogs.ListSelectionDialog;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PackageImport;
+
+/**
+ * This class adds the FCM profile, parts of the MARTE profile and required package imports to your model.
+ */
+public class AddProfileAndModelLibsHandler extends CmdHandler {
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean isEnabled() {
+ updateSelectedEObject();
+ if (selectedEObject instanceof Package) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ if (!(selectedEObject instanceof Package)) {
+ return null;
+ }
+ final Package selectedPkg = (Package) selectedEObject;
+
+ final TransactionalEditingDomain domain = TransactionUtil.getEditingDomain(selectedPkg);
+ AddMarteAndFcmProfile addProfiles = new AddMarteAndFcmProfile(selectedPkg,
+ AddMarteAndFcmProfile.APPLY_FCM | AddMarteAndFcmProfile.APPLY_ALLOC | AddMarteAndFcmProfile.APPLY_HLAM_GCM,
+ domain);
+ AddQompassModelLibs addModelLibs = new AddQompassModelLibs(selectedPkg, domain);
+
+ final ListSelectionDialog dialog = new ListSelectionDialog(Display.getDefault().getActiveShell(),
+ addModelLibs.getAvailableImportPackages().toArray(),
+ new ArrayContentProvider(),
+ new LabelProvider() {
+
+ @Override
+ public String getText(Object pi) {
+ return ((PackageImport) pi).getImportedPackage().getName();
+ }
+ },
+ "Select Qompass model libraries for package import.\n" + //$NON-NLS-1$
+ "Libraries that are already imported, are selected. Please note that additional\n" + //$NON-NLS-1$
+ "Qompass model library might be loaded with the standard \"import registered library\" option\n" + //$NON-NLS-1$
+ "\n" + //$NON-NLS-1$
+ "Pressing \"Ok\" will continue with the application of the FCM profile and (parts of) the MARTE profile\n");//$NON-NLS-1$
+
+ dialog.setTitle("Select import library"); //$NON-NLS-1$
+ dialog.setInitialElementSelections(addModelLibs.getAlreadyImportedPackages());
+ // dialog.setElements (list.toArray ());
+ int result = dialog.open();
+ if (result == IDialogConstants.OK_ID) {
+ addModelLibs.setImportList(dialog.getResult());
+ CommandSupport.exec(addModelLibs);
+ CommandSupport.exec(addProfiles);
+ // open dialog?
+ // MessageDialog.openWarning(Display.getDefault().getActiveShell(),
+ // "Warning", "The MARTE profile is not available."); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/AllocateHandler.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/AllocateHandler.java
new file mode 100644
index 00000000000..dd517e153c9
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/AllocateHandler.java
@@ -0,0 +1,90 @@
+/*******************************************************************************
+ * All rights reserved. This program and the accompanying materials
+ * are property of the CEA, their use is subject to specific agreement
+ * with the CEA.
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) ansgar.radermacher@cea.fr - Initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.ui.handlers;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.papyrus.FCM.DeploymentPlan;
+import org.eclipse.papyrus.qompass.designer.core.CommandSupport;
+import org.eclipse.papyrus.qompass.designer.core.RunnableWithResult;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepUtils;
+import org.eclipse.papyrus.qompass.designer.ui.dialogs.AllocationDialog;
+import org.eclipse.papyrus.uml.diagram.common.handlers.CmdHandler;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.uml2.uml.Package;
+
+/**
+ * Implementation class for ClassAction action
+ */
+public class AllocateHandler extends CmdHandler {
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean isEnabled() {
+ updateSelectedEObject();
+ if (selectedEObject instanceof Package) {
+ return (StereotypeUtil.isApplied((Package) selectedEObject, DeploymentPlan.class));
+ }
+ return false;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Object execute(ExecutionEvent event)
+ throws ExecutionException {
+ if (!(selectedEObject instanceof Package)) {
+ return null;
+ }
+
+ final Package cdp = (Package) selectedEObject;
+ final Shell shell = Display.getDefault().getActiveShell();
+
+ // org.eclipse.papyrus.qompass.designer.vsl.ParseVSL.test();
+ if (DepUtils.getMainInstance(cdp) == null) {
+ MessageDialog.openInformation(shell, "Error",
+ "Deployment plan has no main instance (check stereotype attribute mainInstance)");
+ return null;
+ }
+
+ // 1. select possible connectors according to port types
+ // (only show compatible connectors check-box?)
+ // 2. select implementation group according to connector type
+
+ // container dialog: either extension, rule or interceptor
+ // howto select? which? (and howto add/remove?) - Std - dialog is good?
+ CommandSupport.exec("Instance allocation", event, new RunnableWithResult() {
+
+ @Override
+ public CommandResult run() {
+ AllocationDialog allocDialog =
+ new AllocationDialog(shell, cdp);
+ allocDialog.setTitle("Allocate instances");
+ allocDialog.open();
+ if (allocDialog.getReturnCode() == IDialogConstants.OK_ID) {
+ return CommandResult.newOKCommandResult();
+ }
+ else {
+ return CommandResult.newCancelledCommandResult();
+ }
+ }
+ });
+
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/ConfigureInstanceHandler.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/ConfigureInstanceHandler.java
new file mode 100644
index 00000000000..969ecd1d367
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/ConfigureInstanceHandler.java
@@ -0,0 +1,129 @@
+/*******************************************************************************
+ * All rights reserved. This program and the accompanying materials
+ * are property of the CEA, their use is subject to specific agreement
+ * with the CEA.
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.ui.handlers;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.papyrus.qompass.designer.core.CommandSupport;
+import org.eclipse.papyrus.qompass.designer.core.RunnableWithResult;
+import org.eclipse.papyrus.qompass.designer.ui.dialogs.ConfigureInstanceDialog;
+import org.eclipse.papyrus.uml.diagram.common.handlers.CmdHandler;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Connector;
+import org.eclipse.uml2.uml.Feature;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * Implementation class for ClassAction action
+ */
+public class ConfigureInstanceHandler extends CmdHandler {
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean isEnabled() {
+ updateSelectedEObject();
+ if ((selectedEObject instanceof Class) ||
+ (selectedEObject instanceof Connector) ||
+ (selectedEObject instanceof Property) ||
+ (selectedEObject instanceof InstanceSpecification)) {
+ return true;
+ }
+ return false;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
+ */
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ if (!(selectedEObject instanceof NamedElement)) {
+ return null;
+ }
+
+ final NamedElement element = (NamedElement) selectedEObject;
+ final Shell shell = Display.getDefault().getActiveShell();
+ final ExecutionEvent from = event;
+
+ // 1. select possible connectors according to port types
+ // (only show compatible connectors check-box?)
+ // 2. select implementation group according to connector type
+
+ if (element instanceof Class) {
+ // container dialog: either extension, rule or interceptor
+ // how-to select? which? (and how-to add/remove?) - is standard dialog sufficient?
+ CommandSupport.exec("Configure associated component instance", event, new RunnableWithResult() { //$NON-NLS-1$
+
+ @Override
+ public CommandResult run() {
+ ConfigureInstanceDialog configureInstanceDialog =
+ new ConfigureInstanceDialog(shell);
+ if (configureInstanceDialog.init((Class) element, from)) {
+ configureInstanceDialog.setTitle("Configure instance"); //$NON-NLS-1$
+ configureInstanceDialog.setMessage("Configure instance for component " + element.getName()); //$NON-NLS-1$
+ configureInstanceDialog.open();
+ if (configureInstanceDialog.getReturnCode() == IDialogConstants.OK_ID) {
+ return CommandResult.newOKCommandResult();
+ }
+ }
+ return CommandResult.newCancelledCommandResult();
+ }
+ });
+ } else if (element instanceof Feature) {
+ CommandSupport.exec("Configure associated instance", event, new RunnableWithResult() { //$NON-NLS-1$
+
+ @Override
+ public CommandResult run() {
+ ConfigureInstanceDialog configureInstanceDialog =
+ new ConfigureInstanceDialog(shell);
+ if (configureInstanceDialog.init((Feature) element, from)) {
+ configureInstanceDialog.setTitle("Configure instance"); //$NON-NLS-1$
+ configureInstanceDialog.setMessage("Configure instance for property/connector " + element.getName()); //$NON-NLS-1$
+ configureInstanceDialog.open();
+ if (configureInstanceDialog.getReturnCode() == IDialogConstants.OK_ID) {
+ return CommandResult.newOKCommandResult();
+ }
+ }
+ return CommandResult.newCancelledCommandResult();
+ }
+ });
+
+
+ } else if (element instanceof InstanceSpecification) {
+
+ CommandSupport.exec("Configure instance", event, new RunnableWithResult() { //$NON-NLS-1$
+
+ @Override
+ public CommandResult run() {
+ ConfigureInstanceDialog configureInstanceDialog =
+ new ConfigureInstanceDialog(shell);
+ if (configureInstanceDialog.init((InstanceSpecification) element, from)) {
+ configureInstanceDialog.setMessage("Configure instance " + element.getName()); //$NON-NLS-1$
+ configureInstanceDialog.open();
+ if (configureInstanceDialog.getReturnCode() == IDialogConstants.OK_ID) {
+ return CommandResult.newOKCommandResult();
+ }
+ }
+ return CommandResult.newCancelledCommandResult();
+ }
+ });
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/ConfigurePortHandler.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/ConfigurePortHandler.java
new file mode 100644
index 00000000000..3dcbc83e054
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/ConfigurePortHandler.java
@@ -0,0 +1,102 @@
+/*******************************************************************************
+ * All rights reserved. This program and the accompanying materials
+ * are property of the CEA, their use is subject to specific agreement
+ * with the CEA.
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.ui.handlers;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.papyrus.qompass.designer.core.CommandSupport;
+import org.eclipse.papyrus.qompass.designer.core.RunnableWithResult;
+import org.eclipse.papyrus.qompass.designer.ui.Messages;
+import org.eclipse.papyrus.qompass.designer.ui.dialogs.ConfigurePortDialog;
+import org.eclipse.papyrus.uml.diagram.common.handlers.CmdHandler;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Port;
+
+/**
+ * Implementation class for ClassAction action
+ */
+public class ConfigurePortHandler extends CmdHandler {
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean isEnabled() {
+ updateSelectedEObject();
+ if ((selectedEObject instanceof Class) ||
+ (selectedEObject instanceof Port)) {
+ return true;
+ }
+ return false;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
+ */
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ if (!(selectedEObject instanceof NamedElement)) {
+ return null;
+ }
+
+ final NamedElement element = (NamedElement) selectedEObject;
+ final Shell shell = Display.getDefault().getActiveShell();
+
+ // 1. select possible connectors according to port types
+ // (only show compatible connectors check-box?)
+ // 2. select implementation group according to connector type
+
+ if (element instanceof Class) {
+ CommandSupport.exec(Messages.ConfigurePortHandler_ConfigurePorts, event, new RunnableWithResult() {
+
+ @Override
+ public CommandResult run() {
+ ConfigurePortDialog configurePortDialog =
+ new ConfigurePortDialog(shell);
+ if (configurePortDialog.init((Class) element)) {
+ configurePortDialog.setTitle(Messages.ConfigurePortHandler_ConfigurePorts);
+ configurePortDialog.setMessage(Messages.ConfigurePortHandler_ConfigurePortsOfComponent + " " + element.getName()); //$NON-NLS-1$
+ configurePortDialog.open();
+ if (configurePortDialog.getReturnCode() == IDialogConstants.OK_ID) {
+ return CommandResult.newOKCommandResult();
+ }
+ }
+ return CommandResult.newCancelledCommandResult();
+ }
+ });
+ } else if (element instanceof Port) {
+ CommandSupport.exec(Messages.ConfigurePortHandler_ConfigurePorts, event, new RunnableWithResult() {
+
+ @Override
+ public CommandResult run() {
+ ConfigurePortDialog configurePortDialog =
+ new ConfigurePortDialog(shell);
+ if (configurePortDialog.init((Port) element)) {
+ configurePortDialog.setTitle(Messages.ConfigurePortHandler_ConfigurePorts);
+ configurePortDialog.setMessage(Messages.ConfigurePortHandler_ConfigurePorts + " " + element.getName()); //$NON-NLS-1$
+ configurePortDialog.open();
+ if (configurePortDialog.getReturnCode() == IDialogConstants.OK_ID) {
+ return CommandResult.newOKCommandResult();
+ }
+ }
+ return CommandResult.newCancelledCommandResult();
+ }
+ });
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/CreateDepPlanHandler.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/CreateDepPlanHandler.java
new file mode 100644
index 00000000000..6ff9c26c533
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/CreateDepPlanHandler.java
@@ -0,0 +1,144 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.ui.handlers;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.papyrus.qompass.designer.core.CommandSupport;
+import org.eclipse.papyrus.qompass.designer.core.RunnableWithResult;
+import org.eclipse.papyrus.qompass.designer.core.Utils;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepCreation;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepPlanUtils;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DeployConstants;
+import org.eclipse.papyrus.qompass.designer.core.sync.DepPlanSync;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
+import org.eclipse.papyrus.qompass.designer.ui.Messages;
+import org.eclipse.papyrus.uml.diagram.common.handlers.CmdHandler;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.Stereotype;
+
+public class CreateDepPlanHandler extends CmdHandler {
+
+ private Package depPlans;
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean isEnabled() {
+ updateSelectedEObject();
+ if ((selectedEObject instanceof Class) && Utils.isCompImpl((Class) selectedEObject)) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ if (!(selectedEObject instanceof Class)) {
+ return null;
+ }
+ final Class selectedComposite = (Class) selectedEObject;
+
+ CommandSupport.exec(Messages.CreateDepPlanHandler_CreateDPs, event, new Runnable() {
+
+ @Override
+ public void run() {
+ // execute with transaction support
+ depPlans = DepPlanUtils.getDepPlanRoot(selectedComposite);
+ }
+ });
+
+ try {
+ String name = selectedComposite.getName() + DeployConstants.DepPlanPostfix;
+ if (depPlans.getMember(name) != null) {
+ Shell shell = Display.getDefault().getActiveShell();
+ String dialogButtonLabels[] = new String[] {
+ Messages.CreateDepPlanHandler_Cancel,
+ Messages.CreateDepPlanHandler_Sync,
+ Messages.CreateDepPlanHandler_CreateNew
+ };
+ MessageDialog dialog = new MessageDialog(shell, Messages.CreateDepPlanHandler_WhatShouldIDo, null,
+ String.format(Messages.CreateDepPlanHandler_DPwithNameExistsAlready, name),
+ MessageDialog.QUESTION, dialogButtonLabels, 0);
+ int result = dialog.open();
+ if (result == 0) {
+ return null;
+ }
+ else if (result == 1) {
+ NamedElement existing = depPlans.getMember(name);
+ if (existing instanceof Package) {
+ DepPlanSync.syncDepPlan((Package) existing);
+ }
+ else {
+ MessageDialog.openError(shell, Messages.CreateDepPlanHandler_CannotSync,
+ String.format(Messages.CreateDepPlanHandler_DPwithNameExistsNoPackage, name));
+ }
+ }
+ else {
+ for (int i = 2;; i++) {
+ name = selectedComposite.getName() + DeployConstants.DepPlanPostfix + i;
+ if (depPlans.getMember(name) == null) {
+ break;
+ }
+ }
+
+ }
+ }
+ final String depPlanName = name;
+
+ CommandSupport.exec(Messages.CreateDepPlanHandler_CreateDP, event, new RunnableWithResult() {
+
+ @Override
+ public CommandResult run() {
+ Package cdp = depPlans.createNestedPackage(depPlanName);
+ Stereotype st = StereotypeUtil.apply(cdp, org.eclipse.papyrus.FCM.DeploymentPlan.class);
+ if (st == null) {
+ MessageDialog.openInformation(Display.getDefault().getActiveShell(),
+ Messages.CreateDepPlanHandler_CannotCreateDP,
+ Messages.CreateDepPlanHandler_StereoApplicationFailed);
+ return CommandResult.newErrorCommandResult(Messages.CreateDepPlanHandler_CannotCreateDP);
+ }
+ try {
+ InstanceSpecification newRootIS =
+ DepCreation.createDepPlan(cdp, selectedComposite, DeployConstants.MAIN_INSTANCE, true);
+ DepCreation.initAutoValues(newRootIS);
+ return CommandResult.newOKCommandResult();
+ }
+ catch (TransformationException e) {
+ MessageDialog.openInformation(Display.getDefault().getActiveShell(), Messages.CreateDepPlanHandler_CannotCreateDP,
+ e.getMessage());
+ return CommandResult.newErrorCommandResult(e.getMessage());
+ }
+ }
+ });
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/CreatePlatformHandler.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/CreatePlatformHandler.java
new file mode 100644
index 00000000000..22dc6281a47
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/CreatePlatformHandler.java
@@ -0,0 +1,94 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.ui.handlers;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.papyrus.qompass.designer.core.CommandSupport;
+import org.eclipse.papyrus.qompass.designer.core.Utils;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepCreation;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DeployConstants;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationRTException;
+import org.eclipse.papyrus.uml.diagram.common.handlers.CmdHandler;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Package;
+
+public class CreatePlatformHandler extends CmdHandler {
+
+ private Package platform;
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean isEnabled() {
+ updateSelectedEObject();
+ if (selectedEObject instanceof Class) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ if (!(selectedEObject instanceof Class)) {
+ return null;
+ }
+ final Class selectedComposite = (Class) selectedEObject;
+
+ CommandSupport.exec("Create platform model", event, new Runnable() { //$NON-NLS-1$
+
+ @Override
+ public void run() {
+ // execute with transaction support
+ platform = Utils.getRoot(selectedComposite, DeployConstants.depPlanFolderHw);
+ }
+ });
+
+ final String newPlatform = selectedComposite.getName() + DeployConstants.DepPlanPostfixHw;
+
+ try {
+ if (platform.getMember(newPlatform) != null) {
+ Shell shell = Display.getDefault().getActiveShell();
+ MessageDialog.openInformation(shell, "Error", //$NON-NLS-1$
+ "Platform definition \"" + newPlatform + "\" exists already"); //$NON-NLS-1$ //$NON-NLS-2$
+ } else {
+ CommandSupport.exec("Create platform definition", event, new Runnable() { //$NON-NLS-1$
+
+ @Override
+ public void run() {
+ Package platformPkg = platform.createNestedPackage(newPlatform);
+ try {
+ DepCreation.createPlatformInstances(platformPkg, selectedComposite, null);
+ }
+ catch (TransformationException e) {
+ throw new TransformationRTException(e.getMessage());
+ }
+ }
+ });
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/GenCollaborationUseHandler.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/GenCollaborationUseHandler.java
new file mode 100644
index 00000000000..614bc5b139e
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/GenCollaborationUseHandler.java
@@ -0,0 +1,38 @@
+package org.eclipse.papyrus.qompass.designer.ui.handlers;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.papyrus.FCM.Connector;
+import org.eclipse.papyrus.FCM.util.FCMUtil;
+import org.eclipse.papyrus.uml.diagram.common.handlers.CmdHandler;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * TODO: for testing, currently unused
+ */
+@Deprecated
+public class GenCollaborationUseHandler extends CmdHandler {
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ return null;
+ }
+
+ /**
+ * /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
+ */
+ public void run(IAction action) {
+ updateSelectedEObject();
+
+ org.eclipse.uml2.uml.Connector selectedConnector = (org.eclipse.uml2.uml.Connector) selectedEObject;
+ Connector fcmConn = UMLUtil.getStereotypeApplication(selectedConnector, Connector.class);
+ FCMUtil.generateCollaborationUse(fcmConn);
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/GenConnectionPatternHandler.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/GenConnectionPatternHandler.java
new file mode 100644
index 00000000000..5b56d15f739
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/GenConnectionPatternHandler.java
@@ -0,0 +1,49 @@
+package org.eclipse.papyrus.qompass.designer.ui.handlers;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.papyrus.FCM.InteractionComponent;
+import org.eclipse.papyrus.FCM.util.FCMUtil;
+import org.eclipse.papyrus.qompass.designer.core.Log;
+import org.eclipse.papyrus.uml.diagram.common.handlers.CmdHandler;
+import org.eclipse.ui.IViewPart;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * TODO: for testing, currently unused
+ */
+@Deprecated
+public class GenConnectionPatternHandler extends CmdHandler {
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ return null;
+ }
+
+ /**
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IViewActionDelegate#init(org.eclipse.ui.IViewPart)
+ */
+ public void init(IViewPart view) {
+ }
+
+ /**
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
+ */
+ public void run(IAction action) {
+ // only one model is selected
+ Class selectedClass = (Class) selectedEObject;
+ Log.log(IStatus.INFO, Log.DIALOGS, "GenConnectionPattern.run: " + selectedClass.getName());
+ InteractionComponent connType = UMLUtil.getStereotypeApplication(selectedClass, InteractionComponent.class);
+ FCMUtil.generateDefaultConnectionPattern(connType);
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/InstantiateDepPlanHandler.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/InstantiateDepPlanHandler.java
new file mode 100644
index 00000000000..0c16e370d42
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/InstantiateDepPlanHandler.java
@@ -0,0 +1,97 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.ui.handlers;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.papyrus.FCM.Configuration;
+import org.eclipse.papyrus.qompass.designer.core.ProjectManagement;
+import org.eclipse.papyrus.qompass.designer.core.transformations.InstantiateDepPlan;
+import org.eclipse.papyrus.qompass.designer.ui.dialogs.GenerationOptionsDialog;
+import org.eclipse.papyrus.uml.diagram.common.handlers.CmdHandler;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * handler for instantiating a deployment plan
+ */
+public class InstantiateDepPlanHandler extends CmdHandler {
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean isEnabled() {
+ updateSelectedEObject();
+ if ((selectedEObject instanceof Package) || (selectedEObject instanceof Class)) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ // only one model is selected
+ selectedCDP = null;
+ if ((selectedEObject instanceof Package) || (selectedEObject instanceof Class)) {
+ selectedCDP = (NamedElement) selectedEObject;
+ } else {
+ return null;
+ }
+ project = ProjectManagement.getCurrentProject();
+
+ GenerationOptionsDialog optionsDialog = new GenerationOptionsDialog(Display.getDefault().getActiveShell());
+ optionsDialog.open();
+ if (optionsDialog.getReturnCode() == IDialogConstants.OK_ID) {
+
+ final int genOptions = (Integer) optionsDialog.getResult()[0];
+ Job job = new Job("Create deployment model (OO)") {
+
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+ // execute the task ...
+ if (selectedCDP instanceof Package) {
+ new InstantiateDepPlan().instantiate((Package) selectedCDP, monitor, project, genOptions);
+ } else if (StereotypeUtil.isApplied(selectedCDP, Configuration.class)) {
+ Configuration configuration = UMLUtil.getStereotypeApplication(selectedCDP, Configuration.class);
+ new InstantiateDepPlan().instantiate(configuration, monitor, project, genOptions);
+ }
+ return Status.OK_STATUS;
+ }
+ };
+ job.setUser(true);
+ job.schedule();
+ }
+
+ return null;
+ }
+
+ private NamedElement selectedCDP;
+
+ private IProject project;
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/SelectConnectorHandler.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/SelectConnectorHandler.java
new file mode 100644
index 00000000000..0dc3eb1607f
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/SelectConnectorHandler.java
@@ -0,0 +1,88 @@
+/*******************************************************************************
+ * All rights reserved. This program and the accompanying materials
+ * are property of the CEA, their use is subject to specific agreement
+ * with the CEA.
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.ui.handlers;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.papyrus.FCM.InteractionComponent;
+import org.eclipse.papyrus.qompass.designer.core.CommandSupport;
+import org.eclipse.papyrus.qompass.designer.ui.dialogs.ConnectorSelectionDialog;
+import org.eclipse.papyrus.uml.diagram.common.handlers.CmdHandler;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Connector;
+import org.eclipse.uml2.uml.Feature;
+import org.eclipse.uml2.uml.Model;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * Implementation class for ClassAction action
+ */
+public class SelectConnectorHandler extends CmdHandler {
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean isEnabled() {
+ updateSelectedEObject();
+ if ((selectedEObject instanceof Connector) || (selectedEObject instanceof Property)) {
+ return true;
+ }
+ return false;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
+ */
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ // feature is a common superclass of Connector and Property
+ if (!(selectedEObject instanceof Feature)) {
+ return null;
+ }
+ // get selected connector
+ final Feature selectedFeature = (Feature) selectedEObject;
+ Shell shell = Display.getDefault().getActiveShell();
+
+ // 1. select possible connectors according to port types
+ // (only show compatible connectors check-box?)
+ // 2. select implementation group according to connector type
+
+ Model model = selectedFeature.getModel();
+
+ ConnectorSelectionDialog elementSelector =
+ new ConnectorSelectionDialog(shell, model, selectedFeature);
+ elementSelector.setTitle("Select connector");
+ elementSelector.setMessage("Select an implementation for connector " + selectedFeature.getName());
+ elementSelector.open();
+ if (elementSelector.getReturnCode() == IDialogConstants.OK_ID) {
+ final Object[] result = elementSelector.getResult();
+ if ((result.length == 1) && (result[0] instanceof Class)) {
+ CommandSupport.exec("Select connector", event, new Runnable() {
+
+ @Override
+ public void run() {
+ org.eclipse.papyrus.FCM.Connector fcmSelectedConnector = StereotypeUtil.applyApp(selectedFeature, org.eclipse.papyrus.FCM.Connector.class);
+ InteractionComponent newConnType = UMLUtil.getStereotypeApplication((Class) result[0], InteractionComponent.class);
+ fcmSelectedConnector.setIc(newConnType);
+ }
+ });
+ }
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/SelectContainerHandler.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/SelectContainerHandler.java
new file mode 100644
index 00000000000..dd7771eea86
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/SelectContainerHandler.java
@@ -0,0 +1,120 @@
+/*******************************************************************************
+ * All rights reserved. This program and the accompanying materials
+ * are property of the CEA, their use is subject to specific agreement
+ * with the CEA.
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.ui.handlers;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.papyrus.qompass.designer.core.CommandSupport;
+import org.eclipse.papyrus.qompass.designer.core.RunnableWithResult;
+import org.eclipse.papyrus.qompass.designer.ui.dialogs.ContainerDialog;
+import org.eclipse.papyrus.uml.diagram.common.handlers.CmdHandler;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Type;
+
+/**
+ * Call the dialogs for selecting a container rule
+ */
+public class SelectContainerHandler extends CmdHandler {
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean isEnabled() {
+ updateSelectedEObject();
+ if ((selectedEObject instanceof Class) ||
+ (selectedEObject instanceof InstanceSpecification)) {
+ return true;
+ }
+ if (selectedEObject instanceof Property) {
+ Type type = ((Property) selectedEObject).getType();
+ if (type instanceof Class) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
+ */
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ if (!(selectedEObject instanceof NamedElement)) {
+ return null;
+ }
+
+ NamedElement ne = (NamedElement) selectedEObject;
+ final Shell shell = Display.getDefault().getActiveShell();
+
+ if (ne instanceof Property) {
+ // treat property as the associated type
+ Type type = ((Property) ne).getType();
+ if (type instanceof Class) {
+ ne = type;
+ }
+ }
+ final NamedElement element = ne;
+
+ // 1. select possible connectors according to port types
+ // (only show compatible connectors check-box?)
+ // 2. select implementation group according to connector type
+
+ if (element instanceof Class) {
+ // container dialog: either extension, rule or interceptor
+ // howto select? which? (and howto add/remove?) - Std - dialog is good?
+ CommandSupport.exec("Select container", event, new RunnableWithResult() {
+
+ @Override
+ public CommandResult run() {
+ ContainerDialog elementSelector =
+ new ContainerDialog(shell, (Class) element);
+ elementSelector.setTitle("Select container rules for component " + element.getName());
+ elementSelector.open();
+ if (elementSelector.getReturnCode() == IDialogConstants.OK_ID) {
+ return CommandResult.newOKCommandResult();
+ }
+ else {
+ return CommandResult.newCancelledCommandResult();
+ }
+ }
+ });
+ } else if (element instanceof InstanceSpecification) {
+ /*
+ * ConnectorSelectionDialog elementSelector =
+ * new ConnectorSelectionDialog (shell, model, (InstanceSpecification) element);
+ * elementSelector.setTitle("Select connector");
+ * elementSelector.setMessage("Select an implementation for connector " + selectedConnector.getName ());
+ * elementSelector.open();
+ * if (elementSelector.getReturnCode () == IDialogConstants.OK_ID) {
+ * final Object[] result = elementSelector.getResult ();
+ * if ((result.length == 2) && (result[0] instanceof Class) && (result[1] instanceof Class)) {
+ * CommandSupport.exec ("Select connector", new Runnable () {
+ * public void run () {
+ * Object newConnType = StereotypeUtil.getApplication ((Class) result[0], ConnectorType.class);
+ * Object newConnImpl = StereotypeUtil.getApplication ((Class) result[1], ConnectorImpl.class);
+ * }
+ * });
+ * }
+ * }
+ */
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/SyncHandler.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/SyncHandler.java
new file mode 100644
index 00000000000..93708d5888e
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/SyncHandler.java
@@ -0,0 +1,147 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.ui.handlers;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.papyrus.FCM.DeploymentPlan;
+import org.eclipse.papyrus.qompass.designer.core.CommandSupport;
+import org.eclipse.papyrus.qompass.designer.core.RunnableWithResult;
+import org.eclipse.papyrus.qompass.designer.core.Utils;
+import org.eclipse.papyrus.qompass.designer.core.sync.CompImplSync;
+import org.eclipse.papyrus.qompass.designer.core.sync.DepPlanSync;
+import org.eclipse.papyrus.qompass.designer.core.sync.InterfaceSync;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationRTException;
+import org.eclipse.papyrus.uml.diagram.common.handlers.CmdHandler;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * Handler for synchronizing derived elements. Will do different
+ * things, depending on the currently selected object.
+ */
+public class SyncHandler extends CmdHandler {
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean isEnabled() {
+ updateSelectedEObject();
+ // if a property is selected, use the associated type
+ if (selectedEObject instanceof Property) {
+ selectedEObject = ((Property) selectedEObject).getType();
+ }
+
+ if (selectedEObject instanceof Interface) {
+ return true;
+ }
+ if (selectedEObject instanceof Class) {
+ if (Utils.isComponent((Class) selectedEObject)) {
+ return true;
+ }
+ }
+ else if (selectedEObject instanceof Package) {
+ if (StereotypeUtil.isApplied((Package) selectedEObject, DeploymentPlan.class)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ // if a property is selected, use the associated type
+ if (selectedEObject instanceof Property) {
+ selectedEObject = ((Property) selectedEObject).getType();
+ }
+
+ if (selectedEObject instanceof Interface) {
+ final Interface selectedIntf = (Interface) selectedEObject;
+ CommandSupport.exec("Synchronize interface", event, new Runnable() {
+
+ @Override
+ public void run() {
+ InterfaceSync.syncSignalReceptionSupport(selectedIntf);
+ }
+ });
+ }
+
+ else if (selectedEObject instanceof Class) {
+ final Class selectedClass = (Class) selectedEObject;
+ if (Utils.isCompImpl(selectedClass)) {
+ CommandSupport.exec("Synchronize component via implementation", event, new RunnableWithResult() {
+
+ @Override
+ public CommandResult run() {
+ CompImplSync.updatePorts(selectedClass);
+ try {
+ CompImplSync.syncRealizations(selectedClass);
+ }
+ catch (TransformationRTException e) {
+ MessageDialog.openWarning(Display.getDefault().getActiveShell(), "Problems during synchronization", e.getMessage());
+ return CommandResult.newErrorCommandResult(e.getMessage());
+ }
+
+ // CompImplSync.syncContextOps (selectedClass, true);
+ CompImplSync.interfaceModifications(selectedClass, null);
+ return CommandResult.newOKCommandResult();
+ }
+ });
+ } else if (Utils.isCompType(selectedClass)) {
+ CommandSupport.exec("Synchronize component via type", event, new Runnable() {
+
+ @Override
+ public void run() {
+ if (!CompImplSync.syncViaType(selectedClass, false)) {
+ MessageDialog.openWarning(Display.getDefault().getActiveShell(), "Warning: ineffective command",
+ "Synchronization applied on a component type (abstract class) will synchronize all implementations, i.e. non-abstract classes inheriting from it. However, the selected type has no implementations");
+ }
+ // CompImplSync.syncContextOps (selectedClass, true);
+ }
+ });
+ }
+ }
+ else if (selectedEObject instanceof Package) {
+ final Package selectedPkg = (Package) selectedEObject;
+ CommandSupport.exec("Synchronize deployment plan", event, new RunnableWithResult() {
+
+ @Override
+ public CommandResult run() {
+ try {
+ DepPlanSync.syncDepPlan(selectedPkg);
+ return CommandResult.newOKCommandResult();
+ }
+ catch (TransformationRTException e) {
+ Shell shell = Display.getDefault().getActiveShell();
+ MessageDialog.openError(shell, "Can not synchronize deployment plan", e.getMessage());
+ return CommandResult.newErrorCommandResult(e.getMessage());
+ }
+ }
+ });
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/TrafoAndCodegenHandler.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/TrafoAndCodegenHandler.java
new file mode 100644
index 00000000000..f129bdaa807
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/TrafoAndCodegenHandler.java
@@ -0,0 +1,58 @@
+package org.eclipse.papyrus.qompass.designer.ui.handlers;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.papyrus.qompass.designer.core.ProjectManagement;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TrafoAndCodegenPackage;
+import org.eclipse.papyrus.uml.diagram.common.handlers.CmdHandler;
+import org.eclipse.uml2.uml.Package;
+
+public class TrafoAndCodegenHandler extends CmdHandler {
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean isEnabled() {
+ updateSelectedEObject();
+ return (selectedEObject instanceof Package);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ // only one model is selected
+ selectedPkg = null;
+ if (selectedEObject instanceof Package) {
+ selectedPkg = (Package) selectedEObject;
+ } else {
+ return null;
+ }
+ project = ProjectManagement.getCurrentProject();
+
+ Job job = new Job("Execute transformations and generate code") {
+
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+ // execute the task ...
+ TrafoAndCodegenPackage.instantiate(selectedPkg, monitor, project);
+ monitor.done();
+ return Status.OK_STATUS;
+ }
+ };
+ job.setUser(true);
+ job.schedule();
+
+ return null;
+ }
+
+ protected Package selectedPkg;
+
+ protected IProject project;
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/messages.properties b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/messages.properties
new file mode 100644
index 00000000000..40a457cfc83
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/messages.properties
@@ -0,0 +1,27 @@
+ConfigurePortHandler_ConfigurePorts=Configure ports
+ConfigurePortHandler_ConfigurePortsOfComponent=Configure ports of component
+ConfigurePortHandler_ConfigureInstance=Configure instance
+
+ConfigurePortDialog_AvailPorts=Available Ports
+ConfigurePortDialog_PortConfig=Port configuration
+ConfigurePortDialog_NotAvail=not available
+ConfigurePortDialog_Kind=Kind
+ConfigurePortDialog_None=none
+ConfigurePortDialog_Type=Type
+ConfigurePortDialog_ChangeType=change type
+ConfigurePortDialog_IntfDerived=Interfaces derived from kind and type
+ConfigurePortDialog_Provided=Provided
+ConfigurePortDialog_Required=Required
+ConfigurePortDialog_Undef=undefined
+
+CreateDepPlanHandler_CreateDPs=Create deployment plans
+CreateDepPlanHandler_Sync=Synchronize
+CreateDepPlanHandler_CreateNew=create new (auto number name)
+CreateDepPlanHandler_WhatShouldIDo=What should I do?
+CreateDepPlanHandler_DPwithNameExistsAlready=Deployment plan with name %s exists already. You can always synchronize an existing deployment plan via the context menu "Synchronize derived elements"
+CreateDepPlanHandler_DPwithNameExistsNoPackage=Element with name %s exists, but is not a package
+CreateDepPlanHandler_CannotSync=Cannot synchronize
+CreateDepPlanHandler_Cancel=Cancel
+CreateDepPlanHandler_CreateDP=Create deployment plan
+CreateDepPlanHandler_CannotCreateDP=Cannot create deployment plan
+CreateDepPlanHandler_StereoApplicationFailed=Application of stereotype "FCM::DeploymentPlan" failed. Check, if FCM profile is applied
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/preferences/QompassPreferenceInitializer.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/preferences/QompassPreferenceInitializer.java
new file mode 100644
index 00000000000..f28c634a309
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/preferences/QompassPreferenceInitializer.java
@@ -0,0 +1,39 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.qompass.designer.ui.preferences;
+
+import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.papyrus.qompass.designer.core.preferences.QompassPreferenceConstants;
+
+/**
+ * Class used to initialize default preference values.
+ */
+public class QompassPreferenceInitializer extends AbstractPreferenceInitializer {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
+ */
+ @Override
+ public void initializeDefaultPreferences() {
+ IPreferenceStore store = org.eclipse.papyrus.qompass.designer.core.Activator.getDefault().getPreferenceStore();
+ store.setDefault(QompassPreferenceConstants.P_SHOW_PROV_REQ_AS_PORT_ICONS, false);
+ store.setDefault(QompassPreferenceConstants.P_ALL_ATTRIBUTES_ARE_CONFIG_ATTRIBUTES, false);
+ store.setDefault(QompassPreferenceConstants.P_TREAT_NONE_AS_COMPOSITE, false);
+ store.setDefault(QompassPreferenceConstants.P_CODE_GEN_PREFIX, "// generated with Qompass toolchain");
+ }
+
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/preferences/QompassPreferencePage.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/preferences/QompassPreferencePage.java
new file mode 100644
index 00000000000..c5552e6020b
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/preferences/QompassPreferencePage.java
@@ -0,0 +1,76 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.qompass.designer.ui.preferences;
+
+import org.eclipse.jface.preference.BooleanFieldEditor;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.jface.preference.StringFieldEditor;
+import org.eclipse.papyrus.qompass.designer.core.Activator;
+import org.eclipse.papyrus.qompass.designer.core.preferences.QompassPreferenceConstants;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+
+/**
+ * This class represents the EC3M preference page
+ * <p>
+ * This page is used to modify preferences only. They are stored in the preference store that belongs to the main plug-in class. That way, preferences can be accessed directly via the preference store.
+ */
+
+public class QompassPreferencePage
+ extends FieldEditorPreferencePage
+ implements IWorkbenchPreferencePage {
+
+ public QompassPreferencePage() {
+ super(GRID);
+ setPreferenceStore(Activator.getDefault().getPreferenceStore());
+ setDescription("Qompass options");
+ }
+
+ /**
+ * Creates the field editors. Field editors are abstractions of
+ * the common GUI blocks needed to manipulate various types
+ * of preferences. Each field editor knows how to save and
+ * restore itself.
+ */
+ @Override
+ public void createFieldEditors() {
+ addField(new BooleanFieldEditor(
+ QompassPreferenceConstants.P_SHOW_PROV_REQ_AS_PORT_ICONS,
+ "&Show icons associated with derived provided/required interfaces instead of kind",
+ getFieldEditorParent()));
+
+ addField(new BooleanFieldEditor(
+ QompassPreferenceConstants.P_TREAT_NONE_AS_COMPOSITE,
+ "Treat aggregation kind \"&None\" as \"Composite\"",
+ getFieldEditorParent()));
+
+ addField(new BooleanFieldEditor(
+ QompassPreferenceConstants.P_ALL_ATTRIBUTES_ARE_CONFIG_ATTRIBUTES,
+ "Treat all attributes as configuration attributes (if false, only attributes of abstract classes and attributes explicitly tagged as FCM::ConfigurationProperty will be considered as configuration attribute",
+ getFieldEditorParent()));
+
+ addField(new StringFieldEditor(
+ QompassPreferenceConstants.P_CODE_GEN_PREFIX,
+ "Code generation prefix: ", getFieldEditorParent()));
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+ */
+ @Override
+ public void init(IWorkbench workbench) {
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/.classpath b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/.classpath
new file mode 100644
index 00000000000..ad32c83a788
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/.project b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/.project
new file mode 100644
index 00000000000..896877fb61f
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.qompass.designer.validation</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/META-INF/MANIFEST.MF b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..d110843ec77
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.uml2.uml;bundle-version="3.0.1",
+ org.eclipse.emf.validation;bundle-version="1.3.0",
+ org.eclipse.papyrus.qompass.designer.core;bundle-version="1.2.0",
+ org.eclipse.papyrus.fcm.profile;bundle-version="1.2.0",
+ org.eclipse.ui,
+ org.eclipse.papyrus.uml.tools.utils;bundle-version="1.2.0"
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-Version: 1.2.0.qualifier
+Bundle-Localization: plugin
+Bundle-Name: %pluginName
+Bundle-Activator: org.eclipse.papyrus.qompass.designer.validation.Activator
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.qompass.designer.validation;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/about.html b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/about.html
new file mode 100644
index 00000000000..209103075a7
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>November 14, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/build.properties b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/build.properties
new file mode 100644
index 00000000000..1d9f30169a4
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/build.properties
@@ -0,0 +1,11 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ .classpath,\
+ .project,\
+ about.html,\
+ icons/,\
+ plugin.properties
+src.includes = about.html
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/icons/validate.gif b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/icons/validate.gif
new file mode 100644
index 00000000000..6efaebec95b
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/icons/validate.gif
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/plugin.properties b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/plugin.properties
new file mode 100644
index 00000000000..348b2b9b363
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/plugin.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2013 CEA LIST.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# CEA LIST - initial API and implementation
+###############################################################################
+pluginName=Papyrus extra: Qompass designer validation rules (Incubation)
+providerName=Eclipse Modeling Project
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/plugin.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/plugin.xml
new file mode 100644
index 00000000000..96f6b43d98c
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/plugin.xml
@@ -0,0 +1,290 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+ <extension
+ point="org.eclipse.emf.validation.constraintProviders">
+ <category
+ id="org.eclipse.papyrus.qompass.designer.validation.constraints"
+ name="Qompass rules">
+ </category>
+ <constraintProvider
+ mode="Batch">
+ <package
+ namespaceUri="http://www.eclipse.org/uml2/3.0.0/UML">
+ </package>
+ <package
+ namespaceUri="http://www.eclipse.org/uml2/5.0.0/UML">
+ </package>
+ <constraints
+ categories="org.eclipse.papyrus.qompass.designer.validation.constraints">
+ <constraint
+ class="org.eclipse.papyrus.qompass.designer.validation.constraints.SystemHasNoPorts"
+ id="org.eclipse.papyrus.qompass.designer.validation.constraints.SystemHasNoPorts_ID"
+ lang="Java"
+ mode="Batch"
+ name="org.eclipse.papyrus.qompass.designer.validation.constraints.SystemHasNoPorts"
+ severity="ERROR"
+ statusCode="1">
+ <message>
+ &quot;Qompass: {0}&quot;
+ </message>
+ <description>
+ The system component (main instance within deployment plan) may not have ports.
+ </description>
+ <target
+ class="Package">
+ </target>
+ </constraint>
+ <constraint
+ class="org.eclipse.papyrus.qompass.designer.validation.constraints.InstanceSpecificationSlotForAllProperties"
+ id="org.eclipse.papyrus.qompass.designer.validation.constraints.InstanceSpecificationSlotForAllProperties_ID"
+ lang="Java"
+ mode="Batch"
+ name="org.eclipse.papyrus.qompass.designer.validation.constraints.InstanceSpecificationSlotForAllProperties"
+ severity="WARNING"
+ statusCode="1">
+ <message>
+ &quot;Qompass: {0}&quot;
+ </message>
+ <description>
+ Is there a slot for all properties of a component within an instance specification?
+ </description>
+ <target
+ class="InstanceSpecification">
+ </target>
+ </constraint>
+ <constraint
+ class="org.eclipse.papyrus.qompass.designer.validation.constraints.ConnectorCallMultiplicity"
+ id="org.eclipse.papyrus.qompass.designer.validation.constraints.ConnectorCallMultiplicity_ID"
+ lang="Java"
+ mode="Batch"
+ name="org.eclipse.papyrus.qompass.designer.validation.constraints.ConnectorCallMultiplicity"
+ severity="WARNING"
+ statusCode="1">
+ <message>
+ &quot;Qompass: {0}&quot;
+ </message>
+ <description>
+ Verify that a connection does not originate from a caller with to a server with the server multiplicity > 1
+ </description>
+ <target
+ class="Property">
+ </target>
+ </constraint>
+ <constraint
+ class="org.eclipse.papyrus.qompass.designer.validation.constraints.InitialEntryPoints"
+ id="org.eclipse.papyrus.qompass.designer.validation.constraints.InitialEntryPoints_ID"
+ lang="Java"
+ mode="Batch"
+ name="org.eclipse.papyrus.qompass.designer.validation.constraints.InitialEntryPoints"
+ severity="WARNING"
+ statusCode="1">
+ <message>
+ &quot;Qompass: {0}&quot;
+ </message>
+ <description>
+ Verify that at exactly one blocking start routine is defined.
+ </description>
+ <target
+ class="Package">
+ </target>
+ </constraint>
+ <constraint
+ class="org.eclipse.papyrus.qompass.designer.validation.constraints.UnconnectedProvPorts"
+ id="org.eclipse.papyrus.qompass.designer.validation.constraints.UnconnectedProvPorts_ID"
+ isEnabledByDefault="false"
+ lang="Java"
+ mode="Batch"
+ name="org.eclipse.papyrus.qompass.designer.validation.constraints.UnconnectedProvPorts"
+ severity="INFO"
+ statusCode="1">
+ <message>
+ &quot;Qompass: {0}&quot;
+ </message>
+ <description>
+ Check whether a provided port is not connected. Typically, this is not problematic. Therefore, the rule is disabled by default.
+ </description>
+ <target
+ class="Property">
+ </target>
+ </constraint>
+ <constraint
+ class="org.eclipse.papyrus.qompass.designer.validation.constraints.UnconnectedReqPorts"
+ id="org.eclipse.papyrus.qompass.designer.validation.constraints.UnconnectedReqPorts_ID"
+ lang="Java"
+ mode="Batch"
+ name="org.eclipse.papyrus.qompass.designer.validation.constraints.UnconnectedReqPorts"
+ severity="INFO"
+ statusCode="1">
+ <message>
+ &quot;Qompass: {0}&quot;
+ </message>
+ <description>
+ Check whether a required port is not connected. This would result in an error, if the component owning the port tries to invoke a service through that port.
+ </description>
+ <target
+ class="Property">
+ </target>
+ </constraint>
+ <constraint
+ class="org.eclipse.papyrus.qompass.designer.validation.constraints.OperationsAreImplemented"
+ id="org.eclipse.papyrus.qompass.designer.validation.constraints.OperationsAreImplemented_ID"
+ lang="Java"
+ mode="Batch"
+ name="org.eclipse.papyrus.qompass.designer.validation.constraints.OperationsAreImplemented"
+ severity="WARNING"
+ statusCode="1">
+ <message>
+ &quot;Qompass: {0}&quot;
+ </message>
+ <description>
+ Operation is not implemented
+ </description>
+ <target
+ class="Operation">
+ </target>
+ </constraint>
+ <constraint
+ class="org.eclipse.papyrus.qompass.designer.validation.constraints.PortIsCorrectlyTyped"
+ id="org.eclipse.papyrus.qompass.designer.validation.constraints.PortIsCorrectlyTyped_ID"
+ lang="Java"
+ mode="Batch"
+ name="org.eclipse.papyrus.qompass.designer.validation.constraints.PortIsCorrectlyTyped"
+ severity="ERROR"
+ statusCode="1">
+ <message>
+ &quot;Qompass: {0}&quot;
+ </message>
+ <description>
+ Port is not correctly typed
+ </description>
+ <target
+ class="Port">
+ </target>
+ </constraint>
+ <constraint
+ class="org.eclipse.papyrus.qompass.designer.validation.constraints.BehaviorsWithoutSpecification"
+ id="org.eclipse.papyrus.qompass.designer.validation.constraints.BehaviorsWithoutSpecification_ID"
+ lang="Java"
+ mode="Batch"
+ name="org.eclipse.papyrus.qompass.designer.validation.constraints.BehaviorsWithoutSpecification"
+ severity="WARNING"
+ statusCode="1">
+ <message>
+ &quot;Qompass: {0}&quot;
+ </message>
+ <description>
+ Behavior without specification
+ </description>
+ <target
+ class="OpaqueBehavior">
+ </target>
+ </constraint>
+ <constraint
+ class="org.eclipse.papyrus.qompass.designer.validation.constraints.ConnectorConnectable"
+ id="org.eclipse.papyrus.qompass.designer.validation.constraints.ConnectorConnectable_ID"
+ lang="Java"
+ mode="Batch"
+ name="org.eclipse.papyrus.qompass.designer.validation.constraints.ConnectorConnectable"
+ severity="WARNING"
+ statusCode="1">
+ <message>
+ &quot;Qompass: {0}&quot;
+ </message>
+ <description>
+ Verify that a connector can be instantiated, i.e. a consistent connector binding can be found.
+ </description>
+ <target
+ class="Connector">
+ </target>
+ </constraint>
+ <constraint
+ class="org.eclipse.papyrus.qompass.designer.validation.constraints.AggregationKindValid"
+ id="org.eclipse.papyrus.qompass.designer.validation.constraints.AggregationKindValid_ID"
+ lang="Java"
+ mode="Batch"
+ name="org.eclipse.papyrus.qompass.designer.validation.constraints.AggregationKindValid"
+ severity="WARNING"
+ statusCode="1">
+ <message>
+ &quot;Qompass: {0}&quot;
+ </message>
+ <description>
+ Check whether aggregation kind is consistent with singleton information
+ </description>
+ <target
+ class="Property">
+ </target>
+ </constraint>
+ <constraint
+ class="org.eclipse.papyrus.qompass.designer.validation.constraints.ConfigurationAttributeNotSet"
+ id="org.eclipse.papyrus.qompass.designer.validation.constraints.ConfigurationAttributeNotSet_ID"
+ lang="Java"
+ mode="Batch"
+ name="org.eclipse.papyrus.qompass.designer.validation.constraints.ConfigurationAttributeNotSet"
+ severity="WARNING"
+ statusCode="1">
+ <message>
+ "Qompass: {0}"
+ </message>
+ <description>
+ Check whether configuration attributes have a value in the deployment plans
+ </description>
+ <target
+ class="Slot">
+ </target>
+ </constraint>
+ <constraint
+ class="org.eclipse.papyrus.qompass.designer.validation.constraints.OperationsWithTwoReturnValues"
+ id="org.eclipse.papyrus.qompass.designer.validation.constraints.OperationsWithTwoReturnValues_ID"
+ lang="Java"
+ mode="Batch"
+ name="org.eclipse.papyrus.qompass.designer.validation.constraints.OperationsWithTwoReturnValues"
+ severity="ERROR"
+ statusCode="1">
+ <message>
+ "Qompass: {0}"
+ </message>
+ <description>
+ Check whether an operation contains more than one return parameter
+ </description>
+ <target
+ class="Operation">
+ </target>
+ </constraint>
+ <constraint
+ class="org.eclipse.papyrus.qompass.designer.validation.constraints.TemplateRefWithoutBinding"
+ id="org.eclipse.papyrus.qompass.designer.validation.constraints.TemplateRefWithoutBinding_ID"
+ lang="Java"
+ mode="Batch"
+ name="org.eclipse.papyrus.qompass.designer.validation.constraints.TemplateRefWithoutBinding"
+ severity="ERROR"
+ statusCode="1">
+ <message>
+ "Qompass: {0}"
+ </message>
+ <description>
+ Check whether a template parameter is referenced out of scope
+ </description>
+ <target
+ class="TypedElement">
+ </target>
+ </constraint>
+ </constraints>
+ </constraintProvider>
+ </extension>
+ <extension
+ point="org.eclipse.emf.validation.constraintBindings">
+ <clientContext
+ default="false"
+ id="org.eclipse.papyrus.qompass.designer.validation.context">
+ <selector class="org.eclipse.papyrus.qompass.designer.validation.ValidationDelegateClientSelector"/>
+ </clientContext>
+ <binding
+ context="org.eclipse.papyrus.qompass.designer.validation.context">
+ <category
+ ref="org.eclipse.papyrus.qompass.designer.validation.constraints">
+ </category>
+ </binding>
+ </extension>
+</plugin>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/pom.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/pom.xml
new file mode 100644
index 00000000000..e98e82171b2
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.qompass.designer.validation</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/Activator.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/Activator.java
new file mode 100644
index 00000000000..00051315823
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/Activator.java
@@ -0,0 +1,54 @@
+package org.eclipse.papyrus.qompass.designer.validation;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.qompass.designer.validation";
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/ValidationDelegateClientSelector.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/ValidationDelegateClientSelector.java
new file mode 100644
index 00000000000..2bea425443b
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/ValidationDelegateClientSelector.java
@@ -0,0 +1,25 @@
+package org.eclipse.papyrus.qompass.designer.validation;
+
+import org.eclipse.emf.validation.model.IClientSelector;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.PackageImport;
+
+public class ValidationDelegateClientSelector implements IClientSelector {
+
+ /**
+ * Queries whether to select the specified object, which indicates that it
+ * belongs to this client context.
+ *
+ * @param object
+ * a model element of some kind
+ * @return <code>true</code> if the <code>object</code> matches my client
+ * context; <code>false</code>, otherwise
+ */
+ @Override
+ public boolean selects(Object object) {
+ if (object instanceof PackageImport) {
+ // return false;
+ }
+ return (object instanceof Element);
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/AggregationKindValid.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/AggregationKindValid.java
new file mode 100644
index 00000000000..60364005ae4
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/AggregationKindValid.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2008-2010 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are property of the CEA, their use is subject to specific agreement
+ * with the CEA.
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.papyrus.qompass.designer.validation.constraints;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.validation.AbstractModelConstraint;
+import org.eclipse.emf.validation.IValidationContext;
+import org.eclipse.papyrus.FCM.ConfigurationProperty;
+import org.eclipse.papyrus.qompass.designer.core.Utils;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.uml2.uml.AggregationKind;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Type;
+
+/**
+ * Verify that aggregation kinds are used well. General rule:
+ * attributes of a components should have aggregation kind "composite" unless
+ * (1) the are singletons (implementation property), i.e. there is exactly one instance.
+ *
+ * (2) they are *shared*. In this case an enclosing component has to define a property of same type
+ * and name (open if "same name" restriction is kept, since it implies an implicit relationship
+ * that would break after name changes. But it allows for having multiple shared properties of same type)
+ * [it does not make a difference, whether "aggregation" or "none" is used as aggregation kind]
+ * Alternative? give user a fine control in the instantiation model? Fractal: no need for a single
+ * composed property?
+ *
+ * Rule has been made specific to Qompass, since we verify that configurationProperty is applicable (implying that the
+ * FCM profile is applied)
+ *
+ * @author ansgar
+ *
+ */
+public class AggregationKindValid extends AbstractModelConstraint {
+
+ @Override
+ public IStatus validate(IValidationContext ctx)
+ {
+ Property attribute = (Property) ctx.getTarget();
+ Type type = attribute.getType();
+ if (type instanceof Class) {
+ AggregationKind aggKind = attribute.getAggregation();
+ if (aggKind != AggregationKind.COMPOSITE_LITERAL) {
+ if (StereotypeUtil.isApplicable(attribute, ConfigurationProperty.class) && !Utils.isSingleton((Class) type)) {
+ // no composition, but not singleton: warn user to make up a proper deployment plan
+ // validation has been made Qompass specific by checking whether the Configuration attribute is applicable
+
+ // first check, if the attribute is referenced by an instance specification (via
+ // the defining feature attribute). Otherwise, do not continue, since the warnings might lead to false
+ // alerts
+ return ctx.createFailureStatus("The attribute '" + attribute.getName() + "' has a non-composition aggregation kind, but the referenced type ('" +
+ type.getName() + "') is not a singleton. The associated instance specifications have to be set-up manually");
+ }
+ }
+ }
+ return ctx.createSuccessStatus();
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/BehaviorsWithoutSpecification.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/BehaviorsWithoutSpecification.java
new file mode 100644
index 00000000000..87d2b7457f6
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/BehaviorsWithoutSpecification.java
@@ -0,0 +1,65 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.validation.constraints;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.validation.AbstractModelConstraint;
+import org.eclipse.emf.validation.IValidationContext;
+import org.eclipse.papyrus.FCM.DerivedElement;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.OpaqueBehavior;
+
+/**
+ * Check whether all behaviors have a specification. This happens for instance, if the user
+ * deletes a specification and "forgets" to delete the associated behavior.
+ *
+ * @author ansgar
+ *
+ */
+public class BehaviorsWithoutSpecification extends AbstractModelConstraint {
+
+ @Override
+ public IStatus validate(IValidationContext ctx) {
+
+ OpaqueBehavior behavior = (OpaqueBehavior) ctx.getTarget();
+
+ if (behavior.getSpecification() == null) {
+ Element class_ = behavior.getOwner();
+ if (StereotypeUtil.isApplicable(class_, DerivedElement.class)) {
+ // check whether DerivedElement is applicable => indirect check whether FCM is applied (make rule specific to Qompass)
+ // TODO alternative? check whether behavior is referenced from either an activity, since that is possible in general?
+ /*
+ * boolean hasRef = false;
+ * for (Setting setting : UML2Util.getNonNavigableInverseReferences(behavior)) {
+ * if (setting.getEObject() ...
+ * hasRefFromIS = true;
+ * break;
+ * }
+ * }
+ */
+ if (class_ instanceof NamedElement) {
+ return ctx.createFailureStatus("The behavior '" + behavior.getName() + "' of '" +
+ ((NamedElement) class_).getQualifiedName() + "' has no specification");
+ }
+ else {
+ return ctx.createFailureStatus("The behavior '" + behavior.getName() + "' has no specification");
+ }
+ }
+ }
+ return ctx.createSuccessStatus();
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/ConfigurationAttributeNotSet.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/ConfigurationAttributeNotSet.java
new file mode 100644
index 00000000000..87c6f1cb141
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/ConfigurationAttributeNotSet.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2008-2010 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are property of the CEA, their use is subject to specific agreement
+ * with the CEA.
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.papyrus.qompass.designer.validation.constraints;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.validation.AbstractModelConstraint;
+import org.eclipse.emf.validation.IValidationContext;
+import org.eclipse.papyrus.FCM.ConfigurationProperty;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.uml2.uml.Slot;
+import org.eclipse.uml2.uml.StructuralFeature;
+
+/**
+ * Verify if all configuration attribute have a (user-provided) value.
+ *
+ * @author ansgar
+ *
+ * TODO: implementation assumes that at least the slot exists
+ */
+public class ConfigurationAttributeNotSet extends AbstractModelConstraint {
+
+ @Override
+ public IStatus validate(IValidationContext ctx)
+ {
+ Slot slot = (Slot) ctx.getTarget();
+ StructuralFeature feature = slot.getDefiningFeature();
+ if ((feature != null) && (StereotypeUtil.isApplied(feature, ConfigurationProperty.class))) {
+ if (slot.getValues().size() == 0) {
+ return ctx.createFailureStatus("The attribute '" + feature.getName() + "' is tagged as a configuration property, but the associated slot has no value.");
+ }
+ }
+ return ctx.createSuccessStatus();
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/ConnectorCallMultiplicity.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/ConnectorCallMultiplicity.java
new file mode 100644
index 00000000000..104f433063d
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/ConnectorCallMultiplicity.java
@@ -0,0 +1,82 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.validation.constraints;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.validation.AbstractModelConstraint;
+import org.eclipse.emf.validation.IValidationContext;
+import org.eclipse.papyrus.FCM.DerivedElement;
+import org.eclipse.papyrus.uml.tools.utils.ConnectorUtil;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Connector;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * Check whether the multiplicity of the ports (of a part) are consistent with the defined connectors, in particular whether a
+ * port with a required interface is not connected with more connectors than its own multiplicity
+ *
+ * @author ansgar
+ *
+ * TODO: does not find violation on composite side (partWithPort = null), simplify? (loop over connectors)
+ */
+public class ConnectorCallMultiplicity extends AbstractModelConstraint
+{
+ @Override
+ public IStatus validate(IValidationContext ctx)
+ {
+ String portsStr = ""; //$NON-NLS-1$
+
+ Property part = (Property) ctx.getTarget();
+ if (!StereotypeUtil.isApplicable(part, DerivedElement.class)) {
+ // make rule Qompass specific: only perform check, if the FCM profile is applied (checked via applicability
+ // the DerviedElement stereotype)
+ return ctx.createSuccessStatus();
+ }
+ Class owner = part.getClass_();
+ if (owner != null) {
+ if (part.getType() instanceof Class) {
+ Class class_ = (Class) part.getType();
+ for (Port port : class_.getOwnedPorts()) {
+ if (port.getRequireds().size() > 0) {
+ int connections = 0;
+ for (Connector connector : owner.getOwnedConnectors()) {
+ if (ConnectorUtil.connectsPort(connector, port)) {
+ connections++;
+ break;
+ }
+ }
+ if (connections > port.getUpper()) {
+ if (portsStr.length() != 0) {
+ portsStr += ", "; //$NON-NLS-1$
+ }
+ portsStr += port.getName();
+ }
+ }
+ }
+ }
+ }
+ if (portsStr.length() > 0) {
+ return ctx.createFailureStatus(String.format(
+ "The port(s) %s with a required interface of part %s have more connections than their multiplicty within composite %s",
+ portsStr, part.getName(), owner.getQualifiedName()));
+
+ }
+ else {
+ return ctx.createSuccessStatus();
+ }
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/ConnectorConnectable.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/ConnectorConnectable.java
new file mode 100644
index 00000000000..922347bee07
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/ConnectorConnectable.java
@@ -0,0 +1,56 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.validation.constraints;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.validation.AbstractModelConstraint;
+import org.eclipse.emf.validation.IValidationContext;
+import org.eclipse.papyrus.FCM.InteractionComponent;
+import org.eclipse.papyrus.qompass.designer.core.templates.ConnectorBinding;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Connector;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * Check whether a connector is connectable, i.e. whether the ports of application parts match with those
+ * of the connector types that are chosen.
+ *
+ * @author ansgar
+ *
+ */
+public class ConnectorConnectable extends AbstractModelConstraint
+{
+
+ @Override
+ public IStatus validate(IValidationContext ctx)
+ {
+ Connector connector = (Connector) ctx.getTarget();
+ Class class_ = (Class) connector.getOwner();
+
+ org.eclipse.papyrus.FCM.Connector fcmConnector = UMLUtil.getStereotypeApplication(connector, org.eclipse.papyrus.FCM.Connector.class);
+ if (fcmConnector != null) {
+ InteractionComponent connectorComp = fcmConnector.getIc();
+ if (connectorComp != null) {
+ try {
+ ConnectorBinding.obtainBinding(class_, connector, connectorComp.getBase_Class(), false);
+ } catch (TransformationException e) {
+ return ctx.createFailureStatus("The connector '" + connector.getName() + "' within composite '" + class_.getName() + "' cannot be instantiated: " + e.getMessage());
+ }
+ }
+ }
+ return ctx.createSuccessStatus();
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/DuplicateOperation.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/DuplicateOperation.java
new file mode 100644
index 00000000000..5989e9ce81f
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/DuplicateOperation.java
@@ -0,0 +1,27 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.validation.constraints;
+
+/**
+ * Check whether two operations have the same name *and* have indistinguishable parameter lists
+ *
+ * While UML demands that all members of a name-space have a unique name, this is more strict than
+ * the requirements of programming languages. Many OO languages allow for identical operation names
+ * if the operation can be uniquely identified via the type and number of parameters.
+ *
+ */
+public class DuplicateOperation {
+
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/ExecutorIsNotUsedAsPartName.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/ExecutorIsNotUsedAsPartName.java
new file mode 100644
index 00000000000..a9fe37c6179
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/ExecutorIsNotUsedAsPartName.java
@@ -0,0 +1,48 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.validation.constraints;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.validation.AbstractModelConstraint;
+import org.eclipse.emf.validation.IValidationContext;
+import org.eclipse.papyrus.FCM.RuleApplication;
+import org.eclipse.papyrus.qompass.designer.core.transformations.container.ContainerTrafo;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * Check whether an attribute used the name that is reserved for executors within a container
+ *
+ *
+ */
+public class ExecutorIsNotUsedAsPartName extends AbstractModelConstraint
+{
+ @Override
+ public IStatus validate(IValidationContext ctx) {
+
+ Class class_ = (Class) ctx.getTarget();
+
+ if (StereotypeUtil.isApplied(class_, RuleApplication.class)) {
+ // limit check to classes applying a container rule.
+ for (Property attribute : class_.getOwnedAttributes()) {
+ if (attribute.getName().equals(ContainerTrafo.executorPartName)) {
+ return ctx.createFailureStatus("A property may not use the reserved name \"_executor\"");
+ }
+ }
+ }
+ return ctx.createSuccessStatus();
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/InitialEntryPoints.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/InitialEntryPoints.java
new file mode 100644
index 00000000000..ab3bca9e717
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/InitialEntryPoints.java
@@ -0,0 +1,79 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.validation.constraints;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.validation.AbstractModelConstraint;
+import org.eclipse.emf.validation.IValidationContext;
+import org.eclipse.papyrus.FCM.DeploymentPlan;
+import org.eclipse.papyrus.qompass.designer.core.deployment.BootLoaderGen;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepUtils;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * Verify that at exactly one blocking start routine is defined.
+ *
+ * @author ansgar
+ *
+ */
+public class InitialEntryPoints extends AbstractModelConstraint {
+
+ @Override
+ public IStatus validate(IValidationContext ctx)
+ {
+ Package pkg = (Package) ctx.getTarget();
+
+ DeploymentPlan cdp = UMLUtil.getStereotypeApplication(pkg, DeploymentPlan.class);
+ if (cdp != null) {
+ InstanceSpecification initIS = cdp.getMainInstance();
+ if (initIS != null) {
+ entryPoints = new BasicEList<String>();
+ validate(initIS);
+ if (entryPoints.size() > 1) {
+ String msg = ""; //$NON-NLS-1$
+ for (String entryPoint : entryPoints) {
+ if (msg.length() > 0) {
+ msg += ", "; //$NON-NLS-1$
+ }
+ msg += entryPoint;
+ }
+ return ctx.createFailureStatus(String.format("The deployment plan '%s' contains more than one start entry point: %s", pkg.getName(), msg)); //$NON-NLS-1$
+ }
+ }
+ }
+ return ctx.createSuccessStatus();
+ }
+
+ public void validate(InstanceSpecification is) {
+ Classifier cl = DepUtils.getClassifier(is);
+ if (cl instanceof Class) {
+ Class implementation = (Class) cl;
+ if (BootLoaderGen.hasUnconnectedStartRoutine(null, implementation, null)) {
+ entryPoints.add(implementation.getName());
+ }
+ }
+ for (InstanceSpecification subIS : DepUtils.getContainedInstances(is)) {
+ validate(subIS);
+ }
+ }
+
+ private EList<String> entryPoints;
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/InstanceSpecificationSlotForAllProperties.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/InstanceSpecificationSlotForAllProperties.java
new file mode 100644
index 00000000000..a3552545253
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/InstanceSpecificationSlotForAllProperties.java
@@ -0,0 +1,63 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.validation.constraints;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.validation.AbstractModelConstraint;
+import org.eclipse.emf.validation.IValidationContext;
+import org.eclipse.papyrus.FCM.ConfigurationProperty;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Slot;
+
+/**
+ * check whether an instance specification for a classifier defines slots for
+ * each configuration attribute. This rule is specific to Qompass, since only
+ * attributes with the ConfigurationProperty stereotypes are checked.
+ */
+public class InstanceSpecificationSlotForAllProperties extends AbstractModelConstraint {
+
+ @Override
+ public IStatus validate(IValidationContext ctx)
+ {
+ InstanceSpecification is = (InstanceSpecification) ctx.getTarget();
+
+ if (is.getClassifiers().size() > 0) {
+ Classifier cl = is.getClassifiers().get(0);
+ if (cl instanceof Class) {
+ Class class_ = (Class) cl;
+
+ for (Property attribute : class_.getOwnedAttributes()) {
+ boolean foundAttribute = false;
+ if (StereotypeUtil.isApplied(attribute, ConfigurationProperty.class)) {
+ for (Slot slot : is.getSlots()) {
+ if (slot.getDefiningFeature() == attribute) {
+ foundAttribute = true;
+ break;
+ }
+ }
+ if (foundAttribute == false) {
+ return ctx.createFailureStatus("The instance specification '" + is.getName() + "' has no slot for property '" + attribute.getName() + "'");
+ }
+ }
+ }
+ }
+ }
+ return ctx.createSuccessStatus();
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/OperationsAreImplemented.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/OperationsAreImplemented.java
new file mode 100644
index 00000000000..5c14d09c256
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/OperationsAreImplemented.java
@@ -0,0 +1,47 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.validation.constraints;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.validation.AbstractModelConstraint;
+import org.eclipse.emf.validation.IValidationContext;
+import org.eclipse.papyrus.FCM.DerivedElement;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Operation;
+
+/**
+ * Check whether a non abstract operation has an implementation.
+ * Whereas this rule would make sense in general, it has been made specific to
+ * Qompass by verifying whether FCM is applied (check if DerivedElement stereotype
+ * is applicable)
+ */
+public class OperationsAreImplemented extends AbstractModelConstraint
+{
+ @Override
+ public IStatus validate(IValidationContext ctx) {
+
+ Operation operation = (Operation) ctx.getTarget();
+ if (operation.getNamespace() instanceof Interface) {
+ // operations within an interface are always abstract
+ return ctx.createSuccessStatus();
+ }
+ if ((!operation.isAbstract() && operation.getMethods().size() == 0) && StereotypeUtil.isApplicable(operation, DerivedElement.class)) {
+ return ctx.createFailureStatus("The operation '" + operation.getName() +
+ " has no implementation (and is not marked as abstract)");
+ }
+ return ctx.createSuccessStatus();
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/OperationsWithTwoReturnValues.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/OperationsWithTwoReturnValues.java
new file mode 100644
index 00000000000..a08f010803c
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/OperationsWithTwoReturnValues.java
@@ -0,0 +1,57 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.validation.constraints;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.validation.AbstractModelConstraint;
+import org.eclipse.emf.validation.IValidationContext;
+import org.eclipse.papyrus.FCM.DerivedElement;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.ParameterDirectionKind;
+
+/**
+ * Verify that an operation has at most one return parameter
+ *
+ * Whereas this rule would make sense in general, it has been made specific to
+ * Qompass by verifying whether FCM is applied (check if DerivedElement stereotype
+ * is applicable)
+ */
+public class OperationsWithTwoReturnValues extends AbstractModelConstraint
+{
+ @Override
+ public IStatus validate(IValidationContext ctx)
+ {
+ Operation operation = (Operation) ctx.getTarget();
+ boolean firstReturn = true;
+ for (Parameter parameter : operation.getOwnedParameters()) {
+ if (parameter.getDirection() == ParameterDirectionKind.RETURN_LITERAL) {
+ if (firstReturn) {
+ firstReturn = false;
+ }
+ else {
+ if (StereotypeUtil.isApplicable(operation, DerivedElement.class)) {
+ return ctx.createFailureStatus("The operation '" + operation.getName() + "' has more than one return parameter. It must have at most one");
+ }
+ else {
+ break;
+ }
+ }
+ }
+ }
+ return ctx.createSuccessStatus();
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/PortIsCorrectlyTyped.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/PortIsCorrectlyTyped.java
new file mode 100644
index 00000000000..345678cc7df
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/PortIsCorrectlyTyped.java
@@ -0,0 +1,45 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.validation.constraints;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.validation.AbstractModelConstraint;
+import org.eclipse.emf.validation.IValidationContext;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Port;
+
+/**
+ * Check whether the port is not correctly typed, e.g. the port kind ProvideInterface is used in
+ * conjunction with a data type.
+ * Technically, the criterion will be that not both, derived provided and derived required interfaces
+ * are empty.
+ *
+ */
+public class PortIsCorrectlyTyped extends AbstractModelConstraint {
+
+ @Override
+ public IStatus validate(IValidationContext ctx)
+ {
+ Port port = (Port) ctx.getTarget();
+
+ if ((port.getProvideds().size() == 0) && (port.getRequireds().size() == 0)) {
+ Class class_ = port.getClass_();
+ return ctx.createFailureStatus("The port '" + port.getName() + "' owned by class '" + class_.getQualifiedName() + //$NON-NLS-1$ //$NON-NLS-2$
+ "' is not correctly typed, since derived provided and required interface is null"); //$NON-NLS-1$
+ }
+ return ctx.createSuccessStatus();
+
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/PortKindUnset.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/PortKindUnset.java
new file mode 100644
index 00000000000..3aefcba3cd7
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/PortKindUnset.java
@@ -0,0 +1,43 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.validation.constraints;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.validation.AbstractModelConstraint;
+import org.eclipse.emf.validation.IValidationContext;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * Check whether the attribute port-kind of the FCM stereotype port is set
+ *
+ */
+public class PortKindUnset extends AbstractModelConstraint {
+
+ @Override
+ public IStatus validate(IValidationContext ctx)
+ {
+ Port port = (Port) ctx.getTarget();
+ org.eclipse.papyrus.FCM.Port fcmPort = UMLUtil.getStereotypeApplication(port, org.eclipse.papyrus.FCM.Port.class);
+ if (fcmPort != null) {
+
+ if (fcmPort.getKind() == null) {
+ return ctx.createFailureStatus("The stereotype attribute 'portKind' of port '" + port.getName() + "' is unset");
+ }
+ }
+ return ctx.createSuccessStatus();
+ }
+
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/SystemHasNoPorts.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/SystemHasNoPorts.java
new file mode 100644
index 00000000000..dd2bcc2a892
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/SystemHasNoPorts.java
@@ -0,0 +1,51 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.validation.constraints;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.validation.AbstractModelConstraint;
+import org.eclipse.emf.validation.IValidationContext;
+import org.eclipse.papyrus.FCM.DeploymentPlan;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepUtils;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * Check whether the specific system class. This class can be identified, since it is the
+ * classifier of the "main-instance" referenced by a deployment plan.
+ *
+ */
+public class SystemHasNoPorts extends AbstractModelConstraint {
+
+ @Override
+ public IStatus validate(IValidationContext ctx)
+ {
+ Package pkg = (Package) ctx.getTarget();
+
+ DeploymentPlan cdp = UMLUtil.getStereotypeApplication(pkg, DeploymentPlan.class);
+
+ if (cdp != null) {
+ InstanceSpecification mi = cdp.getMainInstance();
+ Class class_ = (Class) DepUtils.getClassifier(mi);
+
+ if (class_.getOwnedPorts().size() > 0) {
+ return ctx.createFailureStatus("The main instance (class '" + class_.getName() + "') of deployment plan '" + pkg.getName() + "' owns ports. It should not, since these ports remain unconnected.");
+ }
+ }
+ return ctx.createSuccessStatus();
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/TemplateRefWithoutBinding.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/TemplateRefWithoutBinding.java
new file mode 100644
index 00000000000..77fd10d61e6
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/TemplateRefWithoutBinding.java
@@ -0,0 +1,81 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.validation.constraints;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.validation.AbstractModelConstraint;
+import org.eclipse.emf.validation.IValidationContext;
+import org.eclipse.papyrus.FCM.DerivedElement;
+import org.eclipse.papyrus.qompass.designer.core.templates.TemplateUtils;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.TypedElement;
+
+/**
+ * Check whether an element within a package template is referenced via a type from the outside, i.e. an element that is not
+ * within this package template. This reference is only valid in the context of a template binding.
+ * (within Qompass, binding is done implicitly via stereotypes - which was perhaps not the best way of doing it)
+ *
+ * The rule has been made specific to Qompass by checking whether FCM is applied (check DerivedElement stereotype).
+ *
+ */
+public class TemplateRefWithoutBinding extends AbstractModelConstraint {
+
+ @Override
+ public IStatus validate(IValidationContext ctx)
+ {
+ TypedElement te = (TypedElement) ctx.getTarget();
+ Type type = te.getType();
+ if (type != null) {
+ Element owner = type.getNearestPackage();
+ while (owner != null) {
+ if (owner instanceof Package) {
+ Package pkg = (Package) owner;
+ if (TemplateUtils.getSignatureDirect(pkg) != null) {
+ if (StereotypeUtil.isApplicable(pkg, DerivedElement.class) && !isWithin(pkg, te)) {
+ // the type of an element is defined within a package template (pkg), but the typed element (te) itself
+ // is defined outside of this package
+ return ctx.createFailureStatus("This element is typed with '" + type.getQualifiedName() + "', but defined outside the package template '" + //$NON-NLS-1$ //$NON-NLS-2$
+ pkg.getQualifiedName() + "'"); //$NON-NLS-1$
+ }
+ }
+ }
+ owner = owner.getOwner();
+ }
+ }
+
+ return ctx.createSuccessStatus();
+ }
+
+ /**
+ * @param pkg
+ * A UML package
+ * @param e
+ * an element that is eventually part of the package
+ * @return if passed element is part of the given package
+ */
+ public boolean isWithin(Package pkg, Element e) {
+ Element owner = e;
+ while (owner != null) {
+ owner = owner.getOwner();
+ if (owner == pkg) {
+ return true;
+ }
+ }
+ return false;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/UnconnectedPorts.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/UnconnectedPorts.java
new file mode 100644
index 00000000000..34a4672aa66
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/UnconnectedPorts.java
@@ -0,0 +1,95 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.validation.constraints;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.validation.AbstractModelConstraint;
+import org.eclipse.emf.validation.IValidationContext;
+import org.eclipse.papyrus.uml.tools.utils.ConnectorUtil;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Connector;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * Check whether a port of a part remains without connection. Whereas it is typically problematic
+ * for ports with a required interface, we also raise an info for those with a provided interface
+ *
+ */
+abstract public class UnconnectedPorts extends AbstractModelConstraint
+{
+ /**
+ * Called by one of the sub-classes (does not override a superclass method)
+ *
+ * @param ctx
+ * the validation context
+ * @param required
+ * if true, examine required ports, if false provided ports
+ * @return
+ */
+ public IStatus validatePorts(IValidationContext ctx, boolean required)
+ {
+ String portsStr = ""; //$NON-NLS-1$
+
+ Property attribute = (Property) ctx.getTarget();
+ Class owner = attribute.getClass_();
+ if (owner != null) {
+ if (attribute.getType() instanceof Class) {
+ Class class_ = (Class) attribute.getType();
+ for (Port port : class_.getOwnedPorts()) {
+ if ((port.getRequireds().size() > 0 && required) ||
+ (port.getProvideds().size() > 0 && !required)) {
+ {
+ boolean found = false;
+ for (Connector connector : owner.getOwnedConnectors()) {
+ if (ConnectorUtil.connectsPort(connector, port)) {
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ if (portsStr.length() != 0) {
+ portsStr += ", "; //$NON-NLS-1$
+ }
+ portsStr += port.getName();
+ }
+ }
+ }
+ }
+ }
+ }
+ if (portsStr.length() > 0) {
+ return ctx.createFailureStatus("The port(s) '" + portsStr + "' of part '" + attribute.getName() + "' remains unconnected within composite class '" + owner.getQualifiedName() + "'");
+
+ }
+ else {
+ return ctx.createSuccessStatus();
+ }
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/UnconnectedProvPorts.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/UnconnectedProvPorts.java
new file mode 100644
index 00000000000..81bf5bc64b6
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/UnconnectedProvPorts.java
@@ -0,0 +1,27 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.validation.constraints;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.validation.IValidationContext;
+
+
+public class UnconnectedProvPorts extends UnconnectedPorts {
+
+ @Override
+ public IStatus validate(IValidationContext ctx) {
+ return super.validatePorts(ctx, false);
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/UnconnectedReqPorts.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/UnconnectedReqPorts.java
new file mode 100644
index 00000000000..d24a9f3f9f2
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.validation/src/org/eclipse/papyrus/qompass/designer/validation/constraints/UnconnectedReqPorts.java
@@ -0,0 +1,27 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.validation.constraints;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.validation.IValidationContext;
+
+
+public class UnconnectedReqPorts extends UnconnectedPorts {
+
+ @Override
+ public IStatus validate(IValidationContext ctx) {
+ return super.validatePorts(ctx, true);
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/.classpath b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/.classpath
new file mode 100644
index 00000000000..098194ca4b7
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/.project b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/.project
new file mode 100644
index 00000000000..65bf34f1f4e
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/.project
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.qompass.designer.vsl</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.acceleo.ide.ui.acceleoBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.acceleo.ide.ui.acceleoNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
+
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/.settings/org.eclipse.jdt.core.prefs b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..f42de363afa
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/META-INF/MANIFEST.MF b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..7f958871f83
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Export-Package: org.eclipse.papyrus.qompass.designer.vsl
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.papyrus.marte.vsl;bundle-version="1.2.0",
+ org.eclipse.xtext;bundle-version="2.4.0",
+ org.eclipse.papyrus.marte.static.profile;bundle-version="1.2.0"
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-Version: 1.2.0.qualifier
+Bundle-Localization: plugin
+Bundle-Name: %pluginName
+Bundle-Activator: org.eclipse.papyrus.qompass.designer.vsl.Activator
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.qompass.designer.vsl
+Bundle-RequiredExecutionEnvironment: JavaSE-1.7
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/about.html b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/about.html
new file mode 100644
index 00000000000..209103075a7
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>November 14, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/build.acceleo b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/build.acceleo
new file mode 100644
index 00000000000..fb14dcfe540
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/build.acceleo
@@ -0,0 +1,26 @@
+<!-- ===================================================================== -->
+<!-- Custom targets. -->
+<!-- Set customBuildCallbacks = build.acceleo in your build.properties. -->
+<!-- ===================================================================== -->
+<project name="Build Acceleo Module" default="noDefault">
+ <!-- ================================================================= -->
+ <!-- Default target -->
+ <!-- ================================================================= -->
+ <target name="noDefault">
+ <echo message="This file must be called with explicit targets" />
+ </target>
+
+ <!-- ================================================================= -->
+ <!-- This will be called automatically after the compilation of each -->
+ <!-- Bundle... in dependency order. -->
+ <!-- ================================================================= -->
+ <target name="post.compile.@dot">
+ <acceleoCompiler
+ sourceFolder="${target.folder}"
+ outputFolder="${target.folder}"
+ dependencies=""
+ binaryResource="false"
+ packagesToRegister="">
+ </acceleoCompiler>
+ </target>
+</project>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/build.properties b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/build.properties
new file mode 100644
index 00000000000..2db90a70738
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/build.properties
@@ -0,0 +1,10 @@
+#
+#Sun Dec 02 23:00:20 CET 2012
+bin.includes = META-INF/,\
+ .,\
+ about.html,\
+ plugin.properties
+output..=bin/
+source..=src/
+customBuildCallbacks=build.acceleo
+src.includes = about.html
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/plugin.properties b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/plugin.properties
new file mode 100644
index 00000000000..e8db6a299e0
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/plugin.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2013 CEA LIST.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# CEA LIST - initial API and implementation
+###############################################################################
+pluginName=Papyrus extra: Qompass designer VSL support (Incubation)
+providerName=Eclipse Modeling Project
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/pom.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/pom.xml
new file mode 100644
index 00000000000..2ca86b4cb50
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.qompass.designer.vsl</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/src/org/eclipse/papyrus/qompass/designer/vsl/Activator.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/src/org/eclipse/papyrus/qompass/designer/vsl/Activator.java
new file mode 100644
index 00000000000..d69dc572821
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/src/org/eclipse/papyrus/qompass/designer/vsl/Activator.java
@@ -0,0 +1,54 @@
+package org.eclipse.papyrus.qompass.designer.vsl;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.qompass.designer.vsl"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/src/org/eclipse/papyrus/qompass/designer/vsl/Messages.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/src/org/eclipse/papyrus/qompass/designer/vsl/Messages.java
new file mode 100644
index 00000000000..548e47b0be1
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/src/org/eclipse/papyrus/qompass/designer/vsl/Messages.java
@@ -0,0 +1,17 @@
+package org.eclipse.papyrus.qompass.designer.vsl;
+
+import org.eclipse.osgi.util.NLS;
+
+public class Messages extends NLS {
+ private static final String BUNDLE_NAME = "org.eclipse.papyrus.qompass.designer.vsl.messages"; //$NON-NLS-1$
+ public static String ParseVSL_ErrorInExp_SIZE;
+ public static String ParseVSL_ErrorInExp_TIME;
+ public static String ParseVSL_ErrotInExp_FREQ;
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ private Messages() {
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/src/org/eclipse/papyrus/qompass/designer/vsl/ParseVSL.emtl b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/src/org/eclipse/papyrus/qompass/designer/vsl/ParseVSL.emtl
new file mode 100644
index 00000000000..7e3a06641ae
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/src/org/eclipse/papyrus/qompass/designer/vsl/ParseVSL.emtl
@@ -0,0 +1,432 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:mtl="http://www.eclipse.org/acceleo/mtl/3.0" xmlns:ocl.ecore="http://www.eclipse.org/ocl/1.1.0/Ecore">
+ <mtl:Module name="ParseVSL" nsURI="org::eclipse::papyrus::qompass::designer::vsl::ParseVSL" endHeaderPosition="57">
+ <input>
+ <takesTypesFrom href="http://www.eclipse.org/uml2/5.0.0/UML#/"/>
+ </input>
+ <ownedModuleElement xsi:type="mtl:Comment">
+ <body startPosition="69" endPosition="98" value=" Copyright (c) 2012 CEA List."/>
+ </ownedModuleElement>
+ <ownedModuleElement xsi:type="mtl:Query" name="getSizeFromVSL" visibility="Public">
+ <parameter name="nfpDatasize">
+ <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="/5">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </source>
+ <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.eclipse.papyrus.qompass.designer.vsl.ParseVSL">
+ <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="getSizeFromVSL(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(String)" kind="Sequence">
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <item xsi:type="ocl.ecore:VariableExp" name="nfpDatasize" referredVariable="/0/getSizeFromVSL/nfpDatasize">
+ <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/Integer"/>
+ </ownedModuleElement>
+ <ownedModuleElement xsi:type="mtl:Query" name="getDurationFromVSL" visibility="Public">
+ <parameter name="nfpDuration">
+ <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="/8">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </source>
+ <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.eclipse.papyrus.qompass.designer.vsl.ParseVSL">
+ <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="getDurationFromVSL(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(String)" kind="Sequence">
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <item xsi:type="ocl.ecore:VariableExp" name="nfpDuration" referredVariable="/0/getDurationFromVSL/nfpDuration">
+ <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/Integer"/>
+ </ownedModuleElement>
+ <ownedModuleElement xsi:type="mtl:Query" name="implementsInterface2" visibility="Public">
+ <parameter name="operation">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>
+ </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="/11">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>
+ </source>
+ <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.eclipse.papyrus.qompass.designer.core.acceleo.UMLTool">
+ <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="implementsInterface(org.eclipse.uml2.uml.Operation)">
+ <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(Operation)" kind="Sequence">
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>
+ <item xsi:type="ocl.ecore:VariableExp" name="operation" referredVariable="/0/implementsInterface2/operation">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>
+ </item>
+ </part>
+ </argument>
+ </expression>
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </ownedModuleElement>
+ <ownedModuleElement xsi:type="mtl:Query" name="implementsInterface3" visibility="Public">
+ <parameter name="str">
+ <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="/14">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </source>
+ <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.eclipse.papyrus.qompass.designer.core.acceleo.UMLTool">
+ <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="implementsInterface(org.eclipse.uml2.uml.Operation)">
+ <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(String)" kind="Sequence">
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <item xsi:type="ocl.ecore:VariableExp" name="str" referredVariable="/0/implementsInterface3/str">
+ <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="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </ownedModuleElement>
+ </mtl:Module>
+ <ecore:EPackage name="additions">
+ <eClassifiers xsi:type="ecore:EClass" name="String_Class">
+ <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+ <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Integer_Class">
+ <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+ <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Real_Class">
+ <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+ <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Real"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EObject_Class">
+ <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+ <references href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+ </eAnnotations>
+ <eOperations name="getSizeFromVSL">
+ <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+ <contents xsi:type="ocl.ecore:Constraint"/>
+ </eAnnotations>
+ <eAnnotations source="MTL" references="/0/getSizeFromVSL"/>
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ <eParameters name="nfpDatasize">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </eParameters>
+ </eOperations>
+ <eOperations name="getDurationFromVSL">
+ <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+ <contents xsi:type="ocl.ecore:Constraint"/>
+ </eAnnotations>
+ <eAnnotations source="MTL" references="/0/getDurationFromVSL"/>
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ <eParameters name="nfpDuration">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </eParameters>
+ </eOperations>
+ <eOperations name="implementsInterface2">
+ <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+ <contents xsi:type="ocl.ecore:Constraint"/>
+ </eAnnotations>
+ <eAnnotations source="MTL" references="/0/implementsInterface2"/>
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ <eParameters name="operation">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>
+ </eParameters>
+ </eOperations>
+ <eOperations name="implementsInterface3">
+ <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+ <contents xsi:type="ocl.ecore:Constraint"/>
+ </eAnnotations>
+ <eAnnotations source="MTL" references="/0/implementsInterface3"/>
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ <eParameters name="str">
+ <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">
+ <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>
+ </eAnnotations>
+ <eOperations name="invoke">
+ <eAnnotations source="MTL non-standard"/>
+ <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>
+ <eParameters name="class">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </eParameters>
+ <eParameters name="method">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </eParameters>
+ <eParameters name="arguments">
+ <eType xsi:type="ocl.ecore:SequenceType" href="http://www.eclipse.org/acceleo/mtl/3.0/mtlnonstdlib.ecore#//Sequence(OclAny)"/>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Collection(T)_Class">
+ <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+ <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Collection(T)"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Sequence(T)_Class">
+ <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+ <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Sequence(T)"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OrderedSet(T)_Class">
+ <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+ <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Operation_Class">
+ <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+ <references href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>
+ </eAnnotations>
+ </eClassifiers>
+ </ecore:EPackage>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </ocl.ecore:Variable>
+ <ecore:EPackage name="collections">
+ <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(String)" instanceClassName="java.util.List">
+ <elementType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(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(Operation)" instanceClassName="java.util.List">
+ <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>
+ </eClassifiers>
+ </ecore:EPackage>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>
+ </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="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+ </ocl.ecore:Variable>
+ <ecore:EAnnotation source="positions">
+ <eAnnotations source="positions.0" references="/0/%">
+ <details key="start" value="61"/>
+ <details key="end" value="100"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1" references="/0/getSizeFromVSL">
+ <details key="start" value="102"/>
+ <details key="end" value="291"/>
+ <details key="line" value="5"/>
+ </eAnnotations>
+ <eAnnotations source="positions.2" references="/0/getSizeFromVSL/nfpDatasize">
+ <details key="start" value="131"/>
+ <details key="end" value="151"/>
+ <details key="line" value="5"/>
+ </eAnnotations>
+ <eAnnotations source="positions.3" references="/0/getSizeFromVSL/%">
+ <details key="start" value="166"/>
+ <details key="end" value="288"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.4" references="/0/getSizeFromVSL/%/self">
+ <details key="start" value="-1"/>
+ <details key="end" value="-1"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.5" references="/0/getSizeFromVSL/%/%">
+ <details key="start" value="173"/>
+ <details key="end" value="224"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.6" references="/0/getSizeFromVSL/%/%.1">
+ <details key="start" value="228"/>
+ <details key="end" value="262"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.7" references="/0/getSizeFromVSL/%/%.2">
+ <details key="start" value="266"/>
+ <details key="end" value="287"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.8" references="/0/getSizeFromVSL/%/%.2/%/nfpDatasize">
+ <details key="start" value="275"/>
+ <details key="end" value="286"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.9" references="/0/getDurationFromVSL">
+ <details key="start" value="293"/>
+ <details key="end" value="490"/>
+ <details key="line" value="10"/>
+ </eAnnotations>
+ <eAnnotations source="positions.10" references="/0/getDurationFromVSL/nfpDuration">
+ <details key="start" value="326"/>
+ <details key="end" value="346"/>
+ <details key="line" value="10"/>
+ </eAnnotations>
+ <eAnnotations source="positions.11" references="/0/getDurationFromVSL/%">
+ <details key="start" value="361"/>
+ <details key="end" value="487"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.12" references="/0/getDurationFromVSL/%/self">
+ <details key="start" value="-1"/>
+ <details key="end" value="-1"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.13" references="/0/getDurationFromVSL/%/%">
+ <details key="start" value="368"/>
+ <details key="end" value="419"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.14" references="/0/getDurationFromVSL/%/%.1">
+ <details key="start" value="423"/>
+ <details key="end" value="461"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.15" references="/0/getDurationFromVSL/%/%.2">
+ <details key="start" value="465"/>
+ <details key="end" value="486"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.16" references="/0/getDurationFromVSL/%/%.2/%/nfpDuration">
+ <details key="start" value="474"/>
+ <details key="end" value="485"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.17" references="/0/implementsInterface2">
+ <details key="start" value="492"/>
+ <details key="end" value="715"/>
+ <details key="line" value="15"/>
+ </eAnnotations>
+ <eAnnotations source="positions.18" references="/0/implementsInterface2/operation">
+ <details key="start" value="527"/>
+ <details key="end" value="548"/>
+ <details key="line" value="15"/>
+ </eAnnotations>
+ <eAnnotations source="positions.19" references="/0/implementsInterface2/%">
+ <details key="start" value="565"/>
+ <details key="end" value="712"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.20" references="/0/implementsInterface2/%/self">
+ <details key="start" value="-1"/>
+ <details key="end" value="-1"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.21" references="/0/implementsInterface2/%/%">
+ <details key="start" value="572"/>
+ <details key="end" value="631"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.22" references="/0/implementsInterface2/%/%.1">
+ <details key="start" value="635"/>
+ <details key="end" value="688"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.23" references="/0/implementsInterface2/%/%.2">
+ <details key="start" value="692"/>
+ <details key="end" value="711"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.24" references="/0/implementsInterface2/%/%.2/%/operation">
+ <details key="start" value="701"/>
+ <details key="end" value="710"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.25" references="/0/implementsInterface3">
+ <details key="start" value="717"/>
+ <details key="end" value="925"/>
+ <details key="line" value="20"/>
+ </eAnnotations>
+ <eAnnotations source="positions.26" references="/0/implementsInterface3/str">
+ <details key="start" value="752"/>
+ <details key="end" value="764"/>
+ <details key="line" value="20"/>
+ </eAnnotations>
+ <eAnnotations source="positions.27" references="/0/implementsInterface3/%">
+ <details key="start" value="781"/>
+ <details key="end" value="922"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.28" references="/0/implementsInterface3/%/self">
+ <details key="start" value="-1"/>
+ <details key="end" value="-1"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.29" references="/0/implementsInterface3/%/%">
+ <details key="start" value="788"/>
+ <details key="end" value="847"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.30" references="/0/implementsInterface3/%/%.1">
+ <details key="start" value="851"/>
+ <details key="end" value="904"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.31" references="/0/implementsInterface3/%/%.2">
+ <details key="start" value="908"/>
+ <details key="end" value="921"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.32" references="/0/implementsInterface3/%/%.2/%/str">
+ <details key="start" value="917"/>
+ <details key="end" value="920"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ </ecore:EAnnotation>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/src/org/eclipse/papyrus/qompass/designer/vsl/ParseVSL.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/src/org/eclipse/papyrus/qompass/designer/vsl/ParseVSL.java
new file mode 100644
index 00000000000..a4e1c54e504
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/src/org/eclipse/papyrus/qompass/designer/vsl/ParseVSL.java
@@ -0,0 +1,185 @@
+package org.eclipse.papyrus.qompass.designer.vsl;
+
+import java.util.Collections;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.papyrus.MARTE.utils.MarteUtils;
+import org.eclipse.papyrus.MARTE_Library.MeasurementUnits.DataSizeUnitKind;
+import org.eclipse.papyrus.MARTE_Library.MeasurementUnits.FrequencyUnitKind;
+import org.eclipse.papyrus.MARTE_Library.MeasurementUnits.TimeUnitKind;
+import org.eclipse.papyrus.marte.vsl.VSLStandaloneSetupGenerated;
+import org.eclipse.xtext.IGrammarAccess;
+import org.eclipse.xtext.resource.IResourceFactory;
+import org.eclipse.xtext.resource.XtextResource;
+import org.eclipse.xtext.util.StringInputStream;
+
+import com.google.inject.Injector;
+
+
+public class ParseVSL {
+
+ private static final String UNIT = "unit"; //$NON-NLS-1$
+
+ private static final String VALUE = "value"; //$NON-NLS-1$
+
+ private Injector injector;
+
+ private static final String SYNTHETIC_SCHEME = "synthetic"; //$NON-NLS-1$
+
+
+ /**
+ * Parse a VSL expression and return an xtext resource. Users should check for parsing
+ * errors (getErrors). The resulting set of eObjects is available via the getContents
+ * operations (as usual).
+ *
+ * @param expression
+ * a VSL expression
+ * @return a resource relating to the expression.
+ */
+ public XtextResource getXtextResource(String expression) {
+ if (injector == null) {
+ VSLStandaloneSetupGenerated setup = new VSLStandaloneSetupGenerated();
+ injector = setup.createInjectorAndDoEMFRegistration();
+ }
+ ;
+ IResourceFactory resourceFactory = injector.getInstance(IResourceFactory.class);
+ IGrammarAccess grammarAccess = injector.getInstance(IGrammarAccess.class);
+
+ XtextResource xtextResource = (XtextResource) resourceFactory.createResource(
+ URI.createURI(SYNTHETIC_SCHEME + ":/" + grammarAccess.getGrammar().getName() + ".vsl")); //$NON-NLS-1$ //$NON-NLS-2$
+
+ try {
+ xtextResource.load(new StringInputStream(expression, xtextResource.getEncoding()), Collections.emptyMap());
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ return xtextResource;
+ }
+
+ /**
+ * test function (currently unused)
+ *
+ * @param expression
+ * a VSL expression
+ */
+ public static void parseTest(String expression) {
+ /*
+ * ParseVSL parseVSL = new ParseVSL();
+ * XtextResource xtextResource = parseVSL.getXtextResource(expression);
+ * if(xtextResource.getErrors().size() > 0) {
+ * for(Resource.Diagnostic error : xtextResource.getErrors()) {
+ * System.err.println(error);
+ * }
+ * return;
+ * }
+ * EList<EObject> contents = xtextResource.getContents();
+ * System.out.println("contents.size: " + contents.size());
+ */
+ }
+
+ public static int getSizeFromVSL(String nfpDatasize) {
+ if (nfpDatasize != null) {
+ String unit = MarteUtils.getValueFromTuple(nfpDatasize, UNIT);
+ String value = MarteUtils.getValueFromTuple(nfpDatasize, VALUE);
+ return Float.valueOf(value).intValue() * getMultiplicatorFromSizeUnit(unit);
+ }
+ return 0;
+ }
+
+ // >>> TODO: from here: ad-hoc functions to retrieve values via simple parser
+
+ /**
+ * Get the duration in micro-seconds
+ *
+ *
+ * @param nfpDuration
+ * @return
+ */
+ public static long getDurationFromVSL(String nfpDuration) {
+ if (nfpDuration != null) {
+ String unit = MarteUtils.getValueFromTuple(nfpDuration, UNIT);
+ String value = MarteUtils.getValueFromTuple(nfpDuration, VALUE);
+ return Float.valueOf(value).intValue() * getMultiplicatorFromTimeUnit(unit);
+ }
+ return 0;
+ }
+
+ /**
+ * Get the frequency in HZ
+ *
+ * @param
+ * @return
+ */
+ public static long getFrequencyFromVSL(String nfpFrequency) {
+ if (nfpFrequency != null) {
+ String unit = MarteUtils.getValueFromTuple(nfpFrequency, UNIT);
+ String value = MarteUtils.getValueFromTuple(nfpFrequency, VALUE);
+ return (int) (Float.valueOf(value) * getMultiplicatorFromFrequencyUnit(unit));
+ }
+ return 0;
+ }
+
+ public static long getPeriodFromArrivalPattern(String arrivalPattern) {
+ if (arrivalPattern != null) {
+ String period = MarteUtils.getValueFromTuple(arrivalPattern, "period"); //$NON-NLS-1$
+ return getDurationFromVSL(period);
+ }
+ return 0;
+ }
+
+ public static int getMultiplicatorFromSizeUnit(String unit) {
+ DataSizeUnitKind dsuk = DataSizeUnitKind.get(unit);
+ if (dsuk == DataSizeUnitKind.BYTE) {
+ return 1;
+ } else if (dsuk == DataSizeUnitKind.KB) {
+ return 1024;
+ } else if (dsuk == DataSizeUnitKind.MB) {
+ return 1024 * 1024;
+ } else if (dsuk == DataSizeUnitKind.GB) {
+ return 1024 * 1024 * 1024;
+ } else {
+ // do not support bits here.
+ throw new RuntimeException(String.format(Messages.ParseVSL_ErrorInExp_SIZE, unit));
+ }
+ }
+
+ /**
+ * return the time multiplicator based on micro-seconds unit
+ *
+ * @param unit
+ * @return
+ */
+ public static long getMultiplicatorFromTimeUnit(String unit) {
+ TimeUnitKind tuk = TimeUnitKind.get(unit);
+ if (tuk == TimeUnitKind.US) {
+ return 1;
+ }
+ if (tuk == TimeUnitKind.MS) {
+ return 1000;
+ } else if (tuk == TimeUnitKind.S) {
+ return 1000 * 1000;
+ } else if (tuk == TimeUnitKind.MIN) {
+ return 60 * 1000 * 1000;
+ } else {
+ throw new RuntimeException(String.format(Messages.ParseVSL_ErrorInExp_TIME, unit));
+ }
+ }
+
+ public static float getMultiplicatorFromFrequencyUnit(String unit) {
+ FrequencyUnitKind fuk = FrequencyUnitKind.get(unit);
+ if (fuk == FrequencyUnitKind.HZ) {
+ return 1;
+ } else if (fuk == FrequencyUnitKind.KHZ) {
+ return 1000;
+ } else if (fuk == FrequencyUnitKind.MHZ) {
+ return 1000 * 1000;
+ } else if (fuk == FrequencyUnitKind.GHZ) {
+ return 1000 * 1000 * 1000;
+ } else if (fuk == FrequencyUnitKind.RPM) {
+ return 1 / 60;
+ } else {
+ // do not support bits here.
+ throw new RuntimeException(String.format(Messages.ParseVSL_ErrotInExp_FREQ, unit));
+ }
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/src/org/eclipse/papyrus/qompass/designer/vsl/ParseVSL.mtl b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/src/org/eclipse/papyrus/qompass/designer/vsl/ParseVSL.mtl
new file mode 100644
index 00000000000..9713fa32611
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/src/org/eclipse/papyrus/qompass/designer/vsl/ParseVSL.mtl
@@ -0,0 +1,23 @@
+[module ParseVSL('http://www.eclipse.org/uml2/5.0.0/UML')/]
+
+[comment Copyright (c) 2012 CEA List./]
+
+[query public getSizeFromVSL(nfpDatasize : String) : Integer =
+ invoke('org.eclipse.papyrus.qompass.designer.vsl.ParseVSL',
+ 'getSizeFromVSL(java.lang.String)',
+ Sequence{nfpDatasize}) /]
+
+[query public getDurationFromVSL(nfpDuration : String) : Integer =
+ invoke('org.eclipse.papyrus.qompass.designer.vsl.ParseVSL',
+ 'getDurationFromVSL(java.lang.String)',
+ Sequence{nfpDuration}) /]
+
+[query public implementsInterface2(operation : Operation) : Interface =
+ invoke('org.eclipse.papyrus.qompass.designer.core.acceleo.UMLTool',
+ 'implementsInterface(org.eclipse.uml2.uml.Operation)',
+ Sequence{operation}) /]
+
+[query public implementsInterface3(str : String) : Interface =
+ invoke('org.eclipse.papyrus.qompass.designer.core.acceleo.UMLTool',
+ 'implementsInterface(org.eclipse.uml2.uml.Operation)',
+ Sequence{str}) /]
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/src/org/eclipse/papyrus/qompass/designer/vsl/messages.properties b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/src/org/eclipse/papyrus/qompass/designer/vsl/messages.properties
new file mode 100644
index 00000000000..115d3394041
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.designer.vsl/src/org/eclipse/papyrus/qompass/designer/vsl/messages.properties
@@ -0,0 +1,3 @@
+ParseVSL_ErrorInExp_SIZE=Error parsing VSL expression, unexpected size unit (expecting byte, kb, mb, or gb): '%s'
+ParseVSL_ErrorInExp_TIME=Error parsing VSL expression, unexpected duration unit (expecting us, ms, s or min): '%s'
+ParseVSL_ErrotInExp_FREQ=Error parsing VSL expression, unexpected frequency unit (expecting Hz, KHz, MHz, GHz or rpm: '%s'
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/.classpath b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/.classpath
new file mode 100644
index 00000000000..358df1bc1d1
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="xtend-gen"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/.gitignore b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/.gitignore
new file mode 100644
index 00000000000..5500bf75774
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/.gitignore
@@ -0,0 +1 @@
+tmpModel
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/.project b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/.project
new file mode 100644
index 00000000000..748b00bc5a7
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/.project
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.qompass.modellibs.core</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.acceleo.ide.ui.acceleoBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.acceleo.ide.ui.acceleoNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/.settings/org.eclipse.jdt.core.prefs b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..c537b63063c
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/ExtendedPort.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/ExtendedPort.java
new file mode 100644
index 00000000000..7227b1bdcc7
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/ExtendedPort.java
@@ -0,0 +1,127 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.modellibs.core.mappingrules;
+
+import org.eclipse.papyrus.FCM.util.IMappingRule;
+import org.eclipse.papyrus.FCM.util.MapUtil;
+import org.eclipse.papyrus.qompass.designer.core.OperationUtils;
+import org.eclipse.papyrus.qompass.designer.core.PortUtils;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Type;
+
+
+/**
+ * An extended Port in the sense of the DDS4CCM standard: a port typed with a component
+ * type. Since the component typing the port can have multiple provided and required
+ * ports, the ports are implicitly owned by the port. Conjugation on the level of an extended
+ * port level will conjugate all ports of the component typing the port.
+ *
+ * The derived interface that is provided will concatenate provided port names within the
+ * extended port with the port name and provided a "big" interface.
+ * The derived interface that is required is identical, except for a conjugation on the
+ * extended port level.
+ *
+ * Creates a fixed template binding that binds T (of the extended Port) to the used data type
+ *
+ * Here, the idea is that the port type is a classifier, e.g. the data type that is
+ * transported by a DDS port. The port kind is the extended port, e.g. DDSWrite.
+ *
+ * The derived property isExtended of FCM port-kind is true, if the class representing the port-kind owns at least one
+ * port
+ *
+ * @author ansgar
+ *
+ */
+public class ExtendedPort implements IMappingRule {
+
+ public Interface getProvided(org.eclipse.papyrus.FCM.Port p, InstanceSpecification config, boolean update)
+ {
+ return getDerived(p, false, config, update);
+ }
+
+ public Interface getRequired(org.eclipse.papyrus.FCM.Port p, InstanceSpecification config, boolean update)
+ {
+ return getDerived(p, true, config, update);
+ }
+
+ public Interface getDerived(org.eclipse.papyrus.FCM.Port extPort, boolean isRequired, InstanceSpecification config, boolean update)
+ {
+ Type type = extPort.getBase_Port().getType();
+ if(!(type instanceof Classifier)) {
+ return null;
+ }
+ Class extendedPort = extPort.getKind().getBase_Class();
+
+ String prefix = extendedPort.getName() + "_" + (isRequired ? "R_" : "P_");
+ Interface derivedInterface = MapUtil.getOrCreateDerivedInterfaceFP(extPort, prefix, type, update);
+ if (!update) {
+ return derivedInterface;
+ }
+ if(derivedInterface == null) {
+ return null;
+ }
+ /*
+ TemplateSignature signature = TemplateUtils.getSignature(type.getNearestPackage());
+ if(signature != null) {
+ Package model = Utils.getTop(derivedInterface);
+ try {
+ TemplateBinding binding =
+ TemplateUtils.fixedBinding(model, extendedPort, (Classifier)type);
+ Copy copy = new Copy(model, model, false);
+ TemplateInstantiation ti = new TemplateInstantiation(copy, binding);
+ // create a bound element of the extended port. Add bound class to derived interface class
+ Class boundClass = ti.bindNamedElement(extendedPort);
+ derivedInterface.getNearestPackage().getPackagedElements().add(boundClass);
+ } catch (TransformationException e) {
+ return null;
+ }
+ }
+ */
+ // obtain first template parameter = port type
+ // kind.getBase_Class().getNearestPackage().getTemplateParameter();
+
+ for(Port port : extendedPort.getOwnedPorts()) {
+ Interface derivedIntf = (isRequired) ?
+ PortUtils.getRequired(port) :
+ PortUtils.getProvided(port);
+
+ if(derivedIntf != null) {
+ for(Operation op : derivedIntf.getAllOperations()) {
+ String name = port.getName() + "_" + op.getName(); //$NON-NLS-1$
+
+ // check whether operation already exists. Create, if not
+ Operation derivedOperation = derivedInterface.getOperation(name, null, null);
+ if(derivedOperation == null) {
+ derivedOperation = derivedInterface.createOwnedOperation(name, null, null);
+ OperationUtils.syncOperation(op, derivedOperation);
+ derivedOperation.setName(name);
+ }
+ else {
+ if (!OperationUtils.isSameOperation(derivedOperation, op, false)) {
+ OperationUtils.syncOperation(op, derivedOperation);
+ derivedOperation.setName(name);
+ }
+ }
+ }
+ }
+ }
+ return derivedInterface;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/META-INF/MANIFEST.MF b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..40d9df64cb6
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/META-INF/MANIFEST.MF
@@ -0,0 +1,28 @@
+Manifest-Version: 1.0
+Export-Package: org.eclipse.papyrus.qompass.modellibs.core,
+ org.eclipse.papyrus.qompass.modellibs.core.xtend
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.ui.ide;bundle-version="3.8.0",
+ org.eclipse.core.runtime,
+ org.eclipse.papyrus.fcm.profile;bundle-version="1.2.0",
+ org.eclipse.papyrus.qompass.designer.core;bundle-version="1.2.0",
+ org.eclipse.papyrus.qompass.designer.vsl;bundle-version="1.2.0",
+ org.eclipse.uml2.uml;bundle-version="4.0.0",
+ org.eclipse.papyrus.uml.tools.utils;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.core.log;bundle-version="1.2.0",
+ org.eclipse.core.resources,
+ org.eclipse.papyrus.cpp.profile;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.diagram.wizards;bundle-version="1.2.0",
+ com.google.guava;bundle-version="11.0.0",
+ org.eclipse.xtext.xbase.lib,
+ org.eclipse.xtend.lib,
+ org.eclipse.xtend.lib.macro
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-Version: 1.2.0.qualifier
+Bundle-Localization: plugin
+Bundle-Name: %pluginName
+Bundle-Activator: org.eclipse.papyrus.qompass.modellibs.core.Activator
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.qompass.modellibs.core;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/about.html b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/about.html
new file mode 100644
index 00000000000..209103075a7
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>November 14, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/build.properties b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/build.properties
new file mode 100644
index 00000000000..4454371265c
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/build.properties
@@ -0,0 +1,17 @@
+#
+#Thu Jun 28 15:46:18 CEST 2012
+bin.includes = META-INF/,\
+ .,\
+ models/,\
+ plugin.xml,\
+ .classpath,\
+ .project,\
+ html/,\
+ help/,\
+ about.html,\
+ plugin.properties
+output..=bin/
+src.includes = models/,\
+ about.html
+source.. = src/,\
+ xtend-gen/
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/help/modellibs-core-examples.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/help/modellibs-core-examples.xml
new file mode 100644
index 00000000000..8e2820fd43f
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/help/modellibs-core-examples.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?NLS TYPE="org.eclipse.help.toc"?>
+
+<toc label="modellibs.core.examples" link_to="../org.eclipse.papyrus.qompass.designer.doc/toc.xml#samples">
+ <topic
+ label="Getting started: a hello world example"
+ href="html/examples/hello-world.html">
+ </topic>
+ <topic
+ label="A simple producer consumer example"
+ href="html/examples/producer-consumer.html">
+ </topic>
+</toc>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/help/modellibs-core-library.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/help/modellibs-core-library.xml
new file mode 100644
index 00000000000..78e5563a605
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/help/modellibs-core-library.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?NLS TYPE="org.eclipse.help.toc"?>
+
+<toc label="modellibs.core" link_to="../org.eclipse.papyrus.qompass.designer.doc/toc.xml#modellibs">
+ <topic label="Core model library" href="html/library/core.html">
+ </topic>
+ <topic label="CORBA basic types" href="html/library/corba">
+ </topic>
+ <topic label="FIFO interaction components" href="html/library/fifo.html">
+ </topic>
+ <topic label="OS abstraction layer" href="html/osal.html">
+ </topic>
+ <topic label="State machine execution support" href="html/library/statemachine.html">
+ </topic>
+</toc>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/hello-world.html b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/hello-world.html
new file mode 100644
index 00000000000..a8aacf1106c
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/hello-world.html
@@ -0,0 +1,174 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+ <meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8">
+ <title>Hello world example with Qompass</title>
+ <link rel="StyleSheet"
+ href="../sitestyle.css"
+ type="text/css">
+</head>
+<body>
+
+<h1>Hello world example with Qompass</h1>
+
+In the sequel, we outline a simple hello world example using qompass designer. Please note that the example
+can be found via File->New->Example in the category Qompass examples. There are also two cheat-sheets that explain how
+to create your own example from scratch.
+<p>
+
+As for all Qompass examples, there are three different parts that needs to be modeled
+<ol>
+<li>The software components
+<li>An abstraction of the hardware platform
+<li>A so-called deployment plan, i.e. a set of component instance definitions along with their configuration and
+ allocation of software components to hardware nodes
+</ol>
+
+In the sequel, we will go through all of these items with a focus on the the definition of the software components.
+
+<h2>Definition of software components</h2>
+
+The example consists of two components, detailed below
+
+<h3>The hello-world component</h3>
+
+The hello-world component is shown in the following screen shot.
+
+<center>
+<img src="screenshots/hw/hello-world.png" alt="The Hello World component">
+</center>
+<br>
+The hello world component inherits from a component called <em>CStart</em>. This is an abstract component defined in the
+Qompass core model library. It owns a port (called start) that provides the pre-defined interface <em>IStart</em>. This
+interface has a single operation <em>run</em>. Components that provide an interface via a port need to implement this
+interface. This include ports that are inherited. In our case, the hello world component needs to implement the <em>IStart</em>
+interface, i.e. contain an operation "run" as well as a behavior for this operation.<br>
+Qompass supports the user by automatically creating derived operations for interfaceS provided via a port, i.e. the operation
+signature is copied (and synchronized on demand) from the interface. The developer needs to provide behavior. In UML, behavior
+can be specified either via activities or by embedding code in a programming language (opaque behavior) into the model.
+Currently, Qompass focuses on the latter,in particular in form of embedded C++ code. A simple C/C++ view allows to enter
+the code, as shown in the following screenshot (there is ongoing work concerning a CDT editor integration)
+
+<p>
+<center>
+<img src="screenshots/hw/c-cpp-view.png" alt="C/C++ view">
+</center>
+<p>
+
+The code outputs "Hello World" and an additional message that is an attribute of the hello world component. The attribute <em>message</em>
+is declared as a UML String, but it does not have a particular contents on the level of the component definition. We will
+see in the section explaining deployment plans how this contents can be defined.
+<p>
+The specific start port enables a component to get the initial control. Its <em>run</em> operation is called at system
+start-up by a generated boot-loader.
+
+<h3>A system component</h3>
+
+All Qompass applications need to define a top-level component, typically called <em>System</em> that aggregates its components,
+in our case the hello-world component. It is defined by means of a composite class, contained components are
+modeled via attributes (use composite aggregation for these) typed by the contained components. Note that we define a role (or part)
+within a composition, the hello world component declaration is not part of the system class. This role corresponds to an
+instance of a class in the deployment plan below.<br>
+In our simple hello world example, there is a single component only. Thus, there are no connections between components (so called <em>assembly</em>). take a look at the
+<a href="producer-consumer.html">producer-consumer</a> example to see how the assembly can be done.
+<p>
+<center>
+<img src="screenshots/hw/system.png" alt="The System component">
+</center>
+
+
+<h2>Definition of an abstract hardware platform</h2>
+
+In parallel to the software component, the hardware platform or merely an abstraction thereof can be defined. The main objective
+of this step is to define computational nodes on which the software can be allocated. A node isa stereotyped class that defines
+for the moment only quite basic information about a computational node, such as the provided memory and operating system.
+
+<p>
+
+The following screenshot defines a platform for the Hello World component. The <em>HWArchitecture</em> class has a similar
+function for the platform as the <em>System</em> class has for the software: it represents the used notes and their interconnections.
+In this simple example, the hardware architecture contains a single node.<br>
+<center>
+<img src="screenshots/hw/platform.png" alt="A platform for the Hello World component">
+</center>
+
+<h2>Definition of a deployment plan</h2>
+
+A deployment plan is a collection of instance specifications, stored within a UML package. It has two objectives. The first is
+to configure an <em>instance</em> of a component, i.e. to provide values for configuration attributes. The second is to allocate
+instance to processing resources such as threads or directly to a node of the platform definition.
+
+In case of the hello world component, the message that should be written is a configuration attribute. Qompass provides a
+dialog that simplifies the configuration of this attribute. The dialog lists instances and their configuration attributes and
+enables the user to provide a value in a text field. On the model level, a corresponding slot and a value specification are
+produced.<br>
+
+<center>
+<img src="screenshots/hw/configure-instance.png" alt="configure instance dialog">
+</center>
+
+The allocation is also simplified by means of a custom dialog. The instances of a system are shown by means of a tree structure
+and the user can either allocate leafs or a parent node. In our case, the whole system should be allocated to node "monoNode", as
+shown in the screenshot below. On the model level, allocation is a MARTE relationship.<br>
+<center>
+<img src="screenshots/hw/allocate.png" alt="allocation dialog">
+</center>
+
+The last screenshot shows the resulting deployment plan, the package containing two instance specifications and the slots along
+with the configured values. You also see the allocation of the system component. Note, that the visualization of all instances
+in a diagram is often not useful for larger applications, since the graphical visualization does not provide additional
+information compared to the tree structure depicted by the dedicated dialog.<br>
+
+<center>
+<img src="screenshots/hw/deployment-plan.png" alt="resulting deployment plan">
+</center>
+
+The last step is the code generation which can be executed via the context menu of a deployment plan. The code generation creates an CDT project
+which can be compiled and executed.
+
+<h2>Compilation, Execution and Debugging</h2>
+
+<h3>For Windows users</h3>
+
+If you are using Windows and it is the first time you are running C++ project using Eclipse CDT,
+you can face some problems during compilation, execution and debugging of the generated code.
+
+First of all, be sure that you have defined the environment variable for your C++ compiler. To do so, open a command line window (cmd.exe) and type "gdb".
+You should see an output like below.
+
+<center>
+<img src="screenshots/cmd_without_error.png" alt="command line without error">
+</center>
+
+If you do not see this output and see the error below,
+
+<center>
+<img src="screenshots/cmd_with_error.png" alt="command line with error">
+</center>
+
+
+go to "My Computer -> Properties -> Advanced System Parameters". Edit the variable named "PATH" and add the following to the end of its value ";C:\MinGW\bin\"
+<br><br>
+Moreover, another problem you can face can be having no console output after a successful run of the code. In this case,
+<br><br>
+Right-click on your project. Select "Properties".
+<br><br>
+Select the "Run/Debug Settings" Property on the left of the new window.
+<br><br>
+In the right window, click on your executable to highlight (ie - Test.exe) and click "Edit".
+<br><br>
+In the Environment tab, hit "New"
+<br><br>
+Name: <b>PATH</b>
+<br>
+Value: <b>Path to your MinGW bin directory</b> (For example: C:\MinGW\bin)
+<br><br>
+Click "OK" on all windows to close down.
+<br><br>
+Try running again, it should print output to the screen.
+<br><br>
+<a href="http://stackoverflow.com/questions/3443254/eclipse-cdt-using-mingw-does-not-output-in-console">See this link!</a>
+
+
+</body>
+</html> \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/producer-consumer.html b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/producer-consumer.html
new file mode 100644
index 00000000000..c7a619f5516
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/producer-consumer.html
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+ <meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8">
+ <title>Producer-consumer example with Qompass</title>
+ <link rel="StyleSheet"
+ href="../sitestyle.css"
+ type="text/css">
+</head>
+<body>
+
+<h1>A simple producer-consumer example</h1>
+
+In the sequel, we outline a simple producer consumer example using Qompass designer. Please note that the example
+can be found via File->New->Example in the category Qompass examples. It follows the same principles as the
+<a href="hello-world.html">Hello World</a> example, i.e. a separation between components, platform and deployment plan.
+<p>
+
+<h2>Definition of software components</h2>
+
+The example consists of three components, a producer, a consumer and the enclosing system component. These components are outlined
+in the sequel.
+
+<h3>The producer</h3>
+
+A data producer needs flow port of type "out" to communicate the data to other components. The following screenshot shows its
+definition.
+
+<center>
+<img src="screenshots/pc/push-producer.png" alt="The push producer">
+</center>
+
+The producer is the main active component in our system. Therefore, it inherits (as the hello world component) from
+the CStart component within the Qompass "core" modeling library and gets an initial execution thread. This thread executes the
+component's "run" method is shown below. It executes 20 periods with a length of 200ms (we use only the simple POSIX call usleep
+instead of the OS abstraction library to ensure that this example runs on most machines). In each period, an instance of type
+PubData is send to the port q.
+<p>
+<code><pre>
+cout << "publish a value via port q;" << endl;
+ComponentModel::interfaces::PubData data;
+data.x = 2;
+data.y = 3;
+for (int i = 0; i<20; i++) {
+ q->push(data);
+ cout << "." << flush;
+ // wait 200ms
+ usleep(200*1000);
+}
+</pre></code>
+
+<h3>The consumer</h3>
+
+There are (at least) two different variants to consume data. The first is to actively pull for new data, the second is being notified (pushed)
+whenever new data arrives. Although both consumers have a flow-port of type in, the mapping towards provided and required
+interfaces is quite different. Whereas the pull consumer calls a pull operation, the push consumer is called from the outside.
+This also implies that the pull consumer has its own thread of control, which typically performs the poll with a certain period.
+
+The following screenshot shows the push variant of the consumer. Since the component is inactive, no additional thread is required.
+Data consumption at an "push-in" flow ports corresponds to the implementation of an interface with a push method. This interface
+is automatically calculated and a derived (calculated) attribute of the port stereotyped with the FCM profile.
+
+<center>
+<img src="screenshots/pc/push-consumer.png" alt="The push consumer">
+</center>
+<p>
+
+The next screenshot shows the pull variant of the consumer. This components inherits from the abstract LifeCycle component that
+provides the lifecycle port. The interface associated with this port contains the two operations activate and deactivate. The
+lifecycle operations are called after creation, but -- unlike the start call -- should return the control immediately (or after
+a very short time).<br>
+Since we want that the consumer executes a periodic pull operation, we need to launch a new thread in the activation call and let
+this thread execute the pull loop. One way to achieve this Qompass is to use a <em>container service</em> that intercepts the
+activation call. This service is call runStartThread and is visible in the context menu of the class.
+
+<center>
+<img src="screenshots/pc/pull-consumer.png" alt="The pull consumer">
+</center>
+<p>
+
+<h3>The system</h3>
+
+Since we use two different variants of a consumer, we need to have two different variants of the system component.
+The first variant uses a push consumer. In this case, producer and consumer can be connected directly, since the producer
+calls the push operation that is provided by the consumer.
+
+<center>
+<img src="screenshots/pc/system-push.png" alt="The System component with a push consumer">
+</center>
+
+The variant with a pull consumer is a bit more complicated. In this case, both producer and consumer call operations (push and
+pull respectively) and we need a mediator between this. A suitable choice is the use of a FIFO queue. The producer pushes data
+into the FIFO and the consumer polls for data "at the other end". Instead of explicitly introducing an additional part for the
+queue in the system, Qompass supports annotating UML connectors. In this case, we add the information to the connector between
+producer and consumer that a FIFO connector should be used. When the code for this system is generated, Qompass replaces the
+connection by a reified connector, as shown in the
+<a href="../../../org.eclipse.papyrus.qompass.designer.doc/html/reference/interactionComponent.html">reference guide</a>
+
+<center>
+<img src="screenshots/pc/system-pull.png" alt="The System component with a pull consumer">
+</center>
+
+
+<h2>Definition of an abstract hardware platform</h2>
+
+The hardware platform is the same monolithic platform as for the hello world example
+
+<center>
+<img src="screenshots/hw/platform.png" alt="The push consumer">
+</center>
+
+<h2>Definition of a deployment plan</h2>
+
+There are two deployment plans corresponding to the two variants to consume data. The screenshots below shows both plans
+without detailing the contained instance specifications.<br>
+In addition to the two plans, there are two <em>Configurations</em> that enable activation of container extension. For
+instance, the tracing rules are only active in a trace configuration. A configuration refers to a set of configuration
+options and a deployment plan, as shown in screenshots.
+
+<center>
+<img src="screenshots/pc/dep-plans.png" alt="The push consumer">
+</center>
+
+</body>
+</html> \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/cmd_with_error.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/cmd_with_error.png
new file mode 100644
index 00000000000..b239ab329eb
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/cmd_with_error.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/cmd_without_error.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/cmd_without_error.png
new file mode 100644
index 00000000000..a03d922c087
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/cmd_without_error.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/hw/allocate.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/hw/allocate.png
new file mode 100644
index 00000000000..43f70204412
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/hw/allocate.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/hw/c-cpp-view.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/hw/c-cpp-view.png
new file mode 100644
index 00000000000..c4cc6730243
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/hw/c-cpp-view.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/hw/configure-instance.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/hw/configure-instance.png
new file mode 100644
index 00000000000..a77b9c3cbcf
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/hw/configure-instance.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/hw/deployment-plan.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/hw/deployment-plan.png
new file mode 100644
index 00000000000..969c3b0d62c
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/hw/deployment-plan.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/hw/hello-world.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/hw/hello-world.png
new file mode 100644
index 00000000000..78d176b6fa7
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/hw/hello-world.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/hw/platform.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/hw/platform.png
new file mode 100644
index 00000000000..93f8f332b2a
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/hw/platform.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/hw/system.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/hw/system.png
new file mode 100644
index 00000000000..10446c73b5c
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/hw/system.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/pc/dep-plans.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/pc/dep-plans.png
new file mode 100644
index 00000000000..9d5c201fd60
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/pc/dep-plans.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/pc/generated-container.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/pc/generated-container.png
new file mode 100644
index 00000000000..4eb00727977
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/pc/generated-container.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/pc/pull-consumer.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/pc/pull-consumer.png
new file mode 100644
index 00000000000..950ad42d68c
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/pc/pull-consumer.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/pc/push-consumer.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/pc/push-consumer.png
new file mode 100644
index 00000000000..83065ace195
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/pc/push-consumer.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/pc/push-producer.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/pc/push-producer.png
new file mode 100644
index 00000000000..580db31e964
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/pc/push-producer.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/pc/system-pull.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/pc/system-pull.png
new file mode 100644
index 00000000000..08d5286e66a
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/pc/system-pull.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/pc/system-push.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/pc/system-push.png
new file mode 100644
index 00000000000..1c3ce96ad33
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/examples/screenshots/pc/system-push.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/library/corba.html b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/library/corba.html
new file mode 100644
index 00000000000..266c64ef4d2
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/library/corba.html
@@ -0,0 +1,16 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+ <meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8">
+ <title>CORBA basic types (model library)</title>
+ <link rel="StyleSheet"
+ href="../sitestyle.css"
+ type="text/css">
+</head>
+<body>
+
+<h1>A collection of CORBA base types</h1>
+
+
+</body>
+</html> \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/library/core.html b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/library/core.html
new file mode 100644
index 00000000000..038fd213f27
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/library/core.html
@@ -0,0 +1,16 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+ <meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8">
+ <title>Core model library</title>
+ <link rel="StyleSheet"
+ href="../sitestyle.css"
+ type="text/css">
+</head>
+<body>
+
+<h1>A simple producer-consumer example</h1>
+
+
+</body>
+</html> \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/library/osal.html b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/library/osal.html
new file mode 100644
index 00000000000..038fd213f27
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/library/osal.html
@@ -0,0 +1,16 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+ <meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8">
+ <title>Core model library</title>
+ <link rel="StyleSheet"
+ href="../sitestyle.css"
+ type="text/css">
+</head>
+<body>
+
+<h1>A simple producer-consumer example</h1>
+
+
+</body>
+</html> \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/library/statemachine.html b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/library/statemachine.html
new file mode 100644
index 00000000000..038fd213f27
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/html/library/statemachine.html
@@ -0,0 +1,16 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+ <meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8">
+ <title>Core model library</title>
+ <link rel="StyleSheet"
+ href="../sitestyle.css"
+ type="text/css">
+</head>
+<body>
+
+<h1>A simple producer-consumer example</h1>
+
+
+</body>
+</html> \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/ClientServerTimer.di b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/ClientServerTimer.di
new file mode 100644
index 00000000000..bf9abab340f
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/ClientServerTimer.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/ClientServerTimer.notation b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/ClientServerTimer.notation
new file mode 100644
index 00000000000..f2f19151607
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/ClientServerTimer.notation
@@ -0,0 +1,1221 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:C_Cpp="http://www.eclipse.org/papyrus/C_Cpp/1" xmlns:FCM="http://www.eclipse.org/papyrus/FCM/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_XSHWMF36Ed-UvNEDwY5GNg" type="PapyrusUMLClassDiagram" name="Interfaces" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_iubEsDbcEeGdqp2YT1LwWw" type="2004" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iucS0DbcEeGdqp2YT1LwWw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iucS0TbcEeGdqp2YT1LwWw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iuc54DbcEeGdqp2YT1LwWw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iuc54TbcEeGdqp2YT1LwWw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iuc54jbcEeGdqp2YT1LwWw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iuc54zbcEeGdqp2YT1LwWw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iuc55DbcEeGdqp2YT1LwWw" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_iudg8DbcEeGdqp2YT1LwWw" visible="false" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_iudg8TbcEeGdqp2YT1LwWw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_iudg8jbcEeGdqp2YT1LwWw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_iudg8zbcEeGdqp2YT1LwWw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iudg9DbcEeGdqp2YT1LwWw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_iudg9TbcEeGdqp2YT1LwWw" type="7007">
+ <children xmi:type="notation:Shape" xmi:id="_kZh7oDbcEeGdqp2YT1LwWw" type="3007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oSbL4Fl7EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oW1x0Fl7EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="ClientServerTimer.uml#_DGs6wDLgEd28fJKJJnUaeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kZh7oTbcEeGdqp2YT1LwWw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kZiisDbcEeGdqp2YT1LwWw" type="3007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pVrYoFl7EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zM5VYFl7EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="ClientServerTimer.uml#_L8EY8DLgEd28fJKJJnUaeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kZiisTbcEeGdqp2YT1LwWw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_iudg9jbcEeGdqp2YT1LwWw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_iudg9zbcEeGdqp2YT1LwWw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_iudg-DbcEeGdqp2YT1LwWw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iudg-TbcEeGdqp2YT1LwWw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_iudg-jbcEeGdqp2YT1LwWw" visible="false" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_iudg-zbcEeGdqp2YT1LwWw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_iudg_DbcEeGdqp2YT1LwWw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_iudg_TbcEeGdqp2YT1LwWw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iudg_jbcEeGdqp2YT1LwWw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TJ_EAFy9EeORBN8YBc21fg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TJ_EAVy9EeORBN8YBc21fg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TJ_EAly9EeORBN8YBc21fg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ScLe4GkMEeWakucY9QdE0g" type="8507">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ScLe4WkMEeWakucY9QdE0g" y="5"/>
+ </children>
+ <element xmi:type="uml:Interface" href="ClientServerTimer.uml#_cn-H0DLbEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iubEsTbcEeGdqp2YT1LwWw" x="132" y="101" width="328" height="80"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_XSHWMV36Ed-UvNEDwY5GNg"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_ScMF8GkMEeWakucY9QdE0g" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="ClientServerTimer.uml#_Tp4n8DLaEd2qeKRLMdIx_A"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_wOG5sF36Ed-UvNEDwY5GNg" type="CompositeStructure" name="CompositeDiagram Client" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_xxFIUF36Ed-UvNEDwY5GNg" type="2073" fontName="Sans Serif" fontHeight="10" fillColor="8905185" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sZxrcDenEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sZxrcTenEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xxFvYF36Ed-UvNEDwY5GNg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_xxFvYV36Ed-UvNEDwY5GNg" type="7073" collapsed="true">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xxFvYl36Ed-UvNEDwY5GNg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gcVpEDenEeGPyrZ5I3hMlA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gcWQIDenEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gcWQITenEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gcWQIjenEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gcW3MDenEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gcW3MTenEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gcW3MjenEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gcW3MzenEeGPyrZ5I3hMlA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FHl10Fl7EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FOOpUFl7EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gcW3NDenEeGPyrZ5I3hMlA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gcW3NTenEeGPyrZ5I3hMlA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gcW3NjenEeGPyrZ5I3hMlA" x="-47" y="-20"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gcVpETenEeGPyrZ5I3hMlA" x="-10" y="42"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_i3LT0DenEeGPyrZ5I3hMlA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i3L64DenEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i3L64TenEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i3L64jenEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i3L64zenEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i3L65DenEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i3L65TenEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_i3L65jenEeGPyrZ5I3hMlA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GOOGsFl7EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GT4p0Fl7EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_i3L65zenEeGPyrZ5I3hMlA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_i3Mh8DenEeGPyrZ5I3hMlA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_i3Mh8TenEeGPyrZ5I3hMlA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="ClientServerTimer.uml#_U50WMCkDEeGDDbdzqSb4UA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i3LT0TenEeGPyrZ5I3hMlA" x="-10" y="105"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZmeH8DrdEeGgAdAmWw4pyQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZmeH8jrdEeGgAdAmWw4pyQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZmevADrdEeGgAdAmWw4pyQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZmevATrdEeGgAdAmWw4pyQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZmevAjrdEeGgAdAmWw4pyQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZmevAzrdEeGgAdAmWw4pyQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZmevBDrdEeGgAdAmWw4pyQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZmevBTrdEeGgAdAmWw4pyQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FyNgIFl7EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_F2-EUFl7EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZmevBjrdEeGgAdAmWw4pyQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZmevBzrdEeGgAdAmWw4pyQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZmevCDrdEeGgAdAmWw4pyQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="ClientServerTimer.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZmeH8TrdEeGgAdAmWw4pyQ" x="153" y="81"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TZhU0Fy9EeORBN8YBc21fg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TZhU0Vy9EeORBN8YBc21fg" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="ClientServerTimer.uml#_7SAnAP76Ed6Zw96O-tCw7A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TZhU0ly9EeORBN8YBc21fg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TZh74Fy9EeORBN8YBc21fg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TZh74Vy9EeORBN8YBc21fg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TZh74ly9EeORBN8YBc21fg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SfMWoGkMEeWakucY9QdE0g" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SfMWoWkMEeWakucY9QdE0g" y="5"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Sjr1EGkMEeWakucY9QdE0g" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_Sjr1EWkMEeWakucY9QdE0g" name="stereotype" stringValue="C_Cpp::Include"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_RwTdQByJEduN1bTiWJ0lyw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Sjr1EmkMEeWakucY9QdE0g"/>
+ </children>
+ <element xmi:type="uml:Class" href="ClientServerTimer.uml#_IfjoETLbEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xxFIUV36Ed-UvNEDwY5GNg" x="126" y="153" width="163" height="133"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lvTlsAOUEeCBk5-airPjFw" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lvVa4AOUEeCBk5-airPjFw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lvVa4QOUEeCBk5-airPjFw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lvWB8AOUEeCBk5-airPjFw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lvWB8QOUEeCBk5-airPjFw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lvWB8gOUEeCBk5-airPjFw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lvWB8wOUEeCBk5-airPjFw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lvWB9AOUEeCBk5-airPjFw" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lvWpAAOUEeCBk5-airPjFw" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lvWpAQOUEeCBk5-airPjFw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qjxzIDenEeGPyrZ5I3hMlA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qjyaMDenEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qjyaMTenEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qjyaMjenEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qjyaMzenEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qjyaNDenEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qjyaNTenEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qjyaNjenEeGPyrZ5I3hMlA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GzR7kFl7EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G7WScFl7EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qjyaNzenEeGPyrZ5I3hMlA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qjyaODenEeGPyrZ5I3hMlA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qjyaOTenEeGPyrZ5I3hMlA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qjxzITenEeGPyrZ5I3hMlA" x="-10" y="27"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TZ8yoFy9EeORBN8YBc21fg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TZ9ZsFy9EeORBN8YBc21fg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TZ9ZsVy9EeORBN8YBc21fg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SfMWomkMEeWakucY9QdE0g" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SfMWo2kMEeWakucY9QdE0g" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_N6fa4JsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lvTlsQOUEeCBk5-airPjFw" x="126" y="36" width="163" height="55"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_yGogkDenEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yGpHoDenEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yGpHoTenEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yGpHojenEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yGpHozenEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yGpHpDenEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yGpHpTenEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yGpHpjenEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ClientServerTimer.uml#_yGhL0DenEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yGogkTenEeGPyrZ5I3hMlA" x="102" y="319" width="322" height="51"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Sj5QcmkMEeWakucY9QdE0g" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Sj5Qc2kMEeWakucY9QdE0g" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Sj53gGkMEeWakucY9QdE0g" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="ClientServerTimer.uml#_IfjoETLbEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Sj5QdGkMEeWakucY9QdE0g" x="326" y="153"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SkPOsGkMEeWakucY9QdE0g" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SkPOsWkMEeWakucY9QdE0g" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_SkPOs2kMEeWakucY9QdE0g" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SkPOsmkMEeWakucY9QdE0g" x="190" y="42"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SkiwtmkMEeWakucY9QdE0g" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Skiwt2kMEeWakucY9QdE0g" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_SkiwuWkMEeWakucY9QdE0g" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ClientServerTimer.uml#_U50WMCkDEeGDDbdzqSb4UA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SkiwuGkMEeWakucY9QdE0g" x="190" y="105"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Sk0dgGkMEeWakucY9QdE0g" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Sk0dgWkMEeWakucY9QdE0g" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Sk0dg2kMEeWakucY9QdE0g" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ClientServerTimer.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Sk0dgmkMEeWakucY9QdE0g" x="353" y="81"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SlLp5mkMEeWakucY9QdE0g" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SlLp52kMEeWakucY9QdE0g" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_SlMQ8GkMEeWakucY9QdE0g" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SlLp6GkMEeWakucY9QdE0g" x="190" y="27"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_wOG5sV36Ed-UvNEDwY5GNg"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_SfMWpGkMEeWakucY9QdE0g" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="ClientServerTimer.uml#_etOZkDLaEd2qeKRLMdIx_A"/>
+ <edges xmi:type="notation:Connector" xmi:id="_lwdcQAOUEeCBk5-airPjFw" type="4015" source="_xxFIUF36Ed-UvNEDwY5GNg" target="_lvTlsAOUEeCBk5-airPjFw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_lwfRcAOUEeCBk5-airPjFw" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lwfRcQOUEeCBk5-airPjFw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_lwdcQQOUEeCBk5-airPjFw" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="ClientServerTimer.uml#_34FjAPx3Ed6O2oOTPfeAMA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_lwdcQgOUEeCBk5-airPjFw" points="[-46, -44, 166, 165]$[-212, -209, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7z2z0DenEeGPyrZ5I3hMlA" type="4002" source="_yGogkDenEeGPyrZ5I3hMlA" target="_i3LT0DenEeGPyrZ5I3hMlA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_7z2z0TenEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7z2z0jenEeGPyrZ5I3hMlA" points="[4, -1, 0, 38]$[1, -39, -3, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_70JHsDenEeGPyrZ5I3hMlA" id="(0.07142857142857142,0.0784313725490196)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_70JHsTenEeGPyrZ5I3hMlA" id="(0.15,0.55)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Sj53gWkMEeWakucY9QdE0g" type="StereotypeCommentLink" source="_xxFIUF36Ed-UvNEDwY5GNg" target="_Sj5QcmkMEeWakucY9QdE0g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Sj53gmkMEeWakucY9QdE0g"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Sj53hmkMEeWakucY9QdE0g" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="ClientServerTimer.uml#_IfjoETLbEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Sj53g2kMEeWakucY9QdE0g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Sj53hGkMEeWakucY9QdE0g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Sj53hWkMEeWakucY9QdE0g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_SkPOtGkMEeWakucY9QdE0g" type="StereotypeCommentLink" source="_gcVpEDenEeGPyrZ5I3hMlA" target="_SkPOsGkMEeWakucY9QdE0g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_SkPOtWkMEeWakucY9QdE0g"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_SkPOuWkMEeWakucY9QdE0g" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SkPOtmkMEeWakucY9QdE0g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SkPOt2kMEeWakucY9QdE0g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SkPOuGkMEeWakucY9QdE0g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_SkiwumkMEeWakucY9QdE0g" type="StereotypeCommentLink" source="_i3LT0DenEeGPyrZ5I3hMlA" target="_SkiwtmkMEeWakucY9QdE0g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Skiwu2kMEeWakucY9QdE0g"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Skiwv2kMEeWakucY9QdE0g" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ClientServerTimer.uml#_U50WMCkDEeGDDbdzqSb4UA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SkiwvGkMEeWakucY9QdE0g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SkiwvWkMEeWakucY9QdE0g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SkiwvmkMEeWakucY9QdE0g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Sk0dhGkMEeWakucY9QdE0g" type="StereotypeCommentLink" source="_ZmeH8DrdEeGgAdAmWw4pyQ" target="_Sk0dgGkMEeWakucY9QdE0g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Sk0dhWkMEeWakucY9QdE0g"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Sk0diWkMEeWakucY9QdE0g" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ClientServerTimer.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Sk0dhmkMEeWakucY9QdE0g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Sk0dh2kMEeWakucY9QdE0g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Sk0diGkMEeWakucY9QdE0g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_SlMQ8WkMEeWakucY9QdE0g" type="StereotypeCommentLink" source="_qjxzIDenEeGPyrZ5I3hMlA" target="_SlLp5mkMEeWakucY9QdE0g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_SlMQ8mkMEeWakucY9QdE0g"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_SlMQ9mkMEeWakucY9QdE0g" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SlMQ82kMEeWakucY9QdE0g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SlMQ9GkMEeWakucY9QdE0g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SlMQ9WkMEeWakucY9QdE0g"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_aeSh0F37Ed-UvNEDwY5GNg" type="CompositeStructure" name="CompositeDiagram Server" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_c2tKsF37Ed-UvNEDwY5GNg" type="2073" fontName="Monospace" fontHeight="10" fillColor="8905185" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NqCEgH8eEd-5xfPoaTlRww" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NqCEgX8eEd-5xfPoaTlRww" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FV2R8DreEeGgAdAmWw4pyQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FV2R8TreEeGgAdAmWw4pyQ" key="QualifiedNameDepth" value="1"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_c2tKsl37Ed-UvNEDwY5GNg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_c2tKs137Ed-UvNEDwY5GNg" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c2tKtF37Ed-UvNEDwY5GNg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FzA74GfbEd-T-rJ3Ep9Y5Q" type="3069" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FzSosGfbEd-T-rJ3Ep9Y5Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FzTPwGfbEd-T-rJ3Ep9Y5Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FzTPwWfbEd-T-rJ3Ep9Y5Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FzT20GfbEd-T-rJ3Ep9Y5Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FzT20WfbEd-T-rJ3Ep9Y5Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FzT20mfbEd-T-rJ3Ep9Y5Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FzUd4GfbEd-T-rJ3Ep9Y5Q" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzUd4WfbEd-T-rJ3Ep9Y5Q" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FzUd4mfbEd-T-rJ3Ep9Y5Q" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzUd42fbEd-T-rJ3Ep9Y5Q" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="ClientServerTimer.uml#_4KiE8DLbEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzA74WfbEd-T-rJ3Ep9Y5Q" x="-10" y="106"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Tb56cFy9EeORBN8YBc21fg" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Tb56cVy9EeORBN8YBc21fg" showTitle="true"/>
+ <element xmi:type="FCM:RuleApplication" href="ClientServerTimer.uml#_DWIYoP6yEd6Ie_kieu_3CQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Tb56cly9EeORBN8YBc21fg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TcB2QFy9EeORBN8YBc21fg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TcB2QVy9EeORBN8YBc21fg" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="ClientServerTimer.uml#_Sa4nEP77Ed6Zw96O-tCw7A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TcB2Qly9EeORBN8YBc21fg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TcCdUFy9EeORBN8YBc21fg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TcDEYFy9EeORBN8YBc21fg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TcDEYVy9EeORBN8YBc21fg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SlcIkGkMEeWakucY9QdE0g" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SlcIkWkMEeWakucY9QdE0g" y="5"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SoKFYmkMEeWakucY9QdE0g" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_SoKFY2kMEeWakucY9QdE0g" name="stereotype" stringValue="C_Cpp::Include"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_RwTdQByJEduN1bTiWJ0lyw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SoKFZGkMEeWakucY9QdE0g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SoYH0GkMEeWakucY9QdE0g" type="StereotypeCompartment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SogDoGkMEeWakucY9QdE0g" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SogDoWkMEeWakucY9QdE0g" key="visible" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SoZV8GkMEeWakucY9QdE0g" type="StereotypeProperty">
+ <element xmi:type="uml:Property" href="pathmap://FCM_PROFILES/FCM.profile.uml#_r2VLUJD2Ed-I9dVdNhZAGQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SoZV8WkMEeWakucY9QdE0g"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SoYH0WkMEeWakucY9QdE0g" showTitle="true"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_SoYH0mkMEeWakucY9QdE0g" name="stereotype" stringValue="FCM::RuleApplication"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_te7YAMtkEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SoYH02kMEeWakucY9QdE0g"/>
+ </children>
+ <element xmi:type="uml:Class" href="ClientServerTimer.uml#_oqZNUDLaEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c2tKsV37Ed-UvNEDwY5GNg" x="134" y="74" width="217" height="137"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SoWSoGkMEeWakucY9QdE0g" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SoWSoWkMEeWakucY9QdE0g" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_SoWSo2kMEeWakucY9QdE0g" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="ClientServerTimer.uml#_oqZNUDLaEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SoWSomkMEeWakucY9QdE0g" x="334" y="74"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Spce0GkMEeWakucY9QdE0g" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Spce0WkMEeWakucY9QdE0g" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Spce02kMEeWakucY9QdE0g" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ClientServerTimer.uml#_4KiE8DLbEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Spce0mkMEeWakucY9QdE0g" x="190" y="106"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_aeSh0V37Ed-UvNEDwY5GNg"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_SlcIkmkMEeWakucY9QdE0g" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="ClientServerTimer.uml#_OGM88DLaEd2qeKRLMdIx_A"/>
+ <edges xmi:type="notation:Connector" xmi:id="_SoWSpGkMEeWakucY9QdE0g" type="StereotypeCommentLink" source="_c2tKsF37Ed-UvNEDwY5GNg" target="_SoWSoGkMEeWakucY9QdE0g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_SoWSpWkMEeWakucY9QdE0g"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_SoWSqWkMEeWakucY9QdE0g" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="ClientServerTimer.uml#_oqZNUDLaEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SoWSpmkMEeWakucY9QdE0g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SoWSp2kMEeWakucY9QdE0g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SoWSqGkMEeWakucY9QdE0g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Spce1GkMEeWakucY9QdE0g" type="StereotypeCommentLink" source="_FzA74GfbEd-T-rJ3Ep9Y5Q" target="_Spce0GkMEeWakucY9QdE0g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Spce1WkMEeWakucY9QdE0g"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Spce2WkMEeWakucY9QdE0g" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ClientServerTimer.uml#_4KiE8DLbEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Spce1mkMEeWakucY9QdE0g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Spce12kMEeWakucY9QdE0g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Spce2GkMEeWakucY9QdE0g"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_q-Wa0F37Ed-UvNEDwY5GNg" type="CompositeStructure" name="CompositeDiagram System" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_sGaPEF37Ed-UvNEDwY5GNg" type="2073" fontName="Sans Serif" fontHeight="10" transparency="0" gradient="8047085, 0, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6B6WUGSuEd-dQdK1-7wIFg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6B69YGSuEd-dQdK1-7wIFg" key="QualifiedNameDepth" value="3"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_62o-4GSuEd-dQdK1-7wIFg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_62o-4WSuEd-dQdK1-7wIFg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4WS4wHk8EeOh_8tymvdOOg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4WS4wXk8EeOh_8tymvdOOg" key="fillColor" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_sGa2IF37Ed-UvNEDwY5GNg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_sGa2IV37Ed-UvNEDwY5GNg" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_uegu4F37Ed-UvNEDwY5GNg" type="3070" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fGdKUF38Ed-UvNEDwY5GNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fGdKUV38Ed-UvNEDwY5GNg" key="QualifiedNameDepth" value="4"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uegu4l37Ed-UvNEDwY5GNg" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_d-ALMFl6EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eQykUFl6EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_uehV8F37Ed-UvNEDwY5GNg" type="7077">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uehV8V37Ed-UvNEDwY5GNg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TLHfQAcCEeGnrLqQ0OQeAg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TLJUcAcCEeGnrLqQ0OQeAg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TLJUcQcCEeGnrLqQ0OQeAg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TLJUcgcCEeGnrLqQ0OQeAg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TLJUcwcCEeGnrLqQ0OQeAg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TLJ7gAcCEeGnrLqQ0OQeAg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TLJ7gQcCEeGnrLqQ0OQeAg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TLJ7ggcCEeGnrLqQ0OQeAg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_b33lIFl6EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_b8oJUFl6EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TLJ7gwcCEeGnrLqQ0OQeAg" x="20" y="1"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TLKikAcCEeGnrLqQ0OQeAg" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TLKikQcCEeGnrLqQ0OQeAg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TLHfQQcCEeGnrLqQ0OQeAg" x="-10" y="51"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_U5_VUCkDEeGDDbdzqSb4UA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U5_8YCkDEeGDDbdzqSb4UA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U5_8YSkDEeGDDbdzqSb4UA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U5_8YikDEeGDDbdzqSb4UA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U5_8YykDEeGDDbdzqSb4UA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U5_8ZCkDEeGDDbdzqSb4UA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U5_8ZSkDEeGDDbdzqSb4UA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_U5_8ZikDEeGDDbdzqSb4UA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_k26jwFl6EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k-FiwFl6EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_U5_8ZykDEeGDDbdzqSb4UA" x="18" y="-9"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_U5_8aCkDEeGDDbdzqSb4UA" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_U6AjcCkDEeGDDbdzqSb4UA" x="27" y="9"/>
+ </children>
+ <element xmi:type="uml:Port" href="ClientServerTimer.uml#_U50WMCkDEeGDDbdzqSb4UA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U5_VUSkDEeGDDbdzqSb4UA" x="19" y="106" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1ltaADrdEeGgAdAmWw4pyQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1luBEDrdEeGgAdAmWw4pyQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1luBETrdEeGgAdAmWw4pyQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1luBEjrdEeGgAdAmWw4pyQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1luBEzrdEeGgAdAmWw4pyQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1luBFDrdEeGgAdAmWw4pyQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1luBFTrdEeGgAdAmWw4pyQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1luBFjrdEeGgAdAmWw4pyQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cVyQMFl6EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cdIOUFl6EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1luBFzrdEeGgAdAmWw4pyQ" x="-75" y="-18"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1luBGDrdEeGgAdAmWw4pyQ" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1luBGTrdEeGgAdAmWw4pyQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="ClientServerTimer.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1ltaATrdEeGgAdAmWw4pyQ" x="166" y="52"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Tg4hEFy9EeORBN8YBc21fg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Tg4hEVy9EeORBN8YBc21fg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Tg4hEly9EeORBN8YBc21fg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SppTImkMEeWakucY9QdE0g" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SppTI2kMEeWakucY9QdE0g" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="ClientServerTimer.uml#_i-I7gDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uegu4V37Ed-UvNEDwY5GNg" x="43" y="17" width="176" height="116"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_vHCHcF37Ed-UvNEDwY5GNg" type="3070" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_haY70F38Ed-UvNEDwY5GNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_haY70V38Ed-UvNEDwY5GNg" key="QualifiedNameDepth" value="4"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vHCHcl37Ed-UvNEDwY5GNg" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_guFGIFl6EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_g4e_UFl6EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_vHCHc137Ed-UvNEDwY5GNg" type="7077">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vHCHdF37Ed-UvNEDwY5GNg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3RXDgDrdEeGgAdAmWw4pyQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3RXDgjrdEeGgAdAmWw4pyQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3RXDgzrdEeGgAdAmWw4pyQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3RXDhDrdEeGgAdAmWw4pyQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3RXDhTrdEeGgAdAmWw4pyQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3RXqkDrdEeGgAdAmWw4pyQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3RXqkTrdEeGgAdAmWw4pyQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3RXqkjrdEeGgAdAmWw4pyQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lbX7sFl6EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_liaX0Fl6EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3RXqkzrdEeGgAdAmWw4pyQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3RXqlDrdEeGgAdAmWw4pyQ" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3RXqlTrdEeGgAdAmWw4pyQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="ClientServerTimer.uml#_4KiE8DLbEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3RXDgTrdEeGgAdAmWw4pyQ" x="-10" y="50"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ThBD8Fy9EeORBN8YBc21fg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ThBD8Vy9EeORBN8YBc21fg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ThBD8ly9EeORBN8YBc21fg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SppTJGkMEeWakucY9QdE0g" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SppTJWkMEeWakucY9QdE0g" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="ClientServerTimer.uml#_gV1cgDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vHCHcV37Ed-UvNEDwY5GNg" x="369" y="19" width="188" height="112"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lMUi4CjYEeGFbebITJYb9g" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lMp6ECjYEeGFbebITJYb9g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lMp6ESjYEeGFbebITJYb9g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lMp6EijYEeGFbebITJYb9g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lMp6EyjYEeGFbebITJYb9g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lMqhICjYEeGFbebITJYb9g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lMqhISjYEeGFbebITJYb9g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lMqhIijYEeGFbebITJYb9g" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_h8_JQFl6EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iGTdUFl6EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lMqhIyjYEeGFbebITJYb9g" type="7077">
+ <children xmi:type="notation:Shape" xmi:id="_1LoQsCkDEeGDDbdzqSb4UA" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1Lo3wCkDEeGDDbdzqSb4UA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1Lo3wSkDEeGDDbdzqSb4UA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1Lo3wikDEeGDDbdzqSb4UA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1Lo3wykDEeGDDbdzqSb4UA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1Lo3xCkDEeGDDbdzqSb4UA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1Lo3xSkDEeGDDbdzqSb4UA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1Lo3xikDEeGDDbdzqSb4UA" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jFXtoFl6EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jMV4UFl6EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1Lpe0CkDEeGDDbdzqSb4UA" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1Lpe0SkDEeGDDbdzqSb4UA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1Lpe0ikDEeGDDbdzqSb4UA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ThIYsFy9EeORBN8YBc21fg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ThIYsVy9EeORBN8YBc21fg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ThIYsly9EeORBN8YBc21fg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SppTKGkMEeWakucY9QdE0g" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SppTKWkMEeWakucY9QdE0g" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="pathmap://QML_CORE/core.uml#_ARs_UCjaEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1LoQsSkDEeGDDbdzqSb4UA" x="22" y="10" width="172"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1LqF4CkDEeGDDbdzqSb4UA" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1Lqs8CkDEeGDDbdzqSb4UA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1Lqs8SkDEeGDDbdzqSb4UA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1Lqs8ikDEeGDDbdzqSb4UA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1Lqs8ykDEeGDDbdzqSb4UA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1Lqs9CkDEeGDDbdzqSb4UA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1Lqs9SkDEeGDDbdzqSb4UA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1Lqs9ikDEeGDDbdzqSb4UA" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kITxUFl6EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kPQG0Fl6EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1Lqs9ykDEeGDDbdzqSb4UA" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1Lqs-CkDEeGDDbdzqSb4UA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1Lqs-SkDEeGDDbdzqSb4UA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ThK08Fy9EeORBN8YBc21fg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ThLcAFy9EeORBN8YBc21fg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ThLcAVy9EeORBN8YBc21fg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SppTKmkMEeWakucY9QdE0g" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SppTK2kMEeWakucY9QdE0g" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="pathmap://QML_CORE/core.uml#_RMqEkCjaEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1LqF4SkDEeGDDbdzqSb4UA" x="22" y="65" width="172"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lMqhJCjYEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lMqhJSjYEeGFbebITJYb9g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_OEbywCkDEeGDDbdzqSb4UA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OEdA4CkDEeGDDbdzqSb4UA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OEdA4SkDEeGDDbdzqSb4UA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OEdA4ikDEeGDDbdzqSb4UA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OEdA4ykDEeGDDbdzqSb4UA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OEdA5CkDEeGDDbdzqSb4UA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OEdA5SkDEeGDDbdzqSb4UA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_OEdn8CkDEeGDDbdzqSb4UA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bSNTUFl6EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bYdFQFl6EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OEdn8SkDEeGDDbdzqSb4UA" x="-71" y="27"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_OEdn8ikDEeGDDbdzqSb4UA" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OEdn8ykDEeGDDbdzqSb4UA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_3NSGwCkAEeGDDbdzqSb4UA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OEcZ0CkDEeGDDbdzqSb4UA" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ThFVYFy9EeORBN8YBc21fg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ThFVYVy9EeORBN8YBc21fg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ThFVYly9EeORBN8YBc21fg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SppTJmkMEeWakucY9QdE0g" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SppTJ2kMEeWakucY9QdE0g" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="ClientServerTimer.uml#_lKtZUCjYEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lMUi4SjYEeGFbebITJYb9g" x="143" y="168" width="217" height="145"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_rBvlwDbcEeGdqp2YT1LwWw" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rBwM0DbcEeGdqp2YT1LwWw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rBwM0TbcEeGdqp2YT1LwWw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rBwM0jbcEeGdqp2YT1LwWw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rBwM0zbcEeGdqp2YT1LwWw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rBwM1DbcEeGdqp2YT1LwWw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rBwM1TbcEeGdqp2YT1LwWw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_rBwz4DbcEeGdqp2YT1LwWw" type="5192"/>
+ <element xmi:type="uml:Comment" href="ClientServerTimer.uml#_q_GhcDbcEeGdqp2YT1LwWw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rBvlwTbcEeGdqp2YT1LwWw" x="388" y="249" width="215"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QeHR0DenEeGPyrZ5I3hMlA" type="3097" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QeH44DenEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QeH44TenEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QeH44jenEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QeH44zenEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QeH45DenEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QeH45TenEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QeH45jenEeGPyrZ5I3hMlA" type="5150"/>
+ <element xmi:type="uml:Comment" href="ClientServerTimer.uml#_Qd-H4DenEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QeHR0TenEeGPyrZ5I3hMlA" x="387" y="168" width="216"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_St9LZmkMEeWakucY9QdE0g" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_St9LZ2kMEeWakucY9QdE0g" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_St9LaWkMEeWakucY9QdE0g" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_St9LaGkMEeWakucY9QdE0g" x="190" y="51"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SuMb8GkMEeWakucY9QdE0g" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SuMb8WkMEeWakucY9QdE0g" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_SuMb82kMEeWakucY9QdE0g" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ClientServerTimer.uml#_U50WMCkDEeGDDbdzqSb4UA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SuMb8mkMEeWakucY9QdE0g" x="219" y="106"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SuXbFmkMEeWakucY9QdE0g" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SuXbF2kMEeWakucY9QdE0g" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_SuXbGWkMEeWakucY9QdE0g" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ClientServerTimer.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SuXbGGkMEeWakucY9QdE0g" x="366" y="52"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Suq9EGkMEeWakucY9QdE0g" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Suq9EWkMEeWakucY9QdE0g" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Suq9E2kMEeWakucY9QdE0g" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ClientServerTimer.uml#_4KiE8DLbEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Suq9EmkMEeWakucY9QdE0g" x="190" y="50"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Su9Q8mkMEeWakucY9QdE0g" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Su9Q82kMEeWakucY9QdE0g" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Su9Q9WkMEeWakucY9QdE0g" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_3NSGwCkAEeGDDbdzqSb4UA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Su9Q9GkMEeWakucY9QdE0g" x="190" y="36"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sGa2Il37Ed-UvNEDwY5GNg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Tg1dwFy9EeORBN8YBc21fg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Tg1dwVy9EeORBN8YBc21fg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Tg1dwly9EeORBN8YBc21fg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SppTIGkMEeWakucY9QdE0g" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SppTIWkMEeWakucY9QdE0g" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="ClientServerTimer.uml#_bYJagDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sGaPEV37Ed-UvNEDwY5GNg" x="68" y="32" width="635" height="356"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_q-Wa0V37Ed-UvNEDwY5GNg"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_SppTLGkMEeWakucY9QdE0g" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="ClientServerTimer.uml#_XLQjUDLiEd2RVeNawwNNzg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_s0Og4CkDEeGDDbdzqSb4UA" type="4013" source="_OEbywCkDEeGDDbdzqSb4UA" target="_U5_VUCkDEeGDDbdzqSb4UA" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_s0PH8CkDEeGDDbdzqSb4UA" type="6025">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_s0PH8SkDEeGDDbdzqSb4UA" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_s0PH8ikDEeGDDbdzqSb4UA" visible="false" type="6050">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_s0PH8ykDEeGDDbdzqSb4UA" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_s0PH9CkDEeGDDbdzqSb4UA" visible="false" type="6051">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_s0PH9SkDEeGDDbdzqSb4UA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_s0PH9ikDEeGDDbdzqSb4UA" visible="false" type="6052">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_s0PH9ykDEeGDDbdzqSb4UA" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_s0Og4SkDEeGDDbdzqSb4UA" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Connector" href="ClientServerTimer.uml#_s0Ev4CkDEeGDDbdzqSb4UA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_s0Og4ikDEeGDDbdzqSb4UA" points="[10, 0, -9, 87]$[27, 0, 8, 87]$[27, -77, 8, 10]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XWhlwCmeEeGDDbdzqSb4UA" id="(0.15,0.45)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_xFIEgDbcEeGdqp2YT1LwWw" type="4002" source="_rBvlwDbcEeGdqp2YT1LwWw" target="_1LoQsCkDEeGDDbdzqSb4UA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_xFIEgTbcEeGdqp2YT1LwWw" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_xFIEgjbcEeGdqp2YT1LwWw" points="[-4, -9, 35, 105]$[-21, -111, 18, 3]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xGPe0DbcEeGdqp2YT1LwWw" id="(0.0,0.3333333333333333)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xGPe0TbcEeGdqp2YT1LwWw" id="(0.9767441860465116,0.75)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_UgNOQDenEeGPyrZ5I3hMlA" type="4002" source="_QeHR0DenEeGPyrZ5I3hMlA" target="_lMUi4CjYEeGFbebITJYb9g" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_UgNOQTenEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UgNOQjenEeGPyrZ5I3hMlA" points="[-7, -8, 33, 0]$[-34, -12, 6, -4]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UgfiIDenEeGPyrZ5I3hMlA" id="(0.041916167664670656,0.38333333333333336)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UgfiITenEeGPyrZ5I3hMlA" id="(0.9723502304147466,0.10344827586206896)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7LU-sDrdEeGgAdAmWw4pyQ" type="4013" source="_1ltaADrdEeGgAdAmWw4pyQ" target="_3RXDgDrdEeGgAdAmWw4pyQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_7LVlwDrdEeGgAdAmWw4pyQ" visible="false" type="6025">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7LVlwTrdEeGgAdAmWw4pyQ" x="-7" y="15"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7LVlwjrdEeGgAdAmWw4pyQ" visible="false" type="6050">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7LVlwzrdEeGgAdAmWw4pyQ" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7LVlxDrdEeGgAdAmWw4pyQ" visible="false" type="6051">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7LVlxTrdEeGgAdAmWw4pyQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7LVlxjrdEeGgAdAmWw4pyQ" visible="false" type="6052">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7LVlxzrdEeGgAdAmWw4pyQ" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_7LU-sTrdEeGgAdAmWw4pyQ" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Connector" href="ClientServerTimer.uml#_fXbtMACUEd-PD8FdFs7bpA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7LU-sjrdEeGgAdAmWw4pyQ" points="[10, 0, -140, 0]$[140, 0, -10, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_St9LamkMEeWakucY9QdE0g" type="StereotypeCommentLink" source="_TLHfQAcCEeGnrLqQ0OQeAg" target="_St9LZmkMEeWakucY9QdE0g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_St9La2kMEeWakucY9QdE0g"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_St9ycmkMEeWakucY9QdE0g" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_St9LbGkMEeWakucY9QdE0g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_St9ycGkMEeWakucY9QdE0g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_St9ycWkMEeWakucY9QdE0g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_SuMb9GkMEeWakucY9QdE0g" type="StereotypeCommentLink" source="_U5_VUCkDEeGDDbdzqSb4UA" target="_SuMb8GkMEeWakucY9QdE0g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_SuMb9WkMEeWakucY9QdE0g"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_SuMb-WkMEeWakucY9QdE0g" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ClientServerTimer.uml#_U50WMCkDEeGDDbdzqSb4UA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SuMb9mkMEeWakucY9QdE0g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SuMb92kMEeWakucY9QdE0g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SuMb-GkMEeWakucY9QdE0g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_SuXbGmkMEeWakucY9QdE0g" type="StereotypeCommentLink" source="_1ltaADrdEeGgAdAmWw4pyQ" target="_SuXbFmkMEeWakucY9QdE0g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_SuXbG2kMEeWakucY9QdE0g"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_SuXbH2kMEeWakucY9QdE0g" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ClientServerTimer.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SuXbHGkMEeWakucY9QdE0g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SuXbHWkMEeWakucY9QdE0g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SuXbHmkMEeWakucY9QdE0g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Suq9FGkMEeWakucY9QdE0g" type="StereotypeCommentLink" source="_3RXDgDrdEeGgAdAmWw4pyQ" target="_Suq9EGkMEeWakucY9QdE0g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Suq9FWkMEeWakucY9QdE0g"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Suq9GWkMEeWakucY9QdE0g" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ClientServerTimer.uml#_4KiE8DLbEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Suq9FmkMEeWakucY9QdE0g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Suq9F2kMEeWakucY9QdE0g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Suq9GGkMEeWakucY9QdE0g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Su9Q9mkMEeWakucY9QdE0g" type="StereotypeCommentLink" source="_OEbywCkDEeGDDbdzqSb4UA" target="_Su9Q8mkMEeWakucY9QdE0g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Su9Q92kMEeWakucY9QdE0g"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Su9Q-2kMEeWakucY9QdE0g" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_3NSGwCkAEeGDDbdzqSb4UA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Su9Q-GkMEeWakucY9QdE0g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Su9Q-WkMEeWakucY9QdE0g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Su9Q-mkMEeWakucY9QdE0g"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_6FvnwGONEd-seu3qyZgHfg" type="PapyrusUMLClassDiagram" name="deployment plans" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_7Fso4GONEd-seu3qyZgHfg" type="2007" fontName="Sans Serif" fontHeight="10" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7FvFImONEd-seu3qyZgHfg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7FvsMGONEd-seu3qyZgHfg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7FvsMWONEd-seu3qyZgHfg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7FvsMmONEd-seu3qyZgHfg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_30xTEGTfEd-rCOWJcspHOA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_30xTEWTfEd-rCOWJcspHOA" key="ShadowFigure_Value" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7FvsM2ONEd-seu3qyZgHfg" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7FvsNGONEd-seu3qyZgHfg" type="7016">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7FvsNWONEd-seu3qyZgHfg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TjxdAFy9EeORBN8YBc21fg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TjxdAVy9EeORBN8YBc21fg" showTitle="true"/>
+ <element xmi:type="FCM:DeploymentPlan" href="ClientServerTimer.uml#_6dGQgP6zEd6Ie_kieu_3CQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TjxdAly9EeORBN8YBc21fg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TjyEEFy9EeORBN8YBc21fg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TjyEEVy9EeORBN8YBc21fg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TjyEEly9EeORBN8YBc21fg"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_7FtP8GONEd-seu3qyZgHfg"/>
+ <element xmi:type="uml:Package" href="ClientServerTimer.uml#_5Z7MEDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7FtP8WONEd-seu3qyZgHfg" x="77" y="68"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7zJkwGONEd-seu3qyZgHfg" type="2007" fontName="Sans Serif" fontHeight="10" transparency="0" gradient="8047085, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7zKL0mONEd-seu3qyZgHfg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7zKL02ONEd-seu3qyZgHfg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7zKL1GONEd-seu3qyZgHfg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7zKL1WONEd-seu3qyZgHfg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5T0rAGTfEd-rCOWJcspHOA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5T0rAWTfEd-rCOWJcspHOA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7zKL1mONEd-seu3qyZgHfg" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7zKL12ONEd-seu3qyZgHfg" type="7016">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7zKL2GONEd-seu3qyZgHfg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Tj0gUFy9EeORBN8YBc21fg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Tj0gUVy9EeORBN8YBc21fg" showTitle="true"/>
+ <element xmi:type="FCM:DeploymentPlan" href="ClientServerTimer.uml#_bBdJUP_BEd6628OhKk_dpg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Tj0gUly9EeORBN8YBc21fg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Tj1HYFy9EeORBN8YBc21fg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Tj1HYVy9EeORBN8YBc21fg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Tj1HYly9EeORBN8YBc21fg"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_7zJkwWONEd-seu3qyZgHfg"/>
+ <element xmi:type="uml:Package" href="ClientServerTimer.uml#_bBSxQP_BEd6628OhKk_dpg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7zJkwmONEd-seu3qyZgHfg" x="77" y="191"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QU0ngKDjEd-rLNbSWf1QuA" type="2008" fontName="Sans Serif" fontHeight="10" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QU3DwKDjEd-rLNbSWf1QuA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QU3DwaDjEd-rLNbSWf1QuA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QU3q0KDjEd-rLNbSWf1QuA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QU3q0aDjEd-rLNbSWf1QuA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QU4R4KDjEd-rLNbSWf1QuA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QU4R4aDjEd-rLNbSWf1QuA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v0z_4Hk8EeOh_8tymvdOOg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_v00m8Hk8EeOh_8tymvdOOg" key="fillColor" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QU4R4qDjEd-rLNbSWf1QuA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QU4R46DjEd-rLNbSWf1QuA" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QU4R5KDjEd-rLNbSWf1QuA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QU4R5aDjEd-rLNbSWf1QuA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QU4R5qDjEd-rLNbSWf1QuA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QU448KDjEd-rLNbSWf1QuA" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QU448aDjEd-rLNbSWf1QuA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QU448qDjEd-rLNbSWf1QuA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QU4486DjEd-rLNbSWf1QuA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QU449KDjEd-rLNbSWf1QuA" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QU449aDjEd-rLNbSWf1QuA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QU449qDjEd-rLNbSWf1QuA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QU4496DjEd-rLNbSWf1QuA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Tj4KsFy9EeORBN8YBc21fg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Tj4KsVy9EeORBN8YBc21fg" showTitle="true"/>
+ <element xmi:type="FCM:Configuration" href="ClientServerTimer.uml#_Y10_QKDjEd-rLNbSWf1QuA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Tj4Ksly9EeORBN8YBc21fg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Tj5Y0Fy9EeORBN8YBc21fg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Tj5Y0Vy9EeORBN8YBc21fg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Tj5Y0ly9EeORBN8YBc21fg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Sve1YGkMEeWakucY9QdE0g" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Sve1YWkMEeWakucY9QdE0g" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="ClientServerTimer.uml#_QT6okKDjEd-rLNbSWf1QuA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QU0ngaDjEd-rLNbSWf1QuA" x="366" y="87" width="184" height="65"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7A5iUDemEeGPyrZ5I3hMlA" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7A6JYDemEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7A6JYTemEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7A6JYjemEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7A6JYzemEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7A6JZDemEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7A6JZTemEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7A6JZjemEeGPyrZ5I3hMlA" type="5038"/>
+ <element xmi:type="uml:Comment" href="ClientServerTimer.uml#_7AvxUDemEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7A5iUTemEeGPyrZ5I3hMlA" x="350" y="204"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SyQckGkMEeWakucY9QdE0g" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SyQckWkMEeWakucY9QdE0g" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_SyQck2kMEeWakucY9QdE0g" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Package" href="ClientServerTimer.uml#_5Z7MEDLiEd2RVeNawwNNzg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SyQckmkMEeWakucY9QdE0g" x="277" y="68"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SzvDQmkMEeWakucY9QdE0g" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SzvDQ2kMEeWakucY9QdE0g" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_SzvDRWkMEeWakucY9QdE0g" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Package" href="ClientServerTimer.uml#_bBSxQP_BEd6628OhKk_dpg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SzvDRGkMEeWakucY9QdE0g" x="277" y="191"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Sz-T0GkMEeWakucY9QdE0g" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Sz-T0WkMEeWakucY9QdE0g" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Sz-T02kMEeWakucY9QdE0g" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="ClientServerTimer.uml#_QT6okKDjEd-rLNbSWf1QuA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Sz-T0mkMEeWakucY9QdE0g" x="566" y="87"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_6FvnwWONEd-seu3qyZgHfg"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_Sve1YmkMEeWakucY9QdE0g" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="ClientServerTimer.uml#_234GEDLiEd2RVeNawwNNzg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_G5oq4DenEeGPyrZ5I3hMlA" type="4013" source="_7A5iUDemEeGPyrZ5I3hMlA" target="_7Fso4GONEd-seu3qyZgHfg" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_G5oq4TenEeGPyrZ5I3hMlA" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_G5oq4jenEeGPyrZ5I3hMlA" points="[-14, -13, 86, 77]$[-87, -88, 13, 2]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_G537cDenEeGPyrZ5I3hMlA" id="(0.029787234042553193,0.36666666666666664)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_G537cTenEeGPyrZ5I3hMlA" id="(0.935,0.68)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_HVm1MDenEeGPyrZ5I3hMlA" type="4013" source="_7A5iUDemEeGPyrZ5I3hMlA" target="_7zJkwGONEd-seu3qyZgHfg" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_HVm1MTenEeGPyrZ5I3hMlA" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HVm1MjenEeGPyrZ5I3hMlA" points="[-4, 1, 99, -36]$[-77, 44, 26, 7]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HV2FwDenEeGPyrZ5I3hMlA" id="(0.00851063829787234,0.36666666666666664)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HV2FwTenEeGPyrZ5I3hMlA" id="(0.87,0.72)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_SyQclGkMEeWakucY9QdE0g" type="StereotypeCommentLink" source="_7Fso4GONEd-seu3qyZgHfg" target="_SyQckGkMEeWakucY9QdE0g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_SyQclWkMEeWakucY9QdE0g"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_SyQcmWkMEeWakucY9QdE0g" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Package" href="ClientServerTimer.uml#_5Z7MEDLiEd2RVeNawwNNzg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SyQclmkMEeWakucY9QdE0g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SyQcl2kMEeWakucY9QdE0g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SyQcmGkMEeWakucY9QdE0g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_SzvqUGkMEeWakucY9QdE0g" type="StereotypeCommentLink" source="_7zJkwGONEd-seu3qyZgHfg" target="_SzvDQmkMEeWakucY9QdE0g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_SzvqUWkMEeWakucY9QdE0g"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_SzvqVWkMEeWakucY9QdE0g" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Package" href="ClientServerTimer.uml#_bBSxQP_BEd6628OhKk_dpg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SzvqUmkMEeWakucY9QdE0g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SzvqU2kMEeWakucY9QdE0g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SzvqVGkMEeWakucY9QdE0g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Sz-T1GkMEeWakucY9QdE0g" type="StereotypeCommentLink" source="_QU0ngKDjEd-rLNbSWf1QuA" target="_Sz-T0GkMEeWakucY9QdE0g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Sz-T1WkMEeWakucY9QdE0g"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Sz-T2WkMEeWakucY9QdE0g" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="ClientServerTimer.uml#_QT6okKDjEd-rLNbSWf1QuA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Sz-T1mkMEeWakucY9QdE0g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Sz-T12kMEeWakucY9QdE0g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Sz-T2GkMEeWakucY9QdE0g"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_KYrjcKxkEeCgusK7cm6qjQ" type="PapyrusUMLClassDiagram" name="Platform" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_LsWKwKxkEeCgusK7cm6qjQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LsWx0KxkEeCgusK7cm6qjQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LsWx0axkEeCgusK7cm6qjQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LsWx0qxkEeCgusK7cm6qjQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LsWx06xkEeCgusK7cm6qjQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LsWx1KxkEeCgusK7cm6qjQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LsWx1axkEeCgusK7cm6qjQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LsWx1qxkEeCgusK7cm6qjQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LsXY4KxkEeCgusK7cm6qjQ" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LsXY4axkEeCgusK7cm6qjQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LsXY4qxkEeCgusK7cm6qjQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LsXY46xkEeCgusK7cm6qjQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LsXY5KxkEeCgusK7cm6qjQ" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LsXY5axkEeCgusK7cm6qjQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LsXY5qxkEeCgusK7cm6qjQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LsXY56xkEeCgusK7cm6qjQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LsXY6KxkEeCgusK7cm6qjQ" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LsXY6axkEeCgusK7cm6qjQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LsXY6qxkEeCgusK7cm6qjQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LsXY66xkEeCgusK7cm6qjQ"/>
+ </children>
+ <element xmi:type="uml:Node" href="ClientServerTimer.uml#_zY9vMDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LsWKwaxkEeCgusK7cm6qjQ" x="57" y="55" width="160" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_MR1dcKxkEeCgusK7cm6qjQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MR1dcqxkEeCgusK7cm6qjQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MR1dc6xkEeCgusK7cm6qjQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MR1ddKxkEeCgusK7cm6qjQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MR1ddaxkEeCgusK7cm6qjQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MR1ddqxkEeCgusK7cm6qjQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MR1dd6xkEeCgusK7cm6qjQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_MR1deKxkEeCgusK7cm6qjQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MR2EgKxkEeCgusK7cm6qjQ" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_MR2EgaxkEeCgusK7cm6qjQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_MR2EgqxkEeCgusK7cm6qjQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MR2Eg6xkEeCgusK7cm6qjQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MR2EhKxkEeCgusK7cm6qjQ" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_MR2EhaxkEeCgusK7cm6qjQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_MR2EhqxkEeCgusK7cm6qjQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MR2Eh6xkEeCgusK7cm6qjQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MR2EiKxkEeCgusK7cm6qjQ" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_MR2EiaxkEeCgusK7cm6qjQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_MR2EiqxkEeCgusK7cm6qjQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MR2Ei6xkEeCgusK7cm6qjQ"/>
+ </children>
+ <element xmi:type="uml:Node" href="ClientServerTimer.uml#_MxayMP_BEd6628OhKk_dpg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MR1dcaxkEeCgusK7cm6qjQ" x="252" y="54" height="73"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_KYrjcaxkEeCgusK7cm6qjQ"/>
+ <element xmi:type="uml:Package" href="ClientServerTimer.uml#_v3fMgDLiEd2RVeNawwNNzg"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_HoscYMniEeCMCo5Ox2CNmg" type="CompositeStructure" name="HWArchitecture" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_M1wXIMniEeCMCo5Ox2CNmg" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_M10BgMniEeCMCo5Ox2CNmg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M10BgcniEeCMCo5Ox2CNmg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_M10BgsniEeCMCo5Ox2CNmg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M10Bg8niEeCMCo5Ox2CNmg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_M10BhMniEeCMCo5Ox2CNmg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M10BhcniEeCMCo5Ox2CNmg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_M10BhsniEeCMCo5Ox2CNmg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_M10Bh8niEeCMCo5Ox2CNmg" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_QgbSEMniEeCMCo5Ox2CNmg" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QgbSEsniEeCMCo5Ox2CNmg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QgbSE8niEeCMCo5Ox2CNmg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Qgb5IMniEeCMCo5Ox2CNmg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qgb5IcniEeCMCo5Ox2CNmg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Qgb5IsniEeCMCo5Ox2CNmg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qgb5I8niEeCMCo5Ox2CNmg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Qgb5JMniEeCMCo5Ox2CNmg" type="5126"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Qgb5JcniEeCMCo5Ox2CNmg" type="7077">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Qgb5JsniEeCMCo5Ox2CNmg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TmahUFy9EeORBN8YBc21fg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TmahUVy9EeORBN8YBc21fg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TmahUly9EeORBN8YBc21fg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_S0JS8mkMEeWakucY9QdE0g" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_S0JS82kMEeWakucY9QdE0g" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="ClientServerTimer.uml#_QgKzYMniEeCMCo5Ox2CNmg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QgbSEcniEeCMCo5Ox2CNmg" x="83" y="28" width="165" height="55"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M10BiMniEeCMCo5Ox2CNmg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TmYFEFy9EeORBN8YBc21fg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TmYFEVy9EeORBN8YBc21fg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TmYFEly9EeORBN8YBc21fg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_S0JS8GkMEeWakucY9QdE0g" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_S0JS8WkMEeWakucY9QdE0g" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="ClientServerTimer.uml#_M1a_8MniEeCMCo5Ox2CNmg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M1wXIcniEeCMCo5Ox2CNmg" x="72" y="54" width="361" height="145"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Xmz24Da3EeGBl4WmUxMhOA" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Xm1FADa3EeGBl4WmUxMhOA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Xm1FATa3EeGBl4WmUxMhOA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Xm1FAja3EeGBl4WmUxMhOA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Xm1FAza3EeGBl4WmUxMhOA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Xm1sEDa3EeGBl4WmUxMhOA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Xm1sETa3EeGBl4WmUxMhOA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Xm1sEja3EeGBl4WmUxMhOA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Xm1sEza3EeGBl4WmUxMhOA" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_eBxIIDa3EeGBl4WmUxMhOA" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eBxvMDa3EeGBl4WmUxMhOA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eBxvMTa3EeGBl4WmUxMhOA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eBxvMja3EeGBl4WmUxMhOA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eBxvMza3EeGBl4WmUxMhOA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eBxvNDa3EeGBl4WmUxMhOA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eBxvNTa3EeGBl4WmUxMhOA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_eBxvNja3EeGBl4WmUxMhOA" type="5126"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_eBxvNza3EeGBl4WmUxMhOA" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_eBxvODa3EeGBl4WmUxMhOA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eBxvOTa3EeGBl4WmUxMhOA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TmgA4Fy9EeORBN8YBc21fg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TmgA4Vy9EeORBN8YBc21fg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TmgA4ly9EeORBN8YBc21fg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_S0JS9mkMEeWakucY9QdE0g" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_S0JS92kMEeWakucY9QdE0g" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="ClientServerTimer.uml#_eBgCYDa3EeGBl4WmUxMhOA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eBxIITa3EeGBl4WmUxMhOA" x="85" y="26" width="163"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Xm1sFDa3EeGBl4WmUxMhOA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Xm1sFTa3EeGBl4WmUxMhOA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TmdkoFy9EeORBN8YBc21fg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TmdkoVy9EeORBN8YBc21fg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Tmdkoly9EeORBN8YBc21fg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_S0JS9GkMEeWakucY9QdE0g" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_S0JS9WkMEeWakucY9QdE0g" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="ClientServerTimer.uml#_XkN14Da3EeGBl4WmUxMhOA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Xmz24Ta3EeGBl4WmUxMhOA" x="72" y="240" width="361" height="130"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_HoscYcniEeCMCo5Ox2CNmg"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_S0JS-GkMEeWakucY9QdE0g" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="ClientServerTimer.uml#_v3fMgDLiEd2RVeNawwNNzg"/>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/ClientServerTimer.uml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/ClientServerTimer.uml
new file mode 100644
index 00000000000..55d57426110
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/ClientServerTimer.uml
@@ -0,0 +1,395 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Alloc="http://www.eclipse.org/papyrus/Alloc/1" xmlns:C_Cpp="http://www.eclipse.org/papyrus/C_Cpp/1" xmlns:FCM="http://www.eclipse.org/papyrus/FCM/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/papyrus/Alloc/1 http://www.eclipse.org/papyrus/MARTE/1#//Alloc">
+ <uml:Model xmi:id="_O6TiIDLUEd26WNosUASSSw" name="ClientServerTimer">
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_O6TiITLUEd26WNosUASSSw">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_Bc1WIFW4Ed63BrxiKsw-0Q">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/core.uml#_O6TiIDLUEd26WNosUASSSw"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_rwBsMP7AEd6Zw96O-tCw7A">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/corba.uml#_DtQEwDLdEd2_U4efLnjQIw"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Package" xmi:id="_LOqIEDLaEd2qeKRLMdIx_A" name="ComponentModel">
+ <packagedElement xmi:type="uml:Package" xmi:id="_OGM88DLaEd2qeKRLMdIx_A" name="Server">
+ <packagedElement xmi:type="uml:Class" xmi:id="_oqZNUDLaEd2qeKRLMdIx_A" name="CServer_impl">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_4KiE8DLbEd2qeKRLMdIx_A" name="p" type="_cn-H0DLbEd2qeKRLMdIx_A" aggregation="composite"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_YQqH0JYlEd6G9q9hwr11bw" name="derived realization of ICompute" client="_oqZNUDLaEd2qeKRLMdIx_A" supplier="_cn-H0DLbEd2qeKRLMdIx_A" contract="_cn-H0DLbEd2qeKRLMdIx_A"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_ML-4AKI5Ed6FqJCjEUrkqQ" name="add" specification="_TbIjUJYlEd6G9q9hwr11bw">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_p8CfgFy9EeORBN8YBc21fg" name="a">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_p8DGkFy9EeORBN8YBc21fg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_p8DtoFy9EeORBN8YBc21fg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_p8EUsFy9EeORBN8YBc21fg" name="b">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_p8Fi0Fy9EeORBN8YBc21fg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_p8Fi0Vy9EeORBN8YBc21fg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_p8GJ4Fy9EeORBN8YBc21fg" name="res" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_p8GJ4Vy9EeORBN8YBc21fg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_p8Gw8Fy9EeORBN8YBc21fg" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;server: got add request for a=&quot; &lt;&lt; a &lt;&lt; &quot; and b=&quot; &lt;&lt; b &lt;&lt; endl;
+return a+b;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_I1R3YAcDEeGnrLqQ0OQeAg" name="mult" specification="_4ZEZwHecEd6r18stFZxmFQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_p8HYAFy9EeORBN8YBc21fg" name="a">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_p8HYAVy9EeORBN8YBc21fg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_p8H_EFy9EeORBN8YBc21fg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_p8H_EVy9EeORBN8YBc21fg" name="b">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_p8H_Ely9EeORBN8YBc21fg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_p8ImIFy9EeORBN8YBc21fg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_p8ImIVy9EeORBN8YBc21fg" name="res" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_p8JNMFy9EeORBN8YBc21fg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_p8JNMVy9EeORBN8YBc21fg" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;server: got mult request for a=&quot; &lt;&lt; a &lt;&lt; &quot; and b=&quot; &lt;&lt; b &lt;&lt; endl;
+return a*b;</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_4ZEZwHecEd6r18stFZxmFQ" name="mult" method="_I1R3YAcDEeGnrLqQ0OQeAg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_4ZEZwXecEd6r18stFZxmFQ" name="a">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_4ZEZwnecEd6r18stFZxmFQ" name="b">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_4ZEZw3ecEd6r18stFZxmFQ" name="res" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_TbIjUJYlEd6G9q9hwr11bw" name="add" method="_ML-4AKI5Ed6FqJCjEUrkqQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_TbZCAJYlEd6G9q9hwr11bw" name="a">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_TbdTcJYlEd6G9q9hwr11bw" name="b">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_TbkoMJYlEd6G9q9hwr11bw" name="res" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_Tp4n8DLaEd2qeKRLMdIx_A" name="Interfaces">
+ <packagedElement xmi:type="uml:Interface" xmi:id="_cn-H0DLbEd2qeKRLMdIx_A" name="ICompute">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_DGs6wDLgEd28fJKJJnUaeQ" name="add" isAbstract="true">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_DGs6wTLgEd28fJKJJnUaeQ" name="a">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DGs6wzLgEd28fJKJJnUaeQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DGs6wjLgEd28fJKJJnUaeQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_DGs6xTLgEd28fJKJJnUaeQ" name="b">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DGs6xzLgEd28fJKJJnUaeQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DGs6xjLgEd28fJKJJnUaeQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_DGs6yTLgEd28fJKJJnUaeQ" name="res" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DGs6yzLgEd28fJKJJnUaeQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DGs6yjLgEd28fJKJJnUaeQ" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_L8EY8DLgEd28fJKJJnUaeQ" name="mult" isAbstract="true">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_L8EY8TLgEd28fJKJJnUaeQ" name="a">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_L8EY8zLgEd28fJKJJnUaeQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_L8EY8jLgEd28fJKJJnUaeQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_L8EY9TLgEd28fJKJJnUaeQ" name="b">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_L8EY9zLgEd28fJKJJnUaeQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_L8EY9jLgEd28fJKJJnUaeQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_L8EY-TLgEd28fJKJJnUaeQ" name="res" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_L8EY-zLgEd28fJKJJnUaeQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_L8EY-jLgEd28fJKJJnUaeQ" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_etOZkDLaEd2qeKRLMdIx_A" name="Client">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_yGhL0DenEeGPyrZ5I3hMlA" annotatedElement="_U50WMCkDEeGDDbdzqSb4UA">
+ <body>Additional &quot;tick&quot; port. The contained tick operation is called by the timer. See composite diagram of system for the assembly </body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_IfjoETLbEd2qeKRLMdIx_A" name="CClient_impl">
+ <generalization xmi:type="uml:Generalization" xmi:id="_34FjAPx3Ed6O2oOTPfeAMA">
+ <general xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_N6fa4JsrEd61Eo3nmu3JhQ"/>
+ </generalization>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_DtWn4DLcEd2qeKRLMdIx_A" name="q" type="_cn-H0DLbEd2qeKRLMdIx_A" aggregation="composite"/>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_U50WMCkDEeGDDbdzqSb4UA" name="tick" aggregation="composite">
+ <type xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_Xb-y0AweEd6it_RkGhz_AA"/>
+ </ownedAttribute>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_vdcwkKDcEd-t8JNe-ruCrQ" name="derived realization of IStart" client="_IfjoETLbEd2qeKRLMdIx_A">
+ <supplier xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_PTWzwCS-Ed-A_I32T0fkaA"/>
+ <contract xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_PTWzwCS-Ed-A_I32T0fkaA"/>
+ </interfaceRealization>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_qfhbMCozEeGxrprK9wB9iA" name="derived realization of ITick" client="_IfjoETLbEd2qeKRLMdIx_A">
+ <supplier xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_Xb-y0AweEd6it_RkGhz_AA"/>
+ <contract xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_Xb-y0AweEd6it_RkGhz_AA"/>
+ </interfaceRealization>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_yXNVoKF4Ed6FqJCjEUrkqQ" name="run" specification="_4CRrYHpbEd-X4Z9aZ0cpCQ">
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;call via port q: add(2, 3);&quot; &lt;&lt; endl;
+cout &lt;&lt; &quot;result: &quot; &lt;&lt; q->add(2, 3) &lt;&lt; endl;
+cout &lt;&lt; &quot;now sleeping 10 seconds&quot; &lt;&lt; endl;
+sleep(10);
+cout &lt;&lt; &quot;finishing CClient_impl::run&quot; &lt;&lt; endl;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_w5uegCozEeGxrprK9wB9iA" name="tick" specification="_qf6cwCozEeGxrprK9wB9iA">
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;call via port tick: mult(4, 5);&quot; &lt;&lt; endl;
+cout &lt;&lt; &quot;result: &quot; &lt;&lt; q->mult(4, 5) &lt;&lt; endl;</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_4CRrYHpbEd-X4Z9aZ0cpCQ" name="run" method="_yXNVoKF4Ed6FqJCjEUrkqQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_qf6cwCozEeGxrprK9wB9iA" name="tick" method="_w5uegCozEeGxrprK9wB9iA"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_XLQjUDLiEd2RVeNawwNNzg" name="System">
+ <packagedElement xmi:type="uml:Class" xmi:id="_bYJagDLiEd2RVeNawwNNzg" name="System_impl">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_q_GhcDbcEeGdqp2YT1LwWw">
+ <annotatedElement xmi:type="uml:Property" href="pathmap://QML_CORE/core.uml#_ARs_UCjaEeGFbebITJYb9g"/>
+ <body>Period of timer can be configured via
+&quot;configure instance properties&quot; popup (once timer attribute is selected)</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Qd-H4DenEeGPyrZ5I3hMlA" annotatedElement="_lKtZUCjYEeGFbebITJYb9g">
+ <body>Part of Qompasss modeling library</body>
+ </ownedComment>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_gV1cgDLiEd2RVeNawwNNzg" name="server" type="_oqZNUDLaEd2qeKRLMdIx_A" isUnique="false" aggregation="composite"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_i-I7gDLiEd2RVeNawwNNzg" name="client" visibility="public" type="_IfjoETLbEd2qeKRLMdIx_A" isUnique="false" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_d5JgYFl6EeKFQZ_XV_Kn6g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_d5KugFl6EeKFQZ_XV_Kn6g" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_d5MjsFl6EeKFQZ_XV_Kn6g">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_lKtZUCjYEeGFbebITJYb9g" name="timer" visibility="public" aggregation="composite">
+ <type xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_-X6zMCjZEeGFbebITJYb9g"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ofEtECjYEeGFbebITJYb9g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ofGiQCjYEeGFbebITJYb9g" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_ofI-gCjYEeGFbebITJYb9g">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedConnector xmi:type="uml:Connector" xmi:id="_fXbtMACUEd-PD8FdFs7bpA" name="qpconnector">
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_fYI30ACUEd-PD8FdFs7bpA" partWithPort="_i-I7gDLiEd2RVeNawwNNzg" role="_DtWn4DLcEd2qeKRLMdIx_A"/>
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_fYLUEACUEd-PD8FdFs7bpA" partWithPort="_gV1cgDLiEd2RVeNawwNNzg" role="_4KiE8DLbEd2qeKRLMdIx_A"/>
+ </ownedConnector>
+ <ownedConnector xmi:type="uml:Connector" xmi:id="_s0Ev4CkDEeGDDbdzqSb4UA" name="Connector1">
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_s0FW8CkDEeGDDbdzqSb4UA" partWithPort="_lKtZUCjYEeGFbebITJYb9g">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_s0FW8ikDEeGDDbdzqSb4UA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_s0FW8SkDEeGDDbdzqSb4UA" value="1"/>
+ <role xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_3NSGwCkAEeGDDbdzqSb4UA"/>
+ </end>
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_s0FW8ykDEeGDDbdzqSb4UA" partWithPort="_i-I7gDLiEd2RVeNawwNNzg" role="_U50WMCkDEeGDDbdzqSb4UA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_s0FW9SkDEeGDDbdzqSb4UA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_s0FW9CkDEeGDDbdzqSb4UA" value="1"/>
+ </end>
+ </ownedConnector>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_v3fMgDLiEd2RVeNawwNNzg" name="PlatformModel">
+ <packagedElement xmi:type="uml:Node" xmi:id="_zY9vMDLiEd2RVeNawwNNzg" name="LinuxHost"/>
+ <packagedElement xmi:type="uml:Node" xmi:id="_MxayMP_BEd6628OhKk_dpg" name="CygwinHost"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_M1a_8MniEeCMCo5Ox2CNmg" name="HWArchitectureLinux">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_QgKzYMniEeCMCo5Ox2CNmg" name="linux" visibility="public" type="_zY9vMDLiEd2RVeNawwNNzg" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XijRAMniEeCMCo5Ox2CNmg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XkfxwMniEeCMCo5Ox2CNmg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_XlIq8MniEeCMCo5Ox2CNmg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_XkN14Da3EeGBl4WmUxMhOA" name="HWArchitectureCygwin">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_eBgCYDa3EeGBl4WmUxMhOA" name="cygwin" visibility="public" type="_MxayMP_BEd6628OhKk_dpg" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j8xuADa3EeGBl4WmUxMhOA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j84bsDa3EeGBl4WmUxMhOA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_j936MDa3EeGBl4WmUxMhOA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_6EfzEDa3EeGBl4WmUxMhOA" name="HWArchitectureLinuxPlatform">
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_6EgaIDa3EeGBl4WmUxMhOA" name="linux" classifier="_zY9vMDLiEd2RVeNawwNNzg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_BPe9oDa5EeG-uqYpasEQgg" name="HWArchitectureCygwinPlatform">
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_BQRAwDa5EeG-uqYpasEQgg" name="cygwin" classifier="_MxayMP_BEd6628OhKk_dpg"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_234GEDLiEd2RVeNawwNNzg" name="deployment">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_7AvxUDemEeGPyrZ5I3hMlA" annotatedElement="_5Z7MEDLiEd2RVeNawwNNzg _bBSxQP_BEd6628OhKk_dpg">
+ <body>Linux and cygwin require different deployment plans, since we use different target platforms
+</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Package" xmi:id="_5Z7MEDLiEd2RVeNawwNNzg" name="linux">
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_L9xhwDLjEd2RVeNawwNNzg" name="mySystem" classifier="_bYJagDLiEd2RVeNawwNNzg">
+ <slot xmi:type="uml:Slot" xmi:id="_TdCvsDLjEd2RVeNawwNNzg" definingFeature="_gV1cgDLiEd2RVeNawwNNzg">
+ <value xmi:type="uml:InstanceValue" xmi:id="_fw8xUDLjEd2RVeNawwNNzg" name="" instance="_MyQ5wDLjEd2RVeNawwNNzg"/>
+ </slot>
+ <slot xmi:type="uml:Slot" xmi:id="_YhikUDLjEd2RVeNawwNNzg" definingFeature="_i-I7gDLiEd2RVeNawwNNzg">
+ <value xmi:type="uml:InstanceValue" xmi:id="_lAoiQDLjEd2RVeNawwNNzg" instance="_P3ovQDLjEd2RVeNawwNNzg"/>
+ </slot>
+ <slot xmi:type="uml:Slot" xmi:id="_n1a1wSnNEeGxrprK9wB9iA" definingFeature="_lKtZUCjYEeGFbebITJYb9g">
+ <value xmi:type="uml:InstanceValue" xmi:id="_n1cD4CnNEeGxrprK9wB9iA" instance="_n1ThACnNEeGxrprK9wB9iA"/>
+ </slot>
+ </packagedElement>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_MyQ5wDLjEd2RVeNawwNNzg" name="mySystem.server" classifier="_oqZNUDLaEd2qeKRLMdIx_A"/>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_P3ovQDLjEd2RVeNawwNNzg" name="mySystem.client" classifier="_IfjoETLbEd2qeKRLMdIx_A"/>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_n1ThACnNEeGxrprK9wB9iA" name="mySystem.timer">
+ <classifier xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_-X6zMCjZEeGFbebITJYb9g"/>
+ <slot xmi:type="uml:Slot" xmi:id="_n1XLYCnNEeGxrprK9wB9iA">
+ <definingFeature xmi:type="uml:Property" href="pathmap://QML_CORE/core.uml#_ARs_UCjaEeGFbebITJYb9g"/>
+ <value xmi:type="uml:InstanceValue" xmi:id="_n1XycCnNEeGxrprK9wB9iA" instance="_n1V9QCnNEeGxrprK9wB9iA"/>
+ </slot>
+ <slot xmi:type="uml:Slot" xmi:id="_n1aOsCnNEeGxrprK9wB9iA">
+ <definingFeature xmi:type="uml:Property" href="pathmap://QML_CORE/core.uml#_RMqEkCjaEeGFbebITJYb9g"/>
+ <value xmi:type="uml:InstanceValue" xmi:id="_n1a1wCnNEeGxrprK9wB9iA" instance="_n1YZgCnNEeGxrprK9wB9iA"/>
+ </slot>
+ </packagedElement>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_n1V9QCnNEeGxrprK9wB9iA" name="mySystem.timer.timer">
+ <classifier xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_9V8OQCjYEeGFbebITJYb9g"/>
+ <slot xmi:type="uml:Slot" xmi:id="_AfWlACozEeGxrprK9wB9iA">
+ <definingFeature xmi:type="uml:Property" href="pathmap://QML_CORE/core.uml#_tmNeoCjbEeGFbebITJYb9g"/>
+ <value xmi:type="uml:LiteralInteger" xmi:id="_AfXzICozEeGxrprK9wB9iA" name="value for periodLength" value="250">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </value>
+ </slot>
+ </packagedElement>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_n1YZgCnNEeGxrprK9wB9iA" name="mySystem.timer.thread">
+ <classifier xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_SiY_AP-EEd6628OhKk_dpg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_KeQaUDa5EeG-uqYpasEQgg" name="allocate to linux" client="_L9xhwDLjEd2RVeNawwNNzg" supplier="_6EgaIDa3EeGBl4WmUxMhOA"/>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_fWvAAE2tEeGl8qrc8BM7vA" name="allocate to linux" client="_L9xhwDLjEd2RVeNawwNNzg" supplier="_6EgaIDa3EeGBl4WmUxMhOA"/>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_2OkBAGkEEeG997IUAIbceQ" name="allocate to linux"/>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_2kbjUGkEEeG997IUAIbceQ" name="allocate to linux" client="_L9xhwDLjEd2RVeNawwNNzg" supplier="_6EgaIDa3EeGBl4WmUxMhOA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_bBSxQP_BEd6628OhKk_dpg" name="cygwin">
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_bBdwYP_BEd6628OhKk_dpg" name="mainInstance" classifier="_bYJagDLiEd2RVeNawwNNzg">
+ <slot xmi:type="uml:Slot" xmi:id="_bBpWkP_BEd6628OhKk_dpg" definingFeature="_gV1cgDLiEd2RVeNawwNNzg">
+ <value xmi:type="uml:InstanceValue" xmi:id="_bBqksP_BEd6628OhKk_dpg" instance="_bBnhYP_BEd6628OhKk_dpg"/>
+ </slot>
+ <slot xmi:type="uml:Slot" xmi:id="_bBuPEP_BEd6628OhKk_dpg" definingFeature="_i-I7gDLiEd2RVeNawwNNzg">
+ <value xmi:type="uml:InstanceValue" xmi:id="_bBxSYP_BEd6628OhKk_dpg" instance="_bBry0P_BEd6628OhKk_dpg"/>
+ </slot>
+ <slot xmi:type="uml:Slot" xmi:id="_JtE40CozEeGxrprK9wB9iA" definingFeature="_lKtZUCjYEeGFbebITJYb9g">
+ <value xmi:type="uml:InstanceValue" xmi:id="_JtE40SozEeGxrprK9wB9iA" instance="_JtB1gCozEeGxrprK9wB9iA"/>
+ </slot>
+ </packagedElement>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_bBnhYP_BEd6628OhKk_dpg" name="mainInstance.server" classifier="_oqZNUDLaEd2qeKRLMdIx_A"/>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_bBry0P_BEd6628OhKk_dpg" name="mainInstance.client" classifier="_IfjoETLbEd2qeKRLMdIx_A"/>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_JtB1gCozEeGxrprK9wB9iA" name="mainInstance.timer">
+ <classifier xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_-X6zMCjZEeGFbebITJYb9g"/>
+ <slot xmi:type="uml:Slot" xmi:id="_JtDDoCozEeGxrprK9wB9iA">
+ <definingFeature xmi:type="uml:Property" href="pathmap://QML_CORE/core.uml#_ARs_UCjaEeGFbebITJYb9g"/>
+ <value xmi:type="uml:InstanceValue" xmi:id="_JtDqsCozEeGxrprK9wB9iA" instance="_JtCckCozEeGxrprK9wB9iA"/>
+ </slot>
+ <slot xmi:type="uml:Slot" xmi:id="_JtERwCozEeGxrprK9wB9iA">
+ <definingFeature xmi:type="uml:Property" href="pathmap://QML_CORE/core.uml#_RMqEkCjaEeGFbebITJYb9g"/>
+ <value xmi:type="uml:InstanceValue" xmi:id="_JtERwSozEeGxrprK9wB9iA" instance="_JtDqsSozEeGxrprK9wB9iA"/>
+ </slot>
+ </packagedElement>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_JtCckCozEeGxrprK9wB9iA" name="mainInstance.timer.timer">
+ <classifier xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_9V8OQCjYEeGFbebITJYb9g"/>
+ <slot xmi:type="uml:Slot" xmi:id="_1wSfkCsJEeGEwYCLcbR5yw">
+ <definingFeature xmi:type="uml:Property" href="pathmap://QML_CORE/core.uml#_tmNeoCjbEeGFbebITJYb9g"/>
+ <value xmi:type="uml:LiteralInteger" xmi:id="_1yhUMCsJEeGEwYCLcbR5yw" name="value for periodLength" value="500">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </value>
+ </slot>
+ </packagedElement>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_JtDqsSozEeGxrprK9wB9iA" name="mainInstance.timer.thread">
+ <classifier xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_SiY_AP-EEd6628OhKk_dpg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_JTpoYDa5EeG-uqYpasEQgg" name="allocate to cygwin" client="_bBdwYP_BEd6628OhKk_dpg" supplier="_BQRAwDa5EeG-uqYpasEQgg"/>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_gXDNgE2tEeGl8qrc8BM7vA" name="allocate to cygwin" client="_bBdwYP_BEd6628OhKk_dpg" supplier="_BQRAwDa5EeG-uqYpasEQgg"/>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_3pREcGkEEeG997IUAIbceQ" name="allocate to cygwin" client="_bBdwYP_BEd6628OhKk_dpg" supplier="_BQRAwDa5EeG-uqYpasEQgg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_QT6okKDjEd-rLNbSWf1QuA" name="ConfigTraceMono"/>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_O6TiIjLUEd26WNosUASSSw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_O6TiIzLUEd26WNosUASSSw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_GcC0cAHtEd6HSdiss9GQ0A">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Gd1kMAHtEd6HSdiss9GQ0A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/C_Cpp/1#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_z1TwgFW3Ed63BrxiKsw-0Q">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_z2GasFW3Ed63BrxiKsw-0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/FCM/1#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://FCM_PROFILES/FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_2aRhwGkEEeG997IUAIbceQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2eU7UGkEEeG997IUAIbceQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_ar8OsAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_2eX-oGkEEeG997IUAIbceQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2hLbAGkEEeG997IUAIbceQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//HLAM"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_yNSZIAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_2hOeUGkEEeG997IUAIbceQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2kYgAGkEEeG997IUAIbceQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//GCM"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_YgAioAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ </uml:Model>
+ <FCM:DerivedElement xmi:id="_DWb6oP6yEd6Ie_kieu_3CQ" base_Element="_TbIjUJYlEd6G9q9hwr11bw" source="_DGs6wDLgEd28fJKJJnUaeQ"/>
+ <FCM:DerivedElement xmi:id="_DXK6cP6yEd6Ie_kieu_3CQ" base_Element="_4ZEZwHecEd6r18stFZxmFQ" source="_L8EY8DLgEd28fJKJJnUaeQ"/>
+ <FCM:RuleApplication xmi:id="_DWIYoP6yEd6Ie_kieu_3CQ" base_Class="_oqZNUDLaEd2qeKRLMdIx_A">
+ <containerRule xmi:type="FCM:ContainerRule" href="pathmap://QML_TRACE/tracing.uml#_ISo6gLdwEd-CtfrGQre34Q"/>
+ <interceptor href="pathmap://QML_TRACE/tracing.uml#_35od4DKrEd-z5o2wSoJ16A"/>
+ </FCM:RuleApplication>
+ <FCM:Port xmi:id="_GofhQP6yEd6Ie_kieu_3CQ" base_Port="_4KiE8DLbEd2qeKRLMdIx_A" type="_cn-H0DLbEd2qeKRLMdIx_A">
+ <kind xmi:type="FCM:PortKind" href="pathmap://QML_CORE/core.uml#_wySlkFRxEd6GqrP6fkWBoQ"/>
+ </FCM:Port>
+ <FCM:DeploymentPlan xmi:id="_6dGQgP6zEd6Ie_kieu_3CQ" mainInstance="_L9xhwDLjEd2RVeNawwNNzg" base_Package="_5Z7MEDLiEd2RVeNawwNNzg"/>
+ <C_Cpp:Include xmi:id="_7SAnAP76Ed6Zw96O-tCw7A" body="#include &lt;iostream>&#xA;using namespace std;&#xA;&#xA;#include &lt;unistd.h>" base_class="_IfjoETLbEd2qeKRLMdIx_A"/>
+ <C_Cpp:Include xmi:id="_Sa4nEP77Ed6Zw96O-tCw7A" body="#include &lt;iostream>&#xA;using namespace std;" base_class="_oqZNUDLaEd2qeKRLMdIx_A"/>
+ <FCM:DeploymentPlan xmi:id="_bBdJUP_BEd6628OhKk_dpg" mainInstance="_bBdwYP_BEd6628OhKk_dpg" base_Package="_bBSxQP_BEd6628OhKk_dpg"/>
+ <FCM:Port xmi:id="_IWQqoP6yEd6Ie_kieu_3CQ" base_Port="_DtWn4DLcEd2qeKRLMdIx_A" type="_cn-H0DLbEd2qeKRLMdIx_A">
+ <kind xmi:type="FCM:PortKind" href="pathmap://QML_CORE/core.uml#_9Fif4FRxEd6GqrP6fkWBoQ"/>
+ </FCM:Port>
+ <FCM:DerivedElement xmi:id="_vd5cgKDcEd-t8JNe-ruCrQ" base_Element="_4CRrYHpbEd-X4Z9aZ0cpCQ">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:Configuration xmi:id="_Y10_QKDjEd-rLNbSWf1QuA" base_Class="_QT6okKDjEd-rLNbSWf1QuA" deploymentPlan="_6dGQgP6zEd6Ie_kieu_3CQ">
+ <configOptions xmi:type="FCM:ConfigOption" href="pathmap://QML_CORE/core.uml#_u6LqoH7eEd-FNNgSS03RxQ"/>
+ </FCM:Configuration>
+ <FCM:Target xmi:id="_Et5N4LqQEd-BObGGoBbehA" base_Node="_MxayMP_BEd6628OhKk_dpg">
+ <targetArch xmi:type="FCM:TargetArchitecture" href="pathmap://QML_CORE/core.uml#_FYOqwF0OEd-12d_h0i1xhQ"/>
+ <usedOS xmi:type="FCM:OperatingSystem" href="pathmap://QML_CORE/core.uml#_r4nVcCp9EeG1Y7BvjQ0T-w"/>
+ </FCM:Target>
+ <FCM:Target xmi:id="_HvbFMLqQEd-BObGGoBbehA" base_Node="_zY9vMDLiEd2RVeNawwNNzg">
+ <targetArch xmi:type="FCM:TargetArchitecture" href="pathmap://QML_CORE/core.uml#_FYOqwF0OEd-12d_h0i1xhQ"/>
+ <usedOS xmi:type="FCM:OperatingSystem" href="pathmap://QML_CORE/core.uml#_1eULwF0NEd-12d_h0i1xhQ"/>
+ </FCM:Target>
+ <FCM:Port xmi:id="_U509QCkDEeGDDbdzqSb4UA" base_Port="_U50WMCkDEeGDDbdzqSb4UA">
+ <kind xmi:type="FCM:PortKind" href="pathmap://QML_CORE/core.uml#_wySlkFRxEd6GqrP6fkWBoQ"/>
+ <type xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_Xb-y0AweEd6it_RkGhz_AA"/>
+ </FCM:Port>
+ <FCM:DerivedElement xmi:id="_qf85ACozEeGxrprK9wB9iA" base_Element="_qf6cwCozEeGxrprK9wB9iA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_asFRoAweEd6it_RkGhz_AA"/>
+ </FCM:DerivedElement>
+ <Alloc:Allocate xmi:id="_2lLKMGkEEeG997IUAIbceQ" base_Abstraction="_2kbjUGkEEeG997IUAIbceQ"/>
+ <Alloc:Allocate xmi:id="_3pYZMGkEEeG997IUAIbceQ" base_Abstraction="_3pREcGkEEeG997IUAIbceQ"/>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/HelloWorld.di b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/HelloWorld.di
new file mode 100644
index 00000000000..bf9abab340f
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/HelloWorld.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/HelloWorld.notation b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/HelloWorld.notation
new file mode 100644
index 00000000000..78d43a4a70a
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/HelloWorld.notation
@@ -0,0 +1,968 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:C_Cpp="http://www.eclipse.org/papyrus/C_Cpp/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_7kc7YM__Ed-TP80eVS-2Rg" type="CompositeStructure" name="HelloWorldComponent" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_8LSR4M__Ed-TP80eVS-2Rg" type="2073" fontName="" fontHeight="10" fillColor="8905185" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8LSR4s__Ed-TP80eVS-2Rg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8LSR48__Ed-TP80eVS-2Rg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8LS48M__Ed-TP80eVS-2Rg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8LS48c__Ed-TP80eVS-2Rg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8LS48s__Ed-TP80eVS-2Rg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8LS488__Ed-TP80eVS-2Rg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8LS49M__Ed-TP80eVS-2Rg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8LS49c__Ed-TP80eVS-2Rg" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_8rDfAFTzEeKvFeqt5Q_lqw" type="3070" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rGiUFTzEeKvFeqt5Q_lqw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rGiUVTzEeKvFeqt5Q_lqw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rGiUlTzEeKvFeqt5Q_lqw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rGiU1TzEeKvFeqt5Q_lqw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rGiVFTzEeKvFeqt5Q_lqw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rGiVVTzEeKvFeqt5Q_lqw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4k6AsHk1EeOph7IIHUnNoA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4k7O0Hk1EeOph7IIHUnNoA" key="fillColor" value="true"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4urnwHk1EeOph7IIHUnNoA" key="gradient" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8rHJYFTzEeKvFeqt5Q_lqw" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CBQusFT0EeKvFeqt5Q_lqw" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CGsoUFT0EeKvFeqt5Q_lqw" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8rHJYVTzEeKvFeqt5Q_lqw" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8rHJYlTzEeKvFeqt5Q_lqw" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8rHJY1TzEeKvFeqt5Q_lqw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_p2fBUrYoEeWaTqnU44XdvA" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_p2fBU7YoEeWaTqnU44XdvA" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="HelloWorld.uml#_8pupUFTzEeKvFeqt5Q_lqw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8rDfAVTzEeKvFeqt5Q_lqw" x="40" y="30" width="163"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qF26ELYoEeWaTqnU44XdvA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qF26EbYoEeWaTqnU44XdvA" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_qF26E7YoEeWaTqnU44XdvA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Property" href="HelloWorld.uml#_8pupUFTzEeKvFeqt5Q_lqw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qF26ErYoEeWaTqnU44XdvA" x="240" y="30"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8LS49s__Ed-TP80eVS-2Rg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7kMQFWUEeKdxoQIVxFNNg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7kMQVWUEeKdxoQIVxFNNg" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="HelloWorld.uml#_11OtwPcaEd-KM6l7lmIPkw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7kMQlWUEeKdxoQIVxFNNg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6UeXAFWUEeKdxoQIVxFNNg" type="3069" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6Ue-EFWUEeKdxoQIVxFNNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6Ue-EVWUEeKdxoQIVxFNNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6Ue-FFWUEeKdxoQIVxFNNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6UflIFWUEeKdxoQIVxFNNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6kEY8LYoEeWaTqnU44XdvA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6kEY8bYoEeWaTqnU44XdvA" key="displayNameLabelIcon_value" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6UflIVWUEeKdxoQIVxFNNg" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6UflIlWUEeKdxoQIVxFNNg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6UflI1WUEeKdxoQIVxFNNg" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6UflJFWUEeKdxoQIVxFNNg" x="25" y="-10"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qG7RELYoEeWaTqnU44XdvA" type="StereotypeBrace">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qG7REbYoEeWaTqnU44XdvA" showTitle="true"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_qG7RErYoEeWaTqnU44XdvA" name="stereotype" stringValue="FCM::Port"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_pP-ckMtqEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qG74ILYoEeWaTqnU44XdvA"/>
+ </children>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_fV6D0LkXEeS7TYMQS2xzng" name="maskLabel">
+ <stringListValue>multiplicity</stringListValue>
+ <stringListValue>name</stringListValue>
+ <stringListValue>type</stringListValue>
+ <stringListValue>derived</stringListValue>
+ </styles>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6UeXAVWUEeKdxoQIVxFNNg" y="31"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_p2fBULYoEeWaTqnU44XdvA" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_p2fBUbYoEeWaTqnU44XdvA" y="5"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qEMGILYoEeWaTqnU44XdvA" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_qEMGIbYoEeWaTqnU44XdvA" name="stereotype" stringValue="C_Cpp::Include"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_RwTdQByJEduN1bTiWJ0lyw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qEMGIrYoEeWaTqnU44XdvA"/>
+ </children>
+ <element xmi:type="uml:Class" href="HelloWorld.uml#_tyiqsc__Ed-TP80eVS-2Rg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8LSR4c__Ed-TP80eVS-2Rg" x="80" y="160" width="261" height="109"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-HlK8DecEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-HlyADecEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-HlyATecEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-HlyAjecEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-HlyAzecEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-HlyBDecEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-HlyBTecEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-HlyBjecEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="HelloWorld.uml#_-Hd2MDecEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-HlK8TecEeGPyrZ5I3hMlA" x="420" y="135" width="301" height="55"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0EFQQDedEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0EF3UDedEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0EF3UTedEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0EF3UjedEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0EF3UzedEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0EF3VDedEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0EF3VTedEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0EF3VjedEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="HelloWorld.uml#_0D64MDedEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0EFQQTedEeGPyrZ5I3hMlA" x="420" y="18" width="301"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SypoQFT0EeKvFeqt5Q_lqw" type="2109" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SyqPUFT0EeKvFeqt5Q_lqw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SyqPUVT0EeKvFeqt5Q_lqw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SyqPUlT0EeKvFeqt5Q_lqw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SyqPU1T0EeKvFeqt5Q_lqw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SyqPVFT0EeKvFeqt5Q_lqw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SyqPVVT0EeKvFeqt5Q_lqw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SyqPVlT0EeKvFeqt5Q_lqw" type="5192"/>
+ <element xmi:type="uml:Comment" href="HelloWorld.uml#_SxvpUFT0EeKvFeqt5Q_lqw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SypoQVT0EeKvFeqt5Q_lqw" x="420" y="220" width="301" height="45"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_rjTBsFWUEeKdxoQIVxFNNg" type="2073" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rjTowFWUEeKdxoQIVxFNNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rjTowVWUEeKdxoQIVxFNNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rjTowlWUEeKdxoQIVxFNNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rjTow1WUEeKdxoQIVxFNNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rjToxFWUEeKdxoQIVxFNNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rjUP0FWUEeKdxoQIVxFNNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_rjUP0VWUEeKdxoQIVxFNNg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_rjUP0lWUEeKdxoQIVxFNNg" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_rjUP01WUEeKdxoQIVxFNNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rjUP1FWUEeKdxoQIVxFNNg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wd8WwFWUEeKdxoQIVxFNNg" type="3069" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wd890FWUEeKdxoQIVxFNNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wd890VWUEeKdxoQIVxFNNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wd891FWUEeKdxoQIVxFNNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wd891VWUEeKdxoQIVxFNNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ygFe8LYpEeWaTqnU44XdvA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ygFe8bYpEeWaTqnU44XdvA" key="displayNameLabelIcon_value" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wd891lWUEeKdxoQIVxFNNg" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wd9k4FWUEeKdxoQIVxFNNg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wd9k4VWUEeKdxoQIVxFNNg" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wd9k4lWUEeKdxoQIVxFNNg" x="25" y="-10"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qKT8QLYoEeWaTqnU44XdvA" type="StereotypeBrace">
+ <children xmi:type="notation:DecorationNode" xmi:id="_qKVKZLYoEeWaTqnU44XdvA" visible="false" type="StereotypePropertyBrace">
+ <element xmi:type="uml:Property" href="pathmap://FCM_PROFILES/FCM.profile.uml#_lARBIOLzEd2hC_i8ZB1Yiw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qKVKZbYoEeWaTqnU44XdvA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qKVKYrYoEeWaTqnU44XdvA" visible="false" type="StereotypePropertyBrace">
+ <element xmi:type="uml:Property" href="pathmap://FCM_PROFILES/FCM.profile.uml#_erj_ECzCEeWf2IvZSSBQwg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qKVKY7YoEeWaTqnU44XdvA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qKT8QbYoEeWaTqnU44XdvA" showTitle="true"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_qKT8QrYoEeWaTqnU44XdvA" name="stereotype" stringValue="FCM::Port"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_pP-ckMtqEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qKT8Q7YoEeWaTqnU44XdvA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qHuiULYoEeWaTqnU44XdvA" visible="false" type="StereotypeLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__ERNsLYoEeWaTqnU44XdvA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__ERNsbYoEeWaTqnU44XdvA" key="visible" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_qHuiUbYoEeWaTqnU44XdvA" name="stereotype" stringValue="FCM::Port"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_pP-ckMtqEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qHuiUrYoEeWaTqnU44XdvA"/>
+ </children>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_hG-_4LkXEeS7TYMQS2xzng" name="maskLabel">
+ <stringListValue>multiplicity</stringListValue>
+ <stringListValue>name</stringListValue>
+ <stringListValue>type</stringListValue>
+ <stringListValue>derived</stringListValue>
+ </styles>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wd8WwVWUEeKdxoQIVxFNNg" y="32"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_p2fBVLYoEeWaTqnU44XdvA" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_p2fBVbYoEeWaTqnU44XdvA" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_N6fa4JsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rjTBsVWUEeKdxoQIVxFNNg" x="80" y="18" width="261" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qEg2QLYoEeWaTqnU44XdvA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qEg2QbYoEeWaTqnU44XdvA" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_qEg2Q7YoEeWaTqnU44XdvA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="HelloWorld.uml#_tyiqsc__Ed-TP80eVS-2Rg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qEg2QrYoEeWaTqnU44XdvA" x="280" y="160"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qHJTgLYoEeWaTqnU44XdvA" type="StereotypeComment">
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qHQoQLYoEeWaTqnU44XdvA" type="StereotypeCompartment">
+ <children xmi:type="notation:DecorationNode" xmi:id="_qHQoRLYoEeWaTqnU44XdvA" visible="false" type="StereotypeProperty">
+ <element xmi:type="uml:Property" href="pathmap://FCM_PROFILES/FCM.profile.uml#_AorBUMtrEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qHQoRbYoEeWaTqnU44XdvA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qHQoQbYoEeWaTqnU44XdvA" showTitle="true"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_qHQoQrYoEeWaTqnU44XdvA" name="stereotype" stringValue="FCM::Port"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_pP-ckMtqEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qHQoQ7YoEeWaTqnU44XdvA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qHJTgbYoEeWaTqnU44XdvA" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_qHJTg7YoEeWaTqnU44XdvA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qHJTgrYoEeWaTqnU44XdvA" x="200" y="31"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qKVxcLYoEeWaTqnU44XdvA" type="StereotypeComment">
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qKXmoLYoEeWaTqnU44XdvA" type="StereotypeCompartment">
+ <children xmi:type="notation:DecorationNode" xmi:id="_qKXmprYoEeWaTqnU44XdvA" visible="false" type="StereotypeProperty">
+ <element xmi:type="uml:Property" href="pathmap://FCM_PROFILES/FCM.profile.uml#_erj_ECzCEeWf2IvZSSBQwg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qKXmp7YoEeWaTqnU44XdvA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qKXmqLYoEeWaTqnU44XdvA" visible="false" type="StereotypeProperty">
+ <element xmi:type="uml:Property" href="pathmap://FCM_PROFILES/FCM.profile.uml#_lARBIOLzEd2hC_i8ZB1Yiw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qKXmqbYoEeWaTqnU44XdvA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qKXmobYoEeWaTqnU44XdvA" showTitle="true"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_qKXmorYoEeWaTqnU44XdvA" name="stereotype" stringValue="FCM::Port"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_pP-ckMtqEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qKXmo7YoEeWaTqnU44XdvA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qKVxcbYoEeWaTqnU44XdvA" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_qKVxc7YoEeWaTqnU44XdvA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qKVxcrYoEeWaTqnU44XdvA" x="190" y="27"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_7kc7Yc__Ed-TP80eVS-2Rg"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_p2fBVrYoEeWaTqnU44XdvA" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="HelloWorld.uml#_LOqIEDLaEd2qeKRLMdIx_A"/>
+ <edges xmi:type="notation:Connector" xmi:id="_uHz6kP8nEd-hWJO6cv3VJA" type="4015" source="_8LSR4M__Ed-TP80eVS-2Rg" target="_rjTBsFWUEeKdxoQIVxFNNg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_uH0hoP8nEd-hWJO6cv3VJA" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uH0hof8nEd-hWJO6cv3VJA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_uHz6kf8nEd-hWJO6cv3VJA" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="HelloWorld.uml#_tyiqss__Ed-TP80eVS-2Rg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_uHz6kv8nEd-hWJO6cv3VJA" points="[-103, -45, 204, 90]$[-307, -135, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YcZOULkXEeS7TYMQS2xzng" id="(0.47244094488188976,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zpY_EFWUEeKdxoQIVxFNNg" id="(0.4782608695652174,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_FOfGwDeeEeGPyrZ5I3hMlA" type="4002" source="_0EFQQDedEeGPyrZ5I3hMlA" target="_rjTBsFWUEeKdxoQIVxFNNg" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FOfGwTeeEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FOfGwjeeEeGPyrZ5I3hMlA" points="[420, 60, -643984, -643984]$[343, 60, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FOwMgDeeEeGPyrZ5I3hMlA" id="(0.0,0.3684210526315789)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FOwMgTeeEeGPyrZ5I3hMlA" id="(0.9881422924901185,0.5753424657534246)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_F4Ju0DeeEeGPyrZ5I3hMlA" type="4002" source="_-HlK8DecEeGPyrZ5I3hMlA" target="_8LSR4M__Ed-TP80eVS-2Rg" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_F4Ju0TeeEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_F4Ju0jeeEeGPyrZ5I3hMlA" points="[-25, 3, 78, 0]$[-80, -2, 23, -5]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_F4a0kDeeEeGPyrZ5I3hMlA" id="(0.0,0.5625)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_F4a0kTeeEeGPyrZ5I3hMlA" id="(0.9448818897637795,0.1834862385321101)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_YapykFT0EeKvFeqt5Q_lqw" type="4002" source="_SypoQFT0EeKvFeqt5Q_lqw" target="_8rDfAFTzEeKvFeqt5Q_lqw" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_YapykVT0EeKvFeqt5Q_lqw" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YapyklT0EeKvFeqt5Q_lqw" points="[420, 243, -643984, -643984]$[288, 243, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ya7fYFT0EeKvFeqt5Q_lqw" id="(0.0,0.40350877192982454)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ya7fYVT0EeKvFeqt5Q_lqw" id="(1.0,0.65)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_qEhdULYoEeWaTqnU44XdvA" type="StereotypeCommentLink" source="_8LSR4M__Ed-TP80eVS-2Rg" target="_qEg2QLYoEeWaTqnU44XdvA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_qEhdUbYoEeWaTqnU44XdvA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_qEiEYLYoEeWaTqnU44XdvA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="HelloWorld.uml#_tyiqsc__Ed-TP80eVS-2Rg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_qEhdUrYoEeWaTqnU44XdvA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qEhdU7YoEeWaTqnU44XdvA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qEhdVLYoEeWaTqnU44XdvA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_qF26FLYoEeWaTqnU44XdvA" type="StereotypeCommentLink" source="_8rDfAFTzEeKvFeqt5Q_lqw" target="_qF26ELYoEeWaTqnU44XdvA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_qF26FbYoEeWaTqnU44XdvA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_qF26GbYoEeWaTqnU44XdvA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Property" href="HelloWorld.uml#_8pupUFTzEeKvFeqt5Q_lqw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_qF26FrYoEeWaTqnU44XdvA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qF26F7YoEeWaTqnU44XdvA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qF26GLYoEeWaTqnU44XdvA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_qHJThLYoEeWaTqnU44XdvA" type="StereotypeCommentLink" source="_6UeXAFWUEeKdxoQIVxFNNg" target="_qHJTgLYoEeWaTqnU44XdvA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_qHJThbYoEeWaTqnU44XdvA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_qHJTibYoEeWaTqnU44XdvA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_qHJThrYoEeWaTqnU44XdvA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qHJTh7YoEeWaTqnU44XdvA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qHJTiLYoEeWaTqnU44XdvA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_qKVxdLYoEeWaTqnU44XdvA" type="StereotypeCommentLink" source="_wd8WwFWUEeKdxoQIVxFNNg" target="_qKVxcLYoEeWaTqnU44XdvA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_qKVxdbYoEeWaTqnU44XdvA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_qKVxebYoEeWaTqnU44XdvA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_qKVxdrYoEeWaTqnU44XdvA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qKVxd7YoEeWaTqnU44XdvA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qKVxeLYoEeWaTqnU44XdvA"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_o6ZisNCREd-hqYHBJe17_Q" type="CompositeStructure" name="System" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_VSa6YNHtEd-A1oPfP47IaQ" type="2073" fontName="" fontHeight="10" fillColor="8905185" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VScIgNHtEd-A1oPfP47IaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VScvkNHtEd-A1oPfP47IaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VScvkdHtEd-A1oPfP47IaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VScvktHtEd-A1oPfP47IaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VScvk9HtEd-A1oPfP47IaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VScvlNHtEd-A1oPfP47IaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VScvldHtEd-A1oPfP47IaQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VScvltHtEd-A1oPfP47IaQ" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_XsS70NHtEd-A1oPfP47IaQ" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XsTi4NHtEd-A1oPfP47IaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XsTi4dHtEd-A1oPfP47IaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XsTi4tHtEd-A1oPfP47IaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XsTi49HtEd-A1oPfP47IaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XsTi5NHtEd-A1oPfP47IaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XsTi5dHtEd-A1oPfP47IaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6iThgHk1EeOph7IIHUnNoA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6iUvoHk1EeOph7IIHUnNoA" key="fillColor" value="true"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6o-xQHk1EeOph7IIHUnNoA" key="gradient" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XsTi5tHtEd-A1oPfP47IaQ" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yonwwFTzEeKvFeqt5Q_lqw" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yzIXoFTzEeKvFeqt5Q_lqw" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_XsTi59HtEd-A1oPfP47IaQ" type="7077">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XsUJ8NHtEd-A1oPfP47IaQ"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qKx2UrYoEeWaTqnU44XdvA" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qKx2U7YoEeWaTqnU44XdvA" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qOFB8LYoEeWaTqnU44XdvA" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qOFB8bYoEeWaTqnU44XdvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qOFB8rYoEeWaTqnU44XdvA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Gj0IcLYpEeWaTqnU44XdvA" type="3069">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KLVowLYpEeWaTqnU44XdvA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KLVowbYpEeWaTqnU44XdvA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Gj19oLYpEeWaTqnU44XdvA" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Gj19obYpEeWaTqnU44XdvA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Gj19orYpEeWaTqnU44XdvA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Gj19o7YpEeWaTqnU44XdvA" x="25" y="-10"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GkyY0LYpEeWaTqnU44XdvA" type="StereotypeBrace">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Gky_4LYpEeWaTqnU44XdvA" visible="false" type="StereotypePropertyBrace">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Jh8GcLYpEeWaTqnU44XdvA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Jh8GcbYpEeWaTqnU44XdvA" key="visible" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="pathmap://FCM_PROFILES/FCM.profile.uml#_AorBUMtrEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Gky_4bYpEeWaTqnU44XdvA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Gky_4rYpEeWaTqnU44XdvA" visible="false" type="StereotypePropertyBrace">
+ <element xmi:type="uml:Property" href="pathmap://FCM_PROFILES/FCM.profile.uml#_erj_ECzCEeWf2IvZSSBQwg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Gky_47YpEeWaTqnU44XdvA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Gky_5LYpEeWaTqnU44XdvA" visible="false" type="StereotypePropertyBrace">
+ <element xmi:type="uml:Property" href="pathmap://FCM_PROFILES/FCM.profile.uml#_lARBIOLzEd2hC_i8ZB1Yiw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Gky_5bYpEeWaTqnU44XdvA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GkyY0bYpEeWaTqnU44XdvA" showTitle="true"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_GkyY0rYpEeWaTqnU44XdvA" name="stereotype" stringValue="FCM::Port"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_pP-ckMtqEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GkyY07YpEeWaTqnU44XdvA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_GkxxwLYpEeWaTqnU44XdvA" visible="false" type="StereotypeLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I6RCcLYpEeWaTqnU44XdvA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I6RpgLYpEeWaTqnU44XdvA" key="visible" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_GkxxwbYpEeWaTqnU44XdvA" name="stereotype" stringValue="FCM::Port"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_pP-ckMtqEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GkxxwrYpEeWaTqnU44XdvA"/>
+ </children>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_OThmILYpEeWaTqnU44XdvA" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>type</stringListValue>
+ <stringListValue>derived</stringListValue>
+ </styles>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Gj0IcbYpEeWaTqnU44XdvA" y="44"/>
+ </children>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_MLlCMLYpEeWaTqnU44XdvA" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>type</stringListValue>
+ <stringListValue>derived</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="HelloWorld.uml#_gV1cgDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XsS70dHtEd-A1oPfP47IaQ" x="40" y="20" width="193" height="85"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Gky_5rYpEeWaTqnU44XdvA" type="StereotypeComment">
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Gkzm97YpEeWaTqnU44XdvA" type="StereotypeCompartment">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Gkzm_7YpEeWaTqnU44XdvA" visible="false" type="StereotypeProperty">
+ <element xmi:type="uml:Property" href="pathmap://FCM_PROFILES/FCM.profile.uml#_lARBIOLzEd2hC_i8ZB1Yiw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GkznALYpEeWaTqnU44XdvA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Gkzm_bYpEeWaTqnU44XdvA" visible="false" type="StereotypeProperty">
+ <element xmi:type="uml:Property" href="pathmap://FCM_PROFILES/FCM.profile.uml#_erj_ECzCEeWf2IvZSSBQwg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Gkzm_rYpEeWaTqnU44XdvA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Gkzm-7YpEeWaTqnU44XdvA" visible="false" type="StereotypeProperty">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KtnPYLYpEeWaTqnU44XdvA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KtnPYbYpEeWaTqnU44XdvA" key="visible" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="pathmap://FCM_PROFILES/FCM.profile.uml#_AorBUMtrEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Gkzm_LYpEeWaTqnU44XdvA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Gkzm-LYpEeWaTqnU44XdvA" showTitle="true"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_Gkzm-bYpEeWaTqnU44XdvA" name="stereotype" stringValue="FCM::Port"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_pP-ckMtqEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Gkzm-rYpEeWaTqnU44XdvA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Gky_57YpEeWaTqnU44XdvA" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Gkzm8LYpEeWaTqnU44XdvA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Gky_6LYpEeWaTqnU44XdvA" x="190" y="-9"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VScvl9HtEd-A1oPfP47IaQ"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qKx2ULYoEeWaTqnU44XdvA" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qKx2UbYoEeWaTqnU44XdvA" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="HelloWorld.uml#_bYJagDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VSa6YdHtEd-A1oPfP47IaQ" x="18" y="18" width="280" height="172"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_o6ZisdCREd-hqYHBJe17_Q"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_qKydYLYoEeWaTqnU44XdvA" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="HelloWorld.uml#_LOqIEDLaEd2qeKRLMdIx_A"/>
+ <edges xmi:type="notation:Connector" xmi:id="_Gkzm8bYpEeWaTqnU44XdvA" type="StereotypeCommentLink" source="_Gj0IcLYpEeWaTqnU44XdvA" target="_Gky_5rYpEeWaTqnU44XdvA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Gkzm8rYpEeWaTqnU44XdvA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Gkzm9rYpEeWaTqnU44XdvA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Gkzm87YpEeWaTqnU44XdvA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Gkzm9LYpEeWaTqnU44XdvA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Gkzm9bYpEeWaTqnU44XdvA"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_U1UegPcXEd-KM6l7lmIPkw" type="PapyrusUMLClassDiagram" name="deployment" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_FGfloCghEeCw56aD7XrQhw" type="2016" element="_7kc7YM__Ed-TP80eVS-2Rg" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FGgMsCghEeCw56aD7XrQhw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FGgMsSghEeCw56aD7XrQhw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FGgMsighEeCw56aD7XrQhw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FGgMsyghEeCw56aD7XrQhw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FGlsQCghEeCw56aD7XrQhw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FGmTUCghEeCw56aD7XrQhw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FGmTUSghEeCw56aD7XrQhw" type="0">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FGmTUighEeCw56aD7XrQhw" x="54" y="3"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FGfloSghEeCw56aD7XrQhw" x="54" y="24" width="34" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gdmuADefEeGPyrZ5I3hMlA" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gdmuAjefEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gdmuAzefEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gdmuBDefEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gdmuBTefEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gdnVEDefEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gdnVETefEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gdnVEjefEeGPyrZ5I3hMlA" type="5038"/>
+ <element xmi:type="uml:Comment" href="HelloWorld.uml#_gdeyMDefEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gdmuATefEeGPyrZ5I3hMlA" x="315" y="18" width="226" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-4h4YFWREeKdxoQIVxFNNg" type="2007" fontName="Sans Serif" fillColor="8905185" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-4k7sFWREeKdxoQIVxFNNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-4k7sVWREeKdxoQIVxFNNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-4k7slWREeKdxoQIVxFNNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-4k7s1WREeKdxoQIVxFNNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-4liwFWREeKdxoQIVxFNNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-4liwVWREeKdxoQIVxFNNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-4liwlWREeKdxoQIVxFNNg" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-4liw1WREeKdxoQIVxFNNg" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_ZQjFQFWjEeKOivupHOJ8Ew" type="3020" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZQjsUFWjEeKOivupHOJ8Ew" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZQjsUVWjEeKOivupHOJ8Ew" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZQjsUlWjEeKOivupHOJ8Ew" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZQkTYFWjEeKOivupHOJ8Ew" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZQkTYVWjEeKOivupHOJ8Ew" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZQkTYlWjEeKOivupHOJ8Ew" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8slAsHk1EeOph7IIHUnNoA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8slnwHk1EeOph7IIHUnNoA" key="fillColor" value="true"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8-kvoHk1EeOph7IIHUnNoA" key="gradient" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZQkTY1WjEeKOivupHOJ8Ew" type="5040"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ZQkTZFWjEeKOivupHOJ8Ew" type="7035">
+ <children xmi:type="notation:Shape" xmi:id="_ET2zcFWkEeKOivupHOJ8Ew" type="3030" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Slot" href="HelloWorld.uml#_ymQ48FT2EeKvFeqt5Q_lqw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ET2zcVWkEeKOivupHOJ8Ew" x="58" y="15"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ZQkTZVWjEeKOivupHOJ8Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ZQkTZlWjEeKOivupHOJ8Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ZQkTZ1WjEeKOivupHOJ8Ew"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZQkTaFWjEeKOivupHOJ8Ew"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qOXV0LYoEeWaTqnU44XdvA" type="8509">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qOXV0bYoEeWaTqnU44XdvA" y="5"/>
+ </children>
+ <element xmi:type="uml:InstanceSpecification" href="HelloWorld.uml#_ymErsFT2EeKvFeqt5Q_lqw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZQjFQVWjEeKOivupHOJ8Ew" x="15" y="13" width="261" height="57"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Z7T5gFWjEeKOivupHOJ8Ew" type="3020" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Z7UgkFWjEeKOivupHOJ8Ew" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z7UgkVWjEeKOivupHOJ8Ew" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Z7UgklWjEeKOivupHOJ8Ew" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z7Ugk1WjEeKOivupHOJ8Ew" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Z7UglFWjEeKOivupHOJ8Ew" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z7UglVWjEeKOivupHOJ8Ew" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8smO0nk1EeOph7IIHUnNoA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8smO03k1EeOph7IIHUnNoA" key="fillColor" value="true"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8-nL4Hk1EeOph7IIHUnNoA" key="gradient" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Z7UgllWjEeKOivupHOJ8Ew" type="5040"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Z7Ugl1WjEeKOivupHOJ8Ew" type="7035">
+ <children xmi:type="notation:Shape" xmi:id="_6VXKAFWjEeKOivupHOJ8Ew" type="3030" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Slot" href="HelloWorld.uml#_tfj4gFUwEeKdxoQIVxFNNg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6VXKAVWjEeKOivupHOJ8Ew" x="26" y="15"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Z7UgmFWjEeKOivupHOJ8Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Z7UgmVWjEeKOivupHOJ8Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Z7UgmlWjEeKOivupHOJ8Ew"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Z7Ugm1WjEeKOivupHOJ8Ew"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qOXV0rYoEeWaTqnU44XdvA" type="8509">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qOXV07YoEeWaTqnU44XdvA" y="5"/>
+ </children>
+ <element xmi:type="uml:InstanceSpecification" href="HelloWorld.uml#_ymQR4FT2EeKvFeqt5Q_lqw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Z7T5gVWjEeKOivupHOJ8Ew" x="15" y="133" width="261" height="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_85kMIFWjEeKOivupHOJ8Ew" type="3020" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_85kzMFWjEeKOivupHOJ8Ew" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_85kzMVWjEeKOivupHOJ8Ew" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_85kzMlWjEeKOivupHOJ8Ew" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_85kzM1WjEeKOivupHOJ8Ew" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_85kzNFWjEeKOivupHOJ8Ew" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_85kzNVWjEeKOivupHOJ8Ew" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8smO0Hk1EeOph7IIHUnNoA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8smO0Xk1EeOph7IIHUnNoA" key="fillColor" value="true"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8-l9wHk1EeOph7IIHUnNoA" key="gradient" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_85kzNlWjEeKOivupHOJ8Ew" type="5040"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_85kzN1WjEeKOivupHOJ8Ew" visible="false" type="7035">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_85laQFWjEeKOivupHOJ8Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_85laQVWjEeKOivupHOJ8Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_85laQlWjEeKOivupHOJ8Ew"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_85laQ1WjEeKOivupHOJ8Ew"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qOX84LYoEeWaTqnU44XdvA" type="8509">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qOX84bYoEeWaTqnU44XdvA" y="5"/>
+ </children>
+ <element xmi:type="uml:InstanceSpecification" href="HelloWorld.uml#_GQ1ekKwHEeCQX8uv_p0Q4A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_85kMIVWjEeKOivupHOJ8Ew" x="375" y="13" width="163" height="46"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wCUSAFZVEeKKZs15rvNNjA" type="3028" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wCX8YFZVEeKKZs15rvNNjA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wCX8YVZVEeKKZs15rvNNjA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wCX8YlZVEeKKZs15rvNNjA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wCYjcFZVEeKKZs15rvNNjA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wCYjcVZVEeKKZs15rvNNjA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wCYjclZVEeKKZs15rvNNjA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wCYjc1ZVEeKKZs15rvNNjA" type="5063"/>
+ <element xmi:type="uml:Comment" href="HelloWorld.uml#_wAbboFZVEeKKZs15rvNNjA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wCUSAVZVEeKKZs15rvNNjA" x="325" y="97" width="235" height="83"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-4lixFWREeKdxoQIVxFNNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-4lixVWREeKdxoQIVxFNNg"/>
+ </children>
+ <styles xmi:type="notation:IntValueStyle" xmi:id="_u3oFQLkXEeS7TYMQS2xzng" name="shapeDirection" intValue="1"/>
+ <element xmi:type="uml:Package" href="HelloWorld.uml#_yl9-AFT2EeKvFeqt5Q_lqw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-4h4YVWREeKdxoQIVxFNNg" x="20" y="200" width="597" height="254"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_obNuEFWiEeKOivupHOJ8Ew" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_obQxYFWiEeKOivupHOJ8Ew" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_obQxYVWiEeKOivupHOJ8Ew" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_obQxYlWiEeKOivupHOJ8Ew" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_obQxY1WiEeKOivupHOJ8Ew" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_obRYcFWiEeKOivupHOJ8Ew" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_obRYcVWiEeKOivupHOJ8Ew" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_obRYclWiEeKOivupHOJ8Ew" type="5038"/>
+ <element xmi:type="uml:Comment" href="HelloWorld.uml#_oZw8kFWiEeKOivupHOJ8Ew"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_obNuEVWiEeKOivupHOJ8Ew" x="315" y="90" width="226" height="55"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qX0z0LYoEeWaTqnU44XdvA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qX0z0bYoEeWaTqnU44XdvA" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_qX0z07YoEeWaTqnU44XdvA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Package" href="HelloWorld.uml#_yl9-AFT2EeKvFeqt5Q_lqw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qX0z0rYoEeWaTqnU44XdvA" x="220" y="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qYPDgLYoEeWaTqnU44XdvA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qYPDgbYoEeWaTqnU44XdvA" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_qYPDg7YoEeWaTqnU44XdvA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Abstraction" href="HelloWorld.uml#_UPx34FWUEeKdxoQIVxFNNg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qYPDgrYoEeWaTqnU44XdvA" x="215" y="-87"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_U1UegfcXEd-KM6l7lmIPkw"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_qOX84rYoEeWaTqnU44XdvA" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="HelloWorld.uml#_234GEDLiEd2RVeNawwNNzg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_86CtQFWjEeKOivupHOJ8Ew" type="4006" source="_ZQjFQFWjEeKOivupHOJ8Ew" target="_85kMIFWjEeKOivupHOJ8Ew" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_86D7YFWjEeKOivupHOJ8Ew" visible="false" type="6014">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_86D7YVWjEeKOivupHOJ8Ew" x="9" y="45"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_86D7YlWjEeKOivupHOJ8Ew" type="6015">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_86D7Y1WjEeKOivupHOJ8Ew" x="-4" y="-9"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_86CtQVWjEeKOivupHOJ8Ew" fontName="Sans Serif"/>
+ <element xmi:type="uml:Abstraction" href="HelloWorld.uml#_UPx34FWUEeKdxoQIVxFNNg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_86CtQlWjEeKOivupHOJ8Ew" points="[-81, -23, 28, 8]$[-109, -31, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zrOXILkXEeS7TYMQS2xzng" id="(1.0,0.40350877192982454)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zrOXIbkXEeS7TYMQS2xzng" id="(0.0,0.5)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Sqs9MFWkEeKOivupHOJ8Ew" type="4013" source="_obNuEFWiEeKOivupHOJ8Ew" target="_-4h4YFWREeKdxoQIVxFNNg" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Sqs9MVWkEeKOivupHOJ8Ew" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Sqs9MlWkEeKOivupHOJ8Ew" points="[113, 34, 301, -38]$[113, 93, 301, 21]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SrQW0FWkEeKOivupHOJ8Ew" id="(0.0,0.5277777777777778)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SrQW0VWkEeKOivupHOJ8Ew" id="(0.18739054290718038,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7O5fMFZVEeKKZs15rvNNjA" type="4013" source="_wCUSAFZVEeKKZs15rvNNjA" target="_ZQjFQFWjEeKOivupHOJ8Ew" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_7O5fMVZVEeKKZs15rvNNjA" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7O5fMlZVEeKKZs15rvNNjA" points="[350, 356, -643984, -643984]$[236, 356, -643984, -643984]$[236, 315, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7PO2YFZVEeKKZs15rvNNjA" id="(0.0,0.11965811965811966)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_yzWT8LkXEeS7TYMQS2xzng" id="(0.7509578544061303,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_71Q7oFZVEeKKZs15rvNNjA" type="4013" source="_wCUSAFZVEeKKZs15rvNNjA" target="_Z7T5gFWjEeKOivupHOJ8Ew" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_71Q7oVZVEeKKZs15rvNNjA" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_71Q7olZVEeKKZs15rvNNjA" points="[350, 407, -643984, -643984]$[301, 407, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_71iBYFZVEeKKZs15rvNNjA" id="(0.0,0.6410256410256411)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_71iBYVZVEeKKZs15rvNNjA" id="(1.0,0.453125)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_qX0z1LYoEeWaTqnU44XdvA" type="StereotypeCommentLink" source="_-4h4YFWREeKdxoQIVxFNNg" target="_qX0z0LYoEeWaTqnU44XdvA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_qX0z1bYoEeWaTqnU44XdvA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_qX0z2bYoEeWaTqnU44XdvA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Package" href="HelloWorld.uml#_yl9-AFT2EeKvFeqt5Q_lqw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_qX0z1rYoEeWaTqnU44XdvA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qX0z17YoEeWaTqnU44XdvA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qX0z2LYoEeWaTqnU44XdvA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_qYPDhLYoEeWaTqnU44XdvA" type="StereotypeCommentLink" source="_86CtQFWjEeKOivupHOJ8Ew" target="_qYPDgLYoEeWaTqnU44XdvA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_qYPDhbYoEeWaTqnU44XdvA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_qYPDibYoEeWaTqnU44XdvA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Abstraction" href="HelloWorld.uml#_UPx34FWUEeKdxoQIVxFNNg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_qYPDhrYoEeWaTqnU44XdvA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qYPDh7YoEeWaTqnU44XdvA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qYPDiLYoEeWaTqnU44XdvA"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_0rwpYDefEeGPyrZ5I3hMlA" type="CompositeStructure" name="HWArchitecture" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_1w2CIDefEeGPyrZ5I3hMlA" type="2073" fontName="" fontHeight="10" fillColor="10011046" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1w2pMDefEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1w2pMTefEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1w2pMjefEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1w2pMzefEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1w2pNDefEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1w2pNTefEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1w2pNjefEeGPyrZ5I3hMlA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1w2pNzefEeGPyrZ5I3hMlA" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_4HLnYDefEeGPyrZ5I3hMlA" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4HMOcDefEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4HMOcTefEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4HMOcjefEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4HMOczefEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4HMOdDefEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4HMOdTefEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__C2UgHk1EeOph7IIHUnNoA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__C2UgXk1EeOph7IIHUnNoA" key="fillColor" value="true"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__Oj1QHk1EeOph7IIHUnNoA" key="gradient" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4HMOdjefEeGPyrZ5I3hMlA" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ENwn8FWjEeKOivupHOJ8Ew" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUBoAFWjEeKOivupHOJ8Ew" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4HMOdzefEeGPyrZ5I3hMlA" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4HMOeDefEeGPyrZ5I3hMlA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4HMOeTefEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qZEJ8rYoEeWaTqnU44XdvA" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qZEJ87YoEeWaTqnU44XdvA" y="5"/>
+ </children>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_DrFGELkYEeS7TYMQS2xzng" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>type</stringListValue>
+ <stringListValue>derived</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="HelloWorld.uml#_4HAoQDefEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4HLnYTefEeGPyrZ5I3hMlA" x="40" y="19" width="217" height="82"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1w2pODefEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1w2pOTefEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qZEJ8LYoEeWaTqnU44XdvA" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qZEJ8bYoEeWaTqnU44XdvA" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="HelloWorld.uml#_tZvNQDefEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1w2CITefEeGPyrZ5I3hMlA" x="80" y="63" width="301" height="154"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7qMbIDefEeGPyrZ5I3hMlA" type="2072" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7qNCMDefEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7qNCMTefEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7qNCMjefEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7qNCMzefEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7qNCNDefEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7qNCNTefEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7qNCNjefEeGPyrZ5I3hMlA" type="5124"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7qNCNzefEeGPyrZ5I3hMlA" visible="false" type="7072">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7qNCODefEeGPyrZ5I3hMlA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7qNCOTefEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qZEJ9LYoEeWaTqnU44XdvA" type="6088">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qZEJ9bYoEeWaTqnU44XdvA" y="5"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qcreoLYoEeWaTqnU44XdvA" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_qcreobYoEeWaTqnU44XdvA" name="stereotype" stringValue="FCM::Target"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_0KEH0JOCEd-5qPBhYeIVtw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qcreorYoEeWaTqnU44XdvA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qc_nsLYoEeWaTqnU44XdvA" type="StereotypeCompartment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qdMcALYoEeWaTqnU44XdvA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qdMcAbYoEeWaTqnU44XdvA" key="visible" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qdA10LYoEeWaTqnU44XdvA" type="StereotypeProperty">
+ <element xmi:type="uml:Property" href="pathmap://FCM_PROFILES/FCM.profile.uml#__5rAUGE_Ed-eArNXja7SuA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qdA10bYoEeWaTqnU44XdvA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qdBc4rYoEeWaTqnU44XdvA" visible="false" type="StereotypeProperty">
+ <element xmi:type="uml:Property" href="pathmap://FCM_PROFILES/FCM.profile.uml#_BZCjMJOGEd-5qPBhYeIVtw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qdBc47YoEeWaTqnU44XdvA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qdBc4LYoEeWaTqnU44XdvA" visible="false" type="StereotypeProperty">
+ <element xmi:type="uml:Property" href="pathmap://FCM_PROFILES/FCM.profile.uml#_C5WBYGGLEd-yH9S4VNNbSQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qdBc4bYoEeWaTqnU44XdvA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qdCD8rYoEeWaTqnU44XdvA" visible="false" type="StereotypeProperty">
+ <element xmi:type="uml:Property" href="pathmap://FCM_PROFILES/FCM.profile.uml#_8g_IsNTGEeKiLbHSN_MIRQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qdCD87YoEeWaTqnU44XdvA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qc_nsbYoEeWaTqnU44XdvA" showTitle="true"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_qc_nsrYoEeWaTqnU44XdvA" name="stereotype" stringValue="FCM::Target"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_0KEH0JOCEd-5qPBhYeIVtw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qc_ns7YoEeWaTqnU44XdvA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qc4S8LYoEeWaTqnU44XdvA" type="StereotypeBrace">
+ <children xmi:type="notation:DecorationNode" xmi:id="_qc5hErYoEeWaTqnU44XdvA" visible="false" type="StereotypePropertyBrace">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fqNlILYpEeWaTqnU44XdvA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fqNlIbYpEeWaTqnU44XdvA" key="visible" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="pathmap://FCM_PROFILES/FCM.profile.uml#_C5WBYGGLEd-yH9S4VNNbSQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qc5hE7YoEeWaTqnU44XdvA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qc4S8bYoEeWaTqnU44XdvA" showTitle="true"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_qc4S8rYoEeWaTqnU44XdvA" name="stereotype" stringValue="FCM::Target"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_0KEH0JOCEd-5qPBhYeIVtw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qc4S87YoEeWaTqnU44XdvA"/>
+ </children>
+ <element xmi:type="uml:Node" href="HelloWorld.uml#_zY9vMDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7qMbITefEeGPyrZ5I3hMlA" x="440" y="63" width="238" height="107"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jhQ20DegEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jhQ20jegEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jhQ20zegEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jhQ21DegEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jhQ21TegEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jhQ21jegEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jhQ21zegEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jhRd4DegEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="HelloWorld.uml#_jhF3sDegEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jhQ20TegEeGPyrZ5I3hMlA" x="431" y="217" width="277"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qc79ULYoEeWaTqnU44XdvA" type="StereotypeComment">
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qc9LcLYoEeWaTqnU44XdvA" type="StereotypeCompartment">
+ <children xmi:type="notation:DecorationNode" xmi:id="_qc9ygrYoEeWaTqnU44XdvA" visible="false" type="StereotypeProperty">
+ <element xmi:type="uml:Property" href="pathmap://FCM_PROFILES/FCM.profile.uml#_C5WBYGGLEd-yH9S4VNNbSQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qc9yg7YoEeWaTqnU44XdvA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qc9LcbYoEeWaTqnU44XdvA" showTitle="true"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_qc9LcrYoEeWaTqnU44XdvA" name="stereotype" stringValue="FCM::Target"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_0KEH0JOCEd-5qPBhYeIVtw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qc9Lc7YoEeWaTqnU44XdvA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qc79UbYoEeWaTqnU44XdvA" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_qc79U7YoEeWaTqnU44XdvA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Node" href="HelloWorld.uml#_zY9vMDLiEd2RVeNawwNNzg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qc79UrYoEeWaTqnU44XdvA" x="640" y="63"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_0rwpYTefEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_qZEJ9rYoEeWaTqnU44XdvA" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="HelloWorld.uml#_v3fMgDLiEd2RVeNawwNNzg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_ugb6IDegEeGPyrZ5I3hMlA" type="4002" source="_jhQ20DegEeGPyrZ5I3hMlA" target="_7qMbIDefEeGPyrZ5I3hMlA" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_ugb6ITegEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ugb6IjegEeGPyrZ5I3hMlA" points="[540, 217, -643984, -643984]$[540, 193, -643984, -643984]$[541, 193, -643984, -643984]$[541, 170, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ugs_4DegEeGPyrZ5I3hMlA" id="(0.3971119133574007,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ugs_4TegEeGPyrZ5I3hMlA" id="(0.42436974789915966,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_qc79VLYoEeWaTqnU44XdvA" type="StereotypeCommentLink" source="_7qMbIDefEeGPyrZ5I3hMlA" target="_qc79ULYoEeWaTqnU44XdvA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_qc79VbYoEeWaTqnU44XdvA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_qc79WbYoEeWaTqnU44XdvA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Node" href="HelloWorld.uml#_zY9vMDLiEd2RVeNawwNNzg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_qc79VrYoEeWaTqnU44XdvA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qc79V7YoEeWaTqnU44XdvA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qc79WLYoEeWaTqnU44XdvA"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_ovKvYFWjEeKOivupHOJ8Ew" type="PapyrusUMLDeploymentDiagram" name="NewDeploymentDiagram" measurementUnit="Pixel">
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_ovKvYVWjEeKOivupHOJ8Ew"/>
+ <element xmi:type="uml:Package" href="HelloWorld.uml#_234GEDLiEd2RVeNawwNNzg"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_kIfpMLfoEeWaTqnU44XdvA" type="PapyrusUMLClassDiagram" name="HelloWorld class" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_p03KgLi2EeWDsejo3zDcqw" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_p04YoLi2EeWDsejo3zDcqw" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_p04Yobi2EeWDsejo3zDcqw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_p04Yori2EeWDsejo3zDcqw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_p04_sLi2EeWDsejo3zDcqw" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_p04_sbi2EeWDsejo3zDcqw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_p04_sri2EeWDsejo3zDcqw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_p04_s7i2EeWDsejo3zDcqw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_p04_tLi2EeWDsejo3zDcqw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_p04_tbi2EeWDsejo3zDcqw" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_rqq1kLi2EeWDsejo3zDcqw" type="3013">
+ <element xmi:type="uml:Operation" href="HelloWorld.uml#_UtCt0FTzEeKvFeqt5Q_lqw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_rqrcoLi2EeWDsejo3zDcqw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_p04_tri2EeWDsejo3zDcqw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_p04_t7i2EeWDsejo3zDcqw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_p04_uLi2EeWDsejo3zDcqw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_p04_ubi2EeWDsejo3zDcqw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_p04_uri2EeWDsejo3zDcqw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_p04_u7i2EeWDsejo3zDcqw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_p04_vLi2EeWDsejo3zDcqw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_p04_vbi2EeWDsejo3zDcqw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_p04_vri2EeWDsejo3zDcqw"/>
+ </children>
+ <element xmi:type="uml:Class" href="HelloWorld.uml#_tyiqsc__Ed-TP80eVS-2Rg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_p03Kgbi2EeWDsejo3zDcqw" x="92" y="99" width="205"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_p1HpMLi2EeWDsejo3zDcqw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_p1HpMbi2EeWDsejo3zDcqw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_p1IQQLi2EeWDsejo3zDcqw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="HelloWorld.uml#_tyiqsc__Ed-TP80eVS-2Rg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_p1HpMri2EeWDsejo3zDcqw" x="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_yB3BILi2EeWDsejo3zDcqw" type="2012">
+ <children xmi:type="notation:DecorationNode" xmi:id="_yB3BIri2EeWDsejo3zDcqw" type="5038"/>
+ <element xmi:type="uml:Comment" href="HelloWorld.uml#_2OyuALcpEeWaTqnU44XdvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yB3BIbi2EeWDsejo3zDcqw" x="398" y="124" width="637"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_kIfpMbfoEeWaTqnU44XdvA" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_kIfpMrfoEeWaTqnU44XdvA"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_kIfpM7foEeWaTqnU44XdvA">
+ <owner xmi:type="uml:Package" href="HelloWorld.uml#_LOqIEDLaEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xmi:type="uml:Package" href="HelloWorld.uml#_LOqIEDLaEd2qeKRLMdIx_A"/>
+ <edges xmi:type="notation:Connector" xmi:id="_p1IQQbi2EeWDsejo3zDcqw" type="StereotypeCommentLink" source="_p03KgLi2EeWDsejo3zDcqw" target="_p1HpMLi2EeWDsejo3zDcqw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_p1IQQri2EeWDsejo3zDcqw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_p1I3Ubi2EeWDsejo3zDcqw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="HelloWorld.uml#_tyiqsc__Ed-TP80eVS-2Rg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_p1IQQ7i2EeWDsejo3zDcqw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_p1IQRLi2EeWDsejo3zDcqw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_p1I3ULi2EeWDsejo3zDcqw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_2DiG0Li2EeWDsejo3zDcqw" type="4013" source="_yB3BILi2EeWDsejo3zDcqw" target="_p03KgLi2EeWDsejo3zDcqw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_2DiG0bi2EeWDsejo3zDcqw"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2DiG0ri2EeWDsejo3zDcqw" points="[398, 154, -643984, -643984]$[297, 170, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2DuUELi2EeWDsejo3zDcqw" id="(0.0,0.8166666666666667)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2DuUEbi2EeWDsejo3zDcqw" id="(1.0,0.6826923076923077)"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/HelloWorld.uml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/HelloWorld.uml
new file mode 100644
index 00000000000..d46ef6abf65
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/HelloWorld.uml
@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Alloc="http://www.eclipse.org/papyrus/Alloc/1" xmlns:C_Cpp="http://www.eclipse.org/papyrus/C_Cpp/1" xmlns:FCM="http://www.eclipse.org/papyrus/FCM/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/papyrus/Alloc/1 http://www.eclipse.org/papyrus/MARTE/1#//Alloc">
+ <uml:Model xmi:id="_O6TiIDLUEd26WNosUASSSw" name="HelloWorld">
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_O6TiITLUEd26WNosUASSSw">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_Bc1WIFW4Ed63BrxiKsw-0Q">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/core.uml#_O6TiIDLUEd26WNosUASSSw"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_rwBsMP7AEd6Zw96O-tCw7A">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/corba.uml#_DtQEwDLdEd2_U4efLnjQIw"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Package" xmi:id="_LOqIEDLaEd2qeKRLMdIx_A" name="components">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_-Hd2MDecEeGPyrZ5I3hMlA" annotatedElement="_tyiqsc__Ed-TP80eVS-2Rg">
+ <body>Simple HelloWorld component that prints a message in its &quot;run&quot; operation that is provided via the &quot;start&quot; port
+</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_0D64MDedEeGPyrZ5I3hMlA">
+ <annotatedElement xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_N6fa4JsrEd61Eo3nmu3JhQ"/>
+ <body>Part of the Qompass core model library. Provides the specific port &quot;start&quot;. The &quot;run&quot; operation (defined within interface IStart) of this port is called by generated boot-code after instantiation and configuration of a component. </body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_tyiqsc__Ed-TP80eVS-2Rg" name="HelloWorld">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_SxvpUFT0EeKvFeqt5Q_lqw" annotatedElement="_8pupUFTzEeKvFeqt5Q_lqw">
+ <body>Configuration attribute within the Hello World component. Its value is configured on the instance level.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_2OyuALcpEeWaTqnU44XdvA" annotatedElement="_UtCt0FTzEeKvFeqt5Q_lqw">
+ <body>The operation &quot;run&quot; is defined in interface IRunnnable that is provided by the IStart port. The synchronisation mechanism in Qompass (&quot;Sync. derived element&quot;, needs to be triggered by user) adds a corresponding &quot;derived&quot; operation to the class </body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_tyiqss__Ed-TP80eVS-2Rg">
+ <general xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_N6fa4JsrEd61Eo3nmu3JhQ"/>
+ </generalization>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_8pupUFTzEeKvFeqt5Q_lqw" name="message" visibility="public" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__HwK8FTzEeKvFeqt5Q_lqw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__HwyAFTzEeKvFeqt5Q_lqw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="__HynMFTzEeKvFeqt5Q_lqw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_Us15gFTzEeKvFeqt5Q_lqw" name="derived realization of IStart" client="_tyiqsc__Ed-TP80eVS-2Rg">
+ <supplier xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_PTWzwCS-Ed-A_I32T0fkaA"/>
+ <contract xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_PTWzwCS-Ed-A_I32T0fkaA"/>
+ </interfaceRealization>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_tyjRwc__Ed-TP80eVS-2Rg" name="run" specification="_UtCt0FTzEeKvFeqt5Q_lqw">
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;Hello world: &quot; &lt;&lt; message &lt;&lt; endl;</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_UtCt0FTzEeKvFeqt5Q_lqw" name="run" method="_tyjRwc__Ed-TP80eVS-2Rg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_bYJagDLiEd2RVeNawwNNzg" name="System">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_gV1cgDLiEd2RVeNawwNNzg" name="hello" visibility="public" type="_tyiqsc__Ed-TP80eVS-2Rg" isUnique="false" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dCT24G6JEeGqWMX2LwdLDw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dCUd8G6JEeGqWMX2LwdLDw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_dCWTIG6JEeGqWMX2LwdLDw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_v3fMgDLiEd2RVeNawwNNzg" name="platform">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_jhF3sDegEeGPyrZ5I3hMlA" annotatedElement="_zY9vMDLiEd2RVeNawwNNzg">
+ <body>Simple single node configuration. TargetOS is set to Linux, but will work on any OS, since this simple example does not use the OS abstraction layer</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Node" xmi:id="_zY9vMDLiEd2RVeNawwNNzg" name="MonoNode"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_tZvNQDefEeGPyrZ5I3hMlA" name="Platform">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_4HAoQDefEeGPyrZ5I3hMlA" name="monoNode" visibility="public" type="_zY9vMDLiEd2RVeNawwNNzg" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6WEg0DefEeGPyrZ5I3hMlA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6WFu8DefEeGPyrZ5I3hMlA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_6WHkIDefEeGPyrZ5I3hMlA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_YxI8IDegEeGPyrZ5I3hMlA" name="HWArchitecturePlatform">
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_GQ1ekKwHEeCQX8uv_p0Q4A" name="monoNode" classifier="_zY9vMDLiEd2RVeNawwNNzg"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_234GEDLiEd2RVeNawwNNzg" name="deployment">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_VMRFgDOJEeC7y-fR3OSnFw">
+ <body>This configuration requires the installation of the OTF trace library.&lt;br /></body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gdeyMDefEeGPyrZ5I3hMlA">
+ <body>Cross references to composite diagram</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_oZw8kFWiEeKOivupHOJ8Ew" annotatedElement="_yl9-AFT2EeKvFeqt5Q_lqw">
+ <body>Deployment plan for system, i.e. set of instance specification along with configuration and allocation</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Package" xmi:id="_yl9-AFT2EeKvFeqt5Q_lqw" name="SystemDepPlan">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_wAbboFZVEeKKZs15rvNNjA" annotatedElement="_ymErsFT2EeKvFeqt5Q_lqw _ymQR4FT2EeKvFeqt5Q_lqw">
+ <body>Value mainInstance.hello is a UML instance-value, i.e. a reference to the instance specification on the left.
+&quot;Test message&quot; is a StringValue initializing the message attribute</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_ymErsFT2EeKvFeqt5Q_lqw" name="mainInstance" classifier="_bYJagDLiEd2RVeNawwNNzg">
+ <slot xmi:type="uml:Slot" xmi:id="_ymQ48FT2EeKvFeqt5Q_lqw" definingFeature="_gV1cgDLiEd2RVeNawwNNzg">
+ <value xmi:type="uml:InstanceValue" xmi:id="_ymRgAFT2EeKvFeqt5Q_lqw" instance="_ymQR4FT2EeKvFeqt5Q_lqw"/>
+ </slot>
+ </packagedElement>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_ymQR4FT2EeKvFeqt5Q_lqw" name="mainInstance.hello" classifier="_tyiqsc__Ed-TP80eVS-2Rg">
+ <slot xmi:type="uml:Slot" xmi:id="_tfj4gFUwEeKdxoQIVxFNNg" definingFeature="_8pupUFTzEeKvFeqt5Q_lqw">
+ <value xmi:type="uml:LiteralString" xmi:id="_tfni4FUwEeKdxoQIVxFNNg" name="value for message" value="&quot;Test message&quot;">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </value>
+ </slot>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_UPx34FWUEeKdxoQIVxFNNg" name="allocate mainInstance to monoNode" client="_ymErsFT2EeKvFeqt5Q_lqw" supplier="_GQ1ekKwHEeCQX8uv_p0Q4A"/>
+ </packagedElement>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_O6TiIjLUEd26WNosUASSSw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_O6TiIzLUEd26WNosUASSSw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_GcC0cAHtEd6HSdiss9GQ0A">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Gd1kMAHtEd6HSdiss9GQ0A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/C_Cpp/1#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_z1TwgFW3Ed63BrxiKsw-0Q">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_z2GasFW3Ed63BrxiKsw-0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/FCM/1#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://FCM_PROFILES/FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_sfyAwEbjEd-l4NeVOJZDkA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_siunEEbjEd-l4NeVOJZDkA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//GCM"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_YgAioAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_popJkKmqEeCxII-g1_Lmeg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_p1PbIKmqEeCxII-g1_Lmeg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//HLAM"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_yNSZIAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_tZuBwE0tEeG4IqgA7gSE6w">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tisXkE0tEeG4IqgA7gSE6w" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_ar8OsAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ </uml:Model>
+ <C_Cpp:Include xmi:id="_11OtwPcaEd-KM6l7lmIPkw" body="#include &lt;iostream>&#xA;using namespace std;" base_class="_tyiqsc__Ed-TP80eVS-2Rg"/>
+ <FCM:Target xmi:id="_LD_uICr7EeCfcI_SvPT4lw" base_Node="_zY9vMDLiEd2RVeNawwNNzg">
+ <targetArch xmi:type="FCM:TargetArchitecture" href="pathmap://QML_CORE/core.uml#_FYOqwF0OEd-12d_h0i1xhQ"/>
+ <usedOS xmi:type="FCM:OperatingSystem" href="pathmap://QML_CORE/core.uml#_1eULwF0NEd-12d_h0i1xhQ"/>
+ </FCM:Target>
+ <FCM:DerivedElement xmi:id="_UtTMgFTzEeKvFeqt5Q_lqw" base_Element="_UtCt0FTzEeKvFeqt5Q_lqw">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:ConfigurationProperty xmi:id="_KTwJUFT0EeKvFeqt5Q_lqw" base_Property="_8pupUFTzEeKvFeqt5Q_lqw"/>
+ <FCM:DeploymentPlan xmi:id="_ymC2gFT2EeKvFeqt5Q_lqw" mainInstance="_ymErsFT2EeKvFeqt5Q_lqw" base_Package="_yl9-AFT2EeKvFeqt5Q_lqw"/>
+ <Alloc:Allocate xmi:id="_UP7B0FWUEeKdxoQIVxFNNg" base_Abstraction="_UPx34FWUEeKdxoQIVxFNNg"/>
+ <FCM:CodeGenOptions xmi:id="_1uf4ENykEeKPWMO32vUmzw" base_Package="_LOqIEDLaEd2qeKRLMdIx_A">
+ <progLanguage xmi:type="FCM:ProgLanguage" href="pathmap://QML_CORE/core.uml#_5WrSINzEEeKPWMO32vUmzw"/>
+ </FCM:CodeGenOptions>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/HelloWorldC.di b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/HelloWorldC.di
new file mode 100644
index 00000000000..c651eaf4315
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/HelloWorldC.di
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi" xmi:id="_M_WAwPcXEd-KM6l7lmIPkw">
+ <pageList xmi:id="_M_WAwfcXEd-KM6l7lmIPkw">
+ <availablePage xmi:id="_M_WAwvcXEd-KM6l7lmIPkw"/>
+ <availablePage xmi:id="_M_WAxPcXEd-KM6l7lmIPkw">
+ <emfPageIdentifier href="HelloWorldC.notation#_7kc7YM__Ed-TP80eVS-2Rg"/>
+ </availablePage>
+ <availablePage xmi:id="_M_WAxfcXEd-KM6l7lmIPkw">
+ <emfPageIdentifier href="HelloWorldC.notation#_o6ZisNCREd-hqYHBJe17_Q"/>
+ </availablePage>
+ <availablePage xmi:id="_U1docPcXEd-KM6l7lmIPkw">
+ <emfPageIdentifier href="HelloWorldC.notation#_U1UegPcXEd-KM6l7lmIPkw"/>
+ </availablePage>
+ <availablePage xmi:id="_V5fVYP8nEd-hWJO6cv3VJA"/>
+ <availablePage>
+ <emfPageIdentifier href="HelloWorldC.notation#_0rwpYDefEeGPyrZ5I3hMlA"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="HelloWorldC.notation#_ovKvYFWjEeKOivupHOJ8Ew"/>
+ </availablePage>
+ </pageList>
+ <sashModel xmi:id="_M_WAxvcXEd-KM6l7lmIPkw" currentSelection="_M_WAyPcXEd-KM6l7lmIPkw">
+ <windows xmi:id="_M_WAx_cXEd-KM6l7lmIPkw">
+ <children xsi:type="di:TabFolder" xmi:id="_M_WAyPcXEd-KM6l7lmIPkw">
+ <children xmi:id="_M_WAy_cXEd-KM6l7lmIPkw">
+ <emfPageIdentifier href="HelloWorldC.notation#_7kc7YM__Ed-TP80eVS-2Rg"/>
+ </children>
+ <children xmi:id="_M_WAzPcXEd-KM6l7lmIPkw">
+ <emfPageIdentifier href="HelloWorldC.notation#_o6ZisNCREd-hqYHBJe17_Q"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="HelloWorldC.notation#_U1UegPcXEd-KM6l7lmIPkw"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="HelloWorldC.notation#_0rwpYDefEeGPyrZ5I3hMlA"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+</di:SashWindowsMngr>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/HelloWorldC.notation b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/HelloWorldC.notation
new file mode 100644
index 00000000000..d8404d0904b
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/HelloWorldC.notation
@@ -0,0 +1,528 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:C_Cpp="http://www.eclipse.org/papyrus/C_Cpp/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML">
+ <notation:Diagram xmi:id="_7kc7YM__Ed-TP80eVS-2Rg" type="CompositeStructure" name="HelloWorldComponent" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_8LSR4M__Ed-TP80eVS-2Rg" type="2073" fontName="" fontHeight="10" fillColor="8905185" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8LSR4s__Ed-TP80eVS-2Rg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8LSR48__Ed-TP80eVS-2Rg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8LS48M__Ed-TP80eVS-2Rg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8LS48c__Ed-TP80eVS-2Rg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8LS48s__Ed-TP80eVS-2Rg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8LS488__Ed-TP80eVS-2Rg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HIdDoJZ9EeCiU5xXzp1cKQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HT--MJZ9EeCiU5xXzp1cKQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HT--MZZ9EeCiU5xXzp1cKQ" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HT--MpZ9EeCiU5xXzp1cKQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HT--M5Z9EeCiU5xXzp1cKQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HT--NJZ9EeCiU5xXzp1cKQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8LS49M__Ed-TP80eVS-2Rg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8LS49c__Ed-TP80eVS-2Rg" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_8rDfAFTzEeKvFeqt5Q_lqw" type="3070" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rGiUFTzEeKvFeqt5Q_lqw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rGiUVTzEeKvFeqt5Q_lqw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rGiUlTzEeKvFeqt5Q_lqw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rGiU1TzEeKvFeqt5Q_lqw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rGiVFTzEeKvFeqt5Q_lqw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rGiVVTzEeKvFeqt5Q_lqw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KU4xwFT0EeKvFeqt5Q_lqw" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KU4xwVT0EeKvFeqt5Q_lqw" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KU5Y0FT0EeKvFeqt5Q_lqw" key="StereotypeList" value="FCM::ConfigurationProperty"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KU5Y0VT0EeKvFeqt5Q_lqw" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KU5Y0lT0EeKvFeqt5Q_lqw" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KU5Y01T0EeKvFeqt5Q_lqw" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8rHJYFTzEeKvFeqt5Q_lqw" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CBQusFT0EeKvFeqt5Q_lqw" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CGsoUFT0EeKvFeqt5Q_lqw" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8rHJYVTzEeKvFeqt5Q_lqw" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8rHJYlTzEeKvFeqt5Q_lqw" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8rHJY1TzEeKvFeqt5Q_lqw"/>
+ </children>
+ <element xmi:type="uml:Property" href="HelloWorldC.uml#_8pupUFTzEeKvFeqt5Q_lqw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8rDfAVTzEeKvFeqt5Q_lqw" x="40" y="30" width="163"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8LS49s__Ed-TP80eVS-2Rg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7kMQFWUEeKdxoQIVxFNNg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7kMQVWUEeKdxoQIVxFNNg" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="HelloWorldC.uml#_11OtwPcaEd-KM6l7lmIPkw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7kMQlWUEeKdxoQIVxFNNg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6UeXAFWUEeKdxoQIVxFNNg" type="3069" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6Ue-EFWUEeKdxoQIVxFNNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6Ue-EVWUEeKdxoQIVxFNNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6Ue-ElWUEeKdxoQIVxFNNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6Ue-E1WUEeKdxoQIVxFNNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6Ue-FFWUEeKdxoQIVxFNNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6UflIFWUEeKdxoQIVxFNNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9gHMkFWUEeKdxoQIVxFNNg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_90BnEFWUEeKdxoQIVxFNNg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_90COIFWUEeKdxoQIVxFNNg" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_90COIVWUEeKdxoQIVxFNNg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_90COIlWUEeKdxoQIVxFNNg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_90COI1WUEeKdxoQIVxFNNg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6UflIVWUEeKdxoQIVxFNNg" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6UflIlWUEeKdxoQIVxFNNg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6UflI1WUEeKdxoQIVxFNNg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6UflJFWUEeKdxoQIVxFNNg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6UeXAVWUEeKdxoQIVxFNNg" x="-10" y="27"/>
+ </children>
+ <element xmi:type="uml:Class" href="HelloWorldC.uml#_tyiqsc__Ed-TP80eVS-2Rg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8LSR4c__Ed-TP80eVS-2Rg" x="90" y="135" width="254" height="109"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-HlK8DecEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-HlyADecEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-HlyATecEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-HlyAjecEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-HlyAzecEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-HlyBDecEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-HlyBTecEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-HlyBjecEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="HelloWorldC.uml#_-Hd2MDecEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-HlK8TecEeGPyrZ5I3hMlA" x="423" y="135" width="295" height="55"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0EFQQDedEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0EF3UDedEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0EF3UTedEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0EF3UjedEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0EF3UzedEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0EF3VDedEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0EF3VTedEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0EF3VjedEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="HelloWorldC.uml#_0D64MDedEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0EFQQTedEeGPyrZ5I3hMlA" x="423" y="18" width="295"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SypoQFT0EeKvFeqt5Q_lqw" type="2109" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SyqPUFT0EeKvFeqt5Q_lqw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SyqPUVT0EeKvFeqt5Q_lqw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SyqPUlT0EeKvFeqt5Q_lqw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SyqPU1T0EeKvFeqt5Q_lqw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SyqPVFT0EeKvFeqt5Q_lqw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SyqPVVT0EeKvFeqt5Q_lqw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SyqPVlT0EeKvFeqt5Q_lqw" type="5192"/>
+ <element xmi:type="uml:Comment" href="HelloWorldC.uml#_SxvpUFT0EeKvFeqt5Q_lqw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SypoQVT0EeKvFeqt5Q_lqw" x="422" y="198" width="290" height="45"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_rjTBsFWUEeKdxoQIVxFNNg" type="2073" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rjTowFWUEeKdxoQIVxFNNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rjTowVWUEeKdxoQIVxFNNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rjTowlWUEeKdxoQIVxFNNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rjTow1WUEeKdxoQIVxFNNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rjToxFWUEeKdxoQIVxFNNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rjUP0FWUEeKdxoQIVxFNNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_rjUP0VWUEeKdxoQIVxFNNg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_rjUP0lWUEeKdxoQIVxFNNg" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_rjUP01WUEeKdxoQIVxFNNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rjUP1FWUEeKdxoQIVxFNNg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wd8WwFWUEeKdxoQIVxFNNg" type="3069" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wd890FWUEeKdxoQIVxFNNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wd890VWUEeKdxoQIVxFNNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wd890lWUEeKdxoQIVxFNNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wd8901WUEeKdxoQIVxFNNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wd891FWUEeKdxoQIVxFNNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wd891VWUEeKdxoQIVxFNNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__0Ah0FWUEeKdxoQIVxFNNg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AWUksFWVEeKdxoQIVxFNNg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AWUksVWVEeKdxoQIVxFNNg" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AWUkslWVEeKdxoQIVxFNNg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AWUks1WVEeKdxoQIVxFNNg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AWVLwFWVEeKdxoQIVxFNNg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wd891lWUEeKdxoQIVxFNNg" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wd9k4FWUEeKdxoQIVxFNNg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wd9k4VWUEeKdxoQIVxFNNg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wd9k4lWUEeKdxoQIVxFNNg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wd8WwVWUEeKdxoQIVxFNNg" x="-10" y="27"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_N6fa4JsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rjTBsVWUEeKdxoQIVxFNNg" x="90" y="18" width="253" height="73"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_7kc7Yc__Ed-TP80eVS-2Rg"/>
+ <element xmi:type="uml:Package" href="HelloWorldC.uml#_LOqIEDLaEd2qeKRLMdIx_A"/>
+ <edges xmi:type="notation:Connector" xmi:id="_uHz6kP8nEd-hWJO6cv3VJA" type="4015" source="_8LSR4M__Ed-TP80eVS-2Rg" target="_rjTBsFWUEeKdxoQIVxFNNg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_uH0hoP8nEd-hWJO6cv3VJA" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uH0hof8nEd-hWJO6cv3VJA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_uHz6kf8nEd-hWJO6cv3VJA" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="HelloWorldC.uml#_tyiqss__Ed-TP80eVS-2Rg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_uHz6kv8nEd-hWJO6cv3VJA" points="[-103, -45, 204, 90]$[-307, -135, 0, 0]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zpY_EFWUEeKdxoQIVxFNNg" id="(0.4782608695652174,0.8571428571428571)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_FOfGwDeeEeGPyrZ5I3hMlA" type="4002" source="_0EFQQDedEeGPyrZ5I3hMlA" target="_rjTBsFWUEeKdxoQIVxFNNg" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FOfGwTeeEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FOfGwjeeEeGPyrZ5I3hMlA" points="[-6, -3, 83, 0]$[-62, -3, 27, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FOwMgDeeEeGPyrZ5I3hMlA" id="(0.020338983050847456,0.4027777777777778)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FOwMgTeeEeGPyrZ5I3hMlA" id="(0.9644268774703557,0.32142857142857145)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_F4Ju0DeeEeGPyrZ5I3hMlA" type="4002" source="_-HlK8DecEeGPyrZ5I3hMlA" target="_8LSR4M__Ed-TP80eVS-2Rg" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_F4Ju0TeeEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_F4Ju0jeeEeGPyrZ5I3hMlA" points="[-25, 3, 78, 0]$[-80, -2, 23, -5]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_F4a0kDeeEeGPyrZ5I3hMlA" id="(0.006779661016949152,0.509090909090909)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_F4a0kTeeEeGPyrZ5I3hMlA" id="(0.9921259842519685,0.26605504587155965)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_YapykFT0EeKvFeqt5Q_lqw" type="4002" source="_SypoQFT0EeKvFeqt5Q_lqw" target="_8rDfAFTzEeKvFeqt5Q_lqw" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_YapykVT0EeKvFeqt5Q_lqw" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YapyklT0EeKvFeqt5Q_lqw" points="[-19, -3, 177, 20]$[-188, -24, 8, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ya7fYFT0EeKvFeqt5Q_lqw" id="(0.06551724137931035,0.38333333333333336)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ya7fYVT0EeKvFeqt5Q_lqw" id="(0.9693251533742331,0.65)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_o6ZisNCREd-hqYHBJe17_Q" type="CompositeStructure" name="System" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_VSa6YNHtEd-A1oPfP47IaQ" type="2073" fontName="" fontHeight="10" fillColor="8905185" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VScIgNHtEd-A1oPfP47IaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VScvkNHtEd-A1oPfP47IaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VScvkdHtEd-A1oPfP47IaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VScvktHtEd-A1oPfP47IaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VScvk9HtEd-A1oPfP47IaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VScvlNHtEd-A1oPfP47IaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VScvldHtEd-A1oPfP47IaQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VScvltHtEd-A1oPfP47IaQ" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_XsS70NHtEd-A1oPfP47IaQ" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XsTi4NHtEd-A1oPfP47IaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XsTi4dHtEd-A1oPfP47IaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XsTi4tHtEd-A1oPfP47IaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XsTi49HtEd-A1oPfP47IaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XsTi5NHtEd-A1oPfP47IaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XsTi5dHtEd-A1oPfP47IaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XsTi5tHtEd-A1oPfP47IaQ" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yonwwFTzEeKvFeqt5Q_lqw" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yzIXoFTzEeKvFeqt5Q_lqw" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_XsTi59HtEd-A1oPfP47IaQ" type="7077">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XsUJ8NHtEd-A1oPfP47IaQ"/>
+ </children>
+ <element xmi:type="uml:Property" href="HelloWorldC.uml#_gV1cgDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XsS70dHtEd-A1oPfP47IaQ" x="40" y="20" width="193" height="85"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VScvl9HtEd-A1oPfP47IaQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="HelloWorldC.uml#_bYJagDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VSa6YdHtEd-A1oPfP47IaQ" x="18" y="18" width="280" height="172"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_o6ZisdCREd-hqYHBJe17_Q"/>
+ <element xmi:type="uml:Package" href="HelloWorldC.uml#_LOqIEDLaEd2qeKRLMdIx_A"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_U1UegPcXEd-KM6l7lmIPkw" type="PapyrusUMLClassDiagram" name="deployment" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_FGfloCghEeCw56aD7XrQhw" type="2016" element="_7kc7YM__Ed-TP80eVS-2Rg" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FGgMsCghEeCw56aD7XrQhw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FGgMsSghEeCw56aD7XrQhw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FGgMsighEeCw56aD7XrQhw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FGgMsyghEeCw56aD7XrQhw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FGlsQCghEeCw56aD7XrQhw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FGmTUCghEeCw56aD7XrQhw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FGmTUSghEeCw56aD7XrQhw" type="0">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FGmTUighEeCw56aD7XrQhw" x="54" y="3"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FGfloSghEeCw56aD7XrQhw" x="54" y="24" width="34" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gdmuADefEeGPyrZ5I3hMlA" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gdmuAjefEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gdmuAzefEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gdmuBDefEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gdmuBTefEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gdnVEDefEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gdnVETefEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gdnVEjefEeGPyrZ5I3hMlA" type="5038"/>
+ <element xmi:type="uml:Comment" href="HelloWorldC.uml#_gdeyMDefEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gdmuATefEeGPyrZ5I3hMlA" x="315" y="18" width="226" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-4h4YFWREeKdxoQIVxFNNg" type="2007" fontName="Sans Serif" fillColor="8905185" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-4k7sFWREeKdxoQIVxFNNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-4k7sVWREeKdxoQIVxFNNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-4k7slWREeKdxoQIVxFNNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-4k7s1WREeKdxoQIVxFNNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-4liwFWREeKdxoQIVxFNNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-4liwVWREeKdxoQIVxFNNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-4liwlWREeKdxoQIVxFNNg" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-4liw1WREeKdxoQIVxFNNg" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_ZQjFQFWjEeKOivupHOJ8Ew" type="3020" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZQjsUFWjEeKOivupHOJ8Ew" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZQjsUVWjEeKOivupHOJ8Ew" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZQjsUlWjEeKOivupHOJ8Ew" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZQkTYFWjEeKOivupHOJ8Ew" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZQkTYVWjEeKOivupHOJ8Ew" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZQkTYlWjEeKOivupHOJ8Ew" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZQkTY1WjEeKOivupHOJ8Ew" type="5040"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ZQkTZFWjEeKOivupHOJ8Ew" type="7035">
+ <children xmi:type="notation:Shape" xmi:id="_ET2zcFWkEeKOivupHOJ8Ew" type="3030" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Slot" href="HelloWorldC.uml#_ymQ48FT2EeKvFeqt5Q_lqw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ET2zcVWkEeKOivupHOJ8Ew" x="58" y="15"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ZQkTZVWjEeKOivupHOJ8Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ZQkTZlWjEeKOivupHOJ8Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ZQkTZ1WjEeKOivupHOJ8Ew"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZQkTaFWjEeKOivupHOJ8Ew"/>
+ </children>
+ <element xmi:type="uml:InstanceSpecification" href="HelloWorldC.uml#_ymErsFT2EeKvFeqt5Q_lqw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZQjFQVWjEeKOivupHOJ8Ew" x="10" y="12" width="235" height="46"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Z7T5gFWjEeKOivupHOJ8Ew" type="3020" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Z7UgkFWjEeKOivupHOJ8Ew" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z7UgkVWjEeKOivupHOJ8Ew" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Z7UgklWjEeKOivupHOJ8Ew" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z7Ugk1WjEeKOivupHOJ8Ew" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Z7UglFWjEeKOivupHOJ8Ew" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z7UglVWjEeKOivupHOJ8Ew" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Z7UgllWjEeKOivupHOJ8Ew" type="5040"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Z7Ugl1WjEeKOivupHOJ8Ew" type="7035">
+ <children xmi:type="notation:Shape" xmi:id="_6VXKAFWjEeKOivupHOJ8Ew" type="3030" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Slot" href="HelloWorldC.uml#_tfj4gFUwEeKdxoQIVxFNNg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6VXKAVWjEeKOivupHOJ8Ew" x="26" y="15"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Z7UgmFWjEeKOivupHOJ8Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Z7UgmVWjEeKOivupHOJ8Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Z7UgmlWjEeKOivupHOJ8Ew"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Z7Ugm1WjEeKOivupHOJ8Ew"/>
+ </children>
+ <element xmi:type="uml:InstanceSpecification" href="HelloWorldC.uml#_ymQR4FT2EeKvFeqt5Q_lqw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Z7T5gVWjEeKOivupHOJ8Ew" x="10" y="102" width="235" height="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_85kMIFWjEeKOivupHOJ8Ew" type="3020" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_85kzMFWjEeKOivupHOJ8Ew" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_85kzMVWjEeKOivupHOJ8Ew" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_85kzMlWjEeKOivupHOJ8Ew" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_85kzM1WjEeKOivupHOJ8Ew" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_85kzNFWjEeKOivupHOJ8Ew" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_85kzNVWjEeKOivupHOJ8Ew" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_85kzNlWjEeKOivupHOJ8Ew" type="5040"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_85kzN1WjEeKOivupHOJ8Ew" visible="false" type="7035">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_85laQFWjEeKOivupHOJ8Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_85laQVWjEeKOivupHOJ8Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_85laQlWjEeKOivupHOJ8Ew"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_85laQ1WjEeKOivupHOJ8Ew"/>
+ </children>
+ <element xmi:type="uml:InstanceSpecification" href="HelloWorldC.uml#_GQ1ekKwHEeCQX8uv_p0Q4A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_85kMIVWjEeKOivupHOJ8Ew" x="352" y="12" width="163" height="46"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wCUSAFZVEeKKZs15rvNNjA" type="3028" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wCX8YFZVEeKKZs15rvNNjA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wCX8YVZVEeKKZs15rvNNjA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wCX8YlZVEeKKZs15rvNNjA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wCYjcFZVEeKKZs15rvNNjA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wCYjcVZVEeKKZs15rvNNjA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wCYjclZVEeKKZs15rvNNjA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wCYjc1ZVEeKKZs15rvNNjA" type="5063"/>
+ <element xmi:type="uml:Comment" href="HelloWorldC.uml#_wAbboFZVEeKKZs15rvNNjA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wCUSAVZVEeKKZs15rvNNjA" x="298" y="94" width="208" height="83"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-4lixFWREeKdxoQIVxFNNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-4lixVWREeKdxoQIVxFNNg"/>
+ </children>
+ <element xmi:type="uml:Package" href="HelloWorldC.uml#_yl9-AFT2EeKvFeqt5Q_lqw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-4h4YVWREeKdxoQIVxFNNg" x="30" y="160" width="538" height="219"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_obNuEFWiEeKOivupHOJ8Ew" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_obQxYFWiEeKOivupHOJ8Ew" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_obQxYVWiEeKOivupHOJ8Ew" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_obQxYlWiEeKOivupHOJ8Ew" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_obQxY1WiEeKOivupHOJ8Ew" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_obRYcFWiEeKOivupHOJ8Ew" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_obRYcVWiEeKOivupHOJ8Ew" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_obRYclWiEeKOivupHOJ8Ew" type="5038"/>
+ <element xmi:type="uml:Comment" href="HelloWorldC.uml#_oZw8kFWiEeKOivupHOJ8Ew"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_obNuEVWiEeKOivupHOJ8Ew" x="315" y="90" width="226" height="55"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_U1UegfcXEd-KM6l7lmIPkw"/>
+ <element xmi:type="uml:Package" href="HelloWorldC.uml#_234GEDLiEd2RVeNawwNNzg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_86CtQFWjEeKOivupHOJ8Ew" type="4006" source="_ZQjFQFWjEeKOivupHOJ8Ew" target="_85kMIFWjEeKOivupHOJ8Ew" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_86D7YFWjEeKOivupHOJ8Ew" type="6014">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_86D7YVWjEeKOivupHOJ8Ew" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_86D7YlWjEeKOivupHOJ8Ew" type="6015">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_86D7Y1WjEeKOivupHOJ8Ew" x="-4" y="-9"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_86CtQVWjEeKOivupHOJ8Ew" fontName="Sans Serif"/>
+ <element xmi:type="uml:Abstraction" href="HelloWorldC.uml#_UPx34FWUEeKdxoQIVxFNNg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_86CtQlWjEeKOivupHOJ8Ew" points="[-81, -23, 28, 8]$[-109, -31, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Sqs9MFWkEeKOivupHOJ8Ew" type="4013" source="_obNuEFWiEeKOivupHOJ8Ew" target="_-4h4YFWREeKdxoQIVxFNNg" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Sqs9MVWkEeKOivupHOJ8Ew" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Sqs9MlWkEeKOivupHOJ8Ew" points="[-3, 8, 0, -33]$[20, 29, 23, -12]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SrQW0FWkEeKOivupHOJ8Ew" id="(0.5913461538461539,0.8666666666666667)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SrQW0VWkEeKOivupHOJ8Ew" id="(0.7925636007827789,0.1461187214611872)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7O5fMFZVEeKKZs15rvNNjA" type="4013" source="_wCUSAFZVEeKKZs15rvNNjA" target="_ZQjFQFWjEeKOivupHOJ8Ew" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_7O5fMVZVEeKKZs15rvNNjA" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7O5fMlZVEeKKZs15rvNNjA" points="[-12, 19, 179, 93]$[-56, 19, 135, 93]$[-56, -16, 135, 58]$[-245, -16, -54, 58]$[-245, -51, -54, 23]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7PO2YFZVEeKKZs15rvNNjA" id="(0.06382978723404255,0.18333333333333332)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_71Q7oFZVEeKKZs15rvNNjA" type="4013" source="_wCUSAFZVEeKKZs15rvNNjA" target="_Z7T5gFWjEeKOivupHOJ8Ew" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_71Q7oVZVEeKKZs15rvNNjA" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_71Q7olZVEeKKZs15rvNNjA" points="[-12, 8, 82, 0]$[-73, 9, 21, 1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_71iBYFZVEeKKZs15rvNNjA" id="(0.06382978723404255,0.6166666666666667)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_71iBYVZVEeKKZs15rvNNjA" id="(0.9106382978723404,0.640625)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_0rwpYDefEeGPyrZ5I3hMlA" type="CompositeStructure" name="HWArchitecture" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_1w2CIDefEeGPyrZ5I3hMlA" type="2073" fontName="" fontHeight="10" fillColor="10011046" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1w2pMDefEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1w2pMTefEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1w2pMjefEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1w2pMzefEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1w2pNDefEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1w2pNTefEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HTZS4DegEeGPyrZ5I3hMlA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mAM_QBMqEeK_iPOWsxJHwg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mAM_QRMqEeK_iPOWsxJHwg" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mANmUBMqEeK_iPOWsxJHwg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mANmURMqEeK_iPOWsxJHwg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mANmUhMqEeK_iPOWsxJHwg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1w2pNjefEeGPyrZ5I3hMlA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1w2pNzefEeGPyrZ5I3hMlA" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_4HLnYDefEeGPyrZ5I3hMlA" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4HMOcDefEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4HMOcTefEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4HMOcjefEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4HMOczefEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4HMOdDefEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4HMOdTefEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4HMOdjefEeGPyrZ5I3hMlA" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ENwn8FWjEeKOivupHOJ8Ew" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUBoAFWjEeKOivupHOJ8Ew" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4HMOdzefEeGPyrZ5I3hMlA" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4HMOeDefEeGPyrZ5I3hMlA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4HMOeTefEeGPyrZ5I3hMlA"/>
+ </children>
+ <element xmi:type="uml:Property" href="HelloWorldC.uml#_4HAoQDefEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4HLnYTefEeGPyrZ5I3hMlA" x="61" y="22" width="162"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1w2pODefEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1w2pOTefEeGPyrZ5I3hMlA"/>
+ </children>
+ <element xmi:type="uml:Class" href="HelloWorldC.uml#_tZvNQDefEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1w2CITefEeGPyrZ5I3hMlA" x="81" y="63" width="300" height="154"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7qMbIDefEeGPyrZ5I3hMlA" type="2072" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7qNCMDefEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7qNCMTefEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7qNCMjefEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7qNCMzefEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7qNCNDefEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7qNCNTefEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_85ECADefEeGPyrZ5I3hMlA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_B_VokFWjEeKOivupHOJ8Ew" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_B_WPoFWjEeKOivupHOJ8Ew" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_B_WPoVWjEeKOivupHOJ8Ew" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_B_WPolWjEeKOivupHOJ8Ew" key="PropStereoDisplay" value="FCM::Target.targetArch,FCM::Target.usedOS"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_B_WPo1WjEeKOivupHOJ8Ew" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7qNCNjefEeGPyrZ5I3hMlA" type="5124"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7qNCNzefEeGPyrZ5I3hMlA" visible="false" type="7072">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7qNCODefEeGPyrZ5I3hMlA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7qNCOTefEeGPyrZ5I3hMlA"/>
+ </children>
+ <element xmi:type="uml:Node" href="HelloWorldC.uml#_zY9vMDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7qMbITefEeGPyrZ5I3hMlA" x="441" y="63" width="154" height="91"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jhQ20DegEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jhQ20jegEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jhQ20zegEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jhQ21DegEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jhQ21TegEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jhQ21jegEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jhQ21zegEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jhRd4DegEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="HelloWorldC.uml#_jhF3sDegEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jhQ20TegEeGPyrZ5I3hMlA" x="435" y="183" width="277"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_0rwpYTefEeGPyrZ5I3hMlA"/>
+ <element xmi:type="uml:Package" href="HelloWorldC.uml#_v3fMgDLiEd2RVeNawwNNzg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_ugb6IDegEeGPyrZ5I3hMlA" type="4002" source="_jhQ20DegEeGPyrZ5I3hMlA" target="_7qMbIDefEeGPyrZ5I3hMlA" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_ugb6ITegEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ugb6IjegEeGPyrZ5I3hMlA" points="[-3, -6, 22, 58]$[-30, -51, -5, 13]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ugs_4DegEeGPyrZ5I3hMlA" id="(0.2815884476534296,0.05)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ugs_4TegEeGPyrZ5I3hMlA" id="(0.4420289855072464,0.8266666666666667)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_ovKvYFWjEeKOivupHOJ8Ew" type="PapyrusUMLDeploymentDiagram" name="NewDeploymentDiagram" measurementUnit="Pixel">
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_ovKvYVWjEeKOivupHOJ8Ew"/>
+ <element xmi:type="uml:Package" href="HelloWorldC.uml#_234GEDLiEd2RVeNawwNNzg"/>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/HelloWorldC.uml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/HelloWorldC.uml
new file mode 100644
index 00000000000..a02dc7a2a5f
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/HelloWorldC.uml
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Alloc="http://www.eclipse.org/papyrus/Alloc/1" xmlns:C_Cpp="http://www.eclipse.org/papyrus/C_Cpp/1" xmlns:FCM="http://www.eclipse.org/papyrus/FCM/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/papyrus/Alloc/1 http://www.eclipse.org/papyrus/MARTE/1#//Alloc">
+ <uml:Model xmi:id="_O6TiIDLUEd26WNosUASSSw" name="HelloWorld">
+ <packageImport xmi:id="_O6TiITLUEd26WNosUASSSw">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packageImport xmi:id="_Bc1WIFW4Ed63BrxiKsw-0Q">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/core.uml#_O6TiIDLUEd26WNosUASSSw"/>
+ </packageImport>
+ <packageImport xmi:id="_rwBsMP7AEd6Zw96O-tCw7A">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/corba.uml#_DtQEwDLdEd2_U4efLnjQIw"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Package" xmi:id="_LOqIEDLaEd2qeKRLMdIx_A" name="components">
+ <ownedComment xmi:id="_-Hd2MDecEeGPyrZ5I3hMlA" annotatedElement="_tyiqsc__Ed-TP80eVS-2Rg">
+ <body>Simple HelloWorld component that prints a message in its &quot;run&quot; operation that is provided via the &quot;start&quot; port
+</body>
+ </ownedComment>
+ <ownedComment xmi:id="_0D64MDedEeGPyrZ5I3hMlA">
+ <annotatedElement xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_N6fa4JsrEd61Eo3nmu3JhQ"/>
+ <body>Part of the Qompass core model library. Provides the specific port &quot;start&quot;. The &quot;run&quot; operation (defined within interface IStart) of this port is called by generated boot-code after instantiation and configuration of a component. </body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_tyiqsc__Ed-TP80eVS-2Rg" name="HelloWorld">
+ <ownedComment xmi:id="_SxvpUFT0EeKvFeqt5Q_lqw" annotatedElement="_8pupUFTzEeKvFeqt5Q_lqw">
+ <body>Configuration attribute within the Hello World component. Its value is configured on the instance level.</body>
+ </ownedComment>
+ <generalization xmi:id="_tyiqss__Ed-TP80eVS-2Rg">
+ <general xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_N6fa4JsrEd61Eo3nmu3JhQ"/>
+ </generalization>
+ <ownedAttribute xmi:id="_8pupUFTzEeKvFeqt5Q_lqw" name="message" visibility="public" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__HwK8FTzEeKvFeqt5Q_lqw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__HwyAFTzEeKvFeqt5Q_lqw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="__HynMFTzEeKvFeqt5Q_lqw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <interfaceRealization xmi:id="_Us15gFTzEeKvFeqt5Q_lqw" name="derived realization of IStart" client="_tyiqsc__Ed-TP80eVS-2Rg">
+ <supplier xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_PTWzwCS-Ed-A_I32T0fkaA"/>
+ <contract href="pathmap://QML_CORE/sysinterfaces.uml#_PTWzwCS-Ed-A_I32T0fkaA"/>
+ </interfaceRealization>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_tyjRwc__Ed-TP80eVS-2Rg" name="run" specification="_UtCt0FTzEeKvFeqt5Q_lqw">
+ <language>C/C++</language>
+ <body>printf (&quot;Hello world: %s&quot;, message);</body>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_UtCt0FTzEeKvFeqt5Q_lqw" name="run" method="_tyjRwc__Ed-TP80eVS-2Rg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_bYJagDLiEd2RVeNawwNNzg" name="System">
+ <ownedAttribute xmi:id="_gV1cgDLiEd2RVeNawwNNzg" name="hello" visibility="public" type="_tyiqsc__Ed-TP80eVS-2Rg" isUnique="false" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dCT24G6JEeGqWMX2LwdLDw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dCUd8G6JEeGqWMX2LwdLDw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_dCWTIG6JEeGqWMX2LwdLDw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_v3fMgDLiEd2RVeNawwNNzg" name="platform">
+ <ownedComment xmi:id="_jhF3sDegEeGPyrZ5I3hMlA" annotatedElement="_zY9vMDLiEd2RVeNawwNNzg">
+ <body>Simple single node configuration. TargetOS is set to Linux, but will work on any OS, since this simple example does not use the OS abstraction layer</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Node" xmi:id="_zY9vMDLiEd2RVeNawwNNzg" name="MonoNode"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_tZvNQDefEeGPyrZ5I3hMlA" name="Platform">
+ <ownedAttribute xmi:id="_4HAoQDefEeGPyrZ5I3hMlA" name="monoNode" visibility="public" type="_zY9vMDLiEd2RVeNawwNNzg" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6WEg0DefEeGPyrZ5I3hMlA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6WFu8DefEeGPyrZ5I3hMlA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_6WHkIDefEeGPyrZ5I3hMlA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_YxI8IDegEeGPyrZ5I3hMlA" name="HWArchitecturePlatform">
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_GQ1ekKwHEeCQX8uv_p0Q4A" name="monoNode" classifier="_zY9vMDLiEd2RVeNawwNNzg"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_234GEDLiEd2RVeNawwNNzg" name="deployment">
+ <ownedComment xmi:id="_VMRFgDOJEeC7y-fR3OSnFw">
+ <body>This configuration requires the installation of the OTF trace library.&lt;br /></body>
+ </ownedComment>
+ <ownedComment xmi:id="_gdeyMDefEeGPyrZ5I3hMlA">
+ <body>Cross references to composite diagram</body>
+ </ownedComment>
+ <ownedComment xmi:id="_oZw8kFWiEeKOivupHOJ8Ew" annotatedElement="_yl9-AFT2EeKvFeqt5Q_lqw">
+ <body>Deployment plan for system, i.e. set of instance specification along with configuration and allocation</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Package" xmi:id="_yl9-AFT2EeKvFeqt5Q_lqw" name="SystemDepPlan">
+ <ownedComment xmi:id="_wAbboFZVEeKKZs15rvNNjA" annotatedElement="_ymErsFT2EeKvFeqt5Q_lqw _ymQR4FT2EeKvFeqt5Q_lqw">
+ <body>Value mainInstance.hello is a UML instance-value, i.e. a reference to the instance specification on the left.
+&quot;Test message&quot; is a StringValue initializing the message attribute</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_ymErsFT2EeKvFeqt5Q_lqw" name="mainInstance" classifier="_bYJagDLiEd2RVeNawwNNzg">
+ <slot xmi:id="_ymQ48FT2EeKvFeqt5Q_lqw" definingFeature="_gV1cgDLiEd2RVeNawwNNzg">
+ <value xmi:type="uml:InstanceValue" xmi:id="_ymRgAFT2EeKvFeqt5Q_lqw" instance="_ymQR4FT2EeKvFeqt5Q_lqw"/>
+ </slot>
+ </packagedElement>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_ymQR4FT2EeKvFeqt5Q_lqw" name="mainInstance.hello" classifier="_tyiqsc__Ed-TP80eVS-2Rg">
+ <slot xmi:id="_tfj4gFUwEeKdxoQIVxFNNg" definingFeature="_8pupUFTzEeKvFeqt5Q_lqw">
+ <value xmi:type="uml:LiteralString" xmi:id="_tfni4FUwEeKdxoQIVxFNNg" name="value for message" value="&quot;Test message&quot;">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </value>
+ </slot>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_UPx34FWUEeKdxoQIVxFNNg" name="allocate mainInstance to monoNode" client="_ymErsFT2EeKvFeqt5Q_lqw" supplier="_GQ1ekKwHEeCQX8uv_p0Q4A"/>
+ </packagedElement>
+ </packagedElement>
+ <profileApplication xmi:id="_O6TiIjLUEd26WNosUASSSw">
+ <eAnnotations xmi:id="_O6TiIzLUEd26WNosUASSSw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_GcC0cAHtEd6HSdiss9GQ0A">
+ <eAnnotations xmi:id="_Gd1kMAHtEd6HSdiss9GQ0A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/C_Cpp/1#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
+ </profileApplication>
+ <profileApplication xmi:id="_z1TwgFW3Ed63BrxiKsw-0Q">
+ <eAnnotations xmi:id="_z2GasFW3Ed63BrxiKsw-0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/FCM/1#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://FCM_PROFILES/FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
+ </profileApplication>
+ <profileApplication xmi:id="_sfyAwEbjEd-l4NeVOJZDkA">
+ <eAnnotations xmi:id="_siunEEbjEd-l4NeVOJZDkA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//GCM"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_YgAioAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ <profileApplication xmi:id="_popJkKmqEeCxII-g1_Lmeg">
+ <eAnnotations xmi:id="_p1PbIKmqEeCxII-g1_Lmeg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//HLAM"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_yNSZIAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ <profileApplication xmi:id="_tZuBwE0tEeG4IqgA7gSE6w">
+ <eAnnotations xmi:id="_tisXkE0tEeG4IqgA7gSE6w" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_ar8OsAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ </uml:Model>
+ <FCM:DerivedElement xmi:id="_RwGb8P6_Ed6Zw96O-tCw7A"/>
+ <FCM:DerivedElement xmi:id="_RxVyEP6_Ed6Zw96O-tCw7A"/>
+ <FCM:DerivedElement xmi:id="_RoIMoP94Ed6628OhKk_dpg"/>
+ <FCM:DerivedElement xmi:id="_IFlIEARJEd--t-uhRn9OBA"/>
+ <FCM:ContainerRule xmi:id="_b-TmAARJEd--t-uhRn9OBA">
+ <portSet href="pathmap://QML_CORE/core.uml#__SL-kNtxEd6nqsBVkgJEEA"/>
+ </FCM:ContainerRule>
+ <FCM:DerivedElement xmi:id="_bmwhUARMEd-OidZzGKCpzg"/>
+ <FCM:DerivedElement xmi:id="_xjNC4ATuEd-Zc_RSu20WjA"/>
+ <FCM:DerivedElement xmi:id="_LZoQ4AVIEd-rcKh6R_xjRQ"/>
+ <FCM:DerivedElement xmi:id="_oMpYkAWxEd-jrvNV_WQOlA"/>
+ <FCM:DerivedElement xmi:id="_Fd6d0AnREd-co_m_wv4b6A"/>
+ <FCM:DerivedElement xmi:id="_uLARMBGVEd-rfYlCjUOxJQ"/>
+ <FCM:DerivedElement xmi:id="_qdjxQBGkEd-Jq_XWT8Mhpg"/>
+ <FCM:DerivedElement xmi:id="_VOzfEBGlEd-Jq_XWT8Mhpg"/>
+ <FCM:DerivedElement xmi:id="_N8BrMBI4Ed-3zOZ0RGapGA"/>
+ <FCM:DerivedElement xmi:id="_jIS30BI8Ed-XjYZ05V-9-Q"/>
+ <FCM:DerivedElement xmi:id="_E5UhUBJIEd-XjYZ05V-9-Q"/>
+ <FCM:DerivedElement xmi:id="_THoRwBJWEd-QgZm_R1AKbA"/>
+ <FCM:DerivedElement xmi:id="_z0CVcBQ2Ed-_dI0JopJMvQ"/>
+ <FCM:DerivedElement xmi:id="_Ke_UsBb7Ed-u0pMEAnvpEQ"/>
+ <FCM:DerivedElement xmi:id="_uOkD4D15Ed-qiK1VZWszhA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE//sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_a4LokD16Ed-qiK1VZWszhA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE//sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <C_Cpp:Include xmi:id="_11OtwPcaEd-KM6l7lmIPkw" body="#include &lt;stdio.h>" base_class="_tyiqsc__Ed-TP80eVS-2Rg"/>
+ <FCM:Target xmi:id="_LD_uICr7EeCfcI_SvPT4lw" base_Node="_zY9vMDLiEd2RVeNawwNNzg">
+ <targetArch href="pathmap://QML_CORE/core.uml#_FYOqwF0OEd-12d_h0i1xhQ"/>
+ <usedOS href="pathmap://QML_CORE/core.uml#_1eULwF0NEd-12d_h0i1xhQ"/>
+ </FCM:Target>
+ <FCM:Connector xmi:id="_iADdkE2rEeGl8qrc8BM7vA">
+ <ic href="pathmap://QML_CORE/fifo.uml#_xQ_ccHUuEd6R5tffIPrlPg"/>
+ </FCM:Connector>
+ <FCM:DerivedElement xmi:id="_UtTMgFTzEeKvFeqt5Q_lqw" base_Element="_UtCt0FTzEeKvFeqt5Q_lqw">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:ConfigurationProperty xmi:id="_KTwJUFT0EeKvFeqt5Q_lqw" base_Property="_8pupUFTzEeKvFeqt5Q_lqw"/>
+ <FCM:DeploymentPlan xmi:id="_ymC2gFT2EeKvFeqt5Q_lqw" mainInstance="_ymErsFT2EeKvFeqt5Q_lqw" base_Package="_yl9-AFT2EeKvFeqt5Q_lqw"/>
+ <Alloc:Allocate xmi:id="_UP7B0FWUEeKdxoQIVxFNNg" base_Abstraction="_UPx34FWUEeKdxoQIVxFNNg"/>
+ <FCM:CodeGenOptions xmi:id="_1uf4ENykEeKPWMO32vUmzw" base_Package="_LOqIEDLaEd2qeKRLMdIx_A">
+ <progLanguage href="pathmap://QML_CORE/core.uml#_74ZoANzEEeKPWMO32vUmzw"/>
+ </FCM:CodeGenOptions>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/HelloWorldJava.di b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/HelloWorldJava.di
new file mode 100644
index 00000000000..670de7fb972
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/HelloWorldJava.di
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi" xmi:id="_M_WAwPcXEd-KM6l7lmIPkw">
+ <pageList xmi:id="_M_WAwfcXEd-KM6l7lmIPkw">
+ <availablePage xmi:id="_M_WAwvcXEd-KM6l7lmIPkw"/>
+ <availablePage xmi:id="_M_WAxPcXEd-KM6l7lmIPkw">
+ <emfPageIdentifier href="HelloWorldJava.notation#_7kc7YM__Ed-TP80eVS-2Rg"/>
+ </availablePage>
+ <availablePage xmi:id="_M_WAxfcXEd-KM6l7lmIPkw">
+ <emfPageIdentifier href="HelloWorldJava.notation#_o6ZisNCREd-hqYHBJe17_Q"/>
+ </availablePage>
+ <availablePage xmi:id="_U1docPcXEd-KM6l7lmIPkw">
+ <emfPageIdentifier href="HelloWorldJava.notation#_U1UegPcXEd-KM6l7lmIPkw"/>
+ </availablePage>
+ <availablePage xmi:id="_V5fVYP8nEd-hWJO6cv3VJA"/>
+ <availablePage>
+ <emfPageIdentifier href="HelloWorldJava.notation#_0rwpYDefEeGPyrZ5I3hMlA"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="HelloWorldJava.notation#_ovKvYFWjEeKOivupHOJ8Ew"/>
+ </availablePage>
+ </pageList>
+ <sashModel xmi:id="_M_WAxvcXEd-KM6l7lmIPkw" currentSelection="_M_WAyPcXEd-KM6l7lmIPkw">
+ <windows xmi:id="_M_WAx_cXEd-KM6l7lmIPkw">
+ <children xsi:type="di:TabFolder" xmi:id="_M_WAyPcXEd-KM6l7lmIPkw">
+ <children xmi:id="_M_WAy_cXEd-KM6l7lmIPkw">
+ <emfPageIdentifier href="HelloWorldJava.notation#_7kc7YM__Ed-TP80eVS-2Rg"/>
+ </children>
+ <children xmi:id="_M_WAzPcXEd-KM6l7lmIPkw">
+ <emfPageIdentifier href="HelloWorldJava.notation#_o6ZisNCREd-hqYHBJe17_Q"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="HelloWorldJava.notation#_U1UegPcXEd-KM6l7lmIPkw"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="HelloWorldJava.notation#_0rwpYDefEeGPyrZ5I3hMlA"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+</di:SashWindowsMngr>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/HelloWorldJava.notation b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/HelloWorldJava.notation
new file mode 100644
index 00000000000..83d0bb6c94c
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/HelloWorldJava.notation
@@ -0,0 +1,574 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:C_Cpp="http://www.eclipse.org/papyrus/C_Cpp/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_7kc7YM__Ed-TP80eVS-2Rg" type="CompositeStructure" name="HelloWorldComponent" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_8LSR4M__Ed-TP80eVS-2Rg" type="2073" fontName="" fontHeight="10" fillColor="8905185" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8LSR4s__Ed-TP80eVS-2Rg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8LSR48__Ed-TP80eVS-2Rg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8LS48M__Ed-TP80eVS-2Rg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8LS48c__Ed-TP80eVS-2Rg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8LS48s__Ed-TP80eVS-2Rg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8LS488__Ed-TP80eVS-2Rg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HIdDoJZ9EeCiU5xXzp1cKQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VVjoQMPjEeS8C8OGY2onvA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VVjoQcPjEeS8C8OGY2onvA" key="StereotypeList" value="java::JavaClass"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VVjoQsPjEeS8C8OGY2onvA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VVjoQ8PjEeS8C8OGY2onvA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VVkPUMPjEeS8C8OGY2onvA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8LS49M__Ed-TP80eVS-2Rg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8LS49c__Ed-TP80eVS-2Rg" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_8rDfAFTzEeKvFeqt5Q_lqw" type="3070" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rGiUFTzEeKvFeqt5Q_lqw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rGiUVTzEeKvFeqt5Q_lqw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rGiUlTzEeKvFeqt5Q_lqw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rGiU1TzEeKvFeqt5Q_lqw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rGiVFTzEeKvFeqt5Q_lqw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rGiVVTzEeKvFeqt5Q_lqw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KU4xwFT0EeKvFeqt5Q_lqw" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KU4xwVT0EeKvFeqt5Q_lqw" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KU5Y0FT0EeKvFeqt5Q_lqw" key="StereotypeList" value="FCM::ConfigurationProperty"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KU5Y0VT0EeKvFeqt5Q_lqw" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KU5Y0lT0EeKvFeqt5Q_lqw" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KU5Y01T0EeKvFeqt5Q_lqw" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4k6AsHk1EeOph7IIHUnNoA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4k7O0Hk1EeOph7IIHUnNoA" key="fillColor" value="true"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4urnwHk1EeOph7IIHUnNoA" key="gradient" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8rHJYFTzEeKvFeqt5Q_lqw" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CBQusFT0EeKvFeqt5Q_lqw" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CGsoUFT0EeKvFeqt5Q_lqw" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8rHJYVTzEeKvFeqt5Q_lqw" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8rHJYlTzEeKvFeqt5Q_lqw" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8rHJY1TzEeKvFeqt5Q_lqw"/>
+ </children>
+ <element xmi:type="uml:Property" href="HelloWorldJava.uml#_8pupUFTzEeKvFeqt5Q_lqw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8rDfAVTzEeKvFeqt5Q_lqw" x="40" y="30" width="163"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8LS49s__Ed-TP80eVS-2Rg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7kMQFWUEeKdxoQIVxFNNg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7kMQVWUEeKdxoQIVxFNNg" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="HelloWorldJava.uml#_11OtwPcaEd-KM6l7lmIPkw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7kMQlWUEeKdxoQIVxFNNg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6UeXAFWUEeKdxoQIVxFNNg" type="3069" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6Ue-EFWUEeKdxoQIVxFNNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6Ue-EVWUEeKdxoQIVxFNNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6Ue-ElWUEeKdxoQIVxFNNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6Ue-E1WUEeKdxoQIVxFNNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6Ue-FFWUEeKdxoQIVxFNNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6UflIFWUEeKdxoQIVxFNNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9gHMkFWUEeKdxoQIVxFNNg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kH0ToLkXEeS7TYMQS2xzng" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kH0TobkXEeS7TYMQS2xzng" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kH0TorkXEeS7TYMQS2xzng" key="PropStereoDisplay" value="FCM::Port.kind"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kH0To7kXEeS7TYMQS2xzng" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kH0TpLkXEeS7TYMQS2xzng" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6UflIVWUEeKdxoQIVxFNNg" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6UflIlWUEeKdxoQIVxFNNg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6UflI1WUEeKdxoQIVxFNNg" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6UflJFWUEeKdxoQIVxFNNg" x="25" y="-10"/>
+ </children>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_fV6D0LkXEeS7TYMQS2xzng" name="maskLabel">
+ <stringListValue>multiplicity</stringListValue>
+ <stringListValue>name</stringListValue>
+ <stringListValue>type</stringListValue>
+ <stringListValue>derived</stringListValue>
+ </styles>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6UeXAVWUEeKdxoQIVxFNNg" y="50"/>
+ </children>
+ <element xmi:type="uml:Class" href="HelloWorldJava.uml#_tyiqsc__Ed-TP80eVS-2Rg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8LSR4c__Ed-TP80eVS-2Rg" x="80" y="160" width="254" height="121"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-HlK8DecEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-HlyADecEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-HlyATecEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-HlyAjecEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-HlyAzecEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-HlyBDecEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-HlyBTecEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-HlyBjecEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="HelloWorldJava.uml#_-Hd2MDecEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-HlK8TecEeGPyrZ5I3hMlA" x="420" y="135" width="301" height="55"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0EFQQDedEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0EF3UDedEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0EF3UTedEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0EF3UjedEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0EF3UzedEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0EF3VDedEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0EF3VTedEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0EF3VjedEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="HelloWorldJava.uml#_0D64MDedEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0EFQQTedEeGPyrZ5I3hMlA" x="420" y="18" width="301"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SypoQFT0EeKvFeqt5Q_lqw" type="2109" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SyqPUFT0EeKvFeqt5Q_lqw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SyqPUVT0EeKvFeqt5Q_lqw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SyqPUlT0EeKvFeqt5Q_lqw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SyqPU1T0EeKvFeqt5Q_lqw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SyqPVFT0EeKvFeqt5Q_lqw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SyqPVVT0EeKvFeqt5Q_lqw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SyqPVlT0EeKvFeqt5Q_lqw" type="5192"/>
+ <element xmi:type="uml:Comment" href="HelloWorldJava.uml#_SxvpUFT0EeKvFeqt5Q_lqw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SypoQVT0EeKvFeqt5Q_lqw" x="420" y="220" width="301" height="45"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_rjTBsFWUEeKdxoQIVxFNNg" type="2073" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rjTowFWUEeKdxoQIVxFNNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rjTowVWUEeKdxoQIVxFNNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rjTowlWUEeKdxoQIVxFNNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rjTow1WUEeKdxoQIVxFNNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rjToxFWUEeKdxoQIVxFNNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rjUP0FWUEeKdxoQIVxFNNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_rjUP0VWUEeKdxoQIVxFNNg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_rjUP0lWUEeKdxoQIVxFNNg" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_rjUP01WUEeKdxoQIVxFNNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rjUP1FWUEeKdxoQIVxFNNg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wd8WwFWUEeKdxoQIVxFNNg" type="3069" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wd890FWUEeKdxoQIVxFNNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wd890VWUEeKdxoQIVxFNNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wd890lWUEeKdxoQIVxFNNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wd8901WUEeKdxoQIVxFNNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wd891FWUEeKdxoQIVxFNNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wd891VWUEeKdxoQIVxFNNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__0Ah0FWUEeKdxoQIVxFNNg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jGDUoLkXEeS7TYMQS2xzng" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jGDUobkXEeS7TYMQS2xzng" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jGDUorkXEeS7TYMQS2xzng" key="PropStereoDisplay" value="FCM::Port.kind"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jGDUo7kXEeS7TYMQS2xzng" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jGDUpLkXEeS7TYMQS2xzng" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wd891lWUEeKdxoQIVxFNNg" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wd9k4FWUEeKdxoQIVxFNNg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wd9k4VWUEeKdxoQIVxFNNg" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wd9k4lWUEeKdxoQIVxFNNg" x="25" y="-10"/>
+ </children>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_hG-_4LkXEeS7TYMQS2xzng" name="maskLabel">
+ <stringListValue>multiplicity</stringListValue>
+ <stringListValue>name</stringListValue>
+ <stringListValue>type</stringListValue>
+ <stringListValue>derived</stringListValue>
+ </styles>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wd8WwVWUEeKdxoQIVxFNNg" x="-10" y="27"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_N6fa4JsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rjTBsVWUEeKdxoQIVxFNNg" x="90" y="18" width="253" height="73"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_7kc7Yc__Ed-TP80eVS-2Rg"/>
+ <element xmi:type="uml:Package" href="HelloWorldJava.uml#_LOqIEDLaEd2qeKRLMdIx_A"/>
+ <edges xmi:type="notation:Connector" xmi:id="_uHz6kP8nEd-hWJO6cv3VJA" type="4015" source="_8LSR4M__Ed-TP80eVS-2Rg" target="_rjTBsFWUEeKdxoQIVxFNNg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_uH0hoP8nEd-hWJO6cv3VJA" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uH0hof8nEd-hWJO6cv3VJA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_uHz6kf8nEd-hWJO6cv3VJA" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="HelloWorldJava.uml#_tyiqss__Ed-TP80eVS-2Rg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_uHz6kv8nEd-hWJO6cv3VJA" points="[-103, -45, 204, 90]$[-307, -135, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YcZOULkXEeS7TYMQS2xzng" id="(0.515748031496063,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zpY_EFWUEeKdxoQIVxFNNg" id="(0.4782608695652174,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_FOfGwDeeEeGPyrZ5I3hMlA" type="4002" source="_0EFQQDedEeGPyrZ5I3hMlA" target="_rjTBsFWUEeKdxoQIVxFNNg" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FOfGwTeeEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FOfGwjeeEeGPyrZ5I3hMlA" points="[-6, -3, 83, 0]$[-62, -3, 27, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FOwMgDeeEeGPyrZ5I3hMlA" id="(0.020338983050847456,0.4027777777777778)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FOwMgTeeEeGPyrZ5I3hMlA" id="(0.9881422924901185,0.5753424657534246)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_F4Ju0DeeEeGPyrZ5I3hMlA" type="4002" source="_-HlK8DecEeGPyrZ5I3hMlA" target="_8LSR4M__Ed-TP80eVS-2Rg" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_F4Ju0TeeEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_F4Ju0jeeEeGPyrZ5I3hMlA" points="[-25, 3, 78, 0]$[-80, -2, 23, -5]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_F4a0kDeeEeGPyrZ5I3hMlA" id="(0.0,0.5125)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_F4a0kTeeEeGPyrZ5I3hMlA" id="(0.9448818897637795,0.1834862385321101)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_YapykFT0EeKvFeqt5Q_lqw" type="4002" source="_SypoQFT0EeKvFeqt5Q_lqw" target="_8rDfAFTzEeKvFeqt5Q_lqw" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_YapykVT0EeKvFeqt5Q_lqw" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YapyklT0EeKvFeqt5Q_lqw" points="[-19, -3, 177, 20]$[-188, -24, 8, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ya7fYFT0EeKvFeqt5Q_lqw" id="(0.0,0.3157894736842105)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ya7fYVT0EeKvFeqt5Q_lqw" id="(1.0,0.65)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_o6ZisNCREd-hqYHBJe17_Q" type="CompositeStructure" name="System" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_VSa6YNHtEd-A1oPfP47IaQ" type="2073" fontName="" fontHeight="10" fillColor="8905185" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VScIgNHtEd-A1oPfP47IaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VScvkNHtEd-A1oPfP47IaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VScvkdHtEd-A1oPfP47IaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VScvktHtEd-A1oPfP47IaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VScvk9HtEd-A1oPfP47IaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VScvlNHtEd-A1oPfP47IaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VScvldHtEd-A1oPfP47IaQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VScvltHtEd-A1oPfP47IaQ" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_XsS70NHtEd-A1oPfP47IaQ" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XsTi4NHtEd-A1oPfP47IaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XsTi4dHtEd-A1oPfP47IaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XsTi4tHtEd-A1oPfP47IaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XsTi49HtEd-A1oPfP47IaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XsTi5NHtEd-A1oPfP47IaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XsTi5dHtEd-A1oPfP47IaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6iThgHk1EeOph7IIHUnNoA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6iUvoHk1EeOph7IIHUnNoA" key="fillColor" value="true"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6o-xQHk1EeOph7IIHUnNoA" key="gradient" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XsTi5tHtEd-A1oPfP47IaQ" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yonwwFTzEeKvFeqt5Q_lqw" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yzIXoFTzEeKvFeqt5Q_lqw" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_XsTi59HtEd-A1oPfP47IaQ" type="7077">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XsUJ8NHtEd-A1oPfP47IaQ"/>
+ </children>
+ <element xmi:type="uml:Property" href="HelloWorldJava.uml#_gV1cgDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XsS70dHtEd-A1oPfP47IaQ" x="40" y="20" width="193" height="85"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VScvl9HtEd-A1oPfP47IaQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="HelloWorldJava.uml#_bYJagDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VSa6YdHtEd-A1oPfP47IaQ" x="18" y="18" width="280" height="172"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_o6ZisdCREd-hqYHBJe17_Q"/>
+ <element xmi:type="uml:Package" href="HelloWorldJava.uml#_LOqIEDLaEd2qeKRLMdIx_A"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_U1UegPcXEd-KM6l7lmIPkw" type="PapyrusUMLClassDiagram" name="deployment" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_FGfloCghEeCw56aD7XrQhw" type="2016" element="_7kc7YM__Ed-TP80eVS-2Rg" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FGgMsCghEeCw56aD7XrQhw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FGgMsSghEeCw56aD7XrQhw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FGgMsighEeCw56aD7XrQhw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FGgMsyghEeCw56aD7XrQhw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FGlsQCghEeCw56aD7XrQhw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FGmTUCghEeCw56aD7XrQhw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FGmTUSghEeCw56aD7XrQhw" type="0">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FGmTUighEeCw56aD7XrQhw" x="54" y="3"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FGfloSghEeCw56aD7XrQhw" x="54" y="24" width="34" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gdmuADefEeGPyrZ5I3hMlA" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gdmuAjefEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gdmuAzefEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gdmuBDefEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gdmuBTefEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gdnVEDefEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gdnVETefEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gdnVEjefEeGPyrZ5I3hMlA" type="5038"/>
+ <element xmi:type="uml:Comment" href="HelloWorldJava.uml#_gdeyMDefEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gdmuATefEeGPyrZ5I3hMlA" x="315" y="18" width="226" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-4h4YFWREeKdxoQIVxFNNg" type="2007" fontName="Sans Serif" fillColor="8905185" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-4k7sFWREeKdxoQIVxFNNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-4k7sVWREeKdxoQIVxFNNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-4k7slWREeKdxoQIVxFNNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-4k7s1WREeKdxoQIVxFNNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-4liwFWREeKdxoQIVxFNNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-4liwVWREeKdxoQIVxFNNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-4liwlWREeKdxoQIVxFNNg" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-4liw1WREeKdxoQIVxFNNg" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_ZQjFQFWjEeKOivupHOJ8Ew" type="3020" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZQjsUFWjEeKOivupHOJ8Ew" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZQjsUVWjEeKOivupHOJ8Ew" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZQjsUlWjEeKOivupHOJ8Ew" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZQkTYFWjEeKOivupHOJ8Ew" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZQkTYVWjEeKOivupHOJ8Ew" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZQkTYlWjEeKOivupHOJ8Ew" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8slAsHk1EeOph7IIHUnNoA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8slnwHk1EeOph7IIHUnNoA" key="fillColor" value="true"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8-kvoHk1EeOph7IIHUnNoA" key="gradient" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZQkTY1WjEeKOivupHOJ8Ew" type="5040"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ZQkTZFWjEeKOivupHOJ8Ew" type="7035">
+ <children xmi:type="notation:Shape" xmi:id="_ET2zcFWkEeKOivupHOJ8Ew" type="3030" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Slot" href="HelloWorldJava.uml#_ymQ48FT2EeKvFeqt5Q_lqw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ET2zcVWkEeKOivupHOJ8Ew" x="58" y="15"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ZQkTZVWjEeKOivupHOJ8Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ZQkTZlWjEeKOivupHOJ8Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ZQkTZ1WjEeKOivupHOJ8Ew"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZQkTaFWjEeKOivupHOJ8Ew"/>
+ </children>
+ <element xmi:type="uml:InstanceSpecification" href="HelloWorldJava.uml#_ymErsFT2EeKvFeqt5Q_lqw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZQjFQVWjEeKOivupHOJ8Ew" x="15" y="13" width="261" height="57"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Z7T5gFWjEeKOivupHOJ8Ew" type="3020" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Z7UgkFWjEeKOivupHOJ8Ew" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z7UgkVWjEeKOivupHOJ8Ew" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Z7UgklWjEeKOivupHOJ8Ew" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z7Ugk1WjEeKOivupHOJ8Ew" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Z7UglFWjEeKOivupHOJ8Ew" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z7UglVWjEeKOivupHOJ8Ew" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8smO0nk1EeOph7IIHUnNoA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8smO03k1EeOph7IIHUnNoA" key="fillColor" value="true"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8-nL4Hk1EeOph7IIHUnNoA" key="gradient" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Z7UgllWjEeKOivupHOJ8Ew" type="5040"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Z7Ugl1WjEeKOivupHOJ8Ew" type="7035">
+ <children xmi:type="notation:Shape" xmi:id="_6VXKAFWjEeKOivupHOJ8Ew" type="3030" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Slot" href="HelloWorldJava.uml#_tfj4gFUwEeKdxoQIVxFNNg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6VXKAVWjEeKOivupHOJ8Ew" x="26" y="15"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Z7UgmFWjEeKOivupHOJ8Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Z7UgmVWjEeKOivupHOJ8Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Z7UgmlWjEeKOivupHOJ8Ew"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Z7Ugm1WjEeKOivupHOJ8Ew"/>
+ </children>
+ <element xmi:type="uml:InstanceSpecification" href="HelloWorldJava.uml#_ymQR4FT2EeKvFeqt5Q_lqw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Z7T5gVWjEeKOivupHOJ8Ew" x="15" y="133" width="261" height="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_85kMIFWjEeKOivupHOJ8Ew" type="3020" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_85kzMFWjEeKOivupHOJ8Ew" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_85kzMVWjEeKOivupHOJ8Ew" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_85kzMlWjEeKOivupHOJ8Ew" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_85kzM1WjEeKOivupHOJ8Ew" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_85kzNFWjEeKOivupHOJ8Ew" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_85kzNVWjEeKOivupHOJ8Ew" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8smO0Hk1EeOph7IIHUnNoA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8smO0Xk1EeOph7IIHUnNoA" key="fillColor" value="true"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8-l9wHk1EeOph7IIHUnNoA" key="gradient" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_85kzNlWjEeKOivupHOJ8Ew" type="5040"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_85kzN1WjEeKOivupHOJ8Ew" visible="false" type="7035">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_85laQFWjEeKOivupHOJ8Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_85laQVWjEeKOivupHOJ8Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_85laQlWjEeKOivupHOJ8Ew"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_85laQ1WjEeKOivupHOJ8Ew"/>
+ </children>
+ <element xmi:type="uml:InstanceSpecification" href="HelloWorldJava.uml#_GQ1ekKwHEeCQX8uv_p0Q4A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_85kMIVWjEeKOivupHOJ8Ew" x="375" y="13" width="163" height="46"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wCUSAFZVEeKKZs15rvNNjA" type="3028" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wCX8YFZVEeKKZs15rvNNjA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wCX8YVZVEeKKZs15rvNNjA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wCX8YlZVEeKKZs15rvNNjA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wCYjcFZVEeKKZs15rvNNjA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wCYjcVZVEeKKZs15rvNNjA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wCYjclZVEeKKZs15rvNNjA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wCYjc1ZVEeKKZs15rvNNjA" type="5063"/>
+ <element xmi:type="uml:Comment" href="HelloWorldJava.uml#_wAbboFZVEeKKZs15rvNNjA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wCUSAVZVEeKKZs15rvNNjA" x="325" y="97" width="208" height="83"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-4lixFWREeKdxoQIVxFNNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-4lixVWREeKdxoQIVxFNNg"/>
+ </children>
+ <styles xmi:type="notation:IntValueStyle" xmi:id="_u3oFQLkXEeS7TYMQS2xzng" name="shapeDirection" intValue="1"/>
+ <element xmi:type="uml:Package" href="HelloWorldJava.uml#_yl9-AFT2EeKvFeqt5Q_lqw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-4h4YVWREeKdxoQIVxFNNg" x="20" y="200" width="571" height="254"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_obNuEFWiEeKOivupHOJ8Ew" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_obQxYFWiEeKOivupHOJ8Ew" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_obQxYVWiEeKOivupHOJ8Ew" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_obQxYlWiEeKOivupHOJ8Ew" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_obQxY1WiEeKOivupHOJ8Ew" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_obRYcFWiEeKOivupHOJ8Ew" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_obRYcVWiEeKOivupHOJ8Ew" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_obRYclWiEeKOivupHOJ8Ew" type="5038"/>
+ <element xmi:type="uml:Comment" href="HelloWorldJava.uml#_oZw8kFWiEeKOivupHOJ8Ew"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_obNuEVWiEeKOivupHOJ8Ew" x="315" y="90" width="226" height="55"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_U1UegfcXEd-KM6l7lmIPkw"/>
+ <element xmi:type="uml:Package" href="HelloWorldJava.uml#_234GEDLiEd2RVeNawwNNzg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_86CtQFWjEeKOivupHOJ8Ew" type="4006" source="_ZQjFQFWjEeKOivupHOJ8Ew" target="_85kMIFWjEeKOivupHOJ8Ew" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_86D7YFWjEeKOivupHOJ8Ew" type="6014">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_86D7YVWjEeKOivupHOJ8Ew" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_86D7YlWjEeKOivupHOJ8Ew" type="6015">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_86D7Y1WjEeKOivupHOJ8Ew" x="-4" y="-9"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_86CtQVWjEeKOivupHOJ8Ew" fontName="Sans Serif"/>
+ <element xmi:type="uml:Abstraction" href="HelloWorldJava.uml#_UPx34FWUEeKdxoQIVxFNNg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_86CtQlWjEeKOivupHOJ8Ew" points="[-81, -23, 28, 8]$[-109, -31, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zrOXILkXEeS7TYMQS2xzng" id="(1.0,0.40350877192982454)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zrOXIbkXEeS7TYMQS2xzng" id="(0.0,0.5)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Sqs9MFWkEeKOivupHOJ8Ew" type="4013" source="_obNuEFWiEeKOivupHOJ8Ew" target="_-4h4YFWREeKdxoQIVxFNNg" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Sqs9MVWkEeKOivupHOJ8Ew" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Sqs9MlWkEeKOivupHOJ8Ew" points="[113, 34, 301, -38]$[113, 93, 301, 21]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SrQW0FWkEeKOivupHOJ8Ew" id="(0.0,0.5277777777777778)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SrQW0VWkEeKOivupHOJ8Ew" id="(0.18739054290718038,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7O5fMFZVEeKKZs15rvNNjA" type="4013" source="_wCUSAFZVEeKKZs15rvNNjA" target="_ZQjFQFWjEeKOivupHOJ8Ew" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_7O5fMVZVEeKKZs15rvNNjA" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7O5fMlZVEeKKZs15rvNNjA" points="[0, -15, 147, 39]$[-110, -15, 37, 39]$[-110, -54, 37, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7PO2YFZVEeKKZs15rvNNjA" id="(0.0,0.11965811965811966)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_yzWT8LkXEeS7TYMQS2xzng" id="(0.7662835249042146,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_71Q7oFZVEeKKZs15rvNNjA" type="4013" source="_wCUSAFZVEeKKZs15rvNNjA" target="_Z7T5gFWjEeKOivupHOJ8Ew" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_71Q7oVZVEeKKZs15rvNNjA" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_71Q7olZVEeKKZs15rvNNjA" points="[-12, 8, 82, 0]$[-73, 9, 21, 1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_71iBYFZVEeKKZs15rvNNjA" id="(0.0,0.6410256410256411)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_71iBYVZVEeKKZs15rvNNjA" id="(1.0,0.609375)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_0rwpYDefEeGPyrZ5I3hMlA" type="CompositeStructure" name="HWArchitecture" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_1w2CIDefEeGPyrZ5I3hMlA" type="2073" fontName="" fontHeight="10" fillColor="10011046" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1w2pMDefEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1w2pMTefEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1w2pMjefEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1w2pMzefEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1w2pNDefEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1w2pNTefEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HTZS4DegEeGPyrZ5I3hMlA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mAM_QBMqEeK_iPOWsxJHwg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mAM_QRMqEeK_iPOWsxJHwg" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mANmUBMqEeK_iPOWsxJHwg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mANmURMqEeK_iPOWsxJHwg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mANmUhMqEeK_iPOWsxJHwg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1w2pNjefEeGPyrZ5I3hMlA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1w2pNzefEeGPyrZ5I3hMlA" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_4HLnYDefEeGPyrZ5I3hMlA" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4HMOcDefEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4HMOcTefEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4HMOcjefEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4HMOczefEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4HMOdDefEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4HMOdTefEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__C2UgHk1EeOph7IIHUnNoA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__C2UgXk1EeOph7IIHUnNoA" key="fillColor" value="true"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__Oj1QHk1EeOph7IIHUnNoA" key="gradient" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4HMOdjefEeGPyrZ5I3hMlA" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ENwn8FWjEeKOivupHOJ8Ew" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUBoAFWjEeKOivupHOJ8Ew" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4HMOdzefEeGPyrZ5I3hMlA" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4HMOeDefEeGPyrZ5I3hMlA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4HMOeTefEeGPyrZ5I3hMlA"/>
+ </children>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_DrFGELkYEeS7TYMQS2xzng" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>type</stringListValue>
+ <stringListValue>derived</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="HelloWorldJava.uml#_4HAoQDefEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4HLnYTefEeGPyrZ5I3hMlA" x="49" y="22" width="190"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1w2pODefEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1w2pOTefEeGPyrZ5I3hMlA"/>
+ </children>
+ <element xmi:type="uml:Class" href="HelloWorldJava.uml#_tZvNQDefEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1w2CITefEeGPyrZ5I3hMlA" x="80" y="63" width="301" height="154"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7qMbIDefEeGPyrZ5I3hMlA" type="2072" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7qNCMDefEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7qNCMTefEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7qNCMjefEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7qNCMzefEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7qNCNDefEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7qNCNTefEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_85ECADefEeGPyrZ5I3hMlA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_B_VokFWjEeKOivupHOJ8Ew" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_B_WPoFWjEeKOivupHOJ8Ew" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_B_WPoVWjEeKOivupHOJ8Ew" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_B_WPolWjEeKOivupHOJ8Ew" key="PropStereoDisplay" value="FCM::Target.targetArch,FCM::Target.usedOS"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_B_WPo1WjEeKOivupHOJ8Ew" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7qNCNjefEeGPyrZ5I3hMlA" type="5124"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7qNCNzefEeGPyrZ5I3hMlA" visible="false" type="7072">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7qNCODefEeGPyrZ5I3hMlA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7qNCOTefEeGPyrZ5I3hMlA"/>
+ </children>
+ <element xmi:type="uml:Node" href="HelloWorldJava.uml#_zY9vMDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7qMbITefEeGPyrZ5I3hMlA" x="440" y="63" width="181" height="91"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jhQ20DegEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jhQ20jegEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jhQ20zegEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jhQ21DegEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jhQ21TegEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jhQ21jegEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jhQ21zegEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jhRd4DegEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="HelloWorldJava.uml#_jhF3sDegEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jhQ20TegEeGPyrZ5I3hMlA" x="435" y="183" width="277"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_0rwpYTefEeGPyrZ5I3hMlA"/>
+ <element xmi:type="uml:Package" href="HelloWorldJava.uml#_v3fMgDLiEd2RVeNawwNNzg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_ugb6IDegEeGPyrZ5I3hMlA" type="4002" source="_jhQ20DegEeGPyrZ5I3hMlA" target="_7qMbIDefEeGPyrZ5I3hMlA" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_ugb6ITegEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ugb6IjegEeGPyrZ5I3hMlA" points="[-3, -6, 22, 58]$[-30, -51, -5, 13]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ugs_4DegEeGPyrZ5I3hMlA" id="(0.2815884476534296,0.05)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ugs_4TegEeGPyrZ5I3hMlA" id="(0.4420289855072464,0.8266666666666667)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_ovKvYFWjEeKOivupHOJ8Ew" type="PapyrusUMLDeploymentDiagram" name="NewDeploymentDiagram" measurementUnit="Pixel">
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_ovKvYVWjEeKOivupHOJ8Ew"/>
+ <element xmi:type="uml:Package" href="HelloWorldJava.uml#_234GEDLiEd2RVeNawwNNzg"/>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/HelloWorldJava.uml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/HelloWorldJava.uml
new file mode 100644
index 00000000000..f0ce2f36f68
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/HelloWorldJava.uml
@@ -0,0 +1,165 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Alloc="http://www.eclipse.org/papyrus/Alloc/1" xmlns:C_Cpp="http://www.eclipse.org/papyrus/C_Cpp/1" xmlns:FCM="http://www.eclipse.org/papyrus/FCM/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:java="http://www.eclipse.org/papyrus/JAVA/1" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/papyrus/Alloc/1 http://www.eclipse.org/papyrus/MARTE/1#//Alloc">
+ <uml:Model xmi:id="_O6TiIDLUEd26WNosUASSSw" name="HelloWorld">
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_O6TiITLUEd26WNosUASSSw">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_Bc1WIFW4Ed63BrxiKsw-0Q">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/core.uml#_O6TiIDLUEd26WNosUASSSw"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_rwBsMP7AEd6Zw96O-tCw7A">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/corba.uml#_DtQEwDLdEd2_U4efLnjQIw"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Package" xmi:id="_LOqIEDLaEd2qeKRLMdIx_A" name="components">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_-Hd2MDecEeGPyrZ5I3hMlA" annotatedElement="_tyiqsc__Ed-TP80eVS-2Rg">
+ <body>Simple HelloWorld component that prints a message in its &quot;run&quot; operation that is provided via the &quot;start&quot; port
+</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_0D64MDedEeGPyrZ5I3hMlA">
+ <annotatedElement xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_N6fa4JsrEd61Eo3nmu3JhQ"/>
+ <body>Part of the Qompass core model library. Provides the specific port &quot;start&quot;. The &quot;run&quot; operation (defined within interface IStart) of this port is called by generated boot-code after instantiation and configuration of a component. </body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_tyiqsc__Ed-TP80eVS-2Rg" name="HelloWorld">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_SxvpUFT0EeKvFeqt5Q_lqw" annotatedElement="_8pupUFTzEeKvFeqt5Q_lqw">
+ <body>Configuration attribute within the Hello World component. Its value is configured on the instance level.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_tyiqss__Ed-TP80eVS-2Rg">
+ <general xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_N6fa4JsrEd61Eo3nmu3JhQ"/>
+ </generalization>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_8pupUFTzEeKvFeqt5Q_lqw" name="message" visibility="public" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__HwK8FTzEeKvFeqt5Q_lqw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__HwyAFTzEeKvFeqt5Q_lqw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="__HynMFTzEeKvFeqt5Q_lqw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_Us15gFTzEeKvFeqt5Q_lqw" name="derived realization of IStart" client="_tyiqsc__Ed-TP80eVS-2Rg">
+ <supplier xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_PTWzwCS-Ed-A_I32T0fkaA"/>
+ <contract xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_PTWzwCS-Ed-A_I32T0fkaA"/>
+ </interfaceRealization>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_tyjRwc__Ed-TP80eVS-2Rg" name="run" specification="_UtCt0FTzEeKvFeqt5Q_lqw">
+ <language>C/C++</language>
+ <language>JAVA</language>
+ <body>cout &lt;&lt; &quot;Hello world: &quot; &lt;&lt; message &lt;&lt; endl;</body>
+ <body>System.out.println(&quot;Hello&quot;);</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_UtCt0FTzEeKvFeqt5Q_lqw" name="run" method="_tyjRwc__Ed-TP80eVS-2Rg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_bYJagDLiEd2RVeNawwNNzg" name="System">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_gV1cgDLiEd2RVeNawwNNzg" name="hello" visibility="public" type="_tyiqsc__Ed-TP80eVS-2Rg" isUnique="false" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dCT24G6JEeGqWMX2LwdLDw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dCUd8G6JEeGqWMX2LwdLDw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_dCWTIG6JEeGqWMX2LwdLDw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_v3fMgDLiEd2RVeNawwNNzg" name="platform">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_jhF3sDegEeGPyrZ5I3hMlA" annotatedElement="_zY9vMDLiEd2RVeNawwNNzg">
+ <body>Simple single node configuration. TargetOS is set to Linux, but will work on any OS, since this simple example does not use the OS abstraction layer</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Node" xmi:id="_zY9vMDLiEd2RVeNawwNNzg" name="MonoNode"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_tZvNQDefEeGPyrZ5I3hMlA" name="Platform">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_4HAoQDefEeGPyrZ5I3hMlA" name="monoNode" visibility="public" type="_zY9vMDLiEd2RVeNawwNNzg" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6WEg0DefEeGPyrZ5I3hMlA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6WFu8DefEeGPyrZ5I3hMlA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_6WHkIDefEeGPyrZ5I3hMlA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_YxI8IDegEeGPyrZ5I3hMlA" name="HWArchitecturePlatform">
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_GQ1ekKwHEeCQX8uv_p0Q4A" name="monoNode" classifier="_zY9vMDLiEd2RVeNawwNNzg"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_234GEDLiEd2RVeNawwNNzg" name="deployment">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_VMRFgDOJEeC7y-fR3OSnFw">
+ <body>This configuration requires the installation of the OTF trace library.&lt;br /></body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gdeyMDefEeGPyrZ5I3hMlA">
+ <body>Cross references to composite diagram</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_oZw8kFWiEeKOivupHOJ8Ew" annotatedElement="_yl9-AFT2EeKvFeqt5Q_lqw">
+ <body>Deployment plan for system, i.e. set of instance specification along with configuration and allocation</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Package" xmi:id="_yl9-AFT2EeKvFeqt5Q_lqw" name="SystemDepPlan">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_wAbboFZVEeKKZs15rvNNjA" annotatedElement="_ymErsFT2EeKvFeqt5Q_lqw _ymQR4FT2EeKvFeqt5Q_lqw">
+ <body>Value mainInstance.hello is a UML instance-value, i.e. a reference to the instance specification on the left.
+&quot;Test message&quot; is a StringValue initializing the message attribute</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_ymErsFT2EeKvFeqt5Q_lqw" name="mainInstance" classifier="_bYJagDLiEd2RVeNawwNNzg">
+ <slot xmi:type="uml:Slot" xmi:id="_ymQ48FT2EeKvFeqt5Q_lqw" definingFeature="_gV1cgDLiEd2RVeNawwNNzg">
+ <value xmi:type="uml:InstanceValue" xmi:id="_ymRgAFT2EeKvFeqt5Q_lqw" instance="_ymQR4FT2EeKvFeqt5Q_lqw"/>
+ </slot>
+ </packagedElement>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_ymQR4FT2EeKvFeqt5Q_lqw" name="mainInstance.hello" classifier="_tyiqsc__Ed-TP80eVS-2Rg">
+ <slot xmi:type="uml:Slot" xmi:id="_tfj4gFUwEeKdxoQIVxFNNg" definingFeature="_8pupUFTzEeKvFeqt5Q_lqw">
+ <value xmi:type="uml:LiteralString" xmi:id="_tfni4FUwEeKdxoQIVxFNNg" name="value for message" value="&quot;Test message&quot;">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </value>
+ </slot>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_UPx34FWUEeKdxoQIVxFNNg" name="allocate mainInstance to monoNode" client="_ymErsFT2EeKvFeqt5Q_lqw" supplier="_GQ1ekKwHEeCQX8uv_p0Q4A"/>
+ </packagedElement>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_O6TiIjLUEd26WNosUASSSw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_O6TiIzLUEd26WNosUASSSw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_GcC0cAHtEd6HSdiss9GQ0A">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Gd1kMAHtEd6HSdiss9GQ0A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/C_Cpp/1#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_z1TwgFW3Ed63BrxiKsw-0Q">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_z2GasFW3Ed63BrxiKsw-0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/FCM/1#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://FCM_PROFILES/FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_sfyAwEbjEd-l4NeVOJZDkA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_siunEEbjEd-l4NeVOJZDkA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//GCM"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_YgAioAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_popJkKmqEeCxII-g1_Lmeg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_p1PbIKmqEeCxII-g1_Lmeg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//HLAM"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_yNSZIAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_tZuBwE0tEeG4IqgA7gSE6w">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tisXkE0tEeG4IqgA7gSE6w" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_ar8OsAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_FW_50MPjEeS8C8OGY2onvA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FXKR4MPjEeS8C8OGY2onvA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/JAVA/1#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://Papyrus_JAVA_PROFILES/java.profile.uml#_6TYLMN0yEd6P1qtlpBOZyg"/>
+ </profileApplication>
+ </uml:Model>
+ <C_Cpp:Include xmi:id="_11OtwPcaEd-KM6l7lmIPkw" body="#include &lt;iostream>&#xA;using namespace std;" base_class="_tyiqsc__Ed-TP80eVS-2Rg"/>
+ <FCM:Target xmi:id="_LD_uICr7EeCfcI_SvPT4lw" base_Node="_zY9vMDLiEd2RVeNawwNNzg">
+ <targetArch xmi:type="FCM:TargetArchitecture" href="pathmap://QML_CORE/core.uml#_FYOqwF0OEd-12d_h0i1xhQ"/>
+ <usedOS xmi:type="FCM:OperatingSystem" href="pathmap://QML_CORE/core.uml#_1eULwF0NEd-12d_h0i1xhQ"/>
+ </FCM:Target>
+ <FCM:DerivedElement xmi:id="_UtTMgFTzEeKvFeqt5Q_lqw" base_Element="_UtCt0FTzEeKvFeqt5Q_lqw">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:ConfigurationProperty xmi:id="_KTwJUFT0EeKvFeqt5Q_lqw" base_Property="_8pupUFTzEeKvFeqt5Q_lqw"/>
+ <FCM:DeploymentPlan xmi:id="_ymC2gFT2EeKvFeqt5Q_lqw" mainInstance="_ymErsFT2EeKvFeqt5Q_lqw" base_Package="_yl9-AFT2EeKvFeqt5Q_lqw"/>
+ <Alloc:Allocate xmi:id="_UP7B0FWUEeKdxoQIVxFNNg" base_Abstraction="_UPx34FWUEeKdxoQIVxFNNg"/>
+ <FCM:CodeGenOptions xmi:id="_1uf4ENykEeKPWMO32vUmzw" base_Package="_LOqIEDLaEd2qeKRLMdIx_A">
+ <progLanguage xmi:type="FCM:ProgLanguage" href="pathmap://QML_CORE/core.uml#_5WrSINzEEeKPWMO32vUmzw"/>
+ </FCM:CodeGenOptions>
+ <java:JavaClass xmi:id="_VVXbAMPjEeS8C8OGY2onvA" base_Classifier="_tyiqsc__Ed-TP80eVS-2Rg"/>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/ProducerConsumer.di b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/ProducerConsumer.di
new file mode 100644
index 00000000000..bf9abab340f
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/ProducerConsumer.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/ProducerConsumer.notation b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/ProducerConsumer.notation
new file mode 100644
index 00000000000..cbbd906bbaf
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/ProducerConsumer.notation
@@ -0,0 +1,1541 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_UstOsM__Ed-TP80eVS-2Rg" type="CompositeStructure" name="PushConsumer" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_VT2HMM__Ed-TP80eVS-2Rg" type="2073" fontName="" fontHeight="10" fillColor="8905185" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VT2HMs__Ed-TP80eVS-2Rg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VT2uQM__Ed-TP80eVS-2Rg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VT2uQc__Ed-TP80eVS-2Rg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VT2uQs__Ed-TP80eVS-2Rg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VT2uQ8__Ed-TP80eVS-2Rg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VT2uRM__Ed-TP80eVS-2Rg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VT2uRc__Ed-TP80eVS-2Rg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VT2uRs__Ed-TP80eVS-2Rg" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VT2uR8__Ed-TP80eVS-2Rg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XgvckM__Ed-TP80eVS-2Rg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XgwDoM__Ed-TP80eVS-2Rg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XgwDoc__Ed-TP80eVS-2Rg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XgwDos__Ed-TP80eVS-2Rg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XgwDo8__Ed-TP80eVS-2Rg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XgwqsM__Ed-TP80eVS-2Rg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Xgwqsc__Ed-TP80eVS-2Rg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Xgwqss__Ed-TP80eVS-2Rg" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Xgwqs8__Ed-TP80eVS-2Rg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XgwqtM__Ed-TP80eVS-2Rg" visible="false" type="6029">
+ <children xmi:type="notation:DecorationNode" xmi:id="_X_6H4A3gEeWSq5WX_4UlHg" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_X_6H4Q3gEeWSq5WX_4UlHg" name="stereotype" stringValue="MARTE::MARTE_DesignModel::GCM::FlowPort"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_xKMLYBHYEdyWC5IKDhzksw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_X_6H4g3gEeWSq5WX_4UlHg"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Xgwqtc__Ed-TP80eVS-2Rg" x="-62" y="-65"/>
+ </children>
+ <element xmi:type="uml:Port" href="ProducerConsumer.uml#_4KiE8DLbEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Xgvckc__Ed-TP80eVS-2Rg" y="59"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_X6kU4A3gEeWSq5WX_4UlHg" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_X6kU4Q3gEeWSq5WX_4UlHg" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="ProducerConsumer.uml#_oqZNUDLaEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VT2HMc__Ed-TP80eVS-2Rg" x="144" y="36" width="190" height="87"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XfxXsDecEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Xgz5gDecEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Xgz5gTecEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Xgz5gjecEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Xgz5gzecEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Xgz5hDecEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Xgz5hTecEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Xgz5hjecEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ProducerConsumer.uml#_XfnmsDecEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XfxXsTecEeGPyrZ5I3hMlA" x="376" y="9" width="217" height="55"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gpzeUDecEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gp0FYDecEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gp0FYTecEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gp0FYjecEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gp0FYzecEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gp0FZDecEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gp0FZTecEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gp0FZjecEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ProducerConsumer.uml#_gpptUDecEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gpzeUTecEeGPyrZ5I3hMlA" x="61" y="168" width="253"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_KGUHgBo3EeONpa5JgejICQ" type="2068" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KGZAABo3EeONpa5JgejICQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KGZAARo3EeONpa5JgejICQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KGZnEBo3EeONpa5JgejICQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KGZnERo3EeONpa5JgejICQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KGZnEho3EeONpa5JgejICQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KGZnExo3EeONpa5JgejICQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_KGZnFBo3EeONpa5JgejICQ" type="5120"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_KGaOIBo3EeONpa5JgejICQ" visible="false" type="7033">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_KGaOIRo3EeONpa5JgejICQ" showTitle="true"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_KGaOIho3EeONpa5JgejICQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_KGaOIxo3EeONpa5JgejICQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KGaOJBo3EeONpa5JgejICQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_KGaOJRo3EeONpa5JgejICQ" visible="false" type="7034">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_KGaOJho3EeONpa5JgejICQ" showTitle="true"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_KGaOJxo3EeONpa5JgejICQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_KGaOKBo3EeONpa5JgejICQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KGaOKRo3EeONpa5JgejICQ"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_X6k78A3gEeWSq5WX_4UlHg" type="6094">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_X6k78Q3gEeWSq5WX_4UlHg" y="5"/>
+ </children>
+ <element xmi:type="uml:DataType" href="ProducerConsumer.uml#_wFJ3IP91Ed6Jt8e-UqrRdQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KGUHgRo3EeONpa5JgejICQ" x="384" y="105" width="118"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_du3bcBo3EeONpa5JgejICQ" type="2109" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_du5QoBo3EeONpa5JgejICQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_du53sBo3EeONpa5JgejICQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_du53sRo3EeONpa5JgejICQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_du53sho3EeONpa5JgejICQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_du53sxo3EeONpa5JgejICQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_du53tBo3EeONpa5JgejICQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_du53tRo3EeONpa5JgejICQ" type="5192"/>
+ <element xmi:type="uml:Comment" href="ProducerConsumer.uml#_dufoABo3EeONpa5JgejICQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_du3bcRo3EeONpa5JgejICQ" x="337" y="181" width="172" height="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_X-vDMA3gEeWSq5WX_4UlHg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_X-vDMQ3gEeWSq5WX_4UlHg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_X-vqQA3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="ProducerConsumer.uml#_oqZNUDLaEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_X-vDMg3gEeWSq5WX_4UlHg" x="344" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_X_c04g3gEeWSq5WX_4UlHg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_X_c04w3gEeWSq5WX_4UlHg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_X_c05Q3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ProducerConsumer.uml#_4KiE8DLbEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_X_c05A3gEeWSq5WX_4UlHg" x="190" y="38"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_UstOsc__Ed-TP80eVS-2Rg"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_X6ljAA3gEeWSq5WX_4UlHg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="ProducerConsumer.uml#_OGM88DLaEd2qeKRLMdIx_A"/>
+ <edges xmi:type="notation:Connector" xmi:id="_fsWXkDecEeGPyrZ5I3hMlA" type="4002" source="_XfxXsDecEeGPyrZ5I3hMlA" target="_VT2HMM__Ed-TP80eVS-2Rg" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_fsWXkTecEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_fsWXkjecEeGPyrZ5I3hMlA" points="[-1, -3, 19, 74]$[4, -33, 24, 44]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fsndUDecEeGPyrZ5I3hMlA" id="(0.0,0.6805555555555556)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gO3VwKY3EeSQZvr8taS8TA" id="(1.0,0.3218390804597701)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_l-KT4DecEeGPyrZ5I3hMlA" type="4002" source="_gpzeUDecEeGPyrZ5I3hMlA" target="_XgvckM__Ed-TP80eVS-2Rg" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_l-KT4TecEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_l-KT4jecEeGPyrZ5I3hMlA" points="[-4, 0, -44, 75]$[-4, -75, -44, 0]$[40, -75, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_l-cAsDecEeGPyrZ5I3hMlA" id="(0.13043478260869565,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_l-cAsTecEeGPyrZ5I3hMlA" id="(0.0,0.4)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_LksxEBo3EeONpa5JgejICQ" type="4010" source="_VT2HMM__Ed-TP80eVS-2Rg" target="_KGUHgBo3EeONpa5JgejICQ" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Lkt_MBo3EeONpa5JgejICQ" visible="false" type="6009">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_10DDsHanEeWZ8bIp2zKzdw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Lkt_MRo3EeONpa5JgejICQ" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Lkt_Mho3EeONpa5JgejICQ" type="6023">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_10NbwHanEeWZ8bIp2zKzdw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Lkt_Mxo3EeONpa5JgejICQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_LksxERo3EeONpa5JgejICQ" fontName="Sans Serif"/>
+ <element xmi:type="uml:Dependency" href="ProducerConsumer.uml#_LjkIoBo3EeONpa5JgejICQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LksxEho3EeONpa5JgejICQ" points="[334, 118, -643984, -643984]$[359, 118, -643984, -643984]$[384, 118, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Lk5lYBo3EeONpa5JgejICQ" id="(1.0,0.9425287356321839)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Lk5lYRo3EeONpa5JgejICQ" id="(0.0,0.325)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_mz7igBo3EeONpa5JgejICQ" type="4002" source="_du3bcBo3EeONpa5JgejICQ" target="_LksxEBo3EeONpa5JgejICQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_mz7igRo3EeONpa5JgejICQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mz7igho3EeONpa5JgejICQ" points="[-11, -20, 25, 48]$[-39, -68, -3, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mz-l0Bo3EeONpa5JgejICQ" id="(0.09883720930232558,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mz-l0Ro3EeONpa5JgejICQ" id="(0.45535714285714285,0.15306122448979592)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_X-vqQQ3gEeWSq5WX_4UlHg" type="StereotypeCommentLink" source="_VT2HMM__Ed-TP80eVS-2Rg" target="_X-vDMA3gEeWSq5WX_4UlHg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_X-vqQg3gEeWSq5WX_4UlHg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_X-vqRg3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="ProducerConsumer.uml#_oqZNUDLaEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_X-vqQw3gEeWSq5WX_4UlHg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_X-vqRA3gEeWSq5WX_4UlHg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_X-vqRQ3gEeWSq5WX_4UlHg"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_X_db8A3gEeWSq5WX_4UlHg" type="StereotypeCommentLink" source="_XgvckM__Ed-TP80eVS-2Rg" target="_X_c04g3gEeWSq5WX_4UlHg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_X_db8Q3gEeWSq5WX_4UlHg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_X_db9Q3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ProducerConsumer.uml#_4KiE8DLbEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_X_db8g3gEeWSq5WX_4UlHg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_X_db8w3gEeWSq5WX_4UlHg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_X_db9A3gEeWSq5WX_4UlHg"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_7kc7YM__Ed-TP80eVS-2Rg" type="CompositeStructure" name="PullConsumer" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_8LSR4M__Ed-TP80eVS-2Rg" type="2073" fontName="" fontHeight="10" fillColor="8905185" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8LSR4s__Ed-TP80eVS-2Rg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8LSR48__Ed-TP80eVS-2Rg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8LS48M__Ed-TP80eVS-2Rg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8LS48c__Ed-TP80eVS-2Rg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8LS48s__Ed-TP80eVS-2Rg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8LS488__Ed-TP80eVS-2Rg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8LS49M__Ed-TP80eVS-2Rg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8LS49c__Ed-TP80eVS-2Rg" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8LS49s__Ed-TP80eVS-2Rg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ytK8IP8nEd-hWJO6cv3VJA" type="3069" fontName="" fontHeight="10" gradient="8421504, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ytLjMP8nEd-hWJO6cv3VJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ytLjMf8nEd-hWJO6cv3VJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ytLjMv8nEd-hWJO6cv3VJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ytLjM_8nEd-hWJO6cv3VJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ytMKQP8nEd-hWJO6cv3VJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ytMKQf8nEd-hWJO6cv3VJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ytMKQv8nEd-hWJO6cv3VJA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-iwEgFZ0EeK5f41mmHszag" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-o9aMFZ0EeK5f41mmHszag" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ytMKQ_8nEd-hWJO6cv3VJA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ytMKRP8nEd-hWJO6cv3VJA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ytMKRf8nEd-hWJO6cv3VJA" x="-50" y="-7"/>
+ </children>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_ye3iYKY3EeSQZvr8taS8TA" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ytK8If8nEd-hWJO6cv3VJA" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_t6X3UJaMEeCbgbUO5qahhA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t6ZFcJaMEeCbgbUO5qahhA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t6ZFcZaMEeCbgbUO5qahhA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t6ZsgJaMEeCbgbUO5qahhA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t6ZsgZaMEeCbgbUO5qahhA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t6ZsgpaMEeCbgbUO5qahhA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t6Zsg5aMEeCbgbUO5qahhA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_t6ZshJaMEeCbgbUO5qahhA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__Cf7kFZ0EeK5f41mmHszag" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__K9UAFZ0EeK5f41mmHszag" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_t6ZshZaMEeCbgbUO5qahhA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_t6aTkJaMEeCbgbUO5qahhA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_t6aTkZaMEeCbgbUO5qahhA" x="-110"/>
+ </children>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_zsNfQKY3EeSQZvr8taS8TA" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Port" href="ProducerConsumer.uml#_tyiqs8__Ed-TP80eVS-2Rg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t6X3UZaMEeCbgbUO5qahhA" x="-10" y="72"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YAbFQA3gEeWSq5WX_4UlHg" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YAbFQQ3gEeWSq5WX_4UlHg" y="5"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YF-ToA3gEeWSq5WX_4UlHg" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_YF-ToQ3gEeWSq5WX_4UlHg" name="stereotype" stringValue="C_Cpp::Include"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_RwTdQByJEduN1bTiWJ0lyw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YF-Tog3gEeWSq5WX_4UlHg"/>
+ </children>
+ <element xmi:type="uml:Class" href="ProducerConsumer.uml#_tyiqsc__Ed-TP80eVS-2Rg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8LSR4c__Ed-TP80eVS-2Rg" x="160" y="180" width="254" height="109"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uHcuMP8nEd-hWJO6cv3VJA" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uHdVQP8nEd-hWJO6cv3VJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uHdVQf8nEd-hWJO6cv3VJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uHdVQv8nEd-hWJO6cv3VJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uHdVQ_8nEd-hWJO6cv3VJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uHdVRP8nEd-hWJO6cv3VJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uHdVRf8nEd-hWJO6cv3VJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uHdVRv8nEd-hWJO6cv3VJA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_uHdVR_8nEd-hWJO6cv3VJA" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uHd8UP8nEd-hWJO6cv3VJA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_xVmsQP8nEd-hWJO6cv3VJA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xVnTUP8nEd-hWJO6cv3VJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xVnTUf8nEd-hWJO6cv3VJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xVnTUv8nEd-hWJO6cv3VJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xVnTU_8nEd-hWJO6cv3VJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xVnTVP8nEd-hWJO6cv3VJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xVn6YP8nEd-hWJO6cv3VJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xVn6Yf8nEd-hWJO6cv3VJA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__hZeEFZ0EeK5f41mmHszag" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__nGdcFZ0EeK5f41mmHszag" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xVn6Yv8nEd-hWJO6cv3VJA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xVn6Y_8nEd-hWJO6cv3VJA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xVn6ZP8nEd-hWJO6cv3VJA" x="-50" y="1"/>
+ </children>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_w-8nwKY3EeSQZvr8taS8TA" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xVmsQf8nEd-hWJO6cv3VJA" y="48"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YAbFQg3gEeWSq5WX_4UlHg" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YAbFQw3gEeWSq5WX_4UlHg" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uHcuMf8nEd-hWJO6cv3VJA" x="160" y="40" width="253" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-HlK8DecEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-HlyADecEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-HlyATecEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-HlyAjecEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-HlyAzecEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-HlyBDecEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-HlyBTecEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-HlyBjecEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ProducerConsumer.uml#_-Hd2MDecEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-HlK8TecEeGPyrZ5I3hMlA" x="480" y="160" width="339" height="157"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0EFQQDedEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0EF3UDedEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0EF3UTedEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0EF3UjedEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0EF3UzedEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0EF3VDedEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0EF3VTedEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0EF3VjedEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ProducerConsumer.uml#_0D64MDedEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0EFQQTedEeGPyrZ5I3hMlA" x="480" y="40" width="338"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_YGM9IA3gEeWSq5WX_4UlHg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_YGM9IQ3gEeWSq5WX_4UlHg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_YGM9Iw3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="ProducerConsumer.uml#_tyiqsc__Ed-TP80eVS-2Rg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YGM9Ig3gEeWSq5WX_4UlHg" x="360" y="180"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_YIA7AA3gEeWSq5WX_4UlHg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_YIA7AQ3gEeWSq5WX_4UlHg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_YIA7Aw3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YIA7Ag3gEeWSq5WX_4UlHg" x="190" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_YIifcg3gEeWSq5WX_4UlHg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_YIifcw3gEeWSq5WX_4UlHg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_YIifdQ3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ProducerConsumer.uml#_tyiqs8__Ed-TP80eVS-2Rg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YIifdA3gEeWSq5WX_4UlHg" x="190" y="72"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_YJDc1A3gEeWSq5WX_4UlHg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_YJDc1Q3gEeWSq5WX_4UlHg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_YJDc1w3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YJDc1g3gEeWSq5WX_4UlHg" x="200" y="48"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_7kc7Yc__Ed-TP80eVS-2Rg"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_YAbsUA3gEeWSq5WX_4UlHg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="ProducerConsumer.uml#_tyiqsM__Ed-TP80eVS-2Rg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_uHz6kP8nEd-hWJO6cv3VJA" type="4015" source="_8LSR4M__Ed-TP80eVS-2Rg" target="_uHcuMP8nEd-hWJO6cv3VJA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_uH0hoP8nEd-hWJO6cv3VJA" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uH0hof8nEd-hWJO6cv3VJA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_uHz6kf8nEd-hWJO6cv3VJA" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="ProducerConsumer.uml#_tyiqss__Ed-TP80eVS-2Rg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_uHz6kv8nEd-hWJO6cv3VJA" points="[-103, -45, 204, 90]$[-307, -135, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_k2oLEKY3EeSQZvr8taS8TA" id="(0.49606299212598426,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_k2oLEaY3EeSQZvr8taS8TA" id="(0.4980237154150198,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_FOfGwDeeEeGPyrZ5I3hMlA" type="4002" source="_0EFQQDedEeGPyrZ5I3hMlA" target="_uHcuMP8nEd-hWJO6cv3VJA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FOfGwTeeEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FOfGwjeeEeGPyrZ5I3hMlA" points="[-6, -3, 83, 0]$[-62, -3, 27, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FOwMgDeeEeGPyrZ5I3hMlA" id="(0.0,0.37254901960784315)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FOwMgTeeEeGPyrZ5I3hMlA" id="(1.0,0.5205479452054794)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_F4Ju0DeeEeGPyrZ5I3hMlA" type="4002" source="_-HlK8DecEeGPyrZ5I3hMlA" target="_8LSR4M__Ed-TP80eVS-2Rg" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_F4Ju0TeeEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_F4Ju0jeeEeGPyrZ5I3hMlA" points="[-25, 21, 78, 0]$[-80, 21, 23, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_F4a0kDeeEeGPyrZ5I3hMlA" id="(0.0,0.5536723163841808)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_F4a0kTeeEeGPyrZ5I3hMlA" id="(0.9448818897637795,0.7339449541284404)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_YGM9JA3gEeWSq5WX_4UlHg" type="StereotypeCommentLink" source="_8LSR4M__Ed-TP80eVS-2Rg" target="_YGM9IA3gEeWSq5WX_4UlHg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_YGM9JQ3gEeWSq5WX_4UlHg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_YGM9KQ3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="ProducerConsumer.uml#_tyiqsc__Ed-TP80eVS-2Rg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YGM9Jg3gEeWSq5WX_4UlHg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YGM9Jw3gEeWSq5WX_4UlHg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YGM9KA3gEeWSq5WX_4UlHg"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_YIA7BA3gEeWSq5WX_4UlHg" type="StereotypeCommentLink" source="_ytK8IP8nEd-hWJO6cv3VJA" target="_YIA7AA3gEeWSq5WX_4UlHg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_YIA7BQ3gEeWSq5WX_4UlHg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_YIA7CQ3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YIA7Bg3gEeWSq5WX_4UlHg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YIA7Bw3gEeWSq5WX_4UlHg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YIA7CA3gEeWSq5WX_4UlHg"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_YIifdg3gEeWSq5WX_4UlHg" type="StereotypeCommentLink" source="_t6X3UJaMEeCbgbUO5qahhA" target="_YIifcg3gEeWSq5WX_4UlHg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_YIifdw3gEeWSq5WX_4UlHg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_YIifew3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ProducerConsumer.uml#_tyiqs8__Ed-TP80eVS-2Rg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YIifeA3gEeWSq5WX_4UlHg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YIifeQ3gEeWSq5WX_4UlHg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YIifeg3gEeWSq5WX_4UlHg"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_YJED4A3gEeWSq5WX_4UlHg" type="StereotypeCommentLink" source="_xVmsQP8nEd-hWJO6cv3VJA" target="_YJDc1A3gEeWSq5WX_4UlHg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_YJED4Q3gEeWSq5WX_4UlHg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_YJED5Q3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YJED4g3gEeWSq5WX_4UlHg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YJED4w3gEeWSq5WX_4UlHg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YJED5A3gEeWSq5WX_4UlHg"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_o6ZisNCREd-hqYHBJe17_Q" type="CompositeStructure" name="System Pull" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_VSa6YNHtEd-A1oPfP47IaQ" type="2073" fontName="" fontHeight="10" fillColor="8905185" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VScIgNHtEd-A1oPfP47IaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VScvkNHtEd-A1oPfP47IaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VScvkdHtEd-A1oPfP47IaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VScvktHtEd-A1oPfP47IaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VScvk9HtEd-A1oPfP47IaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VScvlNHtEd-A1oPfP47IaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VScvldHtEd-A1oPfP47IaQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VScvltHtEd-A1oPfP47IaQ" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_XsS70NHtEd-A1oPfP47IaQ" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XsTi4NHtEd-A1oPfP47IaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XsTi4dHtEd-A1oPfP47IaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XsTi4tHtEd-A1oPfP47IaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XsTi49HtEd-A1oPfP47IaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XsTi5NHtEd-A1oPfP47IaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XsTi5dHtEd-A1oPfP47IaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XsTi5tHtEd-A1oPfP47IaQ" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5r3JsFZWEeKKZs15rvNNjA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6tdJkFZWEeKKZs15rvNNjA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_XsTi59HtEd-A1oPfP47IaQ" type="7077">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XsUJ8NHtEd-A1oPfP47IaQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0XlXwDF1EeCpQdhNuFCtew" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0XnM8DF1EeCpQdhNuFCtew" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0XnM8TF1EeCpQdhNuFCtew" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0XnM8jF1EeCpQdhNuFCtew" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0XnM8zF1EeCpQdhNuFCtew" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0XnM9DF1EeCpQdhNuFCtew" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0XnM9TF1EeCpQdhNuFCtew" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0Xn0ADF1EeCpQdhNuFCtew" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4jWCcFZWEeKKZs15rvNNjA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4qOGgFZWEeKKZs15rvNNjA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0Xn0ATF1EeCpQdhNuFCtew" x="31" y="-1"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0Xn0AjF1EeCpQdhNuFCtew" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0Xn0AzF1EeCpQdhNuFCtew" x="25" y="-10"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZPs70A3gEeWSq5WX_4UlHg" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_ZPs70Q3gEeWSq5WX_4UlHg" name="stereotype" stringValue="FCM::Port"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_pP-ckMtqEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZPs70g3gEeWSq5WX_4UlHg"/>
+ </children>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_UWeWAKY4EeSQZvr8taS8TA" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Port" href="ProducerConsumer.uml#_tyiqs8__Ed-TP80eVS-2Rg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0XlXwTF1EeCpQdhNuFCtew" x="-10" y="50"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YYeY4g3gEeWSq5WX_4UlHg" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YYeY4w3gEeWSq5WX_4UlHg" y="5"/>
+ </children>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_SRdKQKY4EeSQZvr8taS8TA" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="ProducerConsumer.uml#_gV1cgDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XsS70dHtEd-A1oPfP47IaQ" x="435" y="15" width="201" height="85"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_YNar4NHtEd-A1oPfP47IaQ" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YNbS8NHtEd-A1oPfP47IaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YNbS8dHtEd-A1oPfP47IaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YNbS8tHtEd-A1oPfP47IaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YNbS89HtEd-A1oPfP47IaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YNbS9NHtEd-A1oPfP47IaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YNbS9dHtEd-A1oPfP47IaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YNbS9tHtEd-A1oPfP47IaQ" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7rNyUFZWEeKKZs15rvNNjA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7ztnAFZWEeKKZs15rvNNjA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_YNbS99HtEd-A1oPfP47IaQ" type="7077">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNbS-NHtEd-A1oPfP47IaQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_zmq8ANHtEd-A1oPfP47IaQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zmsKINHtEd-A1oPfP47IaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zmsKIdHtEd-A1oPfP47IaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zmsKItHtEd-A1oPfP47IaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zmsKI9HtEd-A1oPfP47IaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zmsKJNHtEd-A1oPfP47IaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zmsKJdHtEd-A1oPfP47IaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zmsKJtHtEd-A1oPfP47IaQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_34a2IFZWEeKKZs15rvNNjA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4ARKkFZWEeKKZs15rvNNjA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zmsxMNHtEd-A1oPfP47IaQ" x="-84" y="1"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zmsxMdHtEd-A1oPfP47IaQ" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zmsxMtHtEd-A1oPfP47IaQ" x="25" y="-10"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZQZfYA3gEeWSq5WX_4UlHg" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_ZQZfYQ3gEeWSq5WX_4UlHg" name="stereotype" stringValue="FCM::Port"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_pP-ckMtqEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZQZfYg3gEeWSq5WX_4UlHg"/>
+ </children>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_WObWIKY4EeSQZvr8taS8TA" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Port" href="ProducerConsumer.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zmq8AdHtEd-A1oPfP47IaQ" x="159" y="48"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YYeY5A3gEeWSq5WX_4UlHg" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YYeY5Q3gEeWSq5WX_4UlHg" y="5"/>
+ </children>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_S5Ys8KY4EeSQZvr8taS8TA" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="ProducerConsumer.uml#_i-I7gDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNar4dHtEd-A1oPfP47IaQ" x="34" y="17" width="169" height="85"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_JusbQDbdEeGdqp2YT1LwWw" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JutCUDbdEeGdqp2YT1LwWw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JutCUTbdEeGdqp2YT1LwWw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JutCUjbdEeGdqp2YT1LwWw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JutCUzbdEeGdqp2YT1LwWw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JutCVDbdEeGdqp2YT1LwWw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JutCVTbdEeGdqp2YT1LwWw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JutCVjbdEeGdqp2YT1LwWw" type="5192"/>
+ <element xmi:type="uml:Comment" href="ProducerConsumer.uml#_JuaHYDbdEeGdqp2YT1LwWw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JusbQTbdEeGdqp2YT1LwWw" x="435" y="115" width="161" height="81"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lM7ZUDeeEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lM7ZUjeeEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lM7ZUzeeEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lM8AYDeeEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lM8AYTeeEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lM8AYjeeEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lM8AYzeeEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lM8AZDeeEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ProducerConsumer.uml#_lMxBQDeeEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lM7ZUTeeEeGPyrZ5I3hMlA" x="95" y="115" width="323"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_d2a9kBSoEeOUifYpcO0mcw" type="3070" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_d2a9khSoEeOUifYpcO0mcw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_d2a9kxSoEeOUifYpcO0mcw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_d2a9lBSoEeOUifYpcO0mcw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_d2a9lRSoEeOUifYpcO0mcw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_d2a9lhSoEeOUifYpcO0mcw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_d2bkoBSoEeOUifYpcO0mcw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_d2bkoRSoEeOUifYpcO0mcw" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tR2w0BSoEeOUifYpcO0mcw" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tb5doBSoEeOUifYpcO0mcw" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_d2bkohSoEeOUifYpcO0mcw" type="7077" collapsed="true">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_d2bkoxSoEeOUifYpcO0mcw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_d2bkpBSoEeOUifYpcO0mcw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YYeY5g3gEeWSq5WX_4UlHg" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YYeY5w3gEeWSq5WX_4UlHg" y="5"/>
+ </children>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_cMJ40KY4EeSQZvr8taS8TA" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="ProducerConsumer.uml#_d2B8ABSoEeOUifYpcO0mcw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_d2a9kRSoEeOUifYpcO0mcw" x="34" y="275" width="172"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ejQ1cBSoEeOUifYpcO0mcw" type="3070" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ejRcgBSoEeOUifYpcO0mcw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ejRcgRSoEeOUifYpcO0mcw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ejRcghSoEeOUifYpcO0mcw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ejRcgxSoEeOUifYpcO0mcw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ejRchBSoEeOUifYpcO0mcw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ejRchRSoEeOUifYpcO0mcw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ejSDkBSoEeOUifYpcO0mcw" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_riH4kBSoEeOUifYpcO0mcw" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r4zTMBSoEeOUifYpcO0mcw" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ejSDkRSoEeOUifYpcO0mcw" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ejSDkhSoEeOUifYpcO0mcw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ejSDkxSoEeOUifYpcO0mcw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YYeY6A3gEeWSq5WX_4UlHg" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YYeY6Q3gEeWSq5WX_4UlHg" y="5"/>
+ </children>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_bcQF4KY4EeSQZvr8taS8TA" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Property" href="ProducerConsumer.uml#_ei8sYBSoEeOUifYpcO0mcw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ejQ1cRSoEeOUifYpcO0mcw" x="435" y="275" width="201"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZP36-A3gEeWSq5WX_4UlHg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ZP36-Q3gEeWSq5WX_4UlHg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_ZP36-w3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ProducerConsumer.uml#_tyiqs8__Ed-TP80eVS-2Rg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZP36-g3gEeWSq5WX_4UlHg" x="190" y="50"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZQPuYA3gEeWSq5WX_4UlHg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ZQPuYQ3gEeWSq5WX_4UlHg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_ZQPuYw3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Abstraction" href="ProducerConsumer.uml#_9dY5YBSqEeOUifYpcO0mcw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZQPuYg3gEeWSq5WX_4UlHg" x="100" y="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZQp-FA3gEeWSq5WX_4UlHg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ZQp-FQ3gEeWSq5WX_4UlHg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_ZQp-Fw3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ProducerConsumer.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZQp-Fg3gEeWSq5WX_4UlHg" x="359" y="48"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZQ85AA3gEeWSq5WX_4UlHg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ZQ85AQ3gEeWSq5WX_4UlHg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_ZQ85Aw3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Connector" href="ProducerConsumer.uml#_efVI0E2rEeGl8qrc8BM7vA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZQ85Ag3gEeWSq5WX_4UlHg" x="100" y="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZRPM4A3gEeWSq5WX_4UlHg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ZRPM4Q3gEeWSq5WX_4UlHg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_ZRPM4w3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Abstraction" href="ProducerConsumer.uml#_--_2EBSqEeOUifYpcO0mcw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZRPM4g3gEeWSq5WX_4UlHg" x="100" y="100"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VScvl9HtEd-A1oPfP47IaQ"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YYeY4A3gEeWSq5WX_4UlHg" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YYeY4Q3gEeWSq5WX_4UlHg" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="ProducerConsumer.uml#_bYJagDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VSa6YdHtEd-A1oPfP47IaQ" x="20" y="18" width="681" height="363"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_o6ZisdCREd-hqYHBJe17_Q"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_YYeY6g3gEeWSq5WX_4UlHg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="ProducerConsumer.uml#_XLQjUDLiEd2RVeNawwNNzg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_fPo0MDbdEeGdqp2YT1LwWw" type="4002" source="_JusbQDbdEeGdqp2YT1LwWw" target="_XsS70NHtEd-A1oPfP47IaQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_fPo0MTbdEeGdqp2YT1LwWw" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_fPo0MjbdEeGdqp2YT1LwWw" points="[583, 164, -643984, -643984]$[573, 145, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fQJKgDbdEeGdqp2YT1LwWw" id="(0.5121951219512195,0.125)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fQJKgTbdEeGdqp2YT1LwWw" id="(0.39800995024875624,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_efaBUE2rEeGl8qrc8BM7vA" type="4013" source="_zmq8ANHtEd-A1oPfP47IaQ" target="_0XlXwDF1EeCpQdhNuFCtew" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_efaoYE2rEeGl8qrc8BM7vA" type="6025">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_efaoYU2rEeGl8qrc8BM7vA" x="-4" y="-27"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_efaoYk2rEeGl8qrc8BM7vA" visible="false" type="6050">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_efaoY02rEeGl8qrc8BM7vA" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_efbPcE2rEeGl8qrc8BM7vA" visible="false" type="6051">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_efbPcU2rEeGl8qrc8BM7vA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_efbPck2rEeGl8qrc8BM7vA" visible="false" type="6052">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_efbPc02rEeGl8qrc8BM7vA" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_efaBUU2rEeGl8qrc8BM7vA" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Connector" href="ProducerConsumer.uml#_efVI0E2rEeGl8qrc8BM7vA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_efaBUk2rEeGl8qrc8BM7vA" points="[258, 110, -643984, -643984]$[477, 99, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_efmOkE2rEeGl8qrc8BM7vA" id="(0.85,0.45)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_g2IoIE2rEeGl8qrc8BM7vA" type="4002" source="_lM7ZUDeeEeGPyrZ5I3hMlA" target="_efaBUE2rEeGl8qrc8BM7vA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_g2JPME2rEeGl8qrc8BM7vA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_g2JPMU2rEeGl8qrc8BM7vA" points="[1, -5, 0, 43]$[1, -48, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_g2TAME2rEeGl8qrc8BM7vA" id="(0.6811145510835913,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_g2TAMU2rEeGl8qrc8BM7vA" id="(0.4689265536723164,0.48148148148148145)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9enBYBSqEeOUifYpcO0mcw" type="4007" source="_XsS70NHtEd-A1oPfP47IaQ" target="_ejQ1cBSoEeOUifYpcO0mcw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_9epdoBSqEeOUifYpcO0mcw" visible="false" type="6006">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_1iOnEH1OEeWG49zncsL-0g" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9epdoRSqEeOUifYpcO0mcw" x="44" y="38"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9epdohSqEeOUifYpcO0mcw" type="6020">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FzvGsH1PEeWG49zncsL-0g" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FzvGsX1PEeWG49zncsL-0g" key="visible" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_1idQkH1OEeWG49zncsL-0g" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9epdoxSqEeOUifYpcO0mcw" x="54" y="48"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_9enBYRSqEeOUifYpcO0mcw" fontName="Sans Serif"/>
+ <element xmi:type="uml:Abstraction" href="ProducerConsumer.uml#_9dY5YBSqEeOUifYpcO0mcw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9enBYhSqEeOUifYpcO0mcw" points="[652, 156, -643984, -643984]$[634, 289, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9fKbABSqEeOUifYpcO0mcw" id="(0.8955223880597015,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9fKbARSqEeOUifYpcO0mcw" id="(0.8955223880597015,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_-_lr8BSqEeOUifYpcO0mcw" type="4007" source="_YNar4NHtEd-A1oPfP47IaQ" target="_d2a9kBSoEeOUifYpcO0mcw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_-_m6EBSqEeOUifYpcO0mcw" visible="false" type="6006">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_39vAMH1OEeWG49zncsL-0g" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-_m6ERSqEeOUifYpcO0mcw" x="46" y="-47"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-_m6EhSqEeOUifYpcO0mcw" type="6020">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EExDcH1PEeWG49zncsL-0g" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EExDcX1PEeWG49zncsL-0g" key="visible" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_398bkH1OEeWG49zncsL-0g" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-_nhIBSqEeOUifYpcO0mcw" x="-7" y="48"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_-_lr8RSqEeOUifYpcO0mcw" fontName="Sans Serif"/>
+ <element xmi:type="uml:Abstraction" href="ProducerConsumer.uml#_--_2EBSqEeOUifYpcO0mcw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-_lr8hSqEeOUifYpcO0mcw" points="[112, 161, -643984, -643984]$[104, 291, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-_3YwBSqEeOUifYpcO0mcw" id="(0.24260355029585798,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-_3YwRSqEeOUifYpcO0mcw" id="(0.23837209302325582,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ZP36_A3gEeWSq5WX_4UlHg" type="StereotypeCommentLink" source="_0XlXwDF1EeCpQdhNuFCtew" target="_ZP36-A3gEeWSq5WX_4UlHg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_ZP4iAA3gEeWSq5WX_4UlHg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_ZP4iBA3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ProducerConsumer.uml#_tyiqs8__Ed-TP80eVS-2Rg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ZP4iAQ3gEeWSq5WX_4UlHg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZP4iAg3gEeWSq5WX_4UlHg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZP4iAw3gEeWSq5WX_4UlHg"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ZQPuZA3gEeWSq5WX_4UlHg" type="StereotypeCommentLink" source="_9enBYBSqEeOUifYpcO0mcw" target="_ZQPuYA3gEeWSq5WX_4UlHg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_ZQPuZQ3gEeWSq5WX_4UlHg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_ZQPuaQ3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Abstraction" href="ProducerConsumer.uml#_9dY5YBSqEeOUifYpcO0mcw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ZQPuZg3gEeWSq5WX_4UlHg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZQPuZw3gEeWSq5WX_4UlHg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZQPuaA3gEeWSq5WX_4UlHg"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ZQp-GA3gEeWSq5WX_4UlHg" type="StereotypeCommentLink" source="_zmq8ANHtEd-A1oPfP47IaQ" target="_ZQp-FA3gEeWSq5WX_4UlHg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_ZQp-GQ3gEeWSq5WX_4UlHg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_ZQp-HQ3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ProducerConsumer.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ZQp-Gg3gEeWSq5WX_4UlHg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZQp-Gw3gEeWSq5WX_4UlHg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZQp-HA3gEeWSq5WX_4UlHg"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ZQ85BA3gEeWSq5WX_4UlHg" type="StereotypeCommentLink" source="_efaBUE2rEeGl8qrc8BM7vA" target="_ZQ85AA3gEeWSq5WX_4UlHg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_ZQ85BQ3gEeWSq5WX_4UlHg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_ZQ9gEA3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Connector" href="ProducerConsumer.uml#_efVI0E2rEeGl8qrc8BM7vA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ZQ85Bg3gEeWSq5WX_4UlHg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZQ85Bw3gEeWSq5WX_4UlHg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZQ85CA3gEeWSq5WX_4UlHg"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ZRPM5A3gEeWSq5WX_4UlHg" type="StereotypeCommentLink" source="_-_lr8BSqEeOUifYpcO0mcw" target="_ZRPM4A3gEeWSq5WX_4UlHg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_ZRPM5Q3gEeWSq5WX_4UlHg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_ZRPM6Q3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Abstraction" href="ProducerConsumer.uml#_--_2EBSqEeOUifYpcO0mcw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ZRPM5g3gEeWSq5WX_4UlHg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZRPM5w3gEeWSq5WX_4UlHg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZRPM6A3gEeWSq5WX_4UlHg"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_U1UegPcXEd-KM6l7lmIPkw" type="PapyrusUMLClassDiagram" name="deployment" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_FGfloCghEeCw56aD7XrQhw" type="2016" element="_7kc7YM__Ed-TP80eVS-2Rg" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FGgMsCghEeCw56aD7XrQhw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FGgMsSghEeCw56aD7XrQhw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FGgMsighEeCw56aD7XrQhw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FGgMsyghEeCw56aD7XrQhw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FGlsQCghEeCw56aD7XrQhw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FGmTUCghEeCw56aD7XrQhw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FGmTUSghEeCw56aD7XrQhw" type="0">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FGmTUighEeCw56aD7XrQhw" x="-20" y="40"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FGfloSghEeCw56aD7XrQhw" x="48" y="27" width="34" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GQM_sCghEeCw56aD7XrQhw" type="2016" element="_UstOsM__Ed-TP80eVS-2Rg" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GQNmwSghEeCw56aD7XrQhw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GQNmwighEeCw56aD7XrQhw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GQNmwyghEeCw56aD7XrQhw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GQNmxCghEeCw56aD7XrQhw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GQNmxSghEeCw56aD7XrQhw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GQNmxighEeCw56aD7XrQhw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_GQON0CghEeCw56aD7XrQhw" type="0">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GQON0SghEeCw56aD7XrQhw" x="-20" y="40"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQNmwCghEeCw56aD7XrQhw" x="153" y="27" width="34" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_JhfKQCghEeCw56aD7XrQhw" type="2016" element="_V5euUP8nEd-hWJO6cv3VJA" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JhfKQighEeCw56aD7XrQhw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JhfxUCghEeCw56aD7XrQhw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JhfxUSghEeCw56aD7XrQhw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JhfxUighEeCw56aD7XrQhw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JhfxUyghEeCw56aD7XrQhw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JhfxVCghEeCw56aD7XrQhw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JhfxVSghEeCw56aD7XrQhw" type="0">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JhfxVighEeCw56aD7XrQhw" y="40"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JhfKQSghEeCw56aD7XrQhw" x="333" y="27" width="34" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LGTzACghEeCw56aD7XrQhw" type="2016" element="_o6ZisNCREd-hqYHBJe17_Q" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LGUaECghEeCw56aD7XrQhw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LGUaESghEeCw56aD7XrQhw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LGUaEighEeCw56aD7XrQhw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LGUaEyghEeCw56aD7XrQhw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LGUaFCghEeCw56aD7XrQhw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LGVBICghEeCw56aD7XrQhw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LGVBISghEeCw56aD7XrQhw" type="0">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LGVBIighEeCw56aD7XrQhw" x="9" y="40"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LGTzASghEeCw56aD7XrQhw" x="441" y="27" width="34" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_91n2kDOFEeCldqx_51Yicg" type="2007" fontName="Sans Serif" fontHeight="10" fillColor="8905185" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_91prwDOFEeCldqx_51Yicg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_91prwTOFEeCldqx_51Yicg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_91prwjOFEeCldqx_51Yicg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_91prwzOFEeCldqx_51Yicg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_91qS0DOFEeCldqx_51Yicg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_91qS0TOFEeCldqx_51Yicg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_91qS0jOFEeCldqx_51Yicg" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_91qS0zOFEeCldqx_51Yicg" type="7016">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_91qS1DOFEeCldqx_51Yicg"/>
+ </children>
+ <element xmi:type="uml:Package" href="ProducerConsumer.uml#_xBxwoDOFEeCldqx_51Yicg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_91n2kTOFEeCldqx_51Yicg" x="36" y="144" width="199" height="109"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1GDBwLGREeCfWNndpgPDWA" type="2007" fontName="Sans Serif" fillColor="8047085" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1GOA4LGREeCfWNndpgPDWA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1GOA4bGREeCfWNndpgPDWA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1GOA4rGREeCfWNndpgPDWA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1GOA47GREeCfWNndpgPDWA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1GOn8LGREeCfWNndpgPDWA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1GOn8bGREeCfWNndpgPDWA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4DXjcLkUEeSU_ruUtH4m8A" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4DYKgLkUEeSU_ruUtH4m8A" key="lineWidth" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1GOn8rGREeCfWNndpgPDWA" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1GOn87GREeCfWNndpgPDWA" type="7016">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1GOn9LGREeCfWNndpgPDWA"/>
+ </children>
+ <element xmi:type="uml:Package" href="ProducerConsumer.uml#_zwMLcLF4EeC9yscvWqW-eg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1GDBwbGREeCfWNndpgPDWA" x="342" y="144" width="198" height="109"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gdmuADefEeGPyrZ5I3hMlA" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gdmuAjefEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gdmuAzefEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gdmuBDefEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gdmuBTefEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gdnVEDefEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gdnVETefEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gdnVEjefEeGPyrZ5I3hMlA" type="5038"/>
+ <element xmi:type="uml:Comment" href="ProducerConsumer.uml#_gdeyMDefEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gdmuATefEeGPyrZ5I3hMlA" x="531" y="27" width="115" height="46"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_YMKbMA3gEeWSq5WX_4UlHg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_YMKbMQ3gEeWSq5WX_4UlHg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_YMKbMw3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Package" href="ProducerConsumer.uml#_xBxwoDOFEeCldqx_51Yicg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YMKbMg3gEeWSq5WX_4UlHg" x="236" y="144"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_YMekQA3gEeWSq5WX_4UlHg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_YMekQQ3gEeWSq5WX_4UlHg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_YMekQw3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Package" href="ProducerConsumer.uml#_zwMLcLF4EeC9yscvWqW-eg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YMekQg3gEeWSq5WX_4UlHg" x="542" y="144"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_U1UegfcXEd-KM6l7lmIPkw"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_YJe6oA3gEeWSq5WX_4UlHg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="ProducerConsumer.uml#_234GEDLiEd2RVeNawwNNzg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_YMKbNA3gEeWSq5WX_4UlHg" type="StereotypeCommentLink" source="_91n2kDOFEeCldqx_51Yicg" target="_YMKbMA3gEeWSq5WX_4UlHg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_YMKbNQ3gEeWSq5WX_4UlHg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_YMLCQg3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Package" href="ProducerConsumer.uml#_xBxwoDOFEeCldqx_51Yicg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YMKbNg3gEeWSq5WX_4UlHg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YMLCQA3gEeWSq5WX_4UlHg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YMLCQQ3gEeWSq5WX_4UlHg"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_YMekRA3gEeWSq5WX_4UlHg" type="StereotypeCommentLink" source="_1GDBwLGREeCfWNndpgPDWA" target="_YMekQA3gEeWSq5WX_4UlHg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_YMekRQ3gEeWSq5WX_4UlHg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_YMfLUA3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Package" href="ProducerConsumer.uml#_zwMLcLF4EeC9yscvWqW-eg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YMekRg3gEeWSq5WX_4UlHg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YMekRw3gEeWSq5WX_4UlHg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YMekSA3gEeWSq5WX_4UlHg"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_V5euUP8nEd-hWJO6cv3VJA" type="CompositeStructure" name="Publisher" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_Wky8MP8nEd-hWJO6cv3VJA" type="2073" fontName="" fontHeight="10" fillColor="8905185" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Wk0KUP8nEd-hWJO6cv3VJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Wk0KUf8nEd-hWJO6cv3VJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Wk0KUv8nEd-hWJO6cv3VJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Wk0KU_8nEd-hWJO6cv3VJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Wk0KVP8nEd-hWJO6cv3VJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Wk0KVf8nEd-hWJO6cv3VJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wk0xYP8nEd-hWJO6cv3VJA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Wk0xYf8nEd-hWJO6cv3VJA" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Wk0xYv8nEd-hWJO6cv3VJA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_eCjHMP8nEd-hWJO6cv3VJA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eCjuQP8nEd-hWJO6cv3VJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eCjuQf8nEd-hWJO6cv3VJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eCkVUP8nEd-hWJO6cv3VJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eCkVUf8nEd-hWJO6cv3VJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eCkVUv8nEd-hWJO6cv3VJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eCkVU_8nEd-hWJO6cv3VJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_eCkVVP8nEd-hWJO6cv3VJA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Dz37gFZXEeKKZs15rvNNjA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D7CTcFZXEeKKZs15rvNNjA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eCkVVf8nEd-hWJO6cv3VJA" x="-89"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_eCkVVv8nEd-hWJO6cv3VJA" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eCkVV_8nEd-hWJO6cv3VJA" x="25" y="-10"/>
+ </children>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_3sUesKY3EeSQZvr8taS8TA" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eCjHMf8nEd-hWJO6cv3VJA" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_fwpAsP8nEd-hWJO6cv3VJA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fwpAsv8nEd-hWJO6cv3VJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fwpAs_8nEd-hWJO6cv3VJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fwpnwP8nEd-hWJO6cv3VJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fwpnwf8nEd-hWJO6cv3VJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fwpnwv8nEd-hWJO6cv3VJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fwpnw_8nEd-hWJO6cv3VJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fwpnxP8nEd-hWJO6cv3VJA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EVFyMFZXEeKKZs15rvNNjA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EhugAFZXEeKKZs15rvNNjA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fwpnxf8nEd-hWJO6cv3VJA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fwpnxv8nEd-hWJO6cv3VJA" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fwpnx_8nEd-hWJO6cv3VJA" x="27" y="-18"/>
+ </children>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_5gZEYKY3EeSQZvr8taS8TA" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Port" href="ProducerConsumer.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fwpAsf8nEd-hWJO6cv3VJA" x="117" y="36"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YMzUYA3gEeWSq5WX_4UlHg" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YMzUYQ3gEeWSq5WX_4UlHg" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="ProducerConsumer.uml#_IfjoETLbEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Wky8Mf8nEd-hWJO6cv3VJA" x="144" y="108" width="136" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XKXHYP8nEd-hWJO6cv3VJA" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XKXHYv8nEd-hWJO6cv3VJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XKXucP8nEd-hWJO6cv3VJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XKXucf8nEd-hWJO6cv3VJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XKXucv8nEd-hWJO6cv3VJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XKXuc_8nEd-hWJO6cv3VJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XKXudP8nEd-hWJO6cv3VJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XKXudf8nEd-hWJO6cv3VJA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_XKXudv8nEd-hWJO6cv3VJA" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XKXud_8nEd-hWJO6cv3VJA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_euJo8P8nEd-hWJO6cv3VJA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_euKQAP8nEd-hWJO6cv3VJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_euKQAf8nEd-hWJO6cv3VJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_euKQAv8nEd-hWJO6cv3VJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_euK3EP8nEd-hWJO6cv3VJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_euK3Ef8nEd-hWJO6cv3VJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_euK3Ev8nEd-hWJO6cv3VJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_euK3E_8nEd-hWJO6cv3VJA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DRgOQFZXEeKKZs15rvNNjA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DYoxAFZXEeKKZs15rvNNjA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_euK3FP8nEd-hWJO6cv3VJA" x="-89" y="-2"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_euK3Ff8nEd-hWJO6cv3VJA" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_euK3Fv8nEd-hWJO6cv3VJA" x="25" y="-10"/>
+ </children>
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_4rHpQKY3EeSQZvr8taS8TA" name="maskLabel">
+ <stringListValue>name</stringListValue>
+ <stringListValue>derived</stringListValue>
+ <stringListValue>type</stringListValue>
+ </styles>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_euJo8f8nEd-hWJO6cv3VJA" x="-10" y="27"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YMz7cA3gEeWSq5WX_4UlHg" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YMz7cQ3gEeWSq5WX_4UlHg" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_N6fa4JsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XKXHYf8nEd-hWJO6cv3VJA" x="144" y="18" width="136" height="55"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Gz7TMDehEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G0CA4DehEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G0CA4TehEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G0CA4jehEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G0CA4zehEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G0CA5DehEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G0Cn8DehEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_G0Cn8TehEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ProducerConsumer.uml#_GzyJQDehEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Gz7TMTehEeGPyrZ5I3hMlA" x="342" y="18" width="344" height="79"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_YQYz4A3gEeWSq5WX_4UlHg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_YQYz4Q3gEeWSq5WX_4UlHg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_YQYz4w3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="ProducerConsumer.uml#_IfjoETLbEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YQYz4g3gEeWSq5WX_4UlHg" x="344" y="108"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_YQ04wA3gEeWSq5WX_4UlHg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_YQ04wQ3gEeWSq5WX_4UlHg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_YQ04ww3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YQ04wg3gEeWSq5WX_4UlHg" x="190" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_YRfnIA3gEeWSq5WX_4UlHg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_YRfnIQ3gEeWSq5WX_4UlHg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_YRfnIw3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ProducerConsumer.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YRfnIg3gEeWSq5WX_4UlHg" x="317" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_YR86IA3gEeWSq5WX_4UlHg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_YR86IQ3gEeWSq5WX_4UlHg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_YR86Iw3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YR86Ig3gEeWSq5WX_4UlHg" x="190" y="27"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_V5euUf8nEd-hWJO6cv3VJA"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_YMz7cg3gEeWSq5WX_4UlHg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="ProducerConsumer.uml#_etOZkDLaEd2qeKRLMdIx_A"/>
+ <edges xmi:type="notation:Connector" xmi:id="_XKqpYP8nEd-hWJO6cv3VJA" type="4015" source="_Wky8MP8nEd-hWJO6cv3VJA" target="_XKXHYP8nEd-hWJO6cv3VJA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_XKrQcP8nEd-hWJO6cv3VJA" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XKrQcf8nEd-hWJO6cv3VJA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_XKqpYf8nEd-hWJO6cv3VJA" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="ProducerConsumer.uml#_34FjAPx3Ed6O2oOTPfeAMA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XKqpYv8nEd-hWJO6cv3VJA" points="[-19, -23, 140, 174]$[-159, -197, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_aJG_MDehEeGPyrZ5I3hMlA" type="4002" source="_Gz7TMDehEeGPyrZ5I3hMlA" target="_XKXHYP8nEd-hWJO6cv3VJA" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_aJG_MTehEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_aJG_MjehEeGPyrZ5I3hMlA" points="[342, 58, -643984, -643984]$[280, 58, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aJdkgDehEeGPyrZ5I3hMlA" id="(0.02823529411764706,0.4166666666666667)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aJeLkDehEeGPyrZ5I3hMlA" id="(1.0,0.7272727272727273)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_YQYz5A3gEeWSq5WX_4UlHg" type="StereotypeCommentLink" source="_Wky8MP8nEd-hWJO6cv3VJA" target="_YQYz4A3gEeWSq5WX_4UlHg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_YQYz5Q3gEeWSq5WX_4UlHg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_YQYz6Q3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="ProducerConsumer.uml#_IfjoETLbEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YQYz5g3gEeWSq5WX_4UlHg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YQYz5w3gEeWSq5WX_4UlHg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YQYz6A3gEeWSq5WX_4UlHg"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_YQ04xA3gEeWSq5WX_4UlHg" type="StereotypeCommentLink" source="_eCjHMP8nEd-hWJO6cv3VJA" target="_YQ04wA3gEeWSq5WX_4UlHg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_YQ04xQ3gEeWSq5WX_4UlHg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_YQ04yQ3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YQ04xg3gEeWSq5WX_4UlHg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YQ04xw3gEeWSq5WX_4UlHg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YQ04yA3gEeWSq5WX_4UlHg"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_YRfnJA3gEeWSq5WX_4UlHg" type="StereotypeCommentLink" source="_fwpAsP8nEd-hWJO6cv3VJA" target="_YRfnIA3gEeWSq5WX_4UlHg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_YRfnJQ3gEeWSq5WX_4UlHg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_YRfnKQ3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ProducerConsumer.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YRfnJg3gEeWSq5WX_4UlHg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YRfnJw3gEeWSq5WX_4UlHg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YRfnKA3gEeWSq5WX_4UlHg"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_YR86JA3gEeWSq5WX_4UlHg" type="StereotypeCommentLink" source="_euJo8P8nEd-hWJO6cv3VJA" target="_YR86IA3gEeWSq5WX_4UlHg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_YR86JQ3gEeWSq5WX_4UlHg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_YR86KQ3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YR86Jg3gEeWSq5WX_4UlHg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YR86Jw3gEeWSq5WX_4UlHg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YR86KA3gEeWSq5WX_4UlHg"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_0rwpYDefEeGPyrZ5I3hMlA" type="CompositeStructure" name="HWArchitecture" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_1w2CIDefEeGPyrZ5I3hMlA" type="2073" fontName="" fontHeight="10" fillColor="10011046" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1w2pMDefEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1w2pMTefEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1w2pMjefEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1w2pMzefEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1w2pNDefEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1w2pNTefEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1w2pNjefEeGPyrZ5I3hMlA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1w2pNzefEeGPyrZ5I3hMlA" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_4HLnYDefEeGPyrZ5I3hMlA" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4HMOcDefEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4HMOcTefEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4HMOcjefEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4HMOczefEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4HMOdDefEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4HMOdTefEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4HMOdjefEeGPyrZ5I3hMlA" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UodTAFZXEeKKZs15rvNNjA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UsmzMFZXEeKKZs15rvNNjA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4HMOdzefEeGPyrZ5I3hMlA" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4HMOeDefEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4HMOeTefEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YSTfcA3gEeWSq5WX_4UlHg" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YSTfcQ3gEeWSq5WX_4UlHg" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="ProducerConsumer.uml#_4HAoQDefEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4HLnYTefEeGPyrZ5I3hMlA" x="61" y="22" width="162"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1w2pODefEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1w2pOTefEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YSS4YA3gEeWSq5WX_4UlHg" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YSS4YQ3gEeWSq5WX_4UlHg" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="ProducerConsumer.uml#_tZvNQDefEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1w2CITefEeGPyrZ5I3hMlA" x="81" y="63" width="300" height="154"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7qMbIDefEeGPyrZ5I3hMlA" type="2072" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7qNCMDefEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7qNCMTefEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7qNCMjefEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7qNCMzefEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7qNCNDefEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7qNCNTefEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7qNCNjefEeGPyrZ5I3hMlA" type="5124"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7qNCNzefEeGPyrZ5I3hMlA" visible="false" type="7072">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7qNCODefEeGPyrZ5I3hMlA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7qNCOTefEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YSTfcg3gEeWSq5WX_4UlHg" type="6088">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YSTfcw3gEeWSq5WX_4UlHg" y="5"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YUssIA3gEeWSq5WX_4UlHg" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_YUssIQ3gEeWSq5WX_4UlHg" name="stereotype" stringValue="FCM::Target"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_0KEH0JOCEd-5qPBhYeIVtw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YUssIg3gEeWSq5WX_4UlHg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_YU5gcA3gEeWSq5WX_4UlHg" type="StereotypeCompartment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YU_nEA3gEeWSq5WX_4UlHg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YU_nEQ3gEeWSq5WX_4UlHg" key="visible" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YU6HgA3gEeWSq5WX_4UlHg" type="StereotypeProperty">
+ <element xmi:type="uml:Property" href="pathmap://FCM_PROFILES/FCM.profile.uml#__5rAUGE_Ed-eArNXja7SuA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YU6HgQ3gEeWSq5WX_4UlHg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YU6ukg3gEeWSq5WX_4UlHg" type="StereotypeProperty">
+ <element xmi:type="uml:Property" href="pathmap://FCM_PROFILES/FCM.profile.uml#_BZCjMJOGEd-5qPBhYeIVtw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YU6ukw3gEeWSq5WX_4UlHg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_YU5gcQ3gEeWSq5WX_4UlHg" showTitle="true"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_YU5gcg3gEeWSq5WX_4UlHg" name="stereotype" stringValue="FCM::Target"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_0KEH0JOCEd-5qPBhYeIVtw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YU5gcw3gEeWSq5WX_4UlHg"/>
+ </children>
+ <element xmi:type="uml:Node" href="ProducerConsumer.uml#_zY9vMDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7qMbITefEeGPyrZ5I3hMlA" x="441" y="63" width="163" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jhQ20DegEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jhQ20jegEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jhQ20zegEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jhQ21DegEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jhQ21TegEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jhQ21jegEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jhQ21zegEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jhRd4DegEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ProducerConsumer.uml#_jhF3sDegEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jhQ20TegEeGPyrZ5I3hMlA" x="435" y="183" width="277"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_0rwpYTefEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_YSTfdA3gEeWSq5WX_4UlHg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="ProducerConsumer.uml#_v3fMgDLiEd2RVeNawwNNzg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_ugb6IDegEeGPyrZ5I3hMlA" type="4002" source="_jhQ20DegEeGPyrZ5I3hMlA" target="_7qMbIDefEeGPyrZ5I3hMlA" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_ugb6ITegEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ugb6IjegEeGPyrZ5I3hMlA" points="[-11, -6, 7, 38]$[-11, -26, 7, 18]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ugs_4DegEeGPyrZ5I3hMlA" id="(0.33212996389891697,0.1)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ugs_4TegEeGPyrZ5I3hMlA" id="(0.5460122699386503,0.98)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_HvdK0FZYEeKKZs15rvNNjA" type="CompositeStructure" name="System Push" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_U0B0YFZYEeKKZs15rvNNjA" type="2073" fontName="Sans Serif" fillColor="8905185" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0CbcFZYEeKKZs15rvNNjA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U0CbcVZYEeKKZs15rvNNjA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0DCgFZYEeKKZs15rvNNjA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U0DCgVZYEeKKZs15rvNNjA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0DCglZYEeKKZs15rvNNjA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U0DCg1ZYEeKKZs15rvNNjA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_U0DChFZYEeKKZs15rvNNjA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_U0DChVZYEeKKZs15rvNNjA" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_Zgd44FZZEeKb1bjLi8P_oQ" type="3070" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zgg8MFZZEeKb1bjLi8P_oQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zgg8MVZZEeKb1bjLi8P_oQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zgg8MlZZEeKb1bjLi8P_oQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZghjQFZZEeKb1bjLi8P_oQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZghjQVZZEeKb1bjLi8P_oQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZghjQlZZEeKb1bjLi8P_oQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZghjQ1ZZEeKb1bjLi8P_oQ" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dtKi0FZZEeKb1bjLi8P_oQ" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_d00qAFZZEeKb1bjLi8P_oQ" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ZghjRFZZEeKb1bjLi8P_oQ" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ZghjRVZZEeKb1bjLi8P_oQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZghjRlZZEeKb1bjLi8P_oQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kzTfEFZZEeKb1bjLi8P_oQ" type="3069" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kzUGIFZZEeKb1bjLi8P_oQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kzUGIVZZEeKb1bjLi8P_oQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kzUGIlZZEeKb1bjLi8P_oQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kzUGI1ZZEeKb1bjLi8P_oQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kzUGJFZZEeKb1bjLi8P_oQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kzUGJVZZEeKb1bjLi8P_oQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kzUGJlZZEeKb1bjLi8P_oQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qpl9AFZZEeKb1bjLi8P_oQ" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qw77IVZZEeKb1bjLi8P_oQ" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kzUGJ1ZZEeKb1bjLi8P_oQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kzUGKFZZEeKb1bjLi8P_oQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kzUGKVZZEeKb1bjLi8P_oQ" x="25" y="-10"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZTzYsA3gEeWSq5WX_4UlHg" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_ZTzYsQ3gEeWSq5WX_4UlHg" name="stereotype" stringValue="FCM::Port"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_pP-ckMtqEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZTzYsg3gEeWSq5WX_4UlHg"/>
+ </children>
+ <element xmi:type="uml:Port" href="ProducerConsumer.uml#_4KiE8DLbEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kzTfEVZZEeKb1bjLi8P_oQ" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZRlLIg3gEeWSq5WX_4UlHg" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZRlLIw3gEeWSq5WX_4UlHg" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="ProducerConsumer.uml#_iP8c4dCREd-hqYHBJe17_Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zgef8FZZEeKb1bjLi8P_oQ" x="370" y="21" width="177" height="78"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_aKa00FZZEeKb1bjLi8P_oQ" type="3070" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aKbb4FZZEeKb1bjLi8P_oQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aKbb4VZZEeKb1bjLi8P_oQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aKbb4lZZEeKb1bjLi8P_oQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aKbb41ZZEeKb1bjLi8P_oQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aKbb5FZZEeKb1bjLi8P_oQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aKbb5VZZEeKb1bjLi8P_oQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_aKbb5lZZEeKb1bjLi8P_oQ" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cojEIFZZEeKb1bjLi8P_oQ" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cu9OIFZZEeKb1bjLi8P_oQ" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_aKcC8FZZEeKb1bjLi8P_oQ" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_aKcC8VZZEeKb1bjLi8P_oQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aKcC8lZZEeKb1bjLi8P_oQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_iJQToFZZEeKb1bjLi8P_oQ" type="3069" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iJQ6sFZZEeKb1bjLi8P_oQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iJQ6sVZZEeKb1bjLi8P_oQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iJQ6slZZEeKb1bjLi8P_oQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iJQ6s1ZZEeKb1bjLi8P_oQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iJQ6tFZZEeKb1bjLi8P_oQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iJQ6tVZZEeKb1bjLi8P_oQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iJQ6tlZZEeKb1bjLi8P_oQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qplV8FZZEeKb1bjLi8P_oQ" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qw77IFZZEeKb1bjLi8P_oQ" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iJQ6t1ZZEeKb1bjLi8P_oQ" x="-71" y="4"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iJRhwFZZEeKb1bjLi8P_oQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iJRhwVZZEeKb1bjLi8P_oQ" x="25" y="-10"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZUbDwA3gEeWSq5WX_4UlHg" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_ZUbDwQ3gEeWSq5WX_4UlHg" name="stereotype" stringValue="FCM::Port"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_pP-ckMtqEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZUbDwg3gEeWSq5WX_4UlHg"/>
+ </children>
+ <element xmi:type="uml:Port" href="ProducerConsumer.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iJQToVZZEeKb1bjLi8P_oQ" x="134" y="36"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZRlyMA3gEeWSq5WX_4UlHg" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZRlyMQ3gEeWSq5WX_4UlHg" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="ProducerConsumer.uml#_iP8c4tCREd-hqYHBJe17_Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aKa00VZZEeKb1bjLi8P_oQ" x="37" y="21" width="144" height="78"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_a6zv8FZZEeKb1bjLi8P_oQ" type="3097" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a60XAFZZEeKb1bjLi8P_oQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a60XAVZZEeKb1bjLi8P_oQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a60-EFZZEeKb1bjLi8P_oQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a60-EVZZEeKb1bjLi8P_oQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a60-ElZZEeKb1bjLi8P_oQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a60-E1ZZEeKb1bjLi8P_oQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_a60-FFZZEeKb1bjLi8P_oQ" type="5150"/>
+ <element xmi:type="uml:Comment" href="ProducerConsumer.uml#_KOEwwDefEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_a6zv8VZZEeKb1bjLi8P_oQ" x="244" y="129" width="290" height="55"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZULzMA3gEeWSq5WX_4UlHg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ZULzMQ3gEeWSq5WX_4UlHg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_ZULzMw3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ProducerConsumer.uml#_4KiE8DLbEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZULzMg3gEeWSq5WX_4UlHg" x="190" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZUy3MA3gEeWSq5WX_4UlHg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ZUy3MQ3gEeWSq5WX_4UlHg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_ZUy3Mw3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ProducerConsumer.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZUy3Mg3gEeWSq5WX_4UlHg" x="334" y="36"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_U0DChlZYEeKKZs15rvNNjA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U0DCh1ZYEeKKZs15rvNNjA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZRlLIA3gEeWSq5WX_4UlHg" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZRlLIQ3gEeWSq5WX_4UlHg" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="ProducerConsumer.uml#_iP8c4NCREd-hqYHBJe17_Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U0B0YVZYEeKKZs15rvNNjA" x="36" y="27" width="604" height="226"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_HvdK0VZYEeKKZs15rvNNjA"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_ZRlyMg3gEeWSq5WX_4UlHg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="ProducerConsumer.uml#_XLQjUDLiEd2RVeNawwNNzg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_wxMNYFZZEeKb1bjLi8P_oQ" type="4013" source="_iJQToFZZEeKb1bjLi8P_oQ" target="_kzTfEFZZEeKb1bjLi8P_oQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_wxNbgFZZEeKb1bjLi8P_oQ" type="6025">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wxNbgVZZEeKb1bjLi8P_oQ" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wxNbglZZEeKb1bjLi8P_oQ" visible="false" type="6050">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wxNbg1ZZEeKb1bjLi8P_oQ" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wxNbhFZZEeKb1bjLi8P_oQ" visible="false" type="6051">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wxNbhVZZEeKb1bjLi8P_oQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wxNbhlZZEeKb1bjLi8P_oQ" visible="false" type="6052">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wxNbh1ZZEeKb1bjLi8P_oQ" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_wxMNYVZZEeKb1bjLi8P_oQ" fontName="Sans Serif"/>
+ <element xmi:type="uml:Connector" href="ProducerConsumer.uml#_iP8c49CREd-hqYHBJe17_Q"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wxMNYlZZEeKb1bjLi8P_oQ" points="[10, 5, -179, 0]$[179, 0, -10, -5]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Nr2l4FZaEeKb1bjLi8P_oQ" type="4002" source="_a6zv8FZZEeKb1bjLi8P_oQ" target="_wxMNYFZZEeKb1bjLi8P_oQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Nr2l4VZaEeKb1bjLi8P_oQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Nr2l4lZaEeKb1bjLi8P_oQ" points="[-7, -6, 3, 62]$[-7, -68, 3, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NsRcoFZaEeKb1bjLi8P_oQ" id="(0.20689655172413793,0.10909090909090909)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NsRcoVZaEeKb1bjLi8P_oQ" id="(0.6071428571428571,0.7407407407407407)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ZULzNA3gEeWSq5WX_4UlHg" type="StereotypeCommentLink" source="_kzTfEFZZEeKb1bjLi8P_oQ" target="_ZULzMA3gEeWSq5WX_4UlHg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_ZULzNQ3gEeWSq5WX_4UlHg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_ZULzOQ3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ProducerConsumer.uml#_4KiE8DLbEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ZULzNg3gEeWSq5WX_4UlHg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZULzNw3gEeWSq5WX_4UlHg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZULzOA3gEeWSq5WX_4UlHg"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ZUy3NA3gEeWSq5WX_4UlHg" type="StereotypeCommentLink" source="_iJQToFZZEeKb1bjLi8P_oQ" target="_ZUy3MA3gEeWSq5WX_4UlHg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_ZUy3NQ3gEeWSq5WX_4UlHg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_ZUy3OQ3gEeWSq5WX_4UlHg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ProducerConsumer.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ZUy3Ng3gEeWSq5WX_4UlHg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZUy3Nw3gEeWSq5WX_4UlHg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZUy3OA3gEeWSq5WX_4UlHg"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/ProducerConsumer.uml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/ProducerConsumer.uml
new file mode 100644
index 00000000000..6f14b85b526
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/ProducerConsumer.uml
@@ -0,0 +1,453 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Alloc="http://www.eclipse.org/papyrus/Alloc/1" xmlns:C_Cpp="http://www.eclipse.org/papyrus/C_Cpp/1" xmlns:FCM="http://www.eclipse.org/papyrus/FCM/1" xmlns:GCM="http://www.eclipse.org/papyrus/GCM/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/papyrus/Alloc/1 http://www.eclipse.org/papyrus/MARTE/1#//Alloc http://www.eclipse.org/papyrus/GCM/1 http://www.eclipse.org/papyrus/MARTE/1#//GCM">
+ <uml:Model xmi:id="_O6TiIDLUEd26WNosUASSSw" name="ProducerConsumer">
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_O6TiITLUEd26WNosUASSSw">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_Bc1WIFW4Ed63BrxiKsw-0Q">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/core.uml#_O6TiIDLUEd26WNosUASSSw"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_rwBsMP7AEd6Zw96O-tCw7A">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/corba.uml#_DtQEwDLdEd2_U4efLnjQIw"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_R8d6YP93Ed6628OhKk_dpg">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/fifo.uml#_ePwqkHLmEd6R5tffIPrlPg"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Package" xmi:id="_LOqIEDLaEd2qeKRLMdIx_A" name="components">
+ <packagedElement xmi:type="uml:Package" xmi:id="_tyiqsM__Ed-TP80eVS-2Rg" name="PullConsumer">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_-Hd2MDecEeGPyrZ5I3hMlA" annotatedElement="_tyiqsc__Ed-TP80eVS-2Rg">
+ <body>Variant of the consumper component that uses a &quot;pull style&quot;, i.e. actively demands whether new data is available. Since the component is active, it needs to have its own thread. This is realized by the combination of the lifecycle port with a container rule that intercepts the lifecycle operations and executes the activation operation in its own thread.
+Use the context menu to find out that the PullConsumer supports the &quot;runStartThread&quot; interceptor which intercepts the lifecycle port.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_0D64MDedEeGPyrZ5I3hMlA">
+ <annotatedElement xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
+ <body>Part of the Qompass model library. Provides the specific port &quot;lc&quot; (short for lifecycle). The &quot;activate&quot; operation of this port is called by generated boot-code after instantiation and configuration of a component. The deactivation is called before disposing a component</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_tyiqsc__Ed-TP80eVS-2Rg" name="PullConsumer_impl">
+ <generalization xmi:type="uml:Generalization" xmi:id="_tyiqss__Ed-TP80eVS-2Rg">
+ <general xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
+ </generalization>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_tyiqs8__Ed-TP80eVS-2Rg" name="p" type="_Oue04GzMEeWdOZKmOtT48A" aggregation="composite"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_DHTiQDF7EeCpQdhNuFCtew" name="derived realization of ILifeCycle" client="_tyiqsc__Ed-TP80eVS-2Rg">
+ <supplier xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ <contract xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ </interfaceRealization>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_tyjRwc__Ed-TP80eVS-2Rg" name="activate" specification="_tyjRy8__Ed-TP80eVS-2Rg">
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;wait for data on port p&quot; &lt;&lt; endl;
+for (int i = 0; i&lt;25; i++) {
+ if (p->hasData ()) {
+ components::interfaces::PubData data = p->pull ();
+ cout &lt;&lt; &quot;received data: x = &quot; &lt;&lt; data.x &lt;&lt; &quot; y = &quot; &lt;&lt; data.y &lt;&lt; endl;
+ }
+ usleep (100*1000);
+}
+cout &lt;&lt; &quot;finished waiting&quot; &lt;&lt; endl;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_pIC-UH1OEeWG49zncsL-0g" name="deactivate" specification="_tyjRzM__Ed-TP80eVS-2Rg">
+ <language>C/C++</language>
+ <body></body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sYPjwH1OEeWG49zncsL-0g" name="configuration_complete" specification="_FJPu4CxyEeOMQpc6Y-MAJw">
+ <language>C/C++</language>
+ <body></body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_tyjRy8__Ed-TP80eVS-2Rg" name="activate" method="_tyjRwc__Ed-TP80eVS-2Rg"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_tyjRzM__Ed-TP80eVS-2Rg" name="deactivate" method="_pIC-UH1OEeWG49zncsL-0g"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_FJPu4CxyEeOMQpc6Y-MAJw" name="configuration_complete" method="_sYPjwH1OEeWG49zncsL-0g"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_OGM88DLaEd2qeKRLMdIx_A" name="PushConsumer">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_XfnmsDecEeGPyrZ5I3hMlA" annotatedElement="_oqZNUDLaEd2qeKRLMdIx_A">
+ <body>Push variant of a consumer, i.e. the consumer is called whenever new data is availble. It is not itself active.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gpptUDecEeGPyrZ5I3hMlA" annotatedElement="_4KiE8DLbEd2qeKRLMdIx_A">
+ <body>A MARTE flow port. The synchronisation between MARTE and FCM stereotype is automatic, yet it is possible to refine on FCM level, whether the port uses a push or pull style. In this case, the port uses a push style by setting the port kind to &quot;PushConsumer&quot;.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_dufoABo3EeONpa5JgejICQ" annotatedElement="_LjkIoBo3EeONpa5JgejICQ">
+ <body>The dependency assures that the type PubData is known within the generated code for PushConsumer_impl</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_oqZNUDLaEd2qeKRLMdIx_A" name="PushConsumer_impl">
+ <generalization xmi:type="uml:Generalization" xmi:id="_NItbAP94Ed6628OhKk_dpg">
+ <general xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
+ </generalization>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_4KiE8DLbEd2qeKRLMdIx_A" name="p" type="_QxsSAGkXEeWAzPO1wYNudw" aggregation="composite"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_Z16ywDF8EeCpQdhNuFCtew" name="derived realization of ILifeCycle" client="_oqZNUDLaEd2qeKRLMdIx_A">
+ <supplier xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ <contract xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ </interfaceRealization>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_FMwOsGzGEeWdOZKmOtT48A" name="derived realization of Push_PubData" client="_oqZNUDLaEd2qeKRLMdIx_A" supplier="_QxsSAGkXEeWAzPO1wYNudw" contract="_QxsSAGkXEeWAzPO1wYNudw"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_RoXdMP94Ed6628OhKk_dpg" name="activate" specification="_uOmgID15Ed-qiK1VZWszhA">
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;initialization of push consumer&quot; &lt;&lt; endl;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_qUSHYPdMEd-KM6l7lmIPkw" name="push" specification="_FMzSAGzGEeWdOZKmOtT48A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_QyZcoGkXEeWAzPO1wYNudw" name="data" type="_wFJ3IP91Ed6Jt8e-UqrRdQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Qycf8GkXEeWAzPO1wYNudw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QydHAGkXEeWAzPO1wYNudw" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;received data: x = &quot; &lt;&lt; data.x &lt;&lt; &quot; y = &quot; &lt;&lt; data.y &lt;&lt; endl;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_nS4zgH1OEeWG49zncsL-0g" name="deactivate" specification="_uOtN0D15Ed-qiK1VZWszhA">
+ <language>C/C++</language>
+ <body></body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_qws-MH1OEeWG49zncsL-0g" name="configuration_complete" specification="_FemwUCxxEeOMQpc6Y-MAJw">
+ <language>C/C++</language>
+ <body></body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_uOmgID15Ed-qiK1VZWszhA" name="activate" method="_RoXdMP94Ed6628OhKk_dpg"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_uOtN0D15Ed-qiK1VZWszhA" name="deactivate" method="_nS4zgH1OEeWG49zncsL-0g"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_FemwUCxxEeOMQpc6Y-MAJw" name="configuration_complete" method="_qws-MH1OEeWG49zncsL-0g"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_FMzSAGzGEeWdOZKmOtT48A" name="push" method="_qUSHYPdMEd-KM6l7lmIPkw">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_FM4KgGzGEeWdOZKmOtT48A" name="data" type="_wFJ3IP91Ed6Jt8e-UqrRdQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FM4xkGzGEeWdOZKmOtT48A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FM4xkWzGEeWdOZKmOtT48A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_LjkIoBo3EeONpa5JgejICQ" name="Dependency1" client="_oqZNUDLaEd2qeKRLMdIx_A" supplier="_wFJ3IP91Ed6Jt8e-UqrRdQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_Tp4n8DLaEd2qeKRLMdIx_A" name="interfaces">
+ <packagedElement xmi:type="uml:DataType" xmi:id="_wFJ3IP91Ed6Jt8e-UqrRdQ" name="PubData">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_yywF0P91Ed6Jt8e-UqrRdQ" name="y" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_zUgvEP91Ed6Jt8e-UqrRdQ" name="x" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_etOZkDLaEd2qeKRLMdIx_A" name="Producer">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_GzyJQDehEeGPyrZ5I3hMlA">
+ <annotatedElement xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_N6fa4JsrEd61Eo3nmu3JhQ"/>
+ <body>Let the producer instance execute by the main thread by realising the specific port &quot;start&quot;, inherited from CStart (part of the Qompass &quot;core&quot; model library).
+</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_IfjoETLbEd2qeKRLMdIx_A" name="Producer_impl">
+ <generalization xmi:type="uml:Generalization" xmi:id="_34FjAPx3Ed6O2oOTPfeAMA">
+ <general xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_N6fa4JsrEd61Eo3nmu3JhQ"/>
+ </generalization>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_DtWn4DLcEd2qeKRLMdIx_A" name="q" type="_gz0CkGzMEeWdOZKmOtT48A" aggregation="composite"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_jkNdADF8EeCpQdhNuFCtew" name="derived realization of IStart" client="_IfjoETLbEd2qeKRLMdIx_A">
+ <supplier xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_PTWzwCS-Ed-A_I32T0fkaA"/>
+ <contract xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_PTWzwCS-Ed-A_I32T0fkaA"/>
+ </interfaceRealization>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_yXNVoKF4Ed6FqJCjEUrkqQ" name="run" specification="_dH4RIKF4Ed6FqJCjEUrkqQ">
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;publish a value via port q;&quot; &lt;&lt; endl;
+components::interfaces::PubData data;
+data.x = 2;
+data.y = 3;
+for (int i = 0; i&lt;20; i++) {
+ q->push (data);
+ cout &lt;&lt; &quot;.&quot; &lt;&lt; flush;
+ // wait 200ms
+ usleep (200*1000);
+}
+</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_dH4RIKF4Ed6FqJCjEUrkqQ" name="run" method="_yXNVoKF4Ed6FqJCjEUrkqQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_dNpvUBo4EeONpa5JgejICQ" name="Dependency1" client="_IfjoETLbEd2qeKRLMdIx_A" supplier="_wFJ3IP91Ed6Jt8e-UqrRdQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_XLQjUDLiEd2RVeNawwNNzg" name="System">
+ <packagedElement xmi:type="uml:Class" xmi:id="_bYJagDLiEd2RVeNawwNNzg" name="SystemPull_impl">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_JuaHYDbdEeGdqp2YT1LwWw" annotatedElement="_gV1cgDLiEd2RVeNawwNNzg">
+ <body>Pull consumer is executed by its own thread. This is specified via a container service (runStartThread)</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_lMxBQDeeEeGPyrZ5I3hMlA" annotatedElement="_efVI0E2rEeGl8qrc8BM7vA">
+ <body>Since producer and consumer call operations (the latter to actively retrieve data), the two ports would be incompatible without using a specific interaction component, in this case. a FIFO.
+Use the context menu on a selected connector to specify the interaction component.</body>
+ </ownedComment>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_gV1cgDLiEd2RVeNawwNNzg" name="con" visibility="public" type="_tyiqsc__Ed-TP80eVS-2Rg" isUnique="false" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dCT24G6JEeGqWMX2LwdLDw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dCUd8G6JEeGqWMX2LwdLDw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_dCWTIG6JEeGqWMX2LwdLDw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_i-I7gDLiEd2RVeNawwNNzg" name="prod" visibility="public" type="_IfjoETLbEd2qeKRLMdIx_A" isUnique="false" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_esReUG6JEeGqWMX2LwdLDw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_esSscG6JEeGqWMX2LwdLDw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_esUhoG6JEeGqWMX2LwdLDw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_d2B8ABSoEeOUifYpcO0mcw" name="main" visibility="public" aggregation="composite">
+ <type xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_SiY_AP-EEd6628OhKk_dpg"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jrf6kBSoEeOUifYpcO0mcw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jrtV8BSoEeOUifYpcO0mcw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_jsc80BSoEeOUifYpcO0mcw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_ei8sYBSoEeOUifYpcO0mcw" name="pullConThread" visibility="public" aggregation="composite">
+ <type xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_SiY_AP-EEd6628OhKk_dpg"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mx3OkBSoEeOUifYpcO0mcw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_myNz4BSoEeOUifYpcO0mcw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_mzF9oBSoEeOUifYpcO0mcw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedConnector xmi:type="uml:Connector" xmi:id="_efVI0E2rEeGl8qrc8BM7vA" name="fifoconnector">
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_efVv4E2rEeGl8qrc8BM7vA" partWithPort="_i-I7gDLiEd2RVeNawwNNzg" role="_DtWn4DLcEd2qeKRLMdIx_A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efVv4k2rEeGl8qrc8BM7vA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_efVv4U2rEeGl8qrc8BM7vA" value="1"/>
+ </end>
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_efWW8E2rEeGl8qrc8BM7vA" partWithPort="_gV1cgDLiEd2RVeNawwNNzg" role="_tyiqs8__Ed-TP80eVS-2Rg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efWW8k2rEeGl8qrc8BM7vA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_efWW8U2rEeGl8qrc8BM7vA" value="1"/>
+ </end>
+ </ownedConnector>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_iP8c4NCREd-hqYHBJe17_Q" name="SystemPush_impl">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_KOEwwDefEeGPyrZ5I3hMlA" annotatedElement="_iP8c49CREd-hqYHBJe17_Q">
+ <body>The push consumer provides the interface that the producer uses (requires), no specific connector is required</body>
+ </ownedComment>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_iP8c4dCREd-hqYHBJe17_Q" name="con" visibility="public" type="_oqZNUDLaEd2qeKRLMdIx_A" isUnique="false" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_d0HHQG6JEeGqWMX2LwdLDw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_d0HuUG6JEeGqWMX2LwdLDw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_d0I8cG6JEeGqWMX2LwdLDw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_iP8c4tCREd-hqYHBJe17_Q" name="prod" visibility="public" type="_IfjoETLbEd2qeKRLMdIx_A" isUnique="false" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_fbEeAG6JEeGqWMX2LwdLDw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_fbFFEG6JEeGqWMX2LwdLDw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_fbGTMG6JEeGqWMX2LwdLDw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedConnector xmi:type="uml:Connector" xmi:id="_iP8c49CREd-hqYHBJe17_Q" name="qpconnector">
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_iP8c5NCREd-hqYHBJe17_Q" partWithPort="_iP8c4tCREd-hqYHBJe17_Q" role="_DtWn4DLcEd2qeKRLMdIx_A"/>
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_iP8c5dCREd-hqYHBJe17_Q" partWithPort="_iP8c4dCREd-hqYHBJe17_Q" role="_4KiE8DLbEd2qeKRLMdIx_A"/>
+ </ownedConnector>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_9dY5YBSqEeOUifYpcO0mcw" name="Allocate1" client="_gV1cgDLiEd2RVeNawwNNzg" supplier="_ei8sYBSoEeOUifYpcO0mcw"/>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_--_2EBSqEeOUifYpcO0mcw" name="Allocate2" client="_i-I7gDLiEd2RVeNawwNNzg" supplier="_d2B8ABSoEeOUifYpcO0mcw"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_v3fMgDLiEd2RVeNawwNNzg" name="platform">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_jhF3sDegEeGPyrZ5I3hMlA" annotatedElement="_zY9vMDLiEd2RVeNawwNNzg">
+ <body>Simple single node configuration. TargetOS is set to Linux, but will work on other OS (supporting POSIX threads)</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Node" xmi:id="_zY9vMDLiEd2RVeNawwNNzg" name="MonoNode"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_tZvNQDefEeGPyrZ5I3hMlA" name="Platform">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_4HAoQDefEeGPyrZ5I3hMlA" name="monoNode" visibility="public" type="_zY9vMDLiEd2RVeNawwNNzg" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6WEg0DefEeGPyrZ5I3hMlA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6WFu8DefEeGPyrZ5I3hMlA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_6WHkIDefEeGPyrZ5I3hMlA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_YxI8IDegEeGPyrZ5I3hMlA" name="HWArchitecturePlatform">
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_GQ1ekKwHEeCQX8uv_p0Q4A" name="monoNode" classifier="_zY9vMDLiEd2RVeNawwNNzg"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_234GEDLiEd2RVeNawwNNzg" name="deployment">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_VMRFgDOJEeC7y-fR3OSnFw">
+ <body>This configuration requires the installation of the OTF trace library.&lt;br /></body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gdeyMDefEeGPyrZ5I3hMlA">
+ <body>Cross references to diagrams</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Package" xmi:id="_xBxwoDOFEeCldqx_51Yicg" name="monoPush">
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_xB3QMDOFEeCldqx_51Yicg" name="mainInstance" classifier="_iP8c4NCREd-hqYHBJe17_Q">
+ <slot xmi:type="uml:Slot" xmi:id="_xB6TgDOFEeCldqx_51Yicg" definingFeature="_iP8c4dCREd-hqYHBJe17_Q">
+ <value xmi:type="uml:InstanceValue" xmi:id="_xB66kDOFEeCldqx_51Yicg" instance="_xB5scDOFEeCldqx_51Yicg"/>
+ </slot>
+ <slot xmi:type="uml:Slot" xmi:id="_xB8IsDOFEeCldqx_51Yicg" definingFeature="_iP8c4tCREd-hqYHBJe17_Q">
+ <value xmi:type="uml:InstanceValue" xmi:id="_xB8IsTOFEeCldqx_51Yicg" instance="_xB7hoDOFEeCldqx_51Yicg"/>
+ </slot>
+ </packagedElement>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_xB5scDOFEeCldqx_51Yicg" name="mainInstance.con" classifier="_oqZNUDLaEd2qeKRLMdIx_A"/>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_xB7hoDOFEeCldqx_51Yicg" name="mainInstance.prod" classifier="_IfjoETLbEd2qeKRLMdIx_A"/>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_wqyJ4E0tEeG4IqgA7gSE6w" name="allocate to monoNode" client="_xB3QMDOFEeCldqx_51Yicg" supplier="_GQ1ekKwHEeCQX8uv_p0Q4A"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_zwMLcLF4EeC9yscvWqW-eg" name="monoPull">
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_zwQc4bF4EeC9yscvWqW-eg" name="mainInstance" classifier="_bYJagDLiEd2RVeNawwNNzg">
+ <slot xmi:type="uml:Slot" xmi:id="_zwY_wLF4EeC9yscvWqW-eg" definingFeature="_gV1cgDLiEd2RVeNawwNNzg">
+ <value xmi:type="uml:InstanceValue" xmi:id="_zwZm0LF4EeC9yscvWqW-eg" instance="_zwUuUbF4EeC9yscvWqW-eg"/>
+ </slot>
+ <slot xmi:type="uml:Slot" xmi:id="_zwaN4LF4EeC9yscvWqW-eg" definingFeature="_i-I7gDLiEd2RVeNawwNNzg">
+ <value xmi:type="uml:InstanceValue" xmi:id="_zwaN4bF4EeC9yscvWqW-eg" instance="_zwZm0bF4EeC9yscvWqW-eg"/>
+ </slot>
+ <slot xmi:type="uml:Slot" xmi:id="_RgZwMBmXEeOKbZGMG408tQ" definingFeature="_d2B8ABSoEeOUifYpcO0mcw">
+ <value xmi:type="uml:InstanceValue" xmi:id="_Rgl9cBmXEeOKbZGMG408tQ" instance="_RgG1QBmXEeOKbZGMG408tQ"/>
+ </slot>
+ <slot xmi:type="uml:Slot" xmi:id="_RhD3gBmXEeOKbZGMG408tQ" definingFeature="_ei8sYBSoEeOUifYpcO0mcw">
+ <value xmi:type="uml:InstanceValue" xmi:id="_RhPdsBmXEeOKbZGMG408tQ" instance="_RgyKsBmXEeOKbZGMG408tQ"/>
+ </slot>
+ </packagedElement>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_zwUHQLF4EeC9yscvWqW-eg" name="mainInstance.fifoconnector">
+ <classifier xmi:type="uml:Class" href="pathmap://QML_CORE/fifo.uml#_Y1jF8HPpEd6R5tffIPrlPg"/>
+ <slot xmi:type="uml:Slot" xmi:id="_zwUHQbF4EeC9yscvWqW-eg">
+ <definingFeature xmi:type="uml:Property" href="pathmap://QML_CORE/fifo.uml#_XDRnoHUIEd6R5tffIPrlPg"/>
+ <value xmi:type="uml:LiteralInteger" xmi:id="_zwUuULF4EeC9yscvWqW-eg" name="value for m_size" value="30">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </value>
+ </slot>
+ </packagedElement>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_zwUuUbF4EeC9yscvWqW-eg" name="mainInstance.con" classifier="_tyiqsc__Ed-TP80eVS-2Rg"/>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_zwZm0bF4EeC9yscvWqW-eg" name="mainInstance.prod" classifier="_IfjoETLbEd2qeKRLMdIx_A"/>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_vcX2AE0tEeG4IqgA7gSE6w" name="allocate to monoNode" client="_zwQc4bF4EeC9yscvWqW-eg" supplier="_GQ1ekKwHEeCQX8uv_p0Q4A"/>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_RgG1QBmXEeOKbZGMG408tQ" name="mainInstance.main">
+ <classifier xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_SiY_AP-EEd6628OhKk_dpg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_RgyKsBmXEeOKbZGMG408tQ" name="mainInstance.pullConThread">
+ <classifier xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_SiY_AP-EEd6628OhKk_dpg"/>
+ <slot xmi:type="uml:Slot" xmi:id="_XHDoQBqrEeOeNvEu6098mA">
+ <definingFeature xmi:type="uml:Property" href="pathmap://QML_CORE/core.uml#_rVfYoMGJEd-Mveea1W_olA"/>
+ <value xmi:type="uml:LiteralInteger" xmi:id="_XHWjMBqrEeOeNvEu6098mA" name="value for priority" value="5">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </value>
+ </slot>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_lr9WwKwJEeCgusK7cm6qjQ" name="derivedInterfaces">
+ <packagedElement xmi:type="uml:Package" xmi:id="_lr_L8KwJEeCgusK7cm6qjQ" name="ProducerConsumer">
+ <packagedElement xmi:type="uml:Package" xmi:id="_-Kv-IBoaEeONpa5JgejICQ" name="components">
+ <packagedElement xmi:type="uml:Package" xmi:id="_-LBD4BoaEeONpa5JgejICQ" name="interfaces">
+ <packagedElement xmi:type="uml:Interface" xmi:id="_-LSwsBoaEeONpa5JgejICQ" name="D_PullConsumer_PubData">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_-Lyf8BoaEeONpa5JgejICQ" name="pull">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_-MGpABoaEeONpa5JgejICQ" name="ret" type="_wFJ3IP91Ed6Jt8e-UqrRdQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_-Md1YBoaEeONpa5JgejICQ" name="hasData">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_-MqCoBoaEeONpa5JgejICQ" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_Bv7l0B-VEd6nGq8wpI2tjg"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_EdXskBo4EeONpa5JgejICQ" name="D_Push_PubData">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_EeDpEBo4EeONpa5JgejICQ" name="push">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Eeef0Bo4EeONpa5JgejICQ" name="data" type="_wFJ3IP91Ed6Jt8e-UqrRdQ"/>
+ </ownedOperation>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_OF72YGkXEeWAzPO1wYNudw" name="derivedTypes">
+ <packagedElement xmi:type="uml:Package" xmi:id="_OF8dcGkXEeWAzPO1wYNudw" name="ProducerConsumer">
+ <packagedElement xmi:type="uml:Package" xmi:id="_OF9EgGkXEeWAzPO1wYNudw" name="components">
+ <packagedElement xmi:type="uml:Package" xmi:id="_OF9EgWkXEeWAzPO1wYNudw" name="interfaces">
+ <packagedElement xmi:type="uml:Interface" xmi:id="_OGDyMGkXEeWAzPO1wYNudw" name="PullConsumer_PubData">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_OGJ40GkXEeWAzPO1wYNudw" name="pull">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_OGLG8GkXEeWAzPO1wYNudw" name="ret" type="_wFJ3IP91Ed6Jt8e-UqrRdQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_OJF4EGkXEeWAzPO1wYNudw" name="hasData"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_QxsSAGkXEeWAzPO1wYNudw" name="Push_PubData">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Qxv8YGkXEeWAzPO1wYNudw" name="push">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Qxv8YWkXEeWAzPO1wYNudw" name="data" type="_wFJ3IP91Ed6Jt8e-UqrRdQ"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Oue04GzMEeWdOZKmOtT48A" name="CPullConsumer_PubData"/>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_OuhRIGzMEeWdOZKmOtT48A" client="_Oue04GzMEeWdOZKmOtT48A" supplier="_OGDyMGkXEeWAzPO1wYNudw"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_gz0CkGzMEeWdOZKmOtT48A" name="CPush_PubData"/>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_gz3F4GzMEeWdOZKmOtT48A" client="_gz0CkGzMEeWdOZKmOtT48A" supplier="_QxsSAGkXEeWAzPO1wYNudw"/>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_O6TiIjLUEd26WNosUASSSw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_O6TiIzLUEd26WNosUASSSw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_GcC0cAHtEd6HSdiss9GQ0A">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Gd1kMAHtEd6HSdiss9GQ0A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/C_Cpp/1#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_z1TwgFW3Ed63BrxiKsw-0Q">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_z2GasFW3Ed63BrxiKsw-0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/FCM/1#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://FCM_PROFILES/FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_sfyAwEbjEd-l4NeVOJZDkA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_siunEEbjEd-l4NeVOJZDkA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//GCM"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_YgAioAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_popJkKmqEeCxII-g1_Lmeg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_p1PbIKmqEeCxII-g1_Lmeg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//HLAM"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_yNSZIAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_tZuBwE0tEeG4IqgA7gSE6w">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tisXkE0tEeG4IqgA7gSE6w" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_ar8OsAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ </uml:Model>
+ <FCM:DerivedElement xmi:id="_B9o7sP6yEd6Ie_kieu_3CQ" base_Element="_dH4RIKF4Ed6FqJCjEUrkqQ">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:Port xmi:id="_GofhQP6yEd6Ie_kieu_3CQ" base_Port="_4KiE8DLbEd2qeKRLMdIx_A" type="_wFJ3IP91Ed6Jt8e-UqrRdQ">
+ <kind xmi:type="FCM:PortKind" href="pathmap://QML_CORE/core.uml#_pE6GUFR1Ed6GqrP6fkWBoQ"/>
+ </FCM:Port>
+ <FCM:Port xmi:id="_IWQqoP6yEd6Ie_kieu_3CQ" base_Port="_DtWn4DLcEd2qeKRLMdIx_A" type="_wFJ3IP91Ed6Jt8e-UqrRdQ">
+ <kind xmi:type="FCM:PortKind" href="pathmap://QML_CORE/core.uml#_qOK0cFR1Ed6GqrP6fkWBoQ"/>
+ </FCM:Port>
+ <C_Cpp:Include xmi:id="_7SAnAP76Ed6Zw96O-tCw7A" body="#include &lt;unistd.h>&#xA;#include &lt;iostream>&#xA;using namespace std;" base_class="_IfjoETLbEd2qeKRLMdIx_A"/>
+ <C_Cpp:Include xmi:id="_Sa4nEP77Ed6Zw96O-tCw7A" body="#include &lt;iostream>&#xA;using namespace std;" base_class="_oqZNUDLaEd2qeKRLMdIx_A"/>
+ <FCM:DerivedElement xmi:id="_uOqKgD15Ed-qiK1VZWszhA" base_Element="_uOmgID15Ed-qiK1VZWszhA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_uOz7gD15Ed-qiK1VZWszhA" base_Element="_uOtN0D15Ed-qiK1VZWszhA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <C_Cpp:Visibility xmi:id="_0VnhsD15Ed-qiK1VZWszhA" value="public" base_generalization="_NItbAP94Ed6628OhKk_dpg"/>
+ <FCM:DerivedElement xmi:id="_igKiENAAEd-TP80eVS-2Rg" base_Element="_tyjRy8__Ed-TP80eVS-2Rg">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_igVhMNAAEd-TP80eVS-2Rg" base_Element="_tyjRzM__Ed-TP80eVS-2Rg">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <C_Cpp:Include xmi:id="_11OtwPcaEd-KM6l7lmIPkw" body="#include &lt;unistd.h>&#xA;#include &lt;iostream>&#xA;using namespace std;" base_class="_tyiqsc__Ed-TP80eVS-2Rg"/>
+ <FCM:Target xmi:id="_LD_uICr7EeCfcI_SvPT4lw" base_Node="_zY9vMDLiEd2RVeNawwNNzg">
+ <targetArch xmi:type="FCM:TargetArchitecture" href="pathmap://QML_CORE/core.uml#_FYOqwF0OEd-12d_h0i1xhQ"/>
+ <usedOS xmi:type="FCM:OperatingSystem" href="pathmap://QML_CORE/core.uml#_1eULwF0NEd-12d_h0i1xhQ"/>
+ </FCM:Target>
+ <FCM:DeploymentPlan xmi:id="_xB2CEDOFEeCldqx_51Yicg" mainInstance="_xB3QMDOFEeCldqx_51Yicg" base_Package="_xBxwoDOFEeCldqx_51Yicg"/>
+ <GCM:FlowPort xmi:id="_DwpFMJZ7EeCiU5xXzp1cKQ" direction="in" base_Port="_4KiE8DLbEd2qeKRLMdIx_A"/>
+ <GCM:FlowPort xmi:id="_NWXCQJZ7EeCiU5xXzp1cKQ" direction="in" base_Port="_tyiqs8__Ed-TP80eVS-2Rg"/>
+ <FCM:Port xmi:id="_tyjRzc__Ed-TP80eVS-2Rg" base_Port="_tyiqs8__Ed-TP80eVS-2Rg" type="_wFJ3IP91Ed6Jt8e-UqrRdQ">
+ <kind xmi:type="FCM:PortKind" href="pathmap://QML_CORE/core.uml#_x5mL4FRxEd6GqrP6fkWBoQ"/>
+ </FCM:Port>
+ <GCM:FlowPort xmi:id="_ow3PkJZ7EeCiU5xXzp1cKQ" direction="out" base_Port="_DtWn4DLcEd2qeKRLMdIx_A"/>
+ <FCM:DeploymentPlan xmi:id="_zwQc4LF4EeC9yscvWqW-eg" mainInstance="_zwQc4bF4EeC9yscvWqW-eg" base_Package="_zwMLcLF4EeC9yscvWqW-eg"/>
+ <Alloc:Allocate xmi:id="_vccHcE0tEeG4IqgA7gSE6w" base_Abstraction="_vcX2AE0tEeG4IqgA7gSE6w"/>
+ <Alloc:Allocate xmi:id="_wq1NME0tEeG4IqgA7gSE6w" base_Abstraction="_wqyJ4E0tEeG4IqgA7gSE6w"/>
+ <FCM:Connector xmi:id="_iADdkE2rEeGl8qrc8BM7vA" base_Connector="_efVI0E2rEeGl8qrc8BM7vA">
+ <ic xmi:type="FCM:InteractionComponent" href="pathmap://QML_CORE/fifo.uml#_xQ_ccHUuEd6R5tffIPrlPg"/>
+ </FCM:Connector>
+ <Alloc:Allocate xmi:id="_9fYdcBSqEeOUifYpcO0mcw" base_Abstraction="_9dY5YBSqEeOUifYpcO0mcw"/>
+ <Alloc:Allocate xmi:id="__ACX4BSqEeOUifYpcO0mcw" base_Abstraction="_--_2EBSqEeOUifYpcO0mcw"/>
+ <FCM:DerivedElement xmi:id="_-LmSsBoaEeONpa5JgejICQ" base_Element="_-LSwsBoaEeONpa5JgejICQ" source="_wFJ3IP91Ed6Jt8e-UqrRdQ"/>
+ <FCM:DerivedElement xmi:id="_EdzKYBo4EeONpa5JgejICQ" base_Element="_EdXskBo4EeONpa5JgejICQ" source="_wFJ3IP91Ed6Jt8e-UqrRdQ"/>
+ <FCM:DerivedElement xmi:id="_Ffh9YCxxEeOMQpc6Y-MAJw" base_Element="_FemwUCxxEeOMQpc6Y-MAJw">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_ns4qsClUEeO4bs_nkcnKOg"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_FKGqgCxyEeOMQpc6Y-MAJw" base_Element="_FJPu4CxyEeOMQpc6Y-MAJw">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_ns4qsClUEeO4bs_nkcnKOg"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_OGIDoGkXEeWAzPO1wYNudw" base_Element="_OGDyMGkXEeWAzPO1wYNudw" source="_wFJ3IP91Ed6Jt8e-UqrRdQ"/>
+ <FCM:DerivedElement xmi:id="_QxvVUGkXEeWAzPO1wYNudw" base_Element="_QxsSAGkXEeWAzPO1wYNudw" source="_wFJ3IP91Ed6Jt8e-UqrRdQ"/>
+ <FCM:DerivedElement xmi:id="_FM704GzGEeWdOZKmOtT48A" base_Element="_FMzSAGzGEeWdOZKmOtT48A" source="_Qxv8YGkXEeWAzPO1wYNudw"/>
+ <FCM:DerivedElement xmi:id="_OugqEGzMEeWdOZKmOtT48A" base_Element="_Oue04GzMEeWdOZKmOtT48A" source="_wFJ3IP91Ed6Jt8e-UqrRdQ"/>
+ <FCM:DerivedElement xmi:id="_gz2e0GzMEeWdOZKmOtT48A" base_Element="_gz0CkGzMEeWdOZKmOtT48A" source="_wFJ3IP91Ed6Jt8e-UqrRdQ"/>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/ProducerTwoConsumers.di b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/ProducerTwoConsumers.di
new file mode 100644
index 00000000000..17cff76e5d5
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/ProducerTwoConsumers.di
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi" xmi:id="_M_WAwPcXEd-KM6l7lmIPkw">
+ <pageList xmi:id="_M_WAwfcXEd-KM6l7lmIPkw">
+ <availablePage xmi:id="_M_WAwvcXEd-KM6l7lmIPkw">
+ <emfPageIdentifier href="ProducerTwoConsumers.notation#_UstOsM__Ed-TP80eVS-2Rg"/>
+ </availablePage>
+ <availablePage xmi:id="_M_WAxPcXEd-KM6l7lmIPkw">
+ <emfPageIdentifier href="ProducerTwoConsumers.notation#_7kc7YM__Ed-TP80eVS-2Rg"/>
+ </availablePage>
+ <availablePage xmi:id="_M_WAxfcXEd-KM6l7lmIPkw">
+ <emfPageIdentifier href="ProducerTwoConsumers.notation#_o6ZisNCREd-hqYHBJe17_Q"/>
+ </availablePage>
+ <availablePage xmi:id="_U1docPcXEd-KM6l7lmIPkw">
+ <emfPageIdentifier href="ProducerTwoConsumers.notation#_U1UegPcXEd-KM6l7lmIPkw"/>
+ </availablePage>
+ <availablePage xmi:id="_V5fVYP8nEd-hWJO6cv3VJA">
+ <emfPageIdentifier href="ProducerTwoConsumers.notation#_V5euUP8nEd-hWJO6cv3VJA"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="ProducerTwoConsumers.notation#_0rwpYDefEeGPyrZ5I3hMlA"/>
+ </availablePage>
+ </pageList>
+ <sashModel xmi:id="_M_WAxvcXEd-KM6l7lmIPkw" currentSelection="_M_WAyPcXEd-KM6l7lmIPkw">
+ <windows xmi:id="_M_WAx_cXEd-KM6l7lmIPkw">
+ <children xsi:type="di:TabFolder" xmi:id="_M_WAyPcXEd-KM6l7lmIPkw">
+ <children xmi:id="_V5fVYf8nEd-hWJO6cv3VJA">
+ <emfPageIdentifier href="ProducerTwoConsumers.notation#_V5euUP8nEd-hWJO6cv3VJA"/>
+ </children>
+ <children xmi:id="_M_WAyfcXEd-KM6l7lmIPkw">
+ <emfPageIdentifier href="ProducerTwoConsumers.notation#_UstOsM__Ed-TP80eVS-2Rg"/>
+ </children>
+ <children xmi:id="_M_WAy_cXEd-KM6l7lmIPkw">
+ <emfPageIdentifier href="ProducerTwoConsumers.notation#_7kc7YM__Ed-TP80eVS-2Rg"/>
+ </children>
+ <children xmi:id="_M_WAzPcXEd-KM6l7lmIPkw">
+ <emfPageIdentifier href="ProducerTwoConsumers.notation#_o6ZisNCREd-hqYHBJe17_Q"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="ProducerTwoConsumers.notation#_U1UegPcXEd-KM6l7lmIPkw"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="ProducerTwoConsumers.notation#_0rwpYDefEeGPyrZ5I3hMlA"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+</di:SashWindowsMngr>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/ProducerTwoConsumers.notation b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/ProducerTwoConsumers.notation
new file mode 100644
index 00000000000..6e4bd7a2591
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/ProducerTwoConsumers.notation
@@ -0,0 +1,1655 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_UstOsM__Ed-TP80eVS-2Rg" type="CompositeStructure" name="PushConsumer" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_VT2HMM__Ed-TP80eVS-2Rg" type="2073" fontName="" fontHeight="10" fillColor="8905185" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VT2HMs__Ed-TP80eVS-2Rg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VT2uQM__Ed-TP80eVS-2Rg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VT2uQc__Ed-TP80eVS-2Rg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VT2uQs__Ed-TP80eVS-2Rg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VT2uQ8__Ed-TP80eVS-2Rg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VT2uRM__Ed-TP80eVS-2Rg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VT2uRc__Ed-TP80eVS-2Rg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VT2uRs__Ed-TP80eVS-2Rg" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VT2uR8__Ed-TP80eVS-2Rg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XgvckM__Ed-TP80eVS-2Rg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XgwDoM__Ed-TP80eVS-2Rg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XgwDoc__Ed-TP80eVS-2Rg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XgwDos__Ed-TP80eVS-2Rg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XgwDo8__Ed-TP80eVS-2Rg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XgwqsM__Ed-TP80eVS-2Rg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Xgwqsc__Ed-TP80eVS-2Rg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Xgwqss__Ed-TP80eVS-2Rg" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Xgwqs8__Ed-TP80eVS-2Rg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XgwqtM__Ed-TP80eVS-2Rg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Xgwqtc__Ed-TP80eVS-2Rg" x="-116" y="-20"/>
+ </children>
+ <element xmi:type="uml:Port" href="ProducerTwoConsumers.uml#_4KiE8DLbEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Xgvckc__Ed-TP80eVS-2Rg" x="-10" y="38"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_V24qMGkXEeWAzPO1wYNudw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_V24qMWkXEeWAzPO1wYNudw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="ProducerTwoConsumers.uml#_oqZNUDLaEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VT2HMc__Ed-TP80eVS-2Rg" x="144" y="36" width="190" height="87"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XfxXsDecEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Xgz5gDecEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Xgz5gTecEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Xgz5gjecEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Xgz5gzecEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Xgz5hDecEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Xgz5hTecEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Xgz5hjecEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ProducerTwoConsumers.uml#_XfnmsDecEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XfxXsTecEeGPyrZ5I3hMlA" x="144" y="153" width="226"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gpzeUDecEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gp0FYDecEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gp0FYTecEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gp0FYjecEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gp0FYzecEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gp0FZDecEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gp0FZTecEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gp0FZjecEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ProducerTwoConsumers.uml#_gpptUDecEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gpzeUTecEeGPyrZ5I3hMlA" x="69" y="235" width="418"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_V4ho8GkXEeWAzPO1wYNudw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_V4ho8WkXEeWAzPO1wYNudw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_V4ho82kXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="ProducerTwoConsumers.uml#_oqZNUDLaEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V4ho8mkXEeWAzPO1wYNudw" x="344" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_V42ZEmkXEeWAzPO1wYNudw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_V42ZE2kXEeWAzPO1wYNudw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_V42ZFWkXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ProducerTwoConsumers.uml#_4KiE8DLbEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V42ZFGkXEeWAzPO1wYNudw" x="190" y="38"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_UstOsc__Ed-TP80eVS-2Rg"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_V24qMmkXEeWAzPO1wYNudw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="ProducerTwoConsumers.uml#_OGM88DLaEd2qeKRLMdIx_A"/>
+ <edges xmi:type="notation:Connector" xmi:id="_fsWXkDecEeGPyrZ5I3hMlA" type="4002" source="_XfxXsDecEeGPyrZ5I3hMlA" target="_VT2HMM__Ed-TP80eVS-2Rg" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_fsWXkTecEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_fsWXkjecEeGPyrZ5I3hMlA" points="[-1, -3, 19, 74]$[4, -33, 24, 44]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fsndUDecEeGPyrZ5I3hMlA" id="(0.3893805309734513,0.05)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_l-KT4DecEeGPyrZ5I3hMlA" type="4002" source="_gpzeUDecEeGPyrZ5I3hMlA" target="_XgvckM__Ed-TP80eVS-2Rg" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_l-KT4TecEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_l-KT4jecEeGPyrZ5I3hMlA" points="[0, -4, -19, 154]$[16, -160, -3, -2]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_l-cAsDecEeGPyrZ5I3hMlA" id="(0.14832535885167464,0.03333333333333333)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_l-cAsTecEeGPyrZ5I3hMlA" id="(0.15,0.35)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_V4ho9GkXEeWAzPO1wYNudw" type="StereotypeCommentLink" source="_VT2HMM__Ed-TP80eVS-2Rg" target="_V4ho8GkXEeWAzPO1wYNudw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_V4ho9WkXEeWAzPO1wYNudw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_V4ho-WkXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="ProducerTwoConsumers.uml#_oqZNUDLaEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_V4ho9mkXEeWAzPO1wYNudw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_V4ho92kXEeWAzPO1wYNudw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_V4ho-GkXEeWAzPO1wYNudw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_V42ZFmkXEeWAzPO1wYNudw" type="StereotypeCommentLink" source="_XgvckM__Ed-TP80eVS-2Rg" target="_V42ZEmkXEeWAzPO1wYNudw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_V42ZF2kXEeWAzPO1wYNudw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_V42ZG2kXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ProducerTwoConsumers.uml#_4KiE8DLbEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_V42ZGGkXEeWAzPO1wYNudw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_V42ZGWkXEeWAzPO1wYNudw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_V42ZGmkXEeWAzPO1wYNudw"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_7kc7YM__Ed-TP80eVS-2Rg" type="CompositeStructure" name="PullConsumer" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_8LSR4M__Ed-TP80eVS-2Rg" type="2073" fontName="" fontHeight="10" fillColor="8905185" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8LSR4s__Ed-TP80eVS-2Rg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8LSR48__Ed-TP80eVS-2Rg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8LS48M__Ed-TP80eVS-2Rg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8LS48c__Ed-TP80eVS-2Rg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8LS48s__Ed-TP80eVS-2Rg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8LS488__Ed-TP80eVS-2Rg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8LS49M__Ed-TP80eVS-2Rg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8LS49c__Ed-TP80eVS-2Rg" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8LS49s__Ed-TP80eVS-2Rg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ytK8IP8nEd-hWJO6cv3VJA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ytLjMP8nEd-hWJO6cv3VJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ytLjMf8nEd-hWJO6cv3VJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ytLjMv8nEd-hWJO6cv3VJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ytLjM_8nEd-hWJO6cv3VJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ytMKQP8nEd-hWJO6cv3VJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ytMKQf8nEd-hWJO6cv3VJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ytMKQv8nEd-hWJO6cv3VJA" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ytMKQ_8nEd-hWJO6cv3VJA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ytMKRP8nEd-hWJO6cv3VJA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ytMKRf8nEd-hWJO6cv3VJA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ytK8If8nEd-hWJO6cv3VJA" x="-10" y="72"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_t6X3UJaMEeCbgbUO5qahhA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t6ZFcJaMEeCbgbUO5qahhA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t6ZFcZaMEeCbgbUO5qahhA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t6ZsgJaMEeCbgbUO5qahhA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t6ZsgZaMEeCbgbUO5qahhA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t6ZsgpaMEeCbgbUO5qahhA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t6Zsg5aMEeCbgbUO5qahhA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_t6ZshJaMEeCbgbUO5qahhA" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_t6ZshZaMEeCbgbUO5qahhA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_t6aTkJaMEeCbgbUO5qahhA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_t6aTkZaMEeCbgbUO5qahhA" x="-116"/>
+ </children>
+ <element xmi:type="uml:Port" href="ProducerTwoConsumers.uml#_tyiqs8__Ed-TP80eVS-2Rg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t6X3UZaMEeCbgbUO5qahhA" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_V5JUAGkXEeWAzPO1wYNudw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_V5JUAWkXEeWAzPO1wYNudw" y="5"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_V7-lkGkXEeWAzPO1wYNudw" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_V7-lkWkXEeWAzPO1wYNudw" name="stereotype" stringValue="C_Cpp::Include"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_RwTdQByJEduN1bTiWJ0lyw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V7-lkmkXEeWAzPO1wYNudw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_V8HvhGkXEeWAzPO1wYNudw" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_V8HvhWkXEeWAzPO1wYNudw" name="stereotype" stringValue="FCM::RuleApplication"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_te7YAMtkEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V8HvhmkXEeWAzPO1wYNudw"/>
+ </children>
+ <element xmi:type="uml:Class" href="ProducerTwoConsumers.uml#_tyiqsc__Ed-TP80eVS-2Rg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8LSR4c__Ed-TP80eVS-2Rg" x="180" y="90" width="254" height="109"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uHcuMP8nEd-hWJO6cv3VJA" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uHdVQP8nEd-hWJO6cv3VJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uHdVQf8nEd-hWJO6cv3VJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uHdVQv8nEd-hWJO6cv3VJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uHdVQ_8nEd-hWJO6cv3VJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uHdVRP8nEd-hWJO6cv3VJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uHdVRf8nEd-hWJO6cv3VJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uHdVRv8nEd-hWJO6cv3VJA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_uHdVR_8nEd-hWJO6cv3VJA" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uHd8UP8nEd-hWJO6cv3VJA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_xVmsQP8nEd-hWJO6cv3VJA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xVnTUP8nEd-hWJO6cv3VJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xVnTUf8nEd-hWJO6cv3VJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xVnTUv8nEd-hWJO6cv3VJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xVnTU_8nEd-hWJO6cv3VJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xVnTVP8nEd-hWJO6cv3VJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xVn6YP8nEd-hWJO6cv3VJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xVn6Yf8nEd-hWJO6cv3VJA" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xVn6Yv8nEd-hWJO6cv3VJA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xVn6Y_8nEd-hWJO6cv3VJA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xVn6ZP8nEd-hWJO6cv3VJA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xVmsQf8nEd-hWJO6cv3VJA" x="-10" y="29"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_V5JUAmkXEeWAzPO1wYNudw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_V5JUA2kXEeWAzPO1wYNudw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uHcuMf8nEd-hWJO6cv3VJA" x="180" y="-36" width="253" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-HlK8DecEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-HlyADecEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-HlyATecEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-HlyAjecEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-HlyAzecEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-HlyBDecEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-HlyBTecEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-HlyBjecEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ProducerTwoConsumers.uml#_-Hd2MDecEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-HlK8TecEeGPyrZ5I3hMlA" x="489" y="90" width="295"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0EFQQDedEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0EF3UDedEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0EF3UTedEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0EF3UjedEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0EF3UzedEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0EF3VDedEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0EF3VTedEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0EF3VjedEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ProducerTwoConsumers.uml#_0D64MDedEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0EFQQTedEeGPyrZ5I3hMlA" x="489" y="-24" width="295"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_V8SHkGkXEeWAzPO1wYNudw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_V8SHkWkXEeWAzPO1wYNudw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_V8SHk2kXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="ProducerTwoConsumers.uml#_tyiqsc__Ed-TP80eVS-2Rg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V8SHkmkXEeWAzPO1wYNudw" x="380" y="90"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_V9oycGkXEeWAzPO1wYNudw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_V9oycWkXEeWAzPO1wYNudw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_V9oyc2kXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V9oycmkXEeWAzPO1wYNudw" x="190" y="72"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_V-H6oGkXEeWAzPO1wYNudw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_V-H6oWkXEeWAzPO1wYNudw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_V-H6o2kXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ProducerTwoConsumers.uml#_tyiqs8__Ed-TP80eVS-2Rg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V-H6omkXEeWAzPO1wYNudw" x="190" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_V-gVIGkXEeWAzPO1wYNudw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_V-gVIWkXEeWAzPO1wYNudw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_V-gVI2kXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V-gVImkXEeWAzPO1wYNudw" x="190" y="29"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_7kc7Yc__Ed-TP80eVS-2Rg"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_V5JUBGkXEeWAzPO1wYNudw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="ProducerTwoConsumers.uml#_tyiqsM__Ed-TP80eVS-2Rg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_uHz6kP8nEd-hWJO6cv3VJA" type="4015" source="_8LSR4M__Ed-TP80eVS-2Rg" target="_uHcuMP8nEd-hWJO6cv3VJA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_uH0hoP8nEd-hWJO6cv3VJA" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uH0hof8nEd-hWJO6cv3VJA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_uHz6kf8nEd-hWJO6cv3VJA" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="ProducerTwoConsumers.uml#_tyiqss__Ed-TP80eVS-2Rg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_uHz6kv8nEd-hWJO6cv3VJA" points="[-103, -45, 204, 90]$[-307, -135, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_FOfGwDeeEeGPyrZ5I3hMlA" type="4002" source="_0EFQQDedEeGPyrZ5I3hMlA" target="_uHcuMP8nEd-hWJO6cv3VJA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FOfGwTeeEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FOfGwjeeEeGPyrZ5I3hMlA" points="[-6, -3, 83, 0]$[-62, -3, 27, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FOwMgDeeEeGPyrZ5I3hMlA" id="(0.020338983050847456,0.4027777777777778)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FOwMgTeeEeGPyrZ5I3hMlA" id="(0.8932806324110671,0.5205479452054794)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_F4Ju0DeeEeGPyrZ5I3hMlA" type="4002" source="_-HlK8DecEeGPyrZ5I3hMlA" target="_8LSR4M__Ed-TP80eVS-2Rg" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_F4Ju0TeeEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_F4Ju0jeeEeGPyrZ5I3hMlA" points="[-25, 3, 78, 0]$[-80, -2, 23, -5]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_F4a0kDeeEeGPyrZ5I3hMlA" id="(0.0847457627118644,0.25)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_F4a0kTeeEeGPyrZ5I3hMlA" id="(0.9094488188976378,0.3302752293577982)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_V8SHlGkXEeWAzPO1wYNudw" type="StereotypeCommentLink" source="_8LSR4M__Ed-TP80eVS-2Rg" target="_V8SHkGkXEeWAzPO1wYNudw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_V8SHlWkXEeWAzPO1wYNudw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_V8SHmWkXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="ProducerTwoConsumers.uml#_tyiqsc__Ed-TP80eVS-2Rg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_V8SHlmkXEeWAzPO1wYNudw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_V8SHl2kXEeWAzPO1wYNudw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_V8SHmGkXEeWAzPO1wYNudw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_V9oydGkXEeWAzPO1wYNudw" type="StereotypeCommentLink" source="_ytK8IP8nEd-hWJO6cv3VJA" target="_V9oycGkXEeWAzPO1wYNudw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_V9oydWkXEeWAzPO1wYNudw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_V9pZgWkXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_V9oydmkXEeWAzPO1wYNudw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_V9oyd2kXEeWAzPO1wYNudw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_V9pZgGkXEeWAzPO1wYNudw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_V-H6pGkXEeWAzPO1wYNudw" type="StereotypeCommentLink" source="_t6X3UJaMEeCbgbUO5qahhA" target="_V-H6oGkXEeWAzPO1wYNudw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_V-H6pWkXEeWAzPO1wYNudw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_V-H6qWkXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ProducerTwoConsumers.uml#_tyiqs8__Ed-TP80eVS-2Rg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_V-H6pmkXEeWAzPO1wYNudw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_V-H6p2kXEeWAzPO1wYNudw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_V-H6qGkXEeWAzPO1wYNudw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_V-gVJGkXEeWAzPO1wYNudw" type="StereotypeCommentLink" source="_xVmsQP8nEd-hWJO6cv3VJA" target="_V-gVIGkXEeWAzPO1wYNudw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_V-gVJWkXEeWAzPO1wYNudw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_V-gVKWkXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_V-gVJmkXEeWAzPO1wYNudw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_V-gVJ2kXEeWAzPO1wYNudw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_V-gVKGkXEeWAzPO1wYNudw"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_o6ZisNCREd-hqYHBJe17_Q" type="CompositeStructure" name="System" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_VSa6YNHtEd-A1oPfP47IaQ" type="2073" fontName="" fontHeight="10" fillColor="8905185" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VScIgNHtEd-A1oPfP47IaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VScvkNHtEd-A1oPfP47IaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VScvkdHtEd-A1oPfP47IaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VScvktHtEd-A1oPfP47IaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VScvk9HtEd-A1oPfP47IaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VScvlNHtEd-A1oPfP47IaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VScvldHtEd-A1oPfP47IaQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VScvltHtEd-A1oPfP47IaQ" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_XsS70NHtEd-A1oPfP47IaQ" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XsTi4NHtEd-A1oPfP47IaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XsTi4dHtEd-A1oPfP47IaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XsTi4tHtEd-A1oPfP47IaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XsTi49HtEd-A1oPfP47IaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XsTi5NHtEd-A1oPfP47IaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XsTi5dHtEd-A1oPfP47IaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XsTi5tHtEd-A1oPfP47IaQ" type="5126"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_XsTi59HtEd-A1oPfP47IaQ" type="7077">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XsUJ8NHtEd-A1oPfP47IaQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0XlXwDF1EeCpQdhNuFCtew" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0XnM8DF1EeCpQdhNuFCtew" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0XnM8TF1EeCpQdhNuFCtew" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0XnM8jF1EeCpQdhNuFCtew" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0XnM8zF1EeCpQdhNuFCtew" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0XnM9DF1EeCpQdhNuFCtew" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0XnM9TF1EeCpQdhNuFCtew" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0Xn0ADF1EeCpQdhNuFCtew" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0Xn0ATF1EeCpQdhNuFCtew" x="31" y="-1"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0Xn0AjF1EeCpQdhNuFCtew" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0Xn0AzF1EeCpQdhNuFCtew" x="25" y="-10"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WDwokGkXEeWAzPO1wYNudw" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_WDwokWkXEeWAzPO1wYNudw" name="stereotype" stringValue="FCM::Port"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_pP-ckMtqEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WDwokmkXEeWAzPO1wYNudw"/>
+ </children>
+ <element xmi:type="uml:Port" href="ProducerTwoConsumers.uml#_tyiqs8__Ed-TP80eVS-2Rg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0XlXwTF1EeCpQdhNuFCtew" x="-10" y="50"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_V-xa4mkXEeWAzPO1wYNudw" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_V-xa42kXEeWAzPO1wYNudw" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="ProducerTwoConsumers.uml#_gV1cgDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XsS70dHtEd-A1oPfP47IaQ" x="388" y="18" width="202" height="75"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_YNar4NHtEd-A1oPfP47IaQ" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YNbS8NHtEd-A1oPfP47IaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YNbS8dHtEd-A1oPfP47IaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YNbS8tHtEd-A1oPfP47IaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YNbS89HtEd-A1oPfP47IaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YNbS9NHtEd-A1oPfP47IaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YNbS9dHtEd-A1oPfP47IaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YNbS9tHtEd-A1oPfP47IaQ" type="5126"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_YNbS99HtEd-A1oPfP47IaQ" type="7077">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNbS-NHtEd-A1oPfP47IaQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_zmq8ANHtEd-A1oPfP47IaQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zmsKINHtEd-A1oPfP47IaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zmsKIdHtEd-A1oPfP47IaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zmsKItHtEd-A1oPfP47IaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zmsKI9HtEd-A1oPfP47IaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zmsKJNHtEd-A1oPfP47IaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zmsKJdHtEd-A1oPfP47IaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zmsKJtHtEd-A1oPfP47IaQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jHcyYF7hEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jHiR8F7hEeGEmrrwB1vhPg" key="CustomAppearance_MaskValue" value="60"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zmsxMNHtEd-A1oPfP47IaQ" x="-81" y="16"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zmsxMdHtEd-A1oPfP47IaQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zmsxMtHtEd-A1oPfP47IaQ" x="25" y="-10"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WELfUGkXEeWAzPO1wYNudw" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_WELfUWkXEeWAzPO1wYNudw" name="stereotype" stringValue="FCM::Port"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_pP-ckMtqEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WELfUmkXEeWAzPO1wYNudw"/>
+ </children>
+ <element xmi:type="uml:Port" href="ProducerTwoConsumers.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zmq8AdHtEd-A1oPfP47IaQ" x="90" y="66"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_V-xa5GkXEeWAzPO1wYNudw" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_V-xa5WkXEeWAzPO1wYNudw" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="ProducerTwoConsumers.uml#_i-I7gDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNar4dHtEd-A1oPfP47IaQ" x="22" y="11" width="163" height="76"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_JusbQDbdEeGdqp2YT1LwWw" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JutCUDbdEeGdqp2YT1LwWw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JutCUTbdEeGdqp2YT1LwWw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JutCUjbdEeGdqp2YT1LwWw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JutCUzbdEeGdqp2YT1LwWw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JutCVDbdEeGdqp2YT1LwWw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JutCVTbdEeGdqp2YT1LwWw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JutCVjbdEeGdqp2YT1LwWw" type="5192"/>
+ <element xmi:type="uml:Comment" href="ProducerTwoConsumers.uml#_JuaHYDbdEeGdqp2YT1LwWw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JusbQTbdEeGdqp2YT1LwWw" x="364" y="236" width="199" height="44"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-uXn8FuoEeGjjMeADLT5-g" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-uYPAFuoEeGjjMeADLT5-g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-uYPAVuoEeGjjMeADLT5-g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-uYPAluoEeGjjMeADLT5-g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-uYPA1uoEeGjjMeADLT5-g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-uYPBFuoEeGjjMeADLT5-g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-uYPBVuoEeGjjMeADLT5-g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-uYPBluoEeGjjMeADLT5-g" type="5126"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-uYPB1uoEeGjjMeADLT5-g" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-uYPCFuoEeGjjMeADLT5-g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-uYPCVuoEeGjjMeADLT5-g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__e67IFuoEeGjjMeADLT5-g" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__e7iMFuoEeGjjMeADLT5-g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__e7iMVuoEeGjjMeADLT5-g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__e7iMluoEeGjjMeADLT5-g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__e7iM1uoEeGjjMeADLT5-g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__e7iNFuoEeGjjMeADLT5-g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__e7iNVuoEeGjjMeADLT5-g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="__e8JQFuoEeGjjMeADLT5-g" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__e8JQVuoEeGjjMeADLT5-g" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="__e8JQluoEeGjjMeADLT5-g" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__e8JQ1uoEeGjjMeADLT5-g" x="25" y="-10"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WE20xGkXEeWAzPO1wYNudw" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_WE20xWkXEeWAzPO1wYNudw" name="stereotype" stringValue="FCM::Port"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_pP-ckMtqEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WE20xmkXEeWAzPO1wYNudw"/>
+ </children>
+ <element xmi:type="uml:Port" href="ProducerTwoConsumers.uml#_tyiqs8__Ed-TP80eVS-2Rg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__e67IVuoEeGjjMeADLT5-g" x="-10" y="29"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_V-xa5mkXEeWAzPO1wYNudw" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_V-xa52kXEeWAzPO1wYNudw" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="ProducerTwoConsumers.uml#_-uMo0FuoEeGjjMeADLT5-g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-uXn8VuoEeGjjMeADLT5-g" x="391" y="137" width="199" height="82"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ENAa4FupEeGjjMeADLT5-g" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ENBB8FupEeGjjMeADLT5-g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ENBB8VupEeGjjMeADLT5-g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ENBB8lupEeGjjMeADLT5-g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ENBB81upEeGjjMeADLT5-g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ENBB9FupEeGjjMeADLT5-g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ENBB9VupEeGjjMeADLT5-g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ENBB9lupEeGjjMeADLT5-g" type="5126"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ENBpAFupEeGjjMeADLT5-g" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ENBpAVupEeGjjMeADLT5-g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ENBpAlupEeGjjMeADLT5-g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_N1-gQFupEeGjjMeADLT5-g" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_N1_HUFupEeGjjMeADLT5-g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_N1_HUVupEeGjjMeADLT5-g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_N1_HUlupEeGjjMeADLT5-g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_N1_HU1upEeGjjMeADLT5-g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_N1_HVFupEeGjjMeADLT5-g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_N1_uYFupEeGjjMeADLT5-g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_N1_uYVupEeGjjMeADLT5-g" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_493zgFupEeGjjMeADLT5-g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5PrVMFupEeGjjMeADLT5-g" key="CustomAppearance_MaskValue" value="44"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_N1_uYlupEeGjjMeADLT5-g" x="25" y="1"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_N1_uY1upEeGjjMeADLT5-g" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_N1_uZFupEeGjjMeADLT5-g" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/fifo.uml#_xHb7MHLmEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_N1-gQVupEeGjjMeADLT5-g" x="-10" y="45"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_N2AVcFupEeGjjMeADLT5-g" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_N2AVclupEeGjjMeADLT5-g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_N2AVc1upEeGjjMeADLT5-g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_N2AVdFupEeGjjMeADLT5-g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_N2AVdVupEeGjjMeADLT5-g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_N2A8gFupEeGjjMeADLT5-g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_N2A8gVupEeGjjMeADLT5-g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_N2A8glupEeGjjMeADLT5-g" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5y6lIFupEeGjjMeADLT5-g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_57RP4FupEeGjjMeADLT5-g" key="CustomAppearance_MaskValue" value="44"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_N2A8g1upEeGjjMeADLT5-g" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_N2A8hFupEeGjjMeADLT5-g" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_N2A8hVupEeGjjMeADLT5-g" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/fifo.uml#_xcu1wHLmEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_N2AVcVupEeGjjMeADLT5-g" x="127" y="45"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_V-xa6GkXEeWAzPO1wYNudw" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_V-xa6WkXEeWAzPO1wYNudw" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="ProducerTwoConsumers.uml#_EM2p4FupEeGjjMeADLT5-g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ENAa4VupEeGjjMeADLT5-g" x="211" y="74" width="137" height="72"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_s7WAUFuqEeGjjMeADLT5-g" type="3097" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s7a40FuqEeGjjMeADLT5-g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_s7a40VuqEeGjjMeADLT5-g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s7bf4FuqEeGjjMeADLT5-g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_s7bf4VuqEeGjjMeADLT5-g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s7bf4luqEeGjjMeADLT5-g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_s7bf41uqEeGjjMeADLT5-g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_s7bf5FuqEeGjjMeADLT5-g" type="5150"/>
+ <element xmi:type="uml:Comment" href="ProducerTwoConsumers.uml#_s6SQYFuqEeGjjMeADLT5-g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_s7WAUVuqEeGjjMeADLT5-g" x="94" y="193" width="199"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WD8OwGkXEeWAzPO1wYNudw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WD8OwWkXEeWAzPO1wYNudw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WD8Ow2kXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ProducerTwoConsumers.uml#_tyiqs8__Ed-TP80eVS-2Rg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WD8OwmkXEeWAzPO1wYNudw" x="190" y="50"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WEfBVGkXEeWAzPO1wYNudw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WEfBVWkXEeWAzPO1wYNudw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WEfBV2kXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ProducerTwoConsumers.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WEfBVmkXEeWAzPO1wYNudw" x="290" y="66"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WE_XomkXEeWAzPO1wYNudw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WE_Xo2kXEeWAzPO1wYNudw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WE_XpWkXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ProducerTwoConsumers.uml#_tyiqs8__Ed-TP80eVS-2Rg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WE_XpGkXEeWAzPO1wYNudw" x="190" y="29"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WFUu0GkXEeWAzPO1wYNudw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WFUu0WkXEeWAzPO1wYNudw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WFUu02kXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Property" href="ProducerTwoConsumers.uml#_EM2p4FupEeGjjMeADLT5-g"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WFUu0mkXEeWAzPO1wYNudw" x="411" y="74"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WFmboGkXEeWAzPO1wYNudw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WFmboWkXEeWAzPO1wYNudw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WFmbo2kXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/fifo.uml#_xHb7MHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WFmbomkXEeWAzPO1wYNudw" x="190" y="45"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WF4IdGkXEeWAzPO1wYNudw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WF4IdWkXEeWAzPO1wYNudw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WF4Id2kXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/fifo.uml#_xcu1wHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WF4IdmkXEeWAzPO1wYNudw" x="327" y="45"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VScvl9HtEd-A1oPfP47IaQ"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_V-xa4GkXEeWAzPO1wYNudw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_V-xa4WkXEeWAzPO1wYNudw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="ProducerTwoConsumers.uml#_bYJagDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VSa6YdHtEd-A1oPfP47IaQ" x="63" y="26" width="631" height="325"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WGvTQNHtEd-A1oPfP47IaQ" type="2073" fontName="" fontHeight="10" fillColor="8047085" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WGv6UNHtEd-A1oPfP47IaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WGv6UdHtEd-A1oPfP47IaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WGv6UtHtEd-A1oPfP47IaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WGv6U9HtEd-A1oPfP47IaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WGwhYNHtEd-A1oPfP47IaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WGwhYdHtEd-A1oPfP47IaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WGwhYtHtEd-A1oPfP47IaQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_WGwhY9HtEd-A1oPfP47IaQ" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_ZT6Z4NHtEd-A1oPfP47IaQ" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZT7A8NHtEd-A1oPfP47IaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZT7A8dHtEd-A1oPfP47IaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZT7A8tHtEd-A1oPfP47IaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZT7A89HtEd-A1oPfP47IaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZT7A9NHtEd-A1oPfP47IaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZT7oANHtEd-A1oPfP47IaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZT7oAdHtEd-A1oPfP47IaQ" type="5126"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ZT7oAtHtEd-A1oPfP47IaQ" type="7077">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZT7oA9HtEd-A1oPfP47IaQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_v8PRoNHtEd-A1oPfP47IaQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v8P4sNHtEd-A1oPfP47IaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_v8P4sdHtEd-A1oPfP47IaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v8P4stHtEd-A1oPfP47IaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_v8P4s9HtEd-A1oPfP47IaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v8P4tNHtEd-A1oPfP47IaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_v8P4tdHtEd-A1oPfP47IaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_v8QfwNHtEd-A1oPfP47IaQ" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_v8QfwdHtEd-A1oPfP47IaQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_v8QfwtHtEd-A1oPfP47IaQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_v8Qfw9HtEd-A1oPfP47IaQ" x="25" y="-10"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WGHZAGkXEeWAzPO1wYNudw" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_WGHZAWkXEeWAzPO1wYNudw" name="stereotype" stringValue="FCM::Port"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_pP-ckMtqEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WGHZAmkXEeWAzPO1wYNudw"/>
+ </children>
+ <element xmi:type="uml:Port" href="ProducerTwoConsumers.uml#_4KiE8DLbEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_v8PRodHtEd-A1oPfP47IaQ" x="-10" y="33"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_V-xa7GkXEeWAzPO1wYNudw" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_V-xa7WkXEeWAzPO1wYNudw" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="ProducerTwoConsumers.uml#_iP8c4dCREd-hqYHBJe17_Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZT6Z4dHtEd-A1oPfP47IaQ" x="387" y="20" width="203" height="72"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZtFu4NHtEd-A1oPfP47IaQ" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZtGV8NHtEd-A1oPfP47IaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZtGV8dHtEd-A1oPfP47IaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZtGV8tHtEd-A1oPfP47IaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZtG9ANHtEd-A1oPfP47IaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZtG9AdHtEd-A1oPfP47IaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZtG9AtHtEd-A1oPfP47IaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZtG9A9HtEd-A1oPfP47IaQ" type="5126"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ZtG9BNHtEd-A1oPfP47IaQ" type="7077">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZtG9BdHtEd-A1oPfP47IaQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_xUgsINHtEd-A1oPfP47IaQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xUhTMNHtEd-A1oPfP47IaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xUhTMdHtEd-A1oPfP47IaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xUhTMtHtEd-A1oPfP47IaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xUhTM9HtEd-A1oPfP47IaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xUhTNNHtEd-A1oPfP47IaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xUhTNdHtEd-A1oPfP47IaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xUhTNtHtEd-A1oPfP47IaQ" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xUhTN9HtEd-A1oPfP47IaQ" x="13" y="-18"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xUhTONHtEd-A1oPfP47IaQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xUhTOdHtEd-A1oPfP47IaQ" x="25" y="-10"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WGsAwGkXEeWAzPO1wYNudw" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_WGsAwWkXEeWAzPO1wYNudw" name="stereotype" stringValue="FCM::Port"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_pP-ckMtqEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WGsAwmkXEeWAzPO1wYNudw"/>
+ </children>
+ <element xmi:type="uml:Port" href="ProducerTwoConsumers.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xUgsIdHtEd-A1oPfP47IaQ" x="9" y="63"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_V-xa7mkXEeWAzPO1wYNudw" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_V-xa72kXEeWAzPO1wYNudw" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="ProducerTwoConsumers.uml#_iP8c4tCREd-hqYHBJe17_Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZtFu4dHtEd-A1oPfP47IaQ" x="31" y="12" width="181" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_KPj-gDefEeGPyrZ5I3hMlA" type="3097" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KPklkDefEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KPklkTefEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KPklkjefEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KPklkzefEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KPkllDefEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KPlMoDefEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_KPlMoTefEeGPyrZ5I3hMlA" type="5150"/>
+ <element xmi:type="uml:Comment" href="ProducerTwoConsumers.uml#_KOEwwDefEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KPj-gTefEeGPyrZ5I3hMlA" x="301" y="102" width="280" height="46"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cNnmIFunEeGjjMeADLT5-g" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cNpbUFunEeGjjMeADLT5-g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cNpbUVunEeGjjMeADLT5-g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cNpbUlunEeGjjMeADLT5-g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cNpbU1unEeGjjMeADLT5-g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cNqCYFunEeGjjMeADLT5-g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cNqCYVunEeGjjMeADLT5-g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cNqCYlunEeGjjMeADLT5-g" type="5126"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cNqpcFunEeGjjMeADLT5-g" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cNqpcVunEeGjjMeADLT5-g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cNqpclunEeGjjMeADLT5-g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jrBL0FunEeGjjMeADLT5-g" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jrBy4FunEeGjjMeADLT5-g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jrBy4VunEeGjjMeADLT5-g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jrBy4lunEeGjjMeADLT5-g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jrBy41unEeGjjMeADLT5-g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jrBy5FunEeGjjMeADLT5-g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jrBy5VunEeGjjMeADLT5-g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jrBy5lunEeGjjMeADLT5-g" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jrCZ8FunEeGjjMeADLT5-g" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jrCZ8VunEeGjjMeADLT5-g" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jrCZ8lunEeGjjMeADLT5-g" x="25" y="-10"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WHIFoGkXEeWAzPO1wYNudw" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_WHIFoWkXEeWAzPO1wYNudw" name="stereotype" stringValue="FCM::Port"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_pP-ckMtqEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WHIFomkXEeWAzPO1wYNudw"/>
+ </children>
+ <element xmi:type="uml:Port" href="ProducerTwoConsumers.uml#_4KiE8DLbEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jrBL0VunEeGjjMeADLT5-g" x="-10" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_V-xa8GkXEeWAzPO1wYNudw" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_V-xa8WkXEeWAzPO1wYNudw" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="ProducerTwoConsumers.uml#_cLW8UFunEeGjjMeADLT5-g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cNnmIVunEeGjjMeADLT5-g" x="391" y="161" width="199" height="77"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wJrmsF7uEeGA7qTe7UD05A" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wJtb4F7uEeGA7qTe7UD05A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wJtb4V7uEeGA7qTe7UD05A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wJuC8F7uEeGA7qTe7UD05A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wJuC8V7uEeGA7qTe7UD05A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wJuC8l7uEeGA7qTe7UD05A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wJuC817uEeGA7qTe7UD05A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wJuC9F7uEeGA7qTe7UD05A" type="5126"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wJuqAF7uEeGA7qTe7UD05A" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wJuqAV7uEeGA7qTe7UD05A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wJuqAl7uEeGA7qTe7UD05A"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_11IGkF7uEeGA7qTe7UD05A" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_11MYAF7uEeGA7qTe7UD05A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_11M_EF7uEeGA7qTe7UD05A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_11M_EV7uEeGA7qTe7UD05A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_11M_El7uEeGA7qTe7UD05A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_11M_E17uEeGA7qTe7UD05A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_11M_FF7uEeGA7qTe7UD05A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_11M_FV7uEeGA7qTe7UD05A" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1A0YUGkAEeGgxNn3NWRjCQ" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4Ug9sGkAEeGgxNn3NWRjCQ" key="CustomAppearance_MaskValue" value="44"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_11M_Fl7uEeGA7qTe7UD05A" x="-90"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_11NmIF7uEeGA7qTe7UD05A" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_11NmIV7uEeGA7qTe7UD05A" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_0KY1UF7pEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_11LJ4F7uEeGA7qTe7UD05A" x="162" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_11ONMF7uEeGA7qTe7UD05A" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_11O0QF7uEeGA7qTe7UD05A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_11O0QV7uEeGA7qTe7UD05A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_11O0Ql7uEeGA7qTe7UD05A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_11O0Q17uEeGA7qTe7UD05A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_11O0RF7uEeGA7qTe7UD05A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_11O0RV7uEeGA7qTe7UD05A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_11O0Rl7uEeGA7qTe7UD05A" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_11_FwGkAEeGgxNn3NWRjCQ" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_34V_EGkAEeGgxNn3NWRjCQ" key="CustomAppearance_MaskValue" value="44"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_11O0R17uEeGA7qTe7UD05A" x="19"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_11O0SF7uEeGA7qTe7UD05A" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_11O0SV7uEeGA7qTe7UD05A" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_11ONMV7uEeGA7qTe7UD05A" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_V-xa8mkXEeWAzPO1wYNudw" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_V-xa82kXEeWAzPO1wYNudw" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="ProducerTwoConsumers.uml#_wG5YcF7uEeGA7qTe7UD05A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wJrmsV7uEeGA7qTe7UD05A" x="67" y="102" width="172" height="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WGa7AmkXEeWAzPO1wYNudw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WGa7A2kXEeWAzPO1wYNudw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WGa7BWkXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ProducerTwoConsumers.uml#_4KiE8DLbEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WGa7BGkXEeWAzPO1wYNudw" x="190" y="33"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WG8fcGkXEeWAzPO1wYNudw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WG8fcWkXEeWAzPO1wYNudw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WG8fc2kXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ProducerTwoConsumers.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WG8fcmkXEeWAzPO1wYNudw" x="209" y="63"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WHggImkXEeWAzPO1wYNudw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WHggI2kXEeWAzPO1wYNudw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WHggJWkXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ProducerTwoConsumers.uml#_4KiE8DLbEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WHggJGkXEeWAzPO1wYNudw" x="190" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WH8lAGkXEeWAzPO1wYNudw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WH8lAWkXEeWAzPO1wYNudw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WH8lA2kXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Property" href="ProducerTwoConsumers.uml#_wG5YcF7uEeGA7qTe7UD05A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WH8lAmkXEeWAzPO1wYNudw" x="267" y="102"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WIKncmkXEeWAzPO1wYNudw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WIKnc2kXEeWAzPO1wYNudw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WIKndWkXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_0KY1UF7pEeGEmrrwB1vhPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WIKndGkXEeWAzPO1wYNudw" x="362" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WIbtNmkXEeWAzPO1wYNudw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WIbtN2kXEeWAzPO1wYNudw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WIbtOWkXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WIbtOGkXEeWAzPO1wYNudw" x="190" y="36"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GpFzAF7vEeGA7qTe7UD05A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WGwhZNHtEd-A1oPfP47IaQ"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_V-xa6mkXEeWAzPO1wYNudw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_V-xa62kXEeWAzPO1wYNudw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="ProducerTwoConsumers.uml#_iP8c4NCREd-hqYHBJe17_Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WGvTQdHtEd-A1oPfP47IaQ" x="63" y="359" width="631" height="289"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_o6ZisdCREd-hqYHBJe17_Q"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_V-yB8GkXEeWAzPO1wYNudw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="ProducerTwoConsumers.uml#_XLQjUDLiEd2RVeNawwNNzg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_1OcyINHtEd-A1oPfP47IaQ" type="4013" source="_11IGkF7uEeGA7qTe7UD05A" target="_v8PRoNHtEd-A1oPfP47IaQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1OdZMNHtEd-A1oPfP47IaQ" type="6025">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1OdZMdHtEd-A1oPfP47IaQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_1OcyIdHtEd-A1oPfP47IaQ" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Connector" href="ProducerTwoConsumers.uml#_iP8c49CREd-hqYHBJe17_Q"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1OcyItHtEd-A1oPfP47IaQ" points="[3, -10, -163, 65]$[26, -75, -140, 0]$[156, -75, -10, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4VULYF7uEeGA7qTe7UD05A" id="(0.65,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_fPo0MDbdEeGdqp2YT1LwWw" type="4002" source="_JusbQDbdEeGdqp2YT1LwWw" target="_-uXn8FuoEeGjjMeADLT5-g" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_fPo0MTbdEeGdqp2YT1LwWw" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_fPo0MjbdEeGdqp2YT1LwWw" points="[2, -6, -18, 35]$[17, -24, -3, 17]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fQJKgDbdEeGdqp2YT1LwWw" id="(0.5121951219512195,0.125)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fQJKgTbdEeGdqp2YT1LwWw" id="(0.5204081632653061,0.8813559322033898)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_YzjzcDefEeGPyrZ5I3hMlA" type="4002" source="_KPj-gDefEeGPyrZ5I3hMlA" target="_1OcyINHtEd-A1oPfP47IaQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_YzjzcTefEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YzjzcjefEeGPyrZ5I3hMlA" points="[0, -4, 5, 39]$[0, -43, 5, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Yz5KoDefEeGPyrZ5I3hMlA" id="(0.017857142857142856,0.4583333333333333)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Yz5xsDefEeGPyrZ5I3hMlA" id="(0.6763005780346821,0.4444444444444444)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_efaBUE2rEeGl8qrc8BM7vA" type="4013" source="_zmq8ANHtEd-A1oPfP47IaQ" target="_N1-gQFupEeGjjMeADLT5-g" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_efaoYE2rEeGl8qrc8BM7vA" type="6025">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_efaoYU2rEeGl8qrc8BM7vA" x="34" y="76"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_efaoYk2rEeGl8qrc8BM7vA" visible="false" type="6050">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_efaoY02rEeGl8qrc8BM7vA" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_efbPcE2rEeGl8qrc8BM7vA" visible="false" type="6051">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_efbPcU2rEeGl8qrc8BM7vA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_efbPck2rEeGl8qrc8BM7vA" visible="false" type="6052">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_efbPc02rEeGl8qrc8BM7vA" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_efaBUU2rEeGl8qrc8BM7vA" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Connector" href="ProducerTwoConsumers.uml#_efVI0E2rEeGl8qrc8BM7vA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_efaBUk2rEeGl8qrc8BM7vA" points="[-1, 10, -82, -36]$[-1, 41, -82, -5]$[79, 41, -2, -5]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_V-2E0FupEeGjjMeADLT5-g" id="(0.05,0.45)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Jjfz4FuoEeGjjMeADLT5-g" type="4013" source="_11IGkF7uEeGA7qTe7UD05A" target="_jrBL0FunEeGjjMeADLT5-g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_JjhCAFuoEeGjjMeADLT5-g" type="6025">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JjhCAVuoEeGjjMeADLT5-g" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JjhCAluoEeGjjMeADLT5-g" visible="false" type="6050">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JjhCA1uoEeGjjMeADLT5-g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JjhCBFuoEeGjjMeADLT5-g" visible="false" type="6051">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JjhCBVuoEeGjjMeADLT5-g" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JjhCBluoEeGjjMeADLT5-g" visible="false" type="6052">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JjhCB1uoEeGjjMeADLT5-g" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Jjfz4VuoEeGjjMeADLT5-g" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Connector" href="ProducerTwoConsumers.uml#_JhN78FuoEeGjjMeADLT5-g"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Jjfz4luoEeGjjMeADLT5-g" points="[4, 10, -166, -53]$[26, 63, -144, 0]$[160, 63, -10, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XmNEMFupEeGjjMeADLT5-g" type="4013" source="_N2AVcFupEeGjjMeADLT5-g" target="_0XlXwDF1EeCpQdhNuFCtew" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_XmNrQFupEeGjjMeADLT5-g" type="6025">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XmNrQVupEeGjjMeADLT5-g" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XmNrQlupEeGjjMeADLT5-g" visible="false" type="6050">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XmNrQ1upEeGjjMeADLT5-g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XmNrRFupEeGjjMeADLT5-g" visible="false" type="6051">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XmNrRVupEeGjjMeADLT5-g" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XmNrRlupEeGjjMeADLT5-g" visible="false" type="6052">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XmNrR1upEeGjjMeADLT5-g" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_XmNEMVupEeGjjMeADLT5-g" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Connector" href="ProducerTwoConsumers.uml#_XmCsIFupEeGjjMeADLT5-g"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XmNEMlupEeGjjMeADLT5-g" points="[0, -2, -21, 89]$[17, -93, -4, -2]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XmkQkVupEeGjjMeADLT5-g" id="(0.2,0.35)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_YTxU0FupEeGjjMeADLT5-g" type="4013" source="_N2AVcFupEeGjjMeADLT5-g" target="__e67IFuoEeGjjMeADLT5-g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_YTx74FupEeGjjMeADLT5-g" type="6025">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YTx74VupEeGjjMeADLT5-g" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YTyi8FupEeGjjMeADLT5-g" visible="false" type="6050">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YTyi8VupEeGjjMeADLT5-g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YTyi8lupEeGjjMeADLT5-g" visible="false" type="6051">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YTyi81upEeGjjMeADLT5-g" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YTyi9FupEeGjjMeADLT5-g" visible="false" type="6052">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YTyi9VupEeGjjMeADLT5-g" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_YTxU0VupEeGjjMeADLT5-g" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Connector" href="ProducerTwoConsumers.uml#_YTirUFupEeGjjMeADLT5-g"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YTxU0lupEeGjjMeADLT5-g" points="[6, 10, -28, -37]$[31, 37, -3, -10]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_E-eMoF7hEeGEmrrwB1vhPg" id="(0.9,0.75)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_4RsNgFuqEeGjjMeADLT5-g" type="4002" source="_s7WAUFuqEeGjjMeADLT5-g" target="_ENAa4FupEeGjjMeADLT5-g" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_4RsNgVuqEeGjjMeADLT5-g" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4RsNgluqEeGjjMeADLT5-g" points="[-2, -10, 9, 51]$[-15, -57, -4, 4]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4SFPEFuqEeGjjMeADLT5-g" id="(0.8542713567839196,0.16666666666666666)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4SFPEVuqEeGjjMeADLT5-g" id="(0.30656934306569344,0.9444444444444444)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_KMQXwF7vEeGA7qTe7UD05A" type="4013" source="_11ONMF7uEeGA7qTe7UD05A" target="_xUgsINHtEd-A1oPfP47IaQ" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_KMRl4F7vEeGA7qTe7UD05A" type="6025">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KMRl4V7vEeGA7qTe7UD05A" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_KMRl4l7vEeGA7qTe7UD05A" visible="false" type="6050">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KMRl417vEeGA7qTe7UD05A" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_KMRl5F7vEeGA7qTe7UD05A" visible="false" type="6051">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KMRl5V7vEeGA7qTe7UD05A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_KMRl5l7vEeGA7qTe7UD05A" visible="false" type="6052">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KMRl517vEeGA7qTe7UD05A" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_KMQXwV7vEeGA7qTe7UD05A" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Connector" href="ProducerTwoConsumers.uml#_KJ3yIF7vEeGA7qTe7UD05A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KMQXwl7vEeGA7qTe7UD05A" points="[-10, 0, 7, 63]$[-18, 0, -1, 63]$[-18, -53, -1, 10]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WD8OxGkXEeWAzPO1wYNudw" type="StereotypeCommentLink" source="_0XlXwDF1EeCpQdhNuFCtew" target="_WD8OwGkXEeWAzPO1wYNudw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_WD8OxWkXEeWAzPO1wYNudw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WD8OyWkXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ProducerTwoConsumers.uml#_tyiqs8__Ed-TP80eVS-2Rg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WD8OxmkXEeWAzPO1wYNudw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WD8Ox2kXEeWAzPO1wYNudw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WD8OyGkXEeWAzPO1wYNudw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WEfoYGkXEeWAzPO1wYNudw" type="StereotypeCommentLink" source="_zmq8ANHtEd-A1oPfP47IaQ" target="_WEfBVGkXEeWAzPO1wYNudw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_WEfoYWkXEeWAzPO1wYNudw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WEfoZWkXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ProducerTwoConsumers.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WEfoYmkXEeWAzPO1wYNudw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WEfoY2kXEeWAzPO1wYNudw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WEfoZGkXEeWAzPO1wYNudw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WE_XpmkXEeWAzPO1wYNudw" type="StereotypeCommentLink" source="__e67IFuoEeGjjMeADLT5-g" target="_WE_XomkXEeWAzPO1wYNudw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_WE_Xp2kXEeWAzPO1wYNudw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WE_Xq2kXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ProducerTwoConsumers.uml#_tyiqs8__Ed-TP80eVS-2Rg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WE_XqGkXEeWAzPO1wYNudw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WE_XqWkXEeWAzPO1wYNudw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WE_XqmkXEeWAzPO1wYNudw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WFUu1GkXEeWAzPO1wYNudw" type="StereotypeCommentLink" source="_ENAa4FupEeGjjMeADLT5-g" target="_WFUu0GkXEeWAzPO1wYNudw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_WFUu1WkXEeWAzPO1wYNudw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WFUu2WkXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Property" href="ProducerTwoConsumers.uml#_EM2p4FupEeGjjMeADLT5-g"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WFUu1mkXEeWAzPO1wYNudw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WFUu12kXEeWAzPO1wYNudw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WFUu2GkXEeWAzPO1wYNudw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WFmbpGkXEeWAzPO1wYNudw" type="StereotypeCommentLink" source="_N1-gQFupEeGjjMeADLT5-g" target="_WFmboGkXEeWAzPO1wYNudw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_WFmbpWkXEeWAzPO1wYNudw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WFmbqWkXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/fifo.uml#_xHb7MHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WFmbpmkXEeWAzPO1wYNudw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WFmbp2kXEeWAzPO1wYNudw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WFmbqGkXEeWAzPO1wYNudw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WF4IeGkXEeWAzPO1wYNudw" type="StereotypeCommentLink" source="_N2AVcFupEeGjjMeADLT5-g" target="_WF4IdGkXEeWAzPO1wYNudw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_WF4IeWkXEeWAzPO1wYNudw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WF4IfWkXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/fifo.uml#_xcu1wHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WF4IemkXEeWAzPO1wYNudw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WF4Ie2kXEeWAzPO1wYNudw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WF4IfGkXEeWAzPO1wYNudw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WGa7BmkXEeWAzPO1wYNudw" type="StereotypeCommentLink" source="_v8PRoNHtEd-A1oPfP47IaQ" target="_WGa7AmkXEeWAzPO1wYNudw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_WGa7B2kXEeWAzPO1wYNudw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WGbiEGkXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ProducerTwoConsumers.uml#_4KiE8DLbEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WGa7CGkXEeWAzPO1wYNudw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WGa7CWkXEeWAzPO1wYNudw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WGa7CmkXEeWAzPO1wYNudw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WG8fdGkXEeWAzPO1wYNudw" type="StereotypeCommentLink" source="_xUgsINHtEd-A1oPfP47IaQ" target="_WG8fcGkXEeWAzPO1wYNudw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_WG8fdWkXEeWAzPO1wYNudw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WG8feWkXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ProducerTwoConsumers.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WG8fdmkXEeWAzPO1wYNudw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WG8fd2kXEeWAzPO1wYNudw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WG8feGkXEeWAzPO1wYNudw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WHggJmkXEeWAzPO1wYNudw" type="StereotypeCommentLink" source="_jrBL0FunEeGjjMeADLT5-g" target="_WHggImkXEeWAzPO1wYNudw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_WHggJ2kXEeWAzPO1wYNudw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WHhHMmkXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ProducerTwoConsumers.uml#_4KiE8DLbEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WHggKGkXEeWAzPO1wYNudw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WHhHMGkXEeWAzPO1wYNudw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WHhHMWkXEeWAzPO1wYNudw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WH8lBGkXEeWAzPO1wYNudw" type="StereotypeCommentLink" source="_wJrmsF7uEeGA7qTe7UD05A" target="_WH8lAGkXEeWAzPO1wYNudw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_WH8lBWkXEeWAzPO1wYNudw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WH9MEmkXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Property" href="ProducerTwoConsumers.uml#_wG5YcF7uEeGA7qTe7UD05A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WH8lBmkXEeWAzPO1wYNudw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WH9MEGkXEeWAzPO1wYNudw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WH9MEWkXEeWAzPO1wYNudw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WIKndmkXEeWAzPO1wYNudw" type="StereotypeCommentLink" source="_11IGkF7uEeGA7qTe7UD05A" target="_WIKncmkXEeWAzPO1wYNudw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_WIKnd2kXEeWAzPO1wYNudw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WIKne2kXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_0KY1UF7pEeGEmrrwB1vhPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WIKneGkXEeWAzPO1wYNudw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WIKneWkXEeWAzPO1wYNudw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WIKnemkXEeWAzPO1wYNudw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WIbtOmkXEeWAzPO1wYNudw" type="StereotypeCommentLink" source="_11ONMF7uEeGA7qTe7UD05A" target="_WIbtNmkXEeWAzPO1wYNudw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_WIbtO2kXEeWAzPO1wYNudw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WIcUQmkXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WIbtPGkXEeWAzPO1wYNudw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WIcUQGkXEeWAzPO1wYNudw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WIcUQWkXEeWAzPO1wYNudw"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_U1UegPcXEd-KM6l7lmIPkw" type="PapyrusUMLClassDiagram" name="deployment" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_FGfloCghEeCw56aD7XrQhw" type="2016" element="_7kc7YM__Ed-TP80eVS-2Rg" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FGgMsCghEeCw56aD7XrQhw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FGgMsSghEeCw56aD7XrQhw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FGgMsighEeCw56aD7XrQhw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FGgMsyghEeCw56aD7XrQhw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FGlsQCghEeCw56aD7XrQhw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FGmTUCghEeCw56aD7XrQhw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FGmTUSghEeCw56aD7XrQhw" type="0">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FGmTUighEeCw56aD7XrQhw" y="5"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FGfloSghEeCw56aD7XrQhw" x="48" y="24" width="34" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GQM_sCghEeCw56aD7XrQhw" type="2016" element="_UstOsM__Ed-TP80eVS-2Rg" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GQNmwSghEeCw56aD7XrQhw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GQNmwighEeCw56aD7XrQhw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GQNmwyghEeCw56aD7XrQhw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GQNmxCghEeCw56aD7XrQhw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GQNmxSghEeCw56aD7XrQhw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GQNmxighEeCw56aD7XrQhw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_GQON0CghEeCw56aD7XrQhw" type="0">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GQON0SghEeCw56aD7XrQhw" x="-20" y="40"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQNmwCghEeCw56aD7XrQhw" x="145" y="24" width="34" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_JhfKQCghEeCw56aD7XrQhw" type="2016" element="_V5euUP8nEd-hWJO6cv3VJA" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JhfKQighEeCw56aD7XrQhw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JhfxUCghEeCw56aD7XrQhw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JhfxUSghEeCw56aD7XrQhw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JhfxUighEeCw56aD7XrQhw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JhfxUyghEeCw56aD7XrQhw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JhfxVCghEeCw56aD7XrQhw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JhfxVSghEeCw56aD7XrQhw" type="0">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JhfxVighEeCw56aD7XrQhw" y="40"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JhfKQSghEeCw56aD7XrQhw" x="266" y="22"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LGTzACghEeCw56aD7XrQhw" type="2016" element="_o6ZisNCREd-hqYHBJe17_Q" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LGUaECghEeCw56aD7XrQhw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LGUaESghEeCw56aD7XrQhw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LGUaEighEeCw56aD7XrQhw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LGUaEyghEeCw56aD7XrQhw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LGUaFCghEeCw56aD7XrQhw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LGVBICghEeCw56aD7XrQhw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LGVBISghEeCw56aD7XrQhw" type="0">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LGVBIighEeCw56aD7XrQhw" x="9" y="40"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LGTzASghEeCw56aD7XrQhw" x="371" y="22"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_91n2kDOFEeCldqx_51Yicg" type="2007" fontName="Sans Serif" fontHeight="10" fillColor="8905185" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_91prwDOFEeCldqx_51Yicg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_91prwTOFEeCldqx_51Yicg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_91prwjOFEeCldqx_51Yicg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_91prwzOFEeCldqx_51Yicg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_91qS0DOFEeCldqx_51Yicg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_91qS0TOFEeCldqx_51Yicg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_91qS0jOFEeCldqx_51Yicg" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_91qS0zOFEeCldqx_51Yicg" type="7016">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_91qS1DOFEeCldqx_51Yicg"/>
+ </children>
+ <element xmi:type="uml:Package" href="ProducerTwoConsumers.uml#_xBxwoDOFEeCldqx_51Yicg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_91n2kTOFEeCldqx_51Yicg" x="36" y="144" width="199" height="109"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1GDBwLGREeCfWNndpgPDWA" type="2007" fontName="Sans Serif" fillColor="8047085" transparency="100" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1GOA4LGREeCfWNndpgPDWA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1GOA4bGREeCfWNndpgPDWA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1GOA4rGREeCfWNndpgPDWA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1GOA47GREeCfWNndpgPDWA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1GOn8LGREeCfWNndpgPDWA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1GOn8bGREeCfWNndpgPDWA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1GOn8rGREeCfWNndpgPDWA" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1GOn87GREeCfWNndpgPDWA" type="7016">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1GOn9LGREeCfWNndpgPDWA"/>
+ </children>
+ <element xmi:type="uml:Package" href="ProducerTwoConsumers.uml#_zwMLcLF4EeC9yscvWqW-eg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1GDBwbGREeCfWNndpgPDWA" x="315" y="144" width="198" height="109"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gdmuADefEeGPyrZ5I3hMlA" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gdmuAjefEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gdmuAzefEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gdmuBDefEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gdmuBTefEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gdnVEDefEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gdnVETefEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gdnVEjefEeGPyrZ5I3hMlA" type="5038"/>
+ <element xmi:type="uml:Comment" href="ProducerTwoConsumers.uml#_gdeyMDefEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gdmuATefEeGPyrZ5I3hMlA" x="498" y="18" width="115" height="46"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WKjNEGkXEeWAzPO1wYNudw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WKjNEWkXEeWAzPO1wYNudw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WKjNE2kXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Package" href="ProducerTwoConsumers.uml#_xBxwoDOFEeCldqx_51Yicg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WKjNEmkXEeWAzPO1wYNudw" x="236" y="144"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WKuzQGkXEeWAzPO1wYNudw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WKuzQWkXEeWAzPO1wYNudw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WKuzQ2kXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Package" href="ProducerTwoConsumers.uml#_zwMLcLF4EeC9yscvWqW-eg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WKuzQmkXEeWAzPO1wYNudw" x="515" y="144"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_U1UegfcXEd-KM6l7lmIPkw"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_WI_t4GkXEeWAzPO1wYNudw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="ProducerTwoConsumers.uml#_234GEDLiEd2RVeNawwNNzg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_WKjNFGkXEeWAzPO1wYNudw" type="StereotypeCommentLink" source="_91n2kDOFEeCldqx_51Yicg" target="_WKjNEGkXEeWAzPO1wYNudw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_WKjNFWkXEeWAzPO1wYNudw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WKjNGWkXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Package" href="ProducerTwoConsumers.uml#_xBxwoDOFEeCldqx_51Yicg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WKjNFmkXEeWAzPO1wYNudw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WKjNF2kXEeWAzPO1wYNudw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WKjNGGkXEeWAzPO1wYNudw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WKuzRGkXEeWAzPO1wYNudw" type="StereotypeCommentLink" source="_1GDBwLGREeCfWNndpgPDWA" target="_WKuzQGkXEeWAzPO1wYNudw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_WKuzRWkXEeWAzPO1wYNudw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WKuzSWkXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Package" href="ProducerTwoConsumers.uml#_zwMLcLF4EeC9yscvWqW-eg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WKuzRmkXEeWAzPO1wYNudw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WKuzR2kXEeWAzPO1wYNudw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WKuzSGkXEeWAzPO1wYNudw"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_V5euUP8nEd-hWJO6cv3VJA" type="CompositeStructure" name="Producer" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_Wky8MP8nEd-hWJO6cv3VJA" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Wk0KUP8nEd-hWJO6cv3VJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Wk0KUf8nEd-hWJO6cv3VJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Wk0KUv8nEd-hWJO6cv3VJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Wk0KU_8nEd-hWJO6cv3VJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Wk0KVP8nEd-hWJO6cv3VJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Wk0KVf8nEd-hWJO6cv3VJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wk0xYP8nEd-hWJO6cv3VJA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Wk0xYf8nEd-hWJO6cv3VJA" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Wk0xYv8nEd-hWJO6cv3VJA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_eCjHMP8nEd-hWJO6cv3VJA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eCjuQP8nEd-hWJO6cv3VJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eCjuQf8nEd-hWJO6cv3VJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eCkVUP8nEd-hWJO6cv3VJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eCkVUf8nEd-hWJO6cv3VJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eCkVUv8nEd-hWJO6cv3VJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eCkVU_8nEd-hWJO6cv3VJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_eCkVVP8nEd-hWJO6cv3VJA" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eCkVVf8nEd-hWJO6cv3VJA" x="-116" y="5"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_eCkVVv8nEd-hWJO6cv3VJA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eCkVV_8nEd-hWJO6cv3VJA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eCjHMf8nEd-hWJO6cv3VJA" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_fwpAsP8nEd-hWJO6cv3VJA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fwpAsv8nEd-hWJO6cv3VJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fwpAs_8nEd-hWJO6cv3VJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fwpnwP8nEd-hWJO6cv3VJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fwpnwf8nEd-hWJO6cv3VJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fwpnwv8nEd-hWJO6cv3VJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fwpnw_8nEd-hWJO6cv3VJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fwpnxP8nEd-hWJO6cv3VJA" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fwpnxf8nEd-hWJO6cv3VJA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fwpnxv8nEd-hWJO6cv3VJA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fwpnx_8nEd-hWJO6cv3VJA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="ProducerTwoConsumers.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fwpAsf8nEd-hWJO6cv3VJA" x="117" y="36"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VxhpEGkXEeWAzPO1wYNudw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VxhpEWkXEeWAzPO1wYNudw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="ProducerTwoConsumers.uml#_IfjoETLbEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Wky8Mf8nEd-hWJO6cv3VJA" x="144" y="108" width="127" height="82"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XKXHYP8nEd-hWJO6cv3VJA" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XKXHYv8nEd-hWJO6cv3VJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XKXucP8nEd-hWJO6cv3VJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XKXucf8nEd-hWJO6cv3VJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XKXucv8nEd-hWJO6cv3VJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XKXuc_8nEd-hWJO6cv3VJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XKXudP8nEd-hWJO6cv3VJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XKXudf8nEd-hWJO6cv3VJA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_XKXudv8nEd-hWJO6cv3VJA" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XKXud_8nEd-hWJO6cv3VJA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_euJo8P8nEd-hWJO6cv3VJA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_euKQAP8nEd-hWJO6cv3VJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_euKQAf8nEd-hWJO6cv3VJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_euKQAv8nEd-hWJO6cv3VJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_euK3EP8nEd-hWJO6cv3VJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_euK3Ef8nEd-hWJO6cv3VJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_euK3Ev8nEd-hWJO6cv3VJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_euK3E_8nEd-hWJO6cv3VJA" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_euK3FP8nEd-hWJO6cv3VJA" x="-116" y="-11"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_euK3Ff8nEd-hWJO6cv3VJA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_euK3Fv8nEd-hWJO6cv3VJA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_euJo8f8nEd-hWJO6cv3VJA" x="-10" y="29"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VxhpEmkXEeWAzPO1wYNudw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VxhpE2kXEeWAzPO1wYNudw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_N6fa4JsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XKXHYf8nEd-hWJO6cv3VJA" x="144" y="18" width="127" height="55"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Gz7TMDehEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G0CA4DehEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G0CA4TehEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G0CA4jehEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G0CA4zehEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G0CA5DehEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G0Cn8DehEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_G0Cn8TehEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ProducerTwoConsumers.uml#_GzyJQDehEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Gz7TMTehEeGPyrZ5I3hMlA" x="341" y="55" width="425"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_V13WgGkXEeWAzPO1wYNudw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_V13WgWkXEeWAzPO1wYNudw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_V13Wg2kXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="ProducerTwoConsumers.uml#_IfjoETLbEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V13WgmkXEeWAzPO1wYNudw" x="344" y="108"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_V2IcQGkXEeWAzPO1wYNudw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_V2IcQWkXEeWAzPO1wYNudw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_V2IcQ2kXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V2IcQmkXEeWAzPO1wYNudw" x="190" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_V2dzdGkXEeWAzPO1wYNudw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_V2dzdWkXEeWAzPO1wYNudw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_V2dzd2kXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ProducerTwoConsumers.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V2dzdmkXEeWAzPO1wYNudw" x="317" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_V2tEAGkXEeWAzPO1wYNudw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_V2tEAWkXEeWAzPO1wYNudw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_V2tEA2kXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V2tEAmkXEeWAzPO1wYNudw" x="190" y="29"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_V5euUf8nEd-hWJO6cv3VJA"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_VxhpFGkXEeWAzPO1wYNudw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="ProducerTwoConsumers.uml#_etOZkDLaEd2qeKRLMdIx_A"/>
+ <edges xmi:type="notation:Connector" xmi:id="_XKqpYP8nEd-hWJO6cv3VJA" type="4015" source="_Wky8MP8nEd-hWJO6cv3VJA" target="_XKXHYP8nEd-hWJO6cv3VJA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_XKrQcP8nEd-hWJO6cv3VJA" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XKrQcf8nEd-hWJO6cv3VJA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_XKqpYf8nEd-hWJO6cv3VJA" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="ProducerTwoConsumers.uml#_34FjAPx3Ed6O2oOTPfeAMA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XKqpYv8nEd-hWJO6cv3VJA" points="[-19, -23, 140, 174]$[-159, -197, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_aJG_MDehEeGPyrZ5I3hMlA" type="4002" source="_Gz7TMDehEeGPyrZ5I3hMlA" target="_XKXHYP8nEd-hWJO6cv3VJA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_aJG_MTehEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_aJG_MjehEeGPyrZ5I3hMlA" points="[-12, -5, 80, 30]$[-82, -36, 10, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aJdkgDehEeGPyrZ5I3hMlA" id="(0.02823529411764706,0.4166666666666667)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aJeLkDehEeGPyrZ5I3hMlA" id="(0.9212598425196851,0.4909090909090909)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_V13WhGkXEeWAzPO1wYNudw" type="StereotypeCommentLink" source="_Wky8MP8nEd-hWJO6cv3VJA" target="_V13WgGkXEeWAzPO1wYNudw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_V13WhWkXEeWAzPO1wYNudw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_V13WiWkXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="ProducerTwoConsumers.uml#_IfjoETLbEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_V13WhmkXEeWAzPO1wYNudw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_V13Wh2kXEeWAzPO1wYNudw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_V13WiGkXEeWAzPO1wYNudw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_V2IcRGkXEeWAzPO1wYNudw" type="StereotypeCommentLink" source="_eCjHMP8nEd-hWJO6cv3VJA" target="_V2IcQGkXEeWAzPO1wYNudw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_V2IcRWkXEeWAzPO1wYNudw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_V2JDUWkXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_V2IcRmkXEeWAzPO1wYNudw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_V2IcR2kXEeWAzPO1wYNudw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_V2JDUGkXEeWAzPO1wYNudw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_V2dzeGkXEeWAzPO1wYNudw" type="StereotypeCommentLink" source="_fwpAsP8nEd-hWJO6cv3VJA" target="_V2dzdGkXEeWAzPO1wYNudw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_V2dzeWkXEeWAzPO1wYNudw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_V2dzfWkXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ProducerTwoConsumers.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_V2dzemkXEeWAzPO1wYNudw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_V2dze2kXEeWAzPO1wYNudw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_V2dzfGkXEeWAzPO1wYNudw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_V2tEBGkXEeWAzPO1wYNudw" type="StereotypeCommentLink" source="_euJo8P8nEd-hWJO6cv3VJA" target="_V2tEAGkXEeWAzPO1wYNudw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_V2tEBWkXEeWAzPO1wYNudw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_V2tECWkXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_V2tEBmkXEeWAzPO1wYNudw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_V2tEB2kXEeWAzPO1wYNudw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_V2tECGkXEeWAzPO1wYNudw"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_0rwpYDefEeGPyrZ5I3hMlA" type="CompositeStructure" name="HWArchitecture" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_1w2CIDefEeGPyrZ5I3hMlA" type="2073" fontName="" fontHeight="10" fillColor="10011046" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1w2pMDefEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1w2pMTefEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1w2pMjefEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1w2pMzefEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1w2pNDefEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1w2pNTefEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1w2pNjefEeGPyrZ5I3hMlA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1w2pNzefEeGPyrZ5I3hMlA" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_4HLnYDefEeGPyrZ5I3hMlA" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4HMOcDefEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4HMOcTefEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4HMOcjefEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4HMOczefEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4HMOdDefEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4HMOdTefEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4HMOdjefEeGPyrZ5I3hMlA" type="5126"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4HMOdzefEeGPyrZ5I3hMlA" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4HMOeDefEeGPyrZ5I3hMlA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4HMOeTefEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WK5yYmkXEeWAzPO1wYNudw" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WK5yY2kXEeWAzPO1wYNudw" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="ProducerTwoConsumers.uml#_4HAoQDefEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4HLnYTefEeGPyrZ5I3hMlA" x="61" y="22" width="162"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1w2pODefEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1w2pOTefEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WK5yYGkXEeWAzPO1wYNudw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WK5yYWkXEeWAzPO1wYNudw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="ProducerTwoConsumers.uml#_tZvNQDefEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1w2CITefEeGPyrZ5I3hMlA" x="81" y="63" width="300" height="154"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7qMbIDefEeGPyrZ5I3hMlA" type="2072" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7qNCMDefEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7qNCMTefEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7qNCMjefEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7qNCMzefEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7qNCNDefEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7qNCNTefEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7qNCNjefEeGPyrZ5I3hMlA" type="5124"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7qNCNzefEeGPyrZ5I3hMlA" visible="false" type="7072">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7qNCODefEeGPyrZ5I3hMlA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7qNCOTefEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WK5yZGkXEeWAzPO1wYNudw" type="6088">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WK5yZWkXEeWAzPO1wYNudw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_WMSSfGkXEeWAzPO1wYNudw" type="StereotypeCompartment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WMUusGkXEeWAzPO1wYNudw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WMUusWkXEeWAzPO1wYNudw" key="visible" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WMTgkGkXEeWAzPO1wYNudw" type="StereotypeProperty">
+ <element xmi:type="uml:Property" href="pathmap://FCM_PROFILES/FCM.profile.uml#__5rAUGE_Ed-eArNXja7SuA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WMTgkWkXEeWAzPO1wYNudw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WMTglGkXEeWAzPO1wYNudw" type="StereotypeProperty">
+ <element xmi:type="uml:Property" href="pathmap://FCM_PROFILES/FCM.profile.uml#_BZCjMJOGEd-5qPBhYeIVtw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WMTglWkXEeWAzPO1wYNudw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WMSSfWkXEeWAzPO1wYNudw" showTitle="true"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_WMSSfmkXEeWAzPO1wYNudw" name="stereotype" stringValue="FCM::Target"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_0KEH0JOCEd-5qPBhYeIVtw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WMSSf2kXEeWAzPO1wYNudw"/>
+ </children>
+ <element xmi:type="uml:Node" href="ProducerTwoConsumers.uml#_zY9vMDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7qMbITefEeGPyrZ5I3hMlA" x="441" y="63" width="154" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jhQ20DegEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jhQ20jegEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jhQ20zegEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jhQ21DegEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jhQ21TegEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jhQ21jegEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jhQ21zegEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jhRd4DegEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ProducerTwoConsumers.uml#_jhF3sDegEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jhQ20TegEeGPyrZ5I3hMlA" x="435" y="183" width="277"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WMQdQGkXEeWAzPO1wYNudw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WMQdQWkXEeWAzPO1wYNudw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WMREUGkXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Node" href="ProducerTwoConsumers.uml#_zY9vMDLiEd2RVeNawwNNzg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WMQdQmkXEeWAzPO1wYNudw" x="641" y="63"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_0rwpYTefEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_WK5yZmkXEeWAzPO1wYNudw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="ProducerTwoConsumers.uml#_v3fMgDLiEd2RVeNawwNNzg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_ugb6IDegEeGPyrZ5I3hMlA" type="4002" source="_jhQ20DegEeGPyrZ5I3hMlA" target="_7qMbIDefEeGPyrZ5I3hMlA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_ugb6ITegEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ugb6IjegEeGPyrZ5I3hMlA" points="[-3, -6, 22, 58]$[-30, -51, -5, 13]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ugs_4DegEeGPyrZ5I3hMlA" id="(0.33212996389891697,0.1)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ugs_4TegEeGPyrZ5I3hMlA" id="(0.4420289855072464,0.8266666666666667)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WMREUWkXEeWAzPO1wYNudw" type="StereotypeCommentLink" source="_7qMbIDefEeGPyrZ5I3hMlA" target="_WMQdQGkXEeWAzPO1wYNudw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_WMREUmkXEeWAzPO1wYNudw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_WMREVmkXEeWAzPO1wYNudw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Node" href="ProducerTwoConsumers.uml#_zY9vMDLiEd2RVeNawwNNzg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WMREU2kXEeWAzPO1wYNudw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WMREVGkXEeWAzPO1wYNudw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WMREVWkXEeWAzPO1wYNudw"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/ProducerTwoConsumers.uml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/ProducerTwoConsumers.uml
new file mode 100644
index 00000000000..4690ec8712c
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/ProducerTwoConsumers.uml
@@ -0,0 +1,532 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Alloc="http://www.eclipse.org/papyrus/Alloc/1" xmlns:C_Cpp="http://www.eclipse.org/papyrus/C_Cpp/1" xmlns:FCM="http://www.eclipse.org/papyrus/FCM/1" xmlns:GCM="http://www.eclipse.org/papyrus/GCM/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/papyrus/Alloc/1 http://www.eclipse.org/papyrus/MARTE/1#//Alloc http://www.eclipse.org/papyrus/GCM/1 http://www.eclipse.org/papyrus/MARTE/1#//GCM">
+ <uml:Model xmi:id="_O6TiIDLUEd26WNosUASSSw" name="ProducerTwoConsumers">
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_O6TiITLUEd26WNosUASSSw">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_Bc1WIFW4Ed63BrxiKsw-0Q">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/core.uml#_O6TiIDLUEd26WNosUASSSw"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_rwBsMP7AEd6Zw96O-tCw7A">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/corba.uml#_DtQEwDLdEd2_U4efLnjQIw"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_R8d6YP93Ed6628OhKk_dpg">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/fifo.uml#_ePwqkHLmEd6R5tffIPrlPg"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_8KelgCgjEeC5Ga5kAgjl0g">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_TRACE/tracing.uml#_H-ZqYDKeEd-WprEKTCaiMA"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Package" xmi:id="_LOqIEDLaEd2qeKRLMdIx_A" name="components">
+ <packagedElement xmi:type="uml:Package" xmi:id="_tyiqsM__Ed-TP80eVS-2Rg" name="PullConsumer">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_-Hd2MDecEeGPyrZ5I3hMlA" annotatedElement="_tyiqsc__Ed-TP80eVS-2Rg">
+ <body>Variant of the consumper component that uses a &quot;pull style&quot;, i.e. actively demands whether new data is available. Since the component is active, it needs to have its own thread. This is realized by the combination of the lifecycle port with a container rule that intercepts the lifecycle operations and executes the activation operation in its own thread.
+Use the context menu to find out that the PullConsumer supports the &quot;runStartThread&quot; interceptor which intercepts the lifecycle port.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_0D64MDedEeGPyrZ5I3hMlA">
+ <annotatedElement xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
+ <body>Part of the Qompass model library. Provides the specific port &quot;lc&quot; (short for lifecycle). The &quot;activate&quot; operation of this port is called by generated boot-code after instantiation and configuration of a component. The deactivation is called before disposing a component</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_tyiqsc__Ed-TP80eVS-2Rg" name="PullConsumer_impl">
+ <generalization xmi:type="uml:Generalization" xmi:id="_tyiqss__Ed-TP80eVS-2Rg">
+ <general xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
+ </generalization>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_tyiqs8__Ed-TP80eVS-2Rg" name="p" type="_wFJ3IP91Ed6Jt8e-UqrRdQ" aggregation="composite"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_kLNdAF8DEeGerN33d-RdRg" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kLSVgF8DEeGerN33d-RdRg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kLS8kF8DEeGerN33d-RdRg" value="1"/>
+ </ownedAttribute>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_DHTiQDF7EeCpQdhNuFCtew" name="derived realization of ILifeCycle" client="_tyiqsc__Ed-TP80eVS-2Rg">
+ <supplier xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ <contract xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ </interfaceRealization>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_tyjRwc__Ed-TP80eVS-2Rg" name="activate" specification="_tyjRy8__Ed-TP80eVS-2Rg">
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;wait for data on port p&quot; &lt;&lt; endl;
+for (int i = 0; i&lt;25; i++) {
+ if (p->hasData ()) {
+ components::interfaces::PubData data = p->pull ();
+ cout &lt;&lt; &quot;Componenent &quot; &lt;&lt; name &lt;&lt; &quot; received data: x = &quot; &lt;&lt; data.x &lt;&lt; &quot; y = &quot; &lt;&lt; data.y &lt;&lt; endl;
+ }
+ usleep (100*1000);
+}
+cout &lt;&lt; &quot;finished waiting&quot; &lt;&lt; endl;
+</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_tyjRy8__Ed-TP80eVS-2Rg" name="activate" method="_tyjRwc__Ed-TP80eVS-2Rg"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_tyjRzM__Ed-TP80eVS-2Rg" name="deactivate"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_OGM88DLaEd2qeKRLMdIx_A" name="PushConsumer">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_XfnmsDecEeGPyrZ5I3hMlA" annotatedElement="_oqZNUDLaEd2qeKRLMdIx_A">
+ <body>Push variant of a consumer, i.e. the consumer is called whenever new data is availble. It is not itself active.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gpptUDecEeGPyrZ5I3hMlA" annotatedElement="_4KiE8DLbEd2qeKRLMdIx_A">
+ <body>A MARTE flow port. The synchronisation between MARTE and FCM stereotype is automatic, yet it is possible to refine on FCM level, whether the port uses a push or pull style. In this case, the port uses a push style by setting the port kind to &quot;PushConsumer&quot;.</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_oqZNUDLaEd2qeKRLMdIx_A" name="PushConsumer_impl">
+ <generalization xmi:type="uml:Generalization" xmi:id="_NItbAP94Ed6628OhKk_dpg">
+ <general xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
+ </generalization>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_4KiE8DLbEd2qeKRLMdIx_A" name="p" type="_wFJ3IP91Ed6Jt8e-UqrRdQ" aggregation="composite"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_Z16ywDF8EeCpQdhNuFCtew" name="derived realization of ILifeCycle" client="_oqZNUDLaEd2qeKRLMdIx_A">
+ <supplier xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ <contract xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ </interfaceRealization>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_c9T7oF7yEeGA7qTe7UD05A" name="derived realization of D_Push_PubData" client="_oqZNUDLaEd2qeKRLMdIx_A" supplier="_rkTC4F7hEeGEmrrwB1vhPg" contract="_rkTC4F7hEeGEmrrwB1vhPg"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_RoXdMP94Ed6628OhKk_dpg" name="activate" specification="_uOmgID15Ed-qiK1VZWszhA">
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;initialization of push consumer&quot; &lt;&lt; endl;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_qUSHYPdMEd-KM6l7lmIPkw" name="push" specification="_T7D8YAcsEeGYWLReZHFIwA">
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;received data: x = &quot; &lt;&lt; data.x &lt;&lt; &quot; y = &quot; &lt;&lt; data.y &lt;&lt; endl;</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_uOmgID15Ed-qiK1VZWszhA" name="activate" method="_RoXdMP94Ed6628OhKk_dpg"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_uOtN0D15Ed-qiK1VZWszhA" name="deactivate"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_T7D8YAcsEeGYWLReZHFIwA" name="push" method="_qUSHYPdMEd-KM6l7lmIPkw">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_T7G_sAcsEeGYWLReZHFIwA" name="data" type="_wFJ3IP91Ed6Jt8e-UqrRdQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_T7KDAAcsEeGYWLReZHFIwA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_T7KqEAcsEeGYWLReZHFIwA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_Tp4n8DLaEd2qeKRLMdIx_A" name="interfaces">
+ <packagedElement xmi:type="uml:DataType" xmi:id="_wFJ3IP91Ed6Jt8e-UqrRdQ" name="PubData">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_yywF0P91Ed6Jt8e-UqrRdQ" name="y" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_zUgvEP91Ed6Jt8e-UqrRdQ" name="x" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_etOZkDLaEd2qeKRLMdIx_A" name="Producer">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_GzyJQDehEeGPyrZ5I3hMlA">
+ <annotatedElement xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_N6fa4JsrEd61Eo3nmu3JhQ"/>
+ <body>Let the producer instance execute by the main thread by realising the specific port &quot;start&quot;, inherited from CStart (part of the Qompass &quot;BasicCalls&quot; model library).
+</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_IfjoETLbEd2qeKRLMdIx_A" name="Producer_impl">
+ <generalization xmi:type="uml:Generalization" xmi:id="_34FjAPx3Ed6O2oOTPfeAMA">
+ <general xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_N6fa4JsrEd61Eo3nmu3JhQ"/>
+ </generalization>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_DtWn4DLcEd2qeKRLMdIx_A" name="q" type="_dtSlwGkXEeWAzPO1wYNudw" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zDR50FuoEeGjjMeADLT5-g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zDTH8FuoEeGjjMeADLT5-g" value="1"/>
+ </ownedAttribute>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_jkNdADF8EeCpQdhNuFCtew" name="derived realization of IStart" client="_IfjoETLbEd2qeKRLMdIx_A">
+ <supplier xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_PTWzwCS-Ed-A_I32T0fkaA"/>
+ <contract xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_PTWzwCS-Ed-A_I32T0fkaA"/>
+ </interfaceRealization>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_yXNVoKF4Ed6FqJCjEUrkqQ" name="run" specification="_dH4RIKF4Ed6FqJCjEUrkqQ">
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;publish a value via port q;&quot; &lt;&lt; endl;
+components::interfaces::PubData data;
+data.x = 2;
+data.y = 3;
+for (int i = 0; i&lt;20; i++) {
+ q->push (data);
+ cout &lt;&lt; &quot;.&quot; &lt;&lt; flush;
+ // wait 200ms
+ usleep (200*1000);
+}
+</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_dH4RIKF4Ed6FqJCjEUrkqQ" name="run" method="_yXNVoKF4Ed6FqJCjEUrkqQ"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_XLQjUDLiEd2RVeNawwNNzg" name="System">
+ <packagedElement xmi:type="uml:Class" xmi:id="_bYJagDLiEd2RVeNawwNNzg" name="SystemPull_impl">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_JuaHYDbdEeGdqp2YT1LwWw" annotatedElement="_-uMo0FuoEeGjjMeADLT5-g">
+ <body>Two consumers use the same queue. In this case, it is arbitrary which one gets which data</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_s6SQYFuqEeGjjMeADLT5-g" annotatedElement="_EM2p4FupEeGjjMeADLT5-g">
+ <body>in this case, the connector is modeled explicitly in order to specify that a single connector instance is used</body>
+ </ownedComment>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_gV1cgDLiEd2RVeNawwNNzg" name="cons1" visibility="public" type="_tyiqsc__Ed-TP80eVS-2Rg" isUnique="false" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Wn23gFunEeGjjMeADLT5-g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_WoGIEFunEeGjjMeADLT5-g" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_WoP5EFunEeGjjMeADLT5-g">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_i-I7gDLiEd2RVeNawwNNzg" name="pub" type="_IfjoETLbEd2qeKRLMdIx_A" isUnique="false" aggregation="composite"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_-uMo0FuoEeGjjMeADLT5-g" name="cons2" visibility="public" type="_tyiqsc__Ed-TP80eVS-2Rg" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kWRdYFupEeGjjMeADLT5-g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kWT5oFupEeGjjMeADLT5-g" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_kXMDYFupEeGjjMeADLT5-g">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_EM2p4FupEeGjjMeADLT5-g" name="fifo" visibility="public" aggregation="composite">
+ <type xmi:type="uml:Class" href="pathmap://QML_CORE/fifo.uml#_Y1jF8HPpEd6R5tffIPrlPg"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IzF1MFupEeGjjMeADLT5-g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IzHDUFupEeGjjMeADLT5-g" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_IzI4gFupEeGjjMeADLT5-g">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedConnector xmi:type="uml:Connector" xmi:id="_efVI0E2rEeGl8qrc8BM7vA" name="push">
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_efVv4E2rEeGl8qrc8BM7vA" partWithPort="_i-I7gDLiEd2RVeNawwNNzg" role="_DtWn4DLcEd2qeKRLMdIx_A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efVv4k2rEeGl8qrc8BM7vA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_efVv4U2rEeGl8qrc8BM7vA" value="1"/>
+ </end>
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_efWW8E2rEeGl8qrc8BM7vA" partWithPort="_EM2p4FupEeGjjMeADLT5-g">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efWW8k2rEeGl8qrc8BM7vA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_efWW8U2rEeGl8qrc8BM7vA" value="1"/>
+ <role xmi:type="uml:Port" href="pathmap://QML_CORE/fifo.uml#_xHb7MHLmEd6R5tffIPrlPg"/>
+ </end>
+ </ownedConnector>
+ <ownedConnector xmi:type="uml:Connector" xmi:id="_XmCsIFupEeGjjMeADLT5-g" name="pull1">
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_XmDTMFupEeGjjMeADLT5-g" partWithPort="_EM2p4FupEeGjjMeADLT5-g">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XmDTMlupEeGjjMeADLT5-g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XmDTMVupEeGjjMeADLT5-g" value="1"/>
+ <role xmi:type="uml:Port" href="pathmap://QML_CORE/fifo.uml#_xcu1wHLmEd6R5tffIPrlPg"/>
+ </end>
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_XmD6QFupEeGjjMeADLT5-g" partWithPort="_gV1cgDLiEd2RVeNawwNNzg" role="_tyiqs8__Ed-TP80eVS-2Rg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XmD6QlupEeGjjMeADLT5-g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XmD6QVupEeGjjMeADLT5-g" value="1"/>
+ </end>
+ </ownedConnector>
+ <ownedConnector xmi:type="uml:Connector" xmi:id="_YTirUFupEeGjjMeADLT5-g" name="pull2">
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_YTjSYFupEeGjjMeADLT5-g" partWithPort="_EM2p4FupEeGjjMeADLT5-g">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_YTjSYlupEeGjjMeADLT5-g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_YTjSYVupEeGjjMeADLT5-g" value="1"/>
+ <role xmi:type="uml:Port" href="pathmap://QML_CORE/fifo.uml#_xcu1wHLmEd6R5tffIPrlPg"/>
+ </end>
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_YTjSY1upEeGjjMeADLT5-g" partWithPort="_-uMo0FuoEeGjjMeADLT5-g" role="_tyiqs8__Ed-TP80eVS-2Rg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_YTjSZVupEeGjjMeADLT5-g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_YTjSZFupEeGjjMeADLT5-g" value="1"/>
+ </end>
+ </ownedConnector>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_iP8c4NCREd-hqYHBJe17_Q" name="SystemPush_impl">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_KOEwwDefEeGPyrZ5I3hMlA" annotatedElement="_iP8c49CREd-hqYHBJe17_Q">
+ <body>The push consumer provides the interface that the producer uses (requires), no specific connector is required, but we need to multiply data</body>
+ </ownedComment>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_iP8c4dCREd-hqYHBJe17_Q" name="cons1" visibility="public" type="_oqZNUDLaEd2qeKRLMdIx_A" isUnique="false" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_YdjN0FunEeGjjMeADLT5-g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_YdvbEFunEeGjjMeADLT5-g" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_Yd2IwFunEeGjjMeADLT5-g">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_iP8c4tCREd-hqYHBJe17_Q" name="pub" type="_IfjoETLbEd2qeKRLMdIx_A" isUnique="false" aggregation="composite"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_cLW8UFunEeGjjMeADLT5-g" name="cons2" visibility="public" type="_oqZNUDLaEd2qeKRLMdIx_A" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dr4T4FunEeGjjMeADLT5-g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dsA2wFunEeGjjMeADLT5-g" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_dsFIMFunEeGjjMeADLT5-g">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_wG5YcF7uEeGA7qTe7UD05A" name="mult" visibility="public" aggregation="composite">
+ <type xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_Mo2kwF7pEeGEmrrwB1vhPg"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_znRH4F7uEeGA7qTe7UD05A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zrij4F7uEeGA7qTe7UD05A" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_zruxIF7uEeGA7qTe7UD05A">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedConnector xmi:type="uml:Connector" xmi:id="_iP8c49CREd-hqYHBJe17_Q" name="qpconnector1">
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_iP8c5NCREd-hqYHBJe17_Q" partWithPort="_wG5YcF7uEeGA7qTe7UD05A">
+ <role xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_0KY1UF7pEeGEmrrwB1vhPg"/>
+ </end>
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_iP8c5dCREd-hqYHBJe17_Q" partWithPort="_iP8c4dCREd-hqYHBJe17_Q" role="_4KiE8DLbEd2qeKRLMdIx_A"/>
+ </ownedConnector>
+ <ownedConnector xmi:type="uml:Connector" xmi:id="_JhN78FuoEeGjjMeADLT5-g" name="qpconnector2">
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_JhN78VuoEeGjjMeADLT5-g" partWithPort="_wG5YcF7uEeGA7qTe7UD05A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JhOjAVuoEeGjjMeADLT5-g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JhOjAFuoEeGjjMeADLT5-g" value="1"/>
+ <role xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_0KY1UF7pEeGEmrrwB1vhPg"/>
+ </end>
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_JhOjAluoEeGjjMeADLT5-g" partWithPort="_cLW8UFunEeGjjMeADLT5-g" role="_4KiE8DLbEd2qeKRLMdIx_A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JhOjBFuoEeGjjMeADLT5-g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JhOjA1uoEeGjjMeADLT5-g" value="1"/>
+ </end>
+ </ownedConnector>
+ <ownedConnector xmi:type="uml:Connector" xmi:id="_KJ3yIF7vEeGA7qTe7UD05A" name="Connector1">
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_KJ4ZMF7vEeGA7qTe7UD05A" partWithPort="_wG5YcF7uEeGA7qTe7UD05A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KJ4ZMl7vEeGA7qTe7UD05A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KJ4ZMV7vEeGA7qTe7UD05A" value="1"/>
+ <role xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ </end>
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_KJ6OYF7vEeGA7qTe7UD05A" partWithPort="_iP8c4tCREd-hqYHBJe17_Q" role="_DtWn4DLcEd2qeKRLMdIx_A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KJ6OYl7vEeGA7qTe7UD05A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KJ6OYV7vEeGA7qTe7UD05A" value="1"/>
+ </end>
+ </ownedConnector>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_v3fMgDLiEd2RVeNawwNNzg" name="platform">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_jhF3sDegEeGPyrZ5I3hMlA" annotatedElement="_zY9vMDLiEd2RVeNawwNNzg">
+ <body>Simple single node configuration. TargetOS is set to Linux, but will work on other OS (supporting POSIX threads)</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Node" xmi:id="_zY9vMDLiEd2RVeNawwNNzg" name="MonoNode"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_tZvNQDefEeGPyrZ5I3hMlA" name="Platform">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_4HAoQDefEeGPyrZ5I3hMlA" name="monoNode" visibility="public" type="_zY9vMDLiEd2RVeNawwNNzg" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6WEg0DefEeGPyrZ5I3hMlA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6WFu8DefEeGPyrZ5I3hMlA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_6WHkIDefEeGPyrZ5I3hMlA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_YxI8IDegEeGPyrZ5I3hMlA" name="HWArchitecturePlatform">
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_GQ1ekKwHEeCQX8uv_p0Q4A" name="monoNode" classifier="_zY9vMDLiEd2RVeNawwNNzg"/>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_aOAnkKmqEeCxII-g1_Lmeg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aen2cKmqEeCxII-g1_Lmeg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//SW_Concurrency"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_A_vtYBJeEdy3Td9UhuLFPg"/>
+ </profileApplication>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_234GEDLiEd2RVeNawwNNzg" name="deployment">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_VMRFgDOJEeC7y-fR3OSnFw">
+ <body>This configuration requires the installation of the OTF trace library.&lt;br /></body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gdeyMDefEeGPyrZ5I3hMlA">
+ <body>Cross references to diagrams</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Package" xmi:id="_xBxwoDOFEeCldqx_51Yicg" name="monoPush">
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_xB3QMDOFEeCldqx_51Yicg" name="mainInstance" classifier="_iP8c4NCREd-hqYHBJe17_Q">
+ <slot xmi:type="uml:Slot" xmi:id="_xB6TgDOFEeCldqx_51Yicg" definingFeature="_iP8c4dCREd-hqYHBJe17_Q">
+ <value xmi:type="uml:InstanceValue" xmi:id="_xB66kDOFEeCldqx_51Yicg" instance="_xB5scDOFEeCldqx_51Yicg"/>
+ </slot>
+ <slot xmi:type="uml:Slot" xmi:id="_xB8IsDOFEeCldqx_51Yicg" definingFeature="_iP8c4tCREd-hqYHBJe17_Q">
+ <value xmi:type="uml:InstanceValue" xmi:id="_xB8IsTOFEeCldqx_51Yicg" instance="_xB7hoDOFEeCldqx_51Yicg"/>
+ </slot>
+ <slot xmi:type="uml:Slot" xmi:id="_gSgQgFuqEeGjjMeADLT5-g" definingFeature="_cLW8UFunEeGjjMeADLT5-g">
+ <value xmi:type="uml:InstanceValue" xmi:id="_gSg3kFuqEeGjjMeADLT5-g" instance="_gSfpcFuqEeGjjMeADLT5-g"/>
+ </slot>
+ <slot xmi:type="uml:Slot" xmi:id="_qefY8F8DEeGerN33d-RdRg" definingFeature="_wG5YcF7uEeGA7qTe7UD05A">
+ <value xmi:type="uml:InstanceValue" xmi:id="_qegAAF8DEeGerN33d-RdRg" instance="_qeex4F8DEeGerN33d-RdRg"/>
+ </slot>
+ </packagedElement>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_xB5scDOFEeCldqx_51Yicg" name="mainInstance.cons1" classifier="_oqZNUDLaEd2qeKRLMdIx_A"/>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_xB7hoDOFEeCldqx_51Yicg" name="mainInstance.pub" classifier="_IfjoETLbEd2qeKRLMdIx_A"/>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_cmk8EKwIEeCza-cLDL1uzQ" name="allocate to monoNode" client="_xB3QMDOFEeCldqx_51Yicg" supplier="_GQ1ekKwHEeCQX8uv_p0Q4A"/>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_oZjTgE0tEeG4IqgA7gSE6w" name="allocate to monoNode" client="_xB3QMDOFEeCldqx_51Yicg" supplier="_GQ1ekKwHEeCQX8uv_p0Q4A"/>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_wqyJ4E0tEeG4IqgA7gSE6w" name="allocate to monoNode" client="_xB3QMDOFEeCldqx_51Yicg" supplier="_GQ1ekKwHEeCQX8uv_p0Q4A"/>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_gSfpcFuqEeGjjMeADLT5-g" name="mainInstance.cons2" classifier="_oqZNUDLaEd2qeKRLMdIx_A"/>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_qeex4F8DEeGerN33d-RdRg" name="mainInstance.mult">
+ <classifier xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_Mo2kwF7pEeGEmrrwB1vhPg"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_zwMLcLF4EeC9yscvWqW-eg" name="monoPull">
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_zwQc4bF4EeC9yscvWqW-eg" name="mainInstance" classifier="_bYJagDLiEd2RVeNawwNNzg">
+ <slot xmi:type="uml:Slot" xmi:id="_zwY_wLF4EeC9yscvWqW-eg" definingFeature="_gV1cgDLiEd2RVeNawwNNzg">
+ <value xmi:type="uml:InstanceValue" xmi:id="_zwZm0LF4EeC9yscvWqW-eg" instance="_zwUuUbF4EeC9yscvWqW-eg"/>
+ </slot>
+ <slot xmi:type="uml:Slot" xmi:id="_zwaN4LF4EeC9yscvWqW-eg" definingFeature="_i-I7gDLiEd2RVeNawwNNzg">
+ <value xmi:type="uml:InstanceValue" xmi:id="_zwaN4bF4EeC9yscvWqW-eg" instance="_zwZm0bF4EeC9yscvWqW-eg"/>
+ </slot>
+ <slot xmi:type="uml:Slot" xmi:id="_z4wKYF73EeGerN33d-RdRg" definingFeature="_-uMo0FuoEeGjjMeADLT5-g">
+ <value xmi:type="uml:InstanceValue" xmi:id="_z4wxcF73EeGerN33d-RdRg" instance="_z4nngF73EeGerN33d-RdRg"/>
+ </slot>
+ <slot xmi:type="uml:Slot" xmi:id="_z4ymoF73EeGerN33d-RdRg" definingFeature="_EM2p4FupEeGjjMeADLT5-g">
+ <value xmi:type="uml:InstanceValue" xmi:id="_z4zNsF73EeGerN33d-RdRg" instance="_z4xYgF73EeGerN33d-RdRg"/>
+ </slot>
+ </packagedElement>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_zwUuUbF4EeC9yscvWqW-eg" name="mainInstance.cons1">
+ <classifier xmi:type="uml:Class" href="#_tyiqsc__Ed-TP80eVS-2Rg"/>
+ <classifier xmi:type="uml:Class" href="pathmap://QML_CORE//core.uml#_SiY_AP-EEd6628OhKk_dpg"/>
+ <slot xmi:type="uml:Slot" xmi:id="_zwVVYLF4EeC9yscvWqW-eg">
+ <definingFeature xmi:type="uml:Property" href="pathmap://QML_CORE//core.uml#_rVfYoMGJEd-Mveea1W_olA"/>
+ <value xmi:type="uml:LiteralInteger" xmi:id="_zwV8cLF4EeC9yscvWqW-eg" name="value for priority">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </value>
+ </slot>
+ <slot xmi:type="uml:Slot" xmi:id="_uctiAF8DEeGerN33d-RdRg" definingFeature="_kLNdAF8DEeGerN33d-RdRg">
+ <value xmi:type="uml:LiteralString" xmi:id="_ucuwIF8DEeGerN33d-RdRg" name="value for name" value="&quot;cons1&quot;">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </value>
+ </slot>
+ </packagedElement>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_zwZm0bF4EeC9yscvWqW-eg" name="mainInstance.pub" classifier="_IfjoETLbEd2qeKRLMdIx_A"/>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_DQUvILGSEeCfWNndpgPDWA" name="allocate to monoNode" client="_zwQc4bF4EeC9yscvWqW-eg" supplier="_GQ1ekKwHEeCQX8uv_p0Q4A"/>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_vcX2AE0tEeG4IqgA7gSE6w" name="allocate to monoNode" client="_zwQc4bF4EeC9yscvWqW-eg" supplier="_GQ1ekKwHEeCQX8uv_p0Q4A"/>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_z4nngF73EeGerN33d-RdRg" name="mainInstance.cons2" classifier="_tyiqsc__Ed-TP80eVS-2Rg">
+ <slot xmi:type="uml:Slot" xmi:id="_vzFfEF8DEeGerN33d-RdRg" definingFeature="_kLNdAF8DEeGerN33d-RdRg">
+ <value xmi:type="uml:LiteralString" xmi:id="_vzGGIF8DEeGerN33d-RdRg" name="value for name" value="&quot;cons2&quot;">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </value>
+ </slot>
+ </packagedElement>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_z4xYgF73EeGerN33d-RdRg" name="mainInstance.fifo">
+ <classifier xmi:type="uml:Class" href="pathmap://QML_CORE/fifo.uml#_Y1jF8HPpEd6R5tffIPrlPg"/>
+ <slot xmi:type="uml:Slot" xmi:id="_z4x_kF73EeGerN33d-RdRg">
+ <definingFeature xmi:type="uml:Property" href="pathmap://QML_CORE/fifo.uml#_XDRnoHUIEd6R5tffIPrlPg"/>
+ <value xmi:type="uml:LiteralInteger" xmi:id="_z4x_kV73EeGerN33d-RdRg" name="value for m_size" value="30">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </value>
+ </slot>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_lr9WwKwJEeCgusK7cm6qjQ" name="derivedInterfaces">
+ <packagedElement xmi:type="uml:Package" xmi:id="_rkP_kF7hEeGEmrrwB1vhPg" name="ProducerTwoConsumers">
+ <packagedElement xmi:type="uml:Package" xmi:id="_rkRNsF7hEeGEmrrwB1vhPg" name="components">
+ <packagedElement xmi:type="uml:Package" xmi:id="_rkR0wF7hEeGEmrrwB1vhPg" name="interfaces">
+ <packagedElement xmi:type="uml:Interface" xmi:id="_rkTC4F7hEeGEmrrwB1vhPg" name="D_Push_PubData">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_rkw88F7hEeGEmrrwB1vhPg" name="push">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_rk-YUF7hEeGEmrrwB1vhPg" name="data" type="_wFJ3IP91Ed6Jt8e-UqrRdQ"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_C2ev8F7iEeGEmrrwB1vhPg" name="D_PullConsumer_PubData">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_C2-fMF7iEeGEmrrwB1vhPg" name="pull">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_C2_GQF7iEeGEmrrwB1vhPg" name="ret" type="_wFJ3IP91Ed6Jt8e-UqrRdQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_C3AUYF7iEeGEmrrwB1vhPg" name="hasData">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_C3A7cF7iEeGEmrrwB1vhPg" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_Bv7l0B-VEd6nGq8wpI2tjg"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_dtI0wGkXEeWAzPO1wYNudw" name="derivedTypes">
+ <packagedElement xmi:type="uml:Package" xmi:id="_dtKC4GkXEeWAzPO1wYNudw" name="ProducerTwoConsumers">
+ <packagedElement xmi:type="uml:Package" xmi:id="_dtKC4WkXEeWAzPO1wYNudw" name="components">
+ <packagedElement xmi:type="uml:Package" xmi:id="_dtKC4mkXEeWAzPO1wYNudw" name="interfaces">
+ <packagedElement xmi:type="uml:Interface" xmi:id="_dtKp8GkXEeWAzPO1wYNudw" name="Push_PubData">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_dtahkGkXEeWAzPO1wYNudw" name="push">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_dtahkWkXEeWAzPO1wYNudw" name="data" type="_wFJ3IP91Ed6Jt8e-UqrRdQ"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_dtSlwGkXEeWAzPO1wYNudw" name="CPush_PubData"/>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_O6TiIjLUEd26WNosUASSSw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_O6TiIzLUEd26WNosUASSSw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_GcC0cAHtEd6HSdiss9GQ0A">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Gd1kMAHtEd6HSdiss9GQ0A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/C_Cpp/1#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_z1TwgFW3Ed63BrxiKsw-0Q">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_z2GasFW3Ed63BrxiKsw-0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/FCM/1#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://FCM_PROFILES/FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_sfyAwEbjEd-l4NeVOJZDkA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_siunEEbjEd-l4NeVOJZDkA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//GCM"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_YgAioAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_SPVg0KmqEeCxII-g1_Lmeg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Se6N4KmqEeCxII-g1_Lmeg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_b9oZ5rG3Ed-tmN4hwNCxXQ"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_3VS0wAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_SfbyUKmqEeCxII-g1_Lmeg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SuJjwKmqEeCxII-g1_Lmeg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//SW_ResourceCore"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_-1fcUBJdEdy3Td9UhuLFPg"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_f2hIMKmqEeCxII-g1_Lmeg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gEtVMKmqEeCxII-g1_Lmeg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//SW_Concurrency"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_A_vtYBJeEdy3Td9UhuLFPg"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_popJkKmqEeCxII-g1_Lmeg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_p1PbIKmqEeCxII-g1_Lmeg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//HLAM"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_yNSZIAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_yzqusKmqEeCxII-g1_Lmeg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zCWq8KmqEeCxII-g1_Lmeg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//SW_Brokering"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_Cf874BJeEdy3Td9UhuLFPg"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_6xYMIKmqEeCxII-g1_Lmeg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6_6-cKmqEeCxII-g1_Lmeg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//SW_Interaction"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_EIfnABJeEdy3Td9UhuLFPg"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_tZuBwE0tEeG4IqgA7gSE6w">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tisXkE0tEeG4IqgA7gSE6w" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_ar8OsAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ </uml:Model>
+ <FCM:DerivedElement xmi:id="_B9o7sP6yEd6Ie_kieu_3CQ" base_Element="_dH4RIKF4Ed6FqJCjEUrkqQ">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:Port xmi:id="_GofhQP6yEd6Ie_kieu_3CQ" base_Port="_4KiE8DLbEd2qeKRLMdIx_A" type="_wFJ3IP91Ed6Jt8e-UqrRdQ">
+ <kind xmi:type="FCM:PortKind" href="pathmap://QML_CORE/core.uml#_pE6GUFR1Ed6GqrP6fkWBoQ"/>
+ </FCM:Port>
+ <FCM:Port xmi:id="_IWQqoP6yEd6Ie_kieu_3CQ" base_Port="_DtWn4DLcEd2qeKRLMdIx_A" type="_wFJ3IP91Ed6Jt8e-UqrRdQ">
+ <kind xmi:type="FCM:PortKind" href="pathmap://QML_CORE/core.uml#_qOK0cFR1Ed6GqrP6fkWBoQ"/>
+ </FCM:Port>
+ <C_Cpp:Include xmi:id="_7SAnAP76Ed6Zw96O-tCw7A" body="#include &lt;iostream>&#xA;#include &lt;unistd.h>&#xA;using namespace std;" base_class="_IfjoETLbEd2qeKRLMdIx_A"/>
+ <C_Cpp:Include xmi:id="_Sa4nEP77Ed6Zw96O-tCw7A" body="#include &lt;iostream>&#xA;using namespace std;" base_class="_oqZNUDLaEd2qeKRLMdIx_A"/>
+ <FCM:DerivedElement xmi:id="_uOqKgD15Ed-qiK1VZWszhA" base_Element="_uOmgID15Ed-qiK1VZWszhA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_uOz7gD15Ed-qiK1VZWszhA" base_Element="_uOtN0D15Ed-qiK1VZWszhA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <C_Cpp:Visibility xmi:id="_0VnhsD15Ed-qiK1VZWszhA" value="public" base_generalization="_NItbAP94Ed6628OhKk_dpg"/>
+ <FCM:DerivedElement xmi:id="_a4RvMD16Ed-qiK1VZWszhA" base_Element="_uOmgID15Ed-qiK1VZWszhA"/>
+ <FCM:DerivedElement xmi:id="_a4VZkD16Ed-qiK1VZWszhA" base_Element="_uOtN0D15Ed-qiK1VZWszhA"/>
+ <FCM:DerivedElement xmi:id="_cdXBMD17Ed-qiK1VZWszhA" base_Element="_uOmgID15Ed-qiK1VZWszhA"/>
+ <FCM:DerivedElement xmi:id="_cdaEgD17Ed-qiK1VZWszhA" base_Element="_uOtN0D15Ed-qiK1VZWszhA"/>
+ <FCM:DerivedElement xmi:id="_C3YKUEbjEd-l4NeVOJZDkA" base_Element="_uOmgID15Ed-qiK1VZWszhA"/>
+ <FCM:DerivedElement xmi:id="_C3pQEEbjEd-l4NeVOJZDkA" base_Element="_uOtN0D15Ed-qiK1VZWszhA"/>
+ <FCM:DerivedElement xmi:id="_igKiENAAEd-TP80eVS-2Rg" base_Element="_tyjRy8__Ed-TP80eVS-2Rg">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_igVhMNAAEd-TP80eVS-2Rg" base_Element="_tyjRzM__Ed-TP80eVS-2Rg">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <C_Cpp:Include xmi:id="_11OtwPcaEd-KM6l7lmIPkw" body="#include &lt;iostream>&#xA;#include &lt;unistd.h>&#xA;using namespace std;" base_class="_tyiqsc__Ed-TP80eVS-2Rg"/>
+ <FCM:Target xmi:id="_LD_uICr7EeCfcI_SvPT4lw" base_Node="_zY9vMDLiEd2RVeNawwNNzg">
+ <targetArch xmi:type="FCM:TargetArchitecture" href="pathmap://QML_CORE/core.uml#_FYOqwF0OEd-12d_h0i1xhQ"/>
+ <usedOS xmi:type="FCM:OperatingSystem" href="pathmap://QML_CORE/core.uml#_1eULwF0NEd-12d_h0i1xhQ"/>
+ </FCM:Target>
+ <FCM:DeploymentPlan xmi:id="_xB2CEDOFEeCldqx_51Yicg" mainInstance="_xB3QMDOFEeCldqx_51Yicg" base_Package="_xBxwoDOFEeCldqx_51Yicg"/>
+ <GCM:FlowPort xmi:id="_DwpFMJZ7EeCiU5xXzp1cKQ" direction="in" base_Port="_4KiE8DLbEd2qeKRLMdIx_A"/>
+ <GCM:FlowPort xmi:id="_NWXCQJZ7EeCiU5xXzp1cKQ" direction="in" base_Port="_tyiqs8__Ed-TP80eVS-2Rg"/>
+ <FCM:Port xmi:id="_tyjRzc__Ed-TP80eVS-2Rg" base_Port="_tyiqs8__Ed-TP80eVS-2Rg" type="_wFJ3IP91Ed6Jt8e-UqrRdQ">
+ <kind xmi:type="FCM:PortKind" href="pathmap://QML_CORE/core.uml#_x5mL4FRxEd6GqrP6fkWBoQ"/>
+ </FCM:Port>
+ <GCM:FlowPort xmi:id="_ow3PkJZ7EeCiU5xXzp1cKQ" direction="out" base_Port="_DtWn4DLcEd2qeKRLMdIx_A"/>
+ <FCM:DeploymentPlan xmi:id="_zwQc4LF4EeC9yscvWqW-eg" mainInstance="_zwQc4bF4EeC9yscvWqW-eg" base_Package="_zwMLcLF4EeC9yscvWqW-eg"/>
+ <FCM:DerivedElement xmi:id="_T7RXwAcsEeGYWLReZHFIwA" base_Element="_T7D8YAcsEeGYWLReZHFIwA" source="_rkw88F7hEeGEmrrwB1vhPg"/>
+ <Alloc:Allocate xmi:id="_vccHcE0tEeG4IqgA7gSE6w" base_Abstraction="_vcX2AE0tEeG4IqgA7gSE6w"/>
+ <Alloc:Allocate xmi:id="_wq1NME0tEeG4IqgA7gSE6w" base_Abstraction="_wqyJ4E0tEeG4IqgA7gSE6w"/>
+ <FCM:Connector xmi:id="_Kgl40FupEeGjjMeADLT5-g" base_Property="_EM2p4FupEeGjjMeADLT5-g"/>
+ <FCM:DerivedElement xmi:id="_rkgeQF7hEeGEmrrwB1vhPg" base_Element="_rkTC4F7hEeGEmrrwB1vhPg" source="_wFJ3IP91Ed6Jt8e-UqrRdQ"/>
+ <FCM:DerivedElement xmi:id="_C2kPgF7iEeGEmrrwB1vhPg" base_Element="_C2ev8F7iEeGEmrrwB1vhPg" source="_wFJ3IP91Ed6Jt8e-UqrRdQ"/>
+ <FCM:RuleApplication xmi:id="_Jyda4F7zEeGA7qTe7UD05A" base_Class="_tyiqsc__Ed-TP80eVS-2Rg">
+ <containerRule xmi:type="FCM:ContainerRule" href="pathmap://QML_CORE/core.uml#_3Jq5MARLEd-OidZzGKCpzg"/>
+ <propagateRule>false</propagateRule>
+ </FCM:RuleApplication>
+ <FCM:ConfigurationProperty xmi:id="_o8LRoF8DEeGerN33d-RdRg" base_Property="_kLNdAF8DEeGerN33d-RdRg"/>
+ <FCM:Connector xmi:id="_COvyMGkBEeGgxNn3NWRjCQ" base_Property="_wG5YcF7uEeGA7qTe7UD05A"/>
+ <FCM:DerivedElement xmi:id="_dtR-sGkXEeWAzPO1wYNudw" base_Element="_dtKp8GkXEeWAzPO1wYNudw" source="_wFJ3IP91Ed6Jt8e-UqrRdQ"/>
+ <FCM:DerivedElement xmi:id="_dtZ6gGkXEeWAzPO1wYNudw" base_Element="_dtSlwGkXEeWAzPO1wYNudw" source="_wFJ3IP91Ed6Jt8e-UqrRdQ"/>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-CDTeditor.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-CDTeditor.png
new file mode 100644
index 00000000000..fc3d356a890
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-CDTeditor.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-OpenCDTeditor.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-OpenCDTeditor.png
new file mode 100644
index 00000000000..2d035823791
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-OpenCDTeditor.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-classdiag.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-classdiag.png
new file mode 100644
index 00000000000..243f412cdf9
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-classdiag.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-component.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-component.png
new file mode 100644
index 00000000000..88c03612ba9
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-component.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-component.svg b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-component.svg
new file mode 100644
index 00000000000..0170b7235ea
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-component.svg
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-dasharray="none" shape-rendering="auto" font-family="'Dialog'" width="671" text-rendering="auto" fill-opacity="1" contentScriptType="text/ecmascript" color-interpolation="auto" color-rendering="auto" preserveAspectRatio="xMidYMid meet" font-size="12" viewBox="0 0 671 279" fill="black" stroke="black" image-rendering="auto" stroke-miterlimit="10" zoomAndPan="magnify" version="1.0" stroke-linecap="square" stroke-linejoin="miter" contentStyleType="text/css" font-style="normal" height="279" stroke-width="1" stroke-dashoffset="0" font-weight="normal" stroke-opacity="1">
+<!--Generated by the Batik Graphics2D SVG Generator-->
+<defs id="genericDefs"/>
+<g>
+<defs id="defs1">
+<linearGradient x1="20" x2="20" y1="152" gradientUnits="userSpaceOnUse" y2="261" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient1" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="white" offset="0%"/>
+<stop stop-opacity="1" stop-color="rgb(225,225,135)" offset="100%"/>
+</linearGradient>
+<linearGradient x1="10" x2="10" y1="173" gradientUnits="userSpaceOnUse" y2="193" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient2" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="white" offset="0%"/>
+<stop stop-opacity="1" stop-color="rgb(195,209,213)" offset="100%"/>
+</linearGradient>
+<linearGradient x1="360" x2="360" y1="127" gradientUnits="userSpaceOnUse" y2="207" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient3" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="rgb(255,255,204)" offset="0%"/>
+<stop stop-opacity="1" stop-color="white" offset="100%"/>
+</linearGradient>
+<linearGradient x1="360" x2="360" y1="10" gradientUnits="userSpaceOnUse" y2="124" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient4" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="rgb(255,255,204)" offset="0%"/>
+<stop stop-opacity="1" stop-color="white" offset="100%"/>
+</linearGradient>
+<linearGradient x1="360" x2="360" y1="212" gradientUnits="userSpaceOnUse" y2="269" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient5" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="rgb(255,255,204)" offset="0%"/>
+<stop stop-opacity="1" stop-color="white" offset="100%"/>
+</linearGradient>
+<linearGradient x1="20" x2="20" y1="10" gradientUnits="userSpaceOnUse" y2="83" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient6" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="white" offset="0%"/>
+<stop stop-opacity="1" stop-color="rgb(195,215,221)" offset="100%"/>
+</linearGradient>
+<linearGradient x1="10" x2="10" y1="27" gradientUnits="userSpaceOnUse" y2="47" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient7" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="white" offset="0%"/>
+<stop stop-opacity="1" stop-color="rgb(195,209,213)" offset="100%"/>
+</linearGradient>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath1">
+<path d="M20 152 L20 260 L280 260 L280 152 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath2">
+<path d="M112 154 L188 154 L188 173 L112 173 L112 154 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath3">
+<path d="M64 208 L229 208 L229 250 L64 250 L64 208 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath4">
+<path d="M71 213 L224 213 L224 230 L71 230 L71 213 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath5">
+<path d="M75 229 L219 229 L219 246 L75 246 L75 229 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath6">
+<path d="M19 172 L282 172 L282 262 L19 262 L19 172 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath7">
+<path d="M19 151 L282 151 L282 262 L19 262 L19 151 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath8">
+<path d="M10 173 L10 192 L29 192 L29 173 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath9">
+<path d="M9 172 L31 172 L31 194 L9 194 L9 172 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath10">
+<path d="M34 175 L138 175 L138 192 L34 192 L34 175 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath11">
+<path d="M360 127 L360 206 L660 206 L660 139 L648 127 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath12">
+<path d="M365 132 L640 132 L640 202 L365 202 L365 132 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath13">
+<path d="M359 126 L662 126 L662 208 L359 208 L359 126 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath14">
+<path d="M360 10 L360 123 L660 123 L660 22 L648 10 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath15">
+<path d="M365 15 L644 15 L644 119 L365 119 L365 15 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath16">
+<path d="M359 9 L662 9 L662 125 L359 125 L359 9 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath17">
+<path d="M360 212 L360 268 L660 268 L660 224 L648 212 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath18">
+<path d="M365 217 L641 217 L641 264 L365 264 L365 217 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath19">
+<path d="M359 211 L662 211 L662 270 L359 270 L359 211 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath20">
+<path d="M20 10 L20 82 L280 82 L280 10 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath21">
+<path d="M126 12 L175 12 L175 29 L126 29 L126 12 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath22">
+<path d="M19 28 L282 28 L282 84 L19 84 L19 28 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath23">
+<path d="M19 9 L282 9 L282 84 L19 84 L19 9 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath24">
+<path d="M10 27 L10 46 L29 46 L29 27 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath25">
+<path d="M9 26 L31 26 L31 48 L9 48 L9 26 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath26">
+<path d="M34 29 L138 29 L138 46 L34 46 L34 29 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath27">
+<path d="M-1 -1 L672 -1 L672 280 L-1 280 L-1 -1 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath28">
+<path d="M131 82 L150 82 L150 95 L131 95 L131 82 Z"/>
+</clipPath>
+</defs>
+<g fill="url(#linearGradient1)" stroke-miterlimit="0" stroke-width="0" stroke="url(#linearGradient1)" stroke-linejoin="round">
+<rect x="20" y="152" clip-path="url(#clipPath1)" width="261" height="109" stroke="none"/>
+<text x="113" font-size="13" y="168" clip-path="url(#clipPath2)" fill="black" stroke="none" xml:space="preserve">HelloWorld </text>
+<rect x="65" y="209" clip-path="url(#clipPath3)" fill="white" width="163" rx="0" ry="0" height="40" stroke="none"/>
+<text x="72" y="226" clip-path="url(#clipPath4)" fill="black" stroke="none" xml:space="preserve">«ConfigurationProperty»</text>
+<text x="76" y="242" clip-path="url(#clipPath5)" fill="black" stroke="none" xml:space="preserve"> + message: String [1]</text>
+</g>
+<g stroke-linecap="butt" stroke-width="1.1">
+<rect x="65" y="209" clip-path="url(#clipPath3)" fill="none" width="162" rx="0" ry="0" height="39"/>
+<line clip-path="url(#clipPath6)" fill="none" x1="20" x2="281" y1="173" y2="173"/>
+<rect x="20" y="152" clip-path="url(#clipPath7)" fill="none" width="260" rx="0" ry="0" height="108"/>
+<rect x="10" y="173" clip-path="url(#clipPath8)" fill="url(#linearGradient2)" width="20" height="20" stroke="none"/>
+<rect x="10" y="173" clip-path="url(#clipPath9)" fill="none" width="19" rx="0" ry="0" height="19"/>
+<text xml:space="preserve" x="35" y="188" clip-path="url(#clipPath10)" stroke="none"> start: IStart [1]</text>
+<rect x="360" y="127" clip-path="url(#clipPath11)" fill="url(#linearGradient3)" width="301" height="80" stroke="none"/>
+<text x="366" font-size="13" y="146" clip-path="url(#clipPath12)" stroke="none" xml:space="preserve">Simple HelloWorld component that prints a</text>
+<text x="366" font-size="13" y="163" clip-path="url(#clipPath12)" stroke="none" xml:space="preserve">message in its "run" operation that is</text>
+<text x="366" font-size="13" y="180" clip-path="url(#clipPath12)" stroke="none" xml:space="preserve">provided via the "start" port</text>
+<line clip-path="url(#clipPath13)" fill="none" x1="360" x2="648" y1="127" y2="127"/>
+<line clip-path="url(#clipPath13)" fill="none" x1="648" x2="660" y1="127" y2="139"/>
+<line clip-path="url(#clipPath13)" fill="none" x1="660" x2="660" y1="139" y2="206"/>
+<line clip-path="url(#clipPath13)" fill="none" x1="660" x2="360" y1="206" y2="206"/>
+<line clip-path="url(#clipPath13)" fill="none" x1="360" x2="360" y1="206" y2="127"/>
+<line clip-path="url(#clipPath13)" fill="none" x1="360" x2="360" y1="127" y2="127"/>
+<line clip-path="url(#clipPath13)" fill="none" x1="648" x2="648" y1="127" y2="139"/>
+<line clip-path="url(#clipPath13)" fill="none" x1="648" x2="661" y1="139" y2="139"/>
+<rect x="360" y="10" clip-path="url(#clipPath14)" fill="url(#linearGradient4)" width="301" height="114" stroke="none"/>
+<text x="366" font-size="13" y="29" clip-path="url(#clipPath15)" stroke="none" xml:space="preserve">Part of the Qompass core model library.</text>
+<text x="366" font-size="13" y="46" clip-path="url(#clipPath15)" stroke="none" xml:space="preserve">Provides the specific port "start". The "run"</text>
+<text x="366" font-size="13" y="63" clip-path="url(#clipPath15)" stroke="none" xml:space="preserve">operation (defined within interface IStart) of</text>
+<text x="366" font-size="13" y="80" clip-path="url(#clipPath15)" stroke="none" xml:space="preserve">this port is called by generated boot-code</text>
+<text x="366" font-size="13" y="97" clip-path="url(#clipPath15)" stroke="none" xml:space="preserve">after instantiation and configuration of a</text>
+<text x="366" font-size="13" y="114" clip-path="url(#clipPath15)" stroke="none" xml:space="preserve">component. </text>
+<line clip-path="url(#clipPath16)" fill="none" x1="360" x2="648" y1="10" y2="10"/>
+<line clip-path="url(#clipPath16)" fill="none" x1="648" x2="660" y1="10" y2="22"/>
+<line clip-path="url(#clipPath16)" fill="none" x1="660" x2="660" y1="22" y2="123"/>
+<line clip-path="url(#clipPath16)" fill="none" x1="660" x2="360" y1="123" y2="123"/>
+<line clip-path="url(#clipPath16)" fill="none" x1="360" x2="360" y1="123" y2="10"/>
+<line clip-path="url(#clipPath16)" fill="none" x1="360" x2="360" y1="10" y2="10"/>
+<line clip-path="url(#clipPath16)" fill="none" x1="648" x2="648" y1="10" y2="22"/>
+<line clip-path="url(#clipPath16)" fill="none" x1="648" x2="661" y1="22" y2="22"/>
+<rect x="360" y="212" clip-path="url(#clipPath17)" fill="url(#linearGradient5)" width="301" height="57" stroke="none"/>
+<text xml:space="preserve" x="366" y="230" clip-path="url(#clipPath18)" stroke="none">Configuration attribute within the Hello</text>
+<text xml:space="preserve" x="366" y="245" clip-path="url(#clipPath18)" stroke="none">World component. Its value is configured on</text>
+<text xml:space="preserve" x="366" y="260" clip-path="url(#clipPath18)" stroke="none">the instance level.</text>
+<line clip-path="url(#clipPath19)" fill="none" x1="360" x2="648" y1="212" y2="212"/>
+<line clip-path="url(#clipPath19)" fill="none" x1="648" x2="660" y1="212" y2="224"/>
+<line clip-path="url(#clipPath19)" fill="none" x1="660" x2="660" y1="224" y2="268"/>
+<line clip-path="url(#clipPath19)" fill="none" x1="660" x2="360" y1="268" y2="268"/>
+<line clip-path="url(#clipPath19)" fill="none" x1="360" x2="360" y1="268" y2="212"/>
+<line clip-path="url(#clipPath19)" fill="none" x1="360" x2="360" y1="212" y2="212"/>
+<line clip-path="url(#clipPath19)" fill="none" x1="648" x2="648" y1="212" y2="224"/>
+<line clip-path="url(#clipPath19)" fill="none" x1="648" x2="661" y1="224" y2="224"/>
+<rect x="20" y="10" clip-path="url(#clipPath20)" fill="url(#linearGradient6)" width="261" height="73" stroke="none"/>
+<text x="127" y="25" clip-path="url(#clipPath21)" font-style="italic" stroke="none" xml:space="preserve">Cstart </text>
+<line clip-path="url(#clipPath22)" fill="none" x1="20" x2="281" y1="29" y2="29"/>
+<rect x="20" y="10" clip-path="url(#clipPath23)" fill="none" width="260" rx="0" ry="0" height="72"/>
+<rect x="10" y="27" clip-path="url(#clipPath24)" fill="url(#linearGradient7)" width="20" height="20" stroke="none"/>
+<rect x="10" y="27" clip-path="url(#clipPath25)" fill="none" width="19" rx="0" ry="0" height="19"/>
+<text xml:space="preserve" x="35" y="42" clip-path="url(#clipPath26)" stroke="none"> start: IStart [1]</text>
+<line clip-path="url(#clipPath27)" fill="none" text-rendering="optimizeLegibility" x1="140" x2="140" y1="152" y2="83"/>
+</g>
+<g stroke-linecap="butt" font-size="13" fill="white" text-rendering="optimizeLegibility" stroke="white" stroke-width="1.1">
+<polygon clip-path="url(#clipPath28)" points=" 140 83 148 93 132 93" stroke="none"/>
+<polygon fill="none" clip-path="url(#clipPath28)" points=" 140 83 148 93 132 93" stroke="black"/>
+<line clip-path="url(#clipPath27)" fill="none" x1="360" x2="281" y1="52" y2="52" stroke-dasharray="6.6,3.3" stroke="black"/>
+<line clip-path="url(#clipPath27)" fill="none" x1="360" x2="281" y1="172" y2="172" stroke-dasharray="6.6,3.3" stroke="black"/>
+</g>
+<g text-rendering="optimizeLegibility" stroke-width="1.1" stroke-dasharray="6.6,3.3" stroke-linecap="butt">
+<line clip-path="url(#clipPath27)" fill="none" x1="360" x2="294" y1="232" y2="232"/>
+<line clip-path="url(#clipPath27)" fill="none" x1="294" x2="228" y1="232" y2="232"/>
+</g>
+</g>
+</svg>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-deployment.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-deployment.png
new file mode 100644
index 00000000000..a53b6fdf43d
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-deployment.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-deployment.svg b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-deployment.svg
new file mode 100644
index 00000000000..e69c7837eee
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-deployment.svg
@@ -0,0 +1,207 @@
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-dasharray="none" shape-rendering="auto" font-family="'Dialog'" width="650" text-rendering="auto" fill-opacity="1" contentScriptType="text/ecmascript" color-interpolation="auto" color-rendering="auto" preserveAspectRatio="xMidYMid meet" font-size="12" viewBox="0 0 650 487" fill="black" stroke="black" image-rendering="auto" stroke-miterlimit="10" zoomAndPan="magnify" version="1.0" stroke-linecap="square" stroke-linejoin="miter" contentStyleType="text/css" font-style="normal" height="487" stroke-width="1" stroke-dashoffset="0" font-weight="normal" stroke-opacity="1">
+<!--Generated by the Batik Graphics2D SVG Generator-->
+<defs id="genericDefs"/>
+<g>
+<defs id="defs1">
+<linearGradient x1="77" x2="77" y1="47" gradientUnits="userSpaceOnUse" y2="67" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient1" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="white" offset="0%"/>
+<stop stop-opacity="1" stop-color="rgb(195,209,213)" offset="100%"/>
+</linearGradient>
+<linearGradient x1="338" x2="338" y1="41" gradientUnits="userSpaceOnUse" y2="83" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient2" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="rgb(255,255,204)" offset="0%"/>
+<stop stop-opacity="1" stop-color="white" offset="100%"/>
+</linearGradient>
+<linearGradient x1="43" x2="43" y1="223" gradientUnits="userSpaceOnUse" y2="477" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient3" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="white" offset="0%"/>
+<stop stop-opacity="1" stop-color="rgb(225,225,135)" offset="100%"/>
+</linearGradient>
+<linearGradient x1="373" x2="373" y1="365" gradientUnits="userSpaceOnUse" y2="467" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient4" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="rgb(255,255,204)" offset="0%"/>
+<stop stop-opacity="1" stop-color="white" offset="100%"/>
+</linearGradient>
+<linearGradient x1="338" x2="338" y1="113" gradientUnits="userSpaceOnUse" y2="185" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient5" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="rgb(255,255,204)" offset="0%"/>
+<stop stop-opacity="1" stop-color="white" offset="100%"/>
+</linearGradient>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath1">
+<path d="M76 46 L112 46 L112 68 L76 68 L76 46 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath2">
+<path d="M78 48 L112 48 L112 66 L78 66 L78 48 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath3">
+<path d="M130 49 L273 49 L273 68 L130 68 L130 49 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath4">
+<path d="M338 41 L338 82 L563 82 L563 53 L551 41 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath5">
+<path d="M343 46 L538 46 L538 78 L343 78 L343 46 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath6">
+<path d="M337 40 L565 40 L565 84 L337 84 L337 40 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath7">
+<path d="M43 223 L43 477 L640 477 L640 262 L168 262 L168 223 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath8">
+<path d="M41 221 L642 221 L642 479 L41 479 L41 221 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath9">
+<path d="M47 225 L164 225 L164 242 L47 242 L47 225 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath10">
+<path d="M47 243 L146 243 L146 260 L47 260 L47 243 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath11">
+<path d="M62 280 L325 280 L325 339 L62 339 L62 280 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath12">
+<path d="M124 283 L263 283 L263 300 L124 300 L124 283 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath13">
+<path d="M67 301 L312 301 L312 318 L67 318 L67 301 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath14">
+<path d="M62 299 L325 299 L325 339 L62 339 L62 299 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath15">
+<path d="M62 400 L325 400 L325 466 L62 466 L62 400 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath16">
+<path d="M97 403 L290 403 L290 420 L97 420 L97 403 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath17">
+<path d="M67 421 L289 421 L289 438 L67 438 L67 421 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath18">
+<path d="M62 419 L325 419 L325 466 L62 466 L62 419 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath19">
+<path d="M422 280 L587 280 L587 328 L422 328 L422 280 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath20">
+<path d="M433 295 L578 295 L578 312 L433 312 L433 295 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath21">
+<path d="M373 365 L373 466 L607 466 L607 377 L595 365 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath22">
+<path d="M378 370 L592 370 L592 462 L378 462 L378 370 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath23">
+<path d="M372 364 L609 364 L609 468 L372 468 L372 364 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath24">
+<path d="M42 261 L641 261 L641 478 L42 478 L42 261 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath25">
+<path d="M338 113 L338 184 L563 184 L563 125 L551 113 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath26">
+<path d="M343 118 L546 118 L546 180 L343 180 L343 118 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath27">
+<path d="M337 112 L565 112 L565 186 L337 186 L337 112 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath28">
+<path d="M-1 -1 L651 -1 L651 488 L-1 488 L-1 -1 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath29">
+<path d="M337 287 L403 287 L403 304 L337 304 L337 287 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath30">
+<path d="M407 298 L425 298 L425 311 L407 311 L407 298 Z"/>
+</clipPath>
+</defs>
+<g font-size="13" fill="url(#linearGradient1)" stroke-linejoin="round" stroke="url(#linearGradient1)" stroke-width="0" stroke-miterlimit="0">
+<rect x="77" y="47" clip-path="url(#clipPath1)" width="34" height="20" stroke="none"/>
+</g>
+<g font-size="13" font-family="'Arial'" stroke-linejoin="round" font-weight="bold" stroke-width="0" stroke-miterlimit="0">
+<image x="79" y="49" clip-path="url(#clipPath2)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAgElEQVR42mNkgID/&#10;DKQDRjgBNmDWTuK1prnDDWFioBCwYDGVPAP+/yc+GBgZGbG4AE0CGeAznAVDBD0w&#10;CXiNBU8I43U6zHEYBsy7gMpPMsAtD5JjITXQ0AFR6QAUiLgCkoXUeEf3EgshBdii&#10;E8lLjCzExjfeHEVmbkTJTIzkZiYAPQ0grs1PsT4AAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<image x="95" y="49" clip-path="url(#clipPath2)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABT0lEQVR42mNgoBAw&#10;gojuaav/k6O5NCuUkQXG8YoNIUnztsVrwDQLsqAYG8xNQAB0k13ZUayaD3VZw9lM&#10;KP4Bamb8DxEEYQuZ3wwM//4A8V8I/v+XgRFIMzIy4DAAJMAIdQSQ6M13YLCQ+w/U&#10;BDIIiP/+Zvj/7xcDkn5ULzBBZUCu+A9kF004wHDy3ncwh5HxP8xnKLaiuIAZihlh&#10;mm9/BLr6F9D2nwzmSpxAF/wCY2ZcXoD53TJjFcPJG6+Ain8yMAI1mKvyM0wqcADT&#10;ID5BL5hriDGcvPoErNBMW4ZhSqEDmD0VSKMDFBeYJM1lyO4/wDAdqNAcqPE/MxvD&#10;9CIHsJNB3mKCeo+JEYcLzs9PZjCKm8GQ2c/AMKPIATPJMjKgOB9rNF5YlMFw6twV&#10;eHTCwoURyoe5BHcYAOPp4tIceMJCdwEDMo1sAChtb2MYAAAA1AdiKtZdY1UAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+</g>
+<g font-size="13" stroke-width="1.1" stroke-linecap="butt">
+<rect x="77" y="47" clip-path="url(#clipPath1)" fill="none" width="33" height="19"/>
+<text xml:space="preserve" x="131" y="63" clip-path="url(#clipPath3)" stroke="none">HelloWorldComponent</text>
+<rect x="338" y="41" clip-path="url(#clipPath4)" fill="url(#linearGradient2)" width="226" height="42" stroke="none"/>
+<text x="344" font-size="12" y="59" clip-path="url(#clipPath5)" stroke="none" xml:space="preserve">Cross references to composite</text>
+<text x="344" font-size="12" y="74" clip-path="url(#clipPath5)" stroke="none" xml:space="preserve">diagram</text>
+<line clip-path="url(#clipPath6)" fill="none" x1="338" x2="551" y1="41" y2="41"/>
+<line clip-path="url(#clipPath6)" fill="none" x1="551" x2="563" y1="41" y2="53"/>
+<line clip-path="url(#clipPath6)" fill="none" x1="563" x2="563" y1="53" y2="82"/>
+<line clip-path="url(#clipPath6)" fill="none" x1="563" x2="338" y1="82" y2="82"/>
+<line clip-path="url(#clipPath6)" fill="none" x1="338" x2="338" y1="82" y2="41"/>
+<line clip-path="url(#clipPath6)" fill="none" x1="338" x2="338" y1="41" y2="41"/>
+<line clip-path="url(#clipPath6)" fill="none" x1="551" x2="551" y1="41" y2="53"/>
+<line clip-path="url(#clipPath6)" fill="none" x1="551" x2="564" y1="53" y2="53"/>
+<rect x="43" y="223" clip-path="url(#clipPath7)" fill="url(#linearGradient3)" width="597" height="254" stroke="none"/>
+<line clip-path="url(#clipPath8)" fill="none" x1="43" x2="168" y1="223" y2="223"/>
+<line clip-path="url(#clipPath8)" fill="none" x1="168" x2="168" y1="223" y2="262"/>
+<line clip-path="url(#clipPath8)" fill="none" x1="168" x2="640" y1="262" y2="262"/>
+<line clip-path="url(#clipPath8)" fill="none" x1="640" x2="640" y1="262" y2="477"/>
+<line clip-path="url(#clipPath8)" fill="none" x1="640" x2="43" y1="477" y2="477"/>
+<line clip-path="url(#clipPath8)" fill="none" x1="43" x2="43" y1="477" y2="223"/>
+<text x="48" font-size="12" y="238" clip-path="url(#clipPath9)" stroke="none" xml:space="preserve">«DeploymentPlan»</text>
+<text x="48" font-size="12" y="256" clip-path="url(#clipPath10)" stroke="none" xml:space="preserve">SystemDepPlan</text>
+<rect x="63" y="281" clip-path="url(#clipPath11)" fill="white" width="261" rx="0" ry="0" height="57" stroke="none"/>
+<text x="125" font-size="12" y="296" clip-path="url(#clipPath12)" stroke="none" xml:space="preserve">mainInstance: System</text>
+<text x="68" font-size="12" y="314" clip-path="url(#clipPath13)" stroke="none" xml:space="preserve">hello : HelloWorld = mainInstance.hello</text>
+<line clip-path="url(#clipPath14)" fill="none" x1="63" x2="324" y1="300" y2="300"/>
+<rect x="63" y="281" clip-path="url(#clipPath11)" fill="none" width="260" rx="0" ry="0" height="56"/>
+<rect x="63" y="401" clip-path="url(#clipPath15)" fill="white" width="261" rx="0" ry="0" height="64" stroke="none"/>
+<text x="98" font-size="12" y="416" clip-path="url(#clipPath16)" stroke="none" xml:space="preserve">mainInstance.hello: HelloWorld</text>
+<text x="68" font-size="12" y="434" clip-path="url(#clipPath17)" stroke="none" xml:space="preserve">message : String = "Test message"</text>
+<line clip-path="url(#clipPath18)" fill="none" x1="63" x2="324" y1="420" y2="420"/>
+<rect x="63" y="401" clip-path="url(#clipPath15)" fill="none" width="260" rx="0" ry="0" height="63"/>
+<rect x="423" y="281" clip-path="url(#clipPath19)" fill="white" width="163" rx="0" ry="0" height="46" stroke="none"/>
+<text x="434" font-size="12" y="308" clip-path="url(#clipPath20)" stroke="none" xml:space="preserve">monoNode: MonoNode</text>
+<rect x="423" y="281" clip-path="url(#clipPath19)" fill="none" width="162" rx="0" ry="0" height="45"/>
+<rect x="373" y="365" clip-path="url(#clipPath21)" fill="url(#linearGradient4)" width="235" height="102" stroke="none"/>
+<text x="379" font-size="12" y="383" clip-path="url(#clipPath22)" stroke="none" xml:space="preserve">Value mainInstance.hello is a UML</text>
+<text x="379" font-size="12" y="398" clip-path="url(#clipPath22)" stroke="none" xml:space="preserve">instance-value, i.e. a reference to</text>
+<text x="379" font-size="12" y="413" clip-path="url(#clipPath22)" stroke="none" xml:space="preserve">the instance specification on the</text>
+<text x="379" font-size="12" y="428" clip-path="url(#clipPath22)" stroke="none" xml:space="preserve">left.</text>
+<text x="379" font-size="12" y="443" clip-path="url(#clipPath22)" stroke="none" xml:space="preserve">"Test message" is a StringValue</text>
+<text x="379" font-size="12" y="458" clip-path="url(#clipPath22)" stroke="none" xml:space="preserve">initializing the message attribute</text>
+<line clip-path="url(#clipPath23)" fill="none" x1="373" x2="595" y1="365" y2="365"/>
+<line clip-path="url(#clipPath23)" fill="none" x1="595" x2="607" y1="365" y2="377"/>
+<line clip-path="url(#clipPath23)" fill="none" x1="607" x2="607" y1="377" y2="466"/>
+<line clip-path="url(#clipPath23)" fill="none" x1="607" x2="373" y1="466" y2="466"/>
+<line clip-path="url(#clipPath23)" fill="none" x1="373" x2="373" y1="466" y2="365"/>
+<line clip-path="url(#clipPath23)" fill="none" x1="373" x2="373" y1="365" y2="365"/>
+<line clip-path="url(#clipPath23)" fill="none" x1="595" x2="595" y1="365" y2="377"/>
+<line clip-path="url(#clipPath23)" fill="none" x1="595" x2="608" y1="377" y2="377"/>
+<line clip-path="url(#clipPath24)" fill="none" x1="43" x2="640" y1="262" y2="262"/>
+<rect x="338" y="113" clip-path="url(#clipPath25)" fill="url(#linearGradient5)" width="226" height="72" stroke="none"/>
+<text x="344" font-size="12" y="131" clip-path="url(#clipPath26)" stroke="none" xml:space="preserve">Deployment plan for system, i.e.</text>
+<text x="344" font-size="12" y="146" clip-path="url(#clipPath26)" stroke="none" xml:space="preserve">set of instance specification</text>
+<text x="344" font-size="12" y="161" clip-path="url(#clipPath26)" stroke="none" xml:space="preserve">along with configuration and</text>
+<text x="344" font-size="12" y="176" clip-path="url(#clipPath26)" stroke="none" xml:space="preserve">allocation</text>
+<line clip-path="url(#clipPath27)" fill="none" x1="338" x2="551" y1="113" y2="113"/>
+<line clip-path="url(#clipPath27)" fill="none" x1="551" x2="563" y1="113" y2="125"/>
+<line clip-path="url(#clipPath27)" fill="none" x1="563" x2="563" y1="125" y2="184"/>
+<line clip-path="url(#clipPath27)" fill="none" x1="563" x2="338" y1="184" y2="184"/>
+<line clip-path="url(#clipPath27)" fill="none" x1="338" x2="338" y1="184" y2="113"/>
+<line clip-path="url(#clipPath27)" fill="none" x1="338" x2="338" y1="113" y2="113"/>
+<line clip-path="url(#clipPath27)" fill="none" x1="551" x2="551" y1="113" y2="125"/>
+<line clip-path="url(#clipPath27)" fill="none" x1="551" x2="564" y1="125" y2="125"/>
+<line clip-path="url(#clipPath28)" fill="none" text-rendering="optimizeLegibility" x1="324" x2="423" y1="304" y2="304" stroke-dasharray="5,5,5,5,5,5,5,5,5,5"/>
+<text x="338" font-size="12" y="300" clip-path="url(#clipPath29)" text-rendering="optimizeLegibility" stroke-dasharray="5,5,5,5,5,5,5,5,5,5" stroke="none" xml:space="preserve">«Allocate»</text>
+<line clip-path="url(#clipPath30)" fill="none" text-rendering="optimizeLegibility" x1="408" x2="423" y1="309" y2="304"/>
+<line clip-path="url(#clipPath30)" fill="none" text-rendering="optimizeLegibility" x1="423" x2="408" y1="304" y2="299"/>
+<line clip-path="url(#clipPath28)" fill="none" text-rendering="optimizeLegibility" x1="373" x2="259" y1="377" y2="377" stroke-dasharray="6.6,3.3"/>
+<line clip-path="url(#clipPath28)" fill="none" text-rendering="optimizeLegibility" x1="259" x2="259" y1="377" y2="338" stroke-dasharray="6.6,3.3"/>
+<line clip-path="url(#clipPath28)" fill="none" text-rendering="optimizeLegibility" x1="373" x2="324" y1="430" y2="430" stroke-dasharray="6.6,3.3"/>
+<line clip-path="url(#clipPath28)" fill="none" text-rendering="optimizeLegibility" x1="324" x2="423" y1="304" y2="304" stroke-dasharray="5,5,5,5,5,5,5,5,5,5"/>
+<text x="338" font-size="12" y="300" clip-path="url(#clipPath29)" text-rendering="optimizeLegibility" stroke-dasharray="5,5,5,5,5,5,5,5,5,5" stroke="none" xml:space="preserve">«Allocate»</text>
+<line clip-path="url(#clipPath30)" fill="none" text-rendering="optimizeLegibility" x1="408" x2="423" y1="309" y2="304"/>
+<line clip-path="url(#clipPath30)" fill="none" text-rendering="optimizeLegibility" x1="423" x2="408" y1="304" y2="299"/>
+<line clip-path="url(#clipPath28)" fill="none" text-rendering="optimizeLegibility" x1="338" x2="154" y1="151" y2="151" stroke-dasharray="6.6,3.3"/>
+<line clip-path="url(#clipPath28)" fill="none" text-rendering="optimizeLegibility" x1="154" x2="154" y1="151" y2="223" stroke-dasharray="6.6,3.3"/>
+<line clip-path="url(#clipPath28)" fill="none" text-rendering="optimizeLegibility" x1="373" x2="259" y1="377" y2="377" stroke-dasharray="6.6,3.3"/>
+<line clip-path="url(#clipPath28)" fill="none" text-rendering="optimizeLegibility" x1="259" x2="259" y1="377" y2="338" stroke-dasharray="6.6,3.3"/>
+<line clip-path="url(#clipPath28)" fill="none" text-rendering="optimizeLegibility" x1="373" x2="324" y1="430" y2="430" stroke-dasharray="6.6,3.3"/>
+</g>
+</g>
+</svg>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-platform.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-platform.png
new file mode 100644
index 00000000000..b13395ea580
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-platform.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-platform.svg b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-platform.svg
new file mode 100644
index 00000000000..a2b99233272
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-platform.svg
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-dasharray="none" shape-rendering="auto" font-family="'Dialog'" width="648" text-rendering="auto" fill-opacity="1" contentScriptType="text/ecmascript" color-interpolation="auto" color-rendering="auto" preserveAspectRatio="xMidYMid meet" font-size="12" viewBox="0 0 648 254" fill="black" stroke="black" image-rendering="auto" stroke-miterlimit="10" zoomAndPan="magnify" version="1.0" stroke-linecap="square" stroke-linejoin="miter" contentStyleType="text/css" font-style="normal" height="254" stroke-width="1" stroke-dashoffset="0" font-weight="normal" stroke-opacity="1">
+<!--Generated by the Batik Graphics2D SVG Generator-->
+<defs id="genericDefs"/>
+<g>
+<defs id="defs1">
+<linearGradient x1="10" x2="10" y1="10" gradientUnits="userSpaceOnUse" y2="164" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient1" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="white" offset="0%"/>
+<stop stop-opacity="1" stop-color="rgb(166,193,152)" offset="100%"/>
+</linearGradient>
+<linearGradient x1="370" x2="370" y1="10" gradientUnits="userSpaceOnUse" y2="117" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient2" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="white" offset="0%"/>
+<stop stop-opacity="1" stop-color="rgb(195,209,213)" offset="100%"/>
+</linearGradient>
+<linearGradient x1="361" x2="361" y1="164" gradientUnits="userSpaceOnUse" y2="244" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient3" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="rgb(255,255,204)" offset="0%"/>
+<stop stop-opacity="1" stop-color="white" offset="100%"/>
+</linearGradient>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath1">
+<path d="M10 10 L10 163 L310 163 L310 10 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath2">
+<path d="M128 12 L192 12 L192 31 L128 31 L128 12 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath3">
+<path d="M54 55 L273 55 L273 139 L54 139 L54 55 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath4">
+<path d="M85 87 L243 87 L243 106 L85 106 L85 87 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath5">
+<path d="M9 30 L312 30 L312 165 L9 165 L9 30 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath6">
+<path d="M9 9 L312 9 L312 165 L9 165 L9 9 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath7">
+<path d="M370 10 L370 116 L607 116 L607 10 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath8">
+<path d="M464 9 L516 9 L516 28 L464 28 L464 9 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath9">
+<path d="M450 27 L529 27 L529 46 L450 46 L450 27 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath10">
+<path d="M463 46 L517 46 L517 63 L463 63 L463 46 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath11">
+<path d="M375 62 L532 62 L532 79 L375 79 L375 62 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath12">
+<path d="M375 77 L435 77 L435 94 L375 94 L375 77 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath13">
+<path d="M375 92 L436 92 L436 109 L375 109 L375 92 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath14">
+<path d="M370 45 L609 45 L609 118 L370 118 L370 45 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath15">
+<path d="M369 9 L609 9 L609 118 L369 118 L369 9 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath16">
+<path d="M361 164 L361 243 L637 243 L637 176 L625 164 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath17">
+<path d="M366 169 L622 169 L622 239 L366 239 L366 169 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath18">
+<path d="M360 163 L639 163 L639 245 L360 245 L360 163 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath19">
+<path d="M-1 -1 L649 -1 L649 255 L-1 255 L-1 -1 Z"/>
+</clipPath>
+</defs>
+<g fill="url(#linearGradient1)" stroke-miterlimit="0" stroke-width="0" stroke="url(#linearGradient1)" stroke-linejoin="round">
+<rect x="10" y="10" clip-path="url(#clipPath1)" width="301" height="154" stroke="none"/>
+<text x="129" font-size="13" y="26" clip-path="url(#clipPath2)" fill="black" stroke="none" xml:space="preserve">Platform </text>
+<rect x="55" y="56" clip-path="url(#clipPath3)" fill="white" width="217" rx="0" ry="0" height="82" stroke="none"/>
+<text x="86" font-size="13" y="101" clip-path="url(#clipPath4)" fill="black" stroke="none" xml:space="preserve"> monoNode: MonoNode</text>
+</g>
+<g stroke-linecap="butt" stroke-width="1.1">
+<rect x="55" y="56" clip-path="url(#clipPath3)" fill="none" width="216" rx="0" ry="0" height="81"/>
+<line clip-path="url(#clipPath5)" fill="none" x1="10" x2="311" y1="31" y2="31"/>
+<rect x="10" y="10" clip-path="url(#clipPath6)" fill="none" width="300" rx="0" ry="0" height="153"/>
+<rect x="370" y="10" clip-path="url(#clipPath7)" fill="url(#linearGradient2)" width="238" height="107" stroke="none"/>
+<text x="465" font-size="13" y="23" clip-path="url(#clipPath8)" stroke="none" xml:space="preserve">«Node»</text>
+<text x="451" font-size="13" y="41" clip-path="url(#clipPath9)" stroke="none" xml:space="preserve">MonoNode </text>
+<text xml:space="preserve" x="464" y="59" clip-path="url(#clipPath10)" stroke="none">«Target»</text>
+<text xml:space="preserve" x="376" y="75" clip-path="url(#clipPath11)" stroke="none">targetArch=StandardPC </text>
+<text xml:space="preserve" x="376" y="90" clip-path="url(#clipPath12)" stroke="none">availRAM </text>
+<text xml:space="preserve" x="376" y="105" clip-path="url(#clipPath13)" stroke="none">availROM </text>
+<line clip-path="url(#clipPath14)" fill="none" x1="370" x2="608" y1="46" y2="46"/>
+<line clip-path="url(#clipPath15)" fill="none" x1="370" x2="608" y1="46" y2="46"/>
+<rect x="370" y="10" clip-path="url(#clipPath15)" fill="none" width="237" rx="0" ry="0" height="106"/>
+<rect x="361" y="164" clip-path="url(#clipPath16)" fill="url(#linearGradient3)" width="277" height="80" stroke="none"/>
+<text x="367" font-size="13" y="183" clip-path="url(#clipPath17)" stroke="none" xml:space="preserve">Simple single node configuration.</text>
+<text x="367" font-size="13" y="200" clip-path="url(#clipPath17)" stroke="none" xml:space="preserve">TargetOS is set to Linux, but will work on</text>
+<text x="367" font-size="13" y="217" clip-path="url(#clipPath17)" stroke="none" xml:space="preserve">any OS, since this simple example does</text>
+<text x="367" font-size="13" y="234" clip-path="url(#clipPath17)" stroke="none" xml:space="preserve">not use the OS abstraction layer</text>
+<line clip-path="url(#clipPath18)" fill="none" x1="361" x2="625" y1="164" y2="164"/>
+<line clip-path="url(#clipPath18)" fill="none" x1="625" x2="637" y1="164" y2="176"/>
+<line clip-path="url(#clipPath18)" fill="none" x1="637" x2="637" y1="176" y2="243"/>
+<line clip-path="url(#clipPath18)" fill="none" x1="637" x2="361" y1="243" y2="243"/>
+<line clip-path="url(#clipPath18)" fill="none" x1="361" x2="361" y1="243" y2="164"/>
+<line clip-path="url(#clipPath18)" fill="none" x1="361" x2="361" y1="164" y2="164"/>
+<line clip-path="url(#clipPath18)" fill="none" x1="625" x2="625" y1="164" y2="176"/>
+<line clip-path="url(#clipPath18)" fill="none" x1="625" x2="638" y1="176" y2="176"/>
+<line clip-path="url(#clipPath19)" fill="none" text-rendering="optimizeLegibility" x1="471" x2="471" y1="164" y2="117" stroke-dasharray="6.6,3.3"/>
+</g>
+</g>
+</svg>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-system.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-system.png
new file mode 100644
index 00000000000..18b6c1ac5d2
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-system.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-system.svg b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-system.svg
new file mode 100644
index 00000000000..3d1b27ed68f
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/HelloWorld-system.svg
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-dasharray="none" shape-rendering="auto" font-family="'Dialog'" width="300" text-rendering="auto" fill-opacity="1" contentScriptType="text/ecmascript" color-interpolation="auto" color-rendering="auto" preserveAspectRatio="xMidYMid meet" font-size="12" viewBox="0 0 300 192" fill="black" stroke="black" image-rendering="auto" stroke-miterlimit="10" zoomAndPan="magnify" version="1.0" stroke-linecap="square" stroke-linejoin="miter" contentStyleType="text/css" font-style="normal" height="192" stroke-width="1" stroke-dashoffset="0" font-weight="normal" stroke-opacity="1">
+<!--Generated by the Batik Graphics2D SVG Generator-->
+<defs id="genericDefs"/>
+<g>
+<defs id="defs1">
+<linearGradient x1="10" x2="10" y1="10" gradientUnits="userSpaceOnUse" y2="182" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient1" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="white" offset="0%"/>
+<stop stop-opacity="1" stop-color="rgb(225,225,135)" offset="100%"/>
+</linearGradient>
+<linearGradient x1="45" x2="45" y1="91" gradientUnits="userSpaceOnUse" y2="111" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient2" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="white" offset="0%"/>
+<stop stop-opacity="1" stop-color="rgb(195,209,213)" offset="100%"/>
+</linearGradient>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath1">
+<path d="M10 10 L10 181 L289 181 L289 10 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath2">
+<path d="M120 12 L179 12 L179 31 L120 31 L120 12 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath3">
+<path d="M54 56 L249 56 L249 143 L54 143 L54 56 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath4">
+<path d="M94 59 L208 59 L208 78 L94 78 L94 59 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath5">
+<path d="M54 77 L249 77 L249 143 L54 143 L54 77 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath6">
+<path d="M45 91 L45 110 L64 110 L64 91 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath7">
+<path d="M44 90 L66 90 L66 112 L44 112 L44 90 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath8">
+<path d="M69 93 L151 93 L151 110 L69 110 L69 93 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath9">
+<path d="M9 30 L291 30 L291 183 L9 183 L9 30 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath10">
+<path d="M9 9 L291 9 L291 183 L9 183 L9 9 Z"/>
+</clipPath>
+</defs>
+<g fill="url(#linearGradient1)" stroke-miterlimit="0" stroke-width="0" stroke="url(#linearGradient1)" stroke-linejoin="round">
+<rect x="10" y="10" clip-path="url(#clipPath1)" width="280" height="172" stroke="none"/>
+<text x="121" font-size="13" y="26" clip-path="url(#clipPath2)" fill="black" stroke="none" xml:space="preserve">System </text>
+<rect x="55" y="57" clip-path="url(#clipPath3)" fill="white" width="193" rx="0" ry="0" height="85" stroke="none"/>
+<text x="95" font-size="13" y="73" clip-path="url(#clipPath4)" fill="black" stroke="none" xml:space="preserve"> hello: HelloWorld</text>
+</g>
+<g stroke-linecap="butt" stroke-width="1.1">
+<line clip-path="url(#clipPath5)" fill="none" x1="55" x2="248" y1="78" y2="78"/>
+<rect x="55" y="57" clip-path="url(#clipPath3)" fill="none" width="192" rx="0" ry="0" height="84"/>
+<rect x="45" y="91" clip-path="url(#clipPath6)" fill="url(#linearGradient2)" width="20" height="20" stroke="none"/>
+<rect x="45" y="91" clip-path="url(#clipPath7)" fill="none" width="19" rx="0" ry="0" height="19"/>
+<text xml:space="preserve" x="70" y="106" clip-path="url(#clipPath8)" stroke="none"> start: IStart</text>
+<line clip-path="url(#clipPath9)" fill="none" x1="10" x2="290" y1="31" y2="31"/>
+<rect x="10" y="10" clip-path="url(#clipPath10)" fill="none" width="279" rx="0" ry="0" height="171"/>
+</g>
+</g>
+</svg>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/ProducerConsumer-pullcon.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/ProducerConsumer-pullcon.png
new file mode 100644
index 00000000000..b624fed7ea6
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/ProducerConsumer-pullcon.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/ProducerConsumer-pullcon.svg b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/ProducerConsumer-pullcon.svg
new file mode 100644
index 00000000000..4336e615b78
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/ProducerConsumer-pullcon.svg
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-dasharray="none" shape-rendering="auto" font-family="'Dialog'" width="639" text-rendering="auto" fill-opacity="1" contentScriptType="text/ecmascript" color-interpolation="auto" color-rendering="auto" preserveAspectRatio="xMidYMid meet" font-size="12" viewBox="0 0 639 278" fill="black" stroke="black" image-rendering="auto" stroke-miterlimit="10" zoomAndPan="magnify" version="1.0" stroke-linecap="square" stroke-linejoin="miter" contentStyleType="text/css" font-style="normal" height="278" stroke-width="1" stroke-dashoffset="0" font-weight="normal" stroke-opacity="1">
+<!--Generated by the Batik Graphics2D SVG Generator-->
+<defs id="genericDefs"/>
+<g>
+<defs id="defs1">
+<linearGradient x1="18" x2="18" y1="172" gradientUnits="userSpaceOnUse" y2="192" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient1" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="gray" offset="0%"/>
+<stop stop-opacity="1" stop-color="white" offset="100%"/>
+</linearGradient>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath1">
+<path d="M27 135 L283 135 L283 246 L27 246 L27 135 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath2">
+<path d="M92 138 L224 138 L224 155 L92 155 L92 138 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath3">
+<path d="M27 154 L283 154 L283 246 L27 246 L27 154 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath4">
+<path d="M17 171 L39 171 L39 193 L17 193 L17 171 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath5">
+<path d="M18 172 L38 172 L38 192 L18 192 L18 172 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath6">
+<path d="M42 174 L129 174 L129 191 L42 191 L42 174 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath7">
+<path d="M17 207 L39 207 L39 229 L17 229 L17 207 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath8">
+<path d="M18 208 L38 208 L38 228 L18 228 L18 208 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath9">
+<path d="M42 210 L123 210 L123 227 L42 227 L42 210 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath10">
+<path d="M9 252 L426 252 L426 269 L9 269 L9 252 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath11">
+<path d="M11 185 L26 185 L26 200 L11 200 L11 185 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath12">
+<path d="M27 9 L282 9 L282 84 L27 84 L27 9 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath13">
+<path d="M124 12 L190 12 L190 29 L124 29 L124 12 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath14">
+<path d="M27 28 L282 28 L282 84 L27 84 L27 28 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath15">
+<path d="M17 38 L39 38 L39 60 L17 60 L17 38 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath16">
+<path d="M18 39 L38 39 L38 59 L18 59 L18 39 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath17">
+<path d="M42 41 L129 41 L129 58 L42 58 L42 41 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath18">
+<path d="M333 108 L630 108 L630 242 L333 242 L333 108 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath19">
+<path d="M339 114 L609 114 L609 236 L339 236 L339 114 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath20">
+<path d="M333 9 L630 9 L630 83 L333 83 L333 9 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath21">
+<path d="M339 15 L611 15 L611 77 L339 77 L339 15 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath22">
+<path d="M-1 -1 L640 -1 L640 279 L-1 279 L-1 -1 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath23">
+<path d="M145 82 L164 82 L164 95 L145 95 L145 82 Z"/>
+</clipPath>
+</defs>
+<g font-size="9" fill="rgb(225,225,135)" stroke-linejoin="round" stroke="rgb(225,225,135)" stroke-width="0" stroke-miterlimit="0">
+<rect x="28" y="136" clip-path="url(#clipPath1)" width="254" height="109" stroke="none"/>
+<text font-size="10" x="93" y="149" clip-path="url(#clipPath2)" fill="black" stroke="none" xml:space="preserve">PullConsumer_impl </text>
+</g>
+<g stroke-width="1.1" font-size="9" stroke-linecap="butt">
+<line clip-path="url(#clipPath3)" fill="none" x1="28" x2="282" y1="155" y2="155"/>
+<rect x="28" y="136" clip-path="url(#clipPath1)" fill="none" width="253" height="108"/>
+<rect x="18" y="172" clip-path="url(#clipPath4)" fill="url(#linearGradient1)" width="20" height="20" stroke="none"/>
+<image x="20" y="176" clip-path="url(#clipPath5)" width="15" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHcAAABcCAYAAABUUip/AAAKsklEQVR42u2deYhN&#10;bxjH39/8htBI9shQCFHIkrXsosiSfd8JoRBFoaEQhbLWkH0NRVH2rShLFCFbhBD+&#10;oAjx83nrTPd3m+We5z33nPecc791mjGZO/fc73nf93m+z/bPn79QGRTgwYMH6s2b&#10;N+rXr1/qw4cP+mdv375VVatWVdnZ2ap8+fIqJydHf23SpIn+3lZkx5XEr1+/qqtX&#10;r6qLFy9qQp89e6YeP36sfv786ep1atasqRo0aKCJbtOmjercubPKzc3NkOs37t27&#10;p44dO6ZOnz6tbt265ZrIwsAq5+Ih2bhxo/4ZRHfo0EH17dtX9erVS6/4DLlpwKtX&#10;r9Thw4fVrl271N27d335m/fv39fXtm3bVLVq1dTw4cPVmDFjVIsWLTLkerVKly5d&#10;qk6ePOnJCpXi/fv3av369fpq1qyZfk/9+/fPkCvBtWvX1Nq1a/X2axvYOQYMGKAa&#10;NmyoFixYoEaPHp3WLTsy5LL9zp4920pSk/Ho0SM1YcIEtWrVKpWfn6/P53Tg36Xs&#10;EyEGLsuaNWvUsGHDfDtTvcLHjx/V9u3b1fPnz1Xbtm21e5VZuQnn6pAhQ/RKCDMw&#10;9k6cOKGtbYyv2JO7adMmNW/ePPXt27dIHCufP39WI0aM0DYDO1GZMmXiRy7iw9Sp&#10;U9W+ffsiaeWzehFXjh49qurWrWv0WllhunFkwC5dukSW2ESrunnz5noVx4JcpEGI&#10;vXnzpooDvnz5onr37q2OHz8e7W0Z7bdHjx5a5ks3KlasqOrVq6f1YnzQ2rVrF/ii&#10;L1++1NY5X3nY0v1+IBiDcevWrWr8+PHRI5cPMZ3EogMj9nfv3l0L/zVq1HB1/rOF&#10;nj17VmvLN27c8NzAQ13DJ8ZNGjRoUHTI5YxNB7GsRrReFCJWqBSE+xAguJYsWaIt&#10;3iNHjmjXBqPIS2BJs6t069Yt/CIGq4IPjVCcV0Db3bJli97munbtqipXruzpey5b&#10;tqxq2bKlXmkDBw5Unz590jvP79+/jV+b10B969mzpw4zhppcxPXr16978lpouXv2&#10;7NH+Y6NGjXx5/9WrV1eDBw9WQ4cOVa9fv1YPHz40fs0fP37oQAirOBU1y0pyV69e&#10;rTZv3mz8OnwAeXl5avfu3UbbrwnYHSAYeZGHla3b1MjCwBw5cmT4yMW3Gzt2rPFW&#10;1qpVK3Xu3DnVp08flZUVvMdXv359vV2/e/dO3blzx+i1njx5osqVK1diwMEqcnmq&#10;MaBMn26iQ4cOHfL8TDVF6dKlVb9+/VSdOnXU+fPn9TYrxaVLl/T5W6tWrXCIGMuW&#10;LdM+pBSlSpXSQfF169YFltqSCvBZz5w5k7JhVJSLNHHiRO13W08uOU0EA0yIRZac&#10;NWtWKBQofOoLFy5ot0wKUnmK+8ysIXfmzJnidBiHWLdOftDAyINgkxW8ePFinahg&#10;Lbk7duwwcnvwW8NGrAMiPxAsDdRjPUOwteQuX75c/LvYgxLd1bYVTLCeHUiC/fv3&#10;a7HEOnKJekhVKCzrRYsWqSigU6dOWsKUGlcbNmywj1ypJ0Y+8M6dO622it2CjEge&#10;WAnIxUKLt4ZcoinSpDakRDcRnDCABxXtG43aLYhGJVvOgZKLLCgB4TkiOlEEBpb0&#10;qCEaZQW5379/F+UYY3Q4NTlRBduzJH8KAQjlKnByIRYz3i2IFgUVBPBzey7KvUnl&#10;7A2cXOmWLL3psIFjRyJusGgcSTIQcvnjkkwFEsaaNm0aC3JZvXPnzhWJGki5gZHL&#10;H5dsyVE1oooC1QcSYQMvJDBynT/uBshzVMjFCbh6eAahIpdMQbeAWC9KLMK4et2C&#10;LEy8kUDIpYBL4tvGEZLyTgQNtGbfySXLgmpzP24yKqIGCX5ugV5fpDBLaqmEhJJw&#10;+/Zt179DQNu0KCrMILDvtkyV//8/ctmnV6xYocNPZNgF2UsiEVEXLUoC+daSoy87&#10;8R+2FjJT8hFnSKXIbGcLpmeSSXJaZuXadf8YVdqgWrhwobXEOj5unCFxATFcNbm2&#10;FzPTdzHOkGZIZuEPmSaBpxtRyrbw6/7JiMxKTs3IIDpbeVYYoiwYfHGG5P45yrIo&#10;6JUoIH5CEkGKEqRikjaoTPKG/YDT1DqukNhEBPo1uWTrI2DYirB3iDOFJK8bI6wg&#10;cLB3716dQyzNek8nkELjDMn9o+plJzJNxjvxQzqJkwaTDksa/dptLymq2eIMSW63&#10;brVU2A+50lUKCbluk645c0jNoZlIHCFJbkCP9j2ei/8lEcJNW+WFFTzUEoOKBRpI&#10;JoZkBXJUxBGSfDPc28DIlSZ9xVFNozzTLeiIV+Dn+o2OHTu6/h0SB5gyEicQY5cY&#10;U4y7CYzcxo0bi7LpGeUSJySWhkgWT2DlJJKtGZfIpEVtmMARJHmYCQ+yeAIlV1o9&#10;YLtU6hUgVtIBloalDgJduZIgNK4B/Q+jvmrppyVBYhJ7oMXX0kkcM2bM0GJIVEHa&#10;k8S3pb+ksyUHTm7iFuIG5HuRghtFUDydXCEvPeoCJZenTFrcxTStqKlWrFbpA4/3&#10;QeNQa8gF0m42+L30HY5SrJdejtIsVFotJGdJBk4uaT7kTEu3Z9r3FtfcMizgmJHO&#10;IURuLMz7sKKDHE+dFKdOndJPfJhBCwmTdhBU4EOwleRSwZd8XrgBBgij38IIBl6Y&#10;PJxE2Ipqr2BN19aVK1cW+vSlCmbmzpkzJ1RbNMRiN5gU3NG2qaiKBGvIJRXTVH3C&#10;8af3fxh8YOY4MODChFjy3pwggdXkgilTpoh7Hzqg/T3OfGFdTG0AOcg8gCZ2BqD3&#10;JS0Si4NVMw4YNIEsSQzTJFeZIRE0/axSpYpVqTlIpwx9unz5sidbekn3Zt10Eir6&#10;mEAJwSYTShgOQRE5ik/79u0DHWaBODF//nw1ffp0Pe3aFMiT06ZNK/H/WTlXCAsQ&#10;YiWJYcl48eKF7qTOh0q6Z4UKFXy7D85+OqmyDTONxIvJYGRZ0Fk+lXE61pbPkWZL&#10;MrZUZ00ERgvGFh80wQpch3TWSBHVwXflb3o5h5CyH4Ymp1r1Z3VtZH5+vj57pcpN&#10;YSTzsHDRZwIdl0ahXjRTYesliY/jhK9e9xMhPMosBDfu4j9//sJmgrEu6fno9VTL&#10;5GOA1BQuJ2+7uEbdvCeyQqiBZfCGSVPwVEBQAGLdtk+wnlznw0R/9uIMThWU1eTm&#10;5urvK1WqpCdqAgIVflYdSom11qBKBmPSRo0apQvC/Cotwfhhq+Xi3HS+NxnRJjlj&#10;cZukx0ZoZtZjRBw8eFDUpjaM4Ii4cuVKwe4h+szCdtOoMrg0DGOMalE298Z9mvYC&#10;CWUnEYZEMYeH6dLpNGT8BpYwucpY8F4gFGduUR/EuHHjtLFFP0kvBIIggeyKotau&#10;XTvvjrIwfyCEuhinSsCBmKhXY9D9BNYwW7A0EzSSKzcRhAsnTZqkPyhWcRjOYmqU&#10;OVsPHDigWrdunR4jNEqGCCsY1Qnpj+zIp0+fWkkq75OQX7onmkWuNRtb9eTJk7XR&#10;BcmUZdiwXSMfkkpExwKTjJNYk5voF0MwF4F7iEb39XM1O0M3yEwMoo1/LJoqIt3l&#10;5eXpi+EOyJjEedGrvT6fCaBDJKE5riCHbsSuYyYt5bk480imIzuCVkCsbqRNcqG5&#10;iqvVcXRntloEFSfYwOv6teVmyE1h63bILgqJDb7IW8rJyQnN/f0H4lsnTPYrCCYA&#10;AAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="11" preserveAspectRatio="none" xlink:show="embed"/>
+<rect x="18" y="172" clip-path="url(#clipPath4)" fill="none" width="19" height="19"/>
+<text font-size="10" x="43" y="185" clip-path="url(#clipPath6)" stroke="none" xml:space="preserve"> lc: ILifeCycle</text>
+<rect x="18" y="208" clip-path="url(#clipPath7)" fill="white" width="20" height="20" stroke="none"/>
+<image stroke="white" width="10" xlink:show="embed" xlink:type="simple" fill="white" clip-path="url(#clipPath8)" preserveAspectRatio="none" height="10" x="23" y="213" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAh0lEQVR42oXPuwkE&#10;IRgE4DkRa3AzC7AFQbYi2zDbjqxAtARDQzNlEe8wOLjgdCf4H/Al86q1vq/rQmsN&#10;qxhjQHPOsNailIJdiBACIQTMvYVzTOSc22LyPZ4w+X045ziOA4yxNZytz/OE9x73&#10;ff+HT2iGTqSUQowRvfdlGZpSwhgDUsol0lrjA3yWPLwsJgVTAAAAAElFTkSuQmCC" xlink:actuate="onLoad"/>
+<rect x="18" y="208" clip-path="url(#clipPath7)" fill="none" width="19" height="19"/>
+<text font-size="10" x="43" y="221" clip-path="url(#clipPath9)" stroke="none" xml:space="preserve"> p: PubData</text>
+<text font-size="10" x="10" y="263" clip-path="url(#clipPath10)" stroke="none" xml:space="preserve">kind=PullConsumer,requiredInterface=D_PullConsumer_PubData</text>
+<image x="12" y="186" clip-path="url(#clipPath11)" width="13" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAAbklEQVR42mPUsfH+&#10;z0AiYAERJaUFRGvo6Z4A0QQC8X4uBDUs3LQHYRMy0LX1warh8uEtcDYTPklcgImQ&#10;qURrwuVEnJqQNeCykYmQBmwawZqY/v/DawM6H6ypq2cSSaGHEk+glAGLQKI1gZII&#10;MQAAKE0otDoVxYgAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="13" preserveAspectRatio="none" xlink:show="embed"/>
+<rect x="28" y="10" clip-path="url(#clipPath12)" fill="white" width="253" height="73" stroke="none"/>
+<text font-size="10" x="125" y="23" clip-path="url(#clipPath13)" stroke="none" xml:space="preserve">LifeCycle </text>
+<line clip-path="url(#clipPath14)" fill="none" x1="28" x2="281" y1="29" y2="29"/>
+<rect x="28" y="10" clip-path="url(#clipPath12)" fill="none" width="252" height="72"/>
+<rect x="18" y="39" clip-path="url(#clipPath15)" fill="white" width="20" height="20" stroke="none"/>
+<image stroke="white" width="15" xlink:show="embed" xlink:type="simple" fill="white" clip-path="url(#clipPath16)" preserveAspectRatio="none" height="11" x="20" y="43" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHcAAABcCAYAAABUUip/AAAKsklEQVR42u2deYhN&#10;bxjH39/8htBI9shQCFHIkrXsosiSfd8JoRBFoaEQhbLWkH0NRVH2rShLFCFbhBD+&#10;oAjx83nrTPd3m+We5z33nPecc791mjGZO/fc73nf93m+z/bPn79QGRTgwYMH6s2b&#10;N+rXr1/qw4cP+mdv375VVatWVdnZ2ap8+fIqJydHf23SpIn+3lZkx5XEr1+/qqtX&#10;r6qLFy9qQp89e6YeP36sfv786ep1atasqRo0aKCJbtOmjercubPKzc3NkOs37t27&#10;p44dO6ZOnz6tbt265ZrIwsAq5+Ih2bhxo/4ZRHfo0EH17dtX9erVS6/4DLlpwKtX&#10;r9Thw4fVrl271N27d335m/fv39fXtm3bVLVq1dTw4cPVmDFjVIsWLTLkerVKly5d&#10;qk6ePOnJCpXi/fv3av369fpq1qyZfk/9+/fPkCvBtWvX1Nq1a/X2axvYOQYMGKAa&#10;NmyoFixYoEaPHp3WLTsy5LL9zp4920pSk/Ho0SM1YcIEtWrVKpWfn6/P53Tg36Xs&#10;EyEGLsuaNWvUsGHDfDtTvcLHjx/V9u3b1fPnz1Xbtm21e5VZuQnn6pAhQ/RKCDMw&#10;9k6cOKGtbYyv2JO7adMmNW/ePPXt27dIHCufP39WI0aM0DYDO1GZMmXiRy7iw9Sp&#10;U9W+ffsiaeWzehFXjh49qurWrWv0WllhunFkwC5dukSW2ESrunnz5noVx4JcpEGI&#10;vXnzpooDvnz5onr37q2OHz8e7W0Z7bdHjx5a5ks3KlasqOrVq6f1YnzQ2rVrF/ii&#10;L1++1NY5X3nY0v1+IBiDcevWrWr8+PHRI5cPMZ3EogMj9nfv3l0L/zVq1HB1/rOF&#10;nj17VmvLN27c8NzAQ13DJ8ZNGjRoUHTI5YxNB7GsRrReFCJWqBSE+xAguJYsWaIt&#10;3iNHjmjXBqPIS2BJs6t069Yt/CIGq4IPjVCcV0Db3bJli97munbtqipXruzpey5b&#10;tqxq2bKlXmkDBw5Unz590jvP79+/jV+b10B969mzpw4zhppcxPXr16978lpouXv2&#10;7NH+Y6NGjXx5/9WrV1eDBw9WQ4cOVa9fv1YPHz40fs0fP37oQAirOBU1y0pyV69e&#10;rTZv3mz8OnwAeXl5avfu3UbbrwnYHSAYeZGHla3b1MjCwBw5cmT4yMW3Gzt2rPFW&#10;1qpVK3Xu3DnVp08flZUVvMdXv359vV2/e/dO3blzx+i1njx5osqVK1diwMEqcnmq&#10;MaBMn26iQ4cOHfL8TDVF6dKlVb9+/VSdOnXU+fPn9TYrxaVLl/T5W6tWrXCIGMuW&#10;LdM+pBSlSpXSQfF169YFltqSCvBZz5w5k7JhVJSLNHHiRO13W08uOU0EA0yIRZac&#10;NWtWKBQofOoLFy5ot0wKUnmK+8ysIXfmzJnidBiHWLdOftDAyINgkxW8ePFinahg&#10;Lbk7duwwcnvwW8NGrAMiPxAsDdRjPUOwteQuX75c/LvYgxLd1bYVTLCeHUiC/fv3&#10;a7HEOnKJekhVKCzrRYsWqSigU6dOWsKUGlcbNmywj1ypJ0Y+8M6dO622it2CjEge&#10;WAnIxUKLt4ZcoinSpDakRDcRnDCABxXtG43aLYhGJVvOgZKLLCgB4TkiOlEEBpb0&#10;qCEaZQW5379/F+UYY3Q4NTlRBduzJH8KAQjlKnByIRYz3i2IFgUVBPBzey7KvUnl&#10;7A2cXOmWLL3psIFjRyJusGgcSTIQcvnjkkwFEsaaNm0aC3JZvXPnzhWJGki5gZHL&#10;H5dsyVE1oooC1QcSYQMvJDBynT/uBshzVMjFCbh6eAahIpdMQbeAWC9KLMK4et2C&#10;LEy8kUDIpYBL4tvGEZLyTgQNtGbfySXLgmpzP24yKqIGCX5ugV5fpDBLaqmEhJJw&#10;+/Zt179DQNu0KCrMILDvtkyV//8/ctmnV6xYocNPZNgF2UsiEVEXLUoC+daSoy87&#10;8R+2FjJT8hFnSKXIbGcLpmeSSXJaZuXadf8YVdqgWrhwobXEOj5unCFxATFcNbm2&#10;FzPTdzHOkGZIZuEPmSaBpxtRyrbw6/7JiMxKTs3IIDpbeVYYoiwYfHGG5P45yrIo&#10;6JUoIH5CEkGKEqRikjaoTPKG/YDT1DqukNhEBPo1uWTrI2DYirB3iDOFJK8bI6wg&#10;cLB3716dQyzNek8nkELjDMn9o+plJzJNxjvxQzqJkwaTDksa/dptLymq2eIMSW63&#10;brVU2A+50lUKCbluk645c0jNoZlIHCFJbkCP9j2ei/8lEcJNW+WFFTzUEoOKBRpI&#10;JoZkBXJUxBGSfDPc28DIlSZ9xVFNozzTLeiIV+Dn+o2OHTu6/h0SB5gyEicQY5cY&#10;U4y7CYzcxo0bi7LpGeUSJySWhkgWT2DlJJKtGZfIpEVtmMARJHmYCQ+yeAIlV1o9&#10;YLtU6hUgVtIBloalDgJduZIgNK4B/Q+jvmrppyVBYhJ7oMXX0kkcM2bM0GJIVEHa&#10;k8S3pb+ksyUHTm7iFuIG5HuRghtFUDydXCEvPeoCJZenTFrcxTStqKlWrFbpA4/3&#10;QeNQa8gF0m42+L30HY5SrJdejtIsVFotJGdJBk4uaT7kTEu3Z9r3FtfcMizgmJHO&#10;IURuLMz7sKKDHE+dFKdOndJPfJhBCwmTdhBU4EOwleRSwZd8XrgBBgij38IIBl6Y&#10;PJxE2Ipqr2BN19aVK1cW+vSlCmbmzpkzJ1RbNMRiN5gU3NG2qaiKBGvIJRXTVH3C&#10;8af3fxh8YOY4MODChFjy3pwggdXkgilTpoh7Hzqg/T3OfGFdTG0AOcg8gCZ2BqD3&#10;JS0Si4NVMw4YNIEsSQzTJFeZIRE0/axSpYpVqTlIpwx9unz5sidbekn3Zt10Eir6&#10;mEAJwSYTShgOQRE5ik/79u0DHWaBODF//nw1ffp0Pe3aFMiT06ZNK/H/WTlXCAsQ&#10;YiWJYcl48eKF7qTOh0q6Z4UKFXy7D85+OqmyDTONxIvJYGRZ0Fk+lXE61pbPkWZL&#10;MrZUZ00ERgvGFh80wQpch3TWSBHVwXflb3o5h5CyH4Ymp1r1Z3VtZH5+vj57pcpN&#10;YSTzsHDRZwIdl0ahXjRTYesliY/jhK9e9xMhPMosBDfu4j9//sJmgrEu6fno9VTL&#10;5GOA1BQuJ2+7uEbdvCeyQqiBZfCGSVPwVEBQAGLdtk+wnlznw0R/9uIMThWU1eTm&#10;5urvK1WqpCdqAgIVflYdSom11qBKBmPSRo0apQvC/Cotwfhhq+Xi3HS+NxnRJjlj&#10;cZukx0ZoZtZjRBw8eFDUpjaM4Ii4cuVKwe4h+szCdtOoMrg0DGOMalE298Z9mvYC&#10;CWUnEYZEMYeH6dLpNGT8BpYwucpY8F4gFGduUR/EuHHjtLFFP0kvBIIggeyKotau&#10;XTvvjrIwfyCEuhinSsCBmKhXY9D9BNYwW7A0EzSSKzcRhAsnTZqkPyhWcRjOYmqU&#10;OVsPHDigWrdunR4jNEqGCCsY1Qnpj+zIp0+fWkkq75OQX7onmkWuNRtb9eTJk7XR&#10;BcmUZdiwXSMfkkpExwKTjJNYk5voF0MwF4F7iEb39XM1O0M3yEwMoo1/LJoqIt3l&#10;5eXpi+EOyJjEedGrvT6fCaBDJKE5riCHbsSuYyYt5bk480imIzuCVkCsbqRNcqG5&#10;iqvVcXRntloEFSfYwOv6teVmyE1h63bILgqJDb7IW8rJyQnN/f0H4lsnTPYrCCYA&#10;AAAASUVORK5CYII=" xlink:actuate="onLoad"/>
+<rect x="18" y="39" clip-path="url(#clipPath15)" fill="none" width="19" height="19"/>
+<text font-size="10" x="43" y="52" clip-path="url(#clipPath17)" stroke="none" xml:space="preserve"> lc: ILifeCycle</text>
+<path fill="white" d="M334 109 L616 109 L628 121 L628 240 L334 240 Z" clip-path="url(#clipPath18)" fill-rule="evenodd" stroke="none"/>
+<text font-size="8" x="340" y="123" clip-path="url(#clipPath19)" stroke="none" xml:space="preserve">Variant of the consumper component that uses a "pull</text>
+<text font-size="8" x="340" y="135" clip-path="url(#clipPath19)" stroke="none" xml:space="preserve">style", i.e. actively demands whether new data is</text>
+<text font-size="8" x="340" y="147" clip-path="url(#clipPath19)" stroke="none" xml:space="preserve">available. Since the component is active, it needs to</text>
+<text font-size="8" x="340" y="159" clip-path="url(#clipPath19)" stroke="none" xml:space="preserve">have its own thread. This is realized by the combination</text>
+<text font-size="8" x="340" y="171" clip-path="url(#clipPath19)" stroke="none" xml:space="preserve">of the lifecycle port with a container rule that intercepts</text>
+<text font-size="8" x="340" y="183" clip-path="url(#clipPath19)" stroke="none" xml:space="preserve">the lifecycle operations and executes the activation</text>
+<text font-size="8" x="340" y="195" clip-path="url(#clipPath19)" stroke="none" xml:space="preserve">operation in its own thread.</text>
+<text font-size="8" x="340" y="207" clip-path="url(#clipPath19)" stroke="none" xml:space="preserve">Use the context menu to find out that the PullConsumer</text>
+<text font-size="8" x="340" y="219" clip-path="url(#clipPath19)" stroke="none" xml:space="preserve">supports the "runStartThread" interceptor which</text>
+<text font-size="8" x="340" y="231" clip-path="url(#clipPath19)" stroke="none" xml:space="preserve">intercepts the lifecycle port.</text>
+<line clip-path="url(#clipPath18)" fill="none" x1="334" x2="616" y1="109" y2="109"/>
+<line clip-path="url(#clipPath18)" fill="none" x1="616" x2="628" y1="109" y2="121"/>
+<line clip-path="url(#clipPath18)" fill="none" x1="628" x2="628" y1="121" y2="240"/>
+<line clip-path="url(#clipPath18)" fill="none" x1="628" x2="334" y1="240" y2="240"/>
+<line clip-path="url(#clipPath18)" fill="none" x1="334" x2="334" y1="240" y2="109"/>
+<line clip-path="url(#clipPath18)" fill="none" x1="334" x2="334" y1="109" y2="109"/>
+<line clip-path="url(#clipPath18)" fill="none" x1="616" x2="616" y1="109" y2="121"/>
+<line clip-path="url(#clipPath18)" fill="none" x1="616" x2="629" y1="121" y2="121"/>
+<path fill="white" d="M334 10 L616 10 L628 22 L628 81 L334 81 Z" clip-path="url(#clipPath20)" fill-rule="evenodd" stroke="none"/>
+<text font-size="8" x="340" y="24" clip-path="url(#clipPath21)" stroke="none" xml:space="preserve">Part of the Qompass model library. Provides the specific</text>
+<text font-size="8" x="340" y="36" clip-path="url(#clipPath21)" stroke="none" xml:space="preserve">port "lc" (short for lifecycle). The "activate" operation of</text>
+<text font-size="8" x="340" y="48" clip-path="url(#clipPath21)" stroke="none" xml:space="preserve">this port is called by generated boot-code after</text>
+<text font-size="8" x="340" y="60" clip-path="url(#clipPath21)" stroke="none" xml:space="preserve">instantiation and configuration of a component. The</text>
+<text font-size="8" x="340" y="72" clip-path="url(#clipPath21)" stroke="none" xml:space="preserve">deactivation is called before disposing a component</text>
+<line clip-path="url(#clipPath20)" fill="none" x1="334" x2="616" y1="10" y2="10"/>
+<line clip-path="url(#clipPath20)" fill="none" x1="616" x2="628" y1="10" y2="22"/>
+<line clip-path="url(#clipPath20)" fill="none" x1="628" x2="628" y1="22" y2="81"/>
+<line clip-path="url(#clipPath20)" fill="none" x1="628" x2="334" y1="81" y2="81"/>
+<line clip-path="url(#clipPath20)" fill="none" x1="334" x2="334" y1="81" y2="10"/>
+<line clip-path="url(#clipPath20)" fill="none" x1="334" x2="334" y1="10" y2="10"/>
+<line clip-path="url(#clipPath20)" fill="none" x1="616" x2="616" y1="10" y2="22"/>
+<line clip-path="url(#clipPath20)" fill="none" x1="616" x2="629" y1="22" y2="22"/>
+<line clip-path="url(#clipPath22)" fill="none" text-rendering="optimizeLegibility" x1="154" x2="154" y1="136" y2="83"/>
+</g>
+<g font-size="10" stroke-linecap="butt" fill="white" text-rendering="optimizeLegibility" stroke="white" stroke-width="1.1">
+<polygon clip-path="url(#clipPath23)" points=" 154 83 162 93 146 93" stroke="none"/>
+<polygon fill="none" clip-path="url(#clipPath23)" points=" 154 83 162 93 146 93" stroke="black"/>
+<line clip-path="url(#clipPath22)" fill="none" x1="334" x2="281" y1="48" y2="48" stroke-dasharray="6.6,3.3" stroke="black"/>
+<line clip-path="url(#clipPath22)" fill="none" x1="334" x2="282" y1="182" y2="182" stroke-dasharray="6.6,3.3" stroke="black"/>
+</g>
+</g>
+</svg>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/ProducerConsumer-sys.pdf b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/ProducerConsumer-sys.pdf
new file mode 100644
index 00000000000..4a05698fb4f
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/ProducerConsumer-sys.pdf
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/ProducerConsumer-sys.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/ProducerConsumer-sys.png
new file mode 100644
index 00000000000..f1b72e82fa3
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/ProducerConsumer-sys.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/ProducerConsumer-sys.svg b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/ProducerConsumer-sys.svg
new file mode 100644
index 00000000000..aa89a2be691
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/examples/figs/ProducerConsumer-sys.svg
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-dasharray="none" shape-rendering="auto" font-family="'Dialog'" width="624" text-rendering="auto" fill-opacity="1" contentScriptType="text/ecmascript" color-interpolation="auto" color-rendering="auto" preserveAspectRatio="xMidYMid meet" font-size="12" viewBox="0 0 624 264" fill="black" stroke="black" image-rendering="auto" stroke-miterlimit="10" zoomAndPan="magnify" version="1.0" stroke-linecap="square" stroke-linejoin="miter" contentStyleType="text/css" font-style="normal" height="264" stroke-width="1" stroke-dashoffset="0" font-weight="normal" stroke-opacity="1">
+<!--Generated by the Batik Graphics2D SVG Generator-->
+<defs id="genericDefs"/>
+<g>
+<defs id="defs1">
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath1">
+<path d="M9 9 L615 9 L615 255 L9 255 L9 9 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath2">
+<path d="M257 12 L372 12 L372 29 L257 29 L257 12 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath3">
+<path d="M375 52 L570 52 L570 139 L375 139 L375 52 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath4">
+<path d="M394 55 L557 55 L557 72 L394 72 L394 55 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath5">
+<path d="M375 71 L570 71 L570 139 L375 139 L375 71 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath6">
+<path d="M365 102 L387 102 L387 124 L365 124 L365 102 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath7">
+<path d="M366 103 L386 103 L386 123 L366 123 L366 103 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath8">
+<path d="M396 101 L477 101 L477 118 L396 118 L396 101 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath9">
+<path d="M36 52 L207 52 L207 139 L36 139 L36 52 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath10">
+<path d="M55 55 L193 55 L193 72 L55 72 L55 55 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath11">
+<path d="M36 71 L207 71 L207 139 L36 139 L36 71 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath12">
+<path d="M195 100 L217 100 L217 122 L195 122 L195 100 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath13">
+<path d="M196 101 L216 101 L216 121 L196 121 L196 101 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath14">
+<path d="M111 101 L192 101 L192 118 L111 118 L111 101 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath15">
+<path d="M369 155 L570 155 L570 205 L369 205 L369 155 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath16">
+<path d="M375 161 L545 161 L545 199 L375 199 L375 161 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath17">
+<path d="M18 155 L363 155 L363 229 L18 229 L18 155 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath18">
+<path d="M24 161 L346 161 L346 223 L24 223 L24 161 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath19">
+<path d="M9 28 L615 28 L615 255 L9 255 L9 28 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath20">
+<path d="M-1 -1 L625 -1 L625 265 L-1 265 L-1 -1 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath21">
+<path d="M237 63 L337 63 L337 110 L237 110 L237 63 Z"/>
+</clipPath>
+</defs>
+<g font-size="9" fill="url(#linearGradient1)" stroke-linejoin="round" stroke="url(#linearGradient1)" stroke-width="0" stroke-miterlimit="0">
+<rect x="10" y="10" clip-path="url(#clipPath1)" width="604" height="244" stroke="none"/>
+<text font-size="10" x="258" y="23" clip-path="url(#clipPath2)" fill="black" stroke="none" xml:space="preserve">SystemPull_impl </text>
+<rect x="376" y="53" clip-path="url(#clipPath3)" fill="white" width="193" height="85" stroke="none"/>
+<text font-size="10" x="395" y="66" clip-path="url(#clipPath4)" fill="black" stroke="none" xml:space="preserve"> con: PullConsumer_impl</text>
+</g>
+<g stroke-width="1.1" font-size="9" stroke-linecap="butt">
+<line clip-path="url(#clipPath5)" fill="none" x1="376" x2="569" y1="72" y2="72"/>
+<rect x="376" y="53" clip-path="url(#clipPath3)" fill="none" width="192" height="84"/>
+<rect x="366" y="103" clip-path="url(#clipPath6)" fill="white" width="20" height="20" stroke="none"/>
+<image stroke="white" width="10" xlink:show="embed" xlink:type="simple" fill="white" clip-path="url(#clipPath7)" preserveAspectRatio="none" height="10" x="371" y="108" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAh0lEQVR42oXPuwkE&#10;IRgE4DkRa3AzC7AFQbYi2zDbjqxAtARDQzNlEe8wOLjgdCf4H/Al86q1vq/rQmsN&#10;qxhjQHPOsNailIJdiBACIQTMvYVzTOSc22LyPZ4w+X045ziOA4yxNZytz/OE9x73&#10;ff+HT2iGTqSUQowRvfdlGZpSwhgDUsol0lrjA3yWPLwsJgVTAAAAAElFTkSuQmCC" xlink:actuate="onLoad"/>
+<rect x="366" y="103" clip-path="url(#clipPath6)" fill="none" width="19" height="19"/>
+<text font-size="10" x="397" y="112" clip-path="url(#clipPath8)" stroke="none" xml:space="preserve"> p: PubData</text>
+<rect x="37" y="53" clip-path="url(#clipPath9)" fill="white" width="169" height="85" stroke="none"/>
+<text font-size="10" x="56" y="66" clip-path="url(#clipPath10)" stroke="none" xml:space="preserve"> prod: Producer_impl</text>
+<line clip-path="url(#clipPath11)" fill="none" x1="37" x2="206" y1="72" y2="72"/>
+<rect x="37" y="53" clip-path="url(#clipPath9)" fill="none" width="168" height="84"/>
+<rect x="196" y="101" clip-path="url(#clipPath12)" fill="white" width="20" height="20" stroke="none"/>
+<image stroke="white" width="10" xlink:show="embed" xlink:type="simple" fill="white" clip-path="url(#clipPath13)" preserveAspectRatio="none" height="9" x="201" y="106" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAJCAYAAAALpr0TAAAAnUlEQVR42n2OMQ6D&#10;IBSGf5oOjCZOMDJxDHYXz+ERTBj0AIaJK8lpwMVAwmBTGlubVr/kDe/Pl/89EmPc&#10;nHM4sq4rmqb5yu7GGAzDAEppCXLORRzHEVrrj5hSwj5HpmlCXdfouq7sN5ywLEtp&#10;tNa+GnGB9x5934Nzft64wxiDUupalFJinmdUVfX/NCEEQoi3VH5s2/ZHDCGU33bp&#10;yQM2MTjpyV4kVQAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
+<rect x="196" y="101" clip-path="url(#clipPath12)" fill="none" width="19" height="19"/>
+<text font-size="10" x="112" y="112" clip-path="url(#clipPath14)" stroke="none" xml:space="preserve"> q: PubData</text>
+<path fill="white" d="M370 156 L556 156 L568 168 L568 203 L370 203 Z" clip-path="url(#clipPath15)" fill-rule="evenodd" stroke="none"/>
+<text font-size="8" x="376" y="170" clip-path="url(#clipPath16)" stroke="none" xml:space="preserve">Pull consumer is executed by its</text>
+<text font-size="8" x="376" y="182" clip-path="url(#clipPath16)" stroke="none" xml:space="preserve">own thread. This is specified via a</text>
+<text font-size="8" x="376" y="194" clip-path="url(#clipPath16)" stroke="none" xml:space="preserve">container service (runStartThread)</text>
+<line clip-path="url(#clipPath15)" fill="none" x1="370" x2="556" y1="156" y2="156"/>
+<line clip-path="url(#clipPath15)" fill="none" x1="556" x2="568" y1="156" y2="168"/>
+<line clip-path="url(#clipPath15)" fill="none" x1="568" x2="568" y1="168" y2="203"/>
+<line clip-path="url(#clipPath15)" fill="none" x1="568" x2="370" y1="203" y2="203"/>
+<line clip-path="url(#clipPath15)" fill="none" x1="370" x2="370" y1="203" y2="156"/>
+<line clip-path="url(#clipPath15)" fill="none" x1="370" x2="370" y1="156" y2="156"/>
+<line clip-path="url(#clipPath15)" fill="none" x1="556" x2="556" y1="156" y2="168"/>
+<line clip-path="url(#clipPath15)" fill="none" x1="556" x2="569" y1="168" y2="168"/>
+<path fill="white" d="M19 156 L349 156 L361 168 L361 227 L19 227 Z" clip-path="url(#clipPath17)" fill-rule="evenodd" stroke="none"/>
+<text font-size="8" x="25" y="170" clip-path="url(#clipPath18)" stroke="none" xml:space="preserve">Since producer and consumer call operations (the latter to actively</text>
+<text font-size="8" x="25" y="182" clip-path="url(#clipPath18)" stroke="none" xml:space="preserve">retrieve data), the two ports would be incompatible without using</text>
+<text font-size="8" x="25" y="194" clip-path="url(#clipPath18)" stroke="none" xml:space="preserve">a specific interaction component, in this case. a FIFO.</text>
+<text font-size="8" x="25" y="206" clip-path="url(#clipPath18)" stroke="none" xml:space="preserve">Use the context menu on a selected connector to specify the</text>
+<text font-size="8" x="25" y="218" clip-path="url(#clipPath18)" stroke="none" xml:space="preserve">interaction component.</text>
+<line clip-path="url(#clipPath17)" fill="none" x1="19" x2="349" y1="156" y2="156"/>
+<line clip-path="url(#clipPath17)" fill="none" x1="349" x2="361" y1="156" y2="168"/>
+<line clip-path="url(#clipPath17)" fill="none" x1="361" x2="361" y1="168" y2="227"/>
+<line clip-path="url(#clipPath17)" fill="none" x1="361" x2="19" y1="227" y2="227"/>
+<line clip-path="url(#clipPath17)" fill="none" x1="19" x2="19" y1="227" y2="156"/>
+<line clip-path="url(#clipPath17)" fill="none" x1="19" x2="19" y1="156" y2="156"/>
+<line clip-path="url(#clipPath17)" fill="none" x1="349" x2="349" y1="156" y2="168"/>
+<line clip-path="url(#clipPath17)" fill="none" x1="349" x2="362" y1="168" y2="168"/>
+<line clip-path="url(#clipPath19)" fill="none" x1="10" x2="614" y1="29" y2="29"/>
+<rect x="10" y="10" clip-path="url(#clipPath1)" fill="none" width="603" height="243"/>
+<line clip-path="url(#clipPath20)" fill="none" text-rendering="optimizeLegibility" x1="216" x2="366" y1="113" y2="113"/>
+<text font-size="10" x="247" y="89" clip-path="url(#clipPath21)" text-rendering="optimizeLegibility" stroke="none" xml:space="preserve">«connector»</text>
+<text font-size="10" x="238" y="104" clip-path="url(#clipPath21)" text-rendering="optimizeLegibility" stroke="none" xml:space="preserve">{ic=FIFO_impl}</text>
+<line clip-path="url(#clipPath20)" fill="none" text-rendering="optimizeLegibility" x1="469" x2="469" y1="156" y2="138" stroke-dasharray="6.6,3.3"/>
+<line clip-path="url(#clipPath20)" fill="none" text-rendering="optimizeLegibility" x1="286" x2="286" y1="156" y2="113" stroke-dasharray="6.6,3.3"/>
+</g>
+</g>
+</svg>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/corba.di b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/corba.di
new file mode 100644
index 00000000000..4af45b41bca
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/corba.di
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="ASCII"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi">
+ <pageList>
+ <availablePage>
+ <emfPageIdentifier href="corba.notation#_7BHBINfUEeC00P8-IM36_A"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="corba.notation#_8Y2QINfUEeC00P8-IM36_A"/>
+ </availablePage>
+ </pageList>
+ <sashModel currentSelection="//@sashModel/@windows.0/@children.0">
+ <windows>
+ <children xsi:type="di:TabFolder">
+ <children>
+ <emfPageIdentifier href="corba.notation#_7BHBINfUEeC00P8-IM36_A"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="corba.notation#_8Y2QINfUEeC00P8-IM36_A"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+</di:SashWindowsMngr>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/corba.notation b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/corba.notation
new file mode 100644
index 00000000000..52a0b8e9ee1
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/corba.notation
@@ -0,0 +1,256 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML">
+ <notation:Diagram xmi:id="_7BHBINfUEeC00P8-IM36_A" type="PapyrusUMLClassDiagram" name="Array" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_blaZ0NfVEeC00P8-IM36_A" type="2010" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_blbA4NfVEeC00P8-IM36_A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_blbA4dfVEeC00P8-IM36_A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_blbA4tfVEeC00P8-IM36_A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_blbn8NfVEeC00P8-IM36_A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_blbn8dfVEeC00P8-IM36_A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_blbn8tfVEeC00P8-IM36_A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_blbn89fVEeC00P8-IM36_A" type="5035"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_blcPANfVEeC00P8-IM36_A" type="7020">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_blcPAdfVEeC00P8-IM36_A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_blcPAtfVEeC00P8-IM36_A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_blcPA9fVEeC00P8-IM36_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_blcPBNfVEeC00P8-IM36_A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_blcPBdfVEeC00P8-IM36_A" type="7021">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_blcPBtfVEeC00P8-IM36_A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_blcPB9fVEeC00P8-IM36_A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_blcPCNfVEeC00P8-IM36_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_blcPCdfVEeC00P8-IM36_A"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dB-ecNfVEeC00P8-IM36_A" type="3015" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dB_skNfVEeC00P8-IM36_A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dB_skdfVEeC00P8-IM36_A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dB_sktfVEeC00P8-IM36_A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dB_sk9fVEeC00P8-IM36_A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dCAToNfVEeC00P8-IM36_A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dCATodfVEeC00P8-IM36_A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dCATotfVEeC00P8-IM36_A" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_eES3ENfVEeC00P8-IM36_A" type="3031" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="corba.uml#_KfvScD3kEd2O2pi7NYtbsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eES3EdfVEeC00P8-IM36_A" x="19" y="12"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dCATo9fVEeC00P8-IM36_A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dCATpNfVEeC00P8-IM36_A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dCATpdfVEeC00P8-IM36_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dCATptfVEeC00P8-IM36_A"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="corba.uml#_IaxxED3kEd2O2pi7NYtbsg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dB-ecdfVEeC00P8-IM36_A" x="125" y="-10"/>
+ </children>
+ <element xmi:type="uml:DataType" href="corba.uml#_ZXcrcD0REd2lhaJErguyFA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_blaZ0dfVEeC00P8-IM36_A" x="145" y="120" width="144"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_7BHBIdfUEeC00P8-IM36_A"/>
+ <element xmi:type="uml:Model" href="corba.uml#_DtQEwDLdEd2_U4efLnjQIw"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_8Y2QINfUEeC00P8-IM36_A" type="PapyrusUMLClassDiagram" name="PrimitiveTypes" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_9a14oNfUEeC00P8-IM36_A" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9a3GwNfUEeC00P8-IM36_A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9a3GwdfUEeC00P8-IM36_A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9a3GwtfUEeC00P8-IM36_A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9a3Gw9fUEeC00P8-IM36_A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9a3t0NfUEeC00P8-IM36_A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9a3t0dfUEeC00P8-IM36_A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9a3t0tfUEeC00P8-IM36_A" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="corba.uml#_Pf0dQB-VEd6nGq8wpI2tjg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9a14odfUEeC00P8-IM36_A" x="216" y="162"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9bgnANfUEeC00P8-IM36_A" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9bhOENfUEeC00P8-IM36_A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9bhOEdfUEeC00P8-IM36_A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9bhOEtfUEeC00P8-IM36_A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9bhOE9fUEeC00P8-IM36_A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9bh1INfUEeC00P8-IM36_A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9bh1IdfUEeC00P8-IM36_A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9bh1ItfUEeC00P8-IM36_A" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="corba.uml#_CTLbgB6SEd6ITtm_FH3jRw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9bgnAdfUEeC00P8-IM36_A" x="90" y="306"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9bxswNfUEeC00P8-IM36_A" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9bxswtfUEeC00P8-IM36_A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9bxsw9fUEeC00P8-IM36_A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9bxsxNfUEeC00P8-IM36_A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9byT0NfUEeC00P8-IM36_A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9byT0dfUEeC00P8-IM36_A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9byT0tfUEeC00P8-IM36_A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9byT09fUEeC00P8-IM36_A" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="corba.uml#_Wx0C4B6SEd6ITtm_FH3jRw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9bxswdfUEeC00P8-IM36_A" x="342" y="306"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9cDZkNfUEeC00P8-IM36_A" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9cEAoNfUEeC00P8-IM36_A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9cEAodfUEeC00P8-IM36_A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9cEAotfUEeC00P8-IM36_A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9cEAo9fUEeC00P8-IM36_A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9cEApNfUEeC00P8-IM36_A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9cEApdfUEeC00P8-IM36_A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9cEAptfUEeC00P8-IM36_A" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="corba.uml#_-5FTMB6REd6ITtm_FH3jRw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9cDZkdfUEeC00P8-IM36_A" x="216" y="306"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9cVtcNfUEeC00P8-IM36_A" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9cWUgNfUEeC00P8-IM36_A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9cWUgdfUEeC00P8-IM36_A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9cWUgtfUEeC00P8-IM36_A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9cWUg9fUEeC00P8-IM36_A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9cW7kNfUEeC00P8-IM36_A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9cW7kdfUEeC00P8-IM36_A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9cW7ktfUEeC00P8-IM36_A" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="corba.uml#_9XvcQB6REd6ITtm_FH3jRw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9cVtcdfUEeC00P8-IM36_A" x="216" y="90"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9csSwNfUEeC00P8-IM36_A" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9csSwtfUEeC00P8-IM36_A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9cs50NfUEeC00P8-IM36_A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9cs50dfUEeC00P8-IM36_A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9cs50tfUEeC00P8-IM36_A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9cs509fUEeC00P8-IM36_A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9cs51NfUEeC00P8-IM36_A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9cs51dfUEeC00P8-IM36_A" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="corba.uml#_IYEXcB-VEd6nGq8wpI2tjg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9csSwdfUEeC00P8-IM36_A" x="90" y="90"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9c_NsNfUEeC00P8-IM36_A" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9c_NstfUEeC00P8-IM36_A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9c_0wNfUEeC00P8-IM36_A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9c_0wdfUEeC00P8-IM36_A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9c_0wtfUEeC00P8-IM36_A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9c_0w9fUEeC00P8-IM36_A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9c_0xNfUEeC00P8-IM36_A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9c_0xdfUEeC00P8-IM36_A" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="corba.uml#_7CL6IB6REd6ITtm_FH3jRw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9c_NsdfUEeC00P8-IM36_A" x="468" y="90"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9dTWwNfUEeC00P8-IM36_A" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9dT90dfUEeC00P8-IM36_A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9dT90tfUEeC00P8-IM36_A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9dT909fUEeC00P8-IM36_A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9dT91NfUEeC00P8-IM36_A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9dT91dfUEeC00P8-IM36_A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9dT91tfUEeC00P8-IM36_A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9dT919fUEeC00P8-IM36_A" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="corba.uml#_wzSnwB6SEd6ITtm_FH3jRw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9dT90NfUEeC00P8-IM36_A" x="342" y="234"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9dsYUNfUEeC00P8-IM36_A" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9ds_YNfUEeC00P8-IM36_A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9ds_YdfUEeC00P8-IM36_A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9dtmcNfUEeC00P8-IM36_A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9dtmcdfUEeC00P8-IM36_A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9dtmctfUEeC00P8-IM36_A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9dtmc9fUEeC00P8-IM36_A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9dtmdNfUEeC00P8-IM36_A" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9dsYUdfUEeC00P8-IM36_A" x="342" y="90"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9eEy0NfUEeC00P8-IM36_A" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9eEy0tfUEeC00P8-IM36_A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9eEy09fUEeC00P8-IM36_A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9eEy1NfUEeC00P8-IM36_A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9eEy1dfUEeC00P8-IM36_A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9eEy1tfUEeC00P8-IM36_A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9eFZ4NfUEeC00P8-IM36_A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9eFZ4dfUEeC00P8-IM36_A" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="corba.uml#_wbw4kB6SEd6ITtm_FH3jRw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9eEy0dfUEeC00P8-IM36_A" x="90" y="234"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9eY74NfUEeC00P8-IM36_A" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9eZi8NfUEeC00P8-IM36_A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9eZi8dfUEeC00P8-IM36_A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9eZi8tfUEeC00P8-IM36_A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9eZi89fUEeC00P8-IM36_A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9eZi9NfUEeC00P8-IM36_A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9eZi9dfUEeC00P8-IM36_A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9eZi9tfUEeC00P8-IM36_A" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="corba.uml#_qgMSAB6SEd6ITtm_FH3jRw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9eY74dfUEeC00P8-IM36_A" x="216" y="234"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9etsANfUEeC00P8-IM36_A" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9euTENfUEeC00P8-IM36_A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9euTEdfUEeC00P8-IM36_A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9euTEtfUEeC00P8-IM36_A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9euTE9fUEeC00P8-IM36_A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9euTFNfUEeC00P8-IM36_A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9euTFdfUEeC00P8-IM36_A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9euTFtfUEeC00P8-IM36_A" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="corba.uml#_GPceEB-VEd6nGq8wpI2tjg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9etsAdfUEeC00P8-IM36_A" x="90" y="162"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9fCcINfUEeC00P8-IM36_A" type="2009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9fCcItfUEeC00P8-IM36_A" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9fDDMNfUEeC00P8-IM36_A" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9fDDMdfUEeC00P8-IM36_A" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9fDDMtfUEeC00P8-IM36_A" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9fDDM9fUEeC00P8-IM36_A" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9fDDNNfUEeC00P8-IM36_A" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9fDDNdfUEeC00P8-IM36_A" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="corba.uml#_Bv7l0B-VEd6nGq8wpI2tjg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9fCcIdfUEeC00P8-IM36_A" x="90" y="18"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QwgcIGJWEeG3qIU2KF8MuA" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Qwi4YGJWEeG3qIU2KF8MuA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qwi4YWJWEeG3qIU2KF8MuA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Qwi4YmJWEeG3qIU2KF8MuA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qwi4Y2JWEeG3qIU2KF8MuA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QwjfcGJWEeG3qIU2KF8MuA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QwjfcWJWEeG3qIU2KF8MuA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QwjfcmJWEeG3qIU2KF8MuA" type="5038"/>
+ <element xmi:type="uml:Comment" href="corba.uml#_Qm8QcGJWEeG3qIU2KF8MuA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QwgcIWJWEeG3qIU2KF8MuA" x="539" y="184" width="317"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_8Y2QIdfUEeC00P8-IM36_A"/>
+ <element xmi:type="uml:Model" href="corba.uml#_DtQEwDLdEd2_U4efLnjQIw"/>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/corba.uml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/corba.uml
new file mode 100644
index 00000000000..16504ba6e28
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/corba.uml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:C_Cpp="http://www.eclipse.org/papyrus/C_Cpp/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <uml:Model xmi:id="_DtQEwDLdEd2_U4efLnjQIw" name="corba">
+ <ownedComment xmi:id="_Qm8QcGJWEeG3qIU2KF8MuA">
+ <body>The CORBA primitive types are defined by means of the C++ profile. For portability, they rely on the (C99) standard include file stdint.h</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_ZXcrcD0REd2lhaJErguyFA" name="Array">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_IaxxED3kEd2O2pi7NYtbsg" parameter="_KfvScD3kEd2O2pi7NYtbsg _ZngtYD3lEd2O2pi7NYtbsg _8xIjUEd5Ed2Q3Lt-_ZCAOw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_KfvScD3kEd2O2pi7NYtbsg" parameteredElement="_UOqO0D3kEd2O2pi7NYtbsg">
+ <ownedParameteredElement xmi:type="uml:DataType" xmi:id="_UOqO0D3kEd2O2pi7NYtbsg" name="T" templateParameter="_KfvScD3kEd2O2pi7NYtbsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_ZngtYD3lEd2O2pi7NYtbsg" parameteredElement="_cULvAD3lEd2O2pi7NYtbsg">
+ <ownedParameteredElement xmi:type="uml:LiteralInteger" xmi:id="_cULvAD3lEd2O2pi7NYtbsg" name="nbOfRows" templateParameter="_ZngtYD3lEd2O2pi7NYtbsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_8xIjUEd5Ed2Q3Lt-_ZCAOw" parameteredElement="_J9OKIEd6Ed2Q3Lt-_ZCAOw">
+ <ownedParameteredElement xmi:type="uml:LiteralInteger" xmi:id="_J9OKIEd6Ed2Q3Lt-_ZCAOw" name="nbOfColons" templateParameter="_8xIjUEd5Ed2Q3Lt-_ZCAOw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedAttribute xmi:id="_fMhocD0REd2lhaJErguyFA" name="numberOfRows" visibility="public" type="_FxVBkB6LEd6Nj_33Eb_pxw" isUnique="false">
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_-yHRsEd7Ed2Q3Lt-_ZCAOw" value="nbOfRows"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_fx0t4D0REd2lhaJErguyFA" name="numberOfColons" visibility="public" type="_FxVBkB6LEd6Nj_33Eb_pxw" isUnique="false">
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_fNdNkEd6Ed2Q3Lt-_ZCAOw" value="nbOfColons"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_aGz1YD0dEd2lhaJErguyFA" name="elementType" visibility="public" type="_UOqO0D3kEd2O2pi7NYtbsg" isUnique="false">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WHQBkEd7Ed2Q3Lt-_ZCAOw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_WHZLgEd7Ed2Q3Lt-_ZCAOw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_WHjjkEd7Ed2Q3Lt-_ZCAOw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="__XFfIB-UEd6nGq8wpI2tjg" name="Any"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_Pf0dQB-VEd6nGq8wpI2tjg" name="Wchar"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_CTLbgB6SEd6ITtm_FH3jRw" name="UnsignedShort"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_Wx0C4B6SEd6ITtm_FH3jRw" name="UnsignedLongLong"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_-5FTMB6REd6ITtm_FH3jRw" name="UnsignedLong"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_9XvcQB6REd6ITtm_FH3jRw" name="Short"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_IYEXcB-VEd6nGq8wpI2tjg" name="Octet"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_7CL6IB6REd6ITtm_FH3jRw" name="LongLong"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_wzSnwB6SEd6ITtm_FH3jRw" name="LongDouble"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_FxVBkB6LEd6Nj_33Eb_pxw" name="Long"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_wbw4kB6SEd6ITtm_FH3jRw" name="Float"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_qgMSAB6SEd6ITtm_FH3jRw" name="Double"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_GPceEB-VEd6nGq8wpI2tjg" name="Char"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_Bv7l0B-VEd6nGq8wpI2tjg" name="Boolean"/>
+ <profileApplication xmi:id="_DtQEwjLdEd2_U4efLnjQIw">
+ <eAnnotations xmi:id="_DtQEwzLdEd2_U4efLnjQIw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_JV5UgB6LEd6Nj_33Eb_pxw">
+ <eAnnotations xmi:id="_JWB3YB6LEd6Nj_33Eb_pxw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/C_Cpp/1#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
+ </profileApplication>
+ </uml:Model>
+ <standard:ModelLibrary xmi:id="_FrmAwDLdEd2_U4efLnjQIw" base_Package="_DtQEwDLdEd2_U4efLnjQIw"/>
+ <C_Cpp:Typedef xmi:id="_DpdTQB-VEd6nGq8wpI2tjg" definition="bool" base_primitivetype="_Bv7l0B-VEd6nGq8wpI2tjg"/>
+ <C_Cpp:Typedef xmi:id="_LlZPEB-VEd6nGq8wpI2tjg" definition="unsigned char" base_primitivetype="_IYEXcB-VEd6nGq8wpI2tjg"/>
+ <C_Cpp:Typedef xmi:id="_RegXgB-VEd6nGq8wpI2tjg" definition="unsigned short" base_primitivetype="_Pf0dQB-VEd6nGq8wpI2tjg"/>
+ <C_Cpp:Typedef xmi:id="_6hF5AMMFEd6DF55s2oWakw" definition="int" base_primitivetype="_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <C_Cpp:Typedef xmi:id="_QwNhYMMYEd6DF55s2oWakw" definition="char" base_primitivetype="_GPceEB-VEd6nGq8wpI2tjg"/>
+ <C_Cpp:Typedef xmi:id="_ZSqqoMMYEd6DF55s2oWakw" definition="double" base_primitivetype="_qgMSAB6SEd6ITtm_FH3jRw"/>
+ <C_Cpp:Typedef xmi:id="_bJ-xkMMYEd6DF55s2oWakw" definition="float" base_primitivetype="_wbw4kB6SEd6ITtm_FH3jRw"/>
+ <C_Cpp:Typedef xmi:id="_dglckMMYEd6DF55s2oWakw" definition="long double" base_primitivetype="_wzSnwB6SEd6ITtm_FH3jRw"/>
+ <C_Cpp:Typedef xmi:id="_grG30MMYEd6DF55s2oWakw" definition="int64_t" base_primitivetype="_7CL6IB6REd6ITtm_FH3jRw"/>
+ <C_Cpp:Typedef xmi:id="_ikBhQMMYEd6DF55s2oWakw" definition="int16_t" base_primitivetype="_9XvcQB6REd6ITtm_FH3jRw"/>
+ <C_Cpp:Typedef xmi:id="_kltFIMMYEd6DF55s2oWakw" definition="uint32_t" base_primitivetype="_-5FTMB6REd6ITtm_FH3jRw"/>
+ <C_Cpp:Typedef xmi:id="_nW5aYMMYEd6DF55s2oWakw" definition="uint16_t" base_primitivetype="_CTLbgB6SEd6ITtm_FH3jRw"/>
+ <C_Cpp:Typedef xmi:id="_plbHcMMYEd6DF55s2oWakw" definition="uint64_t" base_primitivetype="_Wx0C4B6SEd6ITtm_FH3jRw"/>
+ <C_Cpp:Include xmi:id="_L7vsoGJWEeG3qIU2KF8MuA" header="#include &lt;stdint.h>" base_package="_DtQEwDLdEd2_U4efLnjQIw"/>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/core.di b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/core.di
new file mode 100644
index 00000000000..c60a23070a9
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/core.di
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi" xmlns:history="http://www.eclipse.org/papyrus/0.7.0/controlmode">
+ <di:SashWindowsMngr xmi:id="_pKTSkNYFEd-CgJIavLpOxQ">
+ <pageList xmi:id="_pKTSkdYFEd-CgJIavLpOxQ">
+ <availablePage xmi:id="_pKTSktYFEd-CgJIavLpOxQ">
+ <emfPageIdentifier href="core.notation#_FYAkIG4sEd-0rs2VEGIwsA"/>
+ </availablePage>
+ <availablePage xmi:id="_A6ULItYGEd-CgJIavLpOxQ">
+ <emfPageIdentifier href="core.notation#_A6ULINYGEd-CgJIavLpOxQ"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="core.notation#_glyeMK8qEeCXIcykFPsB8Q"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="core.notation#_DtdykK8rEeCXIcykFPsB8Q"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="core.notation#_PIvc4LabEeCj_-LEBuGpmA"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="core.notation#_0IaT8LnYEeCxXoyQxQ47PQ"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="core.notation#_SstwYPEnEeCIafpoJVk7CQ"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="core.notation#_eblvwPM_EeCovO8AYZymZQ"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="core.notation#_hyLz8PNGEeCovO8AYZymZQ"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="core.notation#_cVCGYPNUEeCovO8AYZymZQ"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="core.notation#_g6Yg0CnOEeGxrprK9wB9iA"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="core.notation#_OhgzgD8AEeGJ6KSvhYhYuQ"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="core.notation#_DfG8kF7qEeGEmrrwB1vhPg"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="core.notation#_zCsUsHI3EeOCrdvV8oxOKA"/>
+ </availablePage>
+ </pageList>
+ <sashModel xmi:id="_pKTSk9YFEd-CgJIavLpOxQ" currentSelection="_pKTSldYFEd-CgJIavLpOxQ">
+ <windows xmi:id="_pKTSlNYFEd-CgJIavLpOxQ">
+ <children xsi:type="di:TabFolder" xmi:id="_pKTSldYFEd-CgJIavLpOxQ">
+ <children>
+ <emfPageIdentifier href="core.notation#_FYAkIG4sEd-0rs2VEGIwsA"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="core.notation#_eblvwPM_EeCovO8AYZymZQ"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="core.notation#_A6ULINYGEd-CgJIavLpOxQ"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="core.notation#_g6Yg0CnOEeGxrprK9wB9iA"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="core.notation#_zCsUsHI3EeOCrdvV8oxOKA"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="core.notation#_ljiPEKLvEeSBiP8ZTcBQrQ"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="pathmap://QML_CORE/sysinterfaces.notation#_SNBrsPNAEeCovO8AYZymZQ"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="core.notation#_0IaT8LnYEeCxXoyQxQ47PQ"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+ </di:SashWindowsMngr>
+ <history:ControledResource xmi:id="_pKT5oNYFEd-CgJIavLpOxQ"/>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/core.notation b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/core.notation
new file mode 100644
index 00000000000..a64f663c8c1
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/core.notation
@@ -0,0 +1,5392 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:C_Cpp="http://www.eclipse.org/papyrus/C_Cpp/1" xmlns:FCM="http://www.eclipse.org/papyrus/FCM/1" xmlns:SW_Concurrency="http://www.eclipse.org/papyrus/SW_Concurrency/1" xmlns:css="http://www.eclipse.org/papyrus/infra/gmfdiag/css" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/papyrus/SW_Concurrency/1 http://www.eclipse.org/papyrus/MARTE/1#//SRM/SW_Concurrency">
+ <notation:Diagram xmi:id="_FYAkIG4sEd-0rs2VEGIwsA" type="CompositeStructure" name="Composite Async &amp; sync call hierarchy" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_FYAkIW4sEd-0rs2VEGIwsA" type="2073" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_FYAkIm4sEd-0rs2VEGIwsA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_FYAkI24sEd-0rs2VEGIwsA" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FYAkJG4sEd-0rs2VEGIwsA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FYAkJW4sEd-0rs2VEGIwsA" type="3069" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_FYAkJm4sEd-0rs2VEGIwsA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__EG7cF7qEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Uh8jQFbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FYAkJ24sEd-0rs2VEGIwsA" x="-56"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FYBLMG4sEd-0rs2VEGIwsA" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FYBLMW4sEd-0rs2VEGIwsA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FYBLMm4sEd-0rs2VEGIwsA" x="110" y="45"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_klFeYFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_klFeYVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_klFeYly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9hqK0AuXEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9hqK0QuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_mIpj8Ns8Ed2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FYBLM24sEd-0rs2VEGIwsA" x="225" y="90" width="120" height="84"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FYBLNG4sEd-0rs2VEGIwsA" type="2073" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_FYBLNW4sEd-0rs2VEGIwsA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_FYBLNm4sEd-0rs2VEGIwsA" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FYBLN24sEd-0rs2VEGIwsA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FYBLOG4sEd-0rs2VEGIwsA" type="3069" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_FYBLOW4sEd-0rs2VEGIwsA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__2FK8F7qEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VHb18FbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FYBLOm4sEd-0rs2VEGIwsA" x="25" y="1"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FYBLO24sEd-0rs2VEGIwsA" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FYBLPG4sEd-0rs2VEGIwsA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FYBLPW4sEd-0rs2VEGIwsA" x="-10" y="44"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_klGsgFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_klGsgVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_klGsgly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9hqK0guXEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9hqK0wuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_j29X4NttEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FYBLPm4sEd-0rs2VEGIwsA" x="420" y="90" width="121" height="79"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cTlm4G5fEd-5CZIeuHpHAg" type="2073" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cTm1AG5fEd-5CZIeuHpHAg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cTm1AW5fEd-5CZIeuHpHAg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cTm1Am5fEd-5CZIeuHpHAg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cTm1A25fEd-5CZIeuHpHAg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cTm1BG5fEd-5CZIeuHpHAg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cTm1BW5fEd-5CZIeuHpHAg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cTm1Bm5fEd-5CZIeuHpHAg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cTm1B25fEd-5CZIeuHpHAg" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cTm1CG5fEd-5CZIeuHpHAg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cnOc0DrVEeGMCcwsbpLuFA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cnQ5EDrVEeGMCcwsbpLuFA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cnQ5ETrVEeGMCcwsbpLuFA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cnQ5EjrVEeGMCcwsbpLuFA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cnQ5EzrVEeGMCcwsbpLuFA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cnQ5FDrVEeGMCcwsbpLuFA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cnRgIDrVEeGMCcwsbpLuFA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cnRgITrVEeGMCcwsbpLuFA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sbFK0F7qEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XaUekFbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="20"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cnRgIjrVEeGMCcwsbpLuFA" x="20" y="22"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cnSHMDrVEeGMCcwsbpLuFA" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cnSHMTrVEeGMCcwsbpLuFA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cnOc0TrVEeGMCcwsbpLuFA" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cnSuQDrVEeGMCcwsbpLuFA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cnSuQjrVEeGMCcwsbpLuFA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cnSuQzrVEeGMCcwsbpLuFA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cnSuRDrVEeGMCcwsbpLuFA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cnSuRTrVEeGMCcwsbpLuFA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cnTVUDrVEeGMCcwsbpLuFA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cnTVUTrVEeGMCcwsbpLuFA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cnTVUjrVEeGMCcwsbpLuFA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3vXigF7qEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_W6BN4FbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="20"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cnTVUzrVEeGMCcwsbpLuFA" x="-22" y="24"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cnTVVDrVEeGMCcwsbpLuFA" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cnTVVTrVEeGMCcwsbpLuFA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cnSuQTrVEeGMCcwsbpLuFA" x="106" y="36"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_klIhsFy8EeOwKfaVRwV11Q" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_klIhsVy8EeOwKfaVRwV11Q" showTitle="true"/>
+ <element xmi:type="FCM:InteractionComponent" href="core.uml#_s8OWIFR1Ed6GqrP6fkWBoQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_klIhsly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_klIhs1y8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_klIhtFy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_klIhtVy8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9hqK1AuXEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9hqK1QuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_KxQBELuXEd2TTr3gJIvazw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cTmN8G5fEd-5CZIeuHpHAg" x="225" y="270" width="116" height="76"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nkmBEG5fEd-5CZIeuHpHAg" type="2073" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nkmoIG5fEd-5CZIeuHpHAg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nknPMG5fEd-5CZIeuHpHAg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nknPMW5fEd-5CZIeuHpHAg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nknPMm5fEd-5CZIeuHpHAg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nknPM25fEd-5CZIeuHpHAg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nknPNG5fEd-5CZIeuHpHAg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_nknPNW5fEd-5CZIeuHpHAg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nknPNm5fEd-5CZIeuHpHAg" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nknPN25fEd-5CZIeuHpHAg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_hZRPgDrVEeGMCcwsbpLuFA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hZR2kDrVEeGMCcwsbpLuFA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hZR2kTrVEeGMCcwsbpLuFA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hZR2kjrVEeGMCcwsbpLuFA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hZR2kzrVEeGMCcwsbpLuFA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hZR2lDrVEeGMCcwsbpLuFA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hZR2lTrVEeGMCcwsbpLuFA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hZR2ljrVEeGMCcwsbpLuFA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s2NAkF7qEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_whZf8F7qEeGEmrrwB1vhPg" key="CustomAppearance_MaskValue" value="52"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hZR2lzrVEeGMCcwsbpLuFA" x="21" y="25"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hZR2mDrVEeGMCcwsbpLuFA" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hZSdoDrVEeGMCcwsbpLuFA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hZRPgTrVEeGMCcwsbpLuFA" x="-10" y="33"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_hZSdoTrVEeGMCcwsbpLuFA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hZTEsDrVEeGMCcwsbpLuFA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hZTEsTrVEeGMCcwsbpLuFA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hZTEsjrVEeGMCcwsbpLuFA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hZTEszrVEeGMCcwsbpLuFA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hZTEtDrVEeGMCcwsbpLuFA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hZTEtTrVEeGMCcwsbpLuFA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hZTEtjrVEeGMCcwsbpLuFA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_24F8QF7qEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2_b6YF7qEeGEmrrwB1vhPg" key="CustomAppearance_MaskValue" value="52"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hZTEtzrVEeGMCcwsbpLuFA" x="-23" y="24"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hZTEuDrVEeGMCcwsbpLuFA" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hZTrwDrVEeGMCcwsbpLuFA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hZSdojrVEeGMCcwsbpLuFA" x="111" y="33"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_klK98Fy8EeOwKfaVRwV11Q" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_klK98Vy8EeOwKfaVRwV11Q" showTitle="true"/>
+ <element xmi:type="FCM:InteractionComponent" href="core.uml#_efp4QClzEd-eoo60eNyGlg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_klK98ly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_klK981y8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_klK99Fy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_klK99Vy8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9hqK1guXEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9hqK1wuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_Whe8EClYEd-eoo60eNyGlg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nkmBEW5fEd-5CZIeuHpHAg" x="225" y="390" width="121" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_HJAqEG5gEd-5CZIeuHpHAg" type="2073" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HJBRIG5gEd-5CZIeuHpHAg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HJBRIW5gEd-5CZIeuHpHAg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HJBRIm5gEd-5CZIeuHpHAg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HJBRI25gEd-5CZIeuHpHAg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HJB4MG5gEd-5CZIeuHpHAg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HJB4MW5gEd-5CZIeuHpHAg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_HJB4Mm5gEd-5CZIeuHpHAg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_HJB4M25gEd-5CZIeuHpHAg" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HJB4NG5gEd-5CZIeuHpHAg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_iOXEcDrVEeGMCcwsbpLuFA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iOXrgDrVEeGMCcwsbpLuFA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iOXrgTrVEeGMCcwsbpLuFA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iOXrgjrVEeGMCcwsbpLuFA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iOXrgzrVEeGMCcwsbpLuFA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iOXrhDrVEeGMCcwsbpLuFA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iOXrhTrVEeGMCcwsbpLuFA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iOXrhjrVEeGMCcwsbpLuFA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BXMYYF7rEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VrqkYFbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="20"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iOXrhzrVEeGMCcwsbpLuFA" x="14" y="27"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iOXriDrVEeGMCcwsbpLuFA" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iOXriTrVEeGMCcwsbpLuFA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iOXEcTrVEeGMCcwsbpLuFA" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_iOYSkDrVEeGMCcwsbpLuFA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iOYSkjrVEeGMCcwsbpLuFA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iOY5oDrVEeGMCcwsbpLuFA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iOY5oTrVEeGMCcwsbpLuFA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iOY5ojrVEeGMCcwsbpLuFA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iOY5ozrVEeGMCcwsbpLuFA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iOY5pDrVEeGMCcwsbpLuFA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iOY5pTrVEeGMCcwsbpLuFA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tskA0F7qEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WOFU8FbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="20"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iOY5pjrVEeGMCcwsbpLuFA" x="-16" y="24"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iOY5pzrVEeGMCcwsbpLuFA" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iOY5qDrVEeGMCcwsbpLuFA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iOYSkTrVEeGMCcwsbpLuFA" x="111" y="36"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_klMzIFy8EeOwKfaVRwV11Q" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_klMzIVy8EeOwKfaVRwV11Q" showTitle="true"/>
+ <element xmi:type="FCM:InteractionComponent" href="core.uml#_vEYVcFR1Ed6GqrP6fkWBoQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_klMzIly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_klNaMFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_klNaMVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_klNaMly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9hqx4AuXEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9hqx4QuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_Zx2ZUA1jEd6tvthBDl600Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HJAqEW5gEd-5CZIeuHpHAg" x="420" y="270" width="121" height="76"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_H_CTIG5gEd-5CZIeuHpHAg" type="2073" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H_C6MG5gEd-5CZIeuHpHAg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H_C6MW5gEd-5CZIeuHpHAg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H_C6Mm5gEd-5CZIeuHpHAg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H_C6M25gEd-5CZIeuHpHAg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H_C6NG5gEd-5CZIeuHpHAg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H_C6NW5gEd-5CZIeuHpHAg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_H_C6Nm5gEd-5CZIeuHpHAg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_H_C6N25gEd-5CZIeuHpHAg" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H_C6OG5gEd-5CZIeuHpHAg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kf30EDrVEeGMCcwsbpLuFA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kf4bIDrVEeGMCcwsbpLuFA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kf4bITrVEeGMCcwsbpLuFA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kf4bIjrVEeGMCcwsbpLuFA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kf4bIzrVEeGMCcwsbpLuFA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kf4bJDrVEeGMCcwsbpLuFA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kf4bJTrVEeGMCcwsbpLuFA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kf4bJjrVEeGMCcwsbpLuFA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EmPuUF7rEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GfK-0F7rEeGEmrrwB1vhPg" key="CustomAppearance_MaskValue" value="52"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kf4bJzrVEeGMCcwsbpLuFA" x="22" y="25"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kf4bKDrVEeGMCcwsbpLuFA" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kf4bKTrVEeGMCcwsbpLuFA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kf30ETrVEeGMCcwsbpLuFA" x="-10" y="33"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kf5CMDrVEeGMCcwsbpLuFA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kf5pQDrVEeGMCcwsbpLuFA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kf5pQTrVEeGMCcwsbpLuFA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kf5pQjrVEeGMCcwsbpLuFA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kf5pQzrVEeGMCcwsbpLuFA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kf5pRDrVEeGMCcwsbpLuFA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kf5pRTrVEeGMCcwsbpLuFA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kf5pRjrVEeGMCcwsbpLuFA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tXAAgF7qEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EFa5MF7rEeGEmrrwB1vhPg" key="CustomAppearance_MaskValue" value="52"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kf5pRzrVEeGMCcwsbpLuFA" x="25"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kf5pSDrVEeGMCcwsbpLuFA" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kf5pSTrVEeGMCcwsbpLuFA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kf5CMTrVEeGMCcwsbpLuFA" x="111" y="33"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_klPPYFy8EeOwKfaVRwV11Q" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_klPPYVy8EeOwKfaVRwV11Q" showTitle="true"/>
+ <element xmi:type="FCM:InteractionComponent" href="core.uml#_wT-8IFR1Ed6GqrP6fkWBoQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_klPPYly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_klP2cFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_klP2cVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_klP2cly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9hqx4guXEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9hqx4wuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_jOU60A1jEd6tvthBDl600Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H_CTIW5gEd-5CZIeuHpHAg" x="420" y="390" width="121" height="70"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__rQAQDrVEeGMCcwsbpLuFA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__rQnUDrVEeGMCcwsbpLuFA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__rQnUTrVEeGMCcwsbpLuFA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__rQnUjrVEeGMCcwsbpLuFA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__rQnUzrVEeGMCcwsbpLuFA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__rQnVDrVEeGMCcwsbpLuFA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__rQnVTrVEeGMCcwsbpLuFA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="__rQnVjrVEeGMCcwsbpLuFA" type="5192"/>
+ <element xmi:type="uml:Comment" href="core.uml#__oxUADrVEeGMCcwsbpLuFA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__rQAQTrVEeGMCcwsbpLuFA" x="596" y="102" width="242"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2oWskF7pEeGEmrrwB1vhPg" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2oX6sF7pEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2oX6sV7pEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2oX6sl7pEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2oX6s17pEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2oX6tF7pEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2oX6tV7pEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2oYhwF7pEeGEmrrwB1vhPg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2oYhwV7pEeGEmrrwB1vhPg" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2oYhwl7pEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2oYhw17pEeGEmrrwB1vhPg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_5wCPMF7pEeGEmrrwB1vhPg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5wC2QF7pEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5wC2QV7pEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5wC2Ql7pEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5wC2Q17pEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5wC2RF7pEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5wC2RV7pEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5wC2Rl7pEeGEmrrwB1vhPg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-VsWQF7qEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZVGwQFbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5wC2R17pEeGEmrrwB1vhPg" x="-99"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5wC2SF7pEeGEmrrwB1vhPg" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5wC2SV7pEeGEmrrwB1vhPg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_0KY1UF7pEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5wCPMV7pEeGEmrrwB1vhPg" x="108" y="45"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_klRroFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_klRroVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_klRroly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9hqx5AuXEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9hqx5QuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_0KYOQF7pEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2oWskV7pEeGEmrrwB1vhPg" x="36" y="90" width="118" height="82"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TLmDkF7qEeGEmrrwB1vhPg" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TLmqoF7qEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TLmqoV7qEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TLmqol7qEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TLmqo17qEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TLmqpF7qEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TLmqpV7qEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TLnRsF7qEeGEmrrwB1vhPg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TLnRsV7qEeGEmrrwB1vhPg" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TLnRsl7qEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TLnRs17qEeGEmrrwB1vhPg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ewlwwF7qEeGEmrrwB1vhPg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ewmX0F7qEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ewmX0V7qEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ewmX0l7qEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ewmX017qEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ewmX1F7qEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ewmX1V7qEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ewmX1l7qEeGEmrrwB1vhPg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_08xfEF7qEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1Gzk0F7qEeGEmrrwB1vhPg" key="CustomAppearance_MaskValue" value="52"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ewmX117qEeGEmrrwB1vhPg" x="-41" y="22"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ewmX2F7qEeGEmrrwB1vhPg" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ewmX2V7qEeGEmrrwB1vhPg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_0KY1UF7pEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ewlwwV7qEeGEmrrwB1vhPg" x="106" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ewm-4F7qEeGEmrrwB1vhPg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ewm-4l7qEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ewm-417qEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ewm-5F7qEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ewm-5V7qEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ewm-5l7qEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ewm-517qEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ewnl8F7qEeGEmrrwB1vhPg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_x3Ij0F7qEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YVUHMFbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="20"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ewnl8V7qEeGEmrrwB1vhPg" x="19" y="26"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ewnl8l7qEeGEmrrwB1vhPg" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ewnl817qEeGEmrrwB1vhPg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ewm-4V7qEeGEmrrwB1vhPg" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_klS5wFy8EeOwKfaVRwV11Q" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_klS5wVy8EeOwKfaVRwV11Q" showTitle="true"/>
+ <element xmi:type="FCM:InteractionComponent" href="core.uml#_Z3Zs4F7tEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_klS5wly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_klTg0Fy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_klTg0Vy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_klTg0ly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9hqx5guXEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9hqx5wuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_TLShkF7qEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TLmDkV7qEeGEmrrwB1vhPg" x="38" y="270" width="116" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9kaj4AuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9kaj4QuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9kaj4wuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9kaj4guXEeWXe7AeBUbqvw" x="310" y="45"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9kmxKAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9kmxKQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9kmxKwuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9kmxKguXEeWXe7AeBUbqvw" x="190" y="44"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9k1aoAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9k1aoQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9k2BsAuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="core.uml#_KxQBELuXEd2TTr3gJIvazw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9k1aoguXEeWXe7AeBUbqvw" x="425" y="270"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9lGgYAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9lGgYQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9lGgYwuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9lGgYguXEeWXe7AeBUbqvw" x="190" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9lapcAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9lapcQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9lapcwuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9lapcguXEeWXe7AeBUbqvw" x="306" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9lsWQAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9lsWQQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9lsWQwuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="core.uml#_Whe8EClYEd-eoo60eNyGlg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9lsWQguXEeWXe7AeBUbqvw" x="425" y="390"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9l3VYAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9l3VYQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9l3VYwuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9l3VYguXEeWXe7AeBUbqvw" x="190" y="33"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9mEwwAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9mEwwQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9mEwwwuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9mEwwguXEeWXe7AeBUbqvw" x="311" y="33"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9mb9IAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9mb9IQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9mckMAuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="core.uml#_Zx2ZUA1jEd6tvthBDl600Q"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9mb9IguXEeWXe7AeBUbqvw" x="620" y="270"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9mtC4AuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9mtC4QuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9mtC4wuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9mtC4guXEeWXe7AeBUbqvw" x="190" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9m-IoAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9m-IoQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9m-IowuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9m-IoguXEeWXe7AeBUbqvw" x="311" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9nMLEAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9nMLEQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9nMLEwuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="core.uml#_jOU60A1jEd6tvthBDl600Q"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9nMLEguXEeWXe7AeBUbqvw" x="620" y="390"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9nXKMAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9nXKMQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9nXKMwuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9nXKMguXEeWXe7AeBUbqvw" x="190" y="33"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9njXcAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9njXcQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9njXcwuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9njXcguXEeWXe7AeBUbqvw" x="311" y="33"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9nuWmAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9nuWmQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9nuWmwuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#_0KY1UF7pEeGEmrrwB1vhPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9nuWmguXEeWXe7AeBUbqvw" x="308" y="45"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9n6j0AuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9n6j0QuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9n6j0wuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="core.uml#_TLShkF7qEeGEmrrwB1vhPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9n6j0guXEeWXe7AeBUbqvw" x="238" y="270"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9oGKAAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9oGKAQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9oGxEAuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#_0KY1UF7pEeGEmrrwB1vhPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9oGKAguXEeWXe7AeBUbqvw" x="306" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9oTlYAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9oTlYQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9oTlYwuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9oTlYguXEeWXe7AeBUbqvw" x="190" y="36"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_FYBLP24sEd-0rs2VEGIwsA"/>
+ <styles xmi:type="notation:EObjectListValueStyle" xmi:id="_7gTl0Mc1EeSsAI2TZshUyg" name="css_stylesheets" eObjectListValue="_7gUz8Mc1EeSsAI2TZshUyg"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_9hqx6AuXEeWXe7AeBUbqvw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="core.uml#_mMCK8PiPEd2UhpY2Y3WUyg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_dNEMkG5fEd-5CZIeuHpHAg" type="4015" source="_cTlm4G5fEd-5CZIeuHpHAg" target="_FYAkIW4sEd-0rs2VEGIwsA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dNFasG5fEd-5CZIeuHpHAg" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dNGo0G5fEd-5CZIeuHpHAg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dNEMkW5fEd-5CZIeuHpHAg" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="core.uml#_1H2JwDBEEd6V16eboHV1gw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dNEMkm5fEd-5CZIeuHpHAg" points="[-8, -20, 58, 145]$[-50, -123, 16, 42]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_drspUG5fEd-5CZIeuHpHAg" type="4015" source="_cTlm4G5fEd-5CZIeuHpHAg" target="_FYBLNG4sEd-0rs2VEGIwsA" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_drtQYG5fEd-5CZIeuHpHAg" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_drtQYW5fEd-5CZIeuHpHAg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_drspUW5fEd-5CZIeuHpHAg" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="core.uml#_0KzSsDBEEd6V16eboHV1gw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_drspUm5fEd-5CZIeuHpHAg" points="[41, -38, -136, 105]$[41, -92, -136, 51]$[172, -92, -5, 51]$[172, -139, -5, 4]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jflTgG5fEd-5CZIeuHpHAg" id="(0.3305785123966942,0.9493670886075949)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_pOq9QG5fEd-5CZIeuHpHAg" type="4015" source="_nkmBEG5fEd-5CZIeuHpHAg" target="_cTlm4G5fEd-5CZIeuHpHAg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_pOrkUG5fEd-5CZIeuHpHAg" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_pOrkUW5fEd-5CZIeuHpHAg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_pOq9QW5fEd-5CZIeuHpHAg" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="core.uml#_lYOSkClzEd-eoo60eNyGlg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pOq9Qm5fEd-5CZIeuHpHAg" points="[1, -40, 0, 83]$[0, -85, -1, 38]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_IsGNcG5gEd-5CZIeuHpHAg" type="4015" source="_H_CTIG5gEd-5CZIeuHpHAg" target="_HJAqEG5gEd-5CZIeuHpHAg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_IsPXYG5gEd-5CZIeuHpHAg" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IsPXYW5gEd-5CZIeuHpHAg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_IsGNcW5gEd-5CZIeuHpHAg" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="core.uml#_lm4GkA1jEd6tvthBDl600Q"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IsGNcm5gEd-5CZIeuHpHAg" points="[-4, -20, 17, 90]$[-18, -90, 3, 20]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_KGqG8G5gEd-5CZIeuHpHAg" type="4015" source="_HJAqEG5gEd-5CZIeuHpHAg" target="_FYAkIW4sEd-0rs2VEGIwsA" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_KGrVEG5gEd-5CZIeuHpHAg" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KGrVEW5gEd-5CZIeuHpHAg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_KGqG8W5gEd-5CZIeuHpHAg" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="core.uml#_T1zr4DBFEd6V16eboHV1gw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KGqG8m5gEd-5CZIeuHpHAg" points="[-31, -18, 261, 147]$[-232, -132, 60, 33]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Kc5csG5gEd-5CZIeuHpHAg" type="4015" source="_HJAqEG5gEd-5CZIeuHpHAg" target="_FYBLNG4sEd-0rs2VEGIwsA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Kc6DwG5gEd-5CZIeuHpHAg" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Kc6DwW5gEd-5CZIeuHpHAg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Kc5csW5gEd-5CZIeuHpHAg" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="core.uml#_STdvYDBFEd6V16eboHV1gw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Kc5csm5gEd-5CZIeuHpHAg" points="[-12, -23, 74, 146]$[-66, -129, 20, 40]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_DjnY8DrWEeGMCcwsbpLuFA" type="4002" source="__rQAQDrVEeGMCcwsbpLuFA" target="_FYBLNG4sEd-0rs2VEGIwsA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_DjoAADrWEeGMCcwsbpLuFA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_DjoAATrWEeGMCcwsbpLuFA" points="[-19, 1, 78, 0]$[-74, 3, 23, 2]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DjzmMDrWEeGMCcwsbpLuFA" id="(0.11801242236024845,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DjzmMTrWEeGMCcwsbpLuFA" id="(0.8099173553719008,0.5443037974683544)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WhiEoF7qEeGEmrrwB1vhPg" type="4015" source="_TLmDkF7qEeGEmrrwB1vhPg" target="_2oWskF7pEeGEmrrwB1vhPg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_WhirsF7qEeGEmrrwB1vhPg" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WhirsV7qEeGEmrrwB1vhPg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_WhiEoV7qEeGEmrrwB1vhPg" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="core.uml#_WhUpQF7qEeGEmrrwB1vhPg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WhiEol7qEeGEmrrwB1vhPg" points="[1, -4, 0, 109]$[-3, -107, -4, 6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Wh9icF7qEeGEmrrwB1vhPg" id="(0.3673469387755102,0.06779661016949153)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Wh9icV7qEeGEmrrwB1vhPg" id="(0.3728813559322034,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XgiDgF7qEeGEmrrwB1vhPg" type="4015" source="_TLmDkF7qEeGEmrrwB1vhPg" target="_FYBLNG4sEd-0rs2VEGIwsA" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_XgiqkF7qEeGEmrrwB1vhPg" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XgiqkV7qEeGEmrrwB1vhPg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_XgiDgV7qEeGEmrrwB1vhPg" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="core.uml#_XgUoIF7qEeGEmrrwB1vhPg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XgiDgl7qEeGEmrrwB1vhPg" points="[17, -6, -338, 114]$[349, -112, -6, 8]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Xg9hUF7qEeGEmrrwB1vhPg" id="(0.6632653061224489,0.1016949152542373)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Xg9hUV7qEeGEmrrwB1vhPg" id="(0.3140495867768595,0.8987341772151899)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9kaj5AuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_FYAkJW4sEd-0rs2VEGIwsA" target="_9kaj4AuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_9kaj5QuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9kaj6QuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9kaj5guXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9kaj5wuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9kaj6AuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9kmxLAuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_FYBLOG4sEd-0rs2VEGIwsA" target="_9kmxKAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_9kmxLQuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9kn_QAuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9kmxLguXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9kmxLwuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9kmxMAuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9k2BsQuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_cTlm4G5fEd-5CZIeuHpHAg" target="_9k1aoAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_9k2BsguXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9k2BtguXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="core.uml#_KxQBELuXEd2TTr3gJIvazw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9k2BswuXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9k2BtAuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9k2BtQuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9lGgZAuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_cnOc0DrVEeGMCcwsbpLuFA" target="_9lGgYAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_9lGgZQuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9lGgaQuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9lGgZguXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9lGgZwuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9lGgaAuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9lapdAuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_cnSuQDrVEeGMCcwsbpLuFA" target="_9lapcAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_9lapdQuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9lapeQuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9lapdguXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9lapdwuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9lapeAuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9lsWRAuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_nkmBEG5fEd-5CZIeuHpHAg" target="_9lsWQAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_9lsWRQuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9lsWSQuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="core.uml#_Whe8EClYEd-eoo60eNyGlg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9lsWRguXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9lsWRwuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9lsWSAuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9l3VZAuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_hZRPgDrVEeGMCcwsbpLuFA" target="_9l3VYAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_9l3VZQuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9l38cAuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9l3VZguXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9l3VZwuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9l3VaAuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9mEwxAuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_hZSdoTrVEeGMCcwsbpLuFA" target="_9mEwwAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_9mEwxQuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9mEwyQuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9mEwxguXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9mEwxwuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9mEwyAuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9mckMQuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_HJAqEG5gEd-5CZIeuHpHAg" target="_9mb9IAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_9mckMguXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9mckNguXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="core.uml#_Zx2ZUA1jEd6tvthBDl600Q"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9mckMwuXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9mckNAuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9mckNQuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9mtC5AuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_iOXEcDrVEeGMCcwsbpLuFA" target="_9mtC4AuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_9mtC5QuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9mtC6QuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9mtC5guXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9mtC5wuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9mtC6AuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9m-IpAuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_iOYSkDrVEeGMCcwsbpLuFA" target="_9m-IoAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_9m-IpQuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9m-IqQuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9m-IpguXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9m-IpwuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9m-IqAuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9nMLFAuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_H_CTIG5gEd-5CZIeuHpHAg" target="_9nMLEAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_9nMLFQuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9nMLGQuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="core.uml#_jOU60A1jEd6tvthBDl600Q"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9nMLFguXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9nMLFwuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9nMLGAuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9nXKNAuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_kf30EDrVEeGMCcwsbpLuFA" target="_9nXKMAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_9nXKNQuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9nXKOQuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9nXKNguXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9nXKNwuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9nXKOAuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9njXdAuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_kf5CMDrVEeGMCcwsbpLuFA" target="_9njXcAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_9njXdQuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9njXeQuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9njXdguXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9njXdwuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9njXeAuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9nuWnAuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_5wCPMF7pEeGEmrrwB1vhPg" target="_9nuWmAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_9nuWnQuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9nuWoQuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#_0KY1UF7pEeGEmrrwB1vhPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9nuWnguXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9nuWnwuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9nuWoAuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9n6j1AuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_TLmDkF7qEeGEmrrwB1vhPg" target="_9n6j0AuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_9n6j1QuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9n6j2QuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="core.uml#_TLShkF7qEeGEmrrwB1vhPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9n6j1guXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9n6j1wuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9n6j2AuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9oGxEQuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_ewlwwF7qEeGEmrrwB1vhPg" target="_9oGKAAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_9oGxEguXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9oGxFguXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#_0KY1UF7pEeGEmrrwB1vhPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9oGxEwuXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9oGxFAuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9oGxFQuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9oTlZAuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_ewm-4F7qEeGEmrrwB1vhPg" target="_9oTlYAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_9oTlZQuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9oTlaQuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9oTlZguXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9oTlZwuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9oTlaAuXEeWXe7AeBUbqvw"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_A6ULINYGEd-CgJIavLpOxQ" type="PapyrusUMLClassDiagram" name="Class: ContainerServices" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_ByS8ANYGEd-CgJIavLpOxQ" type="2008" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ByUKINYGEd-CgJIavLpOxQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ByUKIdYGEd-CgJIavLpOxQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ByUKItYGEd-CgJIavLpOxQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ByUKI9YGEd-CgJIavLpOxQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ByUKJNYGEd-CgJIavLpOxQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ByUxMNYGEd-CgJIavLpOxQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ByUxMdYGEd-CgJIavLpOxQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ByUxMtYGEd-CgJIavLpOxQ" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_5X2YACVqEeGXBt65HZzY7g" type="3012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oG9wEFeJEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tfIHkFeJEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <element xmi:type="uml:Port" href="core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5X2YASVqEeGXBt65HZzY7g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_60xB8CVqEeGXBt65HZzY7g" type="3012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qGsMIFeJEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qRYZMFeJEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="core.uml#_rVfYoMGJEd-Mveea1W_olA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_60xB8SVqEeGXBt65HZzY7g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_r31CwCXREeGX6PuSE-DJlQ" type="3012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rmOsQFeJEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rxObUFeJEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <element xmi:type="uml:Port" href="core.uml#_ZjdOAP-EEd6628OhKk_dpg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_r31CwSXREeGX6PuSE-DJlQ"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ByUxM9YGEd-CgJIavLpOxQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ByUxNNYGEd-CgJIavLpOxQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ByUxNdYGEd-CgJIavLpOxQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ByUxNtYGEd-CgJIavLpOxQ" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_s9ecMCXREeGX6PuSE-DJlQ" type="3013" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="core.uml#_yv198P-EEd6628OhKk_dpg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_s9ecMSXREeGX6PuSE-DJlQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_s9fDQCXREeGX6PuSE-DJlQ" type="3013" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="core.uml#_JmxyMD16Ed-Bk-AHd6yyoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_s9fDQSXREeGX6PuSE-DJlQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_s9fqUCXREeGX6PuSE-DJlQ" type="3013" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="core.uml#_JqB6gD16Ed-Bk-AHd6yyoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_s9fqUSXREeGX6PuSE-DJlQ"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ByUxN9YGEd-CgJIavLpOxQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ByUxONYGEd-CgJIavLpOxQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ByUxOdYGEd-CgJIavLpOxQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ByUxOtYGEd-CgJIavLpOxQ" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ByUxO9YGEd-CgJIavLpOxQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ByUxPNYGEd-CgJIavLpOxQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ByUxPdYGEd-CgJIavLpOxQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kym9AFy8EeOwKfaVRwV11Q" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kym9AVy8EeOwKfaVRwV11Q" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="core.uml#_Q7TVYBJcEd-QgZm_R1AKbA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kym9Aly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kym9A1y8EeOwKfaVRwV11Q" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kym9BFy8EeOwKfaVRwV11Q" showTitle="true"/>
+ <element xmi:type="SW_Concurrency:SwSchedulableResource" href="core.uml#_42YPYBn3EeONpa5JgejICQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kym9BVy8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kynkEFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kynkEVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kynkEly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9v73YAuXEeWXe7AeBUbqvw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9v73YQuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9zgv0AuXEeWXe7AeBUbqvw" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_9zgv0QuXEeWXe7AeBUbqvw" name="stereotype" stringValue="C_Cpp::Include"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_RwTdQByJEduN1bTiWJ0lyw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9zgv0guXEeWXe7AeBUbqvw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9zm2dguXEeWXe7AeBUbqvw" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_9zm2dwuXEeWXe7AeBUbqvw" name="stereotype" stringValue="MARTE::MARTE_DesignModel::SRM::SW_Concurrency::SwSchedulableResource"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_hQja8BJhEdypOJGS7WfJjQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9zm2eAuXEeWXe7AeBUbqvw"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_SiY_AP-EEd6628OhKk_dpg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ByS8AdYGEd-CgJIavLpOxQ" x="99" y="108" width="190" height="145"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_D0xKENYGEd-CgJIavLpOxQ" type="2008" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D0xxINYGEd-CgJIavLpOxQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D0xxIdYGEd-CgJIavLpOxQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D0xxItYGEd-CgJIavLpOxQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D0xxI9YGEd-CgJIavLpOxQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D0xxJNYGEd-CgJIavLpOxQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D0xxJdYGEd-CgJIavLpOxQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_D0xxJtYGEd-CgJIavLpOxQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_D0xxJ9YGEd-CgJIavLpOxQ" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_OSicECXVEeGX6PuSE-DJlQ" type="3012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_l2kawFeJEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_v7LTQFeJEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <element xmi:type="uml:Port" href="core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OSicESXVEeGX6PuSE-DJlQ"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_D0xxKNYGEd-CgJIavLpOxQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_D0xxKdYGEd-CgJIavLpOxQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D0xxKtYGEd-CgJIavLpOxQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_D0xxK9YGEd-CgJIavLpOxQ" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_D0xxLNYGEd-CgJIavLpOxQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_D0xxLdYGEd-CgJIavLpOxQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D0xxLtYGEd-CgJIavLpOxQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_D0xxL9YGEd-CgJIavLpOxQ" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_D0xxMNYGEd-CgJIavLpOxQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_D0xxMdYGEd-CgJIavLpOxQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D0xxMtYGEd-CgJIavLpOxQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kyqnYFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kyqnYVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kyqnYly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9v73YguXEeWXe7AeBUbqvw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9v73YwuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D0xKEdYGEd-CgJIavLpOxQ" x="99" y="9" width="193" height="55"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_EhiDELaaEeCj_-LEBuGpmA" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EhiqILaaEeCj_-LEBuGpmA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EhiqIbaaEeCj_-LEBuGpmA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EhjRMLaaEeCj_-LEBuGpmA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EhjRMbaaEeCj_-LEBuGpmA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EhjRMraaEeCj_-LEBuGpmA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EhjRM7aaEeCj_-LEBuGpmA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_EhjRNLaaEeCj_-LEBuGpmA" type="5038"/>
+ <element xmi:type="uml:Comment" href="core.uml#_hGEOAMT8Ed-zx4a_r4xAYw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EhiDEbaaEeCj_-LEBuGpmA" x="325" y="13" width="343" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_elme8PQREeCovO8AYZymZQ" type="2004" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_elnGAPQREeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_elnGAfQREeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_elntEPQREeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_elntEfQREeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_elntEvQREeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_elntE_QREeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_elntFPQREeCovO8AYZymZQ" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_elntFfQREeCovO8AYZymZQ" visible="false" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_elntFvQREeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_elntF_QREeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_elntGPQREeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_elntGfQREeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_elntGvQREeCovO8AYZymZQ" type="7007">
+ <children xmi:type="notation:Shape" xmi:id="_f1SlMPQREeCovO8AYZymZQ" type="3007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rsca8FjnEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rvvmkFjnEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="core.uml#_f1HmEPQREeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_f1SlMfQREeCovO8AYZymZQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_elntG_QREeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_elntHPQREeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_elntHfQREeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_elntHvQREeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_eloUIPQREeCovO8AYZymZQ" visible="false" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_eloUIfQREeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_eloUIvQREeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_eloUI_QREeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eloUJPQREeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kyr1gFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kyr1gVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kyr1gly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9v73ZAuXEeWXe7AeBUbqvw" type="8507">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9v73ZQuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Interface" href="core.uml#_elkpwPQREeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_elme8fQREeCovO8AYZymZQ" x="459" y="201" width="208" height="82"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_S9Kp8PQWEeCovO8AYZymZQ" type="2004" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_S9LRAPQWEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_S9LRAfQWEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_S9LRAvQWEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_S9LRA_QWEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_S9LRBPQWEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_S9LRBfQWEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_S9LRBvQWEeCovO8AYZymZQ" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_S9LRB_QWEeCovO8AYZymZQ" visible="false" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_S9LRCPQWEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_S9LRCfQWEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_S9LRCvQWEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_S9LRC_QWEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_S9L4EPQWEeCovO8AYZymZQ" type="7007">
+ <children xmi:type="notation:Shape" xmi:id="_tK13wPQWEeCovO8AYZymZQ" type="3007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uQYXUFjnEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uT-d4FjnEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="core.uml#_tK0poPQWEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tK13wfQWEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FBOeEPQXEeCovO8AYZymZQ" type="3007" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="core.uml#_FBMo4PQXEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FBOeEfQXEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SaK_4CUREeGXBt65HZzY7g" type="3007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uQZlcFjnEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uT_E8FjnEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="core.uml#_f1HmEPQREeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SaK_4SUREeGXBt65HZzY7g"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_S9L4EfQWEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_S9L4EvQWEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_S9L4E_QWEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_S9L4FPQWEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_S9L4FfQWEeCovO8AYZymZQ" visible="false" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_S9L4FvQWEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_S9L4F_QWEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_S9L4GPQWEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_S9L4GfQWEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kytDoFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kytDoVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kytDoly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9v73ZguXEeWXe7AeBUbqvw" type="8507">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9v73ZwuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Interface" href="core.uml#_omxU4PNAEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_S9Kp8fQWEeCovO8AYZymZQ" x="459" y="324" width="451" height="91"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_DZTowCUREeGXBt65HZzY7g" type="2004" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DZUP0SUREeGXBt65HZzY7g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DZUP0iUREeGXBt65HZzY7g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DZU24CUREeGXBt65HZzY7g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DZU24SUREeGXBt65HZzY7g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DZU24iUREeGXBt65HZzY7g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DZU24yUREeGXBt65HZzY7g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_DZU25CUREeGXBt65HZzY7g" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_DZU25SUREeGXBt65HZzY7g" visible="false" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_DZU25iUREeGXBt65HZzY7g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_DZU25yUREeGXBt65HZzY7g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_DZU26CUREeGXBt65HZzY7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DZU26SUREeGXBt65HZzY7g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_DZU26iUREeGXBt65HZzY7g" type="7007">
+ <children xmi:type="notation:Shape" xmi:id="_Et42ECUREeGXBt65HZzY7g" type="3007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rsdCAVjnEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rvw0sFjnEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="core.uml#_tK0poPQWEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Et42ESUREeGXBt65HZzY7g" x="58" y="3"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_DZU26yUREeGXBt65HZzY7g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_DZU27CUREeGXBt65HZzY7g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_DZU27SUREeGXBt65HZzY7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DZU27iUREeGXBt65HZzY7g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_DZU27yUREeGXBt65HZzY7g" visible="false" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_DZU28CUREeGXBt65HZzY7g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_DZU28SUREeGXBt65HZzY7g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_DZU28iUREeGXBt65HZzY7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DZU28yUREeGXBt65HZzY7g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kyuRwFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kyuRwVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kyuRwly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9v73aAuXEeWXe7AeBUbqvw" type="8507">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9v73aQuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Interface" href="core.uml#_DY2VwCUREeGXBt65HZzY7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DZUP0CUREeGXBt65HZzY7g" x="702" y="201" width="208" height="79"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_5MArECXQEeGX6PuSE-DJlQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5MBSICXQEeGX6PuSE-DJlQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5MBSISXQEeGX6PuSE-DJlQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5MBSIiXQEeGX6PuSE-DJlQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5MB5MCXQEeGX6PuSE-DJlQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5MB5MSXQEeGX6PuSE-DJlQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5MB5MiXQEeGX6PuSE-DJlQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5MB5MyXQEeGX6PuSE-DJlQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5MB5NCXQEeGX6PuSE-DJlQ" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5MB5NSXQEeGX6PuSE-DJlQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5MB5NiXQEeGX6PuSE-DJlQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5MB5NyXQEeGX6PuSE-DJlQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5MB5OCXQEeGX6PuSE-DJlQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5MCgQCXQEeGX6PuSE-DJlQ" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5MCgQSXQEeGX6PuSE-DJlQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5MCgQiXQEeGX6PuSE-DJlQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5MCgQyXQEeGX6PuSE-DJlQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5MCgRCXQEeGX6PuSE-DJlQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5MCgRSXQEeGX6PuSE-DJlQ" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5MCgRiXQEeGX6PuSE-DJlQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5MCgRyXQEeGX6PuSE-DJlQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5MCgSCXQEeGX6PuSE-DJlQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5MCgSSXQEeGX6PuSE-DJlQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kyvf4Fy8EeOwKfaVRwV11Q" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kyvf4Vy8EeOwKfaVRwV11Q" showTitle="true"/>
+ <element xmi:type="FCM:InteractionComponent" href="core.uml#_OXit8CfwEeG6iME5Q8XPKw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kyvf4ly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kywG8Fy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kywG8Vy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kywG8ly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9v73aguXEeWXe7AeBUbqvw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9v73awuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_5J9coCXQEeGX6PuSE-DJlQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5MArESXQEeGX6PuSE-DJlQ" x="99" y="297" width="190" height="55"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_E3A5oCXREeGX6PuSE-DJlQ" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_E3BgsCXREeGX6PuSE-DJlQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_E3CHwCXREeGX6PuSE-DJlQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_E3CHwSXREeGX6PuSE-DJlQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_E3CHwiXREeGX6PuSE-DJlQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_E3CHwyXREeGX6PuSE-DJlQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_E3CHxCXREeGX6PuSE-DJlQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_E3CHxSXREeGX6PuSE-DJlQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="core.uml#_EuvHYCXREeGX6PuSE-DJlQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_E3A5oSXREeGX6PuSE-DJlQ" x="81" y="378" width="235"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_OX-j4FaNEeKxltxu9uR4dg" type="2010" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYQ3wFaNEeKxltxu9uR4dg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYQ3wVaNEeKxltxu9uR4dg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYQ3wlaNEeKxltxu9uR4dg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYRe0FaNEeKxltxu9uR4dg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYRe0VaNEeKxltxu9uR4dg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYRe0laNEeKxltxu9uR4dg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_OYRe01aNEeKxltxu9uR4dg" type="5035"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_OYRe1FaNEeKxltxu9uR4dg" type="7020">
+ <children xmi:type="notation:Shape" xmi:id="_RXTbwFaNEeKxltxu9uR4dg" type="3018" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_waMsEFaNEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_waNTIFaNEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="60"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="core.uml#_RW82cFaNEeKxltxu9uR4dg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RXTbwVaNEeKxltxu9uR4dg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_OYRe1VaNEeKxltxu9uR4dg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_OYRe1laNEeKxltxu9uR4dg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_OYRe11aNEeKxltxu9uR4dg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OYRe2FaNEeKxltxu9uR4dg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_OYRe2VaNEeKxltxu9uR4dg" visible="false" type="7021">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_OYRe2laNEeKxltxu9uR4dg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_OYRe21aNEeKxltxu9uR4dg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_OYRe3FaNEeKxltxu9uR4dg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OYRe3VaNEeKxltxu9uR4dg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kyxVEFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kyxVEVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kyxVEly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9v73bAuXEeWXe7AeBUbqvw" type="8502">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9v73bQuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:DataType" href="core.uml#_OU5asFaNEeKxltxu9uR4dg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OX-j4VaNEeKxltxu9uR4dg" x="702" y="9" width="208" height="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Y9_gUFaNEeKxltxu9uR4dg" type="2010" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Y9_gUlaNEeKxltxu9uR4dg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Y-AHYFaNEeKxltxu9uR4dg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Y-AHYVaNEeKxltxu9uR4dg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Y-AHYlaNEeKxltxu9uR4dg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Y-AHY1aNEeKxltxu9uR4dg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Y-AHZFaNEeKxltxu9uR4dg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Y-AHZVaNEeKxltxu9uR4dg" type="5035"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Y-AHZlaNEeKxltxu9uR4dg" type="7020">
+ <children xmi:type="notation:Shape" xmi:id="_fYzAkFaNEeKxltxu9uR4dg" type="3018" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t76EsFaNEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uWGGUFaNEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="core.uml#_fYeQcFaNEeKxltxu9uR4dg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fYzAkVaNEeKxltxu9uR4dg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_oUoTIFaNEeKxltxu9uR4dg" type="3018" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vVH6YFaNEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vY61QFaNEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="core.uml#_oUVYMFaNEeKxltxu9uR4dg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oUoTIVaNEeKxltxu9uR4dg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_xXc-gFaNEeKxltxu9uR4dg" type="3018" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1PtpgFaNEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1fyF0FaNEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="core.uml#_xXGZMFaNEeKxltxu9uR4dg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xXc-gVaNEeKxltxu9uR4dg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Y-AHZ1aNEeKxltxu9uR4dg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Y-AHaFaNEeKxltxu9uR4dg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Y-AHaVaNEeKxltxu9uR4dg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Y-AHalaNEeKxltxu9uR4dg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Y-AHa1aNEeKxltxu9uR4dg" visible="false" type="7021">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Y-AHbFaNEeKxltxu9uR4dg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Y-AHbVaNEeKxltxu9uR4dg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Y-AHblaNEeKxltxu9uR4dg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Y-AHb1aNEeKxltxu9uR4dg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kyyjMFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kyyjMVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kyyjMly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9v73bguXEeWXe7AeBUbqvw" type="8502">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9v73bwuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:DataType" href="core.uml#_Y8dPQFaNEeKxltxu9uR4dg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Y9_gUVaNEeKxltxu9uR4dg" x="702" y="90" width="208" height="91"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9zuyWAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9zuyWQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9zvZUAuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="core.uml#_SiY_AP-EEd6628OhKk_dpg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9zuyWguXEeWXe7AeBUbqvw" x="299" y="108"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_90UoIguXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_90UoIwuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_90UoJQuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="core.uml#_5J9coCXQEeGX6PuSE-DJlQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_90UoJAuXEeWXe7AeBUbqvw" x="299" y="297"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_A6ULIdYGEd-CgJIavLpOxQ"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_9v73cAuXEeWXe7AeBUbqvw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="core.uml#_xtlE8ARAEd--t-uhRn9OBA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_D1HvYNYGEd-CgJIavLpOxQ" type="4002" source="_ByS8ANYGEd-CgJIavLpOxQ" target="_D0xKENYGEd-CgJIavLpOxQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_D1IWcNYGEd-CgJIavLpOxQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_D1IWcdYGEd-CgJIavLpOxQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_D1HvYdYGEd-CgJIavLpOxQ" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="core.uml#_6bsEkARAEd--t-uhRn9OBA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_D1HvYtYGEd-CgJIavLpOxQ" points="[-77, -75, 118, 115]$[-195, -190, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_KuwaULaaEeCj_-LEBuGpmA" type="4013" source="_EhiDELaaEeCj_-LEBuGpmA" target="_ByS8ANYGEd-CgJIavLpOxQ" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_KuwaUbaaEeCj_-LEBuGpmA" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KuwaUraaEeCj_-LEBuGpmA" points="[325, 137, -643984, -643984]$[289, 137, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KvJb4LaaEeCj_-LEBuGpmA" id="(0.0,0.7005649717514124)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KvJb4baaEeCj_-LEBuGpmA" id="(0.917098445595855,0.2)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ffcCQPQXEeCovO8AYZymZQ" type="4002" source="_S9Kp8PQWEeCovO8AYZymZQ" target="_elme8PQREeCovO8AYZymZQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ffdQYPQXEeCovO8AYZymZQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ffdQYfQXEeCovO8AYZymZQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ffcCQfQXEeCovO8AYZymZQ" fontName="Sans Serif"/>
+ <element xmi:type="uml:Generalization" href="core.uml#_feaHgPQXEeCovO8AYZymZQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ffcCQvQXEeCovO8AYZymZQ" points="[-109, 14, 100, -14]$[-162, 10, 47, -18]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ffeegPQXEeCovO8AYZymZQ" id="(0.2328159645232816,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ffeegfQXEeCovO8AYZymZQ" id="(0.507537688442211,0.95)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_GxXJsCUREeGXBt65HZzY7g" type="4002" source="_S9Kp8PQWEeCovO8AYZymZQ" target="_DZTowCUREeGXBt65HZzY7g" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GxXwwCUREeGXBt65HZzY7g" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GxXwwSUREeGXBt65HZzY7g" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_GxXJsSUREeGXBt65HZzY7g" fontName="Sans Serif"/>
+ <element xmi:type="uml:Generalization" href="core.uml#_GwxT0CUREeGXBt65HZzY7g"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GxXJsiUREeGXBt65HZzY7g" points="[807, 324, -643984, -643984]$[807, 304, -643984, -643984]$[807, 280, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GzJSYCUREeGXBt65HZzY7g" id="(0.7716186252771619,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GzJSYSUREeGXBt65HZzY7g" id="(0.5048076923076923,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9vKGICXQEeGX6PuSE-DJlQ" type="4002" source="_5MArECXQEeGX6PuSE-DJlQ" target="_ByS8ANYGEd-CgJIavLpOxQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_9vKtMCXQEeGX6PuSE-DJlQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9vLUQCXQEeGX6PuSE-DJlQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_9vKGISXQEeGX6PuSE-DJlQ" fontName="Sans Serif"/>
+ <element xmi:type="uml:Generalization" href="core.uml#_9thucCXQEeGX6PuSE-DJlQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9vKGIiXQEeGX6PuSE-DJlQ" points="[6, -10, 0, 41]$[8, -36, 2, 15]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9wimMCXQEeGX6PuSE-DJlQ" id="(0.5052631578947369,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9wimMSXQEeGX6PuSE-DJlQ" id="(0.5077720207253886,0.98)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_jDnbICXREeGX6PuSE-DJlQ" type="4013" source="_E3A5oCXREeGX6PuSE-DJlQ" target="_5MArECXQEeGX6PuSE-DJlQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_jDnbISXREeGX6PuSE-DJlQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_jDnbIiXREeGX6PuSE-DJlQ" points="[-18, 13, 101, -76]$[-107, 85, 12, -4]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jFAiQCXREeGX6PuSE-DJlQ" id="(0.4765957446808511,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jFBJUCXREeGX6PuSE-DJlQ" id="(0.49473684210526314,0.8536585365853658)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9zvZUQuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_ByS8ANYGEd-CgJIavLpOxQ" target="_9zuyWAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_9zvZUguXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9zvZVguXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="core.uml#_SiY_AP-EEd6628OhKk_dpg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9zvZUwuXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9zvZVAuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9zvZVQuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_90UoJguXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_5MArECXQEeGX6PuSE-DJlQ" target="_90UoIguXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_90UoJwuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_90UoKwuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="core.uml#_5J9coCXQEeGX6PuSE-DJlQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_90UoKAuXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_90UoKQuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_90UoKguXEeWXe7AeBUbqvw"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_glyeMK8qEeCXIcykFPsB8Q" type="PapyrusUMLClassDiagram" name="Pkg. Template: methodCall_comp" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_iLyysK8qEeCXIcykFPsB8Q" type="2007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iL0A0K8qEeCXIcykFPsB8Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iL0n4K8qEeCXIcykFPsB8Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iL0n4a8qEeCXIcykFPsB8Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iL0n4q8qEeCXIcykFPsB8Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iL1O8K8qEeCXIcykFPsB8Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iL1O8a8qEeCXIcykFPsB8Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iL1O8q8qEeCXIcykFPsB8Q" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iL1O868qEeCXIcykFPsB8Q" type="7016">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iL1O9K8qEeCXIcykFPsB8Q"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jkrRMK8qEeCXIcykFPsB8Q" type="3033" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jkr4QK8qEeCXIcykFPsB8Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jkr4Qa8qEeCXIcykFPsB8Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jkr4Qq8qEeCXIcykFPsB8Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jkr4Q68qEeCXIcykFPsB8Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jkr4RK8qEeCXIcykFPsB8Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jkr4Ra8qEeCXIcykFPsB8Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jksfUK8qEeCXIcykFPsB8Q" type="7038">
+ <children xmi:type="notation:Shape" xmi:id="_kvgFkK8qEeCXIcykFPsB8Q" type="3031" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="core.uml#_QBCTAOxJEd-2rr_yAeKkjQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kvgFka8qEeCXIcykFPsB8Q" x="22" y="8"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jksfUa8qEeCXIcykFPsB8Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jksfUq8qEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jksfU68qEeCXIcykFPsB8Q"/>
+ </children>
+ <element xmi:type="uml:TemplateSignature" href="core.uml#_ewC6kOxIEd-2rr_yAeKkjQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jkrRMa8qEeCXIcykFPsB8Q" x="30" y="8"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kAPE4Fy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kAPE4Vy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kAPE4ly8EeOwKfaVRwV11Q"/>
+ </children>
+ <element xmi:type="uml:Package" href="core.uml#_RPCMoOxIEd-2rr_yAeKkjQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iLyysa8qEeCXIcykFPsB8Q" x="90" y="243"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_q3ohcK8qEeCXIcykFPsB8Q" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_q3pIgK8qEeCXIcykFPsB8Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q3pvkK8qEeCXIcykFPsB8Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_q3pvka8qEeCXIcykFPsB8Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q3pvkq8qEeCXIcykFPsB8Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_q3pvk68qEeCXIcykFPsB8Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q3pvlK8qEeCXIcykFPsB8Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_q3pvla8qEeCXIcykFPsB8Q" type="5038"/>
+ <element xmi:type="uml:Comment" href="core.uml#_q1w5MK8qEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q3ohca8qEeCXIcykFPsB8Q" x="261" y="108" width="253"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_glyeMa8qEeCXIcykFPsB8Q"/>
+ <element xmi:type="uml:Package" href="core.uml#_RPCMoOxIEd-2rr_yAeKkjQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_xP-jkK8qEeCXIcykFPsB8Q" type="4013" source="_q3ohcK8qEeCXIcykFPsB8Q" target="_iLyysK8qEeCXIcykFPsB8Q" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_xP-jka8qEeCXIcykFPsB8Q" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_xP-jkq8qEeCXIcykFPsB8Q" points="[-40, 30, 181, -116]$[-121, 140, 100, -6]"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_DtdykK8rEeCXIcykFPsB8Q" type="PapyrusUMLClassDiagram" name="Pkg. Template: methodCall" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_NLTmAK8rEeCXIcykFPsB8Q" type="2007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NLUNEK8rEeCXIcykFPsB8Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NLUNEa8rEeCXIcykFPsB8Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NLUNEq8rEeCXIcykFPsB8Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NLUNE68rEeCXIcykFPsB8Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NLUNFK8rEeCXIcykFPsB8Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NLUNFa8rEeCXIcykFPsB8Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NLUNFq8rEeCXIcykFPsB8Q" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NLUNF68rEeCXIcykFPsB8Q" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_TmKUIK8sEeCXIcykFPsB8Q" type="3009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TmK7MK8sEeCXIcykFPsB8Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TmK7Ma8sEeCXIcykFPsB8Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TmK7Mq8sEeCXIcykFPsB8Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TmLiQK8sEeCXIcykFPsB8Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TmLiQa8sEeCXIcykFPsB8Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TmLiQq8sEeCXIcykFPsB8Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TmLiQ68sEeCXIcykFPsB8Q" type="5017"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TmLiRK8sEeCXIcykFPsB8Q" type="7010">
+ <children xmi:type="notation:Shape" xmi:id="_V93yYK8sEeCXIcykFPsB8Q" type="3010" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V95AgK8sEeCXIcykFPsB8Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V95Aga8sEeCXIcykFPsB8Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V95Agq8sEeCXIcykFPsB8Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V95Ag68sEeCXIcykFPsB8Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V95AhK8sEeCXIcykFPsB8Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V95Aha8sEeCXIcykFPsB8Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_V95Ahq8sEeCXIcykFPsB8Q" type="5014"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_V95nkK8sEeCXIcykFPsB8Q" visible="false" type="7011">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_V95nka8sEeCXIcykFPsB8Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_V95nkq8sEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V95nk68sEeCXIcykFPsB8Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_V95nlK8sEeCXIcykFPsB8Q" visible="false" type="7012">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_V95nla8sEeCXIcykFPsB8Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_V95nlq8sEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V95nl68sEeCXIcykFPsB8Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_V95nmK8sEeCXIcykFPsB8Q" visible="false" type="7013">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_V95nma8sEeCXIcykFPsB8Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_V95nmq8sEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V95nm68sEeCXIcykFPsB8Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kCfHoFy8EeOwKfaVRwV11Q" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kCfHoVy8EeOwKfaVRwV11Q" showTitle="true"/>
+ <element xmi:type="FCM:InteractionComponent" href="core.uml#_s8OWIFR1Ed6GqrP6fkWBoQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kCfHoly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kCfusFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kCfusVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kCfusly8EeOwKfaVRwV11Q"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_KxQBELuXEd2TTr3gJIvazw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V94ZcK8sEeCXIcykFPsB8Q" x="16" y="10" height="43"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TmLiRa8sEeCXIcykFPsB8Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kCegkFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kCegkVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kCegkly8EeOwKfaVRwV11Q"/>
+ </children>
+ <element xmi:type="uml:Package" href="core.uml#_ZISNcIQzEd2_fLv04swWfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TmKUIa8sEeCXIcykFPsB8Q" x="13" y="28" width="190"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_UgOIoK8sEeCXIcykFPsB8Q" type="3009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UgOvsK8sEeCXIcykFPsB8Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UgOvsa8sEeCXIcykFPsB8Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UgOvsq8sEeCXIcykFPsB8Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UgOvs68sEeCXIcykFPsB8Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UgOvtK8sEeCXIcykFPsB8Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UgOvta8sEeCXIcykFPsB8Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UgOvtq8sEeCXIcykFPsB8Q" type="5017"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UgOvt68sEeCXIcykFPsB8Q" type="7010">
+ <children xmi:type="notation:Shape" xmi:id="_bgjX0K8sEeCXIcykFPsB8Q" type="3010" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bgj-4K8sEeCXIcykFPsB8Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bgj-4a8sEeCXIcykFPsB8Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bgj-4q8sEeCXIcykFPsB8Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bgj-468sEeCXIcykFPsB8Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bgkl8K8sEeCXIcykFPsB8Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bgkl8a8sEeCXIcykFPsB8Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bgkl8q8sEeCXIcykFPsB8Q" type="5014"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_bgkl868sEeCXIcykFPsB8Q" visible="false" type="7011">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_bgkl9K8sEeCXIcykFPsB8Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_bgkl9a8sEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bgkl9q8sEeCXIcykFPsB8Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_bgkl968sEeCXIcykFPsB8Q" visible="false" type="7012">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_bgkl-K8sEeCXIcykFPsB8Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_bgkl-a8sEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bgkl-q8sEeCXIcykFPsB8Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_bgkl-68sEeCXIcykFPsB8Q" visible="false" type="7013">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_bgkl_K8sEeCXIcykFPsB8Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_bgkl_a8sEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bgkl_q8sEeCXIcykFPsB8Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kChj4Fy8EeOwKfaVRwV11Q" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kChj4Vy8EeOwKfaVRwV11Q" showTitle="true"/>
+ <element xmi:type="FCM:InteractionComponent" href="core.uml#_vEYVcFR1Ed6GqrP6fkWBoQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kChj4ly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kCiK8Fy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kCiK8Vy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kCiK8ly8EeOwKfaVRwV11Q"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_Zx2ZUA1jEd6tvthBDl600Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bgjX0a8sEeCXIcykFPsB8Q" x="15" y="7" height="51"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UgOvuK8sEeCXIcykFPsB8Q" x="48" y="4" width="200" height="80"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kCg80Fy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kCg80Vy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kCg80ly8EeOwKfaVRwV11Q"/>
+ </children>
+ <element xmi:type="uml:Package" href="core.uml#_RjvvcA1jEd6tvthBDl600Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UgOIoa8sEeCXIcykFPsB8Q" x="229" y="28" width="190"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NLUNGK8rEeCXIcykFPsB8Q"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_q9rCkK8rEeCXIcykFPsB8Q" type="3033" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_q9rpoK8rEeCXIcykFPsB8Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q9sQsK8rEeCXIcykFPsB8Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_q9sQsa8rEeCXIcykFPsB8Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q9sQsq8rEeCXIcykFPsB8Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_q9sQs68rEeCXIcykFPsB8Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q9sQtK8rEeCXIcykFPsB8Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_q9sQta8rEeCXIcykFPsB8Q" type="7038">
+ <children xmi:type="notation:Shape" xmi:id="_ryntkK8rEeCXIcykFPsB8Q" type="3031" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="core.uml#_WzWVUPfBEd2TbIfwytOyPA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ryntka8rEeCXIcykFPsB8Q" x="15" y="10"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_q9sQtq8rEeCXIcykFPsB8Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_q9sQt68rEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q9sQuK8rEeCXIcykFPsB8Q"/>
+ </children>
+ <element xmi:type="uml:TemplateSignature" href="core.uml#_V0b2APfBEd2TbIfwytOyPA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q9rCka8rEeCXIcykFPsB8Q" x="40" y="10"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kCdScFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kCdScVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kCdScly8EeOwKfaVRwV11Q"/>
+ </children>
+ <element xmi:type="uml:Package" href="core.uml#_mMCK8PiPEd2UhpY2Y3WUyg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NLTmAa8rEeCXIcykFPsB8Q" x="90" y="108" width="451" height="181"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Wi948K8rEeCXIcykFPsB8Q" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Wi948q8rEeCXIcykFPsB8Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Wi-gAK8rEeCXIcykFPsB8Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Wi-gAa8rEeCXIcykFPsB8Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Wi-gAq8rEeCXIcykFPsB8Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Wi-gA68rEeCXIcykFPsB8Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Wi-gBK8rEeCXIcykFPsB8Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wi-gBa8rEeCXIcykFPsB8Q" type="5038"/>
+ <element xmi:type="uml:Comment" href="core.uml#_WiuBUK8rEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Wi948a8rEeCXIcykFPsB8Q" x="594" y="180" width="253"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Dtdyka8rEeCXIcykFPsB8Q"/>
+ <element xmi:type="uml:Package" href="core.uml#_mMCK8PiPEd2UhpY2Y3WUyg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_Xu0BAK8rEeCXIcykFPsB8Q" type="4013" source="_Wi948K8rEeCXIcykFPsB8Q" target="_NLTmAK8rEeCXIcykFPsB8Q" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Xu0BAa8rEeCXIcykFPsB8Q" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Xu0BAq8rEeCXIcykFPsB8Q" points="[-50, 10, 224, -38]$[-174, 51, 100, 3]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tBbDAK8rEeCXIcykFPsB8Q" id="(0.755,0.72)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_PIvc4LabEeCj_-LEBuGpmA" type="CompositeStructure" name="StdPorts" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_PlQZwLabEeCj_-LEBuGpmA" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PlRA0LabEeCj_-LEBuGpmA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PlRA0babEeCj_-LEBuGpmA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PlRn4LabEeCj_-LEBuGpmA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PlRn4babEeCj_-LEBuGpmA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PlRn4rabEeCj_-LEBuGpmA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PlRn47abEeCj_-LEBuGpmA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_PlSO8LabEeCj_-LEBuGpmA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PlSO8babEeCj_-LEBuGpmA" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PlSO8rabEeCj_-LEBuGpmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_UfT48LabEeCj_-LEBuGpmA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UfUgALabEeCj_-LEBuGpmA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UfUgAbabEeCj_-LEBuGpmA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UfUgArabEeCj_-LEBuGpmA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UfUgA7abEeCj_-LEBuGpmA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UfVHELabEeCj_-LEBuGpmA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UfVHEbabEeCj_-LEBuGpmA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8J5rUDrTEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8gAeMDrTEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8gAeMTrTEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8gAeMjrTEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8gAeMzrTEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8gAeNDrTEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UfVHErabEeCj_-LEBuGpmA" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UfVHE7abEeCj_-LEBuGpmA" x="-116" y="-4"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UfVHFLabEeCj_-LEBuGpmA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UfVHFbabEeCj_-LEBuGpmA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UfT48babEeCj_-LEBuGpmA" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kEpq0Fy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kEpq0Vy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kEpq0ly8EeOwKfaVRwV11Q"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_N6fa4JsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PlQZwbabEeCj_-LEBuGpmA" x="144" y="72" width="163" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QHPsgLabEeCj_-LEBuGpmA" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QHQTkLabEeCj_-LEBuGpmA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QHQTkbabEeCj_-LEBuGpmA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QHQ6oLabEeCj_-LEBuGpmA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QHQ6obabEeCj_-LEBuGpmA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QHQ6orabEeCj_-LEBuGpmA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QHQ6o7abEeCj_-LEBuGpmA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QHQ6pLabEeCj_-LEBuGpmA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QHRhsLabEeCj_-LEBuGpmA" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QHRhsbabEeCj_-LEBuGpmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_atcPILabEeCj_-LEBuGpmA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_atc2MLabEeCj_-LEBuGpmA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_atc2MbabEeCj_-LEBuGpmA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_atc2MrabEeCj_-LEBuGpmA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_atc2M7abEeCj_-LEBuGpmA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_atc2NLabEeCj_-LEBuGpmA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_atc2NbabEeCj_-LEBuGpmA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9T6nYDrTEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9l5IMDrTEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9l5vQDrTEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9l5vQTrTEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9l5vQjrTEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9l6WUDrTEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_atc2NrabEeCj_-LEBuGpmA" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_atc2N7abEeCj_-LEBuGpmA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_atddQLabEeCj_-LEBuGpmA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_atddQbabEeCj_-LEBuGpmA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_atcPIbabEeCj_-LEBuGpmA" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kErgAFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kErgAVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kErgAly8EeOwKfaVRwV11Q"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QHPsgbabEeCj_-LEBuGpmA" x="144" y="180" width="163" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SOUtwLabEeCj_-LEBuGpmA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SOVU0LabEeCj_-LEBuGpmA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SOVU0babEeCj_-LEBuGpmA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SOV74LabEeCj_-LEBuGpmA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SOV74babEeCj_-LEBuGpmA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SOV74rabEeCj_-LEBuGpmA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SOV747abEeCj_-LEBuGpmA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SOV75LabEeCj_-LEBuGpmA" type="5192"/>
+ <element xmi:type="uml:Comment" href="core.uml#_OcN78Nt2Ed6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SOUtwbabEeCj_-LEBuGpmA" x="378" y="72" width="235"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_PIvc4babEeCj_-LEBuGpmA"/>
+ <element xmi:type="uml:Package" href="core.uml#_HmnpEJsrEd61Eo3nmu3JhQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_SOtIQLabEeCj_-LEBuGpmA" type="4002" source="_SOUtwLabEeCj_-LEBuGpmA" target="_PlQZwLabEeCj_-LEBuGpmA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_SOtvULabEeCj_-LEBuGpmA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SOtvUbabEeCj_-LEBuGpmA" points="[0, 0, -129, -109]$[108, 90, -21, -19]"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_0IaT8LnYEeCxXoyQxQ47PQ" type="PapyrusUMLClassDiagram" name="PortKinds" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_0-EJkLnYEeCxXoyQxQ47PQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0-EwoLnYEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0-EwobnYEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0-EwornYEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0-Ewo7nYEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0-EwpLnYEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0-EwpbnYEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0-EwprnYEeCxXoyQxQ47PQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0-Ewp7nYEeCxXoyQxQ47PQ" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0-EwqLnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0-EwqbnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-EwqrnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0-Ewq7nYEeCxXoyQxQ47PQ" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0-EwrLnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0-EwrbnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-EwrrnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0-FXsLnYEeCxXoyQxQ47PQ" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0-FXsbnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0-FXsrnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-FXs7nYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kIQ_gFy8EeOwKfaVRwV11Q" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kIQ_gVy8EeOwKfaVRwV11Q" showTitle="true"/>
+ <element xmi:type="FCM:PortKind" href="core.uml#_x5mL4FRxEd6GqrP6fkWBoQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kIQ_gly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kIQ_g1y8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kIQ_hFy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kIQ_hVy8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tei3ojMXEeWoDfId-zdVpA" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tei3ozMXEeWoDfId-zdVpA" y="5"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="core.uml#_Wtq4sVDlEd6cwecVIgl9nw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-EJkbnYEeCxXoyQxQ47PQ" x="54" y="388" width="127" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0-XrkLnYEeCxXoyQxQ47PQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0-XrkrnYEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0-Xrk7nYEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0-XrlLnYEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0-YSoLnYEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0-YSobnYEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0-YSornYEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0-YSo7nYEeCxXoyQxQ47PQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0-YSpLnYEeCxXoyQxQ47PQ" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0-YSpbnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0-YSprnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-YSp7nYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0-YSqLnYEeCxXoyQxQ47PQ" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0-YSqbnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0-YSqrnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-YSq7nYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0-YSrLnYEeCxXoyQxQ47PQ" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0-YSrbnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0-YSrrnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-YSr7nYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kIS0sFy8EeOwKfaVRwV11Q" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kIS0sVy8EeOwKfaVRwV11Q" showTitle="true"/>
+ <element xmi:type="FCM:PortKind" href="core.uml#_pE6GUFR1Ed6GqrP6fkWBoQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kIS0sly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kITbwFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kITbwVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kITbwly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tei3pDMXEeWoDfId-zdVpA" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tei3pTMXEeWoDfId-zdVpA" y="5"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="core.uml#_Wtq4slDlEd6cwecVIgl9nw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-XrkbnYEeCxXoyQxQ47PQ" x="54" y="334" width="127" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0-rNkLnYEeCxXoyQxQ47PQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0-r0oLnYEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0-r0obnYEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0-sbsLnYEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0-sbsbnYEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Vy3QQDrZEeGgAdAmWw4pyQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vy3QQTrZEeGgAdAmWw4pyQ" key="QualifiedNameDepth" value="2"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0-sbtLnYEeCxXoyQxQ47PQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0-sbtbnYEeCxXoyQxQ47PQ" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0-sbtrnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0-sbt7nYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-sbuLnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0-sbubnYEeCxXoyQxQ47PQ" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0-sburnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0-sbu7nYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-sbvLnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0-sbvbnYEeCxXoyQxQ47PQ" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0-sbvrnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0-sbv7nYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-sbwLnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kIVQ8Fy8EeOwKfaVRwV11Q" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kIVQ8Vy8EeOwKfaVRwV11Q" showTitle="true"/>
+ <element xmi:type="FCM:PortKind" href="core.uml#_qOK0cFR1Ed6GqrP6fkWBoQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kIVQ8ly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kIV4AFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kIV4AVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kIV4Aly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tei3pjMXEeWoDfId-zdVpA" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tei3pzMXEeWoDfId-zdVpA" y="5"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="core.uml#_WtrfwlDlEd6cwecVIgl9nw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-rNkbnYEeCxXoyQxQ47PQ" x="234" y="280" width="127" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2dxzYLnZEeCxXoyQxQ47PQ" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2dyacLnZEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2dyacbnZEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2dyacrnZEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2dyac7nZEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2dyadLnZEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2dyadbnZEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2dzBgLnZEeCxXoyQxQ47PQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="core.uml#_2dvXILnZEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2dxzYbnZEeCxXoyQxQ47PQ" x="253" y="334" width="468" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FMviMLnaEeCxXoyQxQ47PQ" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FMviMbnaEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FMviMrnaEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FMviM7naEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FMviNLnaEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FMviNbnaEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FMviNrnaEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FMviN7naEeCxXoyQxQ47PQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="core.uml#_FMuUELnaEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FMviOLnaEeCxXoyQxQ47PQ" x="432" y="280" width="468" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Ggu5oLnaEeCxXoyQxQ47PQ" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ggu5obnaEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ggu5ornaEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ggu5o7naEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ggu5pLnaEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ggu5pbnaEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ggu5prnaEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Ggu5p7naEeCxXoyQxQ47PQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="core.uml#_GgtrgLnaEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ggu5qLnaEeCxXoyQxQ47PQ" x="252" y="388" width="468" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-bqrQDiyEeGiupyIkgMHVw" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-bsgcDiyEeGiupyIkgMHVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-bsgcTiyEeGiupyIkgMHVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-bsgcjiyEeGiupyIkgMHVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-bsgcziyEeGiupyIkgMHVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-bsgdDiyEeGiupyIkgMHVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-bsgdTiyEeGiupyIkgMHVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-btHgDiyEeGiupyIkgMHVw" type="5038"/>
+ <element xmi:type="uml:Comment" href="core.uml#_-UGDoDiyEeGiupyIkgMHVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-bqrQTiyEeGiupyIkgMHVw" x="18" y="496" width="595" height="28"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GkKYAC8qEeKx7OxAiA06uw" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GkM0QC8qEeKx7OxAiA06uw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GkM0QS8qEeKx7OxAiA06uw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GkNbUC8qEeKx7OxAiA06uw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GkNbUS8qEeKx7OxAiA06uw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GkNbUi8qEeKx7OxAiA06uw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GkNbUy8qEeKx7OxAiA06uw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_GkNbVC8qEeKx7OxAiA06uw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GkOCYC8qEeKx7OxAiA06uw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GkOCYS8qEeKx7OxAiA06uw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GkOCYi8qEeKx7OxAiA06uw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GkOCYy8qEeKx7OxAiA06uw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GkOCZC8qEeKx7OxAiA06uw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GkOCZS8qEeKx7OxAiA06uw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GkOCZi8qEeKx7OxAiA06uw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GkOCZy8qEeKx7OxAiA06uw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GkOCaC8qEeKx7OxAiA06uw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GkOCaS8qEeKx7OxAiA06uw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GkOCai8qEeKx7OxAiA06uw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GkOCay8qEeKx7OxAiA06uw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GkOCbC8qEeKx7OxAiA06uw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GkOCbS8qEeKx7OxAiA06uw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GkOCbi8qEeKx7OxAiA06uw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kIfpAFy8EeOwKfaVRwV11Q" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kIfpAVy8EeOwKfaVRwV11Q" showTitle="true"/>
+ <element xmi:type="FCM:PortKind" href="core.uml#_SrCqQC8qEeKx7OxAiA06uw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kIfpAly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kIfpA1y8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kIfpBFy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kIfpBVy8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tei3rjMXEeWoDfId-zdVpA" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tei3rzMXEeWoDfId-zdVpA" y="5"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="core.uml#_GjnlcC8qEeKx7OxAiA06uw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GkK_EC8qEeKx7OxAiA06uw" x="54" y="442" width="127" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CQkpAEMMEeKGIL695HkFYQ" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CQoTYEMMEeKGIL695HkFYQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CQo6cEMMEeKGIL695HkFYQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CQo6cUMMEeKGIL695HkFYQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CQo6ckMMEeKGIL695HkFYQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CQo6c0MMEeKGIL695HkFYQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CQphgEMMEeKGIL695HkFYQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CQphgUMMEeKGIL695HkFYQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="core.uml#_COvdAEMMEeKGIL695HkFYQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CQkpAUMMEeKGIL695HkFYQ" x="252" y="442" width="469" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1GdhkH-QEeOtkrzuMiGEow" type="2004">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1Gdhkn-QEeOtkrzuMiGEow" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1GeIoH-QEeOtkrzuMiGEow" visible="false" type="7006">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1GevsH-QEeOtkrzuMiGEow" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1GfWwH-QEeOtkrzuMiGEow" key="showTitle" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1GeIoX-QEeOtkrzuMiGEow"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1GeIon-QEeOtkrzuMiGEow"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1GeIo3-QEeOtkrzuMiGEow"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1GeIpH-QEeOtkrzuMiGEow"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1GeIpX-QEeOtkrzuMiGEow" type="7007">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1GfWwX-QEeOtkrzuMiGEow" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1GfWwn-QEeOtkrzuMiGEow" key="showTitle" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1GeIpn-QEeOtkrzuMiGEow"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1GeIp3-QEeOtkrzuMiGEow"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1GeIqH-QEeOtkrzuMiGEow"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1GeIqX-QEeOtkrzuMiGEow"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1GeIqn-QEeOtkrzuMiGEow" visible="false" type="7008">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1Ggk4H-QEeOtkrzuMiGEow" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1Ggk4X-QEeOtkrzuMiGEow" key="showTitle" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1GeIq3-QEeOtkrzuMiGEow"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1GeIrH-QEeOtkrzuMiGEow"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1GeIrX-QEeOtkrzuMiGEow"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1GeIrn-QEeOtkrzuMiGEow"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tejesDMXEeWoDfId-zdVpA" type="8507">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tejesTMXEeWoDfId-zdVpA" y="5"/>
+ </children>
+ <element xmi:type="uml:Interface" href="core.uml#_1FxlEH-QEeOtkrzuMiGEow"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1GdhkX-QEeOtkrzuMiGEow" x="21" y="555" width="224" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7cugEH-QEeOtkrzuMiGEow" type="2012">
+ <children xmi:type="notation:DecorationNode" xmi:id="_7cugEn-QEeOtkrzuMiGEow" type="5038"/>
+ <element xmi:type="uml:Comment" href="core.uml#_7cXTsH-QEeOtkrzuMiGEow"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7cugEX-QEeOtkrzuMiGEow" x="305" y="558" width="315" height="71"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_thsSQDMXEeWoDfId-zdVpA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_thsSQTMXEeWoDfId-zdVpA" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_thsSQzMXEeWoDfId-zdVpA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Stereotype" href="core.uml#_Wtq4sFDlEd6cwecVIgl9nw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_thsSQjMXEeWoDfId-zdVpA" x="254" y="28"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tiI-MDMXEeWoDfId-zdVpA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tiI-MTMXEeWoDfId-zdVpA" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_tiI-MzMXEeWoDfId-zdVpA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Stereotype" href="core.uml#_Wtq4sVDlEd6cwecVIgl9nw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tiI-MjMXEeWoDfId-zdVpA" x="254" y="351"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tih_wDMXEeWoDfId-zdVpA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tih_wTMXEeWoDfId-zdVpA" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_tih_wzMXEeWoDfId-zdVpA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Stereotype" href="core.uml#_Wtq4slDlEd6cwecVIgl9nw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tih_wjMXEeWoDfId-zdVpA" x="254" y="297"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ti6aQTMXEeWoDfId-zdVpA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ti6aQjMXEeWoDfId-zdVpA" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_ti6aRDMXEeWoDfId-zdVpA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Stereotype" href="core.uml#_WtrfwlDlEd6cwecVIgl9nw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ti6aQzMXEeWoDfId-zdVpA" x="254" y="243"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tjS0wDMXEeWoDfId-zdVpA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tjS0wTMXEeWoDfId-zdVpA" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_tjS0wzMXEeWoDfId-zdVpA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Stereotype" href="core.uml#_Wtrfw1DlEd6cwecVIgl9nw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tjS0wjMXEeWoDfId-zdVpA" x="254" y="81"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tjrPQDMXEeWoDfId-zdVpA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tjrPQTMXEeWoDfId-zdVpA" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_tjrPQzMXEeWoDfId-zdVpA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Stereotype" href="core.uml#__nMrwLqNEd-SedGzMDDkww"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tjrPQjMXEeWoDfId-zdVpA" x="254" y="135"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tka2IDMXEeWoDfId-zdVpA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tka2ITMXEeWoDfId-zdVpA" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_tka2IzMXEeWoDfId-zdVpA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Stereotype" href="core.uml#_AQZZwLqOEd-SedGzMDDkww"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tka2IjMXEeWoDfId-zdVpA" x="254" y="189"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tlS_4DMXEeWoDfId-zdVpA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tlS_4TMXEeWoDfId-zdVpA" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_tlS_4zMXEeWoDfId-zdVpA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Stereotype" href="core.uml#_GjnlcC8qEeKx7OxAiA06uw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tlS_4jMXEeWoDfId-zdVpA" x="254" y="405"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_HPS44DMYEeWoDfId-zdVpA" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_HPVVIDMYEeWoDfId-zdVpA" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_HPVVITMYEeWoDfId-zdVpA" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_09vZcLnYEeCxXoyQxQ47PQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_09wAgLnYEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_09wAgbnYEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_09wAgrnYEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_09wAg7nYEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_09wAhLnYEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_09wAhbnYEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_09wAhrnYEeCxXoyQxQ47PQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_09wAh7nYEeCxXoyQxQ47PQ" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_09wnkLnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_09wnkbnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_09wnkrnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_09wnk7nYEeCxXoyQxQ47PQ" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_09wnlLnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_09wnlbnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_09wnlrnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_09wnl7nYEeCxXoyQxQ47PQ" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_09wnmLnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_09wnmbnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_09wnmrnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kIOjQFy8EeOwKfaVRwV11Q" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kIOjQVy8EeOwKfaVRwV11Q" showTitle="true"/>
+ <element xmi:type="FCM:PortKind" href="core.uml#_wySlkFRxEd6GqrP6fkWBoQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kIOjQly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kIPKUFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kIPKUVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kIPKUly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tei3oDMXEeWoDfId-zdVpA" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tei3oTMXEeWoDfId-zdVpA" y="5"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="core.uml#_Wtq4sFDlEd6cwecVIgl9nw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_09vZcbnYEeCxXoyQxQ47PQ" x="235" y="12" width="127" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0-9hcLnYEeCxXoyQxQ47PQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0-9hcrnYEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0-9hc7nYEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0--IgLnYEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0--IgbnYEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0--IgrnYEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0--Ig7nYEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0--IhLnYEeCxXoyQxQ47PQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0--IhbnYEeCxXoyQxQ47PQ" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0--IhrnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0--Ih7nYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0--IiLnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0--IibnYEeCxXoyQxQ47PQ" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0--IirnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0--Ii7nYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0--IjLnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0--IjbnYEeCxXoyQxQ47PQ" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0--IjrnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0--Ij7nYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0--IkLnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kIXGIFy8EeOwKfaVRwV11Q" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kIXGIVy8EeOwKfaVRwV11Q" showTitle="true"/>
+ <element xmi:type="FCM:PortKind" href="core.uml#_9Fif4FRxEd6GqrP6fkWBoQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kIXGIly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kIXtMFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kIXtMVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kIXtMly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tei3qDMXEeWoDfId-zdVpA" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tei3qTMXEeWoDfId-zdVpA" y="5"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="core.uml#_Wtrfw1DlEd6cwecVIgl9nw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-9hcbnYEeCxXoyQxQ47PQ" x="235" y="72" width="127" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0_OnMLnYEeCxXoyQxQ47PQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0_POQLnYEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0_POQbnYEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0_POQrnYEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0_POQ7nYEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0_PORLnYEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0_PORbnYEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0_PORrnYEeCxXoyQxQ47PQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0_POR7nYEeCxXoyQxQ47PQ" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0_POSLnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0_POSbnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0_POSrnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0_P1ULnYEeCxXoyQxQ47PQ" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0_P1UbnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0_P1UrnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0_P1U7nYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0_P1VLnYEeCxXoyQxQ47PQ" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0_P1VbnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0_P1VrnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0_P1V7nYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kIZiYFy8EeOwKfaVRwV11Q" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kIZiYVy8EeOwKfaVRwV11Q" showTitle="true"/>
+ <element xmi:type="FCM:PortKind" href="core.uml#_KtgR0LqOEd-SedGzMDDkww"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kIZiYly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kIaJcFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kIaJcVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kIaJcly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tei3qjMXEeWoDfId-zdVpA" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tei3qzMXEeWoDfId-zdVpA" y="5"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="core.uml#__nMrwLqNEd-SedGzMDDkww"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0_OnMbnYEeCxXoyQxQ47PQ" x="235" y="132" width="127" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0_j-YLnYEeCxXoyQxQ47PQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0_klcLnYEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0_klcbnYEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0_lMgLnYEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0_lMgbnYEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0_lMgrnYEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0_lMg7nYEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0_lMhLnYEeCxXoyQxQ47PQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0_lMhbnYEeCxXoyQxQ47PQ" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0_lMhrnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0_lMh7nYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0_lMiLnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0_lzkLnYEeCxXoyQxQ47PQ" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0_lzkbnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0_lzkrnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0_lzk7nYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0_lzlLnYEeCxXoyQxQ47PQ" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0_lzlbnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0_lzlrnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0_lzl7nYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kIb-oFy8EeOwKfaVRwV11Q" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kIb-oVy8EeOwKfaVRwV11Q" showTitle="true"/>
+ <element xmi:type="FCM:PortKind" href="core.uml#_H5-aQLqOEd-SedGzMDDkww"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kIb-oly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kIb-o1y8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kIb-pFy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kIb-pVy8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tei3rDMXEeWoDfId-zdVpA" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tei3rTMXEeWoDfId-zdVpA" y="5"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="core.uml#_AQZZwLqOEd-SedGzMDDkww"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0_j-YbnYEeCxXoyQxQ47PQ" x="235" y="192" width="127" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Fw1jMLnZEeCxXoyQxQ47PQ" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Fw3YYLnZEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Fw3YYbnZEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Fw3YYrnZEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Fw3YY7nZEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Fw3YZLnZEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Fw3YZbnZEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Fw3YZrnZEeCxXoyQxQ47PQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="core.uml#_FryEELnZEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Fw1jMbnZEeCxXoyQxQ47PQ" x="435" y="12" width="469" height="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_K19p8LnZEeCxXoyQxQ47PQ" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_K1-RALnZEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_K1-RAbnZEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_K1-RArnZEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_K1-4ELnZEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_K1-4EbnZEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_K1-4ErnZEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_K1-4E7nZEeCxXoyQxQ47PQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="core.uml#_K17NsLnZEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_K19p8bnZEeCxXoyQxQ47PQ" x="435" y="72" width="469" height="35"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Px1uELnZEeCxXoyQxQ47PQ" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Px2VILnZEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Px2VIbnZEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Px2VIrnZEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Px28MLnZEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Px28MbnZEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Px28MrnZEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Px28M7nZEeCxXoyQxQ47PQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="core.uml#_PxzR0LnZEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Px1uEbnZEeCxXoyQxQ47PQ" x="435" y="132" width="469" height="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_l4_LYLnZEeCxXoyQxQ47PQ" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_l4_LYbnZEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_l4_LYrnZEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_l4_LY7nZEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_l4_LZLnZEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_l4_LZbnZEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_l4_LZrnZEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_l4_LZ7nZEeCxXoyQxQ47PQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="core.uml#_l49WMLnZEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l4_LaLnZEeCxXoyQxQ47PQ" x="435" y="192" width="469" height="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1cX-4DPdEeWoDfId-zdVpA" type="2004">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1cX-4jPdEeWoDfId-zdVpA" type="5011"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1cX-4zPdEeWoDfId-zdVpA" type="8507">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1cX-5DPdEeWoDfId-zdVpA" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1cYl8DPdEeWoDfId-zdVpA" visible="false" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1cYl8TPdEeWoDfId-zdVpA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1cYl8jPdEeWoDfId-zdVpA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1cYl8zPdEeWoDfId-zdVpA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1cYl9DPdEeWoDfId-zdVpA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1cYl9TPdEeWoDfId-zdVpA" visible="false" type="7007">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1cYl9jPdEeWoDfId-zdVpA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1cYl9zPdEeWoDfId-zdVpA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1cYl-DPdEeWoDfId-zdVpA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1cYl-TPdEeWoDfId-zdVpA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1cYl-jPdEeWoDfId-zdVpA" visible="false" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1cYl-zPdEeWoDfId-zdVpA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1cYl_DPdEeWoDfId-zdVpA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1cYl_TPdEeWoDfId-zdVpA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1cYl_jPdEeWoDfId-zdVpA"/>
+ </children>
+ <element xmi:type="uml:Interface" href="core.uml#_d9RssDMYEeWoDfId-zdVpA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1cX-4TPdEeWoDfId-zdVpA" x="15" y="12" width="121" height="101"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_HPVVIjMYEeWoDfId-zdVpA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HPVVIzMYEeWoDfId-zdVpA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_HPrTYDMYEeWoDfId-zdVpA" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_HPrTYTMYEeWoDfId-zdVpA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HPrTYjMYEeWoDfId-zdVpA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_OwZS0DMYEeWoDfId-zdVpA" type="3033">
+ <children xmi:type="notation:DecorationNode" xmi:id="_OwZS0jMYEeWoDfId-zdVpA" type="7038">
+ <children xmi:type="notation:Shape" xmi:id="_QqluoDMYEeWoDfId-zdVpA" type="3031">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="core.uml#_QqFYUDMYEeWoDfId-zdVpA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QqluoTMYEeWoDfId-zdVpA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_OwZS0zMYEeWoDfId-zdVpA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_OwZS1DMYEeWoDfId-zdVpA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_OwZS1TMYEeWoDfId-zdVpA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OwZS1jMYEeWoDfId-zdVpA"/>
+ </children>
+ <element xmi:type="uml:TemplateSignature" href="core.uml#_OwA4UDMYEeWoDfId-zdVpA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OwZS0TMYEeWoDfId-zdVpA"/>
+ </children>
+ <element xmi:type="uml:Package" href="core.uml#_HPLkIDMYEeWoDfId-zdVpA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HPS44TMYEeWoDfId-zdVpA" x="40" y="-40" width="1061" height="301"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_0IaT8bnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_tejesjMXEeWoDfId-zdVpA" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="core.uml#_QwvnQFDlEd6cwecVIgl9nw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_jEPL0LnZEeCxXoyQxQ47PQ" type="4013" source="_Fw1jMLnZEeCxXoyQxQ47PQ" target="_09vZcLnYEeCxXoyQxQ47PQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_jEPy4LnZEeCxXoyQxQ47PQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_jEPy4bnZEeCxXoyQxQ47PQ" points="[-4, 1, 86, 0]$[-87, 0, 3, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jES2MLnZEeCxXoyQxQ47PQ" id="(0.0,0.45)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jES2MbnZEeCxXoyQxQ47PQ" id="(1.0,0.4864864864864865)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ju3dMLnZEeCxXoyQxQ47PQ" type="4013" source="_K19p8LnZEeCxXoyQxQ47PQ" target="_0-9hcLnYEeCxXoyQxQ47PQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_ju3dMbnZEeCxXoyQxQ47PQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ju3dMrnZEeCxXoyQxQ47PQ" points="[-5, 0, 137, 2]$[-87, 0, 55, 2]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ju7uoLnZEeCxXoyQxQ47PQ" id="(0.0,0.6285714285714286)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4JY0QDMYEeWoDfId-zdVpA" id="(1.0,0.5945945945945946)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kSsjALnZEeCxXoyQxQ47PQ" type="4013" source="_Px1uELnZEeCxXoyQxQ47PQ" target="_0_OnMLnYEeCxXoyQxQ47PQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_kSsjAbnZEeCxXoyQxQ47PQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kSsjArnZEeCxXoyQxQ47PQ" points="[-13, 6, 136, 5]$[-94, 6, 55, 5]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kSyCkLnZEeCxXoyQxQ47PQ" id="(0.0,0.42857142857142855)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_d48UUDPeEeWoDfId-zdVpA" id="(1.0,0.4864864864864865)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_pgZ-ALnZEeCxXoyQxQ47PQ" type="4013" source="_l4_LYLnZEeCxXoyQxQ47PQ" target="_0_j-YLnYEeCxXoyQxQ47PQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_pgZ-AbnZEeCxXoyQxQ47PQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pgZ-ArnZEeCxXoyQxQ47PQ" points="[-4, 2, 106, 0]$[-93, 1, 17, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pge2gLnZEeCxXoyQxQ47PQ" id="(0.0,0.2982456140350877)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pge2gbnZEeCxXoyQxQ47PQ" id="(1.0,0.4594594594594595)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_MhrIYLnaEeCxXoyQxQ47PQ" type="4013" source="_2dxzYLnZEeCxXoyQxQ47PQ" target="_0-XrkLnYEeCxXoyQxQ47PQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_MhrIYbnaEeCxXoyQxQ47PQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_MhrIYrnaEeCxXoyQxQ47PQ" points="[-9, -1, 113, 0]$[-99, -1, 23, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MhuywLnaEeCxXoyQxQ47PQ" id="(0.00641025641025641,0.5405405405405406)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MhuywbnaEeCxXoyQxQ47PQ" id="(0.963302752293578,0.5135135135135135)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NJn5MLnaEeCxXoyQxQ47PQ" type="4013" source="_FMviMLnaEeCxXoyQxQ47PQ" target="_0-rNkLnYEeCxXoyQxQ47PQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NJn5MbnaEeCxXoyQxQ47PQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NJn5MrnaEeCxXoyQxQ47PQ" points="[-20, -1, 144, 5]$[-109, -1, 55, 5]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NJq8gLnaEeCxXoyQxQ47PQ" id="(0.042735042735042736,0.47058823529411764)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NplLoLnaEeCxXoyQxQ47PQ" type="4013" source="_Ggu5oLnaEeCxXoyQxQ47PQ" target="_0-EJkLnYEeCxXoyQxQ47PQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NplLobnaEeCxXoyQxQ47PQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NplLornaEeCxXoyQxQ47PQ" points="[-7, -6, 106, 0]$[-96, -7, 17, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NppdELnaEeCxXoyQxQ47PQ" id="(0.014957264957264958,0.45098039215686275)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NppdEbnaEeCxXoyQxQ47PQ" id="(0.8440366972477065,0.4594594594594595)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_McYVsEMMEeKGIL695HkFYQ" type="4013" source="_CQkpAEMMEeKGIL695HkFYQ" target="_GkKYAC8qEeKx7OxAiA06uw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_McYVsUMMEeKGIL695HkFYQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_McYVskMMEeKGIL695HkFYQ" points="[-3, 0, 115, 0]$[-92, 0, 26, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Mcj74EMMEeKGIL695HkFYQ" id="(0.006396588486140725,0.35714285714285715)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Mcj74UMMEeKGIL695HkFYQ" id="(0.7614678899082569,0.5135135135135135)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_HeY7IH-REeOtkrzuMiGEow" type="4013" source="_7cugEH-QEeOtkrzuMiGEow" target="_1GdhkH-QEeOtkrzuMiGEow">
+ <styles xmi:type="notation:FontStyle" xmi:id="_HeY7IX-REeOtkrzuMiGEow"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HeY7In-REeOtkrzuMiGEow" points="[-31, -4, 68, 0]$[-91, -5, 8, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HebXYH-REeOtkrzuMiGEow" id="(0.09841269841269841,0.4084507042253521)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Heb-cH-REeOtkrzuMiGEow" id="(0.9642857142857143,0.45901639344262296)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ths5UDMXEeWoDfId-zdVpA" type="StereotypeCommentLink" source="_09vZcLnYEeCxXoyQxQ47PQ" target="_thsSQDMXEeWoDfId-zdVpA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_ths5UTMXEeWoDfId-zdVpA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_thuugTMXEeWoDfId-zdVpA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Stereotype" href="core.uml#_Wtq4sFDlEd6cwecVIgl9nw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ths5UjMXEeWoDfId-zdVpA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_thuHcDMXEeWoDfId-zdVpA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_thuugDMXEeWoDfId-zdVpA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_tiI-NDMXEeWoDfId-zdVpA" type="StereotypeCommentLink" source="_0-EJkLnYEeCxXoyQxQ47PQ" target="_tiI-MDMXEeWoDfId-zdVpA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_tiI-NTMXEeWoDfId-zdVpA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_tiI-OTMXEeWoDfId-zdVpA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Stereotype" href="core.uml#_Wtq4sVDlEd6cwecVIgl9nw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_tiI-NjMXEeWoDfId-zdVpA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tiI-NzMXEeWoDfId-zdVpA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tiI-ODMXEeWoDfId-zdVpA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_tih_xDMXEeWoDfId-zdVpA" type="StereotypeCommentLink" source="_0-XrkLnYEeCxXoyQxQ47PQ" target="_tih_wDMXEeWoDfId-zdVpA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_tih_xTMXEeWoDfId-zdVpA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_tih_yTMXEeWoDfId-zdVpA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Stereotype" href="core.uml#_Wtq4slDlEd6cwecVIgl9nw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_tih_xjMXEeWoDfId-zdVpA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tih_xzMXEeWoDfId-zdVpA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tih_yDMXEeWoDfId-zdVpA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ti6aRTMXEeWoDfId-zdVpA" type="StereotypeCommentLink" source="_0-rNkLnYEeCxXoyQxQ47PQ" target="_ti6aQTMXEeWoDfId-zdVpA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_ti6aRjMXEeWoDfId-zdVpA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_ti7BUDMXEeWoDfId-zdVpA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Stereotype" href="core.uml#_WtrfwlDlEd6cwecVIgl9nw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ti6aRzMXEeWoDfId-zdVpA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ti6aSDMXEeWoDfId-zdVpA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ti6aSTMXEeWoDfId-zdVpA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_tjS0xDMXEeWoDfId-zdVpA" type="StereotypeCommentLink" source="_0-9hcLnYEeCxXoyQxQ47PQ" target="_tjS0wDMXEeWoDfId-zdVpA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_tjS0xTMXEeWoDfId-zdVpA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_tjS0yTMXEeWoDfId-zdVpA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Stereotype" href="core.uml#_Wtrfw1DlEd6cwecVIgl9nw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_tjS0xjMXEeWoDfId-zdVpA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tjS0xzMXEeWoDfId-zdVpA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tjS0yDMXEeWoDfId-zdVpA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_tjrPRDMXEeWoDfId-zdVpA" type="StereotypeCommentLink" source="_0_OnMLnYEeCxXoyQxQ47PQ" target="_tjrPQDMXEeWoDfId-zdVpA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_tjrPRTMXEeWoDfId-zdVpA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_tjr2UDMXEeWoDfId-zdVpA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Stereotype" href="core.uml#__nMrwLqNEd-SedGzMDDkww"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_tjrPRjMXEeWoDfId-zdVpA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tjrPRzMXEeWoDfId-zdVpA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tjrPSDMXEeWoDfId-zdVpA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_tka2JDMXEeWoDfId-zdVpA" type="StereotypeCommentLink" source="_0_j-YLnYEeCxXoyQxQ47PQ" target="_tka2IDMXEeWoDfId-zdVpA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_tka2JTMXEeWoDfId-zdVpA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_tka2KTMXEeWoDfId-zdVpA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Stereotype" href="core.uml#_AQZZwLqOEd-SedGzMDDkww"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_tka2JjMXEeWoDfId-zdVpA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tka2JzMXEeWoDfId-zdVpA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tka2KDMXEeWoDfId-zdVpA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_tlS_5DMXEeWoDfId-zdVpA" type="StereotypeCommentLink" source="_GkKYAC8qEeKx7OxAiA06uw" target="_tlS_4DMXEeWoDfId-zdVpA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_tlS_5TMXEeWoDfId-zdVpA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_tlTm8DMXEeWoDfId-zdVpA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Stereotype" href="core.uml#_GjnlcC8qEeKx7OxAiA06uw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_tlS_5jMXEeWoDfId-zdVpA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tlS_5zMXEeWoDfId-zdVpA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tlS_6DMXEeWoDfId-zdVpA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="__8V9sDPdEeWoDfId-zdVpA" type="4003" source="_09vZcLnYEeCxXoyQxQ47PQ" target="_1cX-4DPdEeWoDfId-zdVpA">
+ <children xmi:type="notation:DecorationNode" xmi:id="__8WkwDPdEeWoDfId-zdVpA" type="6008">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__8WkwTPdEeWoDfId-zdVpA" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="__8WkwjPdEeWoDfId-zdVpA" type="6009">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__8WkwzPdEeWoDfId-zdVpA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="__8V9sTPdEeWoDfId-zdVpA"/>
+ <element xmi:type="uml:InterfaceRealization" href="core.uml#__77G8DPdEeWoDfId-zdVpA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__8V9sjPdEeWoDfId-zdVpA" points="[12, 0, -655, -14]$[665, 14, -2, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__9hCYDPdEeWoDfId-zdVpA" id="(0.0,0.5405405405405406)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__9hpcDPdEeWoDfId-zdVpA" id="(1.0,0.19801980198019803)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_BXmawDPeEeWoDfId-zdVpA" type="4007" source="_0-9hcLnYEeCxXoyQxQ47PQ" target="_1cX-4DPdEeWoDfId-zdVpA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_BXmawzPeEeWoDfId-zdVpA" type="6016">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BXmaxDPeEeWoDfId-zdVpA" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BXmaxTPeEeWoDfId-zdVpA" type="6017">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BXmaxjPeEeWoDfId-zdVpA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_BXmawTPeEeWoDfId-zdVpA"/>
+ <element xmi:type="uml:Usage" href="core.uml#_BXPOYDPeEeWoDfId-zdVpA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BXmawjPeEeWoDfId-zdVpA" points="[5, -1, -676, 28]$[658, -24, -23, 5]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BZFBcDPeEeWoDfId-zdVpA" id="(0.0,0.5405405405405406)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BZFogDPeEeWoDfId-zdVpA" id="(1.0,0.7920792079207921)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_SstwYPEnEeCIafpoJVk7CQ" type="CompositeStructure" name="ContainerRules" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_V3-LcPEnEeCIafpoJVk7CQ" type="2073" fontName="Arial" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V4AnsPEnEeCIafpoJVk7CQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V4AnsfEnEeCIafpoJVk7CQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V4AnsvEnEeCIafpoJVk7CQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V4Ans_EnEeCIafpoJVk7CQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V4BOwPEnEeCIafpoJVk7CQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V4BOwfEnEeCIafpoJVk7CQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HPEWAPQUEeCovO8AYZymZQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HPEWAfQUEeCovO8AYZymZQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HPE9EPQUEeCovO8AYZymZQ" key="StereotypeList" value="FCM::ContainerRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HPE9EfQUEeCovO8AYZymZQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HPE9EvQUEeCovO8AYZymZQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HPE9E_QUEeCovO8AYZymZQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_V4BOwvEnEeCIafpoJVk7CQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_V4BOw_EnEeCIafpoJVk7CQ" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_mxqE4PTWEeCn1-FCrfecFg" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mxrTAPTWEeCn1-FCrfecFg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mxr6EPTWEeCn1-FCrfecFg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mxr6EfTWEeCn1-FCrfecFg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mxr6EvTWEeCn1-FCrfecFg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mxr6E_TWEeCn1-FCrfecFg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mxr6FPTWEeCn1-FCrfecFg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qmq1AAJzEeG0Lb1KYG16fA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qmrcEAJzEeG0Lb1KYG16fA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qmrcEQJzEeG0Lb1KYG16fA" key="StereotypeList" value="FCM::InterceptionRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qmrcEgJzEeG0Lb1KYG16fA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qmrcEwJzEeG0Lb1KYG16fA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qmrcFAJzEeG0Lb1KYG16fA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mxr6FfTWEeCn1-FCrfecFg" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RtvSsFjmEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RzCCYFjmEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mxshIPTWEeCn1-FCrfecFg" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mxshIfTWEeCn1-FCrfecFg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mxshIvTWEeCn1-FCrfecFg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_y3lU4PTWEeCn1-FCrfecFg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y3mjAPTWEeCn1-FCrfecFg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y3nKEPTWEeCn1-FCrfecFg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y3nKEfTWEeCn1-FCrfecFg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y3nKEvTWEeCn1-FCrfecFg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y3nKE_TWEeCn1-FCrfecFg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y3nKFPTWEeCn1-FCrfecFg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WiNb0DrUEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XNgbkDrUEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XNgbkTrUEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XNhCoDrUEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XNhCoTrUEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XNhCojrUEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_y3nKFfTWEeCn1-FCrfecFg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QlkJsFjmEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QplHAFjmEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y3nxIPTWEeCn1-FCrfecFg" x="-90" y="38"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_y3nxIfTWEeCn1-FCrfecFg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y3nxIvTWEeCn1-FCrfecFg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_ZjdOAP-EEd6628OhKk_dpg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y3lU4fTWEeCn1-FCrfecFg" x="189" y="7"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_y3oYMPTWEeCn1-FCrfecFg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y3pmUPTWEeCn1-FCrfecFg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y3pmUfTWEeCn1-FCrfecFg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y3pmUvTWEeCn1-FCrfecFg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y3pmU_TWEeCn1-FCrfecFg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y3pmVPTWEeCn1-FCrfecFg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y3qNYPTWEeCn1-FCrfecFg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VXcR0DrUEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vt_woDrUEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vt_woTrUEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vt_wojrUEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VuAXsDrUEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VuAXsTrUEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_y3qNYfTWEeCn1-FCrfecFg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QEIQkFjmEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QK0HYFjmEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y3qNYvTWEeCn1-FCrfecFg" x="-17" y="-34"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_y3qNY_TWEeCn1-FCrfecFg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y3qNZPTWEeCn1-FCrfecFg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y3o_QPTWEeCn1-FCrfecFg" x="-10" y="7"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kKoXAFy8EeOwKfaVRwV11Q" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kKoXAVy8EeOwKfaVRwV11Q" showTitle="true"/>
+ <element xmi:type="FCM:InterceptionRule" href="core.uml#_qlcF8AJzEeG0Lb1KYG16fA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kKoXAly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kKoXA1y8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kKoXBFy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kKoXBVy8EeOwKfaVRwV11Q"/>
+ </children>
+ <element xmi:type="uml:Property" href="core.uml#_mvN04PTWEeCn1-FCrfecFg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mxqE4fTWEeCn1-FCrfecFg" x="31" y="31" width="199" height="37"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_V4BOxPEnEeCIafpoJVk7CQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V4BOxfEnEeCIafpoJVk7CQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kKmh0Fy8EeOwKfaVRwV11Q" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kKmh0Vy8EeOwKfaVRwV11Q" showTitle="true"/>
+ <element xmi:type="FCM:ContainerRule" href="core.uml#_3Jq5MARLEd-OidZzGKCpzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kKmh0ly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kKnI4Fy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kKnI4Vy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kKnI4ly8EeOwKfaVRwV11Q"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_14WtMARJEd--t-uhRn9OBA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V3-LcfEnEeCIafpoJVk7CQ" x="72" y="36" width="262" height="145"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_W2m98PEnEeCIafpoJVk7CQ" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_W2nlAPEnEeCIafpoJVk7CQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_W2nlAfEnEeCIafpoJVk7CQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_W2nlAvEnEeCIafpoJVk7CQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_W2nlA_EnEeCIafpoJVk7CQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_W2nlBPEnEeCIafpoJVk7CQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_W2nlBfEnEeCIafpoJVk7CQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_W2oMEPEnEeCIafpoJVk7CQ" type="5192"/>
+ <element xmi:type="uml:Comment" href="core.uml#_q-kFUMTJEd-cLazKlAeYsQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_W2m98fEnEeCIafpoJVk7CQ" x="378" y="54" width="429"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_HDAUACjaEeGFbebITJYb9g" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HDA7ECjaEeGFbebITJYb9g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HDA7ESjaEeGFbebITJYb9g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HDA7EijaEeGFbebITJYb9g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HDA7EyjaEeGFbebITJYb9g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HDA7FCjaEeGFbebITJYb9g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HDA7FSjaEeGFbebITJYb9g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MUh4ACjaEeGFbebITJYb9g" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MUh4ASjaEeGFbebITJYb9g" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MUh4AijaEeGFbebITJYb9g" key="StereotypeList" value="FCM::ContainerRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MUh4AyjaEeGFbebITJYb9g" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MUh4BCjaEeGFbebITJYb9g" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MUh4BSjaEeGFbebITJYb9g" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_HDA7FijaEeGFbebITJYb9g" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_HDA7FyjaEeGFbebITJYb9g" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_JWCGkCjaEeGFbebITJYb9g" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JWCtoCjaEeGFbebITJYb9g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JWCtoSjaEeGFbebITJYb9g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JWCtoijaEeGFbebITJYb9g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JWCtoyjaEeGFbebITJYb9g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JWCtpCjaEeGFbebITJYb9g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JWCtpSjaEeGFbebITJYb9g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JWCtpijaEeGFbebITJYb9g" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PdThIFjmEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PlvrcFjmEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JWCtpyjaEeGFbebITJYb9g" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JWCtqCjaEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JWCtqSjaEeGFbebITJYb9g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kKsocFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kKsocVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kKsocly8EeOwKfaVRwV11Q"/>
+ </children>
+ <element xmi:type="uml:Property" href="core.uml#_6yVMkCjZEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JWCGkSjaEeGFbebITJYb9g" x="10" y="10" width="156"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_HDA7GCjaEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HDA7GSjaEeGFbebITJYb9g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kKqzQFy8EeOwKfaVRwV11Q" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kKqzQVy8EeOwKfaVRwV11Q" showTitle="true"/>
+ <element xmi:type="FCM:ContainerRule" href="core.uml#_MS45QCjaEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kKqzQly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kKraUFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kKraUVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kKraUly8EeOwKfaVRwV11Q"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_1sCBICjZEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HDAUASjaEeGFbebITJYb9g" x="72" y="252" width="261" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_H0i7YDbgEeGdqp2YT1LwWw" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H0jicDbgEeGdqp2YT1LwWw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H0jicTbgEeGdqp2YT1LwWw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H0jicjbgEeGdqp2YT1LwWw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H0jiczbgEeGdqp2YT1LwWw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H0jidDbgEeGdqp2YT1LwWw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H0jidTbgEeGdqp2YT1LwWw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_H0jidjbgEeGdqp2YT1LwWw" type="5192"/>
+ <element xmi:type="uml:Comment" href="core.uml#_H0IrsDbgEeGdqp2YT1LwWw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H0i7YTbgEeGdqp2YT1LwWw" x="378" y="261" width="217"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_SstwYfEnEeCIafpoJVk7CQ"/>
+ <element xmi:type="uml:Package" href="core.uml#_y4qB4ARJEd--t-uhRn9OBA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_YjbFEPEnEeCIafpoJVk7CQ" type="4002" source="_W2m98PEnEeCIafpoJVk7CQ" target="_V3-LcPEnEeCIafpoJVk7CQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_YjbFEfEnEeCIafpoJVk7CQ" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YjbFEvEnEeCIafpoJVk7CQ" points="[-11, -4, 128, 36]$[-126, -42, 13, -2]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YjcTMPEnEeCIafpoJVk7CQ" id="(0.01,0.38333333333333336)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YjcTMfEnEeCIafpoJVk7CQ" id="(0.8602150537634409,0.45)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NK3f0DbgEeGdqp2YT1LwWw" type="4002" source="_H0i7YDbgEeGdqp2YT1LwWw" target="_HDAUACjaEeGFbebITJYb9g" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NK3f0TbgEeGdqp2YT1LwWw" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NK3f0jbgEeGdqp2YT1LwWw" points="[-18, 3, 77, 0]$[-63, 2, 32, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NLz7ADbgEeGdqp2YT1LwWw" id="(0.08294930875576037,0.6)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NL0iEDbgEeGdqp2YT1LwWw" id="(0.8773946360153256,0.4752475247524752)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_eblvwPM_EeCovO8AYZymZQ" type="CompositeStructure" name="Composite: ContainerServices " measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_JRsvcPNAEeCovO8AYZymZQ" type="2073" fontName="" fontHeight="10" fillColor="8047085" transparency="50" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JRtWgPNAEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JRtWgfNAEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JRtWgvNAEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JRtWg_NAEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JRtWhPNAEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JRtWhfNAEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JRtWhvNAEeCovO8AYZymZQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JRtWh_NAEeCovO8AYZymZQ" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_k-Qe0PN8EeCovO8AYZymZQ" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_k-RF4PN8EeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k-RF4fN8EeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_k-RF4vN8EeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k-RF4_N8EeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_k-RF5PN8EeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k-RF5fN8EeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_k-RF5vN8EeCovO8AYZymZQ" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iWRp4FaDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ivBhEFaDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="60"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_k-Rs8PN8EeCovO8AYZymZQ" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_k-Rs8fN8EeCovO8AYZymZQ" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k-Rs8vN8EeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kn7-EFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kn7-EVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kn7-Ely8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9o2_AguXEeWXe7AeBUbqvw" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9o2_AwuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="core.uml#_k-OpoPN8EeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k-Qe0fN8EeCovO8AYZymZQ" x="24" y="41" width="165" height="23"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__a22APQXEeCovO8AYZymZQ" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__a3dEPQXEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__a4EIPQXEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__a4EIfQXEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__a4EIvQXEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__a4EI_QXEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__a4EJPQXEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="__a4EJfQXEeCovO8AYZymZQ" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fzb5sFaDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gCiFoFaDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__a4EJvQXEeCovO8AYZymZQ" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__a4EJ_QXEeCovO8AYZymZQ" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__a4EKPQXEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kn8lIFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kn8lIVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kn8lIly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9o2_BAuXEeWXe7AeBUbqvw" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9o2_BQuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="core.uml#__a1A0PQXEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__a22AfQXEeCovO8AYZymZQ" x="24" y="5" width="165" height="23"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_KnUHYPQYEeCovO8AYZymZQ" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KnUHYvQYEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KnUHY_QYEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KnUucPQYEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KnUucfQYEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KnUucvQYEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KnUuc_QYEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_KnUudPQYEeCovO8AYZymZQ" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hLhG8FaDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hSXV0FaDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_KnUudfQYEeCovO8AYZymZQ" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_KnUudvQYEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KnUud_QYEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kn9zQFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kn9zQVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kn9zQly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9o2_BguXEeWXe7AeBUbqvw" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9o2_BwuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="core.uml#_KnS5QPQYEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KnUHYfQYEeCovO8AYZymZQ" x="24" y="83" width="165" height="23"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JRtWiPNAEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JRtWifNAEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_M0b2YPNAEeCovO8AYZymZQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_M0cdcPNAEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M0cdcfNAEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_M0cdcvNAEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M0cdc_NAEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_M0dEgPNAEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M0dEgfNAEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_M0dEgvNAEeCovO8AYZymZQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dBgkoFaDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dM7xgFaDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_M0dEg_NAEeCovO8AYZymZQ" x="-61" y="-2"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_M0dEhPNAEeCovO8AYZymZQ" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_M0dEhfNAEeCovO8AYZymZQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_MzO8gPNAEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M0b2YfNAEeCovO8AYZymZQ" x="-10" y="60" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kn6I4Fy8EeOwKfaVRwV11Q" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kn6I4Vy8EeOwKfaVRwV11Q" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="core.uml#_Yx49gCaeEeG4fZdVXNtoOQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kn6I4ly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kn6I41y8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kn6I5Fy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kn6I5Vy8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9o2_AAuXEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9o2_AQuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_JRmo0PNAEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JRsvcfNAEeCovO8AYZymZQ" x="171" y="32" width="212" height="159"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9dH0UCjYEeGFbebITJYb9g" type="2073" fontName="" fontHeight="10" fillColor="8047085" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9dIbYCjYEeGFbebITJYb9g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9dIbYSjYEeGFbebITJYb9g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9dIbYijYEeGFbebITJYb9g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9dIbYyjYEeGFbebITJYb9g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9dIbZCjYEeGFbebITJYb9g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9dIbZSjYEeGFbebITJYb9g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9dJCcCjYEeGFbebITJYb9g" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9dJCcSjYEeGFbebITJYb9g" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9dJCcijYEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9dJCcyjYEeGFbebITJYb9g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AVlPMCjZEeGFbebITJYb9g" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AVl2QCjZEeGFbebITJYb9g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AVl2QSjZEeGFbebITJYb9g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AVl2QijZEeGFbebITJYb9g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AVl2QyjZEeGFbebITJYb9g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AVl2RCjZEeGFbebITJYb9g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AVmdUCjZEeGFbebITJYb9g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AVmdUSjZEeGFbebITJYb9g" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WOqX0FaDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WaM5cFaDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AVmdUijZEeGFbebITJYb9g" x="-72"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AVmdUyjZEeGFbebITJYb9g" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AVmdVCjZEeGFbebITJYb9g" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_ATRiECjZEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AVlPMSjZEeGFbebITJYb9g" x="207" y="45" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_f8HYECjZEeGFbebITJYb9g" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8H_ICjZEeGFbebITJYb9g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8H_ISjZEeGFbebITJYb9g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8H_IijZEeGFbebITJYb9g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8H_IyjZEeGFbebITJYb9g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8H_JCjZEeGFbebITJYb9g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8H_JSjZEeGFbebITJYb9g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_f8H_JijZEeGFbebITJYb9g" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_W__uIFaDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XHxKEFaDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_f8H_JyjZEeGFbebITJYb9g" x="25"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_f8ImMCjZEeGFbebITJYb9g" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_f8ImMSjZEeGFbebITJYb9g" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8HYESjZEeGFbebITJYb9g" x="-10" y="45"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kn_BYFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kn_BYVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kn_BYly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9o2_CAuXEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9o2_CQuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_9V8OQCjYEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9dH0USjYEeGFbebITJYb9g" x="171" y="302" width="217" height="92"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WoQnECjZEeGFbebITJYb9g" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WoROICjZEeGFbebITJYb9g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WoROISjZEeGFbebITJYb9g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WoROIijZEeGFbebITJYb9g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WoROIyjZEeGFbebITJYb9g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WoROJCjZEeGFbebITJYb9g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WoROJSjZEeGFbebITJYb9g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WoROJijZEeGFbebITJYb9g" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_WoROJyjZEeGFbebITJYb9g" visible="false" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WoROKCjZEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WoROKSjZEeGFbebITJYb9g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_koA2kFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_koA2kVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_koA2kly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9o2_CguXEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9o2_CwuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WoQnESjZEeGFbebITJYb9g" x="171" y="250" width="217" height="26"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qz8ykCkAEeGDDbdzqSb4UA" type="2073" fontName="" fontHeight="10" fillColor="8047085" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8ykSkAEeGDDbdzqSb4UA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8ykikAEeGDDbdzqSb4UA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8ykykAEeGDDbdzqSb4UA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8ylCkAEeGDDbdzqSb4UA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8ylSkAEeGDDbdzqSb4UA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8ylikAEeGDDbdzqSb4UA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qz8ynSkAEeGDDbdzqSb4UA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qz8ypCkAEeGDDbdzqSb4UA" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_qz8ypSkAEeGDDbdzqSb4UA" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8ypikAEeGDDbdzqSb4UA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8ypykAEeGDDbdzqSb4UA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8yqCkAEeGDDbdzqSb4UA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8yqSkAEeGDDbdzqSb4UA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8yqikAEeGDDbdzqSb4UA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8yqykAEeGDDbdzqSb4UA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qz8yrCkAEeGDDbdzqSb4UA" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Vo5_YFaDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vv278FaDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qz8yrSkAEeGDDbdzqSb4UA" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qz8yrikAEeGDDbdzqSb4UA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qz8yrykAEeGDDbdzqSb4UA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qz8ysCkAEeGDDbdzqSb4UA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8ysSkAEeGDDbdzqSb4UA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8ysikAEeGDDbdzqSb4UA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8ysykAEeGDDbdzqSb4UA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8ytCkAEeGDDbdzqSb4UA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8ytSkAEeGDDbdzqSb4UA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8ytikAEeGDDbdzqSb4UA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qz8ytykAEeGDDbdzqSb4UA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8yuCkAEeGDDbdzqSb4UA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bFaEUFaDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="12"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qz8yuikAEeGDDbdzqSb4UA" x="-36" y="-8"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qz8yuykAEeGDDbdzqSb4UA" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qz8yvCkAEeGDDbdzqSb4UA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qz8yvSkAEeGDDbdzqSb4UA" x="63" y="-10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_4ksloCkAEeGDDbdzqSb4UA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4kwQACkAEeGDDbdzqSb4UA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4kwQASkAEeGDDbdzqSb4UA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4kwQAikAEeGDDbdzqSb4UA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4kwQAykAEeGDDbdzqSb4UA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4kwQBCkAEeGDDbdzqSb4UA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4kwQBSkAEeGDDbdzqSb4UA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4kwQBikAEeGDDbdzqSb4UA" visible="false" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AP6k4CkBEeGDDbdzqSb4UA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AP7L8CkBEeGDDbdzqSb4UA" key="CustomAppearance_MaskValue" value="46"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4kwQBykAEeGDDbdzqSb4UA" x="18" y="-18"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4kw3ECkAEeGDDbdzqSb4UA" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4kw3ESkAEeGDDbdzqSb4UA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_ATRiECjZEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4ksloSkAEeGDDbdzqSb4UA" x="153" y="16"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_koCrwFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_koCrwVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_koCrwly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9o2_DguXEeWXe7AeBUbqvw" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9o2_DwuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="core.uml#_ARs_UCjaEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qz8yvikAEeGDDbdzqSb4UA" x="22" y="103" width="163" height="51"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qz8yvykAEeGDDbdzqSb4UA" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8ywCkAEeGDDbdzqSb4UA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8ywSkAEeGDDbdzqSb4UA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8ywikAEeGDDbdzqSb4UA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8ywykAEeGDDbdzqSb4UA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8yxCkAEeGDDbdzqSb4UA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8yxSkAEeGDDbdzqSb4UA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qz8yxikAEeGDDbdzqSb4UA" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UO2cMFaDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UlpLkFaDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qz8yxykAEeGDDbdzqSb4UA" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qz8yyCkAEeGDDbdzqSb4UA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qz8yySkAEeGDDbdzqSb4UA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qz8yyikAEeGDDbdzqSb4UA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8yyykAEeGDDbdzqSb4UA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8yzCkAEeGDDbdzqSb4UA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8yzSkAEeGDDbdzqSb4UA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8yzikAEeGDDbdzqSb4UA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8yzykAEeGDDbdzqSb4UA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8y0CkAEeGDDbdzqSb4UA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qz8y0SkAEeGDDbdzqSb4UA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8y0ikAEeGDDbdzqSb4UA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cTAf4FaDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="12"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qz8y1CkAEeGDDbdzqSb4UA" x="27" y="18"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qz8y1SkAEeGDDbdzqSb4UA" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qz8y1ikAEeGDDbdzqSb4UA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_ZjdOAP-EEd6628OhKk_dpg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qz8y1ykAEeGDDbdzqSb4UA" x="63" y="42"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_koEg8Fy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_koEg8Vy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_koEg8ly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9o2_EAuXEeWXe7AeBUbqvw" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9o2_EQuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="core.uml#_RMqEkCjaEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qz8y2CkAEeGDDbdzqSb4UA" x="22" y="7" width="163" height="52"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9vE7wAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9vE7wQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9vE7wwuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9vE7wguXEeWXe7AeBUbqvw" x="263" y="-10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9vOFuAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9vOFuQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9vOFuwuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#_ATRiECjZEeGFbebITJYb9g"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9vOFuguXEeWXe7AeBUbqvw" x="353" y="16"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9vZr6AuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9vZr6QuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9vZr6wuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#_ZjdOAP-EEd6628OhKk_dpg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9vZr6guXEeWXe7AeBUbqvw" x="263" y="42"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qz8y2SkAEeGDDbdzqSb4UA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qz8y2ikAEeGDDbdzqSb4UA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3PyBICkAEeGDDbdzqSb4UA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3PyoMCkAEeGDDbdzqSb4UA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3PyoMSkAEeGDDbdzqSb4UA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3PzPQCkAEeGDDbdzqSb4UA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3PzPQSkAEeGDDbdzqSb4UA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3PzPQikAEeGDDbdzqSb4UA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3PzPQykAEeGDDbdzqSb4UA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3PzPRCkAEeGDDbdzqSb4UA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aE63sFaDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aMll8FaDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3PzPRSkAEeGDDbdzqSb4UA" x="-81" y="-9"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3PzPRikAEeGDDbdzqSb4UA" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3PzPRykAEeGDDbdzqSb4UA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_3NSGwCkAEeGDDbdzqSb4UA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3PyBISkAEeGDDbdzqSb4UA" x="288" y="144" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_koCEsFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_koCEsVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_koCEsly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9o2_DAuXEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9o2_DQuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_-X6zMCjZEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qz8y2ykAEeGDDbdzqSb4UA" x="455" y="39" width="298" height="199"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9uLj4AuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9uLj4QuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9uLj4wuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="core.uml#_JRmo0PNAEeCovO8AYZymZQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9uLj4guXEeWXe7AeBUbqvw" x="371" y="32"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9uaNYAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9uaNYQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9uaNYwuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#_MzO8gPNAEeCovO8AYZymZQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9uaNYguXEeWXe7AeBUbqvw" x="190" y="60"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9unBsguXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9unBswuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9unBtQuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#_ATRiECjZEeGFbebITJYb9g"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9unBtAuXEeWXe7AeBUbqvw" x="407" y="45"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9uyA0AuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9uyA0QuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9uyn4AuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9uyA0guXEeWXe7AeBUbqvw" x="190" y="45"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9vqxoAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9vqxoQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9vqxowuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#_3NSGwCkAEeGDDbdzqSb4UA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9vqxoguXEeWXe7AeBUbqvw" x="488" y="144"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_ebmW0PM_EeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_9o2_EguXEeWXe7AeBUbqvw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:EObjectListValueStyle" xmi:id="_FImRkAuZEeWXe7AeBUbqvw" name="css_stylesheets" eObjectListValue="_7gUz8Mc1EeSsAI2TZshUyg"/>
+ <element xmi:type="uml:Package" href="core.uml#_xtlE8ARAEd--t-uhRn9OBA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_Y7Vc8CjZEeGFbebITJYb9g" type="4015" source="_9dH0UCjYEeGFbebITJYb9g" target="_WoQnECjZEeGFbebITJYb9g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Y7WrECjZEeGFbebITJYb9g" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Y7WrESjZEeGFbebITJYb9g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Y7Vc8SjZEeGFbebITJYb9g" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="core.uml#_Y6lPACjZEeGFbebITJYb9g"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Y7Vc8ijZEeGFbebITJYb9g" points="[4, -11, 7, 30]$[4, -63, 7, -22]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Y-dpcCjZEeGFbebITJYb9g" id="(0.50625,0.11956521739130435)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_1VKukCkAEeGDDbdzqSb4UA" type="4013" source="_qz8yyikAEeGDDbdzqSb4UA" target="_qz8ysCkAEeGDDbdzqSb4UA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1VL8sCkAEeGDDbdzqSb4UA" type="6025">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1VL8sSkAEeGDDbdzqSb4UA" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1VL8sikAEeGDDbdzqSb4UA" visible="false" type="6050">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1VMjwCkAEeGDDbdzqSb4UA" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1VMjwSkAEeGDDbdzqSb4UA" visible="false" type="6051">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1VMjwikAEeGDDbdzqSb4UA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1VMjwykAEeGDDbdzqSb4UA" visible="false" type="6052">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1VMjxCkAEeGDDbdzqSb4UA" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_1VKukSkAEeGDDbdzqSb4UA" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Connector" href="core.uml#_iDCL0CjaEeGFbebITJYb9g"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1VKukikAEeGDDbdzqSb4UA" points="[0, 10, 0, -34]$[0, 34, 0, -10]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_85CvsCkAEeGDDbdzqSb4UA" type="4013" source="_4ksloCkAEeGDDbdzqSb4UA" target="_3PyBICkAEeGDDbdzqSb4UA" routing="Rectilinear" closestDistance="true" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_85D90CkAEeGDDbdzqSb4UA" type="6025">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_85D90SkAEeGDDbdzqSb4UA" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_85D90ikAEeGDDbdzqSb4UA" visible="false" type="6050">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_85D90ykAEeGDDbdzqSb4UA" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_85D91CkAEeGDDbdzqSb4UA" visible="false" type="6051">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_85D91SkAEeGDDbdzqSb4UA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_85D91ikAEeGDDbdzqSb4UA" visible="false" type="6052">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_85D91ykAEeGDDbdzqSb4UA" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_85CvsSkAEeGDDbdzqSb4UA" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Connector" href="core.uml#_84IJsCkAEeGDDbdzqSb4UA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_85CvsikAEeGDDbdzqSb4UA" points="[10, 4, -220, 14]$[71, 4, -159, 14]$[71, -10, -159, 0]$[227, -10, -3, 0]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_864iwCkAEeGDDbdzqSb4UA" id="(0.15,0.45)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9uMK8AuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_JRsvcPNAEeCovO8AYZymZQ" target="_9uLj4AuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_9uMK8QuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9uMK9QuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="core.uml#_JRmo0PNAEeCovO8AYZymZQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9uMK8guXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9uMK8wuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9uMK9AuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9uaNZAuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_M0b2YPNAEeCovO8AYZymZQ" target="_9uaNYAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_9uaNZQuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9uaNaQuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#_MzO8gPNAEeCovO8AYZymZQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9uaNZguXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9uaNZwuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9uaNaAuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9unBtguXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_AVlPMCjZEeGFbebITJYb9g" target="_9unBsguXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_9unBtwuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9unBuwuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#_ATRiECjZEeGFbebITJYb9g"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9unBuAuXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9unBuQuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9unBuguXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9uyn4QuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_f8HYECjZEeGFbebITJYb9g" target="_9uyA0AuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_9uyn4guXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9uyn5guXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9uyn4wuXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9uyn5AuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9uyn5QuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9vE7xAuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_qz8ysCkAEeGDDbdzqSb4UA" target="_9vE7wAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_9vE7xQuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9vE7yQuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9vE7xguXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9vE7xwuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9vE7yAuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9vOFvAuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_4ksloCkAEeGDDbdzqSb4UA" target="_9vOFuAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_9vOFvQuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9vOFwQuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#_ATRiECjZEeGFbebITJYb9g"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9vOFvguXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9vOFvwuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9vOFwAuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9vZr7AuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_qz8yyikAEeGDDbdzqSb4UA" target="_9vZr6AuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_9vZr7QuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9vaS8guXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#_ZjdOAP-EEd6628OhKk_dpg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9vZr7guXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9vaS8AuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9vaS8QuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9vqxpAuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_3PyBICkAEeGDDbdzqSb4UA" target="_9vqxoAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_9vqxpQuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9vqxqQuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="core.uml#_3NSGwCkAEeGDDbdzqSb4UA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9vqxpguXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9vqxpwuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9vqxqAuXEeWXe7AeBUbqvw"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_hyLz8PNGEeCovO8AYZymZQ" type="CompositeStructure" name="composite: Marshalling" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_iVJ-IPNGEeCovO8AYZymZQ" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iVJ-IvNGEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iVKlMPNGEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iVKlMfNGEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iVKlMvNGEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iVKlM_NGEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iVKlNPNGEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iVKlNfNGEeCovO8AYZymZQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_iVKlNvNGEeCovO8AYZymZQ" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_iVKlN_NGEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iVKlOPNGEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZjCy0PNHEeCovO8AYZymZQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZjDZ4PNHEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZjDZ4fNHEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZjDZ4vNHEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZjDZ4_NHEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZjDZ5PNHEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZjDZ5fNHEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_N6_48DrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OOwicDrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OOwicTrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OOwicjrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OOwiczrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OOwidDrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZjEA8PNHEeCovO8AYZymZQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cZt34EN-EeGfhclnRyNzoA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cfyMwE4hEeKNVONx4BgsGg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZjEA8fNHEeCovO8AYZymZQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZjEA8vNHEeCovO8AYZymZQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZjEA8_NHEeCovO8AYZymZQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_rSCxUAytEd6it_RkGhz_AA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZjCy0fNHEeCovO8AYZymZQ" x="117" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_iVa2wEN9EeGfhclnRyNzoA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iVbd0EN9EeGfhclnRyNzoA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iVbd0UN9EeGfhclnRyNzoA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iVbd0kN9EeGfhclnRyNzoA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iVbd00N9EeGfhclnRyNzoA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iVbd1EN9EeGfhclnRyNzoA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iVbd1UN9EeGfhclnRyNzoA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jaKRQEN9EeGfhclnRyNzoA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jtyX4EN9EeGfhclnRyNzoA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jtyX4UN9EeGfhclnRyNzoA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jtyX4kN9EeGfhclnRyNzoA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jty-8EN9EeGfhclnRyNzoA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jty-8UN9EeGfhclnRyNzoA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iVbd1kN9EeGfhclnRyNzoA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YRiFEEN_EeGfhclnRyNzoA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZxVCcE4hEeKNVONx4BgsGg" key="CustomAppearance_MaskValue" value="20"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iVbd10N9EeGfhclnRyNzoA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iVcE4EN9EeGfhclnRyNzoA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iVcE4UN9EeGfhclnRyNzoA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_MhH6cENxEeGoAtSeIK7WLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iVa2wUN9EeGfhclnRyNzoA" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kfWp0Fy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kfWp0Vy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kfWp0ly8EeOwKfaVRwV11Q"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_b_yh4AzyEd6it_RkGhz_AA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iVJ-IfNGEeCovO8AYZymZQ" x="90" y="279" width="127" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kENg8PNGEeCovO8AYZymZQ" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kEOIAPNGEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kEOIAfNGEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kEOIAvNGEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kEOIA_NGEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kEOIBPNGEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kEOIBfNGEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kEOvEPNGEeCovO8AYZymZQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kEOvEfNGEeCovO8AYZymZQ" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kEOvEvNGEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kEOvE_NGEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qJrqYPNGEeCovO8AYZymZQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qJsRcPNGEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qJsRcfNGEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qJsRcvNGEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qJsRc_NGEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qJsRdPNGEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qJsRdfNGEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JbRlUDrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JrZE8DrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JrZE8TrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JrZsADrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JrZsATrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JrZsAjrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qJsRdvNGEeCovO8AYZymZQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ezv2kFjoEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FAR2sFjoEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qJsRd_NGEeCovO8AYZymZQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qJsRePNGEeCovO8AYZymZQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qJsRefNGEeCovO8AYZymZQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qJrqYfNGEeCovO8AYZymZQ" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kfYfAFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kfYfAVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kfYfAly8EeOwKfaVRwV11Q"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_j29X4NttEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kENg8fNGEeCovO8AYZymZQ" x="90" y="36" width="316" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_mqiqAPNGEeCovO8AYZymZQ" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mqjREPNGEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mqjREfNGEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mqjREvNGEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mqjRE_NGEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mqj4IPNGEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mqj4IfNGEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mqj4IvNGEeCovO8AYZymZQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mqj4I_NGEeCovO8AYZymZQ" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mqj4JPNGEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mqj4JfNGEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_bc1mAPNHEeCovO8AYZymZQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bc2NEPNHEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bc2NEfNHEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bc2NEvNHEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bc2NE_NHEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bc2NFPNHEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bc2NFfNHEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_O-5l8DrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PVN0MDrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PVObQDrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PVObQTrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PVObQjrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PVObQzrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bc2NFvNHEeCovO8AYZymZQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Y0v8UEN-EeGfhclnRyNzoA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aYUJ8E4hEeKNVONx4BgsGg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bc2NF_NHEeCovO8AYZymZQ" x="19"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bc2NGPNHEeCovO8AYZymZQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bc2NGfNHEeCovO8AYZymZQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_r5Va0AytEd6it_RkGhz_AA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bc1mAfNHEeCovO8AYZymZQ" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cQDbAEN9EeGfhclnRyNzoA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cQECEEN9EeGfhclnRyNzoA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cQECEUN9EeGfhclnRyNzoA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cQECEkN9EeGfhclnRyNzoA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cQECE0N9EeGfhclnRyNzoA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cQECFEN9EeGfhclnRyNzoA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cQECFUN9EeGfhclnRyNzoA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gnyQQEN9EeGfhclnRyNzoA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_g-aAgEN9EeGfhclnRyNzoA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_g-aAgUN9EeGfhclnRyNzoA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_g-aAgkN9EeGfhclnRyNzoA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_g-aAg0N9EeGfhclnRyNzoA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_g-aAhEN9EeGfhclnRyNzoA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cQECFkN9EeGfhclnRyNzoA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XwXHIEN-EeGfhclnRyNzoA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a51ioE4hEeKNVONx4BgsGg" key="CustomAppearance_MaskValue" value="20"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cQECF0N9EeGfhclnRyNzoA" x="27"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cQECGEN9EeGfhclnRyNzoA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cQECGUN9EeGfhclnRyNzoA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_Zd558ENxEeGoAtSeIK7WLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cQDbAUN9EeGfhclnRyNzoA" x="117" y="36"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kfZtIFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kfZtIVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kfZtIly8EeOwKfaVRwV11Q"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_fmF6MAzyEd6it_RkGhz_AA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mqiqAfNGEeCovO8AYZymZQ" x="396" y="279" width="127" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_o1VGkPNGEeCovO8AYZymZQ" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_o1VtoPNGEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_o1VtofNGEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_o1VtovNGEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_o1Vto_NGEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_o1WUsPNGEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_o1WUsfNGEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_o1WUsvNGEeCovO8AYZymZQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_o1WUs_NGEeCovO8AYZymZQ" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_o1WUtPNGEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_o1WUtfNGEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qpQiUPNGEeCovO8AYZymZQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qpRJYPNGEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qpRJYfNGEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qpRJYvNGEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qpRJY_NGEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qpRwcPNGEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qpRwcfNGEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RHYVYDrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RapPoDrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RapPoTrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Rap2sDrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Rap2sTrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Rap2sjrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qpRwcvNGEeCovO8AYZymZQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_h3CcMEN-EeGfhclnRyNzoA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lv9-sE4hEeKNVONx4BgsGg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qpRwc_NGEeCovO8AYZymZQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qpRwdPNGEeCovO8AYZymZQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qpRwdfNGEeCovO8AYZymZQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qpQiUfNGEeCovO8AYZymZQ" x="117" y="36"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kfbiUFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kfbiUVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kfbiUly8EeOwKfaVRwV11Q"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_mIpj8Ns8Ed2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_o1VGkfNGEeCovO8AYZymZQ" x="468" y="36" width="127" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__uLGkPNGEeCovO8AYZymZQ" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__uLtoPNGEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__uLtofNGEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__uLtovNGEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__uLto_NGEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__uMUsPNGEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__uMUsfNGEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="__uMUsvNGEeCovO8AYZymZQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__uMUs_NGEeCovO8AYZymZQ" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__uMUtPNGEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__uMUtfNGEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_KNC08PQSEeCovO8AYZymZQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KNDcAPQSEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KNDcAfQSEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KNDcAvQSEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KNDcA_QSEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KNDcBPQSEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KNDcBfQSEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MhV-YDrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M0TWoDrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M0T9sDrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M0T9sTrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M0T9sjrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M0T9szrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_KNDcBvQSEeCovO8AYZymZQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_e8v1UEN-EeGfhclnRyNzoA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_b_sXcE4hEeKNVONx4BgsGg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KNDcB_QSEeCovO8AYZymZQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_KNEDEPQSEeCovO8AYZymZQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KNEDEfQSEeCovO8AYZymZQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_rSCxUAytEd6it_RkGhz_AA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KNC08fQSEeCovO8AYZymZQ" x="117" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_vzOfsEN9EeGfhclnRyNzoA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vzPGwEN9EeGfhclnRyNzoA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vzPGwUN9EeGfhclnRyNzoA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vzPGwkN9EeGfhclnRyNzoA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vzPGw0N9EeGfhclnRyNzoA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vzPGxEN9EeGfhclnRyNzoA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vzPGxUN9EeGfhclnRyNzoA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xAI-wEN9EeGfhclnRyNzoA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xXqt8EN9EeGfhclnRyNzoA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xXqt8UN9EeGfhclnRyNzoA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xXqt8kN9EeGfhclnRyNzoA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xXqt80N9EeGfhclnRyNzoA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xXrVAEN9EeGfhclnRyNzoA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vzPGxkN9EeGfhclnRyNzoA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_b0q0oEN_EeGfhclnRyNzoA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bcLasE4hEeKNVONx4BgsGg" key="CustomAppearance_MaskValue" value="20"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vzPGx0N9EeGfhclnRyNzoA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vzPGyEN9EeGfhclnRyNzoA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vzPGyUN9EeGfhclnRyNzoA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_MhH6cENxEeGoAtSeIK7WLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vzOfsUN9EeGfhclnRyNzoA" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kfcwcFy8EeOwKfaVRwV11Q" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kfcwcVy8EeOwKfaVRwV11Q" showTitle="true"/>
+ <element xmi:type="FCM:ImplementationProperties" href="core.uml#_WIe68PQMEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kfcwcly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kfcwc1y8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kfcwdFy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kfcwdVy8EeOwKfaVRwV11Q"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#__uJRYPNGEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__uLGkfNGEeCovO8AYZymZQ" x="90" y="405" width="127" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_u_QmwENqEeGoAtSeIK7WLg" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_u_RN0ENqEeGoAtSeIK7WLg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_u_RN0UNqEeGoAtSeIK7WLg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_u_RN0kNqEeGoAtSeIK7WLg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_u_RN00NqEeGoAtSeIK7WLg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_u_RN1ENqEeGoAtSeIK7WLg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_u_RN1UNqEeGoAtSeIK7WLg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_u_RN1kNqEeGoAtSeIK7WLg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_u_R04ENqEeGoAtSeIK7WLg" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_u_R04UNqEeGoAtSeIK7WLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u_R04kNqEeGoAtSeIK7WLg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7XPQEENqEeGoAtSeIK7WLg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7XP3IENqEeGoAtSeIK7WLg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7XP3IUNqEeGoAtSeIK7WLg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7XP3IkNqEeGoAtSeIK7WLg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7XP3I0NqEeGoAtSeIK7WLg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7XP3JENqEeGoAtSeIK7WLg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7XP3JUNqEeGoAtSeIK7WLg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8posEENqEeGoAtSeIK7WLg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9AyAwENqEeGoAtSeIK7WLg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9AyAwUNqEeGoAtSeIK7WLg" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9Ayn0ENqEeGoAtSeIK7WLg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9Ayn0UNqEeGoAtSeIK7WLg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9Ayn0kNqEeGoAtSeIK7WLg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7XP3JkNqEeGoAtSeIK7WLg" visible="false" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7XQeMENqEeGoAtSeIK7WLg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7XQeMUNqEeGoAtSeIK7WLg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7XQeMkNqEeGoAtSeIK7WLg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7XPQEUNqEeGoAtSeIK7WLg" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-nzo8ENqEeGoAtSeIK7WLg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-n0QAENqEeGoAtSeIK7WLg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-n0QAUNqEeGoAtSeIK7WLg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-n0QAkNqEeGoAtSeIK7WLg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-n0QA0NqEeGoAtSeIK7WLg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-n0QBENqEeGoAtSeIK7WLg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-n0QBUNqEeGoAtSeIK7WLg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aJho0EN8EeGfhclnRyNzoA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bHDoEEN8EeGfhclnRyNzoA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bHDoEUN8EeGfhclnRyNzoA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bHDoEkN8EeGfhclnRyNzoA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bHDoE0N8EeGfhclnRyNzoA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bHDoFEN8EeGfhclnRyNzoA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-n0QBkNqEeGoAtSeIK7WLg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WEWb0EN_EeGfhclnRyNzoA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_smS9UE4hEeKNVONx4BgsGg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-n0QB0NqEeGoAtSeIK7WLg" x="-99"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-n0QCENqEeGoAtSeIK7WLg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-n0QCUNqEeGoAtSeIK7WLg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_-nk_cENqEeGoAtSeIK7WLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-nzo8UNqEeGoAtSeIK7WLg" x="117" y="36" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kffzwFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kffzwVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kffzwly8EeOwKfaVRwV11Q"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_u7MmIENqEeGoAtSeIK7WLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u_QmwUNqEeGoAtSeIK7WLg" x="90" y="144" width="127" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1xcsQENqEeGoAtSeIK7WLg" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1xdTUENqEeGoAtSeIK7WLg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1xdTUUNqEeGoAtSeIK7WLg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1xdTUkNqEeGoAtSeIK7WLg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1xdTU0NqEeGoAtSeIK7WLg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1xdTVENqEeGoAtSeIK7WLg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1xdTVUNqEeGoAtSeIK7WLg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1xdTVkNqEeGoAtSeIK7WLg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1xdTV0NqEeGoAtSeIK7WLg" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1xdTWENqEeGoAtSeIK7WLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1xdTWUNqEeGoAtSeIK7WLg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_zeMyEEN8EeGfhclnRyNzoA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zeOAMEN8EeGfhclnRyNzoA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zeOAMUN8EeGfhclnRyNzoA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zeOAMkN8EeGfhclnRyNzoA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zeOAM0N8EeGfhclnRyNzoA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zeOANEN8EeGfhclnRyNzoA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zeOANUN8EeGfhclnRyNzoA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4rAYsEN9EeGfhclnRyNzoA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_48lQ4EN9EeGfhclnRyNzoA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_48lQ4UN9EeGfhclnRyNzoA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_48lQ4kN9EeGfhclnRyNzoA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_48lQ40N9EeGfhclnRyNzoA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_48l38EN9EeGfhclnRyNzoA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zeOANkN8EeGfhclnRyNzoA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a_mN0EN_EeGfhclnRyNzoA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mTaC8E4hEeKNVONx4BgsGg" key="CustomAppearance_MaskValue" value="20"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zeOAN0N8EeGfhclnRyNzoA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zeOAOEN8EeGfhclnRyNzoA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zeOAOUN8EeGfhclnRyNzoA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_9gIc8ENvEeGoAtSeIK7WLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zeNZIEN8EeGfhclnRyNzoA" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_zePOUEN8EeGfhclnRyNzoA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zeP1YEN8EeGfhclnRyNzoA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zeP1YUN8EeGfhclnRyNzoA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zeP1YkN8EeGfhclnRyNzoA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zeP1Y0N8EeGfhclnRyNzoA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zeP1ZEN8EeGfhclnRyNzoA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zeP1ZUN8EeGfhclnRyNzoA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5ijEsEN9EeGfhclnRyNzoA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5zBwsEN9EeGfhclnRyNzoA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5zCXwEN9EeGfhclnRyNzoA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5zCXwUN9EeGfhclnRyNzoA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5zCXwkN9EeGfhclnRyNzoA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5zCXw0N9EeGfhclnRyNzoA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zeP1ZkN8EeGfhclnRyNzoA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_e8wcYEN-EeGfhclnRyNzoA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dPSXEE4hEeKNVONx4BgsGg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zeP1Z0N8EeGfhclnRyNzoA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zeP1aEN8EeGfhclnRyNzoA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zeP1aUN8EeGfhclnRyNzoA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zePOUUN8EeGfhclnRyNzoA" x="117" y="36"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kfho8Fy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kfho8Vy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kfho8ly8EeOwKfaVRwV11Q"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_1xGG8ENqEeGoAtSeIK7WLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1xcsQUNqEeGoAtSeIK7WLg" x="468" y="144" width="127" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_H7kTUENrEeGoAtSeIK7WLg" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H7k6YENrEeGoAtSeIK7WLg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H7k6YUNrEeGoAtSeIK7WLg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H7k6YkNrEeGoAtSeIK7WLg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H7k6Y0NrEeGoAtSeIK7WLg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H7k6ZENrEeGoAtSeIK7WLg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H7k6ZUNrEeGoAtSeIK7WLg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_H7k6ZkNrEeGoAtSeIK7WLg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_H7k6Z0NrEeGoAtSeIK7WLg" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_H7k6aENrEeGoAtSeIK7WLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H7k6aUNrEeGoAtSeIK7WLg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LIMnYENrEeGoAtSeIK7WLg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LINOcENrEeGoAtSeIK7WLg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LINOcUNrEeGoAtSeIK7WLg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LINOckNrEeGoAtSeIK7WLg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LINOc0NrEeGoAtSeIK7WLg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LINOdENrEeGoAtSeIK7WLg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LINOdUNrEeGoAtSeIK7WLg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MNeNYENrEeGoAtSeIK7WLg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MkeYIENrEeGoAtSeIK7WLg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Mke_MENrEeGoAtSeIK7WLg" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Mke_MUNrEeGoAtSeIK7WLg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Mke_MkNrEeGoAtSeIK7WLg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Mke_M0NrEeGoAtSeIK7WLg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LINOdkNrEeGoAtSeIK7WLg" visible="false" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LINOd0NrEeGoAtSeIK7WLg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LINOeENrEeGoAtSeIK7WLg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LINOeUNrEeGoAtSeIK7WLg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LIMnYUNrEeGoAtSeIK7WLg" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_i742UEN8EeGfhclnRyNzoA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i76EcEN8EeGfhclnRyNzoA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i76rgEN8EeGfhclnRyNzoA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i76rgUN8EeGfhclnRyNzoA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i76rgkN8EeGfhclnRyNzoA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i76rg0N8EeGfhclnRyNzoA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i76rhEN8EeGfhclnRyNzoA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_keq3sEN8EeGfhclnRyNzoA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k2gI4EN8EeGfhclnRyNzoA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k2gI4UN8EeGfhclnRyNzoA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k2gI4kN8EeGfhclnRyNzoA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k2gI40N8EeGfhclnRyNzoA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k2gI5EN8EeGfhclnRyNzoA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_i76rhUN8EeGfhclnRyNzoA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UeOLgEN_EeGfhclnRyNzoA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eFDhcE4hEeKNVONx4BgsGg" key="CustomAppearance_MaskValue" value="20"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_i76rhkN8EeGfhclnRyNzoA" x="-99"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_i77SkEN8EeGfhclnRyNzoA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_i77SkUN8EeGfhclnRyNzoA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_i5SOQEN8EeGfhclnRyNzoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i75dYEN8EeGfhclnRyNzoA" x="117" y="36" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kfi3EFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kfi3EVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kfi3Ely8EeOwKfaVRwV11Q"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_H7IOcENrEeGoAtSeIK7WLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H7kTUUNrEeGoAtSeIK7WLg" x="279" y="144" width="127" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_pmSKYEN_EeGfhclnRyNzoA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pmSxcEN_EeGfhclnRyNzoA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pmSxcUN_EeGfhclnRyNzoA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pmSxckN_EeGfhclnRyNzoA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pmSxc0N_EeGfhclnRyNzoA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pmSxdEN_EeGfhclnRyNzoA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pmSxdUN_EeGfhclnRyNzoA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_pmSxdkN_EeGfhclnRyNzoA" type="5192"/>
+ <element xmi:type="uml:Comment" href="core.uml#_pk4cMEN_EeGfhclnRyNzoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pmSKYUN_EeGfhclnRyNzoA" x="351" y="390" width="391" height="79"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_hyMbAPNGEeCovO8AYZymZQ"/>
+ <element xmi:type="uml:Package" href="core.uml#_gKMTIAytEd6it_RkGhz_AA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_khmAgPNGEeCovO8AYZymZQ" type="4015" source="_u_QmwENqEeGoAtSeIK7WLg" target="_kENg8PNGEeCovO8AYZymZQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_khmnkPNGEeCovO8AYZymZQ" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_khmnkfNGEeCovO8AYZymZQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_khmAgfNGEeCovO8AYZymZQ" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="core.uml#_K088oF_rEd6RvK-1A151zQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_khmAgvNGEeCovO8AYZymZQ" points="[17, -30, -23, 39]$[23, -39, -17, 30]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4ud3AENqEeGoAtSeIK7WLg" id="(0.49606299212598426,0.0273972602739726)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OtJFEEN8EeGfhclnRyNzoA" id="(0.20569620253164558,0.958904109589041)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_sH_KIPNGEeCovO8AYZymZQ" type="4015" source="_1xcsQENqEeGoAtSeIK7WLg" target="_o1VGkPNGEeCovO8AYZymZQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_sH_xMPNGEeCovO8AYZymZQ" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sIAYQPNGEeCovO8AYZymZQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_sH_KIfNGEeCovO8AYZymZQ" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="core.uml#_M09FgF_rEd6RvK-1A151zQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_sH_KIvNGEeCovO8AYZymZQ" points="[-8, -30, 0, 77]$[0, -77, 8, 30]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5r5voENqEeGoAtSeIK7WLg" id="(0.4881889763779528,0.0958904109589041)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_EWU9cPNHEeCovO8AYZymZQ" type="4015" source="__uLGkPNGEeCovO8AYZymZQ" target="_iVJ-IPNGEeCovO8AYZymZQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_EWWLkPNHEeCovO8AYZymZQ" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EWWLkfNHEeCovO8AYZymZQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_EWU9cfNHEeCovO8AYZymZQ" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="core.uml#_EWShMPNHEeCovO8AYZymZQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_EWU9cvNHEeCovO8AYZymZQ" points="[2, -8, -13, 52]$[20, -42, 5, 18]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_EWWyoPNHEeCovO8AYZymZQ" id="(0.4881889763779528,0.1095890410958904)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_EWWyofNHEeCovO8AYZymZQ" id="(0.5196850393700787,0.9178082191780822)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_KH4Z4ENrEeGoAtSeIK7WLg" type="4015" source="_H7kTUENrEeGoAtSeIK7WLg" target="_kENg8PNGEeCovO8AYZymZQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_KH5A8ENrEeGoAtSeIK7WLg" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KH5oAENrEeGoAtSeIK7WLg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_KH4Z4UNrEeGoAtSeIK7WLg" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="core.uml#_KHmGAENrEeGoAtSeIK7WLg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KH4Z4kNrEeGoAtSeIK7WLg" points="[-4, -5, 94, 153]$[-95, -150, 3, 8]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KIePwENrEeGoAtSeIK7WLg" id="(0.5229357798165137,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KIePwUNrEeGoAtSeIK7WLg" id="(0.8142857142857143,0.9452054794520548)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_cVCGYPNUEeCovO8AYZymZQ" type="PapyrusUMLClassDiagram" name="Class: Marshalling" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_jQk8MPNUEeCovO8AYZymZQ" type="2006" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jQljQPNUEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jQljQfNUEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jQljQvNUEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jQljQ_NUEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jQljRPNUEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jQljRfNUEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jQmKUPNUEeCovO8AYZymZQ" type="5023"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jQmKUfNUEeCovO8AYZymZQ" type="7015">
+ <children xmi:type="notation:Shape" xmi:id="_jv7KoPNUEeCovO8AYZymZQ" type="3017" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="core.uml#_jv4uYPNUEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jv7KofNUEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kuE08PNUEeCovO8AYZymZQ" type="3017" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="core.uml#_kuDm0PNUEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kuE08fNUEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ljFxYPNUEeCovO8AYZymZQ" type="3017" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="core.uml#_ljD8MPNUEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ljFxYfNUEeCovO8AYZymZQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jQmKUvNUEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jQmKU_NUEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jQmKVPNUEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jQmKVfNUEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kcbRoFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kcbRoVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kcbRoly8EeOwKfaVRwV11Q"/>
+ </children>
+ <element xmi:type="uml:Enumeration" href="core.uml#_jQjHAPNUEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jQk8MfNUEeCovO8AYZymZQ" x="387" y="83"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SPPn0FjnEeKaM_PspnG53g" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SPRdAFjnEeKaM_PspnG53g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SPSEEFjnEeKaM_PspnG53g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SPSEEVjnEeKaM_PspnG53g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SPSEEljnEeKaM_PspnG53g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SPSEE1jnEeKaM_PspnG53g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SPSEFFjnEeKaM_PspnG53g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SPSEFVjnEeKaM_PspnG53g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SPSrIFjnEeKaM_PspnG53g" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_USG3cFjnEeKaM_PspnG53g" type="3012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_d1EbcFjnEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eOY6YFjnEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="core.uml#_YKtbAPNUEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_USG3cVjnEeKaM_PspnG53g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_USHegFjnEeKaM_PspnG53g" type="3012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_d1FCgFjnEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eOaIgFjnEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="core.uml#_gQGNwPNUEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_USHegVjnEeKaM_PspnG53g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_USIFkFjnEeKaM_PspnG53g" type="3012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_d1FCgljnEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eOavkFjnEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="core.uml#_-_HCMBI0EeGU49ezpRnvLg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_USIFkVjnEeKaM_PspnG53g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_USIsoFjnEeKaM_PspnG53g" type="3012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ffmDkFjnEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ffmDkVjnEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="60"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="core.uml#_qzHgkPNUEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_USIsoVjnEeKaM_PspnG53g"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SPSrIVjnEeKaM_PspnG53g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SPSrIljnEeKaM_PspnG53g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SPSrI1jnEeKaM_PspnG53g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SPSrJFjnEeKaM_PspnG53g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SPSrJVjnEeKaM_PspnG53g" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SPSrJljnEeKaM_PspnG53g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SPSrJ1jnEeKaM_PspnG53g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SPSrKFjnEeKaM_PspnG53g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SPSrKVjnEeKaM_PspnG53g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SPSrKljnEeKaM_PspnG53g" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SPSrK1jnEeKaM_PspnG53g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SPSrLFjnEeKaM_PspnG53g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SPSrLVjnEeKaM_PspnG53g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SPSrLljnEeKaM_PspnG53g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kccfwFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kccfwVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kccfwly8EeOwKfaVRwV11Q"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_WkkjoPNUEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SPPn0VjnEeKaM_PspnG53g" x="130" y="78"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_cVCGYfNUEeCovO8AYZymZQ"/>
+ <element xmi:type="uml:Package" href="core.uml#_gKMTIAytEd6it_RkGhz_AA"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_g6Yg0CnOEeGxrprK9wB9iA" type="CompositeStructure" name="Service configuration" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_hvsYMCnOEeGxrprK9wB9iA" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hvs_QCnOEeGxrprK9wB9iA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hvtmUCnOEeGxrprK9wB9iA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hvtmUSnOEeGxrprK9wB9iA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hvtmUinOEeGxrprK9wB9iA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hvtmUynOEeGxrprK9wB9iA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hvtmVCnOEeGxrprK9wB9iA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hvtmVSnOEeGxrprK9wB9iA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hvuNYCnOEeGxrprK9wB9iA" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_j5-ecCnOEeGxrprK9wB9iA" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_j5_FgCnOEeGxrprK9wB9iA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_j5_FgSnOEeGxrprK9wB9iA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_j5_FginOEeGxrprK9wB9iA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_j5_FgynOEeGxrprK9wB9iA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_j5_FhCnOEeGxrprK9wB9iA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_j5_FhSnOEeGxrprK9wB9iA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_j5_FhinOEeGxrprK9wB9iA" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eASCYFjmEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eBKMIFjmEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_j5_skCnOEeGxrprK9wB9iA" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_j5_skSnOEeGxrprK9wB9iA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_j5_skinOEeGxrprK9wB9iA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kNDY4Fy8EeOwKfaVRwV11Q" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kNDY4Vy8EeOwKfaVRwV11Q" showTitle="true"/>
+ <element xmi:type="FCM:ConfigurationProperty" href="core.uml#_s0fGMMGJEd-Mveea1W_olA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kNDY4ly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kNDY41y8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kNDY5Fy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kNDY5Vy8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_90xUEguXEeWXe7AeBUbqvw" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_90xUEwuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="core.uml#_rVfYoMGJEd-Mveea1W_olA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_j5-ecSnOEeGxrprK9wB9iA" x="10" y="10" width="131"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lEz54CnOEeGxrprK9wB9iA" type="3097" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lEz54inOEeGxrprK9wB9iA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lE0g8CnOEeGxrprK9wB9iA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lE0g8SnOEeGxrprK9wB9iA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lE0g8inOEeGxrprK9wB9iA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lE0g8ynOEeGxrprK9wB9iA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lE0g9CnOEeGxrprK9wB9iA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lE0g9SnOEeGxrprK9wB9iA" type="5150"/>
+ <element xmi:type="uml:Comment" href="core.uml#_lCtoICnOEeGxrprK9wB9iA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lEz54SnOEeGxrprK9wB9iA" x="221" y="10" width="271" height="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_93ep0AuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_93ep0QuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_93ep0wuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Property" href="core.uml#_rVfYoMGJEd-Mveea1W_olA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_93ep0guXEeWXe7AeBUbqvw" x="210" y="10"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hvuNYSnOEeGxrprK9wB9iA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hvuNYinOEeGxrprK9wB9iA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kNBjsFy8EeOwKfaVRwV11Q" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kNBjsVy8EeOwKfaVRwV11Q" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="core.uml#_Q7TVYBJcEd-QgZm_R1AKbA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kNBjsly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kNBjs1y8EeOwKfaVRwV11Q" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kNBjtFy8EeOwKfaVRwV11Q" showTitle="true"/>
+ <element xmi:type="SW_Concurrency:SwSchedulableResource" href="core.uml#_42YPYBn3EeONpa5JgejICQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kNBjtVy8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kNBjtly8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kNBjt1y8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kNBjuFy8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_90xUEAuXEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_90xUEQuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_SiY_AP-EEd6628OhKk_dpg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hvsYMSnOEeGxrprK9wB9iA" x="62" y="64" width="524" height="135"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_t6v_0CnOEeGxrprK9wB9iA" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t6wm4CnOEeGxrprK9wB9iA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t6wm4SnOEeGxrprK9wB9iA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t6wm4inOEeGxrprK9wB9iA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t6wm4ynOEeGxrprK9wB9iA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t6xN8CnOEeGxrprK9wB9iA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t6xN8SnOEeGxrprK9wB9iA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_t6xN8inOEeGxrprK9wB9iA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_t6xN8ynOEeGxrprK9wB9iA" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_vBLcYCnOEeGxrprK9wB9iA" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vBMDcCnOEeGxrprK9wB9iA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vBMqgCnOEeGxrprK9wB9iA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vBMqgSnOEeGxrprK9wB9iA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vBNRkCnOEeGxrprK9wB9iA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vBNRkSnOEeGxrprK9wB9iA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vBNRkinOEeGxrprK9wB9iA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vBNRkynOEeGxrprK9wB9iA" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_chkosFjmEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_co8cAFjmEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_vBNRlCnOEeGxrprK9wB9iA" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_vBNRlSnOEeGxrprK9wB9iA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vBNRlinOEeGxrprK9wB9iA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kNF1IFy8EeOwKfaVRwV11Q" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kNF1IVy8EeOwKfaVRwV11Q" showTitle="true"/>
+ <element xmi:type="FCM:ConfigurationProperty" href="core.uml#_zVumMCjbEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kNF1Ily8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kNF1I1y8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kNF1JFy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kNF1JVy8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_90xUFguXEeWXe7AeBUbqvw" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_90xUFwuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="core.uml#_tmNeoCjbEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vBLcYSnOEeGxrprK9wB9iA" x="10" y="10" width="173"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_zNMJ0CnOEeGxrprK9wB9iA" type="3097" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zNMw4SnOEeGxrprK9wB9iA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zNMw4inOEeGxrprK9wB9iA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zNNX8CnOEeGxrprK9wB9iA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zNNX8SnOEeGxrprK9wB9iA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zNNX8inOEeGxrprK9wB9iA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zNNX8ynOEeGxrprK9wB9iA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zNNX9CnOEeGxrprK9wB9iA" type="5150"/>
+ <element xmi:type="uml:Comment" href="core.uml#_zLeSkCnOEeGxrprK9wB9iA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zNMw4CnOEeGxrprK9wB9iA" x="219" y="15" width="270"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_93q3EAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_93q3EQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_93q3EwuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Property" href="core.uml#_tmNeoCjbEeGFbebITJYb9g"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_93q3EguXEeWXe7AeBUbqvw" x="210" y="10"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_t6xN9CnOEeGxrprK9wB9iA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t6xN9SnOEeGxrprK9wB9iA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kNEnAFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kNEnAVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kNEnAly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_90xUFAuXEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_90xUFQuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_9V8OQCjYEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t6v_0SnOEeGxrprK9wB9iA" x="65" y="245" width="521" height="161"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_RANSwCo0EeGxrprK9wB9iA" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RAN50Co0EeGxrprK9wB9iA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RAN50So0EeGxrprK9wB9iA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RAN50io0EeGxrprK9wB9iA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RAN50yo0EeGxrprK9wB9iA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RAN51Co0EeGxrprK9wB9iA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RAN51So0EeGxrprK9wB9iA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RAN51io0EeGxrprK9wB9iA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_RAN51yo0EeGxrprK9wB9iA" visible="false" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_RAN52Co0EeGxrprK9wB9iA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RAN52So0EeGxrprK9wB9iA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kNHqUFy8EeOwKfaVRwV11Q" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kNHqUVy8EeOwKfaVRwV11Q" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="pathmap://QML_CORE/osal.uml#_tNGmwDkUEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kNHqUly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kNHqU1y8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kNHqVFy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kNHqVVy8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_90x7IAuXEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_90x7IQuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://QML_CORE/osal.uml#_ETakYDj8Edy0Rd6V_tf1-Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RANSwSo0EeGxrprK9wB9iA" x="652" y="261" width="60" height="55"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_93Lu4AuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_93Lu4QuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_93Lu4wuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="core.uml#_SiY_AP-EEd6628OhKk_dpg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_93Lu4guXEeWXe7AeBUbqvw" x="262" y="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9312MAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9312MQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9312MwuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://QML_CORE/osal.uml#_ETakYDj8Edy0Rd6V_tf1-Q"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9312MguXEeWXe7AeBUbqvw" x="852" y="261"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_g6Yg0SnOEeGxrprK9wB9iA"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_90x7IguXEeWXe7AeBUbqvw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="core.uml#_xtlE8ARAEd--t-uhRn9OBA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_mp1-ACnOEeGxrprK9wB9iA" type="4002" source="_lEz54CnOEeGxrprK9wB9iA" target="_j5-ecCnOEeGxrprK9wB9iA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_mp1-ASnOEeGxrprK9wB9iA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mp1-AinOEeGxrprK9wB9iA" points="[-50, -4, 105, 6]$[-136, -16, 19, -6]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mthkICnOEeGxrprK9wB9iA" id="(0.8137254901960784,0.3559322033898305)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_0Tj8ACnOEeGxrprK9wB9iA" type="4002" source="_zNMJ0CnOEeGxrprK9wB9iA" target="_vBLcYCnOEeGxrprK9wB9iA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_0Tj8ASnOEeGxrprK9wB9iA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0Tj8AinOEeGxrprK9wB9iA" points="[-20, -6, 63, 16]$[-56, -25, 27, -3]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0V4QMCnOEeGxrprK9wB9iA" id="(0.2,0.5166666666666667)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0V4QMSnOEeGxrprK9wB9iA" id="(0.8439306358381503,0.35)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_SZ63sCo0EeGxrprK9wB9iA" type="4010" source="_t6v_0CnOEeGxrprK9wB9iA" target="_RANSwCo0EeGxrprK9wB9iA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_SZ7ewCo0EeGxrprK9wB9iA" visible="false" type="6009">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SZ7ewSo0EeGxrprK9wB9iA" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SZ7ewio0EeGxrprK9wB9iA" type="6023">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SZ7ewyo0EeGxrprK9wB9iA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_SZ63sSo0EeGxrprK9wB9iA" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Dependency" href="core.uml#_SXkHQCo0EeGxrprK9wB9iA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SZ63sio0EeGxrprK9wB9iA" points="[19, -6, -74, 0]$[85, -6, -8, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Sd71ACo0EeGxrprK9wB9iA" id="(1.0,0.2670807453416149)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Sd71ASo0EeGxrprK9wB9iA" id="(0.0,0.4909090909090909)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_93Lu5AuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_hvsYMCnOEeGxrprK9wB9iA" target="_93Lu4AuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_93Lu5QuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_93Lu6QuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="core.uml#_SiY_AP-EEd6628OhKk_dpg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_93Lu5guXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_93Lu5wuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_93Lu6AuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_93ep1AuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_j5-ecCnOEeGxrprK9wB9iA" target="_93ep0AuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_93ep1QuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_93fQ4guXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Property" href="core.uml#_rVfYoMGJEd-Mveea1W_olA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_93ep1guXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_93fQ4AuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_93fQ4QuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_93q3FAuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_vBLcYCnOEeGxrprK9wB9iA" target="_93q3EAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_93q3FQuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_93q3GQuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Property" href="core.uml#_tmNeoCjbEeGFbebITJYb9g"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_93q3FguXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_93q3FwuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_93q3GAuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9312NAuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_RANSwCo0EeGxrprK9wB9iA" target="_9312MAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_9312NQuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9312OQuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://QML_CORE/osal.uml#_ETakYDj8Edy0Rd6V_tf1-Q"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9312NguXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9312NwuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9312OAuXEeWXe7AeBUbqvw"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_OhgzgD8AEeGJ6KSvhYhYuQ" type="CompositeStructure" name="CallActivation" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_SgFh4D8AEeGJ6KSvhYhYuQ" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SgGI8D8AEeGJ6KSvhYhYuQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SgGI8T8AEeGJ6KSvhYhYuQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SgGI8j8AEeGJ6KSvhYhYuQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SgGI8z8AEeGJ6KSvhYhYuQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SgGI9D8AEeGJ6KSvhYhYuQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SgGI9T8AEeGJ6KSvhYhYuQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SgGI9j8AEeGJ6KSvhYhYuQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SgGI9z8AEeGJ6KSvhYhYuQ" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SgGI-D8AEeGJ6KSvhYhYuQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SgGI-T8AEeGJ6KSvhYhYuQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dcQ7kD8AEeGJ6KSvhYhYuQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dcSJsD8AEeGJ6KSvhYhYuQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dcSJsT8AEeGJ6KSvhYhYuQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dcSJsj8AEeGJ6KSvhYhYuQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dcSJsz8AEeGJ6KSvhYhYuQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dcSJtD8AEeGJ6KSvhYhYuQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dcSJtT8AEeGJ6KSvhYhYuQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ocoRsD8AEeGJ6KSvhYhYuQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_o2fjMD8AEeGJ6KSvhYhYuQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_o2fjMT8AEeGJ6KSvhYhYuQ" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_o2fjMj8AEeGJ6KSvhYhYuQ" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_o2fjMz8AEeGJ6KSvhYhYuQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_o2fjND8AEeGJ6KSvhYhYuQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dcSJtj8AEeGJ6KSvhYhYuQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kA0sEFbDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nFWNAFbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dcSwwD8AEeGJ6KSvhYhYuQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dcSwwT8AEeGJ6KSvhYhYuQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dcSwwj8AEeGJ6KSvhYhYuQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dcRioD8AEeGJ6KSvhYhYuQ" x="-10" y="23"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dcSwwz8AEeGJ6KSvhYhYuQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dcTX0D8AEeGJ6KSvhYhYuQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dcTX0T8AEeGJ6KSvhYhYuQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dcTX0j8AEeGJ6KSvhYhYuQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dcTX0z8AEeGJ6KSvhYhYuQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dcTX1D8AEeGJ6KSvhYhYuQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dcTX1T8AEeGJ6KSvhYhYuQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m_hagD8AEeGJ6KSvhYhYuQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ndPRQD8AEeGJ6KSvhYhYuQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ndP4UD8AEeGJ6KSvhYhYuQ" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ndP4UT8AEeGJ6KSvhYhYuQ" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ndP4Uj8AEeGJ6KSvhYhYuQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ndP4Uz8AEeGJ6KSvhYhYuQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dcTX1j8AEeGJ6KSvhYhYuQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kq-cUFbDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nqWXgFbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dcTX1z8AEeGJ6KSvhYhYuQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dcTX2D8AEeGJ6KSvhYhYuQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dcTX2T8AEeGJ6KSvhYhYuQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dcSwxD8AEeGJ6KSvhYhYuQ" x="360" y="23"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kaQHYFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kaQHYVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kaQHYly8EeOwKfaVRwV11Q"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_e6Y_EChYEd-eoo60eNyGlg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SgFh4T8AEeGJ6KSvhYhYuQ" x="117" y="99" width="370"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_S-NoUD8AEeGJ6KSvhYhYuQ" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_S-OPYD8AEeGJ6KSvhYhYuQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_S-OPYT8AEeGJ6KSvhYhYuQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_S-OPYj8AEeGJ6KSvhYhYuQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_S-OPYz8AEeGJ6KSvhYhYuQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_S-OPZD8AEeGJ6KSvhYhYuQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_S-OPZT8AEeGJ6KSvhYhYuQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_S-O2cD8AEeGJ6KSvhYhYuQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_S-O2cT8AEeGJ6KSvhYhYuQ" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_S-O2cj8AEeGJ6KSvhYhYuQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_S-O2cz8AEeGJ6KSvhYhYuQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1JUC4D8EEeGJ6KSvhYhYuQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1JUp8D8EEeGJ6KSvhYhYuQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1JUp8T8EEeGJ6KSvhYhYuQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1JUp8j8EEeGJ6KSvhYhYuQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1JUp8z8EEeGJ6KSvhYhYuQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1JVRAD8EEeGJ6KSvhYhYuQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1JVRAT8EEeGJ6KSvhYhYuQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7SckUD8EEeGJ6KSvhYhYuQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1E6gcD_HEeGFNeu-9sDdyA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1E6gcT_HEeGFNeu-9sDdyA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1E6gcj_HEeGFNeu-9sDdyA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1E6gcz_HEeGFNeu-9sDdyA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1E7HgD_HEeGFNeu-9sDdyA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1JVRAj8EEeGJ6KSvhYhYuQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_l3gg4FbDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mBsXoFbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1JVRAz8EEeGJ6KSvhYhYuQ" x="27" y="18"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1JVRBD8EEeGJ6KSvhYhYuQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1JVRBT8EEeGJ6KSvhYhYuQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_N0tB4Cu4Ed-uZPFNCty7PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1JUC4T8EEeGJ6KSvhYhYuQ" x="45" y="63"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1JVRBj8EEeGJ6KSvhYhYuQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1JV4ED8EEeGJ6KSvhYhYuQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1JV4ET8EEeGJ6KSvhYhYuQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1JV4Ej8EEeGJ6KSvhYhYuQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1JV4Ez8EEeGJ6KSvhYhYuQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1JV4FD8EEeGJ6KSvhYhYuQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1JV4FT8EEeGJ6KSvhYhYuQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wvweED_HEeGFNeu-9sDdyA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xWu-gD_HEeGFNeu-9sDdyA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xWu-gT_HEeGFNeu-9sDdyA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xWu-gj_HEeGFNeu-9sDdyA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xWu-gz_HEeGFNeu-9sDdyA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xWu-hD_HEeGFNeu-9sDdyA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1JV4Fj8EEeGJ6KSvhYhYuQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lQgyUFbDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lXdH0FbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1JV4Fz8EEeGJ6KSvhYhYuQ" x="27" y="27"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1JWfID8EEeGJ6KSvhYhYuQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1JWfIT8EEeGJ6KSvhYhYuQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1JVRBz8EEeGJ6KSvhYhYuQ" x="99" y="27"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1JWfIj8EEeGJ6KSvhYhYuQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1JXGMD8EEeGJ6KSvhYhYuQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1JXGMT8EEeGJ6KSvhYhYuQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1JXGMj8EEeGJ6KSvhYhYuQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1JXGMz8EEeGJ6KSvhYhYuQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1JXtQD8EEeGJ6KSvhYhYuQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1JXtQT8EEeGJ6KSvhYhYuQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uBA_4D_HEeGFNeu-9sDdyA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2z-qUD_HEeGFNeu-9sDdyA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2z-qUT_HEeGFNeu-9sDdyA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2z-qUj_HEeGFNeu-9sDdyA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2z_RYD_HEeGFNeu-9sDdyA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2z_RYT_HEeGFNeu-9sDdyA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1JXtQj8EEeGJ6KSvhYhYuQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jaFcMFbDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mifXkFbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1JXtQz8EEeGJ6KSvhYhYuQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1JXtRD8EEeGJ6KSvhYhYuQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1JXtRT8EEeGJ6KSvhYhYuQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1JWfIz8EEeGJ6KSvhYhYuQ" x="-10" y="27"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kaTKsFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kaTKsVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kaTKsly8EeOwKfaVRwV11Q"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_qgzokChYEd-eoo60eNyGlg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_S-NoUT8AEeGJ6KSvhYhYuQ" x="117" y="189" width="109" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TeWg8D8AEeGJ6KSvhYhYuQ" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TeWg8j8AEeGJ6KSvhYhYuQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TeXIAD8AEeGJ6KSvhYhYuQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TeXIAT8AEeGJ6KSvhYhYuQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TeXIAj8AEeGJ6KSvhYhYuQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TeXIAz8AEeGJ6KSvhYhYuQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TeXIBD8AEeGJ6KSvhYhYuQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TeXIBT8AEeGJ6KSvhYhYuQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TeXIBj8AEeGJ6KSvhYhYuQ" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TeXIBz8AEeGJ6KSvhYhYuQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TeXICD8AEeGJ6KSvhYhYuQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kaVm8Fy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kaVm8Vy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kaVm8ly8EeOwKfaVRwV11Q"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_2wMyEChiEd-eoo60eNyGlg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TeWg8T8AEeGJ6KSvhYhYuQ" x="252" y="189"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_T7ZpUD8AEeGJ6KSvhYhYuQ" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_T7aQYD8AEeGJ6KSvhYhYuQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_T7aQYT8AEeGJ6KSvhYhYuQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_T7aQYj8AEeGJ6KSvhYhYuQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_T7aQYz8AEeGJ6KSvhYhYuQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_T7aQZD8AEeGJ6KSvhYhYuQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_T7aQZT8AEeGJ6KSvhYhYuQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_T7aQZj8AEeGJ6KSvhYhYuQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_T7aQZz8AEeGJ6KSvhYhYuQ" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_T7aQaD8AEeGJ6KSvhYhYuQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T7aQaT8AEeGJ6KSvhYhYuQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kaW1EFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kaW1EVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kaW1Ely8EeOwKfaVRwV11Q"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_6rmQoChiEd-eoo60eNyGlg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T7ZpUT8AEeGJ6KSvhYhYuQ" x="387" y="189" width="95"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gXAOYD8AEeGJ6KSvhYhYuQ" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gXA1cD8AEeGJ6KSvhYhYuQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gXA1cT8AEeGJ6KSvhYhYuQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gXA1cj8AEeGJ6KSvhYhYuQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gXA1cz8AEeGJ6KSvhYhYuQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gXA1dD8AEeGJ6KSvhYhYuQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gXA1dT8AEeGJ6KSvhYhYuQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gXA1dj8AEeGJ6KSvhYhYuQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gXBcgD8AEeGJ6KSvhYhYuQ" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gXBcgT8AEeGJ6KSvhYhYuQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gXBcgj8AEeGJ6KSvhYhYuQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kaXcIFy8EeOwKfaVRwV11Q" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kaXcIVy8EeOwKfaVRwV11Q" showTitle="true"/>
+ <element xmi:type="FCM:InteractionComponent" href="core.uml#_s8OWIFR1Ed6GqrP6fkWBoQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kaXcIly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kaYDMFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kaYDMVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kaYDMly8EeOwKfaVRwV11Q"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_KxQBELuXEd2TTr3gJIvazw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gXAOYT8AEeGJ6KSvhYhYuQ" x="117" y="18" width="370"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_aCZK0D8CEeGJ6KSvhYhYuQ" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aCZx4D8CEeGJ6KSvhYhYuQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aCZx4T8CEeGJ6KSvhYhYuQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aCZx4j8CEeGJ6KSvhYhYuQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aCZx4z8CEeGJ6KSvhYhYuQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aCZx5D8CEeGJ6KSvhYhYuQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aCZx5T8CEeGJ6KSvhYhYuQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_aCZx5j8CEeGJ6KSvhYhYuQ" type="5192"/>
+ <element xmi:type="uml:Comment" href="core.uml#_aAH58D8CEeGJ6KSvhYhYuQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aCZK0T8CEeGJ6KSvhYhYuQ" x="72" y="297" width="336" height="91"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jQ_BUD8CEeGJ6KSvhYhYuQ" type="2067" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jQ_BUj8CEeGJ6KSvhYhYuQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jQ_BUz8CEeGJ6KSvhYhYuQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jQ_oYD8CEeGJ6KSvhYhYuQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jQ_oYT8CEeGJ6KSvhYhYuQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jQ_oYj8CEeGJ6KSvhYhYuQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jQ_oYz8CEeGJ6KSvhYhYuQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jQ_oZD8CEeGJ6KSvhYhYuQ" type="5119"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jQ_oZT8CEeGJ6KSvhYhYuQ" type="7048">
+ <children xmi:type="notation:Shape" xmi:id="_XhHrcD8DEeGJ6KSvhYhYuQ" type="3066" fontName="" fontHeight="10" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="core.uml#_mzqd4D8CEeGJ6KSvhYhYuQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XhHrcT8DEeGJ6KSvhYhYuQ" x="63"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XhjwUD8DEeGJ6KSvhYhYuQ" type="3066" fontName="" fontHeight="10" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="core.uml#_qdIe8D8CEeGJ6KSvhYhYuQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XhjwUT8DEeGJ6KSvhYhYuQ" x="63"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XiAcQD8DEeGJ6KSvhYhYuQ" type="3066" fontName="" fontHeight="10" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="core.uml#_rOMvgD8CEeGJ6KSvhYhYuQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XiAcQT8DEeGJ6KSvhYhYuQ" x="63"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jQ_oZj8CEeGJ6KSvhYhYuQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jQ_oZz8CEeGJ6KSvhYhYuQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jQ_oaD8CEeGJ6KSvhYhYuQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jQ_oaT8CEeGJ6KSvhYhYuQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kaZRUFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kaZRUVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kaZRUly8EeOwKfaVRwV11Q"/>
+ </children>
+ <element xmi:type="uml:Enumeration" href="core.uml#_hcwDkD8CEeGJ6KSvhYhYuQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jQ_BUT8CEeGJ6KSvhYhYuQ" x="441" y="261" width="164"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_OhgzgT8AEeGJ6KSvhYhYuQ"/>
+ <element xmi:type="uml:Package" href="core.uml#_aQ7goChYEd-eoo60eNyGlg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_WFrvkD8AEeGJ6KSvhYhYuQ" type="4015" source="_S-NoUD8AEeGJ6KSvhYhYuQ" target="_SgFh4D8AEeGJ6KSvhYhYuQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_WFtkwD8AEeGJ6KSvhYhYuQ" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WFuL0D8AEeGJ6KSvhYhYuQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_WFrvkT8AEeGJ6KSvhYhYuQ" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="core.uml#_sW6OkChYEd-eoo60eNyGlg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WFrvkj8AEeGJ6KSvhYhYuQ" points="[-8, -29, 27, 101]$[-27, -100, 8, 30]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tiKoID8AEeGJ6KSvhYhYuQ" id="(0.15135135135135136,0.8813559322033898)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XN1DYD8AEeGJ6KSvhYhYuQ" type="4015" source="_TeWg8D8AEeGJ6KSvhYhYuQ" target="_SgFh4D8AEeGJ6KSvhYhYuQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_XN1qcD8AEeGJ6KSvhYhYuQ" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XN1qcT8AEeGJ6KSvhYhYuQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_XN1DYT8AEeGJ6KSvhYhYuQ" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="core.uml#_5AKpkChiEd-eoo60eNyGlg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XN1DYj8AEeGJ6KSvhYhYuQ" points="[-7, -29, 37, 186]$[-38, -185, 6, 30]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_YLQU8D8AEeGJ6KSvhYhYuQ" type="4015" source="_T7ZpUD8AEeGJ6KSvhYhYuQ" target="_SgFh4D8AEeGJ6KSvhYhYuQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_YLQ8AD8AEeGJ6KSvhYhYuQ" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YLQ8AT8AEeGJ6KSvhYhYuQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_YLQU8T8AEeGJ6KSvhYhYuQ" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="core.uml#_892AEChiEd-eoo60eNyGlg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YLQU8j8AEeGJ6KSvhYhYuQ" points="[-2, -29, 15, 281]$[-16, -280, 1, 30]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vL-ekD8AEeGJ6KSvhYhYuQ" id="(0.8729729729729729,0.8983050847457628)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_gXiZ4D8AEeGJ6KSvhYhYuQ" type="4015" source="_SgFh4D8AEeGJ6KSvhYhYuQ" target="_gXAOYD8AEeGJ6KSvhYhYuQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gXjA8D8AEeGJ6KSvhYhYuQ" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gXjA8T8AEeGJ6KSvhYhYuQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_gXiZ4T8AEeGJ6KSvhYhYuQ" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="core.uml#_oJX3IChYEd-eoo60eNyGlg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gXiZ4j8AEeGJ6KSvhYhYuQ" points="[-103, -29, 202, 58]$[-305, -87, 0, 0]"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_DfG8kF7qEeGEmrrwB1vhPg" type="CompositeStructure" name="CompositeDiagram CallMultiplier" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_EYv6UF7qEeGEmrrwB1vhPg" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EYwhYF7qEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EYwhYV7qEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EYwhYl7qEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EYwhY17qEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EYwhZF7qEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EYwhZV7qEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_c85eMF7tEeGEmrrwB1vhPg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_c86FQF7tEeGEmrrwB1vhPg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_c86FQV7tEeGEmrrwB1vhPg" key="StereotypeList" value="FCM::InteractionComponent"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_c86FQl7tEeGEmrrwB1vhPg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_c9de4F7tEeGEmrrwB1vhPg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_c9de4V7tEeGEmrrwB1vhPg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_EYwhZl7qEeGEmrrwB1vhPg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_EYwhZ17qEeGEmrrwB1vhPg" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_EYwhaF7qEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EYwhaV7qEeGEmrrwB1vhPg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_khqW8Fy8EeOwKfaVRwV11Q" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_khqW8Vy8EeOwKfaVRwV11Q" showTitle="true"/>
+ <element xmi:type="FCM:InteractionComponent" href="core.uml#_s8OWIFR1Ed6GqrP6fkWBoQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_khqW8ly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_khqW81y8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_khqW9Fy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_khqW9Vy8EeOwKfaVRwV11Q"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_KxQBELuXEd2TTr3gJIvazw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EYv6UV7qEeGEmrrwB1vhPg" x="135" y="72" width="154" height="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FWtXYF7qEeGEmrrwB1vhPg" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FWtXYl7qEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FWtXY17qEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FWt-cF7qEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FWt-cV7qEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FWt-cl7qEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FWt-c17qEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XrOJMF7tEeGEmrrwB1vhPg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XrOwQF7tEeGEmrrwB1vhPg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XrOwQV7tEeGEmrrwB1vhPg" key="StereotypeList" value="FCM::InteractionComponent"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XrOwQl7tEeGEmrrwB1vhPg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XrOwQ17tEeGEmrrwB1vhPg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XrOwRF7tEeGEmrrwB1vhPg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FWt-dF7qEeGEmrrwB1vhPg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_FWt-dV7qEeGEmrrwB1vhPg" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_FWt-dl7qEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FWt-d17qEeGEmrrwB1vhPg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_udKFYF7sEeGEmrrwB1vhPg" type="3069" fontName="Arial" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_udKFYl7sEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_udKFY17sEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_udKscF7sEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_udKscV7sEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_udKscl7sEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_udKsc17sEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_66tLMF7sEeGEmrrwB1vhPg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7N-FcF7sEeGEmrrwB1vhPg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7N-FcV7sEeGEmrrwB1vhPg" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7N-Fcl7sEeGEmrrwB1vhPg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7N-Fc17sEeGEmrrwB1vhPg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7N-FdF7sEeGEmrrwB1vhPg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_udKsdF7sEeGEmrrwB1vhPg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fcEHcFbDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PQ7DkFeJEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_udKsdV7sEeGEmrrwB1vhPg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_udKsdl7sEeGEmrrwB1vhPg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_udKsd17sEeGEmrrwB1vhPg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_udKFYV7sEeGEmrrwB1vhPg" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_udLTgF7sEeGEmrrwB1vhPg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_udLTgl7sEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_udLTg17sEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_udLThF7sEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_udLThV7sEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_udL6kF7sEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_udL6kV7sEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3KisQF7sEeGEmrrwB1vhPg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3gixcF7sEeGEmrrwB1vhPg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3gjYgF7sEeGEmrrwB1vhPg" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3gjYgV7sEeGEmrrwB1vhPg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3gjYgl7sEeGEmrrwB1vhPg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3gjYg17sEeGEmrrwB1vhPg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_udL6kl7sEeGEmrrwB1vhPg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f-9ZIFbDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f-9ZIVbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="30"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_udL6k17sEeGEmrrwB1vhPg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_udL6lF7sEeGEmrrwB1vhPg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_udL6lV7sEeGEmrrwB1vhPg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_udLTgV7sEeGEmrrwB1vhPg" x="144" y="36"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_khrlEFy8EeOwKfaVRwV11Q" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_khrlEVy8EeOwKfaVRwV11Q" showTitle="true"/>
+ <element xmi:type="FCM:InteractionComponent" href="core.uml#_efp4QClzEd-eoo60eNyGlg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_khrlEly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_khrlE1y8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_khrlFFy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_khrlFVy8EeOwKfaVRwV11Q"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_Whe8EClYEd-eoo60eNyGlg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FWtXYV7qEeGEmrrwB1vhPg" x="135" y="198" width="154" height="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_b3o7wF7sEeGEmrrwB1vhPg" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_b3pi0F7sEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_b3pi0V7sEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_b3pi0l7sEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_b3pi017sEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_b3pi1F7sEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_b3pi1V7sEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bkoqwF7tEeGEmrrwB1vhPg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bkoqwV7tEeGEmrrwB1vhPg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bkoqwl7tEeGEmrrwB1vhPg" key="StereotypeList" value="FCM::InteractionComponent"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bkoqw17tEeGEmrrwB1vhPg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bkoqxF7tEeGEmrrwB1vhPg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bkoqxV7tEeGEmrrwB1vhPg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_b3pi1l7sEeGEmrrwB1vhPg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_b3pi117sEeGEmrrwB1vhPg" type="7073">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Z3t18F7tEeGEmrrwB1vhPg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z3udAF7tEeGEmrrwB1vhPg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z3udAV7tEeGEmrrwB1vhPg" key="StereotypeList" value="FCM::InteractionComponent"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z3udAl7tEeGEmrrwB1vhPg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z3udA17tEeGEmrrwB1vhPg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z3udBF7tEeGEmrrwB1vhPg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_b3pi2F7sEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b3pi2V7sEeGEmrrwB1vhPg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_khtaQFy8EeOwKfaVRwV11Q" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_khtaQVy8EeOwKfaVRwV11Q" showTitle="true"/>
+ <element xmi:type="FCM:InteractionComponent" href="core.uml#_Z3Zs4F7tEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_khtaQly8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_khuBUFy8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_khuBUVy8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_khuBUly8EeOwKfaVRwV11Q"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_TLShkF7qEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b3o7wV7sEeGEmrrwB1vhPg" x="423" y="71" width="154" height="65"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ck0K0F7sEeGEmrrwB1vhPg" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ck0x4F7sEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ck0x4V7sEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ck0x4l7sEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ck0x417sEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ck0x5F7sEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ck0x5V7sEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UBwvMF7tEeGEmrrwB1vhPg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UBwvMV7tEeGEmrrwB1vhPg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UBxWQF7tEeGEmrrwB1vhPg" key="StereotypeList" value="FCM::InteractionComponent"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UBxWQV7tEeGEmrrwB1vhPg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UBxWQl7tEeGEmrrwB1vhPg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UBxWQ17tEeGEmrrwB1vhPg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ck0x5l7sEeGEmrrwB1vhPg" type="5156">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VCInEF7tEeGEmrrwB1vhPg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WxsgMF7tEeGEmrrwB1vhPg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WxsgMV7tEeGEmrrwB1vhPg" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WxsgMl7tEeGEmrrwB1vhPg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WxsgM17tEeGEmrrwB1vhPg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WxsgNF7tEeGEmrrwB1vhPg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ck0x517sEeGEmrrwB1vhPg" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ck0x6F7sEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ck0x6V7sEeGEmrrwB1vhPg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qrnGYF7sEeGEmrrwB1vhPg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qrntcF7sEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qrntcV7sEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qrntcl7sEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qrntc17sEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qroUgF7sEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qroUgV7sEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zr6CMF7sEeGEmrrwB1vhPg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0HjcYF7sEeGEmrrwB1vhPg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0HjcYV7sEeGEmrrwB1vhPg" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0HkDcF7sEeGEmrrwB1vhPg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0HkDcV7sEeGEmrrwB1vhPg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0HkDcl7sEeGEmrrwB1vhPg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qroUgl7sEeGEmrrwB1vhPg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ds_9kFbDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QJj7wFeJEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="60"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qroUg17sEeGEmrrwB1vhPg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qroUhF7sEeGEmrrwB1vhPg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qroUhV7sEeGEmrrwB1vhPg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_0KY1UF7pEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qrnGYV7sEeGEmrrwB1vhPg" x="147" y="38"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qroUhl7sEeGEmrrwB1vhPg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qro7kF7sEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qro7kV7sEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qro7kl7sEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qro7k17sEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qro7lF7sEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qro7lV7sEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1PKksF7sEeGEmrrwB1vhPg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1vGpAF7sEeGEmrrwB1vhPg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1vGpAV7sEeGEmrrwB1vhPg" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1vGpAl7sEeGEmrrwB1vhPg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1vGpA17sEeGEmrrwB1vhPg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1vGpBF7sEeGEmrrwB1vhPg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qro7ll7sEeGEmrrwB1vhPg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dHyXsFbDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PvAGsFeJEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qro7l17sEeGEmrrwB1vhPg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qro7mF7sEeGEmrrwB1vhPg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qro7mV7sEeGEmrrwB1vhPg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="core.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qroUh17sEeGEmrrwB1vhPg" x="-10" y="38"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_khuoYFy8EeOwKfaVRwV11Q" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_khvPcFy8EeOwKfaVRwV11Q" showTitle="true"/>
+ <element xmi:type="FCM:InteractionComponent" href="core.uml#_UBcmIF7tEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_khvPcVy8EeOwKfaVRwV11Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_khvPcly8EeOwKfaVRwV11Q" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_khvPc1y8EeOwKfaVRwV11Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_khvPdFy8EeOwKfaVRwV11Q"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_Mo2kwF7pEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ck0K0V7sEeGEmrrwB1vhPg" x="420" y="196" width="157" height="66"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_DfG8kV7qEeGEmrrwB1vhPg"/>
+ <element xmi:type="uml:Package" href="core.uml#_ZISNcIQzEd2_fLv04swWfw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_GsuIEF7qEeGEmrrwB1vhPg" type="4015" source="_FWtXYF7qEeGEmrrwB1vhPg" target="_EYv6UF7qEeGEmrrwB1vhPg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GsvWMF7qEeGEmrrwB1vhPg" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GsvWMV7qEeGEmrrwB1vhPg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_GsuIEV7qEeGEmrrwB1vhPg" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="core.uml#_lYOSkClzEd-eoo60eNyGlg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GsuIEl7qEeGEmrrwB1vhPg" points="[-4, -29, 13, 99]$[-13, -98, 4, 30]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_eJ55UF7sEeGEmrrwB1vhPg" type="4015" source="_ck0K0F7sEeGEmrrwB1vhPg" target="_b3o7wF7sEeGEmrrwB1vhPg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_eJ6gYF7sEeGEmrrwB1vhPg" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eJ6gYV7sEeGEmrrwB1vhPg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_eJ55UV7sEeGEmrrwB1vhPg" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="core.uml#_eJqowF7sEeGEmrrwB1vhPg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_eJ55Ul7sEeGEmrrwB1vhPg" points="[-9, -10, -7, 96]$[-9, -76, -7, 30]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eKfIIF7sEeGEmrrwB1vhPg" id="(0.504424778761062,0.1694915254237288)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_zCsUsHI3EeOCrdvV8oxOKA" type="PapyrusUMLClassDiagram" name="Binding helpers" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_z30l4HI3EeOCrdvV8oxOKA" type="2008" fontName="" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_z33CInI3EeOCrdvV8oxOKA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_z33CI3I3EeOCrdvV8oxOKA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_z33CJHI3EeOCrdvV8oxOKA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_z33pMHI3EeOCrdvV8oxOKA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Bp0jUHkhEeOCpqruXGWNPw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Bp0jUXkhEeOCpqruXGWNPw" key="gradient" value="true"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_F6iPQLnHEeO_6d9PgxHkpw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_F6i2ULnHEeO_6d9PgxHkpw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_z33pMXI3EeOCrdvV8oxOKA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_z33pMnI3EeOCrdvV8oxOKA" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_z33pM3I3EeOCrdvV8oxOKA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_z33pNHI3EeOCrdvV8oxOKA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_z33pNXI3EeOCrdvV8oxOKA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z33pNnI3EeOCrdvV8oxOKA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_z33pN3I3EeOCrdvV8oxOKA" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_z33pOHI3EeOCrdvV8oxOKA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_z33pOXI3EeOCrdvV8oxOKA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_z33pOnI3EeOCrdvV8oxOKA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z33pO3I3EeOCrdvV8oxOKA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_z33pPHI3EeOCrdvV8oxOKA" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_z33pPXI3EeOCrdvV8oxOKA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_z33pPnI3EeOCrdvV8oxOKA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_z33pP3I3EeOCrdvV8oxOKA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z33pQHI3EeOCrdvV8oxOKA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_z4FroHI3EeOCrdvV8oxOKA" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_z4FroXI3EeOCrdvV8oxOKA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z4FronI3EeOCrdvV8oxOKA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_94BcYAuXEeWXe7AeBUbqvw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_94BcYQuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_z2tyoHI3EeOCrdvV8oxOKA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z30l4XI3EeOCrdvV8oxOKA" x="60" y="20" width="181" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_4ICEAHkgEeOCpqruXGWNPw" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_4IDSIHkgEeOCpqruXGWNPw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4ID5MHkgEeOCpqruXGWNPw" visible="false" type="7017">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4IFHUHkgEeOCpqruXGWNPw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4IFHUXkgEeOCpqruXGWNPw" key="showTitle" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4ID5MXkgEeOCpqruXGWNPw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_4ID5MnkgEeOCpqruXGWNPw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_4ID5M3kgEeOCpqruXGWNPw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4ID5NHkgEeOCpqruXGWNPw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4ID5NXkgEeOCpqruXGWNPw" visible="false" type="7018">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4IFuYHkgEeOCpqruXGWNPw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4IFuYXkgEeOCpqruXGWNPw" key="showTitle" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4ID5NnkgEeOCpqruXGWNPw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_4ID5N3kgEeOCpqruXGWNPw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_4ID5OHkgEeOCpqruXGWNPw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4ID5OXkgEeOCpqruXGWNPw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4ID5OnkgEeOCpqruXGWNPw" visible="false" type="7019">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4IGVcHkgEeOCpqruXGWNPw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4IGVcXkgEeOCpqruXGWNPw" key="showTitle" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4ID5O3kgEeOCpqruXGWNPw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_4ID5PHkgEeOCpqruXGWNPw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_4ID5PXkgEeOCpqruXGWNPw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4ID5PnkgEeOCpqruXGWNPw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_94BcYguXEeWXe7AeBUbqvw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_94BcYwuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_4H-ZoHkgEeOCpqruXGWNPw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4ICrEHkgEeOCpqruXGWNPw" x="60" y="100" width="181" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_g9VpkLsMEeO0n5elMxN1LQ" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_g9WQoLsMEeO0n5elMxN1LQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_g9WQobsMEeO0n5elMxN1LQ" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_g9WQorsMEeO0n5elMxN1LQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_g9WQo7sMEeO0n5elMxN1LQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_g9WQpLsMEeO0n5elMxN1LQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g9WQpbsMEeO0n5elMxN1LQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_g9W3sLsMEeO0n5elMxN1LQ" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_g9W3sbsMEeO0n5elMxN1LQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_g9W3srsMEeO0n5elMxN1LQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_g9W3s7sMEeO0n5elMxN1LQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g9W3tLsMEeO0n5elMxN1LQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_g9W3tbsMEeO0n5elMxN1LQ" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_g9W3trsMEeO0n5elMxN1LQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_g9W3t7sMEeO0n5elMxN1LQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_g9W3uLsMEeO0n5elMxN1LQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g9W3ubsMEeO0n5elMxN1LQ"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_94BcZAuXEeWXe7AeBUbqvw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_94BcZQuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_g8oe8LsMEeO0n5elMxN1LQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g9VpkbsMEeO0n5elMxN1LQ" x="60" y="180" width="181" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_96IVMAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_96IVMQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_96I8QAuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="core.uml#_z2tyoHI3EeOCrdvV8oxOKA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_96IVMguXEeWXe7AeBUbqvw" x="260" y="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_96e6gAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_96e6gQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_96e6gwuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="core.uml#_4H-ZoHkgEeOCpqruXGWNPw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_96e6gguXEeWXe7AeBUbqvw" x="260" y="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9604wAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9604wQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9604wwuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="core.uml#_g8oe8LsMEeO0n5elMxN1LQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9604wguXEeWXe7AeBUbqvw" x="260" y="180"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_zCs7wHI3EeOCrdvV8oxOKA"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_94BcZguXEeWXe7AeBUbqvw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="core.uml#_tkiC4HI3EeOCrdvV8oxOKA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_96I8QQuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_z30l4HI3EeOCrdvV8oxOKA" target="_96IVMAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_96I8QguXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_96I8RguXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="core.uml#_z2tyoHI3EeOCrdvV8oxOKA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_96I8QwuXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_96I8RAuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_96I8RQuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_96e6hAuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_4ICEAHkgEeOCpqruXGWNPw" target="_96e6gAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_96e6hQuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_96e6iQuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="core.uml#_4H-ZoHkgEeOCpqruXGWNPw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_96e6hguXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_96e6hwuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_96e6iAuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9604xAuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_g9VpkLsMEeO0n5elMxN1LQ" target="_9604wAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_9604xQuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_961f0guXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="core.uml#_g8oe8LsMEeO0n5elMxN1LQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9604xguXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_961f0AuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_961f0QuXEeWXe7AeBUbqvw"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_ljiPEKLvEeSBiP8ZTcBQrQ" type="PapyrusUMLClassDiagram" name="OOtransformations" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_mhOmYKLvEeSBiP8ZTcBQrQ" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_mhP0gKLvEeSBiP8ZTcBQrQ" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mhP0gaLvEeSBiP8ZTcBQrQ" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mhP0gqLvEeSBiP8ZTcBQrQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mhQbkKLvEeSBiP8ZTcBQrQ" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mhQbkaLvEeSBiP8ZTcBQrQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mhQbkqLvEeSBiP8ZTcBQrQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mhQbk6LvEeSBiP8ZTcBQrQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mhQblKLvEeSBiP8ZTcBQrQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mhQblaLvEeSBiP8ZTcBQrQ" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mhQblqLvEeSBiP8ZTcBQrQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mhQbl6LvEeSBiP8ZTcBQrQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mhQbmKLvEeSBiP8ZTcBQrQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mhQbmaLvEeSBiP8ZTcBQrQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mhQbmqLvEeSBiP8ZTcBQrQ" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mhQbm6LvEeSBiP8ZTcBQrQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mhQbnKLvEeSBiP8ZTcBQrQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mhQbnaLvEeSBiP8ZTcBQrQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mhQbnqLvEeSBiP8ZTcBQrQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_mgbVIKLvEeSBiP8ZTcBQrQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mhOmYaLvEeSBiP8ZTcBQrQ" x="40" y="40" width="161" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nRtBEKLvEeSBiP8ZTcBQrQ" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_nRtoIKLvEeSBiP8ZTcBQrQ" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_nRtoIaLvEeSBiP8ZTcBQrQ" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nRtoIqLvEeSBiP8ZTcBQrQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nRtoI6LvEeSBiP8ZTcBQrQ" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nRtoJKLvEeSBiP8ZTcBQrQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_nRtoJaLvEeSBiP8ZTcBQrQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_nRtoJqLvEeSBiP8ZTcBQrQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nRtoJ6LvEeSBiP8ZTcBQrQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nRtoKKLvEeSBiP8ZTcBQrQ" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nRtoKaLvEeSBiP8ZTcBQrQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_nRtoKqLvEeSBiP8ZTcBQrQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_nRtoK6LvEeSBiP8ZTcBQrQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nRtoLKLvEeSBiP8ZTcBQrQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nRtoLaLvEeSBiP8ZTcBQrQ" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nRtoLqLvEeSBiP8ZTcBQrQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_nRtoL6LvEeSBiP8ZTcBQrQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_nRtoMKLvEeSBiP8ZTcBQrQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nRtoMaLvEeSBiP8ZTcBQrQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_nRnhgKLvEeSBiP8ZTcBQrQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nRtBEaLvEeSBiP8ZTcBQrQ" x="240" y="40" width="161" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_pu_i4KLvEeSBiP8ZTcBQrQ" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_pvAJ8KLvEeSBiP8ZTcBQrQ" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_pvAJ8aLvEeSBiP8ZTcBQrQ" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_pvAJ8qLvEeSBiP8ZTcBQrQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_pvAJ86LvEeSBiP8ZTcBQrQ" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_pvAJ9KLvEeSBiP8ZTcBQrQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_pvAJ9aLvEeSBiP8ZTcBQrQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_pvAJ9qLvEeSBiP8ZTcBQrQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pvAJ96LvEeSBiP8ZTcBQrQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_pvAJ-KLvEeSBiP8ZTcBQrQ" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_pvAJ-aLvEeSBiP8ZTcBQrQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_pvAJ-qLvEeSBiP8ZTcBQrQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_pvAJ-6LvEeSBiP8ZTcBQrQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pvAJ_KLvEeSBiP8ZTcBQrQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_pvAJ_aLvEeSBiP8ZTcBQrQ" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_pvAJ_qLvEeSBiP8ZTcBQrQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_pvAJ_6LvEeSBiP8ZTcBQrQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_pvAKAKLvEeSBiP8ZTcBQrQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pvAKAaLvEeSBiP8ZTcBQrQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_pu1x4KLvEeSBiP8ZTcBQrQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pu_i4aLvEeSBiP8ZTcBQrQ" x="40" y="140" width="161" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_98wLYAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_98wLYQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_98wLYwuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="core.uml#_mgbVIKLvEeSBiP8ZTcBQrQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_98wLYguXEeWXe7AeBUbqvw" x="240" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_99B4MAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_99B4MQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_99B4MwuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="core.uml#_nRnhgKLvEeSBiP8ZTcBQrQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_99B4MguXEeWXe7AeBUbqvw" x="440" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_99PTkAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_99PTkQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_99PTkwuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="core.uml#_pu1x4KLvEeSBiP8ZTcBQrQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_99PTkguXEeWXe7AeBUbqvw" x="240" y="140"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_ljiPEaLvEeSBiP8ZTcBQrQ" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_ljiPEqLvEeSBiP8ZTcBQrQ"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_ljiPE6LvEeSBiP8ZTcBQrQ">
+ <owner xmi:type="uml:Package" href="core.uml#_B_a2UKLvEeSBiP8ZTcBQrQ"/>
+ </styles>
+ <element xmi:type="uml:Package" href="core.uml#_B_a2UKLvEeSBiP8ZTcBQrQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_98wLZAuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_mhOmYKLvEeSBiP8ZTcBQrQ" target="_98wLYAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_98wLZQuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_98wLaQuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="core.uml#_mgbVIKLvEeSBiP8ZTcBQrQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_98wLZguXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_98wLZwuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_98wLaAuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_99B4NAuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_nRtBEKLvEeSBiP8ZTcBQrQ" target="_99B4MAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_99B4NQuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_99B4OQuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="core.uml#_nRnhgKLvEeSBiP8ZTcBQrQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_99B4NguXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_99B4NwuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_99B4OAuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_99PTlAuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_pu_i4KLvEeSBiP8ZTcBQrQ" target="_99PTkAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_99PTlQuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_99PTmQuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="core.uml#_pu1x4KLvEeSBiP8ZTcBQrQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_99PTlguXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_99PTlwuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_99PTmAuXEeWXe7AeBUbqvw"/>
+ </edges>
+ </notation:Diagram>
+ <css:ModelStyleSheets xmi:id="_qkkdcMc1EeSsAI2TZshUyg"/>
+ <css:EmbeddedStyleSheet xmi:id="_7gUz8Mc1EeSsAI2TZshUyg" label="Qompass" content="Label {&#xA;&#x9;maskLabel: name;&#xA;}&#xA;&#xA;Port > Label {&#xA;&#x9;maskLabel: name;&#xA;}&#xA;&#xA;Port {&#xA;&#x9;maskLabel: name;&#xA;}&#xA;&#xA;Property {&#xA;&#x9;maskLabel: name type;&#xA;}"/>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/core.uml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/core.uml
new file mode 100644
index 00000000000..f028cc3615c
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/core.uml
@@ -0,0 +1,1369 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:C_Cpp="http://www.eclipse.org/papyrus/C_Cpp/1" xmlns:FCM="http://www.eclipse.org/papyrus/FCM/1" xmlns:SW_Concurrency="http://www.eclipse.org/papyrus/SW_Concurrency/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/papyrus/SW_Concurrency/1 http://www.eclipse.org/papyrus/MARTE/1#//SRM/SW_Concurrency">
+ <uml:Model xmi:id="_O6TiIDLUEd26WNosUASSSw" name="core" viewpoint="">
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_O6TiITLUEd26WNosUASSSw">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_clzbsC3xEd6OqY3qskOtLQ">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/sysinterfaces.uml#_RodVAAweEd6it_RkGhz_AA"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_hWGaIF9CEd6vU6EJjexEKQ">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/corba.uml#_DtQEwDLdEd2_U4efLnjQIw"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_K9IBUP-FEd6628OhKk_dpg">
+ <importedPackage xmi:type="uml:Model" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_DV8nkBv8EduZN5aJJITI5w"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_mXnzUPQdEeCIC-7tA9lfzA">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/osal.uml#_ROTQYC-OEdySSa8YESkO2w"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Package" xmi:id="_TFq8cOy6Ed2UrumbR9YAVg" name="composites">
+ <packagedElement xmi:type="uml:Class" xmi:id="_1RehUAGpEd6eR-dxi5su4Q" name="BootLoader">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_JMwYwMGJEd-Mveea1W_olA">
+ <body>A template for the bootloader generation.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_JM4UkMGJEd-Mveea1W_olA">
+ <body>This C++ implementation of the template contains principally the definition of the
+&quot;main&quot; function and the declaration of the bootloader instance</body>
+ </ownedComment>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_AFnZUAGqEd6eR-dxi5su4Q" name="b:createInstances" specification="_3kwykAGpEd6eR-dxi5su4Q">
+ <language>C/C++</language>
+ <body>&lt;%createInstances%></body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_IbrFUAGqEd6eR-dxi5su4Q" name="b:main" specification="_6pkAUAGpEd6eR-dxi5su4Q"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_3kwykAGpEd6eR-dxi5su4Q" name="createInstances" method="_AFnZUAGqEd6eR-dxi5su4Q"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_6pkAUAGpEd6eR-dxi5su4Q" name="main" isStatic="true" method="_IbrFUAGqEd6eR-dxi5su4Q"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_mMCK8PiPEd2UhpY2Y3WUyg" name="methodCall">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_WiuBUK8rEeCXIcykFPsB8Q" annotatedElement="_mMCK8PiPEd2UhpY2Y3WUyg">
+ <body>Main package template for all call based connectors. The formal parameter is the interface I (which is bound to the actual interface used in a call).
+This package is virtually extended by other model libraries who import it.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="__oxUADrVEeGMCcwsbpLuFA" annotatedElement="_j29X4NttEd2eM5kqcby5ZA">
+ <body>Inheritance hierarchy for (A)SyncCall component types. Separate types for required (rconn) and provided (fconn) ports enable re-use via inheritance ain multiple places (e.g. for AMI ports that use an unmodified provided port and different variants of a required port).
+Note that ports on connector side are conjugated</body>
+ </ownedComment>
+ <ownedTemplateSignature xmi:type="uml:TemplateSignature" xmi:id="_V0b2APfBEd2TbIfwytOyPA" parameter="_WzWVUPfBEd2TbIfwytOyPA">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_WzWVUPfBEd2TbIfwytOyPA" parameteredElement="_ZzlzMPfBEd2TbIfwytOyPA">
+ <ownedParameteredElement xmi:type="uml:Interface" xmi:id="_ZzlzMPfBEd2TbIfwytOyPA" name="I" templateParameter="_WzWVUPfBEd2TbIfwytOyPA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <packagedElement xmi:type="uml:Package" xmi:id="_ZISNcIQzEd2_fLv04swWfw" name="AsyncCall">
+ <packagedElement xmi:type="uml:Class" xmi:id="_KxQBELuXEd2TTr3gJIvazw" name="AsyncCall" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_0KzSsDBEEd6V16eboHV1gw" general="_j29X4NttEd2eM5kqcby5ZA"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_1H2JwDBEEd6V16eboHV1gw" general="_mIpj8Ns8Ed2eM5kqcby5ZA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Whe8EClYEd-eoo60eNyGlg" name="AsyncCall_impl">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_sp9YYG5fEd-5CZIeuHpHAg">
+ <body>Description: A simple implementation of asynchronous calls. It will execution requests by means of a single dispatcher thread</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_HMz-ADJKEeCAhMtIsY9HwA">
+ <body>Simple asynchronous call implementation: returns immediately and executes request in new thread</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_bustsDJKEeCAhMtIsY9HwA">
+ <body>Uses buffer and ASN marshalling.
+TODO: configurable buffer size, use data structure (CppParameterStorage)</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_lYOSkClzEd-eoo60eNyGlg" general="_KxQBELuXEd2TTr3gJIvazw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_1XeLIED5Ed-_DOja_sRgWA" name="buffer" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8wC7MED5Ed-_DOja_sRgWA" value="500"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8wLeEED5Ed-_DOja_sRgWA" value="500"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_2fcqYED6Ed-_DOja_sRgWA" name="pBuffer" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ </ownedAttribute>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_nBpugClzEd-eoo60eNyGlg" name="derived realization of I" client="_Whe8EClYEd-eoo60eNyGlg" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_WhfjIilYEd-eoo60eNyGlg" name="[name/]" specification="_2bwsEClzEd-eoo60eNyGlg">
+ <language>C/C++</language>
+ <body>!xtend AsyncCalls.asyncCall</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_WhfjIylYEd-eoo60eNyGlg" name="static[name/]" specification="_WhfjJSlYEd-eoo60eNyGlg">
+ <language>C/C++</language>
+ <body>((AsyncCall_impl *) arg)->dispatch ();
+return NULL;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_nV2DcED5Ed-_DOja_sRgWA" name="dispatch" specification="_G6LzAD3QEd-Bk-AHd6yyoA">
+ <language>C/C++</language>
+ <body>!xtend AsyncCalls.dispatch_</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_WhfjJSlYEd-eoo60eNyGlg" name="staticDispatch" isStatic="true" method="_WhfjIylYEd-eoo60eNyGlg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_WhfjJilYEd-eoo60eNyGlg" name="arg">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WhfjKClYEd-eoo60eNyGlg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_WhfjJylYEd-eoo60eNyGlg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_WhfjKSlYEd-eoo60eNyGlg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_WhfjKilYEd-eoo60eNyGlg" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_2bwsEClzEd-eoo60eNyGlg" name="[name/]" method="_WhfjIilYEd-eoo60eNyGlg"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_G6LzAD3QEd-Bk-AHd6yyoA" name="dispatch" method="_nV2DcED5Ed-_DOja_sRgWA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_pXzKcEJ1Ed-Ps4Bfh0j9LQ" name="AsyncCallPool_impl">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_spsPMDJKEeCAhMtIsY9HwA">
+ <body>(untested) implementation of an asynchronous invocation that uses a thread pool for
+spawning new requests</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_pXzKcUJ1Ed-Ps4Bfh0j9LQ" general="_KxQBELuXEd2TTr3gJIvazw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_pXzxgEJ1Ed-Ps4Bfh0j9LQ" name="buffer" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_pXzxgkJ1Ed-Ps4Bfh0j9LQ" value="500"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_pXzxgUJ1Ed-Ps4Bfh0j9LQ" value="500"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_pXzxg0J1Ed-Ps4Bfh0j9LQ" name="pBuffer" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ </ownedAttribute>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_pXzxh0J1Ed-Ps4Bfh0j9LQ" name="derived realization of I" client="_pXzKcEJ1Ed-Ps4Bfh0j9LQ" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_pXzxhEJ1Ed-Ps4Bfh0j9LQ" name="[name/]" specification="_pXzxjkJ1Ed-Ps4Bfh0j9LQ">
+ <language>C/C++</language>
+ <body>!xtend AsyncCalls.asyncCall</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_pXzxhUJ1Ed-Ps4Bfh0j9LQ" name="static[name/]" specification="_pXzxiEJ1Ed-Ps4Bfh0j9LQ">
+ <language>C/C++</language>
+ <body>((AsyncCall_impl *) arg)->dispatch ();
+return NULL;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_pXzxhkJ1Ed-Ps4Bfh0j9LQ" name="dispatch" specification="_pXzxj0J1Ed-Ps4Bfh0j9LQ">
+ <language>C/C++</language>
+ <body>!xtend AsyncCalls.dispatchWithThreadPool</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_pXzxiEJ1Ed-Ps4Bfh0j9LQ" name="staticDispatch" isStatic="true" method="_pXzxhUJ1Ed-Ps4Bfh0j9LQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_pXzxiUJ1Ed-Ps4Bfh0j9LQ" name="arg">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_pXzxi0J1Ed-Ps4Bfh0j9LQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_pXzxikJ1Ed-Ps4Bfh0j9LQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_pXzxjEJ1Ed-Ps4Bfh0j9LQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_pXzxjUJ1Ed-Ps4Bfh0j9LQ" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_pXzxjkJ1Ed-Ps4Bfh0j9LQ" name="[name/]" method="_pXzxhEJ1Ed-Ps4Bfh0j9LQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_pXzxj0J1Ed-Ps4Bfh0j9LQ" name="dispatch" method="_pXzxhkJ1Ed-Ps4Bfh0j9LQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_3itBkNdwEd-ZnqCk2P2ZKg" name="AMIPollCall_impl">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_3itBkddwEd-ZnqCk2P2ZKg">
+ <body>Description: A simple implementation of asynchronous calls. It will execution requests by means of a single dispatcher thread</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_lEC3ADJLEeCAhMtIsY9HwA">
+ <body>Polling variant of CORBAs asynchronous messaging (AMI), enables asynchronous calls while reading
+return values (also called deferred synchronous):
+Instead of specified return values, functions return a poller object which may be queried for
+the result.
+TODO: complete, move into model of Qompass AMI plugin</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_3itBktdwEd-ZnqCk2P2ZKg" general="_KxQBELuXEd2TTr3gJIvazw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_3itBk9dwEd-ZnqCk2P2ZKg" name="buffer" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3itBlddwEd-ZnqCk2P2ZKg" value="500"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3itBlNdwEd-ZnqCk2P2ZKg" value="500"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_3itBltdwEd-ZnqCk2P2ZKg" name="pBuffer" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ </ownedAttribute>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_3itBmtdwEd-ZnqCk2P2ZKg" name="derived realization of I" client="_3itBkNdwEd-ZnqCk2P2ZKg" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_3itBl9dwEd-ZnqCk2P2ZKg" name="[name/]" specification="_3itBoddwEd-ZnqCk2P2ZKg">
+ <language>C/C++</language>
+ <body>!xtend AMIPull.operation</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_3itBmNdwEd-ZnqCk2P2ZKg" name="static[name/]" specification="_3itBm9dwEd-ZnqCk2P2ZKg">
+ <language>C/C++</language>
+ <body>((AsyncCall_impl *) arg)->dispatch ();
+return NULL;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_3itBmddwEd-ZnqCk2P2ZKg" name="dispatch" specification="_3itBotdwEd-ZnqCk2P2ZKg">
+ <language>C/C++</language>
+ <body>!xtend AsyncCall.dispatch_</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_3itBm9dwEd-ZnqCk2P2ZKg" name="staticDispatch" isStatic="true" method="_3itBmNdwEd-ZnqCk2P2ZKg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_3itBnNdwEd-ZnqCk2P2ZKg" name="arg">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3itBntdwEd-ZnqCk2P2ZKg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3itBnddwEd-ZnqCk2P2ZKg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_3itBn9dwEd-ZnqCk2P2ZKg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_3itBoNdwEd-ZnqCk2P2ZKg" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_3itBoddwEd-ZnqCk2P2ZKg" name="[name/]" method="_3itBl9dwEd-ZnqCk2P2ZKg"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_3itBotdwEd-ZnqCk2P2ZKg" name="dispatch" method="_3itBmddwEd-ZnqCk2P2ZKg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Mo2kwF7pEeGEmrrwB1vhPg" name="CallMultiplier_impl">
+ <generalization xmi:type="uml:Generalization" xmi:id="_eJqowF7sEeGEmrrwB1vhPg" general="_TLShkF7qEeGEmrrwB1vhPg"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_8e_ocF7sEeGEmrrwB1vhPg" name="derived realization of I" client="_Mo2kwF7pEeGEmrrwB1vhPg" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_DmUQcF7tEeGEmrrwB1vhPg" name="operation1" specification="_ChD4kF7tEeGEmrrwB1vhPg">
+ <language>C/C++</language>
+ <body>!xtend MultipleReceptacle.operation_</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_ChD4kF7tEeGEmrrwB1vhPg" name="[name/]" method="_DmUQcF7tEeGEmrrwB1vhPg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_TLShkF7qEeGEmrrwB1vhPg" name="AsyncCallM" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_WhUpQF7qEeGEmrrwB1vhPg" general="_0KYOQF7pEeGEmrrwB1vhPg"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_XgUoIF7qEeGEmrrwB1vhPg" general="_j29X4NttEd2eM5kqcby5ZA"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_2oxDIPiPEd2UhpY2Y3WUyg" name="OperationIDs">
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_KOvHsPiREd2UhpY2Y3WUyg" name="ID_[name/]"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_j29X4NttEd2eM5kqcby5ZA" name="OPC_useI" isAbstract="true">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_P4xVsNtuEd2eM5kqcby5ZA" name="fconn" visibility="public" type="_AsqygH2MEeWV7cfiwPN21w" aggregation="composite" isConjugated="true"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_mIpj8Ns8Ed2eM5kqcby5ZA" name="OPC_provideI" isAbstract="true">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_Qk0jYNtuEd2eM5kqcby5ZA" name="rconn" visibility="public" type="_ZzlzMPfBEd2TbIfwytOyPA" aggregation="composite" isConjugated="true">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rftH8ENwEeGoAtSeIK7WLg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rfxZYENwEeGoAtSeIK7WLg" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_gKMTIAytEd6it_RkGhz_AA" name="marshalling">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_9gpvcENxEeGoAtSeIK7WLg">
+ <body>Needs completion:
+good(?) write buffer event?
+Call operations of buffer component?
+[could have done in an identical way for EventPool]</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_pk4cMEN_EeGfhclnRyNzoA">
+ <body>Marshalling is done at two levels:
+(1) In case of a shared address space, only a callEvent is created. It can be passed between threads within a process.
+(2) For remote communication, marshalling into a buffer is done.</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_b_yh4AzyEd6it_RkGhz_AA" name="Marshall" isAbstract="true">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_rSCxUAytEd6it_RkGhz_AA" name="disp" visibility="public" type="_oJcUUH2LEeWV7cfiwPN21w" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HZg9YPQSEeCovO8AYZymZQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HaX5APQSEeCovO8AYZymZQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_MhH6cENxEeGoAtSeIK7WLg" name="in" visibility="public" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QR4PQENxEeGoAtSeIK7WLg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QR5dYENxEeGoAtSeIK7WLg" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_fmF6MAzyEd6it_RkGhz_AA" name="Unmarshall" isAbstract="true">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_r5Va0AytEd6it_RkGhz_AA" name="disp" visibility="public" aggregation="composite">
+ <type xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_7TuzoCUUEd6YR-YzyVnLng"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WNWcQEN-EeGfhclnRyNzoA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_WNY4gEN-EeGfhclnRyNzoA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_Zd558ENxEeGoAtSeIK7WLg" name="out" visibility="public" type="_WkkjoPNUEeCovO8AYZymZQ" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_aPDDAENxEeGoAtSeIK7WLg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_aPERIENxEeGoAtSeIK7WLg" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_fPpr0K-jEd6DndT7kDY1-A" name="b:dispatch">
+ <specification xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#__aGzICUUEd6YR-YzyVnLng"/>
+ </ownedBehavior>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="__uJRYPNGEeCovO8AYZymZQ" name="StructBased">
+ <generalization xmi:type="uml:Generalization" xmi:id="_EWShMPNHEeCovO8AYZymZQ" general="_b_yh4AzyEd6it_RkGhz_AA"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_qRJc8PNJEeCovO8AYZymZQ" name="[name/]" specification="_aGt1sPNJEeCovO8AYZymZQ">
+ <language>C/C++</language>
+ <body>!xtend StructBasedMarshalling.marshall</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_aGt1sPNJEeCovO8AYZymZQ" name="[name/]" method="_qRJc8PNJEeCovO8AYZymZQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_u7MmIENqEeGoAtSeIK7WLg" name="ToCallEvent">
+ <generalization xmi:type="uml:Generalization" xmi:id="_K088oF_rEd6RvK-1A151zQ" general="_j29X4NttEd2eM5kqcby5ZA"/>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_-nk_cENqEeGoAtSeIK7WLg" name="out" visibility="public" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_AdVAIENrEeGoAtSeIK7WLg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_AdW1UENrEeGoAtSeIK7WLg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_Adf_QENrEeGoAtSeIK7WLg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_QTRNgDUKEeWa95xDrmW0sg" name="derived realization of I" client="_u7MmIENqEeGoAtSeIK7WLg" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_1xGG8ENqEeGoAtSeIK7WLg" name="FromCallEventWP">
+ <generalization xmi:type="uml:Generalization" xmi:id="_M09FgF_rEd6RvK-1A151zQ" general="_mIpj8Ns8Ed2eM5kqcby5ZA"/>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_9gIc8ENvEeGoAtSeIK7WLg" name="in" visibility="public" type="_WkkjoPNUEeCovO8AYZymZQ" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9uDkMENvEeGoAtSeIK7WLg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9uEyUENvEeGoAtSeIK7WLg" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_H7IOcENrEeGoAtSeIK7WLg" name="ToCallEventWP">
+ <generalization xmi:type="uml:Generalization" xmi:id="_KHmGAENrEeGoAtSeIK7WLg" general="_j29X4NttEd2eM5kqcby5ZA"/>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_i5SOQEN8EeGfhclnRyNzoA" name="out" visibility="public" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jRB_4EN8EeGfhclnRyNzoA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jRtVUEN8EeGfhclnRyNzoA" value="1"/>
+ </ownedAttribute>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_QTU34DUKEeWa95xDrmW0sg" name="derived realization of I" client="_H7IOcENrEeGoAtSeIK7WLg" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_RjvvcA1jEd6tvthBDl600Q" name="SyncCall">
+ <packagedElement xmi:type="uml:Class" xmi:id="_Zx2ZUA1jEd6tvthBDl600Q" name="SyncCall" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_STdvYDBFEd6V16eboHV1gw" general="_j29X4NttEd2eM5kqcby5ZA"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_T1zr4DBFEd6V16eboHV1gw" general="_mIpj8Ns8Ed2eM5kqcby5ZA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_jOU60A1jEd6tvthBDl600Q" name="DirectCall_impl">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_MgKU8G5gEd-5CZIeuHpHAg">
+ <body>Description: This connector is a kind of dummy connector, since it only passes incoming requests to its caller port</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_0fC3UDJJEeCAhMtIsY9HwA">
+ <body>Minimal connector implementation that does nothing (but passing requests)</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_0fOdgDJJEeCAhMtIsY9HwA">
+ <body></body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_lm4GkA1jEd6tvthBDl600Q" general="_Zx2ZUA1jEd6tvthBDl600Q"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_1tfFAJyCEd6WR4pSVO_UYw" name="derived realization of I" client="_jOU60A1jEd6tvthBDl600Q" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_GSdesJ09Ed6l5bTPBsl00Q" name="[name/]" specification="__y0hwJ08Ed6l5bTPBsl00Q">
+ <language>C/C++</language>
+ <body>!xtend SyncCalls.syncCall</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="__y0hwJ08Ed6l5bTPBsl00Q" name="[name/]" method="_GSdesJ09Ed6l5bTPBsl00Q"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_UAIU0K-iEd6DndT7kDY1-A" name="AdaptiveContainerServices">
+ <packagedElement xmi:type="uml:Class" xmi:id="_cxVEsK-iEd6DndT7kDY1-A" name="SampleInterceptor">
+ <generalization xmi:type="uml:Generalization" xmi:id="_lrS8oAQxEd--t-uhRn9OBA" general="_Zx2ZUA1jEd6tvthBDl600Q"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_v-oAAK-iEd6DndT7kDY1-A" name="derived realization of I" client="_cxVEsK-iEd6DndT7kDY1-A" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_GTvA0K-jEd6DndT7kDY1-A" name="[name/]" specification="_16jy8K-iEd6DndT7kDY1-A">
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;this is a sample pre-call interception&quot; &lt;&lt; endl;
+rconn->&lt;%cppCall%>;
+cout &lt;&lt; &quot;this is a sample post-call interception&quot; &lt;&lt; endl;</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_16jy8K-iEd6DndT7kDY1-A" name="[name/]" method="_GTvA0K-jEd6DndT7kDY1-A"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_aQ7goChYEd-eoo60eNyGlg" name="CallActivation">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_aAH58D8CEeGJ6KSvhYhYuQ">
+ <body>A set of Leader followers is instantiated. Each has its own thread and a semaphore. The LF instance waits on its semaphore. When selectLeader is called, a follower is signaled (semaphore is posted) and will become leader. The leader waits for a resource (e.g. a socket) and becomes executor.
+</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_e6Y_EChYEd-eoo60eNyGlg" name="Activator">
+ <generalization xmi:type="uml:Generalization" xmi:id="_oJX3IChYEd-eoo60eNyGlg" general="_KxQBELuXEd2TTr3gJIvazw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_qgzokChYEd-eoo60eNyGlg" name="LeaderFollower">
+ <generalization xmi:type="uml:Generalization" xmi:id="_sW6OkChYEd-eoo60eNyGlg" general="_e6Y_EChYEd-eoo60eNyGlg"/>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_N0tB4Cu4Ed-uZPFNCty7PQ" name="listener" type="_fxfe8Cu1Ed-uZPFNCty7PQ" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_UxKdsCu4Ed-uZPFNCty7PQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_UxM58Cu4Ed-uZPFNCty7PQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="__fLb4Cu5Ed-uZPFNCty7PQ" name="state" type="_F3CIECu1Ed-uZPFNCty7PQ" isUnique="false" aggregation="composite"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_M4VG8Cu9Ed-uZPFNCty7PQ" name="m_sema" type="_fxfe8Cu1Ed-uZPFNCty7PQ" isUnique="false" aggregation="composite"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_rmwGoCu-Ed-uZPFNCty7PQ" name="m_sr" isStatic="true" type="_qgzokChYEd-eoo60eNyGlg" isUnique="false" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zYwqYCu-Ed-uZPFNCty7PQ" value="20"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zY4mMCu-Ed-uZPFNCty7PQ" value="20"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xukAICvDEd-uZPFNCty7PQ" name="m_tID" type="_5KatsCvDEd-uZPFNCty7PQ" isUnique="false" aggregation="composite"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Xq00oCvHEd-uZPFNCty7PQ" name="POOL_SIZE" isStatic="true" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_ZmFncCvHEd-uZPFNCty7PQ" value="20"/>
+ </ownedAttribute>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_cWjrYCsAEd-uZPFNCty7PQ" name="derived realization of I" client="_qgzokChYEd-eoo60eNyGlg" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_D8z3ECu1Ed-uZPFNCty7PQ" name="run" specification="_2FN1ICu0Ed-uZPFNCty7PQ">
+ <language>C/C++</language>
+ <body>for (;;) {
+ // wait to be become active
+ m_state = FOLLOWER;
+ sem_wait (&amp;m_sema);
+ m_state = LEADER;
+ listener->select(); // no loop, single select
+ selectLeader ();
+ m_state = EXECUTOR;
+ listener->exec();
+}
+
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_wXEiYCu7Ed-uZPFNCty7PQ" name="selectLeader" specification="_eHX3wCu7Ed-uZPFNCty7PQ">
+ <language>C/C++</language>
+ <body>// select a new leader from the followers
+for (int i = currentIndex+1, j=0; j&lt;POOL_SIZE; i++, j++)
+{
+ if (i == POOL_SIZE) {
+ i = 0;
+ }
+ if (sr[i].state == FOLLOWER) {
+ sem_post (&amp;sr[i].m_sema);
+ break;
+ }
+}</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_4M1S0Cu9Ed-uZPFNCty7PQ" name="LeaderFollower" specification="_JM4I4Cu9Ed-uZPFNCty7PQ">
+ <language>C/C++</language>
+ <body>sem_init (&amp;m_sema, 0, 0);
+m_state = FOLLOWER;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_OyEk4Cu_Ed-uZPFNCty7PQ" name="init" specification="_6cImgCu-Ed-uZPFNCty7PQ">
+ <language>C/C++</language>
+ <body>for (int i=0; i&lt;POOL_SIZE; i++) {
+ pthread_create (&amp;m_sr.m_tID, 0, runStatic, &amp;m_sr[i]);
+}</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_AGUogCvHEd-uZPFNCty7PQ" name="runStatic" specification="_z-laoCvGEd-uZPFNCty7PQ">
+ <language>C/C++</language>
+ <body>((LeaderFollower *) arg)->run();</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_2FN1ICu0Ed-uZPFNCty7PQ" name="run" method="_D8z3ECu1Ed-uZPFNCty7PQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_eHX3wCu7Ed-uZPFNCty7PQ" name="selectLeader" method="_wXEiYCu7Ed-uZPFNCty7PQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_JM4I4Cu9Ed-uZPFNCty7PQ" name="LeaderFollower" method="_4M1S0Cu9Ed-uZPFNCty7PQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_6cImgCu-Ed-uZPFNCty7PQ" name="init" isStatic="true" method="_OyEk4Cu_Ed-uZPFNCty7PQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_z-laoCvGEd-uZPFNCty7PQ" name="runStatic" method="_AGUogCvHEd-uZPFNCty7PQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Dn-xYCvHEd-uZPFNCty7PQ" name="arg">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_IdnDkCvHEd-uZPFNCty7PQ" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_2wMyEChiEd-eoo60eNyGlg" name="SimpleActivation">
+ <generalization xmi:type="uml:Generalization" xmi:id="_5AKpkChiEd-eoo60eNyGlg" general="_e6Y_EChYEd-eoo60eNyGlg"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_BhfKYChjEd-eoo60eNyGlg" name="derived realization of I" client="_2wMyEChiEd-eoo60eNyGlg" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_6rmQoChiEd-eoo60eNyGlg" name="Thread Pool">
+ <generalization xmi:type="uml:Generalization" xmi:id="_892AEChiEd-eoo60eNyGlg" general="_e6Y_EChYEd-eoo60eNyGlg"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_cWkScCsAEd-uZPFNCty7PQ" name="derived realization of I" client="_6rmQoChiEd-eoo60eNyGlg" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_BY-fwCnxEd-eoo60eNyGlg" name="sem_t">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_CQ_F0CnxEd-eoo60eNyGlg" name="lf" type="_qgzokChYEd-eoo60eNyGlg" isUnique="false" aggregation="composite"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_PpWOECnxEd-eoo60eNyGlg" name="listener" isUnique="false" aggregation="composite"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_F3CIECu1Ed-uZPFNCty7PQ" name="LFState">
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_QSQJwCu1Ed-uZPFNCty7PQ" name="EXECUTOR"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_R5B6UCu1Ed-uZPFNCty7PQ" name="FOLLOWER"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_SxRJ4Cu1Ed-uZPFNCty7PQ" name="LEADER"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_fxfe8Cu1Ed-uZPFNCty7PQ" name="IListener">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_eN6hcCu3Ed-uZPFNCty7PQ" name="exec" isAbstract="true"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_hY4ooCu3Ed-uZPFNCty7PQ" name="select" isAbstract="true"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_5KatsCvDEd-uZPFNCty7PQ" name="pthread_t"/>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_hcwDkD8CEeGJ6KSvhYhYuQ" name="LeaderFollowerState">
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_mzqd4D8CEeGJ6KSvhYhYuQ" name="LEADER"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_qdIe8D8CEeGJ6KSvhYhYuQ" name="FOLLOWER"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_rOMvgD8CEeGJ6KSvhYhYuQ" name="EXECUTOR"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_xOqL0No9Ed-wvpj-p-V_QQ" name="CppParameterStorage"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_0KYOQF7pEeGEmrrwB1vhPg" name="OPC_provideMultI" isAbstract="true">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_0KY1UF7pEeGEmrrwB1vhPg" name="rconn" visibility="public" type="_ZzlzMPfBEd2TbIfwytOyPA" aggregation="composite" isConjugated="true">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0KY1Ul7pEeGEmrrwB1vhPg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0KY1UV7pEeGEmrrwB1vhPg" value="10"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_oJZ4EH2LEeWV7cfiwPN21w" name="derivedTypes">
+ <packagedElement xmi:type="uml:Package" xmi:id="_oJbtQH2LEeWV7cfiwPN21w" name="sysinterfaces">
+ <packagedElement xmi:type="uml:Class" xmi:id="_oJcUUH2LEeWV7cfiwPN21w" name="Use_Dispatch"/>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_oJhM0H2LEeWV7cfiwPN21w" client="_oJcUUH2LEeWV7cfiwPN21w">
+ <supplier xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_7TuzoCUUEd6YR-YzyVnLng"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_Askr4H2MEeWV7cfiwPN21w" name="core">
+ <packagedElement xmi:type="uml:Package" xmi:id="_AspkYH2MEeWV7cfiwPN21w" name="methodCall">
+ <packagedElement xmi:type="uml:Class" xmi:id="_AsqygH2MEeWV7cfiwPN21w" name="Use_I"/>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_As2_wH2MEeWV7cfiwPN21w" client="_AsqygH2MEeWV7cfiwPN21w" supplier="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_QwvnQFDlEd6cwecVIgl9nw" name="PortKinds">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_2dvXILnZEeCxXoyQxQ47PQ" annotatedElement="_Wtq4slDlEd6cwecVIgl9nw">
+ <body>Data Flow oriented communication: consume passively: provided push operation is called </body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Ch2pQLnaEeCxXoyQxQ47PQ">
+ <body>Data Flow oriented communication: produce data via pushing these (calling the required operation) </body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_DsnzQLnaEeCxXoyQxQ47PQ">
+ <body>Data Flow oriented communication: produce data via pushing these (calling the required operation) </body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_FMuUELnaEeCxXoyQxQ47PQ" annotatedElement="_WtrfwlDlEd6cwecVIgl9nw">
+ <body>Data Flow oriented communication: produce data via pushing these (calling the required operation) </body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_GgtrgLnaEeCxXoyQxQ47PQ" annotatedElement="_Wtq4sVDlEd6cwecVIgl9nw">
+ <body>Data Flow oriented communication: consumer data actively by calling the required poll operation </body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_-UGDoDiyEeGiupyIkgMHVw">
+ <body>In order to support icons, all port kinds are stereotypes, but for Qompass they are classes stereotyped as &quot;PortKind&quot;</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_COvdAEMMEeKGIL695HkFYQ" annotatedElement="_GjnlcC8qEeKx7OxAiA06uw">
+ <body> A bidirectional flow port combining a push-producer and a pull consumer</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_7cXTsH-QEeOtkrzuMiGEow" annotatedElement="_1FxlEH-QEeOtkrzuMiGEow">
+ <body>Dummy interface returned by ports who need to update derived interfaces (but can only do so in the context of a transaction).</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_Wtq4sVDlEd6cwecVIgl9nw" name="PullConsumer">
+ <icon xmi:type="uml:Image" xmi:id="_CVWIADiyEeGiupyIkgMHVw" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%97%0%0%0%98%8%0%0%0%0%101%-7%-30%-47%0%0%2%120%73%68%65%84%104%-127%-75%-38%-51%75%21%81%24%6%-16%-125%-106%105%25%-106%38%-107%84%-76%50%-119%-54%32%90%37%-75%-120%72%-94%69%-117%104%85%86%-46%-90%112%97%73%33%-47%-86%-123%16%33%70%17%-47%-54%-94%47%-24%3%-63%34%-56%-115%20%-35%77%4%-110%65%-123%27%11%51%37%-107%-16%-93%-85%-34%105%-26%-23%74%31%115%-18%120%103%-18%97%-50%-5%60%127%-64%-4%86%103%-26%61%-49%59%10%-99%23%-102%121%105%31%-127%122%-80%72%17%-77%-96%98%68%85%51%-127%116%-82%-87%26%-78%112%76%-35%34%11%117%106%-74%-98%45%32%121%-124%45%96%124%55%91%-64%-40%46%-74%-128%-127%-51%108%1%-3%-107%108%1%61%107%-40%2%-34%-106%-78%5%116%-111%8%95%-64%-45%34%-74%-32%-35%-90%16%-102%0%-17%106%62%89%-128%-45%66%32%50%4%56%-115%108%1%-45%39%-39%2%-110%7%-39%2%38%14%-80%5%-116%-18%96%11%24%-38%-50%22%-48%-73%-127%45%-32%-29%58%-74%-128%-41%43%-39%2%94%-107%-80%5%116%-120%17%97%2%-18%20%-78%5%-9%-70%16%17%42%-64%-67%40%-13%-94%13%23%-112%58%47%66%68%8%72%29%103%11%-104%58%-52%22%48%-79%-113%45%96%108%15%91%-64%-32%54%-74%-128%47%-101%-40%2%-34%-83%103%11%-24%89%-59%22%-16%-94%-116%45%-32%-39%82%-74%-128%-69%-59%108%1%55%11%-40%-126%123%41%54%97%40%-64%109%-54%35%11%-104%-39%-49%22%-34%-105%-109%-123%-127%-86%-104%-128%-87%-16%99%103%92%-64%80%-104%58%20%27%48%19%82%-89%-29%3%70%-126%-41%106%51%18%-104%8%-9%-84%38%39%3%-95%107%-103%13%96%32%-12%-38%125%30%114%11%-33%108%-81%43%-71%-124%113%-21%-6%44%-121%-112%-76%56%8%70%-126%115%-58%26%-120%22%-68%54%-127%-39%56%82%120%36%81%7%69%9%-35%-53%5%-128%40%-95%-73%66%2%-120%16%6%55%-118%0%-31%-62%100%-4%47%-126%-103%48%45%113%57%-119%18%-100%38%41%32%68%-16%-82%-56%21%126%-39%-123%-57%-126%-67%104%86%33%97%53%108%27%8%31%68%91%-10%44%-62%87%-39%101%-60%124%65%122%103%51%79%-104%-107%-34%59%5%-123%95%103%-123%-127%-96%64%40%-41%3%-62%-109%-59%-46%64%64%72%-84%16%7%50%5%-47%22%52%-101%48%-76%-107%0%-24%-62%-28%94%6%-96%9%-87%58%10%-32%11%-18%57%14%-32%11%55%72%-64%127%-95%-109%-10%63%-62%95%-31%13%107%103%-7%79%-24%91%75%3%-2%8%-33%41%7%65%19%126%-42%18%-127%57%-63%57%-63%4%-46%-126%-37%76%5%-46%66%7%23%80%71%85%-36%86%-57%52%-83%-86%-127%-6%-4%-68%-110%97%-11%-87%44%-93%-3%-54%-41%-78%-80%64%75%-111%-106%37%-59%126%86%111%-47%82%-85%-91%-2%84%58%109%-61%80%24%109%-65%-84%-27%-2%67%63%-49%95%-6%73%124%-42%50%19%28%-127%-94%-14%27%-2%-94%-44%59%115%-35%74%-17%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4KKUwDrSEeGKkdk54CX6PQ" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4KLi4DrSEeGKkdk54CX6PQ" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MdOBcDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconPushConsumer"/>
+ </eAnnotations>
+ </icon>
+ <icon xmi:type="uml:Image" xmi:id="_kZGdADl9EeGi35TadupI-A" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%108%0%0%0%97%8%0%0%0%0%22%-109%27%-49%0%0%2%-101%73%68%65%84%104%-127%-67%-38%-51%75%84%81%24%6%-16%-25%-36%59%87%68%43%107%76%40%63%42%-84%4%-125%1%49%-86%77%-82%70%24%-120%54%-39%-57%44%18%35%-110%62%104%-91%-83%10%-108%32%-94%64%40%92%-10%-79%-120%-118%8%23%82%-101%26%-124%22%65%41%4%69%-117%-118%-124%114%17%52%65%-108%9%105%-47%-28%116%26%107%76%-13%-34%-21%-67%112%-49%-5%60%-1%-64%111%49%103%120%-97%123%-34%3%61%118%-78%37%84%118%-89%61%115%-30%-123%14%29%76%39%16%41%106%-29%72%120%44%19%-51%42%100%-61%-77%-48%-40%-11%-56%24%-102%71%-119%-104%-38%-10%-114%-121%-63%74%101%121%24%84%-37%4%15%-125%-35%17%70%51%-124%-63%62%62%21%2%-21%55%-125%-63%-23%-2%30%-116%-99%54%-124%-95%-12%124%-114%-121%-95%-20%66%-98%-121%97%-7%-75%0%-51%36%-122%-8%32%17%67%-19%61%34%-122%-75%-113%-120%24%26%-122%-119%24%-102%94%19%49%-75%-27%45%15%-125%74%-67%-25%97%-80%118%-114%-13%48%-60%14%-8%-116%0%9%12%-79%-61%-34%35%64%4%-125%-45%-27%-87%-55%96%112%-50%120%-115%0%-12%-120%96%40%-21%-101%-10%-64%14%-55%96%88%-26%49%2%-48%33%-124%33%126%-117%-120%-95%-58%53%2%4%49%-84%121%72%-60%-48%48%66%-60%-48%-8%-110%-120%-87%-83%-93%60%12%42%-103%-27%97%-80%118%124%-28%97%-80%-38%39%120%24%-20%-125%83%60%-84%-16%21%-16%-115%-121%-63%-23%-51%-15%-80%-62%8%-56%-15%48%-108%95%-3%-59%-61%-80%-30%-58%31%108%23%5%67%85%102%6%-37%-50%-63%80%-5%-128%-120%97%-3%19%34%-122%-42%28%17%-85%120%78%-60%-86%-77%60%-52%-18%-28%-3%102%-86%117%-100%-121%37%-34%-16%-114%126%-35%48%-17%79%29%-65%-85%105%88%-23%-59%60%13%-117%117%-3%-48%44%-52%-38%59%-87%105%88%-53%7%77%-61%-26%106%-79%60%-74%122%104%-82%-54%109%18%-74%42%110%-50%43%-87%-11%-78%86%-55%-39%60%13%-77%-113%-52%-65%57%-106%-59%84%-37%23%77%-61%54%-1%-65%55%17%-59%-22%-97%106%26%86%117%95%-45%-80%37%-105%53%13%115%122%126%-46%48%-69%-3%-21%66%75%12%83%-55%-49%46%75%12%-101%-87%28%44%-84%-18%-79%-121%37%-124%85%-34%-15%-78%100%-80%98%-27%-96%96%-77%-107%-61%-115%85%27%-73%-84%125%-18%67%95%-60%-52%-25%95%-27%32%96%-115%-81%-4%44%-13%-40%-86%33%95%-53%56%-74%-44%125%51%44%-122%-107%-100%91%108%-19%105%-42%-78%-113%46%-70%-84%54%106%45%-88%28%-78%88%115%-64%83%13%-109%-42%-70%-96%39%47%6%-83%-107%-103%0%-53%32%86%-18%-86%28%114%-104%-45%-21%-86%28%98%-104%-75%127%50%-48%50%-123%-87%-92%-33%82%85%0%75%-116%-123%-80%12%97%53%-31%94%-107%25%-79%-2%-34%114%-124%-64%84%116%-85%-92%63%-24%-119%-53%44%-42%20%-39%-78%-70%125%42%-121%27%-69%93%25%-77%109%43%-118%-107%14%113%-24%-117%-104%-2%52%56%48%112%-91%-49%55%-89%-114%-7%38%-99%42%100%-49%-91%-48%-106%-2%13%-127%31%98%-1%-55%30%-37%-42%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_44RX8DrSEeGKkdk54CX6PQ" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_44R_ADrSEeGKkdk54CX6PQ" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PhMv0DrXEeGMCcwsbpLuFA" key="image_name_key" value="IconConjPullConsumer"/>
+ </eAnnotations>
+ </icon>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_Wtq4slDlEd6cwecVIgl9nw" name="PushConsumer">
+ <icon xmi:type="uml:Image" xmi:id="_Dh_hUDiyEeGiupyIkgMHVw" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%97%0%0%0%98%8%0%0%0%0%101%-7%-30%-47%0%0%2%120%73%68%65%84%104%-127%-75%-38%-51%75%21%81%24%6%-16%-125%-106%105%25%-106%38%-107%84%-76%50%-119%-54%32%90%37%-75%-120%72%-94%69%-117%104%85%86%-46%-90%112%97%73%33%-47%-86%-123%16%33%70%17%-47%-54%-94%47%-24%3%-63%34%-56%-115%20%-35%77%4%-110%65%-123%27%11%51%37%-107%-16%-93%-85%-34%105%-26%-23%74%31%115%-18%120%103%-18%97%-50%-5%60%127%-64%-4%86%103%-26%61%-49%59%10%-99%23%-102%121%105%31%-127%122%-80%72%17%-77%-96%98%68%85%51%-127%116%-82%-87%26%-78%112%76%-35%34%11%117%106%-74%-98%45%32%121%-124%45%96%124%55%91%-64%-40%46%-74%-128%-127%-51%108%1%-3%-107%108%1%61%107%-40%2%-34%-106%-78%5%116%-111%8%95%-64%-45%34%-74%-32%-35%-90%16%-102%0%-17%106%62%89%-128%-45%66%32%50%4%56%-115%108%1%-45%39%-39%2%-110%7%-39%2%38%14%-80%5%-116%-18%96%11%24%-38%-50%22%-48%-73%-127%45%-32%-29%58%-74%-128%-41%43%-39%2%94%-107%-80%5%116%-120%17%97%2%-18%20%-78%5%-9%-70%16%17%42%-64%-67%40%-13%-94%13%23%-112%58%47%66%68%8%72%29%103%11%-104%58%-52%22%48%-79%-113%45%96%108%15%91%-64%-32%54%-74%-128%47%-101%-40%2%-34%-83%103%11%-24%89%-59%22%-16%-94%-116%45%-32%-39%82%-74%-128%-69%-59%108%1%55%11%-40%-126%123%41%54%97%40%-64%109%-54%35%11%-104%-39%-49%22%-34%-105%-109%-123%-127%-86%-104%-128%-87%-16%99%103%92%-64%80%-104%58%20%27%48%19%82%-89%-29%3%70%-126%-41%106%51%18%-104%8%-9%-84%38%39%3%-95%107%-103%13%96%32%-12%-38%125%30%114%11%-33%108%-81%43%-71%-124%113%-21%-6%44%-121%-112%-76%56%8%70%-126%115%-58%26%-120%22%-68%54%-127%-39%56%82%120%36%81%7%69%9%-35%-53%5%-128%40%-95%-73%66%2%-120%16%6%55%-118%0%-31%-62%100%-4%47%-126%-103%48%45%113%57%-119%18%-100%38%41%32%68%-16%-82%-56%21%126%-39%-123%-57%-126%-67%104%86%33%97%53%108%27%8%31%68%91%-10%44%-62%87%-39%101%-60%124%65%122%103%51%79%-104%-107%-34%59%5%-123%95%103%-123%-127%-96%64%40%-41%3%-62%-109%-59%-46%64%64%72%-84%16%7%50%5%-47%22%52%-101%48%-76%-107%0%-24%-62%-28%94%6%-96%9%-87%58%10%-32%11%-18%57%14%-32%11%55%72%-64%127%-95%-109%-10%63%-62%95%-31%13%107%103%-7%79%-24%91%75%3%-2%8%-33%41%7%65%19%126%-42%18%-127%57%-63%57%-63%4%-46%-126%-37%76%5%-46%66%7%23%80%71%85%-36%86%-57%52%-83%-86%-127%-6%-4%-68%-110%97%-11%-87%44%-93%-3%-54%-41%-78%-80%64%75%-111%-106%37%-59%126%86%111%-47%82%-85%-91%-2%84%58%109%-61%80%24%109%-65%-84%-27%-2%67%63%-49%95%-6%73%124%-42%50%19%28%-127%-94%-14%27%-2%-94%-44%59%115%-35%74%-17%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7bjNADrSEeGKkdk54CX6PQ" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7bj0EDrSEeGKkdk54CX6PQ" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JNOQUDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconPushConsumer"/>
+ </eAnnotations>
+ </icon>
+ <icon xmi:type="uml:Image" xmi:id="_hwLS8Dl9EeGi35TadupI-A" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%108%0%0%0%97%8%0%0%0%0%22%-109%27%-49%0%0%2%-101%73%68%65%84%104%-127%-67%-38%-51%75%84%81%24%6%-16%-25%-36%59%87%68%43%107%76%40%63%42%-84%4%-125%1%49%-86%77%-82%70%24%-120%54%-39%-57%44%18%35%-110%62%104%-91%-83%10%-108%32%-94%64%40%92%-10%-79%-120%-118%8%23%82%-101%26%-124%22%65%41%4%69%-117%-118%-124%114%17%52%65%-108%9%105%-47%-28%116%26%107%76%-13%-34%-21%-67%112%-49%-5%60%-1%-64%111%49%103%120%-97%123%-34%3%61%118%-78%37%84%118%-89%61%115%-30%-123%14%29%76%39%16%41%106%-29%72%120%44%19%-51%42%100%-61%-77%-48%-40%-11%-56%24%-102%71%-119%-104%-38%-10%-114%-121%-63%74%101%121%24%84%-37%4%15%-125%-35%17%70%51%-124%-63%62%62%21%2%-21%55%-125%-63%-23%-2%30%-116%-99%54%-124%-95%-12%124%-114%-121%-95%-20%66%-98%-121%97%-7%-75%0%-51%36%-122%-8%32%17%67%-19%61%34%-122%-75%-113%-120%24%26%-122%-119%24%-102%94%19%49%-75%-27%45%15%-125%74%-67%-25%97%-80%118%-114%-13%48%-60%14%-8%-116%0%9%12%-79%-61%-34%35%64%4%-125%-45%-27%-87%-55%96%112%-50%120%-115%0%-12%-120%96%40%-21%-101%-10%-64%14%-55%96%88%-26%49%2%-48%33%-124%33%126%-117%-120%-95%-58%53%2%4%49%-84%121%72%-60%-48%48%66%-60%-48%-8%-110%-120%-87%-83%-93%60%12%42%-103%-27%97%-80%118%124%-28%97%-80%-38%39%120%24%-20%-125%83%60%-84%-16%21%-16%-115%-121%-63%-23%-51%-15%-80%-62%8%-56%-15%48%-108%95%-3%-59%-61%-80%-30%-58%31%108%23%5%67%85%102%6%-37%-50%-63%80%-5%-128%-120%97%-3%19%34%-122%-42%28%17%-85%120%78%-60%-86%-77%60%-52%-18%-28%-3%102%-86%117%-100%-121%37%-34%-16%-114%126%-35%48%-17%79%29%-65%-85%105%88%-23%-59%60%13%-117%117%-3%-48%44%-52%-38%59%-87%105%88%-53%7%77%-61%-26%106%-79%60%-74%122%104%-82%-54%109%18%-74%42%110%-50%43%-87%-11%-78%86%-55%-39%60%13%-77%-113%-52%-65%57%-106%-59%84%-37%23%77%-61%54%-1%-65%55%17%-59%-22%-97%106%26%86%117%95%-45%-80%37%-105%53%13%115%122%126%-46%48%-69%-3%-21%66%75%12%83%-55%-49%46%75%12%-101%-87%28%44%-84%-18%-79%-121%37%-124%85%-34%-15%-78%100%-80%98%-27%-96%96%-77%-107%-61%-115%85%27%-73%-84%125%-18%67%95%-60%-52%-25%95%-27%32%96%-115%-81%-4%44%-13%-40%-86%33%95%-53%56%-74%-44%125%51%44%-122%-107%-100%91%108%-19%105%-42%-78%-113%46%-70%-84%54%106%45%-88%28%-78%88%115%-64%83%13%-109%-42%-70%-96%39%47%6%-83%-107%-103%0%-53%32%86%-18%-86%28%114%-104%-45%-21%-86%28%98%-104%-75%127%50%-48%50%-123%-87%-92%-33%82%85%0%75%-116%-123%-80%12%97%53%-31%94%-107%25%-79%-2%-34%114%-124%-64%84%116%-85%-92%63%-24%-119%-53%44%-42%20%-39%-78%-70%125%42%-121%27%-69%93%25%-77%109%43%-118%-107%14%113%-24%-117%-104%-2%52%56%48%112%-91%-49%55%-89%-114%-7%38%-99%42%100%-49%-91%-48%-106%-2%13%-127%31%98%-1%-55%30%-37%-42%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8L9WQDrSEeGKkdk54CX6PQ" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8L99UDrSEeGKkdk54CX6PQ" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Lb68gDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconConjPushConsumer"/>
+ </eAnnotations>
+ </icon>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_WtrfwlDlEd6cwecVIgl9nw" name="PushProducer">
+ <icon xmi:type="uml:Image" xmi:id="_Eu1u8DiyEeGiupyIkgMHVw" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%108%0%0%0%97%8%0%0%0%0%22%-109%27%-49%0%0%2%-101%73%68%65%84%104%-127%-67%-38%-51%75%84%81%24%6%-16%-25%-36%59%87%68%43%107%76%40%63%42%-84%4%-125%1%49%-86%77%-82%70%24%-120%54%-39%-57%44%18%35%-110%62%104%-91%-83%10%-108%32%-94%64%40%92%-10%-79%-120%-118%8%23%82%-101%26%-124%22%65%41%4%69%-117%-118%-124%114%17%52%65%-108%9%105%-47%-28%116%26%107%76%-13%-34%-21%-67%112%-49%-5%60%-1%-64%111%49%103%120%-97%123%-34%3%61%118%-78%37%84%118%-89%61%115%-30%-123%14%29%76%39%16%41%106%-29%72%120%44%19%-51%42%100%-61%-77%-48%-40%-11%-56%24%-102%71%-119%-104%-38%-10%-114%-121%-63%74%101%121%24%84%-37%4%15%-125%-35%17%70%51%-124%-63%62%62%21%2%-21%55%-125%-63%-23%-2%30%-116%-99%54%-124%-95%-12%124%-114%-121%-95%-20%66%-98%-121%97%-7%-75%0%-51%36%-122%-8%32%17%67%-19%61%34%-122%-75%-113%-120%24%26%-122%-119%24%-102%94%19%49%-75%-27%45%15%-125%74%-67%-25%97%-80%118%-114%-13%48%-60%14%-8%-116%0%9%12%-79%-61%-34%35%64%4%-125%-45%-27%-87%-55%96%112%-50%120%-115%0%-12%-120%96%40%-21%-101%-10%-64%14%-55%96%88%-26%49%2%-48%33%-124%33%126%-117%-120%-95%-58%53%2%4%49%-84%121%72%-60%-48%48%66%-60%-48%-8%-110%-120%-87%-83%-93%60%12%42%-103%-27%97%-80%118%124%-28%97%-80%-38%39%120%24%-20%-125%83%60%-84%-16%21%-16%-115%-121%-63%-23%-51%-15%-80%-62%8%-56%-15%48%-108%95%-3%-59%-61%-80%-30%-58%31%108%23%5%67%85%102%6%-37%-50%-63%80%-5%-128%-120%97%-3%19%34%-122%-42%28%17%-85%120%78%-60%-86%-77%60%-52%-18%-28%-3%102%-86%117%-100%-121%37%-34%-16%-114%126%-35%48%-17%79%29%-65%-85%105%88%-23%-59%60%13%-117%117%-3%-48%44%-52%-38%59%-87%105%88%-53%7%77%-61%-26%106%-79%60%-74%122%104%-82%-54%109%18%-74%42%110%-50%43%-87%-11%-78%86%-55%-39%60%13%-77%-113%-52%-65%57%-106%-59%84%-37%23%77%-61%54%-1%-65%55%17%-59%-22%-97%106%26%86%117%95%-45%-80%37%-105%53%13%115%122%126%-46%48%-69%-3%-21%66%75%12%83%-55%-49%46%75%12%-101%-87%28%44%-84%-18%-79%-121%37%-124%85%-34%-15%-78%100%-80%98%-27%-96%96%-77%-107%-61%-115%85%27%-73%-84%125%-18%67%95%-60%-52%-25%95%-27%32%96%-115%-81%-4%44%-13%-40%-86%33%95%-53%56%-74%-44%125%51%44%-122%-107%-100%91%108%-19%105%-42%-78%-113%46%-70%-84%54%106%45%-88%28%-78%88%115%-64%83%13%-109%-42%-70%-96%39%47%6%-83%-107%-103%0%-53%32%86%-18%-86%28%114%-104%-45%-21%-86%28%98%-104%-75%127%50%-48%50%-123%-87%-92%-33%82%85%0%75%-116%-123%-80%12%97%53%-31%94%-107%25%-79%-2%-34%114%-124%-64%84%116%-85%-92%63%-24%-119%-53%44%-42%20%-39%-78%-70%125%42%-121%27%-69%93%25%-77%109%43%-118%-107%14%113%-24%-117%-104%-2%52%56%48%112%-91%-49%55%-89%-114%-7%38%-99%42%100%-49%-91%-48%-106%-2%13%-127%31%98%-1%-55%30%-37%-42%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EVcCADrXEeGMCcwsbpLuFA" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EVdQIDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconPushProducer"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Eg1ZsDrXEeGMCcwsbpLuFA" key="image_kind_key" value="icon"/>
+ </eAnnotations>
+ </icon>
+ <icon xmi:type="uml:Image" xmi:id="_djiTYDl9EeGi35TadupI-A" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%97%0%0%0%98%8%0%0%0%0%101%-7%-30%-47%0%0%2%120%73%68%65%84%104%-127%-75%-38%-51%75%21%81%24%6%-16%-125%-106%105%25%-106%38%-107%84%-76%50%-119%-54%32%90%37%-75%-120%72%-94%69%-117%104%85%86%-46%-90%112%97%73%33%-47%-86%-123%16%33%70%17%-47%-54%-94%47%-24%3%-63%34%-56%-115%20%-35%77%4%-110%65%-123%27%11%51%37%-107%-16%-93%-85%-34%105%-26%-23%74%31%115%-18%120%103%-18%97%-50%-5%60%127%-64%-4%86%103%-26%61%-49%59%10%-99%23%-102%121%105%31%-127%122%-80%72%17%-77%-96%98%68%85%51%-127%116%-82%-87%26%-78%112%76%-35%34%11%117%106%-74%-98%45%32%121%-124%45%96%124%55%91%-64%-40%46%-74%-128%-127%-51%108%1%-3%-107%108%1%61%107%-40%2%-34%-106%-78%5%116%-111%8%95%-64%-45%34%-74%-32%-35%-90%16%-102%0%-17%106%62%89%-128%-45%66%32%50%4%56%-115%108%1%-45%39%-39%2%-110%7%-39%2%38%14%-80%5%-116%-18%96%11%24%-38%-50%22%-48%-73%-127%45%-32%-29%58%-74%-128%-41%43%-39%2%94%-107%-80%5%116%-120%17%97%2%-18%20%-78%5%-9%-70%16%17%42%-64%-67%40%-13%-94%13%23%-112%58%47%66%68%8%72%29%103%11%-104%58%-52%22%48%-79%-113%45%96%108%15%91%-64%-32%54%-74%-128%47%-101%-40%2%-34%-83%103%11%-24%89%-59%22%-16%-94%-116%45%-32%-39%82%-74%-128%-69%-59%108%1%55%11%-40%-126%123%41%54%97%40%-64%109%-54%35%11%-104%-39%-49%22%-34%-105%-109%-123%-127%-86%-104%-128%-87%-16%99%103%92%-64%80%-104%58%20%27%48%19%82%-89%-29%3%70%-126%-41%106%51%18%-104%8%-9%-84%38%39%3%-95%107%-103%13%96%32%-12%-38%125%30%114%11%-33%108%-81%43%-71%-124%113%-21%-6%44%-121%-112%-76%56%8%70%-126%115%-58%26%-120%22%-68%54%-127%-39%56%82%120%36%81%7%69%9%-35%-53%5%-128%40%-95%-73%66%2%-120%16%6%55%-118%0%-31%-62%100%-4%47%-126%-103%48%45%113%57%-119%18%-100%38%41%32%68%-16%-82%-56%21%126%-39%-123%-57%-126%-67%104%86%33%97%53%108%27%8%31%68%91%-10%44%-62%87%-39%101%-60%124%65%122%103%51%79%-104%-107%-34%59%5%-123%95%103%-123%-127%-96%64%40%-41%3%-62%-109%-59%-46%64%64%72%-84%16%7%50%5%-47%22%52%-101%48%-76%-107%0%-24%-62%-28%94%6%-96%9%-87%58%10%-32%11%-18%57%14%-32%11%55%72%-64%127%-95%-109%-10%63%-62%95%-31%13%107%103%-7%79%-24%91%75%3%-2%8%-33%41%7%65%19%126%-42%18%-127%57%-63%57%-63%4%-46%-126%-37%76%5%-46%66%7%23%80%71%85%-36%86%-57%52%-83%-86%-127%-6%-4%-68%-110%97%-11%-87%44%-93%-3%-54%-41%-78%-80%64%75%-111%-106%37%-59%126%86%111%-47%82%-85%-91%-2%84%58%109%-61%80%24%109%-65%-84%-27%-2%67%63%-49%95%-6%73%124%-42%50%19%28%-127%-94%-14%27%-2%-94%-44%59%115%-35%74%-17%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GvSOQDrXEeGMCcwsbpLuFA" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GvS1UDrXEeGMCcwsbpLuFA" key="image_name_key" value="ConjIconPushProducer"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G5-bUDrXEeGMCcwsbpLuFA" key="image_kind_key" value="icon"/>
+ </eAnnotations>
+ </icon>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_GjnlcC8qEeKx7OxAiA06uw" name="PushProdPullCons">
+ <icon xmi:type="uml:Image" xmi:id="_0I0rMEMLEeKGIL695HkFYQ" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%112%0%0%0%103%8%0%0%0%0%-3%88%-103%-76%0%0%7%56%73%68%65%84%104%-127%-75%-102%123%80%21%85%28%-57%-9%-18%-67%92%121%-91%40%-124%38%70%64%-26%11%-33%-118%-29%115%124%84%-90%83%106%-91%-93%2%-115%83%-90%102%-90%-7%-56%-55%-41%-104%58%-26%-116%-40%56%-102%-64%-116%-88%53%101%62%-54%102%-14%81%26%86%102%-58%4%78%102%-120%14%89%62%72%5%-15%9%72%112%-111%-57%-62%-23%42%23%-10%123%118%-49%-18%-98%-35%-69%-2%-2%-29%-100%-33%-2%62%-105%-35%-13%123%-100%-33%57%2%-31%23%-23%-20%-87%-101%-116%-31%-102%-69%38%108%16%-127%31%-105%-38%78%16%-100%83%47%-46%-93%-43%-97%116%17%-59%94%-23%53%-10%3%-85%-34%116%9%15%36%-106%34%86%39%63%28%20%-109%-1%-77%29%-72%-92%-111%39%8%-29%-85%96%52%-75%105%116%90%-75%-51%-64%-116%22%62%-53%66%-28%101%121%-76%122%96%-45%-88%-72%-76%-34%86%-32%-31%80%-95%89%-66%-105%-121%47%61%-39%60%-22%78%-77%19%120%-90%-83%-52%19%-14%-28%-15%-62%56%121%56%116%-97%125%-64%-62%-98%-64%-21%120%93%-98%-88%26%12%19%109%-114%-39%5%44%123%22%-52%10%91%112%-22%-101%64%-104%-119%62%103%15%80%74%114%-128%-43%23%-53%113%-50%-25%22%62%-23%117%-51%22%-32%42%39%-40%-20%83%76%79%-106%-67%-128%-60%81%-58%65%-57%24%-72%-93%5%88%-20%-112%-81%-100%-66%-103%-128%-60%-55%30%-65%-127%-103%-32%16%66%-21%-29%106%-123%11%79%-125%-126%56%-73%-42%79%96%126%52%-104%11%-38%-55%82%-55%121%28%84%2%-42%-7%7%-68%-34%11%95%-40%-70%58%-90%-46%-63%-57%64%39%-28%115%127%-128%-98%-25%-112%55%-29%-66%-122%-38%118%-4%-52%97%-121%-83%3%-91%-23%-24%16%99%52%51%66%-3%-121%34%-24%69%-99%-78%12%92%-29%2%59%61%-117%-75%21%107%-26%-32%-101%-24%-10%-113%69%-32%23%24%70%-94%114%-11%126%90%-59%68%36%14%101%21%6%-58%-64%19%-83%-64%70%-85%31%-12%120%-124%-108%12%69%-30%-72%50%11%64%72%61%-34%-46%-30%-45%6%125%32%-71%26%15%-22%-30%76%-83%-11%-91%13%-68%-35%7%127%-14%74%-74%67%-96%-28%70%-127%126%-64%7%-110%73%-96%-121%-118%-111%111%104%-2%96%-112%-93%97%-16%68%96%-70%73%-32%76%116%-120%81%-9%56%120%-124%-20%13%-126%103%66%-65%50%5%92%-113%14%-47%-11%10%23%-113%-44%111%-62%-68%18%-98%101%2%-72%-41%13%79%70%-98%-26%-29%121%-35%113%41%126%-121%-40%-13%-36%-64%-109%-24%16%-63%-103%-68%60%66%42%95%67%98%127%86%-88%96%1%11%48%67%56%-73%25%57%4%74%-39%88%36%14%47%-27%2%-106%80%14%-79%-62%-40%33%80%-118%-6%-31%-61%83%-85%84%10%106%-96%-12%18%46%-48%100%-11%35%-6%-110%31%11%79%59%22%-87%-36%81%13%-100%-117%-111%127%-104%118%-116%-46%-110%19%88%-61%6%108%52%4%110%70%-121%-120%-27%116%8%74%14%-32%-110%11%82%-26%99%37%112%63%58%68%-60%31%22%120%-92%126%43%102%-103%-106%-118%-88%-81%0%-2%-114%-31%41%-8%59%43%60%66%106%87%99%0%104%-105%71%77%-46%-64%43%88%-127%9%105%90%1%-40%72%60%-77%-48%76%-89%34%77%96%101%95%84%92%96%84%-15%105%75%-7%-85%104%104%48%-106%-57%8%-84%-101%-128%106%-109%121%-73%-104%44%-71%51%4%77%-31%30%22%-127%-117%-47%1%19%-52%59%4%-54%-91%46%96%-53%49%67%-2%56%0%-92%98%125%76%-127%95%60%-17%-14%123%2%-84%57%87%49%-128%-103%-104%-51%-38%-24%-106%122%92%114%-76%53%-40%115%103%-88%-128%-25%-38%-64%-68%-21%-96%-103%-120%-83%33%-69%-15%63%8%57%-92%0%-34%-120%-63%-81%-68%-103%-77%67%-96%43%13%31%81%-7%56%-121%2%86%12%66%-34%60%-21%14%-127%82%-77%16%-115%-58%92%4%96%-35%100%-100%-102%-32%-113%67%-96%84%38%-94%-39%-34%55%101%-32%10%116%-120%-34%37%54%-15%-68%-7%120%36%18%71%120%-102%-128%59%-112%-41%94%111%103%96%86%-118%-79%-1%-31%72%-108%26%-127%-57%48%67%-124%-8%-17%16%40%-25%-79%60%118%-66%-1%16%120%1%-13%-105%75%-93%-100%-76%44%89%-24%110%-31%69%94%96%113%71%124%-49%41%118%56%4%37%-5%-63%29%-59%84%47%-112%-6%-82%-13%-52%-107%76%60%-46%-112%14%-18%56%64%18%-14%112%-63%-116%54%-20%122%88%-112%44%-8%100%125%37%97%62%-16%-30%-17%60%2%-34%5%-88%114%29%-21%-119%-48%94%-2%51%-20%-46%35%-32%-35%-22%15%-1%81%-40%95%68%-64%125%-28%86%27%66%-74%66%42%38%-127%125%71%-94%-41%45%54%-94%79%88%-84%-102%-76%-91%-10%61%92%-110%-61%-68%-91%-65%112%59%0%70%66%-71%55%74%124%-46%-80%5%19%70%-41%-85%-28%-127%-29%83%91%-84%-88%-117%-122%70%-52%-56%1%76%-119%17%15%-1%27%111%-92%-103%-126%-60%78%-73%108%-28%-3%22%1%-106%-125%15%18%31%-16%-2%112%-22%61%87%-40%-58%43%120%6%-20%-70%55%-111%38%32%41%-19%-122%-60%41%-4%-89%44%-6%82%58%2%-84%58%23%18%25%72%10%-80%37%35%44%-78%39%-68%121%-110%-48%-24%-53%77%-91%105%99%2%-2%19%-73%20%-62%70%59%2%120%-35%114%52%57%-80%-71%-8%-10%-43%52%71%-80%1%-23%-38%-25%127%0%104%-56%64%-121%-120%-109%79%115%-102%-86%-74%109%-72%13%13%57%-18%55%48%19%-33%89%120%-74%60%-47%92%-105%-82%68%98%100%30%-53%-120%9%57%-35%14%-84%5%-19%-127%25%-71%-14%-98%-123%121%42%-90%72%109%-60%-124%20%-10%0%91%1%41%56%37%3%-21%-88%-114%-57%0%127%-10%50%-9%-80%115%-19%-104%69%109%51%97%51%83%-47%-101%90%-57%60%-3%60%-74%120%94%71%67%99%-24%62%8%110%-41%-118%-30%80%-15%109%-85%1%64%90%-125%11%52%-31%6%61%75%-19%-128%-13%-15%4%66%88%109%113%-57%77%117%-82%-97%82%30%-27%-48%123%-4%-97%67%64%-41%-75%-35%-110%59%-2%68%117%-82%127%84%78%43%-70%24%123%48%59%90%-22%98%-100%-61%70%93%-32%103%-86%121%101%-97%-122%-38%98%69%-28%-104%-26%81%-67%54%-41%90%-75%-126%-86%19%-75%0%3%64%-76%-39%124%124%15%-5%18%-30%116%-58%-70%83%1%-21%38%82%59%41%115%-123%99%-19%108%92%117%35%24%-35%75%70%115%-81%18%-49%117%-123%-25%-71%111%4%120%-91%-98%-6%32%-35%-103%71%57%-116%126%-23%45%-20%120%-16%53%-12%125%-14%101%48%60%24%-59%-114%-57%-52%-114%112%123%36%46%-31%-34%127%-1%18%14%-113%-75%-44%88%-30%-58%61%111%-25%22%-50%124%76%29%-107%6%102%104%104%-79%-69%-6%-5%49%88%4%127%-51%-59%-93%-70%93%-30%50%-109%39%51%105%24%0%-62%127%-27%-32%81%53%-67%-112%100%-6%-20%105%57%-70%99%7%-29%-126%-68%6%119%97%-62%112%-19%-66%-124%22%80%-102%-122%-18%-40%-29%95%35%-32%-57%88%20%-59%-21%-88%107%-98%-82%-47%-57%-65%35%13%2%-64%1%60%119%-114%-52%-42%-47%-44%62%63%-92%-49%-13%18%43%-11%120%39%35%65%53%84%119%-111%-23%-100%-112%-46%-3%-24%-7%58%1%-32%114%103%80%12%-40%-84%-57%-45%61%3%-50%69%71%118%-90%104%22%-28%119%71%-127%-98%-72%80%-33%109%117%79%-71%-113%96%62%14%-38%-87%-111%-113%-85%-88%19%-82%-119%6%-101%33%-3%-117%3%25%-72%-10%90%-79%-113%-39%-22%-105%-95%7%13%49%-38%-18%25%92%-115%88%-117%-25%52%109%-103%-7%120%43%54%-50%-30%12%27%117%6%64%-23%29%-4%-7%-99%24%-7%-8%80%75%80%-32%-120%73%70%-73%77%60%-44%9%-60%32%-43%11%59%-125%-103%37%100%-105%33%-49%-8%62%-51%93%-22%4%-30%21%69%62%46%-60%-30%-39%-99%-62%54%97%14%72%-82%117%71%-30%108%-86%91%92%54%26%-25%-34%-30%-23%36%115%-36%-119%58%-117%45%79%-9%-73%56%-75%1%121%-29%-54%-75%44%-104%4%-110%99%-104%-113%-57%-62%-65%113%37%6%38%-6%-23%-36%70%49%9%36%-69%-96%86%-23%12%123%-123%108%8%12%-86%-102%-34%31%32%-39%36%7%-128%104%-72%-69%-106%41%-13%-62%-114%-14%-15%56%-127%-46%-30%-26%0%48%6%-118%-37%-13%-51%-25%75%-116%-102%-34%47%-96%55%94%-6%-14%-79%115%55%-116%-42%-114%-9%-15%-60%85%-36%-115%15%-34%-5%-91%37%-109%26%-119%115%-88%-22%-35%87%-88%-119%-17%62%-126%43%-69%82%90%127%-105%-69%-25%94%-123%-27%-53%-55%-34%72%26%-67%-61%68%99%-121%-1%82%50%33%-27%-84%-46%-81%-28%-52%-33%-90%-6%72%-1%3%78%-120%-67%33%108%33%82%26%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus"/>
+ <icon xmi:type="uml:Image" xmi:id="_12mboEMLEeKGIL695HkFYQ" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%112%0%0%0%103%8%0%0%0%0%-3%88%-103%-76%0%0%7%56%73%68%65%84%104%-127%-75%-102%123%80%21%85%28%-57%-9%-18%-67%92%121%-91%40%-124%38%70%64%-26%11%-33%-118%-29%115%124%84%-90%83%106%-91%-93%2%-115%83%-90%102%-90%-7%-56%-55%-41%-104%58%-26%-116%-40%56%-102%-64%-116%-88%53%101%62%-54%102%-14%81%26%86%102%-58%4%78%102%-120%14%89%62%72%5%-15%9%72%112%-111%-57%-62%-23%42%23%-10%123%118%-49%-18%-98%-35%-69%-2%-2%-29%-100%-33%-2%62%-105%-35%-13%123%-100%-33%57%2%-31%23%-23%-20%-87%-101%-116%-31%-102%-69%38%108%16%-127%31%-105%-38%78%16%-100%83%47%-46%-93%-43%-97%116%17%-59%94%-23%53%-10%3%-85%-34%116%9%15%36%-106%34%86%39%63%28%20%-109%-1%-77%29%-72%-92%-111%39%8%-29%-85%96%52%-75%105%116%90%-75%-51%-64%-116%22%62%-53%66%-28%101%121%-76%122%96%-45%-88%-72%-76%-34%86%-32%-31%80%-95%89%-66%-105%-121%47%61%-39%60%-22%78%-77%19%120%-90%-83%-52%19%-14%-28%-15%-62%56%121%56%116%-97%125%-64%-62%-98%-64%-21%120%93%-98%-88%26%12%19%109%-114%-39%5%44%123%22%-52%10%91%112%-22%-101%64%-104%-119%62%103%15%80%74%114%-128%-43%23%-53%113%-50%-25%22%62%-23%117%-51%22%-32%42%39%-40%-20%83%76%79%-106%-67%-128%-60%81%-58%65%-57%24%-72%-93%5%88%-20%-112%-81%-100%-66%-103%-128%-60%-55%30%-65%-127%-103%-32%16%66%-21%-29%106%-123%11%79%-125%-126%56%-73%-42%79%96%126%52%-104%11%-38%-55%82%-55%121%28%84%2%-42%-7%7%-68%-34%11%95%-40%-70%58%-90%-46%-63%-57%64%39%-28%115%127%-128%-98%-25%-112%55%-29%-66%-122%-38%118%-4%-52%97%-121%-83%3%-91%-23%-24%16%99%52%51%66%-3%-121%34%-24%69%-99%-78%12%92%-29%2%59%61%-117%-75%21%107%-26%-32%-101%-24%-10%-113%69%-32%23%24%70%-94%114%-11%126%90%-59%68%36%14%101%21%6%-58%-64%19%-83%-64%70%-85%31%-12%120%-124%-108%12%69%-30%-72%50%11%64%72%61%-34%-46%-30%-45%6%125%32%-71%26%15%-22%-30%76%-83%-11%-91%13%-68%-35%7%127%-14%74%-74%67%-96%-28%70%-127%126%-64%7%-110%73%-96%-121%-118%-111%111%104%-2%96%-112%-93%97%-16%68%96%-70%73%-32%76%116%-120%81%-9%56%120%-124%-20%13%-126%103%66%-65%50%5%92%-113%14%-47%-11%10%23%-113%-44%111%-62%-68%18%-98%101%2%-72%-41%13%79%70%-98%-26%-29%121%-35%113%41%126%-121%-40%-13%-36%-64%-109%-24%16%-63%-103%-68%60%66%42%95%67%98%127%86%-88%96%1%11%48%67%56%-73%25%57%4%74%-39%88%36%14%47%-27%2%-106%80%14%-79%-62%-40%33%80%-118%-6%-31%-61%83%-85%84%10%106%-96%-12%18%46%-48%100%-11%35%-6%-110%31%11%79%59%22%-87%-36%81%13%-100%-117%-111%127%-104%118%-116%-46%-110%19%88%-61%6%108%52%4%110%70%-121%-120%-27%116%8%74%14%-32%-110%11%82%-26%99%37%112%63%58%68%-60%31%22%120%-92%126%43%102%-103%-106%-118%-88%-81%0%-2%-114%-31%41%-8%59%43%60%66%106%87%99%0%104%-105%71%77%-46%-64%43%88%-127%9%105%90%1%-40%72%60%-77%-48%76%-89%34%77%96%101%95%84%92%96%84%-15%105%75%-7%-85%104%104%48%-106%-57%8%-84%-101%-128%106%-109%121%-73%-104%44%-71%51%4%77%-31%30%22%-127%-117%-47%1%19%-52%59%4%-54%-91%46%96%-53%49%67%-2%56%0%-92%98%125%76%-127%95%60%-17%-14%123%2%-84%57%87%49%-128%-103%-104%-51%-38%-24%-106%122%92%114%-76%53%-40%115%103%-88%-128%-25%-38%-64%-68%-21%-96%-103%-120%-83%33%-69%-15%63%8%57%-92%0%-34%-120%-63%-81%-68%-103%-77%67%-96%43%13%31%81%-7%56%-121%2%86%12%66%-34%60%-21%14%-127%82%-77%16%-115%-58%92%4%96%-35%100%-100%-102%-32%-113%67%-96%84%38%-94%-39%-34%55%101%-32%10%116%-120%-34%37%54%-15%-68%-7%120%36%18%71%120%-102%-128%59%-112%-41%94%111%103%96%86%-118%-79%-1%-31%72%-108%26%-127%-57%48%67%-124%-8%-17%16%40%-25%-79%60%118%-66%-1%16%120%1%-13%-105%75%-93%-100%-76%44%89%-24%110%-31%69%94%96%113%71%124%-49%41%118%56%4%37%-5%-63%29%-59%84%47%-112%-6%-82%-13%-52%-107%76%60%-46%-112%14%-18%56%64%18%-14%112%-63%-116%54%-20%122%88%-112%44%-8%100%125%37%97%62%-16%-30%-17%60%2%-34%5%-88%114%29%-21%-119%-48%94%-2%51%-20%-46%35%-32%-35%-22%15%-1%81%-40%95%68%-64%125%-28%86%27%66%-74%66%42%38%-127%125%71%-94%-41%45%54%-94%79%88%-84%-102%-76%-91%-10%61%92%-110%-61%-68%-91%-65%112%59%0%70%66%-71%55%74%124%-46%-80%5%19%70%-41%-85%-28%-127%-29%83%91%-84%-88%-117%-122%70%-52%-56%1%76%-119%17%15%-1%27%111%-92%-103%-126%-60%78%-73%108%-28%-3%22%1%-106%-125%15%18%31%-16%-2%112%-22%61%87%-40%-58%43%120%6%-20%-70%55%-111%38%32%41%-19%-122%-60%41%-4%-89%44%-6%82%58%2%-84%58%23%18%25%72%10%-80%37%35%44%-78%39%-68%121%-110%-48%-24%-53%77%-91%105%99%2%-2%19%-73%20%-62%70%59%2%120%-35%114%52%57%-80%-71%-8%-10%-43%52%71%-80%1%-23%-38%-25%127%0%104%-56%64%-121%-120%-109%79%115%-102%-86%-74%109%-72%13%13%57%-18%55%48%19%-33%89%120%-74%60%-47%92%-105%-82%68%98%100%30%-53%-120%9%57%-35%14%-84%5%-19%-127%25%-71%-14%-98%-123%121%42%-90%72%109%-60%-124%20%-10%0%91%1%41%56%37%3%-21%-88%-114%-57%0%127%-10%50%-9%-80%115%-19%-104%69%109%51%97%51%83%-47%-101%90%-57%60%-3%60%-74%120%94%71%67%99%-24%62%8%110%-41%-118%-30%80%-15%109%-85%1%64%90%-125%11%52%-31%6%61%75%-19%-128%-13%-15%4%66%88%109%113%-57%77%117%-82%-97%82%30%-27%-48%123%-4%-97%67%64%-41%-75%-35%-110%59%-2%68%117%-82%127%84%78%43%-70%24%123%48%59%90%-22%98%-100%-61%70%93%-32%103%-86%121%101%-97%-122%-38%98%69%-28%-104%-26%81%-67%54%-41%90%-75%-126%-86%19%-75%0%3%64%-76%-39%124%124%15%-5%18%-30%116%-58%-70%83%1%-21%38%82%59%41%115%-123%99%-19%108%92%117%35%24%-35%75%70%115%-81%18%-49%117%-123%-25%-71%111%4%120%-91%-98%-6%32%-35%-103%71%57%-116%126%-23%45%-20%120%-16%53%-12%125%-14%101%48%60%24%-59%-114%-57%-52%-114%112%123%36%46%-31%-34%127%-1%18%14%-113%-75%-44%88%-30%-58%61%111%-25%22%-50%124%76%29%-107%6%102%104%104%-79%-69%-6%-5%49%88%4%127%-51%-59%-93%-70%93%-30%50%-109%39%51%105%24%0%-62%127%-27%-32%81%53%-67%-112%100%-6%-20%105%57%-70%99%7%-29%-126%-68%6%119%97%-62%112%-19%-66%-124%22%80%-102%-122%-18%-40%-29%95%35%-32%-57%88%20%-59%-21%-88%107%-98%-82%-47%-57%-65%35%13%2%-64%1%60%119%-114%-52%-42%-47%-44%62%63%-92%-49%-13%18%43%-11%120%39%35%65%53%84%119%-111%-23%-100%-112%-46%-3%-24%-7%58%1%-32%114%103%80%12%-40%-84%-57%-45%61%3%-50%69%71%118%-90%104%22%-28%119%71%-127%-98%-72%80%-33%109%117%79%-71%-113%96%62%14%-38%-87%-111%-113%-85%-88%19%-82%-119%6%-101%33%-3%-117%3%25%-72%-10%90%-79%-113%-39%-22%-105%-95%7%13%49%-38%-18%25%92%-115%88%-117%-25%52%109%-103%-7%120%43%54%-50%-30%12%27%117%6%64%-23%29%-4%-7%-99%24%-7%-8%80%75%80%-32%-120%73%70%-73%77%60%-44%9%-60%32%-43%11%59%-125%-103%37%100%-105%33%-49%-8%62%-51%93%-22%4%-30%21%69%62%46%-60%-30%-39%-99%-62%54%97%14%72%-82%117%71%-30%108%-86%91%92%54%26%-25%-34%-30%-23%36%115%-36%-119%58%-117%45%79%-9%-73%56%-75%1%121%-29%-54%-75%44%-104%4%-110%99%-104%-113%-57%-62%-65%113%37%6%38%-6%-23%-36%70%49%9%36%-69%-96%86%-23%12%123%-123%108%8%12%-86%-102%-34%31%32%-39%36%7%-128%104%-72%-69%-106%41%-13%-62%-114%-14%-15%56%-127%-46%-30%-26%0%48%6%-118%-37%-13%-51%-25%75%-116%-102%-34%47%-96%55%94%-6%-14%-79%115%55%-116%-42%-114%-9%-15%-60%85%-36%-115%15%-34%-5%-91%37%-109%26%-119%115%-88%-22%-35%87%-88%-119%-17%62%-126%43%-69%82%90%127%-105%-69%-25%94%-123%-27%-53%-55%-34%72%26%-67%-61%68%99%-121%-1%82%50%33%-27%-84%-46%-81%-28%-52%-33%-90%-6%72%-1%3%78%-120%-67%33%108%33%82%26%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_1FxlEH-QEeOtkrzuMiGEow" name="Please update derived elements"/>
+ <packagedElement xmi:type="uml:Package" xmi:id="_HPLkIDMYEeWoDfId-zdVpA" name="interfaceBased">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_FryEELnZEeCxXoyQxQ47PQ" annotatedElement="_Wtq4sFDlEd6cwecVIgl9nw">
+ <body>Simple provision of typing interface as provided interface</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_K17NsLnZEeCxXoyQxQ47PQ" annotatedElement="_Wtrfw1DlEd6cwecVIgl9nw">
+ <body>Simple provision of typing interface as required interface</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_PxzR0LnZEeCxXoyQxQ47PQ" annotatedElement="__nMrwLqNEd-SedGzMDDkww">
+ <body>CORBA asynchronous messaging (AMI): Provision of poller variant of typing interface. Allows client to continue without waiting for the result</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_l49WMLnZEeCxXoyQxQ47PQ" annotatedElement="__nMrwLqNEd-SedGzMDDkww _AQZZwLqOEd-SedGzMDDkww">
+ <body>CORBA asynchronous messaging (AMI): Provision of callback variant of typing interface. Allows client Allows client to continue without waiting for the result</body>
+ </ownedComment>
+ <ownedTemplateSignature xmi:type="uml:TemplateSignature" xmi:id="_OwA4UDMYEeWoDfId-zdVpA" parameter="_QqFYUDMYEeWoDfId-zdVpA">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_QqFYUDMYEeWoDfId-zdVpA" parameteredElement="_d9RssDMYEeWoDfId-zdVpA"/>
+ </ownedTemplateSignature>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_Wtq4sFDlEd6cwecVIgl9nw" name="ProvideInterface">
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="__77G8DPdEeWoDfId-zdVpA" client="_Wtq4sFDlEd6cwecVIgl9nw" supplier="_d9RssDMYEeWoDfId-zdVpA" contract="_d9RssDMYEeWoDfId-zdVpA"/>
+ <icon xmi:type="uml:Image" xmi:id="__3j28DixEeGiupyIkgMHVw" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%119%0%0%0%92%8%3%0%0%0%99%-116%-38%77%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-43%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-103%-103%-103%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%43%43%43%39%39%39%35%35%35%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%-68%-68%-68%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%120%120%120%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%-43%-43%-43%34%34%34%-47%-47%-47%30%30%30%-51%-51%-51%26%26%26%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-71%82%-104%50%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%4%-59%73%68%65%84%104%-127%-59%-102%109%91%-30%58%16%-122%11%-118%40%-88%108%-83%2%-53%-117%93%123%4%-75%-20%110%53%-83%69%-91%-108%30%20%-1%-1%79%58%-107%-77%72%38%77%-109%73%-126%-41%62%95%-55%-52%77%94%-102%-52%76%98%-111%29%104%-2%-74%26%-115%-22%-29%81%-27%-83%31%35%77%44%51%98%-68%58%60%-19%120%22%-91%-27%-76%57%-70%-8%90%-18%-62%127%6%-56%-83%58%-65%-34%-61%47%-30%94%28%-76%-7%-52%63%122%109%-4%-5%5%-36%-59%73%73%79%105%-75%43%59%-26%14%78%-28%-48%-75%-70%-29%-78%-31%-42%-32%94%96%-87%107%-14%96%71%-36%-80%-18%42%96%115%5%-50%46%-72%-117%-82%26%53%-41%-16%-38%-100%-69%127%-91%-116%-51%-43%-116%-52%-72%-15%-67%14%53%87%123%102%-62%117%94%52%-79%-106%-27%-78%-53%75%-127%-101%-88%79%45%5%102%-66%101%60%119%-66%44%117%58%124%-71%15%38%-66%-1%59%-104%-106%-73%-15%-58%122%-36%-92%-60%101%-89%89%-95%63%-108%120%-32%79%75%-42%94%85%-121%-21%100%60%87%-39%36%-31%-76%-75%111%-98%-72%61%-2%-95%-50%-115%121%115%43%-40%127%23%15%-100%-3%-37%-19%41%115%91%69%47%-35%-107%-48%34%-31%-20%-90%-53%-19%-116%-32%-72%-11%-30%127%-81%75%14%88%66%86%-33%11%86%45%53%-18%-96%48%104%47%-123%-115%-128%-93%-8%119%1%92%87%-31%-38%25%107%-34%-112%118%-10%127%-115%-39%51%-60%-21%43%112%27%-84%113%13%71%-51%-43%103%-65%-66%78%-120%-26%-10%-104%81%-10%-86%114%-101%79%37%-20%88%-43%-48%-36%103%3%44%33%51%-90%-57%-18%5%-110%59%102%-2%-16%88%106%1%-107%48%115%28%32%-71%41%52%-13%21%-79%-124%92%-62%121%-14%18%20%-73%2%-79%-33%-112%43%-103%-42%29%116%-47%68%113%97%-108%-4%-54%13%-106%36%10%-65%1%31%87%14%-126%-5%6%-1%-21%72%3%-101%-81%45%120%66%77%16%-36%0%88%60%106%97%-39%-111%-50%-28%-36%8%44%70%-113%119%-22%97%20%-62%-59%121%41%-27%94%-125%-10%-57%-102%88%-10%99%12%-92%92%120%-2%45%-76%-71%33%-40%61%-36%80%-62%13%-63%48%-73%-124%109%-59%58%0%29%-24%75%-72%125%-48%-102%23%-9%99%-27%-128%-51%-29%78%-62%5%-21%-48%45%70%-3%10%2%51%54%-107%112%31%-103%-43%96%-96%17%-19%-22%42%18%115%95%-23%-58%122%123%-58%70%51%-72%66%-123%92%27%-76%-59%-124%54%2%-127%-120%-76%-14%-121%27%-49%120%-86%-46%77%51%51%44%-36%-7%110%63%-72%-47%-92%-115%-88%86%-24%-18%-111%27%-127%47%-23%-34%66%-89%-46%13%67%46%56%80%-97%44%18%103%40%-84%-75%111%-56%-99%-45%-50%-50%45%-46%-60%97%13%-105%51%-77%-96%83%-117%12%-111%92%113%90%34%87%8%-71%9%18%107%-67%25%114%9%-19%-52%-77%46%-1%10%-41%-75%-20%50%14%43%65%-47%15%-91%-104%118%-106%-49%47%-74%106%-79%-21%117%85%45%3%49%58%48%-28%-10%104%103%-7%-9%75%30%112%-36%95%-122%-36%127%104%103%-45%-100%27%-6%-120%93%50%-1%-117%-122%92%-97%118%-42%92%-97%11%73%-19%-8%-119%39%80%39%27%26%114%65%-35%-95%38%60%7%35%-48%-31%-98%-88%-87%92%96%127%122%23%-97%-5%32%-20%-59%103%-37%60%-127%101%-107%-17%86%-62%-58%-57%116%91%-109%112%-110%-112%91%56%103%98%-18%30%-35%-40%-45%-55%-55%62%5%-14%-69%19%9%23%-100%93%70%3%-67%0%-98%-10%100%-7%2%8%-13%59%6%92%88%-101%-103%-53%-72%48%29%-44%-33%-94%29%-112%-119%102%-46%-4%8%-90%-65%-25%-38%92%-80%105%124%36%-64%-78%-4%55%3%6%-17%-102%88%7%6%23%115%57%-9%16%24%100%-102%-87%10%-100%-82%103%34%-25%-62%21%-67%46%17%-88%-117%-119%45%-10%17%92%-72%-83%90%94%-55%-11%-105%80%76%125%115%25%97%-72%-16%-61%-77%-78%51%117%46%83%-119%94%111%3%-14%-70%-39%41%-76%106%41%23%-80%-104%-14%-43%-48%-58%113%7%-48%76%57%29%29%49%-10%119%4%-57%37%108%-11%-6%72%9%91%101%-126%-118%52%-62%114%-49%-40%-56%30%91%-11%-26%97%55%-31%63%-90%-18%-67%-49%-104%90%15%-24%-49%-72%112%49%-15%64%-16%92%-90%-66%-104%-85%-115%43%-96%21%-17%49%95%55%79%29%80%-9%26%78%-31%-82%-52%-67%65%-104%-11%82%-42%108%-101%100%-31%-18%113%126%20%35%-50%-87%-84%-53%118%-77%104%-12%-13%-13%87%-28%-67%-107%95%112%97%121%13%-47%-13%-112%-88%-58%-71%79%-100%110%23%36%-10%126%48%40%122%-79%-68%-96%-84%112%-24%-44%121%-73%-104%93%123%-37%2%-53%13%-7%-113%24%-38%7%-59%42%-113%125%125%-54%77%4%50%58%62%67%-33%-61%-58%-36%59%-50%92%105%112%115%-71%-15%24%-9%-85%71%101%-49%88%-106%96%65%-32%-17%-99%-29%105%-119%-61%-11%-112%-89%-23%75%-102%-118%94%88%64%-84%-54%61%123%-120%76%-32%-72%-22%50%-117%80%-23%61%-61%-111%54%-10%-23%-116%113%-91%-10%126%-93%112%-49%-120%84%113%71%87%124%55%50%19%63%126%-30%107%-56%-119%127%85%-33%-55%68%13%84%-78%76%-21%-111%87%80%85%127%-113%52%127%-106%-93%40%45%-7%85%122%-99%-9%87%123%-27%-81%52%88%93%29%-39%124%31%90%-17%-66%-94%-101%-30%-43%61%-105%-38%40%77%33%53%-33%-71%-123%99%-7%104%103%126%73%95%13%-72%-71%-110%-119%-88%-45%110%32%-82%-17%25%-67%-97%-20%-33%-74%-72%31%-12%-7%-31%74%22%9%25%-66%-37%36%97%127%-4%-13%-76%-67%-119%-4%-68%116%-38%-84%-83%4%-61%-69%51%-18%-89%102%-77%25%-10%-115%-22%-121%-2%3%52%51%-49%67%-105%-19%90%17%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%5%-46%-52%-24%92%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_17F1IDrSEeGKkdk54CX6PQ" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_17HDQDrSEeGKkdk54CX6PQ" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Sn5bADrXEeGMCcwsbpLuFA" key="image_name_key" value="IconProvideInterface"/>
+ </eAnnotations>
+ </icon>
+ <icon xmi:type="uml:Image" xmi:id="_ToC6oDl9EeGi35TadupI-A" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%84%0%0%0%101%8%3%0%0%0%-28%-109%52%-5%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-52%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%43%43%43%39%39%39%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%82%82%82%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%34%34%34%-47%-47%-47%30%30%30%-51%-51%-51%26%26%26%24%24%24%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-33%61%-9%-93%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%3%41%73%68%65%84%104%-127%-83%-39%125%91%-38%48%16%0%-16%-29%101%12%-76%32%32%69%17%-95%88%-107%23%-69%45%-43%90%-83%5%117%-32%-9%-1%78%-125%103%-37%67%47%109%115%-105%54%-9%119%-8%61%41%73%-109%-69%43%-120%-14%17%92%86%-105%86%56%-116%15%49%12%-83%-42%26%74%-126%-35%-54%106%8%82%84%74%-95%-125%-58%-117%12%30%98%84%28%125%-84%-74%-99%44%18%-96%87%20%125%-84%127%100%-117%0%83%81%12%85%-112%0%-61%98%-24%-83%-126%4%120%42%-126%-66%61%-87%72%-128%7%125%-44%-97%79%-43%38%-52%-75%-47%-2%25%65%2%-72%-70%-24%104%67%-102%-80%-43%68%107%57%59%19%69%-92%-121%46%25%36%-128%-81%-123%54%115%-99%-15%-85%-41%-88%110%15%81%-83%-51%-123%6%-22%63%100%-125%-45%-50%-3%-91%52%-108%-113%-98%100%-110%-81%-75%94%122%40%27%-99%103%-111%-42%58%115%44%23%-67%-31%-109%108%116%-108%-34%75%-101%93%-18%104%30%-38%77%-17%-7%102%-112%63%-100%-121%-2%72%-19%-95%47%-43%112%22%122%39%-101%118%-92%28%-49%65%-93%-119%100%-122%-118%71%-25%-94%-14%-61%119%8%-109%-125%110%37%-13%-52%-89%126%65%-93%-66%116%-81%15%-87%121%114%-48%26%54%63%-6%-28%47%104%-44%-57%91%-44%-71%-94%77%26%-67%-59%19%-99%51%76%26%-75%-15%102%34%23%-119%-125%86%-16%-61%-65%113%76%18%-75%16%-38%98%-103%20%-38%67%-89%-45%-17%-82%17%20%47%-45%61%-49%-92%-48%48%105%-114%-103%19%37%-48%1%-102%104%-109%105%18%-88%-117%-48%-127%25%-44%67%123%-108%107%18%104%-100%68%-17%-52%-96%17%122%-6%-116%11%-66%8%58%75%-102%54%-37%84%-93%40%-127%96%-66%77%36%-118%-18%-111%-118%33%-12%60%-119%50%14%103%22%58%78%-104%19%-66%-87%68%-125%-126%-21%116%64%-3%-111%91%91%36%-93%-27%-3%-115%95%73%-12%84%11%29%93%0%39%60%29%-12%-115%42%-117%-2%-59%82%7%125%-26%-103%-80%-48%65%57%69%-116%54%-54%13%45%-108%-7%-105%-62%119%29%-12%39%19%-43%90%-3%-63%-104%6%15%-47%-42%65%69%-60%91%127%-51%55%74%116%-81%-73%-57%-72%-114%-114%-15%-103%64%29%77%52%55%-48%5%-51%-53%120%104%20%85%-93%51%67%-24%-73%36%-70%50%-124%-94%-108%111%104%8%-19%-93%-11%103%-25%18%-60%-67%-113%106%-120%-70%33%116%-107%68%-49%13%-95%51%-12%-4%-20%77%-91%70%-5%-24%96%100%-33%-4%68%126%-118%58%112%83%51%-7%-87%-108%75%114%-49%84%2%13%-48%113%-53%77%-91%-87%-22%-28%20%77%-107%-7%86%81%-24%14%-95%78%94%43%70%15%-107%42%-66%23%35%21%-97%-76%85%121%-41%63%93%69%-93%20%29%-100%107%19%-88%92%70%27%-87%-9%83%-99%-119%11%19%-99%9%113%-123%81%70%121%-50%-23%-10%120%-110%-6%108%-96%-37%35%6%-87%-66%20%81%-3%-80%58%104%-82%-124%-62%69%-7%14%90%-6%15%-128%-119%-14%110%-27%-95%65%44%-85%112%82%-70%43%41%46%-45%-55%-31%38%-65%-80%-30%118%122%-85%41%116%-97%-77%-107%-20%-12%74%-119%-59%-1%-80%-34%-53%-95%57%93%126%-69%94%-90%123%46%-35%-41%-57%112%-98%23%35%-23%29%51%-13%69%98%106%91%75%-41%-35%109%-65%92%-9%74%19%21%-115%92%-11%24%15%-70%40%-25%43%-113%-89%-115%-118%119%-14%123%-44%-87%62%42%122%29%2%13%11%-96%-5%13%-85%-82%-68%-118%-95%34%82%78%-42%46%-122%10%113%-93%-8%103%-29%-94%-88%-22%11%111%113%84%-59%-106%64%-9%-73%108%-59%-54%-36%-75%-91%-48%125%-12%-22%97%-38%13%74%-94%-5%8%118%45%27%-61%81%121%-12%16%-2%-70%-46%-16%-38%97%24%-57%113%24%-74%-9%71%-31%31%12%-33%-99%51%8%-119%86%-81%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%45%-25%121%64%-90%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2ypIMDrSEeGKkdk54CX6PQ" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2ypvQDrSEeGKkdk54CX6PQ" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UMxHEDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconConjProvideInterface"/>
+ </eAnnotations>
+ </icon>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_Wtrfw1DlEd6cwecVIgl9nw" name="UseInterface">
+ <icon xmi:type="uml:Image" xmi:id="_FzdNoDiyEeGiupyIkgMHVw" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%84%0%0%0%101%8%3%0%0%0%-28%-109%52%-5%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-52%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%43%43%43%39%39%39%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%82%82%82%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%34%34%34%-47%-47%-47%30%30%30%-51%-51%-51%26%26%26%24%24%24%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-33%61%-9%-93%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%3%41%73%68%65%84%104%-127%-83%-39%125%91%-38%48%16%0%-16%-29%101%12%-76%32%32%69%17%-95%88%-107%23%-69%45%-43%90%-83%5%117%-32%-9%-1%78%-125%103%-37%67%47%109%115%-105%54%-9%119%-8%61%41%73%-109%-69%43%-120%-14%17%92%86%-105%86%56%-116%15%49%12%-83%-42%26%74%-126%-35%-54%106%8%82%84%74%-95%-125%-58%-117%12%30%98%84%28%125%-84%-74%-99%44%18%-96%87%20%125%-84%127%100%-117%0%83%81%12%85%-112%0%-61%98%-24%-83%-126%4%120%42%-126%-66%61%-87%72%-128%7%125%-44%-97%79%-43%38%-52%-75%-47%-2%25%65%2%-72%-70%-24%104%67%-102%-80%-43%68%107%57%59%19%69%-92%-121%46%25%36%-128%-81%-123%54%115%-99%-15%-85%-41%-88%110%15%81%-83%-51%-123%6%-22%63%100%-125%-45%-50%-3%-91%52%-108%-113%-98%100%-110%-81%-75%94%122%40%27%-99%103%-111%-42%58%115%44%23%-67%-31%-109%108%116%-108%-34%75%-101%93%-18%104%30%-38%77%-17%-7%102%-112%63%-100%-121%-2%72%-19%-95%47%-43%112%22%122%39%-101%118%-92%28%-49%65%-93%-119%100%-122%-118%71%-25%-94%-14%-61%119%8%-109%-125%110%37%-13%-52%-89%126%65%-93%-66%116%-81%15%-87%121%114%-48%26%54%63%-6%-28%47%104%-44%-57%91%-44%-71%-94%77%26%-67%-59%19%-99%51%76%26%-75%-15%102%34%23%-119%-125%86%-16%-61%-65%113%76%18%-75%16%-38%98%-103%20%-38%67%-89%-45%-17%-82%17%20%47%-45%61%-49%-92%-48%48%105%-114%-103%19%37%-48%1%-102%104%-109%105%18%-88%-117%-48%-127%25%-44%67%123%-108%107%18%104%-100%68%-17%-52%-96%17%122%-6%-116%11%-66%8%58%75%-102%54%-37%84%-93%40%-127%96%-66%77%36%-118%-18%-111%-118%33%-12%60%-119%50%14%103%22%58%78%-104%19%-66%-87%68%-125%-126%-21%116%64%-3%-111%91%91%36%-93%-27%-3%-115%95%73%-12%84%11%29%93%0%39%60%29%-12%-115%42%-117%-2%-59%82%7%125%-26%-103%-80%-48%65%57%69%-116%54%-54%13%45%-108%-7%-105%-62%119%29%-12%39%19%-43%90%-3%-63%-104%6%15%-47%-42%65%69%-60%91%127%-51%55%74%116%-81%-73%-57%-72%-114%-114%-15%-103%64%29%77%52%55%-48%5%-51%-53%120%104%20%85%-93%51%67%-24%-73%36%-70%50%-124%-94%-108%111%104%8%-19%-93%-11%103%-25%18%-60%-67%-113%106%-120%-70%33%116%-107%68%-49%13%-95%51%-12%-4%-20%77%-91%70%-5%-24%96%100%-33%-4%68%126%-118%58%112%83%51%-7%-87%-108%75%114%-49%84%2%13%-48%113%-53%77%-91%-87%-22%-28%20%77%-107%-7%86%81%-24%14%-95%78%94%43%70%15%-107%42%-66%23%35%21%-97%-76%85%121%-41%63%93%69%-93%20%29%-100%107%19%-88%92%70%27%-87%-9%83%-99%-119%11%19%-99%9%113%-123%81%70%121%-50%-23%-10%120%-110%-6%108%-96%-37%35%6%-87%-66%20%81%-3%-80%58%104%-82%-124%-62%69%-7%14%90%-6%15%-128%-119%-14%110%-27%-95%65%44%-85%112%82%-70%43%41%46%-45%-55%-31%38%-65%-80%-30%118%122%-85%41%116%-97%-77%-107%-20%-12%74%-119%-59%-1%-80%-34%-53%-95%57%93%126%-69%94%-90%123%46%-35%-41%-57%112%-98%23%35%-23%29%51%-13%69%98%106%91%75%-41%-35%109%-65%92%-9%74%19%21%-115%92%-11%24%15%-70%40%-25%43%-113%-89%-115%-118%119%-14%123%-44%-87%62%42%122%29%2%13%11%-96%-5%13%-85%-82%-68%-118%-95%34%82%78%-42%46%-122%10%113%-93%-8%103%-29%-94%-88%-22%11%111%113%84%-59%-106%64%-9%-73%108%-59%-54%-36%-75%-91%-48%125%-12%-22%97%-38%13%74%-94%-5%8%118%45%27%-61%81%121%-12%16%-2%-70%-46%-16%-38%97%24%-57%113%24%-74%-9%71%-31%31%12%-33%-99%51%8%-119%86%-81%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%45%-25%121%64%-90%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_z5Ar0DrWEeGMCcwsbpLuFA" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_z5BS4DrWEeGMCcwsbpLuFA" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BoRRIDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconUseInterface"/>
+ </eAnnotations>
+ </icon>
+ <icon xmi:type="uml:Image" xmi:id="_Yy8SMDl9EeGi35TadupI-A" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%119%0%0%0%92%8%3%0%0%0%99%-116%-38%77%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-43%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-103%-103%-103%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%43%43%43%39%39%39%35%35%35%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%-68%-68%-68%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%120%120%120%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%-43%-43%-43%34%34%34%-47%-47%-47%30%30%30%-51%-51%-51%26%26%26%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-71%82%-104%50%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%4%-59%73%68%65%84%104%-127%-59%-102%109%91%-30%58%16%-122%11%-118%40%-88%108%-83%2%-53%-117%93%123%4%-75%-20%110%53%-83%69%-91%-108%30%20%-1%-1%79%58%-107%-77%72%38%77%-109%73%-126%-41%62%95%-55%-52%77%94%-102%-52%76%98%-111%29%104%-2%-74%26%-115%-22%-29%81%-27%-83%31%35%77%44%51%98%-68%58%60%-19%120%22%-91%-27%-76%57%-70%-8%90%-18%-62%127%6%-56%-83%58%-65%-34%-61%47%-30%94%28%-76%-7%-52%63%122%109%-4%-5%5%-36%-59%73%73%79%105%-75%43%59%-26%14%78%-28%-48%-75%-70%-29%-78%-31%-42%-32%94%96%-87%107%-14%96%71%-36%-80%-18%42%96%115%5%-50%46%-72%-117%-82%26%53%-41%-16%-38%-100%-69%127%-91%-116%-51%-43%-116%-52%-72%-15%-67%14%53%87%123%102%-62%117%94%52%-79%-106%-27%-78%-53%75%-127%-101%-88%79%45%5%102%-66%101%60%119%-66%44%117%58%124%-71%15%38%-66%-1%59%-104%-106%-73%-15%-58%122%-36%-92%-60%101%-89%89%-95%63%-108%120%-32%79%75%-42%94%85%-121%-21%100%60%87%-39%36%-31%-76%-75%111%-98%-72%61%-2%-95%-50%-115%121%115%43%-40%127%23%15%-100%-3%-37%-19%41%115%91%69%47%-35%-107%-48%34%-31%-20%-90%-53%-19%-116%-32%-72%-11%-30%127%-81%75%14%88%66%86%-33%11%86%45%53%-18%-96%48%104%47%-123%-115%-128%-93%-8%119%1%92%87%-31%-38%25%107%-34%-112%118%-10%127%-115%-39%51%-60%-21%43%112%27%-84%113%13%71%-51%-43%103%-65%-66%78%-120%-26%-10%-104%81%-10%-86%114%-101%79%37%-20%88%-43%-48%-36%103%3%44%33%51%-90%-57%-18%5%-110%59%102%-2%-16%88%106%1%-107%48%115%28%32%-71%41%52%-13%21%-79%-124%92%-62%121%-14%18%20%-73%2%-79%-33%-112%43%-103%-42%29%116%-47%68%113%97%-108%-4%-54%13%-106%36%10%-65%1%31%87%14%-126%-5%6%-1%-21%72%3%-101%-81%45%120%66%77%16%-36%0%88%60%106%97%-39%-111%-50%-28%-36%8%44%70%-113%119%-22%97%20%-62%-59%121%41%-27%94%-125%-10%-57%-102%88%-10%99%12%-92%92%120%-2%45%-76%-71%33%-40%61%-36%80%-62%13%-63%48%-73%-124%109%-59%58%0%29%-24%75%-72%125%-48%-102%23%-9%99%-27%-128%-51%-29%78%-62%5%-21%-48%45%70%-3%10%2%51%54%-107%112%31%-103%-43%96%-96%17%-19%-22%42%18%115%95%-23%-58%122%123%-58%70%51%-72%66%-123%92%27%-76%-59%-124%54%2%-127%-120%-76%-14%-121%27%-49%120%-86%-46%77%51%51%44%-36%-7%110%63%-72%-47%-92%-115%-88%86%-24%-18%-111%27%-127%47%-23%-34%66%-89%-46%13%67%46%56%80%-97%44%18%103%40%-84%-75%111%-56%-99%-45%-50%-50%45%-46%-60%97%13%-105%51%-77%-96%83%-117%12%-111%92%113%90%34%87%8%-71%9%18%107%-67%25%114%9%-19%-52%-77%46%-1%10%-41%-75%-20%50%14%43%65%-47%15%-91%-104%118%-106%-49%47%-74%106%-79%-21%117%85%45%3%49%58%48%-28%-10%104%103%-7%-9%75%30%112%-36%95%-122%-36%127%104%103%-45%-100%27%-6%-120%93%50%-1%-117%-122%92%-97%118%-42%92%-97%11%73%-19%-8%-119%39%80%39%27%26%114%65%-35%-95%38%60%7%35%-48%-31%-98%-88%-87%92%96%127%122%23%-97%-5%32%-20%-59%103%-37%60%-127%101%-107%-17%86%-62%-58%-57%116%91%-109%112%-110%-112%91%56%103%98%-18%30%-35%-40%-45%-55%-55%62%5%-14%-69%19%9%23%-100%93%70%3%-67%0%-98%-10%100%-7%2%8%-13%59%6%92%88%-101%-103%-53%-72%48%29%-44%-33%-94%29%-112%-119%102%-46%-4%8%-90%-65%-25%-38%92%-80%105%124%36%-64%-78%-4%55%3%6%-17%-102%88%7%6%23%115%57%-9%16%24%100%-102%-87%10%-100%-82%103%34%-25%-62%21%-67%46%17%-88%-117%-119%45%-10%17%92%-72%-83%90%94%-55%-11%-105%80%76%125%115%25%97%-72%-16%-61%-77%-78%51%117%46%83%-119%94%111%3%-14%-70%-39%41%-76%106%41%23%-80%-104%-14%-43%-48%-58%113%7%-48%76%57%29%29%49%-10%119%4%-57%37%108%-11%-6%72%9%91%101%-126%-118%52%-62%114%-49%-40%-56%30%91%-11%-26%97%55%-31%63%-90%-18%-67%-49%-104%90%15%-24%-49%-72%112%49%-15%64%-16%92%-90%-66%-104%-85%-115%43%-96%21%-17%49%95%55%79%29%80%-9%26%78%-31%-82%-52%-67%65%-104%-11%82%-42%108%-101%100%-31%-18%113%126%20%35%-50%-87%-84%-53%118%-77%104%-12%-13%-13%87%-28%-67%-107%95%112%97%121%13%-47%-13%-112%-88%-58%-71%79%-100%110%23%36%-10%126%48%40%122%-79%-68%-96%-84%112%-24%-44%121%-73%-104%93%123%-37%2%-53%13%-7%-113%24%-38%7%-59%42%-113%125%125%-54%77%4%50%58%62%67%-33%-61%-58%-36%59%-50%92%105%112%115%-71%-15%24%-9%-85%71%101%-49%88%-106%96%65%-32%-17%-99%-29%105%-119%-61%-11%-112%-89%-23%75%-102%-118%94%88%64%-84%-54%61%123%-120%76%-32%-72%-22%50%-117%80%-23%61%-61%-111%54%-10%-23%-116%113%-91%-10%126%-93%112%-49%-120%84%113%71%87%124%55%50%19%63%126%-30%107%-56%-119%127%85%-33%-55%68%13%84%-78%76%-21%-111%87%80%85%127%-113%52%127%-106%-93%40%45%-7%85%122%-99%-9%87%123%-27%-81%52%88%93%29%-39%124%31%90%-17%-66%-94%-101%-30%-43%61%-105%-38%40%77%33%53%-33%-71%-123%99%-7%104%103%126%73%95%13%-72%-71%-110%-119%-88%-45%110%32%-82%-17%25%-67%-97%-20%-33%-74%-72%31%-12%-7%-31%74%22%9%25%-66%-37%36%97%127%-4%-13%-76%-67%-119%-4%-68%116%-38%-84%-83%4%-61%-69%51%-18%-89%102%-77%25%-10%-115%-22%-121%-2%3%52%51%-49%67%-105%-19%90%17%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%5%-46%-52%-24%92%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0rGQEDrWEeGMCcwsbpLuFA" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0rHeMDrWEeGMCcwsbpLuFA" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_C7NfsDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconConjUseInterface"/>
+ </eAnnotations>
+ </icon>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="__nMrwLqNEd-SedGzMDDkww" name="AMIpoll">
+ <icon xmi:type="uml:Image" xmi:id="_JXZ1gDiyEeGiupyIkgMHVw" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%84%0%0%0%101%8%3%0%0%0%-28%-109%52%-5%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-52%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%43%43%43%39%39%39%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%82%82%82%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%34%34%34%-47%-47%-47%30%30%30%-51%-51%-51%26%26%26%24%24%24%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-33%61%-9%-93%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%3%41%73%68%65%84%104%-127%-83%-39%125%91%-38%48%16%0%-16%-29%101%12%-76%32%32%69%17%-95%88%-107%23%-69%45%-43%90%-83%5%117%-32%-9%-1%78%-125%103%-37%67%47%109%115%-105%54%-9%119%-8%61%41%73%-109%-69%43%-120%-14%17%92%86%-105%86%56%-116%15%49%12%-83%-42%26%74%-126%-35%-54%106%8%82%84%74%-95%-125%-58%-117%12%30%98%84%28%125%-84%-74%-99%44%18%-96%87%20%125%-84%127%100%-117%0%83%81%12%85%-112%0%-61%98%-24%-83%-126%4%120%42%-126%-66%61%-87%72%-128%7%125%-44%-97%79%-43%38%-52%-75%-47%-2%25%65%2%-72%-70%-24%104%67%-102%-80%-43%68%107%57%59%19%69%-92%-121%46%25%36%-128%-81%-123%54%115%-99%-15%-85%-41%-88%110%15%81%-83%-51%-123%6%-22%63%100%-125%-45%-50%-3%-91%52%-108%-113%-98%100%-110%-81%-75%94%122%40%27%-99%103%-111%-42%58%115%44%23%-67%-31%-109%108%116%-108%-34%75%-101%93%-18%104%30%-38%77%-17%-7%102%-112%63%-100%-121%-2%72%-19%-95%47%-43%112%22%122%39%-101%118%-92%28%-49%65%-93%-119%100%-122%-118%71%-25%-94%-14%-61%119%8%-109%-125%110%37%-13%-52%-89%126%65%-93%-66%116%-81%15%-87%121%114%-48%26%54%63%-6%-28%47%104%-44%-57%91%-44%-71%-94%77%26%-67%-59%19%-99%51%76%26%-75%-15%102%34%23%-119%-125%86%-16%-61%-65%113%76%18%-75%16%-38%98%-103%20%-38%67%-89%-45%-17%-82%17%20%47%-45%61%-49%-92%-48%48%105%-114%-103%19%37%-48%1%-102%104%-109%105%18%-88%-117%-48%-127%25%-44%67%123%-108%107%18%104%-100%68%-17%-52%-96%17%122%-6%-116%11%-66%8%58%75%-102%54%-37%84%-93%40%-127%96%-66%77%36%-118%-18%-111%-118%33%-12%60%-119%50%14%103%22%58%78%-104%19%-66%-87%68%-125%-126%-21%116%64%-3%-111%91%91%36%-93%-27%-3%-115%95%73%-12%84%11%29%93%0%39%60%29%-12%-115%42%-117%-2%-59%82%7%125%-26%-103%-80%-48%65%57%69%-116%54%-54%13%45%-108%-7%-105%-62%119%29%-12%39%19%-43%90%-3%-63%-104%6%15%-47%-42%65%69%-60%91%127%-51%55%74%116%-81%-73%-57%-72%-114%-114%-15%-103%64%29%77%52%55%-48%5%-51%-53%120%104%20%85%-93%51%67%-24%-73%36%-70%50%-124%-94%-108%111%104%8%-19%-93%-11%103%-25%18%-60%-67%-113%106%-120%-70%33%116%-107%68%-49%13%-95%51%-12%-4%-20%77%-91%70%-5%-24%96%100%-33%-4%68%126%-118%58%112%83%51%-7%-87%-108%75%114%-49%84%2%13%-48%113%-53%77%-91%-87%-22%-28%20%77%-107%-7%86%81%-24%14%-95%78%94%43%70%15%-107%42%-66%23%35%21%-97%-76%85%121%-41%63%93%69%-93%20%29%-100%107%19%-88%92%70%27%-87%-9%83%-99%-119%11%19%-99%9%113%-123%81%70%121%-50%-23%-10%120%-110%-6%108%-96%-37%35%6%-87%-66%20%81%-3%-80%58%104%-82%-124%-62%69%-7%14%90%-6%15%-128%-119%-14%110%-27%-95%65%44%-85%112%82%-70%43%41%46%-45%-55%-31%38%-65%-80%-30%118%122%-85%41%116%-97%-77%-107%-20%-12%74%-119%-59%-1%-80%-34%-53%-95%57%93%126%-69%94%-90%123%46%-35%-41%-57%112%-98%23%35%-23%29%51%-13%69%98%106%91%75%-41%-35%109%-65%92%-9%74%19%21%-115%92%-11%24%15%-70%40%-25%43%-113%-89%-115%-118%119%-14%123%-44%-87%62%42%122%29%2%13%11%-96%-5%13%-85%-82%-68%-118%-95%34%82%78%-42%46%-122%10%113%-93%-8%103%-29%-94%-88%-22%11%111%113%84%-59%-106%64%-9%-73%108%-59%-54%-36%-75%-91%-48%125%-12%-22%97%-38%13%74%-94%-5%8%118%45%27%-61%81%121%-12%16%-2%-70%-46%-16%-38%97%24%-57%113%24%-74%-9%71%-31%31%12%-33%-99%51%8%-119%86%-81%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%45%-25%121%64%-90%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3DWg4DrWEeGMCcwsbpLuFA" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3DXH8DrWEeGMCcwsbpLuFA" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9f8J0DrWEeGMCcwsbpLuFA" key="image_name_key" value="IconAMIPoll"/>
+ </eAnnotations>
+ </icon>
+ <icon xmi:type="uml:Image" xmi:id="_3-hIoDrWEeGMCcwsbpLuFA" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%119%0%0%0%92%8%3%0%0%0%99%-116%-38%77%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-43%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-103%-103%-103%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%43%43%43%39%39%39%35%35%35%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%-68%-68%-68%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%120%120%120%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%-43%-43%-43%34%34%34%-47%-47%-47%30%30%30%-51%-51%-51%26%26%26%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-71%82%-104%50%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%4%-59%73%68%65%84%104%-127%-59%-102%109%91%-30%58%16%-122%11%-118%40%-88%108%-83%2%-53%-117%93%123%4%-75%-20%110%53%-83%69%-91%-108%30%20%-1%-1%79%58%-107%-77%72%38%77%-109%73%-126%-41%62%95%-55%-52%77%94%-102%-52%76%98%-111%29%104%-2%-74%26%-115%-22%-29%81%-27%-83%31%35%77%44%51%98%-68%58%60%-19%120%22%-91%-27%-76%57%-70%-8%90%-18%-62%127%6%-56%-83%58%-65%-34%-61%47%-30%94%28%-76%-7%-52%63%122%109%-4%-5%5%-36%-59%73%73%79%105%-75%43%59%-26%14%78%-28%-48%-75%-70%-29%-78%-31%-42%-32%94%96%-87%107%-14%96%71%-36%-80%-18%42%96%115%5%-50%46%-72%-117%-82%26%53%-41%-16%-38%-100%-69%127%-91%-116%-51%-43%-116%-52%-72%-15%-67%14%53%87%123%102%-62%117%94%52%-79%-106%-27%-78%-53%75%-127%-101%-88%79%45%5%102%-66%101%60%119%-66%44%117%58%124%-71%15%38%-66%-1%59%-104%-106%-73%-15%-58%122%-36%-92%-60%101%-89%89%-95%63%-108%120%-32%79%75%-42%94%85%-121%-21%100%60%87%-39%36%-31%-76%-75%111%-98%-72%61%-2%-95%-50%-115%121%115%43%-40%127%23%15%-100%-3%-37%-19%41%115%91%69%47%-35%-107%-48%34%-31%-20%-90%-53%-19%-116%-32%-72%-11%-30%127%-81%75%14%88%66%86%-33%11%86%45%53%-18%-96%48%104%47%-123%-115%-128%-93%-8%119%1%92%87%-31%-38%25%107%-34%-112%118%-10%127%-115%-39%51%-60%-21%43%112%27%-84%113%13%71%-51%-43%103%-65%-66%78%-120%-26%-10%-104%81%-10%-86%114%-101%79%37%-20%88%-43%-48%-36%103%3%44%33%51%-90%-57%-18%5%-110%59%102%-2%-16%88%106%1%-107%48%115%28%32%-71%41%52%-13%21%-79%-124%92%-62%121%-14%18%20%-73%2%-79%-33%-112%43%-103%-42%29%116%-47%68%113%97%-108%-4%-54%13%-106%36%10%-65%1%31%87%14%-126%-5%6%-1%-21%72%3%-101%-81%45%120%66%77%16%-36%0%88%60%106%97%-39%-111%-50%-28%-36%8%44%70%-113%119%-22%97%20%-62%-59%121%41%-27%94%-125%-10%-57%-102%88%-10%99%12%-92%92%120%-2%45%-76%-71%33%-40%61%-36%80%-62%13%-63%48%-73%-124%109%-59%58%0%29%-24%75%-72%125%-48%-102%23%-9%99%-27%-128%-51%-29%78%-62%5%-21%-48%45%70%-3%10%2%51%54%-107%112%31%-103%-43%96%-96%17%-19%-22%42%18%115%95%-23%-58%122%123%-58%70%51%-72%66%-123%92%27%-76%-59%-124%54%2%-127%-120%-76%-14%-121%27%-49%120%-86%-46%77%51%51%44%-36%-7%110%63%-72%-47%-92%-115%-88%86%-24%-18%-111%27%-127%47%-23%-34%66%-89%-46%13%67%46%56%80%-97%44%18%103%40%-84%-75%111%-56%-99%-45%-50%-50%45%-46%-60%97%13%-105%51%-77%-96%83%-117%12%-111%92%113%90%34%87%8%-71%9%18%107%-67%25%114%9%-19%-52%-77%46%-1%10%-41%-75%-20%50%14%43%65%-47%15%-91%-104%118%-106%-49%47%-74%106%-79%-21%117%85%45%3%49%58%48%-28%-10%104%103%-7%-9%75%30%112%-36%95%-122%-36%127%104%103%-45%-100%27%-6%-120%93%50%-1%-117%-122%92%-97%118%-42%92%-97%11%73%-19%-8%-119%39%80%39%27%26%114%65%-35%-95%38%60%7%35%-48%-31%-98%-88%-87%92%96%127%122%23%-97%-5%32%-20%-59%103%-37%60%-127%101%-107%-17%86%-62%-58%-57%116%91%-109%112%-110%-112%91%56%103%98%-18%30%-35%-40%-45%-55%-55%62%5%-14%-69%19%9%23%-100%93%70%3%-67%0%-98%-10%100%-7%2%8%-13%59%6%92%88%-101%-103%-53%-72%48%29%-44%-33%-94%29%-112%-119%102%-46%-4%8%-90%-65%-25%-38%92%-80%105%124%36%-64%-78%-4%55%3%6%-17%-102%88%7%6%23%115%57%-9%16%24%100%-102%-87%10%-100%-82%103%34%-25%-62%21%-67%46%17%-88%-117%-119%45%-10%17%92%-72%-83%90%94%-55%-11%-105%80%76%125%115%25%97%-72%-16%-61%-77%-78%51%117%46%83%-119%94%111%3%-14%-70%-39%41%-76%106%41%23%-80%-104%-14%-43%-48%-58%113%7%-48%76%57%29%29%49%-10%119%4%-57%37%108%-11%-6%72%9%91%101%-126%-118%52%-62%114%-49%-40%-56%30%91%-11%-26%97%55%-31%63%-90%-18%-67%-49%-104%90%15%-24%-49%-72%112%49%-15%64%-16%92%-90%-66%-104%-85%-115%43%-96%21%-17%49%95%55%79%29%80%-9%26%78%-31%-82%-52%-67%65%-104%-11%82%-42%108%-101%100%-31%-18%113%126%20%35%-50%-87%-84%-53%118%-77%104%-12%-13%-13%87%-28%-67%-107%95%112%97%121%13%-47%-13%-112%-88%-58%-71%79%-100%110%23%36%-10%126%48%40%122%-79%-68%-96%-84%112%-24%-44%121%-73%-104%93%123%-37%2%-53%13%-7%-113%24%-38%7%-59%42%-113%125%125%-54%77%4%50%58%62%67%-33%-61%-58%-36%59%-50%92%105%112%115%-71%-15%24%-9%-85%71%101%-49%88%-106%96%65%-32%-17%-99%-29%105%-119%-61%-11%-112%-89%-23%75%-102%-118%94%88%64%-84%-54%61%123%-120%76%-32%-72%-22%50%-117%80%-23%61%-61%-111%54%-10%-23%-116%113%-91%-10%126%-93%112%-49%-120%84%113%71%87%124%55%50%19%63%126%-30%107%-56%-119%127%85%-33%-55%68%13%84%-78%76%-21%-111%87%80%85%127%-113%52%127%-106%-93%40%45%-7%85%122%-99%-9%87%123%-27%-81%52%88%93%29%-39%124%31%90%-17%-66%-94%-101%-30%-43%61%-105%-38%40%77%33%53%-33%-71%-123%99%-7%104%103%126%73%95%13%-72%-71%-110%-119%-88%-45%110%32%-82%-17%25%-67%-97%-20%-33%-74%-72%31%-12%-7%-31%74%22%9%25%-66%-37%36%97%127%-4%-13%-76%-67%-119%-4%-68%116%-38%-84%-83%4%-61%-69%51%-18%-89%102%-77%25%-10%-115%-22%-121%-2%3%52%51%-49%67%-105%-19%90%17%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%5%-46%-52%-24%92%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_54LY8DrWEeGMCcwsbpLuFA" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_54MnEDrWEeGMCcwsbpLuFA" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ACEvYDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconConjAMIPoll"/>
+ </eAnnotations>
+ </icon>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_AQZZwLqOEd-SedGzMDDkww" name="AMIcallback">
+ <icon xmi:type="uml:Image" xmi:id="_KoY8QDiyEeGiupyIkgMHVw" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%72%0%0%0%104%8%3%0%0%0%101%-97%70%67%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-43%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-103%-103%-103%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%103%103%103%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%-34%-34%-34%43%43%43%39%39%39%35%35%35%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%-68%-68%-68%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%-43%-43%-43%34%34%34%-47%-47%-47%30%30%30%26%26%26%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-51%-46%-59%107%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%3%-13%73%68%65%84%88%-123%-75%-39%109%67%-86%48%20%0%-32%-39%53%75%-67%105%26%-23%-51%74%52%73%45%-13%-86%13%-13%37%-55%-105%-44%-1%-1%-109%-82%-70%13%6%-116%-77%-93%113%-49%-73%-28%-12%48%-74%113%-40%-128%80%116%12%55%-39%-4%116%78%-56%-14%-13%-6%-9%-13%40%120%-108%32%21%-69%121%85%39%82%52%-14%109%-65%-123%-124%-102%-9%36%20%-85%-92%125%44%84%-67%13%51%-5%-72%-33%30%7%117%-44%-52%62%-78%110%-93%-12%-48%-80%31%-19%16%82%40%98%-95%-30%-89%-12%111%-26%52%-105%-51%-68%79%-66%-91%-97%-26%51%28%100%23%-68%-50%-51%-82%-59%-123%84%47%-67%-50%-65%27%-95%-96%-116%-56%-81%-65%-7%-122%-37%62%119%-101%-107%-73%17%-48%-117%-37%23%70%-24%-102%-35%-66%-21%-22%33%-93%-63%115%51%-74%-30%104%-57%-30%71%23%90%72%-100%-76%-93%62%-36%-30%-121%-57%58%-56%-31%-89%-20%71%37%116%-71%-76%-47%64%57%-106%118%59%-116%-52%-56%-77%-116%50%12%-35%-16%6%-43%-12%109%126%0%-95%54%75%-54%65%-115%-50%-120%-127%-125%-96%-100%56%-101%-66%-43%101%8%26%-78%-79%-81%64%14%-91%31%-20%108%14%0%85%-7%20%-126%-95%36%-53%106%6%-96%-46%-52%-117%95%-18%-48%66%-15%-59%-78%82%62%40%41%-33%-42%34%28%24%-78%89%86%90%-122%54%10%-122%-112%80%-103%15%4%59%-7%64%-122%6%74%72%-29%-48%-54%33%107%34%-25%77%-108%-112%-22%118%-107%99%-50%38%-101%30%-102%105%32%-106%-107%-43%67%-64%13%-78%15%-125%101%117%-62%80%-91%-59%-29%-110%-91%-92%96%40%-63%-78%90%97%104%18%56%-41%68%-15%-33%82%-16%17%122%4%32%58%61%-4%109%-35%64%-114%-51%70%-1%-101%66%16%127%48%-66%65%16%-81%16%61%16%90%-80%-92%70%-88%-18%123%49%92%-79%-100%45%8%-15%-71%-74%59%93%100%-16%70%-101%67%24%58%-29%51%-96%29%-27%60%89%-18%-56%-126%16%-17%110%98%85%-43%-114%99%-78%-29%-53%-95%14%-86%-15%38%-103%79%42%103%-79%-108%90%12%67%-18%-125%-51%82%76%-53%103%-79%-124%27%-37%122%104%84%22%119%-54%-57%34%112%89%110%-83%88%30%70%85%3%-47%-46%74%-28%-109%-63%-38%43%4%-43%-65%-30%113%77%-22%-20%12%58%-120%62%74%107%80%115%-48%105%-83%-41%-83%-117%-98%-89%19%43%65%113%-112%-41%-91%-54%112%-121%65%15%81%67%93%94%14%81%113%-85%21%2%-94%118%-38%-118%112%-6%94%65%-57%64%-14%16%-55%-31%27%72%28%-76%-21%-87%92%-35%-81%52%-14%-2%-46%-119%-123%-10%91%-111%94%69%40%-53%65%104%51%-126%-121%14%81%122%-36%38%-86%-54%-57%-63%-111%80%116%-60%9%57%-25%111%44%-106%63%-125%-38%-127%73%114%42%84%12%12%-21%-55%80%45%56%-51%78%-123%30%-30%-126%-24%-8%4%-56%72%-68%-20%6%-89%37%-105%114%66%111%-6%-26%81%-112%-109%-54%-117%-62%50%-10%65%94%96%-26%81%45%39%13%-78%-68%-75%56%14%58%43%-5%26%-33%61%17%26%-11%2%-35%-103%60%13%-86%-122%106%110%-30%36%40%21%46%-109%-2%81%67%66%41%9%88%-26%95%55%-50%-20%107%45%-41%36%44%-44%116%21%43%-89%92%9%32%-95%-124%123%93%-3%63%-22%22%-29%-96%-110%-104%-77%-26%-103%-102%-63%66%124%-57%73%-54%-91%40%7%7%-119%5%87%5%88%4%98%-96%-30%-73%-34%65%65%124%-28%-83%47%-64%65%65%108%-37%2%47%-109%49%16%-33%-58%-107%-31%109%18%2%-30%-101%-19%103%-48%65%64%35%54%23%87%-102%125%-101%30%-30%-101%-19%46%-123%67%15%-99%51%72%-77%71%70%64%108%105%100%106%28%5%52%-99%-7%-29%-18%-16%-21%-57%-15%-112%58%-46%113%65%-16%108%-4%95%-48%117%92%-48%107%92%-48%-80%16%13%-127%-81%-75%-126%-48%-18%-2%-68%-32%-117%-73%-105%-106%27%-20%21%-76%-26%117%20%-26%-19%113%-102%53%-87%-88%73%-45%67%-4%85%-61%86%-109%-90%-121%28%6%93%-1%24%18%5%82%-13%-42%6%1%-15%89%-95%-71%73%16%-112%-63%42%-101%-75%0%-77%48%31%15%-82%88%-109%-32%-94%-115%-127%120%-115%-124%-117%36%-22%-69%-56%59%-105%-96%119%82%40%-56%48%-11%18%-18%-109%79%91%-36%114%-23%-56%126%66%126%59%18%-53%17%82%-114%26%59%36%52%114%-117%94%-93%-89%94%2%96%63%-117%21%-35%-3%44%33%-123%-74%-30%21%55%22%-94%-122%36%17%82%-97%78%38%19%-33%-73%9%52%68%-115%80%-39%-13%125%-100%-64%67%-69%103%110%-61%15%-7%-54%-17%49%16%117%62%99%-126%-88%-99%24%-57%3%-19%98%-47%-81%-57%3%-19%-30%-95%-35%43%-49%119%113%46%-1%-8%15%83%120%-125%-89%63%57%-45%-36%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%32%-103%-56%60%27%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus"/>
+ <icon xmi:type="uml:Image" xmi:id="_WTUY0ENnEeGoAtSeIK7WLg" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%72%0%0%0%104%8%3%0%0%0%101%-97%70%67%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-43%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-103%-103%-103%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%103%103%103%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%-34%-34%-34%43%43%43%39%39%39%35%35%35%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%-68%-68%-68%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%-43%-43%-43%34%34%34%-47%-47%-47%30%30%30%26%26%26%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-51%-46%-59%107%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%3%-13%73%68%65%84%88%-123%-75%-39%109%67%-86%48%20%0%-32%-39%53%75%-67%105%26%-23%-51%74%52%73%45%-13%-86%13%-13%37%-55%-105%-44%-1%-1%-109%-82%-70%13%6%-116%-77%-93%113%-49%-73%-28%-12%48%-74%113%-40%-128%80%116%12%55%-39%-4%116%78%-56%-14%-13%-6%-9%-13%40%120%-108%32%21%-69%121%85%39%82%52%-14%109%-65%-123%-124%-102%-9%36%20%-85%-92%125%44%84%-67%13%51%-5%-72%-33%30%7%117%-44%-52%62%-78%110%-93%-12%-48%-80%31%-19%16%82%40%98%-95%-30%-89%-12%111%-26%52%-105%-51%-68%79%-66%-91%-97%-26%51%28%100%23%-68%-50%-51%-82%-59%-123%84%47%-67%-50%-65%27%-95%-96%-116%-56%-81%-65%-7%-122%-37%62%119%-101%-107%-73%17%-48%-117%-37%23%70%-24%-102%-35%-66%-21%-22%33%-93%-63%115%51%-74%-30%104%-57%-30%71%23%90%72%-100%-76%-93%62%-36%-30%-121%-57%58%-56%-31%-89%-20%71%37%116%-71%-76%-47%64%57%-106%118%59%-116%-52%-56%-77%-116%50%12%-35%-16%6%-43%-12%109%126%0%-95%54%75%-54%65%-115%-50%-120%-127%-125%-96%-100%56%-101%-66%-43%101%8%26%-78%-79%-81%64%14%-91%31%-20%108%14%0%85%-7%20%-126%-95%36%-53%106%6%-96%-46%-52%-117%95%-18%-48%66%-15%-59%-78%82%62%40%41%-33%-42%34%28%24%-78%89%86%90%-122%54%10%-122%-112%80%-103%15%4%59%-7%64%-122%6%74%72%-29%-48%-54%33%107%34%-25%77%-108%-112%-22%118%-107%99%-50%38%-101%30%-102%105%32%-106%-107%-43%67%-64%13%-78%15%-125%101%117%-62%80%-91%-59%-29%-110%-91%-92%96%40%-63%-78%90%97%104%18%56%-41%68%-15%-33%82%-16%17%122%4%32%58%61%-4%109%-35%64%-114%-51%70%-1%-101%66%16%127%48%-66%65%16%-81%16%61%16%90%-80%-92%70%-88%-18%123%49%92%-79%-100%45%8%-15%-71%-74%59%93%100%-16%70%-101%67%24%58%-29%51%-96%29%-27%60%89%-18%-56%-126%16%-17%110%98%85%-43%-114%99%-78%-29%-53%-95%14%-86%-15%38%-103%79%42%103%-79%-108%90%12%67%-18%-125%-51%82%76%-53%103%-79%-124%27%-37%122%104%84%22%119%-54%-57%34%112%89%110%-83%88%30%70%85%3%-47%-46%74%-28%-109%-63%-38%43%4%-43%-65%-30%113%77%-22%-20%12%58%-120%62%74%107%80%115%-48%105%-83%-41%-83%-117%-98%-89%19%43%65%113%-112%-41%-91%-54%112%-121%65%15%81%67%93%94%14%81%113%-85%21%2%-94%118%-38%-118%112%-6%94%65%-57%64%-14%16%-55%-31%27%72%28%-76%-21%-87%92%-35%-81%52%-14%-2%-46%-119%-123%-10%91%-111%94%69%40%-53%65%104%51%-126%-121%14%81%122%-36%38%-86%-54%-57%-63%-111%80%116%-60%9%57%-25%111%44%-106%63%-125%-38%-127%73%114%42%84%12%12%-21%-55%80%45%56%-51%78%-123%30%-30%-126%-24%-8%4%-56%72%-68%-20%6%-89%37%-105%114%66%111%-6%-26%81%-112%-109%-54%-117%-62%50%-10%65%94%96%-26%81%45%39%13%-78%-68%-75%56%14%58%43%-5%26%-33%61%17%26%-11%2%-35%-103%60%13%-86%-122%106%110%-30%36%40%21%46%-109%-2%81%67%66%41%9%88%-26%95%55%-50%-20%107%45%-41%36%44%-44%116%21%43%-89%92%9%32%-95%-124%123%93%-3%63%-22%22%-29%-96%-110%-104%-77%-26%-103%-102%-63%66%124%-57%73%-54%-91%40%7%7%-119%5%87%5%88%4%98%-96%-30%-73%-34%65%65%124%-28%-83%47%-64%65%65%108%-37%2%47%-109%49%16%-33%-58%-107%-31%109%18%2%-30%-101%-19%103%-48%65%64%35%54%23%87%-102%125%-101%30%-30%-101%-19%46%-123%67%15%-99%51%72%-77%71%70%64%108%105%100%106%28%5%52%-99%-7%-29%-18%-16%-21%-57%-15%-112%58%-46%113%65%-16%108%-4%95%-48%117%92%-48%107%92%-48%-80%16%13%-127%-81%-75%-126%-48%-18%-2%-68%-32%-117%-73%-105%-106%27%-20%21%-76%-26%117%20%-26%-19%113%-102%53%-87%-88%73%-45%67%-4%85%-61%86%-109%-90%-121%28%6%93%-1%24%18%5%82%-13%-42%6%1%-15%89%-95%-71%73%16%-112%-63%42%-101%-75%0%-77%48%31%15%-82%88%-109%-32%-94%-115%-127%120%-115%-124%-117%36%-22%-69%-56%59%-105%-96%119%82%40%-56%48%-11%18%-18%-109%79%91%-36%114%-23%-56%126%66%126%59%18%-53%17%82%-114%26%59%36%52%114%-117%94%-93%-89%94%2%96%63%-117%21%-35%-3%44%33%-123%-74%-30%21%55%22%-94%-122%36%17%82%-97%78%38%19%-33%-73%9%52%68%-115%80%-39%-13%125%-100%-64%67%-69%103%110%-61%15%-7%-54%-17%49%16%117%62%99%-126%-88%-99%24%-57%3%-19%98%-47%-81%-57%3%-19%-30%-95%-35%43%-49%119%113%46%-1%-8%15%83%120%-125%-89%63%57%-45%-36%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%32%-103%-56%60%27%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_d9RssDMYEeWoDfId-zdVpA" name="I" templateParameter="_QqFYUDMYEeWoDfId-zdVpA"/>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_BXPOYDPeEeWoDfId-zdVpA" client="_Wtrfw1DlEd6cwecVIgl9nw" supplier="_HPLkIDMYEeWoDfId-zdVpA"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_HmnpEJsrEd61Eo3nmu3JhQ" name="StdPorts">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Yq-O8Nt2Ed6nqsBVkgJEEA" annotatedElement="_-WNegNtxEd6nqsBVkgJEEA">
+ <body>Is called during component activation &amp; deactivation. The two functions may not block i.e. return control to the caller after &quot;a very short&quot; period</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_OcN78Nt2Ed6nqsBVkgJEEA" annotatedElement="_N6fa4JsrEd61Eo3nmu3JhQ">
+ <body>Is called during startup. Expected to block. Only one component instance per node may define it.</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_N6fa4JsrEd61Eo3nmu3JhQ" name="Cstart" isAbstract="true">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_OfiosJsrEd61Eo3nmu3JhQ" name="start" aggregation="composite">
+ <type xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_PTWzwCS-Ed-A_I32T0fkaA"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3cU3wCS-Ed-A_I32T0fkaA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3cXUACS-Ed-A_I32T0fkaA" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_xtlE8ARAEd--t-uhRn9OBA" name="ContainerServices">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_hGEOAMT8Ed-zx4a_r4xAYw" annotatedElement="_SiY_AP-EEd6628OhKk_dpg">
+ <body>A thread service supporting the LifeCycle port. Once started, it calls the activate operation (via the required port rLC) of a connected component in a new thread of a specific priority (a configuration attribute). This C++ implementation is based on the POSIX pthread library. It will further assume that the execution is done with root privileges, since these are required to set the thread priority. The thread properties assume round-robin (SCHED_RR) scheduling.
+</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_EuvHYCXREeGX6PuSE-DJlQ" annotatedElement="_5J9coCXQEeGX6PuSE-DJlQ">
+ <body> Interceptor variant of thread (inherits all, only difference to Thread superclass: tagged as connector)</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_SiY_AP-EEd6628OhKk_dpg" name="Thread">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_lCtoICnOEeGxrprK9wB9iA" annotatedElement="_rVfYoMGJEd-Mveea1W_olA">
+ <body>Priority of the thread. The interpretation of the value is OS specific. In case of POSIX; priorities are only taken into accound for threads with a FIFO and round-robin scheduliung policy.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_6bsEkARAEd--t-uhRn9OBA" general="_-WNegNtxEd6nqsBVkgJEEA"/>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_ZjdOAP-EEd6628OhKk_dpg" name="rLC" type="_utaNEH2KEeWV7cfiwPN21w" aggregation="composite"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_rVfYoMGJEd-Mveea1W_olA" name="priority" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_e6XsEFjmEeKaM_PspnG53g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_e6ckkFjmEeKaM_PspnG53g" value="1"/>
+ </ownedAttribute>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_lrFSQDz9Ed-v9PxuTj6Elw" name="derived realization of ILifeCycle" client="_SiY_AP-EEd6628OhKk_dpg">
+ <supplier xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ <contract xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ </interfaceRealization>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_MWW4MAQyEd--t-uhRn9OBA" name="staticAct" specification="_yv198P-EEd6628OhKk_dpg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_utoPgH2KEeWV7cfiwPN21w" name="arg">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_utsg8H2KEeWV7cfiwPN21w" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_utsg8X2KEeWV7cfiwPN21w" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_utyAgH2KEeWV7cfiwPN21w" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_utynkH2KEeWV7cfiwPN21w" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_utzOoH2KEeWV7cfiwPN21w" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>((Thread*) arg)->rLC->activate();
+return NULL;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_oP6UcED4Ed-_DOja_sRgWA" name="activate" specification="_JmxyMD16Ed-Bk-AHd6yyoA">
+ <language>C/C++</language>
+ <body>// create thread
+pthread_t pt;
+pthread_create (&amp;pt, NULL, staticAct, (void *) this);
+
+// set priority of thread
+struct sched_param schedParam;
+schedParam.sched_priority = priority;
+pthread_setschedparam (pt, SCHED_RR, &amp;schedParam);
+// TODO: check return code (in particular, SCHED_RR only works for root)
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_-9Gu0H2KEeWV7cfiwPN21w" name="configuration_complete" specification="_TBScwCxyEeOMQpc6Y-MAJw">
+ <language>C/C++</language>
+ <body></body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Bxe68H2LEeWV7cfiwPN21w" name="deactivate" specification="_JqB6gD16Ed-Bk-AHd6yyoA">
+ <language>C/C++</language>
+ <body></body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_yv198P-EEd6628OhKk_dpg" name="staticAct" isStatic="true" method="_MWW4MAQyEd--t-uhRn9OBA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_1TXqoP-EEd6628OhKk_dpg" name="arg">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3MCccP-EEd6628OhKk_dpg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3MDDgP-EEd6628OhKk_dpg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_BywjgP-FEd6628OhKk_dpg" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_JmxyMD16Ed-Bk-AHd6yyoA" name="activate" method="_oP6UcED4Ed-_DOja_sRgWA"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_JqB6gD16Ed-Bk-AHd6yyoA" name="deactivate" method="_Bxe68H2LEeWV7cfiwPN21w"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_TBScwCxyEeOMQpc6Y-MAJw" name="configuration_complete" method="_-9Gu0H2KEeWV7cfiwPN21w"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_wCkVcNYGEd-CgJIavLpOxQ" name="ImplRequirement" client="_SiY_AP-EEd6628OhKk_dpg" supplier="_ea234NYGEd-CgJIavLpOxQ"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_WkkjoPNUEeCovO8AYZymZQ" name="CallEvent_">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_YKtbAPNUEeCovO8AYZymZQ" name="operationID" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_9XvcQB6REd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_aDHHEPNUEeCovO8AYZymZQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_aDIVMPNUEeCovO8AYZymZQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_aDKxcPNUEeCovO8AYZymZQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_gQGNwPNUEeCovO8AYZymZQ" name="kind" visibility="public" type="_jQjHAPNUEeCovO8AYZymZQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_imLUUPNUEeCovO8AYZymZQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_imL7YPNUEeCovO8AYZymZQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_imuG4PNUEeCovO8AYZymZQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_-_HCMBI0EeGU49ezpRnvLg" name="portID">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_9XvcQB6REd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-_LToBI0EeGU49ezpRnvLg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-_L6sBI0EeGU49ezpRnvLg" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_qzHgkPNUEeCovO8AYZymZQ" name="params" visibility="public" type="_OU5asFaNEeKxltxu9uR4dg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sMOBgPNUEeCovO8AYZymZQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sMPPoPNUEeCovO8AYZymZQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_sMRE0PNUEeCovO8AYZymZQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_JRmo0PNAEeCovO8AYZymZQ" name="EventPool">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_MzO8gPNAEeCovO8AYZymZQ" name="control" visibility="public" type="_omxU4PNAEeCovO8AYZymZQ" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_N-OI8PNAEeCovO8AYZymZQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_N-PXEPNAEeCovO8AYZymZQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_k-OpoPN8EeCovO8AYZymZQ" name="events" visibility="public" type="_WkkjoPNUEeCovO8AYZymZQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mr7hkPN8EeCovO8AYZymZQ" value="20"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mr-k4PN8EeCovO8AYZymZQ" value="20"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="__a1A0PQXEeCovO8AYZymZQ" name="m_size" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A1N7MPQYEeCovO8AYZymZQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A1OiQPQYEeCovO8AYZymZQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_KnS5QPQYEeCovO8AYZymZQ" name="m_cond" visibility="public">
+ <type xmi:type="uml:Class" href="pathmap://QML_CORE/osal.uml#_QWlVgPRTEeCUGrV0Hl4JwQ"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KyZ9EPQYEeCovO8AYZymZQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KyakIPQYEeCovO8AYZymZQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Ig_MUCSlEeG6GJ4vU06VYQ" name="ID_TIMEOUT" isStatic="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IjAlkCSlEeG6GJ4vU06VYQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IjCawCSlEeG6GJ4vU06VYQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_SjUM4CSlEeG6GJ4vU06VYQ" name="" value="-1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_aY-AcNhrEeSAk4H5GXhpNA" name="readIndex" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_aY-AcdhrEeSAk4H5GXhpNA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_aY-ActhrEeSAk4H5GXhpNA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_dllGYNhrEeSAk4H5GXhpNA" name="writeIndex" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dllGYdhrEeSAk4H5GXhpNA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dlltcNhrEeSAk4H5GXhpNA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_YHC5wNhuEeSqPLTzapTtmQ" name="POOL_SIZE" isStatic="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_YHC5wdhuEeSqPLTzapTtmQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_YHC5wthuEeSqPLTzapTtmQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_YHC5w9huEeSqPLTzapTtmQ" name="" value="20"/>
+ </ownedAttribute>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_mI0xEPQXEeCovO8AYZymZQ" name="derived realization of IPoolControl" client="_JRmo0PNAEeCovO8AYZymZQ" supplier="_omxU4PNAEeCovO8AYZymZQ" contract="_omxU4PNAEeCovO8AYZymZQ"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_2HjeoPQXEeCovO8AYZymZQ" name="writeEvent" specification="_f1HmEPQREeCovO8AYZymZQ0">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_y_tvwH2KEeWV7cfiwPN21w" name="event" type="_WkkjoPNUEeCovO8AYZymZQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_y_uW0H2KEeWV7cfiwPN21w" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_y_uW0X2KEeWV7cfiwPN21w" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>if (m_size &lt; POOL_SIZE) {
+ events[writeIndex] = event;
+ writeIndex = (writeIndex + 1) % POOL_SIZE;
+ m_size++;
+ if (m_size == 1) {
+ // was 0 before, notify waiting clients
+ m_cond.signal();
+ }
+}
+
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_5Sw2YPQXEeCovO8AYZymZQ" name="size" specification="_FBMo4PQXEeCovO8AYZymZQ0">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_y_u94H2KEeWV7cfiwPN21w" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_y_vk8H2KEeWV7cfiwPN21w" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_y_vk8X2KEeWV7cfiwPN21w" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return m_size;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_9xRCAPQXEeCovO8AYZymZQ" name="readEvent" specification="_tK0poPQWEeCovO8AYZymZQ0">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_y_wMAH2KEeWV7cfiwPN21w" name="timeout">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_y_wMAX2KEeWV7cfiwPN21w" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_y_wzEH2KEeWV7cfiwPN21w" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_y_wzEX2KEeWV7cfiwPN21w" type="_WkkjoPNUEeCovO8AYZymZQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_y_xaIH2KEeWV7cfiwPN21w" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_y_xaIX2KEeWV7cfiwPN21w" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>if (m_size == 0) {
+ // no element is in pool. Wait until it is placed inside
+ // TODO: potential race condition
+ OS_AL::Time::TimeVal wakeup = OS_AL::Time::TimeVal::current();
+ wakeup += timeout;
+ int retCode = m_cond.waitUpto (wakeup);
+ if (retCode == ETIMEDOUT) {
+ CallEvent_ event;
+ event.operationID = ID_TIMEOUT;
+ return event;
+ }
+}
+int current = readIndex;
+readIndex = (readIndex+1) % POOL_SIZE;
+m_size--;
+return events[current];</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_JoG14PRUEeCKVJwdD4MMsg" name="EventPool" specification="_lrF08PRTEeCUGrV0Hl4JwQ">
+ <language>C/C++</language>
+ <body>m_cond.lock();
+readIndex = 0;
+writeIndex = 0;
+m_size = 0;</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_tK0poPQWEeCovO8AYZymZQ0" name="readEvent" method="_9xRCAPQXEeCovO8AYZymZQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_HUTnoCVyEeGaL60JjVj19Q" name="timeout">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HUWq8CVyEeGaL60JjVj19Q" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HUXSACVyEeGaL60JjVj19Q" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_HUZHMCVyEeGaL60JjVj19Q" type="_WkkjoPNUEeCovO8AYZymZQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HUbjcCVyEeGaL60JjVj19Q" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HUcxkCVyEeGaL60JjVj19Q" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_FBMo4PQXEeCovO8AYZymZQ0" name="size" method="_5Sw2YPQXEeCovO8AYZymZQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_mKtAYPQXEeCovO8AYZymZQ" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mKvcoPQXEeCovO8AYZymZQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mKwqwPQXEeCovO8AYZymZQ" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_f1HmEPQREeCovO8AYZymZQ0" name="writeEvent" method="_2HjeoPQXEeCovO8AYZymZQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_HRdvACVyEeGaL60JjVj19Q" name="event" type="_WkkjoPNUEeCovO8AYZymZQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HUNhACVyEeGaL60JjVj19Q" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HUOvICVyEeGaL60JjVj19Q" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_lrF08PRTEeCUGrV0Hl4JwQ" name="EventPool" method="_JoG14PRUEeCKVJwdD4MMsg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_elkpwPQREeCovO8AYZymZQ" name="IWriteEvent">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_f1HmEPQREeCovO8AYZymZQ" name="writeEvent" visibility="public" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_wAdzUPQREeCovO8AYZymZQ">
+ <body>&lt;&lt;TextualRepresentation>>public abstract writeEvent (in event:BasicCalls::ContainerServices::Event) ;</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="__4qMgCUQEeGXBt65HZzY7g" name="event" type="_WkkjoPNUEeCovO8AYZymZQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__4raoCUQEeGXBt65HZzY7g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__4sowCUQEeGXBt65HZzY7g" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_jQjHAPNUEeCovO8AYZymZQ" name="EventKind">
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_jv4uYPNUEeCovO8AYZymZQ" name="CallEvent"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_kuDm0PNUEeCovO8AYZymZQ" name="SignalEvent"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_ljD8MPNUEeCovO8AYZymZQ" name="TimeEvent"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_omxU4PNAEeCovO8AYZymZQ" name="IPoolControl">
+ <generalization xmi:type="uml:Generalization" xmi:id="_feaHgPQXEeCovO8AYZymZQ" general="_elkpwPQREeCovO8AYZymZQ"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_GwxT0CUREeGXBt65HZzY7g" general="_DY2VwCUREeGXBt65HZzY7g"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_FBMo4PQXEeCovO8AYZymZQ" name="size" visibility="public" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_NaRMoPQXEeCovO8AYZymZQ">
+ <body>&lt;&lt;TextualRepresentation>>public abstract size () : BasicCalls::Long ;</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_RlkvcPQXEeCovO8AYZymZQ" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Rll9kPQXEeCovO8AYZymZQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_RlmkoPQXEeCovO8AYZymZQ" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_DY2VwCUREeGXBt65HZzY7g" name="IReadEvent">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_tK0poPQWEeCovO8AYZymZQ" name="readEvent" visibility="public" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPdjwPQWEeCovO8AYZymZQ">
+ <body>&lt;&lt;TextualRepresentation>>public abstract readEvent(in timeout : BasicCalls::Long) : BasicCalls::ContainerServices::Event ;</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_PnwykPRREeCUGrV0Hl4JwQ" name="timeout">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PofyYPRREeCUGrV0Hl4JwQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Pow4IPRREeCUGrV0Hl4JwQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Po7QMPRREeCUGrV0Hl4JwQ" type="_WkkjoPNUEeCovO8AYZymZQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PpWG8PRREeCUGrV0Hl4JwQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ppl-kPRREeCUGrV0Hl4JwQ" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_5J9coCXQEeGX6PuSE-DJlQ" name="ThreadInterceptor">
+ <generalization xmi:type="uml:Generalization" xmi:id="_9thucCXQEeGX6PuSE-DJlQ" general="_SiY_AP-EEd6628OhKk_dpg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_9V8OQCjYEeGFbebITJYb9g" name="PeriodicTimer">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_zLeSkCnOEeGxrprK9wB9iA" annotatedElement="_tmNeoCjbEeGFbebITJYb9g">
+ <body>The period length of the perdioci timer in ticks. Currently, a tick corresponds to 1 ms (simulation time in the underlying OS abstraction layer). It is planned to support VSL expressions, i.e. a value/unit pair.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_Y6lPACjZEeGFbebITJYb9g" general="_-WNegNtxEd6nqsBVkgJEEA"/>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_ATRiECjZEeGFbebITJYb9g" name="tick" visibility="public" aggregation="composite">
+ <type xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_Xb-y0AweEd6it_RkGhz_AA"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_E3y2ICjZEeGFbebITJYb9g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_E30EQCjZEeGFbebITJYb9g" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_E33HkCjZEeGFbebITJYb9g">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_tmNeoCjbEeGFbebITJYb9g" name="periodLength" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tmmgMCjbEeGFbebITJYb9g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tmnHQCjbEeGFbebITJYb9g" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_w262ACnOEeGxrprK9wB9iA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_F9_-UCjbEeGFbebITJYb9g" name="derived realization of ILifeCycle" client="_9V8OQCjYEeGFbebITJYb9g">
+ <supplier xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ <contract xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ </interfaceRealization>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_RMkvkCjbEeGFbebITJYb9g" name="activate" specification="_F-cDMCjbEeGFbebITJYb9g">
+ <language>C/C++</language>
+ <body>OS_AL::Time::Timer timer;
+OS_AL::Time::TimeVal time = OS_AL::Time::TimeVal::current();
+OS_AL::Time::TimeVal period(periodLength);
+for (;;) {
+ tick->tick();
+ time += period;
+ timer.wakeUp(time);
+}</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_APJlgH2LEeWV7cfiwPN21w" name="configuration_complete" specification="_rljQcFy8EeOwKfaVRwV11Q">
+ <language>C/C++</language>
+ <body></body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Dj9lMH2LEeWV7cfiwPN21w" name="deactivate" specification="_F-iJ0CjbEeGFbebITJYb9g">
+ <language>C/C++</language>
+ <body></body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_F-cDMCjbEeGFbebITJYb9g" name="activate" method="_RMkvkCjbEeGFbebITJYb9g"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_F-iJ0CjbEeGFbebITJYb9g" name="deactivate" method="_Dj9lMH2LEeWV7cfiwPN21w"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_rljQcFy8EeOwKfaVRwV11Q" name="configuration_complete" method="_APJlgH2LEeWV7cfiwPN21w"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_-X6zMCjZEeGFbebITJYb9g" name="PeriodicTimerWithThread">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_ARs_UCjaEeGFbebITJYb9g" name="timer" visibility="public" type="_9V8OQCjYEeGFbebITJYb9g" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_k_FtQCjaEeGFbebITJYb9g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_k_G7YCjaEeGFbebITJYb9g" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_k_J-sCjaEeGFbebITJYb9g">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_RMqEkCjaEeGFbebITJYb9g" name="thread" visibility="public" type="_SiY_AP-EEd6628OhKk_dpg" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j8bWYCjaEeGFbebITJYb9g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j8ckgCjaEeGFbebITJYb9g" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_j8eZsCjaEeGFbebITJYb9g">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_3NSGwCkAEeGDDbdzqSb4UA" name="tick" visibility="public" aggregation="composite">
+ <type xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_Xb-y0AweEd6it_RkGhz_AA"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_30IrYCkAEeGDDbdzqSb4UA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_30LusCkAEeGDDbdzqSb4UA" value="1"/>
+ </ownedAttribute>
+ <ownedConnector xmi:type="uml:Connector" xmi:id="_iDCL0CjaEeGFbebITJYb9g" name="Connector1">
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_iDCy4CjaEeGFbebITJYb9g" partWithPort="_RMqEkCjaEeGFbebITJYb9g" role="_ZjdOAP-EEd6628OhKk_dpg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iDCy4ijaEeGFbebITJYb9g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iDCy4SjaEeGFbebITJYb9g" value="1"/>
+ </end>
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_iDCy4yjaEeGFbebITJYb9g" partWithPort="_ARs_UCjaEeGFbebITJYb9g" role="__SLXgNtxEd6nqsBVkgJEEA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iDCy5SjaEeGFbebITJYb9g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iDCy5CjaEeGFbebITJYb9g" value="1"/>
+ </end>
+ </ownedConnector>
+ <ownedConnector xmi:type="uml:Connector" xmi:id="_84IJsCkAEeGDDbdzqSb4UA" name="Connector2">
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_84JX0CkAEeGDDbdzqSb4UA" partWithPort="_ARs_UCjaEeGFbebITJYb9g" role="_ATRiECjZEeGFbebITJYb9g">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_84JX0ikAEeGDDbdzqSb4UA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_84JX0SkAEeGDDbdzqSb4UA" value="1"/>
+ </end>
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_84L0ECkAEeGDDbdzqSb4UA" role="_3NSGwCkAEeGDDbdzqSb4UA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_84L0EikAEeGDDbdzqSb4UA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_84L0ESkAEeGDDbdzqSb4UA" value="1"/>
+ </end>
+ </ownedConnector>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_SXkHQCo0EeGxrprK9wB9iA" name="Dependency1" client="_9V8OQCjYEeGFbebITJYb9g">
+ <supplier xmi:type="uml:Class" href="pathmap://QML_CORE/osal.uml#_ETakYDj8Edy0Rd6V_tf1-Q"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_OU5asFaNEeKxltxu9uR4dg" name="ParamValues">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_RW82cFaNEeKxltxu9uR4dg" name="values" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_IYEXcB-VEd6nGq8wpI2tjg"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TAmU0FaNEeKxltxu9uR4dg" value="200"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TAqmQFaNEeKxltxu9uR4dg" value="200"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_TCDGUFaNEeKxltxu9uR4dg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_Y8dPQFaNEeKxltxu9uR4dg" name="QoS">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_fYeQcFaNEeKxltxu9uR4dg" name="deadline" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_-5FTMB6REd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gFUvYFaNEeKxltxu9uR4dg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gFYZwFaNEeKxltxu9uR4dg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_gFfHcFaNEeKxltxu9uR4dg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_oUVYMFaNEeKxltxu9uR4dg" name="period" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_-5FTMB6REd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rUQF8FaNEeKxltxu9uR4dg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rUSiMFaNEeKxltxu9uR4dg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_rW6_cFaNEeKxltxu9uR4dg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xXGZMFaNEeKxltxu9uR4dg" name="readyTime" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_-5FTMB6REd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_yjbCYFaNEeKxltxu9uR4dg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_yjcQgFaNEeKxltxu9uR4dg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_yjeswFaNEeKxltxu9uR4dg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_-WNegNtxEd6nqsBVkgJEEA" name="LifeCycle" isAbstract="true">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="__SLXgNtxEd6nqsBVkgJEEA" name="lc" aggregation="composite">
+ <type xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_57__MCS-Ed-A_I32T0fkaA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_58tJ0CS-Ed-A_I32T0fkaA" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_y4qB4ARJEd--t-uhRn9OBA" name="containerRules">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_q-kFUMTJEd-cLazKlAeYsQ" annotatedElement="_14WtMARJEd--t-uhRn9OBA">
+ <body>This rule adds an interceptor for the lifecycle (lc) port. It will use the Thread implementation that executes the activate method in a new thread of a given priority (property of the interceptor implementation)</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_H0IrsDbgEeGdqp2YT1LwWw" annotatedElement="_1sCBICjZEeGFbebITJYb9g">
+ <body>Adds a periodic timer to the container</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_14WtMARJEd--t-uhRn9OBA" name="runStartThread">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_mvN04PTWEeCn1-FCrfecFg" name="start" visibility="public" type="_5J9coCXQEeGX6PuSE-DJlQ" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nPVfYPTWEeCn1-FCrfecFg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nPXUkPTWEeCn1-FCrfecFg" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="__4GvgPQTEeCovO8AYZymZQ" name="AddEventPool"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_1sCBICjZEeGFbebITJYb9g" name="PeriodicTimerRule">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_6yVMkCjZEeGFbebITJYb9g" name="timer" visibility="public" type="_9V8OQCjYEeGFbebITJYb9g">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_54aFgCjaEeGFbebITJYb9g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_54bToCjaEeGFbebITJYb9g" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_54eW8CjaEeGFbebITJYb9g">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_wSPIcF0NEd-12d_h0i1xhQ" name="deployment">
+ <packagedElement xmi:type="uml:Package" xmi:id="_dKFEcCp9EeG1Y7BvjQ0T-w" name="operatingSystems">
+ <packagedElement xmi:type="uml:Class" xmi:id="_17yx8F0NEd-12d_h0i1xhQ" name="vxWorks"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_zVs5cF0NEd-12d_h0i1xhQ" name="Linux"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_4RuHgF0NEd-12d_h0i1xhQ" name="ose/ck"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="__1uEcF0NEd-12d_h0i1xhQ" name="OSEK"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_onKy0Cp9EeG1Y7BvjQ0T-w" name="Cygwin"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_f2AfMCp9EeG1Y7BvjQ0T-w" name="architectures">
+ <packagedElement xmi:type="uml:Class" xmi:id="_PFcW8F0OEd-12d_h0i1xhQ" name="GenericPowerPC"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_CxQBcF0OEd-12d_h0i1xhQ" name="StandardPC"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_KjufQF0OEd-12d_h0i1xhQ" name="GenericARM7"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_uFRRUH7dEd-FNNgSS03RxQ" name="configOptions">
+ <packagedElement xmi:type="uml:Class" xmi:id="_29YhgH7dEd-FNNgSS03RxQ" name="Distribution">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_INNDgH7eEd-FNNgSS03RxQ">
+ <body>Use for distributed applications</body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_3myD0H7dEd-FNNgSS03RxQ" name="Debug">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_9u2OQH7dEd-FNNgSS03RxQ">
+ <body>Use for debugging in general</body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_7JeHcH7dEd-FNNgSS03RxQ" name="Trace">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_MzHesH7eEd-FNNgSS03RxQ">
+ <body>Use for tracing.</body>
+ </ownedComment>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_I19MANYGEd-CgJIavLpOxQ" name="pthread">
+ <packagedElement xmi:type="uml:Class" xmi:id="_ea234NYGEd-CgJIavLpOxQ" name="pthread"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_m7SIwOUYEd-P08Bciq_LqQ" name="perClass">
+ <ownedTemplateSignature xmi:type="uml:TemplateSignature" xmi:id="_rNm5kOUYEd-P08Bciq_LqQ" parameter="_wfwIoOUYEd-P08Bciq_LqQ">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_wfwIoOUYEd-P08Bciq_LqQ" parameteredElement="_6uRBMOuqEeCTfOY57pgE3w">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_6uRBMOuqEeCTfOY57pgE3w" name="T" templateParameter="_wfwIoOUYEd-P08Bciq_LqQ"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_QQPDUCQeEeGj_4swHBbKwg" name="PortIDs">
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_QQPDUSQeEeGj_4swHBbKwg" name="PORTID_[name/]"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_RPCMoOxIEd-2rr_yAeKkjQ" name="methodCall_comp">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_q1w5MK8qEeCXIcykFPsB8Q" annotatedElement="_RPCMoOxIEd-2rr_yAeKkjQ">
+ <body>Elements in this package depend not only on the Interface I (which is a non-owned template parameter taken from the methodCall signature), but also on a class parameter T, which is bound to the component within a container binding.
+Be aware that the number of instantiated template packages will be considerably larger compared to a dependency of the interface only</body>
+ </ownedComment>
+ <ownedTemplateSignature xmi:type="uml:TemplateSignature" xmi:id="_ewC6kOxIEd-2rr_yAeKkjQ" parameter="_WzWVUPfBEd2TbIfwytOyPA _QBCTAOxJEd-2rr_yAeKkjQ">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_QBCTAOxJEd-2rr_yAeKkjQ" parameteredElement="_zILRsPPlEd-BP4i7K5Y1eA">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_zILRsPPlEd-BP4i7K5Y1eA" name="T" templateParameter="_QBCTAOxJEd-2rr_yAeKkjQ"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="__lTvkPN0EeCovO8AYZymZQ" name="methodCall_size">
+ <ownedTemplateSignature xmi:type="uml:TemplateSignature" xmi:id="_EfH-MPN1EeCovO8AYZymZQ" parameter="_WzWVUPfBEd2TbIfwytOyPA _TbLb4PN3EeCovO8AYZymZQ">
+ <ownedParameter xmi:type="uml:TemplateParameter" xmi:id="_TbLb4PN3EeCovO8AYZymZQ" parameteredElement="_VGE3cPN3EeCovO8AYZymZQ">
+ <ownedParameteredElement xmi:type="uml:LiteralInteger" xmi:id="_VGE3cPN3EeCovO8AYZymZQ" name="size" templateParameter="_TbLb4PN3EeCovO8AYZymZQ"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_gEZXADY7EeKvFqG4YPX3sg" name="methodCall_port">
+ <ownedTemplateSignature xmi:type="uml:TemplateSignature" xmi:id="_kCZdoDY7EeKvFqG4YPX3sg" parameter="_WzWVUPfBEd2TbIfwytOyPA _udDzwDY9EeKvFqG4YPX3sg">
+ <ownedParameter xmi:type="uml:ConnectableElementTemplateParameter" xmi:id="_udDzwDY9EeKvFqG4YPX3sg" parameteredElement="_9GMAUDY9EeKvFqG4YPX3sg">
+ <ownedParameteredElement xmi:type="uml:Port" xmi:id="_9GMAUDY9EeKvFqG4YPX3sg" name="P" templateParameter="_udDzwDY9EeKvFqG4YPX3sg"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_q56toNzEEeKPWMO32vUmzw" name="languages">
+ <packagedElement xmi:type="uml:Class" xmi:id="_tZgVgNzEEeKPWMO32vUmzw" name="C++"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_w2nVkNzEEeKPWMO32vUmzw" name="C"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_0rU9UNzEEeKPWMO32vUmzw" name="Java"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_tkiC4HI3EeOCrdvV8oxOKA" name="bindingHelpers">
+ <packagedElement xmi:type="uml:Class" xmi:id="_z2tyoHI3EeOCrdvV8oxOKA" name="LoopOperations"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_4H-ZoHkgEeOCpqruXGWNPw" name="BindOperation"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_g8oe8LsMEeO0n5elMxN1LQ" name="BindCppIncludeToFirstActual"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_B_a2UKLvEeSBiP8ZTcBQrQ" name="OOtransformations">
+ <packagedElement xmi:type="uml:Class" xmi:id="_mgbVIKLvEeSBiP8ZTcBQrQ" name="StaticCpp"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_nRnhgKLvEeSBiP8ZTcBQrQ" name="DynamicCpp"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_pu1x4KLvEeSBiP8ZTcBQrQ" name="StaticJava"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_QOy9MDUKEeWa95xDrmW0sg" name="derivedTypes">
+ <packagedElement xmi:type="uml:Package" xmi:id="_QO5q4DUKEeWa95xDrmW0sg" name="core">
+ <packagedElement xmi:type="uml:Package" xmi:id="_QO6R8DUKEeWa95xDrmW0sg" name="methodCall">
+ <packagedElement xmi:type="uml:Class" xmi:id="_QO65ADUKEeWa95xDrmW0sg" name="Use_I"/>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_QS9rgDUKEeWa95xDrmW0sg" client="_QO65ADUKEeWa95xDrmW0sg" supplier="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_utWisH2KEeWV7cfiwPN21w" name="sysinterfaces">
+ <packagedElement xmi:type="uml:Class" xmi:id="_utaNEH2KEeWV7cfiwPN21w" name="Use_ILifeCycle"/>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_uthh0H2KEeWV7cfiwPN21w" client="_utaNEH2KEeWV7cfiwPN21w">
+ <supplier xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_O6TiIjLUEd26WNosUASSSw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_O6TiIzLUEd26WNosUASSSw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_ugrx4AHIEd6pm-KfUZMnnQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ugztsAHIEd6pm-KfUZMnnQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/C_Cpp/1#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_u03PkFRxEd6GqrP6fkWBoQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_u1sWAFRxEd6GqrP6fkWBoQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/FCM/1#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://FCM_PROFILES/FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_0x8woBn3EeONpa5JgejICQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_01dXoBn3EeONpa5JgejICQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//SRM/SW_Concurrency"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_A_vtYBJeEdy3Td9UhuLFPg"/>
+ </profileApplication>
+ </uml:Model>
+ <FCM:Port xmi:id="_u1uLMFRxEd6GqrP6fkWBoQ" base_Port="_P4xVsNtuEd2eM5kqcby5ZA" kind="_9Fif4FRxEd6GqrP6fkWBoQ" type="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <FCM:Port xmi:id="_u1uLMVRxEd6GqrP6fkWBoQ" base_Port="_Qk0jYNtuEd2eM5kqcby5ZA" kind="_wySlkFRxEd6GqrP6fkWBoQ" type="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <FCM:Port xmi:id="_u1uLM1RxEd6GqrP6fkWBoQ" base_Port="_rSCxUAytEd6it_RkGhz_AA" kind="_9Fif4FRxEd6GqrP6fkWBoQ">
+ <type xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_7TuzoCUUEd6YR-YzyVnLng"/>
+ </FCM:Port>
+ <FCM:Port xmi:id="_u1uyQFRxEd6GqrP6fkWBoQ" base_Port="_r5Va0AytEd6it_RkGhz_AA" kind="_wySlkFRxEd6GqrP6fkWBoQ">
+ <type xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_7TuzoCUUEd6YR-YzyVnLng"/>
+ </FCM:Port>
+ <FCM:PortKind xmi:id="_wySlkFRxEd6GqrP6fkWBoQ" base_Class="_Wtq4sFDlEd6cwecVIgl9nw"/>
+ <FCM:PortKind xmi:id="_x5mL4FRxEd6GqrP6fkWBoQ" base_Class="_Wtq4sVDlEd6cwecVIgl9nw"/>
+ <FCM:PortKind xmi:id="_9Fif4FRxEd6GqrP6fkWBoQ" base_Class="_Wtrfw1DlEd6cwecVIgl9nw"/>
+ <FCM:PortKind xmi:id="_pE6GUFR1Ed6GqrP6fkWBoQ" base_Class="_Wtq4slDlEd6cwecVIgl9nw"/>
+ <FCM:PortKind xmi:id="_qOK0cFR1Ed6GqrP6fkWBoQ" base_Class="_WtrfwlDlEd6cwecVIgl9nw"/>
+ <FCM:InteractionComponent xmi:id="_s8OWIFR1Ed6GqrP6fkWBoQ" base_Class="_KxQBELuXEd2TTr3gJIvazw"/>
+ <FCM:InteractionComponent xmi:id="_vEYVcFR1Ed6GqrP6fkWBoQ" base_Class="_Zx2ZUA1jEd6tvthBDl600Q"/>
+ <FCM:InteractionComponent xmi:id="_wT-8IFR1Ed6GqrP6fkWBoQ" base_Class="_jOU60A1jEd6tvthBDl600Q"/>
+ <standard:ModelLibrary xmi:id="_CQiMQFtQEd6p9KQoJ8hRoA" base_Package="_O6TiIDLUEd26WNosUASSSw"/>
+ <C_Cpp:Include xmi:id="_sJry0JsqEd61Eo3nmu3JhQ" body="BootLoader bootloader;&#xA;&#xA;int main (int argc, char* argv[])&#xA;{&#xA; bootloader.init ();&#xA; return 0;&#xA;}&#xA;" base_class="_1RehUAGpEd6eR-dxi5su4Q"/>
+ <FCM:Port xmi:id="_OfjPwJsrEd61Eo3nmu3JhQ" base_Port="_OfiosJsrEd61Eo3nmu3JhQ" kind="_wySlkFRxEd6GqrP6fkWBoQ">
+ <type xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_PTWzwCS-Ed-A_I32T0fkaA"/>
+ </FCM:Port>
+ <FCM:Port xmi:id="__SL-kNtxEd6nqsBVkgJEEA" base_Port="__SLXgNtxEd6nqsBVkgJEEA" kind="_wySlkFRxEd6GqrP6fkWBoQ">
+ <type xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:Port>
+ <FCM:Port xmi:id="_Zjd1EP-EEd6628OhKk_dpg" base_Port="_ZjdOAP-EEd6628OhKk_dpg" kind="_9Fif4FRxEd6GqrP6fkWBoQ">
+ <type xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:Port>
+ <C_Cpp:Ptr xmi:id="_Aw8hMP-FEd6628OhKk_dpg" base_parameter="_1TXqoP-EEd6628OhKk_dpg"/>
+ <C_Cpp:Ptr xmi:id="_NjCToP-FEd6628OhKk_dpg" base_parameter="_BywjgP-FEd6628OhKk_dpg"/>
+ <FCM:InteractionComponent xmi:id="_5hzVkARIEd--t-uhRn9OBA" base_Class="_cxVEsK-iEd6DndT7kDY1-A"/>
+ <FCM:ContainerRule xmi:id="_3Jq5MARLEd-OidZzGKCpzg" base_Class="_14WtMARJEd--t-uhRn9OBA" portSet="__SL-kNtxEd6nqsBVkgJEEA" interceptor="_u9ykQARIEd--t-uhRn9OBA" interceptorImpl="_u9ykQARIEd--t-uhRn9OBA"/>
+ <C_Cpp:Include xmi:id="_Q7TVYBJcEd-QgZm_R1AKbA" body="#include &lt;pthread.h>" base_class="_SiY_AP-EEd6628OhKk_dpg"/>
+ <FCM:InteractionComponent xmi:id="_efp4QClzEd-eoo60eNyGlg" base_Class="_Whe8EClYEd-eoo60eNyGlg"/>
+ <FCM:Port xmi:id="_N0to8Cu4Ed-uZPFNCty7PQ" base_Port="_N0tB4Cu4Ed-uZPFNCty7PQ" kind="_9Fif4FRxEd6GqrP6fkWBoQ" type="_fxfe8Cu1Ed-uZPFNCty7PQ"/>
+ <standard:Create xmi:id="_WFy8ECu9Ed-uZPFNCty7PQ" base_BehavioralFeature="_JM4I4Cu9Ed-uZPFNCty7PQ"/>
+ <C_Cpp:Ptr xmi:id="_G6PMUCvHEd-uZPFNCty7PQ" base_parameter="_Dn-xYCvHEd-uZPFNCty7PQ"/>
+ <C_Cpp:Ptr xmi:id="_NPp2QCvHEd-uZPFNCty7PQ" base_parameter="_IdnDkCvHEd-uZPFNCty7PQ"/>
+ <C_Cpp:Const xmi:id="_dtZbECvHEd-uZPFNCty7PQ" base_property="_Xq00oCvHEd-uZPFNCty7PQ"/>
+ <FCM:Template xmi:id="_iOmWwDNZEd-0bO2vHbUkEA" base_Element="_KOvHsPiREd2UhpY2Y3WUyg" helper="_nLe_sHJDEeOMF7YEvnQt5g" kind="LoopOperations" templateParam="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <FCM:Template xmi:id="_qcrLcDNZEd-0bO2vHbUkEA" base_Element="__y0hwJ08Ed6l5bTPBsl00Q" helper="_nLe_sHJDEeOMF7YEvnQt5g" kind="LoopOperations" formalParam="_ZzlzMPfBEd2TbIfwytOyPA" templateParam="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <FCM:DerivedElement xmi:id="_JqAFUD16Ed-Bk-AHd6yyoA" base_Element="_JmxyMD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_JqEWwD16Ed-Bk-AHd6yyoA" base_Element="_JqB6gD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_RTu-gED2Ed-_DOja_sRgWA" base_Element="_JmxyMD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_RUIAEED2Ed-_DOja_sRgWA" base_Element="_JqB6gD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <C_Cpp:Ptr xmi:id="_5048MED6Ed-_DOja_sRgWA" base_property="_2fcqYED6Ed-_DOja_sRgWA"/>
+ <FCM:DerivedElement xmi:id="_xsrykEJFEd-Ps4Bfh0j9LQ" base_Element="_JmxyMD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_xs0VcEJFEd-Ps4Bfh0j9LQ" base_Element="_JqB6gD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_qBaUMFJEEd-OfYmxqPWG5g" base_Element="_JmxyMD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_qBeloFJEEd-OfYmxqPWG5g" base_Element="_JqB6gD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_t--FUF0NEd-12d_h0i1xhQ" base_Element="_JmxyMD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_t_EzAF0NEd-12d_h0i1xhQ" base_Element="_JqB6gD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:OperatingSystem xmi:id="_1eULwF0NEd-12d_h0i1xhQ" base_Class="_zVs5cF0NEd-12d_h0i1xhQ"/>
+ <FCM:OperatingSystem xmi:id="_3MI_gF0NEd-12d_h0i1xhQ" base_Class="_17yx8F0NEd-12d_h0i1xhQ"/>
+ <FCM:OperatingSystem xmi:id="_8h8mkF0NEd-12d_h0i1xhQ" base_Class="_4RuHgF0NEd-12d_h0i1xhQ"/>
+ <FCM:OperatingSystem xmi:id="_BL7pcF0OEd-12d_h0i1xhQ" base_Class="__1uEcF0NEd-12d_h0i1xhQ"/>
+ <FCM:TargetArchitecture xmi:id="_FYOqwF0OEd-12d_h0i1xhQ" base_Class="_CxQBcF0OEd-12d_h0i1xhQ"/>
+ <FCM:TargetArchitecture xmi:id="_W5gJIF0OEd-12d_h0i1xhQ" base_Class="_KjufQF0OEd-12d_h0i1xhQ"/>
+ <FCM:TargetArchitecture xmi:id="_YHIZ4F0OEd-12d_h0i1xhQ" base_Class="_PFcW8F0OEd-12d_h0i1xhQ"/>
+ <FCM:DerivedElement xmi:id="_FWe6IG4sEd-0rs2VEGIwsA" base_Element="_JmxyMD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_FWlAwG4sEd-0rs2VEGIwsA" base_Element="_JqB6gD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_9Kl8IG4-Ed-J1L578xi-WA" base_Element="_JmxyMD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_9K4QAG4-Ed-J1L578xi-WA" base_Element="_JqB6gD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_Si_2kG5fEd-5CZIeuHpHAg" base_Element="_JmxyMD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_SjXqAG5fEd-5CZIeuHpHAg" base_Element="_JqB6gD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:ConfigOption xmi:id="_tA2KcH7eEd-FNNgSS03RxQ" base_Class="_3myD0H7dEd-FNNgSS03RxQ"/>
+ <FCM:ConfigOption xmi:id="_t2ziEH7eEd-FNNgSS03RxQ" base_Class="_29YhgH7dEd-FNNgSS03RxQ"/>
+ <FCM:ConfigOption xmi:id="_u6LqoH7eEd-FNNgSS03RxQ" base_Class="_7JeHcH7dEd-FNNgSS03RxQ"/>
+ <FCM:Template xmi:id="_3IqLUKE1Ed-r8p-5QgO3cg" base_Element="_pXzxjkJ1Ed-Ps4Bfh0j9LQ" helper="_nLe_sHJDEeOMF7YEvnQt5g" kind="LoopOperations"/>
+ <FCM:Template xmi:id="_9u11IKE1Ed-r8p-5QgO3cg" base_Element="_2bwsEClzEd-eoo60eNyGlg" helper="_nLe_sHJDEeOMF7YEvnQt5g" kind="LoopOperations"/>
+ <FCM:PortKind xmi:id="_H5-aQLqOEd-SedGzMDDkww" base_Class="_AQZZwLqOEd-SedGzMDDkww"/>
+ <FCM:PortKind xmi:id="_KtgR0LqOEd-SedGzMDDkww" base_Class="__nMrwLqNEd-SedGzMDDkww"/>
+ <FCM:ConfigurationProperty xmi:id="_s0fGMMGJEd-Mveea1W_olA" base_Property="_rVfYoMGJEd-Mveea1W_olA"/>
+ <FCM:InteractionComponent xmi:id="_8BUh8NdwEd-ZnqCk2P2ZKg" base_Class="_3itBkNdwEd-ZnqCk2P2ZKg"/>
+ <FCM:Template xmi:id="_CTIeQNdxEd-ZnqCk2P2ZKg" base_Element="_3itBoddwEd-ZnqCk2P2ZKg" helper="_nLe_sHJDEeOMF7YEvnQt5g" kind="LoopOperations"/>
+ <C_Cpp:Typedef xmi:id="_68Aa4No9Ed-wvpj-p-V_QQ" definition="union {&#xA;&lt;%for (ownedOperations) {%>&#xA;struct Op_&lt;%name%> {&#xA;&lt;%for (ownedParameters) {%>&#xA;&lt;%cppType%> &lt;%name%>;&#xA;&lt;%}%>&#xA;} op_&lt;%name%>;&#xA;&lt;%}%>&#xA;};" base_primitivetype="_xOqL0No9Ed-wvpj-p-V_QQ"/>
+ <FCM:InteractionComponent xmi:id="_xaHRQDJKEeCAhMtIsY9HwA" base_Class="_pXzKcEJ1Ed-Ps4Bfh0j9LQ"/>
+ <FCM:Port xmi:id="_MzPjkPNAEeCovO8AYZymZQ" base_Port="_MzO8gPNAEeCovO8AYZymZQ" kind="_wySlkFRxEd6GqrP6fkWBoQ" type="_omxU4PNAEeCovO8AYZymZQ"/>
+ <FCM:Template xmi:id="_c_dkcPNJEeCovO8AYZymZQ" base_Element="_aGt1sPNJEeCovO8AYZymZQ" kind="LoopOperations"/>
+ <FCM:ImplementationProperties xmi:id="_WIe68PQMEeCovO8AYZymZQ" base_Class="__uJRYPNGEeCovO8AYZymZQ"/>
+ <FCM:ContainerRule xmi:id="_F1wZsPQUEeCovO8AYZymZQ" base_Class="__4GvgPQTEeCovO8AYZymZQ" extensionKind="Aggregation" extension="_WhKAAPQUEeCovO8AYZymZQ"/>
+ <FCM:DerivedElement xmi:id="_mKpWAPQXEeCovO8AYZymZQ" base_Element="_tK0poPQWEeCovO8AYZymZQ0" source="_tK0poPQWEeCovO8AYZymZQ"/>
+ <FCM:DerivedElement xmi:id="_mK0VIPQXEeCovO8AYZymZQ" base_Element="_FBMo4PQXEeCovO8AYZymZQ0" source="_FBMo4PQXEeCovO8AYZymZQ"/>
+ <FCM:DerivedElement xmi:id="_mK7C0PQXEeCovO8AYZymZQ" base_Element="_f1HmEPQREeCovO8AYZymZQ0" source="_f1HmEPQREeCovO8AYZymZQ"/>
+ <standard:Create xmi:id="_o4VNAPRTEeCUGrV0Hl4JwQ" base_BehavioralFeature="_lrF08PRTEeCUGrV0Hl4JwQ"/>
+ <FCM:InterceptionRule xmi:id="_qlcF8AJzEeG0Lb1KYG16fA" interceptionSet="__SLXgNtxEd6nqsBVkgJEEA" base_Property="_mvN04PTWEeCn1-FCrfecFg" portSet="__SL-kNtxEd6nqsBVkgJEEA"/>
+ <FCM:Template xmi:id="_QUZxoCQeEeGj_4swHBbKwg" base_Element="_QQPDUSQeEeGj_4swHBbKwg" kind="LoopPorts"/>
+ <C_Cpp:Const xmi:id="_MGjk0CSlEeG6GJ4vU06VYQ" base_property="_Ig_MUCSlEeG6GJ4vU06VYQ"/>
+ <C_Cpp:Include xmi:id="_Yx49gCaeEeG4fZdVXNtoOQ" body="#include &lt;errno.h>" base_class="_JRmo0PNAEeCovO8AYZymZQ"/>
+ <FCM:InteractionComponent xmi:id="_OXit8CfwEeG6iME5Q8XPKw" base_Class="_5J9coCXQEeGX6PuSE-DJlQ"/>
+ <FCM:Port xmi:id="_ATRiESjZEeGFbebITJYb9g" base_Port="_ATRiECjZEeGFbebITJYb9g" kind="_9Fif4FRxEd6GqrP6fkWBoQ">
+ <type xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_Xb-y0AweEd6it_RkGhz_AA"/>
+ </FCM:Port>
+ <FCM:ContainerRule xmi:id="_MS45QCjaEeGFbebITJYb9g" base_Class="_1sCBICjZEeGFbebITJYb9g"/>
+ <FCM:DerivedElement xmi:id="_F-g7sCjbEeGFbebITJYb9g" base_Element="_F-cDMCjbEeGFbebITJYb9g">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_F-l0MCjbEeGFbebITJYb9g" base_Element="_F-iJ0CjbEeGFbebITJYb9g">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:ConfigurationProperty xmi:id="_zVumMCjbEeGFbebITJYb9g" base_Property="_tmNeoCjbEeGFbebITJYb9g"/>
+ <FCM:Port xmi:id="_3NSGwSkAEeGDDbdzqSb4UA" base_Port="_3NSGwCkAEeGDDbdzqSb4UA" kind="_9Fif4FRxEd6GqrP6fkWBoQ">
+ <type xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_Xb-y0AweEd6it_RkGhz_AA"/>
+ </FCM:Port>
+ <FCM:OperatingSystem xmi:id="_r4nVcCp9EeG1Y7BvjQ0T-w" base_Class="_onKy0Cp9EeG1Y7BvjQ0T-w"/>
+ <FCM:Port xmi:id="_-nlmgENqEeGoAtSeIK7WLg" base_Port="_-nk_cENqEeGoAtSeIK7WLg" kind="_qOK0cFR1Ed6GqrP6fkWBoQ" type="_WkkjoPNUEeCovO8AYZymZQ"/>
+ <FCM:Port xmi:id="_9gJEAENvEeGoAtSeIK7WLg" base_Port="_9gIc8ENvEeGoAtSeIK7WLg" kind="_pE6GUFR1Ed6GqrP6fkWBoQ" type="_WkkjoPNUEeCovO8AYZymZQ"/>
+ <FCM:Port xmi:id="_MhIhgENxEeGoAtSeIK7WLg" base_Port="_MhH6cENxEeGoAtSeIK7WLg" kind="_pE6GUFR1Ed6GqrP6fkWBoQ" type="_WkkjoPNUEeCovO8AYZymZQ"/>
+ <FCM:Port xmi:id="_Zd6hAENxEeGoAtSeIK7WLg" base_Port="_Zd558ENxEeGoAtSeIK7WLg" kind="_qOK0cFR1Ed6GqrP6fkWBoQ" type="_WkkjoPNUEeCovO8AYZymZQ"/>
+ <FCM:Port xmi:id="_i6QeoEN8EeGfhclnRyNzoA" base_Port="_i5SOQEN8EeGfhclnRyNzoA" kind="_qOK0cFR1Ed6GqrP6fkWBoQ" type="_WkkjoPNUEeCovO8AYZymZQ"/>
+ <FCM:Port xmi:id="_0KaqgF7pEeGEmrrwB1vhPg" base_Port="_0KY1UF7pEeGEmrrwB1vhPg" kind="_wySlkFRxEd6GqrP6fkWBoQ" type="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <FCM:Template xmi:id="_GNBM8F7tEeGEmrrwB1vhPg" base_Element="_ChD4kF7tEeGEmrrwB1vhPg" helper="_nLe_sHJDEeOMF7YEvnQt5g" kind="LoopOperations"/>
+ <FCM:InteractionComponent xmi:id="_UBcmIF7tEeGEmrrwB1vhPg" base_Class="_Mo2kwF7pEeGEmrrwB1vhPg"/>
+ <FCM:InteractionComponent xmi:id="_Z3Zs4F7tEeGEmrrwB1vhPg" base_Class="_TLShkF7qEeGEmrrwB1vhPg"/>
+ <FCM:PortKind xmi:id="_SrCqQC8qEeKx7OxAiA06uw" base_Class="_GjnlcC8qEeKx7OxAiA06uw"/>
+ <C_Cpp:ExternLibrary xmi:id="_xVwkUNqCEeKrRY-H1kHnNA" base_package="_I19MANYGEd-CgJIavLpOxQ">
+ <libs>pthread</libs>
+ <libs>rt</libs>
+ </C_Cpp:ExternLibrary>
+ <FCM:ProgLanguage xmi:id="_5WrSINzEEeKPWMO32vUmzw" base_Class="_tZgVgNzEEeKPWMO32vUmzw"/>
+ <FCM:ProgLanguage xmi:id="_74ZoANzEEeKPWMO32vUmzw" base_Class="_w2nVkNzEEeKPWMO32vUmzw"/>
+ <FCM:ProgLanguage xmi:id="_9OaYsNzEEeKPWMO32vUmzw" base_Class="_0rU9UNzEEeKPWMO32vUmzw"/>
+ <C_Cpp:NoCodeGen xmi:id="_mCun4BCbEeO2r5QM2KXWbQ" base_element="_ea234NYGEd-CgJIavLpOxQ"/>
+ <SW_Concurrency:SwSchedulableResource xmi:id="_42YPYBn3EeONpa5JgejICQ" base_Classifier="_SiY_AP-EEd6628OhKk_dpg" priorityElements="_rVfYoMGJEd-Mveea1W_olA"/>
+ <C_Cpp:NoCodeGen xmi:id="_ilpvUBqnEeOfW_TxE-lJDw" base_element="_q56toNzEEeKPWMO32vUmzw"/>
+ <FCM:DerivedElement xmi:id="_TJO30CxyEeOMQpc6Y-MAJw" base_Element="_TBScwCxyEeOMQpc6Y-MAJw">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_ns4qsClUEeO4bs_nkcnKOg"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_rlowAFy8EeOwKfaVRwV11Q" base_Element="_rljQcFy8EeOwKfaVRwV11Q">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_ns4qsClUEeO4bs_nkcnKOg"/>
+ </FCM:DerivedElement>
+ <FCM:BindingHelper xmi:id="_nLe_sHJDEeOMF7YEvnQt5g" base_Class="_z2tyoHI3EeOCrdvV8oxOKA"/>
+ <FCM:BindingHelper xmi:id="_7qhTUHkgEeOCpqruXGWNPw" base_Class="_4H-ZoHkgEeOCpqruXGWNPw"/>
+ <FCM:BindingHelper xmi:id="_mFUQALsMEeO0n5elMxN1LQ" base_Class="_g8oe8LsMEeO0n5elMxN1LQ"/>
+ <FCM:CompToOOmapping xmi:id="_45ldwKLvEeSBiP8ZTcBQrQ" base_Class="_pu1x4KLvEeSBiP8ZTcBQrQ"/>
+ <FCM:CompToOOmapping xmi:id="_5zQ3wKLvEeSBiP8ZTcBQrQ" base_Class="_mgbVIKLvEeSBiP8ZTcBQrQ"/>
+ <FCM:CompToOOmapping xmi:id="_66vdMKLvEeSBiP8ZTcBQrQ" base_Class="_nRnhgKLvEeSBiP8ZTcBQrQ"/>
+ <C_Cpp:Const xmi:id="_YKw8INhuEeSqPLTzapTtmQ" base_property="_YHC5wNhuEeSqPLTzapTtmQ"/>
+ <FCM:DerivedElement xmi:id="_QS4L8DUKEeWa95xDrmW0sg" base_Element="_QO65ADUKEeWa95xDrmW0sg" source="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <FCM:DerivedElement xmi:id="_utfFkH2KEeWV7cfiwPN21w" base_Element="_utaNEH2KEeWV7cfiwPN21w">
+ <source xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <C_Cpp:Ptr xmi:id="_utwyYH2KEeWV7cfiwPN21w" base_parameter="_utoPgH2KEeWV7cfiwPN21w"/>
+ <C_Cpp:Ptr xmi:id="_ut3gEH2KEeWV7cfiwPN21w" base_parameter="_utyAgH2KEeWV7cfiwPN21w"/>
+ <FCM:DerivedElement xmi:id="_oJglwH2LEeWV7cfiwPN21w" base_Element="_oJcUUH2LEeWV7cfiwPN21w">
+ <source xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_7TuzoCUUEd6YR-YzyVnLng"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_AsyHQH2MEeWV7cfiwPN21w" base_Element="_AsqygH2MEeWV7cfiwPN21w" source="_ZzlzMPfBEd2TbIfwytOyPA"/>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/corec.di b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/corec.di
new file mode 100644
index 00000000000..b319be2de9c
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/corec.di
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi" xmlns:history="http://www.eclipse.org/papyrus/0.7.0/controlmode">
+ <di:SashWindowsMngr xmi:id="_pKTSkNYFEd-CgJIavLpOxQ">
+ <pageList xmi:id="_pKTSkdYFEd-CgJIavLpOxQ">
+ <availablePage xmi:id="_pKTSktYFEd-CgJIavLpOxQ">
+ <emfPageIdentifier href="corec.notation#_FYAkIG4sEd-0rs2VEGIwsA"/>
+ </availablePage>
+ <availablePage xmi:id="_A6ULItYGEd-CgJIavLpOxQ">
+ <emfPageIdentifier href="corec.notation#_A6ULINYGEd-CgJIavLpOxQ"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="corec.notation#_glyeMK8qEeCXIcykFPsB8Q"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="corec.notation#_DtdykK8rEeCXIcykFPsB8Q"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="corec.notation#_PIvc4LabEeCj_-LEBuGpmA"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="corec.notation#_0IaT8LnYEeCxXoyQxQ47PQ"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="corec.notation#_SstwYPEnEeCIafpoJVk7CQ"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="corec.notation#_eblvwPM_EeCovO8AYZymZQ"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="corec.notation#_hyLz8PNGEeCovO8AYZymZQ"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="corec.notation#_cVCGYPNUEeCovO8AYZymZQ"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="corec.notation#_g6Yg0CnOEeGxrprK9wB9iA"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="corec.notation#_OhgzgD8AEeGJ6KSvhYhYuQ"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="corec.notation#_DfG8kF7qEeGEmrrwB1vhPg"/>
+ </availablePage>
+ </pageList>
+ <sashModel xmi:id="_pKTSk9YFEd-CgJIavLpOxQ" currentSelection="_pKTSldYFEd-CgJIavLpOxQ">
+ <windows xmi:id="_pKTSlNYFEd-CgJIavLpOxQ">
+ <children xsi:type="di:TabFolder" xmi:id="_pKTSldYFEd-CgJIavLpOxQ">
+ <children>
+ <emfPageIdentifier href="corec.notation#_glyeMK8qEeCXIcykFPsB8Q"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="corec.notation#_DtdykK8rEeCXIcykFPsB8Q"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="corec.notation#_PIvc4LabEeCj_-LEBuGpmA"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="corec.notation#_0IaT8LnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="corec.notation#_SstwYPEnEeCIafpoJVk7CQ"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="corec.notation#_g6Yg0CnOEeGxrprK9wB9iA"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="corec.notation#_OhgzgD8AEeGJ6KSvhYhYuQ"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="corec.notation#_cVCGYPNUEeCovO8AYZymZQ"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="corec.notation#_hyLz8PNGEeCovO8AYZymZQ"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="corec.notation#_DfG8kF7qEeGEmrrwB1vhPg"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="corec.notation#_FYAkIG4sEd-0rs2VEGIwsA"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="corec.notation#_eblvwPM_EeCovO8AYZymZQ"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="corec.notation#_A6ULINYGEd-CgJIavLpOxQ"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+ </di:SashWindowsMngr>
+ <history:ControledResource xmi:id="_pKT5oNYFEd-CgJIavLpOxQ"/>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/corec.notation b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/corec.notation
new file mode 100644
index 00000000000..ce60a488a78
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/corec.notation
@@ -0,0 +1,3896 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML">
+ <notation:Diagram xmi:id="_FYAkIG4sEd-0rs2VEGIwsA" type="CompositeStructure" name="Composite Async &amp; sync call hierarchy" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_FYAkIW4sEd-0rs2VEGIwsA" type="2073" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_FYAkIm4sEd-0rs2VEGIwsA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_FYAkI24sEd-0rs2VEGIwsA" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FYAkJG4sEd-0rs2VEGIwsA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FYAkJW4sEd-0rs2VEGIwsA" type="3069" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AEHTkDrTEeGKkdk54CX6PQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8kEM4DrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8kEz8DrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8kEz8TrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8kEz8jrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8kEz8zrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FYAkJm4sEd-0rs2VEGIwsA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__EG7cF7qEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Uh8jQFbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FYAkJ24sEd-0rs2VEGIwsA" x="-56"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FYBLMG4sEd-0rs2VEGIwsA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FYBLMW4sEd-0rs2VEGIwsA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FYBLMm4sEd-0rs2VEGIwsA" x="110" y="45"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_mIpj8Ns8Ed2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FYBLM24sEd-0rs2VEGIwsA" x="225" y="90" width="120" height="84"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FYBLNG4sEd-0rs2VEGIwsA" type="2073" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_FYBLNW4sEd-0rs2VEGIwsA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_FYBLNm4sEd-0rs2VEGIwsA" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FYBLN24sEd-0rs2VEGIwsA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FYBLOG4sEd-0rs2VEGIwsA" type="3069" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4qWbQDrTEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_48kMoDrTEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_48kMoTrTEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_48kMojrTEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_48kMozrTEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_48kMpDrTEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FYBLOW4sEd-0rs2VEGIwsA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__2FK8F7qEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VHb18FbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FYBLOm4sEd-0rs2VEGIwsA" x="25" y="1"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FYBLO24sEd-0rs2VEGIwsA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FYBLPG4sEd-0rs2VEGIwsA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FYBLPW4sEd-0rs2VEGIwsA" x="-10" y="44"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_j29X4NttEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FYBLPm4sEd-0rs2VEGIwsA" x="420" y="90" width="121" height="79"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cTlm4G5fEd-5CZIeuHpHAg" type="2073" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cTm1AG5fEd-5CZIeuHpHAg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cTm1AW5fEd-5CZIeuHpHAg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cTm1Am5fEd-5CZIeuHpHAg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cTm1A25fEd-5CZIeuHpHAg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cTm1BG5fEd-5CZIeuHpHAg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cTm1BW5fEd-5CZIeuHpHAg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cTm1Bm5fEd-5CZIeuHpHAg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cTm1B25fEd-5CZIeuHpHAg" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cTm1CG5fEd-5CZIeuHpHAg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cnOc0DrVEeGMCcwsbpLuFA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cnQ5EDrVEeGMCcwsbpLuFA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cnQ5ETrVEeGMCcwsbpLuFA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cnQ5EjrVEeGMCcwsbpLuFA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cnQ5EzrVEeGMCcwsbpLuFA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cnQ5FDrVEeGMCcwsbpLuFA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cnRgIDrVEeGMCcwsbpLuFA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2J1UYDrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2ZuKgDrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2ZuxkDrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2ZuxkTrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2ZuxkjrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2ZuxkzrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cnRgITrVEeGMCcwsbpLuFA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sbFK0F7qEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XaUekFbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="20"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cnRgIjrVEeGMCcwsbpLuFA" x="19"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cnSHMDrVEeGMCcwsbpLuFA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cnSHMTrVEeGMCcwsbpLuFA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cnOc0TrVEeGMCcwsbpLuFA" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cnSuQDrVEeGMCcwsbpLuFA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cnSuQjrVEeGMCcwsbpLuFA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cnSuQzrVEeGMCcwsbpLuFA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cnSuRDrVEeGMCcwsbpLuFA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cnSuRTrVEeGMCcwsbpLuFA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cnTVUDrVEeGMCcwsbpLuFA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cnTVUTrVEeGMCcwsbpLuFA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yOmN4DrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yixHEDrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yixuIDrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yixuITrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yixuIjrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yixuIzrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cnTVUjrVEeGMCcwsbpLuFA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3vXigF7qEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_W6BN4FbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="20"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cnTVUzrVEeGMCcwsbpLuFA" x="-25"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cnTVVDrVEeGMCcwsbpLuFA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cnTVVTrVEeGMCcwsbpLuFA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cnSuQTrVEeGMCcwsbpLuFA" x="106" y="36"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_KxQBELuXEd2TTr3gJIvazw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cTmN8G5fEd-5CZIeuHpHAg" x="225" y="270" width="116" height="76"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nkmBEG5fEd-5CZIeuHpHAg" type="2073" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nkmoIG5fEd-5CZIeuHpHAg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nknPMG5fEd-5CZIeuHpHAg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nknPMW5fEd-5CZIeuHpHAg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nknPMm5fEd-5CZIeuHpHAg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nknPM25fEd-5CZIeuHpHAg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nknPNG5fEd-5CZIeuHpHAg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_nknPNW5fEd-5CZIeuHpHAg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nknPNm5fEd-5CZIeuHpHAg" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nknPN25fEd-5CZIeuHpHAg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_hZRPgDrVEeGMCcwsbpLuFA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hZR2kDrVEeGMCcwsbpLuFA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hZR2kTrVEeGMCcwsbpLuFA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hZR2kjrVEeGMCcwsbpLuFA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hZR2kzrVEeGMCcwsbpLuFA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hZR2lDrVEeGMCcwsbpLuFA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hZR2lTrVEeGMCcwsbpLuFA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3C2AADrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3cOJUDrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3cOJUTrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3cOJUjrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3cOJUzrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3cOJVDrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hZR2ljrVEeGMCcwsbpLuFA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s2NAkF7qEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_whZf8F7qEeGEmrrwB1vhPg" key="CustomAppearance_MaskValue" value="52"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hZR2lzrVEeGMCcwsbpLuFA" x="19"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hZR2mDrVEeGMCcwsbpLuFA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hZSdoDrVEeGMCcwsbpLuFA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hZRPgTrVEeGMCcwsbpLuFA" x="-10" y="33"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_hZSdoTrVEeGMCcwsbpLuFA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hZTEsDrVEeGMCcwsbpLuFA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hZTEsTrVEeGMCcwsbpLuFA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hZTEsjrVEeGMCcwsbpLuFA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hZTEszrVEeGMCcwsbpLuFA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hZTEtDrVEeGMCcwsbpLuFA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hZTEtTrVEeGMCcwsbpLuFA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4TtK8DrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4okAoDrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4okAoTrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4okAojrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4okAozrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4oknsDrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hZTEtjrVEeGMCcwsbpLuFA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_24F8QF7qEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2_b6YF7qEeGEmrrwB1vhPg" key="CustomAppearance_MaskValue" value="52"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hZTEtzrVEeGMCcwsbpLuFA" x="-30"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hZTEuDrVEeGMCcwsbpLuFA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hZTrwDrVEeGMCcwsbpLuFA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hZSdojrVEeGMCcwsbpLuFA" x="111" y="33"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_Whe8EClYEd-eoo60eNyGlg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nkmBEW5fEd-5CZIeuHpHAg" x="225" y="390" width="121" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_HJAqEG5gEd-5CZIeuHpHAg" type="2073" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HJBRIG5gEd-5CZIeuHpHAg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HJBRIW5gEd-5CZIeuHpHAg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HJBRIm5gEd-5CZIeuHpHAg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HJBRI25gEd-5CZIeuHpHAg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HJB4MG5gEd-5CZIeuHpHAg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HJB4MW5gEd-5CZIeuHpHAg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_HJB4Mm5gEd-5CZIeuHpHAg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_HJB4M25gEd-5CZIeuHpHAg" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HJB4NG5gEd-5CZIeuHpHAg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_iOXEcDrVEeGMCcwsbpLuFA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iOXrgDrVEeGMCcwsbpLuFA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iOXrgTrVEeGMCcwsbpLuFA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iOXrgjrVEeGMCcwsbpLuFA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iOXrgzrVEeGMCcwsbpLuFA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iOXrhDrVEeGMCcwsbpLuFA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iOXrhTrVEeGMCcwsbpLuFA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5dF04DrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_56NOsDrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_56NOsTrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_56NOsjrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_56N1wDrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_56N1wTrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iOXrhjrVEeGMCcwsbpLuFA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BXMYYF7rEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VrqkYFbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="20"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iOXrhzrVEeGMCcwsbpLuFA" x="25"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iOXriDrVEeGMCcwsbpLuFA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iOXriTrVEeGMCcwsbpLuFA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iOXEcTrVEeGMCcwsbpLuFA" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_iOYSkDrVEeGMCcwsbpLuFA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iOYSkjrVEeGMCcwsbpLuFA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iOY5oDrVEeGMCcwsbpLuFA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iOY5oTrVEeGMCcwsbpLuFA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iOY5ojrVEeGMCcwsbpLuFA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iOY5ozrVEeGMCcwsbpLuFA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iOY5pDrVEeGMCcwsbpLuFA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6tcCcDrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7BnisDrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7BoJwDrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7BoJwTrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7BoJwjrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7BoJwzrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iOY5pTrVEeGMCcwsbpLuFA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tskA0F7qEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WOFU8FbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="20"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iOY5pjrVEeGMCcwsbpLuFA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iOY5pzrVEeGMCcwsbpLuFA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iOY5qDrVEeGMCcwsbpLuFA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iOYSkTrVEeGMCcwsbpLuFA" x="111" y="36"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_Zx2ZUA1jEd6tvthBDl600Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HJAqEW5gEd-5CZIeuHpHAg" x="420" y="270" width="121" height="76"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_H_CTIG5gEd-5CZIeuHpHAg" type="2073" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H_C6MG5gEd-5CZIeuHpHAg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H_C6MW5gEd-5CZIeuHpHAg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H_C6Mm5gEd-5CZIeuHpHAg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H_C6M25gEd-5CZIeuHpHAg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H_C6NG5gEd-5CZIeuHpHAg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H_C6NW5gEd-5CZIeuHpHAg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_H_C6Nm5gEd-5CZIeuHpHAg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_H_C6N25gEd-5CZIeuHpHAg" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H_C6OG5gEd-5CZIeuHpHAg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kf30EDrVEeGMCcwsbpLuFA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kf4bIDrVEeGMCcwsbpLuFA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kf4bITrVEeGMCcwsbpLuFA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kf4bIjrVEeGMCcwsbpLuFA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kf4bIzrVEeGMCcwsbpLuFA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kf4bJDrVEeGMCcwsbpLuFA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kf4bJTrVEeGMCcwsbpLuFA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_o5tiIDrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pQdOMDrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pQdOMTrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pQdOMjrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pQd1QDrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pQd1QTrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kf4bJjrVEeGMCcwsbpLuFA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EmPuUF7rEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GfK-0F7rEeGEmrrwB1vhPg" key="CustomAppearance_MaskValue" value="52"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kf4bJzrVEeGMCcwsbpLuFA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kf4bKDrVEeGMCcwsbpLuFA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kf4bKTrVEeGMCcwsbpLuFA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kf30ETrVEeGMCcwsbpLuFA" x="-10" y="33"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kf5CMDrVEeGMCcwsbpLuFA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kf5pQDrVEeGMCcwsbpLuFA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kf5pQTrVEeGMCcwsbpLuFA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kf5pQjrVEeGMCcwsbpLuFA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kf5pQzrVEeGMCcwsbpLuFA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kf5pRDrVEeGMCcwsbpLuFA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kf5pRTrVEeGMCcwsbpLuFA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_noqJ8DrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oBjyIDrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oBjyITrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oBjyIjrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oBkZMDrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oBkZMTrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kf5pRjrVEeGMCcwsbpLuFA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tXAAgF7qEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EFa5MF7rEeGEmrrwB1vhPg" key="CustomAppearance_MaskValue" value="52"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kf5pRzrVEeGMCcwsbpLuFA" x="25"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kf5pSDrVEeGMCcwsbpLuFA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kf5pSTrVEeGMCcwsbpLuFA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kf5CMTrVEeGMCcwsbpLuFA" x="111" y="33"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_jOU60A1jEd6tvthBDl600Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H_CTIW5gEd-5CZIeuHpHAg" x="420" y="390" width="121" height="70"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__rQAQDrVEeGMCcwsbpLuFA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__rQnUDrVEeGMCcwsbpLuFA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__rQnUTrVEeGMCcwsbpLuFA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__rQnUjrVEeGMCcwsbpLuFA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__rQnUzrVEeGMCcwsbpLuFA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__rQnVDrVEeGMCcwsbpLuFA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__rQnVTrVEeGMCcwsbpLuFA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="__rQnVjrVEeGMCcwsbpLuFA" type="5192"/>
+ <element xmi:type="uml:Comment" href="corec.uml#__oxUADrVEeGMCcwsbpLuFA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__rQAQTrVEeGMCcwsbpLuFA" x="596" y="102" width="242"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2oWskF7pEeGEmrrwB1vhPg" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2oX6sF7pEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2oX6sV7pEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2oX6sl7pEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2oX6s17pEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2oX6tF7pEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2oX6tV7pEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2oYhwF7pEeGEmrrwB1vhPg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2oYhwV7pEeGEmrrwB1vhPg" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2oYhwl7pEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2oYhw17pEeGEmrrwB1vhPg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_5wCPMF7pEeGEmrrwB1vhPg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5wC2QF7pEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5wC2QV7pEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5wC2Ql7pEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5wC2Q17pEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5wC2RF7pEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5wC2RV7pEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8uIYAF7pEeGEmrrwB1vhPg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9B96AF7pEeGEmrrwB1vhPg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9B96AV7pEeGEmrrwB1vhPg" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9B96Al7pEeGEmrrwB1vhPg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9B96A17pEeGEmrrwB1vhPg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9B96BF7pEeGEmrrwB1vhPg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5wC2Rl7pEeGEmrrwB1vhPg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-VsWQF7qEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZVGwQFbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5wC2R17pEeGEmrrwB1vhPg" x="-99"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5wC2SF7pEeGEmrrwB1vhPg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5wC2SV7pEeGEmrrwB1vhPg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_0KY1UF7pEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5wCPMV7pEeGEmrrwB1vhPg" x="108" y="45"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_0KYOQF7pEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2oWskV7pEeGEmrrwB1vhPg" x="36" y="90" width="118" height="82"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TLmDkF7qEeGEmrrwB1vhPg" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TLmqoF7qEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TLmqoV7qEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TLmqol7qEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TLmqo17qEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TLmqpF7qEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TLmqpV7qEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TLnRsF7qEeGEmrrwB1vhPg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TLnRsV7qEeGEmrrwB1vhPg" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TLnRsl7qEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TLnRs17qEeGEmrrwB1vhPg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ewlwwF7qEeGEmrrwB1vhPg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ewmX0F7qEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ewmX0V7qEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ewmX0l7qEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ewmX017qEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ewmX1F7qEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ewmX1V7qEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nfCuoF7qEeGEmrrwB1vhPg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_n3u7cF7qEeGEmrrwB1vhPg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_n3u7cV7qEeGEmrrwB1vhPg" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_n3u7cl7qEeGEmrrwB1vhPg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_n3u7c17qEeGEmrrwB1vhPg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_n3u7dF7qEeGEmrrwB1vhPg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ewmX1l7qEeGEmrrwB1vhPg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_08xfEF7qEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1Gzk0F7qEeGEmrrwB1vhPg" key="CustomAppearance_MaskValue" value="52"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ewmX117qEeGEmrrwB1vhPg" x="-63"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ewmX2F7qEeGEmrrwB1vhPg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ewmX2V7qEeGEmrrwB1vhPg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_0KY1UF7pEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ewlwwV7qEeGEmrrwB1vhPg" x="106" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ewm-4F7qEeGEmrrwB1vhPg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ewm-4l7qEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ewm-417qEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ewm-5F7qEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ewm-5V7qEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ewm-5l7qEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ewm-517qEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lHhdoF7qEeGEmrrwB1vhPg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lvZV8F7qEeGEmrrwB1vhPg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lvZV8V7qEeGEmrrwB1vhPg" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lvZV8l7qEeGEmrrwB1vhPg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lvZV817qEeGEmrrwB1vhPg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lvZV9F7qEeGEmrrwB1vhPg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ewnl8F7qEeGEmrrwB1vhPg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_x3Ij0F7qEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YVUHMFbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="20"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ewnl8V7qEeGEmrrwB1vhPg" x="17"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ewnl8l7qEeGEmrrwB1vhPg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ewnl817qEeGEmrrwB1vhPg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ewm-4V7qEeGEmrrwB1vhPg" x="-10" y="36"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_TLShkF7qEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TLmDkV7qEeGEmrrwB1vhPg" x="38" y="270" width="116" height="73"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_FYBLP24sEd-0rs2VEGIwsA"/>
+ <element xmi:type="uml:Package" href="corec.uml#_mMCK8PiPEd2UhpY2Y3WUyg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_dNEMkG5fEd-5CZIeuHpHAg" type="4015" source="_cTlm4G5fEd-5CZIeuHpHAg" target="_FYAkIW4sEd-0rs2VEGIwsA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dNFasG5fEd-5CZIeuHpHAg" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dNGo0G5fEd-5CZIeuHpHAg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dNEMkW5fEd-5CZIeuHpHAg" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corec.uml#_1H2JwDBEEd6V16eboHV1gw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dNEMkm5fEd-5CZIeuHpHAg" points="[-8, -20, 58, 145]$[-50, -123, 16, 42]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_drspUG5fEd-5CZIeuHpHAg" type="4015" source="_cTlm4G5fEd-5CZIeuHpHAg" target="_FYBLNG4sEd-0rs2VEGIwsA" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_drtQYG5fEd-5CZIeuHpHAg" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_drtQYW5fEd-5CZIeuHpHAg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_drspUW5fEd-5CZIeuHpHAg" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corec.uml#_0KzSsDBEEd6V16eboHV1gw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_drspUm5fEd-5CZIeuHpHAg" points="[41, -38, -136, 105]$[41, -92, -136, 51]$[172, -92, -5, 51]$[172, -139, -5, 4]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jflTgG5fEd-5CZIeuHpHAg" id="(0.3305785123966942,0.9493670886075949)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_pOq9QG5fEd-5CZIeuHpHAg" type="4015" source="_nkmBEG5fEd-5CZIeuHpHAg" target="_cTlm4G5fEd-5CZIeuHpHAg" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qQj4EG5fEd-5CZIeuHpHAg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qQj4EW5fEd-5CZIeuHpHAg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qQj4Em5fEd-5CZIeuHpHAg" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qQj4E25fEd-5CZIeuHpHAg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qQj4FG5fEd-5CZIeuHpHAg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qQj4FW5fEd-5CZIeuHpHAg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_pOrkUG5fEd-5CZIeuHpHAg" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_pOrkUW5fEd-5CZIeuHpHAg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_pOq9QW5fEd-5CZIeuHpHAg" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corec.uml#_lYOSkClzEd-eoo60eNyGlg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pOq9Qm5fEd-5CZIeuHpHAg" points="[1, -40, 0, 83]$[0, -85, -1, 38]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_IsGNcG5gEd-5CZIeuHpHAg" type="4015" source="_H_CTIG5gEd-5CZIeuHpHAg" target="_HJAqEG5gEd-5CZIeuHpHAg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_IsPXYG5gEd-5CZIeuHpHAg" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IsPXYW5gEd-5CZIeuHpHAg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_IsGNcW5gEd-5CZIeuHpHAg" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corec.uml#_lm4GkA1jEd6tvthBDl600Q"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IsGNcm5gEd-5CZIeuHpHAg" points="[-4, -20, 17, 90]$[-18, -90, 3, 20]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_KGqG8G5gEd-5CZIeuHpHAg" type="4015" source="_HJAqEG5gEd-5CZIeuHpHAg" target="_FYAkIW4sEd-0rs2VEGIwsA" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_KGrVEG5gEd-5CZIeuHpHAg" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KGrVEW5gEd-5CZIeuHpHAg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_KGqG8W5gEd-5CZIeuHpHAg" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corec.uml#_T1zr4DBFEd6V16eboHV1gw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KGqG8m5gEd-5CZIeuHpHAg" points="[-31, -18, 261, 147]$[-232, -132, 60, 33]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Kc5csG5gEd-5CZIeuHpHAg" type="4015" source="_HJAqEG5gEd-5CZIeuHpHAg" target="_FYBLNG4sEd-0rs2VEGIwsA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Kc6DwG5gEd-5CZIeuHpHAg" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Kc6DwW5gEd-5CZIeuHpHAg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Kc5csW5gEd-5CZIeuHpHAg" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corec.uml#_STdvYDBFEd6V16eboHV1gw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Kc5csm5gEd-5CZIeuHpHAg" points="[-12, -23, 74, 146]$[-66, -129, 20, 40]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_DjnY8DrWEeGMCcwsbpLuFA" type="4002" source="__rQAQDrVEeGMCcwsbpLuFA" target="_FYBLNG4sEd-0rs2VEGIwsA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_DjoAADrWEeGMCcwsbpLuFA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_DjoAATrWEeGMCcwsbpLuFA" points="[-19, 1, 78, 0]$[-74, 3, 23, 2]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DjzmMDrWEeGMCcwsbpLuFA" id="(0.11801242236024845,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DjzmMTrWEeGMCcwsbpLuFA" id="(0.8099173553719008,0.5443037974683544)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WhiEoF7qEeGEmrrwB1vhPg" type="4015" source="_TLmDkF7qEeGEmrrwB1vhPg" target="_2oWskF7pEeGEmrrwB1vhPg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_WhirsF7qEeGEmrrwB1vhPg" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WhirsV7qEeGEmrrwB1vhPg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_WhiEoV7qEeGEmrrwB1vhPg" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corec.uml#_WhUpQF7qEeGEmrrwB1vhPg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WhiEol7qEeGEmrrwB1vhPg" points="[1, -4, 0, 109]$[-3, -107, -4, 6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Wh9icF7qEeGEmrrwB1vhPg" id="(0.3673469387755102,0.06779661016949153)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Wh9icV7qEeGEmrrwB1vhPg" id="(0.3305084745762712,0.926829268292683)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XgiDgF7qEeGEmrrwB1vhPg" type="4015" source="_TLmDkF7qEeGEmrrwB1vhPg" target="_FYBLNG4sEd-0rs2VEGIwsA" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_XgiqkF7qEeGEmrrwB1vhPg" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XgiqkV7qEeGEmrrwB1vhPg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_XgiDgV7qEeGEmrrwB1vhPg" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corec.uml#_XgUoIF7qEeGEmrrwB1vhPg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XgiDgl7qEeGEmrrwB1vhPg" points="[17, -6, -338, 114]$[349, -112, -6, 8]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Xg9hUF7qEeGEmrrwB1vhPg" id="(0.6632653061224489,0.1016949152542373)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Xg9hUV7qEeGEmrrwB1vhPg" id="(0.3140495867768595,0.8987341772151899)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_A6ULINYGEd-CgJIavLpOxQ" type="PapyrusUMLClassDiagram" name="Class: ContainerServices" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_ByS8ANYGEd-CgJIavLpOxQ" type="2008" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ByUKINYGEd-CgJIavLpOxQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ByUKIdYGEd-CgJIavLpOxQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ByUKItYGEd-CgJIavLpOxQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ByUKI9YGEd-CgJIavLpOxQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ByUKJNYGEd-CgJIavLpOxQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ByUxMNYGEd-CgJIavLpOxQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GTjzUCXVEeGX6PuSE-DJlQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4nx5IM0zEeGV96JAv8cWdw" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4nx5Ic0zEeGV96JAv8cWdw" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4nx5Is0zEeGV96JAv8cWdw" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4nx5I80zEeGV96JAv8cWdw" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4nx5JM0zEeGV96JAv8cWdw" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ByUxMdYGEd-CgJIavLpOxQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ByUxMtYGEd-CgJIavLpOxQ" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_5X2YACVqEeGXBt65HZzY7g" type="3012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oG9wEFeJEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tfIHkFeJEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <element xmi:type="uml:Port" href="corec.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5X2YASVqEeGXBt65HZzY7g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_60xB8CVqEeGXBt65HZzY7g" type="3012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qGsMIFeJEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qRYZMFeJEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="corec.uml#_rVfYoMGJEd-Mveea1W_olA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_60xB8SVqEeGXBt65HZzY7g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_r31CwCXREeGX6PuSE-DJlQ" type="3012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rmOsQFeJEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rxObUFeJEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <element xmi:type="uml:Port" href="corec.uml#_ZjdOAP-EEd6628OhKk_dpg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_r31CwSXREeGX6PuSE-DJlQ"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ByUxM9YGEd-CgJIavLpOxQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ByUxNNYGEd-CgJIavLpOxQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ByUxNdYGEd-CgJIavLpOxQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ByUxNtYGEd-CgJIavLpOxQ" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_s9ecMCXREeGX6PuSE-DJlQ" type="3013" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="corec.uml#_yv198P-EEd6628OhKk_dpg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_s9ecMSXREeGX6PuSE-DJlQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_s9fDQCXREeGX6PuSE-DJlQ" type="3013" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="corec.uml#_JmxyMD16Ed-Bk-AHd6yyoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_s9fDQSXREeGX6PuSE-DJlQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_s9fqUCXREeGX6PuSE-DJlQ" type="3013" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="corec.uml#_JqB6gD16Ed-Bk-AHd6yyoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_s9fqUSXREeGX6PuSE-DJlQ"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ByUxN9YGEd-CgJIavLpOxQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ByUxONYGEd-CgJIavLpOxQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ByUxOdYGEd-CgJIavLpOxQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ByUxOtYGEd-CgJIavLpOxQ" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ByUxO9YGEd-CgJIavLpOxQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ByUxPNYGEd-CgJIavLpOxQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ByUxPdYGEd-CgJIavLpOxQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_SiY_AP-EEd6628OhKk_dpg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ByS8AdYGEd-CgJIavLpOxQ" x="99" y="108" width="190" height="145"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_D0xKENYGEd-CgJIavLpOxQ" type="2008" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D0xxINYGEd-CgJIavLpOxQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D0xxIdYGEd-CgJIavLpOxQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D0xxItYGEd-CgJIavLpOxQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D0xxI9YGEd-CgJIavLpOxQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D0xxJNYGEd-CgJIavLpOxQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D0xxJdYGEd-CgJIavLpOxQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_D0xxJtYGEd-CgJIavLpOxQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_D0xxJ9YGEd-CgJIavLpOxQ" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_OSicECXVEeGX6PuSE-DJlQ" type="3012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_l2kawFeJEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_v7LTQFeJEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <element xmi:type="uml:Port" href="corec.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OSicESXVEeGX6PuSE-DJlQ"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_D0xxKNYGEd-CgJIavLpOxQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_D0xxKdYGEd-CgJIavLpOxQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D0xxKtYGEd-CgJIavLpOxQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_D0xxK9YGEd-CgJIavLpOxQ" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_D0xxLNYGEd-CgJIavLpOxQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_D0xxLdYGEd-CgJIavLpOxQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D0xxLtYGEd-CgJIavLpOxQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_D0xxL9YGEd-CgJIavLpOxQ" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_D0xxMNYGEd-CgJIavLpOxQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_D0xxMdYGEd-CgJIavLpOxQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D0xxMtYGEd-CgJIavLpOxQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D0xKEdYGEd-CgJIavLpOxQ" x="99" y="9" width="193" height="55"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_EhiDELaaEeCj_-LEBuGpmA" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EhiqILaaEeCj_-LEBuGpmA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EhiqIbaaEeCj_-LEBuGpmA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EhjRMLaaEeCj_-LEBuGpmA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EhjRMbaaEeCj_-LEBuGpmA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EhjRMraaEeCj_-LEBuGpmA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EhjRM7aaEeCj_-LEBuGpmA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_EhjRNLaaEeCj_-LEBuGpmA" type="5038"/>
+ <element xmi:type="uml:Comment" href="corec.uml#_hGEOAMT8Ed-zx4a_r4xAYw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EhiDEbaaEeCj_-LEBuGpmA" x="325" y="13" width="343" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_elme8PQREeCovO8AYZymZQ" type="2004" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_elnGAPQREeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_elnGAfQREeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_elntEPQREeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_elntEfQREeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_elntEvQREeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_elntE_QREeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_elntFPQREeCovO8AYZymZQ" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_elntFfQREeCovO8AYZymZQ" visible="false" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_elntFvQREeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_elntF_QREeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_elntGPQREeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_elntGfQREeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_elntGvQREeCovO8AYZymZQ" type="7007">
+ <children xmi:type="notation:Shape" xmi:id="_f1SlMPQREeCovO8AYZymZQ" type="3007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rsca8FjnEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rvvmkFjnEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="corec.uml#_f1HmEPQREeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_f1SlMfQREeCovO8AYZymZQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_elntG_QREeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_elntHPQREeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_elntHfQREeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_elntHvQREeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_eloUIPQREeCovO8AYZymZQ" visible="false" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_eloUIfQREeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_eloUIvQREeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_eloUI_QREeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eloUJPQREeCovO8AYZymZQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="corec.uml#_elkpwPQREeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_elme8fQREeCovO8AYZymZQ" x="459" y="201" width="208" height="82"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_S9Kp8PQWEeCovO8AYZymZQ" type="2004" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_S9LRAPQWEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_S9LRAfQWEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_S9LRAvQWEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_S9LRA_QWEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_S9LRBPQWEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_S9LRBfQWEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_S9LRBvQWEeCovO8AYZymZQ" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_S9LRB_QWEeCovO8AYZymZQ" visible="false" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_S9LRCPQWEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_S9LRCfQWEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_S9LRCvQWEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_S9LRC_QWEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_S9L4EPQWEeCovO8AYZymZQ" type="7007">
+ <children xmi:type="notation:Shape" xmi:id="_tK13wPQWEeCovO8AYZymZQ" type="3007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uQYXUFjnEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uT-d4FjnEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="corec.uml#_tK0poPQWEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tK13wfQWEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FBOeEPQXEeCovO8AYZymZQ" type="3007" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="corec.uml#_FBMo4PQXEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FBOeEfQXEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SaK_4CUREeGXBt65HZzY7g" type="3007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uQZlcFjnEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uT_E8FjnEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="corec.uml#_f1HmEPQREeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SaK_4SUREeGXBt65HZzY7g"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_S9L4EfQWEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_S9L4EvQWEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_S9L4E_QWEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_S9L4FPQWEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_S9L4FfQWEeCovO8AYZymZQ" visible="false" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_S9L4FvQWEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_S9L4F_QWEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_S9L4GPQWEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_S9L4GfQWEeCovO8AYZymZQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="corec.uml#_omxU4PNAEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_S9Kp8fQWEeCovO8AYZymZQ" x="459" y="324" width="451" height="91"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_DZTowCUREeGXBt65HZzY7g" type="2004" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DZUP0SUREeGXBt65HZzY7g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DZUP0iUREeGXBt65HZzY7g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DZU24CUREeGXBt65HZzY7g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DZU24SUREeGXBt65HZzY7g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DZU24iUREeGXBt65HZzY7g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DZU24yUREeGXBt65HZzY7g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_DZU25CUREeGXBt65HZzY7g" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_DZU25SUREeGXBt65HZzY7g" visible="false" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_DZU25iUREeGXBt65HZzY7g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_DZU25yUREeGXBt65HZzY7g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_DZU26CUREeGXBt65HZzY7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DZU26SUREeGXBt65HZzY7g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_DZU26iUREeGXBt65HZzY7g" type="7007">
+ <children xmi:type="notation:Shape" xmi:id="_Et42ECUREeGXBt65HZzY7g" type="3007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rsdCAVjnEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rvw0sFjnEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="corec.uml#_tK0poPQWEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Et42ESUREeGXBt65HZzY7g" x="58" y="3"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_DZU26yUREeGXBt65HZzY7g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_DZU27CUREeGXBt65HZzY7g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_DZU27SUREeGXBt65HZzY7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DZU27iUREeGXBt65HZzY7g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_DZU27yUREeGXBt65HZzY7g" visible="false" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_DZU28CUREeGXBt65HZzY7g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_DZU28SUREeGXBt65HZzY7g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_DZU28iUREeGXBt65HZzY7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DZU28yUREeGXBt65HZzY7g"/>
+ </children>
+ <element xmi:type="uml:Interface" href="corec.uml#_DY2VwCUREeGXBt65HZzY7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DZUP0CUREeGXBt65HZzY7g" x="702" y="201" width="208" height="79"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_5MArECXQEeGX6PuSE-DJlQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5MBSICXQEeGX6PuSE-DJlQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5MBSISXQEeGX6PuSE-DJlQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5MBSIiXQEeGX6PuSE-DJlQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5MB5MCXQEeGX6PuSE-DJlQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5MB5MSXQEeGX6PuSE-DJlQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5MB5MiXQEeGX6PuSE-DJlQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5MB5MyXQEeGX6PuSE-DJlQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5MB5NCXQEeGX6PuSE-DJlQ" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5MB5NSXQEeGX6PuSE-DJlQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5MB5NiXQEeGX6PuSE-DJlQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5MB5NyXQEeGX6PuSE-DJlQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5MB5OCXQEeGX6PuSE-DJlQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5MCgQCXQEeGX6PuSE-DJlQ" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5MCgQSXQEeGX6PuSE-DJlQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5MCgQiXQEeGX6PuSE-DJlQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5MCgQyXQEeGX6PuSE-DJlQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5MCgRCXQEeGX6PuSE-DJlQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5MCgRSXQEeGX6PuSE-DJlQ" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5MCgRiXQEeGX6PuSE-DJlQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5MCgRyXQEeGX6PuSE-DJlQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5MCgSCXQEeGX6PuSE-DJlQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5MCgSSXQEeGX6PuSE-DJlQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_5J9coCXQEeGX6PuSE-DJlQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5MArESXQEeGX6PuSE-DJlQ" x="99" y="297" width="190" height="55"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_E3A5oCXREeGX6PuSE-DJlQ" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_E3BgsCXREeGX6PuSE-DJlQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_E3CHwCXREeGX6PuSE-DJlQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_E3CHwSXREeGX6PuSE-DJlQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_E3CHwiXREeGX6PuSE-DJlQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_E3CHwyXREeGX6PuSE-DJlQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_E3CHxCXREeGX6PuSE-DJlQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_E3CHxSXREeGX6PuSE-DJlQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="corec.uml#_EuvHYCXREeGX6PuSE-DJlQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_E3A5oSXREeGX6PuSE-DJlQ" x="81" y="378" width="235"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_OX-j4FaNEeKxltxu9uR4dg" type="2010" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYQ3wFaNEeKxltxu9uR4dg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYQ3wVaNEeKxltxu9uR4dg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYQ3wlaNEeKxltxu9uR4dg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYRe0FaNEeKxltxu9uR4dg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYRe0VaNEeKxltxu9uR4dg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYRe0laNEeKxltxu9uR4dg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_OYRe01aNEeKxltxu9uR4dg" type="5035"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_OYRe1FaNEeKxltxu9uR4dg" type="7020">
+ <children xmi:type="notation:Shape" xmi:id="_RXTbwFaNEeKxltxu9uR4dg" type="3018" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_waMsEFaNEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_waNTIFaNEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="60"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="corec.uml#_RW82cFaNEeKxltxu9uR4dg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RXTbwVaNEeKxltxu9uR4dg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_OYRe1VaNEeKxltxu9uR4dg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_OYRe1laNEeKxltxu9uR4dg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_OYRe11aNEeKxltxu9uR4dg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OYRe2FaNEeKxltxu9uR4dg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_OYRe2VaNEeKxltxu9uR4dg" visible="false" type="7021">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_OYRe2laNEeKxltxu9uR4dg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_OYRe21aNEeKxltxu9uR4dg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_OYRe3FaNEeKxltxu9uR4dg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OYRe3VaNEeKxltxu9uR4dg"/>
+ </children>
+ <element xmi:type="uml:DataType" href="corec.uml#_OU5asFaNEeKxltxu9uR4dg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OX-j4VaNEeKxltxu9uR4dg" x="702" y="9" width="208" height="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Y9_gUFaNEeKxltxu9uR4dg" type="2010" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Y9_gUlaNEeKxltxu9uR4dg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Y-AHYFaNEeKxltxu9uR4dg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Y-AHYVaNEeKxltxu9uR4dg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Y-AHYlaNEeKxltxu9uR4dg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Y-AHY1aNEeKxltxu9uR4dg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Y-AHZFaNEeKxltxu9uR4dg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Y-AHZVaNEeKxltxu9uR4dg" type="5035"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Y-AHZlaNEeKxltxu9uR4dg" type="7020">
+ <children xmi:type="notation:Shape" xmi:id="_fYzAkFaNEeKxltxu9uR4dg" type="3018" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t76EsFaNEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uWGGUFaNEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="corec.uml#_fYeQcFaNEeKxltxu9uR4dg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fYzAkVaNEeKxltxu9uR4dg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_oUoTIFaNEeKxltxu9uR4dg" type="3018" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vVH6YFaNEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vY61QFaNEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="corec.uml#_oUVYMFaNEeKxltxu9uR4dg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oUoTIVaNEeKxltxu9uR4dg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_xXc-gFaNEeKxltxu9uR4dg" type="3018" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1PtpgFaNEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1fyF0FaNEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="corec.uml#_xXGZMFaNEeKxltxu9uR4dg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xXc-gVaNEeKxltxu9uR4dg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Y-AHZ1aNEeKxltxu9uR4dg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Y-AHaFaNEeKxltxu9uR4dg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Y-AHaVaNEeKxltxu9uR4dg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Y-AHalaNEeKxltxu9uR4dg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Y-AHa1aNEeKxltxu9uR4dg" visible="false" type="7021">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Y-AHbFaNEeKxltxu9uR4dg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Y-AHbVaNEeKxltxu9uR4dg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Y-AHblaNEeKxltxu9uR4dg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Y-AHb1aNEeKxltxu9uR4dg"/>
+ </children>
+ <element xmi:type="uml:DataType" href="corec.uml#_Y8dPQFaNEeKxltxu9uR4dg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Y9_gUVaNEeKxltxu9uR4dg" x="702" y="90" width="208" height="91"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_A6ULIdYGEd-CgJIavLpOxQ"/>
+ <element xmi:type="uml:Package" href="corec.uml#_xtlE8ARAEd--t-uhRn9OBA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_D1HvYNYGEd-CgJIavLpOxQ" type="4002" source="_ByS8ANYGEd-CgJIavLpOxQ" target="_D0xKENYGEd-CgJIavLpOxQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_D1IWcNYGEd-CgJIavLpOxQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_D1IWcdYGEd-CgJIavLpOxQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_D1HvYdYGEd-CgJIavLpOxQ" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corec.uml#_6bsEkARAEd--t-uhRn9OBA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_D1HvYtYGEd-CgJIavLpOxQ" points="[-77, -75, 118, 115]$[-195, -190, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_KuwaULaaEeCj_-LEBuGpmA" type="4013" source="_EhiDELaaEeCj_-LEBuGpmA" target="_ByS8ANYGEd-CgJIavLpOxQ" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_KuwaUbaaEeCj_-LEBuGpmA" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KuwaUraaEeCj_-LEBuGpmA" points="[19, 44, 130, -8]$[19, 58, 130, 6]$[-95, 58, 16, 6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KvJb4LaaEeCj_-LEBuGpmA" id="(0.017988552739165987,0.6333333333333333)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KvJb4baaEeCj_-LEBuGpmA" id="(0.917098445595855,0.2)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ffcCQPQXEeCovO8AYZymZQ" type="4002" source="_S9Kp8PQWEeCovO8AYZymZQ" target="_elme8PQREeCovO8AYZymZQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ffdQYPQXEeCovO8AYZymZQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ffdQYfQXEeCovO8AYZymZQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ffcCQfQXEeCovO8AYZymZQ" fontName="Sans Serif"/>
+ <element xmi:type="uml:Generalization" href="corec.uml#_feaHgPQXEeCovO8AYZymZQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ffcCQvQXEeCovO8AYZymZQ" points="[-109, 14, 100, -14]$[-162, 10, 47, -18]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ffeegPQXEeCovO8AYZymZQ" id="(0.21507760532150777,0.12087912087912088)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ffeegfQXEeCovO8AYZymZQ" id="(0.507537688442211,0.95)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_GxXJsCUREeGXBt65HZzY7g" type="4002" source="_S9Kp8PQWEeCovO8AYZymZQ" target="_DZTowCUREeGXBt65HZzY7g" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GxXwwCUREeGXBt65HZzY7g" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GxXwwSUREeGXBt65HZzY7g" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_GxXJsSUREeGXBt65HZzY7g" fontName="Sans Serif"/>
+ <element xmi:type="uml:Generalization" href="corec.uml#_GwxT0CUREeGXBt65HZzY7g"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GxXJsiUREeGXBt65HZzY7g" points="[21, -3, 1, 53]$[21, -25, 1, 31]$[17, -25, -3, 31]$[17, -47, -3, 9]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GzJSYCUREeGXBt65HZzY7g" id="(0.7228381374722838,0.03296703296703297)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GzJSYSUREeGXBt65HZzY7g" id="(0.5144230769230769,0.9620253164556962)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9vKGICXQEeGX6PuSE-DJlQ" type="4002" source="_5MArECXQEeGX6PuSE-DJlQ" target="_ByS8ANYGEd-CgJIavLpOxQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_9vKtMCXQEeGX6PuSE-DJlQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9vLUQCXQEeGX6PuSE-DJlQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_9vKGISXQEeGX6PuSE-DJlQ" fontName="Sans Serif"/>
+ <element xmi:type="uml:Generalization" href="corec.uml#_9thucCXQEeGX6PuSE-DJlQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9vKGIiXQEeGX6PuSE-DJlQ" points="[6, -10, 0, 41]$[8, -36, 2, 15]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9wimMCXQEeGX6PuSE-DJlQ" id="(0.5210526315789473,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9wimMSXQEeGX6PuSE-DJlQ" id="(0.5077720207253886,0.98)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_jDnbICXREeGX6PuSE-DJlQ" type="4013" source="_E3A5oCXREeGX6PuSE-DJlQ" target="_5MArECXQEeGX6PuSE-DJlQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_jDnbISXREeGX6PuSE-DJlQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_jDnbIiXREeGX6PuSE-DJlQ" points="[-18, 13, 101, -76]$[-107, 85, 12, -4]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jFAiQCXREeGX6PuSE-DJlQ" id="(0.4595744680851064,0.2)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jFBJUCXREeGX6PuSE-DJlQ" id="(0.49473684210526314,0.8536585365853658)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_glyeMK8qEeCXIcykFPsB8Q" type="PapyrusUMLClassDiagram" name="Pkg. Template: methodCall_comp" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_iLyysK8qEeCXIcykFPsB8Q" type="2007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iL0A0K8qEeCXIcykFPsB8Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iL0n4K8qEeCXIcykFPsB8Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iL0n4a8qEeCXIcykFPsB8Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iL0n4q8qEeCXIcykFPsB8Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iL1O8K8qEeCXIcykFPsB8Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iL1O8a8qEeCXIcykFPsB8Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iL1O8q8qEeCXIcykFPsB8Q" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iL1O868qEeCXIcykFPsB8Q" type="7016">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iL1O9K8qEeCXIcykFPsB8Q"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jkrRMK8qEeCXIcykFPsB8Q" type="3033" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jkr4QK8qEeCXIcykFPsB8Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jkr4Qa8qEeCXIcykFPsB8Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jkr4Qq8qEeCXIcykFPsB8Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jkr4Q68qEeCXIcykFPsB8Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jkr4RK8qEeCXIcykFPsB8Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jkr4Ra8qEeCXIcykFPsB8Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jksfUK8qEeCXIcykFPsB8Q" type="7038">
+ <children xmi:type="notation:Shape" xmi:id="_kvgFkK8qEeCXIcykFPsB8Q" type="3031" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="corec.uml#_QBCTAOxJEd-2rr_yAeKkjQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kvgFka8qEeCXIcykFPsB8Q" x="22" y="8"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jksfUa8qEeCXIcykFPsB8Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jksfUq8qEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jksfU68qEeCXIcykFPsB8Q"/>
+ </children>
+ <element xmi:type="uml:TemplateSignature" href="corec.uml#_ewC6kOxIEd-2rr_yAeKkjQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jkrRMa8qEeCXIcykFPsB8Q" x="30" y="8"/>
+ </children>
+ <element xmi:type="uml:Package" href="corec.uml#_RPCMoOxIEd-2rr_yAeKkjQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iLyysa8qEeCXIcykFPsB8Q" x="90" y="243"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_q3ohcK8qEeCXIcykFPsB8Q" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_q3pIgK8qEeCXIcykFPsB8Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q3pvkK8qEeCXIcykFPsB8Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_q3pvka8qEeCXIcykFPsB8Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q3pvkq8qEeCXIcykFPsB8Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_q3pvk68qEeCXIcykFPsB8Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q3pvlK8qEeCXIcykFPsB8Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_q3pvla8qEeCXIcykFPsB8Q" type="5038"/>
+ <element xmi:type="uml:Comment" href="corec.uml#_q1w5MK8qEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q3ohca8qEeCXIcykFPsB8Q" x="261" y="108" width="253"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_glyeMa8qEeCXIcykFPsB8Q"/>
+ <element xmi:type="uml:Package" href="corec.uml#_RPCMoOxIEd-2rr_yAeKkjQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_xP-jkK8qEeCXIcykFPsB8Q" type="4013" source="_q3ohcK8qEeCXIcykFPsB8Q" target="_iLyysK8qEeCXIcykFPsB8Q" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_xP-jka8qEeCXIcykFPsB8Q" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_xP-jkq8qEeCXIcykFPsB8Q" points="[-40, 30, 181, -116]$[-121, 140, 100, -6]"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_DtdykK8rEeCXIcykFPsB8Q" type="PapyrusUMLClassDiagram" name="Pkg. Template: methodCall" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_NLTmAK8rEeCXIcykFPsB8Q" type="2007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NLUNEK8rEeCXIcykFPsB8Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NLUNEa8rEeCXIcykFPsB8Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NLUNEq8rEeCXIcykFPsB8Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NLUNE68rEeCXIcykFPsB8Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NLUNFK8rEeCXIcykFPsB8Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NLUNFa8rEeCXIcykFPsB8Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NLUNFq8rEeCXIcykFPsB8Q" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NLUNF68rEeCXIcykFPsB8Q" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_TmKUIK8sEeCXIcykFPsB8Q" type="3009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TmK7MK8sEeCXIcykFPsB8Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TmK7Ma8sEeCXIcykFPsB8Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TmK7Mq8sEeCXIcykFPsB8Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TmLiQK8sEeCXIcykFPsB8Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TmLiQa8sEeCXIcykFPsB8Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TmLiQq8sEeCXIcykFPsB8Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TmLiQ68sEeCXIcykFPsB8Q" type="5017"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TmLiRK8sEeCXIcykFPsB8Q" type="7010">
+ <children xmi:type="notation:Shape" xmi:id="_V93yYK8sEeCXIcykFPsB8Q" type="3010" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V95AgK8sEeCXIcykFPsB8Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V95Aga8sEeCXIcykFPsB8Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V95Agq8sEeCXIcykFPsB8Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V95Ag68sEeCXIcykFPsB8Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V95AhK8sEeCXIcykFPsB8Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V95Aha8sEeCXIcykFPsB8Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_V95Ahq8sEeCXIcykFPsB8Q" type="5014"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_V95nkK8sEeCXIcykFPsB8Q" visible="false" type="7011">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_V95nka8sEeCXIcykFPsB8Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_V95nkq8sEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V95nk68sEeCXIcykFPsB8Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_V95nlK8sEeCXIcykFPsB8Q" visible="false" type="7012">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_V95nla8sEeCXIcykFPsB8Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_V95nlq8sEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V95nl68sEeCXIcykFPsB8Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_V95nmK8sEeCXIcykFPsB8Q" visible="false" type="7013">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_V95nma8sEeCXIcykFPsB8Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_V95nmq8sEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V95nm68sEeCXIcykFPsB8Q"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_KxQBELuXEd2TTr3gJIvazw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V94ZcK8sEeCXIcykFPsB8Q" x="16" y="10" height="43"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TmLiRa8sEeCXIcykFPsB8Q"/>
+ </children>
+ <element xmi:type="uml:Package" href="corec.uml#_ZISNcIQzEd2_fLv04swWfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TmKUIa8sEeCXIcykFPsB8Q" x="13" y="28" width="190"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_UgOIoK8sEeCXIcykFPsB8Q" type="3009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UgOvsK8sEeCXIcykFPsB8Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UgOvsa8sEeCXIcykFPsB8Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UgOvsq8sEeCXIcykFPsB8Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UgOvs68sEeCXIcykFPsB8Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UgOvtK8sEeCXIcykFPsB8Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UgOvta8sEeCXIcykFPsB8Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UgOvtq8sEeCXIcykFPsB8Q" type="5017"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UgOvt68sEeCXIcykFPsB8Q" type="7010">
+ <children xmi:type="notation:Shape" xmi:id="_bgjX0K8sEeCXIcykFPsB8Q" type="3010" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bgj-4K8sEeCXIcykFPsB8Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bgj-4a8sEeCXIcykFPsB8Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bgj-4q8sEeCXIcykFPsB8Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bgj-468sEeCXIcykFPsB8Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bgkl8K8sEeCXIcykFPsB8Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bgkl8a8sEeCXIcykFPsB8Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bgkl8q8sEeCXIcykFPsB8Q" type="5014"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_bgkl868sEeCXIcykFPsB8Q" visible="false" type="7011">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_bgkl9K8sEeCXIcykFPsB8Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_bgkl9a8sEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bgkl9q8sEeCXIcykFPsB8Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_bgkl968sEeCXIcykFPsB8Q" visible="false" type="7012">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_bgkl-K8sEeCXIcykFPsB8Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_bgkl-a8sEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bgkl-q8sEeCXIcykFPsB8Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_bgkl-68sEeCXIcykFPsB8Q" visible="false" type="7013">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_bgkl_K8sEeCXIcykFPsB8Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_bgkl_a8sEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bgkl_q8sEeCXIcykFPsB8Q"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_Zx2ZUA1jEd6tvthBDl600Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bgjX0a8sEeCXIcykFPsB8Q" x="15" y="7" height="51"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UgOvuK8sEeCXIcykFPsB8Q" x="48" y="4" width="200" height="80"/>
+ </children>
+ <element xmi:type="uml:Package" href="corec.uml#_RjvvcA1jEd6tvthBDl600Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UgOIoa8sEeCXIcykFPsB8Q" x="229" y="28" width="190"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NLUNGK8rEeCXIcykFPsB8Q"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_q9rCkK8rEeCXIcykFPsB8Q" type="3033" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_q9rpoK8rEeCXIcykFPsB8Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q9sQsK8rEeCXIcykFPsB8Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_q9sQsa8rEeCXIcykFPsB8Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q9sQsq8rEeCXIcykFPsB8Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_q9sQs68rEeCXIcykFPsB8Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q9sQtK8rEeCXIcykFPsB8Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_q9sQta8rEeCXIcykFPsB8Q" type="7038">
+ <children xmi:type="notation:Shape" xmi:id="_ryntkK8rEeCXIcykFPsB8Q" type="3031" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="corec.uml#_WzWVUPfBEd2TbIfwytOyPA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ryntka8rEeCXIcykFPsB8Q" x="15" y="10"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_q9sQtq8rEeCXIcykFPsB8Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_q9sQt68rEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q9sQuK8rEeCXIcykFPsB8Q"/>
+ </children>
+ <element xmi:type="uml:TemplateSignature" href="corec.uml#_V0b2APfBEd2TbIfwytOyPA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q9rCka8rEeCXIcykFPsB8Q" x="40" y="10"/>
+ </children>
+ <element xmi:type="uml:Package" href="corec.uml#_mMCK8PiPEd2UhpY2Y3WUyg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NLTmAa8rEeCXIcykFPsB8Q" x="90" y="108" width="451" height="181"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Wi948K8rEeCXIcykFPsB8Q" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Wi948q8rEeCXIcykFPsB8Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Wi-gAK8rEeCXIcykFPsB8Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Wi-gAa8rEeCXIcykFPsB8Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Wi-gAq8rEeCXIcykFPsB8Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Wi-gA68rEeCXIcykFPsB8Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Wi-gBK8rEeCXIcykFPsB8Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wi-gBa8rEeCXIcykFPsB8Q" type="5038"/>
+ <element xmi:type="uml:Comment" href="corec.uml#_WiuBUK8rEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Wi948a8rEeCXIcykFPsB8Q" x="594" y="180" width="253"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Dtdyka8rEeCXIcykFPsB8Q"/>
+ <element xmi:type="uml:Package" href="corec.uml#_mMCK8PiPEd2UhpY2Y3WUyg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_Xu0BAK8rEeCXIcykFPsB8Q" type="4013" source="_Wi948K8rEeCXIcykFPsB8Q" target="_NLTmAK8rEeCXIcykFPsB8Q" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Xu0BAa8rEeCXIcykFPsB8Q" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Xu0BAq8rEeCXIcykFPsB8Q" points="[-50, 10, 224, -38]$[-174, 51, 100, 3]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tBbDAK8rEeCXIcykFPsB8Q" id="(0.755,0.72)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_PIvc4LabEeCj_-LEBuGpmA" type="CompositeStructure" name="StdPorts" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_PlQZwLabEeCj_-LEBuGpmA" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PlRA0LabEeCj_-LEBuGpmA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PlRA0babEeCj_-LEBuGpmA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PlRn4LabEeCj_-LEBuGpmA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PlRn4babEeCj_-LEBuGpmA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PlRn4rabEeCj_-LEBuGpmA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PlRn47abEeCj_-LEBuGpmA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_PlSO8LabEeCj_-LEBuGpmA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PlSO8babEeCj_-LEBuGpmA" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PlSO8rabEeCj_-LEBuGpmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_UfT48LabEeCj_-LEBuGpmA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UfUgALabEeCj_-LEBuGpmA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UfUgAbabEeCj_-LEBuGpmA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UfUgArabEeCj_-LEBuGpmA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UfUgA7abEeCj_-LEBuGpmA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UfVHELabEeCj_-LEBuGpmA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UfVHEbabEeCj_-LEBuGpmA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8J5rUDrTEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8gAeMDrTEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8gAeMTrTEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8gAeMjrTEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8gAeMzrTEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8gAeNDrTEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UfVHErabEeCj_-LEBuGpmA" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UfVHE7abEeCj_-LEBuGpmA" x="-116" y="-4"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UfVHFLabEeCj_-LEBuGpmA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UfVHFbabEeCj_-LEBuGpmA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UfT48babEeCj_-LEBuGpmA" x="-10" y="36"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_N6fa4JsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PlQZwbabEeCj_-LEBuGpmA" x="144" y="72" width="163" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QHPsgLabEeCj_-LEBuGpmA" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QHQTkLabEeCj_-LEBuGpmA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QHQTkbabEeCj_-LEBuGpmA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QHQ6oLabEeCj_-LEBuGpmA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QHQ6obabEeCj_-LEBuGpmA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QHQ6orabEeCj_-LEBuGpmA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QHQ6o7abEeCj_-LEBuGpmA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QHQ6pLabEeCj_-LEBuGpmA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QHRhsLabEeCj_-LEBuGpmA" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QHRhsbabEeCj_-LEBuGpmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_atcPILabEeCj_-LEBuGpmA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_atc2MLabEeCj_-LEBuGpmA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_atc2MbabEeCj_-LEBuGpmA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_atc2MrabEeCj_-LEBuGpmA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_atc2M7abEeCj_-LEBuGpmA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_atc2NLabEeCj_-LEBuGpmA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_atc2NbabEeCj_-LEBuGpmA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9T6nYDrTEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9l5IMDrTEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9l5vQDrTEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9l5vQTrTEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9l5vQjrTEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9l6WUDrTEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_atc2NrabEeCj_-LEBuGpmA" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_atc2N7abEeCj_-LEBuGpmA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_atddQLabEeCj_-LEBuGpmA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_atddQbabEeCj_-LEBuGpmA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_atcPIbabEeCj_-LEBuGpmA" x="-10" y="36"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QHPsgbabEeCj_-LEBuGpmA" x="144" y="180" width="163" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SOUtwLabEeCj_-LEBuGpmA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SOVU0LabEeCj_-LEBuGpmA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SOVU0babEeCj_-LEBuGpmA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SOV74LabEeCj_-LEBuGpmA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SOV74babEeCj_-LEBuGpmA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SOV74rabEeCj_-LEBuGpmA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SOV747abEeCj_-LEBuGpmA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SOV75LabEeCj_-LEBuGpmA" type="5192"/>
+ <element xmi:type="uml:Comment" href="corec.uml#_OcN78Nt2Ed6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SOUtwbabEeCj_-LEBuGpmA" x="378" y="72" width="235"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_PIvc4babEeCj_-LEBuGpmA"/>
+ <element xmi:type="uml:Package" href="corec.uml#_HmnpEJsrEd61Eo3nmu3JhQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_SOtIQLabEeCj_-LEBuGpmA" type="4002" source="_SOUtwLabEeCj_-LEBuGpmA" target="_PlQZwLabEeCj_-LEBuGpmA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_SOtvULabEeCj_-LEBuGpmA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SOtvUbabEeCj_-LEBuGpmA" points="[0, 0, -129, -109]$[108, 90, -21, -19]"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_0IaT8LnYEeCxXoyQxQ47PQ" type="PapyrusUMLClassDiagram" name="PortKinds" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_09vZcLnYEeCxXoyQxQ47PQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_09wAgLnYEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_09wAgbnYEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_09wAgrnYEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_09wAg7nYEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_09wAhLnYEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_09wAhbnYEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Fi4z8DrUEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RtrcIELzEeGoAtSeIK7WLg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RtrcIULzEeGoAtSeIK7WLg" key="StereotypeList" value="FCM::PortKind"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RtrcIkLzEeGoAtSeIK7WLg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RtrcI0LzEeGoAtSeIK7WLg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RtrcJELzEeGoAtSeIK7WLg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_09wAhrnYEeCxXoyQxQ47PQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_09wAh7nYEeCxXoyQxQ47PQ" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_09wnkLnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_09wnkbnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_09wnkrnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_09wnk7nYEeCxXoyQxQ47PQ" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_09wnlLnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_09wnlbnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_09wnlrnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_09wnl7nYEeCxXoyQxQ47PQ" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_09wnmLnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_09wnmbnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_09wnmrnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="corec.uml#_Wtq4sFDlEd6cwecVIgl9nw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_09vZcbnYEeCxXoyQxQ47PQ" x="54" y="28" width="127" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0-EJkLnYEeCxXoyQxQ47PQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0-EwoLnYEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0-EwobnYEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0-EwornYEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0-Ewo7nYEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0-EwpLnYEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0-EwpbnYEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_agfdADrZEeGgAdAmWw4pyQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TPVcIELzEeGoAtSeIK7WLg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TPWDMELzEeGoAtSeIK7WLg" key="StereotypeList" value="FCM::PortKind"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TPWDMULzEeGoAtSeIK7WLg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TPWDMkLzEeGoAtSeIK7WLg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TPWDM0LzEeGoAtSeIK7WLg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0-EwprnYEeCxXoyQxQ47PQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0-Ewp7nYEeCxXoyQxQ47PQ" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0-EwqLnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0-EwqbnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-EwqrnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0-Ewq7nYEeCxXoyQxQ47PQ" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0-EwrLnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0-EwrbnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-EwrrnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0-FXsLnYEeCxXoyQxQ47PQ" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0-FXsbnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0-FXsrnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-FXs7nYEeCxXoyQxQ47PQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="corec.uml#_Wtq4sVDlEd6cwecVIgl9nw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-EJkbnYEeCxXoyQxQ47PQ" x="54" y="351" width="127" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0-XrkLnYEeCxXoyQxQ47PQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0-XrkrnYEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0-Xrk7nYEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0-XrlLnYEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0-YSoLnYEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0-YSobnYEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0-YSornYEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XkzH8DrZEeGgAdAmWw4pyQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_14Z-YELyEeGoAtSeIK7WLg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_14Z-YULyEeGoAtSeIK7WLg" key="StereotypeList" value="FCM::PortKind"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_14Z-YkLyEeGoAtSeIK7WLg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_14Z-Y0LyEeGoAtSeIK7WLg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_14Z-ZELyEeGoAtSeIK7WLg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0-YSo7nYEeCxXoyQxQ47PQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0-YSpLnYEeCxXoyQxQ47PQ" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0-YSpbnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0-YSprnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-YSp7nYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0-YSqLnYEeCxXoyQxQ47PQ" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0-YSqbnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0-YSqrnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-YSq7nYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0-YSrLnYEeCxXoyQxQ47PQ" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0-YSrbnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0-YSrrnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-YSr7nYEeCxXoyQxQ47PQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="corec.uml#_Wtq4slDlEd6cwecVIgl9nw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-XrkbnYEeCxXoyQxQ47PQ" x="54" y="297" width="127" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0-rNkLnYEeCxXoyQxQ47PQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0-r0oLnYEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0-r0obnYEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0-sbsLnYEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0-sbsbnYEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Vy3QQDrZEeGgAdAmWw4pyQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vy3QQTrZEeGgAdAmWw4pyQ" key="QualifiedNameDepth" value="2"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WQzJcDrZEeGgAdAmWw4pyQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3ew4MELyEeGoAtSeIK7WLg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3ew4MULyEeGoAtSeIK7WLg" key="StereotypeList" value="FCM::PortKind"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3ew4MkLyEeGoAtSeIK7WLg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3exfQELyEeGoAtSeIK7WLg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3exfQULyEeGoAtSeIK7WLg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0-sbtLnYEeCxXoyQxQ47PQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0-sbtbnYEeCxXoyQxQ47PQ" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0-sbtrnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0-sbt7nYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-sbuLnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0-sbubnYEeCxXoyQxQ47PQ" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0-sburnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0-sbu7nYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-sbvLnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0-sbvbnYEeCxXoyQxQ47PQ" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0-sbvrnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0-sbv7nYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-sbwLnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="corec.uml#_WtrfwlDlEd6cwecVIgl9nw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-rNkbnYEeCxXoyQxQ47PQ" x="54" y="243" width="127" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0-9hcLnYEeCxXoyQxQ47PQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0-9hcrnYEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0-9hc7nYEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0--IgLnYEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0--IgbnYEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0--IgrnYEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0--Ig7nYEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Qp1g8DrZEeGgAdAmWw4pyQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RBtG8ELzEeGoAtSeIK7WLg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RBtuAELzEeGoAtSeIK7WLg" key="StereotypeList" value="FCM::PortKind"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RBtuAULzEeGoAtSeIK7WLg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RBtuAkLzEeGoAtSeIK7WLg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RBtuA0LzEeGoAtSeIK7WLg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0--IhLnYEeCxXoyQxQ47PQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0--IhbnYEeCxXoyQxQ47PQ" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0--IhrnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0--Ih7nYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0--IiLnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0--IibnYEeCxXoyQxQ47PQ" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0--IirnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0--Ii7nYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0--IjLnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0--IjbnYEeCxXoyQxQ47PQ" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0--IjrnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0--Ij7nYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0--IkLnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="corec.uml#_Wtrfw1DlEd6cwecVIgl9nw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-9hcbnYEeCxXoyQxQ47PQ" x="54" y="81" width="127" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0_OnMLnYEeCxXoyQxQ47PQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0_POQLnYEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0_POQbnYEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0_POQrnYEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0_POQ7nYEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0_PORLnYEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0_PORbnYEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SXn4cDrZEeGgAdAmWw4pyQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Nq_p0ELzEeGoAtSeIK7WLg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Nq_p0ULzEeGoAtSeIK7WLg" key="StereotypeList" value="FCM::PortKind"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Nq_p0kLzEeGoAtSeIK7WLg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NrAQ4ELzEeGoAtSeIK7WLg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NrAQ4ULzEeGoAtSeIK7WLg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0_PORrnYEeCxXoyQxQ47PQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0_POR7nYEeCxXoyQxQ47PQ" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0_POSLnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0_POSbnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0_POSrnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0_P1ULnYEeCxXoyQxQ47PQ" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0_P1UbnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0_P1UrnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0_P1U7nYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0_P1VLnYEeCxXoyQxQ47PQ" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0_P1VbnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0_P1VrnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0_P1V7nYEeCxXoyQxQ47PQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="corec.uml#__nMrwLqNEd-SedGzMDDkww"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0_OnMbnYEeCxXoyQxQ47PQ" x="54" y="135" width="127" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0_j-YLnYEeCxXoyQxQ47PQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0_klcLnYEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0_klcbnYEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0_lMgLnYEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0_lMgbnYEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0_lMgrnYEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0_lMg7nYEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Uc_pgDrZEeGgAdAmWw4pyQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TA9QMENnEeGoAtSeIK7WLg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TA9QMUNnEeGoAtSeIK7WLg" key="StereotypeList" value="FCM::PortKind"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TA9QMkNnEeGoAtSeIK7WLg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TA9QM0NnEeGoAtSeIK7WLg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TA93QENnEeGoAtSeIK7WLg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0_lMhLnYEeCxXoyQxQ47PQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0_lMhbnYEeCxXoyQxQ47PQ" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0_lMhrnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0_lMh7nYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0_lMiLnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0_lzkLnYEeCxXoyQxQ47PQ" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0_lzkbnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0_lzkrnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0_lzk7nYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0_lzlLnYEeCxXoyQxQ47PQ" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0_lzlbnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0_lzlrnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0_lzl7nYEeCxXoyQxQ47PQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="corec.uml#_AQZZwLqOEd-SedGzMDDkww"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0_j-YbnYEeCxXoyQxQ47PQ" x="54" y="189" width="127" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Fw1jMLnZEeCxXoyQxQ47PQ" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Fw3YYLnZEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Fw3YYbnZEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Fw3YYrnZEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Fw3YY7nZEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Fw3YZLnZEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Fw3YZbnZEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Fw3YZrnZEeCxXoyQxQ47PQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="corec.uml#_FryEELnZEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Fw1jMbnZEeCxXoyQxQ47PQ" x="252" y="24" width="469" height="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_K19p8LnZEeCxXoyQxQ47PQ" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_K1-RALnZEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_K1-RAbnZEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_K1-RArnZEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_K1-4ELnZEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_K1-4EbnZEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_K1-4ErnZEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_K1-4E7nZEeCxXoyQxQ47PQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="corec.uml#_K17NsLnZEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_K19p8bnZEeCxXoyQxQ47PQ" x="252" y="83" width="469" height="35"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Px1uELnZEeCxXoyQxQ47PQ" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Px2VILnZEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Px2VIbnZEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Px2VIrnZEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Px28MLnZEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Px28MbnZEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Px28MrnZEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Px28M7nZEeCxXoyQxQ47PQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="corec.uml#_PxzR0LnZEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Px1uEbnZEeCxXoyQxQ47PQ" x="252" y="136" width="469" height="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_l4_LYLnZEeCxXoyQxQ47PQ" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_l4_LYbnZEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_l4_LYrnZEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_l4_LY7nZEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_l4_LZLnZEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_l4_LZbnZEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_l4_LZrnZEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_l4_LZ7nZEeCxXoyQxQ47PQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="corec.uml#_l49WMLnZEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l4_LaLnZEeCxXoyQxQ47PQ" x="252" y="189" width="469" height="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2dxzYLnZEeCxXoyQxQ47PQ" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2dyacLnZEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2dyacbnZEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2dyacrnZEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2dyac7nZEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2dyadLnZEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2dyadbnZEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2dzBgLnZEeCxXoyQxQ47PQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="corec.uml#_2dvXILnZEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2dxzYbnZEeCxXoyQxQ47PQ" x="253" y="297" width="468" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FMviMLnaEeCxXoyQxQ47PQ" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FMviMbnaEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FMviMrnaEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FMviM7naEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FMviNLnaEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FMviNbnaEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FMviNrnaEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FMviN7naEeCxXoyQxQ47PQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="corec.uml#_FMuUELnaEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FMviOLnaEeCxXoyQxQ47PQ" x="252" y="243" width="468" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Ggu5oLnaEeCxXoyQxQ47PQ" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ggu5obnaEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ggu5ornaEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ggu5o7naEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ggu5pLnaEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ggu5pbnaEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ggu5prnaEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Ggu5p7naEeCxXoyQxQ47PQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="corec.uml#_GgtrgLnaEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ggu5qLnaEeCxXoyQxQ47PQ" x="252" y="351" width="468" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-bqrQDiyEeGiupyIkgMHVw" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-bsgcDiyEeGiupyIkgMHVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-bsgcTiyEeGiupyIkgMHVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-bsgcjiyEeGiupyIkgMHVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-bsgcziyEeGiupyIkgMHVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-bsgdDiyEeGiupyIkgMHVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-bsgdTiyEeGiupyIkgMHVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-btHgDiyEeGiupyIkgMHVw" type="5038"/>
+ <element xmi:type="uml:Comment" href="corec.uml#_-UGDoDiyEeGiupyIkgMHVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-bqrQTiyEeGiupyIkgMHVw" x="18" y="459" width="595" height="28"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GkKYAC8qEeKx7OxAiA06uw" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GkM0QC8qEeKx7OxAiA06uw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GkM0QS8qEeKx7OxAiA06uw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GkNbUC8qEeKx7OxAiA06uw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GkNbUS8qEeKx7OxAiA06uw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GkNbUi8qEeKx7OxAiA06uw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GkNbUy8qEeKx7OxAiA06uw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_St0RcC8qEeKx7OxAiA06uw" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__1wMYEMLEeKGIL695HkFYQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__1wMYUMLEeKGIL695HkFYQ" key="StereotypeList" value="FCM::PortKind"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__1wMYkMLEeKGIL695HkFYQ" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__1wMY0MLEeKGIL695HkFYQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__1wMZEMLEeKGIL695HkFYQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_GkNbVC8qEeKx7OxAiA06uw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GkOCYC8qEeKx7OxAiA06uw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GkOCYS8qEeKx7OxAiA06uw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GkOCYi8qEeKx7OxAiA06uw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GkOCYy8qEeKx7OxAiA06uw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GkOCZC8qEeKx7OxAiA06uw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GkOCZS8qEeKx7OxAiA06uw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GkOCZi8qEeKx7OxAiA06uw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GkOCZy8qEeKx7OxAiA06uw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GkOCaC8qEeKx7OxAiA06uw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GkOCaS8qEeKx7OxAiA06uw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GkOCai8qEeKx7OxAiA06uw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GkOCay8qEeKx7OxAiA06uw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GkOCbC8qEeKx7OxAiA06uw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GkOCbS8qEeKx7OxAiA06uw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GkOCbi8qEeKx7OxAiA06uw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="corec.uml#_GjnlcC8qEeKx7OxAiA06uw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GkK_EC8qEeKx7OxAiA06uw" x="54" y="405" width="127" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CQkpAEMMEeKGIL695HkFYQ" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CQoTYEMMEeKGIL695HkFYQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CQo6cEMMEeKGIL695HkFYQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CQo6cUMMEeKGIL695HkFYQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CQo6ckMMEeKGIL695HkFYQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CQo6c0MMEeKGIL695HkFYQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CQphgEMMEeKGIL695HkFYQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CQphgUMMEeKGIL695HkFYQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="corec.uml#_COvdAEMMEeKGIL695HkFYQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CQkpAUMMEeKGIL695HkFYQ" x="252" y="405" width="469" height="37"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_0IaT8bnYEeCxXoyQxQ47PQ"/>
+ <element xmi:type="uml:Package" href="corec.uml#_QwvnQFDlEd6cwecVIgl9nw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_jEPL0LnZEeCxXoyQxQ47PQ" type="4013" source="_Fw1jMLnZEeCxXoyQxQ47PQ" target="_09vZcLnYEeCxXoyQxQ47PQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_jEPy4LnZEeCxXoyQxQ47PQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_jEPy4bnZEeCxXoyQxQ47PQ" points="[-4, 1, 86, 0]$[-87, 0, 3, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jES2MLnZEeCxXoyQxQ47PQ" id="(0.012084592145015106,0.525)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jES2MbnZEeCxXoyQxQ47PQ" id="(0.9724770642201835,0.4864864864864865)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ju3dMLnZEeCxXoyQxQ47PQ" type="4013" source="_K19p8LnZEeCxXoyQxQ47PQ" target="_0-9hcLnYEeCxXoyQxQ47PQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_ju3dMbnZEeCxXoyQxQ47PQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ju3dMrnZEeCxXoyQxQ47PQ" points="[-5, 0, 137, 2]$[-87, 0, 55, 2]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ju7uoLnZEeCxXoyQxQ47PQ" id="(0.015060240963855422,0.5142857142857142)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kSsjALnZEeCxXoyQxQ47PQ" type="4013" source="_Px1uELnZEeCxXoyQxQ47PQ" target="_0_OnMLnYEeCxXoyQxQ47PQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_kSsjAbnZEeCxXoyQxQ47PQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kSsjArnZEeCxXoyQxQ47PQ" points="[-13, 6, 136, 5]$[-94, 6, 55, 5]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kSyCkLnZEeCxXoyQxQ47PQ" id="(0.03903903903903904,0.42105263157894735)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_pgZ-ALnZEeCxXoyQxQ47PQ" type="4013" source="_l4_LYLnZEeCxXoyQxQ47PQ" target="_0_j-YLnYEeCxXoyQxQ47PQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_pgZ-AbnZEeCxXoyQxQ47PQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pgZ-ArnZEeCxXoyQxQ47PQ" points="[-4, 2, 106, 0]$[-93, 1, 17, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pge2gLnZEeCxXoyQxQ47PQ" id="(0.012012012012012012,0.39473684210526316)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pge2gbnZEeCxXoyQxQ47PQ" id="(0.8440366972477065,0.4594594594594595)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_MhrIYLnaEeCxXoyQxQ47PQ" type="4013" source="_2dxzYLnZEeCxXoyQxQ47PQ" target="_0-XrkLnYEeCxXoyQxQ47PQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_MhrIYbnaEeCxXoyQxQ47PQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_MhrIYrnaEeCxXoyQxQ47PQ" points="[-9, -1, 113, 0]$[-99, -1, 23, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MhuywLnaEeCxXoyQxQ47PQ" id="(0.00641025641025641,0.5405405405405406)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MhuywbnaEeCxXoyQxQ47PQ" id="(0.963302752293578,0.5135135135135135)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NJn5MLnaEeCxXoyQxQ47PQ" type="4013" source="_FMviMLnaEeCxXoyQxQ47PQ" target="_0-rNkLnYEeCxXoyQxQ47PQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NJn5MbnaEeCxXoyQxQ47PQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NJn5MrnaEeCxXoyQxQ47PQ" points="[-20, -1, 144, 5]$[-109, -1, 55, 5]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NJq8gLnaEeCxXoyQxQ47PQ" id="(0.042735042735042736,0.47058823529411764)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NplLoLnaEeCxXoyQxQ47PQ" type="4013" source="_Ggu5oLnaEeCxXoyQxQ47PQ" target="_0-EJkLnYEeCxXoyQxQ47PQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NplLobnaEeCxXoyQxQ47PQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NplLornaEeCxXoyQxQ47PQ" points="[-7, -6, 106, 0]$[-96, -7, 17, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NppdELnaEeCxXoyQxQ47PQ" id="(0.014957264957264958,0.45098039215686275)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NppdEbnaEeCxXoyQxQ47PQ" id="(0.8440366972477065,0.4594594594594595)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_McYVsEMMEeKGIL695HkFYQ" type="4013" source="_CQkpAEMMEeKGIL695HkFYQ" target="_GkKYAC8qEeKx7OxAiA06uw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_McYVsUMMEeKGIL695HkFYQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_McYVskMMEeKGIL695HkFYQ" points="[-3, 0, 115, 0]$[-92, 0, 26, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Mcj74EMMEeKGIL695HkFYQ" id="(0.006396588486140725,0.35714285714285715)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Mcj74UMMEeKGIL695HkFYQ" id="(0.7614678899082569,0.5135135135135135)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_SstwYPEnEeCIafpoJVk7CQ" type="CompositeStructure" name="ContainerRules" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_V3-LcPEnEeCIafpoJVk7CQ" type="2073" fontName="Arial" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V4AnsPEnEeCIafpoJVk7CQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V4AnsfEnEeCIafpoJVk7CQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V4AnsvEnEeCIafpoJVk7CQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V4Ans_EnEeCIafpoJVk7CQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V4BOwPEnEeCIafpoJVk7CQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V4BOwfEnEeCIafpoJVk7CQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HPEWAPQUEeCovO8AYZymZQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HPEWAfQUEeCovO8AYZymZQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HPE9EPQUEeCovO8AYZymZQ" key="StereotypeList" value="FCM::ContainerRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HPE9EfQUEeCovO8AYZymZQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HPE9EvQUEeCovO8AYZymZQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HPE9E_QUEeCovO8AYZymZQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_V4BOwvEnEeCIafpoJVk7CQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_V4BOw_EnEeCIafpoJVk7CQ" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_mxqE4PTWEeCn1-FCrfecFg" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mxrTAPTWEeCn1-FCrfecFg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mxr6EPTWEeCn1-FCrfecFg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mxr6EfTWEeCn1-FCrfecFg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mxr6EvTWEeCn1-FCrfecFg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mxr6E_TWEeCn1-FCrfecFg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mxr6FPTWEeCn1-FCrfecFg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qmq1AAJzEeG0Lb1KYG16fA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qmrcEAJzEeG0Lb1KYG16fA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qmrcEQJzEeG0Lb1KYG16fA" key="StereotypeList" value="FCM::InterceptionRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qmrcEgJzEeG0Lb1KYG16fA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qmrcEwJzEeG0Lb1KYG16fA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qmrcFAJzEeG0Lb1KYG16fA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mxr6FfTWEeCn1-FCrfecFg" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RtvSsFjmEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RzCCYFjmEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mxshIPTWEeCn1-FCrfecFg" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mxshIfTWEeCn1-FCrfecFg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mxshIvTWEeCn1-FCrfecFg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_y3lU4PTWEeCn1-FCrfecFg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y3mjAPTWEeCn1-FCrfecFg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y3nKEPTWEeCn1-FCrfecFg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y3nKEfTWEeCn1-FCrfecFg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y3nKEvTWEeCn1-FCrfecFg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y3nKE_TWEeCn1-FCrfecFg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y3nKFPTWEeCn1-FCrfecFg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WiNb0DrUEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XNgbkDrUEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XNgbkTrUEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XNhCoDrUEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XNhCoTrUEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XNhCojrUEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_y3nKFfTWEeCn1-FCrfecFg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QlkJsFjmEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QplHAFjmEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y3nxIPTWEeCn1-FCrfecFg" x="-90" y="38"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_y3nxIfTWEeCn1-FCrfecFg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y3nxIvTWEeCn1-FCrfecFg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_ZjdOAP-EEd6628OhKk_dpg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y3lU4fTWEeCn1-FCrfecFg" x="189" y="7"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_y3oYMPTWEeCn1-FCrfecFg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y3pmUPTWEeCn1-FCrfecFg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y3pmUfTWEeCn1-FCrfecFg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y3pmUvTWEeCn1-FCrfecFg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y3pmU_TWEeCn1-FCrfecFg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y3pmVPTWEeCn1-FCrfecFg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y3qNYPTWEeCn1-FCrfecFg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VXcR0DrUEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vt_woDrUEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vt_woTrUEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vt_wojrUEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VuAXsDrUEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VuAXsTrUEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_y3qNYfTWEeCn1-FCrfecFg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QEIQkFjmEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QK0HYFjmEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y3qNYvTWEeCn1-FCrfecFg" x="-17" y="-34"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_y3qNY_TWEeCn1-FCrfecFg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y3qNZPTWEeCn1-FCrfecFg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y3o_QPTWEeCn1-FCrfecFg" x="-10" y="7"/>
+ </children>
+ <element xmi:type="uml:Property" href="corec.uml#_mvN04PTWEeCn1-FCrfecFg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mxqE4fTWEeCn1-FCrfecFg" x="31" y="31" width="199" height="37"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_V4BOxPEnEeCIafpoJVk7CQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V4BOxfEnEeCIafpoJVk7CQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_14WtMARJEd--t-uhRn9OBA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V3-LcfEnEeCIafpoJVk7CQ" x="72" y="36" width="262" height="145"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_W2m98PEnEeCIafpoJVk7CQ" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_W2nlAPEnEeCIafpoJVk7CQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_W2nlAfEnEeCIafpoJVk7CQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_W2nlAvEnEeCIafpoJVk7CQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_W2nlA_EnEeCIafpoJVk7CQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_W2nlBPEnEeCIafpoJVk7CQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_W2nlBfEnEeCIafpoJVk7CQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_W2oMEPEnEeCIafpoJVk7CQ" type="5192"/>
+ <element xmi:type="uml:Comment" href="corec.uml#_q-kFUMTJEd-cLazKlAeYsQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_W2m98fEnEeCIafpoJVk7CQ" x="378" y="54" width="429"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_HDAUACjaEeGFbebITJYb9g" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HDA7ECjaEeGFbebITJYb9g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HDA7ESjaEeGFbebITJYb9g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HDA7EijaEeGFbebITJYb9g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HDA7EyjaEeGFbebITJYb9g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HDA7FCjaEeGFbebITJYb9g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HDA7FSjaEeGFbebITJYb9g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MUh4ACjaEeGFbebITJYb9g" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MUh4ASjaEeGFbebITJYb9g" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MUh4AijaEeGFbebITJYb9g" key="StereotypeList" value="FCM::ContainerRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MUh4AyjaEeGFbebITJYb9g" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MUh4BCjaEeGFbebITJYb9g" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MUh4BSjaEeGFbebITJYb9g" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_HDA7FijaEeGFbebITJYb9g" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_HDA7FyjaEeGFbebITJYb9g" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_JWCGkCjaEeGFbebITJYb9g" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JWCtoCjaEeGFbebITJYb9g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JWCtoSjaEeGFbebITJYb9g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JWCtoijaEeGFbebITJYb9g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JWCtoyjaEeGFbebITJYb9g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JWCtpCjaEeGFbebITJYb9g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JWCtpSjaEeGFbebITJYb9g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JWCtpijaEeGFbebITJYb9g" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PdThIFjmEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PlvrcFjmEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JWCtpyjaEeGFbebITJYb9g" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JWCtqCjaEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JWCtqSjaEeGFbebITJYb9g"/>
+ </children>
+ <element xmi:type="uml:Property" href="corec.uml#_6yVMkCjZEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JWCGkSjaEeGFbebITJYb9g" x="10" y="10" width="156"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_HDA7GCjaEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HDA7GSjaEeGFbebITJYb9g"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_1sCBICjZEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HDAUASjaEeGFbebITJYb9g" x="72" y="252" width="261" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_H0i7YDbgEeGdqp2YT1LwWw" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H0jicDbgEeGdqp2YT1LwWw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H0jicTbgEeGdqp2YT1LwWw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H0jicjbgEeGdqp2YT1LwWw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H0jiczbgEeGdqp2YT1LwWw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H0jidDbgEeGdqp2YT1LwWw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H0jidTbgEeGdqp2YT1LwWw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_H0jidjbgEeGdqp2YT1LwWw" type="5192"/>
+ <element xmi:type="uml:Comment" href="corec.uml#_H0IrsDbgEeGdqp2YT1LwWw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H0i7YTbgEeGdqp2YT1LwWw" x="378" y="261" width="217"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_SstwYfEnEeCIafpoJVk7CQ"/>
+ <element xmi:type="uml:Package" href="corec.uml#_y4qB4ARJEd--t-uhRn9OBA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_YjbFEPEnEeCIafpoJVk7CQ" type="4002" source="_W2m98PEnEeCIafpoJVk7CQ" target="_V3-LcPEnEeCIafpoJVk7CQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_YjbFEfEnEeCIafpoJVk7CQ" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YjbFEvEnEeCIafpoJVk7CQ" points="[-11, -4, 128, 36]$[-126, -42, 13, -2]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YjcTMPEnEeCIafpoJVk7CQ" id="(0.01,0.38333333333333336)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YjcTMfEnEeCIafpoJVk7CQ" id="(0.8602150537634409,0.45)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NK3f0DbgEeGdqp2YT1LwWw" type="4002" source="_H0i7YDbgEeGdqp2YT1LwWw" target="_HDAUACjaEeGFbebITJYb9g" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NK3f0TbgEeGdqp2YT1LwWw" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NK3f0jbgEeGdqp2YT1LwWw" points="[-18, 3, 77, 0]$[-63, 2, 32, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NLz7ADbgEeGdqp2YT1LwWw" id="(0.08294930875576037,0.6)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NL0iEDbgEeGdqp2YT1LwWw" id="(0.8773946360153256,0.4752475247524752)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_eblvwPM_EeCovO8AYZymZQ" type="CompositeStructure" name="Composite: ContainerServices " measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_JRsvcPNAEeCovO8AYZymZQ" type="2073" fontName="" fontHeight="10" fillColor="8047085" transparency="50" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JRtWgPNAEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JRtWgfNAEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JRtWgvNAEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JRtWg_NAEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JRtWhPNAEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JRtWhfNAEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JRtWhvNAEeCovO8AYZymZQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JRtWh_NAEeCovO8AYZymZQ" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_k-Qe0PN8EeCovO8AYZymZQ" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_k-RF4PN8EeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k-RF4fN8EeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_k-RF4vN8EeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k-RF4_N8EeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_k-RF5PN8EeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k-RF5fN8EeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_k-RF5vN8EeCovO8AYZymZQ" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iWRp4FaDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ivBhEFaDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="60"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_k-Rs8PN8EeCovO8AYZymZQ" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_k-Rs8fN8EeCovO8AYZymZQ" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k-Rs8vN8EeCovO8AYZymZQ"/>
+ </children>
+ <element xmi:type="uml:Property" href="corec.uml#_k-OpoPN8EeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k-Qe0fN8EeCovO8AYZymZQ" x="24" y="41" width="165" height="23"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__a22APQXEeCovO8AYZymZQ" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__a3dEPQXEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__a4EIPQXEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__a4EIfQXEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__a4EIvQXEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__a4EI_QXEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__a4EJPQXEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="__a4EJfQXEeCovO8AYZymZQ" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fzb5sFaDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gCiFoFaDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__a4EJvQXEeCovO8AYZymZQ" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__a4EJ_QXEeCovO8AYZymZQ" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__a4EKPQXEeCovO8AYZymZQ"/>
+ </children>
+ <element xmi:type="uml:Property" href="corec.uml#__a1A0PQXEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__a22AfQXEeCovO8AYZymZQ" x="24" y="5" width="165" height="23"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_KnUHYPQYEeCovO8AYZymZQ" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KnUHYvQYEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KnUHY_QYEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KnUucPQYEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KnUucfQYEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KnUucvQYEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KnUuc_QYEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_KnUudPQYEeCovO8AYZymZQ" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hLhG8FaDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hSXV0FaDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_KnUudfQYEeCovO8AYZymZQ" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_KnUudvQYEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KnUud_QYEeCovO8AYZymZQ"/>
+ </children>
+ <element xmi:type="uml:Property" href="corec.uml#_KnS5QPQYEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KnUHYfQYEeCovO8AYZymZQ" x="24" y="83" width="165" height="23"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JRtWiPNAEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JRtWifNAEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_M0b2YPNAEeCovO8AYZymZQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_M0cdcPNAEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M0cdcfNAEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_M0cdcvNAEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M0cdc_NAEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_M0dEgPNAEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M0dEgfNAEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZohFcDrUEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aMU9IDrUEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aMVkMDrUEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aMVkMTrUEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aMVkMjrUEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aMVkMzrUEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_M0dEgvNAEeCovO8AYZymZQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dBgkoFaDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dM7xgFaDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_M0dEg_NAEeCovO8AYZymZQ" x="-134" y="-15"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_M0dEhPNAEeCovO8AYZymZQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_M0dEhfNAEeCovO8AYZymZQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_MzO8gPNAEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M0b2YfNAEeCovO8AYZymZQ" x="-10" y="60" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_JRmo0PNAEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JRsvcfNAEeCovO8AYZymZQ" x="171" y="32" width="212" height="159"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9dH0UCjYEeGFbebITJYb9g" type="2073" fontName="" fontHeight="10" fillColor="8047085" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9dIbYCjYEeGFbebITJYb9g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9dIbYSjYEeGFbebITJYb9g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9dIbYijYEeGFbebITJYb9g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9dIbYyjYEeGFbebITJYb9g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9dIbZCjYEeGFbebITJYb9g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9dIbZSjYEeGFbebITJYb9g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lTZl0CjZEeGFbebITJYb9g" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4p4K4M0zEeGV96JAv8cWdw" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4p4x8M0zEeGV96JAv8cWdw" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4p4x8c0zEeGV96JAv8cWdw" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4p4x8s0zEeGV96JAv8cWdw" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4p4x880zEeGV96JAv8cWdw" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9dJCcCjYEeGFbebITJYb9g" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9dJCcSjYEeGFbebITJYb9g" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9dJCcijYEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9dJCcyjYEeGFbebITJYb9g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AVlPMCjZEeGFbebITJYb9g" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AVl2QCjZEeGFbebITJYb9g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AVl2QSjZEeGFbebITJYb9g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AVl2QijZEeGFbebITJYb9g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AVl2QyjZEeGFbebITJYb9g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AVl2RCjZEeGFbebITJYb9g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AVmdUCjZEeGFbebITJYb9g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FBYM4DrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FX-H8DrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FX-H8TrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FX-H8jrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FX-vADrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FX-vATrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AVmdUSjZEeGFbebITJYb9g" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WOqX0FaDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WaM5cFaDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AVmdUijZEeGFbebITJYb9g" x="-72"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AVmdUyjZEeGFbebITJYb9g" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AVmdVCjZEeGFbebITJYb9g" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_ATRiECjZEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AVlPMSjZEeGFbebITJYb9g" x="207" y="45" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_f8HYECjZEeGFbebITJYb9g" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8H_ICjZEeGFbebITJYb9g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8H_ISjZEeGFbebITJYb9g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8H_IijZEeGFbebITJYb9g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8H_IyjZEeGFbebITJYb9g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8H_JCjZEeGFbebITJYb9g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8H_JSjZEeGFbebITJYb9g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GBY4YDrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GY2WIDrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GY29MDrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GY29MTrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GY29MjrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GY3kQDrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_f8H_JijZEeGFbebITJYb9g" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_W__uIFaDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XHxKEFaDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_f8H_JyjZEeGFbebITJYb9g" x="25"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_f8ImMCjZEeGFbebITJYb9g" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_f8ImMSjZEeGFbebITJYb9g" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8HYESjZEeGFbebITJYb9g" x="-10" y="45"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_9V8OQCjYEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9dH0USjYEeGFbebITJYb9g" x="171" y="302" width="217" height="92"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WoQnECjZEeGFbebITJYb9g" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WoROICjZEeGFbebITJYb9g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WoROISjZEeGFbebITJYb9g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WoROIijZEeGFbebITJYb9g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WoROIyjZEeGFbebITJYb9g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WoROJCjZEeGFbebITJYb9g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WoROJSjZEeGFbebITJYb9g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WoROJijZEeGFbebITJYb9g" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_WoROJyjZEeGFbebITJYb9g" visible="false" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WoROKCjZEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WoROKSjZEeGFbebITJYb9g"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WoQnESjZEeGFbebITJYb9g" x="171" y="250" width="217" height="26"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qz8ykCkAEeGDDbdzqSb4UA" type="2073" fontName="" fontHeight="10" fillColor="8047085" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8ykSkAEeGDDbdzqSb4UA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8ykikAEeGDDbdzqSb4UA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8ykykAEeGDDbdzqSb4UA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8ylCkAEeGDDbdzqSb4UA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8ylSkAEeGDDbdzqSb4UA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8ylikAEeGDDbdzqSb4UA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8ylykAEeGDDbdzqSb4UA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4rLycM0zEeGV96JAv8cWdw" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4rLycc0zEeGV96JAv8cWdw" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4rLycs0zEeGV96JAv8cWdw" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4rLyc80zEeGV96JAv8cWdw" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4rLydM0zEeGV96JAv8cWdw" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qz8ynSkAEeGDDbdzqSb4UA" type="5156">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8ynikAEeGDDbdzqSb4UA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8ynykAEeGDDbdzqSb4UA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8yoCkAEeGDDbdzqSb4UA" key="StereotypeList" value="FCM::ComponentImpl"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8yoSkAEeGDDbdzqSb4UA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8yoikAEeGDDbdzqSb4UA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8yoykAEeGDDbdzqSb4UA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qz8ypCkAEeGDDbdzqSb4UA" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_qz8ypSkAEeGDDbdzqSb4UA" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8ypikAEeGDDbdzqSb4UA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8ypykAEeGDDbdzqSb4UA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8yqCkAEeGDDbdzqSb4UA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8yqSkAEeGDDbdzqSb4UA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8yqikAEeGDDbdzqSb4UA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8yqykAEeGDDbdzqSb4UA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qz8yrCkAEeGDDbdzqSb4UA" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Vo5_YFaDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vv278FaDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qz8yrSkAEeGDDbdzqSb4UA" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qz8yrikAEeGDDbdzqSb4UA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qz8yrykAEeGDDbdzqSb4UA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qz8ysCkAEeGDDbdzqSb4UA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8ysSkAEeGDDbdzqSb4UA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8ysikAEeGDDbdzqSb4UA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8ysykAEeGDDbdzqSb4UA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8ytCkAEeGDDbdzqSb4UA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8ytSkAEeGDDbdzqSb4UA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8ytikAEeGDDbdzqSb4UA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_B-viUDrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CVcyIDrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CVcyITrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CVcyIjrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CVdZMDrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CVdZMTrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qz8ytykAEeGDDbdzqSb4UA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8yuCkAEeGDDbdzqSb4UA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bFaEUFaDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="12"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qz8yuikAEeGDDbdzqSb4UA" x="-36" y="-8"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qz8yuykAEeGDDbdzqSb4UA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qz8yvCkAEeGDDbdzqSb4UA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qz8yvSkAEeGDDbdzqSb4UA" x="63" y="-10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_4ksloCkAEeGDDbdzqSb4UA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4kwQACkAEeGDDbdzqSb4UA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4kwQASkAEeGDDbdzqSb4UA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4kwQAikAEeGDDbdzqSb4UA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4kwQAykAEeGDDbdzqSb4UA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4kwQBCkAEeGDDbdzqSb4UA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4kwQBSkAEeGDDbdzqSb4UA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DJ1ccDrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Da9osDrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Da9osTrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Da9osjrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Da9oszrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Da9otDrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4kwQBikAEeGDDbdzqSb4UA" visible="false" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AP6k4CkBEeGDDbdzqSb4UA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AP7L8CkBEeGDDbdzqSb4UA" key="CustomAppearance_MaskValue" value="46"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4kwQBykAEeGDDbdzqSb4UA" x="18" y="-18"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4kw3ECkAEeGDDbdzqSb4UA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4kw3ESkAEeGDDbdzqSb4UA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_ATRiECjZEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4ksloSkAEeGDDbdzqSb4UA" x="153" y="16"/>
+ </children>
+ <element xmi:type="uml:Property" href="corec.uml#_ARs_UCjaEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qz8yvikAEeGDDbdzqSb4UA" x="22" y="103" width="163" height="51"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qz8yvykAEeGDDbdzqSb4UA" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8ywCkAEeGDDbdzqSb4UA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8ywSkAEeGDDbdzqSb4UA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8ywikAEeGDDbdzqSb4UA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8ywykAEeGDDbdzqSb4UA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8yxCkAEeGDDbdzqSb4UA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8yxSkAEeGDDbdzqSb4UA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qz8yxikAEeGDDbdzqSb4UA" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UO2cMFaDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UlpLkFaDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qz8yxykAEeGDDbdzqSb4UA" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qz8yyCkAEeGDDbdzqSb4UA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qz8yySkAEeGDDbdzqSb4UA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qz8yyikAEeGDDbdzqSb4UA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8yyykAEeGDDbdzqSb4UA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8yzCkAEeGDDbdzqSb4UA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8yzSkAEeGDDbdzqSb4UA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8yzikAEeGDDbdzqSb4UA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8yzykAEeGDDbdzqSb4UA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8y0CkAEeGDDbdzqSb4UA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_A92GADrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BOcGwDrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BOcGwTrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BOcGwjrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BOcGwzrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BOcGxDrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qz8y0SkAEeGDDbdzqSb4UA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8y0ikAEeGDDbdzqSb4UA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cTAf4FaDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="12"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qz8y1CkAEeGDDbdzqSb4UA" x="27" y="18"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qz8y1SkAEeGDDbdzqSb4UA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qz8y1ikAEeGDDbdzqSb4UA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_ZjdOAP-EEd6628OhKk_dpg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qz8y1ykAEeGDDbdzqSb4UA" x="63" y="42"/>
+ </children>
+ <element xmi:type="uml:Property" href="corec.uml#_RMqEkCjaEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qz8y2CkAEeGDDbdzqSb4UA" x="22" y="7" width="163" height="52"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qz8y2SkAEeGDDbdzqSb4UA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qz8y2ikAEeGDDbdzqSb4UA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3PyBICkAEeGDDbdzqSb4UA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3PyoMCkAEeGDDbdzqSb4UA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3PyoMSkAEeGDDbdzqSb4UA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3PzPQCkAEeGDDbdzqSb4UA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3PzPQSkAEeGDDbdzqSb4UA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3PzPQikAEeGDDbdzqSb4UA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3PzPQykAEeGDDbdzqSb4UA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EFQi4DrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EWD_ADrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EWD_ATrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EWD_AjrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EWD_AzrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EWD_BDrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3PzPRCkAEeGDDbdzqSb4UA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aE63sFaDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aMll8FaDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3PzPRSkAEeGDDbdzqSb4UA" x="-81" y="-9"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3PzPRikAEeGDDbdzqSb4UA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3PzPRykAEeGDDbdzqSb4UA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_3NSGwCkAEeGDDbdzqSb4UA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3PyBISkAEeGDDbdzqSb4UA" x="288" y="144" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_-X6zMCjZEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qz8y2ykAEeGDDbdzqSb4UA" x="455" y="39" width="298" height="199"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_ebmW0PM_EeCovO8AYZymZQ"/>
+ <element xmi:type="uml:Package" href="corec.uml#_xtlE8ARAEd--t-uhRn9OBA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_Y7Vc8CjZEeGFbebITJYb9g" type="4015" source="_9dH0UCjYEeGFbebITJYb9g" target="_WoQnECjZEeGFbebITJYb9g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Y7WrECjZEeGFbebITJYb9g" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Y7WrESjZEeGFbebITJYb9g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Y7Vc8SjZEeGFbebITJYb9g" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corec.uml#_Y6lPACjZEeGFbebITJYb9g"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Y7Vc8ijZEeGFbebITJYb9g" points="[4, -11, 7, 30]$[4, -63, 7, -22]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Y-dpcCjZEeGFbebITJYb9g" id="(0.50625,0.11956521739130435)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_1VKukCkAEeGDDbdzqSb4UA" type="4013" source="_qz8yyikAEeGDDbdzqSb4UA" target="_qz8ysCkAEeGDDbdzqSb4UA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1VL8sCkAEeGDDbdzqSb4UA" type="6025">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1VL8sSkAEeGDDbdzqSb4UA" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1VL8sikAEeGDDbdzqSb4UA" visible="false" type="6050">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1VMjwCkAEeGDDbdzqSb4UA" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1VMjwSkAEeGDDbdzqSb4UA" visible="false" type="6051">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1VMjwikAEeGDDbdzqSb4UA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1VMjwykAEeGDDbdzqSb4UA" visible="false" type="6052">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1VMjxCkAEeGDDbdzqSb4UA" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_1VKukSkAEeGDDbdzqSb4UA" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Connector" href="corec.uml#_iDCL0CjaEeGFbebITJYb9g"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1VKukikAEeGDDbdzqSb4UA" points="[0, 10, 0, -34]$[0, 34, 0, -10]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_85CvsCkAEeGDDbdzqSb4UA" type="4013" source="_4ksloCkAEeGDDbdzqSb4UA" target="_3PyBICkAEeGDDbdzqSb4UA" routing="Rectilinear" closestDistance="true" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_85D90CkAEeGDDbdzqSb4UA" type="6025">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_85D90SkAEeGDDbdzqSb4UA" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_85D90ikAEeGDDbdzqSb4UA" visible="false" type="6050">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_85D90ykAEeGDDbdzqSb4UA" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_85D91CkAEeGDDbdzqSb4UA" visible="false" type="6051">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_85D91SkAEeGDDbdzqSb4UA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_85D91ikAEeGDDbdzqSb4UA" visible="false" type="6052">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_85D91ykAEeGDDbdzqSb4UA" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_85CvsSkAEeGDDbdzqSb4UA" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Connector" href="corec.uml#_84IJsCkAEeGDDbdzqSb4UA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_85CvsikAEeGDDbdzqSb4UA" points="[10, 4, -220, 14]$[71, 4, -159, 14]$[71, -10, -159, 0]$[227, -10, -3, 0]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_864iwCkAEeGDDbdzqSb4UA" id="(0.15,0.45)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_hyLz8PNGEeCovO8AYZymZQ" type="CompositeStructure" name="composite: Marshalling" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_iVJ-IPNGEeCovO8AYZymZQ" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iVJ-IvNGEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iVKlMPNGEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iVKlMfNGEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iVKlMvNGEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iVKlM_NGEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iVKlNPNGEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iVKlNfNGEeCovO8AYZymZQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_iVKlNvNGEeCovO8AYZymZQ" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_iVKlN_NGEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iVKlOPNGEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZjCy0PNHEeCovO8AYZymZQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZjDZ4PNHEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZjDZ4fNHEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZjDZ4vNHEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZjDZ4_NHEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZjDZ5PNHEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZjDZ5fNHEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_N6_48DrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OOwicDrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OOwicTrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OOwicjrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OOwiczrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OOwidDrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZjEA8PNHEeCovO8AYZymZQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cZt34EN-EeGfhclnRyNzoA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cfyMwE4hEeKNVONx4BgsGg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZjEA8fNHEeCovO8AYZymZQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZjEA8vNHEeCovO8AYZymZQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZjEA8_NHEeCovO8AYZymZQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_rSCxUAytEd6it_RkGhz_AA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZjCy0fNHEeCovO8AYZymZQ" x="117" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_iVa2wEN9EeGfhclnRyNzoA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iVbd0EN9EeGfhclnRyNzoA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iVbd0UN9EeGfhclnRyNzoA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iVbd0kN9EeGfhclnRyNzoA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iVbd00N9EeGfhclnRyNzoA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iVbd1EN9EeGfhclnRyNzoA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iVbd1UN9EeGfhclnRyNzoA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jaKRQEN9EeGfhclnRyNzoA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jtyX4EN9EeGfhclnRyNzoA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jtyX4UN9EeGfhclnRyNzoA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jtyX4kN9EeGfhclnRyNzoA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jty-8EN9EeGfhclnRyNzoA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jty-8UN9EeGfhclnRyNzoA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iVbd1kN9EeGfhclnRyNzoA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YRiFEEN_EeGfhclnRyNzoA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZxVCcE4hEeKNVONx4BgsGg" key="CustomAppearance_MaskValue" value="20"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iVbd10N9EeGfhclnRyNzoA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iVcE4EN9EeGfhclnRyNzoA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iVcE4UN9EeGfhclnRyNzoA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_MhH6cENxEeGoAtSeIK7WLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iVa2wUN9EeGfhclnRyNzoA" x="-10" y="36"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_b_yh4AzyEd6it_RkGhz_AA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iVJ-IfNGEeCovO8AYZymZQ" x="90" y="279" width="127" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kENg8PNGEeCovO8AYZymZQ" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kEOIAPNGEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kEOIAfNGEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kEOIAvNGEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kEOIA_NGEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kEOIBPNGEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kEOIBfNGEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kEOvEPNGEeCovO8AYZymZQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kEOvEfNGEeCovO8AYZymZQ" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kEOvEvNGEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kEOvE_NGEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qJrqYPNGEeCovO8AYZymZQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qJsRcPNGEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qJsRcfNGEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qJsRcvNGEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qJsRc_NGEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qJsRdPNGEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qJsRdfNGEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JbRlUDrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JrZE8DrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JrZE8TrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JrZsADrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JrZsATrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JrZsAjrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qJsRdvNGEeCovO8AYZymZQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ezv2kFjoEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FAR2sFjoEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qJsRd_NGEeCovO8AYZymZQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qJsRePNGEeCovO8AYZymZQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qJsRefNGEeCovO8AYZymZQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qJrqYfNGEeCovO8AYZymZQ" x="-10" y="36"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_j29X4NttEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kENg8fNGEeCovO8AYZymZQ" x="90" y="36" width="316" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_mqiqAPNGEeCovO8AYZymZQ" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mqjREPNGEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mqjREfNGEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mqjREvNGEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mqjRE_NGEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mqj4IPNGEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mqj4IfNGEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mqj4IvNGEeCovO8AYZymZQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mqj4I_NGEeCovO8AYZymZQ" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mqj4JPNGEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mqj4JfNGEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_bc1mAPNHEeCovO8AYZymZQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bc2NEPNHEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bc2NEfNHEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bc2NEvNHEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bc2NE_NHEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bc2NFPNHEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bc2NFfNHEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_O-5l8DrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PVN0MDrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PVObQDrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PVObQTrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PVObQjrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PVObQzrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bc2NFvNHEeCovO8AYZymZQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Y0v8UEN-EeGfhclnRyNzoA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aYUJ8E4hEeKNVONx4BgsGg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bc2NF_NHEeCovO8AYZymZQ" x="19"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bc2NGPNHEeCovO8AYZymZQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bc2NGfNHEeCovO8AYZymZQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_r5Va0AytEd6it_RkGhz_AA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bc1mAfNHEeCovO8AYZymZQ" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cQDbAEN9EeGfhclnRyNzoA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cQECEEN9EeGfhclnRyNzoA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cQECEUN9EeGfhclnRyNzoA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cQECEkN9EeGfhclnRyNzoA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cQECE0N9EeGfhclnRyNzoA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cQECFEN9EeGfhclnRyNzoA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cQECFUN9EeGfhclnRyNzoA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gnyQQEN9EeGfhclnRyNzoA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_g-aAgEN9EeGfhclnRyNzoA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_g-aAgUN9EeGfhclnRyNzoA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_g-aAgkN9EeGfhclnRyNzoA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_g-aAg0N9EeGfhclnRyNzoA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_g-aAhEN9EeGfhclnRyNzoA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cQECFkN9EeGfhclnRyNzoA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XwXHIEN-EeGfhclnRyNzoA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a51ioE4hEeKNVONx4BgsGg" key="CustomAppearance_MaskValue" value="20"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cQECF0N9EeGfhclnRyNzoA" x="27"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cQECGEN9EeGfhclnRyNzoA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cQECGUN9EeGfhclnRyNzoA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_Zd558ENxEeGoAtSeIK7WLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cQDbAUN9EeGfhclnRyNzoA" x="117" y="36"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_fmF6MAzyEd6it_RkGhz_AA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mqiqAfNGEeCovO8AYZymZQ" x="396" y="279" width="127" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_o1VGkPNGEeCovO8AYZymZQ" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_o1VtoPNGEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_o1VtofNGEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_o1VtovNGEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_o1Vto_NGEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_o1WUsPNGEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_o1WUsfNGEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_o1WUsvNGEeCovO8AYZymZQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_o1WUs_NGEeCovO8AYZymZQ" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_o1WUtPNGEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_o1WUtfNGEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qpQiUPNGEeCovO8AYZymZQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qpRJYPNGEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qpRJYfNGEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qpRJYvNGEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qpRJY_NGEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qpRwcPNGEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qpRwcfNGEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RHYVYDrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RapPoDrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RapPoTrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Rap2sDrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Rap2sTrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Rap2sjrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qpRwcvNGEeCovO8AYZymZQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_h3CcMEN-EeGfhclnRyNzoA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lv9-sE4hEeKNVONx4BgsGg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qpRwc_NGEeCovO8AYZymZQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qpRwdPNGEeCovO8AYZymZQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qpRwdfNGEeCovO8AYZymZQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qpQiUfNGEeCovO8AYZymZQ" x="117" y="36"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_mIpj8Ns8Ed2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_o1VGkfNGEeCovO8AYZymZQ" x="468" y="36" width="127" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__uLGkPNGEeCovO8AYZymZQ" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__uLtoPNGEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__uLtofNGEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__uLtovNGEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__uLto_NGEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__uMUsPNGEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__uMUsfNGEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="__uMUsvNGEeCovO8AYZymZQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__uMUs_NGEeCovO8AYZymZQ" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__uMUtPNGEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__uMUtfNGEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_KNC08PQSEeCovO8AYZymZQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KNDcAPQSEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KNDcAfQSEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KNDcAvQSEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KNDcA_QSEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KNDcBPQSEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KNDcBfQSEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MhV-YDrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M0TWoDrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M0T9sDrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M0T9sTrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M0T9sjrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M0T9szrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_KNDcBvQSEeCovO8AYZymZQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_e8v1UEN-EeGfhclnRyNzoA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_b_sXcE4hEeKNVONx4BgsGg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KNDcB_QSEeCovO8AYZymZQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_KNEDEPQSEeCovO8AYZymZQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KNEDEfQSEeCovO8AYZymZQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_rSCxUAytEd6it_RkGhz_AA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KNC08fQSEeCovO8AYZymZQ" x="117" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_vzOfsEN9EeGfhclnRyNzoA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vzPGwEN9EeGfhclnRyNzoA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vzPGwUN9EeGfhclnRyNzoA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vzPGwkN9EeGfhclnRyNzoA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vzPGw0N9EeGfhclnRyNzoA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vzPGxEN9EeGfhclnRyNzoA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vzPGxUN9EeGfhclnRyNzoA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xAI-wEN9EeGfhclnRyNzoA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xXqt8EN9EeGfhclnRyNzoA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xXqt8UN9EeGfhclnRyNzoA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xXqt8kN9EeGfhclnRyNzoA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xXqt80N9EeGfhclnRyNzoA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xXrVAEN9EeGfhclnRyNzoA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vzPGxkN9EeGfhclnRyNzoA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_b0q0oEN_EeGfhclnRyNzoA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bcLasE4hEeKNVONx4BgsGg" key="CustomAppearance_MaskValue" value="20"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vzPGx0N9EeGfhclnRyNzoA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vzPGyEN9EeGfhclnRyNzoA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vzPGyUN9EeGfhclnRyNzoA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_MhH6cENxEeGoAtSeIK7WLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vzOfsUN9EeGfhclnRyNzoA" x="-10" y="36"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#__uJRYPNGEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__uLGkfNGEeCovO8AYZymZQ" x="90" y="405" width="127" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_u_QmwENqEeGoAtSeIK7WLg" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_u_RN0ENqEeGoAtSeIK7WLg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_u_RN0UNqEeGoAtSeIK7WLg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_u_RN0kNqEeGoAtSeIK7WLg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_u_RN00NqEeGoAtSeIK7WLg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_u_RN1ENqEeGoAtSeIK7WLg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_u_RN1UNqEeGoAtSeIK7WLg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_u_RN1kNqEeGoAtSeIK7WLg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_u_R04ENqEeGoAtSeIK7WLg" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_u_R04UNqEeGoAtSeIK7WLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u_R04kNqEeGoAtSeIK7WLg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7XPQEENqEeGoAtSeIK7WLg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7XP3IENqEeGoAtSeIK7WLg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7XP3IUNqEeGoAtSeIK7WLg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7XP3IkNqEeGoAtSeIK7WLg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7XP3I0NqEeGoAtSeIK7WLg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7XP3JENqEeGoAtSeIK7WLg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7XP3JUNqEeGoAtSeIK7WLg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8posEENqEeGoAtSeIK7WLg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9AyAwENqEeGoAtSeIK7WLg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9AyAwUNqEeGoAtSeIK7WLg" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9Ayn0ENqEeGoAtSeIK7WLg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9Ayn0UNqEeGoAtSeIK7WLg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9Ayn0kNqEeGoAtSeIK7WLg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7XP3JkNqEeGoAtSeIK7WLg" visible="false" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7XQeMENqEeGoAtSeIK7WLg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7XQeMUNqEeGoAtSeIK7WLg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7XQeMkNqEeGoAtSeIK7WLg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7XPQEUNqEeGoAtSeIK7WLg" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-nzo8ENqEeGoAtSeIK7WLg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-n0QAENqEeGoAtSeIK7WLg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-n0QAUNqEeGoAtSeIK7WLg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-n0QAkNqEeGoAtSeIK7WLg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-n0QA0NqEeGoAtSeIK7WLg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-n0QBENqEeGoAtSeIK7WLg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-n0QBUNqEeGoAtSeIK7WLg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aJho0EN8EeGfhclnRyNzoA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bHDoEEN8EeGfhclnRyNzoA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bHDoEUN8EeGfhclnRyNzoA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bHDoEkN8EeGfhclnRyNzoA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bHDoE0N8EeGfhclnRyNzoA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bHDoFEN8EeGfhclnRyNzoA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-n0QBkNqEeGoAtSeIK7WLg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WEWb0EN_EeGfhclnRyNzoA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_smS9UE4hEeKNVONx4BgsGg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-n0QB0NqEeGoAtSeIK7WLg" x="-99"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-n0QCENqEeGoAtSeIK7WLg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-n0QCUNqEeGoAtSeIK7WLg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_-nk_cENqEeGoAtSeIK7WLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-nzo8UNqEeGoAtSeIK7WLg" x="117" y="36" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_u7MmIENqEeGoAtSeIK7WLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u_QmwUNqEeGoAtSeIK7WLg" x="90" y="144" width="127" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1xcsQENqEeGoAtSeIK7WLg" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1xdTUENqEeGoAtSeIK7WLg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1xdTUUNqEeGoAtSeIK7WLg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1xdTUkNqEeGoAtSeIK7WLg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1xdTU0NqEeGoAtSeIK7WLg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1xdTVENqEeGoAtSeIK7WLg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1xdTVUNqEeGoAtSeIK7WLg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1xdTVkNqEeGoAtSeIK7WLg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1xdTV0NqEeGoAtSeIK7WLg" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1xdTWENqEeGoAtSeIK7WLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1xdTWUNqEeGoAtSeIK7WLg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_zeMyEEN8EeGfhclnRyNzoA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zeOAMEN8EeGfhclnRyNzoA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zeOAMUN8EeGfhclnRyNzoA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zeOAMkN8EeGfhclnRyNzoA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zeOAM0N8EeGfhclnRyNzoA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zeOANEN8EeGfhclnRyNzoA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zeOANUN8EeGfhclnRyNzoA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4rAYsEN9EeGfhclnRyNzoA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_48lQ4EN9EeGfhclnRyNzoA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_48lQ4UN9EeGfhclnRyNzoA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_48lQ4kN9EeGfhclnRyNzoA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_48lQ40N9EeGfhclnRyNzoA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_48l38EN9EeGfhclnRyNzoA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zeOANkN8EeGfhclnRyNzoA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a_mN0EN_EeGfhclnRyNzoA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mTaC8E4hEeKNVONx4BgsGg" key="CustomAppearance_MaskValue" value="20"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zeOAN0N8EeGfhclnRyNzoA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zeOAOEN8EeGfhclnRyNzoA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zeOAOUN8EeGfhclnRyNzoA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_9gIc8ENvEeGoAtSeIK7WLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zeNZIEN8EeGfhclnRyNzoA" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_zePOUEN8EeGfhclnRyNzoA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zeP1YEN8EeGfhclnRyNzoA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zeP1YUN8EeGfhclnRyNzoA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zeP1YkN8EeGfhclnRyNzoA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zeP1Y0N8EeGfhclnRyNzoA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zeP1ZEN8EeGfhclnRyNzoA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zeP1ZUN8EeGfhclnRyNzoA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5ijEsEN9EeGfhclnRyNzoA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5zBwsEN9EeGfhclnRyNzoA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5zCXwEN9EeGfhclnRyNzoA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5zCXwUN9EeGfhclnRyNzoA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5zCXwkN9EeGfhclnRyNzoA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5zCXw0N9EeGfhclnRyNzoA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zeP1ZkN8EeGfhclnRyNzoA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_e8wcYEN-EeGfhclnRyNzoA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dPSXEE4hEeKNVONx4BgsGg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zeP1Z0N8EeGfhclnRyNzoA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zeP1aEN8EeGfhclnRyNzoA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zeP1aUN8EeGfhclnRyNzoA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zePOUUN8EeGfhclnRyNzoA" x="117" y="36"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_1xGG8ENqEeGoAtSeIK7WLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1xcsQUNqEeGoAtSeIK7WLg" x="468" y="144" width="127" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_H7kTUENrEeGoAtSeIK7WLg" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H7k6YENrEeGoAtSeIK7WLg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H7k6YUNrEeGoAtSeIK7WLg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H7k6YkNrEeGoAtSeIK7WLg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H7k6Y0NrEeGoAtSeIK7WLg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H7k6ZENrEeGoAtSeIK7WLg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H7k6ZUNrEeGoAtSeIK7WLg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_H7k6ZkNrEeGoAtSeIK7WLg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_H7k6Z0NrEeGoAtSeIK7WLg" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_H7k6aENrEeGoAtSeIK7WLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H7k6aUNrEeGoAtSeIK7WLg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LIMnYENrEeGoAtSeIK7WLg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LINOcENrEeGoAtSeIK7WLg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LINOcUNrEeGoAtSeIK7WLg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LINOckNrEeGoAtSeIK7WLg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LINOc0NrEeGoAtSeIK7WLg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LINOdENrEeGoAtSeIK7WLg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LINOdUNrEeGoAtSeIK7WLg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MNeNYENrEeGoAtSeIK7WLg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MkeYIENrEeGoAtSeIK7WLg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Mke_MENrEeGoAtSeIK7WLg" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Mke_MUNrEeGoAtSeIK7WLg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Mke_MkNrEeGoAtSeIK7WLg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Mke_M0NrEeGoAtSeIK7WLg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LINOdkNrEeGoAtSeIK7WLg" visible="false" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LINOd0NrEeGoAtSeIK7WLg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LINOeENrEeGoAtSeIK7WLg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LINOeUNrEeGoAtSeIK7WLg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LIMnYUNrEeGoAtSeIK7WLg" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_i742UEN8EeGfhclnRyNzoA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i76EcEN8EeGfhclnRyNzoA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i76rgEN8EeGfhclnRyNzoA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i76rgUN8EeGfhclnRyNzoA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i76rgkN8EeGfhclnRyNzoA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i76rg0N8EeGfhclnRyNzoA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i76rhEN8EeGfhclnRyNzoA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_keq3sEN8EeGfhclnRyNzoA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k2gI4EN8EeGfhclnRyNzoA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k2gI4UN8EeGfhclnRyNzoA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k2gI4kN8EeGfhclnRyNzoA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k2gI40N8EeGfhclnRyNzoA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k2gI5EN8EeGfhclnRyNzoA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_i76rhUN8EeGfhclnRyNzoA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UeOLgEN_EeGfhclnRyNzoA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eFDhcE4hEeKNVONx4BgsGg" key="CustomAppearance_MaskValue" value="20"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_i76rhkN8EeGfhclnRyNzoA" x="-99"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_i77SkEN8EeGfhclnRyNzoA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_i77SkUN8EeGfhclnRyNzoA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_i5SOQEN8EeGfhclnRyNzoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i75dYEN8EeGfhclnRyNzoA" x="117" y="36" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_H7IOcENrEeGoAtSeIK7WLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H7kTUUNrEeGoAtSeIK7WLg" x="279" y="144" width="127" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_pmSKYEN_EeGfhclnRyNzoA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pmSxcEN_EeGfhclnRyNzoA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pmSxcUN_EeGfhclnRyNzoA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pmSxckN_EeGfhclnRyNzoA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pmSxc0N_EeGfhclnRyNzoA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pmSxdEN_EeGfhclnRyNzoA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pmSxdUN_EeGfhclnRyNzoA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_pmSxdkN_EeGfhclnRyNzoA" type="5192"/>
+ <element xmi:type="uml:Comment" href="corec.uml#_pk4cMEN_EeGfhclnRyNzoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pmSKYUN_EeGfhclnRyNzoA" x="351" y="390" width="391" height="79"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_hyMbAPNGEeCovO8AYZymZQ"/>
+ <element xmi:type="uml:Package" href="corec.uml#_gKMTIAytEd6it_RkGhz_AA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_khmAgPNGEeCovO8AYZymZQ" type="4015" source="_u_QmwENqEeGoAtSeIK7WLg" target="_kENg8PNGEeCovO8AYZymZQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_khmnkPNGEeCovO8AYZymZQ" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_khmnkfNGEeCovO8AYZymZQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_khmAgfNGEeCovO8AYZymZQ" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corec.uml#_K088oF_rEd6RvK-1A151zQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_khmAgvNGEeCovO8AYZymZQ" points="[17, -30, -23, 39]$[23, -39, -17, 30]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4ud3AENqEeGoAtSeIK7WLg" id="(0.49606299212598426,0.0273972602739726)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OtJFEEN8EeGfhclnRyNzoA" id="(0.20569620253164558,0.958904109589041)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_sH_KIPNGEeCovO8AYZymZQ" type="4015" source="_1xcsQENqEeGoAtSeIK7WLg" target="_o1VGkPNGEeCovO8AYZymZQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_sH_xMPNGEeCovO8AYZymZQ" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sIAYQPNGEeCovO8AYZymZQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_sH_KIfNGEeCovO8AYZymZQ" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corec.uml#_M09FgF_rEd6RvK-1A151zQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_sH_KIvNGEeCovO8AYZymZQ" points="[-8, -30, 0, 77]$[0, -77, 8, 30]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5r5voENqEeGoAtSeIK7WLg" id="(0.4881889763779528,0.0958904109589041)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_EWU9cPNHEeCovO8AYZymZQ" type="4015" source="__uLGkPNGEeCovO8AYZymZQ" target="_iVJ-IPNGEeCovO8AYZymZQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_EWWLkPNHEeCovO8AYZymZQ" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EWWLkfNHEeCovO8AYZymZQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_EWU9cfNHEeCovO8AYZymZQ" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corec.uml#_EWShMPNHEeCovO8AYZymZQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_EWU9cvNHEeCovO8AYZymZQ" points="[2, -8, -13, 52]$[20, -42, 5, 18]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_EWWyoPNHEeCovO8AYZymZQ" id="(0.4881889763779528,0.1095890410958904)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_EWWyofNHEeCovO8AYZymZQ" id="(0.5196850393700787,0.9178082191780822)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_KH4Z4ENrEeGoAtSeIK7WLg" type="4015" source="_H7kTUENrEeGoAtSeIK7WLg" target="_kENg8PNGEeCovO8AYZymZQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_KH5A8ENrEeGoAtSeIK7WLg" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KH5oAENrEeGoAtSeIK7WLg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_KH4Z4UNrEeGoAtSeIK7WLg" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corec.uml#_KHmGAENrEeGoAtSeIK7WLg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KH4Z4kNrEeGoAtSeIK7WLg" points="[-4, -5, 94, 153]$[-95, -150, 3, 8]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KIePwENrEeGoAtSeIK7WLg" id="(0.5229357798165137,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KIePwUNrEeGoAtSeIK7WLg" id="(0.8142857142857143,0.9452054794520548)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_cVCGYPNUEeCovO8AYZymZQ" type="PapyrusUMLClassDiagram" name="Class: Marshalling" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_jQk8MPNUEeCovO8AYZymZQ" type="2006" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jQljQPNUEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jQljQfNUEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jQljQvNUEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jQljQ_NUEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jQljRPNUEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jQljRfNUEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jQmKUPNUEeCovO8AYZymZQ" type="5023"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jQmKUfNUEeCovO8AYZymZQ" type="7015">
+ <children xmi:type="notation:Shape" xmi:id="_jv7KoPNUEeCovO8AYZymZQ" type="3017" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="corec.uml#_jv4uYPNUEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jv7KofNUEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kuE08PNUEeCovO8AYZymZQ" type="3017" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="corec.uml#_kuDm0PNUEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kuE08fNUEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ljFxYPNUEeCovO8AYZymZQ" type="3017" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="corec.uml#_ljD8MPNUEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ljFxYfNUEeCovO8AYZymZQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jQmKUvNUEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jQmKU_NUEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jQmKVPNUEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jQmKVfNUEeCovO8AYZymZQ"/>
+ </children>
+ <element xmi:type="uml:Enumeration" href="corec.uml#_jQjHAPNUEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jQk8MfNUEeCovO8AYZymZQ" x="387" y="83"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SPPn0FjnEeKaM_PspnG53g" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SPRdAFjnEeKaM_PspnG53g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SPSEEFjnEeKaM_PspnG53g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SPSEEVjnEeKaM_PspnG53g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SPSEEljnEeKaM_PspnG53g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SPSEE1jnEeKaM_PspnG53g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SPSEFFjnEeKaM_PspnG53g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SPSEFVjnEeKaM_PspnG53g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SPSrIFjnEeKaM_PspnG53g" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_USG3cFjnEeKaM_PspnG53g" type="3012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_d1EbcFjnEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eOY6YFjnEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="corec.uml#_YKtbAPNUEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_USG3cVjnEeKaM_PspnG53g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_USHegFjnEeKaM_PspnG53g" type="3012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_d1FCgFjnEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eOaIgFjnEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="corec.uml#_gQGNwPNUEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_USHegVjnEeKaM_PspnG53g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_USIFkFjnEeKaM_PspnG53g" type="3012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_d1FCgljnEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eOavkFjnEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="corec.uml#_-_HCMBI0EeGU49ezpRnvLg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_USIFkVjnEeKaM_PspnG53g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_USIsoFjnEeKaM_PspnG53g" type="3012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ffmDkFjnEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ffmDkVjnEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="60"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="corec.uml#_qzHgkPNUEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_USIsoVjnEeKaM_PspnG53g"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SPSrIVjnEeKaM_PspnG53g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SPSrIljnEeKaM_PspnG53g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SPSrI1jnEeKaM_PspnG53g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SPSrJFjnEeKaM_PspnG53g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SPSrJVjnEeKaM_PspnG53g" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SPSrJljnEeKaM_PspnG53g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SPSrJ1jnEeKaM_PspnG53g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SPSrKFjnEeKaM_PspnG53g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SPSrKVjnEeKaM_PspnG53g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SPSrKljnEeKaM_PspnG53g" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SPSrK1jnEeKaM_PspnG53g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SPSrLFjnEeKaM_PspnG53g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SPSrLVjnEeKaM_PspnG53g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SPSrLljnEeKaM_PspnG53g"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_WkkjoPNUEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SPPn0VjnEeKaM_PspnG53g" x="130" y="78"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_cVCGYfNUEeCovO8AYZymZQ"/>
+ <element xmi:type="uml:Package" href="corec.uml#_gKMTIAytEd6it_RkGhz_AA"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_g6Yg0CnOEeGxrprK9wB9iA" type="CompositeStructure" name="Service configuration" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_hvsYMCnOEeGxrprK9wB9iA" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hvs_QCnOEeGxrprK9wB9iA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hvtmUCnOEeGxrprK9wB9iA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hvtmUSnOEeGxrprK9wB9iA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hvtmUinOEeGxrprK9wB9iA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hvtmUynOEeGxrprK9wB9iA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hvtmVCnOEeGxrprK9wB9iA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hvtmVSnOEeGxrprK9wB9iA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hvuNYCnOEeGxrprK9wB9iA" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_j5-ecCnOEeGxrprK9wB9iA" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_j5_FgCnOEeGxrprK9wB9iA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_j5_FgSnOEeGxrprK9wB9iA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_j5_FginOEeGxrprK9wB9iA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_j5_FgynOEeGxrprK9wB9iA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_j5_FhCnOEeGxrprK9wB9iA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_j5_FhSnOEeGxrprK9wB9iA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_j5_FhinOEeGxrprK9wB9iA" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eASCYFjmEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eBKMIFjmEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_j5_skCnOEeGxrprK9wB9iA" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_j5_skSnOEeGxrprK9wB9iA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_j5_skinOEeGxrprK9wB9iA"/>
+ </children>
+ <element xmi:type="uml:Property" href="corec.uml#_rVfYoMGJEd-Mveea1W_olA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_j5-ecSnOEeGxrprK9wB9iA" x="10" y="10" width="131"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lEz54CnOEeGxrprK9wB9iA" type="3097" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lEz54inOEeGxrprK9wB9iA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lE0g8CnOEeGxrprK9wB9iA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lE0g8SnOEeGxrprK9wB9iA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lE0g8inOEeGxrprK9wB9iA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lE0g8ynOEeGxrprK9wB9iA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lE0g9CnOEeGxrprK9wB9iA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lE0g9SnOEeGxrprK9wB9iA" type="5150"/>
+ <element xmi:type="uml:Comment" href="corec.uml#_lCtoICnOEeGxrprK9wB9iA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lEz54SnOEeGxrprK9wB9iA" x="221" y="10" width="271" height="64"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hvuNYSnOEeGxrprK9wB9iA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hvuNYinOEeGxrprK9wB9iA"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_SiY_AP-EEd6628OhKk_dpg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hvsYMSnOEeGxrprK9wB9iA" x="62" y="64" width="524" height="135"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_t6v_0CnOEeGxrprK9wB9iA" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t6wm4CnOEeGxrprK9wB9iA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t6wm4SnOEeGxrprK9wB9iA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t6wm4inOEeGxrprK9wB9iA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t6wm4ynOEeGxrprK9wB9iA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t6xN8CnOEeGxrprK9wB9iA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t6xN8SnOEeGxrprK9wB9iA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_t6xN8inOEeGxrprK9wB9iA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_t6xN8ynOEeGxrprK9wB9iA" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_vBLcYCnOEeGxrprK9wB9iA" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vBMDcCnOEeGxrprK9wB9iA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vBMqgCnOEeGxrprK9wB9iA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vBMqgSnOEeGxrprK9wB9iA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vBNRkCnOEeGxrprK9wB9iA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vBNRkSnOEeGxrprK9wB9iA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vBNRkinOEeGxrprK9wB9iA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vBNRkynOEeGxrprK9wB9iA" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_chkosFjmEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_co8cAFjmEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_vBNRlCnOEeGxrprK9wB9iA" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_vBNRlSnOEeGxrprK9wB9iA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vBNRlinOEeGxrprK9wB9iA"/>
+ </children>
+ <element xmi:type="uml:Property" href="corec.uml#_tmNeoCjbEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vBLcYSnOEeGxrprK9wB9iA" x="10" y="10" width="173"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_zNMJ0CnOEeGxrprK9wB9iA" type="3097" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zNMw4SnOEeGxrprK9wB9iA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zNMw4inOEeGxrprK9wB9iA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zNNX8CnOEeGxrprK9wB9iA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zNNX8SnOEeGxrprK9wB9iA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zNNX8inOEeGxrprK9wB9iA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zNNX8ynOEeGxrprK9wB9iA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zNNX9CnOEeGxrprK9wB9iA" type="5150"/>
+ <element xmi:type="uml:Comment" href="corec.uml#_zLeSkCnOEeGxrprK9wB9iA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zNMw4CnOEeGxrprK9wB9iA" x="219" y="15" width="270"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_t6xN9CnOEeGxrprK9wB9iA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t6xN9SnOEeGxrprK9wB9iA"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_9V8OQCjYEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t6v_0SnOEeGxrprK9wB9iA" x="65" y="245" width="521" height="161"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_RANSwCo0EeGxrprK9wB9iA" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RAN50Co0EeGxrprK9wB9iA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RAN50So0EeGxrprK9wB9iA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RAN50io0EeGxrprK9wB9iA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RAN50yo0EeGxrprK9wB9iA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RAN51Co0EeGxrprK9wB9iA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RAN51So0EeGxrprK9wB9iA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RAN51io0EeGxrprK9wB9iA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_RAN51yo0EeGxrprK9wB9iA" visible="false" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_RAN52Co0EeGxrprK9wB9iA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RAN52So0EeGxrprK9wB9iA"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://QML_CORE/osal.uml#_ETakYDj8Edy0Rd6V_tf1-Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RANSwSo0EeGxrprK9wB9iA" x="652" y="261" width="60" height="55"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_g6Yg0SnOEeGxrprK9wB9iA"/>
+ <element xmi:type="uml:Package" href="corec.uml#_xtlE8ARAEd--t-uhRn9OBA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_mp1-ACnOEeGxrprK9wB9iA" type="4002" source="_lEz54CnOEeGxrprK9wB9iA" target="_j5-ecCnOEeGxrprK9wB9iA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_mp1-ASnOEeGxrprK9wB9iA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mp1-AinOEeGxrprK9wB9iA" points="[-50, -4, 105, 6]$[-136, -16, 19, -6]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mthkICnOEeGxrprK9wB9iA" id="(0.8137254901960784,0.3559322033898305)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_0Tj8ACnOEeGxrprK9wB9iA" type="4002" source="_zNMJ0CnOEeGxrprK9wB9iA" target="_vBLcYCnOEeGxrprK9wB9iA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_0Tj8ASnOEeGxrprK9wB9iA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0Tj8AinOEeGxrprK9wB9iA" points="[-20, -6, 63, 16]$[-56, -25, 27, -3]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0V4QMCnOEeGxrprK9wB9iA" id="(0.2,0.5166666666666667)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0V4QMSnOEeGxrprK9wB9iA" id="(0.8439306358381503,0.35)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_SZ63sCo0EeGxrprK9wB9iA" type="4010" source="_t6v_0CnOEeGxrprK9wB9iA" target="_RANSwCo0EeGxrprK9wB9iA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_SZ7ewCo0EeGxrprK9wB9iA" visible="false" type="6009">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SZ7ewSo0EeGxrprK9wB9iA" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SZ7ewio0EeGxrprK9wB9iA" type="6023">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SZ7ewyo0EeGxrprK9wB9iA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_SZ63sSo0EeGxrprK9wB9iA" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Dependency" href="corec.uml#_SXkHQCo0EeGxrprK9wB9iA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SZ63sio0EeGxrprK9wB9iA" points="[19, -6, -74, 0]$[85, -6, -8, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Sd71ACo0EeGxrprK9wB9iA" id="(0.963531669865643,0.32298136645962733)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Sd71ASo0EeGxrprK9wB9iA" id="(0.16666666666666666,0.5084745762711864)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_OhgzgD8AEeGJ6KSvhYhYuQ" type="CompositeStructure" name="CallActivation" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_SgFh4D8AEeGJ6KSvhYhYuQ" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SgGI8D8AEeGJ6KSvhYhYuQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SgGI8T8AEeGJ6KSvhYhYuQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SgGI8j8AEeGJ6KSvhYhYuQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SgGI8z8AEeGJ6KSvhYhYuQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SgGI9D8AEeGJ6KSvhYhYuQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SgGI9T8AEeGJ6KSvhYhYuQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SgGI9j8AEeGJ6KSvhYhYuQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SgGI9z8AEeGJ6KSvhYhYuQ" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SgGI-D8AEeGJ6KSvhYhYuQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SgGI-T8AEeGJ6KSvhYhYuQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dcQ7kD8AEeGJ6KSvhYhYuQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dcSJsD8AEeGJ6KSvhYhYuQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dcSJsT8AEeGJ6KSvhYhYuQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dcSJsj8AEeGJ6KSvhYhYuQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dcSJsz8AEeGJ6KSvhYhYuQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dcSJtD8AEeGJ6KSvhYhYuQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dcSJtT8AEeGJ6KSvhYhYuQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ocoRsD8AEeGJ6KSvhYhYuQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_o2fjMD8AEeGJ6KSvhYhYuQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_o2fjMT8AEeGJ6KSvhYhYuQ" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_o2fjMj8AEeGJ6KSvhYhYuQ" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_o2fjMz8AEeGJ6KSvhYhYuQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_o2fjND8AEeGJ6KSvhYhYuQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dcSJtj8AEeGJ6KSvhYhYuQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kA0sEFbDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nFWNAFbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dcSwwD8AEeGJ6KSvhYhYuQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dcSwwT8AEeGJ6KSvhYhYuQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dcSwwj8AEeGJ6KSvhYhYuQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dcRioD8AEeGJ6KSvhYhYuQ" x="-10" y="23"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dcSwwz8AEeGJ6KSvhYhYuQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dcTX0D8AEeGJ6KSvhYhYuQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dcTX0T8AEeGJ6KSvhYhYuQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dcTX0j8AEeGJ6KSvhYhYuQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dcTX0z8AEeGJ6KSvhYhYuQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dcTX1D8AEeGJ6KSvhYhYuQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dcTX1T8AEeGJ6KSvhYhYuQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m_hagD8AEeGJ6KSvhYhYuQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ndPRQD8AEeGJ6KSvhYhYuQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ndP4UD8AEeGJ6KSvhYhYuQ" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ndP4UT8AEeGJ6KSvhYhYuQ" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ndP4Uj8AEeGJ6KSvhYhYuQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ndP4Uz8AEeGJ6KSvhYhYuQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dcTX1j8AEeGJ6KSvhYhYuQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kq-cUFbDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nqWXgFbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dcTX1z8AEeGJ6KSvhYhYuQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dcTX2D8AEeGJ6KSvhYhYuQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dcTX2T8AEeGJ6KSvhYhYuQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dcSwxD8AEeGJ6KSvhYhYuQ" x="360" y="23"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_e6Y_EChYEd-eoo60eNyGlg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SgFh4T8AEeGJ6KSvhYhYuQ" x="117" y="99" width="370"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_S-NoUD8AEeGJ6KSvhYhYuQ" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_S-OPYD8AEeGJ6KSvhYhYuQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_S-OPYT8AEeGJ6KSvhYhYuQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_S-OPYj8AEeGJ6KSvhYhYuQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_S-OPYz8AEeGJ6KSvhYhYuQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_S-OPZD8AEeGJ6KSvhYhYuQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_S-OPZT8AEeGJ6KSvhYhYuQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_S-O2cD8AEeGJ6KSvhYhYuQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_S-O2cT8AEeGJ6KSvhYhYuQ" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_S-O2cj8AEeGJ6KSvhYhYuQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_S-O2cz8AEeGJ6KSvhYhYuQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1JUC4D8EEeGJ6KSvhYhYuQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1JUp8D8EEeGJ6KSvhYhYuQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1JUp8T8EEeGJ6KSvhYhYuQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1JUp8j8EEeGJ6KSvhYhYuQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1JUp8z8EEeGJ6KSvhYhYuQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1JVRAD8EEeGJ6KSvhYhYuQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1JVRAT8EEeGJ6KSvhYhYuQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7SckUD8EEeGJ6KSvhYhYuQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1E6gcD_HEeGFNeu-9sDdyA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1E6gcT_HEeGFNeu-9sDdyA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1E6gcj_HEeGFNeu-9sDdyA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1E6gcz_HEeGFNeu-9sDdyA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1E7HgD_HEeGFNeu-9sDdyA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1JVRAj8EEeGJ6KSvhYhYuQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_l3gg4FbDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mBsXoFbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1JVRAz8EEeGJ6KSvhYhYuQ" x="27" y="18"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1JVRBD8EEeGJ6KSvhYhYuQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1JVRBT8EEeGJ6KSvhYhYuQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_N0tB4Cu4Ed-uZPFNCty7PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1JUC4T8EEeGJ6KSvhYhYuQ" x="45" y="63"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1JVRBj8EEeGJ6KSvhYhYuQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1JV4ED8EEeGJ6KSvhYhYuQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1JV4ET8EEeGJ6KSvhYhYuQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1JV4Ej8EEeGJ6KSvhYhYuQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1JV4Ez8EEeGJ6KSvhYhYuQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1JV4FD8EEeGJ6KSvhYhYuQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1JV4FT8EEeGJ6KSvhYhYuQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wvweED_HEeGFNeu-9sDdyA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xWu-gD_HEeGFNeu-9sDdyA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xWu-gT_HEeGFNeu-9sDdyA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xWu-gj_HEeGFNeu-9sDdyA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xWu-gz_HEeGFNeu-9sDdyA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xWu-hD_HEeGFNeu-9sDdyA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1JV4Fj8EEeGJ6KSvhYhYuQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lQgyUFbDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lXdH0FbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1JV4Fz8EEeGJ6KSvhYhYuQ" x="27" y="27"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1JWfID8EEeGJ6KSvhYhYuQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1JWfIT8EEeGJ6KSvhYhYuQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1JVRBz8EEeGJ6KSvhYhYuQ" x="99" y="27"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1JWfIj8EEeGJ6KSvhYhYuQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1JXGMD8EEeGJ6KSvhYhYuQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1JXGMT8EEeGJ6KSvhYhYuQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1JXGMj8EEeGJ6KSvhYhYuQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1JXGMz8EEeGJ6KSvhYhYuQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1JXtQD8EEeGJ6KSvhYhYuQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1JXtQT8EEeGJ6KSvhYhYuQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uBA_4D_HEeGFNeu-9sDdyA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2z-qUD_HEeGFNeu-9sDdyA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2z-qUT_HEeGFNeu-9sDdyA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2z-qUj_HEeGFNeu-9sDdyA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2z_RYD_HEeGFNeu-9sDdyA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2z_RYT_HEeGFNeu-9sDdyA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1JXtQj8EEeGJ6KSvhYhYuQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jaFcMFbDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mifXkFbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1JXtQz8EEeGJ6KSvhYhYuQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1JXtRD8EEeGJ6KSvhYhYuQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1JXtRT8EEeGJ6KSvhYhYuQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1JWfIz8EEeGJ6KSvhYhYuQ" x="-10" y="27"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_qgzokChYEd-eoo60eNyGlg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_S-NoUT8AEeGJ6KSvhYhYuQ" x="117" y="189" width="109" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TeWg8D8AEeGJ6KSvhYhYuQ" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TeWg8j8AEeGJ6KSvhYhYuQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TeXIAD8AEeGJ6KSvhYhYuQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TeXIAT8AEeGJ6KSvhYhYuQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TeXIAj8AEeGJ6KSvhYhYuQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TeXIAz8AEeGJ6KSvhYhYuQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TeXIBD8AEeGJ6KSvhYhYuQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TeXIBT8AEeGJ6KSvhYhYuQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TeXIBj8AEeGJ6KSvhYhYuQ" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TeXIBz8AEeGJ6KSvhYhYuQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TeXICD8AEeGJ6KSvhYhYuQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_2wMyEChiEd-eoo60eNyGlg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TeWg8T8AEeGJ6KSvhYhYuQ" x="252" y="189"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_T7ZpUD8AEeGJ6KSvhYhYuQ" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_T7aQYD8AEeGJ6KSvhYhYuQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_T7aQYT8AEeGJ6KSvhYhYuQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_T7aQYj8AEeGJ6KSvhYhYuQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_T7aQYz8AEeGJ6KSvhYhYuQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_T7aQZD8AEeGJ6KSvhYhYuQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_T7aQZT8AEeGJ6KSvhYhYuQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_T7aQZj8AEeGJ6KSvhYhYuQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_T7aQZz8AEeGJ6KSvhYhYuQ" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_T7aQaD8AEeGJ6KSvhYhYuQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T7aQaT8AEeGJ6KSvhYhYuQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_6rmQoChiEd-eoo60eNyGlg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T7ZpUT8AEeGJ6KSvhYhYuQ" x="387" y="189" width="95"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gXAOYD8AEeGJ6KSvhYhYuQ" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gXA1cD8AEeGJ6KSvhYhYuQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gXA1cT8AEeGJ6KSvhYhYuQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gXA1cj8AEeGJ6KSvhYhYuQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gXA1cz8AEeGJ6KSvhYhYuQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gXA1dD8AEeGJ6KSvhYhYuQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gXA1dT8AEeGJ6KSvhYhYuQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gXA1dj8AEeGJ6KSvhYhYuQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gXBcgD8AEeGJ6KSvhYhYuQ" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gXBcgT8AEeGJ6KSvhYhYuQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gXBcgj8AEeGJ6KSvhYhYuQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_KxQBELuXEd2TTr3gJIvazw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gXAOYT8AEeGJ6KSvhYhYuQ" x="117" y="18" width="370"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_aCZK0D8CEeGJ6KSvhYhYuQ" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aCZx4D8CEeGJ6KSvhYhYuQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aCZx4T8CEeGJ6KSvhYhYuQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aCZx4j8CEeGJ6KSvhYhYuQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aCZx4z8CEeGJ6KSvhYhYuQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aCZx5D8CEeGJ6KSvhYhYuQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aCZx5T8CEeGJ6KSvhYhYuQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_aCZx5j8CEeGJ6KSvhYhYuQ" type="5192"/>
+ <element xmi:type="uml:Comment" href="corec.uml#_aAH58D8CEeGJ6KSvhYhYuQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aCZK0T8CEeGJ6KSvhYhYuQ" x="72" y="297" width="336" height="91"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jQ_BUD8CEeGJ6KSvhYhYuQ" type="2067" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jQ_BUj8CEeGJ6KSvhYhYuQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jQ_BUz8CEeGJ6KSvhYhYuQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jQ_oYD8CEeGJ6KSvhYhYuQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jQ_oYT8CEeGJ6KSvhYhYuQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jQ_oYj8CEeGJ6KSvhYhYuQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jQ_oYz8CEeGJ6KSvhYhYuQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jQ_oZD8CEeGJ6KSvhYhYuQ" type="5119"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jQ_oZT8CEeGJ6KSvhYhYuQ" type="7048">
+ <children xmi:type="notation:Shape" xmi:id="_XhHrcD8DEeGJ6KSvhYhYuQ" type="3066" fontName="" fontHeight="10" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="corec.uml#_mzqd4D8CEeGJ6KSvhYhYuQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XhHrcT8DEeGJ6KSvhYhYuQ" x="63"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XhjwUD8DEeGJ6KSvhYhYuQ" type="3066" fontName="" fontHeight="10" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="corec.uml#_qdIe8D8CEeGJ6KSvhYhYuQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XhjwUT8DEeGJ6KSvhYhYuQ" x="63"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XiAcQD8DEeGJ6KSvhYhYuQ" type="3066" fontName="" fontHeight="10" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="corec.uml#_rOMvgD8CEeGJ6KSvhYhYuQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XiAcQT8DEeGJ6KSvhYhYuQ" x="63"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jQ_oZj8CEeGJ6KSvhYhYuQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jQ_oZz8CEeGJ6KSvhYhYuQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jQ_oaD8CEeGJ6KSvhYhYuQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jQ_oaT8CEeGJ6KSvhYhYuQ"/>
+ </children>
+ <element xmi:type="uml:Enumeration" href="corec.uml#_hcwDkD8CEeGJ6KSvhYhYuQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jQ_BUT8CEeGJ6KSvhYhYuQ" x="441" y="261" width="164"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_OhgzgT8AEeGJ6KSvhYhYuQ"/>
+ <element xmi:type="uml:Package" href="corec.uml#_aQ7goChYEd-eoo60eNyGlg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_WFrvkD8AEeGJ6KSvhYhYuQ" type="4015" source="_S-NoUD8AEeGJ6KSvhYhYuQ" target="_SgFh4D8AEeGJ6KSvhYhYuQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_WFtkwD8AEeGJ6KSvhYhYuQ" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WFuL0D8AEeGJ6KSvhYhYuQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_WFrvkT8AEeGJ6KSvhYhYuQ" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corec.uml#_sW6OkChYEd-eoo60eNyGlg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WFrvkj8AEeGJ6KSvhYhYuQ" points="[-8, -29, 27, 101]$[-27, -100, 8, 30]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tiKoID8AEeGJ6KSvhYhYuQ" id="(0.15135135135135136,0.8813559322033898)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XN1DYD8AEeGJ6KSvhYhYuQ" type="4015" source="_TeWg8D8AEeGJ6KSvhYhYuQ" target="_SgFh4D8AEeGJ6KSvhYhYuQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_XN1qcD8AEeGJ6KSvhYhYuQ" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XN1qcT8AEeGJ6KSvhYhYuQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_XN1DYT8AEeGJ6KSvhYhYuQ" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corec.uml#_5AKpkChiEd-eoo60eNyGlg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XN1DYj8AEeGJ6KSvhYhYuQ" points="[-7, -29, 37, 186]$[-38, -185, 6, 30]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_YLQU8D8AEeGJ6KSvhYhYuQ" type="4015" source="_T7ZpUD8AEeGJ6KSvhYhYuQ" target="_SgFh4D8AEeGJ6KSvhYhYuQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_YLQ8AD8AEeGJ6KSvhYhYuQ" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YLQ8AT8AEeGJ6KSvhYhYuQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_YLQU8T8AEeGJ6KSvhYhYuQ" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corec.uml#_892AEChiEd-eoo60eNyGlg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YLQU8j8AEeGJ6KSvhYhYuQ" points="[-2, -29, 15, 281]$[-16, -280, 1, 30]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vL-ekD8AEeGJ6KSvhYhYuQ" id="(0.8729729729729729,0.8983050847457628)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_gXiZ4D8AEeGJ6KSvhYhYuQ" type="4015" source="_SgFh4D8AEeGJ6KSvhYhYuQ" target="_gXAOYD8AEeGJ6KSvhYhYuQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gXjA8D8AEeGJ6KSvhYhYuQ" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gXjA8T8AEeGJ6KSvhYhYuQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_gXiZ4T8AEeGJ6KSvhYhYuQ" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corec.uml#_oJX3IChYEd-eoo60eNyGlg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gXiZ4j8AEeGJ6KSvhYhYuQ" points="[-103, -29, 202, 58]$[-305, -87, 0, 0]"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_DfG8kF7qEeGEmrrwB1vhPg" type="CompositeStructure" name="CompositeDiagram CallMultiplier" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_EYv6UF7qEeGEmrrwB1vhPg" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EYwhYF7qEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EYwhYV7qEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EYwhYl7qEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EYwhY17qEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EYwhZF7qEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EYwhZV7qEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_c85eMF7tEeGEmrrwB1vhPg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_c86FQF7tEeGEmrrwB1vhPg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_c86FQV7tEeGEmrrwB1vhPg" key="StereotypeList" value="FCM::InteractionComponent"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_c86FQl7tEeGEmrrwB1vhPg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_c9de4F7tEeGEmrrwB1vhPg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_c9de4V7tEeGEmrrwB1vhPg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_EYwhZl7qEeGEmrrwB1vhPg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_EYwhZ17qEeGEmrrwB1vhPg" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_EYwhaF7qEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EYwhaV7qEeGEmrrwB1vhPg"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_KxQBELuXEd2TTr3gJIvazw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EYv6UV7qEeGEmrrwB1vhPg" x="135" y="72" width="154" height="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FWtXYF7qEeGEmrrwB1vhPg" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FWtXYl7qEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FWtXY17qEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FWt-cF7qEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FWt-cV7qEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FWt-cl7qEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FWt-c17qEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XrOJMF7tEeGEmrrwB1vhPg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XrOwQF7tEeGEmrrwB1vhPg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XrOwQV7tEeGEmrrwB1vhPg" key="StereotypeList" value="FCM::InteractionComponent"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XrOwQl7tEeGEmrrwB1vhPg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XrOwQ17tEeGEmrrwB1vhPg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XrOwRF7tEeGEmrrwB1vhPg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FWt-dF7qEeGEmrrwB1vhPg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_FWt-dV7qEeGEmrrwB1vhPg" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_FWt-dl7qEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FWt-d17qEeGEmrrwB1vhPg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_udKFYF7sEeGEmrrwB1vhPg" type="3069" fontName="Arial" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_udKFYl7sEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_udKFY17sEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_udKscF7sEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_udKscV7sEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_udKscl7sEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_udKsc17sEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_66tLMF7sEeGEmrrwB1vhPg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7N-FcF7sEeGEmrrwB1vhPg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7N-FcV7sEeGEmrrwB1vhPg" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7N-Fcl7sEeGEmrrwB1vhPg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7N-Fc17sEeGEmrrwB1vhPg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7N-FdF7sEeGEmrrwB1vhPg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_udKsdF7sEeGEmrrwB1vhPg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fcEHcFbDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PQ7DkFeJEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_udKsdV7sEeGEmrrwB1vhPg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_udKsdl7sEeGEmrrwB1vhPg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_udKsd17sEeGEmrrwB1vhPg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_udKFYV7sEeGEmrrwB1vhPg" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_udLTgF7sEeGEmrrwB1vhPg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_udLTgl7sEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_udLTg17sEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_udLThF7sEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_udLThV7sEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_udL6kF7sEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_udL6kV7sEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3KisQF7sEeGEmrrwB1vhPg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3gixcF7sEeGEmrrwB1vhPg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3gjYgF7sEeGEmrrwB1vhPg" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3gjYgV7sEeGEmrrwB1vhPg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3gjYgl7sEeGEmrrwB1vhPg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3gjYg17sEeGEmrrwB1vhPg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_udL6kl7sEeGEmrrwB1vhPg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f-9ZIFbDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f-9ZIVbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="30"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_udL6k17sEeGEmrrwB1vhPg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_udL6lF7sEeGEmrrwB1vhPg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_udL6lV7sEeGEmrrwB1vhPg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_udLTgV7sEeGEmrrwB1vhPg" x="144" y="36"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_Whe8EClYEd-eoo60eNyGlg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FWtXYV7qEeGEmrrwB1vhPg" x="135" y="198" width="154" height="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_b3o7wF7sEeGEmrrwB1vhPg" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_b3pi0F7sEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_b3pi0V7sEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_b3pi0l7sEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_b3pi017sEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_b3pi1F7sEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_b3pi1V7sEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bkoqwF7tEeGEmrrwB1vhPg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bkoqwV7tEeGEmrrwB1vhPg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bkoqwl7tEeGEmrrwB1vhPg" key="StereotypeList" value="FCM::InteractionComponent"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bkoqw17tEeGEmrrwB1vhPg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bkoqxF7tEeGEmrrwB1vhPg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bkoqxV7tEeGEmrrwB1vhPg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_b3pi1l7sEeGEmrrwB1vhPg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_b3pi117sEeGEmrrwB1vhPg" type="7073">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Z3t18F7tEeGEmrrwB1vhPg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z3udAF7tEeGEmrrwB1vhPg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z3udAV7tEeGEmrrwB1vhPg" key="StereotypeList" value="FCM::InteractionComponent"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z3udAl7tEeGEmrrwB1vhPg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z3udA17tEeGEmrrwB1vhPg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z3udBF7tEeGEmrrwB1vhPg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_b3pi2F7sEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b3pi2V7sEeGEmrrwB1vhPg"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_TLShkF7qEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b3o7wV7sEeGEmrrwB1vhPg" x="423" y="71" width="154" height="65"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ck0K0F7sEeGEmrrwB1vhPg" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ck0x4F7sEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ck0x4V7sEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ck0x4l7sEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ck0x417sEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ck0x5F7sEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ck0x5V7sEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UBwvMF7tEeGEmrrwB1vhPg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UBwvMV7tEeGEmrrwB1vhPg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UBxWQF7tEeGEmrrwB1vhPg" key="StereotypeList" value="FCM::InteractionComponent"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UBxWQV7tEeGEmrrwB1vhPg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UBxWQl7tEeGEmrrwB1vhPg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UBxWQ17tEeGEmrrwB1vhPg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ck0x5l7sEeGEmrrwB1vhPg" type="5156">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VCInEF7tEeGEmrrwB1vhPg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WxsgMF7tEeGEmrrwB1vhPg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WxsgMV7tEeGEmrrwB1vhPg" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WxsgMl7tEeGEmrrwB1vhPg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WxsgM17tEeGEmrrwB1vhPg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WxsgNF7tEeGEmrrwB1vhPg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ck0x517sEeGEmrrwB1vhPg" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ck0x6F7sEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ck0x6V7sEeGEmrrwB1vhPg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qrnGYF7sEeGEmrrwB1vhPg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qrntcF7sEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qrntcV7sEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qrntcl7sEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qrntc17sEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qroUgF7sEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qroUgV7sEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zr6CMF7sEeGEmrrwB1vhPg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0HjcYF7sEeGEmrrwB1vhPg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0HjcYV7sEeGEmrrwB1vhPg" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0HkDcF7sEeGEmrrwB1vhPg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0HkDcV7sEeGEmrrwB1vhPg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0HkDcl7sEeGEmrrwB1vhPg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qroUgl7sEeGEmrrwB1vhPg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ds_9kFbDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QJj7wFeJEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="60"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qroUg17sEeGEmrrwB1vhPg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qroUhF7sEeGEmrrwB1vhPg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qroUhV7sEeGEmrrwB1vhPg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_0KY1UF7pEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qrnGYV7sEeGEmrrwB1vhPg" x="147" y="38"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qroUhl7sEeGEmrrwB1vhPg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qro7kF7sEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qro7kV7sEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qro7kl7sEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qro7k17sEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qro7lF7sEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qro7lV7sEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1PKksF7sEeGEmrrwB1vhPg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1vGpAF7sEeGEmrrwB1vhPg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1vGpAV7sEeGEmrrwB1vhPg" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1vGpAl7sEeGEmrrwB1vhPg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1vGpA17sEeGEmrrwB1vhPg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1vGpBF7sEeGEmrrwB1vhPg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qro7ll7sEeGEmrrwB1vhPg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dHyXsFbDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PvAGsFeJEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qro7l17sEeGEmrrwB1vhPg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qro7mF7sEeGEmrrwB1vhPg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qro7mV7sEeGEmrrwB1vhPg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corec.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qroUh17sEeGEmrrwB1vhPg" x="-10" y="38"/>
+ </children>
+ <element xmi:type="uml:Class" href="corec.uml#_Mo2kwF7pEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ck0K0V7sEeGEmrrwB1vhPg" x="420" y="196" width="157" height="66"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_DfG8kV7qEeGEmrrwB1vhPg"/>
+ <element xmi:type="uml:Package" href="corec.uml#_ZISNcIQzEd2_fLv04swWfw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_GsuIEF7qEeGEmrrwB1vhPg" type="4015" source="_FWtXYF7qEeGEmrrwB1vhPg" target="_EYv6UF7qEeGEmrrwB1vhPg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GsvWMF7qEeGEmrrwB1vhPg" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GsvWMV7qEeGEmrrwB1vhPg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_GsuIEV7qEeGEmrrwB1vhPg" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corec.uml#_lYOSkClzEd-eoo60eNyGlg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GsuIEl7qEeGEmrrwB1vhPg" points="[-4, -29, 13, 99]$[-13, -98, 4, 30]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_eJ55UF7sEeGEmrrwB1vhPg" type="4015" source="_ck0K0F7sEeGEmrrwB1vhPg" target="_b3o7wF7sEeGEmrrwB1vhPg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_eJ6gYF7sEeGEmrrwB1vhPg" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eJ6gYV7sEeGEmrrwB1vhPg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_eJ55UV7sEeGEmrrwB1vhPg" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corec.uml#_eJqowF7sEeGEmrrwB1vhPg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_eJ55Ul7sEeGEmrrwB1vhPg" points="[-9, -10, -7, 96]$[-9, -76, -7, 30]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eKfIIF7sEeGEmrrwB1vhPg" id="(0.504424778761062,0.1694915254237288)"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/corec.uml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/corec.uml
new file mode 100644
index 00000000000..1570093713d
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/corec.uml
@@ -0,0 +1,1507 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:C_Cpp="http://www.eclipse.org/papyrus/C_Cpp/1" xmlns:FCM="http://www.eclipse.org/papyrus/FCM/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:l2="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML">
+ <uml:Model xmi:id="_O6TiIDLUEd26WNosUASSSw" name="core" viewpoint="">
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_O6TiITLUEd26WNosUASSSw">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_clzbsC3xEd6OqY3qskOtLQ">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/sysinterfaces.uml#_RodVAAweEd6it_RkGhz_AA"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_hWGaIF9CEd6vU6EJjexEKQ">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/corba.uml#_DtQEwDLdEd2_U4efLnjQIw"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_K9IBUP-FEd6628OhKk_dpg">
+ <importedPackage xmi:type="uml:Model" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_DV8nkBv8EduZN5aJJITI5w"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_mXnzUPQdEeCIC-7tA9lfzA">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/osal.uml#_ROTQYC-OEdySSa8YESkO2w"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Package" xmi:id="_TFq8cOy6Ed2UrumbR9YAVg" name="composites">
+ <packagedElement xmi:type="uml:Class" xmi:id="_WK3LwOy6Ed2UrumbR9YAVg" name="Composite">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_IiLnAMFjEd-Mveea1W_olA">
+ <body>currently unused, not sure whether really needed</body>
+ </ownedComment>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_2JtG8Oy6Ed2UrumbR9YAVg" name="b:createConnections" visibility="package" specification="_wlXUoOy6Ed2UrumbR9YAVg">
+ <language>C/C++</language>
+ <body>[template (clazz: Class)]
+/* --- create internal connections --- */
+[for (connector : Connector | clazz.getOwnedConnectors())]%>
+ [comment call createConnection (this = connector instance) define in utils /]
+ // connector [connector.name/]
+ [createConnection(connector)/]
+[/for]
+[/template]</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_D83p8Oy9Ed2UrumbR9YAVg" name="b:setup" specification="_BTEWIOy9Ed2UrumbR9YAVg">
+ <language>C/C++</language>
+ <body>[template (clazz: Class)]
+// createParts
+// assign implementations fixed at component design time
+[for (Property part | clazz.part)]
+ [if (type.isImplementation)]
+ [part.name/] = &amp;m_[part.name/]_impl;
+ [/if]
+[/for]
+
+// assign implementation fixed at deployment time
+[for (Property part | clazz.part)]
+ [if (type.isImplementation)]
+m_[part.name/] = [part.name/]
+ [/if]
+[/for]
+[/template]</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_wlXUoOy6Ed2UrumbR9YAVg" name="createConnections" method="_2JtG8Oy6Ed2UrumbR9YAVg"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_BTEWIOy9Ed2UrumbR9YAVg" name="setup" method="_D83p8Oy9Ed2UrumbR9YAVg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_1RehUAGpEd6eR-dxi5su4Q" name="BootLoader">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_JMwYwMGJEd-Mveea1W_olA">
+ <body>A template for the bootloader generation.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_JM4UkMGJEd-Mveea1W_olA">
+ <body>This C++ implementation of the template contains principally the definition of the
+&quot;main&quot; function and the declaration of the bootloader instance</body>
+ </ownedComment>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_AFnZUAGqEd6eR-dxi5su4Q" name="b:createInstances" specification="_3kwykAGpEd6eR-dxi5su4Q">
+ <language>C/C++</language>
+ <body>&lt;%createInstances%></body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_IbrFUAGqEd6eR-dxi5su4Q" name="b:main" specification="_6pkAUAGpEd6eR-dxi5su4Q"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_3kwykAGpEd6eR-dxi5su4Q" name="createInstances" method="_AFnZUAGqEd6eR-dxi5su4Q"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_6pkAUAGpEd6eR-dxi5su4Q" name="main" isStatic="true" method="_IbrFUAGqEd6eR-dxi5su4Q"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_mMCK8PiPEd2UhpY2Y3WUyg" name="methodCall">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_WiuBUK8rEeCXIcykFPsB8Q" annotatedElement="_mMCK8PiPEd2UhpY2Y3WUyg">
+ <body>Main package template for all call based connectors. The formal parameter is the interface I (which is bound to the actual interface used in a call).
+This package is virtually extended by other model libraries who import it.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="__oxUADrVEeGMCcwsbpLuFA" annotatedElement="_j29X4NttEd2eM5kqcby5ZA">
+ <body>Inheritance hierarchy for (A)SyncCall component types. Separate types for required (rconn) and provided (fconn) ports enable re-use via inheritance ain multiple places (e.g. for AMI ports that use an unmodified provided port and different variants of a required port).
+Note that ports on connector side are conjugated</body>
+ </ownedComment>
+ <ownedTemplateSignature xmi:type="uml:TemplateSignature" xmi:id="_V0b2APfBEd2TbIfwytOyPA" parameter="_WzWVUPfBEd2TbIfwytOyPA">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_WzWVUPfBEd2TbIfwytOyPA" parameteredElement="_ZzlzMPfBEd2TbIfwytOyPA">
+ <ownedParameteredElement xmi:type="uml:Interface" xmi:id="_ZzlzMPfBEd2TbIfwytOyPA" name="I" templateParameter="_WzWVUPfBEd2TbIfwytOyPA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <packagedElement xmi:type="uml:Package" xmi:id="_ZISNcIQzEd2_fLv04swWfw" name="AsyncCall">
+ <packagedElement xmi:type="uml:Class" xmi:id="_KxQBELuXEd2TTr3gJIvazw" name="AsyncCall" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_0KzSsDBEEd6V16eboHV1gw" general="_j29X4NttEd2eM5kqcby5ZA"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_1H2JwDBEEd6V16eboHV1gw" general="_mIpj8Ns8Ed2eM5kqcby5ZA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Whe8EClYEd-eoo60eNyGlg" clientDependency="_nBpugClzEd-eoo60eNyGlg" name="AsyncCall_impl">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_sp9YYG5fEd-5CZIeuHpHAg">
+ <body>Description: A simple implementation of asynchronous calls. It will execution requests by means of a single dispatcher thread</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_HMz-ADJKEeCAhMtIsY9HwA">
+ <body>Simple asynchronous call implementation: returns immediately and executes request in new thread</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_bustsDJKEeCAhMtIsY9HwA">
+ <body>Uses buffer and ASN marshalling.
+TODO: configurable buffer size, use data structure (CppParameterStorage)</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_lYOSkClzEd-eoo60eNyGlg" general="_KxQBELuXEd2TTr3gJIvazw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_1XeLIED5Ed-_DOja_sRgWA" name="buffer" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8wC7MED5Ed-_DOja_sRgWA" value="500"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8wLeEED5Ed-_DOja_sRgWA" value="500"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_2fcqYED6Ed-_DOja_sRgWA" name="pBuffer" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ </ownedAttribute>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_nBpugClzEd-eoo60eNyGlg" name="derived realization of I" client="_Whe8EClYEd-eoo60eNyGlg" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_WhfjIilYEd-eoo60eNyGlg" name="[name/]" specification="_2bwsEClzEd-eoo60eNyGlg">
+ <language>C/C++</language>
+ <body>[import org::eclipse::papyrus::qompass::designer::core::acceleo::UMLTool/]
+[import org::eclipse::papyrus::qompass::designer::core::acceleo::utils_cpp/]
+
+[template public op(operation : Operation)]
+// TODO: need suitable constant dimensioning
+pBuffer = &amp;buffer['['/]500[']'/]; // grows backwards
+int operationID = ID_[operation.name/];
+
+// now marshall in and inout parameters via ASN.1
+[for (parameter : Parameter | operation.parametersInInout())]
+{
+ [parameter.type.cppType()/] varName_ASN = [parameter.name/];
+ BEncAsnContent (&amp;pBuffer, &amp;varName_ASN);
+}
+[/for]
+BEncAsnContent (&amp;pBuffer, &amp;operationID);
+
+pthread_t pt;
+pthread_create (&amp;pt, NULL, staticDispatch, (void *) this);
+// TODO: add semaphore which assures that subsequent calls to [operation.name/] are not executed before dispatch
+// has removed the parameters from the pBuffer stack (pBuffer can be corrupted).
+[/template]</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_WhfjIylYEd-eoo60eNyGlg" name="static[name/]" specification="_WhfjJSlYEd-eoo60eNyGlg">
+ <language>C/C++</language>
+ <body>((AsyncCall_impl *) arg)->dispatch ();
+return NULL;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_nV2DcED5Ed-_DOja_sRgWA" name="dispatch" specification="_G6LzAD3QEd-Bk-AHd6yyoA">
+ <language>C/C++</language>
+ <body>[import org::eclipse::papyrus::qompass::designer::core::acceleo::UMLTool/]
+[import org::eclipse::papyrus::qompass::designer::core::acceleo::utils_cpp/]
+
+[template public dispatch(clazz : Class)]
+int operationID;
+BDecAsnContent (&amp;pBuffer, operationID);
+switch (operationID)
+{
+[for (operation : Operation | clazz.ownedOperation)]
+ case ID_[operation.name/]
+ {
+ [for (parameter : Parameter | operation.parametersInInout()->reverse())]
+ [parameter.type.cppType()/] [parameter.name/]
+ {
+ [parameter.type.cppType()/] varName_ASN;
+ BDecAsnContent (&amp;pBuffer, &amp;varName_ASN);
+ [parameter.name/] = varName_ASN;
+ }
+ [/for]
+ // delegate call to executor
+ rconn->[operation.cppCall()/];
+ break;
+ }
+[/for]
+}
+[/template]</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_WhfjJSlYEd-eoo60eNyGlg" name="staticDispatch" isStatic="true" method="_WhfjIylYEd-eoo60eNyGlg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_WhfjJilYEd-eoo60eNyGlg" name="arg">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WhfjKClYEd-eoo60eNyGlg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_WhfjJylYEd-eoo60eNyGlg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_WhfjKSlYEd-eoo60eNyGlg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_WhfjKilYEd-eoo60eNyGlg" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_2bwsEClzEd-eoo60eNyGlg" name="[name/]" method="_WhfjIilYEd-eoo60eNyGlg"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_G6LzAD3QEd-Bk-AHd6yyoA" name="dispatch" method="_nV2DcED5Ed-_DOja_sRgWA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_pXzKcEJ1Ed-Ps4Bfh0j9LQ" clientDependency="_pXzxh0J1Ed-Ps4Bfh0j9LQ" name="AsyncCallPool_impl">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_spsPMDJKEeCAhMtIsY9HwA">
+ <body>(untested) implementation of an asynchronous invocation that uses a thread pool for
+spawning new requests</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_pXzKcUJ1Ed-Ps4Bfh0j9LQ" general="_KxQBELuXEd2TTr3gJIvazw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_pXzxgEJ1Ed-Ps4Bfh0j9LQ" name="buffer" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_pXzxgkJ1Ed-Ps4Bfh0j9LQ" value="500"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_pXzxgUJ1Ed-Ps4Bfh0j9LQ" value="500"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_pXzxg0J1Ed-Ps4Bfh0j9LQ" name="pBuffer" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ </ownedAttribute>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_pXzxh0J1Ed-Ps4Bfh0j9LQ" name="derived realization of I" client="_pXzKcEJ1Ed-Ps4Bfh0j9LQ" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_pXzxhEJ1Ed-Ps4Bfh0j9LQ" name="[name/]" specification="_pXzxjkJ1Ed-Ps4Bfh0j9LQ">
+ <language>C/C++</language>
+ <body>[template marshall(operation: Operation)]
+// TODO: need suitable constant dimensioning
+pBuffer = &amp;buffer[500]; // grows backwards
+int operationID = ID_[operation.name/];
+
+// now marshall in and inout parameters via ASN.1
+for (parameter : Parameter | parametersInInout(operation)]
+{
+ [cppType(parameter.type)/] varName_ASN = [parameter.name/];
+ BEncAsnContent (&amp;pBuffer, &amp;varName_ASN);
+}
+[/for]
+BEncAsnContent (&amp;pBuffer, &amp;operationID);
+
+// find associated thread and signal its semaphore
+// pass &quot;this&quot; to access buffer
+// pthread_t pt;
+// pthread_create (&amp;pt, NULL, staticDispatch, (void *) this);
+// TODO: add semaphore which assures that 2 snd calls to [operation.name/] is not done before dispatch
+// is executed
+[/template]
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_pXzxhUJ1Ed-Ps4Bfh0j9LQ" name="static[name/]" specification="_pXzxiEJ1Ed-Ps4Bfh0j9LQ">
+ <language>C/C++</language>
+ <body>((AsyncCall_impl *) arg)->dispatch ();
+return NULL;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_pXzxhkJ1Ed-Ps4Bfh0j9LQ" name="dispatch" specification="_pXzxj0J1Ed-Ps4Bfh0j9LQ">
+ <language>C/C++</language>
+ <body>[import org::eclipse::papyrus::qompass::designer::core::acceleo::UMLTool/]
+[import org::eclipse::papyrus::qompass::designer::core::acceleo::utils_cpp/]
+
+[template public dispatch(clazz : Class)]
+int operationID;
+BDecAsnContent (&amp;pBuffer, operationID);
+switch (operationID)
+{
+[for (operation : Operation | clazz.ownedOperation)]
+ case ID_[operation.name/]
+ {
+ [for (parameter : Parameter | operation.parametersInInout()->reverse())]
+ [parameter.type.cppType()/] [parameter.name/]
+ {
+ [cppType(parameter.type)/] varName_ASN;
+ BDecAsnContent (&amp;pBuffer, &amp;varName_ASN);
+ [parameter.name/] = varName_ASN;
+ }
+ [/for]
+ // delegate call to executor
+ [if (not (type = null))] [operation.type.cppType()/] ret = [/if]rconn->[operation.cppCall()/];
+ [for (parameter : Parameter | operation.parametersOutInout())]
+ {
+ [parameter.type.cppType()/] varName_ASN = [parameter.name/];
+ BEncAsnContent (&amp;pBuffer, &amp;varName_ASN);
+ }
+ [/for]
+ resultsReady = 1;
+ break;
+ }
+[/for]
+}
+[/template]
+</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_pXzxiEJ1Ed-Ps4Bfh0j9LQ" name="staticDispatch" isStatic="true" method="_pXzxhUJ1Ed-Ps4Bfh0j9LQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_pXzxiUJ1Ed-Ps4Bfh0j9LQ" name="arg">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_pXzxi0J1Ed-Ps4Bfh0j9LQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_pXzxikJ1Ed-Ps4Bfh0j9LQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_pXzxjEJ1Ed-Ps4Bfh0j9LQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_pXzxjUJ1Ed-Ps4Bfh0j9LQ" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_pXzxjkJ1Ed-Ps4Bfh0j9LQ" name="[name/]" method="_pXzxhEJ1Ed-Ps4Bfh0j9LQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_pXzxj0J1Ed-Ps4Bfh0j9LQ" name="dispatch" method="_pXzxhkJ1Ed-Ps4Bfh0j9LQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_3itBkNdwEd-ZnqCk2P2ZKg" clientDependency="_3itBmtdwEd-ZnqCk2P2ZKg" name="AMIPollCall_impl">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_3itBkddwEd-ZnqCk2P2ZKg">
+ <body>Description: A simple implementation of asynchronous calls. It will execution requests by means of a single dispatcher thread</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_lEC3ADJLEeCAhMtIsY9HwA">
+ <body>Polling variant of corbas asynchronous messaging (AMI), enables asynchronous calls while reading
+return values (also called deferred synchronous):
+Instead of specified return values, functions return a poller object which may be queried for
+the result.
+TODO: complete, move into model of Qompass AMI plugin</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_3itBktdwEd-ZnqCk2P2ZKg" general="_KxQBELuXEd2TTr3gJIvazw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_3itBk9dwEd-ZnqCk2P2ZKg" name="buffer" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3itBlddwEd-ZnqCk2P2ZKg" value="500"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3itBlNdwEd-ZnqCk2P2ZKg" value="500"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_3itBltdwEd-ZnqCk2P2ZKg" name="pBuffer" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ </ownedAttribute>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_3itBmtdwEd-ZnqCk2P2ZKg" name="derived realization of I" client="_3itBkNdwEd-ZnqCk2P2ZKg" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_3itBl9dwEd-ZnqCk2P2ZKg" name="[name/]" specification="_3itBoddwEd-ZnqCk2P2ZKg">
+ <language>C/C++</language>
+ <body>[import org::eclipse::papyrus::qompass::designer::core::acceleo::UMLTool/]
+[import org::eclipse::papyrus::qompass::designer::core::acceleo::utils_cpp/]
+
+[template public marshall(operation : Operation)]
+[if (operation.name.oclAsType(String).endsWith('Poll'))]
+[comment polling function/]
+if (!resultArrived) {
+ // wait for result, condition will be fired upon arrival
+ TimeVal timeVal = TimeVal::current () + timeout;
+ m_cond.waitUpto (timeout);
+}
+ [for (parameter : Parameter | operation.parametersInInout()->reverse())]
+ [parameter.type.cppType()/] [parameter.name/];
+ {
+ [parameter.type.cppType()/] varName_ASN;
+ BDecAsnContent (&amp;pBuffer, &amp;varName_ASN);
+ [parameter.name/] = varName_ASN;
+ }
+ [/for]
+}
+[if (not (type = null))]return retValue;[/if]
+[else]
+// TODO: need suitable constant dimensioning
+pBuffer = &amp;buffer['['/]500[']'/]; // grows backwards
+int operationID = ID_[operation.name/];
+
+// now marshall in and inout parameters via ASN.1
+[for (parameter : Parameter | operation.parametersInInout())]
+ [parameter.type.cppType()/] [parameter.name/];
+ {
+ [parameter.type.cppType()/] varName_ASN = [parameter.name/];
+ BEncAsnContent (&amp;pBuffer, &amp;varName_ASN);
+ }
+[/for]
+BEncAsnContent (&amp;pBuffer, &amp;operationID);
+
+pthread_t pt;
+pthread_create (&amp;pt, NULL, staticDispatch, (void *) this);
+// TODO: add semaphore which assures that subsequent calls to [operation.name/] are not executed before dispatch
+// has removed the parameters from the pBuffer stack (pBuffer can be corrupted).
+// even worse: buffer will be deallocated even without a 2nd call!
+[/if]
+[/template]</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_3itBmNdwEd-ZnqCk2P2ZKg" name="static[name/]" specification="_3itBm9dwEd-ZnqCk2P2ZKg">
+ <language>C/C++</language>
+ <body>((AsyncCall_impl *) arg)->dispatch ();
+return NULL;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_3itBmddwEd-ZnqCk2P2ZKg" name="dispatch" specification="_3itBotdwEd-ZnqCk2P2ZKg">
+ <language>C/C++</language>
+ <body>[import org::eclipse::papyrus::qompass::designer::core::acceleo::UMLTool/]
+[import org::eclipse::papyrus::qompass::designer::core::acceleo::utils_cpp/]
+
+[template public dispatch(clazz : Class)]
+int operationID;
+BDecAsnContent (&amp;pBuffer, operationID);
+switch (operationID)
+{
+[for (operation : Operation | clazz.ownedOperation)]
+ case ID_[operation.name/]
+ {
+ [for (parameter : Parameter | operation.parametersInInout()->reverse())]
+ [parameter.type.cppType()/] [parameter.name/]
+ {
+ [cppType(parameter.type)/] varName_ASN;
+ BDecAsnContent (&amp;pBuffer, &amp;varName_ASN);
+ [parameter.name/] = varName_ASN;
+ }
+ [/for]
+ // delegate call to executor
+ [if (not (type = null))] [operation.type.cppType()/] ret = [/if]rconn->[operation.cppCall()/];
+ [for (parameter : Parameter | operation.parametersOutInout())]
+ {
+ [parameter.type.cppType()/] varName_ASN = [parameter.name/];
+ BEncAsnContent (&amp;pBuffer, &amp;varName_ASN);
+ }
+ [/for]
+ resultsReady = 1;
+ break;
+ }
+[/for]
+}
+[/template]
+</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_3itBm9dwEd-ZnqCk2P2ZKg" name="staticDispatch" isStatic="true" method="_3itBmNdwEd-ZnqCk2P2ZKg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_3itBnNdwEd-ZnqCk2P2ZKg" name="arg">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3itBntdwEd-ZnqCk2P2ZKg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3itBnddwEd-ZnqCk2P2ZKg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_3itBn9dwEd-ZnqCk2P2ZKg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_3itBoNdwEd-ZnqCk2P2ZKg" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_3itBoddwEd-ZnqCk2P2ZKg" name="[name/]" method="_3itBl9dwEd-ZnqCk2P2ZKg"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_3itBotdwEd-ZnqCk2P2ZKg" name="dispatch" method="_3itBmddwEd-ZnqCk2P2ZKg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Mo2kwF7pEeGEmrrwB1vhPg" clientDependency="_8e_ocF7sEeGEmrrwB1vhPg" name="CallMultiplier_impl">
+ <generalization xmi:type="uml:Generalization" xmi:id="_eJqowF7sEeGEmrrwB1vhPg" general="_TLShkF7qEeGEmrrwB1vhPg"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_8e_ocF7sEeGEmrrwB1vhPg" name="derived realization of I" client="_Mo2kwF7pEeGEmrrwB1vhPg" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_DmUQcF7tEeGEmrrwB1vhPg" name="operation1" specification="_ChD4kF7tEeGEmrrwB1vhPg">
+ <language>C/C++</language>
+ <body>[import org::eclipse::papyrus::qompass::designer::core::acceleo::UMLTool/]
+[import org::eclipse::papyrus::qompass::designer::core::acceleo::utils_cpp/]
+
+[template public multiply(operation : Operation)]
+for (int i=0; i&lt;9; i++) {
+ if (rconn['['/]i[']'/] != 0) {
+ rconn['['/]i[']'/]->[operation.cppCall()/];
+ }
+}
+[/template]</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_ChD4kF7tEeGEmrrwB1vhPg" name="[name/]" method="_DmUQcF7tEeGEmrrwB1vhPg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_TLShkF7qEeGEmrrwB1vhPg" name="AsyncCallM" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_WhUpQF7qEeGEmrrwB1vhPg" general="_0KYOQF7pEeGEmrrwB1vhPg"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_XgUoIF7qEeGEmrrwB1vhPg" general="_j29X4NttEd2eM5kqcby5ZA"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_2oxDIPiPEd2UhpY2Y3WUyg" name="OperationIDs">
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_KOvHsPiREd2UhpY2Y3WUyg" name="ID_[name/]"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_j29X4NttEd2eM5kqcby5ZA" name="OPC_useI" isAbstract="true">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_P4xVsNtuEd2eM5kqcby5ZA" name="fconn" type="_ZzlzMPfBEd2TbIfwytOyPA" aggregation="composite" isConjugated="true"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_mIpj8Ns8Ed2eM5kqcby5ZA" name="OPC_provideI" isAbstract="true">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_Qk0jYNtuEd2eM5kqcby5ZA" name="rconn" visibility="public" type="_ZzlzMPfBEd2TbIfwytOyPA" aggregation="composite" isConjugated="true">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rftH8ENwEeGoAtSeIK7WLg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rfxZYENwEeGoAtSeIK7WLg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_rf3gAENwEeGoAtSeIK7WLg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_gKMTIAytEd6it_RkGhz_AA" name="marshalling">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_9gpvcENxEeGoAtSeIK7WLg">
+ <body>Needs completion:
+good(?) write buffer event?
+Call operations of buffer component?
+[could have done in an identical way for EventPool]</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_pk4cMEN_EeGfhclnRyNzoA">
+ <body>Marshalling is done at two levels:
+(1) In case of a shared address space, only a callEvent is created. It can be passed between threads within a process.
+(2) For remote communication, marshalling into a buffer is done.</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_b_yh4AzyEd6it_RkGhz_AA" name="Marshall" isAbstract="true">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_rSCxUAytEd6it_RkGhz_AA" name="disp" visibility="public" aggregation="composite">
+ <type xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_7TuzoCUUEd6YR-YzyVnLng"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HZg9YPQSEeCovO8AYZymZQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HaX5APQSEeCovO8AYZymZQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_Hfsd4PQSEeCovO8AYZymZQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_MhH6cENxEeGoAtSeIK7WLg" name="in" visibility="public" type="_WkkjoPNUEeCovO8AYZymZQ" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QR4PQENxEeGoAtSeIK7WLg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QR5dYENxEeGoAtSeIK7WLg" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_fmF6MAzyEd6it_RkGhz_AA" name="Unmarshall" isAbstract="true">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_r5Va0AytEd6it_RkGhz_AA" name="disp" visibility="public" aggregation="composite">
+ <type xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_7TuzoCUUEd6YR-YzyVnLng"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WNWcQEN-EeGfhclnRyNzoA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_WNY4gEN-EeGfhclnRyNzoA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_WNe_IEN-EeGfhclnRyNzoA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_Zd558ENxEeGoAtSeIK7WLg" name="out" visibility="public" type="_WkkjoPNUEeCovO8AYZymZQ" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_aPDDAENxEeGoAtSeIK7WLg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_aPERIENxEeGoAtSeIK7WLg" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_fPpr0K-jEd6DndT7kDY1-A" name="b:dispatch">
+ <specification xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#__aGzICUUEd6YR-YzyVnLng"/>
+ </ownedBehavior>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="__uJRYPNGEeCovO8AYZymZQ" name="StructBased">
+ <generalization xmi:type="uml:Generalization" xmi:id="_EWShMPNHEeCovO8AYZymZQ" general="_b_yh4AzyEd6it_RkGhz_AA"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_qRJc8PNJEeCovO8AYZymZQ" name="[name/]" specification="_aGt1sPNJEeCovO8AYZymZQ">
+ <language>C/C++</language>
+ <body>[template marshallStruct(operation : Operation)]
+struct ParamData {
+[for (parameter : Parameter | parametersInInout(operation))]
+ int [cppType(name)/];
+[/for]
+};
+Event event;
+event.ID = [operation.name/];
+event.kind = CallEvent;
+ParamData * data = &amp;event.params;
+[for (parameter : Parameter | parametersInInout(operation))]
+ data->[parameter.name/] = [parameter.name/];
+[/for]
+out->dispatch(event);</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_aGt1sPNJEeCovO8AYZymZQ" name="[name/]" method="_qRJc8PNJEeCovO8AYZymZQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_u7MmIENqEeGoAtSeIK7WLg" name="ToCallEvent">
+ <generalization xmi:type="uml:Generalization" xmi:id="_K088oF_rEd6RvK-1A151zQ" general="_j29X4NttEd2eM5kqcby5ZA"/>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_-nk_cENqEeGoAtSeIK7WLg" name="out" visibility="public" type="_WkkjoPNUEeCovO8AYZymZQ" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_AdVAIENrEeGoAtSeIK7WLg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_AdW1UENrEeGoAtSeIK7WLg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_Adf_QENrEeGoAtSeIK7WLg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_1xGG8ENqEeGoAtSeIK7WLg" name="FromCallEventWP">
+ <generalization xmi:type="uml:Generalization" xmi:id="_M09FgF_rEd6RvK-1A151zQ" general="_mIpj8Ns8Ed2eM5kqcby5ZA"/>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_9gIc8ENvEeGoAtSeIK7WLg" name="in" visibility="public" type="_WkkjoPNUEeCovO8AYZymZQ" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9uDkMENvEeGoAtSeIK7WLg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9uEyUENvEeGoAtSeIK7WLg" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_H7IOcENrEeGoAtSeIK7WLg" name="ToCallEventWP">
+ <generalization xmi:type="uml:Generalization" xmi:id="_KHmGAENrEeGoAtSeIK7WLg" general="_j29X4NttEd2eM5kqcby5ZA"/>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_i5SOQEN8EeGfhclnRyNzoA" name="out" visibility="public" type="_WkkjoPNUEeCovO8AYZymZQ" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jRB_4EN8EeGfhclnRyNzoA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jRtVUEN8EeGfhclnRyNzoA" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_RjvvcA1jEd6tvthBDl600Q" name="SyncCall">
+ <packagedElement xmi:type="uml:Class" xmi:id="_Zx2ZUA1jEd6tvthBDl600Q" name="SyncCall" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_STdvYDBFEd6V16eboHV1gw" general="_j29X4NttEd2eM5kqcby5ZA"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_T1zr4DBFEd6V16eboHV1gw" general="_mIpj8Ns8Ed2eM5kqcby5ZA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_jOU60A1jEd6tvthBDl600Q" clientDependency="_1tfFAJyCEd6WR4pSVO_UYw" name="DirectCall_impl">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_MgKU8G5gEd-5CZIeuHpHAg">
+ <body>Description: This connector is a kind of dummy connector, since it only passes incoming requests to its caller port</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_0fC3UDJJEeCAhMtIsY9HwA">
+ <body>Minimal connector implementation that does nothing (but passing requests)</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_0fOdgDJJEeCAhMtIsY9HwA">
+ <body></body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_lm4GkA1jEd6tvthBDl600Q" general="_Zx2ZUA1jEd6tvthBDl600Q"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_1tfFAJyCEd6WR4pSVO_UYw" name="derived realization of I" client="_jOU60A1jEd6tvthBDl600Q" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_GSdesJ09Ed6l5bTPBsl00Q" name="[name/]" specification="__y0hwJ08Ed6l5bTPBsl00Q">
+ <language>C/C++</language>
+ <body>[import org::eclipse::papyrus::qompass::designer::core::acceleo::utils_cpp/]
+
+[template public methodCall(operation : Operation)]
+// put pre-interceptors here
+[comment type is a derived property containing the operations return type/]
+[if not (operation.type = null)]return [/if]rconn->[operation.cppCall()/];
+// put post-interceptors here
+[/template]</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="__y0hwJ08Ed6l5bTPBsl00Q" name="[name/]" method="_GSdesJ09Ed6l5bTPBsl00Q"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_UAIU0K-iEd6DndT7kDY1-A" name="AdaptiveContainerServices">
+ <packagedElement xmi:type="uml:Class" xmi:id="_cxVEsK-iEd6DndT7kDY1-A" clientDependency="_v-oAAK-iEd6DndT7kDY1-A" name="SampleInterceptor">
+ <generalization xmi:type="uml:Generalization" xmi:id="_lrS8oAQxEd--t-uhRn9OBA" general="_Zx2ZUA1jEd6tvthBDl600Q"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_v-oAAK-iEd6DndT7kDY1-A" name="derived realization of I" client="_cxVEsK-iEd6DndT7kDY1-A" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_GTvA0K-jEd6DndT7kDY1-A" name="[name/]" specification="_16jy8K-iEd6DndT7kDY1-A">
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;this is a sample pre-call interception&quot; &lt;&lt; endl;
+rconn->&lt;%cppCall%>;
+cout &lt;&lt; &quot;this is a sample post-call interception&quot; &lt;&lt; endl;</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_16jy8K-iEd6DndT7kDY1-A" name="[name/]" method="_GTvA0K-jEd6DndT7kDY1-A"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_aQ7goChYEd-eoo60eNyGlg" name="CallActivation">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_aAH58D8CEeGJ6KSvhYhYuQ">
+ <body>A set of Leader followers is instantiated. Each has its own thread and a semaphore. The LF instance waits on its semaphore. When selectLeader is called, a follower is signaled (semaphore is posted) and will become leader. The leader waits for a resource (e.g. a socket) and becomes executor.
+</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_e6Y_EChYEd-eoo60eNyGlg" name="Activator">
+ <generalization xmi:type="uml:Generalization" xmi:id="_oJX3IChYEd-eoo60eNyGlg" general="_KxQBELuXEd2TTr3gJIvazw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_qgzokChYEd-eoo60eNyGlg" clientDependency="_cWjrYCsAEd-uZPFNCty7PQ" name="LeaderFollower">
+ <generalization xmi:type="uml:Generalization" xmi:id="_sW6OkChYEd-eoo60eNyGlg" general="_e6Y_EChYEd-eoo60eNyGlg"/>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_N0tB4Cu4Ed-uZPFNCty7PQ" name="listener" type="_fxfe8Cu1Ed-uZPFNCty7PQ" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_UxKdsCu4Ed-uZPFNCty7PQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_UxM58Cu4Ed-uZPFNCty7PQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="__fLb4Cu5Ed-uZPFNCty7PQ" name="state" type="_F3CIECu1Ed-uZPFNCty7PQ" isUnique="false" aggregation="composite"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_M4VG8Cu9Ed-uZPFNCty7PQ" name="m_sema" type="_fxfe8Cu1Ed-uZPFNCty7PQ" isUnique="false" aggregation="composite"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_rmwGoCu-Ed-uZPFNCty7PQ" name="m_sr" isStatic="true" type="_qgzokChYEd-eoo60eNyGlg" isUnique="false" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zYwqYCu-Ed-uZPFNCty7PQ" value="20"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zY4mMCu-Ed-uZPFNCty7PQ" value="20"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xukAICvDEd-uZPFNCty7PQ" name="m_tID" type="_5KatsCvDEd-uZPFNCty7PQ" isUnique="false" aggregation="composite"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Xq00oCvHEd-uZPFNCty7PQ" name="POOL_SIZE" isStatic="true" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_ZmFncCvHEd-uZPFNCty7PQ" value="20"/>
+ </ownedAttribute>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_cWjrYCsAEd-uZPFNCty7PQ" name="derived realization of I" client="_qgzokChYEd-eoo60eNyGlg" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_D8z3ECu1Ed-uZPFNCty7PQ" name="run" specification="_2FN1ICu0Ed-uZPFNCty7PQ">
+ <language>C/C++</language>
+ <body>for (;;) {
+ // wait to be become active
+ m_state = FOLLOWER;
+ sem_wait (&amp;m_sema);
+ m_state = LEADER;
+ listener->select(); // no loop, single select
+ selectLeader ();
+ m_state = EXECUTOR;
+ listener->exec();
+}
+
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_wXEiYCu7Ed-uZPFNCty7PQ" name="selectLeader" specification="_eHX3wCu7Ed-uZPFNCty7PQ">
+ <language>C/C++</language>
+ <body>// select a new leader from the followers
+for (int i = currentIndex+1, j=0; j&lt;POOL_SIZE; i++, j++)
+{
+ if (i == POOL_SIZE) {
+ i = 0;
+ }
+ if (sr[i].state == FOLLOWER) {
+ sem_post (&amp;sr[i].m_sema);
+ break;
+ }
+}</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_4M1S0Cu9Ed-uZPFNCty7PQ" name="LeaderFollower" specification="_JM4I4Cu9Ed-uZPFNCty7PQ">
+ <language>C/C++</language>
+ <body>sem_init (&amp;m_sema, 0, 0);
+m_state = FOLLOWER;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_OyEk4Cu_Ed-uZPFNCty7PQ" name="init" specification="_6cImgCu-Ed-uZPFNCty7PQ">
+ <language>C/C++</language>
+ <body>for (int i=0; i&lt;POOL_SIZE; i++) {
+ pthread_create (&amp;m_sr.m_tID, 0, runStatic, &amp;m_sr[i]);
+}</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_AGUogCvHEd-uZPFNCty7PQ" name="runStatic" specification="_z-laoCvGEd-uZPFNCty7PQ">
+ <language>C/C++</language>
+ <body>((LeaderFollower *) arg)->run();</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_2FN1ICu0Ed-uZPFNCty7PQ" name="run" method="_D8z3ECu1Ed-uZPFNCty7PQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_eHX3wCu7Ed-uZPFNCty7PQ" name="selectLeader" method="_wXEiYCu7Ed-uZPFNCty7PQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_JM4I4Cu9Ed-uZPFNCty7PQ" name="LeaderFollower" method="_4M1S0Cu9Ed-uZPFNCty7PQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_6cImgCu-Ed-uZPFNCty7PQ" name="init" isStatic="true" method="_OyEk4Cu_Ed-uZPFNCty7PQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_z-laoCvGEd-uZPFNCty7PQ" name="runStatic" method="_AGUogCvHEd-uZPFNCty7PQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Dn-xYCvHEd-uZPFNCty7PQ" name="arg">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_IdnDkCvHEd-uZPFNCty7PQ" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_2wMyEChiEd-eoo60eNyGlg" clientDependency="_BhfKYChjEd-eoo60eNyGlg" name="SimpleActivation">
+ <generalization xmi:type="uml:Generalization" xmi:id="_5AKpkChiEd-eoo60eNyGlg" general="_e6Y_EChYEd-eoo60eNyGlg"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_BhfKYChjEd-eoo60eNyGlg" name="derived realization of I" client="_2wMyEChiEd-eoo60eNyGlg" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_6rmQoChiEd-eoo60eNyGlg" clientDependency="_cWkScCsAEd-uZPFNCty7PQ" name="Thread Pool">
+ <generalization xmi:type="uml:Generalization" xmi:id="_892AEChiEd-eoo60eNyGlg" general="_e6Y_EChYEd-eoo60eNyGlg"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_cWkScCsAEd-uZPFNCty7PQ" name="derived realization of I" client="_6rmQoChiEd-eoo60eNyGlg" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_BY-fwCnxEd-eoo60eNyGlg" name="sem_t">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_CQ_F0CnxEd-eoo60eNyGlg" name="lf" type="_qgzokChYEd-eoo60eNyGlg" isUnique="false" aggregation="composite"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_PpWOECnxEd-eoo60eNyGlg" name="listener" isUnique="false" aggregation="composite"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_F3CIECu1Ed-uZPFNCty7PQ" name="LFState">
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_QSQJwCu1Ed-uZPFNCty7PQ" name="EXECUTOR"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_R5B6UCu1Ed-uZPFNCty7PQ" name="FOLLOWER"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_SxRJ4Cu1Ed-uZPFNCty7PQ" name="LEADER"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_fxfe8Cu1Ed-uZPFNCty7PQ" name="IListener">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_eN6hcCu3Ed-uZPFNCty7PQ" name="exec" isAbstract="true"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_hY4ooCu3Ed-uZPFNCty7PQ" name="select" isAbstract="true"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_5KatsCvDEd-uZPFNCty7PQ" name="pthread_t"/>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_hcwDkD8CEeGJ6KSvhYhYuQ" name="LeaderFollowerState">
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_mzqd4D8CEeGJ6KSvhYhYuQ" name="LEADER"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_qdIe8D8CEeGJ6KSvhYhYuQ" name="FOLLOWER"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_rOMvgD8CEeGJ6KSvhYhYuQ" name="EXECUTOR"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_xOqL0No9Ed-wvpj-p-V_QQ" name="CppParameterStorage"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_0KYOQF7pEeGEmrrwB1vhPg" name="OPC_provideMultI" isAbstract="true">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_0KY1UF7pEeGEmrrwB1vhPg" name="rconn" visibility="public" type="_ZzlzMPfBEd2TbIfwytOyPA" aggregation="composite" isConjugated="true">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0KY1Ul7pEeGEmrrwB1vhPg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0KY1UV7pEeGEmrrwB1vhPg" value="10"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_0KY1U17pEeGEmrrwB1vhPg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_QwvnQFDlEd6cwecVIgl9nw" name="PortKinds">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_FryEELnZEeCxXoyQxQ47PQ" annotatedElement="_Wtq4sFDlEd6cwecVIgl9nw">
+ <body>Simple provision of typing interface as provided interface</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_K17NsLnZEeCxXoyQxQ47PQ" annotatedElement="_Wtrfw1DlEd6cwecVIgl9nw">
+ <body>Simple provision of typing interface as required interface</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_PxzR0LnZEeCxXoyQxQ47PQ" annotatedElement="__nMrwLqNEd-SedGzMDDkww">
+ <body>corba asynchronous messaging (AMI): Provision of poller variant of typing interface. Allows client to continue without waiting for the result</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_l49WMLnZEeCxXoyQxQ47PQ" annotatedElement="__nMrwLqNEd-SedGzMDDkww _AQZZwLqOEd-SedGzMDDkww">
+ <body>corba asynchronous messaging (AMI): Provision of callback variant of typing interface. Allows client Allows client to continue without waiting for the result</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_2dvXILnZEeCxXoyQxQ47PQ" annotatedElement="_Wtq4slDlEd6cwecVIgl9nw">
+ <body>Data Flow oriented communication: consume passively: provided push operation is called </body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Ch2pQLnaEeCxXoyQxQ47PQ">
+ <body>Data Flow oriented communication: produce data via pushing these (calling the required operation) </body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_DsnzQLnaEeCxXoyQxQ47PQ">
+ <body>Data Flow oriented communication: produce data via pushing these (calling the required operation) </body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_FMuUELnaEeCxXoyQxQ47PQ" annotatedElement="_WtrfwlDlEd6cwecVIgl9nw">
+ <body>Data Flow oriented communication: produce data via pushing these (calling the required operation) </body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_GgtrgLnaEeCxXoyQxQ47PQ" annotatedElement="_Wtq4sVDlEd6cwecVIgl9nw">
+ <body>Data Flow oriented communication: consumer data actively by calling the required poll operation </body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_-UGDoDiyEeGiupyIkgMHVw">
+ <body>In order to support icons, all port kinds are stereotypes, but for Qompass they are classes stereotyped as &quot;PortKind&quot;</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_COvdAEMMEeKGIL695HkFYQ" annotatedElement="_GjnlcC8qEeKx7OxAiA06uw">
+ <body> A bidirectional flow port combining a push-producer and a pull consumer</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_Wtq4sFDlEd6cwecVIgl9nw" name="ProvideInterface">
+ <icon xmi:type="uml:Image" xmi:id="__3j28DixEeGiupyIkgMHVw" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%119%0%0%0%92%8%3%0%0%0%99%-116%-38%77%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-43%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-103%-103%-103%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%43%43%43%39%39%39%35%35%35%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%-68%-68%-68%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%120%120%120%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%-43%-43%-43%34%34%34%-47%-47%-47%30%30%30%-51%-51%-51%26%26%26%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-71%82%-104%50%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%4%-59%73%68%65%84%104%-127%-59%-102%109%91%-30%58%16%-122%11%-118%40%-88%108%-83%2%-53%-117%93%123%4%-75%-20%110%53%-83%69%-91%-108%30%20%-1%-1%79%58%-107%-77%72%38%77%-109%73%-126%-41%62%95%-55%-52%77%94%-102%-52%76%98%-111%29%104%-2%-74%26%-115%-22%-29%81%-27%-83%31%35%77%44%51%98%-68%58%60%-19%120%22%-91%-27%-76%57%-70%-8%90%-18%-62%127%6%-56%-83%58%-65%-34%-61%47%-30%94%28%-76%-7%-52%63%122%109%-4%-5%5%-36%-59%73%73%79%105%-75%43%59%-26%14%78%-28%-48%-75%-70%-29%-78%-31%-42%-32%94%96%-87%107%-14%96%71%-36%-80%-18%42%96%115%5%-50%46%-72%-117%-82%26%53%-41%-16%-38%-100%-69%127%-91%-116%-51%-43%-116%-52%-72%-15%-67%14%53%87%123%102%-62%117%94%52%-79%-106%-27%-78%-53%75%-127%-101%-88%79%45%5%102%-66%101%60%119%-66%44%117%58%124%-71%15%38%-66%-1%59%-104%-106%-73%-15%-58%122%-36%-92%-60%101%-89%89%-95%63%-108%120%-32%79%75%-42%94%85%-121%-21%100%60%87%-39%36%-31%-76%-75%111%-98%-72%61%-2%-95%-50%-115%121%115%43%-40%127%23%15%-100%-3%-37%-19%41%115%91%69%47%-35%-107%-48%34%-31%-20%-90%-53%-19%-116%-32%-72%-11%-30%127%-81%75%14%88%66%86%-33%11%86%45%53%-18%-96%48%104%47%-123%-115%-128%-93%-8%119%1%92%87%-31%-38%25%107%-34%-112%118%-10%127%-115%-39%51%-60%-21%43%112%27%-84%113%13%71%-51%-43%103%-65%-66%78%-120%-26%-10%-104%81%-10%-86%114%-101%79%37%-20%88%-43%-48%-36%103%3%44%33%51%-90%-57%-18%5%-110%59%102%-2%-16%88%106%1%-107%48%115%28%32%-71%41%52%-13%21%-79%-124%92%-62%121%-14%18%20%-73%2%-79%-33%-112%43%-103%-42%29%116%-47%68%113%97%-108%-4%-54%13%-106%36%10%-65%1%31%87%14%-126%-5%6%-1%-21%72%3%-101%-81%45%120%66%77%16%-36%0%88%60%106%97%-39%-111%-50%-28%-36%8%44%70%-113%119%-22%97%20%-62%-59%121%41%-27%94%-125%-10%-57%-102%88%-10%99%12%-92%92%120%-2%45%-76%-71%33%-40%61%-36%80%-62%13%-63%48%-73%-124%109%-59%58%0%29%-24%75%-72%125%-48%-102%23%-9%99%-27%-128%-51%-29%78%-62%5%-21%-48%45%70%-3%10%2%51%54%-107%112%31%-103%-43%96%-96%17%-19%-22%42%18%115%95%-23%-58%122%123%-58%70%51%-72%66%-123%92%27%-76%-59%-124%54%2%-127%-120%-76%-14%-121%27%-49%120%-86%-46%77%51%51%44%-36%-7%110%63%-72%-47%-92%-115%-88%86%-24%-18%-111%27%-127%47%-23%-34%66%-89%-46%13%67%46%56%80%-97%44%18%103%40%-84%-75%111%-56%-99%-45%-50%-50%45%-46%-60%97%13%-105%51%-77%-96%83%-117%12%-111%92%113%90%34%87%8%-71%9%18%107%-67%25%114%9%-19%-52%-77%46%-1%10%-41%-75%-20%50%14%43%65%-47%15%-91%-104%118%-106%-49%47%-74%106%-79%-21%117%85%45%3%49%58%48%-28%-10%104%103%-7%-9%75%30%112%-36%95%-122%-36%127%104%103%-45%-100%27%-6%-120%93%50%-1%-117%-122%92%-97%118%-42%92%-97%11%73%-19%-8%-119%39%80%39%27%26%114%65%-35%-95%38%60%7%35%-48%-31%-98%-88%-87%92%96%127%122%23%-97%-5%32%-20%-59%103%-37%60%-127%101%-107%-17%86%-62%-58%-57%116%91%-109%112%-110%-112%91%56%103%98%-18%30%-35%-40%-45%-55%-55%62%5%-14%-69%19%9%23%-100%93%70%3%-67%0%-98%-10%100%-7%2%8%-13%59%6%92%88%-101%-103%-53%-72%48%29%-44%-33%-94%29%-112%-119%102%-46%-4%8%-90%-65%-25%-38%92%-80%105%124%36%-64%-78%-4%55%3%6%-17%-102%88%7%6%23%115%57%-9%16%24%100%-102%-87%10%-100%-82%103%34%-25%-62%21%-67%46%17%-88%-117%-119%45%-10%17%92%-72%-83%90%94%-55%-11%-105%80%76%125%115%25%97%-72%-16%-61%-77%-78%51%117%46%83%-119%94%111%3%-14%-70%-39%41%-76%106%41%23%-80%-104%-14%-43%-48%-58%113%7%-48%76%57%29%29%49%-10%119%4%-57%37%108%-11%-6%72%9%91%101%-126%-118%52%-62%114%-49%-40%-56%30%91%-11%-26%97%55%-31%63%-90%-18%-67%-49%-104%90%15%-24%-49%-72%112%49%-15%64%-16%92%-90%-66%-104%-85%-115%43%-96%21%-17%49%95%55%79%29%80%-9%26%78%-31%-82%-52%-67%65%-104%-11%82%-42%108%-101%100%-31%-18%113%126%20%35%-50%-87%-84%-53%118%-77%104%-12%-13%-13%87%-28%-67%-107%95%112%97%121%13%-47%-13%-112%-88%-58%-71%79%-100%110%23%36%-10%126%48%40%122%-79%-68%-96%-84%112%-24%-44%121%-73%-104%93%123%-37%2%-53%13%-7%-113%24%-38%7%-59%42%-113%125%125%-54%77%4%50%58%62%67%-33%-61%-58%-36%59%-50%92%105%112%115%-71%-15%24%-9%-85%71%101%-49%88%-106%96%65%-32%-17%-99%-29%105%-119%-61%-11%-112%-89%-23%75%-102%-118%94%88%64%-84%-54%61%123%-120%76%-32%-72%-22%50%-117%80%-23%61%-61%-111%54%-10%-23%-116%113%-91%-10%126%-93%112%-49%-120%84%113%71%87%124%55%50%19%63%126%-30%107%-56%-119%127%85%-33%-55%68%13%84%-78%76%-21%-111%87%80%85%127%-113%52%127%-106%-93%40%45%-7%85%122%-99%-9%87%123%-27%-81%52%88%93%29%-39%124%31%90%-17%-66%-94%-101%-30%-43%61%-105%-38%40%77%33%53%-33%-71%-123%99%-7%104%103%126%73%95%13%-72%-71%-110%-119%-88%-45%110%32%-82%-17%25%-67%-97%-20%-33%-74%-72%31%-12%-7%-31%74%22%9%25%-66%-37%36%97%127%-4%-13%-76%-67%-119%-4%-68%116%-38%-84%-83%4%-61%-69%51%-18%-89%102%-77%25%-10%-115%-22%-121%-2%3%52%51%-49%67%-105%-19%90%17%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%5%-46%-52%-24%92%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_17F1IDrSEeGKkdk54CX6PQ" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_17HDQDrSEeGKkdk54CX6PQ" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Sn5bADrXEeGMCcwsbpLuFA" key="image_name_key" value="IconProvideInterface"/>
+ </eAnnotations>
+ </icon>
+ <icon xmi:type="uml:Image" xmi:id="_ToC6oDl9EeGi35TadupI-A" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%84%0%0%0%101%8%3%0%0%0%-28%-109%52%-5%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-52%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%43%43%43%39%39%39%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%82%82%82%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%34%34%34%-47%-47%-47%30%30%30%-51%-51%-51%26%26%26%24%24%24%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-33%61%-9%-93%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%3%41%73%68%65%84%104%-127%-83%-39%125%91%-38%48%16%0%-16%-29%101%12%-76%32%32%69%17%-95%88%-107%23%-69%45%-43%90%-83%5%117%-32%-9%-1%78%-125%103%-37%67%47%109%115%-105%54%-9%119%-8%61%41%73%-109%-69%43%-120%-14%17%92%86%-105%86%56%-116%15%49%12%-83%-42%26%74%-126%-35%-54%106%8%82%84%74%-95%-125%-58%-117%12%30%98%84%28%125%-84%-74%-99%44%18%-96%87%20%125%-84%127%100%-117%0%83%81%12%85%-112%0%-61%98%-24%-83%-126%4%120%42%-126%-66%61%-87%72%-128%7%125%-44%-97%79%-43%38%-52%-75%-47%-2%25%65%2%-72%-70%-24%104%67%-102%-80%-43%68%107%57%59%19%69%-92%-121%46%25%36%-128%-81%-123%54%115%-99%-15%-85%-41%-88%110%15%81%-83%-51%-123%6%-22%63%100%-125%-45%-50%-3%-91%52%-108%-113%-98%100%-110%-81%-75%94%122%40%27%-99%103%-111%-42%58%115%44%23%-67%-31%-109%108%116%-108%-34%75%-101%93%-18%104%30%-38%77%-17%-7%102%-112%63%-100%-121%-2%72%-19%-95%47%-43%112%22%122%39%-101%118%-92%28%-49%65%-93%-119%100%-122%-118%71%-25%-94%-14%-61%119%8%-109%-125%110%37%-13%-52%-89%126%65%-93%-66%116%-81%15%-87%121%114%-48%26%54%63%-6%-28%47%104%-44%-57%91%-44%-71%-94%77%26%-67%-59%19%-99%51%76%26%-75%-15%102%34%23%-119%-125%86%-16%-61%-65%113%76%18%-75%16%-38%98%-103%20%-38%67%-89%-45%-17%-82%17%20%47%-45%61%-49%-92%-48%48%105%-114%-103%19%37%-48%1%-102%104%-109%105%18%-88%-117%-48%-127%25%-44%67%123%-108%107%18%104%-100%68%-17%-52%-96%17%122%-6%-116%11%-66%8%58%75%-102%54%-37%84%-93%40%-127%96%-66%77%36%-118%-18%-111%-118%33%-12%60%-119%50%14%103%22%58%78%-104%19%-66%-87%68%-125%-126%-21%116%64%-3%-111%91%91%36%-93%-27%-3%-115%95%73%-12%84%11%29%93%0%39%60%29%-12%-115%42%-117%-2%-59%82%7%125%-26%-103%-80%-48%65%57%69%-116%54%-54%13%45%-108%-7%-105%-62%119%29%-12%39%19%-43%90%-3%-63%-104%6%15%-47%-42%65%69%-60%91%127%-51%55%74%116%-81%-73%-57%-72%-114%-114%-15%-103%64%29%77%52%55%-48%5%-51%-53%120%104%20%85%-93%51%67%-24%-73%36%-70%50%-124%-94%-108%111%104%8%-19%-93%-11%103%-25%18%-60%-67%-113%106%-120%-70%33%116%-107%68%-49%13%-95%51%-12%-4%-20%77%-91%70%-5%-24%96%100%-33%-4%68%126%-118%58%112%83%51%-7%-87%-108%75%114%-49%84%2%13%-48%113%-53%77%-91%-87%-22%-28%20%77%-107%-7%86%81%-24%14%-95%78%94%43%70%15%-107%42%-66%23%35%21%-97%-76%85%121%-41%63%93%69%-93%20%29%-100%107%19%-88%92%70%27%-87%-9%83%-99%-119%11%19%-99%9%113%-123%81%70%121%-50%-23%-10%120%-110%-6%108%-96%-37%35%6%-87%-66%20%81%-3%-80%58%104%-82%-124%-62%69%-7%14%90%-6%15%-128%-119%-14%110%-27%-95%65%44%-85%112%82%-70%43%41%46%-45%-55%-31%38%-65%-80%-30%118%122%-85%41%116%-97%-77%-107%-20%-12%74%-119%-59%-1%-80%-34%-53%-95%57%93%126%-69%94%-90%123%46%-35%-41%-57%112%-98%23%35%-23%29%51%-13%69%98%106%91%75%-41%-35%109%-65%92%-9%74%19%21%-115%92%-11%24%15%-70%40%-25%43%-113%-89%-115%-118%119%-14%123%-44%-87%62%42%122%29%2%13%11%-96%-5%13%-85%-82%-68%-118%-95%34%82%78%-42%46%-122%10%113%-93%-8%103%-29%-94%-88%-22%11%111%113%84%-59%-106%64%-9%-73%108%-59%-54%-36%-75%-91%-48%125%-12%-22%97%-38%13%74%-94%-5%8%118%45%27%-61%81%121%-12%16%-2%-70%-46%-16%-38%97%24%-57%113%24%-74%-9%71%-31%31%12%-33%-99%51%8%-119%86%-81%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%45%-25%121%64%-90%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2ypIMDrSEeGKkdk54CX6PQ" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2ypvQDrSEeGKkdk54CX6PQ" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UMxHEDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconConjProvideInterface"/>
+ </eAnnotations>
+ </icon>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_Wtq4sVDlEd6cwecVIgl9nw" name="PullConsumer">
+ <icon xmi:type="uml:Image" xmi:id="_CVWIADiyEeGiupyIkgMHVw" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%97%0%0%0%98%8%0%0%0%0%101%-7%-30%-47%0%0%2%120%73%68%65%84%104%-127%-75%-38%-51%75%21%81%24%6%-16%-125%-106%105%25%-106%38%-107%84%-76%50%-119%-54%32%90%37%-75%-120%72%-94%69%-117%104%85%86%-46%-90%112%97%73%33%-47%-86%-123%16%33%70%17%-47%-54%-94%47%-24%3%-63%34%-56%-115%20%-35%77%4%-110%65%-123%27%11%51%37%-107%-16%-93%-85%-34%105%-26%-23%74%31%115%-18%120%103%-18%97%-50%-5%60%127%-64%-4%86%103%-26%61%-49%59%10%-99%23%-102%121%105%31%-127%122%-80%72%17%-77%-96%98%68%85%51%-127%116%-82%-87%26%-78%112%76%-35%34%11%117%106%-74%-98%45%32%121%-124%45%96%124%55%91%-64%-40%46%-74%-128%-127%-51%108%1%-3%-107%108%1%61%107%-40%2%-34%-106%-78%5%116%-111%8%95%-64%-45%34%-74%-32%-35%-90%16%-102%0%-17%106%62%89%-128%-45%66%32%50%4%56%-115%108%1%-45%39%-39%2%-110%7%-39%2%38%14%-80%5%-116%-18%96%11%24%-38%-50%22%-48%-73%-127%45%-32%-29%58%-74%-128%-41%43%-39%2%94%-107%-80%5%116%-120%17%97%2%-18%20%-78%5%-9%-70%16%17%42%-64%-67%40%-13%-94%13%23%-112%58%47%66%68%8%72%29%103%11%-104%58%-52%22%48%-79%-113%45%96%108%15%91%-64%-32%54%-74%-128%47%-101%-40%2%-34%-83%103%11%-24%89%-59%22%-16%-94%-116%45%-32%-39%82%-74%-128%-69%-59%108%1%55%11%-40%-126%123%41%54%97%40%-64%109%-54%35%11%-104%-39%-49%22%-34%-105%-109%-123%-127%-86%-104%-128%-87%-16%99%103%92%-64%80%-104%58%20%27%48%19%82%-89%-29%3%70%-126%-41%106%51%18%-104%8%-9%-84%38%39%3%-95%107%-103%13%96%32%-12%-38%125%30%114%11%-33%108%-81%43%-71%-124%113%-21%-6%44%-121%-112%-76%56%8%70%-126%115%-58%26%-120%22%-68%54%-127%-39%56%82%120%36%81%7%69%9%-35%-53%5%-128%40%-95%-73%66%2%-120%16%6%55%-118%0%-31%-62%100%-4%47%-126%-103%48%45%113%57%-119%18%-100%38%41%32%68%-16%-82%-56%21%126%-39%-123%-57%-126%-67%104%86%33%97%53%108%27%8%31%68%91%-10%44%-62%87%-39%101%-60%124%65%122%103%51%79%-104%-107%-34%59%5%-123%95%103%-123%-127%-96%64%40%-41%3%-62%-109%-59%-46%64%64%72%-84%16%7%50%5%-47%22%52%-101%48%-76%-107%0%-24%-62%-28%94%6%-96%9%-87%58%10%-32%11%-18%57%14%-32%11%55%72%-64%127%-95%-109%-10%63%-62%95%-31%13%107%103%-7%79%-24%91%75%3%-2%8%-33%41%7%65%19%126%-42%18%-127%57%-63%57%-63%4%-46%-126%-37%76%5%-46%66%7%23%80%71%85%-36%86%-57%52%-83%-86%-127%-6%-4%-68%-110%97%-11%-87%44%-93%-3%-54%-41%-78%-80%64%75%-111%-106%37%-59%126%86%111%-47%82%-85%-91%-2%84%58%109%-61%80%24%109%-65%-84%-27%-2%67%63%-49%95%-6%73%124%-42%50%19%28%-127%-94%-14%27%-2%-94%-44%59%115%-35%74%-17%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4KKUwDrSEeGKkdk54CX6PQ" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4KLi4DrSEeGKkdk54CX6PQ" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MdOBcDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconPushConsumer"/>
+ </eAnnotations>
+ </icon>
+ <icon xmi:type="uml:Image" xmi:id="_kZGdADl9EeGi35TadupI-A" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%108%0%0%0%97%8%0%0%0%0%22%-109%27%-49%0%0%2%-101%73%68%65%84%104%-127%-67%-38%-51%75%84%81%24%6%-16%-25%-36%59%87%68%43%107%76%40%63%42%-84%4%-125%1%49%-86%77%-82%70%24%-120%54%-39%-57%44%18%35%-110%62%104%-91%-83%10%-108%32%-94%64%40%92%-10%-79%-120%-118%8%23%82%-101%26%-124%22%65%41%4%69%-117%-118%-124%114%17%52%65%-108%9%105%-47%-28%116%26%107%76%-13%-34%-21%-67%112%-49%-5%60%-1%-64%111%49%103%120%-97%123%-34%3%61%118%-78%37%84%118%-89%61%115%-30%-123%14%29%76%39%16%41%106%-29%72%120%44%19%-51%42%100%-61%-77%-48%-40%-11%-56%24%-102%71%-119%-104%-38%-10%-114%-121%-63%74%101%121%24%84%-37%4%15%-125%-35%17%70%51%-124%-63%62%62%21%2%-21%55%-125%-63%-23%-2%30%-116%-99%54%-124%-95%-12%124%-114%-121%-95%-20%66%-98%-121%97%-7%-75%0%-51%36%-122%-8%32%17%67%-19%61%34%-122%-75%-113%-120%24%26%-122%-119%24%-102%94%19%49%-75%-27%45%15%-125%74%-67%-25%97%-80%118%-114%-13%48%-60%14%-8%-116%0%9%12%-79%-61%-34%35%64%4%-125%-45%-27%-87%-55%96%112%-50%120%-115%0%-12%-120%96%40%-21%-101%-10%-64%14%-55%96%88%-26%49%2%-48%33%-124%33%126%-117%-120%-95%-58%53%2%4%49%-84%121%72%-60%-48%48%66%-60%-48%-8%-110%-120%-87%-83%-93%60%12%42%-103%-27%97%-80%118%124%-28%97%-80%-38%39%120%24%-20%-125%83%60%-84%-16%21%-16%-115%-121%-63%-23%-51%-15%-80%-62%8%-56%-15%48%-108%95%-3%-59%-61%-80%-30%-58%31%108%23%5%67%85%102%6%-37%-50%-63%80%-5%-128%-120%97%-3%19%34%-122%-42%28%17%-85%120%78%-60%-86%-77%60%-52%-18%-28%-3%102%-86%117%-100%-121%37%-34%-16%-114%126%-35%48%-17%79%29%-65%-85%105%88%-23%-59%60%13%-117%117%-3%-48%44%-52%-38%59%-87%105%88%-53%7%77%-61%-26%106%-79%60%-74%122%104%-82%-54%109%18%-74%42%110%-50%43%-87%-11%-78%86%-55%-39%60%13%-77%-113%-52%-65%57%-106%-59%84%-37%23%77%-61%54%-1%-65%55%17%-59%-22%-97%106%26%86%117%95%-45%-80%37%-105%53%13%115%122%126%-46%48%-69%-3%-21%66%75%12%83%-55%-49%46%75%12%-101%-87%28%44%-84%-18%-79%-121%37%-124%85%-34%-15%-78%100%-80%98%-27%-96%96%-77%-107%-61%-115%85%27%-73%-84%125%-18%67%95%-60%-52%-25%95%-27%32%96%-115%-81%-4%44%-13%-40%-86%33%95%-53%56%-74%-44%125%51%44%-122%-107%-100%91%108%-19%105%-42%-78%-113%46%-70%-84%54%106%45%-88%28%-78%88%115%-64%83%13%-109%-42%-70%-96%39%47%6%-83%-107%-103%0%-53%32%86%-18%-86%28%114%-104%-45%-21%-86%28%98%-104%-75%127%50%-48%50%-123%-87%-92%-33%82%85%0%75%-116%-123%-80%12%97%53%-31%94%-107%25%-79%-2%-34%114%-124%-64%84%116%-85%-92%63%-24%-119%-53%44%-42%20%-39%-78%-70%125%42%-121%27%-69%93%25%-77%109%43%-118%-107%14%113%-24%-117%-104%-2%52%56%48%112%-91%-49%55%-89%-114%-7%38%-99%42%100%-49%-91%-48%-106%-2%13%-127%31%98%-1%-55%30%-37%-42%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_44RX8DrSEeGKkdk54CX6PQ" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_44R_ADrSEeGKkdk54CX6PQ" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PhMv0DrXEeGMCcwsbpLuFA" key="image_name_key" value="IconConjPullConsumer"/>
+ </eAnnotations>
+ </icon>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_Wtq4slDlEd6cwecVIgl9nw" name="PushConsumer">
+ <icon xmi:type="uml:Image" xmi:id="_Dh_hUDiyEeGiupyIkgMHVw" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%97%0%0%0%98%8%0%0%0%0%101%-7%-30%-47%0%0%2%120%73%68%65%84%104%-127%-75%-38%-51%75%21%81%24%6%-16%-125%-106%105%25%-106%38%-107%84%-76%50%-119%-54%32%90%37%-75%-120%72%-94%69%-117%104%85%86%-46%-90%112%97%73%33%-47%-86%-123%16%33%70%17%-47%-54%-94%47%-24%3%-63%34%-56%-115%20%-35%77%4%-110%65%-123%27%11%51%37%-107%-16%-93%-85%-34%105%-26%-23%74%31%115%-18%120%103%-18%97%-50%-5%60%127%-64%-4%86%103%-26%61%-49%59%10%-99%23%-102%121%105%31%-127%122%-80%72%17%-77%-96%98%68%85%51%-127%116%-82%-87%26%-78%112%76%-35%34%11%117%106%-74%-98%45%32%121%-124%45%96%124%55%91%-64%-40%46%-74%-128%-127%-51%108%1%-3%-107%108%1%61%107%-40%2%-34%-106%-78%5%116%-111%8%95%-64%-45%34%-74%-32%-35%-90%16%-102%0%-17%106%62%89%-128%-45%66%32%50%4%56%-115%108%1%-45%39%-39%2%-110%7%-39%2%38%14%-80%5%-116%-18%96%11%24%-38%-50%22%-48%-73%-127%45%-32%-29%58%-74%-128%-41%43%-39%2%94%-107%-80%5%116%-120%17%97%2%-18%20%-78%5%-9%-70%16%17%42%-64%-67%40%-13%-94%13%23%-112%58%47%66%68%8%72%29%103%11%-104%58%-52%22%48%-79%-113%45%96%108%15%91%-64%-32%54%-74%-128%47%-101%-40%2%-34%-83%103%11%-24%89%-59%22%-16%-94%-116%45%-32%-39%82%-74%-128%-69%-59%108%1%55%11%-40%-126%123%41%54%97%40%-64%109%-54%35%11%-104%-39%-49%22%-34%-105%-109%-123%-127%-86%-104%-128%-87%-16%99%103%92%-64%80%-104%58%20%27%48%19%82%-89%-29%3%70%-126%-41%106%51%18%-104%8%-9%-84%38%39%3%-95%107%-103%13%96%32%-12%-38%125%30%114%11%-33%108%-81%43%-71%-124%113%-21%-6%44%-121%-112%-76%56%8%70%-126%115%-58%26%-120%22%-68%54%-127%-39%56%82%120%36%81%7%69%9%-35%-53%5%-128%40%-95%-73%66%2%-120%16%6%55%-118%0%-31%-62%100%-4%47%-126%-103%48%45%113%57%-119%18%-100%38%41%32%68%-16%-82%-56%21%126%-39%-123%-57%-126%-67%104%86%33%97%53%108%27%8%31%68%91%-10%44%-62%87%-39%101%-60%124%65%122%103%51%79%-104%-107%-34%59%5%-123%95%103%-123%-127%-96%64%40%-41%3%-62%-109%-59%-46%64%64%72%-84%16%7%50%5%-47%22%52%-101%48%-76%-107%0%-24%-62%-28%94%6%-96%9%-87%58%10%-32%11%-18%57%14%-32%11%55%72%-64%127%-95%-109%-10%63%-62%95%-31%13%107%103%-7%79%-24%91%75%3%-2%8%-33%41%7%65%19%126%-42%18%-127%57%-63%57%-63%4%-46%-126%-37%76%5%-46%66%7%23%80%71%85%-36%86%-57%52%-83%-86%-127%-6%-4%-68%-110%97%-11%-87%44%-93%-3%-54%-41%-78%-80%64%75%-111%-106%37%-59%126%86%111%-47%82%-85%-91%-2%84%58%109%-61%80%24%109%-65%-84%-27%-2%67%63%-49%95%-6%73%124%-42%50%19%28%-127%-94%-14%27%-2%-94%-44%59%115%-35%74%-17%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7bjNADrSEeGKkdk54CX6PQ" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7bj0EDrSEeGKkdk54CX6PQ" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JNOQUDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconPushConsumer"/>
+ </eAnnotations>
+ </icon>
+ <icon xmi:type="uml:Image" xmi:id="_hwLS8Dl9EeGi35TadupI-A" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%108%0%0%0%97%8%0%0%0%0%22%-109%27%-49%0%0%2%-101%73%68%65%84%104%-127%-67%-38%-51%75%84%81%24%6%-16%-25%-36%59%87%68%43%107%76%40%63%42%-84%4%-125%1%49%-86%77%-82%70%24%-120%54%-39%-57%44%18%35%-110%62%104%-91%-83%10%-108%32%-94%64%40%92%-10%-79%-120%-118%8%23%82%-101%26%-124%22%65%41%4%69%-117%-118%-124%114%17%52%65%-108%9%105%-47%-28%116%26%107%76%-13%-34%-21%-67%112%-49%-5%60%-1%-64%111%49%103%120%-97%123%-34%3%61%118%-78%37%84%118%-89%61%115%-30%-123%14%29%76%39%16%41%106%-29%72%120%44%19%-51%42%100%-61%-77%-48%-40%-11%-56%24%-102%71%-119%-104%-38%-10%-114%-121%-63%74%101%121%24%84%-37%4%15%-125%-35%17%70%51%-124%-63%62%62%21%2%-21%55%-125%-63%-23%-2%30%-116%-99%54%-124%-95%-12%124%-114%-121%-95%-20%66%-98%-121%97%-7%-75%0%-51%36%-122%-8%32%17%67%-19%61%34%-122%-75%-113%-120%24%26%-122%-119%24%-102%94%19%49%-75%-27%45%15%-125%74%-67%-25%97%-80%118%-114%-13%48%-60%14%-8%-116%0%9%12%-79%-61%-34%35%64%4%-125%-45%-27%-87%-55%96%112%-50%120%-115%0%-12%-120%96%40%-21%-101%-10%-64%14%-55%96%88%-26%49%2%-48%33%-124%33%126%-117%-120%-95%-58%53%2%4%49%-84%121%72%-60%-48%48%66%-60%-48%-8%-110%-120%-87%-83%-93%60%12%42%-103%-27%97%-80%118%124%-28%97%-80%-38%39%120%24%-20%-125%83%60%-84%-16%21%-16%-115%-121%-63%-23%-51%-15%-80%-62%8%-56%-15%48%-108%95%-3%-59%-61%-80%-30%-58%31%108%23%5%67%85%102%6%-37%-50%-63%80%-5%-128%-120%97%-3%19%34%-122%-42%28%17%-85%120%78%-60%-86%-77%60%-52%-18%-28%-3%102%-86%117%-100%-121%37%-34%-16%-114%126%-35%48%-17%79%29%-65%-85%105%88%-23%-59%60%13%-117%117%-3%-48%44%-52%-38%59%-87%105%88%-53%7%77%-61%-26%106%-79%60%-74%122%104%-82%-54%109%18%-74%42%110%-50%43%-87%-11%-78%86%-55%-39%60%13%-77%-113%-52%-65%57%-106%-59%84%-37%23%77%-61%54%-1%-65%55%17%-59%-22%-97%106%26%86%117%95%-45%-80%37%-105%53%13%115%122%126%-46%48%-69%-3%-21%66%75%12%83%-55%-49%46%75%12%-101%-87%28%44%-84%-18%-79%-121%37%-124%85%-34%-15%-78%100%-80%98%-27%-96%96%-77%-107%-61%-115%85%27%-73%-84%125%-18%67%95%-60%-52%-25%95%-27%32%96%-115%-81%-4%44%-13%-40%-86%33%95%-53%56%-74%-44%125%51%44%-122%-107%-100%91%108%-19%105%-42%-78%-113%46%-70%-84%54%106%45%-88%28%-78%88%115%-64%83%13%-109%-42%-70%-96%39%47%6%-83%-107%-103%0%-53%32%86%-18%-86%28%114%-104%-45%-21%-86%28%98%-104%-75%127%50%-48%50%-123%-87%-92%-33%82%85%0%75%-116%-123%-80%12%97%53%-31%94%-107%25%-79%-2%-34%114%-124%-64%84%116%-85%-92%63%-24%-119%-53%44%-42%20%-39%-78%-70%125%42%-121%27%-69%93%25%-77%109%43%-118%-107%14%113%-24%-117%-104%-2%52%56%48%112%-91%-49%55%-89%-114%-7%38%-99%42%100%-49%-91%-48%-106%-2%13%-127%31%98%-1%-55%30%-37%-42%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8L9WQDrSEeGKkdk54CX6PQ" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8L99UDrSEeGKkdk54CX6PQ" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Lb68gDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconConjPushConsumer"/>
+ </eAnnotations>
+ </icon>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_WtrfwlDlEd6cwecVIgl9nw" name="PushProducer">
+ <icon xmi:type="uml:Image" xmi:id="_Eu1u8DiyEeGiupyIkgMHVw" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%108%0%0%0%97%8%0%0%0%0%22%-109%27%-49%0%0%2%-101%73%68%65%84%104%-127%-67%-38%-51%75%84%81%24%6%-16%-25%-36%59%87%68%43%107%76%40%63%42%-84%4%-125%1%49%-86%77%-82%70%24%-120%54%-39%-57%44%18%35%-110%62%104%-91%-83%10%-108%32%-94%64%40%92%-10%-79%-120%-118%8%23%82%-101%26%-124%22%65%41%4%69%-117%-118%-124%114%17%52%65%-108%9%105%-47%-28%116%26%107%76%-13%-34%-21%-67%112%-49%-5%60%-1%-64%111%49%103%120%-97%123%-34%3%61%118%-78%37%84%118%-89%61%115%-30%-123%14%29%76%39%16%41%106%-29%72%120%44%19%-51%42%100%-61%-77%-48%-40%-11%-56%24%-102%71%-119%-104%-38%-10%-114%-121%-63%74%101%121%24%84%-37%4%15%-125%-35%17%70%51%-124%-63%62%62%21%2%-21%55%-125%-63%-23%-2%30%-116%-99%54%-124%-95%-12%124%-114%-121%-95%-20%66%-98%-121%97%-7%-75%0%-51%36%-122%-8%32%17%67%-19%61%34%-122%-75%-113%-120%24%26%-122%-119%24%-102%94%19%49%-75%-27%45%15%-125%74%-67%-25%97%-80%118%-114%-13%48%-60%14%-8%-116%0%9%12%-79%-61%-34%35%64%4%-125%-45%-27%-87%-55%96%112%-50%120%-115%0%-12%-120%96%40%-21%-101%-10%-64%14%-55%96%88%-26%49%2%-48%33%-124%33%126%-117%-120%-95%-58%53%2%4%49%-84%121%72%-60%-48%48%66%-60%-48%-8%-110%-120%-87%-83%-93%60%12%42%-103%-27%97%-80%118%124%-28%97%-80%-38%39%120%24%-20%-125%83%60%-84%-16%21%-16%-115%-121%-63%-23%-51%-15%-80%-62%8%-56%-15%48%-108%95%-3%-59%-61%-80%-30%-58%31%108%23%5%67%85%102%6%-37%-50%-63%80%-5%-128%-120%97%-3%19%34%-122%-42%28%17%-85%120%78%-60%-86%-77%60%-52%-18%-28%-3%102%-86%117%-100%-121%37%-34%-16%-114%126%-35%48%-17%79%29%-65%-85%105%88%-23%-59%60%13%-117%117%-3%-48%44%-52%-38%59%-87%105%88%-53%7%77%-61%-26%106%-79%60%-74%122%104%-82%-54%109%18%-74%42%110%-50%43%-87%-11%-78%86%-55%-39%60%13%-77%-113%-52%-65%57%-106%-59%84%-37%23%77%-61%54%-1%-65%55%17%-59%-22%-97%106%26%86%117%95%-45%-80%37%-105%53%13%115%122%126%-46%48%-69%-3%-21%66%75%12%83%-55%-49%46%75%12%-101%-87%28%44%-84%-18%-79%-121%37%-124%85%-34%-15%-78%100%-80%98%-27%-96%96%-77%-107%-61%-115%85%27%-73%-84%125%-18%67%95%-60%-52%-25%95%-27%32%96%-115%-81%-4%44%-13%-40%-86%33%95%-53%56%-74%-44%125%51%44%-122%-107%-100%91%108%-19%105%-42%-78%-113%46%-70%-84%54%106%45%-88%28%-78%88%115%-64%83%13%-109%-42%-70%-96%39%47%6%-83%-107%-103%0%-53%32%86%-18%-86%28%114%-104%-45%-21%-86%28%98%-104%-75%127%50%-48%50%-123%-87%-92%-33%82%85%0%75%-116%-123%-80%12%97%53%-31%94%-107%25%-79%-2%-34%114%-124%-64%84%116%-85%-92%63%-24%-119%-53%44%-42%20%-39%-78%-70%125%42%-121%27%-69%93%25%-77%109%43%-118%-107%14%113%-24%-117%-104%-2%52%56%48%112%-91%-49%55%-89%-114%-7%38%-99%42%100%-49%-91%-48%-106%-2%13%-127%31%98%-1%-55%30%-37%-42%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EVcCADrXEeGMCcwsbpLuFA" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EVdQIDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconPushProducer"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Eg1ZsDrXEeGMCcwsbpLuFA" key="image_kind_key" value="icon"/>
+ </eAnnotations>
+ </icon>
+ <icon xmi:type="uml:Image" xmi:id="_djiTYDl9EeGi35TadupI-A" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%97%0%0%0%98%8%0%0%0%0%101%-7%-30%-47%0%0%2%120%73%68%65%84%104%-127%-75%-38%-51%75%21%81%24%6%-16%-125%-106%105%25%-106%38%-107%84%-76%50%-119%-54%32%90%37%-75%-120%72%-94%69%-117%104%85%86%-46%-90%112%97%73%33%-47%-86%-123%16%33%70%17%-47%-54%-94%47%-24%3%-63%34%-56%-115%20%-35%77%4%-110%65%-123%27%11%51%37%-107%-16%-93%-85%-34%105%-26%-23%74%31%115%-18%120%103%-18%97%-50%-5%60%127%-64%-4%86%103%-26%61%-49%59%10%-99%23%-102%121%105%31%-127%122%-80%72%17%-77%-96%98%68%85%51%-127%116%-82%-87%26%-78%112%76%-35%34%11%117%106%-74%-98%45%32%121%-124%45%96%124%55%91%-64%-40%46%-74%-128%-127%-51%108%1%-3%-107%108%1%61%107%-40%2%-34%-106%-78%5%116%-111%8%95%-64%-45%34%-74%-32%-35%-90%16%-102%0%-17%106%62%89%-128%-45%66%32%50%4%56%-115%108%1%-45%39%-39%2%-110%7%-39%2%38%14%-80%5%-116%-18%96%11%24%-38%-50%22%-48%-73%-127%45%-32%-29%58%-74%-128%-41%43%-39%2%94%-107%-80%5%116%-120%17%97%2%-18%20%-78%5%-9%-70%16%17%42%-64%-67%40%-13%-94%13%23%-112%58%47%66%68%8%72%29%103%11%-104%58%-52%22%48%-79%-113%45%96%108%15%91%-64%-32%54%-74%-128%47%-101%-40%2%-34%-83%103%11%-24%89%-59%22%-16%-94%-116%45%-32%-39%82%-74%-128%-69%-59%108%1%55%11%-40%-126%123%41%54%97%40%-64%109%-54%35%11%-104%-39%-49%22%-34%-105%-109%-123%-127%-86%-104%-128%-87%-16%99%103%92%-64%80%-104%58%20%27%48%19%82%-89%-29%3%70%-126%-41%106%51%18%-104%8%-9%-84%38%39%3%-95%107%-103%13%96%32%-12%-38%125%30%114%11%-33%108%-81%43%-71%-124%113%-21%-6%44%-121%-112%-76%56%8%70%-126%115%-58%26%-120%22%-68%54%-127%-39%56%82%120%36%81%7%69%9%-35%-53%5%-128%40%-95%-73%66%2%-120%16%6%55%-118%0%-31%-62%100%-4%47%-126%-103%48%45%113%57%-119%18%-100%38%41%32%68%-16%-82%-56%21%126%-39%-123%-57%-126%-67%104%86%33%97%53%108%27%8%31%68%91%-10%44%-62%87%-39%101%-60%124%65%122%103%51%79%-104%-107%-34%59%5%-123%95%103%-123%-127%-96%64%40%-41%3%-62%-109%-59%-46%64%64%72%-84%16%7%50%5%-47%22%52%-101%48%-76%-107%0%-24%-62%-28%94%6%-96%9%-87%58%10%-32%11%-18%57%14%-32%11%55%72%-64%127%-95%-109%-10%63%-62%95%-31%13%107%103%-7%79%-24%91%75%3%-2%8%-33%41%7%65%19%126%-42%18%-127%57%-63%57%-63%4%-46%-126%-37%76%5%-46%66%7%23%80%71%85%-36%86%-57%52%-83%-86%-127%-6%-4%-68%-110%97%-11%-87%44%-93%-3%-54%-41%-78%-80%64%75%-111%-106%37%-59%126%86%111%-47%82%-85%-91%-2%84%58%109%-61%80%24%109%-65%-84%-27%-2%67%63%-49%95%-6%73%124%-42%50%19%28%-127%-94%-14%27%-2%-94%-44%59%115%-35%74%-17%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GvSOQDrXEeGMCcwsbpLuFA" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GvS1UDrXEeGMCcwsbpLuFA" key="image_name_key" value="ConjIconPushProducer"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G5-bUDrXEeGMCcwsbpLuFA" key="image_kind_key" value="icon"/>
+ </eAnnotations>
+ </icon>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_Wtrfw1DlEd6cwecVIgl9nw" name="UseInterface">
+ <icon xmi:type="uml:Image" xmi:id="_FzdNoDiyEeGiupyIkgMHVw" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%84%0%0%0%101%8%3%0%0%0%-28%-109%52%-5%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-52%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%43%43%43%39%39%39%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%82%82%82%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%34%34%34%-47%-47%-47%30%30%30%-51%-51%-51%26%26%26%24%24%24%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-33%61%-9%-93%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%3%41%73%68%65%84%104%-127%-83%-39%125%91%-38%48%16%0%-16%-29%101%12%-76%32%32%69%17%-95%88%-107%23%-69%45%-43%90%-83%5%117%-32%-9%-1%78%-125%103%-37%67%47%109%115%-105%54%-9%119%-8%61%41%73%-109%-69%43%-120%-14%17%92%86%-105%86%56%-116%15%49%12%-83%-42%26%74%-126%-35%-54%106%8%82%84%74%-95%-125%-58%-117%12%30%98%84%28%125%-84%-74%-99%44%18%-96%87%20%125%-84%127%100%-117%0%83%81%12%85%-112%0%-61%98%-24%-83%-126%4%120%42%-126%-66%61%-87%72%-128%7%125%-44%-97%79%-43%38%-52%-75%-47%-2%25%65%2%-72%-70%-24%104%67%-102%-80%-43%68%107%57%59%19%69%-92%-121%46%25%36%-128%-81%-123%54%115%-99%-15%-85%-41%-88%110%15%81%-83%-51%-123%6%-22%63%100%-125%-45%-50%-3%-91%52%-108%-113%-98%100%-110%-81%-75%94%122%40%27%-99%103%-111%-42%58%115%44%23%-67%-31%-109%108%116%-108%-34%75%-101%93%-18%104%30%-38%77%-17%-7%102%-112%63%-100%-121%-2%72%-19%-95%47%-43%112%22%122%39%-101%118%-92%28%-49%65%-93%-119%100%-122%-118%71%-25%-94%-14%-61%119%8%-109%-125%110%37%-13%-52%-89%126%65%-93%-66%116%-81%15%-87%121%114%-48%26%54%63%-6%-28%47%104%-44%-57%91%-44%-71%-94%77%26%-67%-59%19%-99%51%76%26%-75%-15%102%34%23%-119%-125%86%-16%-61%-65%113%76%18%-75%16%-38%98%-103%20%-38%67%-89%-45%-17%-82%17%20%47%-45%61%-49%-92%-48%48%105%-114%-103%19%37%-48%1%-102%104%-109%105%18%-88%-117%-48%-127%25%-44%67%123%-108%107%18%104%-100%68%-17%-52%-96%17%122%-6%-116%11%-66%8%58%75%-102%54%-37%84%-93%40%-127%96%-66%77%36%-118%-18%-111%-118%33%-12%60%-119%50%14%103%22%58%78%-104%19%-66%-87%68%-125%-126%-21%116%64%-3%-111%91%91%36%-93%-27%-3%-115%95%73%-12%84%11%29%93%0%39%60%29%-12%-115%42%-117%-2%-59%82%7%125%-26%-103%-80%-48%65%57%69%-116%54%-54%13%45%-108%-7%-105%-62%119%29%-12%39%19%-43%90%-3%-63%-104%6%15%-47%-42%65%69%-60%91%127%-51%55%74%116%-81%-73%-57%-72%-114%-114%-15%-103%64%29%77%52%55%-48%5%-51%-53%120%104%20%85%-93%51%67%-24%-73%36%-70%50%-124%-94%-108%111%104%8%-19%-93%-11%103%-25%18%-60%-67%-113%106%-120%-70%33%116%-107%68%-49%13%-95%51%-12%-4%-20%77%-91%70%-5%-24%96%100%-33%-4%68%126%-118%58%112%83%51%-7%-87%-108%75%114%-49%84%2%13%-48%113%-53%77%-91%-87%-22%-28%20%77%-107%-7%86%81%-24%14%-95%78%94%43%70%15%-107%42%-66%23%35%21%-97%-76%85%121%-41%63%93%69%-93%20%29%-100%107%19%-88%92%70%27%-87%-9%83%-99%-119%11%19%-99%9%113%-123%81%70%121%-50%-23%-10%120%-110%-6%108%-96%-37%35%6%-87%-66%20%81%-3%-80%58%104%-82%-124%-62%69%-7%14%90%-6%15%-128%-119%-14%110%-27%-95%65%44%-85%112%82%-70%43%41%46%-45%-55%-31%38%-65%-80%-30%118%122%-85%41%116%-97%-77%-107%-20%-12%74%-119%-59%-1%-80%-34%-53%-95%57%93%126%-69%94%-90%123%46%-35%-41%-57%112%-98%23%35%-23%29%51%-13%69%98%106%91%75%-41%-35%109%-65%92%-9%74%19%21%-115%92%-11%24%15%-70%40%-25%43%-113%-89%-115%-118%119%-14%123%-44%-87%62%42%122%29%2%13%11%-96%-5%13%-85%-82%-68%-118%-95%34%82%78%-42%46%-122%10%113%-93%-8%103%-29%-94%-88%-22%11%111%113%84%-59%-106%64%-9%-73%108%-59%-54%-36%-75%-91%-48%125%-12%-22%97%-38%13%74%-94%-5%8%118%45%27%-61%81%121%-12%16%-2%-70%-46%-16%-38%97%24%-57%113%24%-74%-9%71%-31%31%12%-33%-99%51%8%-119%86%-81%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%45%-25%121%64%-90%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_z5Ar0DrWEeGMCcwsbpLuFA" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_z5BS4DrWEeGMCcwsbpLuFA" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BoRRIDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconUseInterface"/>
+ </eAnnotations>
+ </icon>
+ <icon xmi:type="uml:Image" xmi:id="_Yy8SMDl9EeGi35TadupI-A" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%119%0%0%0%92%8%3%0%0%0%99%-116%-38%77%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-43%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-103%-103%-103%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%43%43%43%39%39%39%35%35%35%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%-68%-68%-68%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%120%120%120%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%-43%-43%-43%34%34%34%-47%-47%-47%30%30%30%-51%-51%-51%26%26%26%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-71%82%-104%50%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%4%-59%73%68%65%84%104%-127%-59%-102%109%91%-30%58%16%-122%11%-118%40%-88%108%-83%2%-53%-117%93%123%4%-75%-20%110%53%-83%69%-91%-108%30%20%-1%-1%79%58%-107%-77%72%38%77%-109%73%-126%-41%62%95%-55%-52%77%94%-102%-52%76%98%-111%29%104%-2%-74%26%-115%-22%-29%81%-27%-83%31%35%77%44%51%98%-68%58%60%-19%120%22%-91%-27%-76%57%-70%-8%90%-18%-62%127%6%-56%-83%58%-65%-34%-61%47%-30%94%28%-76%-7%-52%63%122%109%-4%-5%5%-36%-59%73%73%79%105%-75%43%59%-26%14%78%-28%-48%-75%-70%-29%-78%-31%-42%-32%94%96%-87%107%-14%96%71%-36%-80%-18%42%96%115%5%-50%46%-72%-117%-82%26%53%-41%-16%-38%-100%-69%127%-91%-116%-51%-43%-116%-52%-72%-15%-67%14%53%87%123%102%-62%117%94%52%-79%-106%-27%-78%-53%75%-127%-101%-88%79%45%5%102%-66%101%60%119%-66%44%117%58%124%-71%15%38%-66%-1%59%-104%-106%-73%-15%-58%122%-36%-92%-60%101%-89%89%-95%63%-108%120%-32%79%75%-42%94%85%-121%-21%100%60%87%-39%36%-31%-76%-75%111%-98%-72%61%-2%-95%-50%-115%121%115%43%-40%127%23%15%-100%-3%-37%-19%41%115%91%69%47%-35%-107%-48%34%-31%-20%-90%-53%-19%-116%-32%-72%-11%-30%127%-81%75%14%88%66%86%-33%11%86%45%53%-18%-96%48%104%47%-123%-115%-128%-93%-8%119%1%92%87%-31%-38%25%107%-34%-112%118%-10%127%-115%-39%51%-60%-21%43%112%27%-84%113%13%71%-51%-43%103%-65%-66%78%-120%-26%-10%-104%81%-10%-86%114%-101%79%37%-20%88%-43%-48%-36%103%3%44%33%51%-90%-57%-18%5%-110%59%102%-2%-16%88%106%1%-107%48%115%28%32%-71%41%52%-13%21%-79%-124%92%-62%121%-14%18%20%-73%2%-79%-33%-112%43%-103%-42%29%116%-47%68%113%97%-108%-4%-54%13%-106%36%10%-65%1%31%87%14%-126%-5%6%-1%-21%72%3%-101%-81%45%120%66%77%16%-36%0%88%60%106%97%-39%-111%-50%-28%-36%8%44%70%-113%119%-22%97%20%-62%-59%121%41%-27%94%-125%-10%-57%-102%88%-10%99%12%-92%92%120%-2%45%-76%-71%33%-40%61%-36%80%-62%13%-63%48%-73%-124%109%-59%58%0%29%-24%75%-72%125%-48%-102%23%-9%99%-27%-128%-51%-29%78%-62%5%-21%-48%45%70%-3%10%2%51%54%-107%112%31%-103%-43%96%-96%17%-19%-22%42%18%115%95%-23%-58%122%123%-58%70%51%-72%66%-123%92%27%-76%-59%-124%54%2%-127%-120%-76%-14%-121%27%-49%120%-86%-46%77%51%51%44%-36%-7%110%63%-72%-47%-92%-115%-88%86%-24%-18%-111%27%-127%47%-23%-34%66%-89%-46%13%67%46%56%80%-97%44%18%103%40%-84%-75%111%-56%-99%-45%-50%-50%45%-46%-60%97%13%-105%51%-77%-96%83%-117%12%-111%92%113%90%34%87%8%-71%9%18%107%-67%25%114%9%-19%-52%-77%46%-1%10%-41%-75%-20%50%14%43%65%-47%15%-91%-104%118%-106%-49%47%-74%106%-79%-21%117%85%45%3%49%58%48%-28%-10%104%103%-7%-9%75%30%112%-36%95%-122%-36%127%104%103%-45%-100%27%-6%-120%93%50%-1%-117%-122%92%-97%118%-42%92%-97%11%73%-19%-8%-119%39%80%39%27%26%114%65%-35%-95%38%60%7%35%-48%-31%-98%-88%-87%92%96%127%122%23%-97%-5%32%-20%-59%103%-37%60%-127%101%-107%-17%86%-62%-58%-57%116%91%-109%112%-110%-112%91%56%103%98%-18%30%-35%-40%-45%-55%-55%62%5%-14%-69%19%9%23%-100%93%70%3%-67%0%-98%-10%100%-7%2%8%-13%59%6%92%88%-101%-103%-53%-72%48%29%-44%-33%-94%29%-112%-119%102%-46%-4%8%-90%-65%-25%-38%92%-80%105%124%36%-64%-78%-4%55%3%6%-17%-102%88%7%6%23%115%57%-9%16%24%100%-102%-87%10%-100%-82%103%34%-25%-62%21%-67%46%17%-88%-117%-119%45%-10%17%92%-72%-83%90%94%-55%-11%-105%80%76%125%115%25%97%-72%-16%-61%-77%-78%51%117%46%83%-119%94%111%3%-14%-70%-39%41%-76%106%41%23%-80%-104%-14%-43%-48%-58%113%7%-48%76%57%29%29%49%-10%119%4%-57%37%108%-11%-6%72%9%91%101%-126%-118%52%-62%114%-49%-40%-56%30%91%-11%-26%97%55%-31%63%-90%-18%-67%-49%-104%90%15%-24%-49%-72%112%49%-15%64%-16%92%-90%-66%-104%-85%-115%43%-96%21%-17%49%95%55%79%29%80%-9%26%78%-31%-82%-52%-67%65%-104%-11%82%-42%108%-101%100%-31%-18%113%126%20%35%-50%-87%-84%-53%118%-77%104%-12%-13%-13%87%-28%-67%-107%95%112%97%121%13%-47%-13%-112%-88%-58%-71%79%-100%110%23%36%-10%126%48%40%122%-79%-68%-96%-84%112%-24%-44%121%-73%-104%93%123%-37%2%-53%13%-7%-113%24%-38%7%-59%42%-113%125%125%-54%77%4%50%58%62%67%-33%-61%-58%-36%59%-50%92%105%112%115%-71%-15%24%-9%-85%71%101%-49%88%-106%96%65%-32%-17%-99%-29%105%-119%-61%-11%-112%-89%-23%75%-102%-118%94%88%64%-84%-54%61%123%-120%76%-32%-72%-22%50%-117%80%-23%61%-61%-111%54%-10%-23%-116%113%-91%-10%126%-93%112%-49%-120%84%113%71%87%124%55%50%19%63%126%-30%107%-56%-119%127%85%-33%-55%68%13%84%-78%76%-21%-111%87%80%85%127%-113%52%127%-106%-93%40%45%-7%85%122%-99%-9%87%123%-27%-81%52%88%93%29%-39%124%31%90%-17%-66%-94%-101%-30%-43%61%-105%-38%40%77%33%53%-33%-71%-123%99%-7%104%103%126%73%95%13%-72%-71%-110%-119%-88%-45%110%32%-82%-17%25%-67%-97%-20%-33%-74%-72%31%-12%-7%-31%74%22%9%25%-66%-37%36%97%127%-4%-13%-76%-67%-119%-4%-68%116%-38%-84%-83%4%-61%-69%51%-18%-89%102%-77%25%-10%-115%-22%-121%-2%3%52%51%-49%67%-105%-19%90%17%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%5%-46%-52%-24%92%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0rGQEDrWEeGMCcwsbpLuFA" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0rHeMDrWEeGMCcwsbpLuFA" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_C7NfsDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconConjUseInterface"/>
+ </eAnnotations>
+ </icon>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="__nMrwLqNEd-SedGzMDDkww" name="AMIpoll">
+ <icon xmi:type="uml:Image" xmi:id="_JXZ1gDiyEeGiupyIkgMHVw" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%84%0%0%0%101%8%3%0%0%0%-28%-109%52%-5%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-52%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%43%43%43%39%39%39%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%82%82%82%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%34%34%34%-47%-47%-47%30%30%30%-51%-51%-51%26%26%26%24%24%24%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-33%61%-9%-93%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%3%41%73%68%65%84%104%-127%-83%-39%125%91%-38%48%16%0%-16%-29%101%12%-76%32%32%69%17%-95%88%-107%23%-69%45%-43%90%-83%5%117%-32%-9%-1%78%-125%103%-37%67%47%109%115%-105%54%-9%119%-8%61%41%73%-109%-69%43%-120%-14%17%92%86%-105%86%56%-116%15%49%12%-83%-42%26%74%-126%-35%-54%106%8%82%84%74%-95%-125%-58%-117%12%30%98%84%28%125%-84%-74%-99%44%18%-96%87%20%125%-84%127%100%-117%0%83%81%12%85%-112%0%-61%98%-24%-83%-126%4%120%42%-126%-66%61%-87%72%-128%7%125%-44%-97%79%-43%38%-52%-75%-47%-2%25%65%2%-72%-70%-24%104%67%-102%-80%-43%68%107%57%59%19%69%-92%-121%46%25%36%-128%-81%-123%54%115%-99%-15%-85%-41%-88%110%15%81%-83%-51%-123%6%-22%63%100%-125%-45%-50%-3%-91%52%-108%-113%-98%100%-110%-81%-75%94%122%40%27%-99%103%-111%-42%58%115%44%23%-67%-31%-109%108%116%-108%-34%75%-101%93%-18%104%30%-38%77%-17%-7%102%-112%63%-100%-121%-2%72%-19%-95%47%-43%112%22%122%39%-101%118%-92%28%-49%65%-93%-119%100%-122%-118%71%-25%-94%-14%-61%119%8%-109%-125%110%37%-13%-52%-89%126%65%-93%-66%116%-81%15%-87%121%114%-48%26%54%63%-6%-28%47%104%-44%-57%91%-44%-71%-94%77%26%-67%-59%19%-99%51%76%26%-75%-15%102%34%23%-119%-125%86%-16%-61%-65%113%76%18%-75%16%-38%98%-103%20%-38%67%-89%-45%-17%-82%17%20%47%-45%61%-49%-92%-48%48%105%-114%-103%19%37%-48%1%-102%104%-109%105%18%-88%-117%-48%-127%25%-44%67%123%-108%107%18%104%-100%68%-17%-52%-96%17%122%-6%-116%11%-66%8%58%75%-102%54%-37%84%-93%40%-127%96%-66%77%36%-118%-18%-111%-118%33%-12%60%-119%50%14%103%22%58%78%-104%19%-66%-87%68%-125%-126%-21%116%64%-3%-111%91%91%36%-93%-27%-3%-115%95%73%-12%84%11%29%93%0%39%60%29%-12%-115%42%-117%-2%-59%82%7%125%-26%-103%-80%-48%65%57%69%-116%54%-54%13%45%-108%-7%-105%-62%119%29%-12%39%19%-43%90%-3%-63%-104%6%15%-47%-42%65%69%-60%91%127%-51%55%74%116%-81%-73%-57%-72%-114%-114%-15%-103%64%29%77%52%55%-48%5%-51%-53%120%104%20%85%-93%51%67%-24%-73%36%-70%50%-124%-94%-108%111%104%8%-19%-93%-11%103%-25%18%-60%-67%-113%106%-120%-70%33%116%-107%68%-49%13%-95%51%-12%-4%-20%77%-91%70%-5%-24%96%100%-33%-4%68%126%-118%58%112%83%51%-7%-87%-108%75%114%-49%84%2%13%-48%113%-53%77%-91%-87%-22%-28%20%77%-107%-7%86%81%-24%14%-95%78%94%43%70%15%-107%42%-66%23%35%21%-97%-76%85%121%-41%63%93%69%-93%20%29%-100%107%19%-88%92%70%27%-87%-9%83%-99%-119%11%19%-99%9%113%-123%81%70%121%-50%-23%-10%120%-110%-6%108%-96%-37%35%6%-87%-66%20%81%-3%-80%58%104%-82%-124%-62%69%-7%14%90%-6%15%-128%-119%-14%110%-27%-95%65%44%-85%112%82%-70%43%41%46%-45%-55%-31%38%-65%-80%-30%118%122%-85%41%116%-97%-77%-107%-20%-12%74%-119%-59%-1%-80%-34%-53%-95%57%93%126%-69%94%-90%123%46%-35%-41%-57%112%-98%23%35%-23%29%51%-13%69%98%106%91%75%-41%-35%109%-65%92%-9%74%19%21%-115%92%-11%24%15%-70%40%-25%43%-113%-89%-115%-118%119%-14%123%-44%-87%62%42%122%29%2%13%11%-96%-5%13%-85%-82%-68%-118%-95%34%82%78%-42%46%-122%10%113%-93%-8%103%-29%-94%-88%-22%11%111%113%84%-59%-106%64%-9%-73%108%-59%-54%-36%-75%-91%-48%125%-12%-22%97%-38%13%74%-94%-5%8%118%45%27%-61%81%121%-12%16%-2%-70%-46%-16%-38%97%24%-57%113%24%-74%-9%71%-31%31%12%-33%-99%51%8%-119%86%-81%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%45%-25%121%64%-90%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3DWg4DrWEeGMCcwsbpLuFA" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3DXH8DrWEeGMCcwsbpLuFA" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9f8J0DrWEeGMCcwsbpLuFA" key="image_name_key" value="IconAMIPoll"/>
+ </eAnnotations>
+ </icon>
+ <icon xmi:type="uml:Image" xmi:id="_3-hIoDrWEeGMCcwsbpLuFA" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%119%0%0%0%92%8%3%0%0%0%99%-116%-38%77%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-43%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-103%-103%-103%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%43%43%43%39%39%39%35%35%35%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%-68%-68%-68%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%120%120%120%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%-43%-43%-43%34%34%34%-47%-47%-47%30%30%30%-51%-51%-51%26%26%26%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-71%82%-104%50%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%4%-59%73%68%65%84%104%-127%-59%-102%109%91%-30%58%16%-122%11%-118%40%-88%108%-83%2%-53%-117%93%123%4%-75%-20%110%53%-83%69%-91%-108%30%20%-1%-1%79%58%-107%-77%72%38%77%-109%73%-126%-41%62%95%-55%-52%77%94%-102%-52%76%98%-111%29%104%-2%-74%26%-115%-22%-29%81%-27%-83%31%35%77%44%51%98%-68%58%60%-19%120%22%-91%-27%-76%57%-70%-8%90%-18%-62%127%6%-56%-83%58%-65%-34%-61%47%-30%94%28%-76%-7%-52%63%122%109%-4%-5%5%-36%-59%73%73%79%105%-75%43%59%-26%14%78%-28%-48%-75%-70%-29%-78%-31%-42%-32%94%96%-87%107%-14%96%71%-36%-80%-18%42%96%115%5%-50%46%-72%-117%-82%26%53%-41%-16%-38%-100%-69%127%-91%-116%-51%-43%-116%-52%-72%-15%-67%14%53%87%123%102%-62%117%94%52%-79%-106%-27%-78%-53%75%-127%-101%-88%79%45%5%102%-66%101%60%119%-66%44%117%58%124%-71%15%38%-66%-1%59%-104%-106%-73%-15%-58%122%-36%-92%-60%101%-89%89%-95%63%-108%120%-32%79%75%-42%94%85%-121%-21%100%60%87%-39%36%-31%-76%-75%111%-98%-72%61%-2%-95%-50%-115%121%115%43%-40%127%23%15%-100%-3%-37%-19%41%115%91%69%47%-35%-107%-48%34%-31%-20%-90%-53%-19%-116%-32%-72%-11%-30%127%-81%75%14%88%66%86%-33%11%86%45%53%-18%-96%48%104%47%-123%-115%-128%-93%-8%119%1%92%87%-31%-38%25%107%-34%-112%118%-10%127%-115%-39%51%-60%-21%43%112%27%-84%113%13%71%-51%-43%103%-65%-66%78%-120%-26%-10%-104%81%-10%-86%114%-101%79%37%-20%88%-43%-48%-36%103%3%44%33%51%-90%-57%-18%5%-110%59%102%-2%-16%88%106%1%-107%48%115%28%32%-71%41%52%-13%21%-79%-124%92%-62%121%-14%18%20%-73%2%-79%-33%-112%43%-103%-42%29%116%-47%68%113%97%-108%-4%-54%13%-106%36%10%-65%1%31%87%14%-126%-5%6%-1%-21%72%3%-101%-81%45%120%66%77%16%-36%0%88%60%106%97%-39%-111%-50%-28%-36%8%44%70%-113%119%-22%97%20%-62%-59%121%41%-27%94%-125%-10%-57%-102%88%-10%99%12%-92%92%120%-2%45%-76%-71%33%-40%61%-36%80%-62%13%-63%48%-73%-124%109%-59%58%0%29%-24%75%-72%125%-48%-102%23%-9%99%-27%-128%-51%-29%78%-62%5%-21%-48%45%70%-3%10%2%51%54%-107%112%31%-103%-43%96%-96%17%-19%-22%42%18%115%95%-23%-58%122%123%-58%70%51%-72%66%-123%92%27%-76%-59%-124%54%2%-127%-120%-76%-14%-121%27%-49%120%-86%-46%77%51%51%44%-36%-7%110%63%-72%-47%-92%-115%-88%86%-24%-18%-111%27%-127%47%-23%-34%66%-89%-46%13%67%46%56%80%-97%44%18%103%40%-84%-75%111%-56%-99%-45%-50%-50%45%-46%-60%97%13%-105%51%-77%-96%83%-117%12%-111%92%113%90%34%87%8%-71%9%18%107%-67%25%114%9%-19%-52%-77%46%-1%10%-41%-75%-20%50%14%43%65%-47%15%-91%-104%118%-106%-49%47%-74%106%-79%-21%117%85%45%3%49%58%48%-28%-10%104%103%-7%-9%75%30%112%-36%95%-122%-36%127%104%103%-45%-100%27%-6%-120%93%50%-1%-117%-122%92%-97%118%-42%92%-97%11%73%-19%-8%-119%39%80%39%27%26%114%65%-35%-95%38%60%7%35%-48%-31%-98%-88%-87%92%96%127%122%23%-97%-5%32%-20%-59%103%-37%60%-127%101%-107%-17%86%-62%-58%-57%116%91%-109%112%-110%-112%91%56%103%98%-18%30%-35%-40%-45%-55%-55%62%5%-14%-69%19%9%23%-100%93%70%3%-67%0%-98%-10%100%-7%2%8%-13%59%6%92%88%-101%-103%-53%-72%48%29%-44%-33%-94%29%-112%-119%102%-46%-4%8%-90%-65%-25%-38%92%-80%105%124%36%-64%-78%-4%55%3%6%-17%-102%88%7%6%23%115%57%-9%16%24%100%-102%-87%10%-100%-82%103%34%-25%-62%21%-67%46%17%-88%-117%-119%45%-10%17%92%-72%-83%90%94%-55%-11%-105%80%76%125%115%25%97%-72%-16%-61%-77%-78%51%117%46%83%-119%94%111%3%-14%-70%-39%41%-76%106%41%23%-80%-104%-14%-43%-48%-58%113%7%-48%76%57%29%29%49%-10%119%4%-57%37%108%-11%-6%72%9%91%101%-126%-118%52%-62%114%-49%-40%-56%30%91%-11%-26%97%55%-31%63%-90%-18%-67%-49%-104%90%15%-24%-49%-72%112%49%-15%64%-16%92%-90%-66%-104%-85%-115%43%-96%21%-17%49%95%55%79%29%80%-9%26%78%-31%-82%-52%-67%65%-104%-11%82%-42%108%-101%100%-31%-18%113%126%20%35%-50%-87%-84%-53%118%-77%104%-12%-13%-13%87%-28%-67%-107%95%112%97%121%13%-47%-13%-112%-88%-58%-71%79%-100%110%23%36%-10%126%48%40%122%-79%-68%-96%-84%112%-24%-44%121%-73%-104%93%123%-37%2%-53%13%-7%-113%24%-38%7%-59%42%-113%125%125%-54%77%4%50%58%62%67%-33%-61%-58%-36%59%-50%92%105%112%115%-71%-15%24%-9%-85%71%101%-49%88%-106%96%65%-32%-17%-99%-29%105%-119%-61%-11%-112%-89%-23%75%-102%-118%94%88%64%-84%-54%61%123%-120%76%-32%-72%-22%50%-117%80%-23%61%-61%-111%54%-10%-23%-116%113%-91%-10%126%-93%112%-49%-120%84%113%71%87%124%55%50%19%63%126%-30%107%-56%-119%127%85%-33%-55%68%13%84%-78%76%-21%-111%87%80%85%127%-113%52%127%-106%-93%40%45%-7%85%122%-99%-9%87%123%-27%-81%52%88%93%29%-39%124%31%90%-17%-66%-94%-101%-30%-43%61%-105%-38%40%77%33%53%-33%-71%-123%99%-7%104%103%126%73%95%13%-72%-71%-110%-119%-88%-45%110%32%-82%-17%25%-67%-97%-20%-33%-74%-72%31%-12%-7%-31%74%22%9%25%-66%-37%36%97%127%-4%-13%-76%-67%-119%-4%-68%116%-38%-84%-83%4%-61%-69%51%-18%-89%102%-77%25%-10%-115%-22%-121%-2%3%52%51%-49%67%-105%-19%90%17%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%5%-46%-52%-24%92%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_54LY8DrWEeGMCcwsbpLuFA" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_54MnEDrWEeGMCcwsbpLuFA" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ACEvYDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconConjAMIPoll"/>
+ </eAnnotations>
+ </icon>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_AQZZwLqOEd-SedGzMDDkww" name="AMIcallback">
+ <icon xmi:type="uml:Image" xmi:id="_KoY8QDiyEeGiupyIkgMHVw" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%72%0%0%0%104%8%3%0%0%0%101%-97%70%67%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-43%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-103%-103%-103%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%103%103%103%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%-34%-34%-34%43%43%43%39%39%39%35%35%35%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%-68%-68%-68%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%-43%-43%-43%34%34%34%-47%-47%-47%30%30%30%26%26%26%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-51%-46%-59%107%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%3%-13%73%68%65%84%88%-123%-75%-39%109%67%-86%48%20%0%-32%-39%53%75%-67%105%26%-23%-51%74%52%73%45%-13%-86%13%-13%37%-55%-105%-44%-1%-1%-109%-82%-70%13%6%-116%-77%-93%113%-49%-73%-28%-12%48%-74%113%-40%-128%80%116%12%55%-39%-4%116%78%-56%-14%-13%-6%-9%-13%40%120%-108%32%21%-69%121%85%39%82%52%-14%109%-65%-123%-124%-102%-9%36%20%-85%-92%125%44%84%-67%13%51%-5%-72%-33%30%7%117%-44%-52%62%-78%110%-93%-12%-48%-80%31%-19%16%82%40%98%-95%-30%-89%-12%111%-26%52%-105%-51%-68%79%-66%-91%-97%-26%51%28%100%23%-68%-50%-51%-82%-59%-123%84%47%-67%-50%-65%27%-95%-96%-116%-56%-81%-65%-7%-122%-37%62%119%-101%-107%-73%17%-48%-117%-37%23%70%-24%-102%-35%-66%-21%-22%33%-93%-63%115%51%-74%-30%104%-57%-30%71%23%90%72%-100%-76%-93%62%-36%-30%-121%-57%58%-56%-31%-89%-20%71%37%116%-71%-76%-47%64%57%-106%118%59%-116%-52%-56%-77%-116%50%12%-35%-16%6%-43%-12%109%126%0%-95%54%75%-54%65%-115%-50%-120%-127%-125%-96%-100%56%-101%-66%-43%101%8%26%-78%-79%-81%64%14%-91%31%-20%108%14%0%85%-7%20%-126%-95%36%-53%106%6%-96%-46%-52%-117%95%-18%-48%66%-15%-59%-78%82%62%40%41%-33%-42%34%28%24%-78%89%86%90%-122%54%10%-122%-112%80%-103%15%4%59%-7%64%-122%6%74%72%-29%-48%-54%33%107%34%-25%77%-108%-112%-22%118%-107%99%-50%38%-101%30%-102%105%32%-106%-107%-43%67%-64%13%-78%15%-125%101%117%-62%80%-91%-59%-29%-110%-91%-92%96%40%-63%-78%90%97%104%18%56%-41%68%-15%-33%82%-16%17%122%4%32%58%61%-4%109%-35%64%-114%-51%70%-1%-101%66%16%127%48%-66%65%16%-81%16%61%16%90%-80%-92%70%-88%-18%123%49%92%-79%-100%45%8%-15%-71%-74%59%93%100%-16%70%-101%67%24%58%-29%51%-96%29%-27%60%89%-18%-56%-126%16%-17%110%98%85%-43%-114%99%-78%-29%-53%-95%14%-86%-15%38%-103%79%42%103%-79%-108%90%12%67%-18%-125%-51%82%76%-53%103%-79%-124%27%-37%122%104%84%22%119%-54%-57%34%112%89%110%-83%88%30%70%85%3%-47%-46%74%-28%-109%-63%-38%43%4%-43%-65%-30%113%77%-22%-20%12%58%-120%62%74%107%80%115%-48%105%-83%-41%-83%-117%-98%-89%19%43%65%113%-112%-41%-91%-54%112%-121%65%15%81%67%93%94%14%81%113%-85%21%2%-94%118%-38%-118%112%-6%94%65%-57%64%-14%16%-55%-31%27%72%28%-76%-21%-87%92%-35%-81%52%-14%-2%-46%-119%-123%-10%91%-111%94%69%40%-53%65%104%51%-126%-121%14%81%122%-36%38%-86%-54%-57%-63%-111%80%116%-60%9%57%-25%111%44%-106%63%-125%-38%-127%73%114%42%84%12%12%-21%-55%80%45%56%-51%78%-123%30%-30%-126%-24%-8%4%-56%72%-68%-20%6%-89%37%-105%114%66%111%-6%-26%81%-112%-109%-54%-117%-62%50%-10%65%94%96%-26%81%45%39%13%-78%-68%-75%56%14%58%43%-5%26%-33%61%17%26%-11%2%-35%-103%60%13%-86%-122%106%110%-30%36%40%21%46%-109%-2%81%67%66%41%9%88%-26%95%55%-50%-20%107%45%-41%36%44%-44%116%21%43%-89%92%9%32%-95%-124%123%93%-3%63%-22%22%-29%-96%-110%-104%-77%-26%-103%-102%-63%66%124%-57%73%-54%-91%40%7%7%-119%5%87%5%88%4%98%-96%-30%-73%-34%65%65%124%-28%-83%47%-64%65%65%108%-37%2%47%-109%49%16%-33%-58%-107%-31%109%18%2%-30%-101%-19%103%-48%65%64%35%54%23%87%-102%125%-101%30%-30%-101%-19%46%-123%67%15%-99%51%72%-77%71%70%64%108%105%100%106%28%5%52%-99%-7%-29%-18%-16%-21%-57%-15%-112%58%-46%113%65%-16%108%-4%95%-48%117%92%-48%107%92%-48%-80%16%13%-127%-81%-75%-126%-48%-18%-2%-68%-32%-117%-73%-105%-106%27%-20%21%-76%-26%117%20%-26%-19%113%-102%53%-87%-88%73%-45%67%-4%85%-61%86%-109%-90%-121%28%6%93%-1%24%18%5%82%-13%-42%6%1%-15%89%-95%-71%73%16%-112%-63%42%-101%-75%0%-77%48%31%15%-82%88%-109%-32%-94%-115%-127%120%-115%-124%-117%36%-22%-69%-56%59%-105%-96%119%82%40%-56%48%-11%18%-18%-109%79%91%-36%114%-23%-56%126%66%126%59%18%-53%17%82%-114%26%59%36%52%114%-117%94%-93%-89%94%2%96%63%-117%21%-35%-3%44%33%-123%-74%-30%21%55%22%-94%-122%36%17%82%-97%78%38%19%-33%-73%9%52%68%-115%80%-39%-13%125%-100%-64%67%-69%103%110%-61%15%-7%-54%-17%49%16%117%62%99%-126%-88%-99%24%-57%3%-19%98%-47%-81%-57%3%-19%-30%-95%-35%43%-49%119%113%46%-1%-8%15%83%120%-125%-89%63%57%-45%-36%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%32%-103%-56%60%27%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus"/>
+ <icon xmi:type="uml:Image" xmi:id="_WTUY0ENnEeGoAtSeIK7WLg" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%72%0%0%0%104%8%3%0%0%0%101%-97%70%67%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-43%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-103%-103%-103%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%103%103%103%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%-34%-34%-34%43%43%43%39%39%39%35%35%35%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%-68%-68%-68%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%-43%-43%-43%34%34%34%-47%-47%-47%30%30%30%26%26%26%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-51%-46%-59%107%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%3%-13%73%68%65%84%88%-123%-75%-39%109%67%-86%48%20%0%-32%-39%53%75%-67%105%26%-23%-51%74%52%73%45%-13%-86%13%-13%37%-55%-105%-44%-1%-1%-109%-82%-70%13%6%-116%-77%-93%113%-49%-73%-28%-12%48%-74%113%-40%-128%80%116%12%55%-39%-4%116%78%-56%-14%-13%-6%-9%-13%40%120%-108%32%21%-69%121%85%39%82%52%-14%109%-65%-123%-124%-102%-9%36%20%-85%-92%125%44%84%-67%13%51%-5%-72%-33%30%7%117%-44%-52%62%-78%110%-93%-12%-48%-80%31%-19%16%82%40%98%-95%-30%-89%-12%111%-26%52%-105%-51%-68%79%-66%-91%-97%-26%51%28%100%23%-68%-50%-51%-82%-59%-123%84%47%-67%-50%-65%27%-95%-96%-116%-56%-81%-65%-7%-122%-37%62%119%-101%-107%-73%17%-48%-117%-37%23%70%-24%-102%-35%-66%-21%-22%33%-93%-63%115%51%-74%-30%104%-57%-30%71%23%90%72%-100%-76%-93%62%-36%-30%-121%-57%58%-56%-31%-89%-20%71%37%116%-71%-76%-47%64%57%-106%118%59%-116%-52%-56%-77%-116%50%12%-35%-16%6%-43%-12%109%126%0%-95%54%75%-54%65%-115%-50%-120%-127%-125%-96%-100%56%-101%-66%-43%101%8%26%-78%-79%-81%64%14%-91%31%-20%108%14%0%85%-7%20%-126%-95%36%-53%106%6%-96%-46%-52%-117%95%-18%-48%66%-15%-59%-78%82%62%40%41%-33%-42%34%28%24%-78%89%86%90%-122%54%10%-122%-112%80%-103%15%4%59%-7%64%-122%6%74%72%-29%-48%-54%33%107%34%-25%77%-108%-112%-22%118%-107%99%-50%38%-101%30%-102%105%32%-106%-107%-43%67%-64%13%-78%15%-125%101%117%-62%80%-91%-59%-29%-110%-91%-92%96%40%-63%-78%90%97%104%18%56%-41%68%-15%-33%82%-16%17%122%4%32%58%61%-4%109%-35%64%-114%-51%70%-1%-101%66%16%127%48%-66%65%16%-81%16%61%16%90%-80%-92%70%-88%-18%123%49%92%-79%-100%45%8%-15%-71%-74%59%93%100%-16%70%-101%67%24%58%-29%51%-96%29%-27%60%89%-18%-56%-126%16%-17%110%98%85%-43%-114%99%-78%-29%-53%-95%14%-86%-15%38%-103%79%42%103%-79%-108%90%12%67%-18%-125%-51%82%76%-53%103%-79%-124%27%-37%122%104%84%22%119%-54%-57%34%112%89%110%-83%88%30%70%85%3%-47%-46%74%-28%-109%-63%-38%43%4%-43%-65%-30%113%77%-22%-20%12%58%-120%62%74%107%80%115%-48%105%-83%-41%-83%-117%-98%-89%19%43%65%113%-112%-41%-91%-54%112%-121%65%15%81%67%93%94%14%81%113%-85%21%2%-94%118%-38%-118%112%-6%94%65%-57%64%-14%16%-55%-31%27%72%28%-76%-21%-87%92%-35%-81%52%-14%-2%-46%-119%-123%-10%91%-111%94%69%40%-53%65%104%51%-126%-121%14%81%122%-36%38%-86%-54%-57%-63%-111%80%116%-60%9%57%-25%111%44%-106%63%-125%-38%-127%73%114%42%84%12%12%-21%-55%80%45%56%-51%78%-123%30%-30%-126%-24%-8%4%-56%72%-68%-20%6%-89%37%-105%114%66%111%-6%-26%81%-112%-109%-54%-117%-62%50%-10%65%94%96%-26%81%45%39%13%-78%-68%-75%56%14%58%43%-5%26%-33%61%17%26%-11%2%-35%-103%60%13%-86%-122%106%110%-30%36%40%21%46%-109%-2%81%67%66%41%9%88%-26%95%55%-50%-20%107%45%-41%36%44%-44%116%21%43%-89%92%9%32%-95%-124%123%93%-3%63%-22%22%-29%-96%-110%-104%-77%-26%-103%-102%-63%66%124%-57%73%-54%-91%40%7%7%-119%5%87%5%88%4%98%-96%-30%-73%-34%65%65%124%-28%-83%47%-64%65%65%108%-37%2%47%-109%49%16%-33%-58%-107%-31%109%18%2%-30%-101%-19%103%-48%65%64%35%54%23%87%-102%125%-101%30%-30%-101%-19%46%-123%67%15%-99%51%72%-77%71%70%64%108%105%100%106%28%5%52%-99%-7%-29%-18%-16%-21%-57%-15%-112%58%-46%113%65%-16%108%-4%95%-48%117%92%-48%107%92%-48%-80%16%13%-127%-81%-75%-126%-48%-18%-2%-68%-32%-117%-73%-105%-106%27%-20%21%-76%-26%117%20%-26%-19%113%-102%53%-87%-88%73%-45%67%-4%85%-61%86%-109%-90%-121%28%6%93%-1%24%18%5%82%-13%-42%6%1%-15%89%-95%-71%73%16%-112%-63%42%-101%-75%0%-77%48%31%15%-82%88%-109%-32%-94%-115%-127%120%-115%-124%-117%36%-22%-69%-56%59%-105%-96%119%82%40%-56%48%-11%18%-18%-109%79%91%-36%114%-23%-56%126%66%126%59%18%-53%17%82%-114%26%59%36%52%114%-117%94%-93%-89%94%2%96%63%-117%21%-35%-3%44%33%-123%-74%-30%21%55%22%-94%-122%36%17%82%-97%78%38%19%-33%-73%9%52%68%-115%80%-39%-13%125%-100%-64%67%-69%103%110%-61%15%-7%-54%-17%49%16%117%62%99%-126%-88%-99%24%-57%3%-19%98%-47%-81%-57%3%-19%-30%-95%-35%43%-49%119%113%46%-1%-8%15%83%120%-125%-89%63%57%-45%-36%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%32%-103%-56%60%27%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_GjnlcC8qEeKx7OxAiA06uw" name="PushProdPullCons">
+ <icon xmi:type="uml:Image" xmi:id="_0I0rMEMLEeKGIL695HkFYQ" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%112%0%0%0%103%8%0%0%0%0%-3%88%-103%-76%0%0%7%56%73%68%65%84%104%-127%-75%-102%123%80%21%85%28%-57%-9%-18%-67%92%121%-91%40%-124%38%70%64%-26%11%-33%-118%-29%115%124%84%-90%83%106%-91%-93%2%-115%83%-90%102%-90%-7%-56%-55%-41%-104%58%-26%-116%-40%56%-102%-64%-116%-88%53%101%62%-54%102%-14%81%26%86%102%-58%4%78%102%-120%14%89%62%72%5%-15%9%72%112%-111%-57%-62%-23%42%23%-10%123%118%-49%-18%-98%-35%-69%-2%-2%-29%-100%-33%-2%62%-105%-35%-13%123%-100%-33%57%2%-31%23%-23%-20%-87%-101%-116%-31%-102%-69%38%108%16%-127%31%-105%-38%78%16%-100%83%47%-46%-93%-43%-97%116%17%-59%94%-23%53%-10%3%-85%-34%116%9%15%36%-106%34%86%39%63%28%20%-109%-1%-77%29%-72%-92%-111%39%8%-29%-85%96%52%-75%105%116%90%-75%-51%-64%-116%22%62%-53%66%-28%101%121%-76%122%96%-45%-88%-72%-76%-34%86%-32%-31%80%-95%89%-66%-105%-121%47%61%-39%60%-22%78%-77%19%120%-90%-83%-52%19%-14%-28%-15%-62%56%121%56%116%-97%125%-64%-62%-98%-64%-21%120%93%-98%-88%26%12%19%109%-114%-39%5%44%123%22%-52%10%91%112%-22%-101%64%-104%-119%62%103%15%80%74%114%-128%-43%23%-53%113%-50%-25%22%62%-23%117%-51%22%-32%42%39%-40%-20%83%76%79%-106%-67%-128%-60%81%-58%65%-57%24%-72%-93%5%88%-20%-112%-81%-100%-66%-103%-128%-60%-55%30%-65%-127%-103%-32%16%66%-21%-29%106%-123%11%79%-125%-126%56%-73%-42%79%96%126%52%-104%11%-38%-55%82%-55%121%28%84%2%-42%-7%7%-68%-34%11%95%-40%-70%58%-90%-46%-63%-57%64%39%-28%115%127%-128%-98%-25%-112%55%-29%-66%-122%-38%118%-4%-52%97%-121%-83%3%-91%-23%-24%16%99%52%51%66%-3%-121%34%-24%69%-99%-78%12%92%-29%2%59%61%-117%-75%21%107%-26%-32%-101%-24%-10%-113%69%-32%23%24%70%-94%114%-11%126%90%-59%68%36%14%101%21%6%-58%-64%19%-83%-64%70%-85%31%-12%120%-124%-108%12%69%-30%-72%50%11%64%72%61%-34%-46%-30%-45%6%125%32%-71%26%15%-22%-30%76%-83%-11%-91%13%-68%-35%7%127%-14%74%-74%67%-96%-28%70%-127%126%-64%7%-110%73%-96%-121%-118%-111%111%104%-2%96%-112%-93%97%-16%68%96%-70%73%-32%76%116%-120%81%-9%56%120%-124%-20%13%-126%103%66%-65%50%5%92%-113%14%-47%-11%10%23%-113%-44%111%-62%-68%18%-98%101%2%-72%-41%13%79%70%-98%-26%-29%121%-35%113%41%126%-121%-40%-13%-36%-64%-109%-24%16%-63%-103%-68%60%66%42%95%67%98%127%86%-88%96%1%11%48%67%56%-73%25%57%4%74%-39%88%36%14%47%-27%2%-106%80%14%-79%-62%-40%33%80%-118%-6%-31%-61%83%-85%84%10%106%-96%-12%18%46%-48%100%-11%35%-6%-110%31%11%79%59%22%-87%-36%81%13%-100%-117%-111%127%-104%118%-116%-46%-110%19%88%-61%6%108%52%4%110%70%-121%-120%-27%116%8%74%14%-32%-110%11%82%-26%99%37%112%63%58%68%-60%31%22%120%-92%126%43%102%-103%-106%-118%-88%-81%0%-2%-114%-31%41%-8%59%43%60%66%106%87%99%0%104%-105%71%77%-46%-64%43%88%-127%9%105%90%1%-40%72%60%-77%-48%76%-89%34%77%96%101%95%84%92%96%84%-15%105%75%-7%-85%104%104%48%-106%-57%8%-84%-101%-128%106%-109%121%-73%-104%44%-71%51%4%77%-31%30%22%-127%-117%-47%1%19%-52%59%4%-54%-91%46%96%-53%49%67%-2%56%0%-92%98%125%76%-127%95%60%-17%-14%123%2%-84%57%87%49%-128%-103%-104%-51%-38%-24%-106%122%92%114%-76%53%-40%115%103%-88%-128%-25%-38%-64%-68%-21%-96%-103%-120%-83%33%-69%-15%63%8%57%-92%0%-34%-120%-63%-81%-68%-103%-77%67%-96%43%13%31%81%-7%56%-121%2%86%12%66%-34%60%-21%14%-127%82%-77%16%-115%-58%92%4%96%-35%100%-100%-102%-32%-113%67%-96%84%38%-94%-39%-34%55%101%-32%10%116%-120%-34%37%54%-15%-68%-7%120%36%18%71%120%-102%-128%59%-112%-41%94%111%103%96%86%-118%-79%-1%-31%72%-108%26%-127%-57%48%67%-124%-8%-17%16%40%-25%-79%60%118%-66%-1%16%120%1%-13%-105%75%-93%-100%-76%44%89%-24%110%-31%69%94%96%113%71%124%-49%41%118%56%4%37%-5%-63%29%-59%84%47%-112%-6%-82%-13%-52%-107%76%60%-46%-112%14%-18%56%64%18%-14%112%-63%-116%54%-20%122%88%-112%44%-8%100%125%37%97%62%-16%-30%-17%60%2%-34%5%-88%114%29%-21%-119%-48%94%-2%51%-20%-46%35%-32%-35%-22%15%-1%81%-40%95%68%-64%125%-28%86%27%66%-74%66%42%38%-127%125%71%-94%-41%45%54%-94%79%88%-84%-102%-76%-91%-10%61%92%-110%-61%-68%-91%-65%112%59%0%70%66%-71%55%74%124%-46%-80%5%19%70%-41%-85%-28%-127%-29%83%91%-84%-88%-117%-122%70%-52%-56%1%76%-119%17%15%-1%27%111%-92%-103%-126%-60%78%-73%108%-28%-3%22%1%-106%-125%15%18%31%-16%-2%112%-22%61%87%-40%-58%43%120%6%-20%-70%55%-111%38%32%41%-19%-122%-60%41%-4%-89%44%-6%82%58%2%-84%58%23%18%25%72%10%-80%37%35%44%-78%39%-68%121%-110%-48%-24%-53%77%-91%105%99%2%-2%19%-73%20%-62%70%59%2%120%-35%114%52%57%-80%-71%-8%-10%-43%52%71%-80%1%-23%-38%-25%127%0%104%-56%64%-121%-120%-109%79%115%-102%-86%-74%109%-72%13%13%57%-18%55%48%19%-33%89%120%-74%60%-47%92%-105%-82%68%98%100%30%-53%-120%9%57%-35%14%-84%5%-19%-127%25%-71%-14%-98%-123%121%42%-90%72%109%-60%-124%20%-10%0%91%1%41%56%37%3%-21%-88%-114%-57%0%127%-10%50%-9%-80%115%-19%-104%69%109%51%97%51%83%-47%-101%90%-57%60%-3%60%-74%120%94%71%67%99%-24%62%8%110%-41%-118%-30%80%-15%109%-85%1%64%90%-125%11%52%-31%6%61%75%-19%-128%-13%-15%4%66%88%109%113%-57%77%117%-82%-97%82%30%-27%-48%123%-4%-97%67%64%-41%-75%-35%-110%59%-2%68%117%-82%127%84%78%43%-70%24%123%48%59%90%-22%98%-100%-61%70%93%-32%103%-86%121%101%-97%-122%-38%98%69%-28%-104%-26%81%-67%54%-41%90%-75%-126%-86%19%-75%0%3%64%-76%-39%124%124%15%-5%18%-30%116%-58%-70%83%1%-21%38%82%59%41%115%-123%99%-19%108%92%117%35%24%-35%75%70%115%-81%18%-49%117%-123%-25%-71%111%4%120%-91%-98%-6%32%-35%-103%71%57%-116%126%-23%45%-20%120%-16%53%-12%125%-14%101%48%60%24%-59%-114%-57%-52%-114%112%123%36%46%-31%-34%127%-1%18%14%-113%-75%-44%88%-30%-58%61%111%-25%22%-50%124%76%29%-107%6%102%104%104%-79%-69%-6%-5%49%88%4%127%-51%-59%-93%-70%93%-30%50%-109%39%51%105%24%0%-62%127%-27%-32%81%53%-67%-112%100%-6%-20%105%57%-70%99%7%-29%-126%-68%6%119%97%-62%112%-19%-66%-124%22%80%-102%-122%-18%-40%-29%95%35%-32%-57%88%20%-59%-21%-88%107%-98%-82%-47%-57%-65%35%13%2%-64%1%60%119%-114%-52%-42%-47%-44%62%63%-92%-49%-13%18%43%-11%120%39%35%65%53%84%119%-111%-23%-100%-112%-46%-3%-24%-7%58%1%-32%114%103%80%12%-40%-84%-57%-45%61%3%-50%69%71%118%-90%104%22%-28%119%71%-127%-98%-72%80%-33%109%117%79%-71%-113%96%62%14%-38%-87%-111%-113%-85%-88%19%-82%-119%6%-101%33%-3%-117%3%25%-72%-10%90%-79%-113%-39%-22%-105%-95%7%13%49%-38%-18%25%92%-115%88%-117%-25%52%109%-103%-7%120%43%54%-50%-30%12%27%117%6%64%-23%29%-4%-7%-99%24%-7%-8%80%75%80%-32%-120%73%70%-73%77%60%-44%9%-60%32%-43%11%59%-125%-103%37%100%-105%33%-49%-8%62%-51%93%-22%4%-30%21%69%62%46%-60%-30%-39%-99%-62%54%97%14%72%-82%117%71%-30%108%-86%91%92%54%26%-25%-34%-30%-23%36%115%-36%-119%58%-117%45%79%-9%-73%56%-75%1%121%-29%-54%-75%44%-104%4%-110%99%-104%-113%-57%-62%-65%113%37%6%38%-6%-23%-36%70%49%9%36%-69%-96%86%-23%12%123%-123%108%8%12%-86%-102%-34%31%32%-39%36%7%-128%104%-72%-69%-106%41%-13%-62%-114%-14%-15%56%-127%-46%-30%-26%0%48%6%-118%-37%-13%-51%-25%75%-116%-102%-34%47%-96%55%94%-6%-14%-79%115%55%-116%-42%-114%-9%-15%-60%85%-36%-115%15%-34%-5%-91%37%-109%26%-119%115%-88%-22%-35%87%-88%-119%-17%62%-126%43%-69%82%90%127%-105%-69%-25%94%-123%-27%-53%-55%-34%72%26%-67%-61%68%99%-121%-1%82%50%33%-27%-84%-46%-81%-28%-52%-33%-90%-6%72%-1%3%78%-120%-67%33%108%33%82%26%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus"/>
+ <icon xmi:type="uml:Image" xmi:id="_12mboEMLEeKGIL695HkFYQ" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%112%0%0%0%103%8%0%0%0%0%-3%88%-103%-76%0%0%7%56%73%68%65%84%104%-127%-75%-102%123%80%21%85%28%-57%-9%-18%-67%92%121%-91%40%-124%38%70%64%-26%11%-33%-118%-29%115%124%84%-90%83%106%-91%-93%2%-115%83%-90%102%-90%-7%-56%-55%-41%-104%58%-26%-116%-40%56%-102%-64%-116%-88%53%101%62%-54%102%-14%81%26%86%102%-58%4%78%102%-120%14%89%62%72%5%-15%9%72%112%-111%-57%-62%-23%42%23%-10%123%118%-49%-18%-98%-35%-69%-2%-2%-29%-100%-33%-2%62%-105%-35%-13%123%-100%-33%57%2%-31%23%-23%-20%-87%-101%-116%-31%-102%-69%38%108%16%-127%31%-105%-38%78%16%-100%83%47%-46%-93%-43%-97%116%17%-59%94%-23%53%-10%3%-85%-34%116%9%15%36%-106%34%86%39%63%28%20%-109%-1%-77%29%-72%-92%-111%39%8%-29%-85%96%52%-75%105%116%90%-75%-51%-64%-116%22%62%-53%66%-28%101%121%-76%122%96%-45%-88%-72%-76%-34%86%-32%-31%80%-95%89%-66%-105%-121%47%61%-39%60%-22%78%-77%19%120%-90%-83%-52%19%-14%-28%-15%-62%56%121%56%116%-97%125%-64%-62%-98%-64%-21%120%93%-98%-88%26%12%19%109%-114%-39%5%44%123%22%-52%10%91%112%-22%-101%64%-104%-119%62%103%15%80%74%114%-128%-43%23%-53%113%-50%-25%22%62%-23%117%-51%22%-32%42%39%-40%-20%83%76%79%-106%-67%-128%-60%81%-58%65%-57%24%-72%-93%5%88%-20%-112%-81%-100%-66%-103%-128%-60%-55%30%-65%-127%-103%-32%16%66%-21%-29%106%-123%11%79%-125%-126%56%-73%-42%79%96%126%52%-104%11%-38%-55%82%-55%121%28%84%2%-42%-7%7%-68%-34%11%95%-40%-70%58%-90%-46%-63%-57%64%39%-28%115%127%-128%-98%-25%-112%55%-29%-66%-122%-38%118%-4%-52%97%-121%-83%3%-91%-23%-24%16%99%52%51%66%-3%-121%34%-24%69%-99%-78%12%92%-29%2%59%61%-117%-75%21%107%-26%-32%-101%-24%-10%-113%69%-32%23%24%70%-94%114%-11%126%90%-59%68%36%14%101%21%6%-58%-64%19%-83%-64%70%-85%31%-12%120%-124%-108%12%69%-30%-72%50%11%64%72%61%-34%-46%-30%-45%6%125%32%-71%26%15%-22%-30%76%-83%-11%-91%13%-68%-35%7%127%-14%74%-74%67%-96%-28%70%-127%126%-64%7%-110%73%-96%-121%-118%-111%111%104%-2%96%-112%-93%97%-16%68%96%-70%73%-32%76%116%-120%81%-9%56%120%-124%-20%13%-126%103%66%-65%50%5%92%-113%14%-47%-11%10%23%-113%-44%111%-62%-68%18%-98%101%2%-72%-41%13%79%70%-98%-26%-29%121%-35%113%41%126%-121%-40%-13%-36%-64%-109%-24%16%-63%-103%-68%60%66%42%95%67%98%127%86%-88%96%1%11%48%67%56%-73%25%57%4%74%-39%88%36%14%47%-27%2%-106%80%14%-79%-62%-40%33%80%-118%-6%-31%-61%83%-85%84%10%106%-96%-12%18%46%-48%100%-11%35%-6%-110%31%11%79%59%22%-87%-36%81%13%-100%-117%-111%127%-104%118%-116%-46%-110%19%88%-61%6%108%52%4%110%70%-121%-120%-27%116%8%74%14%-32%-110%11%82%-26%99%37%112%63%58%68%-60%31%22%120%-92%126%43%102%-103%-106%-118%-88%-81%0%-2%-114%-31%41%-8%59%43%60%66%106%87%99%0%104%-105%71%77%-46%-64%43%88%-127%9%105%90%1%-40%72%60%-77%-48%76%-89%34%77%96%101%95%84%92%96%84%-15%105%75%-7%-85%104%104%48%-106%-57%8%-84%-101%-128%106%-109%121%-73%-104%44%-71%51%4%77%-31%30%22%-127%-117%-47%1%19%-52%59%4%-54%-91%46%96%-53%49%67%-2%56%0%-92%98%125%76%-127%95%60%-17%-14%123%2%-84%57%87%49%-128%-103%-104%-51%-38%-24%-106%122%92%114%-76%53%-40%115%103%-88%-128%-25%-38%-64%-68%-21%-96%-103%-120%-83%33%-69%-15%63%8%57%-92%0%-34%-120%-63%-81%-68%-103%-77%67%-96%43%13%31%81%-7%56%-121%2%86%12%66%-34%60%-21%14%-127%82%-77%16%-115%-58%92%4%96%-35%100%-100%-102%-32%-113%67%-96%84%38%-94%-39%-34%55%101%-32%10%116%-120%-34%37%54%-15%-68%-7%120%36%18%71%120%-102%-128%59%-112%-41%94%111%103%96%86%-118%-79%-1%-31%72%-108%26%-127%-57%48%67%-124%-8%-17%16%40%-25%-79%60%118%-66%-1%16%120%1%-13%-105%75%-93%-100%-76%44%89%-24%110%-31%69%94%96%113%71%124%-49%41%118%56%4%37%-5%-63%29%-59%84%47%-112%-6%-82%-13%-52%-107%76%60%-46%-112%14%-18%56%64%18%-14%112%-63%-116%54%-20%122%88%-112%44%-8%100%125%37%97%62%-16%-30%-17%60%2%-34%5%-88%114%29%-21%-119%-48%94%-2%51%-20%-46%35%-32%-35%-22%15%-1%81%-40%95%68%-64%125%-28%86%27%66%-74%66%42%38%-127%125%71%-94%-41%45%54%-94%79%88%-84%-102%-76%-91%-10%61%92%-110%-61%-68%-91%-65%112%59%0%70%66%-71%55%74%124%-46%-80%5%19%70%-41%-85%-28%-127%-29%83%91%-84%-88%-117%-122%70%-52%-56%1%76%-119%17%15%-1%27%111%-92%-103%-126%-60%78%-73%108%-28%-3%22%1%-106%-125%15%18%31%-16%-2%112%-22%61%87%-40%-58%43%120%6%-20%-70%55%-111%38%32%41%-19%-122%-60%41%-4%-89%44%-6%82%58%2%-84%58%23%18%25%72%10%-80%37%35%44%-78%39%-68%121%-110%-48%-24%-53%77%-91%105%99%2%-2%19%-73%20%-62%70%59%2%120%-35%114%52%57%-80%-71%-8%-10%-43%52%71%-80%1%-23%-38%-25%127%0%104%-56%64%-121%-120%-109%79%115%-102%-86%-74%109%-72%13%13%57%-18%55%48%19%-33%89%120%-74%60%-47%92%-105%-82%68%98%100%30%-53%-120%9%57%-35%14%-84%5%-19%-127%25%-71%-14%-98%-123%121%42%-90%72%109%-60%-124%20%-10%0%91%1%41%56%37%3%-21%-88%-114%-57%0%127%-10%50%-9%-80%115%-19%-104%69%109%51%97%51%83%-47%-101%90%-57%60%-3%60%-74%120%94%71%67%99%-24%62%8%110%-41%-118%-30%80%-15%109%-85%1%64%90%-125%11%52%-31%6%61%75%-19%-128%-13%-15%4%66%88%109%113%-57%77%117%-82%-97%82%30%-27%-48%123%-4%-97%67%64%-41%-75%-35%-110%59%-2%68%117%-82%127%84%78%43%-70%24%123%48%59%90%-22%98%-100%-61%70%93%-32%103%-86%121%101%-97%-122%-38%98%69%-28%-104%-26%81%-67%54%-41%90%-75%-126%-86%19%-75%0%3%64%-76%-39%124%124%15%-5%18%-30%116%-58%-70%83%1%-21%38%82%59%41%115%-123%99%-19%108%92%117%35%24%-35%75%70%115%-81%18%-49%117%-123%-25%-71%111%4%120%-91%-98%-6%32%-35%-103%71%57%-116%126%-23%45%-20%120%-16%53%-12%125%-14%101%48%60%24%-59%-114%-57%-52%-114%112%123%36%46%-31%-34%127%-1%18%14%-113%-75%-44%88%-30%-58%61%111%-25%22%-50%124%76%29%-107%6%102%104%104%-79%-69%-6%-5%49%88%4%127%-51%-59%-93%-70%93%-30%50%-109%39%51%105%24%0%-62%127%-27%-32%81%53%-67%-112%100%-6%-20%105%57%-70%99%7%-29%-126%-68%6%119%97%-62%112%-19%-66%-124%22%80%-102%-122%-18%-40%-29%95%35%-32%-57%88%20%-59%-21%-88%107%-98%-82%-47%-57%-65%35%13%2%-64%1%60%119%-114%-52%-42%-47%-44%62%63%-92%-49%-13%18%43%-11%120%39%35%65%53%84%119%-111%-23%-100%-112%-46%-3%-24%-7%58%1%-32%114%103%80%12%-40%-84%-57%-45%61%3%-50%69%71%118%-90%104%22%-28%119%71%-127%-98%-72%80%-33%109%117%79%-71%-113%96%62%14%-38%-87%-111%-113%-85%-88%19%-82%-119%6%-101%33%-3%-117%3%25%-72%-10%90%-79%-113%-39%-22%-105%-95%7%13%49%-38%-18%25%92%-115%88%-117%-25%52%109%-103%-7%120%43%54%-50%-30%12%27%117%6%64%-23%29%-4%-7%-99%24%-7%-8%80%75%80%-32%-120%73%70%-73%77%60%-44%9%-60%32%-43%11%59%-125%-103%37%100%-105%33%-49%-8%62%-51%93%-22%4%-30%21%69%62%46%-60%-30%-39%-99%-62%54%97%14%72%-82%117%71%-30%108%-86%91%92%54%26%-25%-34%-30%-23%36%115%-36%-119%58%-117%45%79%-9%-73%56%-75%1%121%-29%-54%-75%44%-104%4%-110%99%-104%-113%-57%-62%-65%113%37%6%38%-6%-23%-36%70%49%9%36%-69%-96%86%-23%12%123%-123%108%8%12%-86%-102%-34%31%32%-39%36%7%-128%104%-72%-69%-106%41%-13%-62%-114%-14%-15%56%-127%-46%-30%-26%0%48%6%-118%-37%-13%-51%-25%75%-116%-102%-34%47%-96%55%94%-6%-14%-79%115%55%-116%-42%-114%-9%-15%-60%85%-36%-115%15%-34%-5%-91%37%-109%26%-119%115%-88%-22%-35%87%-88%-119%-17%62%-126%43%-69%82%90%127%-105%-69%-25%94%-123%-27%-53%-55%-34%72%26%-67%-61%68%99%-121%-1%82%50%33%-27%-84%-46%-81%-28%-52%-33%-90%-6%72%-1%3%78%-120%-67%33%108%33%82%26%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_HmnpEJsrEd61Eo3nmu3JhQ" name="StdPorts">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Yq-O8Nt2Ed6nqsBVkgJEEA" annotatedElement="_-WNegNtxEd6nqsBVkgJEEA">
+ <body>Is called during component activation &amp; deactivation. The two functions may not block i.e. return control to the caller after &quot;a very short&quot; period</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_OcN78Nt2Ed6nqsBVkgJEEA" annotatedElement="_N6fa4JsrEd61Eo3nmu3JhQ">
+ <body>Is called during startup. Expected to block. Only one component instance per node may define it.</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_N6fa4JsrEd61Eo3nmu3JhQ" name="Cstart" isAbstract="true">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_OfiosJsrEd61Eo3nmu3JhQ" name="start" aggregation="composite">
+ <type xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_PTWzwCS-Ed-A_I32T0fkaA"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3cU3wCS-Ed-A_I32T0fkaA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3cXUACS-Ed-A_I32T0fkaA" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_xtlE8ARAEd--t-uhRn9OBA" name="ContainerServices">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_hGEOAMT8Ed-zx4a_r4xAYw" annotatedElement="_SiY_AP-EEd6628OhKk_dpg">
+ <body>A thread service supporting the LifeCycle port. Once started, it calls the activate operation (via the required port rLC) of a connected component in a new thread of a specific priority (a configuration attribute). This C++ implementation is based on the POSIX pthread library. It will further assume that the execution is done with root privileges, since these are required to set the thread priority. The thread properties assume round-robin (SCHED_RR) scheduling.
+</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_EuvHYCXREeGX6PuSE-DJlQ" annotatedElement="_5J9coCXQEeGX6PuSE-DJlQ">
+ <body> Interceptor variant of thread (inherits all, only difference to Thread superclass: tagged as connector)</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_SiY_AP-EEd6628OhKk_dpg" clientDependency="_lrFSQDz9Ed-v9PxuTj6Elw _wCkVcNYGEd-CgJIavLpOxQ" name="Thread">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_lCtoICnOEeGxrprK9wB9iA" annotatedElement="_rVfYoMGJEd-Mveea1W_olA">
+ <body>Priority of the thread. The interpretation of the value is OS specific. In case of POSIX; priorities are only taken into accound for threads with a FIFO and round-robin scheduliung policy.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_6bsEkARAEd--t-uhRn9OBA" general="_-WNegNtxEd6nqsBVkgJEEA"/>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_ZjdOAP-EEd6628OhKk_dpg" name="rLC" aggregation="composite">
+ <type xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_rVfYoMGJEd-Mveea1W_olA" name="priority" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_e6XsEFjmEeKaM_PspnG53g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_e6ckkFjmEeKaM_PspnG53g" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_e6njsFjmEeKaM_PspnG53g">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_lrFSQDz9Ed-v9PxuTj6Elw" name="derived realization of ILifeCycle" client="_SiY_AP-EEd6628OhKk_dpg">
+ <supplier xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ <contract xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ </interfaceRealization>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_MWW4MAQyEd--t-uhRn9OBA" name="staticAct" specification="_yv198P-EEd6628OhKk_dpg">
+ <language>C/C++</language>
+ <body>((Thread*) arg)->rLC->activate();
+return NULL;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_oP6UcED4Ed-_DOja_sRgWA" name="activate" specification="_JmxyMD16Ed-Bk-AHd6yyoA">
+ <language>C/C++</language>
+ <body>// create thread
+pthread_t pt;
+pthread_create (&amp;pt, NULL, staticAct, (void *) this);
+
+// set priority of thread
+struct sched_param schedParam;
+schedParam.sched_priority = priority;
+pthread_setschedparam (pt, SCHED_RR, &amp;schedParam);
+// TODO: check return code (in particular, SCHED_RR only works for root)
+</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_yv198P-EEd6628OhKk_dpg" name="staticAct" isStatic="true" method="_MWW4MAQyEd--t-uhRn9OBA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_1TXqoP-EEd6628OhKk_dpg" name="arg">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3MCccP-EEd6628OhKk_dpg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3MDDgP-EEd6628OhKk_dpg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_3MDqkP-EEd6628OhKk_dpg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_BywjgP-FEd6628OhKk_dpg" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_JmxyMD16Ed-Bk-AHd6yyoA" name="activate" method="_oP6UcED4Ed-_DOja_sRgWA"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_JqB6gD16Ed-Bk-AHd6yyoA" name="deactivate"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_wCkVcNYGEd-CgJIavLpOxQ" name="ImplRequirement" client="_SiY_AP-EEd6628OhKk_dpg" supplier="_ea234NYGEd-CgJIavLpOxQ"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_WkkjoPNUEeCovO8AYZymZQ" name="CallEvent_">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_YKtbAPNUEeCovO8AYZymZQ" name="operationID" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_9XvcQB6REd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_aDHHEPNUEeCovO8AYZymZQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_aDIVMPNUEeCovO8AYZymZQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_aDKxcPNUEeCovO8AYZymZQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_gQGNwPNUEeCovO8AYZymZQ" name="kind" visibility="public" type="_jQjHAPNUEeCovO8AYZymZQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_imLUUPNUEeCovO8AYZymZQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_imL7YPNUEeCovO8AYZymZQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_imuG4PNUEeCovO8AYZymZQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_-_HCMBI0EeGU49ezpRnvLg" name="portID">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_9XvcQB6REd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-_LToBI0EeGU49ezpRnvLg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-_L6sBI0EeGU49ezpRnvLg" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_qzHgkPNUEeCovO8AYZymZQ" name="params" visibility="public" type="_OU5asFaNEeKxltxu9uR4dg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sMOBgPNUEeCovO8AYZymZQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sMPPoPNUEeCovO8AYZymZQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_sMRE0PNUEeCovO8AYZymZQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_JRmo0PNAEeCovO8AYZymZQ" clientDependency="_mI0xEPQXEeCovO8AYZymZQ" name="EventPool">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_MzO8gPNAEeCovO8AYZymZQ" name="control" visibility="public" type="_omxU4PNAEeCovO8AYZymZQ" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_N-OI8PNAEeCovO8AYZymZQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_N-PXEPNAEeCovO8AYZymZQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_N-RzUPNAEeCovO8AYZymZQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_k-OpoPN8EeCovO8AYZymZQ" name="events" visibility="public" type="_WkkjoPNUEeCovO8AYZymZQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mr7hkPN8EeCovO8AYZymZQ" value="20"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mr-k4PN8EeCovO8AYZymZQ" value="20"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_msGgsPN8EeCovO8AYZymZQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="__a1A0PQXEeCovO8AYZymZQ" name="m_size" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A1N7MPQYEeCovO8AYZymZQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A1OiQPQYEeCovO8AYZymZQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_A1QXcPQYEeCovO8AYZymZQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_KnS5QPQYEeCovO8AYZymZQ" name="m_cond" visibility="public">
+ <type xmi:type="uml:Class" href="pathmap://QML_CORE/osal.uml#_QWlVgPRTEeCUGrV0Hl4JwQ"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KyZ9EPQYEeCovO8AYZymZQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KyakIPQYEeCovO8AYZymZQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_KydncPQYEeCovO8AYZymZQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Ig_MUCSlEeG6GJ4vU06VYQ" name="ID_TIMEOUT" isStatic="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IjAlkCSlEeG6GJ4vU06VYQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IjCawCSlEeG6GJ4vU06VYQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_SjUM4CSlEeG6GJ4vU06VYQ" name="" value="-1"/>
+ </ownedAttribute>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_mI0xEPQXEeCovO8AYZymZQ" name="derived realization of IPoolControl" client="_JRmo0PNAEeCovO8AYZymZQ" supplier="_omxU4PNAEeCovO8AYZymZQ" contract="_omxU4PNAEeCovO8AYZymZQ"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_2HjeoPQXEeCovO8AYZymZQ" name="writeEvent" specification="_f1HmEPQREeCovO8AYZymZQ0">
+ <language>C/C++</language>
+ <body>events[0] = event;
+m_size = 1;
+m_cond.signal();
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_5Sw2YPQXEeCovO8AYZymZQ" name="size" specification="_FBMo4PQXEeCovO8AYZymZQ0">
+ <language>C/C++</language>
+ <body>return m_size;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_9xRCAPQXEeCovO8AYZymZQ" name="readEvent" specification="_tK0poPQWEeCovO8AYZymZQ0">
+ <language>C/C++</language>
+ <body>OS_AL::Time::TimeVal wakeup = OS_AL::Time::TimeVal::current();
+wakeup += timeout;
+int retCode = m_cond.waitUpto (wakeup);
+if (retCode == ETIMEDOUT) {
+ CallEvent_ event;
+ event.operationID = ID_TIMEOUT;
+ return event;
+}
+m_size = 0;
+return events[0];</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_JoG14PRUEeCKVJwdD4MMsg" name="EventPool" specification="_lrF08PRTEeCUGrV0Hl4JwQ">
+ <language>C/C++</language>
+ <body>m_cond.lock();</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_tK0poPQWEeCovO8AYZymZQ0" name="readEvent" method="_9xRCAPQXEeCovO8AYZymZQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_HUTnoCVyEeGaL60JjVj19Q" name="timeout">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HUWq8CVyEeGaL60JjVj19Q" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HUXSACVyEeGaL60JjVj19Q" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_HUZHMCVyEeGaL60JjVj19Q" type="_WkkjoPNUEeCovO8AYZymZQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HUbjcCVyEeGaL60JjVj19Q" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HUcxkCVyEeGaL60JjVj19Q" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_FBMo4PQXEeCovO8AYZymZQ0" name="size" method="_5Sw2YPQXEeCovO8AYZymZQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_mKtAYPQXEeCovO8AYZymZQ" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mKvcoPQXEeCovO8AYZymZQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mKwqwPQXEeCovO8AYZymZQ" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_f1HmEPQREeCovO8AYZymZQ0" name="writeEvent" method="_2HjeoPQXEeCovO8AYZymZQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_HRdvACVyEeGaL60JjVj19Q" name="event" type="_WkkjoPNUEeCovO8AYZymZQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HUNhACVyEeGaL60JjVj19Q" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HUOvICVyEeGaL60JjVj19Q" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_lrF08PRTEeCUGrV0Hl4JwQ" name="EventPool" method="_JoG14PRUEeCKVJwdD4MMsg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_elkpwPQREeCovO8AYZymZQ" name="IWriteEvent">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_f1HmEPQREeCovO8AYZymZQ" name="writeEvent" visibility="public" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_wAdzUPQREeCovO8AYZymZQ">
+ <body>&lt;&lt;TextualRepresentation>>public abstract writeEvent (in event:BasicCalls::ContainerServices::Event) ;</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="__4qMgCUQEeGXBt65HZzY7g" name="event" type="_WkkjoPNUEeCovO8AYZymZQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__4raoCUQEeGXBt65HZzY7g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__4sowCUQEeGXBt65HZzY7g" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_jQjHAPNUEeCovO8AYZymZQ" name="EventKind">
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_jv4uYPNUEeCovO8AYZymZQ" name="CallEvent"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_kuDm0PNUEeCovO8AYZymZQ" name="SignalEvent"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_ljD8MPNUEeCovO8AYZymZQ" name="TimeEvent"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_omxU4PNAEeCovO8AYZymZQ" name="IPoolControl">
+ <generalization xmi:type="uml:Generalization" xmi:id="_feaHgPQXEeCovO8AYZymZQ" general="_elkpwPQREeCovO8AYZymZQ"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_GwxT0CUREeGXBt65HZzY7g" general="_DY2VwCUREeGXBt65HZzY7g"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_FBMo4PQXEeCovO8AYZymZQ" name="size" visibility="public" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_NaRMoPQXEeCovO8AYZymZQ">
+ <body>&lt;&lt;TextualRepresentation>>public abstract size () : BasicCalls::Long ;</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_RlkvcPQXEeCovO8AYZymZQ" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Rll9kPQXEeCovO8AYZymZQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_RlmkoPQXEeCovO8AYZymZQ" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_DY2VwCUREeGXBt65HZzY7g" name="IReadEvent">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_tK0poPQWEeCovO8AYZymZQ" name="readEvent" visibility="public" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPdjwPQWEeCovO8AYZymZQ">
+ <body>&lt;&lt;TextualRepresentation>>public abstract readEvent(in timeout : BasicCalls::Long) : BasicCalls::ContainerServices::Event ;</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_PnwykPRREeCUGrV0Hl4JwQ" name="timeout">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PofyYPRREeCUGrV0Hl4JwQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Pow4IPRREeCUGrV0Hl4JwQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Po7QMPRREeCUGrV0Hl4JwQ" type="_WkkjoPNUEeCovO8AYZymZQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PpWG8PRREeCUGrV0Hl4JwQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ppl-kPRREeCUGrV0Hl4JwQ" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_5J9coCXQEeGX6PuSE-DJlQ" name="ThreadInterceptor">
+ <generalization xmi:type="uml:Generalization" xmi:id="_9thucCXQEeGX6PuSE-DJlQ" general="_SiY_AP-EEd6628OhKk_dpg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_9V8OQCjYEeGFbebITJYb9g" clientDependency="_F9_-UCjbEeGFbebITJYb9g _SXkHQCo0EeGxrprK9wB9iA" name="PeriodicTimer">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_zLeSkCnOEeGxrprK9wB9iA" annotatedElement="_tmNeoCjbEeGFbebITJYb9g">
+ <body>The period length of the perdioci timer in ticks. Currently, a tick corresponds to 1 ms (simulation time in the underlying OS abstraction layer). It is planned to support VSL expressions, i.e. a value/unit pair.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_Y6lPACjZEeGFbebITJYb9g" general="_-WNegNtxEd6nqsBVkgJEEA"/>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_ATRiECjZEeGFbebITJYb9g" name="tick" visibility="public" aggregation="composite">
+ <type xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_Xb-y0AweEd6it_RkGhz_AA"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_E3y2ICjZEeGFbebITJYb9g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_E30EQCjZEeGFbebITJYb9g" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_E33HkCjZEeGFbebITJYb9g">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_tmNeoCjbEeGFbebITJYb9g" name="periodLength" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tmmgMCjbEeGFbebITJYb9g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tmnHQCjbEeGFbebITJYb9g" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_w262ACnOEeGxrprK9wB9iA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_F9_-UCjbEeGFbebITJYb9g" name="derived realization of ILifeCycle" client="_9V8OQCjYEeGFbebITJYb9g">
+ <supplier xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ <contract xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ </interfaceRealization>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_RMkvkCjbEeGFbebITJYb9g" name="activate" specification="_F-cDMCjbEeGFbebITJYb9g">
+ <language>C/C++</language>
+ <body>OS_AL::Time::Timer timer;
+OS_AL::Time::TimeVal time = OS_AL::Time::TimeVal::current();
+OS_AL::Time::TimeVal period(periodLength);
+for (;;) {
+ tick->tick();
+ time += period;
+ timer.wakeUp(time);
+}</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_F-cDMCjbEeGFbebITJYb9g" name="activate" method="_RMkvkCjbEeGFbebITJYb9g"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_F-iJ0CjbEeGFbebITJYb9g" name="deactivate"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_1sCBICjZEeGFbebITJYb9g" name="PeriodicTimerRule">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_6yVMkCjZEeGFbebITJYb9g" name="timer" visibility="public" type="_9V8OQCjYEeGFbebITJYb9g">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_54aFgCjaEeGFbebITJYb9g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_54bToCjaEeGFbebITJYb9g" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_54eW8CjaEeGFbebITJYb9g">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_-X6zMCjZEeGFbebITJYb9g" name="PeriodicTimerWithThread">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_ARs_UCjaEeGFbebITJYb9g" name="timer" visibility="public" type="_9V8OQCjYEeGFbebITJYb9g" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_k_FtQCjaEeGFbebITJYb9g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_k_G7YCjaEeGFbebITJYb9g" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_k_J-sCjaEeGFbebITJYb9g">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_RMqEkCjaEeGFbebITJYb9g" name="thread" visibility="public" type="_SiY_AP-EEd6628OhKk_dpg" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j8bWYCjaEeGFbebITJYb9g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j8ckgCjaEeGFbebITJYb9g" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_j8eZsCjaEeGFbebITJYb9g">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_3NSGwCkAEeGDDbdzqSb4UA" name="tick" visibility="public" aggregation="composite">
+ <type xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_Xb-y0AweEd6it_RkGhz_AA"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_30IrYCkAEeGDDbdzqSb4UA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_30LusCkAEeGDDbdzqSb4UA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_30QnMCkAEeGDDbdzqSb4UA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedConnector xmi:type="uml:Connector" xmi:id="_iDCL0CjaEeGFbebITJYb9g" name="Connector1">
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_iDCy4CjaEeGFbebITJYb9g" partWithPort="_RMqEkCjaEeGFbebITJYb9g" role="_ZjdOAP-EEd6628OhKk_dpg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iDCy4ijaEeGFbebITJYb9g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iDCy4SjaEeGFbebITJYb9g" value="1"/>
+ </end>
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_iDCy4yjaEeGFbebITJYb9g" partWithPort="_ARs_UCjaEeGFbebITJYb9g" role="__SLXgNtxEd6nqsBVkgJEEA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iDCy5SjaEeGFbebITJYb9g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iDCy5CjaEeGFbebITJYb9g" value="1"/>
+ </end>
+ </ownedConnector>
+ <ownedConnector xmi:type="uml:Connector" xmi:id="_84IJsCkAEeGDDbdzqSb4UA" name="Connector2">
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_84JX0CkAEeGDDbdzqSb4UA" partWithPort="_ARs_UCjaEeGFbebITJYb9g" role="_ATRiECjZEeGFbebITJYb9g">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_84JX0ikAEeGDDbdzqSb4UA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_84JX0SkAEeGDDbdzqSb4UA" value="1"/>
+ </end>
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_84L0ECkAEeGDDbdzqSb4UA" role="_3NSGwCkAEeGDDbdzqSb4UA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_84L0EikAEeGDDbdzqSb4UA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_84L0ESkAEeGDDbdzqSb4UA" value="1"/>
+ </end>
+ </ownedConnector>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_SXkHQCo0EeGxrprK9wB9iA" name="Dependency1" client="_9V8OQCjYEeGFbebITJYb9g">
+ <supplier xmi:type="uml:Class" href="pathmap://QML_CORE/osal.uml#_ETakYDj8Edy0Rd6V_tf1-Q"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_OU5asFaNEeKxltxu9uR4dg" name="ParamValues">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_RW82cFaNEeKxltxu9uR4dg" name="values" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_IYEXcB-VEd6nGq8wpI2tjg"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TAmU0FaNEeKxltxu9uR4dg" value="200"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TAqmQFaNEeKxltxu9uR4dg" value="200"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_TCDGUFaNEeKxltxu9uR4dg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_Y8dPQFaNEeKxltxu9uR4dg" name="QoS">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_fYeQcFaNEeKxltxu9uR4dg" name="deadline" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_-5FTMB6REd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gFUvYFaNEeKxltxu9uR4dg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gFYZwFaNEeKxltxu9uR4dg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_gFfHcFaNEeKxltxu9uR4dg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_oUVYMFaNEeKxltxu9uR4dg" name="period" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_-5FTMB6REd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rUQF8FaNEeKxltxu9uR4dg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rUSiMFaNEeKxltxu9uR4dg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_rW6_cFaNEeKxltxu9uR4dg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xXGZMFaNEeKxltxu9uR4dg" name="readyTime" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_-5FTMB6REd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_yjbCYFaNEeKxltxu9uR4dg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_yjcQgFaNEeKxltxu9uR4dg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_yjeswFaNEeKxltxu9uR4dg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_-WNegNtxEd6nqsBVkgJEEA" name="LifeCycle" isAbstract="true">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="__SLXgNtxEd6nqsBVkgJEEA" name="lc" aggregation="composite">
+ <type xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_57__MCS-Ed-A_I32T0fkaA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_58tJ0CS-Ed-A_I32T0fkaA" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_y4qB4ARJEd--t-uhRn9OBA" name="containerRules">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_q-kFUMTJEd-cLazKlAeYsQ" annotatedElement="_14WtMARJEd--t-uhRn9OBA">
+ <body>This rule adds an interceptor for the lifecycle (lc) port. It will use the Thread implementation that executes the activate method in a new thread of a given priority (property of the interceptor implementation)</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_H0IrsDbgEeGdqp2YT1LwWw" annotatedElement="_1sCBICjZEeGFbebITJYb9g">
+ <body>Adds a periodic timer to the container</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_14WtMARJEd--t-uhRn9OBA" name="runStartThread">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_mvN04PTWEeCn1-FCrfecFg" name="start" visibility="public" type="_5J9coCXQEeGX6PuSE-DJlQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nPVfYPTWEeCn1-FCrfecFg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nPXUkPTWEeCn1-FCrfecFg" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="__4GvgPQTEeCovO8AYZymZQ" name="AddEventPool"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_wSPIcF0NEd-12d_h0i1xhQ" name="deployment">
+ <packagedElement xmi:type="uml:Package" xmi:id="_dKFEcCp9EeG1Y7BvjQ0T-w" name="operatingSystems">
+ <packagedElement xmi:type="uml:Class" xmi:id="_17yx8F0NEd-12d_h0i1xhQ" name="vxWorks"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_zVs5cF0NEd-12d_h0i1xhQ" name="Linux"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_4RuHgF0NEd-12d_h0i1xhQ" name="ose/ck"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="__1uEcF0NEd-12d_h0i1xhQ" name="OSEK"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_onKy0Cp9EeG1Y7BvjQ0T-w" name="Cygwin"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_f2AfMCp9EeG1Y7BvjQ0T-w" name="architectures">
+ <packagedElement xmi:type="uml:Class" xmi:id="_PFcW8F0OEd-12d_h0i1xhQ" name="GenericPowerPC"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_CxQBcF0OEd-12d_h0i1xhQ" name="StandardPC"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_KjufQF0OEd-12d_h0i1xhQ" name="GenericARM7"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_uFRRUH7dEd-FNNgSS03RxQ" name="configOptions">
+ <packagedElement xmi:type="uml:Class" xmi:id="_29YhgH7dEd-FNNgSS03RxQ" name="Distribution">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_INNDgH7eEd-FNNgSS03RxQ">
+ <body>Use for distributed applications</body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_3myD0H7dEd-FNNgSS03RxQ" name="Debug">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_9u2OQH7dEd-FNNgSS03RxQ">
+ <body>Use for debugging in general</body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_7JeHcH7dEd-FNNgSS03RxQ" name="Trace">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_MzHesH7eEd-FNNgSS03RxQ">
+ <body>Use for tracing.</body>
+ </ownedComment>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_I19MANYGEd-CgJIavLpOxQ" name="pthread">
+ <packagedElement xmi:type="uml:Class" xmi:id="_ea234NYGEd-CgJIavLpOxQ" name="pthread"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_m7SIwOUYEd-P08Bciq_LqQ" name="perClass">
+ <ownedTemplateSignature xmi:type="uml:TemplateSignature" xmi:id="_rNm5kOUYEd-P08Bciq_LqQ" parameter="_wfwIoOUYEd-P08Bciq_LqQ">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_wfwIoOUYEd-P08Bciq_LqQ" parameteredElement="_6uRBMOuqEeCTfOY57pgE3w">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_6uRBMOuqEeCTfOY57pgE3w" name="T" templateParameter="_wfwIoOUYEd-P08Bciq_LqQ"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_QQPDUCQeEeGj_4swHBbKwg" name="PortIDs">
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_QQPDUSQeEeGj_4swHBbKwg" name="PORTID_[name/]"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_RPCMoOxIEd-2rr_yAeKkjQ" name="methodCall_comp">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_q1w5MK8qEeCXIcykFPsB8Q" annotatedElement="_RPCMoOxIEd-2rr_yAeKkjQ">
+ <body>Elements in this package depend not only on the Interface I (which is a non-owned template parameter taken from the methodCall signature), but also on a class parameter T, which is bound to the component within a container binding.
+Be aware that the number of instantiated template packages will be considerably larger compared to a dependency of the interface only</body>
+ </ownedComment>
+ <ownedTemplateSignature xmi:type="uml:TemplateSignature" xmi:id="_ewC6kOxIEd-2rr_yAeKkjQ" parameter="_WzWVUPfBEd2TbIfwytOyPA _QBCTAOxJEd-2rr_yAeKkjQ">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_QBCTAOxJEd-2rr_yAeKkjQ" parameteredElement="_zILRsPPlEd-BP4i7K5Y1eA">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_zILRsPPlEd-BP4i7K5Y1eA" name="T" templateParameter="_QBCTAOxJEd-2rr_yAeKkjQ"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="__lTvkPN0EeCovO8AYZymZQ" name="methodCall_size">
+ <ownedTemplateSignature xmi:type="uml:TemplateSignature" xmi:id="_EfH-MPN1EeCovO8AYZymZQ" parameter="_WzWVUPfBEd2TbIfwytOyPA _TbLb4PN3EeCovO8AYZymZQ">
+ <ownedParameter xmi:type="uml:TemplateParameter" xmi:id="_TbLb4PN3EeCovO8AYZymZQ" parameteredElement="_VGE3cPN3EeCovO8AYZymZQ">
+ <ownedParameteredElement xmi:type="uml:LiteralInteger" xmi:id="_VGE3cPN3EeCovO8AYZymZQ" name="size" templateParameter="_TbLb4PN3EeCovO8AYZymZQ"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_gEZXADY7EeKvFqG4YPX3sg" name="methodCall_port">
+ <ownedTemplateSignature xmi:type="uml:TemplateSignature" xmi:id="_kCZdoDY7EeKvFqG4YPX3sg" parameter="_WzWVUPfBEd2TbIfwytOyPA _udDzwDY9EeKvFqG4YPX3sg">
+ <ownedParameter xmi:type="uml:ConnectableElementTemplateParameter" xmi:id="_udDzwDY9EeKvFqG4YPX3sg" parameteredElement="_9GMAUDY9EeKvFqG4YPX3sg">
+ <ownedParameteredElement xmi:type="uml:Port" xmi:id="_9GMAUDY9EeKvFqG4YPX3sg" name="P" templateParameter="_udDzwDY9EeKvFqG4YPX3sg"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_O6TiIjLUEd26WNosUASSSw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_O6TiIzLUEd26WNosUASSSw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/StandardL2.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_ugrx4AHIEd6pm-KfUZMnnQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ugztsAHIEd6pm-KfUZMnnQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/C_Cpp/1#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_u03PkFRxEd6GqrP6fkWBoQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_u1sWAFRxEd6GqrP6fkWBoQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/FCM/1#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://FCM_PROFILES/FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
+ </profileApplication>
+ </uml:Model>
+ <FCM:Port xmi:id="_u1uLMFRxEd6GqrP6fkWBoQ" base_Port="_P4xVsNtuEd2eM5kqcby5ZA" kind="_9Fif4FRxEd6GqrP6fkWBoQ"/>
+ <FCM:Port xmi:id="_u1uLMVRxEd6GqrP6fkWBoQ" base_Port="_Qk0jYNtuEd2eM5kqcby5ZA" kind="_wySlkFRxEd6GqrP6fkWBoQ"/>
+ <FCM:Port xmi:id="_u1uLM1RxEd6GqrP6fkWBoQ" base_Port="_rSCxUAytEd6it_RkGhz_AA" kind="_9Fif4FRxEd6GqrP6fkWBoQ"/>
+ <FCM:Port xmi:id="_u1uyQFRxEd6GqrP6fkWBoQ" base_Port="_r5Va0AytEd6it_RkGhz_AA" kind="_wySlkFRxEd6GqrP6fkWBoQ"/>
+ <FCM:PortKind xmi:id="_wySlkFRxEd6GqrP6fkWBoQ" base_Class="_Wtq4sFDlEd6cwecVIgl9nw" providedInterface="_ZzlzMPfBEd2TbIfwytOyPA" providedMappingRule="_nh0TwFdmEd6EBOtlOYpqKw"/>
+ <FCM:PortKind xmi:id="_x5mL4FRxEd6GqrP6fkWBoQ" base_Class="_Wtq4sVDlEd6cwecVIgl9nw" requiredMappingRule="_ZpvdUHU5Ed6R5tffIPrlPg"/>
+ <FCM:PortKind xmi:id="_9Fif4FRxEd6GqrP6fkWBoQ" base_Class="_Wtrfw1DlEd6cwecVIgl9nw" requiredInterface="_ZzlzMPfBEd2TbIfwytOyPA" requiredMappingRule="_hluocFdpEd6EBOtlOYpqKw"/>
+ <FCM:PortKind xmi:id="_pE6GUFR1Ed6GqrP6fkWBoQ" base_Class="_Wtq4slDlEd6cwecVIgl9nw" providedMappingRule="_eKwKYHU5Ed6R5tffIPrlPg"/>
+ <FCM:PortKind xmi:id="_qOK0cFR1Ed6GqrP6fkWBoQ" base_Class="_WtrfwlDlEd6cwecVIgl9nw" requiredMappingRule="_dW32YHU5Ed6R5tffIPrlPg"/>
+ <FCM:InteractionComponent xmi:id="_s8OWIFR1Ed6GqrP6fkWBoQ" base_Class="_KxQBELuXEd2TTr3gJIvazw"/>
+ <FCM:InteractionComponent xmi:id="_vEYVcFR1Ed6GqrP6fkWBoQ" base_Class="_Zx2ZUA1jEd6tvthBDl600Q"/>
+ <FCM:InteractionComponent xmi:id="_wT-8IFR1Ed6GqrP6fkWBoQ" base_Class="_jOU60A1jEd6tvthBDl600Q"/>
+ <l2:ModelLibrary xmi:id="_CQiMQFtQEd6p9KQoJ8hRoA" base_Package="_O6TiIDLUEd26WNosUASSSw"/>
+ <C_Cpp:Include xmi:id="_sJry0JsqEd61Eo3nmu3JhQ" body="BootLoader bootloader;&#xA;&#xA;int main (int argc, char* argv[])&#xA;{&#xA; bootloader.init ();&#xA; return 0;&#xA;}&#xA;" base_class="_1RehUAGpEd6eR-dxi5su4Q"/>
+ <FCM:Port xmi:id="_OfjPwJsrEd61Eo3nmu3JhQ" base_Port="_OfiosJsrEd61Eo3nmu3JhQ" kind="_wySlkFRxEd6GqrP6fkWBoQ"/>
+ <FCM:Port xmi:id="__SL-kNtxEd6nqsBVkgJEEA" base_Port="__SLXgNtxEd6nqsBVkgJEEA" kind="_wySlkFRxEd6GqrP6fkWBoQ"/>
+ <FCM:Port xmi:id="_Zjd1EP-EEd6628OhKk_dpg" base_Port="_ZjdOAP-EEd6628OhKk_dpg" kind="_9Fif4FRxEd6GqrP6fkWBoQ"/>
+ <C_Cpp:Ptr xmi:id="_Aw8hMP-FEd6628OhKk_dpg" base_parameter="_1TXqoP-EEd6628OhKk_dpg"/>
+ <C_Cpp:Ptr xmi:id="_NjCToP-FEd6628OhKk_dpg" base_parameter="_BywjgP-FEd6628OhKk_dpg"/>
+ <FCM:DerivedElement xmi:id="_u9zyYARIEd--t-uhRn9OBA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:InteractionComponent xmi:id="_5hzVkARIEd--t-uhRn9OBA" base_Class="_cxVEsK-iEd6DndT7kDY1-A"/>
+ <FCM:ContainerRule xmi:id="_3Jq5MARLEd-OidZzGKCpzg" base_Class="_14WtMARJEd--t-uhRn9OBA" portSet="__SL-kNtxEd6nqsBVkgJEEA" interceptor="_u9ykQARIEd--t-uhRn9OBA" interceptorImpl="_u9ykQARIEd--t-uhRn9OBA"/>
+ <C_Cpp:Include xmi:id="_Q7TVYBJcEd-QgZm_R1AKbA" body="#include &lt;pthread.h>" base_class="_SiY_AP-EEd6628OhKk_dpg"/>
+ <FCM:Port xmi:id="_WhfjKylYEd-eoo60eNyGlg"/>
+ <FCM:DerivedElement xmi:id="_CvwokClZEd-eoo60eNyGlg">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_FzffUClZEd-eoo60eNyGlg">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_M0_fQClxEd-eoo60eNyGlg">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_TDYesClyEd-eoo60eNyGlg">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_T2uAIClyEd-eoo60eNyGlg">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_W_pf8ClyEd-eoo60eNyGlg">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_egrzAClzEd-eoo60eNyGlg">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:InteractionComponent xmi:id="_efp4QClzEd-eoo60eNyGlg" base_Class="_Whe8EClYEd-eoo60eNyGlg"/>
+ <FCM:DerivedElement xmi:id="_cWdkwCsAEd-uZPFNCty7PQ">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:Port xmi:id="_N0to8Cu4Ed-uZPFNCty7PQ" base_Port="_N0tB4Cu4Ed-uZPFNCty7PQ" kind="_9Fif4FRxEd6GqrP6fkWBoQ"/>
+ <l2:Create xmi:id="_WFy8ECu9Ed-uZPFNCty7PQ" base_BehavioralFeature="_JM4I4Cu9Ed-uZPFNCty7PQ"/>
+ <C_Cpp:External xmi:id="_EbeZ8Cu-Ed-uZPFNCty7PQ" name="semaphore.h" base_class="_BY-fwCnxEd-eoo60eNyGlg"/>
+ <C_Cpp:External xmi:id="_7tUvUCvDEd-uZPFNCty7PQ" name="pthread.h" base_class="_5KatsCvDEd-uZPFNCty7PQ"/>
+ <C_Cpp:Ptr xmi:id="_G6PMUCvHEd-uZPFNCty7PQ" base_parameter="_Dn-xYCvHEd-uZPFNCty7PQ"/>
+ <C_Cpp:Ptr xmi:id="_NPp2QCvHEd-uZPFNCty7PQ" base_parameter="_IdnDkCvHEd-uZPFNCty7PQ"/>
+ <C_Cpp:Const xmi:id="_dtZbECvHEd-uZPFNCty7PQ" base_property="_Xq00oCvHEd-uZPFNCty7PQ"/>
+ <FCM:DerivedElement xmi:id="_uCGF8DAXEd-lz72LqmDbzA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_fYvj8DNZEd-0bO2vHbUkEA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:Template xmi:id="_iOmWwDNZEd-0bO2vHbUkEA" base_Element="_KOvHsPiREd2UhpY2Y3WUyg" kind="LoopOperations" templateParam="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <FCM:Template xmi:id="_qcrLcDNZEd-0bO2vHbUkEA" base_Element="__y0hwJ08Ed6l5bTPBsl00Q" kind="LoopOperations" formalParam="_ZzlzMPfBEd2TbIfwytOyPA" templateParam="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <FCM:DerivedElement xmi:id="_K9PRoDNwEd-1k-POY2IaLg">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_JqAFUD16Ed-Bk-AHd6yyoA" base_Element="_JmxyMD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_JqEWwD16Ed-Bk-AHd6yyoA" base_Element="_JqB6gD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_RTu-gED2Ed-_DOja_sRgWA" base_Element="_JmxyMD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_RUIAEED2Ed-_DOja_sRgWA" base_Element="_JqB6gD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <C_Cpp:Ptr xmi:id="_5048MED6Ed-_DOja_sRgWA" base_property="_2fcqYED6Ed-_DOja_sRgWA"/>
+ <FCM:DerivedElement xmi:id="_xsrykEJFEd-Ps4Bfh0j9LQ" base_Element="_JmxyMD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_xs0VcEJFEd-Ps4Bfh0j9LQ" base_Element="_JqB6gD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_qBaUMFJEEd-OfYmxqPWG5g" base_Element="_JmxyMD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_qBeloFJEEd-OfYmxqPWG5g" base_Element="_JqB6gD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_t--FUF0NEd-12d_h0i1xhQ" base_Element="_JmxyMD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_t_EzAF0NEd-12d_h0i1xhQ" base_Element="_JqB6gD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:OperatingSystem xmi:id="_1eULwF0NEd-12d_h0i1xhQ" base_Class="_zVs5cF0NEd-12d_h0i1xhQ"/>
+ <FCM:OperatingSystem xmi:id="_3MI_gF0NEd-12d_h0i1xhQ" base_Class="_17yx8F0NEd-12d_h0i1xhQ"/>
+ <FCM:OperatingSystem xmi:id="_8h8mkF0NEd-12d_h0i1xhQ" base_Class="_4RuHgF0NEd-12d_h0i1xhQ"/>
+ <FCM:OperatingSystem xmi:id="_BL7pcF0OEd-12d_h0i1xhQ" base_Class="__1uEcF0NEd-12d_h0i1xhQ"/>
+ <FCM:TargetArchitecture xmi:id="_FYOqwF0OEd-12d_h0i1xhQ" base_Class="_CxQBcF0OEd-12d_h0i1xhQ"/>
+ <FCM:TargetArchitecture xmi:id="_W5gJIF0OEd-12d_h0i1xhQ" base_Class="_KjufQF0OEd-12d_h0i1xhQ"/>
+ <FCM:TargetArchitecture xmi:id="_YHIZ4F0OEd-12d_h0i1xhQ" base_Class="_PFcW8F0OEd-12d_h0i1xhQ"/>
+ <FCM:DerivedElement xmi:id="_FWe6IG4sEd-0rs2VEGIwsA" base_Element="_JmxyMD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_FWlAwG4sEd-0rs2VEGIwsA" base_Element="_JqB6gD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_9Kl8IG4-Ed-J1L578xi-WA" base_Element="_JmxyMD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_9K4QAG4-Ed-J1L578xi-WA" base_Element="_JqB6gD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_Si_2kG5fEd-5CZIeuHpHAg" base_Element="_JmxyMD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_SjXqAG5fEd-5CZIeuHpHAg" base_Element="_JqB6gD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:ConfigOption xmi:id="_tA2KcH7eEd-FNNgSS03RxQ" base_Class="_3myD0H7dEd-FNNgSS03RxQ"/>
+ <FCM:ConfigOption xmi:id="_t2ziEH7eEd-FNNgSS03RxQ" base_Class="_29YhgH7dEd-FNNgSS03RxQ"/>
+ <FCM:ConfigOption xmi:id="_u6LqoH7eEd-FNNgSS03RxQ" base_Class="_7JeHcH7dEd-FNNgSS03RxQ"/>
+ <FCM:Template xmi:id="_3IqLUKE1Ed-r8p-5QgO3cg" base_Element="_pXzxjkJ1Ed-Ps4Bfh0j9LQ" kind="LoopOperations"/>
+ <FCM:Template xmi:id="_9u11IKE1Ed-r8p-5QgO3cg" base_Element="_2bwsEClzEd-eoo60eNyGlg" kind="LoopOperations"/>
+ <FCM:PortKind xmi:id="_H5-aQLqOEd-SedGzMDDkww" base_Class="_AQZZwLqOEd-SedGzMDDkww"/>
+ <FCM:PortKind xmi:id="_KtgR0LqOEd-SedGzMDDkww" base_Class="__nMrwLqNEd-SedGzMDDkww"/>
+ <FCM:ConfigurationProperty xmi:id="_s0fGMMGJEd-Mveea1W_olA" base_Property="_rVfYoMGJEd-Mveea1W_olA"/>
+ <C_Cpp:ExternLibrary xmi:id="_OQ81ENYGEd-CgJIavLpOxQ" base_Package="_I19MANYGEd-CgJIavLpOxQ">
+ <libs>pthread</libs>
+ </C_Cpp:ExternLibrary>
+ <C_Cpp:External xmi:id="_p8NbMNYGEd-CgJIavLpOxQ" name="pthread.h" base_class="_ea234NYGEd-CgJIavLpOxQ"/>
+ <FCM:InteractionComponent xmi:id="_8BUh8NdwEd-ZnqCk2P2ZKg" base_Class="_3itBkNdwEd-ZnqCk2P2ZKg"/>
+ <FCM:Template xmi:id="_CTIeQNdxEd-ZnqCk2P2ZKg" base_Element="_3itBoddwEd-ZnqCk2P2ZKg" kind="LoopOperations"/>
+ <C_Cpp:Typedef xmi:id="_68Aa4No9Ed-wvpj-p-V_QQ" definition="union {&#xA;&lt;%for (ownedOperations) {%>&#xA;struct Op_&lt;%name%> {&#xA;&lt;%for (ownedParameters) {%>&#xA;&lt;%cppType%> &lt;%name%>;&#xA;&lt;%}%>&#xA;} op_&lt;%name%>;&#xA;&lt;%}%>&#xA;};" base_primitivetype="_xOqL0No9Ed-wvpj-p-V_QQ"/>
+ <FCM:InteractionComponent xmi:id="_xaHRQDJKEeCAhMtIsY9HwA" base_Class="_pXzKcEJ1Ed-Ps4Bfh0j9LQ"/>
+ <FCM:Port xmi:id="_wz4-ULaaEeCj_-LEBuGpmA" base_Port="__SLXgNtxEd6nqsBVkgJEEA"/>
+ <FCM:Port xmi:id="_xdIvoLaaEeCj_-LEBuGpmA" base_Port="_OfiosJsrEd61Eo3nmu3JhQ"/>
+ <FCM:Port xmi:id="_MzPjkPNAEeCovO8AYZymZQ" base_Port="_MzO8gPNAEeCovO8AYZymZQ" kind="_wySlkFRxEd6GqrP6fkWBoQ"/>
+ <FCM:Template xmi:id="_c_dkcPNJEeCovO8AYZymZQ" base_Element="_aGt1sPNJEeCovO8AYZymZQ" kind="LoopOperations"/>
+ <FCM:ImplementationProperties xmi:id="_WIe68PQMEeCovO8AYZymZQ" base_Class="__uJRYPNGEeCovO8AYZymZQ"/>
+ <FCM:ContainerRule xmi:id="_F1wZsPQUEeCovO8AYZymZQ" base_Class="__4GvgPQTEeCovO8AYZymZQ" extensionKind="Aggregation" extension="_WhKAAPQUEeCovO8AYZymZQ"/>
+ <FCM:DerivedElement xmi:id="_mKpWAPQXEeCovO8AYZymZQ" base_Element="_tK0poPQWEeCovO8AYZymZQ0" source="_tK0poPQWEeCovO8AYZymZQ"/>
+ <FCM:DerivedElement xmi:id="_mK0VIPQXEeCovO8AYZymZQ" base_Element="_FBMo4PQXEeCovO8AYZymZQ0" source="_FBMo4PQXEeCovO8AYZymZQ"/>
+ <FCM:DerivedElement xmi:id="_mK7C0PQXEeCovO8AYZymZQ" base_Element="_f1HmEPQREeCovO8AYZymZQ0" source="_f1HmEPQREeCovO8AYZymZQ"/>
+ <l2:Create xmi:id="_o4VNAPRTEeCUGrV0Hl4JwQ" base_BehavioralFeature="_lrF08PRTEeCUGrV0Hl4JwQ"/>
+ <FCM:InterceptionRule xmi:id="_qlcF8AJzEeG0Lb1KYG16fA" interceptionSet="__SLXgNtxEd6nqsBVkgJEEA" base_Property="_mvN04PTWEeCn1-FCrfecFg" portSet="__SL-kNtxEd6nqsBVkgJEEA"/>
+ <FCM:Template xmi:id="_QUZxoCQeEeGj_4swHBbKwg" base_Element="_QQPDUSQeEeGj_4swHBbKwg" kind="LoopPorts"/>
+ <C_Cpp:Const xmi:id="_MGjk0CSlEeG6GJ4vU06VYQ" base_property="_Ig_MUCSlEeG6GJ4vU06VYQ"/>
+ <C_Cpp:Include xmi:id="_Yx49gCaeEeG4fZdVXNtoOQ" body="#include &lt;errno.h>" base_class="_JRmo0PNAEeCovO8AYZymZQ"/>
+ <FCM:InteractionComponent xmi:id="_OXit8CfwEeG6iME5Q8XPKw" base_Class="_5J9coCXQEeGX6PuSE-DJlQ"/>
+ <FCM:Port xmi:id="_ATRiESjZEeGFbebITJYb9g" base_Port="_ATRiECjZEeGFbebITJYb9g" kind="_9Fif4FRxEd6GqrP6fkWBoQ"/>
+ <FCM:ContainerRule xmi:id="_MS45QCjaEeGFbebITJYb9g" base_Class="_1sCBICjZEeGFbebITJYb9g"/>
+ <FCM:DerivedElement xmi:id="_F-g7sCjbEeGFbebITJYb9g" base_Element="_F-cDMCjbEeGFbebITJYb9g">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_F-l0MCjbEeGFbebITJYb9g" base_Element="_F-iJ0CjbEeGFbebITJYb9g">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:ConfigurationProperty xmi:id="_zVumMCjbEeGFbebITJYb9g" base_Property="_tmNeoCjbEeGFbebITJYb9g"/>
+ <FCM:Port xmi:id="_3NSGwSkAEeGDDbdzqSb4UA" base_Port="_3NSGwCkAEeGDDbdzqSb4UA" kind="_9Fif4FRxEd6GqrP6fkWBoQ"/>
+ <FCM:OperatingSystem xmi:id="_r4nVcCp9EeG1Y7BvjQ0T-w" base_Class="_onKy0Cp9EeG1Y7BvjQ0T-w"/>
+ <FCM:Port xmi:id="_-nlmgENqEeGoAtSeIK7WLg" base_Port="_-nk_cENqEeGoAtSeIK7WLg" kind="_qOK0cFR1Ed6GqrP6fkWBoQ"/>
+ <FCM:Port xmi:id="_9gJEAENvEeGoAtSeIK7WLg" base_Port="_9gIc8ENvEeGoAtSeIK7WLg" kind="_pE6GUFR1Ed6GqrP6fkWBoQ"/>
+ <FCM:Port xmi:id="_MhIhgENxEeGoAtSeIK7WLg" base_Port="_MhH6cENxEeGoAtSeIK7WLg" kind="_pE6GUFR1Ed6GqrP6fkWBoQ"/>
+ <FCM:Port xmi:id="_Zd6hAENxEeGoAtSeIK7WLg" base_Port="_Zd558ENxEeGoAtSeIK7WLg" kind="_qOK0cFR1Ed6GqrP6fkWBoQ"/>
+ <FCM:Port xmi:id="_i6QeoEN8EeGfhclnRyNzoA" base_Port="_i5SOQEN8EeGfhclnRyNzoA" kind="_qOK0cFR1Ed6GqrP6fkWBoQ"/>
+ <FCM:Port xmi:id="_0KaqgF7pEeGEmrrwB1vhPg" base_Port="_0KY1UF7pEeGEmrrwB1vhPg" kind="_wySlkFRxEd6GqrP6fkWBoQ"/>
+ <FCM:Template xmi:id="_GNBM8F7tEeGEmrrwB1vhPg" base_Element="_ChD4kF7tEeGEmrrwB1vhPg" kind="LoopOperations"/>
+ <FCM:InteractionComponent xmi:id="_UBcmIF7tEeGEmrrwB1vhPg" base_Class="_Mo2kwF7pEeGEmrrwB1vhPg"/>
+ <FCM:InteractionComponent xmi:id="_Z3Zs4F7tEeGEmrrwB1vhPg" base_Class="_TLShkF7qEeGEmrrwB1vhPg"/>
+ <FCM:PortKind xmi:id="_SrCqQC8qEeKx7OxAiA06uw" base_Class="_GjnlcC8qEeKx7OxAiA06uw"/>
+ <C_Cpp:ExternLibrary xmi:id="_xVwkUNqCEeKrRY-H1kHnNA" base_package="_I19MANYGEd-CgJIavLpOxQ">
+ <libs>pthread</libs>
+ <libs>rt</libs>
+ </C_Cpp:ExternLibrary>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/corecpp.di b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/corecpp.di
new file mode 100644
index 00000000000..bbc117e6eff
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/corecpp.di
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi" xmlns:history="http://www.eclipse.org/papyrus/0.7.0/controlmode">
+ <di:SashWindowsMngr xmi:id="_pKTSkNYFEd-CgJIavLpOxQ">
+ <pageList xmi:id="_pKTSkdYFEd-CgJIavLpOxQ">
+ <availablePage xmi:id="_pKTSktYFEd-CgJIavLpOxQ">
+ <emfPageIdentifier href="corecpp.notation#_FYAkIG4sEd-0rs2VEGIwsA"/>
+ </availablePage>
+ <availablePage xmi:id="_A6ULItYGEd-CgJIavLpOxQ">
+ <emfPageIdentifier href="corecpp.notation#_A6ULINYGEd-CgJIavLpOxQ"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="corecpp.notation#_glyeMK8qEeCXIcykFPsB8Q"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="corecpp.notation#_DtdykK8rEeCXIcykFPsB8Q"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="corecpp.notation#_PIvc4LabEeCj_-LEBuGpmA"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="corecpp.notation#_0IaT8LnYEeCxXoyQxQ47PQ"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="corecpp.notation#_SstwYPEnEeCIafpoJVk7CQ"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="corecpp.notation#_eblvwPM_EeCovO8AYZymZQ"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="corecpp.notation#_hyLz8PNGEeCovO8AYZymZQ"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="corecpp.notation#_cVCGYPNUEeCovO8AYZymZQ"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="corecpp.notation#_g6Yg0CnOEeGxrprK9wB9iA"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="corecpp.notation#_OhgzgD8AEeGJ6KSvhYhYuQ"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="corecpp.notation#_DfG8kF7qEeGEmrrwB1vhPg"/>
+ </availablePage>
+ </pageList>
+ <sashModel xmi:id="_pKTSk9YFEd-CgJIavLpOxQ" currentSelection="_pKTSldYFEd-CgJIavLpOxQ">
+ <windows xmi:id="_pKTSlNYFEd-CgJIavLpOxQ">
+ <children xsi:type="di:TabFolder" xmi:id="_pKTSldYFEd-CgJIavLpOxQ">
+ <children>
+ <emfPageIdentifier href="corecpp.notation#_glyeMK8qEeCXIcykFPsB8Q"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="corecpp.notation#_DtdykK8rEeCXIcykFPsB8Q"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="corecpp.notation#_PIvc4LabEeCj_-LEBuGpmA"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="corecpp.notation#_0IaT8LnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="corecpp.notation#_SstwYPEnEeCIafpoJVk7CQ"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="corecpp.notation#_g6Yg0CnOEeGxrprK9wB9iA"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="corecpp.notation#_OhgzgD8AEeGJ6KSvhYhYuQ"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="corecpp.notation#_cVCGYPNUEeCovO8AYZymZQ"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="corecpp.notation#_hyLz8PNGEeCovO8AYZymZQ"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="corecpp.notation#_DfG8kF7qEeGEmrrwB1vhPg"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="corecpp.notation#_FYAkIG4sEd-0rs2VEGIwsA"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="corecpp.notation#_eblvwPM_EeCovO8AYZymZQ"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="corecpp.notation#_A6ULINYGEd-CgJIavLpOxQ"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+ </di:SashWindowsMngr>
+ <history:ControledResource xmi:id="_pKT5oNYFEd-CgJIavLpOxQ"/>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/corecpp.notation b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/corecpp.notation
new file mode 100644
index 00000000000..3af00ab51ac
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/corecpp.notation
@@ -0,0 +1,3896 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML">
+ <notation:Diagram xmi:id="_FYAkIG4sEd-0rs2VEGIwsA" type="CompositeStructure" name="Composite Async &amp; sync call hierarchy" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_FYAkIW4sEd-0rs2VEGIwsA" type="2073" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_FYAkIm4sEd-0rs2VEGIwsA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_FYAkI24sEd-0rs2VEGIwsA" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FYAkJG4sEd-0rs2VEGIwsA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FYAkJW4sEd-0rs2VEGIwsA" type="3069" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AEHTkDrTEeGKkdk54CX6PQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8kEM4DrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8kEz8DrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8kEz8TrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8kEz8jrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8kEz8zrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FYAkJm4sEd-0rs2VEGIwsA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__EG7cF7qEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Uh8jQFbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FYAkJ24sEd-0rs2VEGIwsA" x="-56"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FYBLMG4sEd-0rs2VEGIwsA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FYBLMW4sEd-0rs2VEGIwsA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FYBLMm4sEd-0rs2VEGIwsA" x="110" y="45"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_mIpj8Ns8Ed2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FYBLM24sEd-0rs2VEGIwsA" x="225" y="90" width="120" height="84"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FYBLNG4sEd-0rs2VEGIwsA" type="2073" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_FYBLNW4sEd-0rs2VEGIwsA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_FYBLNm4sEd-0rs2VEGIwsA" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FYBLN24sEd-0rs2VEGIwsA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FYBLOG4sEd-0rs2VEGIwsA" type="3069" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4qWbQDrTEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_48kMoDrTEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_48kMoTrTEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_48kMojrTEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_48kMozrTEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_48kMpDrTEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FYBLOW4sEd-0rs2VEGIwsA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__2FK8F7qEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VHb18FbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FYBLOm4sEd-0rs2VEGIwsA" x="25" y="1"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FYBLO24sEd-0rs2VEGIwsA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FYBLPG4sEd-0rs2VEGIwsA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FYBLPW4sEd-0rs2VEGIwsA" x="-10" y="44"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_j29X4NttEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FYBLPm4sEd-0rs2VEGIwsA" x="420" y="90" width="121" height="79"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cTlm4G5fEd-5CZIeuHpHAg" type="2073" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cTm1AG5fEd-5CZIeuHpHAg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cTm1AW5fEd-5CZIeuHpHAg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cTm1Am5fEd-5CZIeuHpHAg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cTm1A25fEd-5CZIeuHpHAg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cTm1BG5fEd-5CZIeuHpHAg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cTm1BW5fEd-5CZIeuHpHAg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cTm1Bm5fEd-5CZIeuHpHAg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cTm1B25fEd-5CZIeuHpHAg" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cTm1CG5fEd-5CZIeuHpHAg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cnOc0DrVEeGMCcwsbpLuFA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cnQ5EDrVEeGMCcwsbpLuFA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cnQ5ETrVEeGMCcwsbpLuFA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cnQ5EjrVEeGMCcwsbpLuFA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cnQ5EzrVEeGMCcwsbpLuFA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cnQ5FDrVEeGMCcwsbpLuFA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cnRgIDrVEeGMCcwsbpLuFA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2J1UYDrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2ZuKgDrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2ZuxkDrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2ZuxkTrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2ZuxkjrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2ZuxkzrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cnRgITrVEeGMCcwsbpLuFA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sbFK0F7qEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XaUekFbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="20"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cnRgIjrVEeGMCcwsbpLuFA" x="19"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cnSHMDrVEeGMCcwsbpLuFA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cnSHMTrVEeGMCcwsbpLuFA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cnOc0TrVEeGMCcwsbpLuFA" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cnSuQDrVEeGMCcwsbpLuFA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cnSuQjrVEeGMCcwsbpLuFA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cnSuQzrVEeGMCcwsbpLuFA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cnSuRDrVEeGMCcwsbpLuFA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cnSuRTrVEeGMCcwsbpLuFA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cnTVUDrVEeGMCcwsbpLuFA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cnTVUTrVEeGMCcwsbpLuFA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yOmN4DrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yixHEDrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yixuIDrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yixuITrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yixuIjrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yixuIzrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cnTVUjrVEeGMCcwsbpLuFA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3vXigF7qEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_W6BN4FbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="20"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cnTVUzrVEeGMCcwsbpLuFA" x="-25"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cnTVVDrVEeGMCcwsbpLuFA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cnTVVTrVEeGMCcwsbpLuFA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cnSuQTrVEeGMCcwsbpLuFA" x="106" y="36"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_KxQBELuXEd2TTr3gJIvazw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cTmN8G5fEd-5CZIeuHpHAg" x="225" y="270" width="116" height="76"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nkmBEG5fEd-5CZIeuHpHAg" type="2073" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nkmoIG5fEd-5CZIeuHpHAg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nknPMG5fEd-5CZIeuHpHAg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nknPMW5fEd-5CZIeuHpHAg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nknPMm5fEd-5CZIeuHpHAg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nknPM25fEd-5CZIeuHpHAg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nknPNG5fEd-5CZIeuHpHAg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_nknPNW5fEd-5CZIeuHpHAg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nknPNm5fEd-5CZIeuHpHAg" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nknPN25fEd-5CZIeuHpHAg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_hZRPgDrVEeGMCcwsbpLuFA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hZR2kDrVEeGMCcwsbpLuFA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hZR2kTrVEeGMCcwsbpLuFA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hZR2kjrVEeGMCcwsbpLuFA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hZR2kzrVEeGMCcwsbpLuFA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hZR2lDrVEeGMCcwsbpLuFA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hZR2lTrVEeGMCcwsbpLuFA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3C2AADrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3cOJUDrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3cOJUTrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3cOJUjrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3cOJUzrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3cOJVDrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hZR2ljrVEeGMCcwsbpLuFA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s2NAkF7qEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_whZf8F7qEeGEmrrwB1vhPg" key="CustomAppearance_MaskValue" value="52"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hZR2lzrVEeGMCcwsbpLuFA" x="19"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hZR2mDrVEeGMCcwsbpLuFA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hZSdoDrVEeGMCcwsbpLuFA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hZRPgTrVEeGMCcwsbpLuFA" x="-10" y="33"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_hZSdoTrVEeGMCcwsbpLuFA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hZTEsDrVEeGMCcwsbpLuFA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hZTEsTrVEeGMCcwsbpLuFA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hZTEsjrVEeGMCcwsbpLuFA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hZTEszrVEeGMCcwsbpLuFA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hZTEtDrVEeGMCcwsbpLuFA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hZTEtTrVEeGMCcwsbpLuFA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4TtK8DrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4okAoDrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4okAoTrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4okAojrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4okAozrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4oknsDrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hZTEtjrVEeGMCcwsbpLuFA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_24F8QF7qEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2_b6YF7qEeGEmrrwB1vhPg" key="CustomAppearance_MaskValue" value="52"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hZTEtzrVEeGMCcwsbpLuFA" x="-30"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hZTEuDrVEeGMCcwsbpLuFA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hZTrwDrVEeGMCcwsbpLuFA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hZSdojrVEeGMCcwsbpLuFA" x="111" y="33"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_Whe8EClYEd-eoo60eNyGlg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nkmBEW5fEd-5CZIeuHpHAg" x="225" y="390" width="121" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_HJAqEG5gEd-5CZIeuHpHAg" type="2073" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HJBRIG5gEd-5CZIeuHpHAg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HJBRIW5gEd-5CZIeuHpHAg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HJBRIm5gEd-5CZIeuHpHAg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HJBRI25gEd-5CZIeuHpHAg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HJB4MG5gEd-5CZIeuHpHAg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HJB4MW5gEd-5CZIeuHpHAg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_HJB4Mm5gEd-5CZIeuHpHAg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_HJB4M25gEd-5CZIeuHpHAg" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HJB4NG5gEd-5CZIeuHpHAg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_iOXEcDrVEeGMCcwsbpLuFA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iOXrgDrVEeGMCcwsbpLuFA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iOXrgTrVEeGMCcwsbpLuFA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iOXrgjrVEeGMCcwsbpLuFA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iOXrgzrVEeGMCcwsbpLuFA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iOXrhDrVEeGMCcwsbpLuFA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iOXrhTrVEeGMCcwsbpLuFA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5dF04DrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_56NOsDrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_56NOsTrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_56NOsjrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_56N1wDrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_56N1wTrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iOXrhjrVEeGMCcwsbpLuFA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BXMYYF7rEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VrqkYFbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="20"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iOXrhzrVEeGMCcwsbpLuFA" x="25"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iOXriDrVEeGMCcwsbpLuFA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iOXriTrVEeGMCcwsbpLuFA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iOXEcTrVEeGMCcwsbpLuFA" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_iOYSkDrVEeGMCcwsbpLuFA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iOYSkjrVEeGMCcwsbpLuFA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iOY5oDrVEeGMCcwsbpLuFA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iOY5oTrVEeGMCcwsbpLuFA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iOY5ojrVEeGMCcwsbpLuFA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iOY5ozrVEeGMCcwsbpLuFA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iOY5pDrVEeGMCcwsbpLuFA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6tcCcDrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7BnisDrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7BoJwDrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7BoJwTrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7BoJwjrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7BoJwzrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iOY5pTrVEeGMCcwsbpLuFA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tskA0F7qEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WOFU8FbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="20"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iOY5pjrVEeGMCcwsbpLuFA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iOY5pzrVEeGMCcwsbpLuFA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iOY5qDrVEeGMCcwsbpLuFA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iOYSkTrVEeGMCcwsbpLuFA" x="111" y="36"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_Zx2ZUA1jEd6tvthBDl600Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HJAqEW5gEd-5CZIeuHpHAg" x="420" y="270" width="121" height="76"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_H_CTIG5gEd-5CZIeuHpHAg" type="2073" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H_C6MG5gEd-5CZIeuHpHAg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H_C6MW5gEd-5CZIeuHpHAg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H_C6Mm5gEd-5CZIeuHpHAg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H_C6M25gEd-5CZIeuHpHAg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H_C6NG5gEd-5CZIeuHpHAg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H_C6NW5gEd-5CZIeuHpHAg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_H_C6Nm5gEd-5CZIeuHpHAg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_H_C6N25gEd-5CZIeuHpHAg" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H_C6OG5gEd-5CZIeuHpHAg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kf30EDrVEeGMCcwsbpLuFA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kf4bIDrVEeGMCcwsbpLuFA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kf4bITrVEeGMCcwsbpLuFA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kf4bIjrVEeGMCcwsbpLuFA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kf4bIzrVEeGMCcwsbpLuFA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kf4bJDrVEeGMCcwsbpLuFA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kf4bJTrVEeGMCcwsbpLuFA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_o5tiIDrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pQdOMDrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pQdOMTrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pQdOMjrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pQd1QDrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pQd1QTrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kf4bJjrVEeGMCcwsbpLuFA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EmPuUF7rEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GfK-0F7rEeGEmrrwB1vhPg" key="CustomAppearance_MaskValue" value="52"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kf4bJzrVEeGMCcwsbpLuFA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kf4bKDrVEeGMCcwsbpLuFA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kf4bKTrVEeGMCcwsbpLuFA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kf30ETrVEeGMCcwsbpLuFA" x="-10" y="33"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kf5CMDrVEeGMCcwsbpLuFA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kf5pQDrVEeGMCcwsbpLuFA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kf5pQTrVEeGMCcwsbpLuFA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kf5pQjrVEeGMCcwsbpLuFA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kf5pQzrVEeGMCcwsbpLuFA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kf5pRDrVEeGMCcwsbpLuFA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kf5pRTrVEeGMCcwsbpLuFA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_noqJ8DrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oBjyIDrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oBjyITrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oBjyIjrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oBkZMDrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oBkZMTrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kf5pRjrVEeGMCcwsbpLuFA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tXAAgF7qEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EFa5MF7rEeGEmrrwB1vhPg" key="CustomAppearance_MaskValue" value="52"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kf5pRzrVEeGMCcwsbpLuFA" x="25"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kf5pSDrVEeGMCcwsbpLuFA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kf5pSTrVEeGMCcwsbpLuFA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kf5CMTrVEeGMCcwsbpLuFA" x="111" y="33"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_jOU60A1jEd6tvthBDl600Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H_CTIW5gEd-5CZIeuHpHAg" x="420" y="390" width="121" height="70"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__rQAQDrVEeGMCcwsbpLuFA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__rQnUDrVEeGMCcwsbpLuFA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__rQnUTrVEeGMCcwsbpLuFA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__rQnUjrVEeGMCcwsbpLuFA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__rQnUzrVEeGMCcwsbpLuFA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__rQnVDrVEeGMCcwsbpLuFA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__rQnVTrVEeGMCcwsbpLuFA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="__rQnVjrVEeGMCcwsbpLuFA" type="5192"/>
+ <element xmi:type="uml:Comment" href="corecpp.uml#__oxUADrVEeGMCcwsbpLuFA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__rQAQTrVEeGMCcwsbpLuFA" x="596" y="102" width="242"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2oWskF7pEeGEmrrwB1vhPg" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2oX6sF7pEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2oX6sV7pEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2oX6sl7pEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2oX6s17pEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2oX6tF7pEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2oX6tV7pEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2oYhwF7pEeGEmrrwB1vhPg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2oYhwV7pEeGEmrrwB1vhPg" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2oYhwl7pEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2oYhw17pEeGEmrrwB1vhPg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_5wCPMF7pEeGEmrrwB1vhPg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5wC2QF7pEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5wC2QV7pEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5wC2Ql7pEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5wC2Q17pEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5wC2RF7pEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5wC2RV7pEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8uIYAF7pEeGEmrrwB1vhPg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9B96AF7pEeGEmrrwB1vhPg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9B96AV7pEeGEmrrwB1vhPg" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9B96Al7pEeGEmrrwB1vhPg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9B96A17pEeGEmrrwB1vhPg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9B96BF7pEeGEmrrwB1vhPg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5wC2Rl7pEeGEmrrwB1vhPg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-VsWQF7qEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZVGwQFbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5wC2R17pEeGEmrrwB1vhPg" x="-99"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5wC2SF7pEeGEmrrwB1vhPg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5wC2SV7pEeGEmrrwB1vhPg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_0KY1UF7pEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5wCPMV7pEeGEmrrwB1vhPg" x="108" y="45"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_0KYOQF7pEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2oWskV7pEeGEmrrwB1vhPg" x="36" y="90" width="118" height="82"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TLmDkF7qEeGEmrrwB1vhPg" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TLmqoF7qEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TLmqoV7qEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TLmqol7qEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TLmqo17qEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TLmqpF7qEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TLmqpV7qEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TLnRsF7qEeGEmrrwB1vhPg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TLnRsV7qEeGEmrrwB1vhPg" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TLnRsl7qEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TLnRs17qEeGEmrrwB1vhPg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ewlwwF7qEeGEmrrwB1vhPg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ewmX0F7qEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ewmX0V7qEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ewmX0l7qEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ewmX017qEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ewmX1F7qEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ewmX1V7qEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nfCuoF7qEeGEmrrwB1vhPg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_n3u7cF7qEeGEmrrwB1vhPg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_n3u7cV7qEeGEmrrwB1vhPg" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_n3u7cl7qEeGEmrrwB1vhPg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_n3u7c17qEeGEmrrwB1vhPg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_n3u7dF7qEeGEmrrwB1vhPg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ewmX1l7qEeGEmrrwB1vhPg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_08xfEF7qEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1Gzk0F7qEeGEmrrwB1vhPg" key="CustomAppearance_MaskValue" value="52"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ewmX117qEeGEmrrwB1vhPg" x="-63"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ewmX2F7qEeGEmrrwB1vhPg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ewmX2V7qEeGEmrrwB1vhPg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_0KY1UF7pEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ewlwwV7qEeGEmrrwB1vhPg" x="106" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ewm-4F7qEeGEmrrwB1vhPg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ewm-4l7qEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ewm-417qEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ewm-5F7qEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ewm-5V7qEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ewm-5l7qEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ewm-517qEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lHhdoF7qEeGEmrrwB1vhPg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lvZV8F7qEeGEmrrwB1vhPg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lvZV8V7qEeGEmrrwB1vhPg" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lvZV8l7qEeGEmrrwB1vhPg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lvZV817qEeGEmrrwB1vhPg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lvZV9F7qEeGEmrrwB1vhPg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ewnl8F7qEeGEmrrwB1vhPg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_x3Ij0F7qEeGEmrrwB1vhPg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YVUHMFbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="20"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ewnl8V7qEeGEmrrwB1vhPg" x="17"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ewnl8l7qEeGEmrrwB1vhPg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ewnl817qEeGEmrrwB1vhPg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ewm-4V7qEeGEmrrwB1vhPg" x="-10" y="36"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_TLShkF7qEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TLmDkV7qEeGEmrrwB1vhPg" x="38" y="270" width="116" height="73"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_FYBLP24sEd-0rs2VEGIwsA"/>
+ <element xmi:type="uml:Package" href="corecpp.uml#_mMCK8PiPEd2UhpY2Y3WUyg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_dNEMkG5fEd-5CZIeuHpHAg" type="4015" source="_cTlm4G5fEd-5CZIeuHpHAg" target="_FYAkIW4sEd-0rs2VEGIwsA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dNFasG5fEd-5CZIeuHpHAg" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dNGo0G5fEd-5CZIeuHpHAg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dNEMkW5fEd-5CZIeuHpHAg" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corecpp.uml#_1H2JwDBEEd6V16eboHV1gw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dNEMkm5fEd-5CZIeuHpHAg" points="[-8, -20, 58, 145]$[-50, -123, 16, 42]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_drspUG5fEd-5CZIeuHpHAg" type="4015" source="_cTlm4G5fEd-5CZIeuHpHAg" target="_FYBLNG4sEd-0rs2VEGIwsA" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_drtQYG5fEd-5CZIeuHpHAg" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_drtQYW5fEd-5CZIeuHpHAg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_drspUW5fEd-5CZIeuHpHAg" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corecpp.uml#_0KzSsDBEEd6V16eboHV1gw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_drspUm5fEd-5CZIeuHpHAg" points="[41, -38, -136, 105]$[41, -92, -136, 51]$[172, -92, -5, 51]$[172, -139, -5, 4]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jflTgG5fEd-5CZIeuHpHAg" id="(0.3305785123966942,0.9493670886075949)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_pOq9QG5fEd-5CZIeuHpHAg" type="4015" source="_nkmBEG5fEd-5CZIeuHpHAg" target="_cTlm4G5fEd-5CZIeuHpHAg" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qQj4EG5fEd-5CZIeuHpHAg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qQj4EW5fEd-5CZIeuHpHAg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qQj4Em5fEd-5CZIeuHpHAg" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qQj4E25fEd-5CZIeuHpHAg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qQj4FG5fEd-5CZIeuHpHAg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qQj4FW5fEd-5CZIeuHpHAg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_pOrkUG5fEd-5CZIeuHpHAg" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_pOrkUW5fEd-5CZIeuHpHAg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_pOq9QW5fEd-5CZIeuHpHAg" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corecpp.uml#_lYOSkClzEd-eoo60eNyGlg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pOq9Qm5fEd-5CZIeuHpHAg" points="[1, -40, 0, 83]$[0, -85, -1, 38]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_IsGNcG5gEd-5CZIeuHpHAg" type="4015" source="_H_CTIG5gEd-5CZIeuHpHAg" target="_HJAqEG5gEd-5CZIeuHpHAg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_IsPXYG5gEd-5CZIeuHpHAg" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IsPXYW5gEd-5CZIeuHpHAg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_IsGNcW5gEd-5CZIeuHpHAg" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corecpp.uml#_lm4GkA1jEd6tvthBDl600Q"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IsGNcm5gEd-5CZIeuHpHAg" points="[-4, -20, 17, 90]$[-18, -90, 3, 20]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_KGqG8G5gEd-5CZIeuHpHAg" type="4015" source="_HJAqEG5gEd-5CZIeuHpHAg" target="_FYAkIW4sEd-0rs2VEGIwsA" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_KGrVEG5gEd-5CZIeuHpHAg" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KGrVEW5gEd-5CZIeuHpHAg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_KGqG8W5gEd-5CZIeuHpHAg" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corecpp.uml#_T1zr4DBFEd6V16eboHV1gw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KGqG8m5gEd-5CZIeuHpHAg" points="[-31, -18, 261, 147]$[-232, -132, 60, 33]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Kc5csG5gEd-5CZIeuHpHAg" type="4015" source="_HJAqEG5gEd-5CZIeuHpHAg" target="_FYBLNG4sEd-0rs2VEGIwsA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Kc6DwG5gEd-5CZIeuHpHAg" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Kc6DwW5gEd-5CZIeuHpHAg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Kc5csW5gEd-5CZIeuHpHAg" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corecpp.uml#_STdvYDBFEd6V16eboHV1gw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Kc5csm5gEd-5CZIeuHpHAg" points="[-12, -23, 74, 146]$[-66, -129, 20, 40]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_DjnY8DrWEeGMCcwsbpLuFA" type="4002" source="__rQAQDrVEeGMCcwsbpLuFA" target="_FYBLNG4sEd-0rs2VEGIwsA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_DjoAADrWEeGMCcwsbpLuFA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_DjoAATrWEeGMCcwsbpLuFA" points="[-19, 1, 78, 0]$[-74, 3, 23, 2]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DjzmMDrWEeGMCcwsbpLuFA" id="(0.11801242236024845,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DjzmMTrWEeGMCcwsbpLuFA" id="(0.8099173553719008,0.5443037974683544)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WhiEoF7qEeGEmrrwB1vhPg" type="4015" source="_TLmDkF7qEeGEmrrwB1vhPg" target="_2oWskF7pEeGEmrrwB1vhPg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_WhirsF7qEeGEmrrwB1vhPg" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WhirsV7qEeGEmrrwB1vhPg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_WhiEoV7qEeGEmrrwB1vhPg" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corecpp.uml#_WhUpQF7qEeGEmrrwB1vhPg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WhiEol7qEeGEmrrwB1vhPg" points="[1, -4, 0, 109]$[-3, -107, -4, 6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Wh9icF7qEeGEmrrwB1vhPg" id="(0.3673469387755102,0.06779661016949153)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Wh9icV7qEeGEmrrwB1vhPg" id="(0.3305084745762712,0.926829268292683)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XgiDgF7qEeGEmrrwB1vhPg" type="4015" source="_TLmDkF7qEeGEmrrwB1vhPg" target="_FYBLNG4sEd-0rs2VEGIwsA" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_XgiqkF7qEeGEmrrwB1vhPg" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XgiqkV7qEeGEmrrwB1vhPg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_XgiDgV7qEeGEmrrwB1vhPg" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corecpp.uml#_XgUoIF7qEeGEmrrwB1vhPg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XgiDgl7qEeGEmrrwB1vhPg" points="[17, -6, -338, 114]$[349, -112, -6, 8]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Xg9hUF7qEeGEmrrwB1vhPg" id="(0.6632653061224489,0.1016949152542373)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Xg9hUV7qEeGEmrrwB1vhPg" id="(0.3140495867768595,0.8987341772151899)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_A6ULINYGEd-CgJIavLpOxQ" type="PapyrusUMLClassDiagram" name="Class: ContainerServices" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_ByS8ANYGEd-CgJIavLpOxQ" type="2008" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ByUKINYGEd-CgJIavLpOxQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ByUKIdYGEd-CgJIavLpOxQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ByUKItYGEd-CgJIavLpOxQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ByUKI9YGEd-CgJIavLpOxQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ByUKJNYGEd-CgJIavLpOxQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ByUxMNYGEd-CgJIavLpOxQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GTjzUCXVEeGX6PuSE-DJlQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4nx5IM0zEeGV96JAv8cWdw" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4nx5Ic0zEeGV96JAv8cWdw" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4nx5Is0zEeGV96JAv8cWdw" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4nx5I80zEeGV96JAv8cWdw" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4nx5JM0zEeGV96JAv8cWdw" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ByUxMdYGEd-CgJIavLpOxQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ByUxMtYGEd-CgJIavLpOxQ" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_5X2YACVqEeGXBt65HZzY7g" type="3012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oG9wEFeJEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tfIHkFeJEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <element xmi:type="uml:Port" href="corecpp.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5X2YASVqEeGXBt65HZzY7g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_60xB8CVqEeGXBt65HZzY7g" type="3012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qGsMIFeJEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qRYZMFeJEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="corecpp.uml#_rVfYoMGJEd-Mveea1W_olA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_60xB8SVqEeGXBt65HZzY7g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_r31CwCXREeGX6PuSE-DJlQ" type="3012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rmOsQFeJEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rxObUFeJEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <element xmi:type="uml:Port" href="corecpp.uml#_ZjdOAP-EEd6628OhKk_dpg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_r31CwSXREeGX6PuSE-DJlQ"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ByUxM9YGEd-CgJIavLpOxQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ByUxNNYGEd-CgJIavLpOxQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ByUxNdYGEd-CgJIavLpOxQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ByUxNtYGEd-CgJIavLpOxQ" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_s9ecMCXREeGX6PuSE-DJlQ" type="3013" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="corecpp.uml#_yv198P-EEd6628OhKk_dpg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_s9ecMSXREeGX6PuSE-DJlQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_s9fDQCXREeGX6PuSE-DJlQ" type="3013" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="corecpp.uml#_JmxyMD16Ed-Bk-AHd6yyoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_s9fDQSXREeGX6PuSE-DJlQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_s9fqUCXREeGX6PuSE-DJlQ" type="3013" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="corecpp.uml#_JqB6gD16Ed-Bk-AHd6yyoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_s9fqUSXREeGX6PuSE-DJlQ"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ByUxN9YGEd-CgJIavLpOxQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ByUxONYGEd-CgJIavLpOxQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ByUxOdYGEd-CgJIavLpOxQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ByUxOtYGEd-CgJIavLpOxQ" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ByUxO9YGEd-CgJIavLpOxQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ByUxPNYGEd-CgJIavLpOxQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ByUxPdYGEd-CgJIavLpOxQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_SiY_AP-EEd6628OhKk_dpg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ByS8AdYGEd-CgJIavLpOxQ" x="99" y="108" width="190" height="145"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_D0xKENYGEd-CgJIavLpOxQ" type="2008" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D0xxINYGEd-CgJIavLpOxQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D0xxIdYGEd-CgJIavLpOxQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D0xxItYGEd-CgJIavLpOxQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D0xxI9YGEd-CgJIavLpOxQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D0xxJNYGEd-CgJIavLpOxQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D0xxJdYGEd-CgJIavLpOxQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_D0xxJtYGEd-CgJIavLpOxQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_D0xxJ9YGEd-CgJIavLpOxQ" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_OSicECXVEeGX6PuSE-DJlQ" type="3012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_l2kawFeJEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_v7LTQFeJEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <element xmi:type="uml:Port" href="corecpp.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OSicESXVEeGX6PuSE-DJlQ"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_D0xxKNYGEd-CgJIavLpOxQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_D0xxKdYGEd-CgJIavLpOxQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D0xxKtYGEd-CgJIavLpOxQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_D0xxK9YGEd-CgJIavLpOxQ" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_D0xxLNYGEd-CgJIavLpOxQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_D0xxLdYGEd-CgJIavLpOxQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D0xxLtYGEd-CgJIavLpOxQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_D0xxL9YGEd-CgJIavLpOxQ" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_D0xxMNYGEd-CgJIavLpOxQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_D0xxMdYGEd-CgJIavLpOxQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D0xxMtYGEd-CgJIavLpOxQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D0xKEdYGEd-CgJIavLpOxQ" x="99" y="9" width="193" height="55"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_EhiDELaaEeCj_-LEBuGpmA" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EhiqILaaEeCj_-LEBuGpmA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EhiqIbaaEeCj_-LEBuGpmA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EhjRMLaaEeCj_-LEBuGpmA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EhjRMbaaEeCj_-LEBuGpmA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EhjRMraaEeCj_-LEBuGpmA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EhjRM7aaEeCj_-LEBuGpmA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_EhjRNLaaEeCj_-LEBuGpmA" type="5038"/>
+ <element xmi:type="uml:Comment" href="corecpp.uml#_hGEOAMT8Ed-zx4a_r4xAYw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EhiDEbaaEeCj_-LEBuGpmA" x="325" y="13" width="343" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_elme8PQREeCovO8AYZymZQ" type="2004" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_elnGAPQREeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_elnGAfQREeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_elntEPQREeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_elntEfQREeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_elntEvQREeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_elntE_QREeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_elntFPQREeCovO8AYZymZQ" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_elntFfQREeCovO8AYZymZQ" visible="false" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_elntFvQREeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_elntF_QREeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_elntGPQREeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_elntGfQREeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_elntGvQREeCovO8AYZymZQ" type="7007">
+ <children xmi:type="notation:Shape" xmi:id="_f1SlMPQREeCovO8AYZymZQ" type="3007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rsca8FjnEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rvvmkFjnEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="corecpp.uml#_f1HmEPQREeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_f1SlMfQREeCovO8AYZymZQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_elntG_QREeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_elntHPQREeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_elntHfQREeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_elntHvQREeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_eloUIPQREeCovO8AYZymZQ" visible="false" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_eloUIfQREeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_eloUIvQREeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_eloUI_QREeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eloUJPQREeCovO8AYZymZQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="corecpp.uml#_elkpwPQREeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_elme8fQREeCovO8AYZymZQ" x="459" y="201" width="208" height="82"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_S9Kp8PQWEeCovO8AYZymZQ" type="2004" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_S9LRAPQWEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_S9LRAfQWEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_S9LRAvQWEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_S9LRA_QWEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_S9LRBPQWEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_S9LRBfQWEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_S9LRBvQWEeCovO8AYZymZQ" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_S9LRB_QWEeCovO8AYZymZQ" visible="false" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_S9LRCPQWEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_S9LRCfQWEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_S9LRCvQWEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_S9LRC_QWEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_S9L4EPQWEeCovO8AYZymZQ" type="7007">
+ <children xmi:type="notation:Shape" xmi:id="_tK13wPQWEeCovO8AYZymZQ" type="3007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uQYXUFjnEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uT-d4FjnEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="corecpp.uml#_tK0poPQWEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tK13wfQWEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FBOeEPQXEeCovO8AYZymZQ" type="3007" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="corecpp.uml#_FBMo4PQXEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FBOeEfQXEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SaK_4CUREeGXBt65HZzY7g" type="3007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uQZlcFjnEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uT_E8FjnEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="corecpp.uml#_f1HmEPQREeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SaK_4SUREeGXBt65HZzY7g"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_S9L4EfQWEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_S9L4EvQWEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_S9L4E_QWEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_S9L4FPQWEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_S9L4FfQWEeCovO8AYZymZQ" visible="false" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_S9L4FvQWEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_S9L4F_QWEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_S9L4GPQWEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_S9L4GfQWEeCovO8AYZymZQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="corecpp.uml#_omxU4PNAEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_S9Kp8fQWEeCovO8AYZymZQ" x="459" y="324" width="451" height="91"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_DZTowCUREeGXBt65HZzY7g" type="2004" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DZUP0SUREeGXBt65HZzY7g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DZUP0iUREeGXBt65HZzY7g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DZU24CUREeGXBt65HZzY7g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DZU24SUREeGXBt65HZzY7g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DZU24iUREeGXBt65HZzY7g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DZU24yUREeGXBt65HZzY7g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_DZU25CUREeGXBt65HZzY7g" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_DZU25SUREeGXBt65HZzY7g" visible="false" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_DZU25iUREeGXBt65HZzY7g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_DZU25yUREeGXBt65HZzY7g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_DZU26CUREeGXBt65HZzY7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DZU26SUREeGXBt65HZzY7g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_DZU26iUREeGXBt65HZzY7g" type="7007">
+ <children xmi:type="notation:Shape" xmi:id="_Et42ECUREeGXBt65HZzY7g" type="3007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rsdCAVjnEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rvw0sFjnEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="corecpp.uml#_tK0poPQWEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Et42ESUREeGXBt65HZzY7g" x="58" y="3"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_DZU26yUREeGXBt65HZzY7g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_DZU27CUREeGXBt65HZzY7g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_DZU27SUREeGXBt65HZzY7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DZU27iUREeGXBt65HZzY7g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_DZU27yUREeGXBt65HZzY7g" visible="false" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_DZU28CUREeGXBt65HZzY7g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_DZU28SUREeGXBt65HZzY7g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_DZU28iUREeGXBt65HZzY7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DZU28yUREeGXBt65HZzY7g"/>
+ </children>
+ <element xmi:type="uml:Interface" href="corecpp.uml#_DY2VwCUREeGXBt65HZzY7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DZUP0CUREeGXBt65HZzY7g" x="702" y="201" width="208" height="79"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_5MArECXQEeGX6PuSE-DJlQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5MBSICXQEeGX6PuSE-DJlQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5MBSISXQEeGX6PuSE-DJlQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5MBSIiXQEeGX6PuSE-DJlQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5MB5MCXQEeGX6PuSE-DJlQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5MB5MSXQEeGX6PuSE-DJlQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5MB5MiXQEeGX6PuSE-DJlQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5MB5MyXQEeGX6PuSE-DJlQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5MB5NCXQEeGX6PuSE-DJlQ" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5MB5NSXQEeGX6PuSE-DJlQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5MB5NiXQEeGX6PuSE-DJlQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5MB5NyXQEeGX6PuSE-DJlQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5MB5OCXQEeGX6PuSE-DJlQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5MCgQCXQEeGX6PuSE-DJlQ" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5MCgQSXQEeGX6PuSE-DJlQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5MCgQiXQEeGX6PuSE-DJlQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5MCgQyXQEeGX6PuSE-DJlQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5MCgRCXQEeGX6PuSE-DJlQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5MCgRSXQEeGX6PuSE-DJlQ" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5MCgRiXQEeGX6PuSE-DJlQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5MCgRyXQEeGX6PuSE-DJlQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5MCgSCXQEeGX6PuSE-DJlQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5MCgSSXQEeGX6PuSE-DJlQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_5J9coCXQEeGX6PuSE-DJlQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5MArESXQEeGX6PuSE-DJlQ" x="99" y="297" width="190" height="55"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_E3A5oCXREeGX6PuSE-DJlQ" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_E3BgsCXREeGX6PuSE-DJlQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_E3CHwCXREeGX6PuSE-DJlQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_E3CHwSXREeGX6PuSE-DJlQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_E3CHwiXREeGX6PuSE-DJlQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_E3CHwyXREeGX6PuSE-DJlQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_E3CHxCXREeGX6PuSE-DJlQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_E3CHxSXREeGX6PuSE-DJlQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="corecpp.uml#_EuvHYCXREeGX6PuSE-DJlQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_E3A5oSXREeGX6PuSE-DJlQ" x="81" y="378" width="235"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_OX-j4FaNEeKxltxu9uR4dg" type="2010" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYQ3wFaNEeKxltxu9uR4dg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYQ3wVaNEeKxltxu9uR4dg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYQ3wlaNEeKxltxu9uR4dg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYRe0FaNEeKxltxu9uR4dg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYRe0VaNEeKxltxu9uR4dg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYRe0laNEeKxltxu9uR4dg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_OYRe01aNEeKxltxu9uR4dg" type="5035"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_OYRe1FaNEeKxltxu9uR4dg" type="7020">
+ <children xmi:type="notation:Shape" xmi:id="_RXTbwFaNEeKxltxu9uR4dg" type="3018" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_waMsEFaNEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_waNTIFaNEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="60"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="corecpp.uml#_RW82cFaNEeKxltxu9uR4dg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RXTbwVaNEeKxltxu9uR4dg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_OYRe1VaNEeKxltxu9uR4dg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_OYRe1laNEeKxltxu9uR4dg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_OYRe11aNEeKxltxu9uR4dg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OYRe2FaNEeKxltxu9uR4dg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_OYRe2VaNEeKxltxu9uR4dg" visible="false" type="7021">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_OYRe2laNEeKxltxu9uR4dg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_OYRe21aNEeKxltxu9uR4dg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_OYRe3FaNEeKxltxu9uR4dg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OYRe3VaNEeKxltxu9uR4dg"/>
+ </children>
+ <element xmi:type="uml:DataType" href="corecpp.uml#_OU5asFaNEeKxltxu9uR4dg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OX-j4VaNEeKxltxu9uR4dg" x="702" y="9" width="208" height="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Y9_gUFaNEeKxltxu9uR4dg" type="2010" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Y9_gUlaNEeKxltxu9uR4dg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Y-AHYFaNEeKxltxu9uR4dg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Y-AHYVaNEeKxltxu9uR4dg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Y-AHYlaNEeKxltxu9uR4dg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Y-AHY1aNEeKxltxu9uR4dg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Y-AHZFaNEeKxltxu9uR4dg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Y-AHZVaNEeKxltxu9uR4dg" type="5035"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Y-AHZlaNEeKxltxu9uR4dg" type="7020">
+ <children xmi:type="notation:Shape" xmi:id="_fYzAkFaNEeKxltxu9uR4dg" type="3018" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t76EsFaNEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uWGGUFaNEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="corecpp.uml#_fYeQcFaNEeKxltxu9uR4dg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fYzAkVaNEeKxltxu9uR4dg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_oUoTIFaNEeKxltxu9uR4dg" type="3018" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vVH6YFaNEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vY61QFaNEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="corecpp.uml#_oUVYMFaNEeKxltxu9uR4dg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oUoTIVaNEeKxltxu9uR4dg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_xXc-gFaNEeKxltxu9uR4dg" type="3018" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1PtpgFaNEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1fyF0FaNEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="corecpp.uml#_xXGZMFaNEeKxltxu9uR4dg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xXc-gVaNEeKxltxu9uR4dg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Y-AHZ1aNEeKxltxu9uR4dg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Y-AHaFaNEeKxltxu9uR4dg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Y-AHaVaNEeKxltxu9uR4dg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Y-AHalaNEeKxltxu9uR4dg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Y-AHa1aNEeKxltxu9uR4dg" visible="false" type="7021">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Y-AHbFaNEeKxltxu9uR4dg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Y-AHbVaNEeKxltxu9uR4dg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Y-AHblaNEeKxltxu9uR4dg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Y-AHb1aNEeKxltxu9uR4dg"/>
+ </children>
+ <element xmi:type="uml:DataType" href="corecpp.uml#_Y8dPQFaNEeKxltxu9uR4dg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Y9_gUVaNEeKxltxu9uR4dg" x="702" y="90" width="208" height="91"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_A6ULIdYGEd-CgJIavLpOxQ"/>
+ <element xmi:type="uml:Package" href="corecpp.uml#_xtlE8ARAEd--t-uhRn9OBA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_D1HvYNYGEd-CgJIavLpOxQ" type="4002" source="_ByS8ANYGEd-CgJIavLpOxQ" target="_D0xKENYGEd-CgJIavLpOxQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_D1IWcNYGEd-CgJIavLpOxQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_D1IWcdYGEd-CgJIavLpOxQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_D1HvYdYGEd-CgJIavLpOxQ" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corecpp.uml#_6bsEkARAEd--t-uhRn9OBA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_D1HvYtYGEd-CgJIavLpOxQ" points="[-77, -75, 118, 115]$[-195, -190, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_KuwaULaaEeCj_-LEBuGpmA" type="4013" source="_EhiDELaaEeCj_-LEBuGpmA" target="_ByS8ANYGEd-CgJIavLpOxQ" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_KuwaUbaaEeCj_-LEBuGpmA" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KuwaUraaEeCj_-LEBuGpmA" points="[19, 44, 130, -8]$[19, 58, 130, 6]$[-95, 58, 16, 6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KvJb4LaaEeCj_-LEBuGpmA" id="(0.017988552739165987,0.6333333333333333)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KvJb4baaEeCj_-LEBuGpmA" id="(0.917098445595855,0.2)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ffcCQPQXEeCovO8AYZymZQ" type="4002" source="_S9Kp8PQWEeCovO8AYZymZQ" target="_elme8PQREeCovO8AYZymZQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ffdQYPQXEeCovO8AYZymZQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ffdQYfQXEeCovO8AYZymZQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ffcCQfQXEeCovO8AYZymZQ" fontName="Sans Serif"/>
+ <element xmi:type="uml:Generalization" href="corecpp.uml#_feaHgPQXEeCovO8AYZymZQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ffcCQvQXEeCovO8AYZymZQ" points="[-109, 14, 100, -14]$[-162, 10, 47, -18]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ffeegPQXEeCovO8AYZymZQ" id="(0.21507760532150777,0.12087912087912088)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ffeegfQXEeCovO8AYZymZQ" id="(0.507537688442211,0.95)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_GxXJsCUREeGXBt65HZzY7g" type="4002" source="_S9Kp8PQWEeCovO8AYZymZQ" target="_DZTowCUREeGXBt65HZzY7g" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GxXwwCUREeGXBt65HZzY7g" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GxXwwSUREeGXBt65HZzY7g" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_GxXJsSUREeGXBt65HZzY7g" fontName="Sans Serif"/>
+ <element xmi:type="uml:Generalization" href="corecpp.uml#_GwxT0CUREeGXBt65HZzY7g"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GxXJsiUREeGXBt65HZzY7g" points="[21, -3, 1, 53]$[21, -25, 1, 31]$[17, -25, -3, 31]$[17, -47, -3, 9]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GzJSYCUREeGXBt65HZzY7g" id="(0.7228381374722838,0.03296703296703297)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GzJSYSUREeGXBt65HZzY7g" id="(0.5144230769230769,0.9620253164556962)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9vKGICXQEeGX6PuSE-DJlQ" type="4002" source="_5MArECXQEeGX6PuSE-DJlQ" target="_ByS8ANYGEd-CgJIavLpOxQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_9vKtMCXQEeGX6PuSE-DJlQ" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9vLUQCXQEeGX6PuSE-DJlQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_9vKGISXQEeGX6PuSE-DJlQ" fontName="Sans Serif"/>
+ <element xmi:type="uml:Generalization" href="corecpp.uml#_9thucCXQEeGX6PuSE-DJlQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9vKGIiXQEeGX6PuSE-DJlQ" points="[6, -10, 0, 41]$[8, -36, 2, 15]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9wimMCXQEeGX6PuSE-DJlQ" id="(0.5210526315789473,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9wimMSXQEeGX6PuSE-DJlQ" id="(0.5077720207253886,0.98)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_jDnbICXREeGX6PuSE-DJlQ" type="4013" source="_E3A5oCXREeGX6PuSE-DJlQ" target="_5MArECXQEeGX6PuSE-DJlQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_jDnbISXREeGX6PuSE-DJlQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_jDnbIiXREeGX6PuSE-DJlQ" points="[-18, 13, 101, -76]$[-107, 85, 12, -4]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jFAiQCXREeGX6PuSE-DJlQ" id="(0.4595744680851064,0.2)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jFBJUCXREeGX6PuSE-DJlQ" id="(0.49473684210526314,0.8536585365853658)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_glyeMK8qEeCXIcykFPsB8Q" type="PapyrusUMLClassDiagram" name="Pkg. Template: methodCall_comp" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_iLyysK8qEeCXIcykFPsB8Q" type="2007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iL0A0K8qEeCXIcykFPsB8Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iL0n4K8qEeCXIcykFPsB8Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iL0n4a8qEeCXIcykFPsB8Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iL0n4q8qEeCXIcykFPsB8Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iL1O8K8qEeCXIcykFPsB8Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iL1O8a8qEeCXIcykFPsB8Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iL1O8q8qEeCXIcykFPsB8Q" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iL1O868qEeCXIcykFPsB8Q" type="7016">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iL1O9K8qEeCXIcykFPsB8Q"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jkrRMK8qEeCXIcykFPsB8Q" type="3033" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jkr4QK8qEeCXIcykFPsB8Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jkr4Qa8qEeCXIcykFPsB8Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jkr4Qq8qEeCXIcykFPsB8Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jkr4Q68qEeCXIcykFPsB8Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jkr4RK8qEeCXIcykFPsB8Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jkr4Ra8qEeCXIcykFPsB8Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jksfUK8qEeCXIcykFPsB8Q" type="7038">
+ <children xmi:type="notation:Shape" xmi:id="_kvgFkK8qEeCXIcykFPsB8Q" type="3031" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="corecpp.uml#_QBCTAOxJEd-2rr_yAeKkjQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kvgFka8qEeCXIcykFPsB8Q" x="22" y="8"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jksfUa8qEeCXIcykFPsB8Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jksfUq8qEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jksfU68qEeCXIcykFPsB8Q"/>
+ </children>
+ <element xmi:type="uml:TemplateSignature" href="corecpp.uml#_ewC6kOxIEd-2rr_yAeKkjQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jkrRMa8qEeCXIcykFPsB8Q" x="30" y="8"/>
+ </children>
+ <element xmi:type="uml:Package" href="corecpp.uml#_RPCMoOxIEd-2rr_yAeKkjQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iLyysa8qEeCXIcykFPsB8Q" x="90" y="243"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_q3ohcK8qEeCXIcykFPsB8Q" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_q3pIgK8qEeCXIcykFPsB8Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q3pvkK8qEeCXIcykFPsB8Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_q3pvka8qEeCXIcykFPsB8Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q3pvkq8qEeCXIcykFPsB8Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_q3pvk68qEeCXIcykFPsB8Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q3pvlK8qEeCXIcykFPsB8Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_q3pvla8qEeCXIcykFPsB8Q" type="5038"/>
+ <element xmi:type="uml:Comment" href="corecpp.uml#_q1w5MK8qEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q3ohca8qEeCXIcykFPsB8Q" x="261" y="108" width="253"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_glyeMa8qEeCXIcykFPsB8Q"/>
+ <element xmi:type="uml:Package" href="corecpp.uml#_RPCMoOxIEd-2rr_yAeKkjQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_xP-jkK8qEeCXIcykFPsB8Q" type="4013" source="_q3ohcK8qEeCXIcykFPsB8Q" target="_iLyysK8qEeCXIcykFPsB8Q" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_xP-jka8qEeCXIcykFPsB8Q" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_xP-jkq8qEeCXIcykFPsB8Q" points="[-40, 30, 181, -116]$[-121, 140, 100, -6]"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_DtdykK8rEeCXIcykFPsB8Q" type="PapyrusUMLClassDiagram" name="Pkg. Template: methodCall" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_NLTmAK8rEeCXIcykFPsB8Q" type="2007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NLUNEK8rEeCXIcykFPsB8Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NLUNEa8rEeCXIcykFPsB8Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NLUNEq8rEeCXIcykFPsB8Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NLUNE68rEeCXIcykFPsB8Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NLUNFK8rEeCXIcykFPsB8Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NLUNFa8rEeCXIcykFPsB8Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NLUNFq8rEeCXIcykFPsB8Q" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NLUNF68rEeCXIcykFPsB8Q" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_TmKUIK8sEeCXIcykFPsB8Q" type="3009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TmK7MK8sEeCXIcykFPsB8Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TmK7Ma8sEeCXIcykFPsB8Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TmK7Mq8sEeCXIcykFPsB8Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TmLiQK8sEeCXIcykFPsB8Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TmLiQa8sEeCXIcykFPsB8Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TmLiQq8sEeCXIcykFPsB8Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TmLiQ68sEeCXIcykFPsB8Q" type="5017"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TmLiRK8sEeCXIcykFPsB8Q" type="7010">
+ <children xmi:type="notation:Shape" xmi:id="_V93yYK8sEeCXIcykFPsB8Q" type="3010" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V95AgK8sEeCXIcykFPsB8Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V95Aga8sEeCXIcykFPsB8Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V95Agq8sEeCXIcykFPsB8Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V95Ag68sEeCXIcykFPsB8Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V95AhK8sEeCXIcykFPsB8Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V95Aha8sEeCXIcykFPsB8Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_V95Ahq8sEeCXIcykFPsB8Q" type="5014"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_V95nkK8sEeCXIcykFPsB8Q" visible="false" type="7011">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_V95nka8sEeCXIcykFPsB8Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_V95nkq8sEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V95nk68sEeCXIcykFPsB8Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_V95nlK8sEeCXIcykFPsB8Q" visible="false" type="7012">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_V95nla8sEeCXIcykFPsB8Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_V95nlq8sEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V95nl68sEeCXIcykFPsB8Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_V95nmK8sEeCXIcykFPsB8Q" visible="false" type="7013">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_V95nma8sEeCXIcykFPsB8Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_V95nmq8sEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V95nm68sEeCXIcykFPsB8Q"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_KxQBELuXEd2TTr3gJIvazw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V94ZcK8sEeCXIcykFPsB8Q" x="16" y="10" height="43"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TmLiRa8sEeCXIcykFPsB8Q"/>
+ </children>
+ <element xmi:type="uml:Package" href="corecpp.uml#_ZISNcIQzEd2_fLv04swWfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TmKUIa8sEeCXIcykFPsB8Q" x="13" y="28" width="190"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_UgOIoK8sEeCXIcykFPsB8Q" type="3009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UgOvsK8sEeCXIcykFPsB8Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UgOvsa8sEeCXIcykFPsB8Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UgOvsq8sEeCXIcykFPsB8Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UgOvs68sEeCXIcykFPsB8Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UgOvtK8sEeCXIcykFPsB8Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UgOvta8sEeCXIcykFPsB8Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UgOvtq8sEeCXIcykFPsB8Q" type="5017"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UgOvt68sEeCXIcykFPsB8Q" type="7010">
+ <children xmi:type="notation:Shape" xmi:id="_bgjX0K8sEeCXIcykFPsB8Q" type="3010" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bgj-4K8sEeCXIcykFPsB8Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bgj-4a8sEeCXIcykFPsB8Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bgj-4q8sEeCXIcykFPsB8Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bgj-468sEeCXIcykFPsB8Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bgkl8K8sEeCXIcykFPsB8Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bgkl8a8sEeCXIcykFPsB8Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bgkl8q8sEeCXIcykFPsB8Q" type="5014"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_bgkl868sEeCXIcykFPsB8Q" visible="false" type="7011">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_bgkl9K8sEeCXIcykFPsB8Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_bgkl9a8sEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bgkl9q8sEeCXIcykFPsB8Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_bgkl968sEeCXIcykFPsB8Q" visible="false" type="7012">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_bgkl-K8sEeCXIcykFPsB8Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_bgkl-a8sEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bgkl-q8sEeCXIcykFPsB8Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_bgkl-68sEeCXIcykFPsB8Q" visible="false" type="7013">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_bgkl_K8sEeCXIcykFPsB8Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_bgkl_a8sEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bgkl_q8sEeCXIcykFPsB8Q"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_Zx2ZUA1jEd6tvthBDl600Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bgjX0a8sEeCXIcykFPsB8Q" x="15" y="7" height="51"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UgOvuK8sEeCXIcykFPsB8Q" x="48" y="4" width="200" height="80"/>
+ </children>
+ <element xmi:type="uml:Package" href="corecpp.uml#_RjvvcA1jEd6tvthBDl600Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UgOIoa8sEeCXIcykFPsB8Q" x="229" y="28" width="190"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NLUNGK8rEeCXIcykFPsB8Q"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_q9rCkK8rEeCXIcykFPsB8Q" type="3033" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_q9rpoK8rEeCXIcykFPsB8Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q9sQsK8rEeCXIcykFPsB8Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_q9sQsa8rEeCXIcykFPsB8Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q9sQsq8rEeCXIcykFPsB8Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_q9sQs68rEeCXIcykFPsB8Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q9sQtK8rEeCXIcykFPsB8Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_q9sQta8rEeCXIcykFPsB8Q" type="7038">
+ <children xmi:type="notation:Shape" xmi:id="_ryntkK8rEeCXIcykFPsB8Q" type="3031" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="corecpp.uml#_WzWVUPfBEd2TbIfwytOyPA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ryntka8rEeCXIcykFPsB8Q" x="15" y="10"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_q9sQtq8rEeCXIcykFPsB8Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_q9sQt68rEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q9sQuK8rEeCXIcykFPsB8Q"/>
+ </children>
+ <element xmi:type="uml:TemplateSignature" href="corecpp.uml#_V0b2APfBEd2TbIfwytOyPA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q9rCka8rEeCXIcykFPsB8Q" x="40" y="10"/>
+ </children>
+ <element xmi:type="uml:Package" href="corecpp.uml#_mMCK8PiPEd2UhpY2Y3WUyg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NLTmAa8rEeCXIcykFPsB8Q" x="90" y="108" width="451" height="181"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Wi948K8rEeCXIcykFPsB8Q" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Wi948q8rEeCXIcykFPsB8Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Wi-gAK8rEeCXIcykFPsB8Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Wi-gAa8rEeCXIcykFPsB8Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Wi-gAq8rEeCXIcykFPsB8Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Wi-gA68rEeCXIcykFPsB8Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Wi-gBK8rEeCXIcykFPsB8Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wi-gBa8rEeCXIcykFPsB8Q" type="5038"/>
+ <element xmi:type="uml:Comment" href="corecpp.uml#_WiuBUK8rEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Wi948a8rEeCXIcykFPsB8Q" x="594" y="180" width="253"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Dtdyka8rEeCXIcykFPsB8Q"/>
+ <element xmi:type="uml:Package" href="corecpp.uml#_mMCK8PiPEd2UhpY2Y3WUyg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_Xu0BAK8rEeCXIcykFPsB8Q" type="4013" source="_Wi948K8rEeCXIcykFPsB8Q" target="_NLTmAK8rEeCXIcykFPsB8Q" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Xu0BAa8rEeCXIcykFPsB8Q" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Xu0BAq8rEeCXIcykFPsB8Q" points="[-50, 10, 224, -38]$[-174, 51, 100, 3]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tBbDAK8rEeCXIcykFPsB8Q" id="(0.755,0.72)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_PIvc4LabEeCj_-LEBuGpmA" type="CompositeStructure" name="StdPorts" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_PlQZwLabEeCj_-LEBuGpmA" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PlRA0LabEeCj_-LEBuGpmA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PlRA0babEeCj_-LEBuGpmA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PlRn4LabEeCj_-LEBuGpmA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PlRn4babEeCj_-LEBuGpmA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PlRn4rabEeCj_-LEBuGpmA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PlRn47abEeCj_-LEBuGpmA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_PlSO8LabEeCj_-LEBuGpmA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PlSO8babEeCj_-LEBuGpmA" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PlSO8rabEeCj_-LEBuGpmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_UfT48LabEeCj_-LEBuGpmA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UfUgALabEeCj_-LEBuGpmA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UfUgAbabEeCj_-LEBuGpmA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UfUgArabEeCj_-LEBuGpmA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UfUgA7abEeCj_-LEBuGpmA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UfVHELabEeCj_-LEBuGpmA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UfVHEbabEeCj_-LEBuGpmA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8J5rUDrTEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8gAeMDrTEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8gAeMTrTEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8gAeMjrTEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8gAeMzrTEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8gAeNDrTEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UfVHErabEeCj_-LEBuGpmA" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UfVHE7abEeCj_-LEBuGpmA" x="-116" y="-4"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UfVHFLabEeCj_-LEBuGpmA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UfVHFbabEeCj_-LEBuGpmA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UfT48babEeCj_-LEBuGpmA" x="-10" y="36"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_N6fa4JsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PlQZwbabEeCj_-LEBuGpmA" x="144" y="72" width="163" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QHPsgLabEeCj_-LEBuGpmA" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QHQTkLabEeCj_-LEBuGpmA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QHQTkbabEeCj_-LEBuGpmA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QHQ6oLabEeCj_-LEBuGpmA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QHQ6obabEeCj_-LEBuGpmA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QHQ6orabEeCj_-LEBuGpmA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QHQ6o7abEeCj_-LEBuGpmA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QHQ6pLabEeCj_-LEBuGpmA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QHRhsLabEeCj_-LEBuGpmA" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QHRhsbabEeCj_-LEBuGpmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_atcPILabEeCj_-LEBuGpmA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_atc2MLabEeCj_-LEBuGpmA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_atc2MbabEeCj_-LEBuGpmA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_atc2MrabEeCj_-LEBuGpmA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_atc2M7abEeCj_-LEBuGpmA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_atc2NLabEeCj_-LEBuGpmA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_atc2NbabEeCj_-LEBuGpmA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9T6nYDrTEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9l5IMDrTEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9l5vQDrTEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9l5vQTrTEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9l5vQjrTEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9l6WUDrTEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_atc2NrabEeCj_-LEBuGpmA" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_atc2N7abEeCj_-LEBuGpmA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_atddQLabEeCj_-LEBuGpmA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_atddQbabEeCj_-LEBuGpmA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_atcPIbabEeCj_-LEBuGpmA" x="-10" y="36"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QHPsgbabEeCj_-LEBuGpmA" x="144" y="180" width="163" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SOUtwLabEeCj_-LEBuGpmA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SOVU0LabEeCj_-LEBuGpmA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SOVU0babEeCj_-LEBuGpmA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SOV74LabEeCj_-LEBuGpmA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SOV74babEeCj_-LEBuGpmA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SOV74rabEeCj_-LEBuGpmA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SOV747abEeCj_-LEBuGpmA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SOV75LabEeCj_-LEBuGpmA" type="5192"/>
+ <element xmi:type="uml:Comment" href="corecpp.uml#_OcN78Nt2Ed6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SOUtwbabEeCj_-LEBuGpmA" x="378" y="72" width="235"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_PIvc4babEeCj_-LEBuGpmA"/>
+ <element xmi:type="uml:Package" href="corecpp.uml#_HmnpEJsrEd61Eo3nmu3JhQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_SOtIQLabEeCj_-LEBuGpmA" type="4002" source="_SOUtwLabEeCj_-LEBuGpmA" target="_PlQZwLabEeCj_-LEBuGpmA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_SOtvULabEeCj_-LEBuGpmA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SOtvUbabEeCj_-LEBuGpmA" points="[0, 0, -129, -109]$[108, 90, -21, -19]"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_0IaT8LnYEeCxXoyQxQ47PQ" type="PapyrusUMLClassDiagram" name="PortKinds" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_09vZcLnYEeCxXoyQxQ47PQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_09wAgLnYEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_09wAgbnYEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_09wAgrnYEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_09wAg7nYEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_09wAhLnYEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_09wAhbnYEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Fi4z8DrUEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RtrcIELzEeGoAtSeIK7WLg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RtrcIULzEeGoAtSeIK7WLg" key="StereotypeList" value="FCM::PortKind"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RtrcIkLzEeGoAtSeIK7WLg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RtrcI0LzEeGoAtSeIK7WLg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RtrcJELzEeGoAtSeIK7WLg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_09wAhrnYEeCxXoyQxQ47PQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_09wAh7nYEeCxXoyQxQ47PQ" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_09wnkLnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_09wnkbnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_09wnkrnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_09wnk7nYEeCxXoyQxQ47PQ" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_09wnlLnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_09wnlbnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_09wnlrnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_09wnl7nYEeCxXoyQxQ47PQ" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_09wnmLnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_09wnmbnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_09wnmrnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="corecpp.uml#_Wtq4sFDlEd6cwecVIgl9nw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_09vZcbnYEeCxXoyQxQ47PQ" x="54" y="28" width="127" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0-EJkLnYEeCxXoyQxQ47PQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0-EwoLnYEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0-EwobnYEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0-EwornYEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0-Ewo7nYEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0-EwpLnYEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0-EwpbnYEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_agfdADrZEeGgAdAmWw4pyQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TPVcIELzEeGoAtSeIK7WLg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TPWDMELzEeGoAtSeIK7WLg" key="StereotypeList" value="FCM::PortKind"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TPWDMULzEeGoAtSeIK7WLg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TPWDMkLzEeGoAtSeIK7WLg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TPWDM0LzEeGoAtSeIK7WLg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0-EwprnYEeCxXoyQxQ47PQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0-Ewp7nYEeCxXoyQxQ47PQ" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0-EwqLnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0-EwqbnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-EwqrnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0-Ewq7nYEeCxXoyQxQ47PQ" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0-EwrLnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0-EwrbnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-EwrrnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0-FXsLnYEeCxXoyQxQ47PQ" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0-FXsbnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0-FXsrnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-FXs7nYEeCxXoyQxQ47PQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="corecpp.uml#_Wtq4sVDlEd6cwecVIgl9nw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-EJkbnYEeCxXoyQxQ47PQ" x="54" y="351" width="127" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0-XrkLnYEeCxXoyQxQ47PQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0-XrkrnYEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0-Xrk7nYEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0-XrlLnYEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0-YSoLnYEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0-YSobnYEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0-YSornYEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XkzH8DrZEeGgAdAmWw4pyQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_14Z-YELyEeGoAtSeIK7WLg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_14Z-YULyEeGoAtSeIK7WLg" key="StereotypeList" value="FCM::PortKind"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_14Z-YkLyEeGoAtSeIK7WLg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_14Z-Y0LyEeGoAtSeIK7WLg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_14Z-ZELyEeGoAtSeIK7WLg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0-YSo7nYEeCxXoyQxQ47PQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0-YSpLnYEeCxXoyQxQ47PQ" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0-YSpbnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0-YSprnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-YSp7nYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0-YSqLnYEeCxXoyQxQ47PQ" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0-YSqbnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0-YSqrnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-YSq7nYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0-YSrLnYEeCxXoyQxQ47PQ" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0-YSrbnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0-YSrrnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-YSr7nYEeCxXoyQxQ47PQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="corecpp.uml#_Wtq4slDlEd6cwecVIgl9nw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-XrkbnYEeCxXoyQxQ47PQ" x="54" y="297" width="127" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0-rNkLnYEeCxXoyQxQ47PQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0-r0oLnYEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0-r0obnYEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0-sbsLnYEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0-sbsbnYEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Vy3QQDrZEeGgAdAmWw4pyQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vy3QQTrZEeGgAdAmWw4pyQ" key="QualifiedNameDepth" value="2"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WQzJcDrZEeGgAdAmWw4pyQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3ew4MELyEeGoAtSeIK7WLg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3ew4MULyEeGoAtSeIK7WLg" key="StereotypeList" value="FCM::PortKind"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3ew4MkLyEeGoAtSeIK7WLg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3exfQELyEeGoAtSeIK7WLg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3exfQULyEeGoAtSeIK7WLg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0-sbtLnYEeCxXoyQxQ47PQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0-sbtbnYEeCxXoyQxQ47PQ" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0-sbtrnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0-sbt7nYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-sbuLnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0-sbubnYEeCxXoyQxQ47PQ" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0-sburnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0-sbu7nYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-sbvLnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0-sbvbnYEeCxXoyQxQ47PQ" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0-sbvrnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0-sbv7nYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-sbwLnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="corecpp.uml#_WtrfwlDlEd6cwecVIgl9nw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-rNkbnYEeCxXoyQxQ47PQ" x="54" y="243" width="127" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0-9hcLnYEeCxXoyQxQ47PQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0-9hcrnYEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0-9hc7nYEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0--IgLnYEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0--IgbnYEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0--IgrnYEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0--Ig7nYEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Qp1g8DrZEeGgAdAmWw4pyQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RBtG8ELzEeGoAtSeIK7WLg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RBtuAELzEeGoAtSeIK7WLg" key="StereotypeList" value="FCM::PortKind"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RBtuAULzEeGoAtSeIK7WLg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RBtuAkLzEeGoAtSeIK7WLg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RBtuA0LzEeGoAtSeIK7WLg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0--IhLnYEeCxXoyQxQ47PQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0--IhbnYEeCxXoyQxQ47PQ" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0--IhrnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0--Ih7nYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0--IiLnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0--IibnYEeCxXoyQxQ47PQ" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0--IirnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0--Ii7nYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0--IjLnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0--IjbnYEeCxXoyQxQ47PQ" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0--IjrnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0--Ij7nYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0--IkLnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="corecpp.uml#_Wtrfw1DlEd6cwecVIgl9nw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-9hcbnYEeCxXoyQxQ47PQ" x="54" y="81" width="127" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0_OnMLnYEeCxXoyQxQ47PQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0_POQLnYEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0_POQbnYEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0_POQrnYEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0_POQ7nYEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0_PORLnYEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0_PORbnYEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SXn4cDrZEeGgAdAmWw4pyQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Nq_p0ELzEeGoAtSeIK7WLg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Nq_p0ULzEeGoAtSeIK7WLg" key="StereotypeList" value="FCM::PortKind"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Nq_p0kLzEeGoAtSeIK7WLg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NrAQ4ELzEeGoAtSeIK7WLg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NrAQ4ULzEeGoAtSeIK7WLg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0_PORrnYEeCxXoyQxQ47PQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0_POR7nYEeCxXoyQxQ47PQ" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0_POSLnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0_POSbnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0_POSrnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0_P1ULnYEeCxXoyQxQ47PQ" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0_P1UbnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0_P1UrnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0_P1U7nYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0_P1VLnYEeCxXoyQxQ47PQ" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0_P1VbnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0_P1VrnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0_P1V7nYEeCxXoyQxQ47PQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="corecpp.uml#__nMrwLqNEd-SedGzMDDkww"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0_OnMbnYEeCxXoyQxQ47PQ" x="54" y="135" width="127" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0_j-YLnYEeCxXoyQxQ47PQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0_klcLnYEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0_klcbnYEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0_lMgLnYEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0_lMgbnYEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0_lMgrnYEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0_lMg7nYEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Uc_pgDrZEeGgAdAmWw4pyQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TA9QMENnEeGoAtSeIK7WLg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TA9QMUNnEeGoAtSeIK7WLg" key="StereotypeList" value="FCM::PortKind"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TA9QMkNnEeGoAtSeIK7WLg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TA9QM0NnEeGoAtSeIK7WLg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TA93QENnEeGoAtSeIK7WLg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0_lMhLnYEeCxXoyQxQ47PQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0_lMhbnYEeCxXoyQxQ47PQ" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0_lMhrnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0_lMh7nYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0_lMiLnYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0_lzkLnYEeCxXoyQxQ47PQ" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0_lzkbnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0_lzkrnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0_lzk7nYEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0_lzlLnYEeCxXoyQxQ47PQ" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0_lzlbnYEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0_lzlrnYEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0_lzl7nYEeCxXoyQxQ47PQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="corecpp.uml#_AQZZwLqOEd-SedGzMDDkww"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0_j-YbnYEeCxXoyQxQ47PQ" x="54" y="189" width="127" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Fw1jMLnZEeCxXoyQxQ47PQ" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Fw3YYLnZEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Fw3YYbnZEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Fw3YYrnZEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Fw3YY7nZEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Fw3YZLnZEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Fw3YZbnZEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Fw3YZrnZEeCxXoyQxQ47PQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="corecpp.uml#_FryEELnZEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Fw1jMbnZEeCxXoyQxQ47PQ" x="252" y="24" width="469" height="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_K19p8LnZEeCxXoyQxQ47PQ" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_K1-RALnZEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_K1-RAbnZEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_K1-RArnZEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_K1-4ELnZEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_K1-4EbnZEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_K1-4ErnZEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_K1-4E7nZEeCxXoyQxQ47PQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="corecpp.uml#_K17NsLnZEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_K19p8bnZEeCxXoyQxQ47PQ" x="252" y="83" width="469" height="35"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Px1uELnZEeCxXoyQxQ47PQ" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Px2VILnZEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Px2VIbnZEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Px2VIrnZEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Px28MLnZEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Px28MbnZEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Px28MrnZEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Px28M7nZEeCxXoyQxQ47PQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="corecpp.uml#_PxzR0LnZEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Px1uEbnZEeCxXoyQxQ47PQ" x="252" y="136" width="469" height="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_l4_LYLnZEeCxXoyQxQ47PQ" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_l4_LYbnZEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_l4_LYrnZEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_l4_LY7nZEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_l4_LZLnZEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_l4_LZbnZEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_l4_LZrnZEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_l4_LZ7nZEeCxXoyQxQ47PQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="corecpp.uml#_l49WMLnZEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l4_LaLnZEeCxXoyQxQ47PQ" x="252" y="189" width="469" height="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2dxzYLnZEeCxXoyQxQ47PQ" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2dyacLnZEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2dyacbnZEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2dyacrnZEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2dyac7nZEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2dyadLnZEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2dyadbnZEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2dzBgLnZEeCxXoyQxQ47PQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="corecpp.uml#_2dvXILnZEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2dxzYbnZEeCxXoyQxQ47PQ" x="253" y="297" width="468" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FMviMLnaEeCxXoyQxQ47PQ" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FMviMbnaEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FMviMrnaEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FMviM7naEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FMviNLnaEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FMviNbnaEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FMviNrnaEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FMviN7naEeCxXoyQxQ47PQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="corecpp.uml#_FMuUELnaEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FMviOLnaEeCxXoyQxQ47PQ" x="252" y="243" width="468" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Ggu5oLnaEeCxXoyQxQ47PQ" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ggu5obnaEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ggu5ornaEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ggu5o7naEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ggu5pLnaEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ggu5pbnaEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ggu5prnaEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Ggu5p7naEeCxXoyQxQ47PQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="corecpp.uml#_GgtrgLnaEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ggu5qLnaEeCxXoyQxQ47PQ" x="252" y="351" width="468" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-bqrQDiyEeGiupyIkgMHVw" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-bsgcDiyEeGiupyIkgMHVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-bsgcTiyEeGiupyIkgMHVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-bsgcjiyEeGiupyIkgMHVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-bsgcziyEeGiupyIkgMHVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-bsgdDiyEeGiupyIkgMHVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-bsgdTiyEeGiupyIkgMHVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-btHgDiyEeGiupyIkgMHVw" type="5038"/>
+ <element xmi:type="uml:Comment" href="corecpp.uml#_-UGDoDiyEeGiupyIkgMHVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-bqrQTiyEeGiupyIkgMHVw" x="18" y="459" width="595" height="28"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GkKYAC8qEeKx7OxAiA06uw" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GkM0QC8qEeKx7OxAiA06uw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GkM0QS8qEeKx7OxAiA06uw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GkNbUC8qEeKx7OxAiA06uw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GkNbUS8qEeKx7OxAiA06uw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GkNbUi8qEeKx7OxAiA06uw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GkNbUy8qEeKx7OxAiA06uw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_St0RcC8qEeKx7OxAiA06uw" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__1wMYEMLEeKGIL695HkFYQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__1wMYUMLEeKGIL695HkFYQ" key="StereotypeList" value="FCM::PortKind"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__1wMYkMLEeKGIL695HkFYQ" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__1wMY0MLEeKGIL695HkFYQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__1wMZEMLEeKGIL695HkFYQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_GkNbVC8qEeKx7OxAiA06uw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GkOCYC8qEeKx7OxAiA06uw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GkOCYS8qEeKx7OxAiA06uw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GkOCYi8qEeKx7OxAiA06uw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GkOCYy8qEeKx7OxAiA06uw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GkOCZC8qEeKx7OxAiA06uw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GkOCZS8qEeKx7OxAiA06uw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GkOCZi8qEeKx7OxAiA06uw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GkOCZy8qEeKx7OxAiA06uw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GkOCaC8qEeKx7OxAiA06uw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GkOCaS8qEeKx7OxAiA06uw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GkOCai8qEeKx7OxAiA06uw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GkOCay8qEeKx7OxAiA06uw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GkOCbC8qEeKx7OxAiA06uw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GkOCbS8qEeKx7OxAiA06uw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GkOCbi8qEeKx7OxAiA06uw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="corecpp.uml#_GjnlcC8qEeKx7OxAiA06uw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GkK_EC8qEeKx7OxAiA06uw" x="54" y="405" width="127" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CQkpAEMMEeKGIL695HkFYQ" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CQoTYEMMEeKGIL695HkFYQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CQo6cEMMEeKGIL695HkFYQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CQo6cUMMEeKGIL695HkFYQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CQo6ckMMEeKGIL695HkFYQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CQo6c0MMEeKGIL695HkFYQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CQphgEMMEeKGIL695HkFYQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CQphgUMMEeKGIL695HkFYQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="corecpp.uml#_COvdAEMMEeKGIL695HkFYQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CQkpAUMMEeKGIL695HkFYQ" x="252" y="405" width="469" height="37"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_0IaT8bnYEeCxXoyQxQ47PQ"/>
+ <element xmi:type="uml:Package" href="corecpp.uml#_QwvnQFDlEd6cwecVIgl9nw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_jEPL0LnZEeCxXoyQxQ47PQ" type="4013" source="_Fw1jMLnZEeCxXoyQxQ47PQ" target="_09vZcLnYEeCxXoyQxQ47PQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_jEPy4LnZEeCxXoyQxQ47PQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_jEPy4bnZEeCxXoyQxQ47PQ" points="[-4, 1, 86, 0]$[-87, 0, 3, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jES2MLnZEeCxXoyQxQ47PQ" id="(0.012084592145015106,0.525)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jES2MbnZEeCxXoyQxQ47PQ" id="(0.9724770642201835,0.4864864864864865)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ju3dMLnZEeCxXoyQxQ47PQ" type="4013" source="_K19p8LnZEeCxXoyQxQ47PQ" target="_0-9hcLnYEeCxXoyQxQ47PQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_ju3dMbnZEeCxXoyQxQ47PQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ju3dMrnZEeCxXoyQxQ47PQ" points="[-5, 0, 137, 2]$[-87, 0, 55, 2]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ju7uoLnZEeCxXoyQxQ47PQ" id="(0.015060240963855422,0.5142857142857142)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kSsjALnZEeCxXoyQxQ47PQ" type="4013" source="_Px1uELnZEeCxXoyQxQ47PQ" target="_0_OnMLnYEeCxXoyQxQ47PQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_kSsjAbnZEeCxXoyQxQ47PQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kSsjArnZEeCxXoyQxQ47PQ" points="[-13, 6, 136, 5]$[-94, 6, 55, 5]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kSyCkLnZEeCxXoyQxQ47PQ" id="(0.03903903903903904,0.42105263157894735)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_pgZ-ALnZEeCxXoyQxQ47PQ" type="4013" source="_l4_LYLnZEeCxXoyQxQ47PQ" target="_0_j-YLnYEeCxXoyQxQ47PQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_pgZ-AbnZEeCxXoyQxQ47PQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pgZ-ArnZEeCxXoyQxQ47PQ" points="[-4, 2, 106, 0]$[-93, 1, 17, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pge2gLnZEeCxXoyQxQ47PQ" id="(0.012012012012012012,0.39473684210526316)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pge2gbnZEeCxXoyQxQ47PQ" id="(0.8440366972477065,0.4594594594594595)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_MhrIYLnaEeCxXoyQxQ47PQ" type="4013" source="_2dxzYLnZEeCxXoyQxQ47PQ" target="_0-XrkLnYEeCxXoyQxQ47PQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_MhrIYbnaEeCxXoyQxQ47PQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_MhrIYrnaEeCxXoyQxQ47PQ" points="[-9, -1, 113, 0]$[-99, -1, 23, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MhuywLnaEeCxXoyQxQ47PQ" id="(0.00641025641025641,0.5405405405405406)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MhuywbnaEeCxXoyQxQ47PQ" id="(0.963302752293578,0.5135135135135135)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NJn5MLnaEeCxXoyQxQ47PQ" type="4013" source="_FMviMLnaEeCxXoyQxQ47PQ" target="_0-rNkLnYEeCxXoyQxQ47PQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NJn5MbnaEeCxXoyQxQ47PQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NJn5MrnaEeCxXoyQxQ47PQ" points="[-20, -1, 144, 5]$[-109, -1, 55, 5]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NJq8gLnaEeCxXoyQxQ47PQ" id="(0.042735042735042736,0.47058823529411764)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NplLoLnaEeCxXoyQxQ47PQ" type="4013" source="_Ggu5oLnaEeCxXoyQxQ47PQ" target="_0-EJkLnYEeCxXoyQxQ47PQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NplLobnaEeCxXoyQxQ47PQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NplLornaEeCxXoyQxQ47PQ" points="[-7, -6, 106, 0]$[-96, -7, 17, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NppdELnaEeCxXoyQxQ47PQ" id="(0.014957264957264958,0.45098039215686275)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NppdEbnaEeCxXoyQxQ47PQ" id="(0.8440366972477065,0.4594594594594595)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_McYVsEMMEeKGIL695HkFYQ" type="4013" source="_CQkpAEMMEeKGIL695HkFYQ" target="_GkKYAC8qEeKx7OxAiA06uw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_McYVsUMMEeKGIL695HkFYQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_McYVskMMEeKGIL695HkFYQ" points="[-3, 0, 115, 0]$[-92, 0, 26, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Mcj74EMMEeKGIL695HkFYQ" id="(0.006396588486140725,0.35714285714285715)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Mcj74UMMEeKGIL695HkFYQ" id="(0.7614678899082569,0.5135135135135135)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_SstwYPEnEeCIafpoJVk7CQ" type="CompositeStructure" name="ContainerRules" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_V3-LcPEnEeCIafpoJVk7CQ" type="2073" fontName="Arial" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V4AnsPEnEeCIafpoJVk7CQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V4AnsfEnEeCIafpoJVk7CQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V4AnsvEnEeCIafpoJVk7CQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V4Ans_EnEeCIafpoJVk7CQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V4BOwPEnEeCIafpoJVk7CQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V4BOwfEnEeCIafpoJVk7CQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HPEWAPQUEeCovO8AYZymZQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HPEWAfQUEeCovO8AYZymZQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HPE9EPQUEeCovO8AYZymZQ" key="StereotypeList" value="FCM::ContainerRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HPE9EfQUEeCovO8AYZymZQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HPE9EvQUEeCovO8AYZymZQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HPE9E_QUEeCovO8AYZymZQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_V4BOwvEnEeCIafpoJVk7CQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_V4BOw_EnEeCIafpoJVk7CQ" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_mxqE4PTWEeCn1-FCrfecFg" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mxrTAPTWEeCn1-FCrfecFg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mxr6EPTWEeCn1-FCrfecFg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mxr6EfTWEeCn1-FCrfecFg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mxr6EvTWEeCn1-FCrfecFg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mxr6E_TWEeCn1-FCrfecFg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mxr6FPTWEeCn1-FCrfecFg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qmq1AAJzEeG0Lb1KYG16fA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qmrcEAJzEeG0Lb1KYG16fA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qmrcEQJzEeG0Lb1KYG16fA" key="StereotypeList" value="FCM::InterceptionRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qmrcEgJzEeG0Lb1KYG16fA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qmrcEwJzEeG0Lb1KYG16fA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qmrcFAJzEeG0Lb1KYG16fA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mxr6FfTWEeCn1-FCrfecFg" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RtvSsFjmEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RzCCYFjmEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mxshIPTWEeCn1-FCrfecFg" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mxshIfTWEeCn1-FCrfecFg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mxshIvTWEeCn1-FCrfecFg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_y3lU4PTWEeCn1-FCrfecFg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y3mjAPTWEeCn1-FCrfecFg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y3nKEPTWEeCn1-FCrfecFg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y3nKEfTWEeCn1-FCrfecFg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y3nKEvTWEeCn1-FCrfecFg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y3nKE_TWEeCn1-FCrfecFg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y3nKFPTWEeCn1-FCrfecFg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WiNb0DrUEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XNgbkDrUEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XNgbkTrUEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XNhCoDrUEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XNhCoTrUEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XNhCojrUEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_y3nKFfTWEeCn1-FCrfecFg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QlkJsFjmEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QplHAFjmEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y3nxIPTWEeCn1-FCrfecFg" x="-90" y="38"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_y3nxIfTWEeCn1-FCrfecFg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y3nxIvTWEeCn1-FCrfecFg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_ZjdOAP-EEd6628OhKk_dpg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y3lU4fTWEeCn1-FCrfecFg" x="189" y="7"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_y3oYMPTWEeCn1-FCrfecFg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y3pmUPTWEeCn1-FCrfecFg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y3pmUfTWEeCn1-FCrfecFg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y3pmUvTWEeCn1-FCrfecFg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y3pmU_TWEeCn1-FCrfecFg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y3pmVPTWEeCn1-FCrfecFg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y3qNYPTWEeCn1-FCrfecFg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VXcR0DrUEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vt_woDrUEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vt_woTrUEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vt_wojrUEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VuAXsDrUEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VuAXsTrUEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_y3qNYfTWEeCn1-FCrfecFg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QEIQkFjmEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QK0HYFjmEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y3qNYvTWEeCn1-FCrfecFg" x="-17" y="-34"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_y3qNY_TWEeCn1-FCrfecFg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y3qNZPTWEeCn1-FCrfecFg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y3o_QPTWEeCn1-FCrfecFg" x="-10" y="7"/>
+ </children>
+ <element xmi:type="uml:Property" href="corecpp.uml#_mvN04PTWEeCn1-FCrfecFg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mxqE4fTWEeCn1-FCrfecFg" x="31" y="31" width="199" height="37"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_V4BOxPEnEeCIafpoJVk7CQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V4BOxfEnEeCIafpoJVk7CQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_14WtMARJEd--t-uhRn9OBA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V3-LcfEnEeCIafpoJVk7CQ" x="72" y="36" width="262" height="145"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_W2m98PEnEeCIafpoJVk7CQ" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_W2nlAPEnEeCIafpoJVk7CQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_W2nlAfEnEeCIafpoJVk7CQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_W2nlAvEnEeCIafpoJVk7CQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_W2nlA_EnEeCIafpoJVk7CQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_W2nlBPEnEeCIafpoJVk7CQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_W2nlBfEnEeCIafpoJVk7CQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_W2oMEPEnEeCIafpoJVk7CQ" type="5192"/>
+ <element xmi:type="uml:Comment" href="corecpp.uml#_q-kFUMTJEd-cLazKlAeYsQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_W2m98fEnEeCIafpoJVk7CQ" x="378" y="54" width="429"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_HDAUACjaEeGFbebITJYb9g" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HDA7ECjaEeGFbebITJYb9g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HDA7ESjaEeGFbebITJYb9g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HDA7EijaEeGFbebITJYb9g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HDA7EyjaEeGFbebITJYb9g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HDA7FCjaEeGFbebITJYb9g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HDA7FSjaEeGFbebITJYb9g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MUh4ACjaEeGFbebITJYb9g" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MUh4ASjaEeGFbebITJYb9g" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MUh4AijaEeGFbebITJYb9g" key="StereotypeList" value="FCM::ContainerRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MUh4AyjaEeGFbebITJYb9g" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MUh4BCjaEeGFbebITJYb9g" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MUh4BSjaEeGFbebITJYb9g" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_HDA7FijaEeGFbebITJYb9g" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_HDA7FyjaEeGFbebITJYb9g" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_JWCGkCjaEeGFbebITJYb9g" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JWCtoCjaEeGFbebITJYb9g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JWCtoSjaEeGFbebITJYb9g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JWCtoijaEeGFbebITJYb9g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JWCtoyjaEeGFbebITJYb9g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JWCtpCjaEeGFbebITJYb9g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JWCtpSjaEeGFbebITJYb9g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JWCtpijaEeGFbebITJYb9g" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PdThIFjmEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PlvrcFjmEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JWCtpyjaEeGFbebITJYb9g" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JWCtqCjaEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JWCtqSjaEeGFbebITJYb9g"/>
+ </children>
+ <element xmi:type="uml:Property" href="corecpp.uml#_6yVMkCjZEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JWCGkSjaEeGFbebITJYb9g" x="10" y="10" width="156"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_HDA7GCjaEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HDA7GSjaEeGFbebITJYb9g"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_1sCBICjZEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HDAUASjaEeGFbebITJYb9g" x="72" y="252" width="261" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_H0i7YDbgEeGdqp2YT1LwWw" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H0jicDbgEeGdqp2YT1LwWw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H0jicTbgEeGdqp2YT1LwWw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H0jicjbgEeGdqp2YT1LwWw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H0jiczbgEeGdqp2YT1LwWw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H0jidDbgEeGdqp2YT1LwWw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H0jidTbgEeGdqp2YT1LwWw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_H0jidjbgEeGdqp2YT1LwWw" type="5192"/>
+ <element xmi:type="uml:Comment" href="corecpp.uml#_H0IrsDbgEeGdqp2YT1LwWw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H0i7YTbgEeGdqp2YT1LwWw" x="378" y="261" width="217"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_SstwYfEnEeCIafpoJVk7CQ"/>
+ <element xmi:type="uml:Package" href="corecpp.uml#_y4qB4ARJEd--t-uhRn9OBA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_YjbFEPEnEeCIafpoJVk7CQ" type="4002" source="_W2m98PEnEeCIafpoJVk7CQ" target="_V3-LcPEnEeCIafpoJVk7CQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_YjbFEfEnEeCIafpoJVk7CQ" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YjbFEvEnEeCIafpoJVk7CQ" points="[-11, -4, 128, 36]$[-126, -42, 13, -2]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YjcTMPEnEeCIafpoJVk7CQ" id="(0.01,0.38333333333333336)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YjcTMfEnEeCIafpoJVk7CQ" id="(0.8602150537634409,0.45)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NK3f0DbgEeGdqp2YT1LwWw" type="4002" source="_H0i7YDbgEeGdqp2YT1LwWw" target="_HDAUACjaEeGFbebITJYb9g" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NK3f0TbgEeGdqp2YT1LwWw" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NK3f0jbgEeGdqp2YT1LwWw" points="[-18, 3, 77, 0]$[-63, 2, 32, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NLz7ADbgEeGdqp2YT1LwWw" id="(0.08294930875576037,0.6)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NL0iEDbgEeGdqp2YT1LwWw" id="(0.8773946360153256,0.4752475247524752)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_eblvwPM_EeCovO8AYZymZQ" type="CompositeStructure" name="Composite: ContainerServices " measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_JRsvcPNAEeCovO8AYZymZQ" type="2073" fontName="" fontHeight="10" fillColor="8047085" transparency="50" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JRtWgPNAEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JRtWgfNAEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JRtWgvNAEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JRtWg_NAEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JRtWhPNAEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JRtWhfNAEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JRtWhvNAEeCovO8AYZymZQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JRtWh_NAEeCovO8AYZymZQ" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_k-Qe0PN8EeCovO8AYZymZQ" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_k-RF4PN8EeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k-RF4fN8EeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_k-RF4vN8EeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k-RF4_N8EeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_k-RF5PN8EeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k-RF5fN8EeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_k-RF5vN8EeCovO8AYZymZQ" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iWRp4FaDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ivBhEFaDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="60"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_k-Rs8PN8EeCovO8AYZymZQ" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_k-Rs8fN8EeCovO8AYZymZQ" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k-Rs8vN8EeCovO8AYZymZQ"/>
+ </children>
+ <element xmi:type="uml:Property" href="corecpp.uml#_k-OpoPN8EeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k-Qe0fN8EeCovO8AYZymZQ" x="24" y="41" width="165" height="23"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__a22APQXEeCovO8AYZymZQ" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__a3dEPQXEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__a4EIPQXEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__a4EIfQXEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__a4EIvQXEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__a4EI_QXEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__a4EJPQXEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="__a4EJfQXEeCovO8AYZymZQ" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fzb5sFaDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gCiFoFaDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__a4EJvQXEeCovO8AYZymZQ" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__a4EJ_QXEeCovO8AYZymZQ" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__a4EKPQXEeCovO8AYZymZQ"/>
+ </children>
+ <element xmi:type="uml:Property" href="corecpp.uml#__a1A0PQXEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__a22AfQXEeCovO8AYZymZQ" x="24" y="5" width="165" height="23"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_KnUHYPQYEeCovO8AYZymZQ" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KnUHYvQYEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KnUHY_QYEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KnUucPQYEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KnUucfQYEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KnUucvQYEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KnUuc_QYEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_KnUudPQYEeCovO8AYZymZQ" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hLhG8FaDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hSXV0FaDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_KnUudfQYEeCovO8AYZymZQ" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_KnUudvQYEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KnUud_QYEeCovO8AYZymZQ"/>
+ </children>
+ <element xmi:type="uml:Property" href="corecpp.uml#_KnS5QPQYEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KnUHYfQYEeCovO8AYZymZQ" x="24" y="83" width="165" height="23"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JRtWiPNAEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JRtWifNAEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_M0b2YPNAEeCovO8AYZymZQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_M0cdcPNAEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M0cdcfNAEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_M0cdcvNAEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M0cdc_NAEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_M0dEgPNAEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M0dEgfNAEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZohFcDrUEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aMU9IDrUEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aMVkMDrUEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aMVkMTrUEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aMVkMjrUEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aMVkMzrUEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_M0dEgvNAEeCovO8AYZymZQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dBgkoFaDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dM7xgFaDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_M0dEg_NAEeCovO8AYZymZQ" x="-134" y="-15"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_M0dEhPNAEeCovO8AYZymZQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_M0dEhfNAEeCovO8AYZymZQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_MzO8gPNAEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M0b2YfNAEeCovO8AYZymZQ" x="-10" y="60" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_JRmo0PNAEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JRsvcfNAEeCovO8AYZymZQ" x="171" y="32" width="212" height="159"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9dH0UCjYEeGFbebITJYb9g" type="2073" fontName="" fontHeight="10" fillColor="8047085" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9dIbYCjYEeGFbebITJYb9g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9dIbYSjYEeGFbebITJYb9g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9dIbYijYEeGFbebITJYb9g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9dIbYyjYEeGFbebITJYb9g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9dIbZCjYEeGFbebITJYb9g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9dIbZSjYEeGFbebITJYb9g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lTZl0CjZEeGFbebITJYb9g" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4p4K4M0zEeGV96JAv8cWdw" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4p4x8M0zEeGV96JAv8cWdw" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4p4x8c0zEeGV96JAv8cWdw" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4p4x8s0zEeGV96JAv8cWdw" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4p4x880zEeGV96JAv8cWdw" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9dJCcCjYEeGFbebITJYb9g" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9dJCcSjYEeGFbebITJYb9g" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9dJCcijYEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9dJCcyjYEeGFbebITJYb9g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AVlPMCjZEeGFbebITJYb9g" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AVl2QCjZEeGFbebITJYb9g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AVl2QSjZEeGFbebITJYb9g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AVl2QijZEeGFbebITJYb9g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AVl2QyjZEeGFbebITJYb9g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AVl2RCjZEeGFbebITJYb9g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AVmdUCjZEeGFbebITJYb9g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FBYM4DrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FX-H8DrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FX-H8TrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FX-H8jrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FX-vADrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FX-vATrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AVmdUSjZEeGFbebITJYb9g" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WOqX0FaDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WaM5cFaDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AVmdUijZEeGFbebITJYb9g" x="-72"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AVmdUyjZEeGFbebITJYb9g" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AVmdVCjZEeGFbebITJYb9g" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_ATRiECjZEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AVlPMSjZEeGFbebITJYb9g" x="207" y="45" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_f8HYECjZEeGFbebITJYb9g" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8H_ICjZEeGFbebITJYb9g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8H_ISjZEeGFbebITJYb9g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8H_IijZEeGFbebITJYb9g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8H_IyjZEeGFbebITJYb9g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8H_JCjZEeGFbebITJYb9g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8H_JSjZEeGFbebITJYb9g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GBY4YDrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GY2WIDrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GY29MDrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GY29MTrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GY29MjrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GY3kQDrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_f8H_JijZEeGFbebITJYb9g" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_W__uIFaDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XHxKEFaDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_f8H_JyjZEeGFbebITJYb9g" x="25"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_f8ImMCjZEeGFbebITJYb9g" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_f8ImMSjZEeGFbebITJYb9g" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8HYESjZEeGFbebITJYb9g" x="-10" y="45"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_9V8OQCjYEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9dH0USjYEeGFbebITJYb9g" x="171" y="302" width="217" height="92"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WoQnECjZEeGFbebITJYb9g" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WoROICjZEeGFbebITJYb9g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WoROISjZEeGFbebITJYb9g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WoROIijZEeGFbebITJYb9g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WoROIyjZEeGFbebITJYb9g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WoROJCjZEeGFbebITJYb9g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WoROJSjZEeGFbebITJYb9g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WoROJijZEeGFbebITJYb9g" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_WoROJyjZEeGFbebITJYb9g" visible="false" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WoROKCjZEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WoROKSjZEeGFbebITJYb9g"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WoQnESjZEeGFbebITJYb9g" x="171" y="250" width="217" height="26"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qz8ykCkAEeGDDbdzqSb4UA" type="2073" fontName="" fontHeight="10" fillColor="8047085" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8ykSkAEeGDDbdzqSb4UA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8ykikAEeGDDbdzqSb4UA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8ykykAEeGDDbdzqSb4UA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8ylCkAEeGDDbdzqSb4UA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8ylSkAEeGDDbdzqSb4UA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8ylikAEeGDDbdzqSb4UA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8ylykAEeGDDbdzqSb4UA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4rLycM0zEeGV96JAv8cWdw" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4rLycc0zEeGV96JAv8cWdw" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4rLycs0zEeGV96JAv8cWdw" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4rLyc80zEeGV96JAv8cWdw" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4rLydM0zEeGV96JAv8cWdw" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qz8ynSkAEeGDDbdzqSb4UA" type="5156">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8ynikAEeGDDbdzqSb4UA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8ynykAEeGDDbdzqSb4UA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8yoCkAEeGDDbdzqSb4UA" key="StereotypeList" value="FCM::ComponentImpl"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8yoSkAEeGDDbdzqSb4UA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8yoikAEeGDDbdzqSb4UA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8yoykAEeGDDbdzqSb4UA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qz8ypCkAEeGDDbdzqSb4UA" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_qz8ypSkAEeGDDbdzqSb4UA" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8ypikAEeGDDbdzqSb4UA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8ypykAEeGDDbdzqSb4UA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8yqCkAEeGDDbdzqSb4UA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8yqSkAEeGDDbdzqSb4UA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8yqikAEeGDDbdzqSb4UA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8yqykAEeGDDbdzqSb4UA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qz8yrCkAEeGDDbdzqSb4UA" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Vo5_YFaDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vv278FaDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qz8yrSkAEeGDDbdzqSb4UA" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qz8yrikAEeGDDbdzqSb4UA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qz8yrykAEeGDDbdzqSb4UA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qz8ysCkAEeGDDbdzqSb4UA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8ysSkAEeGDDbdzqSb4UA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8ysikAEeGDDbdzqSb4UA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8ysykAEeGDDbdzqSb4UA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8ytCkAEeGDDbdzqSb4UA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8ytSkAEeGDDbdzqSb4UA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8ytikAEeGDDbdzqSb4UA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_B-viUDrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CVcyIDrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CVcyITrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CVcyIjrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CVdZMDrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CVdZMTrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qz8ytykAEeGDDbdzqSb4UA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8yuCkAEeGDDbdzqSb4UA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bFaEUFaDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="12"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qz8yuikAEeGDDbdzqSb4UA" x="-36" y="-8"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qz8yuykAEeGDDbdzqSb4UA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qz8yvCkAEeGDDbdzqSb4UA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qz8yvSkAEeGDDbdzqSb4UA" x="63" y="-10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_4ksloCkAEeGDDbdzqSb4UA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4kwQACkAEeGDDbdzqSb4UA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4kwQASkAEeGDDbdzqSb4UA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4kwQAikAEeGDDbdzqSb4UA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4kwQAykAEeGDDbdzqSb4UA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4kwQBCkAEeGDDbdzqSb4UA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4kwQBSkAEeGDDbdzqSb4UA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DJ1ccDrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Da9osDrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Da9osTrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Da9osjrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Da9oszrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Da9otDrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4kwQBikAEeGDDbdzqSb4UA" visible="false" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AP6k4CkBEeGDDbdzqSb4UA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AP7L8CkBEeGDDbdzqSb4UA" key="CustomAppearance_MaskValue" value="46"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4kwQBykAEeGDDbdzqSb4UA" x="18" y="-18"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4kw3ECkAEeGDDbdzqSb4UA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4kw3ESkAEeGDDbdzqSb4UA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_ATRiECjZEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4ksloSkAEeGDDbdzqSb4UA" x="153" y="16"/>
+ </children>
+ <element xmi:type="uml:Property" href="corecpp.uml#_ARs_UCjaEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qz8yvikAEeGDDbdzqSb4UA" x="22" y="103" width="163" height="51"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qz8yvykAEeGDDbdzqSb4UA" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8ywCkAEeGDDbdzqSb4UA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8ywSkAEeGDDbdzqSb4UA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8ywikAEeGDDbdzqSb4UA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8ywykAEeGDDbdzqSb4UA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8yxCkAEeGDDbdzqSb4UA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8yxSkAEeGDDbdzqSb4UA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qz8yxikAEeGDDbdzqSb4UA" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UO2cMFaDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UlpLkFaDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qz8yxykAEeGDDbdzqSb4UA" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qz8yyCkAEeGDDbdzqSb4UA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qz8yySkAEeGDDbdzqSb4UA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qz8yyikAEeGDDbdzqSb4UA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8yyykAEeGDDbdzqSb4UA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8yzCkAEeGDDbdzqSb4UA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8yzSkAEeGDDbdzqSb4UA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8yzikAEeGDDbdzqSb4UA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8yzykAEeGDDbdzqSb4UA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qz8y0CkAEeGDDbdzqSb4UA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_A92GADrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BOcGwDrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BOcGwTrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BOcGwjrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BOcGwzrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BOcGxDrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qz8y0SkAEeGDDbdzqSb4UA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qz8y0ikAEeGDDbdzqSb4UA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cTAf4FaDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="12"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qz8y1CkAEeGDDbdzqSb4UA" x="27" y="18"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qz8y1SkAEeGDDbdzqSb4UA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qz8y1ikAEeGDDbdzqSb4UA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_ZjdOAP-EEd6628OhKk_dpg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qz8y1ykAEeGDDbdzqSb4UA" x="63" y="42"/>
+ </children>
+ <element xmi:type="uml:Property" href="corecpp.uml#_RMqEkCjaEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qz8y2CkAEeGDDbdzqSb4UA" x="22" y="7" width="163" height="52"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qz8y2SkAEeGDDbdzqSb4UA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qz8y2ikAEeGDDbdzqSb4UA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3PyBICkAEeGDDbdzqSb4UA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3PyoMCkAEeGDDbdzqSb4UA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3PyoMSkAEeGDDbdzqSb4UA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3PzPQCkAEeGDDbdzqSb4UA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3PzPQSkAEeGDDbdzqSb4UA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3PzPQikAEeGDDbdzqSb4UA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3PzPQykAEeGDDbdzqSb4UA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EFQi4DrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EWD_ADrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EWD_ATrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EWD_AjrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EWD_AzrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EWD_BDrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3PzPRCkAEeGDDbdzqSb4UA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aE63sFaDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aMll8FaDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3PzPRSkAEeGDDbdzqSb4UA" x="-81" y="-9"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3PzPRikAEeGDDbdzqSb4UA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3PzPRykAEeGDDbdzqSb4UA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_3NSGwCkAEeGDDbdzqSb4UA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3PyBISkAEeGDDbdzqSb4UA" x="288" y="144" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_-X6zMCjZEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qz8y2ykAEeGDDbdzqSb4UA" x="455" y="39" width="298" height="199"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_ebmW0PM_EeCovO8AYZymZQ"/>
+ <element xmi:type="uml:Package" href="corecpp.uml#_xtlE8ARAEd--t-uhRn9OBA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_Y7Vc8CjZEeGFbebITJYb9g" type="4015" source="_9dH0UCjYEeGFbebITJYb9g" target="_WoQnECjZEeGFbebITJYb9g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Y7WrECjZEeGFbebITJYb9g" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Y7WrESjZEeGFbebITJYb9g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Y7Vc8SjZEeGFbebITJYb9g" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corecpp.uml#_Y6lPACjZEeGFbebITJYb9g"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Y7Vc8ijZEeGFbebITJYb9g" points="[4, -11, 7, 30]$[4, -63, 7, -22]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Y-dpcCjZEeGFbebITJYb9g" id="(0.50625,0.11956521739130435)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_1VKukCkAEeGDDbdzqSb4UA" type="4013" source="_qz8yyikAEeGDDbdzqSb4UA" target="_qz8ysCkAEeGDDbdzqSb4UA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1VL8sCkAEeGDDbdzqSb4UA" type="6025">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1VL8sSkAEeGDDbdzqSb4UA" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1VL8sikAEeGDDbdzqSb4UA" visible="false" type="6050">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1VMjwCkAEeGDDbdzqSb4UA" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1VMjwSkAEeGDDbdzqSb4UA" visible="false" type="6051">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1VMjwikAEeGDDbdzqSb4UA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1VMjwykAEeGDDbdzqSb4UA" visible="false" type="6052">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1VMjxCkAEeGDDbdzqSb4UA" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_1VKukSkAEeGDDbdzqSb4UA" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Connector" href="corecpp.uml#_iDCL0CjaEeGFbebITJYb9g"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1VKukikAEeGDDbdzqSb4UA" points="[0, 10, 0, -34]$[0, 34, 0, -10]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_85CvsCkAEeGDDbdzqSb4UA" type="4013" source="_4ksloCkAEeGDDbdzqSb4UA" target="_3PyBICkAEeGDDbdzqSb4UA" routing="Rectilinear" closestDistance="true" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_85D90CkAEeGDDbdzqSb4UA" type="6025">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_85D90SkAEeGDDbdzqSb4UA" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_85D90ikAEeGDDbdzqSb4UA" visible="false" type="6050">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_85D90ykAEeGDDbdzqSb4UA" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_85D91CkAEeGDDbdzqSb4UA" visible="false" type="6051">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_85D91SkAEeGDDbdzqSb4UA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_85D91ikAEeGDDbdzqSb4UA" visible="false" type="6052">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_85D91ykAEeGDDbdzqSb4UA" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_85CvsSkAEeGDDbdzqSb4UA" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Connector" href="corecpp.uml#_84IJsCkAEeGDDbdzqSb4UA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_85CvsikAEeGDDbdzqSb4UA" points="[10, 4, -220, 14]$[71, 4, -159, 14]$[71, -10, -159, 0]$[227, -10, -3, 0]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_864iwCkAEeGDDbdzqSb4UA" id="(0.15,0.45)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_hyLz8PNGEeCovO8AYZymZQ" type="CompositeStructure" name="composite: Marshalling" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_iVJ-IPNGEeCovO8AYZymZQ" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iVJ-IvNGEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iVKlMPNGEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iVKlMfNGEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iVKlMvNGEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iVKlM_NGEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iVKlNPNGEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iVKlNfNGEeCovO8AYZymZQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_iVKlNvNGEeCovO8AYZymZQ" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_iVKlN_NGEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iVKlOPNGEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZjCy0PNHEeCovO8AYZymZQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZjDZ4PNHEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZjDZ4fNHEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZjDZ4vNHEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZjDZ4_NHEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZjDZ5PNHEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZjDZ5fNHEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_N6_48DrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OOwicDrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OOwicTrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OOwicjrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OOwiczrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OOwidDrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZjEA8PNHEeCovO8AYZymZQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cZt34EN-EeGfhclnRyNzoA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cfyMwE4hEeKNVONx4BgsGg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZjEA8fNHEeCovO8AYZymZQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZjEA8vNHEeCovO8AYZymZQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZjEA8_NHEeCovO8AYZymZQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_rSCxUAytEd6it_RkGhz_AA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZjCy0fNHEeCovO8AYZymZQ" x="117" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_iVa2wEN9EeGfhclnRyNzoA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iVbd0EN9EeGfhclnRyNzoA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iVbd0UN9EeGfhclnRyNzoA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iVbd0kN9EeGfhclnRyNzoA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iVbd00N9EeGfhclnRyNzoA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iVbd1EN9EeGfhclnRyNzoA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iVbd1UN9EeGfhclnRyNzoA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jaKRQEN9EeGfhclnRyNzoA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jtyX4EN9EeGfhclnRyNzoA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jtyX4UN9EeGfhclnRyNzoA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jtyX4kN9EeGfhclnRyNzoA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jty-8EN9EeGfhclnRyNzoA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jty-8UN9EeGfhclnRyNzoA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iVbd1kN9EeGfhclnRyNzoA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YRiFEEN_EeGfhclnRyNzoA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZxVCcE4hEeKNVONx4BgsGg" key="CustomAppearance_MaskValue" value="20"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iVbd10N9EeGfhclnRyNzoA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iVcE4EN9EeGfhclnRyNzoA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iVcE4UN9EeGfhclnRyNzoA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_MhH6cENxEeGoAtSeIK7WLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iVa2wUN9EeGfhclnRyNzoA" x="-10" y="36"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_b_yh4AzyEd6it_RkGhz_AA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iVJ-IfNGEeCovO8AYZymZQ" x="90" y="279" width="127" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kENg8PNGEeCovO8AYZymZQ" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kEOIAPNGEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kEOIAfNGEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kEOIAvNGEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kEOIA_NGEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kEOIBPNGEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kEOIBfNGEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kEOvEPNGEeCovO8AYZymZQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kEOvEfNGEeCovO8AYZymZQ" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kEOvEvNGEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kEOvE_NGEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qJrqYPNGEeCovO8AYZymZQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qJsRcPNGEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qJsRcfNGEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qJsRcvNGEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qJsRc_NGEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qJsRdPNGEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qJsRdfNGEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JbRlUDrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JrZE8DrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JrZE8TrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JrZsADrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JrZsATrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JrZsAjrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qJsRdvNGEeCovO8AYZymZQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ezv2kFjoEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FAR2sFjoEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qJsRd_NGEeCovO8AYZymZQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qJsRePNGEeCovO8AYZymZQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qJsRefNGEeCovO8AYZymZQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qJrqYfNGEeCovO8AYZymZQ" x="-10" y="36"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_j29X4NttEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kENg8fNGEeCovO8AYZymZQ" x="90" y="36" width="316" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_mqiqAPNGEeCovO8AYZymZQ" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mqjREPNGEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mqjREfNGEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mqjREvNGEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mqjRE_NGEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mqj4IPNGEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mqj4IfNGEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mqj4IvNGEeCovO8AYZymZQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mqj4I_NGEeCovO8AYZymZQ" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mqj4JPNGEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mqj4JfNGEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_bc1mAPNHEeCovO8AYZymZQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bc2NEPNHEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bc2NEfNHEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bc2NEvNHEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bc2NE_NHEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bc2NFPNHEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bc2NFfNHEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_O-5l8DrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PVN0MDrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PVObQDrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PVObQTrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PVObQjrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PVObQzrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bc2NFvNHEeCovO8AYZymZQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Y0v8UEN-EeGfhclnRyNzoA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aYUJ8E4hEeKNVONx4BgsGg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bc2NF_NHEeCovO8AYZymZQ" x="19"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bc2NGPNHEeCovO8AYZymZQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bc2NGfNHEeCovO8AYZymZQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_r5Va0AytEd6it_RkGhz_AA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bc1mAfNHEeCovO8AYZymZQ" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cQDbAEN9EeGfhclnRyNzoA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cQECEEN9EeGfhclnRyNzoA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cQECEUN9EeGfhclnRyNzoA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cQECEkN9EeGfhclnRyNzoA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cQECE0N9EeGfhclnRyNzoA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cQECFEN9EeGfhclnRyNzoA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cQECFUN9EeGfhclnRyNzoA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gnyQQEN9EeGfhclnRyNzoA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_g-aAgEN9EeGfhclnRyNzoA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_g-aAgUN9EeGfhclnRyNzoA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_g-aAgkN9EeGfhclnRyNzoA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_g-aAg0N9EeGfhclnRyNzoA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_g-aAhEN9EeGfhclnRyNzoA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cQECFkN9EeGfhclnRyNzoA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XwXHIEN-EeGfhclnRyNzoA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a51ioE4hEeKNVONx4BgsGg" key="CustomAppearance_MaskValue" value="20"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cQECF0N9EeGfhclnRyNzoA" x="27"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cQECGEN9EeGfhclnRyNzoA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cQECGUN9EeGfhclnRyNzoA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_Zd558ENxEeGoAtSeIK7WLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cQDbAUN9EeGfhclnRyNzoA" x="117" y="36"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_fmF6MAzyEd6it_RkGhz_AA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mqiqAfNGEeCovO8AYZymZQ" x="396" y="279" width="127" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_o1VGkPNGEeCovO8AYZymZQ" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_o1VtoPNGEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_o1VtofNGEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_o1VtovNGEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_o1Vto_NGEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_o1WUsPNGEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_o1WUsfNGEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_o1WUsvNGEeCovO8AYZymZQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_o1WUs_NGEeCovO8AYZymZQ" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_o1WUtPNGEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_o1WUtfNGEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qpQiUPNGEeCovO8AYZymZQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qpRJYPNGEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qpRJYfNGEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qpRJYvNGEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qpRJY_NGEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qpRwcPNGEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qpRwcfNGEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RHYVYDrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RapPoDrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RapPoTrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Rap2sDrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Rap2sTrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Rap2sjrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qpRwcvNGEeCovO8AYZymZQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_h3CcMEN-EeGfhclnRyNzoA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lv9-sE4hEeKNVONx4BgsGg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qpRwc_NGEeCovO8AYZymZQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qpRwdPNGEeCovO8AYZymZQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qpRwdfNGEeCovO8AYZymZQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qpQiUfNGEeCovO8AYZymZQ" x="117" y="36"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_mIpj8Ns8Ed2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_o1VGkfNGEeCovO8AYZymZQ" x="468" y="36" width="127" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__uLGkPNGEeCovO8AYZymZQ" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__uLtoPNGEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__uLtofNGEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__uLtovNGEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__uLto_NGEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__uMUsPNGEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__uMUsfNGEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="__uMUsvNGEeCovO8AYZymZQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__uMUs_NGEeCovO8AYZymZQ" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__uMUtPNGEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__uMUtfNGEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_KNC08PQSEeCovO8AYZymZQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KNDcAPQSEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KNDcAfQSEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KNDcAvQSEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KNDcA_QSEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KNDcBPQSEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KNDcBfQSEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MhV-YDrVEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M0TWoDrVEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M0T9sDrVEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M0T9sTrVEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M0T9sjrVEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M0T9szrVEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_KNDcBvQSEeCovO8AYZymZQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_e8v1UEN-EeGfhclnRyNzoA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_b_sXcE4hEeKNVONx4BgsGg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KNDcB_QSEeCovO8AYZymZQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_KNEDEPQSEeCovO8AYZymZQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KNEDEfQSEeCovO8AYZymZQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_rSCxUAytEd6it_RkGhz_AA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KNC08fQSEeCovO8AYZymZQ" x="117" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_vzOfsEN9EeGfhclnRyNzoA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vzPGwEN9EeGfhclnRyNzoA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vzPGwUN9EeGfhclnRyNzoA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vzPGwkN9EeGfhclnRyNzoA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vzPGw0N9EeGfhclnRyNzoA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vzPGxEN9EeGfhclnRyNzoA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vzPGxUN9EeGfhclnRyNzoA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xAI-wEN9EeGfhclnRyNzoA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xXqt8EN9EeGfhclnRyNzoA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xXqt8UN9EeGfhclnRyNzoA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xXqt8kN9EeGfhclnRyNzoA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xXqt80N9EeGfhclnRyNzoA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xXrVAEN9EeGfhclnRyNzoA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vzPGxkN9EeGfhclnRyNzoA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_b0q0oEN_EeGfhclnRyNzoA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bcLasE4hEeKNVONx4BgsGg" key="CustomAppearance_MaskValue" value="20"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vzPGx0N9EeGfhclnRyNzoA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vzPGyEN9EeGfhclnRyNzoA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vzPGyUN9EeGfhclnRyNzoA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_MhH6cENxEeGoAtSeIK7WLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vzOfsUN9EeGfhclnRyNzoA" x="-10" y="36"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#__uJRYPNGEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__uLGkfNGEeCovO8AYZymZQ" x="90" y="405" width="127" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_u_QmwENqEeGoAtSeIK7WLg" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_u_RN0ENqEeGoAtSeIK7WLg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_u_RN0UNqEeGoAtSeIK7WLg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_u_RN0kNqEeGoAtSeIK7WLg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_u_RN00NqEeGoAtSeIK7WLg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_u_RN1ENqEeGoAtSeIK7WLg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_u_RN1UNqEeGoAtSeIK7WLg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_u_RN1kNqEeGoAtSeIK7WLg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_u_R04ENqEeGoAtSeIK7WLg" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_u_R04UNqEeGoAtSeIK7WLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u_R04kNqEeGoAtSeIK7WLg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7XPQEENqEeGoAtSeIK7WLg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7XP3IENqEeGoAtSeIK7WLg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7XP3IUNqEeGoAtSeIK7WLg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7XP3IkNqEeGoAtSeIK7WLg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7XP3I0NqEeGoAtSeIK7WLg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7XP3JENqEeGoAtSeIK7WLg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7XP3JUNqEeGoAtSeIK7WLg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8posEENqEeGoAtSeIK7WLg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9AyAwENqEeGoAtSeIK7WLg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9AyAwUNqEeGoAtSeIK7WLg" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9Ayn0ENqEeGoAtSeIK7WLg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9Ayn0UNqEeGoAtSeIK7WLg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9Ayn0kNqEeGoAtSeIK7WLg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7XP3JkNqEeGoAtSeIK7WLg" visible="false" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7XQeMENqEeGoAtSeIK7WLg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7XQeMUNqEeGoAtSeIK7WLg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7XQeMkNqEeGoAtSeIK7WLg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7XPQEUNqEeGoAtSeIK7WLg" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-nzo8ENqEeGoAtSeIK7WLg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-n0QAENqEeGoAtSeIK7WLg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-n0QAUNqEeGoAtSeIK7WLg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-n0QAkNqEeGoAtSeIK7WLg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-n0QA0NqEeGoAtSeIK7WLg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-n0QBENqEeGoAtSeIK7WLg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-n0QBUNqEeGoAtSeIK7WLg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aJho0EN8EeGfhclnRyNzoA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bHDoEEN8EeGfhclnRyNzoA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bHDoEUN8EeGfhclnRyNzoA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bHDoEkN8EeGfhclnRyNzoA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bHDoE0N8EeGfhclnRyNzoA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bHDoFEN8EeGfhclnRyNzoA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-n0QBkNqEeGoAtSeIK7WLg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WEWb0EN_EeGfhclnRyNzoA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_smS9UE4hEeKNVONx4BgsGg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-n0QB0NqEeGoAtSeIK7WLg" x="-99"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-n0QCENqEeGoAtSeIK7WLg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-n0QCUNqEeGoAtSeIK7WLg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_-nk_cENqEeGoAtSeIK7WLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-nzo8UNqEeGoAtSeIK7WLg" x="117" y="36" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_u7MmIENqEeGoAtSeIK7WLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u_QmwUNqEeGoAtSeIK7WLg" x="90" y="144" width="127" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1xcsQENqEeGoAtSeIK7WLg" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1xdTUENqEeGoAtSeIK7WLg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1xdTUUNqEeGoAtSeIK7WLg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1xdTUkNqEeGoAtSeIK7WLg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1xdTU0NqEeGoAtSeIK7WLg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1xdTVENqEeGoAtSeIK7WLg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1xdTVUNqEeGoAtSeIK7WLg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1xdTVkNqEeGoAtSeIK7WLg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1xdTV0NqEeGoAtSeIK7WLg" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1xdTWENqEeGoAtSeIK7WLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1xdTWUNqEeGoAtSeIK7WLg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_zeMyEEN8EeGfhclnRyNzoA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zeOAMEN8EeGfhclnRyNzoA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zeOAMUN8EeGfhclnRyNzoA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zeOAMkN8EeGfhclnRyNzoA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zeOAM0N8EeGfhclnRyNzoA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zeOANEN8EeGfhclnRyNzoA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zeOANUN8EeGfhclnRyNzoA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4rAYsEN9EeGfhclnRyNzoA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_48lQ4EN9EeGfhclnRyNzoA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_48lQ4UN9EeGfhclnRyNzoA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_48lQ4kN9EeGfhclnRyNzoA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_48lQ40N9EeGfhclnRyNzoA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_48l38EN9EeGfhclnRyNzoA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zeOANkN8EeGfhclnRyNzoA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a_mN0EN_EeGfhclnRyNzoA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mTaC8E4hEeKNVONx4BgsGg" key="CustomAppearance_MaskValue" value="20"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zeOAN0N8EeGfhclnRyNzoA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zeOAOEN8EeGfhclnRyNzoA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zeOAOUN8EeGfhclnRyNzoA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_9gIc8ENvEeGoAtSeIK7WLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zeNZIEN8EeGfhclnRyNzoA" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_zePOUEN8EeGfhclnRyNzoA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zeP1YEN8EeGfhclnRyNzoA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zeP1YUN8EeGfhclnRyNzoA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zeP1YkN8EeGfhclnRyNzoA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zeP1Y0N8EeGfhclnRyNzoA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zeP1ZEN8EeGfhclnRyNzoA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zeP1ZUN8EeGfhclnRyNzoA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5ijEsEN9EeGfhclnRyNzoA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5zBwsEN9EeGfhclnRyNzoA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5zCXwEN9EeGfhclnRyNzoA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5zCXwUN9EeGfhclnRyNzoA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5zCXwkN9EeGfhclnRyNzoA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5zCXw0N9EeGfhclnRyNzoA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zeP1ZkN8EeGfhclnRyNzoA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_e8wcYEN-EeGfhclnRyNzoA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dPSXEE4hEeKNVONx4BgsGg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zeP1Z0N8EeGfhclnRyNzoA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zeP1aEN8EeGfhclnRyNzoA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zeP1aUN8EeGfhclnRyNzoA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zePOUUN8EeGfhclnRyNzoA" x="117" y="36"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_1xGG8ENqEeGoAtSeIK7WLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1xcsQUNqEeGoAtSeIK7WLg" x="468" y="144" width="127" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_H7kTUENrEeGoAtSeIK7WLg" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H7k6YENrEeGoAtSeIK7WLg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H7k6YUNrEeGoAtSeIK7WLg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H7k6YkNrEeGoAtSeIK7WLg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H7k6Y0NrEeGoAtSeIK7WLg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H7k6ZENrEeGoAtSeIK7WLg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H7k6ZUNrEeGoAtSeIK7WLg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_H7k6ZkNrEeGoAtSeIK7WLg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_H7k6Z0NrEeGoAtSeIK7WLg" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_H7k6aENrEeGoAtSeIK7WLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H7k6aUNrEeGoAtSeIK7WLg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LIMnYENrEeGoAtSeIK7WLg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LINOcENrEeGoAtSeIK7WLg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LINOcUNrEeGoAtSeIK7WLg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LINOckNrEeGoAtSeIK7WLg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LINOc0NrEeGoAtSeIK7WLg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LINOdENrEeGoAtSeIK7WLg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LINOdUNrEeGoAtSeIK7WLg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MNeNYENrEeGoAtSeIK7WLg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MkeYIENrEeGoAtSeIK7WLg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Mke_MENrEeGoAtSeIK7WLg" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Mke_MUNrEeGoAtSeIK7WLg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Mke_MkNrEeGoAtSeIK7WLg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Mke_M0NrEeGoAtSeIK7WLg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LINOdkNrEeGoAtSeIK7WLg" visible="false" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LINOd0NrEeGoAtSeIK7WLg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LINOeENrEeGoAtSeIK7WLg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LINOeUNrEeGoAtSeIK7WLg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LIMnYUNrEeGoAtSeIK7WLg" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_i742UEN8EeGfhclnRyNzoA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i76EcEN8EeGfhclnRyNzoA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i76rgEN8EeGfhclnRyNzoA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i76rgUN8EeGfhclnRyNzoA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i76rgkN8EeGfhclnRyNzoA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i76rg0N8EeGfhclnRyNzoA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i76rhEN8EeGfhclnRyNzoA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_keq3sEN8EeGfhclnRyNzoA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k2gI4EN8EeGfhclnRyNzoA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k2gI4UN8EeGfhclnRyNzoA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k2gI4kN8EeGfhclnRyNzoA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k2gI40N8EeGfhclnRyNzoA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k2gI5EN8EeGfhclnRyNzoA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_i76rhUN8EeGfhclnRyNzoA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UeOLgEN_EeGfhclnRyNzoA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eFDhcE4hEeKNVONx4BgsGg" key="CustomAppearance_MaskValue" value="20"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_i76rhkN8EeGfhclnRyNzoA" x="-99"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_i77SkEN8EeGfhclnRyNzoA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_i77SkUN8EeGfhclnRyNzoA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_i5SOQEN8EeGfhclnRyNzoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i75dYEN8EeGfhclnRyNzoA" x="117" y="36" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_H7IOcENrEeGoAtSeIK7WLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H7kTUUNrEeGoAtSeIK7WLg" x="279" y="144" width="127" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_pmSKYEN_EeGfhclnRyNzoA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pmSxcEN_EeGfhclnRyNzoA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pmSxcUN_EeGfhclnRyNzoA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pmSxckN_EeGfhclnRyNzoA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pmSxc0N_EeGfhclnRyNzoA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pmSxdEN_EeGfhclnRyNzoA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pmSxdUN_EeGfhclnRyNzoA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_pmSxdkN_EeGfhclnRyNzoA" type="5192"/>
+ <element xmi:type="uml:Comment" href="corecpp.uml#_pk4cMEN_EeGfhclnRyNzoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pmSKYUN_EeGfhclnRyNzoA" x="351" y="390" width="391" height="79"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_hyMbAPNGEeCovO8AYZymZQ"/>
+ <element xmi:type="uml:Package" href="corecpp.uml#_gKMTIAytEd6it_RkGhz_AA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_khmAgPNGEeCovO8AYZymZQ" type="4015" source="_u_QmwENqEeGoAtSeIK7WLg" target="_kENg8PNGEeCovO8AYZymZQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_khmnkPNGEeCovO8AYZymZQ" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_khmnkfNGEeCovO8AYZymZQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_khmAgfNGEeCovO8AYZymZQ" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corecpp.uml#_K088oF_rEd6RvK-1A151zQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_khmAgvNGEeCovO8AYZymZQ" points="[17, -30, -23, 39]$[23, -39, -17, 30]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4ud3AENqEeGoAtSeIK7WLg" id="(0.49606299212598426,0.0273972602739726)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OtJFEEN8EeGfhclnRyNzoA" id="(0.20569620253164558,0.958904109589041)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_sH_KIPNGEeCovO8AYZymZQ" type="4015" source="_1xcsQENqEeGoAtSeIK7WLg" target="_o1VGkPNGEeCovO8AYZymZQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_sH_xMPNGEeCovO8AYZymZQ" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sIAYQPNGEeCovO8AYZymZQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_sH_KIfNGEeCovO8AYZymZQ" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corecpp.uml#_M09FgF_rEd6RvK-1A151zQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_sH_KIvNGEeCovO8AYZymZQ" points="[-8, -30, 0, 77]$[0, -77, 8, 30]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5r5voENqEeGoAtSeIK7WLg" id="(0.4881889763779528,0.0958904109589041)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_EWU9cPNHEeCovO8AYZymZQ" type="4015" source="__uLGkPNGEeCovO8AYZymZQ" target="_iVJ-IPNGEeCovO8AYZymZQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_EWWLkPNHEeCovO8AYZymZQ" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EWWLkfNHEeCovO8AYZymZQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_EWU9cfNHEeCovO8AYZymZQ" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corecpp.uml#_EWShMPNHEeCovO8AYZymZQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_EWU9cvNHEeCovO8AYZymZQ" points="[2, -8, -13, 52]$[20, -42, 5, 18]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_EWWyoPNHEeCovO8AYZymZQ" id="(0.4881889763779528,0.1095890410958904)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_EWWyofNHEeCovO8AYZymZQ" id="(0.5196850393700787,0.9178082191780822)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_KH4Z4ENrEeGoAtSeIK7WLg" type="4015" source="_H7kTUENrEeGoAtSeIK7WLg" target="_kENg8PNGEeCovO8AYZymZQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_KH5A8ENrEeGoAtSeIK7WLg" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KH5oAENrEeGoAtSeIK7WLg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_KH4Z4UNrEeGoAtSeIK7WLg" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corecpp.uml#_KHmGAENrEeGoAtSeIK7WLg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KH4Z4kNrEeGoAtSeIK7WLg" points="[-4, -5, 94, 153]$[-95, -150, 3, 8]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KIePwENrEeGoAtSeIK7WLg" id="(0.5229357798165137,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KIePwUNrEeGoAtSeIK7WLg" id="(0.8142857142857143,0.9452054794520548)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_cVCGYPNUEeCovO8AYZymZQ" type="PapyrusUMLClassDiagram" name="Class: Marshalling" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_jQk8MPNUEeCovO8AYZymZQ" type="2006" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jQljQPNUEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jQljQfNUEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jQljQvNUEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jQljQ_NUEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jQljRPNUEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jQljRfNUEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jQmKUPNUEeCovO8AYZymZQ" type="5023"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jQmKUfNUEeCovO8AYZymZQ" type="7015">
+ <children xmi:type="notation:Shape" xmi:id="_jv7KoPNUEeCovO8AYZymZQ" type="3017" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="corecpp.uml#_jv4uYPNUEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jv7KofNUEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kuE08PNUEeCovO8AYZymZQ" type="3017" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="corecpp.uml#_kuDm0PNUEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kuE08fNUEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ljFxYPNUEeCovO8AYZymZQ" type="3017" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="corecpp.uml#_ljD8MPNUEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ljFxYfNUEeCovO8AYZymZQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jQmKUvNUEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jQmKU_NUEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jQmKVPNUEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jQmKVfNUEeCovO8AYZymZQ"/>
+ </children>
+ <element xmi:type="uml:Enumeration" href="corecpp.uml#_jQjHAPNUEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jQk8MfNUEeCovO8AYZymZQ" x="387" y="83"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SPPn0FjnEeKaM_PspnG53g" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SPRdAFjnEeKaM_PspnG53g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SPSEEFjnEeKaM_PspnG53g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SPSEEVjnEeKaM_PspnG53g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SPSEEljnEeKaM_PspnG53g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SPSEE1jnEeKaM_PspnG53g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SPSEFFjnEeKaM_PspnG53g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SPSEFVjnEeKaM_PspnG53g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SPSrIFjnEeKaM_PspnG53g" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_USG3cFjnEeKaM_PspnG53g" type="3012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_d1EbcFjnEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eOY6YFjnEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="corecpp.uml#_YKtbAPNUEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_USG3cVjnEeKaM_PspnG53g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_USHegFjnEeKaM_PspnG53g" type="3012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_d1FCgFjnEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eOaIgFjnEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="corecpp.uml#_gQGNwPNUEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_USHegVjnEeKaM_PspnG53g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_USIFkFjnEeKaM_PspnG53g" type="3012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_d1FCgljnEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eOavkFjnEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="corecpp.uml#_-_HCMBI0EeGU49ezpRnvLg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_USIFkVjnEeKaM_PspnG53g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_USIsoFjnEeKaM_PspnG53g" type="3012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ffmDkFjnEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ffmDkVjnEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="60"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="corecpp.uml#_qzHgkPNUEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_USIsoVjnEeKaM_PspnG53g"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SPSrIVjnEeKaM_PspnG53g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SPSrIljnEeKaM_PspnG53g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SPSrI1jnEeKaM_PspnG53g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SPSrJFjnEeKaM_PspnG53g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SPSrJVjnEeKaM_PspnG53g" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SPSrJljnEeKaM_PspnG53g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SPSrJ1jnEeKaM_PspnG53g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SPSrKFjnEeKaM_PspnG53g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SPSrKVjnEeKaM_PspnG53g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SPSrKljnEeKaM_PspnG53g" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SPSrK1jnEeKaM_PspnG53g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SPSrLFjnEeKaM_PspnG53g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SPSrLVjnEeKaM_PspnG53g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SPSrLljnEeKaM_PspnG53g"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_WkkjoPNUEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SPPn0VjnEeKaM_PspnG53g" x="130" y="78"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_cVCGYfNUEeCovO8AYZymZQ"/>
+ <element xmi:type="uml:Package" href="corecpp.uml#_gKMTIAytEd6it_RkGhz_AA"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_g6Yg0CnOEeGxrprK9wB9iA" type="CompositeStructure" name="Service configuration" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_hvsYMCnOEeGxrprK9wB9iA" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hvs_QCnOEeGxrprK9wB9iA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hvtmUCnOEeGxrprK9wB9iA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hvtmUSnOEeGxrprK9wB9iA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hvtmUinOEeGxrprK9wB9iA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hvtmUynOEeGxrprK9wB9iA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hvtmVCnOEeGxrprK9wB9iA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hvtmVSnOEeGxrprK9wB9iA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hvuNYCnOEeGxrprK9wB9iA" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_j5-ecCnOEeGxrprK9wB9iA" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_j5_FgCnOEeGxrprK9wB9iA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_j5_FgSnOEeGxrprK9wB9iA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_j5_FginOEeGxrprK9wB9iA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_j5_FgynOEeGxrprK9wB9iA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_j5_FhCnOEeGxrprK9wB9iA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_j5_FhSnOEeGxrprK9wB9iA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_j5_FhinOEeGxrprK9wB9iA" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eASCYFjmEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eBKMIFjmEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_j5_skCnOEeGxrprK9wB9iA" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_j5_skSnOEeGxrprK9wB9iA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_j5_skinOEeGxrprK9wB9iA"/>
+ </children>
+ <element xmi:type="uml:Property" href="corecpp.uml#_rVfYoMGJEd-Mveea1W_olA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_j5-ecSnOEeGxrprK9wB9iA" x="10" y="10" width="131"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lEz54CnOEeGxrprK9wB9iA" type="3097" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lEz54inOEeGxrprK9wB9iA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lE0g8CnOEeGxrprK9wB9iA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lE0g8SnOEeGxrprK9wB9iA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lE0g8inOEeGxrprK9wB9iA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lE0g8ynOEeGxrprK9wB9iA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lE0g9CnOEeGxrprK9wB9iA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lE0g9SnOEeGxrprK9wB9iA" type="5150"/>
+ <element xmi:type="uml:Comment" href="corecpp.uml#_lCtoICnOEeGxrprK9wB9iA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lEz54SnOEeGxrprK9wB9iA" x="221" y="10" width="271" height="64"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hvuNYSnOEeGxrprK9wB9iA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hvuNYinOEeGxrprK9wB9iA"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_SiY_AP-EEd6628OhKk_dpg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hvsYMSnOEeGxrprK9wB9iA" x="62" y="64" width="524" height="135"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_t6v_0CnOEeGxrprK9wB9iA" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t6wm4CnOEeGxrprK9wB9iA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t6wm4SnOEeGxrprK9wB9iA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t6wm4inOEeGxrprK9wB9iA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t6wm4ynOEeGxrprK9wB9iA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t6xN8CnOEeGxrprK9wB9iA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t6xN8SnOEeGxrprK9wB9iA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_t6xN8inOEeGxrprK9wB9iA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_t6xN8ynOEeGxrprK9wB9iA" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_vBLcYCnOEeGxrprK9wB9iA" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vBMDcCnOEeGxrprK9wB9iA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vBMqgCnOEeGxrprK9wB9iA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vBMqgSnOEeGxrprK9wB9iA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vBNRkCnOEeGxrprK9wB9iA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vBNRkSnOEeGxrprK9wB9iA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vBNRkinOEeGxrprK9wB9iA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vBNRkynOEeGxrprK9wB9iA" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_chkosFjmEeKaM_PspnG53g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_co8cAFjmEeKaM_PspnG53g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_vBNRlCnOEeGxrprK9wB9iA" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_vBNRlSnOEeGxrprK9wB9iA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vBNRlinOEeGxrprK9wB9iA"/>
+ </children>
+ <element xmi:type="uml:Property" href="corecpp.uml#_tmNeoCjbEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vBLcYSnOEeGxrprK9wB9iA" x="10" y="10" width="173"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_zNMJ0CnOEeGxrprK9wB9iA" type="3097" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zNMw4SnOEeGxrprK9wB9iA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zNMw4inOEeGxrprK9wB9iA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zNNX8CnOEeGxrprK9wB9iA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zNNX8SnOEeGxrprK9wB9iA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zNNX8inOEeGxrprK9wB9iA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zNNX8ynOEeGxrprK9wB9iA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zNNX9CnOEeGxrprK9wB9iA" type="5150"/>
+ <element xmi:type="uml:Comment" href="corecpp.uml#_zLeSkCnOEeGxrprK9wB9iA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zNMw4CnOEeGxrprK9wB9iA" x="219" y="15" width="270"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_t6xN9CnOEeGxrprK9wB9iA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t6xN9SnOEeGxrprK9wB9iA"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_9V8OQCjYEeGFbebITJYb9g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t6v_0SnOEeGxrprK9wB9iA" x="65" y="245" width="521" height="161"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_RANSwCo0EeGxrprK9wB9iA" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RAN50Co0EeGxrprK9wB9iA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RAN50So0EeGxrprK9wB9iA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RAN50io0EeGxrprK9wB9iA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RAN50yo0EeGxrprK9wB9iA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RAN51Co0EeGxrprK9wB9iA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RAN51So0EeGxrprK9wB9iA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RAN51io0EeGxrprK9wB9iA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_RAN51yo0EeGxrprK9wB9iA" visible="false" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_RAN52Co0EeGxrprK9wB9iA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RAN52So0EeGxrprK9wB9iA"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://QML_CORE/osal.uml#_ETakYDj8Edy0Rd6V_tf1-Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RANSwSo0EeGxrprK9wB9iA" x="652" y="261" width="60" height="55"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_g6Yg0SnOEeGxrprK9wB9iA"/>
+ <element xmi:type="uml:Package" href="corecpp.uml#_xtlE8ARAEd--t-uhRn9OBA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_mp1-ACnOEeGxrprK9wB9iA" type="4002" source="_lEz54CnOEeGxrprK9wB9iA" target="_j5-ecCnOEeGxrprK9wB9iA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_mp1-ASnOEeGxrprK9wB9iA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mp1-AinOEeGxrprK9wB9iA" points="[-50, -4, 105, 6]$[-136, -16, 19, -6]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mthkICnOEeGxrprK9wB9iA" id="(0.8137254901960784,0.3559322033898305)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_0Tj8ACnOEeGxrprK9wB9iA" type="4002" source="_zNMJ0CnOEeGxrprK9wB9iA" target="_vBLcYCnOEeGxrprK9wB9iA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_0Tj8ASnOEeGxrprK9wB9iA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0Tj8AinOEeGxrprK9wB9iA" points="[-20, -6, 63, 16]$[-56, -25, 27, -3]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0V4QMCnOEeGxrprK9wB9iA" id="(0.2,0.5166666666666667)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0V4QMSnOEeGxrprK9wB9iA" id="(0.8439306358381503,0.35)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_SZ63sCo0EeGxrprK9wB9iA" type="4010" source="_t6v_0CnOEeGxrprK9wB9iA" target="_RANSwCo0EeGxrprK9wB9iA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_SZ7ewCo0EeGxrprK9wB9iA" visible="false" type="6009">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SZ7ewSo0EeGxrprK9wB9iA" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SZ7ewio0EeGxrprK9wB9iA" type="6023">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SZ7ewyo0EeGxrprK9wB9iA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_SZ63sSo0EeGxrprK9wB9iA" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Dependency" href="corecpp.uml#_SXkHQCo0EeGxrprK9wB9iA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SZ63sio0EeGxrprK9wB9iA" points="[19, -6, -74, 0]$[85, -6, -8, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Sd71ACo0EeGxrprK9wB9iA" id="(0.963531669865643,0.32298136645962733)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Sd71ASo0EeGxrprK9wB9iA" id="(0.16666666666666666,0.5084745762711864)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_OhgzgD8AEeGJ6KSvhYhYuQ" type="CompositeStructure" name="CallActivation" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_SgFh4D8AEeGJ6KSvhYhYuQ" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SgGI8D8AEeGJ6KSvhYhYuQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SgGI8T8AEeGJ6KSvhYhYuQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SgGI8j8AEeGJ6KSvhYhYuQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SgGI8z8AEeGJ6KSvhYhYuQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SgGI9D8AEeGJ6KSvhYhYuQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SgGI9T8AEeGJ6KSvhYhYuQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SgGI9j8AEeGJ6KSvhYhYuQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SgGI9z8AEeGJ6KSvhYhYuQ" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SgGI-D8AEeGJ6KSvhYhYuQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SgGI-T8AEeGJ6KSvhYhYuQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dcQ7kD8AEeGJ6KSvhYhYuQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dcSJsD8AEeGJ6KSvhYhYuQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dcSJsT8AEeGJ6KSvhYhYuQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dcSJsj8AEeGJ6KSvhYhYuQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dcSJsz8AEeGJ6KSvhYhYuQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dcSJtD8AEeGJ6KSvhYhYuQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dcSJtT8AEeGJ6KSvhYhYuQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ocoRsD8AEeGJ6KSvhYhYuQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_o2fjMD8AEeGJ6KSvhYhYuQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_o2fjMT8AEeGJ6KSvhYhYuQ" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_o2fjMj8AEeGJ6KSvhYhYuQ" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_o2fjMz8AEeGJ6KSvhYhYuQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_o2fjND8AEeGJ6KSvhYhYuQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dcSJtj8AEeGJ6KSvhYhYuQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kA0sEFbDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nFWNAFbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dcSwwD8AEeGJ6KSvhYhYuQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dcSwwT8AEeGJ6KSvhYhYuQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dcSwwj8AEeGJ6KSvhYhYuQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dcRioD8AEeGJ6KSvhYhYuQ" x="-10" y="23"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dcSwwz8AEeGJ6KSvhYhYuQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dcTX0D8AEeGJ6KSvhYhYuQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dcTX0T8AEeGJ6KSvhYhYuQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dcTX0j8AEeGJ6KSvhYhYuQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dcTX0z8AEeGJ6KSvhYhYuQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dcTX1D8AEeGJ6KSvhYhYuQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dcTX1T8AEeGJ6KSvhYhYuQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m_hagD8AEeGJ6KSvhYhYuQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ndPRQD8AEeGJ6KSvhYhYuQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ndP4UD8AEeGJ6KSvhYhYuQ" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ndP4UT8AEeGJ6KSvhYhYuQ" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ndP4Uj8AEeGJ6KSvhYhYuQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ndP4Uz8AEeGJ6KSvhYhYuQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dcTX1j8AEeGJ6KSvhYhYuQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kq-cUFbDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nqWXgFbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dcTX1z8AEeGJ6KSvhYhYuQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dcTX2D8AEeGJ6KSvhYhYuQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dcTX2T8AEeGJ6KSvhYhYuQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dcSwxD8AEeGJ6KSvhYhYuQ" x="360" y="23"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_e6Y_EChYEd-eoo60eNyGlg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SgFh4T8AEeGJ6KSvhYhYuQ" x="117" y="99" width="370"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_S-NoUD8AEeGJ6KSvhYhYuQ" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_S-OPYD8AEeGJ6KSvhYhYuQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_S-OPYT8AEeGJ6KSvhYhYuQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_S-OPYj8AEeGJ6KSvhYhYuQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_S-OPYz8AEeGJ6KSvhYhYuQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_S-OPZD8AEeGJ6KSvhYhYuQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_S-OPZT8AEeGJ6KSvhYhYuQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_S-O2cD8AEeGJ6KSvhYhYuQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_S-O2cT8AEeGJ6KSvhYhYuQ" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_S-O2cj8AEeGJ6KSvhYhYuQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_S-O2cz8AEeGJ6KSvhYhYuQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1JUC4D8EEeGJ6KSvhYhYuQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1JUp8D8EEeGJ6KSvhYhYuQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1JUp8T8EEeGJ6KSvhYhYuQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1JUp8j8EEeGJ6KSvhYhYuQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1JUp8z8EEeGJ6KSvhYhYuQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1JVRAD8EEeGJ6KSvhYhYuQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1JVRAT8EEeGJ6KSvhYhYuQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7SckUD8EEeGJ6KSvhYhYuQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1E6gcD_HEeGFNeu-9sDdyA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1E6gcT_HEeGFNeu-9sDdyA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1E6gcj_HEeGFNeu-9sDdyA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1E6gcz_HEeGFNeu-9sDdyA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1E7HgD_HEeGFNeu-9sDdyA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1JVRAj8EEeGJ6KSvhYhYuQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_l3gg4FbDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mBsXoFbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1JVRAz8EEeGJ6KSvhYhYuQ" x="27" y="18"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1JVRBD8EEeGJ6KSvhYhYuQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1JVRBT8EEeGJ6KSvhYhYuQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_N0tB4Cu4Ed-uZPFNCty7PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1JUC4T8EEeGJ6KSvhYhYuQ" x="45" y="63"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1JVRBj8EEeGJ6KSvhYhYuQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1JV4ED8EEeGJ6KSvhYhYuQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1JV4ET8EEeGJ6KSvhYhYuQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1JV4Ej8EEeGJ6KSvhYhYuQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1JV4Ez8EEeGJ6KSvhYhYuQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1JV4FD8EEeGJ6KSvhYhYuQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1JV4FT8EEeGJ6KSvhYhYuQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wvweED_HEeGFNeu-9sDdyA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xWu-gD_HEeGFNeu-9sDdyA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xWu-gT_HEeGFNeu-9sDdyA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xWu-gj_HEeGFNeu-9sDdyA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xWu-gz_HEeGFNeu-9sDdyA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xWu-hD_HEeGFNeu-9sDdyA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1JV4Fj8EEeGJ6KSvhYhYuQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lQgyUFbDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lXdH0FbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1JV4Fz8EEeGJ6KSvhYhYuQ" x="27" y="27"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1JWfID8EEeGJ6KSvhYhYuQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1JWfIT8EEeGJ6KSvhYhYuQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1JVRBz8EEeGJ6KSvhYhYuQ" x="99" y="27"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1JWfIj8EEeGJ6KSvhYhYuQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1JXGMD8EEeGJ6KSvhYhYuQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1JXGMT8EEeGJ6KSvhYhYuQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1JXGMj8EEeGJ6KSvhYhYuQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1JXGMz8EEeGJ6KSvhYhYuQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1JXtQD8EEeGJ6KSvhYhYuQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1JXtQT8EEeGJ6KSvhYhYuQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uBA_4D_HEeGFNeu-9sDdyA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2z-qUD_HEeGFNeu-9sDdyA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2z-qUT_HEeGFNeu-9sDdyA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2z-qUj_HEeGFNeu-9sDdyA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2z_RYD_HEeGFNeu-9sDdyA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2z_RYT_HEeGFNeu-9sDdyA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1JXtQj8EEeGJ6KSvhYhYuQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jaFcMFbDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mifXkFbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1JXtQz8EEeGJ6KSvhYhYuQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1JXtRD8EEeGJ6KSvhYhYuQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1JXtRT8EEeGJ6KSvhYhYuQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1JWfIz8EEeGJ6KSvhYhYuQ" x="-10" y="27"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_qgzokChYEd-eoo60eNyGlg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_S-NoUT8AEeGJ6KSvhYhYuQ" x="117" y="189" width="109" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TeWg8D8AEeGJ6KSvhYhYuQ" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TeWg8j8AEeGJ6KSvhYhYuQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TeXIAD8AEeGJ6KSvhYhYuQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TeXIAT8AEeGJ6KSvhYhYuQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TeXIAj8AEeGJ6KSvhYhYuQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TeXIAz8AEeGJ6KSvhYhYuQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TeXIBD8AEeGJ6KSvhYhYuQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TeXIBT8AEeGJ6KSvhYhYuQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TeXIBj8AEeGJ6KSvhYhYuQ" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TeXIBz8AEeGJ6KSvhYhYuQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TeXICD8AEeGJ6KSvhYhYuQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_2wMyEChiEd-eoo60eNyGlg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TeWg8T8AEeGJ6KSvhYhYuQ" x="252" y="189"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_T7ZpUD8AEeGJ6KSvhYhYuQ" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_T7aQYD8AEeGJ6KSvhYhYuQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_T7aQYT8AEeGJ6KSvhYhYuQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_T7aQYj8AEeGJ6KSvhYhYuQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_T7aQYz8AEeGJ6KSvhYhYuQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_T7aQZD8AEeGJ6KSvhYhYuQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_T7aQZT8AEeGJ6KSvhYhYuQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_T7aQZj8AEeGJ6KSvhYhYuQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_T7aQZz8AEeGJ6KSvhYhYuQ" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_T7aQaD8AEeGJ6KSvhYhYuQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T7aQaT8AEeGJ6KSvhYhYuQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_6rmQoChiEd-eoo60eNyGlg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T7ZpUT8AEeGJ6KSvhYhYuQ" x="387" y="189" width="95"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gXAOYD8AEeGJ6KSvhYhYuQ" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gXA1cD8AEeGJ6KSvhYhYuQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gXA1cT8AEeGJ6KSvhYhYuQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gXA1cj8AEeGJ6KSvhYhYuQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gXA1cz8AEeGJ6KSvhYhYuQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gXA1dD8AEeGJ6KSvhYhYuQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gXA1dT8AEeGJ6KSvhYhYuQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gXA1dj8AEeGJ6KSvhYhYuQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gXBcgD8AEeGJ6KSvhYhYuQ" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gXBcgT8AEeGJ6KSvhYhYuQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gXBcgj8AEeGJ6KSvhYhYuQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_KxQBELuXEd2TTr3gJIvazw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gXAOYT8AEeGJ6KSvhYhYuQ" x="117" y="18" width="370"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_aCZK0D8CEeGJ6KSvhYhYuQ" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aCZx4D8CEeGJ6KSvhYhYuQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aCZx4T8CEeGJ6KSvhYhYuQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aCZx4j8CEeGJ6KSvhYhYuQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aCZx4z8CEeGJ6KSvhYhYuQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aCZx5D8CEeGJ6KSvhYhYuQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aCZx5T8CEeGJ6KSvhYhYuQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_aCZx5j8CEeGJ6KSvhYhYuQ" type="5192"/>
+ <element xmi:type="uml:Comment" href="corecpp.uml#_aAH58D8CEeGJ6KSvhYhYuQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aCZK0T8CEeGJ6KSvhYhYuQ" x="72" y="297" width="336" height="91"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jQ_BUD8CEeGJ6KSvhYhYuQ" type="2067" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jQ_BUj8CEeGJ6KSvhYhYuQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jQ_BUz8CEeGJ6KSvhYhYuQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jQ_oYD8CEeGJ6KSvhYhYuQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jQ_oYT8CEeGJ6KSvhYhYuQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jQ_oYj8CEeGJ6KSvhYhYuQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jQ_oYz8CEeGJ6KSvhYhYuQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jQ_oZD8CEeGJ6KSvhYhYuQ" type="5119"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jQ_oZT8CEeGJ6KSvhYhYuQ" type="7048">
+ <children xmi:type="notation:Shape" xmi:id="_XhHrcD8DEeGJ6KSvhYhYuQ" type="3066" fontName="" fontHeight="10" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="corecpp.uml#_mzqd4D8CEeGJ6KSvhYhYuQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XhHrcT8DEeGJ6KSvhYhYuQ" x="63"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XhjwUD8DEeGJ6KSvhYhYuQ" type="3066" fontName="" fontHeight="10" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="corecpp.uml#_qdIe8D8CEeGJ6KSvhYhYuQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XhjwUT8DEeGJ6KSvhYhYuQ" x="63"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XiAcQD8DEeGJ6KSvhYhYuQ" type="3066" fontName="" fontHeight="10" lineColor="0">
+ <element xmi:type="uml:EnumerationLiteral" href="corecpp.uml#_rOMvgD8CEeGJ6KSvhYhYuQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XiAcQT8DEeGJ6KSvhYhYuQ" x="63"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jQ_oZj8CEeGJ6KSvhYhYuQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jQ_oZz8CEeGJ6KSvhYhYuQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jQ_oaD8CEeGJ6KSvhYhYuQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jQ_oaT8CEeGJ6KSvhYhYuQ"/>
+ </children>
+ <element xmi:type="uml:Enumeration" href="corecpp.uml#_hcwDkD8CEeGJ6KSvhYhYuQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jQ_BUT8CEeGJ6KSvhYhYuQ" x="441" y="261" width="164"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_OhgzgT8AEeGJ6KSvhYhYuQ"/>
+ <element xmi:type="uml:Package" href="corecpp.uml#_aQ7goChYEd-eoo60eNyGlg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_WFrvkD8AEeGJ6KSvhYhYuQ" type="4015" source="_S-NoUD8AEeGJ6KSvhYhYuQ" target="_SgFh4D8AEeGJ6KSvhYhYuQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_WFtkwD8AEeGJ6KSvhYhYuQ" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WFuL0D8AEeGJ6KSvhYhYuQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_WFrvkT8AEeGJ6KSvhYhYuQ" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corecpp.uml#_sW6OkChYEd-eoo60eNyGlg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WFrvkj8AEeGJ6KSvhYhYuQ" points="[-8, -29, 27, 101]$[-27, -100, 8, 30]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tiKoID8AEeGJ6KSvhYhYuQ" id="(0.15135135135135136,0.8813559322033898)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XN1DYD8AEeGJ6KSvhYhYuQ" type="4015" source="_TeWg8D8AEeGJ6KSvhYhYuQ" target="_SgFh4D8AEeGJ6KSvhYhYuQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_XN1qcD8AEeGJ6KSvhYhYuQ" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XN1qcT8AEeGJ6KSvhYhYuQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_XN1DYT8AEeGJ6KSvhYhYuQ" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corecpp.uml#_5AKpkChiEd-eoo60eNyGlg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XN1DYj8AEeGJ6KSvhYhYuQ" points="[-7, -29, 37, 186]$[-38, -185, 6, 30]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_YLQU8D8AEeGJ6KSvhYhYuQ" type="4015" source="_T7ZpUD8AEeGJ6KSvhYhYuQ" target="_SgFh4D8AEeGJ6KSvhYhYuQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_YLQ8AD8AEeGJ6KSvhYhYuQ" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YLQ8AT8AEeGJ6KSvhYhYuQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_YLQU8T8AEeGJ6KSvhYhYuQ" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corecpp.uml#_892AEChiEd-eoo60eNyGlg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YLQU8j8AEeGJ6KSvhYhYuQ" points="[-2, -29, 15, 281]$[-16, -280, 1, 30]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vL-ekD8AEeGJ6KSvhYhYuQ" id="(0.8729729729729729,0.8983050847457628)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_gXiZ4D8AEeGJ6KSvhYhYuQ" type="4015" source="_SgFh4D8AEeGJ6KSvhYhYuQ" target="_gXAOYD8AEeGJ6KSvhYhYuQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gXjA8D8AEeGJ6KSvhYhYuQ" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gXjA8T8AEeGJ6KSvhYhYuQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_gXiZ4T8AEeGJ6KSvhYhYuQ" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corecpp.uml#_oJX3IChYEd-eoo60eNyGlg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gXiZ4j8AEeGJ6KSvhYhYuQ" points="[-103, -29, 202, 58]$[-305, -87, 0, 0]"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_DfG8kF7qEeGEmrrwB1vhPg" type="CompositeStructure" name="CompositeDiagram CallMultiplier" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_EYv6UF7qEeGEmrrwB1vhPg" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EYwhYF7qEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EYwhYV7qEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EYwhYl7qEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EYwhY17qEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EYwhZF7qEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EYwhZV7qEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_c85eMF7tEeGEmrrwB1vhPg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_c86FQF7tEeGEmrrwB1vhPg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_c86FQV7tEeGEmrrwB1vhPg" key="StereotypeList" value="FCM::InteractionComponent"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_c86FQl7tEeGEmrrwB1vhPg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_c9de4F7tEeGEmrrwB1vhPg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_c9de4V7tEeGEmrrwB1vhPg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_EYwhZl7qEeGEmrrwB1vhPg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_EYwhZ17qEeGEmrrwB1vhPg" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_EYwhaF7qEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EYwhaV7qEeGEmrrwB1vhPg"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_KxQBELuXEd2TTr3gJIvazw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EYv6UV7qEeGEmrrwB1vhPg" x="135" y="72" width="154" height="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FWtXYF7qEeGEmrrwB1vhPg" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FWtXYl7qEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FWtXY17qEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FWt-cF7qEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FWt-cV7qEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FWt-cl7qEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FWt-c17qEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XrOJMF7tEeGEmrrwB1vhPg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XrOwQF7tEeGEmrrwB1vhPg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XrOwQV7tEeGEmrrwB1vhPg" key="StereotypeList" value="FCM::InteractionComponent"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XrOwQl7tEeGEmrrwB1vhPg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XrOwQ17tEeGEmrrwB1vhPg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XrOwRF7tEeGEmrrwB1vhPg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FWt-dF7qEeGEmrrwB1vhPg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_FWt-dV7qEeGEmrrwB1vhPg" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_FWt-dl7qEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FWt-d17qEeGEmrrwB1vhPg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_udKFYF7sEeGEmrrwB1vhPg" type="3069" fontName="Arial" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_udKFYl7sEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_udKFY17sEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_udKscF7sEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_udKscV7sEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_udKscl7sEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_udKsc17sEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_66tLMF7sEeGEmrrwB1vhPg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7N-FcF7sEeGEmrrwB1vhPg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7N-FcV7sEeGEmrrwB1vhPg" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7N-Fcl7sEeGEmrrwB1vhPg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7N-Fc17sEeGEmrrwB1vhPg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7N-FdF7sEeGEmrrwB1vhPg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_udKsdF7sEeGEmrrwB1vhPg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fcEHcFbDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PQ7DkFeJEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_udKsdV7sEeGEmrrwB1vhPg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_udKsdl7sEeGEmrrwB1vhPg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_udKsd17sEeGEmrrwB1vhPg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_udKFYV7sEeGEmrrwB1vhPg" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_udLTgF7sEeGEmrrwB1vhPg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_udLTgl7sEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_udLTg17sEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_udLThF7sEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_udLThV7sEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_udL6kF7sEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_udL6kV7sEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3KisQF7sEeGEmrrwB1vhPg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3gixcF7sEeGEmrrwB1vhPg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3gjYgF7sEeGEmrrwB1vhPg" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3gjYgV7sEeGEmrrwB1vhPg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3gjYgl7sEeGEmrrwB1vhPg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3gjYg17sEeGEmrrwB1vhPg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_udL6kl7sEeGEmrrwB1vhPg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f-9ZIFbDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f-9ZIVbDEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="30"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_udL6k17sEeGEmrrwB1vhPg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_udL6lF7sEeGEmrrwB1vhPg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_udL6lV7sEeGEmrrwB1vhPg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_udLTgV7sEeGEmrrwB1vhPg" x="144" y="36"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_Whe8EClYEd-eoo60eNyGlg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FWtXYV7qEeGEmrrwB1vhPg" x="135" y="198" width="154" height="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_b3o7wF7sEeGEmrrwB1vhPg" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_b3pi0F7sEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_b3pi0V7sEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_b3pi0l7sEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_b3pi017sEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_b3pi1F7sEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_b3pi1V7sEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bkoqwF7tEeGEmrrwB1vhPg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bkoqwV7tEeGEmrrwB1vhPg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bkoqwl7tEeGEmrrwB1vhPg" key="StereotypeList" value="FCM::InteractionComponent"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bkoqw17tEeGEmrrwB1vhPg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bkoqxF7tEeGEmrrwB1vhPg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bkoqxV7tEeGEmrrwB1vhPg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_b3pi1l7sEeGEmrrwB1vhPg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_b3pi117sEeGEmrrwB1vhPg" type="7073">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Z3t18F7tEeGEmrrwB1vhPg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z3udAF7tEeGEmrrwB1vhPg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z3udAV7tEeGEmrrwB1vhPg" key="StereotypeList" value="FCM::InteractionComponent"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z3udAl7tEeGEmrrwB1vhPg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z3udA17tEeGEmrrwB1vhPg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z3udBF7tEeGEmrrwB1vhPg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_b3pi2F7sEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b3pi2V7sEeGEmrrwB1vhPg"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_TLShkF7qEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b3o7wV7sEeGEmrrwB1vhPg" x="423" y="71" width="154" height="65"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ck0K0F7sEeGEmrrwB1vhPg" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ck0x4F7sEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ck0x4V7sEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ck0x4l7sEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ck0x417sEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ck0x5F7sEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ck0x5V7sEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UBwvMF7tEeGEmrrwB1vhPg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UBwvMV7tEeGEmrrwB1vhPg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UBxWQF7tEeGEmrrwB1vhPg" key="StereotypeList" value="FCM::InteractionComponent"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UBxWQV7tEeGEmrrwB1vhPg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UBxWQl7tEeGEmrrwB1vhPg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UBxWQ17tEeGEmrrwB1vhPg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ck0x5l7sEeGEmrrwB1vhPg" type="5156">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VCInEF7tEeGEmrrwB1vhPg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WxsgMF7tEeGEmrrwB1vhPg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WxsgMV7tEeGEmrrwB1vhPg" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WxsgMl7tEeGEmrrwB1vhPg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WxsgM17tEeGEmrrwB1vhPg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WxsgNF7tEeGEmrrwB1vhPg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ck0x517sEeGEmrrwB1vhPg" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ck0x6F7sEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ck0x6V7sEeGEmrrwB1vhPg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qrnGYF7sEeGEmrrwB1vhPg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qrntcF7sEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qrntcV7sEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qrntcl7sEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qrntc17sEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qroUgF7sEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qroUgV7sEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zr6CMF7sEeGEmrrwB1vhPg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0HjcYF7sEeGEmrrwB1vhPg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0HjcYV7sEeGEmrrwB1vhPg" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0HkDcF7sEeGEmrrwB1vhPg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0HkDcV7sEeGEmrrwB1vhPg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0HkDcl7sEeGEmrrwB1vhPg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qroUgl7sEeGEmrrwB1vhPg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ds_9kFbDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QJj7wFeJEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="60"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qroUg17sEeGEmrrwB1vhPg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qroUhF7sEeGEmrrwB1vhPg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qroUhV7sEeGEmrrwB1vhPg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_0KY1UF7pEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qrnGYV7sEeGEmrrwB1vhPg" x="147" y="38"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qroUhl7sEeGEmrrwB1vhPg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qro7kF7sEeGEmrrwB1vhPg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qro7kV7sEeGEmrrwB1vhPg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qro7kl7sEeGEmrrwB1vhPg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qro7k17sEeGEmrrwB1vhPg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qro7lF7sEeGEmrrwB1vhPg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qro7lV7sEeGEmrrwB1vhPg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1PKksF7sEeGEmrrwB1vhPg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1vGpAF7sEeGEmrrwB1vhPg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1vGpAV7sEeGEmrrwB1vhPg" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1vGpAl7sEeGEmrrwB1vhPg" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1vGpA17sEeGEmrrwB1vhPg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1vGpBF7sEeGEmrrwB1vhPg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qro7ll7sEeGEmrrwB1vhPg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dHyXsFbDEeKxltxu9uR4dg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PvAGsFeJEeKxltxu9uR4dg" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qro7l17sEeGEmrrwB1vhPg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qro7mF7sEeGEmrrwB1vhPg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qro7mV7sEeGEmrrwB1vhPg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="corecpp.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qroUh17sEeGEmrrwB1vhPg" x="-10" y="38"/>
+ </children>
+ <element xmi:type="uml:Class" href="corecpp.uml#_Mo2kwF7pEeGEmrrwB1vhPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ck0K0V7sEeGEmrrwB1vhPg" x="420" y="196" width="157" height="66"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_DfG8kV7qEeGEmrrwB1vhPg"/>
+ <element xmi:type="uml:Package" href="corecpp.uml#_ZISNcIQzEd2_fLv04swWfw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_GsuIEF7qEeGEmrrwB1vhPg" type="4015" source="_FWtXYF7qEeGEmrrwB1vhPg" target="_EYv6UF7qEeGEmrrwB1vhPg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GsvWMF7qEeGEmrrwB1vhPg" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GsvWMV7qEeGEmrrwB1vhPg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_GsuIEV7qEeGEmrrwB1vhPg" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corecpp.uml#_lYOSkClzEd-eoo60eNyGlg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GsuIEl7qEeGEmrrwB1vhPg" points="[-4, -29, 13, 99]$[-13, -98, 4, 30]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_eJ55UF7sEeGEmrrwB1vhPg" type="4015" source="_ck0K0F7sEeGEmrrwB1vhPg" target="_b3o7wF7sEeGEmrrwB1vhPg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_eJ6gYF7sEeGEmrrwB1vhPg" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eJ6gYV7sEeGEmrrwB1vhPg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_eJ55UV7sEeGEmrrwB1vhPg" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="corecpp.uml#_eJqowF7sEeGEmrrwB1vhPg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_eJ55Ul7sEeGEmrrwB1vhPg" points="[-9, -10, -7, 96]$[-9, -76, -7, 30]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eKfIIF7sEeGEmrrwB1vhPg" id="(0.504424778761062,0.1694915254237288)"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/corecpp.uml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/corecpp.uml
new file mode 100644
index 00000000000..1570093713d
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/corecpp.uml
@@ -0,0 +1,1507 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:C_Cpp="http://www.eclipse.org/papyrus/C_Cpp/1" xmlns:FCM="http://www.eclipse.org/papyrus/FCM/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:l2="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML">
+ <uml:Model xmi:id="_O6TiIDLUEd26WNosUASSSw" name="core" viewpoint="">
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_O6TiITLUEd26WNosUASSSw">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_clzbsC3xEd6OqY3qskOtLQ">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/sysinterfaces.uml#_RodVAAweEd6it_RkGhz_AA"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_hWGaIF9CEd6vU6EJjexEKQ">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/corba.uml#_DtQEwDLdEd2_U4efLnjQIw"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_K9IBUP-FEd6628OhKk_dpg">
+ <importedPackage xmi:type="uml:Model" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_DV8nkBv8EduZN5aJJITI5w"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_mXnzUPQdEeCIC-7tA9lfzA">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/osal.uml#_ROTQYC-OEdySSa8YESkO2w"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Package" xmi:id="_TFq8cOy6Ed2UrumbR9YAVg" name="composites">
+ <packagedElement xmi:type="uml:Class" xmi:id="_WK3LwOy6Ed2UrumbR9YAVg" name="Composite">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_IiLnAMFjEd-Mveea1W_olA">
+ <body>currently unused, not sure whether really needed</body>
+ </ownedComment>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_2JtG8Oy6Ed2UrumbR9YAVg" name="b:createConnections" visibility="package" specification="_wlXUoOy6Ed2UrumbR9YAVg">
+ <language>C/C++</language>
+ <body>[template (clazz: Class)]
+/* --- create internal connections --- */
+[for (connector : Connector | clazz.getOwnedConnectors())]%>
+ [comment call createConnection (this = connector instance) define in utils /]
+ // connector [connector.name/]
+ [createConnection(connector)/]
+[/for]
+[/template]</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_D83p8Oy9Ed2UrumbR9YAVg" name="b:setup" specification="_BTEWIOy9Ed2UrumbR9YAVg">
+ <language>C/C++</language>
+ <body>[template (clazz: Class)]
+// createParts
+// assign implementations fixed at component design time
+[for (Property part | clazz.part)]
+ [if (type.isImplementation)]
+ [part.name/] = &amp;m_[part.name/]_impl;
+ [/if]
+[/for]
+
+// assign implementation fixed at deployment time
+[for (Property part | clazz.part)]
+ [if (type.isImplementation)]
+m_[part.name/] = [part.name/]
+ [/if]
+[/for]
+[/template]</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_wlXUoOy6Ed2UrumbR9YAVg" name="createConnections" method="_2JtG8Oy6Ed2UrumbR9YAVg"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_BTEWIOy9Ed2UrumbR9YAVg" name="setup" method="_D83p8Oy9Ed2UrumbR9YAVg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_1RehUAGpEd6eR-dxi5su4Q" name="BootLoader">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_JMwYwMGJEd-Mveea1W_olA">
+ <body>A template for the bootloader generation.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_JM4UkMGJEd-Mveea1W_olA">
+ <body>This C++ implementation of the template contains principally the definition of the
+&quot;main&quot; function and the declaration of the bootloader instance</body>
+ </ownedComment>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_AFnZUAGqEd6eR-dxi5su4Q" name="b:createInstances" specification="_3kwykAGpEd6eR-dxi5su4Q">
+ <language>C/C++</language>
+ <body>&lt;%createInstances%></body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_IbrFUAGqEd6eR-dxi5su4Q" name="b:main" specification="_6pkAUAGpEd6eR-dxi5su4Q"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_3kwykAGpEd6eR-dxi5su4Q" name="createInstances" method="_AFnZUAGqEd6eR-dxi5su4Q"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_6pkAUAGpEd6eR-dxi5su4Q" name="main" isStatic="true" method="_IbrFUAGqEd6eR-dxi5su4Q"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_mMCK8PiPEd2UhpY2Y3WUyg" name="methodCall">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_WiuBUK8rEeCXIcykFPsB8Q" annotatedElement="_mMCK8PiPEd2UhpY2Y3WUyg">
+ <body>Main package template for all call based connectors. The formal parameter is the interface I (which is bound to the actual interface used in a call).
+This package is virtually extended by other model libraries who import it.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="__oxUADrVEeGMCcwsbpLuFA" annotatedElement="_j29X4NttEd2eM5kqcby5ZA">
+ <body>Inheritance hierarchy for (A)SyncCall component types. Separate types for required (rconn) and provided (fconn) ports enable re-use via inheritance ain multiple places (e.g. for AMI ports that use an unmodified provided port and different variants of a required port).
+Note that ports on connector side are conjugated</body>
+ </ownedComment>
+ <ownedTemplateSignature xmi:type="uml:TemplateSignature" xmi:id="_V0b2APfBEd2TbIfwytOyPA" parameter="_WzWVUPfBEd2TbIfwytOyPA">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_WzWVUPfBEd2TbIfwytOyPA" parameteredElement="_ZzlzMPfBEd2TbIfwytOyPA">
+ <ownedParameteredElement xmi:type="uml:Interface" xmi:id="_ZzlzMPfBEd2TbIfwytOyPA" name="I" templateParameter="_WzWVUPfBEd2TbIfwytOyPA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <packagedElement xmi:type="uml:Package" xmi:id="_ZISNcIQzEd2_fLv04swWfw" name="AsyncCall">
+ <packagedElement xmi:type="uml:Class" xmi:id="_KxQBELuXEd2TTr3gJIvazw" name="AsyncCall" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_0KzSsDBEEd6V16eboHV1gw" general="_j29X4NttEd2eM5kqcby5ZA"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_1H2JwDBEEd6V16eboHV1gw" general="_mIpj8Ns8Ed2eM5kqcby5ZA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Whe8EClYEd-eoo60eNyGlg" clientDependency="_nBpugClzEd-eoo60eNyGlg" name="AsyncCall_impl">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_sp9YYG5fEd-5CZIeuHpHAg">
+ <body>Description: A simple implementation of asynchronous calls. It will execution requests by means of a single dispatcher thread</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_HMz-ADJKEeCAhMtIsY9HwA">
+ <body>Simple asynchronous call implementation: returns immediately and executes request in new thread</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_bustsDJKEeCAhMtIsY9HwA">
+ <body>Uses buffer and ASN marshalling.
+TODO: configurable buffer size, use data structure (CppParameterStorage)</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_lYOSkClzEd-eoo60eNyGlg" general="_KxQBELuXEd2TTr3gJIvazw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_1XeLIED5Ed-_DOja_sRgWA" name="buffer" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8wC7MED5Ed-_DOja_sRgWA" value="500"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8wLeEED5Ed-_DOja_sRgWA" value="500"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_2fcqYED6Ed-_DOja_sRgWA" name="pBuffer" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ </ownedAttribute>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_nBpugClzEd-eoo60eNyGlg" name="derived realization of I" client="_Whe8EClYEd-eoo60eNyGlg" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_WhfjIilYEd-eoo60eNyGlg" name="[name/]" specification="_2bwsEClzEd-eoo60eNyGlg">
+ <language>C/C++</language>
+ <body>[import org::eclipse::papyrus::qompass::designer::core::acceleo::UMLTool/]
+[import org::eclipse::papyrus::qompass::designer::core::acceleo::utils_cpp/]
+
+[template public op(operation : Operation)]
+// TODO: need suitable constant dimensioning
+pBuffer = &amp;buffer['['/]500[']'/]; // grows backwards
+int operationID = ID_[operation.name/];
+
+// now marshall in and inout parameters via ASN.1
+[for (parameter : Parameter | operation.parametersInInout())]
+{
+ [parameter.type.cppType()/] varName_ASN = [parameter.name/];
+ BEncAsnContent (&amp;pBuffer, &amp;varName_ASN);
+}
+[/for]
+BEncAsnContent (&amp;pBuffer, &amp;operationID);
+
+pthread_t pt;
+pthread_create (&amp;pt, NULL, staticDispatch, (void *) this);
+// TODO: add semaphore which assures that subsequent calls to [operation.name/] are not executed before dispatch
+// has removed the parameters from the pBuffer stack (pBuffer can be corrupted).
+[/template]</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_WhfjIylYEd-eoo60eNyGlg" name="static[name/]" specification="_WhfjJSlYEd-eoo60eNyGlg">
+ <language>C/C++</language>
+ <body>((AsyncCall_impl *) arg)->dispatch ();
+return NULL;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_nV2DcED5Ed-_DOja_sRgWA" name="dispatch" specification="_G6LzAD3QEd-Bk-AHd6yyoA">
+ <language>C/C++</language>
+ <body>[import org::eclipse::papyrus::qompass::designer::core::acceleo::UMLTool/]
+[import org::eclipse::papyrus::qompass::designer::core::acceleo::utils_cpp/]
+
+[template public dispatch(clazz : Class)]
+int operationID;
+BDecAsnContent (&amp;pBuffer, operationID);
+switch (operationID)
+{
+[for (operation : Operation | clazz.ownedOperation)]
+ case ID_[operation.name/]
+ {
+ [for (parameter : Parameter | operation.parametersInInout()->reverse())]
+ [parameter.type.cppType()/] [parameter.name/]
+ {
+ [parameter.type.cppType()/] varName_ASN;
+ BDecAsnContent (&amp;pBuffer, &amp;varName_ASN);
+ [parameter.name/] = varName_ASN;
+ }
+ [/for]
+ // delegate call to executor
+ rconn->[operation.cppCall()/];
+ break;
+ }
+[/for]
+}
+[/template]</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_WhfjJSlYEd-eoo60eNyGlg" name="staticDispatch" isStatic="true" method="_WhfjIylYEd-eoo60eNyGlg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_WhfjJilYEd-eoo60eNyGlg" name="arg">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WhfjKClYEd-eoo60eNyGlg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_WhfjJylYEd-eoo60eNyGlg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_WhfjKSlYEd-eoo60eNyGlg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_WhfjKilYEd-eoo60eNyGlg" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_2bwsEClzEd-eoo60eNyGlg" name="[name/]" method="_WhfjIilYEd-eoo60eNyGlg"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_G6LzAD3QEd-Bk-AHd6yyoA" name="dispatch" method="_nV2DcED5Ed-_DOja_sRgWA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_pXzKcEJ1Ed-Ps4Bfh0j9LQ" clientDependency="_pXzxh0J1Ed-Ps4Bfh0j9LQ" name="AsyncCallPool_impl">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_spsPMDJKEeCAhMtIsY9HwA">
+ <body>(untested) implementation of an asynchronous invocation that uses a thread pool for
+spawning new requests</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_pXzKcUJ1Ed-Ps4Bfh0j9LQ" general="_KxQBELuXEd2TTr3gJIvazw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_pXzxgEJ1Ed-Ps4Bfh0j9LQ" name="buffer" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_pXzxgkJ1Ed-Ps4Bfh0j9LQ" value="500"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_pXzxgUJ1Ed-Ps4Bfh0j9LQ" value="500"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_pXzxg0J1Ed-Ps4Bfh0j9LQ" name="pBuffer" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ </ownedAttribute>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_pXzxh0J1Ed-Ps4Bfh0j9LQ" name="derived realization of I" client="_pXzKcEJ1Ed-Ps4Bfh0j9LQ" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_pXzxhEJ1Ed-Ps4Bfh0j9LQ" name="[name/]" specification="_pXzxjkJ1Ed-Ps4Bfh0j9LQ">
+ <language>C/C++</language>
+ <body>[template marshall(operation: Operation)]
+// TODO: need suitable constant dimensioning
+pBuffer = &amp;buffer[500]; // grows backwards
+int operationID = ID_[operation.name/];
+
+// now marshall in and inout parameters via ASN.1
+for (parameter : Parameter | parametersInInout(operation)]
+{
+ [cppType(parameter.type)/] varName_ASN = [parameter.name/];
+ BEncAsnContent (&amp;pBuffer, &amp;varName_ASN);
+}
+[/for]
+BEncAsnContent (&amp;pBuffer, &amp;operationID);
+
+// find associated thread and signal its semaphore
+// pass &quot;this&quot; to access buffer
+// pthread_t pt;
+// pthread_create (&amp;pt, NULL, staticDispatch, (void *) this);
+// TODO: add semaphore which assures that 2 snd calls to [operation.name/] is not done before dispatch
+// is executed
+[/template]
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_pXzxhUJ1Ed-Ps4Bfh0j9LQ" name="static[name/]" specification="_pXzxiEJ1Ed-Ps4Bfh0j9LQ">
+ <language>C/C++</language>
+ <body>((AsyncCall_impl *) arg)->dispatch ();
+return NULL;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_pXzxhkJ1Ed-Ps4Bfh0j9LQ" name="dispatch" specification="_pXzxj0J1Ed-Ps4Bfh0j9LQ">
+ <language>C/C++</language>
+ <body>[import org::eclipse::papyrus::qompass::designer::core::acceleo::UMLTool/]
+[import org::eclipse::papyrus::qompass::designer::core::acceleo::utils_cpp/]
+
+[template public dispatch(clazz : Class)]
+int operationID;
+BDecAsnContent (&amp;pBuffer, operationID);
+switch (operationID)
+{
+[for (operation : Operation | clazz.ownedOperation)]
+ case ID_[operation.name/]
+ {
+ [for (parameter : Parameter | operation.parametersInInout()->reverse())]
+ [parameter.type.cppType()/] [parameter.name/]
+ {
+ [cppType(parameter.type)/] varName_ASN;
+ BDecAsnContent (&amp;pBuffer, &amp;varName_ASN);
+ [parameter.name/] = varName_ASN;
+ }
+ [/for]
+ // delegate call to executor
+ [if (not (type = null))] [operation.type.cppType()/] ret = [/if]rconn->[operation.cppCall()/];
+ [for (parameter : Parameter | operation.parametersOutInout())]
+ {
+ [parameter.type.cppType()/] varName_ASN = [parameter.name/];
+ BEncAsnContent (&amp;pBuffer, &amp;varName_ASN);
+ }
+ [/for]
+ resultsReady = 1;
+ break;
+ }
+[/for]
+}
+[/template]
+</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_pXzxiEJ1Ed-Ps4Bfh0j9LQ" name="staticDispatch" isStatic="true" method="_pXzxhUJ1Ed-Ps4Bfh0j9LQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_pXzxiUJ1Ed-Ps4Bfh0j9LQ" name="arg">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_pXzxi0J1Ed-Ps4Bfh0j9LQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_pXzxikJ1Ed-Ps4Bfh0j9LQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_pXzxjEJ1Ed-Ps4Bfh0j9LQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_pXzxjUJ1Ed-Ps4Bfh0j9LQ" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_pXzxjkJ1Ed-Ps4Bfh0j9LQ" name="[name/]" method="_pXzxhEJ1Ed-Ps4Bfh0j9LQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_pXzxj0J1Ed-Ps4Bfh0j9LQ" name="dispatch" method="_pXzxhkJ1Ed-Ps4Bfh0j9LQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_3itBkNdwEd-ZnqCk2P2ZKg" clientDependency="_3itBmtdwEd-ZnqCk2P2ZKg" name="AMIPollCall_impl">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_3itBkddwEd-ZnqCk2P2ZKg">
+ <body>Description: A simple implementation of asynchronous calls. It will execution requests by means of a single dispatcher thread</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_lEC3ADJLEeCAhMtIsY9HwA">
+ <body>Polling variant of corbas asynchronous messaging (AMI), enables asynchronous calls while reading
+return values (also called deferred synchronous):
+Instead of specified return values, functions return a poller object which may be queried for
+the result.
+TODO: complete, move into model of Qompass AMI plugin</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_3itBktdwEd-ZnqCk2P2ZKg" general="_KxQBELuXEd2TTr3gJIvazw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_3itBk9dwEd-ZnqCk2P2ZKg" name="buffer" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3itBlddwEd-ZnqCk2P2ZKg" value="500"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3itBlNdwEd-ZnqCk2P2ZKg" value="500"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_3itBltdwEd-ZnqCk2P2ZKg" name="pBuffer" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ </ownedAttribute>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_3itBmtdwEd-ZnqCk2P2ZKg" name="derived realization of I" client="_3itBkNdwEd-ZnqCk2P2ZKg" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_3itBl9dwEd-ZnqCk2P2ZKg" name="[name/]" specification="_3itBoddwEd-ZnqCk2P2ZKg">
+ <language>C/C++</language>
+ <body>[import org::eclipse::papyrus::qompass::designer::core::acceleo::UMLTool/]
+[import org::eclipse::papyrus::qompass::designer::core::acceleo::utils_cpp/]
+
+[template public marshall(operation : Operation)]
+[if (operation.name.oclAsType(String).endsWith('Poll'))]
+[comment polling function/]
+if (!resultArrived) {
+ // wait for result, condition will be fired upon arrival
+ TimeVal timeVal = TimeVal::current () + timeout;
+ m_cond.waitUpto (timeout);
+}
+ [for (parameter : Parameter | operation.parametersInInout()->reverse())]
+ [parameter.type.cppType()/] [parameter.name/];
+ {
+ [parameter.type.cppType()/] varName_ASN;
+ BDecAsnContent (&amp;pBuffer, &amp;varName_ASN);
+ [parameter.name/] = varName_ASN;
+ }
+ [/for]
+}
+[if (not (type = null))]return retValue;[/if]
+[else]
+// TODO: need suitable constant dimensioning
+pBuffer = &amp;buffer['['/]500[']'/]; // grows backwards
+int operationID = ID_[operation.name/];
+
+// now marshall in and inout parameters via ASN.1
+[for (parameter : Parameter | operation.parametersInInout())]
+ [parameter.type.cppType()/] [parameter.name/];
+ {
+ [parameter.type.cppType()/] varName_ASN = [parameter.name/];
+ BEncAsnContent (&amp;pBuffer, &amp;varName_ASN);
+ }
+[/for]
+BEncAsnContent (&amp;pBuffer, &amp;operationID);
+
+pthread_t pt;
+pthread_create (&amp;pt, NULL, staticDispatch, (void *) this);
+// TODO: add semaphore which assures that subsequent calls to [operation.name/] are not executed before dispatch
+// has removed the parameters from the pBuffer stack (pBuffer can be corrupted).
+// even worse: buffer will be deallocated even without a 2nd call!
+[/if]
+[/template]</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_3itBmNdwEd-ZnqCk2P2ZKg" name="static[name/]" specification="_3itBm9dwEd-ZnqCk2P2ZKg">
+ <language>C/C++</language>
+ <body>((AsyncCall_impl *) arg)->dispatch ();
+return NULL;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_3itBmddwEd-ZnqCk2P2ZKg" name="dispatch" specification="_3itBotdwEd-ZnqCk2P2ZKg">
+ <language>C/C++</language>
+ <body>[import org::eclipse::papyrus::qompass::designer::core::acceleo::UMLTool/]
+[import org::eclipse::papyrus::qompass::designer::core::acceleo::utils_cpp/]
+
+[template public dispatch(clazz : Class)]
+int operationID;
+BDecAsnContent (&amp;pBuffer, operationID);
+switch (operationID)
+{
+[for (operation : Operation | clazz.ownedOperation)]
+ case ID_[operation.name/]
+ {
+ [for (parameter : Parameter | operation.parametersInInout()->reverse())]
+ [parameter.type.cppType()/] [parameter.name/]
+ {
+ [cppType(parameter.type)/] varName_ASN;
+ BDecAsnContent (&amp;pBuffer, &amp;varName_ASN);
+ [parameter.name/] = varName_ASN;
+ }
+ [/for]
+ // delegate call to executor
+ [if (not (type = null))] [operation.type.cppType()/] ret = [/if]rconn->[operation.cppCall()/];
+ [for (parameter : Parameter | operation.parametersOutInout())]
+ {
+ [parameter.type.cppType()/] varName_ASN = [parameter.name/];
+ BEncAsnContent (&amp;pBuffer, &amp;varName_ASN);
+ }
+ [/for]
+ resultsReady = 1;
+ break;
+ }
+[/for]
+}
+[/template]
+</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_3itBm9dwEd-ZnqCk2P2ZKg" name="staticDispatch" isStatic="true" method="_3itBmNdwEd-ZnqCk2P2ZKg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_3itBnNdwEd-ZnqCk2P2ZKg" name="arg">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3itBntdwEd-ZnqCk2P2ZKg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3itBnddwEd-ZnqCk2P2ZKg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_3itBn9dwEd-ZnqCk2P2ZKg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_3itBoNdwEd-ZnqCk2P2ZKg" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_3itBoddwEd-ZnqCk2P2ZKg" name="[name/]" method="_3itBl9dwEd-ZnqCk2P2ZKg"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_3itBotdwEd-ZnqCk2P2ZKg" name="dispatch" method="_3itBmddwEd-ZnqCk2P2ZKg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Mo2kwF7pEeGEmrrwB1vhPg" clientDependency="_8e_ocF7sEeGEmrrwB1vhPg" name="CallMultiplier_impl">
+ <generalization xmi:type="uml:Generalization" xmi:id="_eJqowF7sEeGEmrrwB1vhPg" general="_TLShkF7qEeGEmrrwB1vhPg"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_8e_ocF7sEeGEmrrwB1vhPg" name="derived realization of I" client="_Mo2kwF7pEeGEmrrwB1vhPg" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_DmUQcF7tEeGEmrrwB1vhPg" name="operation1" specification="_ChD4kF7tEeGEmrrwB1vhPg">
+ <language>C/C++</language>
+ <body>[import org::eclipse::papyrus::qompass::designer::core::acceleo::UMLTool/]
+[import org::eclipse::papyrus::qompass::designer::core::acceleo::utils_cpp/]
+
+[template public multiply(operation : Operation)]
+for (int i=0; i&lt;9; i++) {
+ if (rconn['['/]i[']'/] != 0) {
+ rconn['['/]i[']'/]->[operation.cppCall()/];
+ }
+}
+[/template]</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_ChD4kF7tEeGEmrrwB1vhPg" name="[name/]" method="_DmUQcF7tEeGEmrrwB1vhPg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_TLShkF7qEeGEmrrwB1vhPg" name="AsyncCallM" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_WhUpQF7qEeGEmrrwB1vhPg" general="_0KYOQF7pEeGEmrrwB1vhPg"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_XgUoIF7qEeGEmrrwB1vhPg" general="_j29X4NttEd2eM5kqcby5ZA"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_2oxDIPiPEd2UhpY2Y3WUyg" name="OperationIDs">
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_KOvHsPiREd2UhpY2Y3WUyg" name="ID_[name/]"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_j29X4NttEd2eM5kqcby5ZA" name="OPC_useI" isAbstract="true">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_P4xVsNtuEd2eM5kqcby5ZA" name="fconn" type="_ZzlzMPfBEd2TbIfwytOyPA" aggregation="composite" isConjugated="true"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_mIpj8Ns8Ed2eM5kqcby5ZA" name="OPC_provideI" isAbstract="true">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_Qk0jYNtuEd2eM5kqcby5ZA" name="rconn" visibility="public" type="_ZzlzMPfBEd2TbIfwytOyPA" aggregation="composite" isConjugated="true">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rftH8ENwEeGoAtSeIK7WLg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rfxZYENwEeGoAtSeIK7WLg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_rf3gAENwEeGoAtSeIK7WLg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_gKMTIAytEd6it_RkGhz_AA" name="marshalling">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_9gpvcENxEeGoAtSeIK7WLg">
+ <body>Needs completion:
+good(?) write buffer event?
+Call operations of buffer component?
+[could have done in an identical way for EventPool]</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_pk4cMEN_EeGfhclnRyNzoA">
+ <body>Marshalling is done at two levels:
+(1) In case of a shared address space, only a callEvent is created. It can be passed between threads within a process.
+(2) For remote communication, marshalling into a buffer is done.</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_b_yh4AzyEd6it_RkGhz_AA" name="Marshall" isAbstract="true">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_rSCxUAytEd6it_RkGhz_AA" name="disp" visibility="public" aggregation="composite">
+ <type xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_7TuzoCUUEd6YR-YzyVnLng"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HZg9YPQSEeCovO8AYZymZQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HaX5APQSEeCovO8AYZymZQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_Hfsd4PQSEeCovO8AYZymZQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_MhH6cENxEeGoAtSeIK7WLg" name="in" visibility="public" type="_WkkjoPNUEeCovO8AYZymZQ" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QR4PQENxEeGoAtSeIK7WLg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QR5dYENxEeGoAtSeIK7WLg" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_fmF6MAzyEd6it_RkGhz_AA" name="Unmarshall" isAbstract="true">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_r5Va0AytEd6it_RkGhz_AA" name="disp" visibility="public" aggregation="composite">
+ <type xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_7TuzoCUUEd6YR-YzyVnLng"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WNWcQEN-EeGfhclnRyNzoA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_WNY4gEN-EeGfhclnRyNzoA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_WNe_IEN-EeGfhclnRyNzoA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_Zd558ENxEeGoAtSeIK7WLg" name="out" visibility="public" type="_WkkjoPNUEeCovO8AYZymZQ" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_aPDDAENxEeGoAtSeIK7WLg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_aPERIENxEeGoAtSeIK7WLg" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_fPpr0K-jEd6DndT7kDY1-A" name="b:dispatch">
+ <specification xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#__aGzICUUEd6YR-YzyVnLng"/>
+ </ownedBehavior>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="__uJRYPNGEeCovO8AYZymZQ" name="StructBased">
+ <generalization xmi:type="uml:Generalization" xmi:id="_EWShMPNHEeCovO8AYZymZQ" general="_b_yh4AzyEd6it_RkGhz_AA"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_qRJc8PNJEeCovO8AYZymZQ" name="[name/]" specification="_aGt1sPNJEeCovO8AYZymZQ">
+ <language>C/C++</language>
+ <body>[template marshallStruct(operation : Operation)]
+struct ParamData {
+[for (parameter : Parameter | parametersInInout(operation))]
+ int [cppType(name)/];
+[/for]
+};
+Event event;
+event.ID = [operation.name/];
+event.kind = CallEvent;
+ParamData * data = &amp;event.params;
+[for (parameter : Parameter | parametersInInout(operation))]
+ data->[parameter.name/] = [parameter.name/];
+[/for]
+out->dispatch(event);</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_aGt1sPNJEeCovO8AYZymZQ" name="[name/]" method="_qRJc8PNJEeCovO8AYZymZQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_u7MmIENqEeGoAtSeIK7WLg" name="ToCallEvent">
+ <generalization xmi:type="uml:Generalization" xmi:id="_K088oF_rEd6RvK-1A151zQ" general="_j29X4NttEd2eM5kqcby5ZA"/>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_-nk_cENqEeGoAtSeIK7WLg" name="out" visibility="public" type="_WkkjoPNUEeCovO8AYZymZQ" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_AdVAIENrEeGoAtSeIK7WLg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_AdW1UENrEeGoAtSeIK7WLg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_Adf_QENrEeGoAtSeIK7WLg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_1xGG8ENqEeGoAtSeIK7WLg" name="FromCallEventWP">
+ <generalization xmi:type="uml:Generalization" xmi:id="_M09FgF_rEd6RvK-1A151zQ" general="_mIpj8Ns8Ed2eM5kqcby5ZA"/>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_9gIc8ENvEeGoAtSeIK7WLg" name="in" visibility="public" type="_WkkjoPNUEeCovO8AYZymZQ" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9uDkMENvEeGoAtSeIK7WLg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9uEyUENvEeGoAtSeIK7WLg" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_H7IOcENrEeGoAtSeIK7WLg" name="ToCallEventWP">
+ <generalization xmi:type="uml:Generalization" xmi:id="_KHmGAENrEeGoAtSeIK7WLg" general="_j29X4NttEd2eM5kqcby5ZA"/>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_i5SOQEN8EeGfhclnRyNzoA" name="out" visibility="public" type="_WkkjoPNUEeCovO8AYZymZQ" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jRB_4EN8EeGfhclnRyNzoA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jRtVUEN8EeGfhclnRyNzoA" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_RjvvcA1jEd6tvthBDl600Q" name="SyncCall">
+ <packagedElement xmi:type="uml:Class" xmi:id="_Zx2ZUA1jEd6tvthBDl600Q" name="SyncCall" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_STdvYDBFEd6V16eboHV1gw" general="_j29X4NttEd2eM5kqcby5ZA"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_T1zr4DBFEd6V16eboHV1gw" general="_mIpj8Ns8Ed2eM5kqcby5ZA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_jOU60A1jEd6tvthBDl600Q" clientDependency="_1tfFAJyCEd6WR4pSVO_UYw" name="DirectCall_impl">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_MgKU8G5gEd-5CZIeuHpHAg">
+ <body>Description: This connector is a kind of dummy connector, since it only passes incoming requests to its caller port</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_0fC3UDJJEeCAhMtIsY9HwA">
+ <body>Minimal connector implementation that does nothing (but passing requests)</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_0fOdgDJJEeCAhMtIsY9HwA">
+ <body></body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_lm4GkA1jEd6tvthBDl600Q" general="_Zx2ZUA1jEd6tvthBDl600Q"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_1tfFAJyCEd6WR4pSVO_UYw" name="derived realization of I" client="_jOU60A1jEd6tvthBDl600Q" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_GSdesJ09Ed6l5bTPBsl00Q" name="[name/]" specification="__y0hwJ08Ed6l5bTPBsl00Q">
+ <language>C/C++</language>
+ <body>[import org::eclipse::papyrus::qompass::designer::core::acceleo::utils_cpp/]
+
+[template public methodCall(operation : Operation)]
+// put pre-interceptors here
+[comment type is a derived property containing the operations return type/]
+[if not (operation.type = null)]return [/if]rconn->[operation.cppCall()/];
+// put post-interceptors here
+[/template]</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="__y0hwJ08Ed6l5bTPBsl00Q" name="[name/]" method="_GSdesJ09Ed6l5bTPBsl00Q"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_UAIU0K-iEd6DndT7kDY1-A" name="AdaptiveContainerServices">
+ <packagedElement xmi:type="uml:Class" xmi:id="_cxVEsK-iEd6DndT7kDY1-A" clientDependency="_v-oAAK-iEd6DndT7kDY1-A" name="SampleInterceptor">
+ <generalization xmi:type="uml:Generalization" xmi:id="_lrS8oAQxEd--t-uhRn9OBA" general="_Zx2ZUA1jEd6tvthBDl600Q"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_v-oAAK-iEd6DndT7kDY1-A" name="derived realization of I" client="_cxVEsK-iEd6DndT7kDY1-A" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_GTvA0K-jEd6DndT7kDY1-A" name="[name/]" specification="_16jy8K-iEd6DndT7kDY1-A">
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;this is a sample pre-call interception&quot; &lt;&lt; endl;
+rconn->&lt;%cppCall%>;
+cout &lt;&lt; &quot;this is a sample post-call interception&quot; &lt;&lt; endl;</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_16jy8K-iEd6DndT7kDY1-A" name="[name/]" method="_GTvA0K-jEd6DndT7kDY1-A"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_aQ7goChYEd-eoo60eNyGlg" name="CallActivation">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_aAH58D8CEeGJ6KSvhYhYuQ">
+ <body>A set of Leader followers is instantiated. Each has its own thread and a semaphore. The LF instance waits on its semaphore. When selectLeader is called, a follower is signaled (semaphore is posted) and will become leader. The leader waits for a resource (e.g. a socket) and becomes executor.
+</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_e6Y_EChYEd-eoo60eNyGlg" name="Activator">
+ <generalization xmi:type="uml:Generalization" xmi:id="_oJX3IChYEd-eoo60eNyGlg" general="_KxQBELuXEd2TTr3gJIvazw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_qgzokChYEd-eoo60eNyGlg" clientDependency="_cWjrYCsAEd-uZPFNCty7PQ" name="LeaderFollower">
+ <generalization xmi:type="uml:Generalization" xmi:id="_sW6OkChYEd-eoo60eNyGlg" general="_e6Y_EChYEd-eoo60eNyGlg"/>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_N0tB4Cu4Ed-uZPFNCty7PQ" name="listener" type="_fxfe8Cu1Ed-uZPFNCty7PQ" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_UxKdsCu4Ed-uZPFNCty7PQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_UxM58Cu4Ed-uZPFNCty7PQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="__fLb4Cu5Ed-uZPFNCty7PQ" name="state" type="_F3CIECu1Ed-uZPFNCty7PQ" isUnique="false" aggregation="composite"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_M4VG8Cu9Ed-uZPFNCty7PQ" name="m_sema" type="_fxfe8Cu1Ed-uZPFNCty7PQ" isUnique="false" aggregation="composite"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_rmwGoCu-Ed-uZPFNCty7PQ" name="m_sr" isStatic="true" type="_qgzokChYEd-eoo60eNyGlg" isUnique="false" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zYwqYCu-Ed-uZPFNCty7PQ" value="20"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zY4mMCu-Ed-uZPFNCty7PQ" value="20"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xukAICvDEd-uZPFNCty7PQ" name="m_tID" type="_5KatsCvDEd-uZPFNCty7PQ" isUnique="false" aggregation="composite"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Xq00oCvHEd-uZPFNCty7PQ" name="POOL_SIZE" isStatic="true" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_ZmFncCvHEd-uZPFNCty7PQ" value="20"/>
+ </ownedAttribute>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_cWjrYCsAEd-uZPFNCty7PQ" name="derived realization of I" client="_qgzokChYEd-eoo60eNyGlg" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_D8z3ECu1Ed-uZPFNCty7PQ" name="run" specification="_2FN1ICu0Ed-uZPFNCty7PQ">
+ <language>C/C++</language>
+ <body>for (;;) {
+ // wait to be become active
+ m_state = FOLLOWER;
+ sem_wait (&amp;m_sema);
+ m_state = LEADER;
+ listener->select(); // no loop, single select
+ selectLeader ();
+ m_state = EXECUTOR;
+ listener->exec();
+}
+
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_wXEiYCu7Ed-uZPFNCty7PQ" name="selectLeader" specification="_eHX3wCu7Ed-uZPFNCty7PQ">
+ <language>C/C++</language>
+ <body>// select a new leader from the followers
+for (int i = currentIndex+1, j=0; j&lt;POOL_SIZE; i++, j++)
+{
+ if (i == POOL_SIZE) {
+ i = 0;
+ }
+ if (sr[i].state == FOLLOWER) {
+ sem_post (&amp;sr[i].m_sema);
+ break;
+ }
+}</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_4M1S0Cu9Ed-uZPFNCty7PQ" name="LeaderFollower" specification="_JM4I4Cu9Ed-uZPFNCty7PQ">
+ <language>C/C++</language>
+ <body>sem_init (&amp;m_sema, 0, 0);
+m_state = FOLLOWER;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_OyEk4Cu_Ed-uZPFNCty7PQ" name="init" specification="_6cImgCu-Ed-uZPFNCty7PQ">
+ <language>C/C++</language>
+ <body>for (int i=0; i&lt;POOL_SIZE; i++) {
+ pthread_create (&amp;m_sr.m_tID, 0, runStatic, &amp;m_sr[i]);
+}</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_AGUogCvHEd-uZPFNCty7PQ" name="runStatic" specification="_z-laoCvGEd-uZPFNCty7PQ">
+ <language>C/C++</language>
+ <body>((LeaderFollower *) arg)->run();</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_2FN1ICu0Ed-uZPFNCty7PQ" name="run" method="_D8z3ECu1Ed-uZPFNCty7PQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_eHX3wCu7Ed-uZPFNCty7PQ" name="selectLeader" method="_wXEiYCu7Ed-uZPFNCty7PQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_JM4I4Cu9Ed-uZPFNCty7PQ" name="LeaderFollower" method="_4M1S0Cu9Ed-uZPFNCty7PQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_6cImgCu-Ed-uZPFNCty7PQ" name="init" isStatic="true" method="_OyEk4Cu_Ed-uZPFNCty7PQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_z-laoCvGEd-uZPFNCty7PQ" name="runStatic" method="_AGUogCvHEd-uZPFNCty7PQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Dn-xYCvHEd-uZPFNCty7PQ" name="arg">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_IdnDkCvHEd-uZPFNCty7PQ" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_2wMyEChiEd-eoo60eNyGlg" clientDependency="_BhfKYChjEd-eoo60eNyGlg" name="SimpleActivation">
+ <generalization xmi:type="uml:Generalization" xmi:id="_5AKpkChiEd-eoo60eNyGlg" general="_e6Y_EChYEd-eoo60eNyGlg"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_BhfKYChjEd-eoo60eNyGlg" name="derived realization of I" client="_2wMyEChiEd-eoo60eNyGlg" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_6rmQoChiEd-eoo60eNyGlg" clientDependency="_cWkScCsAEd-uZPFNCty7PQ" name="Thread Pool">
+ <generalization xmi:type="uml:Generalization" xmi:id="_892AEChiEd-eoo60eNyGlg" general="_e6Y_EChYEd-eoo60eNyGlg"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_cWkScCsAEd-uZPFNCty7PQ" name="derived realization of I" client="_6rmQoChiEd-eoo60eNyGlg" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_BY-fwCnxEd-eoo60eNyGlg" name="sem_t">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_CQ_F0CnxEd-eoo60eNyGlg" name="lf" type="_qgzokChYEd-eoo60eNyGlg" isUnique="false" aggregation="composite"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_PpWOECnxEd-eoo60eNyGlg" name="listener" isUnique="false" aggregation="composite"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_F3CIECu1Ed-uZPFNCty7PQ" name="LFState">
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_QSQJwCu1Ed-uZPFNCty7PQ" name="EXECUTOR"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_R5B6UCu1Ed-uZPFNCty7PQ" name="FOLLOWER"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_SxRJ4Cu1Ed-uZPFNCty7PQ" name="LEADER"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_fxfe8Cu1Ed-uZPFNCty7PQ" name="IListener">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_eN6hcCu3Ed-uZPFNCty7PQ" name="exec" isAbstract="true"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_hY4ooCu3Ed-uZPFNCty7PQ" name="select" isAbstract="true"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_5KatsCvDEd-uZPFNCty7PQ" name="pthread_t"/>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_hcwDkD8CEeGJ6KSvhYhYuQ" name="LeaderFollowerState">
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_mzqd4D8CEeGJ6KSvhYhYuQ" name="LEADER"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_qdIe8D8CEeGJ6KSvhYhYuQ" name="FOLLOWER"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_rOMvgD8CEeGJ6KSvhYhYuQ" name="EXECUTOR"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_xOqL0No9Ed-wvpj-p-V_QQ" name="CppParameterStorage"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_0KYOQF7pEeGEmrrwB1vhPg" name="OPC_provideMultI" isAbstract="true">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_0KY1UF7pEeGEmrrwB1vhPg" name="rconn" visibility="public" type="_ZzlzMPfBEd2TbIfwytOyPA" aggregation="composite" isConjugated="true">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0KY1Ul7pEeGEmrrwB1vhPg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0KY1UV7pEeGEmrrwB1vhPg" value="10"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_0KY1U17pEeGEmrrwB1vhPg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_QwvnQFDlEd6cwecVIgl9nw" name="PortKinds">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_FryEELnZEeCxXoyQxQ47PQ" annotatedElement="_Wtq4sFDlEd6cwecVIgl9nw">
+ <body>Simple provision of typing interface as provided interface</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_K17NsLnZEeCxXoyQxQ47PQ" annotatedElement="_Wtrfw1DlEd6cwecVIgl9nw">
+ <body>Simple provision of typing interface as required interface</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_PxzR0LnZEeCxXoyQxQ47PQ" annotatedElement="__nMrwLqNEd-SedGzMDDkww">
+ <body>corba asynchronous messaging (AMI): Provision of poller variant of typing interface. Allows client to continue without waiting for the result</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_l49WMLnZEeCxXoyQxQ47PQ" annotatedElement="__nMrwLqNEd-SedGzMDDkww _AQZZwLqOEd-SedGzMDDkww">
+ <body>corba asynchronous messaging (AMI): Provision of callback variant of typing interface. Allows client Allows client to continue without waiting for the result</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_2dvXILnZEeCxXoyQxQ47PQ" annotatedElement="_Wtq4slDlEd6cwecVIgl9nw">
+ <body>Data Flow oriented communication: consume passively: provided push operation is called </body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Ch2pQLnaEeCxXoyQxQ47PQ">
+ <body>Data Flow oriented communication: produce data via pushing these (calling the required operation) </body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_DsnzQLnaEeCxXoyQxQ47PQ">
+ <body>Data Flow oriented communication: produce data via pushing these (calling the required operation) </body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_FMuUELnaEeCxXoyQxQ47PQ" annotatedElement="_WtrfwlDlEd6cwecVIgl9nw">
+ <body>Data Flow oriented communication: produce data via pushing these (calling the required operation) </body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_GgtrgLnaEeCxXoyQxQ47PQ" annotatedElement="_Wtq4sVDlEd6cwecVIgl9nw">
+ <body>Data Flow oriented communication: consumer data actively by calling the required poll operation </body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_-UGDoDiyEeGiupyIkgMHVw">
+ <body>In order to support icons, all port kinds are stereotypes, but for Qompass they are classes stereotyped as &quot;PortKind&quot;</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_COvdAEMMEeKGIL695HkFYQ" annotatedElement="_GjnlcC8qEeKx7OxAiA06uw">
+ <body> A bidirectional flow port combining a push-producer and a pull consumer</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_Wtq4sFDlEd6cwecVIgl9nw" name="ProvideInterface">
+ <icon xmi:type="uml:Image" xmi:id="__3j28DixEeGiupyIkgMHVw" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%119%0%0%0%92%8%3%0%0%0%99%-116%-38%77%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-43%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-103%-103%-103%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%43%43%43%39%39%39%35%35%35%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%-68%-68%-68%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%120%120%120%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%-43%-43%-43%34%34%34%-47%-47%-47%30%30%30%-51%-51%-51%26%26%26%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-71%82%-104%50%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%4%-59%73%68%65%84%104%-127%-59%-102%109%91%-30%58%16%-122%11%-118%40%-88%108%-83%2%-53%-117%93%123%4%-75%-20%110%53%-83%69%-91%-108%30%20%-1%-1%79%58%-107%-77%72%38%77%-109%73%-126%-41%62%95%-55%-52%77%94%-102%-52%76%98%-111%29%104%-2%-74%26%-115%-22%-29%81%-27%-83%31%35%77%44%51%98%-68%58%60%-19%120%22%-91%-27%-76%57%-70%-8%90%-18%-62%127%6%-56%-83%58%-65%-34%-61%47%-30%94%28%-76%-7%-52%63%122%109%-4%-5%5%-36%-59%73%73%79%105%-75%43%59%-26%14%78%-28%-48%-75%-70%-29%-78%-31%-42%-32%94%96%-87%107%-14%96%71%-36%-80%-18%42%96%115%5%-50%46%-72%-117%-82%26%53%-41%-16%-38%-100%-69%127%-91%-116%-51%-43%-116%-52%-72%-15%-67%14%53%87%123%102%-62%117%94%52%-79%-106%-27%-78%-53%75%-127%-101%-88%79%45%5%102%-66%101%60%119%-66%44%117%58%124%-71%15%38%-66%-1%59%-104%-106%-73%-15%-58%122%-36%-92%-60%101%-89%89%-95%63%-108%120%-32%79%75%-42%94%85%-121%-21%100%60%87%-39%36%-31%-76%-75%111%-98%-72%61%-2%-95%-50%-115%121%115%43%-40%127%23%15%-100%-3%-37%-19%41%115%91%69%47%-35%-107%-48%34%-31%-20%-90%-53%-19%-116%-32%-72%-11%-30%127%-81%75%14%88%66%86%-33%11%86%45%53%-18%-96%48%104%47%-123%-115%-128%-93%-8%119%1%92%87%-31%-38%25%107%-34%-112%118%-10%127%-115%-39%51%-60%-21%43%112%27%-84%113%13%71%-51%-43%103%-65%-66%78%-120%-26%-10%-104%81%-10%-86%114%-101%79%37%-20%88%-43%-48%-36%103%3%44%33%51%-90%-57%-18%5%-110%59%102%-2%-16%88%106%1%-107%48%115%28%32%-71%41%52%-13%21%-79%-124%92%-62%121%-14%18%20%-73%2%-79%-33%-112%43%-103%-42%29%116%-47%68%113%97%-108%-4%-54%13%-106%36%10%-65%1%31%87%14%-126%-5%6%-1%-21%72%3%-101%-81%45%120%66%77%16%-36%0%88%60%106%97%-39%-111%-50%-28%-36%8%44%70%-113%119%-22%97%20%-62%-59%121%41%-27%94%-125%-10%-57%-102%88%-10%99%12%-92%92%120%-2%45%-76%-71%33%-40%61%-36%80%-62%13%-63%48%-73%-124%109%-59%58%0%29%-24%75%-72%125%-48%-102%23%-9%99%-27%-128%-51%-29%78%-62%5%-21%-48%45%70%-3%10%2%51%54%-107%112%31%-103%-43%96%-96%17%-19%-22%42%18%115%95%-23%-58%122%123%-58%70%51%-72%66%-123%92%27%-76%-59%-124%54%2%-127%-120%-76%-14%-121%27%-49%120%-86%-46%77%51%51%44%-36%-7%110%63%-72%-47%-92%-115%-88%86%-24%-18%-111%27%-127%47%-23%-34%66%-89%-46%13%67%46%56%80%-97%44%18%103%40%-84%-75%111%-56%-99%-45%-50%-50%45%-46%-60%97%13%-105%51%-77%-96%83%-117%12%-111%92%113%90%34%87%8%-71%9%18%107%-67%25%114%9%-19%-52%-77%46%-1%10%-41%-75%-20%50%14%43%65%-47%15%-91%-104%118%-106%-49%47%-74%106%-79%-21%117%85%45%3%49%58%48%-28%-10%104%103%-7%-9%75%30%112%-36%95%-122%-36%127%104%103%-45%-100%27%-6%-120%93%50%-1%-117%-122%92%-97%118%-42%92%-97%11%73%-19%-8%-119%39%80%39%27%26%114%65%-35%-95%38%60%7%35%-48%-31%-98%-88%-87%92%96%127%122%23%-97%-5%32%-20%-59%103%-37%60%-127%101%-107%-17%86%-62%-58%-57%116%91%-109%112%-110%-112%91%56%103%98%-18%30%-35%-40%-45%-55%-55%62%5%-14%-69%19%9%23%-100%93%70%3%-67%0%-98%-10%100%-7%2%8%-13%59%6%92%88%-101%-103%-53%-72%48%29%-44%-33%-94%29%-112%-119%102%-46%-4%8%-90%-65%-25%-38%92%-80%105%124%36%-64%-78%-4%55%3%6%-17%-102%88%7%6%23%115%57%-9%16%24%100%-102%-87%10%-100%-82%103%34%-25%-62%21%-67%46%17%-88%-117%-119%45%-10%17%92%-72%-83%90%94%-55%-11%-105%80%76%125%115%25%97%-72%-16%-61%-77%-78%51%117%46%83%-119%94%111%3%-14%-70%-39%41%-76%106%41%23%-80%-104%-14%-43%-48%-58%113%7%-48%76%57%29%29%49%-10%119%4%-57%37%108%-11%-6%72%9%91%101%-126%-118%52%-62%114%-49%-40%-56%30%91%-11%-26%97%55%-31%63%-90%-18%-67%-49%-104%90%15%-24%-49%-72%112%49%-15%64%-16%92%-90%-66%-104%-85%-115%43%-96%21%-17%49%95%55%79%29%80%-9%26%78%-31%-82%-52%-67%65%-104%-11%82%-42%108%-101%100%-31%-18%113%126%20%35%-50%-87%-84%-53%118%-77%104%-12%-13%-13%87%-28%-67%-107%95%112%97%121%13%-47%-13%-112%-88%-58%-71%79%-100%110%23%36%-10%126%48%40%122%-79%-68%-96%-84%112%-24%-44%121%-73%-104%93%123%-37%2%-53%13%-7%-113%24%-38%7%-59%42%-113%125%125%-54%77%4%50%58%62%67%-33%-61%-58%-36%59%-50%92%105%112%115%-71%-15%24%-9%-85%71%101%-49%88%-106%96%65%-32%-17%-99%-29%105%-119%-61%-11%-112%-89%-23%75%-102%-118%94%88%64%-84%-54%61%123%-120%76%-32%-72%-22%50%-117%80%-23%61%-61%-111%54%-10%-23%-116%113%-91%-10%126%-93%112%-49%-120%84%113%71%87%124%55%50%19%63%126%-30%107%-56%-119%127%85%-33%-55%68%13%84%-78%76%-21%-111%87%80%85%127%-113%52%127%-106%-93%40%45%-7%85%122%-99%-9%87%123%-27%-81%52%88%93%29%-39%124%31%90%-17%-66%-94%-101%-30%-43%61%-105%-38%40%77%33%53%-33%-71%-123%99%-7%104%103%126%73%95%13%-72%-71%-110%-119%-88%-45%110%32%-82%-17%25%-67%-97%-20%-33%-74%-72%31%-12%-7%-31%74%22%9%25%-66%-37%36%97%127%-4%-13%-76%-67%-119%-4%-68%116%-38%-84%-83%4%-61%-69%51%-18%-89%102%-77%25%-10%-115%-22%-121%-2%3%52%51%-49%67%-105%-19%90%17%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%5%-46%-52%-24%92%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_17F1IDrSEeGKkdk54CX6PQ" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_17HDQDrSEeGKkdk54CX6PQ" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Sn5bADrXEeGMCcwsbpLuFA" key="image_name_key" value="IconProvideInterface"/>
+ </eAnnotations>
+ </icon>
+ <icon xmi:type="uml:Image" xmi:id="_ToC6oDl9EeGi35TadupI-A" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%84%0%0%0%101%8%3%0%0%0%-28%-109%52%-5%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-52%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%43%43%43%39%39%39%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%82%82%82%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%34%34%34%-47%-47%-47%30%30%30%-51%-51%-51%26%26%26%24%24%24%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-33%61%-9%-93%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%3%41%73%68%65%84%104%-127%-83%-39%125%91%-38%48%16%0%-16%-29%101%12%-76%32%32%69%17%-95%88%-107%23%-69%45%-43%90%-83%5%117%-32%-9%-1%78%-125%103%-37%67%47%109%115%-105%54%-9%119%-8%61%41%73%-109%-69%43%-120%-14%17%92%86%-105%86%56%-116%15%49%12%-83%-42%26%74%-126%-35%-54%106%8%82%84%74%-95%-125%-58%-117%12%30%98%84%28%125%-84%-74%-99%44%18%-96%87%20%125%-84%127%100%-117%0%83%81%12%85%-112%0%-61%98%-24%-83%-126%4%120%42%-126%-66%61%-87%72%-128%7%125%-44%-97%79%-43%38%-52%-75%-47%-2%25%65%2%-72%-70%-24%104%67%-102%-80%-43%68%107%57%59%19%69%-92%-121%46%25%36%-128%-81%-123%54%115%-99%-15%-85%-41%-88%110%15%81%-83%-51%-123%6%-22%63%100%-125%-45%-50%-3%-91%52%-108%-113%-98%100%-110%-81%-75%94%122%40%27%-99%103%-111%-42%58%115%44%23%-67%-31%-109%108%116%-108%-34%75%-101%93%-18%104%30%-38%77%-17%-7%102%-112%63%-100%-121%-2%72%-19%-95%47%-43%112%22%122%39%-101%118%-92%28%-49%65%-93%-119%100%-122%-118%71%-25%-94%-14%-61%119%8%-109%-125%110%37%-13%-52%-89%126%65%-93%-66%116%-81%15%-87%121%114%-48%26%54%63%-6%-28%47%104%-44%-57%91%-44%-71%-94%77%26%-67%-59%19%-99%51%76%26%-75%-15%102%34%23%-119%-125%86%-16%-61%-65%113%76%18%-75%16%-38%98%-103%20%-38%67%-89%-45%-17%-82%17%20%47%-45%61%-49%-92%-48%48%105%-114%-103%19%37%-48%1%-102%104%-109%105%18%-88%-117%-48%-127%25%-44%67%123%-108%107%18%104%-100%68%-17%-52%-96%17%122%-6%-116%11%-66%8%58%75%-102%54%-37%84%-93%40%-127%96%-66%77%36%-118%-18%-111%-118%33%-12%60%-119%50%14%103%22%58%78%-104%19%-66%-87%68%-125%-126%-21%116%64%-3%-111%91%91%36%-93%-27%-3%-115%95%73%-12%84%11%29%93%0%39%60%29%-12%-115%42%-117%-2%-59%82%7%125%-26%-103%-80%-48%65%57%69%-116%54%-54%13%45%-108%-7%-105%-62%119%29%-12%39%19%-43%90%-3%-63%-104%6%15%-47%-42%65%69%-60%91%127%-51%55%74%116%-81%-73%-57%-72%-114%-114%-15%-103%64%29%77%52%55%-48%5%-51%-53%120%104%20%85%-93%51%67%-24%-73%36%-70%50%-124%-94%-108%111%104%8%-19%-93%-11%103%-25%18%-60%-67%-113%106%-120%-70%33%116%-107%68%-49%13%-95%51%-12%-4%-20%77%-91%70%-5%-24%96%100%-33%-4%68%126%-118%58%112%83%51%-7%-87%-108%75%114%-49%84%2%13%-48%113%-53%77%-91%-87%-22%-28%20%77%-107%-7%86%81%-24%14%-95%78%94%43%70%15%-107%42%-66%23%35%21%-97%-76%85%121%-41%63%93%69%-93%20%29%-100%107%19%-88%92%70%27%-87%-9%83%-99%-119%11%19%-99%9%113%-123%81%70%121%-50%-23%-10%120%-110%-6%108%-96%-37%35%6%-87%-66%20%81%-3%-80%58%104%-82%-124%-62%69%-7%14%90%-6%15%-128%-119%-14%110%-27%-95%65%44%-85%112%82%-70%43%41%46%-45%-55%-31%38%-65%-80%-30%118%122%-85%41%116%-97%-77%-107%-20%-12%74%-119%-59%-1%-80%-34%-53%-95%57%93%126%-69%94%-90%123%46%-35%-41%-57%112%-98%23%35%-23%29%51%-13%69%98%106%91%75%-41%-35%109%-65%92%-9%74%19%21%-115%92%-11%24%15%-70%40%-25%43%-113%-89%-115%-118%119%-14%123%-44%-87%62%42%122%29%2%13%11%-96%-5%13%-85%-82%-68%-118%-95%34%82%78%-42%46%-122%10%113%-93%-8%103%-29%-94%-88%-22%11%111%113%84%-59%-106%64%-9%-73%108%-59%-54%-36%-75%-91%-48%125%-12%-22%97%-38%13%74%-94%-5%8%118%45%27%-61%81%121%-12%16%-2%-70%-46%-16%-38%97%24%-57%113%24%-74%-9%71%-31%31%12%-33%-99%51%8%-119%86%-81%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%45%-25%121%64%-90%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2ypIMDrSEeGKkdk54CX6PQ" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2ypvQDrSEeGKkdk54CX6PQ" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UMxHEDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconConjProvideInterface"/>
+ </eAnnotations>
+ </icon>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_Wtq4sVDlEd6cwecVIgl9nw" name="PullConsumer">
+ <icon xmi:type="uml:Image" xmi:id="_CVWIADiyEeGiupyIkgMHVw" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%97%0%0%0%98%8%0%0%0%0%101%-7%-30%-47%0%0%2%120%73%68%65%84%104%-127%-75%-38%-51%75%21%81%24%6%-16%-125%-106%105%25%-106%38%-107%84%-76%50%-119%-54%32%90%37%-75%-120%72%-94%69%-117%104%85%86%-46%-90%112%97%73%33%-47%-86%-123%16%33%70%17%-47%-54%-94%47%-24%3%-63%34%-56%-115%20%-35%77%4%-110%65%-123%27%11%51%37%-107%-16%-93%-85%-34%105%-26%-23%74%31%115%-18%120%103%-18%97%-50%-5%60%127%-64%-4%86%103%-26%61%-49%59%10%-99%23%-102%121%105%31%-127%122%-80%72%17%-77%-96%98%68%85%51%-127%116%-82%-87%26%-78%112%76%-35%34%11%117%106%-74%-98%45%32%121%-124%45%96%124%55%91%-64%-40%46%-74%-128%-127%-51%108%1%-3%-107%108%1%61%107%-40%2%-34%-106%-78%5%116%-111%8%95%-64%-45%34%-74%-32%-35%-90%16%-102%0%-17%106%62%89%-128%-45%66%32%50%4%56%-115%108%1%-45%39%-39%2%-110%7%-39%2%38%14%-80%5%-116%-18%96%11%24%-38%-50%22%-48%-73%-127%45%-32%-29%58%-74%-128%-41%43%-39%2%94%-107%-80%5%116%-120%17%97%2%-18%20%-78%5%-9%-70%16%17%42%-64%-67%40%-13%-94%13%23%-112%58%47%66%68%8%72%29%103%11%-104%58%-52%22%48%-79%-113%45%96%108%15%91%-64%-32%54%-74%-128%47%-101%-40%2%-34%-83%103%11%-24%89%-59%22%-16%-94%-116%45%-32%-39%82%-74%-128%-69%-59%108%1%55%11%-40%-126%123%41%54%97%40%-64%109%-54%35%11%-104%-39%-49%22%-34%-105%-109%-123%-127%-86%-104%-128%-87%-16%99%103%92%-64%80%-104%58%20%27%48%19%82%-89%-29%3%70%-126%-41%106%51%18%-104%8%-9%-84%38%39%3%-95%107%-103%13%96%32%-12%-38%125%30%114%11%-33%108%-81%43%-71%-124%113%-21%-6%44%-121%-112%-76%56%8%70%-126%115%-58%26%-120%22%-68%54%-127%-39%56%82%120%36%81%7%69%9%-35%-53%5%-128%40%-95%-73%66%2%-120%16%6%55%-118%0%-31%-62%100%-4%47%-126%-103%48%45%113%57%-119%18%-100%38%41%32%68%-16%-82%-56%21%126%-39%-123%-57%-126%-67%104%86%33%97%53%108%27%8%31%68%91%-10%44%-62%87%-39%101%-60%124%65%122%103%51%79%-104%-107%-34%59%5%-123%95%103%-123%-127%-96%64%40%-41%3%-62%-109%-59%-46%64%64%72%-84%16%7%50%5%-47%22%52%-101%48%-76%-107%0%-24%-62%-28%94%6%-96%9%-87%58%10%-32%11%-18%57%14%-32%11%55%72%-64%127%-95%-109%-10%63%-62%95%-31%13%107%103%-7%79%-24%91%75%3%-2%8%-33%41%7%65%19%126%-42%18%-127%57%-63%57%-63%4%-46%-126%-37%76%5%-46%66%7%23%80%71%85%-36%86%-57%52%-83%-86%-127%-6%-4%-68%-110%97%-11%-87%44%-93%-3%-54%-41%-78%-80%64%75%-111%-106%37%-59%126%86%111%-47%82%-85%-91%-2%84%58%109%-61%80%24%109%-65%-84%-27%-2%67%63%-49%95%-6%73%124%-42%50%19%28%-127%-94%-14%27%-2%-94%-44%59%115%-35%74%-17%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4KKUwDrSEeGKkdk54CX6PQ" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4KLi4DrSEeGKkdk54CX6PQ" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MdOBcDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconPushConsumer"/>
+ </eAnnotations>
+ </icon>
+ <icon xmi:type="uml:Image" xmi:id="_kZGdADl9EeGi35TadupI-A" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%108%0%0%0%97%8%0%0%0%0%22%-109%27%-49%0%0%2%-101%73%68%65%84%104%-127%-67%-38%-51%75%84%81%24%6%-16%-25%-36%59%87%68%43%107%76%40%63%42%-84%4%-125%1%49%-86%77%-82%70%24%-120%54%-39%-57%44%18%35%-110%62%104%-91%-83%10%-108%32%-94%64%40%92%-10%-79%-120%-118%8%23%82%-101%26%-124%22%65%41%4%69%-117%-118%-124%114%17%52%65%-108%9%105%-47%-28%116%26%107%76%-13%-34%-21%-67%112%-49%-5%60%-1%-64%111%49%103%120%-97%123%-34%3%61%118%-78%37%84%118%-89%61%115%-30%-123%14%29%76%39%16%41%106%-29%72%120%44%19%-51%42%100%-61%-77%-48%-40%-11%-56%24%-102%71%-119%-104%-38%-10%-114%-121%-63%74%101%121%24%84%-37%4%15%-125%-35%17%70%51%-124%-63%62%62%21%2%-21%55%-125%-63%-23%-2%30%-116%-99%54%-124%-95%-12%124%-114%-121%-95%-20%66%-98%-121%97%-7%-75%0%-51%36%-122%-8%32%17%67%-19%61%34%-122%-75%-113%-120%24%26%-122%-119%24%-102%94%19%49%-75%-27%45%15%-125%74%-67%-25%97%-80%118%-114%-13%48%-60%14%-8%-116%0%9%12%-79%-61%-34%35%64%4%-125%-45%-27%-87%-55%96%112%-50%120%-115%0%-12%-120%96%40%-21%-101%-10%-64%14%-55%96%88%-26%49%2%-48%33%-124%33%126%-117%-120%-95%-58%53%2%4%49%-84%121%72%-60%-48%48%66%-60%-48%-8%-110%-120%-87%-83%-93%60%12%42%-103%-27%97%-80%118%124%-28%97%-80%-38%39%120%24%-20%-125%83%60%-84%-16%21%-16%-115%-121%-63%-23%-51%-15%-80%-62%8%-56%-15%48%-108%95%-3%-59%-61%-80%-30%-58%31%108%23%5%67%85%102%6%-37%-50%-63%80%-5%-128%-120%97%-3%19%34%-122%-42%28%17%-85%120%78%-60%-86%-77%60%-52%-18%-28%-3%102%-86%117%-100%-121%37%-34%-16%-114%126%-35%48%-17%79%29%-65%-85%105%88%-23%-59%60%13%-117%117%-3%-48%44%-52%-38%59%-87%105%88%-53%7%77%-61%-26%106%-79%60%-74%122%104%-82%-54%109%18%-74%42%110%-50%43%-87%-11%-78%86%-55%-39%60%13%-77%-113%-52%-65%57%-106%-59%84%-37%23%77%-61%54%-1%-65%55%17%-59%-22%-97%106%26%86%117%95%-45%-80%37%-105%53%13%115%122%126%-46%48%-69%-3%-21%66%75%12%83%-55%-49%46%75%12%-101%-87%28%44%-84%-18%-79%-121%37%-124%85%-34%-15%-78%100%-80%98%-27%-96%96%-77%-107%-61%-115%85%27%-73%-84%125%-18%67%95%-60%-52%-25%95%-27%32%96%-115%-81%-4%44%-13%-40%-86%33%95%-53%56%-74%-44%125%51%44%-122%-107%-100%91%108%-19%105%-42%-78%-113%46%-70%-84%54%106%45%-88%28%-78%88%115%-64%83%13%-109%-42%-70%-96%39%47%6%-83%-107%-103%0%-53%32%86%-18%-86%28%114%-104%-45%-21%-86%28%98%-104%-75%127%50%-48%50%-123%-87%-92%-33%82%85%0%75%-116%-123%-80%12%97%53%-31%94%-107%25%-79%-2%-34%114%-124%-64%84%116%-85%-92%63%-24%-119%-53%44%-42%20%-39%-78%-70%125%42%-121%27%-69%93%25%-77%109%43%-118%-107%14%113%-24%-117%-104%-2%52%56%48%112%-91%-49%55%-89%-114%-7%38%-99%42%100%-49%-91%-48%-106%-2%13%-127%31%98%-1%-55%30%-37%-42%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_44RX8DrSEeGKkdk54CX6PQ" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_44R_ADrSEeGKkdk54CX6PQ" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PhMv0DrXEeGMCcwsbpLuFA" key="image_name_key" value="IconConjPullConsumer"/>
+ </eAnnotations>
+ </icon>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_Wtq4slDlEd6cwecVIgl9nw" name="PushConsumer">
+ <icon xmi:type="uml:Image" xmi:id="_Dh_hUDiyEeGiupyIkgMHVw" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%97%0%0%0%98%8%0%0%0%0%101%-7%-30%-47%0%0%2%120%73%68%65%84%104%-127%-75%-38%-51%75%21%81%24%6%-16%-125%-106%105%25%-106%38%-107%84%-76%50%-119%-54%32%90%37%-75%-120%72%-94%69%-117%104%85%86%-46%-90%112%97%73%33%-47%-86%-123%16%33%70%17%-47%-54%-94%47%-24%3%-63%34%-56%-115%20%-35%77%4%-110%65%-123%27%11%51%37%-107%-16%-93%-85%-34%105%-26%-23%74%31%115%-18%120%103%-18%97%-50%-5%60%127%-64%-4%86%103%-26%61%-49%59%10%-99%23%-102%121%105%31%-127%122%-80%72%17%-77%-96%98%68%85%51%-127%116%-82%-87%26%-78%112%76%-35%34%11%117%106%-74%-98%45%32%121%-124%45%96%124%55%91%-64%-40%46%-74%-128%-127%-51%108%1%-3%-107%108%1%61%107%-40%2%-34%-106%-78%5%116%-111%8%95%-64%-45%34%-74%-32%-35%-90%16%-102%0%-17%106%62%89%-128%-45%66%32%50%4%56%-115%108%1%-45%39%-39%2%-110%7%-39%2%38%14%-80%5%-116%-18%96%11%24%-38%-50%22%-48%-73%-127%45%-32%-29%58%-74%-128%-41%43%-39%2%94%-107%-80%5%116%-120%17%97%2%-18%20%-78%5%-9%-70%16%17%42%-64%-67%40%-13%-94%13%23%-112%58%47%66%68%8%72%29%103%11%-104%58%-52%22%48%-79%-113%45%96%108%15%91%-64%-32%54%-74%-128%47%-101%-40%2%-34%-83%103%11%-24%89%-59%22%-16%-94%-116%45%-32%-39%82%-74%-128%-69%-59%108%1%55%11%-40%-126%123%41%54%97%40%-64%109%-54%35%11%-104%-39%-49%22%-34%-105%-109%-123%-127%-86%-104%-128%-87%-16%99%103%92%-64%80%-104%58%20%27%48%19%82%-89%-29%3%70%-126%-41%106%51%18%-104%8%-9%-84%38%39%3%-95%107%-103%13%96%32%-12%-38%125%30%114%11%-33%108%-81%43%-71%-124%113%-21%-6%44%-121%-112%-76%56%8%70%-126%115%-58%26%-120%22%-68%54%-127%-39%56%82%120%36%81%7%69%9%-35%-53%5%-128%40%-95%-73%66%2%-120%16%6%55%-118%0%-31%-62%100%-4%47%-126%-103%48%45%113%57%-119%18%-100%38%41%32%68%-16%-82%-56%21%126%-39%-123%-57%-126%-67%104%86%33%97%53%108%27%8%31%68%91%-10%44%-62%87%-39%101%-60%124%65%122%103%51%79%-104%-107%-34%59%5%-123%95%103%-123%-127%-96%64%40%-41%3%-62%-109%-59%-46%64%64%72%-84%16%7%50%5%-47%22%52%-101%48%-76%-107%0%-24%-62%-28%94%6%-96%9%-87%58%10%-32%11%-18%57%14%-32%11%55%72%-64%127%-95%-109%-10%63%-62%95%-31%13%107%103%-7%79%-24%91%75%3%-2%8%-33%41%7%65%19%126%-42%18%-127%57%-63%57%-63%4%-46%-126%-37%76%5%-46%66%7%23%80%71%85%-36%86%-57%52%-83%-86%-127%-6%-4%-68%-110%97%-11%-87%44%-93%-3%-54%-41%-78%-80%64%75%-111%-106%37%-59%126%86%111%-47%82%-85%-91%-2%84%58%109%-61%80%24%109%-65%-84%-27%-2%67%63%-49%95%-6%73%124%-42%50%19%28%-127%-94%-14%27%-2%-94%-44%59%115%-35%74%-17%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7bjNADrSEeGKkdk54CX6PQ" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7bj0EDrSEeGKkdk54CX6PQ" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JNOQUDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconPushConsumer"/>
+ </eAnnotations>
+ </icon>
+ <icon xmi:type="uml:Image" xmi:id="_hwLS8Dl9EeGi35TadupI-A" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%108%0%0%0%97%8%0%0%0%0%22%-109%27%-49%0%0%2%-101%73%68%65%84%104%-127%-67%-38%-51%75%84%81%24%6%-16%-25%-36%59%87%68%43%107%76%40%63%42%-84%4%-125%1%49%-86%77%-82%70%24%-120%54%-39%-57%44%18%35%-110%62%104%-91%-83%10%-108%32%-94%64%40%92%-10%-79%-120%-118%8%23%82%-101%26%-124%22%65%41%4%69%-117%-118%-124%114%17%52%65%-108%9%105%-47%-28%116%26%107%76%-13%-34%-21%-67%112%-49%-5%60%-1%-64%111%49%103%120%-97%123%-34%3%61%118%-78%37%84%118%-89%61%115%-30%-123%14%29%76%39%16%41%106%-29%72%120%44%19%-51%42%100%-61%-77%-48%-40%-11%-56%24%-102%71%-119%-104%-38%-10%-114%-121%-63%74%101%121%24%84%-37%4%15%-125%-35%17%70%51%-124%-63%62%62%21%2%-21%55%-125%-63%-23%-2%30%-116%-99%54%-124%-95%-12%124%-114%-121%-95%-20%66%-98%-121%97%-7%-75%0%-51%36%-122%-8%32%17%67%-19%61%34%-122%-75%-113%-120%24%26%-122%-119%24%-102%94%19%49%-75%-27%45%15%-125%74%-67%-25%97%-80%118%-114%-13%48%-60%14%-8%-116%0%9%12%-79%-61%-34%35%64%4%-125%-45%-27%-87%-55%96%112%-50%120%-115%0%-12%-120%96%40%-21%-101%-10%-64%14%-55%96%88%-26%49%2%-48%33%-124%33%126%-117%-120%-95%-58%53%2%4%49%-84%121%72%-60%-48%48%66%-60%-48%-8%-110%-120%-87%-83%-93%60%12%42%-103%-27%97%-80%118%124%-28%97%-80%-38%39%120%24%-20%-125%83%60%-84%-16%21%-16%-115%-121%-63%-23%-51%-15%-80%-62%8%-56%-15%48%-108%95%-3%-59%-61%-80%-30%-58%31%108%23%5%67%85%102%6%-37%-50%-63%80%-5%-128%-120%97%-3%19%34%-122%-42%28%17%-85%120%78%-60%-86%-77%60%-52%-18%-28%-3%102%-86%117%-100%-121%37%-34%-16%-114%126%-35%48%-17%79%29%-65%-85%105%88%-23%-59%60%13%-117%117%-3%-48%44%-52%-38%59%-87%105%88%-53%7%77%-61%-26%106%-79%60%-74%122%104%-82%-54%109%18%-74%42%110%-50%43%-87%-11%-78%86%-55%-39%60%13%-77%-113%-52%-65%57%-106%-59%84%-37%23%77%-61%54%-1%-65%55%17%-59%-22%-97%106%26%86%117%95%-45%-80%37%-105%53%13%115%122%126%-46%48%-69%-3%-21%66%75%12%83%-55%-49%46%75%12%-101%-87%28%44%-84%-18%-79%-121%37%-124%85%-34%-15%-78%100%-80%98%-27%-96%96%-77%-107%-61%-115%85%27%-73%-84%125%-18%67%95%-60%-52%-25%95%-27%32%96%-115%-81%-4%44%-13%-40%-86%33%95%-53%56%-74%-44%125%51%44%-122%-107%-100%91%108%-19%105%-42%-78%-113%46%-70%-84%54%106%45%-88%28%-78%88%115%-64%83%13%-109%-42%-70%-96%39%47%6%-83%-107%-103%0%-53%32%86%-18%-86%28%114%-104%-45%-21%-86%28%98%-104%-75%127%50%-48%50%-123%-87%-92%-33%82%85%0%75%-116%-123%-80%12%97%53%-31%94%-107%25%-79%-2%-34%114%-124%-64%84%116%-85%-92%63%-24%-119%-53%44%-42%20%-39%-78%-70%125%42%-121%27%-69%93%25%-77%109%43%-118%-107%14%113%-24%-117%-104%-2%52%56%48%112%-91%-49%55%-89%-114%-7%38%-99%42%100%-49%-91%-48%-106%-2%13%-127%31%98%-1%-55%30%-37%-42%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8L9WQDrSEeGKkdk54CX6PQ" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8L99UDrSEeGKkdk54CX6PQ" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Lb68gDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconConjPushConsumer"/>
+ </eAnnotations>
+ </icon>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_WtrfwlDlEd6cwecVIgl9nw" name="PushProducer">
+ <icon xmi:type="uml:Image" xmi:id="_Eu1u8DiyEeGiupyIkgMHVw" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%108%0%0%0%97%8%0%0%0%0%22%-109%27%-49%0%0%2%-101%73%68%65%84%104%-127%-67%-38%-51%75%84%81%24%6%-16%-25%-36%59%87%68%43%107%76%40%63%42%-84%4%-125%1%49%-86%77%-82%70%24%-120%54%-39%-57%44%18%35%-110%62%104%-91%-83%10%-108%32%-94%64%40%92%-10%-79%-120%-118%8%23%82%-101%26%-124%22%65%41%4%69%-117%-118%-124%114%17%52%65%-108%9%105%-47%-28%116%26%107%76%-13%-34%-21%-67%112%-49%-5%60%-1%-64%111%49%103%120%-97%123%-34%3%61%118%-78%37%84%118%-89%61%115%-30%-123%14%29%76%39%16%41%106%-29%72%120%44%19%-51%42%100%-61%-77%-48%-40%-11%-56%24%-102%71%-119%-104%-38%-10%-114%-121%-63%74%101%121%24%84%-37%4%15%-125%-35%17%70%51%-124%-63%62%62%21%2%-21%55%-125%-63%-23%-2%30%-116%-99%54%-124%-95%-12%124%-114%-121%-95%-20%66%-98%-121%97%-7%-75%0%-51%36%-122%-8%32%17%67%-19%61%34%-122%-75%-113%-120%24%26%-122%-119%24%-102%94%19%49%-75%-27%45%15%-125%74%-67%-25%97%-80%118%-114%-13%48%-60%14%-8%-116%0%9%12%-79%-61%-34%35%64%4%-125%-45%-27%-87%-55%96%112%-50%120%-115%0%-12%-120%96%40%-21%-101%-10%-64%14%-55%96%88%-26%49%2%-48%33%-124%33%126%-117%-120%-95%-58%53%2%4%49%-84%121%72%-60%-48%48%66%-60%-48%-8%-110%-120%-87%-83%-93%60%12%42%-103%-27%97%-80%118%124%-28%97%-80%-38%39%120%24%-20%-125%83%60%-84%-16%21%-16%-115%-121%-63%-23%-51%-15%-80%-62%8%-56%-15%48%-108%95%-3%-59%-61%-80%-30%-58%31%108%23%5%67%85%102%6%-37%-50%-63%80%-5%-128%-120%97%-3%19%34%-122%-42%28%17%-85%120%78%-60%-86%-77%60%-52%-18%-28%-3%102%-86%117%-100%-121%37%-34%-16%-114%126%-35%48%-17%79%29%-65%-85%105%88%-23%-59%60%13%-117%117%-3%-48%44%-52%-38%59%-87%105%88%-53%7%77%-61%-26%106%-79%60%-74%122%104%-82%-54%109%18%-74%42%110%-50%43%-87%-11%-78%86%-55%-39%60%13%-77%-113%-52%-65%57%-106%-59%84%-37%23%77%-61%54%-1%-65%55%17%-59%-22%-97%106%26%86%117%95%-45%-80%37%-105%53%13%115%122%126%-46%48%-69%-3%-21%66%75%12%83%-55%-49%46%75%12%-101%-87%28%44%-84%-18%-79%-121%37%-124%85%-34%-15%-78%100%-80%98%-27%-96%96%-77%-107%-61%-115%85%27%-73%-84%125%-18%67%95%-60%-52%-25%95%-27%32%96%-115%-81%-4%44%-13%-40%-86%33%95%-53%56%-74%-44%125%51%44%-122%-107%-100%91%108%-19%105%-42%-78%-113%46%-70%-84%54%106%45%-88%28%-78%88%115%-64%83%13%-109%-42%-70%-96%39%47%6%-83%-107%-103%0%-53%32%86%-18%-86%28%114%-104%-45%-21%-86%28%98%-104%-75%127%50%-48%50%-123%-87%-92%-33%82%85%0%75%-116%-123%-80%12%97%53%-31%94%-107%25%-79%-2%-34%114%-124%-64%84%116%-85%-92%63%-24%-119%-53%44%-42%20%-39%-78%-70%125%42%-121%27%-69%93%25%-77%109%43%-118%-107%14%113%-24%-117%-104%-2%52%56%48%112%-91%-49%55%-89%-114%-7%38%-99%42%100%-49%-91%-48%-106%-2%13%-127%31%98%-1%-55%30%-37%-42%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EVcCADrXEeGMCcwsbpLuFA" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EVdQIDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconPushProducer"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Eg1ZsDrXEeGMCcwsbpLuFA" key="image_kind_key" value="icon"/>
+ </eAnnotations>
+ </icon>
+ <icon xmi:type="uml:Image" xmi:id="_djiTYDl9EeGi35TadupI-A" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%97%0%0%0%98%8%0%0%0%0%101%-7%-30%-47%0%0%2%120%73%68%65%84%104%-127%-75%-38%-51%75%21%81%24%6%-16%-125%-106%105%25%-106%38%-107%84%-76%50%-119%-54%32%90%37%-75%-120%72%-94%69%-117%104%85%86%-46%-90%112%97%73%33%-47%-86%-123%16%33%70%17%-47%-54%-94%47%-24%3%-63%34%-56%-115%20%-35%77%4%-110%65%-123%27%11%51%37%-107%-16%-93%-85%-34%105%-26%-23%74%31%115%-18%120%103%-18%97%-50%-5%60%127%-64%-4%86%103%-26%61%-49%59%10%-99%23%-102%121%105%31%-127%122%-80%72%17%-77%-96%98%68%85%51%-127%116%-82%-87%26%-78%112%76%-35%34%11%117%106%-74%-98%45%32%121%-124%45%96%124%55%91%-64%-40%46%-74%-128%-127%-51%108%1%-3%-107%108%1%61%107%-40%2%-34%-106%-78%5%116%-111%8%95%-64%-45%34%-74%-32%-35%-90%16%-102%0%-17%106%62%89%-128%-45%66%32%50%4%56%-115%108%1%-45%39%-39%2%-110%7%-39%2%38%14%-80%5%-116%-18%96%11%24%-38%-50%22%-48%-73%-127%45%-32%-29%58%-74%-128%-41%43%-39%2%94%-107%-80%5%116%-120%17%97%2%-18%20%-78%5%-9%-70%16%17%42%-64%-67%40%-13%-94%13%23%-112%58%47%66%68%8%72%29%103%11%-104%58%-52%22%48%-79%-113%45%96%108%15%91%-64%-32%54%-74%-128%47%-101%-40%2%-34%-83%103%11%-24%89%-59%22%-16%-94%-116%45%-32%-39%82%-74%-128%-69%-59%108%1%55%11%-40%-126%123%41%54%97%40%-64%109%-54%35%11%-104%-39%-49%22%-34%-105%-109%-123%-127%-86%-104%-128%-87%-16%99%103%92%-64%80%-104%58%20%27%48%19%82%-89%-29%3%70%-126%-41%106%51%18%-104%8%-9%-84%38%39%3%-95%107%-103%13%96%32%-12%-38%125%30%114%11%-33%108%-81%43%-71%-124%113%-21%-6%44%-121%-112%-76%56%8%70%-126%115%-58%26%-120%22%-68%54%-127%-39%56%82%120%36%81%7%69%9%-35%-53%5%-128%40%-95%-73%66%2%-120%16%6%55%-118%0%-31%-62%100%-4%47%-126%-103%48%45%113%57%-119%18%-100%38%41%32%68%-16%-82%-56%21%126%-39%-123%-57%-126%-67%104%86%33%97%53%108%27%8%31%68%91%-10%44%-62%87%-39%101%-60%124%65%122%103%51%79%-104%-107%-34%59%5%-123%95%103%-123%-127%-96%64%40%-41%3%-62%-109%-59%-46%64%64%72%-84%16%7%50%5%-47%22%52%-101%48%-76%-107%0%-24%-62%-28%94%6%-96%9%-87%58%10%-32%11%-18%57%14%-32%11%55%72%-64%127%-95%-109%-10%63%-62%95%-31%13%107%103%-7%79%-24%91%75%3%-2%8%-33%41%7%65%19%126%-42%18%-127%57%-63%57%-63%4%-46%-126%-37%76%5%-46%66%7%23%80%71%85%-36%86%-57%52%-83%-86%-127%-6%-4%-68%-110%97%-11%-87%44%-93%-3%-54%-41%-78%-80%64%75%-111%-106%37%-59%126%86%111%-47%82%-85%-91%-2%84%58%109%-61%80%24%109%-65%-84%-27%-2%67%63%-49%95%-6%73%124%-42%50%19%28%-127%-94%-14%27%-2%-94%-44%59%115%-35%74%-17%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GvSOQDrXEeGMCcwsbpLuFA" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GvS1UDrXEeGMCcwsbpLuFA" key="image_name_key" value="ConjIconPushProducer"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G5-bUDrXEeGMCcwsbpLuFA" key="image_kind_key" value="icon"/>
+ </eAnnotations>
+ </icon>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_Wtrfw1DlEd6cwecVIgl9nw" name="UseInterface">
+ <icon xmi:type="uml:Image" xmi:id="_FzdNoDiyEeGiupyIkgMHVw" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%84%0%0%0%101%8%3%0%0%0%-28%-109%52%-5%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-52%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%43%43%43%39%39%39%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%82%82%82%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%34%34%34%-47%-47%-47%30%30%30%-51%-51%-51%26%26%26%24%24%24%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-33%61%-9%-93%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%3%41%73%68%65%84%104%-127%-83%-39%125%91%-38%48%16%0%-16%-29%101%12%-76%32%32%69%17%-95%88%-107%23%-69%45%-43%90%-83%5%117%-32%-9%-1%78%-125%103%-37%67%47%109%115%-105%54%-9%119%-8%61%41%73%-109%-69%43%-120%-14%17%92%86%-105%86%56%-116%15%49%12%-83%-42%26%74%-126%-35%-54%106%8%82%84%74%-95%-125%-58%-117%12%30%98%84%28%125%-84%-74%-99%44%18%-96%87%20%125%-84%127%100%-117%0%83%81%12%85%-112%0%-61%98%-24%-83%-126%4%120%42%-126%-66%61%-87%72%-128%7%125%-44%-97%79%-43%38%-52%-75%-47%-2%25%65%2%-72%-70%-24%104%67%-102%-80%-43%68%107%57%59%19%69%-92%-121%46%25%36%-128%-81%-123%54%115%-99%-15%-85%-41%-88%110%15%81%-83%-51%-123%6%-22%63%100%-125%-45%-50%-3%-91%52%-108%-113%-98%100%-110%-81%-75%94%122%40%27%-99%103%-111%-42%58%115%44%23%-67%-31%-109%108%116%-108%-34%75%-101%93%-18%104%30%-38%77%-17%-7%102%-112%63%-100%-121%-2%72%-19%-95%47%-43%112%22%122%39%-101%118%-92%28%-49%65%-93%-119%100%-122%-118%71%-25%-94%-14%-61%119%8%-109%-125%110%37%-13%-52%-89%126%65%-93%-66%116%-81%15%-87%121%114%-48%26%54%63%-6%-28%47%104%-44%-57%91%-44%-71%-94%77%26%-67%-59%19%-99%51%76%26%-75%-15%102%34%23%-119%-125%86%-16%-61%-65%113%76%18%-75%16%-38%98%-103%20%-38%67%-89%-45%-17%-82%17%20%47%-45%61%-49%-92%-48%48%105%-114%-103%19%37%-48%1%-102%104%-109%105%18%-88%-117%-48%-127%25%-44%67%123%-108%107%18%104%-100%68%-17%-52%-96%17%122%-6%-116%11%-66%8%58%75%-102%54%-37%84%-93%40%-127%96%-66%77%36%-118%-18%-111%-118%33%-12%60%-119%50%14%103%22%58%78%-104%19%-66%-87%68%-125%-126%-21%116%64%-3%-111%91%91%36%-93%-27%-3%-115%95%73%-12%84%11%29%93%0%39%60%29%-12%-115%42%-117%-2%-59%82%7%125%-26%-103%-80%-48%65%57%69%-116%54%-54%13%45%-108%-7%-105%-62%119%29%-12%39%19%-43%90%-3%-63%-104%6%15%-47%-42%65%69%-60%91%127%-51%55%74%116%-81%-73%-57%-72%-114%-114%-15%-103%64%29%77%52%55%-48%5%-51%-53%120%104%20%85%-93%51%67%-24%-73%36%-70%50%-124%-94%-108%111%104%8%-19%-93%-11%103%-25%18%-60%-67%-113%106%-120%-70%33%116%-107%68%-49%13%-95%51%-12%-4%-20%77%-91%70%-5%-24%96%100%-33%-4%68%126%-118%58%112%83%51%-7%-87%-108%75%114%-49%84%2%13%-48%113%-53%77%-91%-87%-22%-28%20%77%-107%-7%86%81%-24%14%-95%78%94%43%70%15%-107%42%-66%23%35%21%-97%-76%85%121%-41%63%93%69%-93%20%29%-100%107%19%-88%92%70%27%-87%-9%83%-99%-119%11%19%-99%9%113%-123%81%70%121%-50%-23%-10%120%-110%-6%108%-96%-37%35%6%-87%-66%20%81%-3%-80%58%104%-82%-124%-62%69%-7%14%90%-6%15%-128%-119%-14%110%-27%-95%65%44%-85%112%82%-70%43%41%46%-45%-55%-31%38%-65%-80%-30%118%122%-85%41%116%-97%-77%-107%-20%-12%74%-119%-59%-1%-80%-34%-53%-95%57%93%126%-69%94%-90%123%46%-35%-41%-57%112%-98%23%35%-23%29%51%-13%69%98%106%91%75%-41%-35%109%-65%92%-9%74%19%21%-115%92%-11%24%15%-70%40%-25%43%-113%-89%-115%-118%119%-14%123%-44%-87%62%42%122%29%2%13%11%-96%-5%13%-85%-82%-68%-118%-95%34%82%78%-42%46%-122%10%113%-93%-8%103%-29%-94%-88%-22%11%111%113%84%-59%-106%64%-9%-73%108%-59%-54%-36%-75%-91%-48%125%-12%-22%97%-38%13%74%-94%-5%8%118%45%27%-61%81%121%-12%16%-2%-70%-46%-16%-38%97%24%-57%113%24%-74%-9%71%-31%31%12%-33%-99%51%8%-119%86%-81%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%45%-25%121%64%-90%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_z5Ar0DrWEeGMCcwsbpLuFA" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_z5BS4DrWEeGMCcwsbpLuFA" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BoRRIDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconUseInterface"/>
+ </eAnnotations>
+ </icon>
+ <icon xmi:type="uml:Image" xmi:id="_Yy8SMDl9EeGi35TadupI-A" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%119%0%0%0%92%8%3%0%0%0%99%-116%-38%77%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-43%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-103%-103%-103%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%43%43%43%39%39%39%35%35%35%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%-68%-68%-68%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%120%120%120%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%-43%-43%-43%34%34%34%-47%-47%-47%30%30%30%-51%-51%-51%26%26%26%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-71%82%-104%50%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%4%-59%73%68%65%84%104%-127%-59%-102%109%91%-30%58%16%-122%11%-118%40%-88%108%-83%2%-53%-117%93%123%4%-75%-20%110%53%-83%69%-91%-108%30%20%-1%-1%79%58%-107%-77%72%38%77%-109%73%-126%-41%62%95%-55%-52%77%94%-102%-52%76%98%-111%29%104%-2%-74%26%-115%-22%-29%81%-27%-83%31%35%77%44%51%98%-68%58%60%-19%120%22%-91%-27%-76%57%-70%-8%90%-18%-62%127%6%-56%-83%58%-65%-34%-61%47%-30%94%28%-76%-7%-52%63%122%109%-4%-5%5%-36%-59%73%73%79%105%-75%43%59%-26%14%78%-28%-48%-75%-70%-29%-78%-31%-42%-32%94%96%-87%107%-14%96%71%-36%-80%-18%42%96%115%5%-50%46%-72%-117%-82%26%53%-41%-16%-38%-100%-69%127%-91%-116%-51%-43%-116%-52%-72%-15%-67%14%53%87%123%102%-62%117%94%52%-79%-106%-27%-78%-53%75%-127%-101%-88%79%45%5%102%-66%101%60%119%-66%44%117%58%124%-71%15%38%-66%-1%59%-104%-106%-73%-15%-58%122%-36%-92%-60%101%-89%89%-95%63%-108%120%-32%79%75%-42%94%85%-121%-21%100%60%87%-39%36%-31%-76%-75%111%-98%-72%61%-2%-95%-50%-115%121%115%43%-40%127%23%15%-100%-3%-37%-19%41%115%91%69%47%-35%-107%-48%34%-31%-20%-90%-53%-19%-116%-32%-72%-11%-30%127%-81%75%14%88%66%86%-33%11%86%45%53%-18%-96%48%104%47%-123%-115%-128%-93%-8%119%1%92%87%-31%-38%25%107%-34%-112%118%-10%127%-115%-39%51%-60%-21%43%112%27%-84%113%13%71%-51%-43%103%-65%-66%78%-120%-26%-10%-104%81%-10%-86%114%-101%79%37%-20%88%-43%-48%-36%103%3%44%33%51%-90%-57%-18%5%-110%59%102%-2%-16%88%106%1%-107%48%115%28%32%-71%41%52%-13%21%-79%-124%92%-62%121%-14%18%20%-73%2%-79%-33%-112%43%-103%-42%29%116%-47%68%113%97%-108%-4%-54%13%-106%36%10%-65%1%31%87%14%-126%-5%6%-1%-21%72%3%-101%-81%45%120%66%77%16%-36%0%88%60%106%97%-39%-111%-50%-28%-36%8%44%70%-113%119%-22%97%20%-62%-59%121%41%-27%94%-125%-10%-57%-102%88%-10%99%12%-92%92%120%-2%45%-76%-71%33%-40%61%-36%80%-62%13%-63%48%-73%-124%109%-59%58%0%29%-24%75%-72%125%-48%-102%23%-9%99%-27%-128%-51%-29%78%-62%5%-21%-48%45%70%-3%10%2%51%54%-107%112%31%-103%-43%96%-96%17%-19%-22%42%18%115%95%-23%-58%122%123%-58%70%51%-72%66%-123%92%27%-76%-59%-124%54%2%-127%-120%-76%-14%-121%27%-49%120%-86%-46%77%51%51%44%-36%-7%110%63%-72%-47%-92%-115%-88%86%-24%-18%-111%27%-127%47%-23%-34%66%-89%-46%13%67%46%56%80%-97%44%18%103%40%-84%-75%111%-56%-99%-45%-50%-50%45%-46%-60%97%13%-105%51%-77%-96%83%-117%12%-111%92%113%90%34%87%8%-71%9%18%107%-67%25%114%9%-19%-52%-77%46%-1%10%-41%-75%-20%50%14%43%65%-47%15%-91%-104%118%-106%-49%47%-74%106%-79%-21%117%85%45%3%49%58%48%-28%-10%104%103%-7%-9%75%30%112%-36%95%-122%-36%127%104%103%-45%-100%27%-6%-120%93%50%-1%-117%-122%92%-97%118%-42%92%-97%11%73%-19%-8%-119%39%80%39%27%26%114%65%-35%-95%38%60%7%35%-48%-31%-98%-88%-87%92%96%127%122%23%-97%-5%32%-20%-59%103%-37%60%-127%101%-107%-17%86%-62%-58%-57%116%91%-109%112%-110%-112%91%56%103%98%-18%30%-35%-40%-45%-55%-55%62%5%-14%-69%19%9%23%-100%93%70%3%-67%0%-98%-10%100%-7%2%8%-13%59%6%92%88%-101%-103%-53%-72%48%29%-44%-33%-94%29%-112%-119%102%-46%-4%8%-90%-65%-25%-38%92%-80%105%124%36%-64%-78%-4%55%3%6%-17%-102%88%7%6%23%115%57%-9%16%24%100%-102%-87%10%-100%-82%103%34%-25%-62%21%-67%46%17%-88%-117%-119%45%-10%17%92%-72%-83%90%94%-55%-11%-105%80%76%125%115%25%97%-72%-16%-61%-77%-78%51%117%46%83%-119%94%111%3%-14%-70%-39%41%-76%106%41%23%-80%-104%-14%-43%-48%-58%113%7%-48%76%57%29%29%49%-10%119%4%-57%37%108%-11%-6%72%9%91%101%-126%-118%52%-62%114%-49%-40%-56%30%91%-11%-26%97%55%-31%63%-90%-18%-67%-49%-104%90%15%-24%-49%-72%112%49%-15%64%-16%92%-90%-66%-104%-85%-115%43%-96%21%-17%49%95%55%79%29%80%-9%26%78%-31%-82%-52%-67%65%-104%-11%82%-42%108%-101%100%-31%-18%113%126%20%35%-50%-87%-84%-53%118%-77%104%-12%-13%-13%87%-28%-67%-107%95%112%97%121%13%-47%-13%-112%-88%-58%-71%79%-100%110%23%36%-10%126%48%40%122%-79%-68%-96%-84%112%-24%-44%121%-73%-104%93%123%-37%2%-53%13%-7%-113%24%-38%7%-59%42%-113%125%125%-54%77%4%50%58%62%67%-33%-61%-58%-36%59%-50%92%105%112%115%-71%-15%24%-9%-85%71%101%-49%88%-106%96%65%-32%-17%-99%-29%105%-119%-61%-11%-112%-89%-23%75%-102%-118%94%88%64%-84%-54%61%123%-120%76%-32%-72%-22%50%-117%80%-23%61%-61%-111%54%-10%-23%-116%113%-91%-10%126%-93%112%-49%-120%84%113%71%87%124%55%50%19%63%126%-30%107%-56%-119%127%85%-33%-55%68%13%84%-78%76%-21%-111%87%80%85%127%-113%52%127%-106%-93%40%45%-7%85%122%-99%-9%87%123%-27%-81%52%88%93%29%-39%124%31%90%-17%-66%-94%-101%-30%-43%61%-105%-38%40%77%33%53%-33%-71%-123%99%-7%104%103%126%73%95%13%-72%-71%-110%-119%-88%-45%110%32%-82%-17%25%-67%-97%-20%-33%-74%-72%31%-12%-7%-31%74%22%9%25%-66%-37%36%97%127%-4%-13%-76%-67%-119%-4%-68%116%-38%-84%-83%4%-61%-69%51%-18%-89%102%-77%25%-10%-115%-22%-121%-2%3%52%51%-49%67%-105%-19%90%17%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%5%-46%-52%-24%92%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0rGQEDrWEeGMCcwsbpLuFA" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0rHeMDrWEeGMCcwsbpLuFA" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_C7NfsDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconConjUseInterface"/>
+ </eAnnotations>
+ </icon>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="__nMrwLqNEd-SedGzMDDkww" name="AMIpoll">
+ <icon xmi:type="uml:Image" xmi:id="_JXZ1gDiyEeGiupyIkgMHVw" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%84%0%0%0%101%8%3%0%0%0%-28%-109%52%-5%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-52%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%43%43%43%39%39%39%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%82%82%82%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%34%34%34%-47%-47%-47%30%30%30%-51%-51%-51%26%26%26%24%24%24%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-33%61%-9%-93%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%3%41%73%68%65%84%104%-127%-83%-39%125%91%-38%48%16%0%-16%-29%101%12%-76%32%32%69%17%-95%88%-107%23%-69%45%-43%90%-83%5%117%-32%-9%-1%78%-125%103%-37%67%47%109%115%-105%54%-9%119%-8%61%41%73%-109%-69%43%-120%-14%17%92%86%-105%86%56%-116%15%49%12%-83%-42%26%74%-126%-35%-54%106%8%82%84%74%-95%-125%-58%-117%12%30%98%84%28%125%-84%-74%-99%44%18%-96%87%20%125%-84%127%100%-117%0%83%81%12%85%-112%0%-61%98%-24%-83%-126%4%120%42%-126%-66%61%-87%72%-128%7%125%-44%-97%79%-43%38%-52%-75%-47%-2%25%65%2%-72%-70%-24%104%67%-102%-80%-43%68%107%57%59%19%69%-92%-121%46%25%36%-128%-81%-123%54%115%-99%-15%-85%-41%-88%110%15%81%-83%-51%-123%6%-22%63%100%-125%-45%-50%-3%-91%52%-108%-113%-98%100%-110%-81%-75%94%122%40%27%-99%103%-111%-42%58%115%44%23%-67%-31%-109%108%116%-108%-34%75%-101%93%-18%104%30%-38%77%-17%-7%102%-112%63%-100%-121%-2%72%-19%-95%47%-43%112%22%122%39%-101%118%-92%28%-49%65%-93%-119%100%-122%-118%71%-25%-94%-14%-61%119%8%-109%-125%110%37%-13%-52%-89%126%65%-93%-66%116%-81%15%-87%121%114%-48%26%54%63%-6%-28%47%104%-44%-57%91%-44%-71%-94%77%26%-67%-59%19%-99%51%76%26%-75%-15%102%34%23%-119%-125%86%-16%-61%-65%113%76%18%-75%16%-38%98%-103%20%-38%67%-89%-45%-17%-82%17%20%47%-45%61%-49%-92%-48%48%105%-114%-103%19%37%-48%1%-102%104%-109%105%18%-88%-117%-48%-127%25%-44%67%123%-108%107%18%104%-100%68%-17%-52%-96%17%122%-6%-116%11%-66%8%58%75%-102%54%-37%84%-93%40%-127%96%-66%77%36%-118%-18%-111%-118%33%-12%60%-119%50%14%103%22%58%78%-104%19%-66%-87%68%-125%-126%-21%116%64%-3%-111%91%91%36%-93%-27%-3%-115%95%73%-12%84%11%29%93%0%39%60%29%-12%-115%42%-117%-2%-59%82%7%125%-26%-103%-80%-48%65%57%69%-116%54%-54%13%45%-108%-7%-105%-62%119%29%-12%39%19%-43%90%-3%-63%-104%6%15%-47%-42%65%69%-60%91%127%-51%55%74%116%-81%-73%-57%-72%-114%-114%-15%-103%64%29%77%52%55%-48%5%-51%-53%120%104%20%85%-93%51%67%-24%-73%36%-70%50%-124%-94%-108%111%104%8%-19%-93%-11%103%-25%18%-60%-67%-113%106%-120%-70%33%116%-107%68%-49%13%-95%51%-12%-4%-20%77%-91%70%-5%-24%96%100%-33%-4%68%126%-118%58%112%83%51%-7%-87%-108%75%114%-49%84%2%13%-48%113%-53%77%-91%-87%-22%-28%20%77%-107%-7%86%81%-24%14%-95%78%94%43%70%15%-107%42%-66%23%35%21%-97%-76%85%121%-41%63%93%69%-93%20%29%-100%107%19%-88%92%70%27%-87%-9%83%-99%-119%11%19%-99%9%113%-123%81%70%121%-50%-23%-10%120%-110%-6%108%-96%-37%35%6%-87%-66%20%81%-3%-80%58%104%-82%-124%-62%69%-7%14%90%-6%15%-128%-119%-14%110%-27%-95%65%44%-85%112%82%-70%43%41%46%-45%-55%-31%38%-65%-80%-30%118%122%-85%41%116%-97%-77%-107%-20%-12%74%-119%-59%-1%-80%-34%-53%-95%57%93%126%-69%94%-90%123%46%-35%-41%-57%112%-98%23%35%-23%29%51%-13%69%98%106%91%75%-41%-35%109%-65%92%-9%74%19%21%-115%92%-11%24%15%-70%40%-25%43%-113%-89%-115%-118%119%-14%123%-44%-87%62%42%122%29%2%13%11%-96%-5%13%-85%-82%-68%-118%-95%34%82%78%-42%46%-122%10%113%-93%-8%103%-29%-94%-88%-22%11%111%113%84%-59%-106%64%-9%-73%108%-59%-54%-36%-75%-91%-48%125%-12%-22%97%-38%13%74%-94%-5%8%118%45%27%-61%81%121%-12%16%-2%-70%-46%-16%-38%97%24%-57%113%24%-74%-9%71%-31%31%12%-33%-99%51%8%-119%86%-81%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%45%-25%121%64%-90%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3DWg4DrWEeGMCcwsbpLuFA" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3DXH8DrWEeGMCcwsbpLuFA" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9f8J0DrWEeGMCcwsbpLuFA" key="image_name_key" value="IconAMIPoll"/>
+ </eAnnotations>
+ </icon>
+ <icon xmi:type="uml:Image" xmi:id="_3-hIoDrWEeGMCcwsbpLuFA" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%119%0%0%0%92%8%3%0%0%0%99%-116%-38%77%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-43%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-103%-103%-103%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%43%43%43%39%39%39%35%35%35%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%-68%-68%-68%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%120%120%120%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%-43%-43%-43%34%34%34%-47%-47%-47%30%30%30%-51%-51%-51%26%26%26%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-71%82%-104%50%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%4%-59%73%68%65%84%104%-127%-59%-102%109%91%-30%58%16%-122%11%-118%40%-88%108%-83%2%-53%-117%93%123%4%-75%-20%110%53%-83%69%-91%-108%30%20%-1%-1%79%58%-107%-77%72%38%77%-109%73%-126%-41%62%95%-55%-52%77%94%-102%-52%76%98%-111%29%104%-2%-74%26%-115%-22%-29%81%-27%-83%31%35%77%44%51%98%-68%58%60%-19%120%22%-91%-27%-76%57%-70%-8%90%-18%-62%127%6%-56%-83%58%-65%-34%-61%47%-30%94%28%-76%-7%-52%63%122%109%-4%-5%5%-36%-59%73%73%79%105%-75%43%59%-26%14%78%-28%-48%-75%-70%-29%-78%-31%-42%-32%94%96%-87%107%-14%96%71%-36%-80%-18%42%96%115%5%-50%46%-72%-117%-82%26%53%-41%-16%-38%-100%-69%127%-91%-116%-51%-43%-116%-52%-72%-15%-67%14%53%87%123%102%-62%117%94%52%-79%-106%-27%-78%-53%75%-127%-101%-88%79%45%5%102%-66%101%60%119%-66%44%117%58%124%-71%15%38%-66%-1%59%-104%-106%-73%-15%-58%122%-36%-92%-60%101%-89%89%-95%63%-108%120%-32%79%75%-42%94%85%-121%-21%100%60%87%-39%36%-31%-76%-75%111%-98%-72%61%-2%-95%-50%-115%121%115%43%-40%127%23%15%-100%-3%-37%-19%41%115%91%69%47%-35%-107%-48%34%-31%-20%-90%-53%-19%-116%-32%-72%-11%-30%127%-81%75%14%88%66%86%-33%11%86%45%53%-18%-96%48%104%47%-123%-115%-128%-93%-8%119%1%92%87%-31%-38%25%107%-34%-112%118%-10%127%-115%-39%51%-60%-21%43%112%27%-84%113%13%71%-51%-43%103%-65%-66%78%-120%-26%-10%-104%81%-10%-86%114%-101%79%37%-20%88%-43%-48%-36%103%3%44%33%51%-90%-57%-18%5%-110%59%102%-2%-16%88%106%1%-107%48%115%28%32%-71%41%52%-13%21%-79%-124%92%-62%121%-14%18%20%-73%2%-79%-33%-112%43%-103%-42%29%116%-47%68%113%97%-108%-4%-54%13%-106%36%10%-65%1%31%87%14%-126%-5%6%-1%-21%72%3%-101%-81%45%120%66%77%16%-36%0%88%60%106%97%-39%-111%-50%-28%-36%8%44%70%-113%119%-22%97%20%-62%-59%121%41%-27%94%-125%-10%-57%-102%88%-10%99%12%-92%92%120%-2%45%-76%-71%33%-40%61%-36%80%-62%13%-63%48%-73%-124%109%-59%58%0%29%-24%75%-72%125%-48%-102%23%-9%99%-27%-128%-51%-29%78%-62%5%-21%-48%45%70%-3%10%2%51%54%-107%112%31%-103%-43%96%-96%17%-19%-22%42%18%115%95%-23%-58%122%123%-58%70%51%-72%66%-123%92%27%-76%-59%-124%54%2%-127%-120%-76%-14%-121%27%-49%120%-86%-46%77%51%51%44%-36%-7%110%63%-72%-47%-92%-115%-88%86%-24%-18%-111%27%-127%47%-23%-34%66%-89%-46%13%67%46%56%80%-97%44%18%103%40%-84%-75%111%-56%-99%-45%-50%-50%45%-46%-60%97%13%-105%51%-77%-96%83%-117%12%-111%92%113%90%34%87%8%-71%9%18%107%-67%25%114%9%-19%-52%-77%46%-1%10%-41%-75%-20%50%14%43%65%-47%15%-91%-104%118%-106%-49%47%-74%106%-79%-21%117%85%45%3%49%58%48%-28%-10%104%103%-7%-9%75%30%112%-36%95%-122%-36%127%104%103%-45%-100%27%-6%-120%93%50%-1%-117%-122%92%-97%118%-42%92%-97%11%73%-19%-8%-119%39%80%39%27%26%114%65%-35%-95%38%60%7%35%-48%-31%-98%-88%-87%92%96%127%122%23%-97%-5%32%-20%-59%103%-37%60%-127%101%-107%-17%86%-62%-58%-57%116%91%-109%112%-110%-112%91%56%103%98%-18%30%-35%-40%-45%-55%-55%62%5%-14%-69%19%9%23%-100%93%70%3%-67%0%-98%-10%100%-7%2%8%-13%59%6%92%88%-101%-103%-53%-72%48%29%-44%-33%-94%29%-112%-119%102%-46%-4%8%-90%-65%-25%-38%92%-80%105%124%36%-64%-78%-4%55%3%6%-17%-102%88%7%6%23%115%57%-9%16%24%100%-102%-87%10%-100%-82%103%34%-25%-62%21%-67%46%17%-88%-117%-119%45%-10%17%92%-72%-83%90%94%-55%-11%-105%80%76%125%115%25%97%-72%-16%-61%-77%-78%51%117%46%83%-119%94%111%3%-14%-70%-39%41%-76%106%41%23%-80%-104%-14%-43%-48%-58%113%7%-48%76%57%29%29%49%-10%119%4%-57%37%108%-11%-6%72%9%91%101%-126%-118%52%-62%114%-49%-40%-56%30%91%-11%-26%97%55%-31%63%-90%-18%-67%-49%-104%90%15%-24%-49%-72%112%49%-15%64%-16%92%-90%-66%-104%-85%-115%43%-96%21%-17%49%95%55%79%29%80%-9%26%78%-31%-82%-52%-67%65%-104%-11%82%-42%108%-101%100%-31%-18%113%126%20%35%-50%-87%-84%-53%118%-77%104%-12%-13%-13%87%-28%-67%-107%95%112%97%121%13%-47%-13%-112%-88%-58%-71%79%-100%110%23%36%-10%126%48%40%122%-79%-68%-96%-84%112%-24%-44%121%-73%-104%93%123%-37%2%-53%13%-7%-113%24%-38%7%-59%42%-113%125%125%-54%77%4%50%58%62%67%-33%-61%-58%-36%59%-50%92%105%112%115%-71%-15%24%-9%-85%71%101%-49%88%-106%96%65%-32%-17%-99%-29%105%-119%-61%-11%-112%-89%-23%75%-102%-118%94%88%64%-84%-54%61%123%-120%76%-32%-72%-22%50%-117%80%-23%61%-61%-111%54%-10%-23%-116%113%-91%-10%126%-93%112%-49%-120%84%113%71%87%124%55%50%19%63%126%-30%107%-56%-119%127%85%-33%-55%68%13%84%-78%76%-21%-111%87%80%85%127%-113%52%127%-106%-93%40%45%-7%85%122%-99%-9%87%123%-27%-81%52%88%93%29%-39%124%31%90%-17%-66%-94%-101%-30%-43%61%-105%-38%40%77%33%53%-33%-71%-123%99%-7%104%103%126%73%95%13%-72%-71%-110%-119%-88%-45%110%32%-82%-17%25%-67%-97%-20%-33%-74%-72%31%-12%-7%-31%74%22%9%25%-66%-37%36%97%127%-4%-13%-76%-67%-119%-4%-68%116%-38%-84%-83%4%-61%-69%51%-18%-89%102%-77%25%-10%-115%-22%-121%-2%3%52%51%-49%67%-105%-19%90%17%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%5%-46%-52%-24%92%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_54LY8DrWEeGMCcwsbpLuFA" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_54MnEDrWEeGMCcwsbpLuFA" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ACEvYDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconConjAMIPoll"/>
+ </eAnnotations>
+ </icon>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_AQZZwLqOEd-SedGzMDDkww" name="AMIcallback">
+ <icon xmi:type="uml:Image" xmi:id="_KoY8QDiyEeGiupyIkgMHVw" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%72%0%0%0%104%8%3%0%0%0%101%-97%70%67%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-43%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-103%-103%-103%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%103%103%103%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%-34%-34%-34%43%43%43%39%39%39%35%35%35%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%-68%-68%-68%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%-43%-43%-43%34%34%34%-47%-47%-47%30%30%30%26%26%26%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-51%-46%-59%107%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%3%-13%73%68%65%84%88%-123%-75%-39%109%67%-86%48%20%0%-32%-39%53%75%-67%105%26%-23%-51%74%52%73%45%-13%-86%13%-13%37%-55%-105%-44%-1%-1%-109%-82%-70%13%6%-116%-77%-93%113%-49%-73%-28%-12%48%-74%113%-40%-128%80%116%12%55%-39%-4%116%78%-56%-14%-13%-6%-9%-13%40%120%-108%32%21%-69%121%85%39%82%52%-14%109%-65%-123%-124%-102%-9%36%20%-85%-92%125%44%84%-67%13%51%-5%-72%-33%30%7%117%-44%-52%62%-78%110%-93%-12%-48%-80%31%-19%16%82%40%98%-95%-30%-89%-12%111%-26%52%-105%-51%-68%79%-66%-91%-97%-26%51%28%100%23%-68%-50%-51%-82%-59%-123%84%47%-67%-50%-65%27%-95%-96%-116%-56%-81%-65%-7%-122%-37%62%119%-101%-107%-73%17%-48%-117%-37%23%70%-24%-102%-35%-66%-21%-22%33%-93%-63%115%51%-74%-30%104%-57%-30%71%23%90%72%-100%-76%-93%62%-36%-30%-121%-57%58%-56%-31%-89%-20%71%37%116%-71%-76%-47%64%57%-106%118%59%-116%-52%-56%-77%-116%50%12%-35%-16%6%-43%-12%109%126%0%-95%54%75%-54%65%-115%-50%-120%-127%-125%-96%-100%56%-101%-66%-43%101%8%26%-78%-79%-81%64%14%-91%31%-20%108%14%0%85%-7%20%-126%-95%36%-53%106%6%-96%-46%-52%-117%95%-18%-48%66%-15%-59%-78%82%62%40%41%-33%-42%34%28%24%-78%89%86%90%-122%54%10%-122%-112%80%-103%15%4%59%-7%64%-122%6%74%72%-29%-48%-54%33%107%34%-25%77%-108%-112%-22%118%-107%99%-50%38%-101%30%-102%105%32%-106%-107%-43%67%-64%13%-78%15%-125%101%117%-62%80%-91%-59%-29%-110%-91%-92%96%40%-63%-78%90%97%104%18%56%-41%68%-15%-33%82%-16%17%122%4%32%58%61%-4%109%-35%64%-114%-51%70%-1%-101%66%16%127%48%-66%65%16%-81%16%61%16%90%-80%-92%70%-88%-18%123%49%92%-79%-100%45%8%-15%-71%-74%59%93%100%-16%70%-101%67%24%58%-29%51%-96%29%-27%60%89%-18%-56%-126%16%-17%110%98%85%-43%-114%99%-78%-29%-53%-95%14%-86%-15%38%-103%79%42%103%-79%-108%90%12%67%-18%-125%-51%82%76%-53%103%-79%-124%27%-37%122%104%84%22%119%-54%-57%34%112%89%110%-83%88%30%70%85%3%-47%-46%74%-28%-109%-63%-38%43%4%-43%-65%-30%113%77%-22%-20%12%58%-120%62%74%107%80%115%-48%105%-83%-41%-83%-117%-98%-89%19%43%65%113%-112%-41%-91%-54%112%-121%65%15%81%67%93%94%14%81%113%-85%21%2%-94%118%-38%-118%112%-6%94%65%-57%64%-14%16%-55%-31%27%72%28%-76%-21%-87%92%-35%-81%52%-14%-2%-46%-119%-123%-10%91%-111%94%69%40%-53%65%104%51%-126%-121%14%81%122%-36%38%-86%-54%-57%-63%-111%80%116%-60%9%57%-25%111%44%-106%63%-125%-38%-127%73%114%42%84%12%12%-21%-55%80%45%56%-51%78%-123%30%-30%-126%-24%-8%4%-56%72%-68%-20%6%-89%37%-105%114%66%111%-6%-26%81%-112%-109%-54%-117%-62%50%-10%65%94%96%-26%81%45%39%13%-78%-68%-75%56%14%58%43%-5%26%-33%61%17%26%-11%2%-35%-103%60%13%-86%-122%106%110%-30%36%40%21%46%-109%-2%81%67%66%41%9%88%-26%95%55%-50%-20%107%45%-41%36%44%-44%116%21%43%-89%92%9%32%-95%-124%123%93%-3%63%-22%22%-29%-96%-110%-104%-77%-26%-103%-102%-63%66%124%-57%73%-54%-91%40%7%7%-119%5%87%5%88%4%98%-96%-30%-73%-34%65%65%124%-28%-83%47%-64%65%65%108%-37%2%47%-109%49%16%-33%-58%-107%-31%109%18%2%-30%-101%-19%103%-48%65%64%35%54%23%87%-102%125%-101%30%-30%-101%-19%46%-123%67%15%-99%51%72%-77%71%70%64%108%105%100%106%28%5%52%-99%-7%-29%-18%-16%-21%-57%-15%-112%58%-46%113%65%-16%108%-4%95%-48%117%92%-48%107%92%-48%-80%16%13%-127%-81%-75%-126%-48%-18%-2%-68%-32%-117%-73%-105%-106%27%-20%21%-76%-26%117%20%-26%-19%113%-102%53%-87%-88%73%-45%67%-4%85%-61%86%-109%-90%-121%28%6%93%-1%24%18%5%82%-13%-42%6%1%-15%89%-95%-71%73%16%-112%-63%42%-101%-75%0%-77%48%31%15%-82%88%-109%-32%-94%-115%-127%120%-115%-124%-117%36%-22%-69%-56%59%-105%-96%119%82%40%-56%48%-11%18%-18%-109%79%91%-36%114%-23%-56%126%66%126%59%18%-53%17%82%-114%26%59%36%52%114%-117%94%-93%-89%94%2%96%63%-117%21%-35%-3%44%33%-123%-74%-30%21%55%22%-94%-122%36%17%82%-97%78%38%19%-33%-73%9%52%68%-115%80%-39%-13%125%-100%-64%67%-69%103%110%-61%15%-7%-54%-17%49%16%117%62%99%-126%-88%-99%24%-57%3%-19%98%-47%-81%-57%3%-19%-30%-95%-35%43%-49%119%113%46%-1%-8%15%83%120%-125%-89%63%57%-45%-36%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%32%-103%-56%60%27%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus"/>
+ <icon xmi:type="uml:Image" xmi:id="_WTUY0ENnEeGoAtSeIK7WLg" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%72%0%0%0%104%8%3%0%0%0%101%-97%70%67%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-43%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-103%-103%-103%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%103%103%103%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%-34%-34%-34%43%43%43%39%39%39%35%35%35%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%-68%-68%-68%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%-43%-43%-43%34%34%34%-47%-47%-47%30%30%30%26%26%26%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-51%-46%-59%107%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%3%-13%73%68%65%84%88%-123%-75%-39%109%67%-86%48%20%0%-32%-39%53%75%-67%105%26%-23%-51%74%52%73%45%-13%-86%13%-13%37%-55%-105%-44%-1%-1%-109%-82%-70%13%6%-116%-77%-93%113%-49%-73%-28%-12%48%-74%113%-40%-128%80%116%12%55%-39%-4%116%78%-56%-14%-13%-6%-9%-13%40%120%-108%32%21%-69%121%85%39%82%52%-14%109%-65%-123%-124%-102%-9%36%20%-85%-92%125%44%84%-67%13%51%-5%-72%-33%30%7%117%-44%-52%62%-78%110%-93%-12%-48%-80%31%-19%16%82%40%98%-95%-30%-89%-12%111%-26%52%-105%-51%-68%79%-66%-91%-97%-26%51%28%100%23%-68%-50%-51%-82%-59%-123%84%47%-67%-50%-65%27%-95%-96%-116%-56%-81%-65%-7%-122%-37%62%119%-101%-107%-73%17%-48%-117%-37%23%70%-24%-102%-35%-66%-21%-22%33%-93%-63%115%51%-74%-30%104%-57%-30%71%23%90%72%-100%-76%-93%62%-36%-30%-121%-57%58%-56%-31%-89%-20%71%37%116%-71%-76%-47%64%57%-106%118%59%-116%-52%-56%-77%-116%50%12%-35%-16%6%-43%-12%109%126%0%-95%54%75%-54%65%-115%-50%-120%-127%-125%-96%-100%56%-101%-66%-43%101%8%26%-78%-79%-81%64%14%-91%31%-20%108%14%0%85%-7%20%-126%-95%36%-53%106%6%-96%-46%-52%-117%95%-18%-48%66%-15%-59%-78%82%62%40%41%-33%-42%34%28%24%-78%89%86%90%-122%54%10%-122%-112%80%-103%15%4%59%-7%64%-122%6%74%72%-29%-48%-54%33%107%34%-25%77%-108%-112%-22%118%-107%99%-50%38%-101%30%-102%105%32%-106%-107%-43%67%-64%13%-78%15%-125%101%117%-62%80%-91%-59%-29%-110%-91%-92%96%40%-63%-78%90%97%104%18%56%-41%68%-15%-33%82%-16%17%122%4%32%58%61%-4%109%-35%64%-114%-51%70%-1%-101%66%16%127%48%-66%65%16%-81%16%61%16%90%-80%-92%70%-88%-18%123%49%92%-79%-100%45%8%-15%-71%-74%59%93%100%-16%70%-101%67%24%58%-29%51%-96%29%-27%60%89%-18%-56%-126%16%-17%110%98%85%-43%-114%99%-78%-29%-53%-95%14%-86%-15%38%-103%79%42%103%-79%-108%90%12%67%-18%-125%-51%82%76%-53%103%-79%-124%27%-37%122%104%84%22%119%-54%-57%34%112%89%110%-83%88%30%70%85%3%-47%-46%74%-28%-109%-63%-38%43%4%-43%-65%-30%113%77%-22%-20%12%58%-120%62%74%107%80%115%-48%105%-83%-41%-83%-117%-98%-89%19%43%65%113%-112%-41%-91%-54%112%-121%65%15%81%67%93%94%14%81%113%-85%21%2%-94%118%-38%-118%112%-6%94%65%-57%64%-14%16%-55%-31%27%72%28%-76%-21%-87%92%-35%-81%52%-14%-2%-46%-119%-123%-10%91%-111%94%69%40%-53%65%104%51%-126%-121%14%81%122%-36%38%-86%-54%-57%-63%-111%80%116%-60%9%57%-25%111%44%-106%63%-125%-38%-127%73%114%42%84%12%12%-21%-55%80%45%56%-51%78%-123%30%-30%-126%-24%-8%4%-56%72%-68%-20%6%-89%37%-105%114%66%111%-6%-26%81%-112%-109%-54%-117%-62%50%-10%65%94%96%-26%81%45%39%13%-78%-68%-75%56%14%58%43%-5%26%-33%61%17%26%-11%2%-35%-103%60%13%-86%-122%106%110%-30%36%40%21%46%-109%-2%81%67%66%41%9%88%-26%95%55%-50%-20%107%45%-41%36%44%-44%116%21%43%-89%92%9%32%-95%-124%123%93%-3%63%-22%22%-29%-96%-110%-104%-77%-26%-103%-102%-63%66%124%-57%73%-54%-91%40%7%7%-119%5%87%5%88%4%98%-96%-30%-73%-34%65%65%124%-28%-83%47%-64%65%65%108%-37%2%47%-109%49%16%-33%-58%-107%-31%109%18%2%-30%-101%-19%103%-48%65%64%35%54%23%87%-102%125%-101%30%-30%-101%-19%46%-123%67%15%-99%51%72%-77%71%70%64%108%105%100%106%28%5%52%-99%-7%-29%-18%-16%-21%-57%-15%-112%58%-46%113%65%-16%108%-4%95%-48%117%92%-48%107%92%-48%-80%16%13%-127%-81%-75%-126%-48%-18%-2%-68%-32%-117%-73%-105%-106%27%-20%21%-76%-26%117%20%-26%-19%113%-102%53%-87%-88%73%-45%67%-4%85%-61%86%-109%-90%-121%28%6%93%-1%24%18%5%82%-13%-42%6%1%-15%89%-95%-71%73%16%-112%-63%42%-101%-75%0%-77%48%31%15%-82%88%-109%-32%-94%-115%-127%120%-115%-124%-117%36%-22%-69%-56%59%-105%-96%119%82%40%-56%48%-11%18%-18%-109%79%91%-36%114%-23%-56%126%66%126%59%18%-53%17%82%-114%26%59%36%52%114%-117%94%-93%-89%94%2%96%63%-117%21%-35%-3%44%33%-123%-74%-30%21%55%22%-94%-122%36%17%82%-97%78%38%19%-33%-73%9%52%68%-115%80%-39%-13%125%-100%-64%67%-69%103%110%-61%15%-7%-54%-17%49%16%117%62%99%-126%-88%-99%24%-57%3%-19%98%-47%-81%-57%3%-19%-30%-95%-35%43%-49%119%113%46%-1%-8%15%83%120%-125%-89%63%57%-45%-36%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%32%-103%-56%60%27%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_GjnlcC8qEeKx7OxAiA06uw" name="PushProdPullCons">
+ <icon xmi:type="uml:Image" xmi:id="_0I0rMEMLEeKGIL695HkFYQ" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%112%0%0%0%103%8%0%0%0%0%-3%88%-103%-76%0%0%7%56%73%68%65%84%104%-127%-75%-102%123%80%21%85%28%-57%-9%-18%-67%92%121%-91%40%-124%38%70%64%-26%11%-33%-118%-29%115%124%84%-90%83%106%-91%-93%2%-115%83%-90%102%-90%-7%-56%-55%-41%-104%58%-26%-116%-40%56%-102%-64%-116%-88%53%101%62%-54%102%-14%81%26%86%102%-58%4%78%102%-120%14%89%62%72%5%-15%9%72%112%-111%-57%-62%-23%42%23%-10%123%118%-49%-18%-98%-35%-69%-2%-2%-29%-100%-33%-2%62%-105%-35%-13%123%-100%-33%57%2%-31%23%-23%-20%-87%-101%-116%-31%-102%-69%38%108%16%-127%31%-105%-38%78%16%-100%83%47%-46%-93%-43%-97%116%17%-59%94%-23%53%-10%3%-85%-34%116%9%15%36%-106%34%86%39%63%28%20%-109%-1%-77%29%-72%-92%-111%39%8%-29%-85%96%52%-75%105%116%90%-75%-51%-64%-116%22%62%-53%66%-28%101%121%-76%122%96%-45%-88%-72%-76%-34%86%-32%-31%80%-95%89%-66%-105%-121%47%61%-39%60%-22%78%-77%19%120%-90%-83%-52%19%-14%-28%-15%-62%56%121%56%116%-97%125%-64%-62%-98%-64%-21%120%93%-98%-88%26%12%19%109%-114%-39%5%44%123%22%-52%10%91%112%-22%-101%64%-104%-119%62%103%15%80%74%114%-128%-43%23%-53%113%-50%-25%22%62%-23%117%-51%22%-32%42%39%-40%-20%83%76%79%-106%-67%-128%-60%81%-58%65%-57%24%-72%-93%5%88%-20%-112%-81%-100%-66%-103%-128%-60%-55%30%-65%-127%-103%-32%16%66%-21%-29%106%-123%11%79%-125%-126%56%-73%-42%79%96%126%52%-104%11%-38%-55%82%-55%121%28%84%2%-42%-7%7%-68%-34%11%95%-40%-70%58%-90%-46%-63%-57%64%39%-28%115%127%-128%-98%-25%-112%55%-29%-66%-122%-38%118%-4%-52%97%-121%-83%3%-91%-23%-24%16%99%52%51%66%-3%-121%34%-24%69%-99%-78%12%92%-29%2%59%61%-117%-75%21%107%-26%-32%-101%-24%-10%-113%69%-32%23%24%70%-94%114%-11%126%90%-59%68%36%14%101%21%6%-58%-64%19%-83%-64%70%-85%31%-12%120%-124%-108%12%69%-30%-72%50%11%64%72%61%-34%-46%-30%-45%6%125%32%-71%26%15%-22%-30%76%-83%-11%-91%13%-68%-35%7%127%-14%74%-74%67%-96%-28%70%-127%126%-64%7%-110%73%-96%-121%-118%-111%111%104%-2%96%-112%-93%97%-16%68%96%-70%73%-32%76%116%-120%81%-9%56%120%-124%-20%13%-126%103%66%-65%50%5%92%-113%14%-47%-11%10%23%-113%-44%111%-62%-68%18%-98%101%2%-72%-41%13%79%70%-98%-26%-29%121%-35%113%41%126%-121%-40%-13%-36%-64%-109%-24%16%-63%-103%-68%60%66%42%95%67%98%127%86%-88%96%1%11%48%67%56%-73%25%57%4%74%-39%88%36%14%47%-27%2%-106%80%14%-79%-62%-40%33%80%-118%-6%-31%-61%83%-85%84%10%106%-96%-12%18%46%-48%100%-11%35%-6%-110%31%11%79%59%22%-87%-36%81%13%-100%-117%-111%127%-104%118%-116%-46%-110%19%88%-61%6%108%52%4%110%70%-121%-120%-27%116%8%74%14%-32%-110%11%82%-26%99%37%112%63%58%68%-60%31%22%120%-92%126%43%102%-103%-106%-118%-88%-81%0%-2%-114%-31%41%-8%59%43%60%66%106%87%99%0%104%-105%71%77%-46%-64%43%88%-127%9%105%90%1%-40%72%60%-77%-48%76%-89%34%77%96%101%95%84%92%96%84%-15%105%75%-7%-85%104%104%48%-106%-57%8%-84%-101%-128%106%-109%121%-73%-104%44%-71%51%4%77%-31%30%22%-127%-117%-47%1%19%-52%59%4%-54%-91%46%96%-53%49%67%-2%56%0%-92%98%125%76%-127%95%60%-17%-14%123%2%-84%57%87%49%-128%-103%-104%-51%-38%-24%-106%122%92%114%-76%53%-40%115%103%-88%-128%-25%-38%-64%-68%-21%-96%-103%-120%-83%33%-69%-15%63%8%57%-92%0%-34%-120%-63%-81%-68%-103%-77%67%-96%43%13%31%81%-7%56%-121%2%86%12%66%-34%60%-21%14%-127%82%-77%16%-115%-58%92%4%96%-35%100%-100%-102%-32%-113%67%-96%84%38%-94%-39%-34%55%101%-32%10%116%-120%-34%37%54%-15%-68%-7%120%36%18%71%120%-102%-128%59%-112%-41%94%111%103%96%86%-118%-79%-1%-31%72%-108%26%-127%-57%48%67%-124%-8%-17%16%40%-25%-79%60%118%-66%-1%16%120%1%-13%-105%75%-93%-100%-76%44%89%-24%110%-31%69%94%96%113%71%124%-49%41%118%56%4%37%-5%-63%29%-59%84%47%-112%-6%-82%-13%-52%-107%76%60%-46%-112%14%-18%56%64%18%-14%112%-63%-116%54%-20%122%88%-112%44%-8%100%125%37%97%62%-16%-30%-17%60%2%-34%5%-88%114%29%-21%-119%-48%94%-2%51%-20%-46%35%-32%-35%-22%15%-1%81%-40%95%68%-64%125%-28%86%27%66%-74%66%42%38%-127%125%71%-94%-41%45%54%-94%79%88%-84%-102%-76%-91%-10%61%92%-110%-61%-68%-91%-65%112%59%0%70%66%-71%55%74%124%-46%-80%5%19%70%-41%-85%-28%-127%-29%83%91%-84%-88%-117%-122%70%-52%-56%1%76%-119%17%15%-1%27%111%-92%-103%-126%-60%78%-73%108%-28%-3%22%1%-106%-125%15%18%31%-16%-2%112%-22%61%87%-40%-58%43%120%6%-20%-70%55%-111%38%32%41%-19%-122%-60%41%-4%-89%44%-6%82%58%2%-84%58%23%18%25%72%10%-80%37%35%44%-78%39%-68%121%-110%-48%-24%-53%77%-91%105%99%2%-2%19%-73%20%-62%70%59%2%120%-35%114%52%57%-80%-71%-8%-10%-43%52%71%-80%1%-23%-38%-25%127%0%104%-56%64%-121%-120%-109%79%115%-102%-86%-74%109%-72%13%13%57%-18%55%48%19%-33%89%120%-74%60%-47%92%-105%-82%68%98%100%30%-53%-120%9%57%-35%14%-84%5%-19%-127%25%-71%-14%-98%-123%121%42%-90%72%109%-60%-124%20%-10%0%91%1%41%56%37%3%-21%-88%-114%-57%0%127%-10%50%-9%-80%115%-19%-104%69%109%51%97%51%83%-47%-101%90%-57%60%-3%60%-74%120%94%71%67%99%-24%62%8%110%-41%-118%-30%80%-15%109%-85%1%64%90%-125%11%52%-31%6%61%75%-19%-128%-13%-15%4%66%88%109%113%-57%77%117%-82%-97%82%30%-27%-48%123%-4%-97%67%64%-41%-75%-35%-110%59%-2%68%117%-82%127%84%78%43%-70%24%123%48%59%90%-22%98%-100%-61%70%93%-32%103%-86%121%101%-97%-122%-38%98%69%-28%-104%-26%81%-67%54%-41%90%-75%-126%-86%19%-75%0%3%64%-76%-39%124%124%15%-5%18%-30%116%-58%-70%83%1%-21%38%82%59%41%115%-123%99%-19%108%92%117%35%24%-35%75%70%115%-81%18%-49%117%-123%-25%-71%111%4%120%-91%-98%-6%32%-35%-103%71%57%-116%126%-23%45%-20%120%-16%53%-12%125%-14%101%48%60%24%-59%-114%-57%-52%-114%112%123%36%46%-31%-34%127%-1%18%14%-113%-75%-44%88%-30%-58%61%111%-25%22%-50%124%76%29%-107%6%102%104%104%-79%-69%-6%-5%49%88%4%127%-51%-59%-93%-70%93%-30%50%-109%39%51%105%24%0%-62%127%-27%-32%81%53%-67%-112%100%-6%-20%105%57%-70%99%7%-29%-126%-68%6%119%97%-62%112%-19%-66%-124%22%80%-102%-122%-18%-40%-29%95%35%-32%-57%88%20%-59%-21%-88%107%-98%-82%-47%-57%-65%35%13%2%-64%1%60%119%-114%-52%-42%-47%-44%62%63%-92%-49%-13%18%43%-11%120%39%35%65%53%84%119%-111%-23%-100%-112%-46%-3%-24%-7%58%1%-32%114%103%80%12%-40%-84%-57%-45%61%3%-50%69%71%118%-90%104%22%-28%119%71%-127%-98%-72%80%-33%109%117%79%-71%-113%96%62%14%-38%-87%-111%-113%-85%-88%19%-82%-119%6%-101%33%-3%-117%3%25%-72%-10%90%-79%-113%-39%-22%-105%-95%7%13%49%-38%-18%25%92%-115%88%-117%-25%52%109%-103%-7%120%43%54%-50%-30%12%27%117%6%64%-23%29%-4%-7%-99%24%-7%-8%80%75%80%-32%-120%73%70%-73%77%60%-44%9%-60%32%-43%11%59%-125%-103%37%100%-105%33%-49%-8%62%-51%93%-22%4%-30%21%69%62%46%-60%-30%-39%-99%-62%54%97%14%72%-82%117%71%-30%108%-86%91%92%54%26%-25%-34%-30%-23%36%115%-36%-119%58%-117%45%79%-9%-73%56%-75%1%121%-29%-54%-75%44%-104%4%-110%99%-104%-113%-57%-62%-65%113%37%6%38%-6%-23%-36%70%49%9%36%-69%-96%86%-23%12%123%-123%108%8%12%-86%-102%-34%31%32%-39%36%7%-128%104%-72%-69%-106%41%-13%-62%-114%-14%-15%56%-127%-46%-30%-26%0%48%6%-118%-37%-13%-51%-25%75%-116%-102%-34%47%-96%55%94%-6%-14%-79%115%55%-116%-42%-114%-9%-15%-60%85%-36%-115%15%-34%-5%-91%37%-109%26%-119%115%-88%-22%-35%87%-88%-119%-17%62%-126%43%-69%82%90%127%-105%-69%-25%94%-123%-27%-53%-55%-34%72%26%-67%-61%68%99%-121%-1%82%50%33%-27%-84%-46%-81%-28%-52%-33%-90%-6%72%-1%3%78%-120%-67%33%108%33%82%26%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus"/>
+ <icon xmi:type="uml:Image" xmi:id="_12mboEMLEeKGIL695HkFYQ" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%112%0%0%0%103%8%0%0%0%0%-3%88%-103%-76%0%0%7%56%73%68%65%84%104%-127%-75%-102%123%80%21%85%28%-57%-9%-18%-67%92%121%-91%40%-124%38%70%64%-26%11%-33%-118%-29%115%124%84%-90%83%106%-91%-93%2%-115%83%-90%102%-90%-7%-56%-55%-41%-104%58%-26%-116%-40%56%-102%-64%-116%-88%53%101%62%-54%102%-14%81%26%86%102%-58%4%78%102%-120%14%89%62%72%5%-15%9%72%112%-111%-57%-62%-23%42%23%-10%123%118%-49%-18%-98%-35%-69%-2%-2%-29%-100%-33%-2%62%-105%-35%-13%123%-100%-33%57%2%-31%23%-23%-20%-87%-101%-116%-31%-102%-69%38%108%16%-127%31%-105%-38%78%16%-100%83%47%-46%-93%-43%-97%116%17%-59%94%-23%53%-10%3%-85%-34%116%9%15%36%-106%34%86%39%63%28%20%-109%-1%-77%29%-72%-92%-111%39%8%-29%-85%96%52%-75%105%116%90%-75%-51%-64%-116%22%62%-53%66%-28%101%121%-76%122%96%-45%-88%-72%-76%-34%86%-32%-31%80%-95%89%-66%-105%-121%47%61%-39%60%-22%78%-77%19%120%-90%-83%-52%19%-14%-28%-15%-62%56%121%56%116%-97%125%-64%-62%-98%-64%-21%120%93%-98%-88%26%12%19%109%-114%-39%5%44%123%22%-52%10%91%112%-22%-101%64%-104%-119%62%103%15%80%74%114%-128%-43%23%-53%113%-50%-25%22%62%-23%117%-51%22%-32%42%39%-40%-20%83%76%79%-106%-67%-128%-60%81%-58%65%-57%24%-72%-93%5%88%-20%-112%-81%-100%-66%-103%-128%-60%-55%30%-65%-127%-103%-32%16%66%-21%-29%106%-123%11%79%-125%-126%56%-73%-42%79%96%126%52%-104%11%-38%-55%82%-55%121%28%84%2%-42%-7%7%-68%-34%11%95%-40%-70%58%-90%-46%-63%-57%64%39%-28%115%127%-128%-98%-25%-112%55%-29%-66%-122%-38%118%-4%-52%97%-121%-83%3%-91%-23%-24%16%99%52%51%66%-3%-121%34%-24%69%-99%-78%12%92%-29%2%59%61%-117%-75%21%107%-26%-32%-101%-24%-10%-113%69%-32%23%24%70%-94%114%-11%126%90%-59%68%36%14%101%21%6%-58%-64%19%-83%-64%70%-85%31%-12%120%-124%-108%12%69%-30%-72%50%11%64%72%61%-34%-46%-30%-45%6%125%32%-71%26%15%-22%-30%76%-83%-11%-91%13%-68%-35%7%127%-14%74%-74%67%-96%-28%70%-127%126%-64%7%-110%73%-96%-121%-118%-111%111%104%-2%96%-112%-93%97%-16%68%96%-70%73%-32%76%116%-120%81%-9%56%120%-124%-20%13%-126%103%66%-65%50%5%92%-113%14%-47%-11%10%23%-113%-44%111%-62%-68%18%-98%101%2%-72%-41%13%79%70%-98%-26%-29%121%-35%113%41%126%-121%-40%-13%-36%-64%-109%-24%16%-63%-103%-68%60%66%42%95%67%98%127%86%-88%96%1%11%48%67%56%-73%25%57%4%74%-39%88%36%14%47%-27%2%-106%80%14%-79%-62%-40%33%80%-118%-6%-31%-61%83%-85%84%10%106%-96%-12%18%46%-48%100%-11%35%-6%-110%31%11%79%59%22%-87%-36%81%13%-100%-117%-111%127%-104%118%-116%-46%-110%19%88%-61%6%108%52%4%110%70%-121%-120%-27%116%8%74%14%-32%-110%11%82%-26%99%37%112%63%58%68%-60%31%22%120%-92%126%43%102%-103%-106%-118%-88%-81%0%-2%-114%-31%41%-8%59%43%60%66%106%87%99%0%104%-105%71%77%-46%-64%43%88%-127%9%105%90%1%-40%72%60%-77%-48%76%-89%34%77%96%101%95%84%92%96%84%-15%105%75%-7%-85%104%104%48%-106%-57%8%-84%-101%-128%106%-109%121%-73%-104%44%-71%51%4%77%-31%30%22%-127%-117%-47%1%19%-52%59%4%-54%-91%46%96%-53%49%67%-2%56%0%-92%98%125%76%-127%95%60%-17%-14%123%2%-84%57%87%49%-128%-103%-104%-51%-38%-24%-106%122%92%114%-76%53%-40%115%103%-88%-128%-25%-38%-64%-68%-21%-96%-103%-120%-83%33%-69%-15%63%8%57%-92%0%-34%-120%-63%-81%-68%-103%-77%67%-96%43%13%31%81%-7%56%-121%2%86%12%66%-34%60%-21%14%-127%82%-77%16%-115%-58%92%4%96%-35%100%-100%-102%-32%-113%67%-96%84%38%-94%-39%-34%55%101%-32%10%116%-120%-34%37%54%-15%-68%-7%120%36%18%71%120%-102%-128%59%-112%-41%94%111%103%96%86%-118%-79%-1%-31%72%-108%26%-127%-57%48%67%-124%-8%-17%16%40%-25%-79%60%118%-66%-1%16%120%1%-13%-105%75%-93%-100%-76%44%89%-24%110%-31%69%94%96%113%71%124%-49%41%118%56%4%37%-5%-63%29%-59%84%47%-112%-6%-82%-13%-52%-107%76%60%-46%-112%14%-18%56%64%18%-14%112%-63%-116%54%-20%122%88%-112%44%-8%100%125%37%97%62%-16%-30%-17%60%2%-34%5%-88%114%29%-21%-119%-48%94%-2%51%-20%-46%35%-32%-35%-22%15%-1%81%-40%95%68%-64%125%-28%86%27%66%-74%66%42%38%-127%125%71%-94%-41%45%54%-94%79%88%-84%-102%-76%-91%-10%61%92%-110%-61%-68%-91%-65%112%59%0%70%66%-71%55%74%124%-46%-80%5%19%70%-41%-85%-28%-127%-29%83%91%-84%-88%-117%-122%70%-52%-56%1%76%-119%17%15%-1%27%111%-92%-103%-126%-60%78%-73%108%-28%-3%22%1%-106%-125%15%18%31%-16%-2%112%-22%61%87%-40%-58%43%120%6%-20%-70%55%-111%38%32%41%-19%-122%-60%41%-4%-89%44%-6%82%58%2%-84%58%23%18%25%72%10%-80%37%35%44%-78%39%-68%121%-110%-48%-24%-53%77%-91%105%99%2%-2%19%-73%20%-62%70%59%2%120%-35%114%52%57%-80%-71%-8%-10%-43%52%71%-80%1%-23%-38%-25%127%0%104%-56%64%-121%-120%-109%79%115%-102%-86%-74%109%-72%13%13%57%-18%55%48%19%-33%89%120%-74%60%-47%92%-105%-82%68%98%100%30%-53%-120%9%57%-35%14%-84%5%-19%-127%25%-71%-14%-98%-123%121%42%-90%72%109%-60%-124%20%-10%0%91%1%41%56%37%3%-21%-88%-114%-57%0%127%-10%50%-9%-80%115%-19%-104%69%109%51%97%51%83%-47%-101%90%-57%60%-3%60%-74%120%94%71%67%99%-24%62%8%110%-41%-118%-30%80%-15%109%-85%1%64%90%-125%11%52%-31%6%61%75%-19%-128%-13%-15%4%66%88%109%113%-57%77%117%-82%-97%82%30%-27%-48%123%-4%-97%67%64%-41%-75%-35%-110%59%-2%68%117%-82%127%84%78%43%-70%24%123%48%59%90%-22%98%-100%-61%70%93%-32%103%-86%121%101%-97%-122%-38%98%69%-28%-104%-26%81%-67%54%-41%90%-75%-126%-86%19%-75%0%3%64%-76%-39%124%124%15%-5%18%-30%116%-58%-70%83%1%-21%38%82%59%41%115%-123%99%-19%108%92%117%35%24%-35%75%70%115%-81%18%-49%117%-123%-25%-71%111%4%120%-91%-98%-6%32%-35%-103%71%57%-116%126%-23%45%-20%120%-16%53%-12%125%-14%101%48%60%24%-59%-114%-57%-52%-114%112%123%36%46%-31%-34%127%-1%18%14%-113%-75%-44%88%-30%-58%61%111%-25%22%-50%124%76%29%-107%6%102%104%104%-79%-69%-6%-5%49%88%4%127%-51%-59%-93%-70%93%-30%50%-109%39%51%105%24%0%-62%127%-27%-32%81%53%-67%-112%100%-6%-20%105%57%-70%99%7%-29%-126%-68%6%119%97%-62%112%-19%-66%-124%22%80%-102%-122%-18%-40%-29%95%35%-32%-57%88%20%-59%-21%-88%107%-98%-82%-47%-57%-65%35%13%2%-64%1%60%119%-114%-52%-42%-47%-44%62%63%-92%-49%-13%18%43%-11%120%39%35%65%53%84%119%-111%-23%-100%-112%-46%-3%-24%-7%58%1%-32%114%103%80%12%-40%-84%-57%-45%61%3%-50%69%71%118%-90%104%22%-28%119%71%-127%-98%-72%80%-33%109%117%79%-71%-113%96%62%14%-38%-87%-111%-113%-85%-88%19%-82%-119%6%-101%33%-3%-117%3%25%-72%-10%90%-79%-113%-39%-22%-105%-95%7%13%49%-38%-18%25%92%-115%88%-117%-25%52%109%-103%-7%120%43%54%-50%-30%12%27%117%6%64%-23%29%-4%-7%-99%24%-7%-8%80%75%80%-32%-120%73%70%-73%77%60%-44%9%-60%32%-43%11%59%-125%-103%37%100%-105%33%-49%-8%62%-51%93%-22%4%-30%21%69%62%46%-60%-30%-39%-99%-62%54%97%14%72%-82%117%71%-30%108%-86%91%92%54%26%-25%-34%-30%-23%36%115%-36%-119%58%-117%45%79%-9%-73%56%-75%1%121%-29%-54%-75%44%-104%4%-110%99%-104%-113%-57%-62%-65%113%37%6%38%-6%-23%-36%70%49%9%36%-69%-96%86%-23%12%123%-123%108%8%12%-86%-102%-34%31%32%-39%36%7%-128%104%-72%-69%-106%41%-13%-62%-114%-14%-15%56%-127%-46%-30%-26%0%48%6%-118%-37%-13%-51%-25%75%-116%-102%-34%47%-96%55%94%-6%-14%-79%115%55%-116%-42%-114%-9%-15%-60%85%-36%-115%15%-34%-5%-91%37%-109%26%-119%115%-88%-22%-35%87%-88%-119%-17%62%-126%43%-69%82%90%127%-105%-69%-25%94%-123%-27%-53%-55%-34%72%26%-67%-61%68%99%-121%-1%82%50%33%-27%-84%-46%-81%-28%-52%-33%-90%-6%72%-1%3%78%-120%-67%33%108%33%82%26%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_HmnpEJsrEd61Eo3nmu3JhQ" name="StdPorts">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Yq-O8Nt2Ed6nqsBVkgJEEA" annotatedElement="_-WNegNtxEd6nqsBVkgJEEA">
+ <body>Is called during component activation &amp; deactivation. The two functions may not block i.e. return control to the caller after &quot;a very short&quot; period</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_OcN78Nt2Ed6nqsBVkgJEEA" annotatedElement="_N6fa4JsrEd61Eo3nmu3JhQ">
+ <body>Is called during startup. Expected to block. Only one component instance per node may define it.</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_N6fa4JsrEd61Eo3nmu3JhQ" name="Cstart" isAbstract="true">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_OfiosJsrEd61Eo3nmu3JhQ" name="start" aggregation="composite">
+ <type xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_PTWzwCS-Ed-A_I32T0fkaA"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3cU3wCS-Ed-A_I32T0fkaA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3cXUACS-Ed-A_I32T0fkaA" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_xtlE8ARAEd--t-uhRn9OBA" name="ContainerServices">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_hGEOAMT8Ed-zx4a_r4xAYw" annotatedElement="_SiY_AP-EEd6628OhKk_dpg">
+ <body>A thread service supporting the LifeCycle port. Once started, it calls the activate operation (via the required port rLC) of a connected component in a new thread of a specific priority (a configuration attribute). This C++ implementation is based on the POSIX pthread library. It will further assume that the execution is done with root privileges, since these are required to set the thread priority. The thread properties assume round-robin (SCHED_RR) scheduling.
+</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_EuvHYCXREeGX6PuSE-DJlQ" annotatedElement="_5J9coCXQEeGX6PuSE-DJlQ">
+ <body> Interceptor variant of thread (inherits all, only difference to Thread superclass: tagged as connector)</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_SiY_AP-EEd6628OhKk_dpg" clientDependency="_lrFSQDz9Ed-v9PxuTj6Elw _wCkVcNYGEd-CgJIavLpOxQ" name="Thread">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_lCtoICnOEeGxrprK9wB9iA" annotatedElement="_rVfYoMGJEd-Mveea1W_olA">
+ <body>Priority of the thread. The interpretation of the value is OS specific. In case of POSIX; priorities are only taken into accound for threads with a FIFO and round-robin scheduliung policy.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_6bsEkARAEd--t-uhRn9OBA" general="_-WNegNtxEd6nqsBVkgJEEA"/>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_ZjdOAP-EEd6628OhKk_dpg" name="rLC" aggregation="composite">
+ <type xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_rVfYoMGJEd-Mveea1W_olA" name="priority" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_e6XsEFjmEeKaM_PspnG53g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_e6ckkFjmEeKaM_PspnG53g" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_e6njsFjmEeKaM_PspnG53g">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_lrFSQDz9Ed-v9PxuTj6Elw" name="derived realization of ILifeCycle" client="_SiY_AP-EEd6628OhKk_dpg">
+ <supplier xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ <contract xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ </interfaceRealization>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_MWW4MAQyEd--t-uhRn9OBA" name="staticAct" specification="_yv198P-EEd6628OhKk_dpg">
+ <language>C/C++</language>
+ <body>((Thread*) arg)->rLC->activate();
+return NULL;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_oP6UcED4Ed-_DOja_sRgWA" name="activate" specification="_JmxyMD16Ed-Bk-AHd6yyoA">
+ <language>C/C++</language>
+ <body>// create thread
+pthread_t pt;
+pthread_create (&amp;pt, NULL, staticAct, (void *) this);
+
+// set priority of thread
+struct sched_param schedParam;
+schedParam.sched_priority = priority;
+pthread_setschedparam (pt, SCHED_RR, &amp;schedParam);
+// TODO: check return code (in particular, SCHED_RR only works for root)
+</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_yv198P-EEd6628OhKk_dpg" name="staticAct" isStatic="true" method="_MWW4MAQyEd--t-uhRn9OBA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_1TXqoP-EEd6628OhKk_dpg" name="arg">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3MCccP-EEd6628OhKk_dpg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3MDDgP-EEd6628OhKk_dpg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_3MDqkP-EEd6628OhKk_dpg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_BywjgP-FEd6628OhKk_dpg" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_JmxyMD16Ed-Bk-AHd6yyoA" name="activate" method="_oP6UcED4Ed-_DOja_sRgWA"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_JqB6gD16Ed-Bk-AHd6yyoA" name="deactivate"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_wCkVcNYGEd-CgJIavLpOxQ" name="ImplRequirement" client="_SiY_AP-EEd6628OhKk_dpg" supplier="_ea234NYGEd-CgJIavLpOxQ"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_WkkjoPNUEeCovO8AYZymZQ" name="CallEvent_">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_YKtbAPNUEeCovO8AYZymZQ" name="operationID" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_9XvcQB6REd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_aDHHEPNUEeCovO8AYZymZQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_aDIVMPNUEeCovO8AYZymZQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_aDKxcPNUEeCovO8AYZymZQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_gQGNwPNUEeCovO8AYZymZQ" name="kind" visibility="public" type="_jQjHAPNUEeCovO8AYZymZQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_imLUUPNUEeCovO8AYZymZQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_imL7YPNUEeCovO8AYZymZQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_imuG4PNUEeCovO8AYZymZQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_-_HCMBI0EeGU49ezpRnvLg" name="portID">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_9XvcQB6REd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-_LToBI0EeGU49ezpRnvLg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-_L6sBI0EeGU49ezpRnvLg" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_qzHgkPNUEeCovO8AYZymZQ" name="params" visibility="public" type="_OU5asFaNEeKxltxu9uR4dg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sMOBgPNUEeCovO8AYZymZQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sMPPoPNUEeCovO8AYZymZQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_sMRE0PNUEeCovO8AYZymZQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_JRmo0PNAEeCovO8AYZymZQ" clientDependency="_mI0xEPQXEeCovO8AYZymZQ" name="EventPool">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_MzO8gPNAEeCovO8AYZymZQ" name="control" visibility="public" type="_omxU4PNAEeCovO8AYZymZQ" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_N-OI8PNAEeCovO8AYZymZQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_N-PXEPNAEeCovO8AYZymZQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_N-RzUPNAEeCovO8AYZymZQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_k-OpoPN8EeCovO8AYZymZQ" name="events" visibility="public" type="_WkkjoPNUEeCovO8AYZymZQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mr7hkPN8EeCovO8AYZymZQ" value="20"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mr-k4PN8EeCovO8AYZymZQ" value="20"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_msGgsPN8EeCovO8AYZymZQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="__a1A0PQXEeCovO8AYZymZQ" name="m_size" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A1N7MPQYEeCovO8AYZymZQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A1OiQPQYEeCovO8AYZymZQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_A1QXcPQYEeCovO8AYZymZQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_KnS5QPQYEeCovO8AYZymZQ" name="m_cond" visibility="public">
+ <type xmi:type="uml:Class" href="pathmap://QML_CORE/osal.uml#_QWlVgPRTEeCUGrV0Hl4JwQ"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KyZ9EPQYEeCovO8AYZymZQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KyakIPQYEeCovO8AYZymZQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_KydncPQYEeCovO8AYZymZQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Ig_MUCSlEeG6GJ4vU06VYQ" name="ID_TIMEOUT" isStatic="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IjAlkCSlEeG6GJ4vU06VYQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IjCawCSlEeG6GJ4vU06VYQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_SjUM4CSlEeG6GJ4vU06VYQ" name="" value="-1"/>
+ </ownedAttribute>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_mI0xEPQXEeCovO8AYZymZQ" name="derived realization of IPoolControl" client="_JRmo0PNAEeCovO8AYZymZQ" supplier="_omxU4PNAEeCovO8AYZymZQ" contract="_omxU4PNAEeCovO8AYZymZQ"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_2HjeoPQXEeCovO8AYZymZQ" name="writeEvent" specification="_f1HmEPQREeCovO8AYZymZQ0">
+ <language>C/C++</language>
+ <body>events[0] = event;
+m_size = 1;
+m_cond.signal();
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_5Sw2YPQXEeCovO8AYZymZQ" name="size" specification="_FBMo4PQXEeCovO8AYZymZQ0">
+ <language>C/C++</language>
+ <body>return m_size;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_9xRCAPQXEeCovO8AYZymZQ" name="readEvent" specification="_tK0poPQWEeCovO8AYZymZQ0">
+ <language>C/C++</language>
+ <body>OS_AL::Time::TimeVal wakeup = OS_AL::Time::TimeVal::current();
+wakeup += timeout;
+int retCode = m_cond.waitUpto (wakeup);
+if (retCode == ETIMEDOUT) {
+ CallEvent_ event;
+ event.operationID = ID_TIMEOUT;
+ return event;
+}
+m_size = 0;
+return events[0];</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_JoG14PRUEeCKVJwdD4MMsg" name="EventPool" specification="_lrF08PRTEeCUGrV0Hl4JwQ">
+ <language>C/C++</language>
+ <body>m_cond.lock();</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_tK0poPQWEeCovO8AYZymZQ0" name="readEvent" method="_9xRCAPQXEeCovO8AYZymZQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_HUTnoCVyEeGaL60JjVj19Q" name="timeout">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HUWq8CVyEeGaL60JjVj19Q" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HUXSACVyEeGaL60JjVj19Q" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_HUZHMCVyEeGaL60JjVj19Q" type="_WkkjoPNUEeCovO8AYZymZQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HUbjcCVyEeGaL60JjVj19Q" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HUcxkCVyEeGaL60JjVj19Q" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_FBMo4PQXEeCovO8AYZymZQ0" name="size" method="_5Sw2YPQXEeCovO8AYZymZQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_mKtAYPQXEeCovO8AYZymZQ" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mKvcoPQXEeCovO8AYZymZQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mKwqwPQXEeCovO8AYZymZQ" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_f1HmEPQREeCovO8AYZymZQ0" name="writeEvent" method="_2HjeoPQXEeCovO8AYZymZQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_HRdvACVyEeGaL60JjVj19Q" name="event" type="_WkkjoPNUEeCovO8AYZymZQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HUNhACVyEeGaL60JjVj19Q" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HUOvICVyEeGaL60JjVj19Q" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_lrF08PRTEeCUGrV0Hl4JwQ" name="EventPool" method="_JoG14PRUEeCKVJwdD4MMsg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_elkpwPQREeCovO8AYZymZQ" name="IWriteEvent">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_f1HmEPQREeCovO8AYZymZQ" name="writeEvent" visibility="public" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_wAdzUPQREeCovO8AYZymZQ">
+ <body>&lt;&lt;TextualRepresentation>>public abstract writeEvent (in event:BasicCalls::ContainerServices::Event) ;</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="__4qMgCUQEeGXBt65HZzY7g" name="event" type="_WkkjoPNUEeCovO8AYZymZQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__4raoCUQEeGXBt65HZzY7g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__4sowCUQEeGXBt65HZzY7g" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_jQjHAPNUEeCovO8AYZymZQ" name="EventKind">
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_jv4uYPNUEeCovO8AYZymZQ" name="CallEvent"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_kuDm0PNUEeCovO8AYZymZQ" name="SignalEvent"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_ljD8MPNUEeCovO8AYZymZQ" name="TimeEvent"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_omxU4PNAEeCovO8AYZymZQ" name="IPoolControl">
+ <generalization xmi:type="uml:Generalization" xmi:id="_feaHgPQXEeCovO8AYZymZQ" general="_elkpwPQREeCovO8AYZymZQ"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_GwxT0CUREeGXBt65HZzY7g" general="_DY2VwCUREeGXBt65HZzY7g"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_FBMo4PQXEeCovO8AYZymZQ" name="size" visibility="public" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_NaRMoPQXEeCovO8AYZymZQ">
+ <body>&lt;&lt;TextualRepresentation>>public abstract size () : BasicCalls::Long ;</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_RlkvcPQXEeCovO8AYZymZQ" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Rll9kPQXEeCovO8AYZymZQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_RlmkoPQXEeCovO8AYZymZQ" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_DY2VwCUREeGXBt65HZzY7g" name="IReadEvent">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_tK0poPQWEeCovO8AYZymZQ" name="readEvent" visibility="public" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPdjwPQWEeCovO8AYZymZQ">
+ <body>&lt;&lt;TextualRepresentation>>public abstract readEvent(in timeout : BasicCalls::Long) : BasicCalls::ContainerServices::Event ;</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_PnwykPRREeCUGrV0Hl4JwQ" name="timeout">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PofyYPRREeCUGrV0Hl4JwQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Pow4IPRREeCUGrV0Hl4JwQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Po7QMPRREeCUGrV0Hl4JwQ" type="_WkkjoPNUEeCovO8AYZymZQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PpWG8PRREeCUGrV0Hl4JwQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ppl-kPRREeCUGrV0Hl4JwQ" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_5J9coCXQEeGX6PuSE-DJlQ" name="ThreadInterceptor">
+ <generalization xmi:type="uml:Generalization" xmi:id="_9thucCXQEeGX6PuSE-DJlQ" general="_SiY_AP-EEd6628OhKk_dpg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_9V8OQCjYEeGFbebITJYb9g" clientDependency="_F9_-UCjbEeGFbebITJYb9g _SXkHQCo0EeGxrprK9wB9iA" name="PeriodicTimer">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_zLeSkCnOEeGxrprK9wB9iA" annotatedElement="_tmNeoCjbEeGFbebITJYb9g">
+ <body>The period length of the perdioci timer in ticks. Currently, a tick corresponds to 1 ms (simulation time in the underlying OS abstraction layer). It is planned to support VSL expressions, i.e. a value/unit pair.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_Y6lPACjZEeGFbebITJYb9g" general="_-WNegNtxEd6nqsBVkgJEEA"/>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_ATRiECjZEeGFbebITJYb9g" name="tick" visibility="public" aggregation="composite">
+ <type xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_Xb-y0AweEd6it_RkGhz_AA"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_E3y2ICjZEeGFbebITJYb9g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_E30EQCjZEeGFbebITJYb9g" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_E33HkCjZEeGFbebITJYb9g">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_tmNeoCjbEeGFbebITJYb9g" name="periodLength" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tmmgMCjbEeGFbebITJYb9g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tmnHQCjbEeGFbebITJYb9g" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_w262ACnOEeGxrprK9wB9iA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_F9_-UCjbEeGFbebITJYb9g" name="derived realization of ILifeCycle" client="_9V8OQCjYEeGFbebITJYb9g">
+ <supplier xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ <contract xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ </interfaceRealization>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_RMkvkCjbEeGFbebITJYb9g" name="activate" specification="_F-cDMCjbEeGFbebITJYb9g">
+ <language>C/C++</language>
+ <body>OS_AL::Time::Timer timer;
+OS_AL::Time::TimeVal time = OS_AL::Time::TimeVal::current();
+OS_AL::Time::TimeVal period(periodLength);
+for (;;) {
+ tick->tick();
+ time += period;
+ timer.wakeUp(time);
+}</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_F-cDMCjbEeGFbebITJYb9g" name="activate" method="_RMkvkCjbEeGFbebITJYb9g"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_F-iJ0CjbEeGFbebITJYb9g" name="deactivate"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_1sCBICjZEeGFbebITJYb9g" name="PeriodicTimerRule">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_6yVMkCjZEeGFbebITJYb9g" name="timer" visibility="public" type="_9V8OQCjYEeGFbebITJYb9g">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_54aFgCjaEeGFbebITJYb9g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_54bToCjaEeGFbebITJYb9g" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_54eW8CjaEeGFbebITJYb9g">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_-X6zMCjZEeGFbebITJYb9g" name="PeriodicTimerWithThread">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_ARs_UCjaEeGFbebITJYb9g" name="timer" visibility="public" type="_9V8OQCjYEeGFbebITJYb9g" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_k_FtQCjaEeGFbebITJYb9g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_k_G7YCjaEeGFbebITJYb9g" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_k_J-sCjaEeGFbebITJYb9g">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_RMqEkCjaEeGFbebITJYb9g" name="thread" visibility="public" type="_SiY_AP-EEd6628OhKk_dpg" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j8bWYCjaEeGFbebITJYb9g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j8ckgCjaEeGFbebITJYb9g" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_j8eZsCjaEeGFbebITJYb9g">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_3NSGwCkAEeGDDbdzqSb4UA" name="tick" visibility="public" aggregation="composite">
+ <type xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_Xb-y0AweEd6it_RkGhz_AA"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_30IrYCkAEeGDDbdzqSb4UA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_30LusCkAEeGDDbdzqSb4UA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_30QnMCkAEeGDDbdzqSb4UA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedConnector xmi:type="uml:Connector" xmi:id="_iDCL0CjaEeGFbebITJYb9g" name="Connector1">
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_iDCy4CjaEeGFbebITJYb9g" partWithPort="_RMqEkCjaEeGFbebITJYb9g" role="_ZjdOAP-EEd6628OhKk_dpg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iDCy4ijaEeGFbebITJYb9g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iDCy4SjaEeGFbebITJYb9g" value="1"/>
+ </end>
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_iDCy4yjaEeGFbebITJYb9g" partWithPort="_ARs_UCjaEeGFbebITJYb9g" role="__SLXgNtxEd6nqsBVkgJEEA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iDCy5SjaEeGFbebITJYb9g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iDCy5CjaEeGFbebITJYb9g" value="1"/>
+ </end>
+ </ownedConnector>
+ <ownedConnector xmi:type="uml:Connector" xmi:id="_84IJsCkAEeGDDbdzqSb4UA" name="Connector2">
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_84JX0CkAEeGDDbdzqSb4UA" partWithPort="_ARs_UCjaEeGFbebITJYb9g" role="_ATRiECjZEeGFbebITJYb9g">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_84JX0ikAEeGDDbdzqSb4UA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_84JX0SkAEeGDDbdzqSb4UA" value="1"/>
+ </end>
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_84L0ECkAEeGDDbdzqSb4UA" role="_3NSGwCkAEeGDDbdzqSb4UA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_84L0EikAEeGDDbdzqSb4UA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_84L0ESkAEeGDDbdzqSb4UA" value="1"/>
+ </end>
+ </ownedConnector>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_SXkHQCo0EeGxrprK9wB9iA" name="Dependency1" client="_9V8OQCjYEeGFbebITJYb9g">
+ <supplier xmi:type="uml:Class" href="pathmap://QML_CORE/osal.uml#_ETakYDj8Edy0Rd6V_tf1-Q"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_OU5asFaNEeKxltxu9uR4dg" name="ParamValues">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_RW82cFaNEeKxltxu9uR4dg" name="values" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_IYEXcB-VEd6nGq8wpI2tjg"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TAmU0FaNEeKxltxu9uR4dg" value="200"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TAqmQFaNEeKxltxu9uR4dg" value="200"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_TCDGUFaNEeKxltxu9uR4dg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_Y8dPQFaNEeKxltxu9uR4dg" name="QoS">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_fYeQcFaNEeKxltxu9uR4dg" name="deadline" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_-5FTMB6REd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gFUvYFaNEeKxltxu9uR4dg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gFYZwFaNEeKxltxu9uR4dg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_gFfHcFaNEeKxltxu9uR4dg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_oUVYMFaNEeKxltxu9uR4dg" name="period" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_-5FTMB6REd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rUQF8FaNEeKxltxu9uR4dg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rUSiMFaNEeKxltxu9uR4dg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_rW6_cFaNEeKxltxu9uR4dg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xXGZMFaNEeKxltxu9uR4dg" name="readyTime" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_-5FTMB6REd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_yjbCYFaNEeKxltxu9uR4dg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_yjcQgFaNEeKxltxu9uR4dg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_yjeswFaNEeKxltxu9uR4dg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_-WNegNtxEd6nqsBVkgJEEA" name="LifeCycle" isAbstract="true">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="__SLXgNtxEd6nqsBVkgJEEA" name="lc" aggregation="composite">
+ <type xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_57__MCS-Ed-A_I32T0fkaA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_58tJ0CS-Ed-A_I32T0fkaA" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_y4qB4ARJEd--t-uhRn9OBA" name="containerRules">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_q-kFUMTJEd-cLazKlAeYsQ" annotatedElement="_14WtMARJEd--t-uhRn9OBA">
+ <body>This rule adds an interceptor for the lifecycle (lc) port. It will use the Thread implementation that executes the activate method in a new thread of a given priority (property of the interceptor implementation)</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_H0IrsDbgEeGdqp2YT1LwWw" annotatedElement="_1sCBICjZEeGFbebITJYb9g">
+ <body>Adds a periodic timer to the container</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_14WtMARJEd--t-uhRn9OBA" name="runStartThread">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_mvN04PTWEeCn1-FCrfecFg" name="start" visibility="public" type="_5J9coCXQEeGX6PuSE-DJlQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nPVfYPTWEeCn1-FCrfecFg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nPXUkPTWEeCn1-FCrfecFg" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="__4GvgPQTEeCovO8AYZymZQ" name="AddEventPool"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_wSPIcF0NEd-12d_h0i1xhQ" name="deployment">
+ <packagedElement xmi:type="uml:Package" xmi:id="_dKFEcCp9EeG1Y7BvjQ0T-w" name="operatingSystems">
+ <packagedElement xmi:type="uml:Class" xmi:id="_17yx8F0NEd-12d_h0i1xhQ" name="vxWorks"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_zVs5cF0NEd-12d_h0i1xhQ" name="Linux"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_4RuHgF0NEd-12d_h0i1xhQ" name="ose/ck"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="__1uEcF0NEd-12d_h0i1xhQ" name="OSEK"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_onKy0Cp9EeG1Y7BvjQ0T-w" name="Cygwin"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_f2AfMCp9EeG1Y7BvjQ0T-w" name="architectures">
+ <packagedElement xmi:type="uml:Class" xmi:id="_PFcW8F0OEd-12d_h0i1xhQ" name="GenericPowerPC"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_CxQBcF0OEd-12d_h0i1xhQ" name="StandardPC"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_KjufQF0OEd-12d_h0i1xhQ" name="GenericARM7"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_uFRRUH7dEd-FNNgSS03RxQ" name="configOptions">
+ <packagedElement xmi:type="uml:Class" xmi:id="_29YhgH7dEd-FNNgSS03RxQ" name="Distribution">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_INNDgH7eEd-FNNgSS03RxQ">
+ <body>Use for distributed applications</body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_3myD0H7dEd-FNNgSS03RxQ" name="Debug">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_9u2OQH7dEd-FNNgSS03RxQ">
+ <body>Use for debugging in general</body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_7JeHcH7dEd-FNNgSS03RxQ" name="Trace">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_MzHesH7eEd-FNNgSS03RxQ">
+ <body>Use for tracing.</body>
+ </ownedComment>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_I19MANYGEd-CgJIavLpOxQ" name="pthread">
+ <packagedElement xmi:type="uml:Class" xmi:id="_ea234NYGEd-CgJIavLpOxQ" name="pthread"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_m7SIwOUYEd-P08Bciq_LqQ" name="perClass">
+ <ownedTemplateSignature xmi:type="uml:TemplateSignature" xmi:id="_rNm5kOUYEd-P08Bciq_LqQ" parameter="_wfwIoOUYEd-P08Bciq_LqQ">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_wfwIoOUYEd-P08Bciq_LqQ" parameteredElement="_6uRBMOuqEeCTfOY57pgE3w">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_6uRBMOuqEeCTfOY57pgE3w" name="T" templateParameter="_wfwIoOUYEd-P08Bciq_LqQ"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_QQPDUCQeEeGj_4swHBbKwg" name="PortIDs">
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_QQPDUSQeEeGj_4swHBbKwg" name="PORTID_[name/]"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_RPCMoOxIEd-2rr_yAeKkjQ" name="methodCall_comp">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_q1w5MK8qEeCXIcykFPsB8Q" annotatedElement="_RPCMoOxIEd-2rr_yAeKkjQ">
+ <body>Elements in this package depend not only on the Interface I (which is a non-owned template parameter taken from the methodCall signature), but also on a class parameter T, which is bound to the component within a container binding.
+Be aware that the number of instantiated template packages will be considerably larger compared to a dependency of the interface only</body>
+ </ownedComment>
+ <ownedTemplateSignature xmi:type="uml:TemplateSignature" xmi:id="_ewC6kOxIEd-2rr_yAeKkjQ" parameter="_WzWVUPfBEd2TbIfwytOyPA _QBCTAOxJEd-2rr_yAeKkjQ">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_QBCTAOxJEd-2rr_yAeKkjQ" parameteredElement="_zILRsPPlEd-BP4i7K5Y1eA">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_zILRsPPlEd-BP4i7K5Y1eA" name="T" templateParameter="_QBCTAOxJEd-2rr_yAeKkjQ"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="__lTvkPN0EeCovO8AYZymZQ" name="methodCall_size">
+ <ownedTemplateSignature xmi:type="uml:TemplateSignature" xmi:id="_EfH-MPN1EeCovO8AYZymZQ" parameter="_WzWVUPfBEd2TbIfwytOyPA _TbLb4PN3EeCovO8AYZymZQ">
+ <ownedParameter xmi:type="uml:TemplateParameter" xmi:id="_TbLb4PN3EeCovO8AYZymZQ" parameteredElement="_VGE3cPN3EeCovO8AYZymZQ">
+ <ownedParameteredElement xmi:type="uml:LiteralInteger" xmi:id="_VGE3cPN3EeCovO8AYZymZQ" name="size" templateParameter="_TbLb4PN3EeCovO8AYZymZQ"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_gEZXADY7EeKvFqG4YPX3sg" name="methodCall_port">
+ <ownedTemplateSignature xmi:type="uml:TemplateSignature" xmi:id="_kCZdoDY7EeKvFqG4YPX3sg" parameter="_WzWVUPfBEd2TbIfwytOyPA _udDzwDY9EeKvFqG4YPX3sg">
+ <ownedParameter xmi:type="uml:ConnectableElementTemplateParameter" xmi:id="_udDzwDY9EeKvFqG4YPX3sg" parameteredElement="_9GMAUDY9EeKvFqG4YPX3sg">
+ <ownedParameteredElement xmi:type="uml:Port" xmi:id="_9GMAUDY9EeKvFqG4YPX3sg" name="P" templateParameter="_udDzwDY9EeKvFqG4YPX3sg"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_O6TiIjLUEd26WNosUASSSw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_O6TiIzLUEd26WNosUASSSw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/StandardL2.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_ugrx4AHIEd6pm-KfUZMnnQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ugztsAHIEd6pm-KfUZMnnQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/C_Cpp/1#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_u03PkFRxEd6GqrP6fkWBoQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_u1sWAFRxEd6GqrP6fkWBoQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/FCM/1#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://FCM_PROFILES/FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
+ </profileApplication>
+ </uml:Model>
+ <FCM:Port xmi:id="_u1uLMFRxEd6GqrP6fkWBoQ" base_Port="_P4xVsNtuEd2eM5kqcby5ZA" kind="_9Fif4FRxEd6GqrP6fkWBoQ"/>
+ <FCM:Port xmi:id="_u1uLMVRxEd6GqrP6fkWBoQ" base_Port="_Qk0jYNtuEd2eM5kqcby5ZA" kind="_wySlkFRxEd6GqrP6fkWBoQ"/>
+ <FCM:Port xmi:id="_u1uLM1RxEd6GqrP6fkWBoQ" base_Port="_rSCxUAytEd6it_RkGhz_AA" kind="_9Fif4FRxEd6GqrP6fkWBoQ"/>
+ <FCM:Port xmi:id="_u1uyQFRxEd6GqrP6fkWBoQ" base_Port="_r5Va0AytEd6it_RkGhz_AA" kind="_wySlkFRxEd6GqrP6fkWBoQ"/>
+ <FCM:PortKind xmi:id="_wySlkFRxEd6GqrP6fkWBoQ" base_Class="_Wtq4sFDlEd6cwecVIgl9nw" providedInterface="_ZzlzMPfBEd2TbIfwytOyPA" providedMappingRule="_nh0TwFdmEd6EBOtlOYpqKw"/>
+ <FCM:PortKind xmi:id="_x5mL4FRxEd6GqrP6fkWBoQ" base_Class="_Wtq4sVDlEd6cwecVIgl9nw" requiredMappingRule="_ZpvdUHU5Ed6R5tffIPrlPg"/>
+ <FCM:PortKind xmi:id="_9Fif4FRxEd6GqrP6fkWBoQ" base_Class="_Wtrfw1DlEd6cwecVIgl9nw" requiredInterface="_ZzlzMPfBEd2TbIfwytOyPA" requiredMappingRule="_hluocFdpEd6EBOtlOYpqKw"/>
+ <FCM:PortKind xmi:id="_pE6GUFR1Ed6GqrP6fkWBoQ" base_Class="_Wtq4slDlEd6cwecVIgl9nw" providedMappingRule="_eKwKYHU5Ed6R5tffIPrlPg"/>
+ <FCM:PortKind xmi:id="_qOK0cFR1Ed6GqrP6fkWBoQ" base_Class="_WtrfwlDlEd6cwecVIgl9nw" requiredMappingRule="_dW32YHU5Ed6R5tffIPrlPg"/>
+ <FCM:InteractionComponent xmi:id="_s8OWIFR1Ed6GqrP6fkWBoQ" base_Class="_KxQBELuXEd2TTr3gJIvazw"/>
+ <FCM:InteractionComponent xmi:id="_vEYVcFR1Ed6GqrP6fkWBoQ" base_Class="_Zx2ZUA1jEd6tvthBDl600Q"/>
+ <FCM:InteractionComponent xmi:id="_wT-8IFR1Ed6GqrP6fkWBoQ" base_Class="_jOU60A1jEd6tvthBDl600Q"/>
+ <l2:ModelLibrary xmi:id="_CQiMQFtQEd6p9KQoJ8hRoA" base_Package="_O6TiIDLUEd26WNosUASSSw"/>
+ <C_Cpp:Include xmi:id="_sJry0JsqEd61Eo3nmu3JhQ" body="BootLoader bootloader;&#xA;&#xA;int main (int argc, char* argv[])&#xA;{&#xA; bootloader.init ();&#xA; return 0;&#xA;}&#xA;" base_class="_1RehUAGpEd6eR-dxi5su4Q"/>
+ <FCM:Port xmi:id="_OfjPwJsrEd61Eo3nmu3JhQ" base_Port="_OfiosJsrEd61Eo3nmu3JhQ" kind="_wySlkFRxEd6GqrP6fkWBoQ"/>
+ <FCM:Port xmi:id="__SL-kNtxEd6nqsBVkgJEEA" base_Port="__SLXgNtxEd6nqsBVkgJEEA" kind="_wySlkFRxEd6GqrP6fkWBoQ"/>
+ <FCM:Port xmi:id="_Zjd1EP-EEd6628OhKk_dpg" base_Port="_ZjdOAP-EEd6628OhKk_dpg" kind="_9Fif4FRxEd6GqrP6fkWBoQ"/>
+ <C_Cpp:Ptr xmi:id="_Aw8hMP-FEd6628OhKk_dpg" base_parameter="_1TXqoP-EEd6628OhKk_dpg"/>
+ <C_Cpp:Ptr xmi:id="_NjCToP-FEd6628OhKk_dpg" base_parameter="_BywjgP-FEd6628OhKk_dpg"/>
+ <FCM:DerivedElement xmi:id="_u9zyYARIEd--t-uhRn9OBA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:InteractionComponent xmi:id="_5hzVkARIEd--t-uhRn9OBA" base_Class="_cxVEsK-iEd6DndT7kDY1-A"/>
+ <FCM:ContainerRule xmi:id="_3Jq5MARLEd-OidZzGKCpzg" base_Class="_14WtMARJEd--t-uhRn9OBA" portSet="__SL-kNtxEd6nqsBVkgJEEA" interceptor="_u9ykQARIEd--t-uhRn9OBA" interceptorImpl="_u9ykQARIEd--t-uhRn9OBA"/>
+ <C_Cpp:Include xmi:id="_Q7TVYBJcEd-QgZm_R1AKbA" body="#include &lt;pthread.h>" base_class="_SiY_AP-EEd6628OhKk_dpg"/>
+ <FCM:Port xmi:id="_WhfjKylYEd-eoo60eNyGlg"/>
+ <FCM:DerivedElement xmi:id="_CvwokClZEd-eoo60eNyGlg">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_FzffUClZEd-eoo60eNyGlg">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_M0_fQClxEd-eoo60eNyGlg">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_TDYesClyEd-eoo60eNyGlg">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_T2uAIClyEd-eoo60eNyGlg">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_W_pf8ClyEd-eoo60eNyGlg">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_egrzAClzEd-eoo60eNyGlg">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:InteractionComponent xmi:id="_efp4QClzEd-eoo60eNyGlg" base_Class="_Whe8EClYEd-eoo60eNyGlg"/>
+ <FCM:DerivedElement xmi:id="_cWdkwCsAEd-uZPFNCty7PQ">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:Port xmi:id="_N0to8Cu4Ed-uZPFNCty7PQ" base_Port="_N0tB4Cu4Ed-uZPFNCty7PQ" kind="_9Fif4FRxEd6GqrP6fkWBoQ"/>
+ <l2:Create xmi:id="_WFy8ECu9Ed-uZPFNCty7PQ" base_BehavioralFeature="_JM4I4Cu9Ed-uZPFNCty7PQ"/>
+ <C_Cpp:External xmi:id="_EbeZ8Cu-Ed-uZPFNCty7PQ" name="semaphore.h" base_class="_BY-fwCnxEd-eoo60eNyGlg"/>
+ <C_Cpp:External xmi:id="_7tUvUCvDEd-uZPFNCty7PQ" name="pthread.h" base_class="_5KatsCvDEd-uZPFNCty7PQ"/>
+ <C_Cpp:Ptr xmi:id="_G6PMUCvHEd-uZPFNCty7PQ" base_parameter="_Dn-xYCvHEd-uZPFNCty7PQ"/>
+ <C_Cpp:Ptr xmi:id="_NPp2QCvHEd-uZPFNCty7PQ" base_parameter="_IdnDkCvHEd-uZPFNCty7PQ"/>
+ <C_Cpp:Const xmi:id="_dtZbECvHEd-uZPFNCty7PQ" base_property="_Xq00oCvHEd-uZPFNCty7PQ"/>
+ <FCM:DerivedElement xmi:id="_uCGF8DAXEd-lz72LqmDbzA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_fYvj8DNZEd-0bO2vHbUkEA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:Template xmi:id="_iOmWwDNZEd-0bO2vHbUkEA" base_Element="_KOvHsPiREd2UhpY2Y3WUyg" kind="LoopOperations" templateParam="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <FCM:Template xmi:id="_qcrLcDNZEd-0bO2vHbUkEA" base_Element="__y0hwJ08Ed6l5bTPBsl00Q" kind="LoopOperations" formalParam="_ZzlzMPfBEd2TbIfwytOyPA" templateParam="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <FCM:DerivedElement xmi:id="_K9PRoDNwEd-1k-POY2IaLg">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_JqAFUD16Ed-Bk-AHd6yyoA" base_Element="_JmxyMD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_JqEWwD16Ed-Bk-AHd6yyoA" base_Element="_JqB6gD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_RTu-gED2Ed-_DOja_sRgWA" base_Element="_JmxyMD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_RUIAEED2Ed-_DOja_sRgWA" base_Element="_JqB6gD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <C_Cpp:Ptr xmi:id="_5048MED6Ed-_DOja_sRgWA" base_property="_2fcqYED6Ed-_DOja_sRgWA"/>
+ <FCM:DerivedElement xmi:id="_xsrykEJFEd-Ps4Bfh0j9LQ" base_Element="_JmxyMD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_xs0VcEJFEd-Ps4Bfh0j9LQ" base_Element="_JqB6gD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_qBaUMFJEEd-OfYmxqPWG5g" base_Element="_JmxyMD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_qBeloFJEEd-OfYmxqPWG5g" base_Element="_JqB6gD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_t--FUF0NEd-12d_h0i1xhQ" base_Element="_JmxyMD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_t_EzAF0NEd-12d_h0i1xhQ" base_Element="_JqB6gD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:OperatingSystem xmi:id="_1eULwF0NEd-12d_h0i1xhQ" base_Class="_zVs5cF0NEd-12d_h0i1xhQ"/>
+ <FCM:OperatingSystem xmi:id="_3MI_gF0NEd-12d_h0i1xhQ" base_Class="_17yx8F0NEd-12d_h0i1xhQ"/>
+ <FCM:OperatingSystem xmi:id="_8h8mkF0NEd-12d_h0i1xhQ" base_Class="_4RuHgF0NEd-12d_h0i1xhQ"/>
+ <FCM:OperatingSystem xmi:id="_BL7pcF0OEd-12d_h0i1xhQ" base_Class="__1uEcF0NEd-12d_h0i1xhQ"/>
+ <FCM:TargetArchitecture xmi:id="_FYOqwF0OEd-12d_h0i1xhQ" base_Class="_CxQBcF0OEd-12d_h0i1xhQ"/>
+ <FCM:TargetArchitecture xmi:id="_W5gJIF0OEd-12d_h0i1xhQ" base_Class="_KjufQF0OEd-12d_h0i1xhQ"/>
+ <FCM:TargetArchitecture xmi:id="_YHIZ4F0OEd-12d_h0i1xhQ" base_Class="_PFcW8F0OEd-12d_h0i1xhQ"/>
+ <FCM:DerivedElement xmi:id="_FWe6IG4sEd-0rs2VEGIwsA" base_Element="_JmxyMD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_FWlAwG4sEd-0rs2VEGIwsA" base_Element="_JqB6gD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_9Kl8IG4-Ed-J1L578xi-WA" base_Element="_JmxyMD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_9K4QAG4-Ed-J1L578xi-WA" base_Element="_JqB6gD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_Si_2kG5fEd-5CZIeuHpHAg" base_Element="_JmxyMD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_SjXqAG5fEd-5CZIeuHpHAg" base_Element="_JqB6gD16Ed-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:ConfigOption xmi:id="_tA2KcH7eEd-FNNgSS03RxQ" base_Class="_3myD0H7dEd-FNNgSS03RxQ"/>
+ <FCM:ConfigOption xmi:id="_t2ziEH7eEd-FNNgSS03RxQ" base_Class="_29YhgH7dEd-FNNgSS03RxQ"/>
+ <FCM:ConfigOption xmi:id="_u6LqoH7eEd-FNNgSS03RxQ" base_Class="_7JeHcH7dEd-FNNgSS03RxQ"/>
+ <FCM:Template xmi:id="_3IqLUKE1Ed-r8p-5QgO3cg" base_Element="_pXzxjkJ1Ed-Ps4Bfh0j9LQ" kind="LoopOperations"/>
+ <FCM:Template xmi:id="_9u11IKE1Ed-r8p-5QgO3cg" base_Element="_2bwsEClzEd-eoo60eNyGlg" kind="LoopOperations"/>
+ <FCM:PortKind xmi:id="_H5-aQLqOEd-SedGzMDDkww" base_Class="_AQZZwLqOEd-SedGzMDDkww"/>
+ <FCM:PortKind xmi:id="_KtgR0LqOEd-SedGzMDDkww" base_Class="__nMrwLqNEd-SedGzMDDkww"/>
+ <FCM:ConfigurationProperty xmi:id="_s0fGMMGJEd-Mveea1W_olA" base_Property="_rVfYoMGJEd-Mveea1W_olA"/>
+ <C_Cpp:ExternLibrary xmi:id="_OQ81ENYGEd-CgJIavLpOxQ" base_Package="_I19MANYGEd-CgJIavLpOxQ">
+ <libs>pthread</libs>
+ </C_Cpp:ExternLibrary>
+ <C_Cpp:External xmi:id="_p8NbMNYGEd-CgJIavLpOxQ" name="pthread.h" base_class="_ea234NYGEd-CgJIavLpOxQ"/>
+ <FCM:InteractionComponent xmi:id="_8BUh8NdwEd-ZnqCk2P2ZKg" base_Class="_3itBkNdwEd-ZnqCk2P2ZKg"/>
+ <FCM:Template xmi:id="_CTIeQNdxEd-ZnqCk2P2ZKg" base_Element="_3itBoddwEd-ZnqCk2P2ZKg" kind="LoopOperations"/>
+ <C_Cpp:Typedef xmi:id="_68Aa4No9Ed-wvpj-p-V_QQ" definition="union {&#xA;&lt;%for (ownedOperations) {%>&#xA;struct Op_&lt;%name%> {&#xA;&lt;%for (ownedParameters) {%>&#xA;&lt;%cppType%> &lt;%name%>;&#xA;&lt;%}%>&#xA;} op_&lt;%name%>;&#xA;&lt;%}%>&#xA;};" base_primitivetype="_xOqL0No9Ed-wvpj-p-V_QQ"/>
+ <FCM:InteractionComponent xmi:id="_xaHRQDJKEeCAhMtIsY9HwA" base_Class="_pXzKcEJ1Ed-Ps4Bfh0j9LQ"/>
+ <FCM:Port xmi:id="_wz4-ULaaEeCj_-LEBuGpmA" base_Port="__SLXgNtxEd6nqsBVkgJEEA"/>
+ <FCM:Port xmi:id="_xdIvoLaaEeCj_-LEBuGpmA" base_Port="_OfiosJsrEd61Eo3nmu3JhQ"/>
+ <FCM:Port xmi:id="_MzPjkPNAEeCovO8AYZymZQ" base_Port="_MzO8gPNAEeCovO8AYZymZQ" kind="_wySlkFRxEd6GqrP6fkWBoQ"/>
+ <FCM:Template xmi:id="_c_dkcPNJEeCovO8AYZymZQ" base_Element="_aGt1sPNJEeCovO8AYZymZQ" kind="LoopOperations"/>
+ <FCM:ImplementationProperties xmi:id="_WIe68PQMEeCovO8AYZymZQ" base_Class="__uJRYPNGEeCovO8AYZymZQ"/>
+ <FCM:ContainerRule xmi:id="_F1wZsPQUEeCovO8AYZymZQ" base_Class="__4GvgPQTEeCovO8AYZymZQ" extensionKind="Aggregation" extension="_WhKAAPQUEeCovO8AYZymZQ"/>
+ <FCM:DerivedElement xmi:id="_mKpWAPQXEeCovO8AYZymZQ" base_Element="_tK0poPQWEeCovO8AYZymZQ0" source="_tK0poPQWEeCovO8AYZymZQ"/>
+ <FCM:DerivedElement xmi:id="_mK0VIPQXEeCovO8AYZymZQ" base_Element="_FBMo4PQXEeCovO8AYZymZQ0" source="_FBMo4PQXEeCovO8AYZymZQ"/>
+ <FCM:DerivedElement xmi:id="_mK7C0PQXEeCovO8AYZymZQ" base_Element="_f1HmEPQREeCovO8AYZymZQ0" source="_f1HmEPQREeCovO8AYZymZQ"/>
+ <l2:Create xmi:id="_o4VNAPRTEeCUGrV0Hl4JwQ" base_BehavioralFeature="_lrF08PRTEeCUGrV0Hl4JwQ"/>
+ <FCM:InterceptionRule xmi:id="_qlcF8AJzEeG0Lb1KYG16fA" interceptionSet="__SLXgNtxEd6nqsBVkgJEEA" base_Property="_mvN04PTWEeCn1-FCrfecFg" portSet="__SL-kNtxEd6nqsBVkgJEEA"/>
+ <FCM:Template xmi:id="_QUZxoCQeEeGj_4swHBbKwg" base_Element="_QQPDUSQeEeGj_4swHBbKwg" kind="LoopPorts"/>
+ <C_Cpp:Const xmi:id="_MGjk0CSlEeG6GJ4vU06VYQ" base_property="_Ig_MUCSlEeG6GJ4vU06VYQ"/>
+ <C_Cpp:Include xmi:id="_Yx49gCaeEeG4fZdVXNtoOQ" body="#include &lt;errno.h>" base_class="_JRmo0PNAEeCovO8AYZymZQ"/>
+ <FCM:InteractionComponent xmi:id="_OXit8CfwEeG6iME5Q8XPKw" base_Class="_5J9coCXQEeGX6PuSE-DJlQ"/>
+ <FCM:Port xmi:id="_ATRiESjZEeGFbebITJYb9g" base_Port="_ATRiECjZEeGFbebITJYb9g" kind="_9Fif4FRxEd6GqrP6fkWBoQ"/>
+ <FCM:ContainerRule xmi:id="_MS45QCjaEeGFbebITJYb9g" base_Class="_1sCBICjZEeGFbebITJYb9g"/>
+ <FCM:DerivedElement xmi:id="_F-g7sCjbEeGFbebITJYb9g" base_Element="_F-cDMCjbEeGFbebITJYb9g">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_F-l0MCjbEeGFbebITJYb9g" base_Element="_F-iJ0CjbEeGFbebITJYb9g">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:ConfigurationProperty xmi:id="_zVumMCjbEeGFbebITJYb9g" base_Property="_tmNeoCjbEeGFbebITJYb9g"/>
+ <FCM:Port xmi:id="_3NSGwSkAEeGDDbdzqSb4UA" base_Port="_3NSGwCkAEeGDDbdzqSb4UA" kind="_9Fif4FRxEd6GqrP6fkWBoQ"/>
+ <FCM:OperatingSystem xmi:id="_r4nVcCp9EeG1Y7BvjQ0T-w" base_Class="_onKy0Cp9EeG1Y7BvjQ0T-w"/>
+ <FCM:Port xmi:id="_-nlmgENqEeGoAtSeIK7WLg" base_Port="_-nk_cENqEeGoAtSeIK7WLg" kind="_qOK0cFR1Ed6GqrP6fkWBoQ"/>
+ <FCM:Port xmi:id="_9gJEAENvEeGoAtSeIK7WLg" base_Port="_9gIc8ENvEeGoAtSeIK7WLg" kind="_pE6GUFR1Ed6GqrP6fkWBoQ"/>
+ <FCM:Port xmi:id="_MhIhgENxEeGoAtSeIK7WLg" base_Port="_MhH6cENxEeGoAtSeIK7WLg" kind="_pE6GUFR1Ed6GqrP6fkWBoQ"/>
+ <FCM:Port xmi:id="_Zd6hAENxEeGoAtSeIK7WLg" base_Port="_Zd558ENxEeGoAtSeIK7WLg" kind="_qOK0cFR1Ed6GqrP6fkWBoQ"/>
+ <FCM:Port xmi:id="_i6QeoEN8EeGfhclnRyNzoA" base_Port="_i5SOQEN8EeGfhclnRyNzoA" kind="_qOK0cFR1Ed6GqrP6fkWBoQ"/>
+ <FCM:Port xmi:id="_0KaqgF7pEeGEmrrwB1vhPg" base_Port="_0KY1UF7pEeGEmrrwB1vhPg" kind="_wySlkFRxEd6GqrP6fkWBoQ"/>
+ <FCM:Template xmi:id="_GNBM8F7tEeGEmrrwB1vhPg" base_Element="_ChD4kF7tEeGEmrrwB1vhPg" kind="LoopOperations"/>
+ <FCM:InteractionComponent xmi:id="_UBcmIF7tEeGEmrrwB1vhPg" base_Class="_Mo2kwF7pEeGEmrrwB1vhPg"/>
+ <FCM:InteractionComponent xmi:id="_Z3Zs4F7tEeGEmrrwB1vhPg" base_Class="_TLShkF7qEeGEmrrwB1vhPg"/>
+ <FCM:PortKind xmi:id="_SrCqQC8qEeKx7OxAiA06uw" base_Class="_GjnlcC8qEeKx7OxAiA06uw"/>
+ <C_Cpp:ExternLibrary xmi:id="_xVwkUNqCEeKrRY-H1kHnNA" base_package="_I19MANYGEd-CgJIavLpOxQ">
+ <libs>pthread</libs>
+ <libs>rt</libs>
+ </C_Cpp:ExternLibrary>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/fifo.di b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/fifo.di
new file mode 100644
index 00000000000..169236cea8a
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/fifo.di
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi">
+ <di:SashWindowsMngr>
+ <pageList>
+ <availablePage>
+ <emfPageIdentifier href="fifo.notation#_tANfhSiLEeC_VbmKpDkWDw"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="fifo.notation#_tAH_8CiLEeC_VbmKpDkWDw"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="fifo.notation#_tAH_8iiLEeC_VbmKpDkWDw"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="fifo.notation#_OBa8YK8wEeCXIcykFPsB8Q"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="fifo.notation#_A5pi4K_2EeC6ALhykKLu_g"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="fifo.notation#_sVGAsP3IEeC1YdT2qA0bjA"/>
+ </availablePage>
+ </pageList>
+ <sashModel currentSelection="/0/@sashModel/@windows.0/@children.0">
+ <windows>
+ <children xsi:type="di:TabFolder">
+ <children>
+ <emfPageIdentifier href="fifo.notation#_tAH_8CiLEeC_VbmKpDkWDw"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="fifo.notation#_tAH_8iiLEeC_VbmKpDkWDw"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="fifo.notation#_tANfhSiLEeC_VbmKpDkWDw"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="fifo.notation#_OBa8YK8wEeCXIcykFPsB8Q"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="fifo.notation#_A5pi4K_2EeC6ALhykKLu_g"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="fifo.notation#_sVGAsP3IEeC1YdT2qA0bjA"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+ </di:SashWindowsMngr>
+ <di:TabFolder/>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/fifo.notation b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/fifo.notation
new file mode 100644
index 00000000000..d1c8d75a52d
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/fifo.notation
@@ -0,0 +1,1865 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_tAH_8CiLEeC_VbmKpDkWDw" type="PapyrusUMLClassDiagram" name="DefaultDiagram" measurementUnit="Pixel">
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_tAH_8SiLEeC_VbmKpDkWDw"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_W71qUGzsEeWdOZKmOtT48A" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Model" href="fifo.uml#_ePwqkHLmEd6R5tffIPrlPg"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_tAH_8iiLEeC_VbmKpDkWDw" type="CompositeStructure" name="Composite diagram of DataExchange" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_tAH_8yiLEeC_VbmKpDkWDw" type="2073">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tAH_9CiLEeC_VbmKpDkWDw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tAInACiLEeC_VbmKpDkWDw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tAInASiLEeC_VbmKpDkWDw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tAInAiiLEeC_VbmKpDkWDw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tAInAyiLEeC_VbmKpDkWDw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tAInBCiLEeC_VbmKpDkWDw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tAInBSiLEeC_VbmKpDkWDw" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tAInBiiLEeC_VbmKpDkWDw" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tAInByiLEeC_VbmKpDkWDw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tAInCCiLEeC_VbmKpDkWDw" type="3069">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tAInCSiLEeC_VbmKpDkWDw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tAInCiiLEeC_VbmKpDkWDw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tAInCyiLEeC_VbmKpDkWDw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tAInDCiLEeC_VbmKpDkWDw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tAInDSiLEeC_VbmKpDkWDw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tAInDiiLEeC_VbmKpDkWDw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tAInDyiLEeC_VbmKpDkWDw" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SPljQDFrEeCz5-DK9j5azg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Up7EAEsREeKoOoLe6CnFrA" key="CustomAppearance_MaskValue" value="12"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tAInECiLEeC_VbmKpDkWDw" x="19"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tAInESiLEeC_VbmKpDkWDw" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tAInEiiLEeC_VbmKpDkWDw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="fifo.uml#_xHb7MHLmEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tAInEyiLEeC_VbmKpDkWDw" x="-10" y="54" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_KnLAYDFrEeCz5-DK9j5azg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KnLncDFrEeCz5-DK9j5azg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KnLncTFrEeCz5-DK9j5azg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KnMOgDFrEeCz5-DK9j5azg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KnMOgTFrEeCz5-DK9j5azg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KnMOgjFrEeCz5-DK9j5azg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KnMOgzFrEeCz5-DK9j5azg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_KnMOhDFrEeCz5-DK9j5azg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SvsmsDFrEeCz5-DK9j5azg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VRzjYEsREeKoOoLe6CnFrA" key="CustomAppearance_MaskValue" value="12"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KnMOhTFrEeCz5-DK9j5azg" x="-45"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_KnMOhjFrEeCz5-DK9j5azg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KnMOhzFrEeCz5-DK9j5azg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="fifo.uml#_xcu1wHLmEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KnLAYTFrEeCz5-DK9j5azg" x="189" y="54"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_W90AQGzsEeWdOZKmOtT48A" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_W90AQWzsEeWdOZKmOtT48A" y="5"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_tAKcMCiLEeC_VbmKpDkWDw"/>
+ <element xmi:type="uml:Class" href="fifo.uml#_wh_EwHLmEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tAKcMSiLEeC_VbmKpDkWDw" x="315" y="234" width="199" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tAKcMiiLEeC_VbmKpDkWDw" type="2073">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tAKcMyiLEeC_VbmKpDkWDw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tAKcNCiLEeC_VbmKpDkWDw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tAKcNSiLEeC_VbmKpDkWDw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tAKcNiiLEeC_VbmKpDkWDw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tAKcNyiLEeC_VbmKpDkWDw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tAKcOCiLEeC_VbmKpDkWDw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tAKcOSiLEeC_VbmKpDkWDw" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tAKcOiiLEeC_VbmKpDkWDw" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tAKcOyiLEeC_VbmKpDkWDw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tAKcPCiLEeC_VbmKpDkWDw" type="3069">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tAKcPSiLEeC_VbmKpDkWDw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tAKcPiiLEeC_VbmKpDkWDw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tAKcPyiLEeC_VbmKpDkWDw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tALDQCiLEeC_VbmKpDkWDw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tALDQSiLEeC_VbmKpDkWDw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tALDQiiLEeC_VbmKpDkWDw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tALDQyiLEeC_VbmKpDkWDw" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Rf_5YDFrEeCz5-DK9j5azg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WfamAEsREeKoOoLe6CnFrA" key="CustomAppearance_MaskValue" value="12"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tALDRCiLEeC_VbmKpDkWDw" x="28" y="2"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tALDRSiLEeC_VbmKpDkWDw" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tALDRiiLEeC_VbmKpDkWDw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="fifo.uml#_xHb7MHLmEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tALDRyiLEeC_VbmKpDkWDw" x="-10" y="52" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ItWYADFrEeCz5-DK9j5azg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ItYNMDFrEeCz5-DK9j5azg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ItYNMTFrEeCz5-DK9j5azg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ItY0QDFrEeCz5-DK9j5azg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ItY0QTFrEeCz5-DK9j5azg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ItZbUDFrEeCz5-DK9j5azg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ItZbUTFrEeCz5-DK9j5azg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ItZbUjFrEeCz5-DK9j5azg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q-OpEDFrEeCz5-DK9j5azg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V6fUAEsREeKoOoLe6CnFrA" key="CustomAppearance_MaskValue" value="12"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ItZbUzFrEeCz5-DK9j5azg" x="-54" y="2"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ItZbVDFrEeCz5-DK9j5azg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ItZbVTFrEeCz5-DK9j5azg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="fifo.uml#_TRsvoHLoEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ItWYATFrEeCz5-DK9j5azg" x="189" y="52"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_W90AQmzsEeWdOZKmOtT48A" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_W90AQ2zsEeWdOZKmOtT48A" y="5"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_tALDSCiLEeC_VbmKpDkWDw"/>
+ <element xmi:type="uml:Class" href="fifo.uml#_zc4voHLmEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tALDSSiLEeC_VbmKpDkWDw" x="72" y="234" width="199" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tALDSiiLEeC_VbmKpDkWDw" type="2073">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tALDSyiLEeC_VbmKpDkWDw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tALDTCiLEeC_VbmKpDkWDw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tALDTSiLEeC_VbmKpDkWDw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tALDTiiLEeC_VbmKpDkWDw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tALDTyiLEeC_VbmKpDkWDw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tALDUCiLEeC_VbmKpDkWDw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tALDUSiLEeC_VbmKpDkWDw" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tALDUiiLEeC_VbmKpDkWDw" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tALDUyiLEeC_VbmKpDkWDw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tALDVCiLEeC_VbmKpDkWDw" type="3069">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tALDVSiLEeC_VbmKpDkWDw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tALDViiLEeC_VbmKpDkWDw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tALDVyiLEeC_VbmKpDkWDw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tALDWCiLEeC_VbmKpDkWDw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tALDWSiLEeC_VbmKpDkWDw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tALDWiiLEeC_VbmKpDkWDw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tALDWyiLEeC_VbmKpDkWDw" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TPGEwEsREeKoOoLe6CnFrA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TZMb8EsREeKoOoLe6CnFrA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tALDXCiLEeC_VbmKpDkWDw" x="19" y="1"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tALDXSiLEeC_VbmKpDkWDw" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tALDXiiLEeC_VbmKpDkWDw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="fifo.uml#_xHb7MHLmEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tALqUCiLEeC_VbmKpDkWDw" x="-10" y="53" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_W90ARGzsEeWdOZKmOtT48A" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_W90ARWzsEeWdOZKmOtT48A" y="5"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_tALqUSiLEeC_VbmKpDkWDw"/>
+ <element xmi:type="uml:Class" href="fifo.uml#_unqQoHLnEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tALqUiiLEeC_VbmKpDkWDw" x="225" y="36" width="145" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tALqUyiLEeC_VbmKpDkWDw" type="2073">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tALqVCiLEeC_VbmKpDkWDw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tALqVSiLEeC_VbmKpDkWDw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tALqViiLEeC_VbmKpDkWDw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tALqVyiLEeC_VbmKpDkWDw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tALqWCiLEeC_VbmKpDkWDw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tALqWSiLEeC_VbmKpDkWDw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tALqWiiLEeC_VbmKpDkWDw" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tALqWyiLEeC_VbmKpDkWDw" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tALqXCiLEeC_VbmKpDkWDw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tALqXSiLEeC_VbmKpDkWDw" type="3069">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tALqXiiLEeC_VbmKpDkWDw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tALqXyiLEeC_VbmKpDkWDw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tALqYCiLEeC_VbmKpDkWDw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tALqYSiLEeC_VbmKpDkWDw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tALqYiiLEeC_VbmKpDkWDw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tALqYyiLEeC_VbmKpDkWDw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tALqZCiLEeC_VbmKpDkWDw" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_T5gTsEsREeKoOoLe6CnFrA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UAbbEEsREeKoOoLe6CnFrA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tALqZSiLEeC_VbmKpDkWDw" x="-99" y="1"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tALqZiiLEeC_VbmKpDkWDw" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tALqZyiLEeC_VbmKpDkWDw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="fifo.uml#_xcu1wHLmEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tALqaCiLEeC_VbmKpDkWDw" x="108" y="54" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_W90ARmzsEeWdOZKmOtT48A" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_W90AR2zsEeWdOZKmOtT48A" y="5"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_tALqaSiLEeC_VbmKpDkWDw"/>
+ <element xmi:type="uml:Class" href="fifo.uml#_wtZ1IHLnEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tALqaiiLEeC_VbmKpDkWDw" x="396" y="35" width="118" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tALqayiLEeC_VbmKpDkWDw" type="2073">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tALqbCiLEeC_VbmKpDkWDw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tALqbSiLEeC_VbmKpDkWDw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tAMRYCiLEeC_VbmKpDkWDw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tAMRYSiLEeC_VbmKpDkWDw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tAMRYiiLEeC_VbmKpDkWDw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tAMRYyiLEeC_VbmKpDkWDw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tAMRZCiLEeC_VbmKpDkWDw" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tAMRZSiLEeC_VbmKpDkWDw" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tAMRZiiLEeC_VbmKpDkWDw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tAMRZyiLEeC_VbmKpDkWDw" type="3069">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tAMRaCiLEeC_VbmKpDkWDw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tAMRaSiLEeC_VbmKpDkWDw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tAMRaiiLEeC_VbmKpDkWDw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tAMRayiLEeC_VbmKpDkWDw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tAMRbCiLEeC_VbmKpDkWDw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tAMRbSiLEeC_VbmKpDkWDw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tAMRbiiLEeC_VbmKpDkWDw" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_STibcEsREeKoOoLe6CnFrA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SrEKoEsREeKoOoLe6CnFrA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tAMRbyiLEeC_VbmKpDkWDw" x="-99" y="1"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tAMRcCiLEeC_VbmKpDkWDw" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tAMRcSiLEeC_VbmKpDkWDw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="fifo.uml#_TRsvoHLoEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tAMRciiLEeC_VbmKpDkWDw" x="90" y="52" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_W90ASGzsEeWdOZKmOtT48A" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_W90ASWzsEeWdOZKmOtT48A" y="5"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_tAMRcyiLEeC_VbmKpDkWDw"/>
+ <element xmi:type="uml:Class" href="fifo.uml#_yqYfMHLnEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tAMRdCiLEeC_VbmKpDkWDw" x="72" y="37" width="100" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gLeHIC_fEeKl_vDGXh-OPw" type="2073" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gLgjYC_fEeKl_vDGXh-OPw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gLgjYS_fEeKl_vDGXh-OPw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gLgjYi_fEeKl_vDGXh-OPw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gLgjYy_fEeKl_vDGXh-OPw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gLhKcC_fEeKl_vDGXh-OPw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gLhKcS_fEeKl_vDGXh-OPw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gLhKci_fEeKl_vDGXh-OPw" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gLhKcy_fEeKl_vDGXh-OPw" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gLhKdC_fEeKl_vDGXh-OPw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gLhKdS_fEeKl_vDGXh-OPw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_h-mRoC_fEeKl_vDGXh-OPw" type="3069" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_h-m4sC_fEeKl_vDGXh-OPw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_h-m4sS_fEeKl_vDGXh-OPw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_h-nfwC_fEeKl_vDGXh-OPw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_h-nfwS_fEeKl_vDGXh-OPw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_h-nfwi_fEeKl_vDGXh-OPw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_h-nfwy_fEeKl_vDGXh-OPw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_h-nfxC_fEeKl_vDGXh-OPw" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CUpy8C_gEeKl_vDGXh-OPw" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_becEwEsREeKoOoLe6CnFrA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_h-nfxS_fEeKl_vDGXh-OPw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_h-nfxi_fEeKl_vDGXh-OPw" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_h-nfxy_fEeKl_vDGXh-OPw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="fifo.uml#_h9XikC_fEeKl_vDGXh-OPw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_h-mRoS_fEeKl_vDGXh-OPw" x="167" y="58" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jadysC_fEeKl_vDGXh-OPw" type="3069" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jadysi_fEeKl_vDGXh-OPw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jaeZwC_fEeKl_vDGXh-OPw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jaeZwS_fEeKl_vDGXh-OPw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jaeZwi_fEeKl_vDGXh-OPw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jaeZwy_fEeKl_vDGXh-OPw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jaeZxC_fEeKl_vDGXh-OPw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jaeZxS_fEeKl_vDGXh-OPw" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_B_YtkC_gEeKl_vDGXh-OPw" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cCZGYEsREeKoOoLe6CnFrA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jaeZxi_fEeKl_vDGXh-OPw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jaeZxy_fEeKl_vDGXh-OPw" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jaeZyC_fEeKl_vDGXh-OPw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="fifo.uml#_jaXsEC_fEeKl_vDGXh-OPw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jadysS_fEeKl_vDGXh-OPw" y="52" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_W90ASmzsEeWdOZKmOtT48A" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_W90AS2zsEeWdOZKmOtT48A" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="fifo.uml#_gKLGoC_fEeKl_vDGXh-OPw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gLeHIS_fEeKl_vDGXh-OPw" x="77" y="390" width="167" height="97"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XAfg0GzsEeWdOZKmOtT48A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XAfg0WzsEeWdOZKmOtT48A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XAfg02zsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="fifo.uml#_wh_EwHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XAfg0mzsEeWdOZKmOtT48A" x="515" y="234"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XBBsUGzsEeWdOZKmOtT48A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XBBsUWzsEeWdOZKmOtT48A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XBBsU2zsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="fifo.uml#_xHb7MHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XBBsUmzsEeWdOZKmOtT48A" x="190" y="54"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XBYRoGzsEeWdOZKmOtT48A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XBYRoWzsEeWdOZKmOtT48A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XBYRo2zsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="fifo.uml#_xcu1wHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XBYRomzsEeWdOZKmOtT48A" x="389" y="54"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XBzIYGzsEeWdOZKmOtT48A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XBzIYWzsEeWdOZKmOtT48A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XBzIY2zsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="fifo.uml#_zc4voHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XBzIYmzsEeWdOZKmOtT48A" x="272" y="234"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XCE1MGzsEeWdOZKmOtT48A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XCE1MWzsEeWdOZKmOtT48A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XCE1M2zsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="fifo.uml#_xHb7MHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XCE1MmzsEeWdOZKmOtT48A" x="190" y="52"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XCdPsGzsEeWdOZKmOtT48A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XCdPsWzsEeWdOZKmOtT48A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XCdPs2zsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="fifo.uml#_TRsvoHLoEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XCdPsmzsEeWdOZKmOtT48A" x="389" y="52"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XCym4GzsEeWdOZKmOtT48A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XCym4WzsEeWdOZKmOtT48A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XCym42zsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="fifo.uml#_xHb7MHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XCym4mzsEeWdOZKmOtT48A" x="190" y="53"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XDApVmzsEeWdOZKmOtT48A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XDApV2zsEeWdOZKmOtT48A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XDApWWzsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="fifo.uml#_xcu1wHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XDApWGzsEeWdOZKmOtT48A" x="308" y="54"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XDRIAGzsEeWdOZKmOtT48A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XDRIAWzsEeWdOZKmOtT48A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XDRIA2zsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="fifo.uml#_TRsvoHLoEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XDRIAmzsEeWdOZKmOtT48A" x="290" y="52"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XDoUYGzsEeWdOZKmOtT48A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XDoUYWzsEeWdOZKmOtT48A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XDoUY2zsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="fifo.uml#_gKLGoC_fEeKl_vDGXh-OPw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XDoUYmzsEeWdOZKmOtT48A" x="277" y="390"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XD3k9mzsEeWdOZKmOtT48A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XD3k92zsEeWdOZKmOtT48A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XD3k-WzsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="fifo.uml#_h9XikC_fEeKl_vDGXh-OPw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XD3k-GzsEeWdOZKmOtT48A" x="287" y="42"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XEFAVmzsEeWdOZKmOtT48A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XEFAV2zsEeWdOZKmOtT48A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XEFAWWzsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="fifo.uml#_jaXsEC_fEeKl_vDGXh-OPw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XEFAWGzsEeWdOZKmOtT48A" x="190" y="42"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_tAMRdSiLEeC_VbmKpDkWDw"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_W90ATGzsEeWdOZKmOtT48A" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="fifo.uml#_qlssgHLmEd6R5tffIPrlPg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_tAMRdiiLEeC_VbmKpDkWDw" type="4015" source="_tAH_8yiLEeC_VbmKpDkWDw" target="_tALDSiiLEeC_VbmKpDkWDw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_tAMRdyiLEeC_VbmKpDkWDw" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tAMReCiLEeC_VbmKpDkWDw" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_tAMReSiLEeC_VbmKpDkWDw"/>
+ <element xmi:type="uml:Generalization" href="fifo.uml#_6zGSwHLnEd6R5tffIPrlPg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_tAM4cCiLEeC_VbmKpDkWDw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tAM4cSiLEeC_VbmKpDkWDw" id="(0.1407035175879397,0.06)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tAM4ciiLEeC_VbmKpDkWDw" id="(0.8440366972477065,0.92)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_tAM4cyiLEeC_VbmKpDkWDw" type="4015" source="_tAH_8yiLEeC_VbmKpDkWDw" target="_tALqUyiLEeC_VbmKpDkWDw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_tAM4dCiLEeC_VbmKpDkWDw" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tAM4dSiLEeC_VbmKpDkWDw" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_tAM4diiLEeC_VbmKpDkWDw"/>
+ <element xmi:type="uml:Generalization" href="fifo.uml#_9mPv0HLnEd6R5tffIPrlPg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_tAM4dyiLEeC_VbmKpDkWDw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__1nYIDvQEeGgAdAmWw4pyQ" id="(0.7386934673366834,0.1)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tAM4eSiLEeC_VbmKpDkWDw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_tAM4eiiLEeC_VbmKpDkWDw" type="4015" source="_tAKcMiiLEeC_VbmKpDkWDw" target="_tALqayiLEeC_VbmKpDkWDw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_tAM4eyiLEeC_VbmKpDkWDw" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tAM4fCiLEeC_VbmKpDkWDw" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_tAM4fSiLEeC_VbmKpDkWDw"/>
+ <element xmi:type="uml:Generalization" href="fifo.uml#_Dc1vwHLoEd6R5tffIPrlPg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_tAM4fiiLEeC_VbmKpDkWDw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tAM4fyiLEeC_VbmKpDkWDw" id="(0.21052631578947367,0.07)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tAM4gCiLEeC_VbmKpDkWDw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_tAM4gSiLEeC_VbmKpDkWDw" type="4015" source="_tAKcMiiLEeC_VbmKpDkWDw" target="_tALDSiiLEeC_VbmKpDkWDw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_tAM4giiLEeC_VbmKpDkWDw" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tAM4gyiLEeC_VbmKpDkWDw" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_tAM4hCiLEeC_VbmKpDkWDw"/>
+ <element xmi:type="uml:Generalization" href="fifo.uml#_ELTYQHLoEd6R5tffIPrlPg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_tAM4hSiLEeC_VbmKpDkWDw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tAM4hiiLEeC_VbmKpDkWDw" id="(0.8994974874371859,0.06)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tAM4hyiLEeC_VbmKpDkWDw" id="(0.19310344827586207,0.96)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XAfg1GzsEeWdOZKmOtT48A" type="StereotypeCommentLink" source="_tAH_8yiLEeC_VbmKpDkWDw" target="_XAfg0GzsEeWdOZKmOtT48A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_XAfg1WzsEeWdOZKmOtT48A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XAgH4mzsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="fifo.uml#_wh_EwHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XAfg1mzsEeWdOZKmOtT48A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XAgH4GzsEeWdOZKmOtT48A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XAgH4WzsEeWdOZKmOtT48A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XBBsVGzsEeWdOZKmOtT48A" type="StereotypeCommentLink" source="_tAInCCiLEeC_VbmKpDkWDw" target="_XBBsUGzsEeWdOZKmOtT48A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_XBBsVWzsEeWdOZKmOtT48A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XBBsWWzsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="fifo.uml#_xHb7MHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XBBsVmzsEeWdOZKmOtT48A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XBBsV2zsEeWdOZKmOtT48A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XBBsWGzsEeWdOZKmOtT48A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XBYRpGzsEeWdOZKmOtT48A" type="StereotypeCommentLink" source="_KnLAYDFrEeCz5-DK9j5azg" target="_XBYRoGzsEeWdOZKmOtT48A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_XBYRpWzsEeWdOZKmOtT48A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XBYRqWzsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="fifo.uml#_xcu1wHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XBYRpmzsEeWdOZKmOtT48A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XBYRp2zsEeWdOZKmOtT48A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XBYRqGzsEeWdOZKmOtT48A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XBzvcGzsEeWdOZKmOtT48A" type="StereotypeCommentLink" source="_tAKcMiiLEeC_VbmKpDkWDw" target="_XBzIYGzsEeWdOZKmOtT48A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_XBzvcWzsEeWdOZKmOtT48A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XBzvdWzsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="fifo.uml#_zc4voHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XBzvcmzsEeWdOZKmOtT48A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XBzvc2zsEeWdOZKmOtT48A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XBzvdGzsEeWdOZKmOtT48A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XCE1NGzsEeWdOZKmOtT48A" type="StereotypeCommentLink" source="_tAKcPCiLEeC_VbmKpDkWDw" target="_XCE1MGzsEeWdOZKmOtT48A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_XCE1NWzsEeWdOZKmOtT48A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XCE1OWzsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="fifo.uml#_xHb7MHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XCE1NmzsEeWdOZKmOtT48A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XCE1N2zsEeWdOZKmOtT48A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XCE1OGzsEeWdOZKmOtT48A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XCdPtGzsEeWdOZKmOtT48A" type="StereotypeCommentLink" source="_ItWYADFrEeCz5-DK9j5azg" target="_XCdPsGzsEeWdOZKmOtT48A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_XCdPtWzsEeWdOZKmOtT48A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XCdPuWzsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="fifo.uml#_TRsvoHLoEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XCdPtmzsEeWdOZKmOtT48A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XCdPt2zsEeWdOZKmOtT48A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XCdPuGzsEeWdOZKmOtT48A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XCym5GzsEeWdOZKmOtT48A" type="StereotypeCommentLink" source="_tALDVCiLEeC_VbmKpDkWDw" target="_XCym4GzsEeWdOZKmOtT48A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_XCym5WzsEeWdOZKmOtT48A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XCym6WzsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="fifo.uml#_xHb7MHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XCym5mzsEeWdOZKmOtT48A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XCym52zsEeWdOZKmOtT48A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XCym6GzsEeWdOZKmOtT48A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XDApWmzsEeWdOZKmOtT48A" type="StereotypeCommentLink" source="_tALqXSiLEeC_VbmKpDkWDw" target="_XDApVmzsEeWdOZKmOtT48A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_XDApW2zsEeWdOZKmOtT48A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XDBQYGzsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="fifo.uml#_xcu1wHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XDApXGzsEeWdOZKmOtT48A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XDApXWzsEeWdOZKmOtT48A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XDApXmzsEeWdOZKmOtT48A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XDRIBGzsEeWdOZKmOtT48A" type="StereotypeCommentLink" source="_tAMRZyiLEeC_VbmKpDkWDw" target="_XDRIAGzsEeWdOZKmOtT48A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_XDRIBWzsEeWdOZKmOtT48A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XDRICWzsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="fifo.uml#_TRsvoHLoEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XDRIBmzsEeWdOZKmOtT48A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XDRIB2zsEeWdOZKmOtT48A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XDRICGzsEeWdOZKmOtT48A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XDoUZGzsEeWdOZKmOtT48A" type="StereotypeCommentLink" source="_gLeHIC_fEeKl_vDGXh-OPw" target="_XDoUYGzsEeWdOZKmOtT48A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_XDoUZWzsEeWdOZKmOtT48A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XDoUaWzsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="fifo.uml#_gKLGoC_fEeKl_vDGXh-OPw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XDoUZmzsEeWdOZKmOtT48A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XDoUZ2zsEeWdOZKmOtT48A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XDoUaGzsEeWdOZKmOtT48A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XD4MAGzsEeWdOZKmOtT48A" type="StereotypeCommentLink" source="_h-mRoC_fEeKl_vDGXh-OPw" target="_XD3k9mzsEeWdOZKmOtT48A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_XD4MAWzsEeWdOZKmOtT48A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XD4MBWzsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="fifo.uml#_h9XikC_fEeKl_vDGXh-OPw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XD4MAmzsEeWdOZKmOtT48A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XD4MA2zsEeWdOZKmOtT48A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XD4MBGzsEeWdOZKmOtT48A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XEFAWmzsEeWdOZKmOtT48A" type="StereotypeCommentLink" source="_jadysC_fEeKl_vDGXh-OPw" target="_XEFAVmzsEeWdOZKmOtT48A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_XEFAW2zsEeWdOZKmOtT48A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XEFAX2zsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="fifo.uml#_jaXsEC_fEeKl_vDGXh-OPw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XEFAXGzsEeWdOZKmOtT48A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XEFAXWzsEeWdOZKmOtT48A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XEFAXmzsEeWdOZKmOtT48A"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Size xmi:id="_tAM4iCiLEeC_VbmKpDkWDw" width="100" height="100"/>
+ <notation:Location xmi:id="_tAM4iSiLEeC_VbmKpDkWDw" x="309" y="232"/>
+ <notation:Location xmi:id="_tAM4iiiLEeC_VbmKpDkWDw" x="140" y="236"/>
+ <notation:Location xmi:id="_tAM4iyiLEeC_VbmKpDkWDw" x="231" y="19"/>
+ <notation:Location xmi:id="_tAM4jCiLEeC_VbmKpDkWDw" x="395" y="21"/>
+ <notation:Location xmi:id="_tAM4jSiLEeC_VbmKpDkWDw" x="68" y="20"/>
+ <notation:Size xmi:id="_tAM4jiiLEeC_VbmKpDkWDw" width="20" height="20"/>
+ <notation:Location xmi:id="_tANfgCiLEeC_VbmKpDkWDw" x="221" y="79"/>
+ <notation:Location xmi:id="_tANfgSiLEeC_VbmKpDkWDw" x="299" y="278"/>
+ <notation:Location xmi:id="_tANfgiiLEeC_VbmKpDkWDw" x="130" y="281"/>
+ <notation:Location xmi:id="_tANfgyiLEeC_VbmKpDkWDw" x="485" y="68"/>
+ <notation:Location xmi:id="_tANfhCiLEeC_VbmKpDkWDw" x="58" y="72"/>
+ <notation:Diagram xmi:id="_tANfhSiLEeC_VbmKpDkWDw" type="CompositeStructure" name="Composite diagram of FIFO" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_tANfhiiLEeC_VbmKpDkWDw" type="2073">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tANfhyiLEeC_VbmKpDkWDw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tANfiCiLEeC_VbmKpDkWDw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tANfiSiLEeC_VbmKpDkWDw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tANfiiiLEeC_VbmKpDkWDw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tANfiyiLEeC_VbmKpDkWDw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tANfjCiLEeC_VbmKpDkWDw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tANfjSiLEeC_VbmKpDkWDw" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tANfjiiLEeC_VbmKpDkWDw" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tANfjyiLEeC_VbmKpDkWDw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tANfkCiLEeC_VbmKpDkWDw" type="3069">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tANfkSiLEeC_VbmKpDkWDw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tANfkiiLEeC_VbmKpDkWDw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tANfkyiLEeC_VbmKpDkWDw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tANflCiLEeC_VbmKpDkWDw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tANflSiLEeC_VbmKpDkWDw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tANfliiLEeC_VbmKpDkWDw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tANflyiLEeC_VbmKpDkWDw" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tANfmCiLEeC_VbmKpDkWDw" x="-116"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tANfmSiLEeC_VbmKpDkWDw" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tANfmiiLEeC_VbmKpDkWDw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="fifo.uml#_xHb7MHLmEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tANfmyiLEeC_VbmKpDkWDw" x="-10" y="36" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tANfnCiLEeC_VbmKpDkWDw" type="3069">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tANfnSiLEeC_VbmKpDkWDw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tANfniiLEeC_VbmKpDkWDw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tANfnyiLEeC_VbmKpDkWDw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tANfoCiLEeC_VbmKpDkWDw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tANfoSiLEeC_VbmKpDkWDw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tANfoiiLEeC_VbmKpDkWDw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tANfoyiLEeC_VbmKpDkWDw" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tANfpCiLEeC_VbmKpDkWDw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tANfpSiLEeC_VbmKpDkWDw" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tANfpiiLEeC_VbmKpDkWDw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="fifo.uml#_xcu1wHLmEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tANfpyiLEeC_VbmKpDkWDw" x="639" y="36" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XEgeIGzsEeWdOZKmOtT48A" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XEgeIWzsEeWdOZKmOtT48A" y="5"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_tANfqCiLEeC_VbmKpDkWDw"/>
+ <element xmi:type="uml:Class" href="fifo.uml#_wh_EwHLmEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tAOGkCiLEeC_VbmKpDkWDw" x="144" y="90" width="649" height="70"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tAOGkSiLEeC_VbmKpDkWDw" type="2073" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tAOGkiiLEeC_VbmKpDkWDw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tAOGkyiLEeC_VbmKpDkWDw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tAOGlCiLEeC_VbmKpDkWDw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tAOGlSiLEeC_VbmKpDkWDw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tAOGliiLEeC_VbmKpDkWDw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tAOGlyiLEeC_VbmKpDkWDw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tAOGmCiLEeC_VbmKpDkWDw" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tAOGmSiLEeC_VbmKpDkWDw" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_tAOGmiiLEeC_VbmKpDkWDw" type="3070">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tAOGmyiLEeC_VbmKpDkWDw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tAOGnCiLEeC_VbmKpDkWDw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tAOGnSiLEeC_VbmKpDkWDw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tAOGniiLEeC_VbmKpDkWDw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tAOGnyiLEeC_VbmKpDkWDw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tAOGoCiLEeC_VbmKpDkWDw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tAOGoSiLEeC_VbmKpDkWDw" type="5126"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tAOGoiiLEeC_VbmKpDkWDw" visible="false" type="7077">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tAOGoyiLEeC_VbmKpDkWDw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XEgeJGzsEeWdOZKmOtT48A" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XEgeJWzsEeWdOZKmOtT48A" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="fifo.uml#_zNeIsBGZEd-rfYlCjUOxJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tAOGpCiLEeC_VbmKpDkWDw" x="26" y="18" width="152" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_KNylwLnQEeCxXoyQxQ47PQ" type="3097" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KNzM0LnQEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KNzM0bnQEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KNzM0rnQEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KNzM07nQEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KNzz4LnQEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KNzz4bnQEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_KNzz4rnQEeCxXoyQxQ47PQ" type="5150"/>
+ <element xmi:type="uml:Comment" href="fifo.uml#_EiDM8K_2EeC6ALhykKLu_g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KNylwbnQEeCxXoyQxQ47PQ" x="26" y="74" width="235" height="29"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QL0qcLnQEeCxXoyQxQ47PQ" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QL14kLnQEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QL14kbnQEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QL14krnQEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QL14k7nQEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QL2foLnQEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QL2fobnQEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QL2fornQEeCxXoyQxQ47PQ" type="5126"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QL2fo7nQEeCxXoyQxQ47PQ" visible="false" type="7077">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QL2fpLnQEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XEgeJmzsEeWdOZKmOtT48A" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XEgeJ2zsEeWdOZKmOtT48A" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="fifo.uml#_XDRnoHUIEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QL0qcbnQEeCxXoyQxQ47PQ" x="206" y="18" width="109" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XIOggGzsEeWdOZKmOtT48A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XIOggWzsEeWdOZKmOtT48A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XIOgg2zsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Property" href="fifo.uml#_XDRnoHUIEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XIOggmzsEeWdOZKmOtT48A" x="406" y="18"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tAOGpSiLEeC_VbmKpDkWDw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tAOGpiiLEeC_VbmKpDkWDw" type="3069">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tAOGpyiLEeC_VbmKpDkWDw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tAOGqCiLEeC_VbmKpDkWDw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tAOGqSiLEeC_VbmKpDkWDw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tAOGqiiLEeC_VbmKpDkWDw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tAOGqyiLEeC_VbmKpDkWDw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tAOGrCiLEeC_VbmKpDkWDw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tAOGrSiLEeC_VbmKpDkWDw" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tAOGriiLEeC_VbmKpDkWDw" x="-121" y="-5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tAOGryiLEeC_VbmKpDkWDw" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tAOGsCiLEeC_VbmKpDkWDw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="fifo.uml#_xHb7MHLmEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tAOGsSiLEeC_VbmKpDkWDw" x="-10" y="41" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tAOGsiiLEeC_VbmKpDkWDw" type="3069">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tAOGsyiLEeC_VbmKpDkWDw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tAOGtCiLEeC_VbmKpDkWDw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tAOGtSiLEeC_VbmKpDkWDw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tAOGtiiLEeC_VbmKpDkWDw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tAOGtyiLEeC_VbmKpDkWDw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tAOGuCiLEeC_VbmKpDkWDw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tAOGuSiLEeC_VbmKpDkWDw" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tAOGuiiLEeC_VbmKpDkWDw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tAOtoCiLEeC_VbmKpDkWDw" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tAOtoSiLEeC_VbmKpDkWDw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="fifo.uml#_xcu1wHLmEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tAOtoiiLEeC_VbmKpDkWDw" x="216" y="40" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XEgeImzsEeWdOZKmOtT48A" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XEgeI2zsEeWdOZKmOtT48A" y="5"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XHrt9GzsEeWdOZKmOtT48A" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_XHrt9WzsEeWdOZKmOtT48A" name="stereotype" stringValue="C_Cpp::Include"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_RwTdQByJEduN1bTiWJ0lyw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XHrt9mzsEeWdOZKmOtT48A"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_tAOtoyiLEeC_VbmKpDkWDw"/>
+ <element xmi:type="uml:Class" href="fifo.uml#_Y1jF8HPpEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tAOtpCiLEeC_VbmKpDkWDw" x="149" y="198" width="356" height="159"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qOCU0JjDEeCDMc6Lh9wKtQ" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qOExEJjDEeCDMc6Lh9wKtQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qOExEZjDEeCDMc6Lh9wKtQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qOExEpjDEeCDMc6Lh9wKtQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qOExE5jDEeCDMc6Lh9wKtQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qOExFJjDEeCDMc6Lh9wKtQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qOFYIJjDEeCDMc6Lh9wKtQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qOFYIZjDEeCDMc6Lh9wKtQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qOFYIpjDEeCDMc6Lh9wKtQ" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qOFYI5jDEeCDMc6Lh9wKtQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_sP3psJjDEeCDMc6Lh9wKtQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sP4QwJjDEeCDMc6Lh9wKtQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sP430JjDEeCDMc6Lh9wKtQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sP430ZjDEeCDMc6Lh9wKtQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sP430pjDEeCDMc6Lh9wKtQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sP4305jDEeCDMc6Lh9wKtQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sP431JjDEeCDMc6Lh9wKtQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_sP431ZjDEeCDMc6Lh9wKtQ" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sP5e4JjDEeCDMc6Lh9wKtQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_sP5e4ZjDEeCDMc6Lh9wKtQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sP5e4pjDEeCDMc6Lh9wKtQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="fifo.uml#_xHb7MHLmEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sP3psZjDEeCDMc6Lh9wKtQ" x="-10" y="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_sP6F8JjDEeCDMc6Lh9wKtQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sP6tAJjDEeCDMc6Lh9wKtQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sP7UEJjDEeCDMc6Lh9wKtQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sP7UEZjDEeCDMc6Lh9wKtQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sP7UEpjDEeCDMc6Lh9wKtQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sP7UE5jDEeCDMc6Lh9wKtQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sP7UFJjDEeCDMc6Lh9wKtQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_sP7UFZjDEeCDMc6Lh9wKtQ" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sP7UFpjDEeCDMc6Lh9wKtQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_sP77IJjDEeCDMc6Lh9wKtQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sP77IZjDEeCDMc6Lh9wKtQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="fifo.uml#_xcu1wHLmEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sP6F8ZjDEeCDMc6Lh9wKtQ" x="197" y="64"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XEgeKGzsEeWdOZKmOtT48A" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XEgeKWzsEeWdOZKmOtT48A" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="fifo.uml#_dr0doDqNEeCd_O2fHA8dPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qOCU0ZjDEeCDMc6Lh9wKtQ" x="585" y="198" width="207" height="154"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_EhxuYJjEEeCDMc6Lh9wKtQ" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EhyVcJjEEeCDMc6Lh9wKtQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ehy8gJjEEeCDMc6Lh9wKtQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ehy8gZjEEeCDMc6Lh9wKtQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ehy8gpjEEeCDMc6Lh9wKtQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ehy8g5jEEeCDMc6Lh9wKtQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ehy8hJjEEeCDMc6Lh9wKtQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Ehy8hZjEEeCDMc6Lh9wKtQ" type="5192"/>
+ <element xmi:type="uml:Comment" href="fifo.uml#_PwZ2MDqOEeCd_O2fHA8dPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EhxuYZjEEeCDMc6Lh9wKtQ" x="594" y="378" width="206"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_DfErALnQEeCxXoyQxQ47PQ" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DfF5ILnQEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DfF5IbnQEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DfGgMLnQEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DfGgMbnQEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DfGgMrnQEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DfGgM7nQEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_DfGgNLnQEeCxXoyQxQ47PQ" type="5192"/>
+ <element xmi:type="uml:Comment" href="fifo.uml#_K_UZoDF2EeCpQdhNuFCtew"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DfErAbnQEeCxXoyQxQ47PQ" x="152" y="383" width="353" height="50"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_rzv8YC_gEeKl_vDGXh-OPw" type="2073" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rzwjcC_gEeKl_vDGXh-OPw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rzwjcS_gEeKl_vDGXh-OPw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rzwjci_gEeKl_vDGXh-OPw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rzwjcy_gEeKl_vDGXh-OPw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rzwjdC_gEeKl_vDGXh-OPw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rzxKgC_gEeKl_vDGXh-OPw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_rzxKgS_gEeKl_vDGXh-OPw" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_rzxKgi_gEeKl_vDGXh-OPw" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_rzxKgy_gEeKl_vDGXh-OPw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rzxKhC_gEeKl_vDGXh-OPw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XEgeKmzsEeWdOZKmOtT48A" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XEgeK2zsEeWdOZKmOtT48A" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="fifo.uml#_gKLGoC_fEeKl_vDGXh-OPw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rzv8YS_gEeKl_vDGXh-OPw" x="945" y="90" width="163" height="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tChcoC_gEeKl_vDGXh-OPw" type="2073" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tCiDsC_gEeKl_vDGXh-OPw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tCiDsS_gEeKl_vDGXh-OPw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tCiDsi_gEeKl_vDGXh-OPw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tCiDsy_gEeKl_vDGXh-OPw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tCiDtC_gEeKl_vDGXh-OPw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tCiDtS_gEeKl_vDGXh-OPw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tCiDti_gEeKl_vDGXh-OPw" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tCiDty_gEeKl_vDGXh-OPw" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tCiDuC_gEeKl_vDGXh-OPw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tCiDuS_gEeKl_vDGXh-OPw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XEgeLGzsEeWdOZKmOtT48A" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XEgeLWzsEeWdOZKmOtT48A" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="fifo.uml#_qZQUUC_gEeKl_vDGXh-OPw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tChcoS_gEeKl_vDGXh-OPw" x="945" y="198" width="163" height="163"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XG8uIGzsEeWdOZKmOtT48A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XG8uIWzsEeWdOZKmOtT48A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XG9VMGzsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="fifo.uml#_wh_EwHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XG8uImzsEeWdOZKmOtT48A" x="344" y="90"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XHLXoGzsEeWdOZKmOtT48A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XHLXoWzsEeWdOZKmOtT48A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XHLXo2zsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="fifo.uml#_xHb7MHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XHLXomzsEeWdOZKmOtT48A" x="190" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XHfgsGzsEeWdOZKmOtT48A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XHfgsWzsEeWdOZKmOtT48A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XHfgs2zsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="fifo.uml#_xcu1wHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XHfgsmzsEeWdOZKmOtT48A" x="839" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XHzpwGzsEeWdOZKmOtT48A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XHzpwWzsEeWdOZKmOtT48A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XHzpw2zsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="fifo.uml#_Y1jF8HPpEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XHzpwmzsEeWdOZKmOtT48A" x="349" y="198"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XIatwGzsEeWdOZKmOtT48A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XIatwWzsEeWdOZKmOtT48A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XIatw2zsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="fifo.uml#_xHb7MHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XIatwmzsEeWdOZKmOtT48A" x="190" y="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XIowMGzsEeWdOZKmOtT48A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XIowMWzsEeWdOZKmOtT48A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XIowM2zsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="fifo.uml#_xcu1wHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XIowMmzsEeWdOZKmOtT48A" x="416" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XI2yoGzsEeWdOZKmOtT48A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XI2yoWzsEeWdOZKmOtT48A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XI2yo2zsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="fifo.uml#_dr0doDqNEeCd_O2fHA8dPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XI2yomzsEeWdOZKmOtT48A" x="785" y="198"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XJBKsGzsEeWdOZKmOtT48A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XJBKsWzsEeWdOZKmOtT48A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XJBKs2zsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="fifo.uml#_xHb7MHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XJBKsmzsEeWdOZKmOtT48A" x="190" y="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XJN_AGzsEeWdOZKmOtT48A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XJN_AWzsEeWdOZKmOtT48A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XJN_A2zsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="fifo.uml#_xcu1wHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XJN_AmzsEeWdOZKmOtT48A" x="397" y="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XJd2oGzsEeWdOZKmOtT48A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XJd2oWzsEeWdOZKmOtT48A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XJd2o2zsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="fifo.uml#_gKLGoC_fEeKl_vDGXh-OPw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XJd2omzsEeWdOZKmOtT48A" x="1145" y="90"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XJqD4GzsEeWdOZKmOtT48A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XJqD4WzsEeWdOZKmOtT48A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XJqD42zsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="fifo.uml#_qZQUUC_gEeKl_vDGXh-OPw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XJqD4mzsEeWdOZKmOtT48A" x="1145" y="198"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_tAOtpSiLEeC_VbmKpDkWDw"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_XEgeLmzsEeWdOZKmOtT48A" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="fifo.uml#_RTeboHPpEd6R5tffIPrlPg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_tAOtpiiLEeC_VbmKpDkWDw" type="4015" source="_tAOGkSiLEeC_VbmKpDkWDw" target="_tANfhiiLEeC_VbmKpDkWDw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_tAOtpyiLEeC_VbmKpDkWDw" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tAOtqCiLEeC_VbmKpDkWDw" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_tAOtqSiLEeC_VbmKpDkWDw"/>
+ <element xmi:type="uml:Generalization" href="fifo.uml#_Z4Oq8HPpEd6R5tffIPrlPg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_tAOtqiiLEeC_VbmKpDkWDw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tAOtqyiLEeC_VbmKpDkWDw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tAOtrCiLEeC_VbmKpDkWDw" id="(0.2835130970724191,0.8428571428571429)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_1QD30JjDEeCDMc6Lh9wKtQ" type="4015" source="_qOCU0JjDEeCDMc6Lh9wKtQ" target="_tANfhiiLEeC_VbmKpDkWDw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1QFtAJjDEeCDMc6Lh9wKtQ" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1QFtAZjDEeCDMc6Lh9wKtQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_1QD30ZjDEeCDMc6Lh9wKtQ" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="fifo.uml#_dr0dozqNEeCd_O2fHA8dPg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1QD30pjDEeCDMc6Lh9wKtQ" points="[-90, -68, 131, 99]$[-175, -132, 46, 35]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1uVvQJjDEeCDMc6Lh9wKtQ" id="(0.8212634822804314,0.7857142857142857)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_JrVpMJjEEeCDMc6Lh9wKtQ" type="4002" source="_EhxuYJjEEeCDMc6Lh9wKtQ" target="_qOCU0JjDEeCDMc6Lh9wKtQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_JrVpMZjEEeCDMc6Lh9wKtQ" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_JrVpMpjEEeCDMc6Lh9wKtQ" points="[-7, -30, 7, 33]$[-16, -47, -2, 16]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Jr64AJjEEeCDMc6Lh9wKtQ" id="(0.46859903381642515,0.8832116788321168)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_DgRk4LnQEeCxXoyQxQ47PQ" type="4002" source="_DfErALnQEeCxXoyQxQ47PQ" target="_tAOGkSiLEeC_VbmKpDkWDw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_DgRk4bnQEeCxXoyQxQ47PQ" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_DgRk4rnQEeCxXoyQxQ47PQ" points="[0, 0, -262, -286]$[197, 216, -65, -70]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_tdNGgEDrEeGa5NwyW9TCXg" type="4002" source="_KNylwLnQEeCxXoyQxQ47PQ" target="_QL0qcLnQEeCxXoyQxQ47PQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_tdNGgUDrEeGa5NwyW9TCXg" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_tdNGgkDrEeGa5NwyW9TCXg" points="[-6, -4, 0, 47]$[-26, -60, -20, -9]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tdeMQEDrEeGa5NwyW9TCXg" id="(0.9361702127659575,0.1111111111111111)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tdeMQUDrEeGa5NwyW9TCXg" id="(0.3119266055045872,0.24324324324324326)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_vmUPEC_gEeKl_vDGXh-OPw" type="4015" source="_tChcoC_gEeKl_vDGXh-OPw" target="_rzv8YC_gEeKl_vDGXh-OPw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_vmVdMC_gEeKl_vDGXh-OPw" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vmVdMS_gEeKl_vDGXh-OPw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_vmUPES_gEeKl_vDGXh-OPw" fontName="Sans Serif"/>
+ <element xmi:type="uml:Generalization" href="fifo.uml#_qZQUUS_gEeKl_vDGXh-OPw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_vmUPEi_gEeKl_vDGXh-OPw" points="[-67, -20, 478, 137]$[-424, -122, 121, 35]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wbwCQC_gEeKl_vDGXh-OPw" id="(0.5061728395061729,0.9464285714285714)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XG9VMWzsEeWdOZKmOtT48A" type="StereotypeCommentLink" source="_tANfhiiLEeC_VbmKpDkWDw" target="_XG8uIGzsEeWdOZKmOtT48A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_XG9VMmzsEeWdOZKmOtT48A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XG9VNmzsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="fifo.uml#_wh_EwHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XG9VM2zsEeWdOZKmOtT48A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XG9VNGzsEeWdOZKmOtT48A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XG9VNWzsEeWdOZKmOtT48A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XHLXpGzsEeWdOZKmOtT48A" type="StereotypeCommentLink" source="_tANfkCiLEeC_VbmKpDkWDw" target="_XHLXoGzsEeWdOZKmOtT48A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_XHLXpWzsEeWdOZKmOtT48A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XHLXqWzsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="fifo.uml#_xHb7MHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XHLXpmzsEeWdOZKmOtT48A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XHLXp2zsEeWdOZKmOtT48A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XHLXqGzsEeWdOZKmOtT48A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XHfgtGzsEeWdOZKmOtT48A" type="StereotypeCommentLink" source="_tANfnCiLEeC_VbmKpDkWDw" target="_XHfgsGzsEeWdOZKmOtT48A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_XHfgtWzsEeWdOZKmOtT48A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XHfguWzsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="fifo.uml#_xcu1wHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XHfgtmzsEeWdOZKmOtT48A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XHfgt2zsEeWdOZKmOtT48A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XHfguGzsEeWdOZKmOtT48A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XHzpxGzsEeWdOZKmOtT48A" type="StereotypeCommentLink" source="_tAOGkSiLEeC_VbmKpDkWDw" target="_XHzpwGzsEeWdOZKmOtT48A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_XHzpxWzsEeWdOZKmOtT48A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XHzpyWzsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="fifo.uml#_Y1jF8HPpEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XHzpxmzsEeWdOZKmOtT48A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XHzpx2zsEeWdOZKmOtT48A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XHzpyGzsEeWdOZKmOtT48A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XIOghGzsEeWdOZKmOtT48A" type="StereotypeCommentLink" source="_QL0qcLnQEeCxXoyQxQ47PQ" target="_XIOggGzsEeWdOZKmOtT48A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_XIOghWzsEeWdOZKmOtT48A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XIOgiWzsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Property" href="fifo.uml#_XDRnoHUIEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XIOghmzsEeWdOZKmOtT48A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XIOgh2zsEeWdOZKmOtT48A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XIOgiGzsEeWdOZKmOtT48A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XIatxGzsEeWdOZKmOtT48A" type="StereotypeCommentLink" source="_tAOGpiiLEeC_VbmKpDkWDw" target="_XIatwGzsEeWdOZKmOtT48A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_XIatxWzsEeWdOZKmOtT48A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XIbU0mzsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="fifo.uml#_xHb7MHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XIatxmzsEeWdOZKmOtT48A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XIbU0GzsEeWdOZKmOtT48A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XIbU0WzsEeWdOZKmOtT48A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XIowNGzsEeWdOZKmOtT48A" type="StereotypeCommentLink" source="_tAOGsiiLEeC_VbmKpDkWDw" target="_XIowMGzsEeWdOZKmOtT48A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_XIowNWzsEeWdOZKmOtT48A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XIowOWzsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="fifo.uml#_xcu1wHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XIowNmzsEeWdOZKmOtT48A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XIowN2zsEeWdOZKmOtT48A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XIowOGzsEeWdOZKmOtT48A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XI2ypGzsEeWdOZKmOtT48A" type="StereotypeCommentLink" source="_qOCU0JjDEeCDMc6Lh9wKtQ" target="_XI2yoGzsEeWdOZKmOtT48A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_XI2ypWzsEeWdOZKmOtT48A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XI2yqWzsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="fifo.uml#_dr0doDqNEeCd_O2fHA8dPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XI2ypmzsEeWdOZKmOtT48A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XI2yp2zsEeWdOZKmOtT48A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XI2yqGzsEeWdOZKmOtT48A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XJBKtGzsEeWdOZKmOtT48A" type="StereotypeCommentLink" source="_sP3psJjDEeCDMc6Lh9wKtQ" target="_XJBKsGzsEeWdOZKmOtT48A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_XJBKtWzsEeWdOZKmOtT48A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XJBKuWzsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="fifo.uml#_xHb7MHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XJBKtmzsEeWdOZKmOtT48A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XJBKt2zsEeWdOZKmOtT48A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XJBKuGzsEeWdOZKmOtT48A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XJN_BGzsEeWdOZKmOtT48A" type="StereotypeCommentLink" source="_sP6F8JjDEeCDMc6Lh9wKtQ" target="_XJN_AGzsEeWdOZKmOtT48A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_XJN_BWzsEeWdOZKmOtT48A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XJN_CWzsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="fifo.uml#_xcu1wHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XJN_BmzsEeWdOZKmOtT48A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XJN_B2zsEeWdOZKmOtT48A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XJN_CGzsEeWdOZKmOtT48A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XJd2pGzsEeWdOZKmOtT48A" type="StereotypeCommentLink" source="_rzv8YC_gEeKl_vDGXh-OPw" target="_XJd2oGzsEeWdOZKmOtT48A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_XJd2pWzsEeWdOZKmOtT48A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XJd2qWzsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="fifo.uml#_gKLGoC_fEeKl_vDGXh-OPw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XJd2pmzsEeWdOZKmOtT48A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XJd2p2zsEeWdOZKmOtT48A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XJd2qGzsEeWdOZKmOtT48A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XJqD5GzsEeWdOZKmOtT48A" type="StereotypeCommentLink" source="_tChcoC_gEeKl_vDGXh-OPw" target="_XJqD4GzsEeWdOZKmOtT48A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_XJqD5WzsEeWdOZKmOtT48A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XJqq8WzsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="fifo.uml#_qZQUUC_gEeKl_vDGXh-OPw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XJqD5mzsEeWdOZKmOtT48A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XJqD52zsEeWdOZKmOtT48A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XJqq8GzsEeWdOZKmOtT48A"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Location xmi:id="_tAOtrSiLEeC_VbmKpDkWDw" x="235" y="92"/>
+ <notation:Location xmi:id="_tAOtriiLEeC_VbmKpDkWDw" x="225" y="150"/>
+ <notation:Location xmi:id="_tAOtryiLEeC_VbmKpDkWDw" x="325" y="146"/>
+ <notation:Size xmi:id="_tAOtsCiLEeC_VbmKpDkWDw" width="226" height="141"/>
+ <notation:Location xmi:id="_tAOtsSiLEeC_VbmKpDkWDw" x="172" y="281"/>
+ <notation:Size xmi:id="_tAOtsiiLEeC_VbmKpDkWDw" width="152" height="38"/>
+ <notation:Location xmi:id="_tAOtsyiLEeC_VbmKpDkWDw" x="38" y="79"/>
+ <notation:Location xmi:id="_tAOttCiLEeC_VbmKpDkWDw" x="162" y="322"/>
+ <notation:Location xmi:id="_tAOttSiLEeC_VbmKpDkWDw" x="388" y="321"/>
+ <notation:Diagram xmi:id="_OBa8YK8wEeCXIcykFPsB8Q" type="PapyrusUMLClassDiagram" name="Pkg. Template: DataExchange_size" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_R4yPgK8wEeCXIcykFPsB8Q" type="2007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_R4y2kK8wEeCXIcykFPsB8Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_R4y2ka8wEeCXIcykFPsB8Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_R4zdoK8wEeCXIcykFPsB8Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_R4zdoa8wEeCXIcykFPsB8Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_R4zdoq8wEeCXIcykFPsB8Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_R4zdo68wEeCXIcykFPsB8Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_R4zdpK8wEeCXIcykFPsB8Q" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_R4zdpa8wEeCXIcykFPsB8Q" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_9_UVQK8wEeCXIcykFPsB8Q" type="3010" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9_U8UK8wEeCXIcykFPsB8Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9_U8Ua8wEeCXIcykFPsB8Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9_U8Uq8wEeCXIcykFPsB8Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9_VjYK8wEeCXIcykFPsB8Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9_VjYa8wEeCXIcykFPsB8Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9_VjYq8wEeCXIcykFPsB8Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9_VjY68wEeCXIcykFPsB8Q" type="5014"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9_VjZK8wEeCXIcykFPsB8Q" visible="false" type="7011">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9_VjZa8wEeCXIcykFPsB8Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9_VjZq8wEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9_VjZ68wEeCXIcykFPsB8Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9_VjaK8wEeCXIcykFPsB8Q" visible="false" type="7012">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9_Vjaa8wEeCXIcykFPsB8Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9_Vjaq8wEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9_Vja68wEeCXIcykFPsB8Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9_VjbK8wEeCXIcykFPsB8Q" visible="false" type="7013">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9_Vjba8wEeCXIcykFPsB8Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9_Vjbq8wEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9_Vjb68wEeCXIcykFPsB8Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XJ8XwGzsEeWdOZKmOtT48A" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XJ8XwWzsEeWdOZKmOtT48A" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="fifo.uml#_DA0VYK4iEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9_UVQa8wEeCXIcykFPsB8Q" x="40" y="123" width="163" height="47"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cPvm0K8xEeCXIcykFPsB8Q" type="3010" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cPwN4K8xEeCXIcykFPsB8Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cPwN4a8xEeCXIcykFPsB8Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cPwN4q8xEeCXIcykFPsB8Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cPwN468xEeCXIcykFPsB8Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cPwN5K8xEeCXIcykFPsB8Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cPwN5a8xEeCXIcykFPsB8Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cPwN5q8xEeCXIcykFPsB8Q" type="5014"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cPwN568xEeCXIcykFPsB8Q" visible="false" type="7011">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cPwN6K8xEeCXIcykFPsB8Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cPwN6a8xEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cPwN6q8xEeCXIcykFPsB8Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cPwN668xEeCXIcykFPsB8Q" visible="false" type="7012">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cPwN7K8xEeCXIcykFPsB8Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cPwN7a8xEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cPwN7q8xEeCXIcykFPsB8Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cPwN768xEeCXIcykFPsB8Q" visible="false" type="7013">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cPwN8K8xEeCXIcykFPsB8Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cPwN8a8xEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cPwN8q8xEeCXIcykFPsB8Q"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XJ8-0GzsEeWdOZKmOtT48A" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XJ8-0WzsEeWdOZKmOtT48A" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="fifo.uml#_wh_EwHLmEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cPvm0a8xEeCXIcykFPsB8Q" x="40" y="33" width="163" height="57"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XM6MMGzsEeWdOZKmOtT48A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XM6MMWzsEeWdOZKmOtT48A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XM6MM2zsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="fifo.uml#_DA0VYK4iEeCXIcykFPsB8Q"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XM6MMmzsEeWdOZKmOtT48A" x="240" y="123"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XNNuMGzsEeWdOZKmOtT48A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XNNuMWzsEeWdOZKmOtT48A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XNNuM2zsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="fifo.uml#_wh_EwHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XNNuMmzsEeWdOZKmOtT48A" x="240" y="33"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_R4zdpq8wEeCXIcykFPsB8Q"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Sz-scK8wEeCXIcykFPsB8Q" type="3033" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Sz_TgK8wEeCXIcykFPsB8Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Sz_Tga8wEeCXIcykFPsB8Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Sz_Tgq8wEeCXIcykFPsB8Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Sz_Tg68wEeCXIcykFPsB8Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Sz_ThK8wEeCXIcykFPsB8Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Sz_6kK8wEeCXIcykFPsB8Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Sz_6ka8wEeCXIcykFPsB8Q" type="7038">
+ <children xmi:type="notation:Shape" xmi:id="_p2CS0K8wEeCXIcykFPsB8Q" type="3016" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:TemplateParameter" href="fifo.uml#_H5vB4K8vEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_p2CS0a8wEeCXIcykFPsB8Q" x="25" y="12"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Sz_6kq8wEeCXIcykFPsB8Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Sz_6k68wEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Sz_6lK8wEeCXIcykFPsB8Q"/>
+ </children>
+ <element xmi:type="uml:TemplateSignature" href="fifo.uml#_1AfgcK8tEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Sz-sca8wEeCXIcykFPsB8Q" x="60" y="6"/>
+ </children>
+ <element xmi:type="uml:Package" href="fifo.uml#_uBS5sK8tEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_R4yPga8wEeCXIcykFPsB8Q" x="99" y="121" width="370" height="222"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_OBa8Ya8wEeCXIcykFPsB8Q"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_XJ8-0mzsEeWdOZKmOtT48A" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="fifo.uml#_uBS5sK8tEeCXIcykFPsB8Q"/>
+ <edges xmi:type="notation:Connector" xmi:id="_cQhp8K8xEeCXIcykFPsB8Q" type="4002" source="_9_UVQK8wEeCXIcykFPsB8Q" target="_cPvm0K8xEeCXIcykFPsB8Q" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_cQiRAK8xEeCXIcykFPsB8Q" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cQiRAa8xEeCXIcykFPsB8Q" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_cQhp8a8xEeCXIcykFPsB8Q" fontName="Sans Serif"/>
+ <element xmi:type="uml:Generalization" href="fifo.uml#_DA0VY64iEeCXIcykFPsB8Q"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cQhp8q8xEeCXIcykFPsB8Q" points="[-61, -23, 38, 15]$[-99, -38, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XM6MNGzsEeWdOZKmOtT48A" type="StereotypeCommentLink" source="_9_UVQK8wEeCXIcykFPsB8Q" target="_XM6MMGzsEeWdOZKmOtT48A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_XM6MNWzsEeWdOZKmOtT48A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XM6MOWzsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="fifo.uml#_DA0VYK4iEeCXIcykFPsB8Q"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XM6MNmzsEeWdOZKmOtT48A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XM6MN2zsEeWdOZKmOtT48A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XM6MOGzsEeWdOZKmOtT48A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XNNuNGzsEeWdOZKmOtT48A" type="StereotypeCommentLink" source="_cPvm0K8xEeCXIcykFPsB8Q" target="_XNNuMGzsEeWdOZKmOtT48A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_XNNuNWzsEeWdOZKmOtT48A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XNNuOWzsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="fifo.uml#_wh_EwHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XNNuNmzsEeWdOZKmOtT48A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XNNuN2zsEeWdOZKmOtT48A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XNNuOGzsEeWdOZKmOtT48A"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_A5pi4K_2EeC6ALhykKLu_g" type="PapyrusUMLClassDiagram" name="FIFO" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_BddakK_2EeC6ALhykKLu_g" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Bdgd4K_2EeC6ALhykKLu_g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Bdgd4a_2EeC6ALhykKLu_g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BdhE8K_2EeC6ALhykKLu_g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BdhE8a_2EeC6ALhykKLu_g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BdhsAK_2EeC6ALhykKLu_g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BdhsAa_2EeC6ALhykKLu_g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BdhsAq_2EeC6ALhykKLu_g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BdhsA6_2EeC6ALhykKLu_g" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_Drta0K_2EeC6ALhykKLu_g" type="3012" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Property" href="fifo.uml#_XDRnoHUIEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Drta0a_2EeC6ALhykKLu_g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZFfRMAO7EeGb-spUJr9V6w" type="3012" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Property" href="fifo.uml#_6iV9wHUHEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZFfRMQO7EeGb-spUJr9V6w"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZFf4QAO7EeGb-spUJr9V6w" type="3012" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Property" href="fifo.uml#_RlKZIHUIEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZFf4QQO7EeGb-spUJr9V6w"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZFgfUAO7EeGb-spUJr9V6w" type="3012" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Property" href="fifo.uml#_XcO6MHUIEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZFgfUQO7EeGb-spUJr9V6w"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZFhtcAO7EeGb-spUJr9V6w" type="3012" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Property" href="fifo.uml#_zNeIsBGZEd-rfYlCjUOxJQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZFhtcQO7EeGb-spUJr9V6w"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZFjioAO7EeGb-spUJr9V6w" type="3012" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Port" href="fifo.uml#_xHb7MHLmEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZFjioQO7EeGb-spUJr9V6w"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZFkJsAO7EeGb-spUJr9V6w" type="3012" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Port" href="fifo.uml#_xcu1wHLmEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZFkJsQO7EeGb-spUJr9V6w"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_BdhsBK_2EeC6ALhykKLu_g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_BdhsBa_2EeC6ALhykKLu_g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BdhsBq_2EeC6ALhykKLu_g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BdhsB6_2EeC6ALhykKLu_g" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_ZFbm0AO7EeGb-spUJr9V6w" type="3013" fontName="Sans Serif" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_XQCYsGzsEeWdOZKmOtT48A" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_XQCYsWzsEeWdOZKmOtT48A" name="stereotype" stringValue="FCM::DerivedElement"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_6B80EGV9Ed6b6erIXzmEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XQCYsmzsEeWdOZKmOtT48A"/>
+ </children>
+ <element xmi:type="uml:Operation" href="fifo.uml#_EYsdUP68Ed6Zw96O-tCw7A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZFbm0QO7EeGb-spUJr9V6w"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZFcN4AO7EeGb-spUJr9V6w" type="3013" fontName="Sans Serif" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_XQH4QGzsEeWdOZKmOtT48A" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_XQH4QWzsEeWdOZKmOtT48A" name="stereotype" stringValue="FCM::DerivedElement"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_6B80EGV9Ed6b6erIXzmEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XQH4QmzsEeWdOZKmOtT48A"/>
+ </children>
+ <element xmi:type="uml:Operation" href="fifo.uml#_EYx84P68Ed6Zw96O-tCw7A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZFcN4QO7EeGb-spUJr9V6w"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZFdcAAO7EeGb-spUJr9V6w" type="3013" fontName="Sans Serif" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_XQMJsGzsEeWdOZKmOtT48A" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_XQMJsWzsEeWdOZKmOtT48A" name="stereotype" stringValue="FCM::DerivedElement"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_6B80EGV9Ed6b6erIXzmEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XQMJsmzsEeWdOZKmOtT48A"/>
+ </children>
+ <element xmi:type="uml:Operation" href="fifo.uml#_AnQ3QBI9Ed-XjYZ05V-9-Q"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZFdcAQO7EeGb-spUJr9V6w"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZFeqIAO7EeGb-spUJr9V6w" type="3013" fontName="Sans Serif" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_XQP0EmzsEeWdOZKmOtT48A" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_XQP0E2zsEeWdOZKmOtT48A" name="stereotype" stringValue="FCM::DerivedElement"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_6B80EGV9Ed6b6erIXzmEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XQP0FGzsEeWdOZKmOtT48A"/>
+ </children>
+ <element xmi:type="uml:Operation" href="fifo.uml#_5IpEwK8xEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZFeqIQO7EeGb-spUJr9V6w"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_BdhsCK_2EeC6ALhykKLu_g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_BdhsCa_2EeC6ALhykKLu_g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BdhsCq_2EeC6ALhykKLu_g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BdhsC6_2EeC6ALhykKLu_g" visible="false" type="7019">
+ <children xmi:type="notation:Shape" xmi:id="_ZFWuUAO7EeGb-spUJr9V6w" type="3014" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:OpaqueBehavior" href="fifo.uml#_FjGlgP69Ed6Zw96O-tCw7A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZFWuUQO7EeGb-spUJr9V6w"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZFYjgAO7EeGb-spUJr9V6w" type="3014" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:OpaqueBehavior" href="fifo.uml#_IwXLsP69Ed6Zw96O-tCw7A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZFYjgQO7EeGb-spUJr9V6w"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZFZKkAO7EeGb-spUJr9V6w" type="3014" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:OpaqueBehavior" href="fifo.uml#__Ha0IBJHEd-XjYZ05V-9-Q"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZFZKkQO7EeGb-spUJr9V6w"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZFaYsAO7EeGb-spUJr9V6w" type="3014" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:OpaqueBehavior" href="fifo.uml#_QzOqwK8yEeCXIcykFPsB8Q"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZFaYsQO7EeGb-spUJr9V6w"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_BdhsDK_2EeC6ALhykKLu_g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_BdhsDa_2EeC6ALhykKLu_g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BdhsDq_2EeC6ALhykKLu_g"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XNaigGzsEeWdOZKmOtT48A" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XNaigWzsEeWdOZKmOtT48A" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="fifo.uml#_Y1jF8HPpEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Bddaka_2EeC6ALhykKLu_g" x="36" y="153" width="199"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_EnQdEK_2EeC6ALhykKLu_g" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EnREIK_2EeC6ALhykKLu_g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EnREIa_2EeC6ALhykKLu_g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EnREIq_2EeC6ALhykKLu_g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EnREI6_2EeC6ALhykKLu_g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EnREJK_2EeC6ALhykKLu_g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EnREJa_2EeC6ALhykKLu_g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_EnREJq_2EeC6ALhykKLu_g" type="5038"/>
+ <element xmi:type="uml:Comment" href="fifo.uml#_EiDM8K_2EeC6ALhykKLu_g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EnQdEa_2EeC6ALhykKLu_g" x="281" y="110"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lVZHMK_2EeC6ALhykKLu_g" type="2097" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lVaVUK_2EeC6ALhykKLu_g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lVaVUa_2EeC6ALhykKLu_g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lVa8YK_2EeC6ALhykKLu_g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lVa8Ya_2EeC6ALhykKLu_g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lVa8Yq_2EeC6ALhykKLu_g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lVa8Y6_2EeC6ALhykKLu_g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lVa8ZK_2EeC6ALhykKLu_g" type="5157"/>
+ <element xmi:type="uml:Property" href="fifo.uml#_XDRnoHUIEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lVZHMa_2EeC6ALhykKLu_g" x="310" y="198"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8G4iAK_2EeC6ALhykKLu_g" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8G5JEK_2EeC6ALhykKLu_g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8G5JEa_2EeC6ALhykKLu_g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8G5JEq_2EeC6ALhykKLu_g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8G5JE6_2EeC6ALhykKLu_g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8G5wIK_2EeC6ALhykKLu_g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8G5wIa_2EeC6ALhykKLu_g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8G5wIq_2EeC6ALhykKLu_g" type="5038"/>
+ <element xmi:type="uml:Comment" href="fifo.uml#_K_UZoDF2EeCpQdhNuFCtew"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8G4iAa_2EeC6ALhykKLu_g" x="36" y="54" width="181"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XP3ZkGzsEeWdOZKmOtT48A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XP3ZkWzsEeWdOZKmOtT48A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XP3Zk2zsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="fifo.uml#_Y1jF8HPpEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XP3ZkmzsEeWdOZKmOtT48A" x="236" y="153"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XQdPcGzsEeWdOZKmOtT48A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XQdPcWzsEeWdOZKmOtT48A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XQdPc2zsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Property" href="fifo.uml#_XDRnoHUIEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XQdPcmzsEeWdOZKmOtT48A" x="510" y="198"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_A5pi4a_2EeC6ALhykKLu_g"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_XNaigmzsEeWdOZKmOtT48A" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="fifo.uml#_RTeboHPpEd6R5tffIPrlPg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_j06y8K_2EeC6ALhykKLu_g" type="4013" source="_EnQdEK_2EeC6ALhykKLu_g" target="_lVZHMK_2EeC6ALhykKLu_g" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_j06y8a_2EeC6ALhykKLu_g" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_j06y8q_2EeC6ALhykKLu_g" points="[-59, 15, 114, -48]$[-115, 13, 58, -50]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mDuM0K_2EeC6ALhykKLu_g" id="(0.51,0.1)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_-Ji9UK_2EeC6ALhykKLu_g" type="4013" source="_8G4iAK_2EeC6ALhykKLu_g" target="_BddakK_2EeC6ALhykKLu_g" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_-Ji9Ua_2EeC6ALhykKLu_g" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-Ji9Uq_2EeC6ALhykKLu_g" points="[2, 9, -12, -48]$[12, 48, -2, -9]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-KKBUK_2EeC6ALhykKLu_g" id="(0.6187845303867403,0.85)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-KKBUa_2EeC6ALhykKLu_g" id="(0.4632352941176471,0.09)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XP3ZlGzsEeWdOZKmOtT48A" type="StereotypeCommentLink" source="_BddakK_2EeC6ALhykKLu_g" target="_XP3ZkGzsEeWdOZKmOtT48A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_XP3ZlWzsEeWdOZKmOtT48A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XP3ZmWzsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="fifo.uml#_Y1jF8HPpEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XP3ZlmzsEeWdOZKmOtT48A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XP3Zl2zsEeWdOZKmOtT48A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XP3ZmGzsEeWdOZKmOtT48A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XQdPdGzsEeWdOZKmOtT48A" type="StereotypeCommentLink" source="_lVZHMK_2EeC6ALhykKLu_g" target="_XQdPcGzsEeWdOZKmOtT48A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_XQdPdWzsEeWdOZKmOtT48A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XQdPeWzsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Property" href="fifo.uml#_XDRnoHUIEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XQdPdmzsEeWdOZKmOtT48A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XQdPd2zsEeWdOZKmOtT48A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XQdPeGzsEeWdOZKmOtT48A"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_sVGAsP3IEeC1YdT2qA0bjA" type="PapyrusUMLClassDiagram" name="PackageTemplate" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_t8v7AP3IEeC1YdT2qA0bjA" type="2007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t8wiEP3IEeC1YdT2qA0bjA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t8wiEf3IEeC1YdT2qA0bjA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t8wiEv3IEeC1YdT2qA0bjA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t8wiE_3IEeC1YdT2qA0bjA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t8wiFP3IEeC1YdT2qA0bjA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t8wiFf3IEeC1YdT2qA0bjA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_t8wiFv3IEeC1YdT2qA0bjA" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_t8wiF_3IEeC1YdT2qA0bjA" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_y88ecP3IEeC1YdT2qA0bjA" type="3010" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y89FgP3IEeC1YdT2qA0bjA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y89Fgf3IEeC1YdT2qA0bjA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y89Fgv3IEeC1YdT2qA0bjA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y89Fg_3IEeC1YdT2qA0bjA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y89FhP3IEeC1YdT2qA0bjA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y89Fhf3IEeC1YdT2qA0bjA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_y89skP3IEeC1YdT2qA0bjA" type="5014"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_y89skf3IEeC1YdT2qA0bjA" visible="false" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_y89skv3IEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_y89sk_3IEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_y89slP3IEeC1YdT2qA0bjA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y89slf3IEeC1YdT2qA0bjA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_y89slv3IEeC1YdT2qA0bjA" visible="false" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_y89sl_3IEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_y89smP3IEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_y89smf3IEeC1YdT2qA0bjA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y89smv3IEeC1YdT2qA0bjA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_y89sm_3IEeC1YdT2qA0bjA" visible="false" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_y89snP3IEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_y89snf3IEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_y89snv3IEeC1YdT2qA0bjA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y89sn_3IEeC1YdT2qA0bjA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XQoOkGzsEeWdOZKmOtT48A" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XQoOkWzsEeWdOZKmOtT48A" y="5"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XSG1QGzsEeWdOZKmOtT48A" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_XSG1QWzsEeWdOZKmOtT48A" name="stereotype" stringValue="FCM::InteractionComponent"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_Z1W68MtlEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XSG1QmzsEeWdOZKmOtT48A"/>
+ </children>
+ <element xmi:type="uml:Class" href="fifo.uml#_wh_EwHLmEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y88ecf3IEeC1YdT2qA0bjA" x="29" y="24" width="298" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_znvH4P3IEeC1YdT2qA0bjA" type="3010" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_znvu8P3IEeC1YdT2qA0bjA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_znvu8f3IEeC1YdT2qA0bjA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_znvu8v3IEeC1YdT2qA0bjA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_znvu8_3IEeC1YdT2qA0bjA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_znvu9P3IEeC1YdT2qA0bjA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_znvu9f3IEeC1YdT2qA0bjA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_znvu9v3IEeC1YdT2qA0bjA" type="5014"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_znvu9_3IEeC1YdT2qA0bjA" visible="false" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_znvu-P3IEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_znvu-f3IEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_znvu-v3IEeC1YdT2qA0bjA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_znvu-_3IEeC1YdT2qA0bjA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_znvu_P3IEeC1YdT2qA0bjA" visible="false" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_znvu_f3IEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_znvu_v3IEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_znvu__3IEeC1YdT2qA0bjA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_znvvAP3IEeC1YdT2qA0bjA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_znvvAf3IEeC1YdT2qA0bjA" visible="false" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_znvvAv3IEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_znvvA_3IEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_znvvBP3IEeC1YdT2qA0bjA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_znvvBf3IEeC1YdT2qA0bjA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XQoOkmzsEeWdOZKmOtT48A" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XQoOk2zsEeWdOZKmOtT48A" y="5"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XSXT8GzsEeWdOZKmOtT48A" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_XSXT8WzsEeWdOZKmOtT48A" name="stereotype" stringValue="FCM::InteractionComponent"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_Z1W68MtlEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XSXT8mzsEeWdOZKmOtT48A"/>
+ </children>
+ <element xmi:type="uml:Class" href="fifo.uml#_zc4voHLmEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_znvH4f3IEeC1YdT2qA0bjA" x="371" y="24" width="127" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2-j5wP3IEeC1YdT2qA0bjA" type="3009" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2-kg0P3IEeC1YdT2qA0bjA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2-kg0f3IEeC1YdT2qA0bjA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2-kg0v3IEeC1YdT2qA0bjA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2-kg0_3IEeC1YdT2qA0bjA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2-lH4P3IEeC1YdT2qA0bjA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2-lH4f3IEeC1YdT2qA0bjA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2-lH4v3IEeC1YdT2qA0bjA" type="5017"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2-lH4_3IEeC1YdT2qA0bjA" type="7010">
+ <children xmi:type="notation:Shape" xmi:id="_3sR7YP3IEeC1YdT2qA0bjA" type="3010" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3sSicP3IEeC1YdT2qA0bjA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3sSicf3IEeC1YdT2qA0bjA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3sTJgP3IEeC1YdT2qA0bjA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3sTJgf3IEeC1YdT2qA0bjA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3sTJgv3IEeC1YdT2qA0bjA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3sTJg_3IEeC1YdT2qA0bjA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3sTJhP3IEeC1YdT2qA0bjA" type="5014"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3sTJhf3IEeC1YdT2qA0bjA" visible="false" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3sTJhv3IEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3sTJh_3IEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3sTJiP3IEeC1YdT2qA0bjA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3sTJif3IEeC1YdT2qA0bjA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3sTJiv3IEeC1YdT2qA0bjA" visible="false" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3sTJi_3IEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3sTJjP3IEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3sTJjf3IEeC1YdT2qA0bjA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3sTJjv3IEeC1YdT2qA0bjA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3sTwkP3IEeC1YdT2qA0bjA" visible="false" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3sTwkf3IEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3sTwkv3IEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3sTwk_3IEeC1YdT2qA0bjA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3sTwlP3IEeC1YdT2qA0bjA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XQoOlGzsEeWdOZKmOtT48A" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XQoOlWzsEeWdOZKmOtT48A" y="5"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XSmkgGzsEeWdOZKmOtT48A" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_XSmkgWzsEeWdOZKmOtT48A" name="stereotype" stringValue="FCM::InteractionComponent"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_Z1W68MtlEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XSmkgmzsEeWdOZKmOtT48A"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XStSNGzsEeWdOZKmOtT48A" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_XStSNWzsEeWdOZKmOtT48A" name="stereotype" stringValue="C_Cpp::Include"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_RwTdQByJEduN1bTiWJ0lyw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XStSNmzsEeWdOZKmOtT48A"/>
+ </children>
+ <element xmi:type="uml:Class" href="fifo.uml#_Y1jF8HPpEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3sR7Yf3IEeC1YdT2qA0bjA" x="14" y="22" width="117" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_5CsUsP3IEeC1YdT2qA0bjA" type="3010" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5Cs7wP3IEeC1YdT2qA0bjA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5Cs7wf3IEeC1YdT2qA0bjA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5Cs7wv3IEeC1YdT2qA0bjA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5Cs7w_3IEeC1YdT2qA0bjA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5Cs7xP3IEeC1YdT2qA0bjA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5Cs7xf3IEeC1YdT2qA0bjA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5Cs7xv3IEeC1YdT2qA0bjA" type="5014"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5Cs7x_3IEeC1YdT2qA0bjA" visible="false" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5Cs7yP3IEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5Cs7yf3IEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5Cs7yv3IEeC1YdT2qA0bjA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5Cs7y_3IEeC1YdT2qA0bjA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5Cs7zP3IEeC1YdT2qA0bjA" visible="false" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5Cs7zf3IEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5Cs7zv3IEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5Cs7z_3IEeC1YdT2qA0bjA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5Cs70P3IEeC1YdT2qA0bjA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5Cs70f3IEeC1YdT2qA0bjA" visible="false" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5Cs70v3IEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5Cs70_3IEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5Cti0P3IEeC1YdT2qA0bjA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5Cti0f3IEeC1YdT2qA0bjA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XQoOlmzsEeWdOZKmOtT48A" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XQoOl2zsEeWdOZKmOtT48A" y="5"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XTCCUGzsEeWdOZKmOtT48A" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_XTCCUWzsEeWdOZKmOtT48A" name="stereotype" stringValue="FCM::InteractionComponent"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_Z1W68MtlEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XTCCUmzsEeWdOZKmOtT48A"/>
+ </children>
+ <element xmi:type="uml:Class" href="fifo.uml#_dr0doDqNEeCd_O2fHA8dPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5CsUsf3IEeC1YdT2qA0bjA" x="148" y="22" width="127" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XS11EGzsEeWdOZKmOtT48A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XS11EWzsEeWdOZKmOtT48A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XS11E2zsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="fifo.uml#_Y1jF8HPpEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XS11EmzsEeWdOZKmOtT48A" x="214" y="22"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XTJ-IGzsEeWdOZKmOtT48A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XTJ-IWzsEeWdOZKmOtT48A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XTJ-I2zsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="fifo.uml#_dr0doDqNEeCd_O2fHA8dPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XTJ-ImzsEeWdOZKmOtT48A" x="348" y="22"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2-lH5P3IEeC1YdT2qA0bjA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2-lH5f3IEeC1YdT2qA0bjA"/>
+ </children>
+ <element xmi:type="uml:Package" href="fifo.uml#_RTeboHPpEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2-j5wf3IEeC1YdT2qA0bjA" x="29" y="114" width="295"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XSPYIGzsEeWdOZKmOtT48A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XSPYIWzsEeWdOZKmOtT48A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XSPYI2zsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="fifo.uml#_wh_EwHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XSPYImzsEeWdOZKmOtT48A" x="229" y="24"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XSfPwGzsEeWdOZKmOtT48A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XSfPwWzsEeWdOZKmOtT48A" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XSfPw2zsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="fifo.uml#_zc4voHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XSfPwmzsEeWdOZKmOtT48A" x="571" y="24"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_t8wiGP3IEeC1YdT2qA0bjA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t8wiGf3IEeC1YdT2qA0bjA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_vn2K4P3IEeC1YdT2qA0bjA" type="3033" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vn2x8P3IEeC1YdT2qA0bjA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vn3ZAP3IEeC1YdT2qA0bjA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vn3ZAf3IEeC1YdT2qA0bjA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vn3ZAv3IEeC1YdT2qA0bjA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vn3ZA_3IEeC1YdT2qA0bjA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vn3ZBP3IEeC1YdT2qA0bjA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vn3ZBf3IEeC1YdT2qA0bjA" type="7038">
+ <children xmi:type="notation:Shape" xmi:id="_wTH8gP3IEeC1YdT2qA0bjA" type="3031" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="fifo.uml#_diTcwHLoEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wTH8gf3IEeC1YdT2qA0bjA" x="18" y="9"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_vn4AEP3IEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_vn4AEf3IEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_vn4AEv3IEeC1YdT2qA0bjA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vn4AE_3IEeC1YdT2qA0bjA"/>
+ </children>
+ <element xmi:type="uml:TemplateSignature" href="fifo.uml#_cHY98HLoEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vn2K4f3IEeC1YdT2qA0bjA" x="169" y="6"/>
+ </children>
+ <element xmi:type="uml:Package" href="fifo.uml#_qlssgHLmEd6R5tffIPrlPg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t8v7Af3IEeC1YdT2qA0bjA" x="108" y="94" width="557" height="267"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_sVGnwP3IEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_XQoOmGzsEeWdOZKmOtT48A" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="fifo.uml#_qlssgHLmEd6R5tffIPrlPg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_DmN90P3JEeC1YdT2qA0bjA" type="4002" source="_3sR7YP3IEeC1YdT2qA0bjA" target="_y88ecP3IEeC1YdT2qA0bjA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_DmOk4P3JEeC1YdT2qA0bjA" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DmOk4f3JEeC1YdT2qA0bjA" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_DmN90f3JEeC1YdT2qA0bjA" fontName="Sans Serif"/>
+ <element xmi:type="uml:Generalization" href="fifo.uml#_Z4Oq8HPpEd6R5tffIPrlPg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_DmN90v3JEeC1YdT2qA0bjA" points="[-3, -20, 16, 118]$[-17, -117, 2, 21]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_G0kJIP3JEeC1YdT2qA0bjA" id="(0.2483221476510067,0.975609756097561)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_E3vQEP3JEeC1YdT2qA0bjA" type="4002" source="_5CsUsP3IEeC1YdT2qA0bjA" target="_y88ecP3IEeC1YdT2qA0bjA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_E3weMP3JEeC1YdT2qA0bjA" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_E3weMf3JEeC1YdT2qA0bjA" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_E3vQEf3JEeC1YdT2qA0bjA" fontName="Sans Serif"/>
+ <element xmi:type="uml:Generalization" href="fifo.uml#_dr0dozqNEeCd_O2fHA8dPg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_E3vQEv3JEeC1YdT2qA0bjA" points="[-23, -20, 129, 118]$[-130, -117, 22, 21]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GEAO4P3JEeC1YdT2qA0bjA" id="(0.7483221476510067,0.8536585365853658)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XSPYJGzsEeWdOZKmOtT48A" type="StereotypeCommentLink" source="_y88ecP3IEeC1YdT2qA0bjA" target="_XSPYIGzsEeWdOZKmOtT48A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_XSPYJWzsEeWdOZKmOtT48A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XSPYKWzsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="fifo.uml#_wh_EwHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XSPYJmzsEeWdOZKmOtT48A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XSPYJ2zsEeWdOZKmOtT48A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XSPYKGzsEeWdOZKmOtT48A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XSfPxGzsEeWdOZKmOtT48A" type="StereotypeCommentLink" source="_znvH4P3IEeC1YdT2qA0bjA" target="_XSfPwGzsEeWdOZKmOtT48A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_XSfPxWzsEeWdOZKmOtT48A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XSf20GzsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="fifo.uml#_zc4voHLmEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XSfPxmzsEeWdOZKmOtT48A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XSfPx2zsEeWdOZKmOtT48A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XSfPyGzsEeWdOZKmOtT48A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XS11FGzsEeWdOZKmOtT48A" type="StereotypeCommentLink" source="_3sR7YP3IEeC1YdT2qA0bjA" target="_XS11EGzsEeWdOZKmOtT48A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_XS11FWzsEeWdOZKmOtT48A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XS11GWzsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="fifo.uml#_Y1jF8HPpEd6R5tffIPrlPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XS11FmzsEeWdOZKmOtT48A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XS11F2zsEeWdOZKmOtT48A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XS11GGzsEeWdOZKmOtT48A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XTJ-JGzsEeWdOZKmOtT48A" type="StereotypeCommentLink" source="_5CsUsP3IEeC1YdT2qA0bjA" target="_XTJ-IGzsEeWdOZKmOtT48A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_XTJ-JWzsEeWdOZKmOtT48A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XTJ-KWzsEeWdOZKmOtT48A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="fifo.uml#_dr0doDqNEeCd_O2fHA8dPg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XTJ-JmzsEeWdOZKmOtT48A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XTJ-J2zsEeWdOZKmOtT48A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XTJ-KGzsEeWdOZKmOtT48A"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/fifo.uml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/fifo.uml
new file mode 100644
index 00000000000..9b65b43823d
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/fifo.uml
@@ -0,0 +1,432 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:C_Cpp="http://www.eclipse.org/papyrus/C_Cpp/1" xmlns:FCM="http://www.eclipse.org/papyrus/FCM/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <uml:Model xmi:id="_ePwqkHLmEd6R5tffIPrlPg" name="fifo">
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_mcPj0HLmEd6R5tffIPrlPg" alias="BasicCalls">
+ <importedElement xmi:type="uml:Model" href="core.uml#_O6TiIDLUEd26WNosUASSSw"/>
+ </elementImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_ePwqkXLmEd6R5tffIPrlPg">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_cBFXEHLnEd6R5tffIPrlPg">
+ <importedPackage xmi:type="uml:Package" href="core.uml#_QwvnQFDlEd6cwecVIgl9nw"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_F4JYYHUIEd6R5tffIPrlPg">
+ <importedPackage xmi:type="uml:Model" href="corba.uml#_DtQEwDLdEd2_U4efLnjQIw"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_svKG8F72EeGerN33d-RdRg">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/core.uml#_O6TiIDLUEd26WNosUASSSw"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Package" xmi:id="_uBS5sK8tEeCXIcykFPsB8Q" name="DataExchange_size">
+ <ownedTemplateSignature xmi:type="uml:TemplateSignature" xmi:id="_1AfgcK8tEeCXIcykFPsB8Q" parameter="_diTcwHLoEd6R5tffIPrlPg _H5vB4K8vEeCXIcykFPsB8Q">
+ <ownedParameter xmi:type="uml:TemplateParameter" xmi:id="_H5vB4K8vEeCXIcykFPsB8Q" parameteredElement="_OURcYK8vEeCXIcykFPsB8Q">
+ <ownedParameteredElement xmi:type="uml:LiteralInteger" xmi:id="_OURcYK8vEeCXIcykFPsB8Q" name="size" templateParameter="_H5vB4K8vEeCXIcykFPsB8Q"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <packagedElement xmi:type="uml:Class" xmi:id="_DA0VYK4iEeCXIcykFPsB8Q" name="FIFOStaticAlloc_impl">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_DA0VYa4iEeCXIcykFPsB8Q" annotatedElement="_DA0VYK4iEeCXIcykFPsB8Q">
+ <body>Implementation stores an attribute (fixed size array) of template data type</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_DA0VYq4iEeCXIcykFPsB8Q">
+ <body>This is an implementation of a FIFO of a fixed size (20 elements of the data type it carries).</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_DA0VY64iEeCXIcykFPsB8Q" general="_wh_EwHLmEd6R5tffIPrlPg"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_DA0VZK4iEeCXIcykFPsB8Q" name="m_push_pos" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_DA0VZa4iEeCXIcykFPsB8Q" name="m_pull_pos" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_DA0VZq4iEeCXIcykFPsB8Q" name="m_size" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DA0VaK4iEeCXIcykFPsB8Q" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DA0VZ64iEeCXIcykFPsB8Q" value="1"/>
+ <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_DA0Vaa4iEeCXIcykFPsB8Q" value="20"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_DA0Vaq4iEeCXIcykFPsB8Q" name="m_filled" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_DA0Va64iEeCXIcykFPsB8Q" name="m_fifo" visibility="public" type="_j_050HLoEd6R5tffIPrlPg" isUnique="false" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DA0Vba4iEeCXIcykFPsB8Q" value="20"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DA0VbK4iEeCXIcykFPsB8Q" value="20"/>
+ </ownedAttribute>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_6A5U8HDQEeW-DpbXG8iXSw" name="derived realization of Push_T" client="_DA0VYK4iEeCXIcykFPsB8Q" supplier="_5tOLAHDQEeW-DpbXG8iXSw" contract="_5tOLAHDQEeW-DpbXG8iXSw"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_6A7xMHDQEeW-DpbXG8iXSw" name="derived realization of PullConsumer_T" client="_DA0VYK4iEeCXIcykFPsB8Q" supplier="_57QnAHDQEeW-DpbXG8iXSw" contract="_57QnAHDQEeW-DpbXG8iXSw"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_DA0Vbq4iEeCXIcykFPsB8Q" name="pull">
+ <language>C/C++</language>
+ <body>if (m_filled > 0) {
+ int current_pos = m_pull_pos;
+
+ m_pull_pos ++;
+ m_filled --;
+ if (m_pull_pos == m_size) {
+ m_pull_pos = 0;
+ }
+ return m_fifo [current_pos];
+}</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_DA0Vb64iEeCXIcykFPsB8Q" name="push">
+ <language>C/C++</language>
+ <body>// copy passed parameters ...
+if (m_filled &lt; m_size) {
+ m_fifo [m_push_pos] = data;
+ m_push_pos ++;
+ m_filled ++;
+ if (m_push_pos == m_size) {
+ m_push_pos = 0;
+ }
+}</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_DA0VcK4iEeCXIcykFPsB8Q" name="hasData">
+ <language>C/C++</language>
+ <body>return (m_filled > 0);</body>
+ </ownedBehavior>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_qlssgHLmEd6R5tffIPrlPg" name="DataExchange">
+ <ownedTemplateSignature xmi:type="uml:TemplateSignature" xmi:id="_cHY98HLoEd6R5tffIPrlPg" parameter="_diTcwHLoEd6R5tffIPrlPg">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_diTcwHLoEd6R5tffIPrlPg" parameteredElement="_j_050HLoEd6R5tffIPrlPg">
+ <ownedParameteredElement xmi:type="uml:DataType" xmi:id="_j_050HLoEd6R5tffIPrlPg" name="T" templateParameter="_diTcwHLoEd6R5tffIPrlPg"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <packagedElement xmi:type="uml:Class" xmi:id="_wh_EwHLmEd6R5tffIPrlPg" name="PushPull" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_6zGSwHLnEd6R5tffIPrlPg" general="_unqQoHLnEd6R5tffIPrlPg"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_9mPv0HLnEd6R5tffIPrlPg" general="_wtZ1IHLnEd6R5tffIPrlPg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_zc4voHLmEd6R5tffIPrlPg" name="PushPush" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_Dc1vwHLoEd6R5tffIPrlPg" general="_yqYfMHLnEd6R5tffIPrlPg"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_ELTYQHLoEd6R5tffIPrlPg" general="_unqQoHLnEd6R5tffIPrlPg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_unqQoHLnEd6R5tffIPrlPg" name="PushP" isAbstract="true">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_xHb7MHLmEd6R5tffIPrlPg" name="pushP" visibility="public" type="_56DtIHDQEeW-DpbXG8iXSw" aggregation="composite" isConjugated="true">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SJlB4DFrEeCz5-DK9j5azg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SLJvMDFrEeCz5-DK9j5azg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_iRXR8P3IEeC1YdT2qA0bjA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_wtZ1IHLnEd6R5tffIPrlPg" name="PullC" isAbstract="true">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_xcu1wHLmEd6R5tffIPrlPg" name="pullC" visibility="public" type="_56tNYHDQEeW-DpbXG8iXSw" aggregation="composite" isConjugated="true">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VhIMgDFrEeCz5-DK9j5azg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ViKuUDFrEeCz5-DK9j5azg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_2az3IC_fEeKl_vDGXh-OPw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_yqYfMHLnEd6R5tffIPrlPg" name="PushC" isAbstract="true">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_TRsvoHLoEd6R5tffIPrlPg" name="pushC" visibility="public" type="_j_050HLoEd6R5tffIPrlPg" aggregation="composite" isConjugated="true">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QQVBQDFrEeCz5-DK9j5azg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QR2rQDFrEeCz5-DK9j5azg" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_RTeboHPpEd6R5tffIPrlPg" name="FIFO">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_PwZ2MDqOEeCd_O2fHA8dPg" annotatedElement="_dr0doDqNEeCd_O2fHA8dPg">
+ <body>Simple storage of last data that has been received. Unlike FIFO, data can be read several times.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_K_UZoDF2EeCpQdhNuFCtew" annotatedElement="_Y1jF8HPpEd6R5tffIPrlPg">
+ <body>This is an implementation of a FIFO of a configurable size (default: 20 elements).</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Y1jF8HPpEd6R5tffIPrlPg" name="FIFO_impl">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_EiDM8K_2EeC6ALhykKLu_g" annotatedElement="_XDRnoHUIEd6R5tffIPrlPg">
+ <body>Configuration attribute: the size of the FIFO
+</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_Z4Oq8HPpEd6R5tffIPrlPg" general="_wh_EwHLmEd6R5tffIPrlPg"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_ws_1gF72EeGerN33d-RdRg">
+ <general xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
+ </generalization>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_6iV9wHUHEd6R5tffIPrlPg" name="m_push_pos" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_RlKZIHUIEd6R5tffIPrlPg" name="m_pull_pos" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_XDRnoHUIEd6R5tffIPrlPg" name="m_size" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SUhOUBGcEd-rfYlCjUOxJQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SUpKIBGcEd-rfYlCjUOxJQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_T1yz0BGcEd-rfYlCjUOxJQ" value="20"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_XcO6MHUIEd6R5tffIPrlPg" name="m_filled" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_zNeIsBGZEd-rfYlCjUOxJQ" name="m_fifo" visibility="public" type="_j_050HLoEd6R5tffIPrlPg" isUnique="false" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Q8o1YBGcEd-rfYlCjUOxJQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Q8vjEBGcEd-rfYlCjUOxJQ" value="*"/>
+ </ownedAttribute>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_y6XsAF72EeGerN33d-RdRg" name="derived realization of ILifeCycle" client="_Y1jF8HPpEd6R5tffIPrlPg">
+ <supplier xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ <contract xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ </interfaceRealization>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_6FNNMHDQEeW-DpbXG8iXSw" name="derived realization of Push_T" client="_Y1jF8HPpEd6R5tffIPrlPg" supplier="_5tOLAHDQEeW-DpbXG8iXSw" contract="_5tOLAHDQEeW-DpbXG8iXSw"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_6FPCYHDQEeW-DpbXG8iXSw" name="derived realization of PullConsumer_T" client="_Y1jF8HPpEd6R5tffIPrlPg" supplier="_57QnAHDQEeW-DpbXG8iXSw" contract="_57QnAHDQEeW-DpbXG8iXSw"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_FjGlgP69Ed6Zw96O-tCw7A" name="pull" specification="_EYx84P68Ed6Zw96O-tCw7A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_qCGgYIegEeO4jYNrBbiXBw" name="ret" type="_j_050HLoEd6R5tffIPrlPg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qCHugIegEeO4jYNrBbiXBw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_qCIVkIegEeO4jYNrBbiXBw" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>if (m_filled > 0) {
+ int current_pos = m_pull_pos;
+
+ m_pull_pos ++;
+ m_filled --;
+ if (m_pull_pos == m_size) {
+ m_pull_pos = 0;
+ }
+ return m_fifo [current_pos];
+}</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_IwXLsP69Ed6Zw96O-tCw7A" name="push" specification="_EYsdUP68Ed6Zw96O-tCw7A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_qCI8oIegEeO4jYNrBbiXBw" name="data" type="_j_050HLoEd6R5tffIPrlPg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qCI8oYegEeO4jYNrBbiXBw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_qCJjsIegEeO4jYNrBbiXBw" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>// copy passed parameters ...
+if (m_filled &lt; m_size) {
+ m_fifo [m_push_pos] = data;
+ m_push_pos ++;
+ m_filled ++;
+ if (m_push_pos == m_size) {
+ m_push_pos = 0;
+ }
+}</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="__Ha0IBJHEd-XjYZ05V-9-Q" name="hasData" specification="_AnQ3QBI9Ed-XjYZ05V-9-Q">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_qCKKwIegEeO4jYNrBbiXBw" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="corba.uml#_Bv7l0B-VEd6nGq8wpI2tjg"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qCKx0IegEeO4jYNrBbiXBw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_qCKx0YegEeO4jYNrBbiXBw" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return (m_filled > 0);</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_QzOqwK8yEeCXIcykFPsB8Q" name="activate" specification="_5IpEwK8xEeCXIcykFPsB8Q">
+ <language>C/C++</language>
+ <body>!xtend FIFO.activate</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_EYsdUP68Ed6Zw96O-tCw7A" name="push" method="_IwXLsP69Ed6Zw96O-tCw7A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_EYtEYP68Ed6Zw96O-tCw7A" name="data" type="_j_050HLoEd6R5tffIPrlPg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_EYtEYf68Ed6Zw96O-tCw7A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_EYtEYv68Ed6Zw96O-tCw7A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_EYx84P68Ed6Zw96O-tCw7A" name="pull" method="_FjGlgP69Ed6Zw96O-tCw7A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_EYx84f68Ed6Zw96O-tCw7A" name="ret" type="_j_050HLoEd6R5tffIPrlPg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_EYx84v68Ed6Zw96O-tCw7A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_EYx84_68Ed6Zw96O-tCw7A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_AnQ3QBI9Ed-XjYZ05V-9-Q" name="hasData" method="__Ha0IBJHEd-XjYZ05V-9-Q">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_AtKsIBJXEd-QgZm_R1AKbA" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="corba.uml#_Bv7l0B-VEd6nGq8wpI2tjg"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_AtNIYBJXEd-QgZm_R1AKbA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_AtNvcBJXEd-QgZm_R1AKbA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_5IpEwK8xEeCXIcykFPsB8Q" name="activate" method="_QzOqwK8yEeCXIcykFPsB8Q"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_y7cqEF72EeGerN33d-RdRg" name="deactivate"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_qB4d8IegEeO4jYNrBbiXBw" name="configuration_complete"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_dr0doDqNEeCd_O2fHA8dPg" name="KeepLast">
+ <generalization xmi:type="uml:Generalization" xmi:id="_dr0dozqNEeCd_O2fHA8dPg" general="_wh_EwHLmEd6R5tffIPrlPg"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_dr0dqzqNEeCd_O2fHA8dPg" name="m_data" visibility="public" type="_j_050HLoEd6R5tffIPrlPg" isUnique="false" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dr0drTqNEeCd_O2fHA8dPg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dr0drDqNEeCd_O2fHA8dPg" value="1"/>
+ </ownedAttribute>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_6OXwQHDQEeW-DpbXG8iXSw" name="derived realization of Push_T" client="_dr0doDqNEeCd_O2fHA8dPg" supplier="_5tOLAHDQEeW-DpbXG8iXSw" contract="_5tOLAHDQEeW-DpbXG8iXSw"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_6OaMgHDQEeW-DpbXG8iXSw" name="derived realization of PullConsumer_T" client="_dr0doDqNEeCd_O2fHA8dPg" supplier="_57QnAHDQEeW-DpbXG8iXSw" contract="_57QnAHDQEeW-DpbXG8iXSw"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_dr0drjqNEeCd_O2fHA8dPg" name="pull">
+ <language>C/C++</language>
+ <body>return m_data;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_dr0drzqNEeCd_O2fHA8dPg" name="push">
+ <language>C/C++</language>
+ <body>// copy passed parameter ...
+m_data = data;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_dr0dsDqNEeCd_O2fHA8dPg" name="hasData">
+ <language>C/C++</language>
+ <body>// only return true, once first data has been received
+return true;</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_iS924L5wEeKpNr0GJaRwvw" name="push">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_iTxvML5wEeKpNr0GJaRwvw" name="data" type="_j_050HLoEd6R5tffIPrlPg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iUYzML5wEeKpNr0GJaRwvw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iUmOkL5wEeKpNr0GJaRwvw" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_iVK2UL5wEeKpNr0GJaRwvw" name="pull">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_iV-uoL5wEeKpNr0GJaRwvw" name="ret" type="_j_050HLoEd6R5tffIPrlPg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iWlLkL5wEeKpNr0GJaRwvw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iWym8L5wEeKpNr0GJaRwvw" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_iXWAkL5wEeKpNr0GJaRwvw" name="hasData">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_iYKf8L5wEeKpNr0GJaRwvw" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="corba.uml#_Bv7l0B-VEd6nGq8wpI2tjg"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iYyLAL5wEeKpNr0GJaRwvw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iY_mYL5wEeKpNr0GJaRwvw" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_qZQUUC_gEeKl_vDGXh-OPw" name="KeepLastBidir">
+ <generalization xmi:type="uml:Generalization" xmi:id="_qZQUUS_gEeKl_vDGXh-OPw" general="_gKLGoC_fEeKl_vDGXh-OPw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_qZQUUi_gEeKl_vDGXh-OPw" name="m_data" visibility="public" type="_j_050HLoEd6R5tffIPrlPg" isUnique="false" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qZQUUy_gEeKl_vDGXh-OPw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_qZQUVC_gEeKl_vDGXh-OPw" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_qZQUVy_gEeKl_vDGXh-OPw" name="pull">
+ <language>C/C++</language>
+ <body>return m_data;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_qZQUWC_gEeKl_vDGXh-OPw" name="push">
+ <language>C/C++</language>
+ <body>// copy passed parameter ...
+m_data = data;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_qZQUWS_gEeKl_vDGXh-OPw" name="hasData">
+ <language>C/C++</language>
+ <body>// only return true, once first data has been received
+return true;</body>
+ </ownedBehavior>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_gKLGoC_fEeKl_vDGXh-OPw" name="BidirPushPull" isAbstract="true">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_h9XikC_fEeKl_vDGXh-OPw" name="inoutR" visibility="public" type="_j_050HLoEd6R5tffIPrlPg" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_i_u-gC_fEeKl_vDGXh-OPw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_i_2TQC_fEeKl_vDGXh-OPw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_i_9oAC_fEeKl_vDGXh-OPw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_jaXsEC_fEeKl_vDGXh-OPw" name="inoutL" visibility="public" type="_j_050HLoEd6R5tffIPrlPg" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jo2M8C_fEeKl_vDGXh-OPw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jo7FcC_fEeKl_vDGXh-OPw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_jpBzIC_fEeKl_vDGXh-OPw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_5tEaAHDQEeW-DpbXG8iXSw" name="derivedTypes">
+ <packagedElement xmi:type="uml:Package" xmi:id="_5tKgoHDQEeW-DpbXG8iXSw" name="fifo">
+ <packagedElement xmi:type="uml:Package" xmi:id="_5tMV0HDQEeW-DpbXG8iXSw" name="DataExchange">
+ <packagedElement xmi:type="uml:Interface" xmi:id="_5tOLAHDQEeW-DpbXG8iXSw" name="Push_T">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_56ej4HDQEeW-DpbXG8iXSw" name="push">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_56jcYHDQEeW-DpbXG8iXSw" name="data" type="_j_050HLoEd6R5tffIPrlPg"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_56DtIHDQEeW-DpbXG8iXSw" name="CPush_T"/>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_56a5gHDQEeW-DpbXG8iXSw" client="_56DtIHDQEeW-DpbXG8iXSw" supplier="_5tOLAHDQEeW-DpbXG8iXSw"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_56tNYHDQEeW-DpbXG8iXSw" name="CPullConsumer_T"/>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_57QnAHDQEeW-DpbXG8iXSw" name="PullConsumer_T">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_576uUHDQEeW-DpbXG8iXSw" name="pull">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_578jgHDQEeW-DpbXG8iXSw" name="ret" type="_j_050HLoEd6R5tffIPrlPg" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_6Ar5kHDQEeW-DpbXG8iXSw" name="hasData"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_57rdwHDQEeW-DpbXG8iXSw" client="_56tNYHDQEeW-DpbXG8iXSw" supplier="_57QnAHDQEeW-DpbXG8iXSw"/>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_eWXo4HLmEd6R5tffIPrlPg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eWdIcHLmEd6R5tffIPrlPg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_6uptEHLmEd6R5tffIPrlPg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6vA5cHLmEd6R5tffIPrlPg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/FCM/1#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://FCM_PROFILES/FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_caocoF8DEeGerN33d-RdRg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cokK8F8DEeGerN33d-RdRg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/C_Cpp/1#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
+ </profileApplication>
+ </uml:Model>
+ <standard:ModelLibrary xmi:id="_eex-AHLmEd6R5tffIPrlPg" base_Package="_ePwqkHLmEd6R5tffIPrlPg"/>
+ <FCM:Port xmi:id="_42zlMHLnEd6R5tffIPrlPg" base_Port="_xHb7MHLmEd6R5tffIPrlPg" type="_j_050HLoEd6R5tffIPrlPg">
+ <kind xmi:type="FCM:PortKind" href="core.uml#_qOK0cFR1Ed6GqrP6fkWBoQ"/>
+ </FCM:Port>
+ <FCM:Port xmi:id="_57KlMHLnEd6R5tffIPrlPg" base_Port="_xcu1wHLmEd6R5tffIPrlPg" type="_j_050HLoEd6R5tffIPrlPg">
+ <kind xmi:type="FCM:PortKind" href="core.uml#_x5mL4FRxEd6GqrP6fkWBoQ"/>
+ </FCM:Port>
+ <FCM:Port xmi:id="_TRtWsHLoEd6R5tffIPrlPg" base_Port="_TRsvoHLoEd6R5tffIPrlPg" type="_j_050HLoEd6R5tffIPrlPg">
+ <kind xmi:type="FCM:PortKind" href="core.uml#_pE6GUFR1Ed6GqrP6fkWBoQ"/>
+ </FCM:Port>
+ <FCM:InteractionComponent xmi:id="_xQ_ccHUuEd6R5tffIPrlPg" base_Class="_Y1jF8HPpEd6R5tffIPrlPg"/>
+ <FCM:DerivedElement xmi:id="_0TRKgP6-Ed6Zw96O-tCw7A" base_Element="_EYsdUP68Ed6Zw96O-tCw7A"/>
+ <FCM:DerivedElement xmi:id="_0TVb8P6-Ed6Zw96O-tCw7A" base_Element="_EYx84P68Ed6Zw96O-tCw7A"/>
+ <FCM:DerivedElement xmi:id="_7G9E0P6-Ed6Zw96O-tCw7A" base_Element="_EYsdUP68Ed6Zw96O-tCw7A"/>
+ <FCM:DerivedElement xmi:id="_7HAIIP6-Ed6Zw96O-tCw7A" base_Element="_EYx84P68Ed6Zw96O-tCw7A"/>
+ <FCM:InteractionComponent xmi:id="_IwT2cP6_Ed6Zw96O-tCw7A" base_Class="_wh_EwHLmEd6R5tffIPrlPg"/>
+ <FCM:InteractionComponent xmi:id="_KcV6cP6_Ed6Zw96O-tCw7A" base_Class="_zc4voHLmEd6R5tffIPrlPg"/>
+ <FCM:DerivedElement xmi:id="_vfBPwARNEd-OidZzGKCpzg" base_Element="_EYsdUP68Ed6Zw96O-tCw7A"/>
+ <FCM:DerivedElement xmi:id="_vfETEARNEd-OidZzGKCpzg" base_Element="_EYx84P68Ed6Zw96O-tCw7A"/>
+ <FCM:DerivedElement xmi:id="_op38oAnOEd-9beZpMGts2w" base_Element="_EYsdUP68Ed6Zw96O-tCw7A"/>
+ <FCM:DerivedElement xmi:id="_op6Y4AnOEd-9beZpMGts2w" base_Element="_EYx84P68Ed6Zw96O-tCw7A"/>
+ <FCM:DerivedElement xmi:id="_6tSQAAnUEd-co_m_wv4b6A" base_Element="_EYx84P68Ed6Zw96O-tCw7A"/>
+ <FCM:DerivedElement xmi:id="_6tRB4AnUEd-co_m_wv4b6A" base_Element="_EYsdUP68Ed6Zw96O-tCw7A"/>
+ <FCM:DerivedElement xmi:id="_YMvtUBGZEd-rfYlCjUOxJQ" base_Element="_EYsdUP68Ed6Zw96O-tCw7A"/>
+ <FCM:DerivedElement xmi:id="_YMw7cBGZEd-rfYlCjUOxJQ" base_Element="_EYx84P68Ed6Zw96O-tCw7A"/>
+ <FCM:DerivedElement xmi:id="_t02owBGaEd-rfYlCjUOxJQ" base_Element="_EYsdUP68Ed6Zw96O-tCw7A"/>
+ <FCM:DerivedElement xmi:id="_t04d8BGaEd-rfYlCjUOxJQ" base_Element="_EYx84P68Ed6Zw96O-tCw7A"/>
+ <FCM:DerivedElement xmi:id="_G7PB4BGcEd-rfYlCjUOxJQ" base_Element="_EYsdUP68Ed6Zw96O-tCw7A"/>
+ <FCM:DerivedElement xmi:id="_G7QQABGcEd-rfYlCjUOxJQ" base_Element="_EYx84P68Ed6Zw96O-tCw7A"/>
+ <FCM:DerivedElement xmi:id="_C4zYIBGlEd-Jq_XWT8Mhpg" base_Element="_EYsdUP68Ed6Zw96O-tCw7A"/>
+ <FCM:DerivedElement xmi:id="_C5J9cBGlEd-Jq_XWT8Mhpg" base_Element="_EYx84P68Ed6Zw96O-tCw7A"/>
+ <FCM:DerivedElement xmi:id="_IAwfQBI7Ed-3zOZ0RGapGA" base_Element="_EYsdUP68Ed6Zw96O-tCw7A"/>
+ <FCM:DerivedElement xmi:id="_IAxtYBI7Ed-3zOZ0RGapGA" base_Element="_EYx84P68Ed6Zw96O-tCw7A"/>
+ <FCM:DerivedElement xmi:id="_AnNM4BI9Ed-XjYZ05V-9-Q" base_Element="_EYsdUP68Ed6Zw96O-tCw7A"/>
+ <FCM:DerivedElement xmi:id="_AnPpIBI9Ed-XjYZ05V-9-Q" base_Element="_EYx84P68Ed6Zw96O-tCw7A"/>
+ <FCM:DerivedElement xmi:id="_11TxwBJWEd-QgZm_R1AKbA" base_Element="_EYsdUP68Ed6Zw96O-tCw7A"/>
+ <FCM:DerivedElement xmi:id="_11WOABJWEd-QgZm_R1AKbA" base_Element="_EYx84P68Ed6Zw96O-tCw7A"/>
+ <FCM:DerivedElement xmi:id="_11YqQBJWEd-QgZm_R1AKbA" base_Element="_AnQ3QBI9Ed-XjYZ05V-9-Q"/>
+ <FCM:DerivedElement xmi:id="_C7UZcBQ-Ed-_dI0JopJMvQ" base_Element="_EYsdUP68Ed6Zw96O-tCw7A"/>
+ <FCM:DerivedElement xmi:id="_C7WOoBQ-Ed-_dI0JopJMvQ" base_Element="_EYx84P68Ed6Zw96O-tCw7A"/>
+ <FCM:DerivedElement xmi:id="_C7YD0BQ-Ed-_dI0JopJMvQ" base_Element="_AnQ3QBI9Ed-XjYZ05V-9-Q"/>
+ <FCM:DerivedElement xmi:id="_kUMisBb8Ed-u0pMEAnvpEQ" base_Element="_EYsdUP68Ed6Zw96O-tCw7A"/>
+ <FCM:DerivedElement xmi:id="_kUNw0Bb8Ed-u0pMEAnvpEQ" base_Element="_EYx84P68Ed6Zw96O-tCw7A"/>
+ <FCM:DerivedElement xmi:id="_kUPmABb8Ed-u0pMEAnvpEQ" base_Element="_AnQ3QBI9Ed-XjYZ05V-9-Q"/>
+ <FCM:DerivedElement xmi:id="_6-zKABcKEd-Tda7vKXmT2A" base_Element="_EYsdUP68Ed6Zw96O-tCw7A"/>
+ <FCM:DerivedElement xmi:id="_6-1mQBcKEd-Tda7vKXmT2A" base_Element="_EYx84P68Ed6Zw96O-tCw7A"/>
+ <FCM:DerivedElement xmi:id="_6-3bcBcKEd-Tda7vKXmT2A" base_Element="_AnQ3QBI9Ed-XjYZ05V-9-Q"/>
+ <FCM:InteractionComponent xmi:id="_hp8gEDqNEeCd_O2fHA8dPg" base_Class="_dr0doDqNEeCd_O2fHA8dPg"/>
+ <FCM:InteractionComponent xmi:id="_MyvicK4iEeCXIcykFPsB8Q" base_Class="_DA0VYK4iEeCXIcykFPsB8Q"/>
+ <FCM:Template xmi:id="_53zBoK-xEeC6ALhykKLu_g" base_Element="_5IpEwK8xEeCXIcykFPsB8Q"/>
+ <FCM:ConfigurationProperty xmi:id="_FxN9cLC0EeCaaIdtw75MLg" base_Property="_XDRnoHUIEd6R5tffIPrlPg"/>
+ <FCM:DerivedElement xmi:id="_y7XKgF72EeGerN33d-RdRg" base_Element="_5IpEwK8xEeCXIcykFPsB8Q">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_y7vlAF72EeGerN33d-RdRg" base_Element="_y7cqEF72EeGerN33d-RdRg">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <C_Cpp:Include xmi:id="_fUHyQF8DEeGerN33d-RdRg" body="#include &lt;iostream>&#xA;using namespace std;" base_class="_Y1jF8HPpEd6R5tffIPrlPg"/>
+ <FCM:InteractionComponent xmi:id="_Ha4s8C_gEeKl_vDGXh-OPw" base_Class="_gKLGoC_fEeKl_vDGXh-OPw"/>
+ <FCM:InteractionComponent xmi:id="_qZSwkC_gEeKl_vDGXh-OPw" base_Class="_qZQUUC_gEeKl_vDGXh-OPw"/>
+ <FCM:Port xmi:id="_9Pv5MC_gEeKl_vDGXh-OPw" base_Port="_jaXsEC_fEeKl_vDGXh-OPw" type="_j_050HLoEd6R5tffIPrlPg" conjugated="true">
+ <kind xmi:type="FCM:PortKind" href="core.uml#_SrCqQC8qEeKx7OxAiA06uw"/>
+ </FCM:Port>
+ <FCM:Port xmi:id="_DPPWcC_hEeKl_vDGXh-OPw" base_Port="_h9XikC_fEeKl_vDGXh-OPw" type="_j_050HLoEd6R5tffIPrlPg" conjugated="true">
+ <kind xmi:type="FCM:PortKind" href="core.uml#_SrCqQC8qEeKx7OxAiA06uw"/>
+ </FCM:Port>
+ <FCM:DerivedElement xmi:id="_iU8M0L5wEeKpNr0GJaRwvw" base_Element="_iS924L5wEeKpNr0GJaRwvw"/>
+ <FCM:DerivedElement xmi:id="_iXH-IL5wEeKpNr0GJaRwvw" base_Element="_iVK2UL5wEeKpNr0GJaRwvw"/>
+ <FCM:DerivedElement xmi:id="_iZUWgL5wEeKpNr0GJaRwvw" base_Element="_iXWAkL5wEeKpNr0GJaRwvw"/>
+ <FCM:DerivedElement xmi:id="_qCAZwIegEeO4jYNrBbiXBw" base_Element="_qB4d8IegEeO4jYNrBbiXBw">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_ns4qsClUEeO4bs_nkcnKOg"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_556jMHDQEeW-DpbXG8iXSw" base_Element="_5tOLAHDQEeW-DpbXG8iXSw" source="_j_050HLoEd6R5tffIPrlPg"/>
+ <FCM:DerivedElement xmi:id="_56YdQHDQEeW-DpbXG8iXSw" base_Element="_56DtIHDQEeW-DpbXG8iXSw" source="_j_050HLoEd6R5tffIPrlPg"/>
+ <FCM:DerivedElement xmi:id="_57M8oHDQEeW-DpbXG8iXSw" base_Element="_56tNYHDQEeW-DpbXG8iXSw" source="_j_050HLoEd6R5tffIPrlPg"/>
+ <FCM:DerivedElement xmi:id="_57oacHDQEeW-DpbXG8iXSw" base_Element="_57QnAHDQEeW-DpbXG8iXSw" source="_j_050HLoEd6R5tffIPrlPg"/>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/In.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/In.png
new file mode 100644
index 00000000000..74dfe916ca6
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/In.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/In.svg b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/In.svg
new file mode 100644
index 00000000000..42b2257c295
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/In.svg
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.2 r9819"
+ width="10"
+ height="10"
+ sodipodi:docname="In.svg">
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="775"
+ inkscape:window-height="564"
+ id="namedview4"
+ showgrid="false"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-global="false"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:zoom="23.6"
+ inkscape:cx="-1.9979376"
+ inkscape:cy="4.2076271"
+ inkscape:window-x="599"
+ inkscape:window-y="95"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg2" />
+ <metadata
+ id="metadata8">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs6" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 0.38135623,0.46610171 9.15254237,1.6e-7 0,9.15254283 -9.13279237,0.010842 4.13279187,-4.7142326 z"
+ id="path3035"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+</svg>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/InOut.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/InOut.png
new file mode 100644
index 00000000000..75ba94039ae
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/InOut.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/InOut.svg b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/InOut.svg
new file mode 100644
index 00000000000..bc6bba9e681
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/InOut.svg
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.2 r9819"
+ width="10"
+ height="9"
+ sodipodi:docname="InOut.svg">
+ <metadata
+ id="metadata8">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs6" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1160"
+ inkscape:window-height="598"
+ id="namedview4"
+ showgrid="false"
+ inkscape:zoom="26.222222"
+ inkscape:cx="1.6699352"
+ inkscape:cy="4.5"
+ inkscape:window-x="582"
+ inkscape:window-y="33"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg2" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="M 6.8019499,-0.04806666 10.681218,4.3687023 6.6780531,9.0770809"
+ id="path3035"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="M 4.5090415,9.0625738 0.62977343,4.6458047 4.6329383,-0.06257379"
+ id="path3035-2"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+</svg>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/Out.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/Out.png
new file mode 100644
index 00000000000..5fb219bc960
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/Out.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/Out.svg b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/Out.svg
new file mode 100644
index 00000000000..ef00466fc55
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/Out.svg
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.2 r9819"
+ width="10"
+ height="9"
+ sodipodi:docname="Out.svg">
+ <metadata
+ id="metadata8">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs6" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="836"
+ inkscape:window-height="598"
+ id="namedview4"
+ showgrid="false"
+ inkscape:zoom="26.222222"
+ inkscape:cx="-4.6268765"
+ inkscape:cy="4.5"
+ inkscape:window-x="906"
+ inkscape:window-y="33"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg2" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 6.6780531,9.0770809 -6.17771868,-0.02916 0.0666723,-9.06755197 6.04426518,0.0097 4.0699461,4.37863337 z"
+ id="path3035"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+</svg>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/Provided.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/Provided.png
new file mode 100644
index 00000000000..f84ec4584ea
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/Provided.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/Provided.svg b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/Provided.svg
new file mode 100644
index 00000000000..3d3f1f8259f
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/Provided.svg
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.2 r9819"
+ width="7"
+ height="15"
+ sodipodi:docname="Provided.svg">
+ <metadata
+ id="metadata8">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs6">
+ <linearGradient
+ id="linearGradient3759"
+ osb:paint="solid">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3761" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3759-2"
+ id="linearGradient3763-9"
+ x1="-5.012712"
+ y1="2.3834746"
+ x2="1.1355932"
+ y2="2.3834746"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient3759-2"
+ osb:paint="solid">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3761-2" />
+ </linearGradient>
+ <linearGradient
+ y2="2.6040568"
+ x2="-0.11361407"
+ y1="2.3834746"
+ x1="-5.012712"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3779"
+ xlink:href="#linearGradient3759-2"
+ inkscape:collect="always" />
+ </defs>
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1231"
+ inkscape:window-height="796"
+ id="namedview4"
+ showgrid="false"
+ inkscape:zoom="29.429652"
+ inkscape:cx="-4.4943762"
+ inkscape:cy="5.6155862"
+ inkscape:window-x="268"
+ inkscape:window-y="101"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg2" />
+ <path
+ sodipodi:type="arc"
+ style="fill:none;stroke:#000000;stroke-width:0.84819282;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path2987"
+ sodipodi:cx="-1.9385593"
+ sodipodi:cy="2.3834746"
+ sodipodi:rx="2.5741525"
+ sodipodi:ry="2.5741525"
+ d="m 0.63559318,2.3834746 a 2.5741525,2.5741525 0 1 1 -5.14830498,0 2.5741525,2.5741525 0 1 1 5.14830498,0 z"
+ transform="matrix(0.94318176,0,0,0.94318176,5.0063798,1.3112725)" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 0.59721459,3.588902 -1.5713857,-3e-7"
+ id="path2992"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+</svg>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/ProvidedRequired.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/ProvidedRequired.png
new file mode 100644
index 00000000000..b89b982bf35
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/ProvidedRequired.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/ProvidedRequired.svg b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/ProvidedRequired.svg
new file mode 100644
index 00000000000..7572b29a6d6
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/ProvidedRequired.svg
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.2 r9819"
+ width="7"
+ height="15"
+ sodipodi:docname="ProvidedRequired.svg">
+ <metadata
+ id="metadata8">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs6">
+ <linearGradient
+ id="linearGradient3759"
+ osb:paint="solid">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3761" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3759-2"
+ id="linearGradient3763-9"
+ x1="-5.012712"
+ y1="2.3834746"
+ x2="1.1355932"
+ y2="2.3834746"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient3759-2"
+ osb:paint="solid">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3761-2" />
+ </linearGradient>
+ <linearGradient
+ y2="2.6040568"
+ x2="-0.11361407"
+ y1="2.3834746"
+ x1="-5.012712"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3779"
+ xlink:href="#linearGradient3759-2"
+ inkscape:collect="always" />
+ </defs>
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="865"
+ inkscape:window-height="590"
+ id="namedview4"
+ showgrid="false"
+ inkscape:zoom="62.933333"
+ inkscape:cx="-3.0522062"
+ inkscape:cy="6.6876439"
+ inkscape:window-x="268"
+ inkscape:window-y="101"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg2" />
+ <path
+ sodipodi:type="arc"
+ style="fill:none;stroke:#000000;stroke-width:0.84819282;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path2987"
+ sodipodi:cx="-1.9385593"
+ sodipodi:cy="2.3834746"
+ sodipodi:rx="2.5741525"
+ sodipodi:ry="2.5741525"
+ d="m 0.63559318,2.3834746 a 2.5741525,2.5741525 0 1 1 -5.14830498,0 2.5741525,2.5741525 0 1 1 5.14830498,0 z"
+ transform="matrix(0.94318176,0,0,0.94318176,5.0063798,1.3112725)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient3779);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.76314622;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path2987-8"
+ sodipodi:cx="-1.9385593"
+ sodipodi:cy="2.3834746"
+ sodipodi:rx="2.5741525"
+ sodipodi:ry="2.5741525"
+ d="M -0.24535318,4.3223696 A 2.5741525,2.5741525 0 1 1 -3.1225444,0.09777113"
+ transform="matrix(0.84051786,0.6179294,-0.59903296,0.86703192,7.2790357,9.7018305)"
+ sodipodi:start="0.85293902"
+ sodipodi:end="4.2344485"
+ sodipodi:open="true" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 0.69915259,3.6228813 -1.84322039,-3e-7 -3e-7,7.007416 2.7330509,-0.01589"
+ id="path2992"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.80000000999999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:none"
+ d="m -2.4629237,7.1980932 c 1.1917373,-3e-7 1.2552966,-0.01589 1.2552966,-0.01589"
+ id="path2994"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+</svg>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/Required.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/Required.png
new file mode 100644
index 00000000000..81cf72f17b5
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/Required.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/Required.svg b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/Required.svg
new file mode 100644
index 00000000000..0b555b8f3fc
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/Required.svg
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.2 r9819"
+ width="7"
+ height="15"
+ sodipodi:docname="Required.svg">
+ <metadata
+ id="metadata8">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs6">
+ <linearGradient
+ id="linearGradient3759"
+ osb:paint="solid">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3761" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3759-2"
+ id="linearGradient3763-9"
+ x1="-5.012712"
+ y1="2.3834746"
+ x2="1.1355932"
+ y2="2.3834746"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient3759-2"
+ osb:paint="solid">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3761-2" />
+ </linearGradient>
+ <linearGradient
+ y2="2.6040568"
+ x2="-0.11361407"
+ y1="2.3834746"
+ x1="-5.012712"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3779"
+ xlink:href="#linearGradient3759-2"
+ inkscape:collect="always" />
+ </defs>
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="970"
+ inkscape:window-height="637"
+ id="namedview4"
+ showgrid="false"
+ inkscape:zoom="62.933333"
+ inkscape:cx="0.14386251"
+ inkscape:cy="3.4265015"
+ inkscape:window-x="268"
+ inkscape:window-y="101"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg2" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient3779);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.76314622;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path2987-8"
+ sodipodi:cx="-1.9385593"
+ sodipodi:cy="2.3834746"
+ sodipodi:rx="2.5741525"
+ sodipodi:ry="2.5741525"
+ d="M -0.24535318,4.3223696 A 2.5741525,2.5741525 0 1 1 -3.1225444,0.09777113"
+ transform="matrix(0.84051786,0.6179294,-0.59903296,0.86703192,7.2790357,9.7018305)"
+ sodipodi:start="0.85293902"
+ sodipodi:end="4.2344485"
+ sodipodi:open="true" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.60001606;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="M -0.27286742,10.630297 1.2647658,10.614407"
+ id="path2992"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+</svg>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/hires/In.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/hires/In.png
new file mode 100644
index 00000000000..74dfe916ca6
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/hires/In.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/hires/InOut.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/hires/InOut.png
new file mode 100644
index 00000000000..75ba94039ae
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/hires/InOut.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/hires/Out.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/hires/Out.png
new file mode 100644
index 00000000000..5fb219bc960
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/hires/Out.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/hires/Provided.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/hires/Provided.png
new file mode 100644
index 00000000000..f84ec4584ea
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/hires/Provided.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/hires/ProvidedRequired.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/hires/ProvidedRequired.png
new file mode 100644
index 00000000000..b89b982bf35
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/hires/ProvidedRequired.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/hires/Required.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/hires/Required.png
new file mode 100644
index 00000000000..81cf72f17b5
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/hires/Required.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/lowres/In.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/lowres/In.png
new file mode 100644
index 00000000000..6a58521116d
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/lowres/In.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/lowres/InOut.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/lowres/InOut.png
new file mode 100644
index 00000000000..f054cdefbc2
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/lowres/InOut.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/lowres/Out.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/lowres/Out.png
new file mode 100644
index 00000000000..91c7eef436d
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/lowres/Out.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/lowres/Provided.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/lowres/Provided.png
new file mode 100644
index 00000000000..9403c7fc698
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/lowres/Provided.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/lowres/ProvidedRequired.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/lowres/ProvidedRequired.png
new file mode 100644
index 00000000000..6b26d4fcaf6
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/lowres/ProvidedRequired.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/lowres/Required.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/lowres/Required.png
new file mode 100644
index 00000000000..569d4d982e9
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/lowres/Required.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/port-kinds.png b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/port-kinds.png
new file mode 100644
index 00000000000..d96987f2286
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/port-kinds.png
Binary files differ
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/port-kinds.svg b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/port-kinds.svg
new file mode 100644
index 00000000000..82afdbab647
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/figs/port-kinds.svg
@@ -0,0 +1,551 @@
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-dasharray="none" shape-rendering="auto" font-family="'Dialog'" width="1137" text-rendering="auto" fill-opacity="1" contentScriptType="text/ecmascript" color-interpolation="auto" color-rendering="auto" preserveAspectRatio="xMidYMid meet" font-size="12" viewBox="0 0 1137 709" fill="black" stroke="black" image-rendering="auto" stroke-miterlimit="10" zoomAndPan="magnify" version="1.0" stroke-linecap="square" stroke-linejoin="miter" contentStyleType="text/css" font-style="normal" height="709" stroke-width="1" stroke-dashoffset="0" font-weight="normal" stroke-opacity="1">
+<!--Generated by the Batik Graphics2D SVG Generator-->
+<defs id="genericDefs"/>
+<g>
+<defs id="defs1">
+<linearGradient x1="46" x2="46" y1="458" gradientUnits="userSpaceOnUse" y2="495" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient1" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="white" offset="0%"/>
+<stop stop-opacity="1" stop-color="rgb(195,209,213)" offset="100%"/>
+</linearGradient>
+<linearGradient x1="46" x2="46" y1="404" gradientUnits="userSpaceOnUse" y2="441" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient2" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="white" offset="0%"/>
+<stop stop-opacity="1" stop-color="rgb(195,209,213)" offset="100%"/>
+</linearGradient>
+<linearGradient x1="226" x2="226" y1="350" gradientUnits="userSpaceOnUse" y2="387" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient3" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="white" offset="0%"/>
+<stop stop-opacity="1" stop-color="rgb(195,209,213)" offset="100%"/>
+</linearGradient>
+<linearGradient x1="245" x2="245" y1="404" gradientUnits="userSpaceOnUse" y2="446" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient4" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="rgb(255,255,204)" offset="0%"/>
+<stop stop-opacity="1" stop-color="white" offset="100%"/>
+</linearGradient>
+<linearGradient x1="424" x2="424" y1="350" gradientUnits="userSpaceOnUse" y2="392" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient5" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="rgb(255,255,204)" offset="0%"/>
+<stop stop-opacity="1" stop-color="white" offset="100%"/>
+</linearGradient>
+<linearGradient x1="244" x2="244" y1="458" gradientUnits="userSpaceOnUse" y2="500" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient6" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="rgb(255,255,204)" offset="0%"/>
+<stop stop-opacity="1" stop-color="white" offset="100%"/>
+</linearGradient>
+<linearGradient x1="10" x2="10" y1="566" gradientUnits="userSpaceOnUse" y2="608" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient7" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="rgb(255,255,204)" offset="0%"/>
+<stop stop-opacity="1" stop-color="white" offset="100%"/>
+</linearGradient>
+<linearGradient x1="46" x2="46" y1="512" gradientUnits="userSpaceOnUse" y2="549" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient8" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="white" offset="0%"/>
+<stop stop-opacity="1" stop-color="rgb(195,209,213)" offset="100%"/>
+</linearGradient>
+<linearGradient x1="244" x2="244" y1="512" gradientUnits="userSpaceOnUse" y2="554" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient9" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="rgb(255,255,204)" offset="0%"/>
+<stop stop-opacity="1" stop-color="white" offset="100%"/>
+</linearGradient>
+<linearGradient x1="13" x2="13" y1="625" gradientUnits="userSpaceOnUse" y2="686" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient10" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="white" offset="0%"/>
+<stop stop-opacity="1" stop-color="rgb(195,209,213)" offset="100%"/>
+</linearGradient>
+<linearGradient x1="297" x2="297" y1="628" gradientUnits="userSpaceOnUse" y2="699" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient11" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="rgb(255,255,204)" offset="0%"/>
+<stop stop-opacity="1" stop-color="white" offset="100%"/>
+</linearGradient>
+<linearGradient x1="32" x2="32" y1="30" gradientUnits="userSpaceOnUse" y2="331" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient12" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="white" offset="0%"/>
+<stop stop-opacity="1" stop-color="white" offset="100%"/>
+</linearGradient>
+<linearGradient x1="272" x2="272" y1="70" gradientUnits="userSpaceOnUse" y2="107" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient13" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="white" offset="0%"/>
+<stop stop-opacity="1" stop-color="rgb(195,209,213)" offset="100%"/>
+</linearGradient>
+<linearGradient x1="272" x2="272" y1="130" gradientUnits="userSpaceOnUse" y2="167" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient14" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="white" offset="0%"/>
+<stop stop-opacity="1" stop-color="rgb(195,209,213)" offset="100%"/>
+</linearGradient>
+<linearGradient x1="272" x2="272" y1="190" gradientUnits="userSpaceOnUse" y2="227" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient15" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="white" offset="0%"/>
+<stop stop-opacity="1" stop-color="rgb(195,209,213)" offset="100%"/>
+</linearGradient>
+<linearGradient x1="272" x2="272" y1="250" gradientUnits="userSpaceOnUse" y2="287" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient16" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="white" offset="0%"/>
+<stop stop-opacity="1" stop-color="rgb(195,209,213)" offset="100%"/>
+</linearGradient>
+<linearGradient x1="472" x2="472" y1="70" gradientUnits="userSpaceOnUse" y2="110" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient17" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="rgb(255,255,204)" offset="0%"/>
+<stop stop-opacity="1" stop-color="white" offset="100%"/>
+</linearGradient>
+<linearGradient x1="472" x2="472" y1="130" gradientUnits="userSpaceOnUse" y2="165" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient18" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="rgb(255,255,204)" offset="0%"/>
+<stop stop-opacity="1" stop-color="white" offset="100%"/>
+</linearGradient>
+<linearGradient x1="472" x2="472" y1="190" gradientUnits="userSpaceOnUse" y2="232" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient19" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="rgb(255,255,204)" offset="0%"/>
+<stop stop-opacity="1" stop-color="white" offset="100%"/>
+</linearGradient>
+<linearGradient x1="472" x2="472" y1="250" gradientUnits="userSpaceOnUse" y2="307" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient20" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="rgb(255,255,204)" offset="0%"/>
+<stop stop-opacity="1" stop-color="white" offset="100%"/>
+</linearGradient>
+<linearGradient x1="52" x2="52" y1="70" gradientUnits="userSpaceOnUse" y2="171" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient21" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="white" offset="0%"/>
+<stop stop-opacity="1" stop-color="rgb(195,209,213)" offset="100%"/>
+</linearGradient>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath1">
+<path d="M46 458 L46 494 L172 494 L172 458 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath2">
+<path d="M76 460 L144 460 L144 477 L76 477 L76 460 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath3">
+<path d="M67 476 L154 476 L154 493 L67 493 L67 476 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath4">
+<path d="M45 457 L174 457 L174 496 L45 496 L45 457 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath5">
+<path d="M46 404 L46 440 L172 440 L172 404 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath6">
+<path d="M76 406 L144 406 L144 423 L76 423 L76 406 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath7">
+<path d="M62 422 L158 422 L158 439 L62 439 L62 422 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath8">
+<path d="M45 403 L174 403 L174 442 L45 442 L45 403 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath9">
+<path d="M226 350 L226 386 L352 386 L352 350 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath10">
+<path d="M256 352 L324 352 L324 369 L256 369 L256 352 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath11">
+<path d="M245 368 L335 368 L335 385 L245 385 L245 368 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath12">
+<path d="M225 349 L354 349 L354 388 L225 388 L225 349 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath13">
+<path d="M245 404 L245 445 L712 445 L712 416 L700 404 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath14">
+<path d="M250 409 L690 409 L690 441 L250 441 L250 409 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath15">
+<path d="M244 403 L714 403 L714 447 L244 447 L244 403 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath16">
+<path d="M424 350 L424 391 L891 391 L891 362 L879 350 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath17">
+<path d="M429 355 L856 355 L856 387 L429 387 L429 355 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath18">
+<path d="M423 349 L893 349 L893 393 L423 393 L423 349 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath19">
+<path d="M244 458 L244 499 L711 499 L711 470 L699 458 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath20">
+<path d="M249 463 L683 463 L683 495 L249 495 L249 463 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath21">
+<path d="M243 457 L713 457 L713 501 L243 501 L243 457 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath22">
+<path d="M10 566 L10 607 L604 607 L604 578 L592 566 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath23">
+<path d="M15 571 L585 571 L585 603 L15 603 L15 571 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath24">
+<path d="M9 565 L606 565 L606 609 L9 609 L9 565 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath25">
+<path d="M46 512 L46 548 L172 548 L172 512 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath26">
+<path d="M76 514 L144 514 L144 531 L76 531 L76 514 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath27">
+<path d="M53 530 L168 530 L168 547 L53 547 L53 530 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath28">
+<path d="M45 511 L174 511 L174 550 L45 550 L45 511 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath29">
+<path d="M244 512 L244 553 L712 553 L712 524 L700 512 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath30">
+<path d="M249 517 L644 517 L644 549 L249 549 L249 517 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath31">
+<path d="M243 511 L714 511 L714 555 L243 555 L243 511 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath32">
+<path d="M13 625 L13 685 L236 685 L236 625 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath33">
+<path d="M89 627 L161 627 L161 644 L89 644 L89 627 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath34">
+<path d="M12 643 L238 643 L238 661 L12 661 L12 643 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath35">
+<path d="M32 643 L237 643 L237 660 L32 660 L32 643 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath36">
+<path d="M12 660 L238 660 L238 687 L12 687 L12 660 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath37">
+<path d="M12 624 L238 624 L238 687 L12 687 L12 624 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath38">
+<path d="M297 628 L297 698 L611 698 L611 640 L599 628 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath39">
+<path d="M302 633 L589 633 L589 680 L302 680 L302 633 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath40">
+<path d="M296 627 L613 627 L613 700 L296 700 L296 627 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath41">
+<path d="M32 30 L32 331 L1093 331 L1093 52 L156 52 L156 30 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath42">
+<path d="M30 28 L1095 28 L1095 333 L30 333 L30 28 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath43">
+<path d="M31 32 L1094 32 L1094 52 L31 52 L31 32 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath44">
+<path d="M55 32 L152 32 L152 49 L55 49 L55 32 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath45">
+<path d="M272 70 L272 106 L398 106 L398 70 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath46">
+<path d="M302 72 L370 72 L370 89 L302 89 L302 72 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath47">
+<path d="M284 88 L388 88 L388 105 L284 105 L284 88 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath48">
+<path d="M271 69 L400 69 L400 108 L271 108 L271 69 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath49">
+<path d="M272 130 L272 166 L398 166 L398 130 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath50">
+<path d="M302 132 L370 132 L370 149 L302 149 L302 132 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath51">
+<path d="M295 148 L377 148 L377 165 L295 165 L295 148 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath52">
+<path d="M271 129 L400 129 L400 168 L271 168 L271 129 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath53">
+<path d="M272 190 L272 226 L398 226 L398 190 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath54">
+<path d="M302 192 L370 192 L370 209 L302 209 L302 192 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath55">
+<path d="M314 208 L359 208 L359 225 L314 225 L314 208 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath56">
+<path d="M271 189 L400 189 L400 228 L271 228 L271 189 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath57">
+<path d="M272 250 L272 286 L398 286 L398 250 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath58">
+<path d="M302 252 L370 252 L370 269 L302 269 L302 252 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath59">
+<path d="M299 268 L373 268 L373 285 L299 285 L299 268 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath60">
+<path d="M271 249 L400 249 L400 288 L271 288 L271 249 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath61">
+<path d="M472 70 L472 109 L940 109 L940 82 L928 70 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath62">
+<path d="M477 75 L835 75 L835 92 L477 92 L477 75 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath63">
+<path d="M471 69 L942 69 L942 111 L471 111 L471 69 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath64">
+<path d="M472 130 L472 164 L940 164 L940 142 L928 130 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath65">
+<path d="M477 135 L834 135 L834 152 L477 152 L477 135 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath66">
+<path d="M471 129 L942 129 L942 166 L471 166 L471 129 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath67">
+<path d="M472 190 L472 231 L940 231 L940 202 L928 190 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath68">
+<path d="M477 195 L921 195 L921 227 L477 227 L477 195 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath69">
+<path d="M471 189 L942 189 L942 233 L471 233 L471 189 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath70">
+<path d="M472 250 L472 306 L940 306 L940 262 L928 250 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath71">
+<path d="M477 255 L917 255 L917 302 L477 302 L477 255 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath72">
+<path d="M471 249 L942 249 L942 308 L471 308 L471 249 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath73">
+<path d="M52 70 L52 170 L172 170 L172 70 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath74">
+<path d="M77 104 L149 104 L149 121 L77 121 L77 104 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath75">
+<path d="M52 120 L174 120 L174 138 L52 138 L52 120 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath76">
+<path d="M120 120 L125 120 L125 137 L120 137 L120 120 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath77">
+<path d="M51 69 L174 69 L174 172 L51 172 L51 69 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath78">
+<path d="M31 51 L1094 51 L1094 332 L31 332 L31 51 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath79">
+<path d="M1039 9 L1128 9 L1128 51 L1039 51 L1039 9 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath80">
+<path d="M1044 11 L1113 11 L1113 28 L1044 28 L1044 11 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath81">
+<path d="M1039 9 L1124 9 L1124 47 L1039 47 L1039 9 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath82">
+<path d="M1039 9 L1130 9 L1130 53 L1039 53 L1039 9 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath83">
+<path d="M-1 -1 L1138 -1 L1138 710 L-1 710 L-1 -1 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath84">
+<path d="M210 82 L235 82 L235 99 L210 99 L210 82 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath85">
+<path d="M172 144 L190 144 L190 157 L172 157 L172 144 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath86">
+<path d="M172 84 L190 84 L190 97 L172 97 L172 84 Z"/>
+</clipPath>
+</defs>
+<g fill="url(#linearGradient1)" stroke-miterlimit="0" stroke-width="0" stroke="url(#linearGradient1)" stroke-linejoin="round">
+<rect x="46" y="458" clip-path="url(#clipPath1)" width="127" height="37" stroke="none"/>
+<text x="77" y="473" clip-path="url(#clipPath2)" fill="black" stroke="none" xml:space="preserve">«PortKind»</text>
+<text x="68" y="489" clip-path="url(#clipPath3)" fill="black" stroke="none" xml:space="preserve">PullConsumer</text>
+</g>
+<g stroke-linecap="butt" stroke-width="1.1">
+<rect x="46" y="458" clip-path="url(#clipPath4)" fill="none" width="126" rx="0" ry="0" height="36"/>
+<rect x="46" y="404" clip-path="url(#clipPath5)" fill="url(#linearGradient2)" width="127" height="37" stroke="none"/>
+<text xml:space="preserve" x="77" y="419" clip-path="url(#clipPath6)" stroke="none">«PortKind»</text>
+<text xml:space="preserve" x="63" y="435" clip-path="url(#clipPath7)" stroke="none">PushConsumer</text>
+<rect x="46" y="404" clip-path="url(#clipPath8)" fill="none" width="126" rx="0" ry="0" height="36"/>
+<rect x="226" y="350" clip-path="url(#clipPath9)" fill="url(#linearGradient3)" width="127" height="37" stroke="none"/>
+<text xml:space="preserve" x="257" y="365" clip-path="url(#clipPath10)" stroke="none">«PortKind»</text>
+<text xml:space="preserve" x="246" y="381" clip-path="url(#clipPath11)" stroke="none">PushProducer</text>
+<rect x="226" y="350" clip-path="url(#clipPath12)" fill="none" width="126" rx="0" ry="0" height="36"/>
+<rect x="245" y="404" clip-path="url(#clipPath13)" fill="url(#linearGradient4)" width="468" height="42" stroke="none"/>
+<text xml:space="preserve" x="251" y="422" clip-path="url(#clipPath14)" stroke="none">Data Flow oriented communication: consume passively: provided push</text>
+<text xml:space="preserve" x="251" y="437" clip-path="url(#clipPath14)" stroke="none">operation is called </text>
+<line clip-path="url(#clipPath15)" fill="none" x1="245" x2="700" y1="404" y2="404"/>
+<line clip-path="url(#clipPath15)" fill="none" x1="700" x2="712" y1="404" y2="416"/>
+<line clip-path="url(#clipPath15)" fill="none" x1="712" x2="712" y1="416" y2="445"/>
+<line clip-path="url(#clipPath15)" fill="none" x1="712" x2="245" y1="445" y2="445"/>
+<line clip-path="url(#clipPath15)" fill="none" x1="245" x2="245" y1="445" y2="404"/>
+<line clip-path="url(#clipPath15)" fill="none" x1="245" x2="245" y1="404" y2="404"/>
+<line clip-path="url(#clipPath15)" fill="none" x1="700" x2="700" y1="404" y2="416"/>
+<line clip-path="url(#clipPath15)" fill="none" x1="700" x2="713" y1="416" y2="416"/>
+<rect x="424" y="350" clip-path="url(#clipPath16)" fill="url(#linearGradient5)" width="468" height="42" stroke="none"/>
+<text xml:space="preserve" x="430" y="368" clip-path="url(#clipPath17)" stroke="none">Data Flow oriented communication: produce data via pushing these</text>
+<text xml:space="preserve" x="430" y="383" clip-path="url(#clipPath17)" stroke="none">(calling the required operation) </text>
+<line clip-path="url(#clipPath18)" fill="none" x1="424" x2="879" y1="350" y2="350"/>
+<line clip-path="url(#clipPath18)" fill="none" x1="879" x2="891" y1="350" y2="362"/>
+<line clip-path="url(#clipPath18)" fill="none" x1="891" x2="891" y1="362" y2="391"/>
+<line clip-path="url(#clipPath18)" fill="none" x1="891" x2="424" y1="391" y2="391"/>
+<line clip-path="url(#clipPath18)" fill="none" x1="424" x2="424" y1="391" y2="350"/>
+<line clip-path="url(#clipPath18)" fill="none" x1="424" x2="424" y1="350" y2="350"/>
+<line clip-path="url(#clipPath18)" fill="none" x1="879" x2="879" y1="350" y2="362"/>
+<line clip-path="url(#clipPath18)" fill="none" x1="879" x2="892" y1="362" y2="362"/>
+<rect x="244" y="458" clip-path="url(#clipPath19)" fill="url(#linearGradient6)" width="468" height="42" stroke="none"/>
+<text xml:space="preserve" x="250" y="476" clip-path="url(#clipPath20)" stroke="none">Data Flow oriented communication: consumer data actively by calling</text>
+<text xml:space="preserve" x="250" y="491" clip-path="url(#clipPath20)" stroke="none">the required poll operation </text>
+<line clip-path="url(#clipPath21)" fill="none" x1="244" x2="699" y1="458" y2="458"/>
+<line clip-path="url(#clipPath21)" fill="none" x1="699" x2="711" y1="458" y2="470"/>
+<line clip-path="url(#clipPath21)" fill="none" x1="711" x2="711" y1="470" y2="499"/>
+<line clip-path="url(#clipPath21)" fill="none" x1="711" x2="244" y1="499" y2="499"/>
+<line clip-path="url(#clipPath21)" fill="none" x1="244" x2="244" y1="499" y2="458"/>
+<line clip-path="url(#clipPath21)" fill="none" x1="244" x2="244" y1="458" y2="458"/>
+<line clip-path="url(#clipPath21)" fill="none" x1="699" x2="699" y1="458" y2="470"/>
+<line clip-path="url(#clipPath21)" fill="none" x1="699" x2="712" y1="470" y2="470"/>
+<rect x="10" y="566" clip-path="url(#clipPath22)" fill="url(#linearGradient7)" width="595" height="42" stroke="none"/>
+<text xml:space="preserve" x="16" y="584" clip-path="url(#clipPath23)" stroke="none">In order to support icons, all port kinds are stereotypes, but for Qompass they are classes</text>
+<text xml:space="preserve" x="16" y="599" clip-path="url(#clipPath23)" stroke="none">stereotyped as "PortKind"</text>
+<line clip-path="url(#clipPath24)" fill="none" x1="10" x2="592" y1="566" y2="566"/>
+<line clip-path="url(#clipPath24)" fill="none" x1="592" x2="604" y1="566" y2="578"/>
+<line clip-path="url(#clipPath24)" fill="none" x1="604" x2="604" y1="578" y2="607"/>
+<line clip-path="url(#clipPath24)" fill="none" x1="604" x2="10" y1="607" y2="607"/>
+<line clip-path="url(#clipPath24)" fill="none" x1="10" x2="10" y1="607" y2="566"/>
+<line clip-path="url(#clipPath24)" fill="none" x1="10" x2="10" y1="566" y2="566"/>
+<line clip-path="url(#clipPath24)" fill="none" x1="592" x2="592" y1="566" y2="578"/>
+<line clip-path="url(#clipPath24)" fill="none" x1="592" x2="605" y1="578" y2="578"/>
+<rect x="46" y="512" clip-path="url(#clipPath25)" fill="url(#linearGradient8)" width="127" height="37" stroke="none"/>
+<text xml:space="preserve" x="77" y="527" clip-path="url(#clipPath26)" stroke="none">«PortKind»</text>
+<text xml:space="preserve" x="54" y="543" clip-path="url(#clipPath27)" stroke="none">PushProdPullCons</text>
+<rect x="46" y="512" clip-path="url(#clipPath28)" fill="none" width="126" rx="0" ry="0" height="36"/>
+<rect x="244" y="512" clip-path="url(#clipPath29)" fill="url(#linearGradient9)" width="469" height="42" stroke="none"/>
+<text xml:space="preserve" x="250" y="530" clip-path="url(#clipPath30)" stroke="none"> A bidirectional flow port combining a push-producer and a pull</text>
+<text xml:space="preserve" x="250" y="545" clip-path="url(#clipPath30)" stroke="none">consumer</text>
+<line clip-path="url(#clipPath31)" fill="none" x1="244" x2="700" y1="512" y2="512"/>
+<line clip-path="url(#clipPath31)" fill="none" x1="700" x2="712" y1="512" y2="524"/>
+<line clip-path="url(#clipPath31)" fill="none" x1="712" x2="712" y1="524" y2="553"/>
+<line clip-path="url(#clipPath31)" fill="none" x1="712" x2="244" y1="553" y2="553"/>
+<line clip-path="url(#clipPath31)" fill="none" x1="244" x2="244" y1="553" y2="512"/>
+<line clip-path="url(#clipPath31)" fill="none" x1="244" x2="244" y1="512" y2="512"/>
+<line clip-path="url(#clipPath31)" fill="none" x1="700" x2="700" y1="512" y2="524"/>
+<line clip-path="url(#clipPath31)" fill="none" x1="700" x2="713" y1="524" y2="524"/>
+<rect x="13" y="625" clip-path="url(#clipPath32)" fill="url(#linearGradient10)" width="224" height="61" stroke="none"/>
+<text xml:space="preserve" x="90" y="640" clip-path="url(#clipPath33)" stroke="none">«Interface»</text>
+<image x="14" y="644" clip-path="url(#clipPath34)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR42mNkgIKC&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#10;rINgGm7Av7//GNjZmMHsEzceMVhoyDFYVK6EazjRHg4Xh2iAOIcJ2VQWZiawooKF&#10;x8HsM12RYHEQDeKDxEHyIDYMoBnACFZ0oTcKzAZhmDgIg8QhhjNiN4AVaPKEeEsG&#10;g+JlYDYr1CYYGyQOkmfF6gJgELMCTfYyUYEqYmTQLlgClgLRID5IHCQPYv+DhgEL&#10;Qv8/BmYmiNN8zVTB9N2pcSghDxOHqEczAAT8GjaB08F/NBIGECkEyGZkxDRgaYUX&#10;0ekgpnM7ZiCSA1iwmUq2AUvKPQfQCypKwiR5AaSeKgAABcZdRqE6GaQAAAAASUVO&#10;RK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="33" y="656" clip-path="url(#clipPath35)" stroke="none">Please update derived elements</text>
+<line clip-path="url(#clipPath36)" fill="none" x1="13" x2="237" y1="661" y2="661"/>
+<rect x="13" y="625" clip-path="url(#clipPath37)" fill="none" width="223" rx="0" ry="0" height="60"/>
+<rect x="297" y="628" clip-path="url(#clipPath38)" fill="url(#linearGradient11)" width="315" height="71" stroke="none"/>
+<text xml:space="preserve" x="303" y="646" clip-path="url(#clipPath39)" stroke="none">Dummy interface returned by ports who need</text>
+<text xml:space="preserve" x="303" y="661" clip-path="url(#clipPath39)" stroke="none">to update derived interfaces (but can only do</text>
+<text xml:space="preserve" x="303" y="676" clip-path="url(#clipPath39)" stroke="none">so in the context of a transaction).</text>
+<line clip-path="url(#clipPath40)" fill="none" x1="297" x2="599" y1="628" y2="628"/>
+<line clip-path="url(#clipPath40)" fill="none" x1="599" x2="611" y1="628" y2="640"/>
+<line clip-path="url(#clipPath40)" fill="none" x1="611" x2="611" y1="640" y2="698"/>
+<line clip-path="url(#clipPath40)" fill="none" x1="611" x2="297" y1="698" y2="698"/>
+<line clip-path="url(#clipPath40)" fill="none" x1="297" x2="297" y1="698" y2="628"/>
+<line clip-path="url(#clipPath40)" fill="none" x1="297" x2="297" y1="628" y2="628"/>
+<line clip-path="url(#clipPath40)" fill="none" x1="599" x2="599" y1="628" y2="640"/>
+<line clip-path="url(#clipPath40)" fill="none" x1="599" x2="612" y1="640" y2="640"/>
+<rect x="32" y="30" clip-path="url(#clipPath41)" fill="url(#linearGradient12)" width="1061" height="301" stroke="none"/>
+<line clip-path="url(#clipPath42)" fill="none" x1="32" x2="156" y1="30" y2="30"/>
+<line clip-path="url(#clipPath42)" fill="none" x1="156" x2="156" y1="30" y2="52"/>
+<line clip-path="url(#clipPath42)" fill="none" x1="156" x2="1093" y1="52" y2="52"/>
+<line clip-path="url(#clipPath42)" fill="none" x1="1093" x2="1093" y1="52" y2="331"/>
+<line clip-path="url(#clipPath42)" fill="none" x1="1093" x2="32" y1="331" y2="331"/>
+<line clip-path="url(#clipPath42)" fill="none" x1="32" x2="32" y1="331" y2="30"/>
+<image x="37" y="33" clip-path="url(#clipPath43)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAWUlEQVR42mNgGPKA&#10;EUQoZCz4j0vBgxkJjPgMYIEx7k+Px5BUzFxIuQvwAZDr4C7YUBdAkuaApg2oXgAB&#10;MV5+kl3BRGksoLiAnZlCA5gZKTWAiQIDYKE6AgEAAu0P6M4KKrgAAAAASUVORK5C&#10;YII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="56" y="45" clip-path="url(#clipPath44)" stroke="none">interfaceBased</text>
+<rect x="272" y="70" clip-path="url(#clipPath45)" fill="url(#linearGradient13)" width="127" height="37" stroke="none"/>
+<text xml:space="preserve" x="303" y="85" clip-path="url(#clipPath46)" stroke="none">«PortKind»</text>
+<text xml:space="preserve" x="285" y="101" clip-path="url(#clipPath47)" stroke="none">ProvideInterface</text>
+<rect x="272" y="70" clip-path="url(#clipPath48)" fill="none" width="126" rx="0" ry="0" height="36"/>
+<rect x="272" y="130" clip-path="url(#clipPath49)" fill="url(#linearGradient14)" width="127" height="37" stroke="none"/>
+<text xml:space="preserve" x="303" y="145" clip-path="url(#clipPath50)" stroke="none">«PortKind»</text>
+<text xml:space="preserve" x="296" y="161" clip-path="url(#clipPath51)" stroke="none">UseInterface</text>
+<rect x="272" y="130" clip-path="url(#clipPath52)" fill="none" width="126" rx="0" ry="0" height="36"/>
+<rect x="272" y="190" clip-path="url(#clipPath53)" fill="url(#linearGradient15)" width="127" height="37" stroke="none"/>
+<text xml:space="preserve" x="303" y="205" clip-path="url(#clipPath54)" stroke="none">«PortKind»</text>
+<text xml:space="preserve" x="315" y="221" clip-path="url(#clipPath55)" stroke="none">AMIpoll</text>
+<rect x="272" y="190" clip-path="url(#clipPath56)" fill="none" width="126" rx="0" ry="0" height="36"/>
+<rect x="272" y="250" clip-path="url(#clipPath57)" fill="url(#linearGradient16)" width="127" height="37" stroke="none"/>
+<text xml:space="preserve" x="303" y="265" clip-path="url(#clipPath58)" stroke="none">«PortKind»</text>
+<text xml:space="preserve" x="300" y="281" clip-path="url(#clipPath59)" stroke="none">AMIcallback</text>
+<rect x="272" y="250" clip-path="url(#clipPath60)" fill="none" width="126" rx="0" ry="0" height="36"/>
+<rect x="472" y="70" clip-path="url(#clipPath61)" fill="url(#linearGradient17)" width="469" height="40" stroke="none"/>
+<text xml:space="preserve" x="478" y="88" clip-path="url(#clipPath62)" stroke="none">Simple provision of typing interface as provided interface</text>
+<line clip-path="url(#clipPath63)" fill="none" x1="472" x2="928" y1="70" y2="70"/>
+<line clip-path="url(#clipPath63)" fill="none" x1="928" x2="940" y1="70" y2="82"/>
+<line clip-path="url(#clipPath63)" fill="none" x1="940" x2="940" y1="82" y2="109"/>
+<line clip-path="url(#clipPath63)" fill="none" x1="940" x2="472" y1="109" y2="109"/>
+<line clip-path="url(#clipPath63)" fill="none" x1="472" x2="472" y1="109" y2="70"/>
+<line clip-path="url(#clipPath63)" fill="none" x1="472" x2="472" y1="70" y2="70"/>
+<line clip-path="url(#clipPath63)" fill="none" x1="928" x2="928" y1="70" y2="82"/>
+<line clip-path="url(#clipPath63)" fill="none" x1="928" x2="941" y1="82" y2="82"/>
+<rect x="472" y="130" clip-path="url(#clipPath64)" fill="url(#linearGradient18)" width="469" height="35" stroke="none"/>
+<text xml:space="preserve" x="478" y="148" clip-path="url(#clipPath65)" stroke="none">Simple provision of typing interface as required interface</text>
+<line clip-path="url(#clipPath66)" fill="none" x1="472" x2="928" y1="130" y2="130"/>
+<line clip-path="url(#clipPath66)" fill="none" x1="928" x2="940" y1="130" y2="142"/>
+<line clip-path="url(#clipPath66)" fill="none" x1="940" x2="940" y1="142" y2="164"/>
+<line clip-path="url(#clipPath66)" fill="none" x1="940" x2="472" y1="164" y2="164"/>
+<line clip-path="url(#clipPath66)" fill="none" x1="472" x2="472" y1="164" y2="130"/>
+<line clip-path="url(#clipPath66)" fill="none" x1="472" x2="472" y1="130" y2="130"/>
+<line clip-path="url(#clipPath66)" fill="none" x1="928" x2="928" y1="130" y2="142"/>
+<line clip-path="url(#clipPath66)" fill="none" x1="928" x2="941" y1="142" y2="142"/>
+<rect x="472" y="190" clip-path="url(#clipPath67)" fill="url(#linearGradient19)" width="469" height="42" stroke="none"/>
+<text xml:space="preserve" x="478" y="208" clip-path="url(#clipPath68)" stroke="none">CORBA asynchronous messaging (AMI): Provision of poller variant of</text>
+<text xml:space="preserve" x="478" y="223" clip-path="url(#clipPath68)" stroke="none">typing interface. Allows client to continue without waiting for the result</text>
+<line clip-path="url(#clipPath69)" fill="none" x1="472" x2="928" y1="190" y2="190"/>
+<line clip-path="url(#clipPath69)" fill="none" x1="928" x2="940" y1="190" y2="202"/>
+<line clip-path="url(#clipPath69)" fill="none" x1="940" x2="940" y1="202" y2="231"/>
+<line clip-path="url(#clipPath69)" fill="none" x1="940" x2="472" y1="231" y2="231"/>
+<line clip-path="url(#clipPath69)" fill="none" x1="472" x2="472" y1="231" y2="190"/>
+<line clip-path="url(#clipPath69)" fill="none" x1="472" x2="472" y1="190" y2="190"/>
+<line clip-path="url(#clipPath69)" fill="none" x1="928" x2="928" y1="190" y2="202"/>
+<line clip-path="url(#clipPath69)" fill="none" x1="928" x2="941" y1="202" y2="202"/>
+<rect x="472" y="250" clip-path="url(#clipPath70)" fill="url(#linearGradient20)" width="469" height="57" stroke="none"/>
+<text xml:space="preserve" x="478" y="268" clip-path="url(#clipPath71)" stroke="none">CORBA asynchronous messaging (AMI): Provision of callback variant of</text>
+<text xml:space="preserve" x="478" y="283" clip-path="url(#clipPath71)" stroke="none">typing interface. Allows client Allows client to continue without waiting</text>
+<text xml:space="preserve" x="478" y="298" clip-path="url(#clipPath71)" stroke="none">for the result</text>
+<line clip-path="url(#clipPath72)" fill="none" x1="472" x2="928" y1="250" y2="250"/>
+<line clip-path="url(#clipPath72)" fill="none" x1="928" x2="940" y1="250" y2="262"/>
+<line clip-path="url(#clipPath72)" fill="none" x1="940" x2="940" y1="262" y2="306"/>
+<line clip-path="url(#clipPath72)" fill="none" x1="940" x2="472" y1="306" y2="306"/>
+<line clip-path="url(#clipPath72)" fill="none" x1="472" x2="472" y1="306" y2="250"/>
+<line clip-path="url(#clipPath72)" fill="none" x1="472" x2="472" y1="250" y2="250"/>
+<line clip-path="url(#clipPath72)" fill="none" x1="928" x2="928" y1="250" y2="262"/>
+<line clip-path="url(#clipPath72)" fill="none" x1="928" x2="941" y1="262" y2="262"/>
+<rect x="52" y="70" clip-path="url(#clipPath73)" fill="url(#linearGradient21)" width="121" height="101" stroke="none"/>
+<text xml:space="preserve" x="78" y="117" clip-path="url(#clipPath74)" stroke="none">«Interface»</text>
+<image x="102" y="121" clip-path="url(#clipPath75)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR42mNkgIKC&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#10;rINgGm7Av7//GNjZmMHsEzceMVhoyDFYVK6EazjRHg4Xh2iAOIcJ2VQWZiawooKF&#10;x8HsM12RYHEQDeKDxEHyIDYMoBnACFZ0oTcKzAZhmDgIg8QhhjNiN4AVaPKEeEsG&#10;g+JlYDYr1CYYGyQOkmfF6gJgELMCTfYyUYEqYmTQLlgClgLRID5IHCQPYv+DhgEL&#10;Qv8/BmYmiNN8zVTB9N2pcSghDxOHqEczAAT8GjaB08F/NBIGECkEyGZkxDRgaYUX&#10;0ekgpnM7ZiCSA1iwmUq2AUvKPQfQCypKwiR5AaSeKgAABcZdRqE6GaQAAAAASUVO&#10;RK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="121" y="133" clip-path="url(#clipPath76)" stroke="none">I</text>
+<rect x="52" y="70" clip-path="url(#clipPath77)" fill="none" width="120" rx="0" ry="0" height="100"/>
+<line clip-path="url(#clipPath78)" fill="none" x1="32" x2="1093" y1="52" y2="52"/>
+<rect x="1040" y="10" clip-path="url(#clipPath79)" fill="rgb(195,209,213)" width="87" height="40" stroke="none"/>
+<text xml:space="preserve" x="1045" y="24" clip-path="url(#clipPath80)" stroke="none">I: Interface</text>
+<line clip-path="url(#clipPath81)" fill="none" x1="1040" x2="1123" y1="10" y2="10" stroke="red"/>
+<rect x="1040" y="10" clip-path="url(#clipPath79)" fill="none" width="86" height="39"/>
+<polygon clip-path="url(#clipPath82)" points=" 1126 13 1126 49 1043 49 1043 52 1129 52 1129 13 1126 13" stroke="none"/>
+<line clip-path="url(#clipPath83)" fill="none" text-rendering="optimizeLegibility" x1="472" x2="399" y1="88" y2="88" stroke-dasharray="6.6,3.3"/>
+<line clip-path="url(#clipPath83)" fill="none" text-rendering="optimizeLegibility" x1="472" x2="399" y1="267" y2="267" stroke-dasharray="6.6,3.3"/>
+<line clip-path="url(#clipPath83)" fill="none" text-rendering="optimizeLegibility" x1="472" x2="399" y1="152" y2="152" stroke-dasharray="6.6,3.3"/>
+<line clip-path="url(#clipPath83)" fill="none" text-rendering="optimizeLegibility" x1="272" x2="173" y1="150" y2="150" stroke-dasharray="5,5,5,5,5,5,5,5,5,5"/>
+<text x="211" y="95" clip-path="url(#clipPath84)" text-rendering="optimizeLegibility" stroke-dasharray="5,5,5,5,5,5,5,5,5,5" stroke="none" xml:space="preserve">use</text>
+<line clip-path="url(#clipPath85)" fill="none" text-rendering="optimizeLegibility" x1="188" x2="173" y1="145" y2="150"/>
+<line clip-path="url(#clipPath85)" fill="none" text-rendering="optimizeLegibility" x1="173" x2="188" y1="150" y2="155"/>
+<line clip-path="url(#clipPath83)" fill="none" text-rendering="optimizeLegibility" x1="272" x2="173" y1="90" y2="90" stroke-dasharray="5,5,5,5,5,5,5,5,5,5"/>
+</g>
+<g stroke-linecap="butt" fill="white" text-rendering="optimizeLegibility" stroke-dasharray="5,5,5,5,5,5,5,5,5,5" stroke="white" stroke-width="1.1">
+<polygon clip-path="url(#clipPath86)" points=" 173 90 188 85 188 95" stroke="none"/>
+<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath86)" points=" 173 90 188 85 188 95" stroke="black"/>
+<line clip-path="url(#clipPath83)" fill="none" x1="472" x2="399" y1="208" y2="208" stroke-dasharray="6.6,3.3" stroke="black"/>
+<line clip-path="url(#clipPath83)" fill="none" x1="472" x2="399" y1="88" y2="88" stroke-dasharray="6.6,3.3" stroke="black"/>
+<line clip-path="url(#clipPath83)" fill="none" x1="472" x2="399" y1="152" y2="152" stroke-dasharray="6.6,3.3" stroke="black"/>
+<line clip-path="url(#clipPath83)" fill="none" x1="472" x2="399" y1="208" y2="208" stroke-dasharray="6.6,3.3" stroke="black"/>
+<line clip-path="url(#clipPath83)" fill="none" x1="472" x2="399" y1="267" y2="267" stroke-dasharray="6.6,3.3" stroke="black"/>
+<line clip-path="url(#clipPath83)" fill="none" x1="245" x2="173" y1="426" y2="423" stroke-dasharray="6.6,3.3" stroke="black"/>
+<line clip-path="url(#clipPath83)" fill="none" x1="424" x2="353" y1="369" y2="369" stroke-dasharray="6.6,3.3" stroke="black"/>
+<line clip-path="url(#clipPath83)" fill="none" x1="244" x2="173" y1="476" y2="475" stroke-dasharray="6.6,3.3" stroke="black"/>
+<line clip-path="url(#clipPath83)" fill="none" x1="244" x2="173" y1="527" y2="529" stroke-dasharray="6.6,3.3" stroke="black"/>
+<line clip-path="url(#clipPath83)" fill="none" x1="297" x2="237" y1="655" y2="653" stroke-dasharray="6.6,3.3" stroke="black"/>
+<line clip-path="url(#clipPath83)" fill="none" x1="272" x2="173" y1="90" y2="90" stroke="black"/>
+<polygon clip-path="url(#clipPath86)" points=" 173 90 188 85 188 95" stroke="none"/>
+<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath86)" points=" 173 90 188 85 188 95" stroke="black"/>
+<line clip-path="url(#clipPath83)" fill="none" x1="272" x2="173" y1="150" y2="150" stroke="black"/>
+<text x="211" y="95" clip-path="url(#clipPath84)" fill="black" stroke="none" xml:space="preserve">use</text>
+<line clip-path="url(#clipPath85)" fill="none" x1="188" x2="173" y1="145" y2="150" stroke-dasharray="none" stroke="black"/>
+<line clip-path="url(#clipPath85)" fill="none" x1="173" x2="188" y1="150" y2="155" stroke-dasharray="none" stroke="black"/>
+</g>
+</g>
+</svg>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/osal.di b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/osal.di
new file mode 100644
index 00000000000..a91f94ef62c
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/osal.di
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi">
+ <di:SashWindowsMngr>
+ <pageList>
+ <availablePage>
+ <emfPageIdentifier href="osal.notation#_3MI7Mx6SEeCkz5PP4vZT5g"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="osal.notation#_3MHtCR6SEeCkz5PP4vZT5g"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="osal.notation#_3MdrZx6SEeCkz5PP4vZT5g"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="osal.notation#_3MjyEB6SEeCkz5PP4vZT5g"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="osal.notation#_3Mb2Ih6SEeCkz5PP4vZT5g"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="osal.notation#_3Mh83B6SEeCkz5PP4vZT5g"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="osal.notation#_3MVvex6SEeCkz5PP4vZT5g"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="osal.notation#_3MFQ7R6SEeCkz5PP4vZT5g"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="osal.notation#_3L7fyB6SEeCkz5PP4vZT5g"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="osal.notation#_3L_KOB6SEeCkz5PP4vZT5g"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="osal.notation#_3L0yCB6SEeCkz5PP4vZT5g"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="osal.notation#_3L8t3R6SEeCkz5PP4vZT5g"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="osal.notation#_3MfgbB6SEeCkz5PP4vZT5g"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="osal.notation#_3MaA5h6SEeCkz5PP4vZT5g"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="osal.notation#_3MBmYR6SEeCkz5PP4vZT5g"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="osal.notation#_3LurYh6SEeCkz5PP4vZT5g"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="osal.notation#_3MEpqR6SEeCkz5PP4vZT5g"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="osal.notation#_3MlnKx6SEeCkz5PP4vZT5g"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="osal.notation#_3MEpwh6SEeCkz5PP4vZT5g"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="osal.notation#_3LurYB6SEeCkz5PP4vZT5g"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="osal.notation#_3MReFh6SEeCkz5PP4vZT5g"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="osal.notation#_3MPB1x6SEeCkz5PP4vZT5g"/>
+ </availablePage>
+ </pageList>
+ <sashModel currentSelection="/0/@sashModel/@windows.0/@children.0">
+ <windows>
+ <children xsi:type="di:TabFolder">
+ <children>
+ <emfPageIdentifier href="osal.notation#_3LurYh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="osal.notation#_3L0yCB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="osal.notation#_3L8t3R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="osal.notation#_3L_KOB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="osal.notation#_3MBmYR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="osal.notation#_3MEpwh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="osal.notation#_3MHtCR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="osal.notation#_3MI7Mx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="osal.notation#_3MPB1x6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="osal.notation#_3MReFh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="osal.notation#_3Mb2Ih6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="osal.notation#_3MdrZx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="osal.notation#_3MfgbB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="osal.notation#_3Mh83B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="osal.notation#_3MjyEB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="osal.notation#_3MlnKx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="osal.notation#_3MVvex6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="osal.notation#_3MFQ7R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="osal.notation#_3MaA5h6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="osal.notation#_3LurYB6SEeCkz5PP4vZT5g"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+ </di:SashWindowsMngr>
+ <di:TabFolder/>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/osal.notation b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/osal.notation
new file mode 100644
index 00000000000..8686e2eff0d
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/osal.notation
@@ -0,0 +1,7725 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:C_Cpp="http://www.eclipse.org/papyrus/C_Cpp/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML">
+ <notation:Diagram xmi:id="_3LurYB6SEeCkz5PP4vZT5g" type="PapyrusUMLClassDiagram" name="OS AL package overview" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_b2yOAFjgEeKWlJhcyT0hJA" type="2007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_b2y1EFjgEeKWlJhcyT0hJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_b2y1EVjgEeKWlJhcyT0hJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_b2y1EljgEeKWlJhcyT0hJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_b2y1E1jgEeKWlJhcyT0hJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_b2y1FFjgEeKWlJhcyT0hJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_b2y1FVjgEeKWlJhcyT0hJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_b2y1FljgEeKWlJhcyT0hJA" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_b2y1F1jgEeKWlJhcyT0hJA" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_b2y1GFjgEeKWlJhcyT0hJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b2y1GVjgEeKWlJhcyT0hJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mP-BYFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mP-BYVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mP-BYldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <element xmi:type="uml:Package" href="osal.uml#_mU3acC-OEdySSa8YESkO2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b2yOAVjgEeKWlJhcyT0hJA" x="52" y="39"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_clYZYFjgEeKWlJhcyT0hJA" type="2007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_clZAcFjgEeKWlJhcyT0hJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_clZAcVjgEeKWlJhcyT0hJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_clZAcljgEeKWlJhcyT0hJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_clZAc1jgEeKWlJhcyT0hJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_clZAdFjgEeKWlJhcyT0hJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_clZngFjgEeKWlJhcyT0hJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_clZngVjgEeKWlJhcyT0hJA" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_clZngljgEeKWlJhcyT0hJA" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_clZng1jgEeKWlJhcyT0hJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_clZnhFjgEeKWlJhcyT0hJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mP_PgFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mP_PgVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mP_PgldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <element xmi:type="uml:Package" href="osal.uml#_oT0acC-OEdySSa8YESkO2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_clYZYVjgEeKWlJhcyT0hJA" x="306" y="39"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dqlG4FjgEeKWlJhcyT0hJA" type="2007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dqlt8FjgEeKWlJhcyT0hJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dqlt8VjgEeKWlJhcyT0hJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dqmVAFjgEeKWlJhcyT0hJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dqmVAVjgEeKWlJhcyT0hJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dqmVAljgEeKWlJhcyT0hJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dqmVA1jgEeKWlJhcyT0hJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dqmVBFjgEeKWlJhcyT0hJA" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dqm8EFjgEeKWlJhcyT0hJA" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dqm8EVjgEeKWlJhcyT0hJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dqm8EljgEeKWlJhcyT0hJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mP_2kFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mP_2kVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mP_2kldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <element xmi:type="uml:Package" href="osal.uml#_q6QRMC-OEdySSa8YESkO2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dqlG4VjgEeKWlJhcyT0hJA" x="52" y="169"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ec4GgFjgEeKWlJhcyT0hJA" type="2007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ec5UoFjgEeKWlJhcyT0hJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ec5UoVjgEeKWlJhcyT0hJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ec5UoljgEeKWlJhcyT0hJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ec5Uo1jgEeKWlJhcyT0hJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ec5UpFjgEeKWlJhcyT0hJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ec5UpVjgEeKWlJhcyT0hJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ec57sFjgEeKWlJhcyT0hJA" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ec57sVjgEeKWlJhcyT0hJA" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ec57sljgEeKWlJhcyT0hJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ec57s1jgEeKWlJhcyT0hJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mQBEsFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mQBEsVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mQBEsldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <element xmi:type="uml:Package" href="osal.uml#_soXY0C-OEdySSa8YESkO2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ec4GgVjgEeKWlJhcyT0hJA" x="306" y="169"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_fz6x8FjgEeKWlJhcyT0hJA" type="2007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fz7ZAFjgEeKWlJhcyT0hJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fz7ZAVjgEeKWlJhcyT0hJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fz7ZAljgEeKWlJhcyT0hJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fz7ZA1jgEeKWlJhcyT0hJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fz7ZBFjgEeKWlJhcyT0hJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fz7ZBVjgEeKWlJhcyT0hJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fz7ZBljgEeKWlJhcyT0hJA" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fz7ZB1jgEeKWlJhcyT0hJA" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_fz7ZCFjgEeKWlJhcyT0hJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fz7ZCVjgEeKWlJhcyT0hJA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mQC54FdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mQC54VdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mQC54ldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <element xmi:type="uml:Package" href="osal.uml#_vlmmAC-OEdySSa8YESkO2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fz6x8VjgEeKWlJhcyT0hJA" x="52" y="299"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_rRYFMFkLEeKyM9oNj0qhEg" type="2007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rRdkwFkLEeKyM9oNj0qhEg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rRdkwVkLEeKyM9oNj0qhEg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rRdkwlkLEeKyM9oNj0qhEg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rRdkw1kLEeKyM9oNj0qhEg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rReL0FkLEeKyM9oNj0qhEg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rReL0VkLEeKyM9oNj0qhEg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_rReL0lkLEeKyM9oNj0qhEg" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_rReL01kLEeKyM9oNj0qhEg" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_rReL1FkLEeKyM9oNj0qhEg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rReL1VkLEeKyM9oNj0qhEg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mQDg8FdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mQDg8VdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mQDg8ldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <element xmi:type="uml:Package" href="osal.uml#_0AZ9YC-OEdySSa8YESkO2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rRYsQFkLEeKyM9oNj0qhEg" x="306" y="297"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_3LurYR6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Model" href="osal.uml#_ROTQYC-OEdySSa8YESkO2w"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_3LurYh6SEeCkz5PP4vZT5g" type="PapyrusUMLClassDiagram" name="util classes: structural relationships" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_3LurYx6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3LurZB6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3LurZR6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3LurZh6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3LurZx6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3LuraB6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3LuraR6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Lurah6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Lurax6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3LurbB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3LurbR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Lurbh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Lurbx6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3LurcB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3LurcR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Lurch6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Lurcx6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3LurdB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3LurdR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Lurdh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0MTeMFkeEeKFQZ_XV_Kn6g" type="3015" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0MUsUFkeEeKFQZ_XV_Kn6g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0MUsUVkeEeKFQZ_XV_Kn6g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0MUsUlkeEeKFQZ_XV_Kn6g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0MUsU1keEeKFQZ_XV_Kn6g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0MVTYFkeEeKFQZ_XV_Kn6g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0MVTYVkeEeKFQZ_XV_Kn6g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0MVTYlkeEeKFQZ_XV_Kn6g" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_1XamcFkeEeKFQZ_XV_Kn6g" type="3016" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:TemplateParameter" href="osal.uml#_iWLdwDO0EdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1XamcVkeEeKFQZ_XV_Kn6g" x="20" y="20"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0MVTY1keEeKFQZ_XV_Kn6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0MVTZFkeEeKFQZ_XV_Kn6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0MVTZVkeEeKFQZ_XV_Kn6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0MVTZlkeEeKFQZ_XV_Kn6g"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="osal.uml#_gkCKsDO0EdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0MTeMVkeEeKFQZ_XV_Kn6g" x="410" y="-11" width="145" height="29"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lRHMcFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lRHzgFdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lRHzgVdiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3Lurdx6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_W-ZGIDO0EdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3LureB6SEeCkz5PP4vZT5g" x="111" y="144" width="498" height="39"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3LvSch6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3LvScx6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3LvSdB6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3LvSdR6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3LvSdh6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3LvSdx6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3LvSeB6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3LvSeR6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3LvSeh6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3LvSex6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3LvSfB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3LvSfR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3LvSfh6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3LvSfx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3LvSgB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3LvSgR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3LvSgh6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3LvSgx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3LvShB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3LvShR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lRKPwFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lRKPwVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lRKPwldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3LvShh6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_sQ1JADO0EdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3LvShx6SEeCkz5PP4vZT5g" x="112" y="257" width="100" height="34"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3LvSiB6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3LvSiR6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3LvSih6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3LvSix6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3LvSjB6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3LvSjR6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3LvSjh6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3LvSjx6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3LvSkB6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3LvSkR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3LvSkh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3LvSkx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3LvSlB6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3LvSlR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3LvSlh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3LvSlx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3LvSmB6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3LvSmR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3LvSmh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3LvSmx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lRLd4FdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lRLd4VdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lRLd4ldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3LvSnB6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_0AwCEDO0EdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3LvSnR6SEeCkz5PP4vZT5g" x="238" y="257" width="100" height="34"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3LvSnh6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3LvSnx6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3LvSoB6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3LvSoR6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3LvSoh6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3LvSox6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3LvSpB6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3LvSpR6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3LvSph6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3LvSpx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3LvSqB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3LvSqR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3LvSqh6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3LvSqx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3LvSrB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3LvSrR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3LvSrh6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3LvSrx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3LvSsB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3LvSsR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lRNTEFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lRNTEVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lRNTEldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3LvSsh6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_1vnXoDO0EdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3LvSsx6SEeCkz5PP4vZT5g" x="368" y="257" width="100" height="34"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3LvStB6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3LvStR6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3LvSth6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Lv5gB6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Lv5gR6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Lv5gh6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Lv5gx6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Lv5hB6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Lv5hR6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Lv5hh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Lv5hx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Lv5iB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Lv5iR6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Lv5ih6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Lv5ix6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Lv5jB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Lv5jR6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Lv5jh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Lv5jx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Lv5kB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lROhMFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lROhMVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lRPIQFdiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3Lv5kR6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_3W43cDO0EdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Lv5kh6SEeCkz5PP4vZT5g" x="509" y="255" width="100" height="34"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3Lv5kx6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Lv5lB6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Lv5lR6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Lv5lh6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Lv5lx6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Lv5mB6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Lv5mR6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Lv5mh6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Lv5mx6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Lv5nB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Lv5nR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Lv5nh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Lv5nx6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Lv5oB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Lv5oR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Lv5oh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Lv5ox6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Lv5pB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Lv5pR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Lv5ph6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lRUn0FdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lRUn0VdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_Vh1d8DR3EdypGbuyt3_DaA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lRUn0ldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lRVO4FdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lRVO4VdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lRVO4ldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3Lv5px6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_WXH_4DO2EdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Lv5qB6SEeCkz5PP4vZT5g" x="108" y="72" width="505" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3Lv5qR6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Lv5qh6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Lv5qx6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Lv5rB6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Lv5rR6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Lv5rh6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Lv5rx6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Lv5sB6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Lv5sR6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Lv5sh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Lv5sx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Lv5tB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Lv5tR6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Lv5th6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Lv5tx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Lv5uB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Lv5uR6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Lv5uh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Lv5ux6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Ly80B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lRXEEFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lRXEEVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_DXEWYDUWEdyDReAOQiyvOg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lRXEEldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lRXrIFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lRXrIVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lRXrIldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3Ly80R6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_Fqa9QDUPEdy0feurbW0fyQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Ly80h6SEeCkz5PP4vZT5g" x="114" y="351" width="494" height="37"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_3Ly80x6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Package" href="osal.uml#_0AZ9YC-OEdySSa8YESkO2w"/>
+ <edges xmi:type="notation:Connector" xmi:id="_3Lzj7R6SEeCkz5PP4vZT5g" type="4002" source="_3LurYx6SEeCkz5PP4vZT5g" target="_3Lv5kx6SEeCkz5PP4vZT5g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Lzj7h6SEeCkz5PP4vZT5g" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Lzj7x6SEeCkz5PP4vZT5g" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3Lzj8B6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Generalization" href="osal.uml#_ZFUrgDO2EdyG-pUz-bb-Lg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3Lzj8R6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3Lzj8h6SEeCkz5PP4vZT5g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3Lzj8x6SEeCkz5PP4vZT5g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3Lzj9B6SEeCkz5PP4vZT5g" type="4001" source="_3Lv5qR6SEeCkz5PP4vZT5g" target="_3LvSch6SEeCkz5PP4vZT5g" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Lzj9R6SEeCkz5PP4vZT5g" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Lzj9h6SEeCkz5PP4vZT5g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Lzj9x6SEeCkz5PP4vZT5g" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Lzj-B6SEeCkz5PP4vZT5g" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Lzj-R6SEeCkz5PP4vZT5g" type="6003">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Lzj-h6SEeCkz5PP4vZT5g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Lzj-x6SEeCkz5PP4vZT5g" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Lzj_B6SEeCkz5PP4vZT5g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Lzj_R6SEeCkz5PP4vZT5g" type="6005">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Lzj_h6SEeCkz5PP4vZT5g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Lzj_x6SEeCkz5PP4vZT5g" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3LzkAB6SEeCkz5PP4vZT5g" x="-14" y="-42"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3LzkAR6SEeCkz5PP4vZT5g" visible="false" type="6033"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3LzkAh6SEeCkz5PP4vZT5g" visible="false" type="6034"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3LzkAx6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Association" href="osal.uml#_sJKdoDUbEdyDReAOQiyvOg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3LzkBB6SEeCkz5PP4vZT5g" points="[-1, -2, -1, 137]$[-18, -87, -18, 52]$[-18, -89, -18, 50]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3LzkBR6SEeCkz5PP4vZT5g" id="(0.07894736842105263,0.1891891891891892)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3LzkBh6SEeCkz5PP4vZT5g" id="(0.38,0.7941176470588235)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3LzkBx6SEeCkz5PP4vZT5g" type="4001" source="_3Lv5qR6SEeCkz5PP4vZT5g" target="_3LvSch6SEeCkz5PP4vZT5g" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3LzkCB6SEeCkz5PP4vZT5g" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3LzkCR6SEeCkz5PP4vZT5g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3LzkCh6SEeCkz5PP4vZT5g" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3LzkCx6SEeCkz5PP4vZT5g" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3LzkDB6SEeCkz5PP4vZT5g" type="6003">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3LzkDR6SEeCkz5PP4vZT5g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L0K8B6SEeCkz5PP4vZT5g" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L0K8R6SEeCkz5PP4vZT5g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L0K8h6SEeCkz5PP4vZT5g" type="6005">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L0K8x6SEeCkz5PP4vZT5g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L0K9B6SEeCkz5PP4vZT5g" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L0K9R6SEeCkz5PP4vZT5g" x="-14" y="44"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L0K9h6SEeCkz5PP4vZT5g" visible="false" type="6033"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L0K9x6SEeCkz5PP4vZT5g" visible="false" type="6034"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3L0K-B6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Association" href="osal.uml#_vA-sYDUoEdyDReAOQiyvOg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3L0K-R6SEeCkz5PP4vZT5g" points="[-1, -1, 0, 63]$[-1, -28, 0, 36]$[-1, -61, 0, 3]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3L0K-h6SEeCkz5PP4vZT5g" id="(0.17813765182186234,0.05)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3L0K-x6SEeCkz5PP4vZT5g" id="(0.89,0.92)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3L0K_B6SEeCkz5PP4vZT5g" type="4001" source="_3Lv5qR6SEeCkz5PP4vZT5g" target="_3LvSnh6SEeCkz5PP4vZT5g" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L0K_R6SEeCkz5PP4vZT5g" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L0K_h6SEeCkz5PP4vZT5g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L0K_x6SEeCkz5PP4vZT5g" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L0LAB6SEeCkz5PP4vZT5g" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L0LAR6SEeCkz5PP4vZT5g" type="6003">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L0LAh6SEeCkz5PP4vZT5g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L0LAx6SEeCkz5PP4vZT5g" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L0LBB6SEeCkz5PP4vZT5g" x="11" y="-22"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L0LBR6SEeCkz5PP4vZT5g" type="6005">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L0LBh6SEeCkz5PP4vZT5g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L0LBx6SEeCkz5PP4vZT5g" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L0LCB6SEeCkz5PP4vZT5g" x="-14" y="36"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L0LCR6SEeCkz5PP4vZT5g" visible="false" type="6033"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L0LCh6SEeCkz5PP4vZT5g" visible="false" type="6034"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3L0LCx6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Association" href="osal.uml#__XEKADUoEdyDReAOQiyvOg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3L0LDB6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3L0LDR6SEeCkz5PP4vZT5g" id="(0.6153846153846154,0.05)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3L0LDh6SEeCkz5PP4vZT5g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3L0LDx6SEeCkz5PP4vZT5g" type="4001" source="_3Lv5qR6SEeCkz5PP4vZT5g" target="_3LvStB6SEeCkz5PP4vZT5g" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L0LEB6SEeCkz5PP4vZT5g" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L0LER6SEeCkz5PP4vZT5g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L0LEh6SEeCkz5PP4vZT5g" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L0LEx6SEeCkz5PP4vZT5g" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L0LFB6SEeCkz5PP4vZT5g" type="6003">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L0LFR6SEeCkz5PP4vZT5g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L0LFh6SEeCkz5PP4vZT5g" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L0LFx6SEeCkz5PP4vZT5g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L0LGB6SEeCkz5PP4vZT5g" type="6005">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L0LGR6SEeCkz5PP4vZT5g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L0LGh6SEeCkz5PP4vZT5g" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L0LGx6SEeCkz5PP4vZT5g" x="2" y="42"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L0LHB6SEeCkz5PP4vZT5g" visible="false" type="6033"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L0LHR6SEeCkz5PP4vZT5g" visible="false" type="6034"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3L0LHh6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Association" href="osal.uml#_E53rQDUpEdyDReAOQiyvOg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3L0LHx6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3L0LIB6SEeCkz5PP4vZT5g" id="(0.8967611336032388,0.06)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3L0LIR6SEeCkz5PP4vZT5g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_t0jrMB6TEeCkz5PP4vZT5g" type="4015" source="_3LvSnh6SEeCkz5PP4vZT5g" target="_3LurYx6SEeCkz5PP4vZT5g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_t0k5UB6TEeCkz5PP4vZT5g" type="6023">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_t0k5UR6TEeCkz5PP4vZT5g" x="-2" y="51"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_t0k5Uh6TEeCkz5PP4vZT5g" type="6036">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_t0k5Ux6TEeCkz5PP4vZT5g" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_t0kSQB6TEeCkz5PP4vZT5g" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:TemplateBinding" href="osal.uml#_L8BvcDO1EdyG-pUz-bb-Lg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_t0kSQR6TEeCkz5PP4vZT5g" points="[-17, -50, 41, 131]$[-48, -148, 10, 33]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9HTcgB6TEeCkz5PP4vZT5g" id="(0.6164658634538153,0.8)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_0Vx8gB6TEeCkz5PP4vZT5g" type="4015" source="_3LvSiB6SEeCkz5PP4vZT5g" target="_3LurYx6SEeCkz5PP4vZT5g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_0Vx8gx6TEeCkz5PP4vZT5g" type="6023">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0Vx8hB6TEeCkz5PP4vZT5g" x="-2" y="53"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0VyjkB6TEeCkz5PP4vZT5g" type="6036">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0VyjkR6TEeCkz5PP4vZT5g" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_0Vx8gR6TEeCkz5PP4vZT5g" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:TemplateBinding" href="osal.uml#_Lb-9cDO1EdyG-pUz-bb-Lg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0Vx8gh6TEeCkz5PP4vZT5g" points="[19, -50, -53, 131]$[59, -148, -13, 33]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9u95cB6TEeCkz5PP4vZT5g" id="(0.35943775100401604,0.8153846153846154)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7n9JoB6TEeCkz5PP4vZT5g" type="4015" source="_3LvStB6SEeCkz5PP4vZT5g" target="_3LurYx6SEeCkz5PP4vZT5g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_7n-XwB6TEeCkz5PP4vZT5g" type="6023">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7n-XwR6TEeCkz5PP4vZT5g" x="-3" y="59"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7n-Xwh6TEeCkz5PP4vZT5g" type="6036">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7n-Xwx6TEeCkz5PP4vZT5g" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_7n9JoR6TEeCkz5PP4vZT5g" fontName="Sans Serif" fontHeight="10"/>
+ <element xmi:type="uml:TemplateBinding" href="osal.uml#_MbeEgDO1EdyG-pUz-bb-Lg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7n9Joh6TEeCkz5PP4vZT5g" points="[-50, -45, 149, 134]$[-163, -146, 36, 33]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8hYE8B6TEeCkz5PP4vZT5g" id="(0.8955823293172691,0.8)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_10eyYFkdEeKFQZ_XV_Kn6g" type="4015" source="_3LvSch6SEeCkz5PP4vZT5g" target="_3LurYx6SEeCkz5PP4vZT5g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_10gAgFkdEeKFQZ_XV_Kn6g" type="6023">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_10gnkFkdEeKFQZ_XV_Kn6g" x="-1" y="53"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_10gnkVkdEeKFQZ_XV_Kn6g" type="6036">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_10gnklkdEeKFQZ_XV_Kn6g" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_10eyYVkdEeKFQZ_XV_Kn6g" fontName="Sans Serif"/>
+ <element xmi:type="uml:TemplateBinding" href="osal.uml#_K4hEADO1EdyG-pUz-bb-Lg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_10eyYlkdEeKFQZ_XV_Kn6g" points="[50, -46, -148, 135]$[162, -148, -36, 33]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2ytVMFkdEeKFQZ_XV_Kn6g" id="(0.10843373493975904,0.4)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Size xmi:id="_3L0LIh6SEeCkz5PP4vZT5g" width="498" height="65"/>
+ <notation:Location xmi:id="_3L0LIx6SEeCkz5PP4vZT5g" x="165" y="185"/>
+ <notation:Size xmi:id="_3L0LJB6SEeCkz5PP4vZT5g" width="170" height="35"/>
+ <notation:Location xmi:id="_3L0LJR6SEeCkz5PP4vZT5g" x="644" y="153"/>
+ <notation:Size xmi:id="_3L0yAB6SEeCkz5PP4vZT5g" width="100" height="100"/>
+ <notation:Location xmi:id="_3L0yAR6SEeCkz5PP4vZT5g" x="166" y="348"/>
+ <notation:Location xmi:id="_3L0yAh6SEeCkz5PP4vZT5g" x="292" y="348"/>
+ <notation:Location xmi:id="_3L0yAx6SEeCkz5PP4vZT5g" x="422" y="348"/>
+ <notation:Location xmi:id="_3L0yBB6SEeCkz5PP4vZT5g" x="563" y="346"/>
+ <notation:Location xmi:id="_3L0yBR6SEeCkz5PP4vZT5g" x="367" y="10"/>
+ <notation:Size xmi:id="_3L0yBh6SEeCkz5PP4vZT5g" width="494" height="100"/>
+ <notation:Location xmi:id="_3L0yBx6SEeCkz5PP4vZT5g" x="168" y="535"/>
+ <notation:Diagram xmi:id="_3L0yCB6SEeCkz5PP4vZT5g" type="PapyrusUMLClassDiagram" name="util classes: details" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_3L0yCR6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L0yCh6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L0yCx6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L0yDB6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L0yDR6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L0yDh6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L0yDx6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L0yEB6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L0yER6SEeCkz5PP4vZT5g" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_3L0yEh6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_A2bjsDRoEdypGbuyt3_DaA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L0yEx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L0yFB6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_FafkwDRoEdypGbuyt3_DaA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L0yFR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L0yFh6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_NT80UDRoEdypGbuyt3_DaA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L0yFx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L0yGB6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_WG7s4DRoEdypGbuyt3_DaA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L0yGR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L0yGh6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_ahw5cDRoEdypGbuyt3_DaA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L0yGx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L0yHB6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_gH_iIDRoEdypGbuyt3_DaA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L0yHR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L0yHh6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_nHCX4DRoEdypGbuyt3_DaA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L0yHx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L0yIB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L0yIR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L0yIh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L0yIx6SEeCkz5PP4vZT5g" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_3L0yJB6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_J60NwDRGEdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L0yJR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L0yJh6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_X1eKwDRGEdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L0yJx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L0yKB6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_E8CKIDRHEdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L0yKR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L0yKh6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_sBF6EDRHEdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L0yKx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L0yLB6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_0h42cDRHEdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L0yLR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L0yLh6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_ABbb4DRIEdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L0yLx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L0yMB6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_La2yQDRIEdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L0yMR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L0yMh6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_dH9GIDRIEdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L0yMx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L0yNB6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_lWbjcDRIEdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L0yNR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L0yNh6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_yR57YDRIEdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L1ZEB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L1ZER6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_-YxmkDRIEdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L1ZEh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L1ZEx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_F4T6QDRJEdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L1ZFB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L1ZFR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_IS_M8DRJEdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L1ZFh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L1ZFx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_RAcsUDRJEdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L1ZGB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L1ZGR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_V-mBUDRJEdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L1ZGh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L1ZGx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_nyaBMDRJEdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L1ZHB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L1ZHR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_uTyqkDRJEdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L1ZHh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L1ZHx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_xfysgDRJEdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L1ZIB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L1ZIR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_xsnAgDRJEdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L1ZIh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L1ZIx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_x1P_IDRJEdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L1ZJB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L1ZJR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_x8tSADRJEdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L1ZJh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L1ZJx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_yJ0g8DRJEdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L1ZKB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L1ZKR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_yQhl4DRJEdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L1ZKh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L1ZKx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_yXOq0DRJEdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L1ZLB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L1ZLR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_yjTX8DRJEdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L1ZLh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L1ZLx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_8OaV4DRKEdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L1ZMB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L1ZMR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_lKriQDRPEdy1p4IpsoZYqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L1ZMh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L1ZMx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_m8rEUDRPEdy1p4IpsoZYqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L1ZNB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L1ZNR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_Z9YpwDRXEdy1p4IpsoZYqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L1ZNh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L1ZNx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_aIaOADRXEdy1p4IpsoZYqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L1ZOB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L1ZOR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_aOg2ADRXEdy1p4IpsoZYqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L1ZOh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L1ZOx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_aU7AADRXEdy1p4IpsoZYqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L5qgB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L5qgR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_aavUIDRXEdy1p4IpsoZYqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L5qgh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L5qgx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_ag_tIDRXEdy1p4IpsoZYqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L5qhB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L5qhR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_amWuQDRXEdy1p4IpsoZYqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L5qhh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L5qhx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_ZkKxIDRaEdy1p4IpsoZYqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L5qiB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L5qiR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_O59-oDRiEdyDwaY3iUxzzA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L5qih6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L5qix6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_tMpS8DRiEdyDwaY3iUxzzA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L6RkB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L6RkR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_FX25wDRjEdyDwaY3iUxzzA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L6Rkh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L6Rkx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_UA3KgDRjEdyDwaY3iUxzzA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L6RlB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L6RlR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_hifjgDRjEdyDwaY3iUxzzA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L6Rlh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L6Rlx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_hujpkDRjEdyDwaY3iUxzzA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L6RmB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L6RmR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_h3DeQDRjEdyDwaY3iUxzzA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L6Rmh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L6Rmx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_iQYkQDRjEdyDwaY3iUxzzA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L6RnB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L6RnR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_hQh-4DRlEdypGbuyt3_DaA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L6Rnh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L6Rnx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_w9e_8DRlEdypGbuyt3_DaA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L6RoB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L6RoR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_BSrFsDRmEdypGbuyt3_DaA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L6Roh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L6Rox6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_QpuIMDRmEdypGbuyt3_DaA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L6RpB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L6RpR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_urQpMDRmEdypGbuyt3_DaA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L6Rph6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L6Rpx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_AJnWcDRnEdypGbuyt3_DaA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L6RqB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L6RqR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_ZakdUDRnEdypGbuyt3_DaA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L6Rqh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L6Rqx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_d6UmIDRnEdypGbuyt3_DaA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L6RrB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L6RrR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_tamdIDRnEdypGbuyt3_DaA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L6Rrh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L6Rrx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L6RsB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L6RsR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L6Rsh6SEeCkz5PP4vZT5g" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L6Rsx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L6RtB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L6RtR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lVQsoFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lVQsoVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_Vh1d8DR3EdypGbuyt3_DaA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lVQsoldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lVRTsFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lVRTsVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lVRTsldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3L6Rth6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_WXH_4DO2EdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L6Rtx6SEeCkz5PP4vZT5g" x="34" y="29" width="305" height="1009"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L6RuB6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L6RuR6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L6Ruh6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L6Rux6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L6RvB6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L64oB6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L64oR6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L64oh6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L64ox6SEeCkz5PP4vZT5g" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_3L64pB6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_jwCk4DR-Edy0feurbW0fyQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L64pR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L64ph6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L64px6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L64qB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L64qR6SEeCkz5PP4vZT5g" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_3L64qh6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_m2Mk4DR7EdypGbuyt3_DaA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L64qx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L64rB6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_rwKkgDR7EdypGbuyt3_DaA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L64rR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L64rh6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_N8S2oDR8EdypGbuyt3_DaA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L64rx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L64sB6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_63iW0DR8Edy0feurbW0fyQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L64sR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L64sh6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_PngwYDR-Edy0feurbW0fyQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L64sx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L64tB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L64tR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L64th6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L64tx6SEeCkz5PP4vZT5g" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L64uB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L64uR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L64uh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lVcS0FdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lVcS0VdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lVcS0ldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3L64ux6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_W-ZGIDO0EdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L64vB6SEeCkz5PP4vZT5g" x="407" y="67" width="316" height="184"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L64vR6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L64vh6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L64vx6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L64wB6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L64wR6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L64wh6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L64wx6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L64xB6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L64xR6SEeCkz5PP4vZT5g" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_3L64xh6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_4rbvkDUUEdyDReAOQiyvOg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L64xx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L64yB6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_7ahzEDUUEdyDReAOQiyvOg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L64yR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L64yh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L64yx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L64zB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L64zR6SEeCkz5PP4vZT5g" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_3L64zh6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_ZgB1wDUPEdy0feurbW0fyQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L64zx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L640B6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_BdhNEDUREdy0feurbW0fyQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L640R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L640h6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_GLk3oDUREdy0feurbW0fyQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L640x6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L641B6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_OQgXYDUREdy0feurbW0fyQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L641R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L641h6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_QP6qYDUREdy0feurbW0fyQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L641x6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L642B6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_T-5BEDUSEdy0feurbW0fyQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L642R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L642h6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_WR0tADUSEdy0feurbW0fyQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L642x6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L643B6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_X5-9oDUSEdy0feurbW0fyQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L643R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L643h6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_Y7GcYDUSEdy0feurbW0fyQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L643x6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L644B6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_a43woDUSEdy0feurbW0fyQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L644R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L7fsB6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_bfnnkDUSEdy0feurbW0fyQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L7fsR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L7fsh6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_MvhlcDUUEdyDReAOQiyvOg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L7fsx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L7ftB6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_OMqR0DUUEdyDReAOQiyvOg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L7ftR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L7fth6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_Pfz7wDUUEdyDReAOQiyvOg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L7ftx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L7fuB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L7fuR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L7fuh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L7fux6SEeCkz5PP4vZT5g" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L7fvB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L7fvR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L7fvh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lVf9MFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lVf9MVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_DXEWYDUWEdyDReAOQiyvOg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lVf9MldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lVgkQFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lVgkQVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lVgkQldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3L7fvx6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_Fqa9QDUPEdy0feurbW0fyQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L7fwB6SEeCkz5PP4vZT5g" x="409" y="301" width="318" height="383"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_3L7fwR6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Package" href="osal.uml#_0AZ9YC-OEdySSa8YESkO2w"/>
+ </notation:Diagram>
+ <notation:Size xmi:id="_3L7fwh6SEeCkz5PP4vZT5g" width="305" height="1009"/>
+ <notation:Location xmi:id="_3L7fwx6SEeCkz5PP4vZT5g" x="34" y="29"/>
+ <notation:Size xmi:id="_3L7fxB6SEeCkz5PP4vZT5g" width="316" height="184"/>
+ <notation:Location xmi:id="_3L7fxR6SEeCkz5PP4vZT5g" x="407" y="67"/>
+ <notation:Size xmi:id="_3L7fxh6SEeCkz5PP4vZT5g" width="318" height="383"/>
+ <notation:Location xmi:id="_3L7fxx6SEeCkz5PP4vZT5g" x="409" y="301"/>
+ <notation:Diagram xmi:id="_3L7fyB6SEeCkz5PP4vZT5g" type="PapyrusUMLClassDiagram" name="Communication classes : structural relationships" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_3L7fyR6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L7fyh6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L7fyx6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L7fzB6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L7fzR6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L7fzh6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L7fzx6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L7f0B6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L7f0R6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L7f0h6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L7f0x6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L7f1B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L7f1R6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L7f1h6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L7f1x6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L7f2B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L7f2R6SEeCkz5PP4vZT5g" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L7f2h6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L7f2x6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L7f3B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3L7f3R6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_LbxUEDRPEdy1p4IpsoZYqA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L7f3h6SEeCkz5PP4vZT5g" x="124" y="21" width="177" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L7f3x6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L7f4B6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L7f4R6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L7f4h6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L7f4x6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L7f5B6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L7f5R6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L7f5h6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L7f5x6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L7f6B6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L7f6R6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L7f6h6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L7f6x6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L7f7B6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L7f7R6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L7f7h6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L7f7x6SEeCkz5PP4vZT5g" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L7f8B6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L7f8R6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L7f8h6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3L8GwB6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_M5gBkFCDEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L8GwR6SEeCkz5PP4vZT5g" x="486" y="198" width="162" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L8Gwh6SEeCkz5PP4vZT5g" type="2010" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L8Gwx6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L8GxB6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L8GxR6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L8Gxh6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L8Gxx6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L8GyB6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L8GyR6SEeCkz5PP4vZT5g" type="5035"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L8Gyh6SEeCkz5PP4vZT5g" type="7020">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L8Gyx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L8GzB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L8GzR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L8Gzh6SEeCkz5PP4vZT5g" type="7021">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L8Gzx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L8G0B6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L8G0R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <element xmi:type="uml:DataType" href="osal.uml#_ZiVqMFCrEdyTutVzffQTmQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L8G0h6SEeCkz5PP4vZT5g" x="46" y="340" width="181" height="96"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L8G0x6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L8G1B6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L8G1R6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L8G1h6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L8G1x6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L8G2B6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L8G2R6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L8G2h6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L8G2x6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L8G3B6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L8G3R6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L8G3h6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L8G3x6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L8G4B6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L8G4R6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L8G4h6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L8G4x6SEeCkz5PP4vZT5g" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L8G5B6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L8G5R6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L8G5h6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3L8G5x6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_N361AFCsEdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L8G6B6SEeCkz5PP4vZT5g" x="121" y="186" width="183" height="103"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L8G6R6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L8G6h6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L8G6x6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L8G7B6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L8G7R6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L8G7h6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L8G7x6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L8G8B6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L8G8R6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L8G8h6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L8G8x6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L8G9B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L8G9R6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L8G9h6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L8G9x6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L8G-B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L8G-R6SEeCkz5PP4vZT5g" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L8G-h6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L8G-x6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L8G_B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3L8G_R6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_sq-yMFCvEdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L8G_h6SEeCkz5PP4vZT5g" x="342" y="342" width="117" height="100"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_3L8G_x6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Package" href="osal.uml#_mU3acC-OEdySSa8YESkO2w"/>
+ <edges xmi:type="notation:Connector" xmi:id="_3L8HAB6SEeCkz5PP4vZT5g" type="4002" source="_3L8G0x6SEeCkz5PP4vZT5g" target="_3L7fyR6SEeCkz5PP4vZT5g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L8HAR6SEeCkz5PP4vZT5g" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L8HAh6SEeCkz5PP4vZT5g" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3L8HAx6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Generalization" href="osal.uml#_TmRe8FCsEdyqzLG48ixyqA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3L8t0B6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3L8t0R6SEeCkz5PP4vZT5g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3L8t0h6SEeCkz5PP4vZT5g"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Size xmi:id="_3L8t0x6SEeCkz5PP4vZT5g" width="177" height="100"/>
+ <notation:Location xmi:id="_3L8t1B6SEeCkz5PP4vZT5g" x="124" y="21"/>
+ <notation:Size xmi:id="_3L8t1R6SEeCkz5PP4vZT5g" width="162" height="100"/>
+ <notation:Location xmi:id="_3L8t1h6SEeCkz5PP4vZT5g" x="714" y="165"/>
+ <notation:Size xmi:id="_3L8t1x6SEeCkz5PP4vZT5g" width="181" height="96"/>
+ <notation:Location xmi:id="_3L8t2B6SEeCkz5PP4vZT5g" x="46" y="340"/>
+ <notation:Size xmi:id="_3L8t2R6SEeCkz5PP4vZT5g" width="183" height="103"/>
+ <notation:Location xmi:id="_3L8t2h6SEeCkz5PP4vZT5g" x="121" y="186"/>
+ <notation:Size xmi:id="_3L8t2x6SEeCkz5PP4vZT5g" width="117" height="100"/>
+ <notation:Location xmi:id="_3L8t3B6SEeCkz5PP4vZT5g" x="544" y="471"/>
+ <notation:Diagram xmi:id="_3L8t3R6SEeCkz5PP4vZT5g" type="PapyrusUMLClassDiagram" name="sets classes: structural relationships" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_3L8t3h6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L8t3x6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L8t4B6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L8t4R6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L8t4h6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L8t4x6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L8t5B6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L8t5R6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L8t5h6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L8t5x6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L8t6B6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L8t6R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L8t6h6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L8t6x6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L8t7B6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L8t7R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L8t7h6SEeCkz5PP4vZT5g" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L8t7x6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L8t8B6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L8t8R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lZGDwFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lZGDwVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lZGDwldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3L8t8h6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_xxCKcDUuEdyDReAOQiyvOg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L8t8x6SEeCkz5PP4vZT5g" x="179" y="30" width="100" height="274"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L8t9B6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L8t9R6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L8t9h6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L8t9x6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L8t-B6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L8t-R6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L8t-h6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L8t-x6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L8t_B6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L8t_R6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L8t_h6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L8t_x6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L8uAB6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L8uAR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L8uAh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L8uAx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L8uBB6SEeCkz5PP4vZT5g" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L8uBR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L8uBh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L8uBx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lZJuIFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lZJuIVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_xGQLUDbfEdy0Rd6V_tf1-Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lZJuIldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lZJuI1diEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lZJuJFdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lZJuJVdiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3L8uCB6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_y68Y0DUuEdyDReAOQiyvOg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L9U4B6SEeCkz5PP4vZT5g" x="177" y="679" width="174" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L9U4R6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L9U4h6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L9U4x6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L9U5B6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L9U5R6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L9U5h6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L9U5x6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L9U6B6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L9U6R6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L9U6h6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L9U6x6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L9U7B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L9U7R6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L9U7h6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L9U7x6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L9U8B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L9U8R6SEeCkz5PP4vZT5g" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L9U8h6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L9U8x6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L9U9B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lZLjUFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lZLjUVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_gutqEDa8Edy_E4ZljVbr-g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lZLjUldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lZMKYFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lZMKYVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lZMKYldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3L9U9R6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_2bXLkDUuEdyDReAOQiyvOg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L9U9h6SEeCkz5PP4vZT5g" x="714" y="680" width="100" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L9U9x6SEeCkz5PP4vZT5g" type="3015" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L9U-B6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L9U-R6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L9U-h6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L9U-x6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L9U_B6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L9U_R6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L9U_h6SEeCkz5PP4vZT5g" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_3L9U_x6SEeCkz5PP4vZT5g" type="3031">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="osal.uml#_Vvc5kDUvEdyDReAOQiyvOg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L9VAB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L9VAR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L9VAh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L9VAx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="osal.uml#_RKC0sDUvEdyDReAOQiyvOg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L9VBB6SEeCkz5PP4vZT5g" x="254" y="10" width="119" height="35"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L9VBR6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L9VBh6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L9VBx6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L9VCB6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L9VCR6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L9VCh6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L9VCx6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L9VDB6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L9VDR6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L9VDh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L9VDx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L9VEB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L9VER6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L9VEh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L9VEx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L9VFB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L9VFR6SEeCkz5PP4vZT5g" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L9VFh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L9VFx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L9VGB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lZPNsFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lZPNsVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lZPNsldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3L9VGR6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_zOJVcDaeEdyC6dXxO2UOEQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L9VGh6SEeCkz5PP4vZT5g" x="536" y="37" width="169" height="270"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L9VGx6SEeCkz5PP4vZT5g" type="3015" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L9VHB6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L9VHR6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L9VHh6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L9VHx6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L9VIB6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L9VIR6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L9VIh6SEeCkz5PP4vZT5g" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_3L9VIx6SEeCkz5PP4vZT5g" type="3031">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="osal.uml#_4MoGADa8Edy_E4ZljVbr-g"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L9VJB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L9VJR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L9VJh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L9VJx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="osal.uml#_wxa4sDa8Edy_E4ZljVbr-g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L978B6SEeCkz5PP4vZT5g" x="789" y="644" width="83" height="51"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L978R6SEeCkz5PP4vZT5g" type="3015" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L978h6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L978x6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L979B6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L979R6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L979h6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L979x6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L97-B6SEeCkz5PP4vZT5g" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_3L97-R6SEeCkz5PP4vZT5g" type="3031">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="osal.uml#_pjE_sDbdEdy0Rd6V_tf1-Q"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L97-h6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L97-x6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L97_B6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L97_R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="osal.uml#_mgxFQDbdEdy0Rd6V_tf1-Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L97_h6SEeCkz5PP4vZT5g" x="326" y="635" width="165" height="59"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_3L97_x6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Package" href="osal.uml#_q6QRMC-OEdySSa8YESkO2w"/>
+ <edges xmi:type="notation:Connector" xmi:id="_3L98AB6SEeCkz5PP4vZT5g" type="4001" source="_3L8t3h6SEeCkz5PP4vZT5g" target="_3L9VBR6SEeCkz5PP4vZT5g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L98AR6SEeCkz5PP4vZT5g" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L98Ah6SEeCkz5PP4vZT5g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L98Ax6SEeCkz5PP4vZT5g" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L98BB6SEeCkz5PP4vZT5g" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L98BR6SEeCkz5PP4vZT5g" type="6003">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L98Bh6SEeCkz5PP4vZT5g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L98Bx6SEeCkz5PP4vZT5g" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L98CB6SEeCkz5PP4vZT5g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L98CR6SEeCkz5PP4vZT5g" type="6005">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L98Ch6SEeCkz5PP4vZT5g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L98Cx6SEeCkz5PP4vZT5g" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L98DB6SEeCkz5PP4vZT5g" x="-31" y="12"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L98DR6SEeCkz5PP4vZT5g" visible="false" type="6033"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L98Dh6SEeCkz5PP4vZT5g" visible="false" type="6034"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3L98Dx6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Association" href="osal.uml#_yZpCcDa2Edyv9PRkTrTu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3L98EB6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3L98ER6SEeCkz5PP4vZT5g" id="(0.91,0.5985401459854015)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3L98Eh6SEeCkz5PP4vZT5g" id="(0.05917159763313609,0.5777777777777777)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3L98Ex6SEeCkz5PP4vZT5g" type="4001" source="_3L8t3h6SEeCkz5PP4vZT5g" target="_3L9VBR6SEeCkz5PP4vZT5g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L98FB6SEeCkz5PP4vZT5g" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L98FR6SEeCkz5PP4vZT5g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L98Fh6SEeCkz5PP4vZT5g" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L98Fx6SEeCkz5PP4vZT5g" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L98GB6SEeCkz5PP4vZT5g" type="6003">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L98GR6SEeCkz5PP4vZT5g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L98Gh6SEeCkz5PP4vZT5g" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L98Gx6SEeCkz5PP4vZT5g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L98HB6SEeCkz5PP4vZT5g" type="6005">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L98HR6SEeCkz5PP4vZT5g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L98Hh6SEeCkz5PP4vZT5g" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L98Hx6SEeCkz5PP4vZT5g" x="-25" y="10"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L98IB6SEeCkz5PP4vZT5g" visible="false" type="6033"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L98IR6SEeCkz5PP4vZT5g" visible="false" type="6034"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3L98Ih6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Association" href="osal.uml#_0wmSwDa2Edyv9PRkTrTu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3L98Ix6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3L98JB6SEeCkz5PP4vZT5g" id="(0.83,0.7372262773722628)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3L98JR6SEeCkz5PP4vZT5g" id="(0.04142011834319527,0.7111111111111111)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3L98Jh6SEeCkz5PP4vZT5g" type="4001" source="_3L8t3h6SEeCkz5PP4vZT5g" target="_3L9VBR6SEeCkz5PP4vZT5g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L98Jx6SEeCkz5PP4vZT5g" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L-jAB6SEeCkz5PP4vZT5g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L-jAR6SEeCkz5PP4vZT5g" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L-jAh6SEeCkz5PP4vZT5g" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L-jAx6SEeCkz5PP4vZT5g" type="6003">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L-jBB6SEeCkz5PP4vZT5g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L-jBR6SEeCkz5PP4vZT5g" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L-jBh6SEeCkz5PP4vZT5g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L-jBx6SEeCkz5PP4vZT5g" type="6005">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L-jCB6SEeCkz5PP4vZT5g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L-jCR6SEeCkz5PP4vZT5g" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L-jCh6SEeCkz5PP4vZT5g" x="-4" y="-7"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L-jCx6SEeCkz5PP4vZT5g" visible="false" type="6033"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L-jDB6SEeCkz5PP4vZT5g" visible="false" type="6034"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3L-jDR6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Association" href="osal.uml#_1ZuIQDa2Edyv9PRkTrTu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3L-jDh6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3L-jDx6SEeCkz5PP4vZT5g" id="(0.91,0.34306569343065696)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3L-jEB6SEeCkz5PP4vZT5g" id="(0.05917159763313609,0.3148148148148148)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3L-jER6SEeCkz5PP4vZT5g" type="4001" source="_3L8t3h6SEeCkz5PP4vZT5g" target="_3L9VBR6SEeCkz5PP4vZT5g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L-jEh6SEeCkz5PP4vZT5g" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L-jEx6SEeCkz5PP4vZT5g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L-jFB6SEeCkz5PP4vZT5g" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L-jFR6SEeCkz5PP4vZT5g" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L-jFh6SEeCkz5PP4vZT5g" type="6003">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L-jFx6SEeCkz5PP4vZT5g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L-jGB6SEeCkz5PP4vZT5g" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L-jGR6SEeCkz5PP4vZT5g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L-jGh6SEeCkz5PP4vZT5g" type="6005">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L-jGx6SEeCkz5PP4vZT5g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L-jHB6SEeCkz5PP4vZT5g" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L-jHR6SEeCkz5PP4vZT5g" x="-35" y="14"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L-jHh6SEeCkz5PP4vZT5g" visible="false" type="6033"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L-jHx6SEeCkz5PP4vZT5g" visible="false" type="6034"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3L-jIB6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Association" href="osal.uml#_2AnwMDa2Edyv9PRkTrTu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3L-jIR6SEeCkz5PP4vZT5g" points="[1, -2, -274, 0]$[258, -2, -17, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3L-jIh6SEeCkz5PP4vZT5g" id="(0.99,0.8576642335766423)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3L-jIx6SEeCkz5PP4vZT5g" id="(0.10059171597633136,0.837037037037037)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3L-jJB6SEeCkz5PP4vZT5g" type="4001" source="_3L8t3h6SEeCkz5PP4vZT5g" target="_3L9VBR6SEeCkz5PP4vZT5g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L-jJR6SEeCkz5PP4vZT5g" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L-jJh6SEeCkz5PP4vZT5g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L-jJx6SEeCkz5PP4vZT5g" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L-jKB6SEeCkz5PP4vZT5g" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L-jKR6SEeCkz5PP4vZT5g" type="6003">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L-jKh6SEeCkz5PP4vZT5g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L-jKx6SEeCkz5PP4vZT5g" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L-jLB6SEeCkz5PP4vZT5g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L-jLR6SEeCkz5PP4vZT5g" type="6005">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L-jLh6SEeCkz5PP4vZT5g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L-jLx6SEeCkz5PP4vZT5g" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L-jMB6SEeCkz5PP4vZT5g" x="-27" y="16"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L-jMR6SEeCkz5PP4vZT5g" visible="false" type="6033"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L-jMh6SEeCkz5PP4vZT5g" visible="false" type="6034"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3L-jMx6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Association" href="osal.uml#_3cG2wDa2Edyv9PRkTrTu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3L-jNB6SEeCkz5PP4vZT5g" points="[4, 1, -261, 0]$[261, 1, -4, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3L-jNR6SEeCkz5PP4vZT5g" id="(0.96,0.44525547445255476)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3L-jNh6SEeCkz5PP4vZT5g" id="(0.023668639053254437,0.42962962962962964)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3L-jNx6SEeCkz5PP4vZT5g" type="4001" source="_3L8t3h6SEeCkz5PP4vZT5g" target="_3L9VBR6SEeCkz5PP4vZT5g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L-jOB6SEeCkz5PP4vZT5g" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L-jOR6SEeCkz5PP4vZT5g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L-jOh6SEeCkz5PP4vZT5g" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L-jOx6SEeCkz5PP4vZT5g" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L-jPB6SEeCkz5PP4vZT5g" type="6003">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L-jPR6SEeCkz5PP4vZT5g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L-jPh6SEeCkz5PP4vZT5g" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L-jPx6SEeCkz5PP4vZT5g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L-jQB6SEeCkz5PP4vZT5g" type="6005">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L-jQR6SEeCkz5PP4vZT5g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L_KEB6SEeCkz5PP4vZT5g" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L_KER6SEeCkz5PP4vZT5g" x="-21" y="-21"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L_KEh6SEeCkz5PP4vZT5g" visible="false" type="6033"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L_KEx6SEeCkz5PP4vZT5g" visible="false" type="6034"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3L_KFB6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Association" href="osal.uml#_8nOQwDa2Edyv9PRkTrTu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3L_KFR6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3L_KFh6SEeCkz5PP4vZT5g" id="(0.94,0.19343065693430658)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3L_KFx6SEeCkz5PP4vZT5g" id="(0.11242603550295859,0.16666666666666666)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3L_KGB6SEeCkz5PP4vZT5g" type="4001" source="_3L9VBR6SEeCkz5PP4vZT5g" target="_3L9VBR6SEeCkz5PP4vZT5g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L_KGR6SEeCkz5PP4vZT5g" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L_KGh6SEeCkz5PP4vZT5g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L_KGx6SEeCkz5PP4vZT5g" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L_KHB6SEeCkz5PP4vZT5g" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L_KHR6SEeCkz5PP4vZT5g" type="6003">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L_KHh6SEeCkz5PP4vZT5g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L_KHx6SEeCkz5PP4vZT5g" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L_KIB6SEeCkz5PP4vZT5g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L_KIR6SEeCkz5PP4vZT5g" type="6005">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L_KIh6SEeCkz5PP4vZT5g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L_KIx6SEeCkz5PP4vZT5g" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L_KJB6SEeCkz5PP4vZT5g" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L_KJR6SEeCkz5PP4vZT5g" visible="false" type="6033"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L_KJh6SEeCkz5PP4vZT5g" visible="false" type="6034"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3L_KJx6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Association" href="osal.uml#_JPxawDa5Edyv9PRkTrTu0A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3L_KKB6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3L_KKR6SEeCkz5PP4vZT5g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3L_KKh6SEeCkz5PP4vZT5g"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Size xmi:id="_3L_KKx6SEeCkz5PP4vZT5g" width="100" height="274"/>
+ <notation:Location xmi:id="_3L_KLB6SEeCkz5PP4vZT5g" x="179" y="30"/>
+ <notation:Size xmi:id="_3L_KLR6SEeCkz5PP4vZT5g" width="174" height="100"/>
+ <notation:Location xmi:id="_3L_KLh6SEeCkz5PP4vZT5g" x="177" y="679"/>
+ <notation:Location xmi:id="_3L_KLx6SEeCkz5PP4vZT5g" x="714" y="680"/>
+ <notation:Size xmi:id="_3L_KMB6SEeCkz5PP4vZT5g" width="119" height="35"/>
+ <notation:Location xmi:id="_3L_KMR6SEeCkz5PP4vZT5g" x="254" y="10"/>
+ <notation:Size xmi:id="_3L_KMh6SEeCkz5PP4vZT5g" width="169" height="270"/>
+ <notation:Location xmi:id="_3L_KMx6SEeCkz5PP4vZT5g" x="536" y="37"/>
+ <notation:Size xmi:id="_3L_KNB6SEeCkz5PP4vZT5g" width="83" height="51"/>
+ <notation:Location xmi:id="_3L_KNR6SEeCkz5PP4vZT5g" x="789" y="644"/>
+ <notation:Size xmi:id="_3L_KNh6SEeCkz5PP4vZT5g" width="165" height="59"/>
+ <notation:Location xmi:id="_3L_KNx6SEeCkz5PP4vZT5g" x="326" y="635"/>
+ <notation:Diagram xmi:id="_3L_KOB6SEeCkz5PP4vZT5g" type="PapyrusUMLClassDiagram" name="set classes: details" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_3L_KOR6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L_KOh6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L_KOx6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L_KPB6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L_KPR6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L_KPh6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L_KPx6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L_KQB6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L_KQR6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L_KQh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L_KQx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L_KRB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L_KRR6SEeCkz5PP4vZT5g" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_3L_KRh6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VTGWYFkTEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vg9MMVkTEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_ky3HADUyEdyDReAOQiyvOg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L_KRx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L_KSB6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VTGWYlkTEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vg9zQFkTEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_9DJbEDUyEdyDReAOQiyvOg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L_KSR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L_KSh6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VTG9cVkTEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vg-aUFkTEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_-f1bgDUyEdyDReAOQiyvOg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L_KSx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L_KTB6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_ApOw8DUzEdyDReAOQiyvOg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L_KTR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L_KTh6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_CTesQDUzEdyDReAOQiyvOg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L_KTx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L_KUB6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_DrscYDUzEdyDReAOQiyvOg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L_KUR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L_KUh6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_E8J-sDUzEdyDReAOQiyvOg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L_xIB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L_xIR6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XePYQFkTEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XjS3YFkTEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_GN0a4DUzEdyDReAOQiyvOg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L_xIh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L_xIx6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VTHkgFkTEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vg-aUVkTEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_HjplYDUzEdyDReAOQiyvOg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L_xJB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L_xJR6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VTHkglkTEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vg_BYFkTEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_I_JTADUzEdyDReAOQiyvOg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L_xJh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L_xJx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_KWxNQDUzEdyDReAOQiyvOg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L_xKB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L_xKR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_MPd0QDUzEdyDReAOQiyvOg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L_xKh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L_xKx6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VTCE8FkTEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vg6I4FkTEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_Am2XwDamEdyMZ7r5-upW2A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L_xLB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L_xLR6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VTDTEFkTEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vg6I4VkTEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_gDSwgDamEdyMZ7r5-upW2A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L_xLh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L_xLx6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VTDTElkTEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vg6v8FkTEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_2-Vv8DamEdyMZ7r5-upW2A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L_xMB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L_xMR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_InFS0DaoEdyMZ7r5-upW2A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L_xMh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L_xMx6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VTD6IVkTEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vg6v8VkTEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_Kzm0wDaoEdyMZ7r5-upW2A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L_xNB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L_xNR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_Mh4UcDaoEdyMZ7r5-upW2A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L_xNh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L_xNx6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VTEhMFkTEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vg7XAFkTEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_NLvw0DaoEdyMZ7r5-upW2A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L_xOB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L_xOR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_ORpB4DaoEdyMZ7r5-upW2A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L_xOh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L_xOx6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VTEhMlkTEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vg7-EFkTEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_QxrVsDaoEdyMZ7r5-upW2A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L_xPB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L_xPR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_SaIhQDaoEdyMZ7r5-upW2A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L_xPh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L_xPx6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VTFIQFkTEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vg7-EVkTEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_ToX2ADaoEdyMZ7r5-upW2A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L_xQB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L_xQR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_WklIcDaoEdyMZ7r5-upW2A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L_xQh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L_xQx6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VTFIQlkTEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vg8lIFkTEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_YZZ8EDaoEdyMZ7r5-upW2A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L_xRB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L_xRR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_aO0lkDaoEdyMZ7r5-upW2A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L_xRh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L_xRx6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VTFvUFkTEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vg8lIVkTEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_ddN0MDaoEdyMZ7r5-upW2A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L_xSB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L_xSR6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VTFvUlkTEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vg9MMFkTEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_lrJPMDa5Edyv9PRkTrTu0A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3L_xSh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L_xSx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L_xTB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L_xTR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L_xTh6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3L_xTx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3L_xUB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L_xUR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ldsP4FdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ldsP4VdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ldsP4ldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3L_xUh6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_xxCKcDUuEdyDReAOQiyvOg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3L_xUx6SEeCkz5PP4vZT5g" x="27" y="36" width="370" height="442"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3L_xVB6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L_xVR6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L_xVh6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L_xVx6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L_xWB6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3L_xWR6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3L_xWh6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3L_xWx6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3L_xXB6SEeCkz5PP4vZT5g" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_3L_xXR6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_VurNcDajEdyC6dXxO2UOEQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MAYMB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MAYMR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MAYMh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MAYMx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MAYNB6SEeCkz5PP4vZT5g" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_3MAYNR6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VTLO4VkTEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VhCrwFkTEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_ftqi8DafEdyC6dXxO2UOEQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MAYNh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MAYNx6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VTL18FkTEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VhCrwVkTEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_A4X0UDagEdyC6dXxO2UOEQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MAYOB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MAYOR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_Z_TnEDahEdyC6dXxO2UOEQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MAYOh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MAYOx6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VTL18lkTEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VhDS0FkTEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_-xPoYDaiEdyC6dXxO2UOEQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MAYPB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MAYPR6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VTKn0FkTEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VhCEsFkTEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_a-g58DakEdyMZ7r5-upW2A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MAYPh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MAYPx6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VTKn0lkTEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VhCEsVkTEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_5hcQwDakEdyMZ7r5-upW2A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MAYQB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MAYQR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MAYQh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MAYQx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MAYRB6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MAYRR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MAYRh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MAYRx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ldy9kFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ldy9kVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ldy9kldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MAYSB6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_zOJVcDaeEdyC6dXxO2UOEQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MAYSR6SEeCkz5PP4vZT5g" x="452" y="35" width="287" height="178"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MAYSh6SEeCkz5PP4vZT5g" type="2012" fillColor="16634574" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MAYSx6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MAYTB6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MAYTR6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MAYTh6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MAYTx6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MAYUB6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MAYUR6SEeCkz5PP4vZT5g" type="5038"/>
+ <element xmi:type="uml:Comment" href="osal.uml#_S5s5gDalEdyMZ7r5-upW2A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MAYUh6SEeCkz5PP4vZT5g" x="810" y="108" width="151" height="105"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MAYUx6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MAYVB6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MAYVR6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MAYVh6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MAYVx6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MAYWB6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MAYWR6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MAYWh6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MAYWx6SEeCkz5PP4vZT5g" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_3MAYXB6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_QYjFMDbCEdy0gLsbEakL5w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MAYXR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MAYXh6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_QcH9oDbCEdy0gLsbEakL5w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MAYXx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MAYYB6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_QfZ7IDbCEdy0gLsbEakL5w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MAYYR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MAYYh6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_QiiHoDbCEdy0gLsbEakL5w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MAYYx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MAYZB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MAYZR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MAYZh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MAYZx6SEeCkz5PP4vZT5g" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_3MAYaB6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VTILkFkTEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vg_BYVkTEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_rnk_IDa-Edy_E4ZljVbr-g"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MAYaR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MAYah6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_-M24MDa-Edy_E4ZljVbr-g"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MAYax6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MAYbB6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_Q1uQwDa_Edy_E4ZljVbr-g"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MA_QB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MA_QR6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VTILklkTEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vg_ocFkTEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_sUiWUDa_Edy0gLsbEakL5w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MA_Qh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MA_Qx6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VTIyoFkTEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VhAPgFkTEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_DQoeoDbAEdy0gLsbEakL5w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MA_RB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MA_RR6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VTIyolkTEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VhAPgVkTEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_b589wDbAEdy0gLsbEakL5w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MA_Rh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MA_Rx6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VTJZsVkTEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VhA2kFkTEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_wQyUADbAEdy0gLsbEakL5w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MA_SB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MA_SR6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VTKAwFkTEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VhA2kVkTEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_Ch8-QDbBEdy0gLsbEakL5w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MA_Sh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MA_Sx6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VTKAwlkTEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VhBdoFkTEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_kEzC0DbBEdy0gLsbEakL5w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MA_TB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MA_TR6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VTMdAFkTEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VhD54FkTEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_q4yCoDbCEdy0gLsbEakL5w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MA_Th6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MA_Tx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MA_UB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MA_UR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MA_Uh6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MA_Ux6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MA_VB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MA_VR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ld2n8FdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ld2n8VdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_gutqEDa8Edy_E4ZljVbr-g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ld2n8ldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ld2n81diEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ld2n9FdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ld2n9VdiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MA_Vh6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_2bXLkDUuEdyDReAOQiyvOg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MA_Vx6SEeCkz5PP4vZT5g" x="452" y="269" width="368" height="254"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MA_WB6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MA_WR6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MA_Wh6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MA_Wx6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MA_XB6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MA_XR6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MA_Xh6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MA_Xx6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MA_YB6SEeCkz5PP4vZT5g" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_3MA_YR6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_IPWqUDbfEdy0Rd6V_tf1-Q"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MA_Yh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MA_Yx6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_ISLU0DbfEdy0Rd6V_tf1-Q"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MA_ZB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MA_ZR6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_IVAmYDbfEdy0Rd6V_tf1-Q"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MA_Zh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MA_Zx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MA_aB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MA_aR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MA_ah6SEeCkz5PP4vZT5g" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_3MA_ax6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_C1-AQDbeEdy0Rd6V_tf1-Q"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MA_bB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MA_bR6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aIFvYFkTEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_atQ5AFkTEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_K37EgDbeEdy0Rd6V_tf1-Q"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MA_bh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MA_bx6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aIG9gFkTEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_atQ5AVkTEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_XikLIDbeEdy0Rd6V_tf1-Q"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MA_cB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MA_cR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_p1ESIDbeEdy0Rd6V_tf1-Q"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MA_ch6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MA_cx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_795fwDbeEdy0Rd6V_tf1-Q"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MA_dB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MA_dR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MA_dh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MA_dx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MA_eB6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MA_eR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MA_eh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MA_ex6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ld6SUFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ld65YFdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_xGQLUDbfEdy0Rd6V_tf1-Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ld65YVdiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ld65YldiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ld65Y1diEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ld65ZFdiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MA_fB6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_y68Y0DUuEdyDReAOQiyvOg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MBmUB6SEeCkz5PP4vZT5g" x="27" y="495" width="370" height="154"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_3MBmUR6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Package" href="osal.uml#_q6QRMC-OEdySSa8YESkO2w"/>
+ <edges xmi:type="notation:Connector" xmi:id="_3MBmUh6SEeCkz5PP4vZT5g" type="4013" source="_3MAYSh6SEeCkz5PP4vZT5g" target="_3L_xVB6SEeCkz5PP4vZT5g" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_3MBmUx6SEeCkz5PP4vZT5g"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MBmVB6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MBmVR6SEeCkz5PP4vZT5g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MBmVh6SEeCkz5PP4vZT5g"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Size xmi:id="_3MBmVx6SEeCkz5PP4vZT5g" width="369" height="505"/>
+ <notation:Location xmi:id="_3MBmWB6SEeCkz5PP4vZT5g" x="18" y="38"/>
+ <notation:Size xmi:id="_3MBmWR6SEeCkz5PP4vZT5g" width="287" height="178"/>
+ <notation:Location xmi:id="_3MBmWh6SEeCkz5PP4vZT5g" x="480" y="61"/>
+ <notation:Size xmi:id="_3MBmWx6SEeCkz5PP4vZT5g" width="151" height="105"/>
+ <notation:Location xmi:id="_3MBmXB6SEeCkz5PP4vZT5g" x="925" y="181"/>
+ <notation:Size xmi:id="_3MBmXR6SEeCkz5PP4vZT5g" width="373" height="275"/>
+ <notation:Location xmi:id="_3MBmXh6SEeCkz5PP4vZT5g" x="479" y="261"/>
+ <notation:Size xmi:id="_3MBmXx6SEeCkz5PP4vZT5g" width="325" height="179"/>
+ <notation:Location xmi:id="_3MBmYB6SEeCkz5PP4vZT5g" x="479" y="758"/>
+ <notation:Diagram xmi:id="_3MBmYR6SEeCkz5PP4vZT5g" type="PapyrusUMLClassDiagram" name="util classes: include relationships" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_3MBmYh6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MBmYx6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MBmZB6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MBmZR6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MBmZh6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MBmZx6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MBmaB6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MBmaR6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MBmah6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MBmax6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MBmbB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MBmbR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MBmbh6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MBmbx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MBmcB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MBmcR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MBmch6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MBmcx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MBmdB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MBmdR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lgwyAFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lgwyAVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_Vh1d8DR3EdypGbuyt3_DaA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lgwyAldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lgxZEFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lgxZEVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lgxZEldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MBmdh6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_WXH_4DO2EdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MBmdx6SEeCkz5PP4vZT5g" x="468" y="189" width="307" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MCNcx6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MCNdB6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MCNdR6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MCNdh6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MCNdx6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MCNeB6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MCNeR6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MCNeh6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MCNex6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MCNfB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MCNfR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MCNfh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MCNfx6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MCNgB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MCNgR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MCNgh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MCNgx6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MCNhB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MCNhR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MCNhh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lgzOQFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lgzOQVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lgzOQldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MCNhx6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_W-ZGIDO0EdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MCNiB6SEeCkz5PP4vZT5g" x="468" y="90" width="307" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MCNiR6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MCNih6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MCNix6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MCNjB6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MCNjR6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MCNjh6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MCNjx6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MCNkB6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MCNkR6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MCNkh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MCNkx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MCNlB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MCNlR6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MCNlh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MCNlx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MCNmB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MCNmR6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MCNmh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MCNmx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MCNnB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lg1DcFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lg1DcVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_DXEWYDUWEdyDReAOQiyvOg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lg1DcldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lg1qgFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lg1qgVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lg1qgldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MCNnR6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_Fqa9QDUPEdy0feurbW0fyQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MCNnh6SEeCkz5PP4vZT5g" x="18" y="117" width="379" height="46"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MCNnx6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MCNoB6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MCNoR6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MCNoh6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MCNox6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MCNpB6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MCNpR6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MCNph6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MCNpx6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MCNqB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MCNqR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MCNqh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MCNqx6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MCNrB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MCNrR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MCNrh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MC0cB6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MC0cR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MC0ch6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MC0cx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lg24oFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lg24oVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lg24oldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MC0dB6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_sQ1JADO0EdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MC0dR6SEeCkz5PP4vZT5g" x="18" y="252" width="82" height="54"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MC0dh6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MC0dx6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MC0eB6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MC0eR6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MC0eh6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MC0ex6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MC0fB6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MC0fR6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MC0fh6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MC0fx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MC0gB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MC0gR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MC0gh6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MC0gx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MC0hB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MC0hR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MC0hh6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MC0hx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MC0iB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MC0iR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lg4GwFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lg4GwVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lg4GwldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MC0ih6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_1vnXoDO0EdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MC0ix6SEeCkz5PP4vZT5g" x="216" y="252" width="82" height="54"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MC0jB6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MC0jR6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MC0jh6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MC0jx6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MC0kB6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MC0kR6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MC0kh6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MC0kx6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MC0lB6SEeCkz5PP4vZT5g" visible="false" type="7017" collapsed="true">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MC0lR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MC0lh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MC0lx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MC0mB6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MC0mR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MC0mh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MC0mx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MC0nB6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MC0nR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MC0nh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MC0nx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lg5U4FdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lg5U4VdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lg5U4ldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MC0oB6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_3W43cDO0EdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MC0oR6SEeCkz5PP4vZT5g" x="315" y="252" width="82" height="54"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MC0oh6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MC0ox6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MC0pB6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MC0pR6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MC0ph6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MC0px6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MC0qB6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MC0qR6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MC0qh6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MC0qx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MC0rB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MC0rR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MC0rh6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MC0rx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MC0sB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MC0sR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MC0sh6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MC0sx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MC0tB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MC0tR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lg6jAFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lg6jAVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lg6jAldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MC0th6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_0AwCEDO0EdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MC0tx6SEeCkz5PP4vZT5g" x="117" y="252" width="82" height="54"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MC0uB6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MC0uR6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MC0uh6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MC0ux6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MC0vB6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MC0vR6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MC0vh6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MC0vx6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MC0wB6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MDbgB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MDbgR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MDbgh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MDbgx6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MDbhB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MDbhR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MDbhh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MDbhx6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MDbiB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MDbiR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MDbih6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lg7xIFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lg7xIVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_b0TcwFIfEdy7g9CjxdN7jw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lg7xIldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lg8YMFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lg8YMVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lg8YMldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MDbix6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_1DM54DxBEdyfAeav5abbAw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MDbjB6SEeCkz5PP4vZT5g" x="468" y="279" width="91" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MDbjR6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MDbjh6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MDbjx6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MDbkB6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MDbkR6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MDbkh6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MDbkx6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MDblB6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MDblR6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MDblh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MDblx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MDbmB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MDbmR6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MDbmh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MDbmx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MDbnB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MDbnR6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MDbnh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MDbnx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MDboB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lg-NYFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lg-NYVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_UXASAE_gEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lg-NYldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lg-NY1diEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lg-NZFdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lg-NZVdiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MDboR6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_-HeCsDj_Edy0Rd6V_tf1-Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MDboh6SEeCkz5PP4vZT5g" x="576" y="279" width="91" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MDbox6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MDbpB6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MDbpR6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MDbph6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MDbpx6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MDbqB6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MDbqR6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MDbqh6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MDbqx6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MDbrB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MDbrR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MDbrh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MDbrx6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MDbsB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MDbsR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MDbsh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MDbsx6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MDbtB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MDbtR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MDbth6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lhACkFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lhACkVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_ceH5QDkaEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lhACkldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lhApoFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lhApoVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lhApoldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MDbtx6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_FuKEEDj8Edy0Rd6V_tf1-Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MDbuB6SEeCkz5PP4vZT5g" x="684" y="279" width="91" height="37"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_3MDbuR6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Package" href="osal.uml#_0AZ9YC-OEdySSa8YESkO2w"/>
+ <edges xmi:type="notation:Connector" xmi:id="_3MDbvx6SEeCkz5PP4vZT5g" type="4008" source="_3MCNiR6SEeCkz5PP4vZT5g" target="_3MCNnx6SEeCkz5PP4vZT5g" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MDbwB6SEeCkz5PP4vZT5g" visible="false" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MDbwR6SEeCkz5PP4vZT5g" x="-26" y="66"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MDbwh6SEeCkz5PP4vZT5g" visible="false" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MDbwx6SEeCkz5PP4vZT5g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3MDbxB6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Dependency" href="osal.uml#_dQB60DVKEdyF2KWMAqLQBg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MDbxR6SEeCkz5PP4vZT5g" points="[-50, -3, 139, 131]$[-169, -10, 20, 124]$[-185, -106, 4, 28]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MDbxh6SEeCkz5PP4vZT5g" id="(0.14054054054054055,0.8043478260869565)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MDbxx6SEeCkz5PP4vZT5g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3MECkB6SEeCkz5PP4vZT5g" type="4008" source="_3MCNiR6SEeCkz5PP4vZT5g" target="_3MC0dh6SEeCkz5PP4vZT5g" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MECkR6SEeCkz5PP4vZT5g" visible="false" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MECkh6SEeCkz5PP4vZT5g" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MECkx6SEeCkz5PP4vZT5g" visible="false" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MEClB6SEeCkz5PP4vZT5g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3MEClR6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Dependency" href="osal.uml#_d01RADVKEdyF2KWMAqLQBg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MEClh6SEeCkz5PP4vZT5g" points="[4, 7, 8, -116]$[4, 96, 8, -27]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MEClx6SEeCkz5PP4vZT5g" id="(0.6351351351351351,0.8913043478260869)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MECmB6SEeCkz5PP4vZT5g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3MECmR6SEeCkz5PP4vZT5g" type="4008" source="_3MCNiR6SEeCkz5PP4vZT5g" target="_3MC0jB6SEeCkz5PP4vZT5g" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MECmh6SEeCkz5PP4vZT5g" visible="false" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MECmx6SEeCkz5PP4vZT5g" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MECnB6SEeCkz5PP4vZT5g" visible="false" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MECnR6SEeCkz5PP4vZT5g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3MECnh6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Dependency" href="osal.uml#_eJ_osDVKEdyF2KWMAqLQBg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MECnx6SEeCkz5PP4vZT5g" points="[5, 4, 4, -170]$[5, 147, 4, -27]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MECoB6SEeCkz5PP4vZT5g" id="(0.9108108108108108,0.9130434782608695)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MECoR6SEeCkz5PP4vZT5g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3MECoh6SEeCkz5PP4vZT5g" type="4008" source="_3MBmYh6SEeCkz5PP4vZT5g" target="_3MC0uB6SEeCkz5PP4vZT5g" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MECox6SEeCkz5PP4vZT5g" visible="false" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MECpB6SEeCkz5PP4vZT5g" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MECpR6SEeCkz5PP4vZT5g" visible="false" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MECph6SEeCkz5PP4vZT5g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3MECpx6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Dependency" href="osal.uml#_Ie1FEFbIEd-9TNLvplUFDQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MECqB6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MECqR6SEeCkz5PP4vZT5g" id="(0.16286644951140064,0.87)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MECqh6SEeCkz5PP4vZT5g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3MECqx6SEeCkz5PP4vZT5g" type="4008" source="_3MBmYh6SEeCkz5PP4vZT5g" target="_3MDbjR6SEeCkz5PP4vZT5g" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MECrB6SEeCkz5PP4vZT5g" visible="false" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MECrR6SEeCkz5PP4vZT5g" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MECrh6SEeCkz5PP4vZT5g" visible="false" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MECrx6SEeCkz5PP4vZT5g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3MECsB6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Usage" href="osal.uml#_WP12gFbLEd-9TNLvplUFDQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MECsR6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MECsh6SEeCkz5PP4vZT5g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MECsx6SEeCkz5PP4vZT5g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3MECtB6SEeCkz5PP4vZT5g" type="4008" source="_3MBmYh6SEeCkz5PP4vZT5g" target="_3MDbox6SEeCkz5PP4vZT5g" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MECtR6SEeCkz5PP4vZT5g" visible="false" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MECth6SEeCkz5PP4vZT5g" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MECtx6SEeCkz5PP4vZT5g" visible="false" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MECuB6SEeCkz5PP4vZT5g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3MECuR6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Usage" href="osal.uml#_aZ7RUFbLEd-9TNLvplUFDQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MECuh6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MECux6SEeCkz5PP4vZT5g" id="(0.8306188925081434,0.93)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MECvB6SEeCkz5PP4vZT5g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8oV3YFkTEeKyM9oNj0qhEg" type="4002" source="_3MCNcx6SEeCkz5PP4vZT5g" target="_3MBmYh6SEeCkz5PP4vZT5g" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_B90HQFkUEeKyM9oNj0qhEg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UGfi4NqEEeKrRY-H1kHnNA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UGfi4dqEEeKrRY-H1kHnNA" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UGfi4tqEEeKrRY-H1kHnNA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UGfi49qEEeKrRY-H1kHnNA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UGfi5NqEEeKrRY-H1kHnNA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8oXFgFkTEeKyM9oNj0qhEg" type="6007">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__km0MFkTEeKyM9oNj0qhEg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AV68YFkUEeKyM9oNj0qhEg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AV68YVkUEeKyM9oNj0qhEg" key="StereotypeList" value="Cpp::CppVisibility"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AV68YlkUEeKyM9oNj0qhEg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AV68Y1kUEeKyM9oNj0qhEg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AV68ZFkUEeKyM9oNj0qhEg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8oXFgVkTEeKyM9oNj0qhEg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8oV3YVkTEeKyM9oNj0qhEg" fontName="Sans Serif"/>
+ <element xmi:type="uml:Generalization" href="osal.uml#_ZFUrgDO2EdyG-pUz-bb-Lg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8oV3YlkTEeKyM9oNj0qhEg" points="[50, 0, -103, 0]$[79, 0, -74, 0]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6ydeYFkUEeKyM9oNj0qhEg" id="(0.5211726384364821,0.06)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Size xmi:id="_3MECvR6SEeCkz5PP4vZT5g" width="148" height="100"/>
+ <notation:Location xmi:id="_3MECvh6SEeCkz5PP4vZT5g" x="641" y="536"/>
+ <notation:Size xmi:id="_3MECvx6SEeCkz5PP4vZT5g" width="148" height="93"/>
+ <notation:Location xmi:id="_3MECwB6SEeCkz5PP4vZT5g" x="554" y="351"/>
+ <notation:Size xmi:id="_3MECwR6SEeCkz5PP4vZT5g" width="152" height="100"/>
+ <notation:Location xmi:id="_3MECwh6SEeCkz5PP4vZT5g" x="396" y="68"/>
+ <notation:Location xmi:id="_3MECwx6SEeCkz5PP4vZT5g" x="512" y="536"/>
+ <notation:Location xmi:id="_3MECxB6SEeCkz5PP4vZT5g" x="389" y="536"/>
+ <notation:Size xmi:id="_3MECxR6SEeCkz5PP4vZT5g" width="100" height="55"/>
+ <notation:Location xmi:id="_3MEpoB6SEeCkz5PP4vZT5g" x="200" y="425"/>
+ <notation:Size xmi:id="_3MEpoR6SEeCkz5PP4vZT5g" width="100" height="57"/>
+ <notation:Location xmi:id="_3MEpoh6SEeCkz5PP4vZT5g" x="200" y="355"/>
+ <notation:Size xmi:id="_3MEpox6SEeCkz5PP4vZT5g" width="100" height="54"/>
+ <notation:Location xmi:id="_3MEppB6SEeCkz5PP4vZT5g" x="202" y="228"/>
+ <notation:Location xmi:id="_3MEppR6SEeCkz5PP4vZT5g" x="201" y="291"/>
+ <notation:Location xmi:id="_3MEpph6SEeCkz5PP4vZT5g" x="741" y="351"/>
+ <notation:Location xmi:id="_3MEppx6SEeCkz5PP4vZT5g" x="842" y="462"/>
+ <notation:Location xmi:id="_3MEpqB6SEeCkz5PP4vZT5g" x="869" y="586"/>
+ <notation:Diagram xmi:id="_3MEpqR6SEeCkz5PP4vZT5g" type="PapyrusUMLClassDiagram" name="Class diagram of OS_AL" measurementUnit="Pixel">
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_3MEpwB6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Model" href="osal.uml#_ROTQYC-OEdySSa8YESkO2w"/>
+ </notation:Diagram>
+ <notation:Location xmi:id="_3MEpwR6SEeCkz5PP4vZT5g" x="192" y="191"/>
+ <notation:Diagram xmi:id="_3MEpwh6SEeCkz5PP4vZT5g" type="PapyrusUMLClassDiagram" name="set classes: include relationships" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_3MEpwx6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MEpxB6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MEpxR6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MEpxh6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MEpxx6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MEpyB6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MEpyR6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MEpyh6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MEpyx6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MEpzB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MEpzR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MEpzh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MEpzx6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MEp0B6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MEp0R6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MEp0h6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MEp0x6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MEp1B6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MEp1R6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MEp1h6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_li6uIFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_li6uIVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_li6uIldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MEp1x6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_xxCKcDUuEdyDReAOQiyvOg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MEp2B6SEeCkz5PP4vZT5g" x="78" y="78" width="100" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MFQvB6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MFQvR6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MFQvh6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MFQvx6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MFQwB6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MFQwR6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MFQwh6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MFQwx6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MFQxB6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MFQxR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MFQxh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MFQxx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MFQyB6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MFQyR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MFQyh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MFQyx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MFQzB6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MFQzR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MFQzh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MFQzx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_li78QFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_li78QVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_gutqEDa8Edy_E4ZljVbr-g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_li78QldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_li8jUFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_li8jUVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_li8jUldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MFQ0B6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_2bXLkDUuEdyDReAOQiyvOg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MFQ0R6SEeCkz5PP4vZT5g" x="261" y="77" width="100" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MFQ0h6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MFQ0x6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MFQ1B6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MFQ1R6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MFQ1h6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MFQ1x6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MFQ2B6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MFQ2R6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MFQ2h6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MFQ2x6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MFQ3B6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MFQ3R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MFQ3h6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MFQ3x6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MFQ4B6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MFQ4R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MFQ4h6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MFQ4x6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MFQ5B6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MFQ5R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_li9xcFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_li9xcVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_xGQLUDbfEdy0Rd6V_tf1-Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_li9xcldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_li-YgFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_li-YgVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_li-YgldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MFQ5h6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_y68Y0DUuEdyDReAOQiyvOg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MFQ5x6SEeCkz5PP4vZT5g" x="419" y="76" width="100" height="100"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_3MFQ6B6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Package" href="osal.uml#_q6QRMC-OEdySSa8YESkO2w"/>
+ </notation:Diagram>
+ <notation:Location xmi:id="_3MFQ6R6SEeCkz5PP4vZT5g" x="316" y="423"/>
+ <notation:Location xmi:id="_3MFQ6h6SEeCkz5PP4vZT5g" x="216" y="80"/>
+ <notation:Location xmi:id="_3MFQ6x6SEeCkz5PP4vZT5g" x="499" y="422"/>
+ <notation:Location xmi:id="_3MFQ7B6SEeCkz5PP4vZT5g" x="657" y="421"/>
+ <notation:Diagram xmi:id="_3MFQ7R6SEeCkz5PP4vZT5g" type="PapyrusUMLClassDiagram" name="ProcessingResources classes : Structural relationships" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_3MFQ7h6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MFQ7x6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MFQ8B6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MFQ8R6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MFQ8h6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MFQ8x6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MFQ9B6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MFQ9R6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MFQ9h6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MFQ9x6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MFQ-B6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MFQ-R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MFQ-h6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MFQ-x6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MFQ_B6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MFQ_R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MF3wB6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MF3wR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MF3wh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MF3wx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mKY90FdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mKY90VdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_UXASAE_gEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mKY90ldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mKY901diEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mKY91FdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mKY91VdiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MF3xB6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_-HeCsDj_Edy0Rd6V_tf1-Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MF3xR6SEeCkz5PP4vZT5g" x="324" y="45" width="125" height="84"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MF3xh6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MF3xx6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MF3yB6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MF3yR6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MF3yh6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MF3yx6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MF3zB6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MF3zR6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MF3zh6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MF3zx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MF30B6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MF30R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MF30h6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MF30x6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MF31B6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MF31R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MF31h6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MF31x6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MF32B6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MF32R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mKbaEFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mKbaEVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_Q72YwE_rEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mKbaEldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mKcBIFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mKcBIVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mKcBIldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MF32h6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_Saw1YDkDEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MF32x6SEeCkz5PP4vZT5g" x="27" y="45" width="145" height="88"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MF33B6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MF33R6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MF33h6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MF33x6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MF34B6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MF34R6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MF34h6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MF34x6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MF35B6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MF35R6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MF35h6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MF35x6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MF36B6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MF36R6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MF36h6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MF36x6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MF37B6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MF37R6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MF37h6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MF37x6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mKd2UFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mKd2UVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_57kQoE_BEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mKd2UldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mKedYFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mKedYVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mKedYldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MF38B6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_oSgIME_BEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MF38R6SEeCkz5PP4vZT5g" x="182" y="195" width="297" height="58"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MF38h6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MF38x6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MF39B6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MF39R6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MF39h6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MF39x6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MF3-B6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MF3-R6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MF3-h6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MF3-x6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MF3_B6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MF3_R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MF3_h6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MF3_x6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MF4AB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MF4AR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MF4Ah6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MF4Ax6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MF4BB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MF4BR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mKgSkFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mKgSkVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_bphYAE_NEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mKgSkldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mKg5oFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mKg5oVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mKg5oldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MF4Bh6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_TVGDsE_NEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MF4Bx6SEeCkz5PP4vZT5g" x="26" y="195" width="100" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MF4CB6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MF4CR6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MF4Ch6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MF4Cx6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MF4DB6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MF4DR6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MF4Dh6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MF4Dx6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MF4EB6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MF4ER6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MF4Eh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MF4Ex6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MF4FB6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MF4FR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MF4Fh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MF4Fx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MGe0B6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MGe0R6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MGe0h6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MGe0x6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mKiHwFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mKiHwVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_TSTq8FF5EdyxP5ejovTmBw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mKiHwldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mKiu0FdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mKiu0VdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mKiu0ldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MGe1B6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_D8njME_gEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MGe1R6SEeCkz5PP4vZT5g" x="603" y="45" width="100" height="87"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MGe1h6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MGe1x6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MGe2B6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MGe2R6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MGe2h6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MGe2x6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MGe3B6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MGe3R6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MGe3h6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MGe3x6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MGe4B6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MGe4R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MGe4h6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MGe4x6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MGe5B6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MGe5R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MGe5h6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MGe5x6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MGe6B6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MGe6R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_aTOi0FjbEeKWlJhcyT0hJA" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_aTOi0VjbEeKWlJhcyT0hJA" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_PSuiAE_vEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aTOi0ljbEeKWlJhcyT0hJA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Jd8V0FjdEeKWlJhcyT0hJA" type="3015" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Jd9j8FjdEeKWlJhcyT0hJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Jd9j8VjdEeKWlJhcyT0hJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Jd9j8ljdEeKWlJhcyT0hJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Jd9j81jdEeKWlJhcyT0hJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Jd9j9FjdEeKWlJhcyT0hJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Jd9j9VjdEeKWlJhcyT0hJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Jd-LAFjdEeKWlJhcyT0hJA" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_WZOggFjdEeKWlJhcyT0hJA" type="3031" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="osal.uml#_a5QgQE_vEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WZOggVjdEeKWlJhcyT0hJA" x="26" y="8"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Jd-LAVjdEeKWlJhcyT0hJA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Jd-LAljdEeKWlJhcyT0hJA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Jd-LA1jdEeKWlJhcyT0hJA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Jd-LBFjdEeKWlJhcyT0hJA"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="osal.uml#_Z03EAE_vEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Jd8V0VjdEeKWlJhcyT0hJA" x="121" y="-27" width="61" height="79"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mKj88FdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mKj88VdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mKj88ldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MGe6h6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_9-OUUE_uEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MGe6x6SEeCkz5PP4vZT5g" x="558" y="207" width="117" height="87"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MGe-h6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MGe-x6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MGe_B6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MGe_R6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MGe_h6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MGe_x6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MGfAB6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MGfAR6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MGfAh6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MGfAx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MGfBB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MGfBR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MGfBh6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MGfBx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MGfCB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MGfCR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MGfCh6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MGfCx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MGfDB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MGfDR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mKlyIFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mKlyIVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mKlyIldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MGfDh6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_0AwCEDO0EdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MGfDx6SEeCkz5PP4vZT5g" x="182" y="304" width="100" height="48"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MGfEB6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MGfER6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MGfEh6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MGfEx6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MGfFB6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MGfFR6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MGfFh6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MGfFx6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MGfGB6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MHF4B6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MHF4R6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MHF4h6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MHF4x6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MHF5B6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MHF5R6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MHF5h6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MHF5x6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MHF6B6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MHF6R6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MHF6h6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mKnnUFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mKnnUVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mKnnUldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MHF6x6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_1vnXoDO0EdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MHF7B6SEeCkz5PP4vZT5g" x="377" y="304" width="100" height="48"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_3MHF7R6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Package" href="osal.uml#_oT0acC-OEdySSa8YESkO2w"/>
+ <edges xmi:type="notation:Connector" xmi:id="_3MHF7h6SEeCkz5PP4vZT5g" type="4001" source="_3MFQ7h6SEeCkz5PP4vZT5g" target="_3MF3xh6SEeCkz5PP4vZT5g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MHF7x6SEeCkz5PP4vZT5g" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MHF8B6SEeCkz5PP4vZT5g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MHF8R6SEeCkz5PP4vZT5g" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MHF8h6SEeCkz5PP4vZT5g" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MHF8x6SEeCkz5PP4vZT5g" type="6003">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MHF9B6SEeCkz5PP4vZT5g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MHF9R6SEeCkz5PP4vZT5g" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MHF9h6SEeCkz5PP4vZT5g" x="8" y="-14"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MHF9x6SEeCkz5PP4vZT5g" type="6005">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MHF-B6SEeCkz5PP4vZT5g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MHF-R6SEeCkz5PP4vZT5g" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MHF-h6SEeCkz5PP4vZT5g" x="-40" y="19"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MHF-x6SEeCkz5PP4vZT5g" visible="false" type="6033"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MHF_B6SEeCkz5PP4vZT5g" visible="false" type="6034"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3MHF_R6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Association" href="osal.uml#_3QgjUE_nEdy2tpS719xBwQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MHF_h6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MHF_x6SEeCkz5PP4vZT5g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MHGAB6SEeCkz5PP4vZT5g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3MHGAR6SEeCkz5PP4vZT5g" type="4001" source="_3MFQ7h6SEeCkz5PP4vZT5g" target="_3MF4CB6SEeCkz5PP4vZT5g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MHGAh6SEeCkz5PP4vZT5g" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MHGAx6SEeCkz5PP4vZT5g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MHGBB6SEeCkz5PP4vZT5g" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MHGBR6SEeCkz5PP4vZT5g" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MHGBh6SEeCkz5PP4vZT5g" type="6003">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MHGBx6SEeCkz5PP4vZT5g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MHGCB6SEeCkz5PP4vZT5g" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MHGCR6SEeCkz5PP4vZT5g" x="14" y="-14"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MHGCh6SEeCkz5PP4vZT5g" type="6005">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MHGCx6SEeCkz5PP4vZT5g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MHGDB6SEeCkz5PP4vZT5g" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MHGDR6SEeCkz5PP4vZT5g" x="-24" y="12"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MHGDh6SEeCkz5PP4vZT5g" visible="false" type="6033"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MHGDx6SEeCkz5PP4vZT5g" visible="false" type="6034"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3MHGEB6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Association" href="osal.uml#_LLUE4E_oEdy2tpS719xBwQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MHGER6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MHGEh6SEeCkz5PP4vZT5g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MHGEx6SEeCkz5PP4vZT5g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3MHGFB6SEeCkz5PP4vZT5g" type="4008" source="_3MF33B6SEeCkz5PP4vZT5g" target="_3MGe-h6SEeCkz5PP4vZT5g" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MHGFR6SEeCkz5PP4vZT5g" visible="false" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MHGFh6SEeCkz5PP4vZT5g" x="1" y="-63"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MHGFx6SEeCkz5PP4vZT5g" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MHGGB6SEeCkz5PP4vZT5g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3MHGGR6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Usage" href="osal.uml#_BARjMFnFEd-9TNLvplUFDQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MHGGh6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MHGGx6SEeCkz5PP4vZT5g" id="(0.18518518518518517,0.8103448275862069)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MHs8B6SEeCkz5PP4vZT5g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3MHs8R6SEeCkz5PP4vZT5g" type="4008" source="_3MF33B6SEeCkz5PP4vZT5g" target="_3MGfEB6SEeCkz5PP4vZT5g" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MHs8h6SEeCkz5PP4vZT5g" visible="false" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MHs8x6SEeCkz5PP4vZT5g" x="1" y="-25"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MHs9B6SEeCkz5PP4vZT5g" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MHs9R6SEeCkz5PP4vZT5g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3MHs9h6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Usage" href="osal.uml#_HQSIsFnFEd-9TNLvplUFDQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MHs9x6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MHs-B6SEeCkz5PP4vZT5g" id="(0.7946127946127947,0.8275862068965517)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MHs-R6SEeCkz5PP4vZT5g"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Size xmi:id="_3MHs-h6SEeCkz5PP4vZT5g" width="134" height="100"/>
+ <notation:Location xmi:id="_3MHs-x6SEeCkz5PP4vZT5g" x="578" y="110"/>
+ <notation:Size xmi:id="_3MHs_B6SEeCkz5PP4vZT5g" width="178" height="88"/>
+ <notation:Location xmi:id="_3MHs_R6SEeCkz5PP4vZT5g" x="265" y="111"/>
+ <notation:Location xmi:id="_3MHs_h6SEeCkz5PP4vZT5g" x="496" y="268"/>
+ <notation:Location xmi:id="_3MHs_x6SEeCkz5PP4vZT5g" x="118" y="400"/>
+ <notation:Location xmi:id="_3MHtAB6SEeCkz5PP4vZT5g" x="836" y="107"/>
+ <notation:Size xmi:id="_3MHtAR6SEeCkz5PP4vZT5g" width="132" height="100"/>
+ <notation:Location xmi:id="_3MHtAh6SEeCkz5PP4vZT5g" x="657" y="269"/>
+ <notation:Size xmi:id="_3MHtAx6SEeCkz5PP4vZT5g" width="113" height="32"/>
+ <notation:Location xmi:id="_3MHtBB6SEeCkz5PP4vZT5g" x="777" y="246"/>
+ <notation:Size xmi:id="_3MHtBR6SEeCkz5PP4vZT5g" width="100" height="53"/>
+ <notation:Location xmi:id="_3MHtBh6SEeCkz5PP4vZT5g" x="227" y="267"/>
+ <notation:Size xmi:id="_3MHtBx6SEeCkz5PP4vZT5g" width="100" height="56"/>
+ <notation:Location xmi:id="_3MHtCB6SEeCkz5PP4vZT5g" x="227" y="341"/>
+ <notation:Diagram xmi:id="_3MHtCR6SEeCkz5PP4vZT5g" type="PapyrusUMLClassDiagram" name="time classes: structural relationships" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_3MHtCh6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MHtCx6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MHtDB6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MHtDR6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MHtDh6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MHtDx6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MHtEB6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MHtER6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MHtEh6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MHtEx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MHtFB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MHtFR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MHtFh6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MHtFx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MHtGB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MHtGR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MHtGh6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MHtGx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MHtHB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MHtHR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_llVI8FdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_llVI8VdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_b4VAMDj8Edy0Rd6V_tf1-Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_llVI8ldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_llVwAFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_llVwAVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_llVwAldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MHtHh6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_BN92YDj8Edy0Rd6V_tf1-Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MHtHx6SEeCkz5PP4vZT5g" x="52" y="162" width="154" height="383"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MHtIB6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MHtIR6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MHtIh6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MHtIx6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MHtJB6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MHtJR6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MHtJh6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MHtJx6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MHtKB6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MHtKR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MHtKh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MHtKx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MHtLB6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MHtLR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MHtLh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MHtLx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MHtMB6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MHtMR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MHtMh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MHtMx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_llYMQFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_llYMQVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_tNGmwDkUEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_llYMQldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_llYzUFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_llYzUVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_llYzUldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MHtNB6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_ETakYDj8Edy0Rd6V_tf1-Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MHtNR6SEeCkz5PP4vZT5g" x="396" y="300" width="100" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MHtNh6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MHtNx6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MHtOB6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MHtOR6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MHtOh6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MHtOx6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MHtPB6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MHtPR6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MHtPh6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MHtPx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MHtQB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MHtQR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MIUAB6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MIUAR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MIUAh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MIUAx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MIUBB6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MIUBR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MIUBh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MIUBx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_llaogFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_llaogVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_ceH5QDkaEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_llaogldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_llaog1diEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_llaohFdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_llaohVdiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MIUCB6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_FuKEEDj8Edy0Rd6V_tf1-Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MIUCR6SEeCkz5PP4vZT5g" x="396" y="162" width="100" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MIUCh6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MIUCx6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MIUDB6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MIUDR6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MIUDh6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MIUDx6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MIUEB6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MIUER6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MIUEh6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MIUEx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MIUFB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MIUFR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MIUFh6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MIUFx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MIUGB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MIUGR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MIUGh6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MIUGx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MIUHB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MIUHR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_llcdsFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_llcdsVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_UXASAE_gEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_llcdsldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lldEwFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lldEwVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lldEwldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MIUHh6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_-HeCsDj_Edy0Rd6V_tf1-Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MIUHx6SEeCkz5PP4vZT5g" x="396" y="448" width="100" height="100"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_3MIUIB6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Package" href="osal.uml#_vlmmAC-OEdySSa8YESkO2w"/>
+ <edges xmi:type="notation:Connector" xmi:id="_3MIUIR6SEeCkz5PP4vZT5g" type="4001" source="_3MHtCh6SEeCkz5PP4vZT5g" target="_3MHtIB6SEeCkz5PP4vZT5g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MIUIh6SEeCkz5PP4vZT5g" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MIUIx6SEeCkz5PP4vZT5g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MIUJB6SEeCkz5PP4vZT5g" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MIUJR6SEeCkz5PP4vZT5g" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MIUJh6SEeCkz5PP4vZT5g" type="6003">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MIUJx6SEeCkz5PP4vZT5g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MIUKB6SEeCkz5PP4vZT5g" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MIUKR6SEeCkz5PP4vZT5g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MIUKh6SEeCkz5PP4vZT5g" type="6005">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MIUKx6SEeCkz5PP4vZT5g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MIULB6SEeCkz5PP4vZT5g" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MIULR6SEeCkz5PP4vZT5g" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MIULh6SEeCkz5PP4vZT5g" visible="false" type="6033"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MIULx6SEeCkz5PP4vZT5g" visible="false" type="6034"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3MIUMB6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Association" href="osal.uml#_4fJvUDj_Edy0Rd6V_tf1-Q"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MIUMR6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MIUMh6SEeCkz5PP4vZT5g" id="(0.91,0.4830287206266319)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MIUMx6SEeCkz5PP4vZT5g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3MIUNB6SEeCkz5PP4vZT5g" type="4001" source="_3MHtCh6SEeCkz5PP4vZT5g" target="_3MIUCh6SEeCkz5PP4vZT5g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MIUNR6SEeCkz5PP4vZT5g" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MIUNh6SEeCkz5PP4vZT5g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MIUNx6SEeCkz5PP4vZT5g" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MIUOB6SEeCkz5PP4vZT5g" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MIUOR6SEeCkz5PP4vZT5g" type="6003">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MIUOh6SEeCkz5PP4vZT5g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MIUOx6SEeCkz5PP4vZT5g" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MI7EB6SEeCkz5PP4vZT5g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MI7ER6SEeCkz5PP4vZT5g" type="6005">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MI7Eh6SEeCkz5PP4vZT5g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MI7Ex6SEeCkz5PP4vZT5g" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MI7FB6SEeCkz5PP4vZT5g" x="-39" y="12"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MI7FR6SEeCkz5PP4vZT5g" visible="false" type="6033"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MI7Fh6SEeCkz5PP4vZT5g" visible="false" type="6034"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3MI7Fx6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Association" href="osal.uml#_B8mhMDkAEdy0Rd6V_tf1-Q"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MI7GB6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MI7GR6SEeCkz5PP4vZT5g" id="(0.97,0.9197860962566845)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MI7Gh6SEeCkz5PP4vZT5g" id="(0.03,0.69)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3MI7Gx6SEeCkz5PP4vZT5g" type="4001" source="_3MHtCh6SEeCkz5PP4vZT5g" target="_3MIUCh6SEeCkz5PP4vZT5g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MI7HB6SEeCkz5PP4vZT5g" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MI7HR6SEeCkz5PP4vZT5g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MI7Hh6SEeCkz5PP4vZT5g" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MI7Hx6SEeCkz5PP4vZT5g" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MI7IB6SEeCkz5PP4vZT5g" type="6003">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MI7IR6SEeCkz5PP4vZT5g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MI7Ih6SEeCkz5PP4vZT5g" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MI7Ix6SEeCkz5PP4vZT5g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MI7JB6SEeCkz5PP4vZT5g" type="6005">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MI7JR6SEeCkz5PP4vZT5g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MI7Jh6SEeCkz5PP4vZT5g" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MI7Jx6SEeCkz5PP4vZT5g" x="-11" y="16"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MI7KB6SEeCkz5PP4vZT5g" visible="false" type="6033"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MI7KR6SEeCkz5PP4vZT5g" visible="false" type="6034"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3MI7Kh6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Association" href="osal.uml#_k2k-gDkFEdyuzNpSiGPe4w"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MI7Kx6SEeCkz5PP4vZT5g" points="[50, 28, -196, -112]$[196, 111, -50, -29]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MI7LB6SEeCkz5PP4vZT5g" id="(0.84,0.7754010695187166)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MI7LR6SEeCkz5PP4vZT5g" id="(0.14,0.11)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Size xmi:id="_3MI7Lh6SEeCkz5PP4vZT5g" width="100" height="374"/>
+ <notation:Location xmi:id="_3MI7Lx6SEeCkz5PP4vZT5g" x="106" y="171"/>
+ <notation:Location xmi:id="_3MI7MB6SEeCkz5PP4vZT5g" x="353" y="300"/>
+ <notation:Location xmi:id="_3MI7MR6SEeCkz5PP4vZT5g" x="658" y="171"/>
+ <notation:Location xmi:id="_3MI7Mh6SEeCkz5PP4vZT5g" x="352" y="448"/>
+ <notation:Diagram xmi:id="_3MI7Mx6SEeCkz5PP4vZT5g" type="PapyrusUMLClassDiagram" name="time classes: details" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_3MI7NB6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MI7NR6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MI7Nh6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MI7Nx6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MI7OB6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MI7OR6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MI7Oh6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MI7Ox6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MI7PB6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MI7PR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MI7Ph6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MI7Px6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MI7QB6SEeCkz5PP4vZT5g" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_3MI7QR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_RTqHkDj8Edy0Rd6V_tf1-Q"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MI7Qh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MI7Qx6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hu4moFjcEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_h02EsFjcEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_I9vBoDkAEdy0Rd6V_tf1-Q"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MI7RB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MI7RR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MI7Rh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MI7Rx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MI7SB6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MI7SR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MI7Sh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MI7Sx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lofxsFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lofxsVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_b4VAMDj8Edy0Rd6V_tf1-Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lofxsldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lofxs1diEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lofxtFdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lofxtVdiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MI7TB6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_BN92YDj8Edy0Rd6V_tf1-Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MI7TR6SEeCkz5PP4vZT5g" x="23" y="51" width="342" height="80"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MI7Th6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MI7Tx6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MI7UB6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MI7UR6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MI7Uh6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MI7Ux6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MI7VB6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MI7VR6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MI7Vh6SEeCkz5PP4vZT5g" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_3MI7Vx6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_46X-0DkXEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MJiIB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MJiIR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MJiIh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MJiIx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MJiJB6SEeCkz5PP4vZT5g" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_3MJiJR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_4_tSIDkUEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MJiJh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MJiJx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_5IDV0DkUEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MJiKB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MJiKR6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AiLxMFjcEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kXdycFjcEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#__BNhkDkUEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MJiKh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MJiKx6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_B2IFUFjcEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CiyXAFjcEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_FpAU8DkVEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MJiLB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MJiLR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_5XqpsDkVEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MJiLh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MJiLx6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4vdUFjcEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GkTEoFjcEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_Fh0SYDkWEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MJiMB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MJiMR6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_E-9egFjcEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Fgh6gFjcEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_Fk8e4DkWEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MJiMh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MJiMx6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_He_yUFjcEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_He_yUVjcEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6152"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_Fs12oDkWEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MJiNB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MJiNR6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JGIvQFjcEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JGJWUFjcEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6152"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_TvgqsDkXEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MJiNh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MJiNx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MJiOB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MJiOR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MJiOh6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MJiOx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MJiPB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MJiPR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_loiN8FdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_loiN8VdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_tNGmwDkUEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_loiN8ldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_loi1AFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_loi1AVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_loi1AldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MJiPh6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_ETakYDj8Edy0Rd6V_tf1-Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MJiPx6SEeCkz5PP4vZT5g" x="465" y="51" width="394" height="197"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MJiQB6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MJiQR6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MJiQh6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MJiQx6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MJiRB6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MJiRR6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MJiRh6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MJiRx6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MJiSB6SEeCkz5PP4vZT5g" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_3MKJMB6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_VOnAwDkpEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MKJMR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MKJMh6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_10XK8DkpEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MKJMx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MOaoB6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_19J6kDkpEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MOaoR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MOaoh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MOaox6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MOapB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MOapR6SEeCkz5PP4vZT5g" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_3MOaph6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_t7qHIDkaEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MOapx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MOaqB6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QRtlIFjcEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RQ_34FjcEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_uEc2wDkaEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MOaqR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MOaqh6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QRuMMFjcEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RRBGAFjcEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_uKtPwDkaEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MOaqx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MOarB6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_af9uADkbEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MOarR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MOarh6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_5GJNIDkbEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MOarx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MOasB6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_96S4oDkbEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MOasR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MOash6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_JDcXUDkcEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MOasx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MOatB6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NuwgMFjcEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OBxi0FjcEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_ToY8wDkcEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MOatR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MOath6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NuxHQVjcEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OByJ4FjcEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_TuMp0DkcEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MOatx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MOauB6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Nu0KkljcEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OB3CYFjcEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_T05uwDkcEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MOauR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MOauh6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Nu0KkFjcEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OB2bUVjcEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_T6uC4DkcEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MOaux6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MOavB6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NuzjgljcEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OB2bUFjcEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_T_yJEDkcEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MOavR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MOavh6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NuzjgFjcEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OB10QVjcEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_UDgLcDkcEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MOavx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MOawB6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Nuy8cVjcEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OB10QFjcEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_UKNQYDkcEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MOawR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MOawh6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NuyVYljcEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OB1NMFjcEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_UPk4kDkcEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MOawx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MOaxB6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NuyVYFjcEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OB0mIFjcEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_UVFqsDkcEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MOaxR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MOaxh6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NuxuUljcEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OBz_EFjcEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_UcFqkDkcEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MOaxx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MOayB6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NuxuUFjcEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OBzYAFjcEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_Us7i8DkcEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MOayR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MOayh6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_9jMDYDkfEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MPBsB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MPBsR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_9xV0IDkfEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MPBsh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MPBsx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_hArPsDkgEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MPBtB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MPBtR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_hIbdgDkgEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MPBth6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MPBtx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_hPbdYDkgEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MPBuB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MPBuR6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UiQ0UFjcEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UoO5cFjcEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_hWSTUDkgEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MPBuh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MPBux6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UiTQkFjcEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UoQuoFjcEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_hc_YQDkgEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MPBvB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MPBvR6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UiSpgFjcEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UoPggFjcEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_hkcEEDkgEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MPBvh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MPBvx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_IKEGADkhEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MPBwB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MPBwR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_q8lQcDkmEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MPBwh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MPBwx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_rCsfgDkmEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MPBxB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MPBxR6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UiT3oFjcEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UoRVsFjcEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_TAOvkDknEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MPBxh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MPBxx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MPByB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MPByR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MPByh6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MPByx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MPBzB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MPBzR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lomfYFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lomfYVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_ceH5QDkaEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lomfYldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lonGcFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lonGcVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lonGcldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MPBzh6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_FuKEEDj8Edy0Rd6V_tf1-Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MPBzx6SEeCkz5PP4vZT5g" x="26" y="156" width="339" height="508"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_3MPB0B6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Package" href="osal.uml#_vlmmAC-OEdySSa8YESkO2w"/>
+ </notation:Diagram>
+ <notation:Size xmi:id="_3MPB0R6SEeCkz5PP4vZT5g" width="256" height="79"/>
+ <notation:Location xmi:id="_3MPB0h6SEeCkz5PP4vZT5g" x="23" y="51"/>
+ <notation:Size xmi:id="_3MPB0x6SEeCkz5PP4vZT5g" width="326" height="211"/>
+ <notation:Location xmi:id="_3MPB1B6SEeCkz5PP4vZT5g" x="465" y="51"/>
+ <notation:Size xmi:id="_3MPB1R6SEeCkz5PP4vZT5g" width="345" height="751"/>
+ <notation:Location xmi:id="_3MPB1h6SEeCkz5PP4vZT5g" x="723" y="289"/>
+ <notation:Diagram xmi:id="_3MPB1x6SEeCkz5PP4vZT5g" type="PapyrusUMLClassDiagram" name="time classes: include relationships" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_3MPB2B6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MPB2R6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MPB2h6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MPB2x6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MPB3B6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MPB3R6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MPB3h6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MPB3x6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MPB4B6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MPB4R6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MPB4h6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MPB4x6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MPB5B6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MPB5R6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MPB5h6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MPB5x6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MPowB6SEeCkz5PP4vZT5g" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MPowR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MPowh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MPowx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lsPCMFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lsPCMVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_UXASAE_gEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lsPCMldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lsPpQFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lsPpQVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lsPpQldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MPoxB6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_-HeCsDj_Edy0Rd6V_tf1-Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MPoxR6SEeCkz5PP4vZT5g" x="788" y="561" width="100" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MPoxh6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MPoxx6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MPoyB6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MPoyR6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MPoyh6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MPoyx6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MPozB6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MPozR6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MPozh6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MPozx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MPo0B6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MPo0R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MPo0h6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MPo0x6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MPo1B6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MPo1R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MPo1h6SEeCkz5PP4vZT5g" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MPo1x6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MPo2B6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MPo2R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lsRecFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lsRecVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_ceH5QDkaEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lsRecldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lsSFgFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lsSFgVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lsSFgldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MPo2h6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_FuKEEDj8Edy0Rd6V_tf1-Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MPo2x6SEeCkz5PP4vZT5g" x="181" y="400" width="100" height="120"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MPo3B6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MPo3R6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MPo3h6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MPo3x6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MPo4B6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MPo4R6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MPo4h6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MPo4x6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MPo5B6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MPo5R6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MPo5h6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MPo5x6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MPo6B6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MPo6R6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MPo6h6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MPo6x6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MPo7B6SEeCkz5PP4vZT5g" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MPo7R6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MPo7h6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MPo7x6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lsUhwFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lsUhwVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_Vh1d8DR3EdypGbuyt3_DaA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lsUhwldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lsUhw1diEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lsUhxFdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lsUhxVdiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MPo8B6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_WXH_4DO2EdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MPo8R6SEeCkz5PP4vZT5g" x="27" y="567" width="100" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MPo8h6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MPo8x6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MPo9B6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MPo9R6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MPo9h6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MPo9x6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MPo-B6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MPo-R6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MPo-h6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MPo-x6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MPo_B6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MPo_R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MPo_h6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MPo_x6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MPpAB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MPpAR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MPpAh6SEeCkz5PP4vZT5g" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MPpAx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MPpBB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MPpBR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lsWW8FdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lsWW8VdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_tNGmwDkUEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lsWW8ldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lsW-AFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lsW-AVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lsW-AldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MPpBh6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_ETakYDj8Edy0Rd6V_tf1-Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MPpBx6SEeCkz5PP4vZT5g" x="167" y="568" width="100" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MPpCB6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MPpCR6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MPpCh6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MPpCx6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MPpDB6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MPpDR6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MPpDh6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MPpDx6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MPpEB6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MPpER6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MPpEh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MQP0B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MQP0R6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MQP0h6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MQP0x6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MQP1B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MQP1R6SEeCkz5PP4vZT5g" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MQP1h6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MQP1x6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MQP2B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lsYzMFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lsYzMVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lsYzMldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MQP2R6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_1vnXoDO0EdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MQP2h6SEeCkz5PP4vZT5g" x="409" y="187" width="100" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MQP2x6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MQP3B6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MQP3R6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MQP3h6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MQP3x6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MQP4B6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MQP4R6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MQP4h6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MQP4x6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MQP5B6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MQP5R6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MQP5h6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MQP5x6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MQP6B6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MQP6R6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MQP6h6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MQP6x6SEeCkz5PP4vZT5g" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MQP7B6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MQP7R6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MQP7h6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lsaoYFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lsaoYVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lsaoYldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MQP7x6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_sQ1JADO0EdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MQP8B6SEeCkz5PP4vZT5g" x="107" y="179" width="100" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MQP8R6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MQP8h6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MQP8x6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MQP9B6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MQP9R6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MQP9h6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MQP9x6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MQP-B6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MQP-R6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MQP-h6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MQP-x6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MQP_B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MQP_R6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MQP_h6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MQP_x6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MQQAB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MQQAR6SEeCkz5PP4vZT5g" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MQQAh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MQQAx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MQQBB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lscdkFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lscdkVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_iOOrAFClEdyTutVzffQTmQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lscdkldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lsdEoFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lsdEoVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lsdEoldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MQQBR6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_LbxUEDRPEdy1p4IpsoZYqA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MQQBh6SEeCkz5PP4vZT5g" x="248" y="182" width="100" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MQQBx6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MQQCB6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MQQCR6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MQQCh6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MQQCx6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MQQDB6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MQQDR6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MQQDh6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MQQDx6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MQQEB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MQQER6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MQQEh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MQQEx6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MQQFB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MQQFR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MQQFh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MQQFx6SEeCkz5PP4vZT5g" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MQQGB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MQQGR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MQQGh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lse50FdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lse50VdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lse50ldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MQQGx6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_3W43cDO0EdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MQQHB6SEeCkz5PP4vZT5g" x="572" y="181" width="100" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MQQHR6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MQQHh6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MQQHx6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MQQIB6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MQQIR6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MQQIh6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MQQIx6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MQQJB6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MQQJR6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MQQJh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MQQJx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MQQKB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MQQKR6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MQQKh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MQQKx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MQQLB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MQQLR6SEeCkz5PP4vZT5g" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MQQLh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MQ24B6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MQ24R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lsgH8FdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lsgH8VdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_b0TcwFIfEdy7g9CjxdN7jw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lsgH8ldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lsgvAFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lsgvAVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lsgvAldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MQ24h6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_1DM54DxBEdyfAeav5abbAw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MQ24x6SEeCkz5PP4vZT5g" x="707" y="180" width="100" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MQ25B6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MQ25R6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MQ25h6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MQ25x6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MQ26B6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MQ26R6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MQ26h6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MQ26x6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MQ27B6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MQ27R6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MQ27h6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MQ27x6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MQ28B6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MQ28R6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MQ28h6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MQ28x6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MQ29B6SEeCkz5PP4vZT5g" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MQ29R6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MQ29h6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MQ29x6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lsikMFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lsikMVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_57kQoE_BEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lsikMldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lsjLQFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lsjLQVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lsjLQldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MQ2-B6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_oSgIME_BEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MQ2-R6SEeCkz5PP4vZT5g" x="586" y="329" width="100" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MQ2-h6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MQ2-x6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MQ2_B6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MQ2_R6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MQ2_h6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MQ2_x6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MQ3AB6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MQ3AR6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MQ3Ah6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MQ3Ax6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MQ3BB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MQ3BR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MQ3Bh6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MQ3Bx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MQ3CB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MQ3CR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MQ3Ch6SEeCkz5PP4vZT5g" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MQ3Cx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MQ3DB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MQ3DR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lslAcFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lslAcVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_DXEWYDUWEdyDReAOQiyvOg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lslAcldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lslngFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lslngVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lslngldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MQ3Dh6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_Fqa9QDUPEdy0feurbW0fyQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MQ3Dx6SEeCkz5PP4vZT5g" x="512" y="472" width="100" height="100"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_3MQ3EB6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Package" href="osal.uml#_vlmmAC-OEdySSa8YESkO2w"/>
+ <edges xmi:type="notation:Connector" xmi:id="_3MQ3ER6SEeCkz5PP4vZT5g" type="4008" source="_3MPo8h6SEeCkz5PP4vZT5g" target="_3MPo3B6SEeCkz5PP4vZT5g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MQ3Eh6SEeCkz5PP4vZT5g" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MQ3Ex6SEeCkz5PP4vZT5g" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MQ3FB6SEeCkz5PP4vZT5g" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MQ3FR6SEeCkz5PP4vZT5g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3MQ3Fh6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Dependency" href="osal.uml#_l8eRwDkUEdyuzNpSiGPe4w"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MQ3Fx6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MQ3GB6SEeCkz5PP4vZT5g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MQ3GR6SEeCkz5PP4vZT5g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3MQ3Gh6SEeCkz5PP4vZT5g" type="4008" source="_3MPo8h6SEeCkz5PP4vZT5g" target="_3MPoxh6SEeCkz5PP4vZT5g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MQ3Gx6SEeCkz5PP4vZT5g" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MQ3HB6SEeCkz5PP4vZT5g" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MQ3HR6SEeCkz5PP4vZT5g" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MQ3Hh6SEeCkz5PP4vZT5g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3MQ3Hx6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Dependency" href="osal.uml#_mS08QDkUEdyuzNpSiGPe4w"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MQ3IB6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MQ3IR6SEeCkz5PP4vZT5g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MQ3Ih6SEeCkz5PP4vZT5g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3MQ3Ix6SEeCkz5PP4vZT5g" type="4008" source="_3MPoxh6SEeCkz5PP4vZT5g" target="_3MPpCB6SEeCkz5PP4vZT5g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MRd8B6SEeCkz5PP4vZT5g" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MRd8R6SEeCkz5PP4vZT5g" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MRd8h6SEeCkz5PP4vZT5g" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MRd8x6SEeCkz5PP4vZT5g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3MRd9B6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Usage" href="osal.uml#_DLK1MFK5Ed-OfYmxqPWG5g"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MRd9R6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MRd9h6SEeCkz5PP4vZT5g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MRd9x6SEeCkz5PP4vZT5g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3MRd-B6SEeCkz5PP4vZT5g" type="4008" source="_3MPoxh6SEeCkz5PP4vZT5g" target="_3MQ25B6SEeCkz5PP4vZT5g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MRd-R6SEeCkz5PP4vZT5g" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MRd-h6SEeCkz5PP4vZT5g" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MRd-x6SEeCkz5PP4vZT5g" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MRd_B6SEeCkz5PP4vZT5g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3MRd_R6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Usage" href="osal.uml#_MyswIFK5Ed-OfYmxqPWG5g"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MRd_h6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MRd_x6SEeCkz5PP4vZT5g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MReAB6SEeCkz5PP4vZT5g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3MReAR6SEeCkz5PP4vZT5g" type="4008" source="_3MPoxh6SEeCkz5PP4vZT5g" target="_3MQ2-h6SEeCkz5PP4vZT5g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MReAh6SEeCkz5PP4vZT5g" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MReAx6SEeCkz5PP4vZT5g" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MReBB6SEeCkz5PP4vZT5g" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MReBR6SEeCkz5PP4vZT5g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3MReBh6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Usage" href="osal.uml#_z1gvcFLcEd-mj-y6sW0V8w"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MReBx6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MReCB6SEeCkz5PP4vZT5g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MReCR6SEeCkz5PP4vZT5g"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Location xmi:id="_3MReCh6SEeCkz5PP4vZT5g" x="788" y="561"/>
+ <notation:Size xmi:id="_3MReCx6SEeCkz5PP4vZT5g" width="100" height="120"/>
+ <notation:Location xmi:id="_3MReDB6SEeCkz5PP4vZT5g" x="181" y="400"/>
+ <notation:Location xmi:id="_3MReDR6SEeCkz5PP4vZT5g" x="27" y="567"/>
+ <notation:Location xmi:id="_3MReDh6SEeCkz5PP4vZT5g" x="167" y="568"/>
+ <notation:Location xmi:id="_3MReDx6SEeCkz5PP4vZT5g" x="409" y="187"/>
+ <notation:Location xmi:id="_3MReEB6SEeCkz5PP4vZT5g" x="107" y="179"/>
+ <notation:Location xmi:id="_3MReER6SEeCkz5PP4vZT5g" x="248" y="182"/>
+ <notation:Location xmi:id="_3MReEh6SEeCkz5PP4vZT5g" x="572" y="181"/>
+ <notation:Location xmi:id="_3MReEx6SEeCkz5PP4vZT5g" x="707" y="180"/>
+ <notation:Location xmi:id="_3MReFB6SEeCkz5PP4vZT5g" x="586" y="329"/>
+ <notation:Location xmi:id="_3MReFR6SEeCkz5PP4vZT5g" x="512" y="472"/>
+ <notation:Diagram xmi:id="_3MReFh6SEeCkz5PP4vZT5g" type="PapyrusUMLClassDiagram" name="Tracing classes : Structural Relationships" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_3MReFx6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MReGB6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MReGR6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MReGh6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MReGx6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MReHB6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MReHR6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MReHh6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MReHx6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MReIB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MReIR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MReIh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MReIx6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MReJB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MReJR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MReJh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MReJx6SEeCkz5PP4vZT5g" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MReKB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MReKR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MReKh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lvB3gFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lvB3gVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_b0TcwFIfEdy7g9CjxdN7jw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lvB3gldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lvCekFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lvCekVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lvCekldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MReKx6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_1DM54DxBEdyfAeav5abbAw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MReLB6SEeCkz5PP4vZT5g" x="239" y="212" width="100" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MReLR6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MReLh6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MReLx6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MReMB6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MReMR6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MReMh6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MReMx6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MReNB6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MReNR6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MReNh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MReNx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MReOB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MReOR6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MReOh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MReOx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MRePB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MRePR6SEeCkz5PP4vZT5g" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MSFAB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MSFAR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MSFAh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lvFh4FdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lvFh4VdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_Gyo1gFGKEdy7g9CjxdN7jw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lvFh4ldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lvGI8FdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lvGI8VdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lvGI8ldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MSFAx6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_5InEkFGAEdyxP5ejovTmBw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MSFBB6SEeCkz5PP4vZT5g" x="240" y="347" width="100" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MSFBR6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MSFBh6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MSFBx6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MSFCB6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MSFCR6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MSFCh6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MSFCx6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MSFDB6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MSFDR6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MSFDh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MSFDx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MSFEB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MSFER6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MSFEh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MSFEx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MSFFB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MSFFR6SEeCkz5PP4vZT5g" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MSFFh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MSFFx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MSFGB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lvJzUFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lvJzUVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_DXEWYDUWEdyDReAOQiyvOg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lvJzUldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lvKaYFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lvKaYVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lvKaYldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MSFGR6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_Fqa9QDUPEdy0feurbW0fyQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MSFGh6SEeCkz5PP4vZT5g" x="451" y="214" width="100" height="100"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_3MSFGx6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Package" href="osal.uml#_w86XMC-OEdySSa8YESkO2w"/>
+ <edges xmi:type="notation:Connector" xmi:id="_3MSFHB6SEeCkz5PP4vZT5g" type="4001" source="_3MReFx6SEeCkz5PP4vZT5g" target="_3MSFBR6SEeCkz5PP4vZT5g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MSFHR6SEeCkz5PP4vZT5g" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MSFHh6SEeCkz5PP4vZT5g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MSFHx6SEeCkz5PP4vZT5g" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MSFIB6SEeCkz5PP4vZT5g" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MSFIR6SEeCkz5PP4vZT5g" type="6003">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MSFIh6SEeCkz5PP4vZT5g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MSFIx6SEeCkz5PP4vZT5g" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MSFJB6SEeCkz5PP4vZT5g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MSFJR6SEeCkz5PP4vZT5g" type="6005">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MSFJh6SEeCkz5PP4vZT5g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MSFJx6SEeCkz5PP4vZT5g" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MSFKB6SEeCkz5PP4vZT5g" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MSFKR6SEeCkz5PP4vZT5g" visible="false" type="6033"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MSFKh6SEeCkz5PP4vZT5g" visible="false" type="6034"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3MSFKx6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Association" href="osal.uml#_JBoWAFIhEdy7g9CjxdN7jw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MSFLB6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MSFLR6SEeCkz5PP4vZT5g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MSFLh6SEeCkz5PP4vZT5g"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Location xmi:id="_3MSFLx6SEeCkz5PP4vZT5g" x="239" y="212"/>
+ <notation:Location xmi:id="_3MSFMB6SEeCkz5PP4vZT5g" x="240" y="347"/>
+ <notation:Location xmi:id="_3MSFMR6SEeCkz5PP4vZT5g" x="451" y="214"/>
+ <notation:Size xmi:id="_3MVvaR6SEeCkz5PP4vZT5g" width="158" height="97"/>
+ <notation:Location xmi:id="_3MVvah6SEeCkz5PP4vZT5g" x="270" y="317"/>
+ <notation:Location xmi:id="_3MVvax6SEeCkz5PP4vZT5g" x="345" y="490"/>
+ <notation:Location xmi:id="_3MVvbB6SEeCkz5PP4vZT5g" x="91" y="30"/>
+ <notation:Size xmi:id="_3MVvbR6SEeCkz5PP4vZT5g" width="157" height="102"/>
+ <notation:Location xmi:id="_3MVvbh6SEeCkz5PP4vZT5g" x="-110" y="30"/>
+ <notation:Location xmi:id="_3MVvbx6SEeCkz5PP4vZT5g" x="91" y="303"/>
+ <notation:Size xmi:id="_3MVvcB6SEeCkz5PP4vZT5g" width="274" height="100"/>
+ <notation:Location xmi:id="_3MVvcR6SEeCkz5PP4vZT5g" x="642" y="345"/>
+ <notation:Size xmi:id="_3MVvch6SEeCkz5PP4vZT5g" width="141" height="100"/>
+ <notation:Location xmi:id="_3MVvcx6SEeCkz5PP4vZT5g" x="896" y="25"/>
+ <notation:Location xmi:id="_3MVvdB6SEeCkz5PP4vZT5g" x="856" y="503"/>
+ <notation:Location xmi:id="_3MVvdR6SEeCkz5PP4vZT5g" x="628" y="501"/>
+ <notation:Location xmi:id="_3MVvdh6SEeCkz5PP4vZT5g" x="100" y="-142"/>
+ <notation:Location xmi:id="_3MVvdx6SEeCkz5PP4vZT5g" x="276" y="-142"/>
+ <notation:Location xmi:id="_3MVveB6SEeCkz5PP4vZT5g" x="747" y="505"/>
+ <notation:Location xmi:id="_3MVveR6SEeCkz5PP4vZT5g" x="502" y="500"/>
+ <notation:Location xmi:id="_3MVveh6SEeCkz5PP4vZT5g" x="479" y="271"/>
+ <notation:Diagram xmi:id="_3MVvex6SEeCkz5PP4vZT5g" type="PapyrusUMLClassDiagram" name="ProcessingResources classes : Details" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_3MVvfB6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MVvfR6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MVvfh6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MVvfx6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MVvgB6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MVvgR6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MVvgh6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MVvgx6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MVvhB6SEeCkz5PP4vZT5g" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_3MVvhR6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_hhJsAE_IEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MVvhh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MVvhx6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_hkukcE_IEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MVviB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MVviR6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_xFdHYE_IEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MVvih6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MVvix6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_xLHqgE_IEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MVvjB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MVvjR6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_xO_d4E_IEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MVvjh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MVvjx6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_xSkWUE_IEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MVvkB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MVvkR6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_xVsi0E_IEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MVvkh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MVvkx6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_xY-gUE_IEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MVvlB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MVvlR6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_XIyUkE_JEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MVvlh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MVvlx6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_es7bcE_JEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MVvmB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MVvmR6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_jLVgcE_JEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MVvmh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MVvmx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MVvnB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MVvnR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MVvnh6SEeCkz5PP4vZT5g" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_3MVvnx6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Oy7XgFkfEeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_O2IcgFkfEeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_Wg_Y8E_CEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MVvoB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MVvoR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_Wn__4E_CEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MVvoh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MVvox6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Oy7-kFkfEeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_O2IcgVkfEeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_WtXBAE_CEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MWWcB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MWWcR6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Oy6JYFkfEeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_O2H1cFkfEeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_Wx1RUE_CEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MWWch6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MWWcx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_W2mckE_CEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MWWdB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MWWdR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_W8HOsE_CEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MWWdh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MWWdx6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Oy_B4FkfEeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_O2KRsFkfEeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_XA4Z8E_CEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MWWeB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MWWeR6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Oy_B4lkfEeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_O2KRsVkfEeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_EmmlEE_EEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MWWeh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MWWex6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_FQU3gE_EEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MWWfB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MWWfR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_Qd0qsE_EEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MWWfh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MWWfx6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Oy_o8FkfEeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_O2K4wFkfEeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_Qpmc4E_EEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MWWgB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MWWgR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_m11OgE_EEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MWWgh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MWWgx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_m8ZJgE_EEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MWWhB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MWWhR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_nCDsoE_EEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MWWhh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MWWhx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_nGrG4E_EEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MWWiB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MWWiR6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Oy_o8lkfEeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_O2K4wVkfEeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_nL4-EE_EEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MWWih6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MWWix6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OzAQAFkfEeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_O2Lf0FkfEeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_nPwxcE_EEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MWWjB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MWWjR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_nUPBwE_EEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MWWjh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MWWjx6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OzAQAlkfEeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_O2MG4FkfEeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_cjQWAE_FEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MWWkB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MWWkR6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OzA3EVkfEeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_O2MG4VkfEeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_cpEqIE_FEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MWWkh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MWWkx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_fBQXkE_HEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MWWlB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MWWlR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_fMk2wE_HEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MW9gB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MW9gR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_fRpkAE_HEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MW9gh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MW9gx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_fWj5ME_HEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MW9hB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MW9hR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_fbomcE_HEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MW9hh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MW9hx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_ffqK0E_HEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MW9iB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MW9iR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_fkkgAE_HEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MW9ih6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MW9ix6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OzBeIFkfEeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_O2Mt8FkfEeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_Lv9bIE_JEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MW9jB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MW9jR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MW9jh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MW9jx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MW9kB6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MW9kR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MW9kh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MW9kx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mGmqAFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mGmqAVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_57kQoE_BEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mGmqAldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mGnREFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mGnREVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mGnREldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MW9lB6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_oSgIME_BEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MW9lR6SEeCkz5PP4vZT5g" x="513" y="9" width="406" height="595"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MW9lh6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MW9lx6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MW9mB6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MW9mR6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MW9mh6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MW9mx6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MW9nB6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MW9nR6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MW9nh6SEeCkz5PP4vZT5g" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_3MW9nx6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_QFAjQE_eEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MW9oB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MW9oR6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_QJezkE_eEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MW9oh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MW9ox6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_QNM18E_eEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MW9pB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MW9pR6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_Z_zYcE_eEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MW9ph6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MW9px6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_c8Tl0E_eEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MXkkB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MXkkR6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_c_4eQE_eEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MXkkh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MXkkx6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_dC25wE_eEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MXklB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MXklR6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_dF18UE_eEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MXklh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MXklx6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_dJHSwE_eEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MXkmB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MXkmR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MXkmh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MXkmx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MXknB6SEeCkz5PP4vZT5g" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_3MXknR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_mZzqwE_NEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MXknh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MXknx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_pLuYwE_NEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MXkoB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MXkoR6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Oy8loFkfEeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_O2JDkFkfEeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_v9NToE_NEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MXkoh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MXkox6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_361RgE_NEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MXkpB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MXkpR6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Oy9MsFkfEeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_O2JDkVkfEeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_7k7ksE_NEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MXkph6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MXkpx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_EQ5PQE_OEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MXkqB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MXkqR6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Oy-a0FkfEeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_O2JqoFkfEeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_EW2tUE_OEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MXkqh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MXkqx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_R3kgUE_OEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MXkrB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MXkrR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_R8VrkE_OEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MXkrh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MXkrx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_SCJ_sE_OEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MXksB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MXksR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_SHhA0E_OEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MXksh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MXksx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_SMSMEE_OEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MXktB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MXktR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_SQdhcE_OEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MXkth6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MXktx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MXkuB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MXkuR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MXkuh6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MXkux6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MXkvB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MXkvR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mGt-wFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mGt-wVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_bphYAE_NEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mGt-wldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mGul0FdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mGul0VdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mGul0ldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MXkvh6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_TVGDsE_NEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MXkvx6SEeCkz5PP4vZT5g" x="56" y="27" width="368" height="343"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MXkwB6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MXkwR6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MXkwh6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MXkwx6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MXkxB6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MXkxR6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MXkxh6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MXkxx6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MXkyB6SEeCkz5PP4vZT5g" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_3MXkyR6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_nyBcEE_nEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MXkyh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MXkyx6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_-6w5QE_nEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MXkzB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MXkzR6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_UO0swE_oEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MXkzh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYLoB6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_Z47I0E_oEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYLoR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYLoh6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_fsj7YE_oEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYLox6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYLpB6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_jQG6oE_oEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYLpR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYLph6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_qE3L8E_oEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYLpx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYLqB6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_sbg6QE_oEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYLqR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYLqh6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_u5djYE_oEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYLqx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MYLrB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MYLrR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MYLrh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MYLrx6SEeCkz5PP4vZT5g" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_3MYLsB6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s3SxwFkZEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_s-7q0FkZEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_oCK1EE_gEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYLsR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYLsh6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s3T_4FkZEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_s-8R4FkZEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_VpnT8E_hEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYLsx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYLtB6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_vOOWoE_hEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYLtR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYLth6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_5LQAcE_hEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYLtx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYLuB6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s3T_4lkZEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_s-8R4VkZEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_-xoaIE_hEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYLuR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYLuh6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_S8E6ME_iEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYLux6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYLvB6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_dG0P4E_iEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYLvR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYLvh6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s3Um8FkZEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_s-848FkZEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_dS4V8E_iEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYLvx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYLwB6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_GnaOIE_jEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYLwR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYLwh6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s3Um8lkZEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_s-848VkZEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_Gzx2ME_jEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYLwx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYLxB6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_G6VKIE_jEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYLxR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYLxh6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_bvjFgE_jEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYLxx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYLyB6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_mdJ3sE_jEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYLyR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYLyh6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s3VOAFkZEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_s-9gAFkZEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_yp_A8E_jEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYLyx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYLzB6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s3VOAlkZEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_s-9gAVkZEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_MYHzEE_kEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYLzR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYLzh6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_X5b6IE_kEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYLzx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYL0B6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_bh5OkE_kEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYL0R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYL0h6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s3V1EFkZEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_s--HEFkZEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_NaGikE_mEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYL0x6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYL1B6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_nQJTgE_mEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYL1R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYL1h6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_p66QoE_mEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYL1x6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYL2B6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s3V1ElkZEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_s--HEVkZEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_xR8IkE_mEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYL2R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYL2h6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_xldhgE_mEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYL2x6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYL3B6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_xsdhYE_mEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYysB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYysR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_x0gqIE_mEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYysh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYysx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_x7XgEE_mEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYytB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYytR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_yChQ8E_mEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYyth6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MYytx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MYyuB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MYyuR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MYyuh6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MYyux6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MYyvB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MYyvR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mGzeUFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mGzeUVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_UXASAE_gEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mGzeUldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mGzeU1diEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mGzeVFdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mGzeVVdiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MYyvh6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_-HeCsDj_Edy0Rd6V_tf1-Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MYyvx6SEeCkz5PP4vZT5g" x="54" y="477" width="370" height="541"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYywB6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MYywR6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MYywh6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MYywx6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MYyxB6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MYyxR6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MYyxh6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MYyxx6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MYyyB6SEeCkz5PP4vZT5g" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_3MYyyR6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_6bg4AE_tEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYyyh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYyyx6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_9TGJIE_tEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYyzB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYyzR6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_BBEPsE_uEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYyzh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MYyzx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MYy0B6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MYy0R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MYy0h6SEeCkz5PP4vZT5g" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_3MYy0x6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_YAjKkE_rEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYy1B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYy1R6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JjFOgFkfEeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Jl4q4FkfEeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_f6SuAE_rEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYy1h6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYy1x6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_f_9RIE_rEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYy2B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYy2R6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JjGcoFkfEeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Jl5R8FkfEeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_vxhFYE_rEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYy2h6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYy2x6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_v5HiME_rEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYy3B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYy3R6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JjHDsFkfEeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Jl55AFkfEeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_oN8UUE_tEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYy3h6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYy3x6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_ofORkE_tEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MYy4B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MYy4R6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MYy4h6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MYy4x6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MYy5B6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MYy5R6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MYy5h6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MYy5x6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mG6MAFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mG6MAVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_Q72YwE_rEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mG6MAldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mG6zEFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mG6zEVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mG6zEldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MYy6B6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_Saw1YDkDEdyuzNpSiGPe4w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MYy6R6SEeCkz5PP4vZT5g" x="513" y="621" width="406" height="184"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MYy6h6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MYy6x6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MYy7B6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MYy7R6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MYy7h6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MYy7x6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MYy8B6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MYy8R6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MYy8h6SEeCkz5PP4vZT5g" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_3MYy8x6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_Rt3nYE_yEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MZZwB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MZZwR6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_RwZ-AE_yEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MZZwh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MZZwx6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_1oie8E_yEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MZZxB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MZZxR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MZZxh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MZZxx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MZZyB6SEeCkz5PP4vZT5g" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_3MZZyR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_ZtXqAE_xEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MZZyh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MZZyx6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SG5CoFkfEeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SRcs0FkfEeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_Z2BPsE_xEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MZZzB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MZZzR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_Z7FV4E_xEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MZZzh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MZZzx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_aJrykE_xEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MZZ0B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MZZ0R6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_D9gO0E_yEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MZZ0h6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MZZ0x6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SG5ColkfEeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SRd68FkfEeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_ECHpEE_yEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MZZ1B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MZZ1R6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_EJIQAE_yEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MZZ1h6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MZZ1x6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_ETtIUE_yEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MZZ2B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MZZ2R6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MZZ2h6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MZZ2x6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MZZ3B6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MZZ3R6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MZZ3h6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MZZ3x6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mG92YFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mG92YVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_PSuiAE_vEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mG92YldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mG-dcFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mG-dcVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mG-dcldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MZZ4B6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_9-OUUE_uEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MZZ4R6SEeCkz5PP4vZT5g" x="513" y="828" width="406" height="199"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_HN2nENqFEeKrRY-H1kHnNA" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HN64gNqFEeKrRY-H1kHnNA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HN64gdqFEeKrRY-H1kHnNA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HN7fkNqFEeKrRY-H1kHnNA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HN7fkdqFEeKrRY-H1kHnNA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HN7fktqFEeKrRY-H1kHnNA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HN7fk9qFEeKrRY-H1kHnNA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_HN7flNqFEeKrRY-H1kHnNA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_HN8GoNqFEeKrRY-H1kHnNA" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_HN8GodqFEeKrRY-H1kHnNA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_HN8GotqFEeKrRY-H1kHnNA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_HN8Go9qFEeKrRY-H1kHnNA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HN8GpNqFEeKrRY-H1kHnNA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_HN8GpdqFEeKrRY-H1kHnNA" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_HN8GptqFEeKrRY-H1kHnNA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_HN8Gp9qFEeKrRY-H1kHnNA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_HN8GqNqFEeKrRY-H1kHnNA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HN8GqdqFEeKrRY-H1kHnNA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_HN8GqtqFEeKrRY-H1kHnNA" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_HN8Gq9qFEeKrRY-H1kHnNA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_HN8GrNqFEeKrRY-H1kHnNA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_HN8GrdqFEeKrRY-H1kHnNA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HN8GrtqFEeKrRY-H1kHnNA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mHCH0FdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mHCH0VdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mHCH0ldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="osal.uml#_4lsq4NqEEeKrRY-H1kHnNA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HN3OINqFEeKrRY-H1kHnNA" x="54" y="1098" width="365" height="44"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XBaKINqrEeKrRY-H1kHnNA" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XBb_UNqrEeKrRY-H1kHnNA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XBb_UdqrEeKrRY-H1kHnNA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XBb_UtqrEeKrRY-H1kHnNA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XBb_U9qrEeKrRY-H1kHnNA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XBcmYNqrEeKrRY-H1kHnNA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XBcmYdqrEeKrRY-H1kHnNA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XBcmYtqrEeKrRY-H1kHnNA" type="5038"/>
+ <element xmi:type="uml:Comment" href="osal.uml#_XAe9ENqrEeKrRY-H1kHnNA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XBaxMNqrEeKrRY-H1kHnNA" x="261" y="1044" width="199" height="37"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_3MaA2R6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Package" href="osal.uml#_oT0acC-OEdySSa8YESkO2w"/>
+ <edges xmi:type="notation:Connector" xmi:id="_OPPmMNqFEeKrRY-H1kHnNA" type="4008" source="_3MXkwB6SEeCkz5PP4vZT5g" target="_HN2nENqFEeKrRY-H1kHnNA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_OPRbYNqFEeKrRY-H1kHnNA" visible="false" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OPSCcNqFEeKrRY-H1kHnNA" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_OPSCcdqFEeKrRY-H1kHnNA" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OPSCctqFEeKrRY-H1kHnNA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_OPPmMdqFEeKrRY-H1kHnNA" fontName="Sans Serif"/>
+ <element xmi:type="uml:Dependency" href="osal.uml#_ONsuENqFEeKrRY-H1kHnNA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_OPPmMtqFEeKrRY-H1kHnNA" points="[-8, -5, -6, 57]$[-8, -40, -6, 22]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OPjvQNqFEeKrRY-H1kHnNA" id="(0.5108108108108108,0.009242144177449169)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_pupFUNqrEeKrRY-H1kHnNA" type="4013" source="_XBaKINqrEeKrRY-H1kHnNA" target="_OPPmMNqFEeKrRY-H1kHnNA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_pupFUdqrEeKrRY-H1kHnNA" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pupFUtqrEeKrRY-H1kHnNA" points="[-9, -1, 16, -47]$[-25, 4, 0, -42]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_puxBINqrEeKrRY-H1kHnNA" id="(0.020100502512562814,0.35135135135135137)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_puxBIdqrEeKrRY-H1kHnNA" id="(0.808695652173913,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Size xmi:id="_3MaA2h6SEeCkz5PP4vZT5g" width="400" height="756"/>
+ <notation:Location xmi:id="_3MaA2x6SEeCkz5PP4vZT5g" x="526" y="27"/>
+ <notation:Size xmi:id="_3MaA3B6SEeCkz5PP4vZT5g" width="366" height="407"/>
+ <notation:Location xmi:id="_3MaA3R6SEeCkz5PP4vZT5g" x="56" y="297"/>
+ <notation:Size xmi:id="_3MaA3h6SEeCkz5PP4vZT5g" width="366" height="629"/>
+ <notation:Location xmi:id="_3MaA3x6SEeCkz5PP4vZT5g" x="57" y="735"/>
+ <notation:Size xmi:id="_3MaA4B6SEeCkz5PP4vZT5g" width="387" height="216"/>
+ <notation:Location xmi:id="_3MaA4R6SEeCkz5PP4vZT5g" x="525" y="834"/>
+ <notation:Size xmi:id="_3MaA4h6SEeCkz5PP4vZT5g" width="380" height="224"/>
+ <notation:Location xmi:id="_3MaA4x6SEeCkz5PP4vZT5g" x="524" y="1090"/>
+ <notation:Size xmi:id="_3MaA5B6SEeCkz5PP4vZT5g" width="364" height="240"/>
+ <notation:Location xmi:id="_3MaA5R6SEeCkz5PP4vZT5g" x="57" y="1381"/>
+ <notation:Diagram xmi:id="_3MaA5h6SEeCkz5PP4vZT5g" type="PapyrusUMLClassDiagram" name="Communication classes : dependencies" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_3MaBEx6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MaBFB6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MaBFR6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MaBFh6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MaBFx6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MaBGB6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MaBGR6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MaBGh6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MaBGx6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MaBHB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MaBHR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MaBHh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MaBHx6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MaBIB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MaBIR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MaBIh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MaBIx6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MaBJB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MaBJR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MaBJh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mM2b8FdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mM2b8VdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_iOOrAFClEdyTutVzffQTmQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mM2b8ldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mM2b81diEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mM2b9FdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mM2b9VdiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MaBJx6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_LbxUEDRPEdy1p4IpsoZYqA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Man4B6SEeCkz5PP4vZT5g" x="36" y="225" width="244" height="46"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3Man4R6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Man4h6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Man4x6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Man5B6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Man5R6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Man5h6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Man5x6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Man6B6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Man6R6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Man6h6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Man6x6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Man7B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Man7R6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Man7h6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Man7x6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Man8B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Man8R6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Man8h6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Man8x6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Man9B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mM4RIFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mM4RIVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mM4RIldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3Man9R6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_N361AFCsEdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Man9h6SEeCkz5PP4vZT5g" x="36" y="144" width="244" height="46"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3Man9x6SEeCkz5PP4vZT5g" type="2010" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Man-B6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Man-R6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Man-h6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Man-x6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Man_B6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Man_R6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Man_h6SEeCkz5PP4vZT5g" type="5035"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Man_x6SEeCkz5PP4vZT5g" visible="false" type="7020">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MaoAB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MaoAR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MaoAh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MaoAx6SEeCkz5PP4vZT5g" visible="false" type="7021">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MaoBB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MaoBR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MaoBh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mM5fQFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mM5fQVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mM5fQldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <element xmi:type="uml:DataType" href="osal.uml#_ZiVqMFCrEdyTutVzffQTmQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MaoBx6SEeCkz5PP4vZT5g" x="153" y="36" width="125" height="50"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MaoCB6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MaoCR6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MaoCh6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MaoCx6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MaoDB6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MaoDR6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MaoDh6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MaoDx6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MaoEB6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MaoER6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MaoEh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MaoEx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MaoFB6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MaoFR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MaoFh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MaoFx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MaoGB6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MaoGR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MaoGh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MaoGx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mM6tYFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mM6tYVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_57kQoE_BEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mM6tYldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mM7UcFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mM7UcVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mM7UcldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MaoHB6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_oSgIME_BEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MaoHR6SEeCkz5PP4vZT5g" x="36" y="36" width="98" height="50"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MaoNB6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MbO8B6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MbO8R6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MbO8h6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MbO8x6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MbO9B6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MbO9R6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MbO9h6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MbO9x6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MbO-B6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MbO-R6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MbO-h6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MbO-x6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MbO_B6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MbO_R6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MbO_h6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MbO_x6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MbPAB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MbPAR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MbPAh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mM8ikFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mM8ikVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_LAexAFCwEdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mM8ikldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mM9JoFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mM9JoVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mM9JoldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MbPAx6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_sq-yMFCvEdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MbPBB6SEeCkz5PP4vZT5g" x="369" y="162" width="163" height="46"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MbPBR6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MbPBh6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MbPBx6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MbPCB6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MbPCR6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MbPCh6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MbPCx6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MbPDB6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MbPDR6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MbPDh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MbPDx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MbPEB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MbPER6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MbPEh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MbPEx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MbPFB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MbPFR6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MbPFh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MbPFx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MbPGB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mM-XwFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mM-XwVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mM-XwldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MbPGR6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_sQ1JADO0EdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MbPGh6SEeCkz5PP4vZT5g" x="369" y="36" width="163" height="41"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_3MbPGx6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Package" href="osal.uml#_mU3acC-OEdySSa8YESkO2w"/>
+ <edges xmi:type="notation:Connector" xmi:id="_3MbPHB6SEeCkz5PP4vZT5g" type="4008" source="_3Man4R6SEeCkz5PP4vZT5g" target="_3Man9x6SEeCkz5PP4vZT5g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MbPHR6SEeCkz5PP4vZT5g" visible="false" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MbPHh6SEeCkz5PP4vZT5g" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MbPHx6SEeCkz5PP4vZT5g" visible="false" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MbPIB6SEeCkz5PP4vZT5g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3MbPIR6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Dependency" href="osal.uml#_YWeekFCsEdyqzLG48ixyqA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MbPIh6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MbPIx6SEeCkz5PP4vZT5g" id="(0.7808764940239044,0.2391304347826087)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MbPJB6SEeCkz5PP4vZT5g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3MbPJR6SEeCkz5PP4vZT5g" type="4008" source="_3Man4R6SEeCkz5PP4vZT5g" target="_3MaoCB6SEeCkz5PP4vZT5g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MbPJh6SEeCkz5PP4vZT5g" visible="false" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MbPJx6SEeCkz5PP4vZT5g" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MbPKB6SEeCkz5PP4vZT5g" visible="false" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MbPKR6SEeCkz5PP4vZT5g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3MbPKh6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Dependency" href="osal.uml#_bWmnsFCsEdyqzLG48ixyqA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MbPKx6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MbPLB6SEeCkz5PP4vZT5g" id="(0.22709163346613545,0.17391304347826086)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MbPLR6SEeCkz5PP4vZT5g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3Mb2DB6SEeCkz5PP4vZT5g" type="4008" source="_3MaoNB6SEeCkz5PP4vZT5g" target="_3MbPBR6SEeCkz5PP4vZT5g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Mb2DR6SEeCkz5PP4vZT5g" visible="false" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Mb2Dh6SEeCkz5PP4vZT5g" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Mb2Dx6SEeCkz5PP4vZT5g" visible="false" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Mb2EB6SEeCkz5PP4vZT5g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3Mb2ER6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Dependency" href="osal.uml#_0vA6EFCvEdyqzLG48ixyqA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3Mb2Eh6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3Mb2Ex6SEeCkz5PP4vZT5g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3Mb2FB6SEeCkz5PP4vZT5g"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Size xmi:id="_3Mb2FR6SEeCkz5PP4vZT5g" width="675" height="100"/>
+ <notation:Location xmi:id="_3Mb2Fh6SEeCkz5PP4vZT5g" x="445" y="274"/>
+ <notation:Location xmi:id="_3Mb2Fx6SEeCkz5PP4vZT5g" x="328" y="101"/>
+ <notation:Location xmi:id="_3Mb2GB6SEeCkz5PP4vZT5g" x="32" y="285"/>
+ <notation:Size xmi:id="_3Mb2GR6SEeCkz5PP4vZT5g" width="253" height="96"/>
+ <notation:Location xmi:id="_3Mb2Gh6SEeCkz5PP4vZT5g" x="29" y="144"/>
+ <notation:Size xmi:id="_3Mb2Gx6SEeCkz5PP4vZT5g" width="127" height="100"/>
+ <notation:Location xmi:id="_3Mb2HB6SEeCkz5PP4vZT5g" x="174" y="-1"/>
+ <notation:Location xmi:id="_3Mb2HR6SEeCkz5PP4vZT5g" x="32" y="1"/>
+ <notation:Location xmi:id="_3Mb2Hh6SEeCkz5PP4vZT5g" x="673" y="105"/>
+ <notation:Size xmi:id="_3Mb2Hx6SEeCkz5PP4vZT5g" width="323" height="100"/>
+ <notation:Location xmi:id="_3Mb2IB6SEeCkz5PP4vZT5g" x="1016" y="444"/>
+ <notation:Location xmi:id="_3Mb2IR6SEeCkz5PP4vZT5g" x="1128" y="110"/>
+ <notation:Diagram xmi:id="_3Mb2Ih6SEeCkz5PP4vZT5g" type="PapyrusUMLClassDiagram" name="Communication classes : details" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_3Mb2Ix6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Mb2JB6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Mb2JR6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Mb2Jh6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Mb2Jx6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Mb2KB6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Mb2KR6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Mb2Kh6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Mb2Kx6SEeCkz5PP4vZT5g" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_3Mb2LB6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_iJ-LMFCnEdyTutVzffQTmQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Mb2LR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3Mb2Lh6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_iRkoAFCnEdyTutVzffQTmQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Mb2Lx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3Mb2MB6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_iVcbYFCnEdyTutVzffQTmQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Mb2MR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3Mb2Mh6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_iY4J4FCnEdyTutVzffQTmQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Mb2Mx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Mb2NB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Mb2NR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Mb2Nh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Mb2Nx6SEeCkz5PP4vZT5g" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_3Mb2OB6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_3v1yUFClEdyTutVzffQTmQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Mb2OR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3Mb2Oh6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PunA0FkYEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QbCpAFkYEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_oHiAsFClEdyTutVzffQTmQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Mb2Ox6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3Mb2PB6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_9XQt0FClEdyTutVzffQTmQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Mb2PR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3Mb2Ph6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_FSpQAFCmEdyTutVzffQTmQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Mb2Px6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3Mb2QB6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_Olf7cFCmEdyTutVzffQTmQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Mb2QR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3Mb2Qh6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_UH_6sFCmEdyTutVzffQTmQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3McdEB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3McdER6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_UVQTkFCmEdyTutVzffQTmQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3McdEh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3McdEx6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OIdiYFkYEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ONfzYVkYEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_g-GDYFCmEdyTutVzffQTmQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3McdFB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3McdFR6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OIdiYlkYEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ONgacFkYEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_viKJwFCmEdyTutVzffQTmQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3McdFh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3McdFx6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OIeJcFkYEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ONgacVkYEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_9ececFCmEdyTutVzffQTmQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3McdGB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3McdGR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3McdGh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3McdGx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3McdHB6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3McdHR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3McdHh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3McdHx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lyTN8FdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lyTN8VdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_iOOrAFClEdyTutVzffQTmQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lyTN8ldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lyTN81diEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lyTN9FdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lyTN9VdiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3McdIB6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_LbxUEDRPEdy1p4IpsoZYqA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3McdIR6SEeCkz5PP4vZT5g" x="45" y="27" width="388" height="262"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3McdIh6SEeCkz5PP4vZT5g" type="2006" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3McdIx6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3McdJB6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3McdJR6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3McdJh6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3McdJx6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3McdKB6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3McdKR6SEeCkz5PP4vZT5g" type="5023"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3McdKh6SEeCkz5PP4vZT5g" type="7015">
+ <children xmi:type="notation:Shape" xmi:id="_3McdKx6SEeCkz5PP4vZT5g" type="3017">
+ <element xmi:type="uml:EnumerationLiteral" href="osal.uml#_RygfcFClEdyTutVzffQTmQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3McdLB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3McdLR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3McdLh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3McdLx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lyXfYFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lyXfYVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lyXfYldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <element xmi:type="uml:Enumeration" href="osal.uml#_Nz2RgFClEdyTutVzffQTmQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3McdMB6SEeCkz5PP4vZT5g" x="513" y="27" width="181" height="55"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3McdMR6SEeCkz5PP4vZT5g" type="2012" fillColor="16634574" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3McdMh6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3McdMx6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3McdNB6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3McdNR6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3McdNh6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3McdNx6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3McdOB6SEeCkz5PP4vZT5g" type="5038"/>
+ <element xmi:type="uml:Comment" href="osal.uml#_VAllAFClEdyTutVzffQTmQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3McdOR6SEeCkz5PP4vZT5g" x="756" y="27" width="172" height="8"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3McdOh6SEeCkz5PP4vZT5g" type="2010" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3McdOx6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3McdPB6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3McdPR6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3McdPh6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3McdPx6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3McdQB6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3McdQR6SEeCkz5PP4vZT5g" type="5035"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3McdQh6SEeCkz5PP4vZT5g" type="7020">
+ <children xmi:type="notation:Shape" xmi:id="_3McdQx6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_ypi_MFCrEdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3McdRB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3McdRR6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_yuw2YFCrEdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3McdRh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3McdRx6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_yzPGsFCrEdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3McdSB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3McdSR6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_y2EYQFCrEdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3McdSh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3McdSx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3McdTB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3McdTR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3McdTh6SEeCkz5PP4vZT5g" visible="false" type="7021">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3McdTx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3McdUB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3McdUR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lyYtgFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lyYtgVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lyYtgldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <element xmi:type="uml:DataType" href="osal.uml#_ZiVqMFCrEdyTutVzffQTmQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3McdUh6SEeCkz5PP4vZT5g" x="513" y="108" width="181" height="106"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3McdUx6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3McdVB6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MdEIB6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MdEIR6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MdEIh6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MdEIx6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MdEJB6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MdEJR6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MdEJh6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MdEJx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MdEKB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MdEKR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MdEKh6SEeCkz5PP4vZT5g" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_3MdEKx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_i3atwFCsEdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MdELB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MdELR6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OIcUQlkYEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ONfMUFkYEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_k-Am0FCsEdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MdELh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MdELx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_44le4FCsEdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MdEMB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MdEMR6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OIc7UlkYEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ONfzYFkYEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#__McpoFCsEdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MdEMh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MdEMx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_JEUGoFCtEdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MdENB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MdENR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_V5vg8FCtEdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MdENh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MdENx6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OIc7UFkYEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ONfMUVkYEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_cxNvEFCtEdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MdEOB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MdEOR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MdEOh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MdEOx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MdEPB6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MdEPR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MdEPh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MdEPx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lyaisFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lyaisVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lyaisldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MdEQB6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_N361AFCsEdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MdEQR6SEeCkz5PP4vZT5g" x="45" y="351" width="388" height="154"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MdEQh6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MdEQx6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MdERB6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MdERR6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MdERh6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MdERx6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MdESB6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MdESR6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MdESh6SEeCkz5PP4vZT5g" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_3MdESx6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_UCsbkFC0EdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MdETB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MdETR6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_qM2woFC0EdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MdETh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MdETx6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_qTs_gFC0EdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MdEUB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MdEUR6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_VBgXwFC1EdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MdEUh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MdEUx6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_VL8GIFC1EdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MdEVB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MdEVR6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_VPz5gFC1EdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MdEVh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MdEVx6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_gOHaIFC1EdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MdEWB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MdEWR6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_gR1cgFC1EdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MdEWh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MdEWx6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_gVRLAFC1EdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MdEXB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MdEXR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MdEXh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MdEXx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MdEYB6SEeCkz5PP4vZT5g" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_3MdEYR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_W9qUsFCwEdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MdEYh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MdrMB6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OIbGIVkYEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ONd-MFkYEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_ZznOIFCwEdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MdrMR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MdrMh6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_yFEm4FCwEdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MdrMx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MdrNB6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OIafEFkYEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ONdXIFkYEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_2k0vsFCwEdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MdrNR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MdrNh6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_WZFykFCxEdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MdrNx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MdrOB6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_gRW4MFCxEdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MdrOR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MdrOh6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_qK9akFCxEdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MdrOx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MdrPB6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_2nJOcFCxEdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MdrPR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MdrPh6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_7F2OYFCxEdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MdrPx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MdrQB6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_KxUW0FC0EdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MdrQR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MdrQh6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_K3bl4FC0EdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MdrQx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MdrRB6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_K8DAIFC0EdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MdrRR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MdrRh6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OIbtMFkYEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ONd-MVkYEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_LAqaYFC0EdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MdrRx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MdrSB6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OIbtMlkYEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ONelQFkYEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_35gG0FC0EdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MdrSR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MdrSh6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OIcUQFkYEeKyM9oNj0qhEg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ONelQVkYEeKyM9oNj0qhEg" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_4JcAQFC0EdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MdrSx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MdrTB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MdrTR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MdrTh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MdrTx6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MdrUB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MdrUR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MdrUh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lyeNEFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lyeNEVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_LAexAFCwEdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lyeNEldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lyeNE1diEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lyeNFFdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lyeNFVdiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MdrUx6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_sq-yMFCvEdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MdrVB6SEeCkz5PP4vZT5g" x="513" y="261" width="402" height="386"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_3MdrVR6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Package" href="osal.uml#_mU3acC-OEdySSa8YESkO2w"/>
+ <edges xmi:type="notation:Connector" xmi:id="_3MdrVh6SEeCkz5PP4vZT5g" type="4013" source="_3McdMR6SEeCkz5PP4vZT5g" target="_3McdIh6SEeCkz5PP4vZT5g" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_3MdrVx6SEeCkz5PP4vZT5g"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MdrWB6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MdrWR6SEeCkz5PP4vZT5g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MdrWh6SEeCkz5PP4vZT5g"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Size xmi:id="_3MdrWx6SEeCkz5PP4vZT5g" width="423" height="314"/>
+ <notation:Location xmi:id="_3MdrXB6SEeCkz5PP4vZT5g" x="517" y="458"/>
+ <notation:Size xmi:id="_3MdrXR6SEeCkz5PP4vZT5g" width="183" height="62"/>
+ <notation:Location xmi:id="_3MdrXh6SEeCkz5PP4vZT5g" x="517" y="783"/>
+ <notation:Size xmi:id="_3MdrXx6SEeCkz5PP4vZT5g" width="207" height="58"/>
+ <notation:Location xmi:id="_3MdrYB6SEeCkz5PP4vZT5g" x="770" y="791"/>
+ <notation:Size xmi:id="_3MdrYR6SEeCkz5PP4vZT5g" width="190" height="119"/>
+ <notation:Location xmi:id="_3MdrYh6SEeCkz5PP4vZT5g" x="513" y="858"/>
+ <notation:Size xmi:id="_3MdrYx6SEeCkz5PP4vZT5g" width="360" height="216"/>
+ <notation:Location xmi:id="_3MdrZB6SEeCkz5PP4vZT5g" x="52" y="885"/>
+ <notation:Size xmi:id="_3MdrZR6SEeCkz5PP4vZT5g" width="437" height="438"/>
+ <notation:Location xmi:id="_3MdrZh6SEeCkz5PP4vZT5g" x="513" y="1000"/>
+ <notation:Diagram xmi:id="_3MdrZx6SEeCkz5PP4vZT5g" type="PapyrusUMLClassDiagram" name="Synchronization classes : Structural relationships" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_3MdraB6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MdraR6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Mdrah6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Mdrax6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MdrbB6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MeSQB6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MeSQR6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MeSQh6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MeSQx6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MeSRB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MeSRR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MeSRh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MeSRx6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MeSSB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MeSSR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MeSSh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MeSSx6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MeSTB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MeSTR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MeSTh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l05O8FdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l05O8VdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_TSTq8FF5EdyxP5ejovTmBw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l05O8ldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l052AFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l052AVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l052AldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MeSTx6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_D8njME_gEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MeSUB6SEeCkz5PP4vZT5g" x="90" y="225" width="100" height="47"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MeSUR6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MeSUh6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MeSUx6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MeSVB6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MeSVR6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MeSVh6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MeSVx6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MeSWB6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MeSWR6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MeSWh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MeSWx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MeSXB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MeSXR6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MeSXh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MeSXx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MeSYB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MeSYR6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MeSYh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MeSYx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MeSZB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l07EIFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l07EIVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_3d4acFC3EdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l07EIldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l07rMFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l07rMVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l07rMldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MeSZR6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_jXTGsFC3EdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MeSZh6SEeCkz5PP4vZT5g" x="266" y="225" width="100" height="47"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MeSZx6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MeSaB6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MeSaR6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MeSah6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MeSax6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MeSbB6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MeSbR6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MeSbh6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MeSbx6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MeScB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MeScR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MeSch6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MeScx6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MeSdB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MeSdR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MeSdh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MeSdx6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MeSeB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MeSeR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MeSeh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l085UFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l085UVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_xoZ-IFFiEdyjobZYtXo9NQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l085UldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l09gYFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l09gYVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l09gYldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MeSex6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_qIyBkFC3EdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MeSfB6SEeCkz5PP4vZT5g" x="765" y="225" width="100" height="47"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MeSfR6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MeSfh6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MeSfx6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MeSgB6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MeSgR6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MeSgh6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MeSgx6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MeShB6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MeShR6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MeShh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MeShx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MeSiB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MeSiR6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MeSih6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MeSix6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MeSjB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MeSjR6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MeSjh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MeSjx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MeSkB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l0-ugFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l0-ugVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l0-ugldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MeSkR6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_rsw80FC3EdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MeSkh6SEeCkz5PP4vZT5g" x="423" y="225" width="154" height="47"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MeSkx6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MeSlB6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MeSlR6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MeSlh6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MeSlx6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Me5UB6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Me5UR6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Me5Uh6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Me5Ux6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Me5VB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Me5VR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Me5Vh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Me5Vx6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Me5WB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Me5WR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Me5Wh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Me5Wx6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Me5XB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Me5XR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Me5Xh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l0_8oFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l0_8oVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_X2-iQFF0EdyjobZYtXo9NQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l0_8oldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l1AjsFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l1AjsVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l1AjsldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3Me5Xx6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_Jj9usFC7EdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Me5YB6SEeCkz5PP4vZT5g" x="351" y="108" width="100" height="53"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3Me5YR6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Me5Yh6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Me5Yx6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Me5ZB6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Me5ZR6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Me5Zh6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Me5Zx6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Me5aB6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Me5aR6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Me5ah6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Me5ax6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Me5bB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Me5bR6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Me5bh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Me5bx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Me5cB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Me5cR6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Me5ch6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Me5cx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Me5dB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l1Bx0FdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l1Bx0VdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_SQ2h4FFhEdyjobZYtXo9NQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l1Bx0ldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l1Bx01diEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l1Bx1FdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l1Bx1VdiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3Me5dR6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_5HEaAFFgEdyjobZYtXo9NQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Me5dh6SEeCkz5PP4vZT5g" x="90" y="108" width="100" height="54"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3Me5dx6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Me5eB6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Me5eR6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Me5eh6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Me5ex6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Me5fB6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Me5fR6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Me5fh6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Me5fx6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Me5gB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Me5gR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Me5gh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Me5gx6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Me5hB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Me5hR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Me5hh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Me5hx6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Me5iB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Me5iR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Me5ih6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l1DnAFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l1DnAVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_1Rt3EFF2EdyxP5ejovTmBw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l1DnAldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l1EOEFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l1EOEVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l1EOEldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3Me5ix6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_dhMBIFF2EdyxP5ejovTmBw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Me5jB6SEeCkz5PP4vZT5g" x="628" y="225" width="100" height="47"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_3Me5jR6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Package" href="osal.uml#_soXY0C-OEdySSa8YESkO2w"/>
+ <edges xmi:type="notation:Connector" xmi:id="_3Me5jh6SEeCkz5PP4vZT5g" type="4001" source="_3Me5YR6SEeCkz5PP4vZT5g" target="_3MeSkx6SEeCkz5PP4vZT5g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Me5jx6SEeCkz5PP4vZT5g" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Me5kB6SEeCkz5PP4vZT5g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Me5kR6SEeCkz5PP4vZT5g" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Me5kh6SEeCkz5PP4vZT5g" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Me5kx6SEeCkz5PP4vZT5g" type="6003">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Me5lB6SEeCkz5PP4vZT5g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Me5lR6SEeCkz5PP4vZT5g" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Me5lh6SEeCkz5PP4vZT5g" x="28" y="-10"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Me5lx6SEeCkz5PP4vZT5g" type="6005">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Me5mB6SEeCkz5PP4vZT5g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Me5mR6SEeCkz5PP4vZT5g" key="CustomAppearance_MaskValue" value="14"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Me5mh6SEeCkz5PP4vZT5g" x="-27" y="8"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Me5mx6SEeCkz5PP4vZT5g" visible="false" type="6033"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Me5nB6SEeCkz5PP4vZT5g" visible="false" type="6034"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3Me5nR6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Association" href="osal.uml#__4cxwFFhEdyjobZYtXo9NQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MfgYB6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MfgYR6SEeCkz5PP4vZT5g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MfgYh6SEeCkz5PP4vZT5g"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Location xmi:id="_3MfgYx6SEeCkz5PP4vZT5g" x="55" y="498"/>
+ <notation:Location xmi:id="_3MfgZB6SEeCkz5PP4vZT5g" x="348" y="493"/>
+ <notation:Location xmi:id="_3MfgZR6SEeCkz5PP4vZT5g" x="847" y="467"/>
+ <notation:Size xmi:id="_3MfgZh6SEeCkz5PP4vZT5g" width="154" height="100"/>
+ <notation:Location xmi:id="_3MfgZx6SEeCkz5PP4vZT5g" x="505" y="479"/>
+ <notation:Size xmi:id="_3MfgaB6SEeCkz5PP4vZT5g" width="100" height="254"/>
+ <notation:Location xmi:id="_3MfgaR6SEeCkz5PP4vZT5g" x="322" y="51"/>
+ <notation:Location xmi:id="_3Mfgah6SEeCkz5PP4vZT5g" x="97" y="232"/>
+ <notation:Location xmi:id="_3Mfgax6SEeCkz5PP4vZT5g" x="710" y="474"/>
+ <notation:Diagram xmi:id="_3MfgbB6SEeCkz5PP4vZT5g" type="PapyrusUMLClassDiagram" name="Synchronization classes : include relationships" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_3MfgbR6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Mfgbh6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Mfgbx6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MfgcB6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MfgcR6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Mfgch6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Mfgcx6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MfgdB6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MfgdR6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Mfgdh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Mfgdx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MfgeB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MfgeR6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Mfgeh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Mfgex6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MfgfB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MfgfR6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Mfgfh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Mfgfx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MfggB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l4iY0FdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l4iY0VdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_3d4acFC3EdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l4iY0ldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l4i_4FdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l4i_4VdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l4i_4ldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MfggR6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_jXTGsFC3EdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Mfggh6SEeCkz5PP4vZT5g" x="-143" y="202" width="100" height="59"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3Mfggx6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MfghB6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MfghR6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Mfghh6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Mfghx6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MfgiB6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MfgiR6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Mfgih6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Mfgix6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MfgjB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MfgjR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Mfgjh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Mfgjx6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MfgkB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MfgkR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Mfgkh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Mfgkx6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MfglB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MfglR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Mfglh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l4k1EFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l4k1EVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l4k1EldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3Mfglx6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_rsw80FC3EdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MfgmB6SEeCkz5PP4vZT5g" x="-144" y="54" width="690" height="59"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MfgmR6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Mfgmh6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Mfgmx6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MfgnB6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MfgnR6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Mfgnh6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Mfgnx6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MfgoB6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MfgoR6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Mfgoh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Mfgox6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MfgpB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MfgpR6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Mfgph6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Mfgpx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MfgqB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MfgqR6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Mfgqh6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Mfgqx6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MfgrB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l4mDMFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l4mDMVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_xoZ-IFFiEdyjobZYtXo9NQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l4mDMldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l4mqQFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l4mqQVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l4mqQldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MfgrR6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_qIyBkFC3EdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Mfgrh6SEeCkz5PP4vZT5g" x="-13" y="364" width="100" height="59"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3Mfgrx6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MfgsB6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MgHcB6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MgHcR6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MgHch6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MgHcx6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MgHdB6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MgHdR6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MgHdh6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MgHdx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MgHeB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MgHeR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MgHeh6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MgHex6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MgHfB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MgHfR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MgHfh6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MgHfx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MgHgB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MgHgR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l4n4YFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l4n4YVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l4n4YldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MgHgh6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_0AwCEDO0EdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MgHgx6SEeCkz5PP4vZT5g" x="-146" y="364" width="100" height="59"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MgHhB6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MgHhR6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MgHhh6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MgHhx6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MgHiB6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MgHiR6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MgHih6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MgHix6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MgHjB6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MgHjR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MgHjh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MgHjx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MgHkB6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MgHkR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MgHkh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MgHkx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MgHlB6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MgHlR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MgHlh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MgHlx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l4pGgFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l4pGgVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_X2-iQFF0EdyjobZYtXo9NQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l4pGgldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l4ptkFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l4ptkVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l4ptkldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MgHmB6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_Jj9usFC7EdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MgHmR6SEeCkz5PP4vZT5g" x="446" y="202" width="100" height="226"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MgHsB6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MgHsR6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MgHsh6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MgHsx6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MgHtB6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MgHtR6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MgHth6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MgHtx6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MgHuB6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MgHuR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MgHuh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MgHux6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MgHvB6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MgHvR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MgHvh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MgHvx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MgHwB6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MgHwR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MgHwh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MgHwx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l4riwFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l4riwVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_SQ2h4FFhEdyjobZYtXo9NQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l4riwldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l4sJ0FdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l4sJ0VdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l4sJ0ldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MgHxB6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_5HEaAFFgEdyjobZYtXo9NQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MgHxR6SEeCkz5PP4vZT5g" x="284" y="202" width="100" height="59"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MgHxh6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MgHxx6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MgHyB6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MgHyR6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MgHyh6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MgHyx6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MgHzB6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MgHzR6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MgugB6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MgugR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Mgugh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Mgugx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MguhB6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MguhR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Mguhh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Mguhx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MguiB6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MguiR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Mguih6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Mguix6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l4t_AFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l4t_AVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_LAexAFCwEdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l4t_AldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l4umEFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l4umEVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l4umEldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MgujB6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_sq-yMFCvEdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MgujR6SEeCkz5PP4vZT5g" x="293" y="365" width="100" height="59"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3Mgujh6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Mgujx6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MgukB6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MgukR6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Mgukh6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Mgukx6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MgulB6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MgulR6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Mgulh6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Mgulx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MgumB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MgumR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Mgumh6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Mgumx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MgunB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MgunR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Mgunh6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Mgunx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MguoB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MguoR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l4v0MFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l4v0MVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_xoZ-IFFiEdyjobZYtXo9NQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l4v0MldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l4wbQFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l4wbQVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l4wbQldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3Mguoh6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_qIyBkFC3EdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Mguox6SEeCkz5PP4vZT5g" x="-14" y="202" width="100" height="59"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3Mguuh6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Mguux6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MguvB6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MguvR6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Mguvh6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Mguvx6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MguwB6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MguwR6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Mguwh6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Mguwx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MguxB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MguxR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Mguxh6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Mguxx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MguyB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MguyR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Mguyh6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Mguyx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MguzB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MguzR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l4yQcFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l4yQcVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_1Rt3EFF2EdyxP5ejovTmBw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l4yQcldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l4y3gFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l4y3gVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l4y3gldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3Mguzh6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_dhMBIFF2EdyxP5ejovTmBw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Mguzx6SEeCkz5PP4vZT5g" x="116" y="202" width="100" height="59"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3Mgu0B6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Mgu0R6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Mgu0h6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Mgu0x6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Mgu1B6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Mgu1R6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MhVkB6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MhVkR6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MhVkh6SEeCkz5PP4vZT5g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MhVkx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MhVlB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MhVlR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MhVlh6SEeCkz5PP4vZT5g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MhVlx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MhVmB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MhVmR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MhVmh6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MhVmx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MhVnB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MhVnR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l40FoFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l40FoVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_TSTq8FF5EdyxP5ejovTmBw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l40FoldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l40ssFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l40ssVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l40ssldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MhVnh6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_D8njME_gEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MhVnx6SEeCkz5PP4vZT5g" x="122" y="364" width="100" height="59"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_3MhVoB6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Package" href="osal.uml#_soXY0C-OEdySSa8YESkO2w"/>
+ <edges xmi:type="notation:Connector" xmi:id="_3MhVoR6SEeCkz5PP4vZT5g" type="4008" source="_3MfgbR6SEeCkz5PP4vZT5g" target="_3Mfggx6SEeCkz5PP4vZT5g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MhVoh6SEeCkz5PP4vZT5g" visible="false" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MhVox6SEeCkz5PP4vZT5g" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MhVpB6SEeCkz5PP4vZT5g" visible="false" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MhVpR6SEeCkz5PP4vZT5g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3MhVph6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Dependency" href="osal.uml#_wNG7gFC3EdyqzLG48ixyqA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MhVpx6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MhVqB6SEeCkz5PP4vZT5g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MhVqR6SEeCkz5PP4vZT5g" id="(0.06294416243654823,0.72)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3MhVqh6SEeCkz5PP4vZT5g" type="4008" source="_3MfgbR6SEeCkz5PP4vZT5g" target="_3MfgmR6SEeCkz5PP4vZT5g" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MhVqx6SEeCkz5PP4vZT5g" visible="false" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MhVrB6SEeCkz5PP4vZT5g" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MhVrR6SEeCkz5PP4vZT5g" visible="false" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MhVrh6SEeCkz5PP4vZT5g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3MhVrx6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Dependency" href="osal.uml#_whFAYFC3EdyqzLG48ixyqA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MhVsB6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MhVsR6SEeCkz5PP4vZT5g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MhVsh6SEeCkz5PP4vZT5g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3MhVsx6SEeCkz5PP4vZT5g" type="4008" source="_3MfgbR6SEeCkz5PP4vZT5g" target="_3Mfgrx6SEeCkz5PP4vZT5g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MhVtB6SEeCkz5PP4vZT5g" visible="false" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MhVtR6SEeCkz5PP4vZT5g" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MhVth6SEeCkz5PP4vZT5g" visible="false" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MhVtx6SEeCkz5PP4vZT5g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3MhVuB6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Dependency" href="osal.uml#_z0-aEFC3EdyqzLG48ixyqA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MhVuR6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MhVuh6SEeCkz5PP4vZT5g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MhVux6SEeCkz5PP4vZT5g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3MhVvB6SEeCkz5PP4vZT5g" type="4008" source="_3MgHsB6SEeCkz5PP4vZT5g" target="_3Mfggx6SEeCkz5PP4vZT5g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MhVvR6SEeCkz5PP4vZT5g" visible="false" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MhVvh6SEeCkz5PP4vZT5g" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MhVvx6SEeCkz5PP4vZT5g" visible="false" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MhVwB6SEeCkz5PP4vZT5g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3MhVwR6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Dependency" href="osal.uml#_FQwvsFFhEdyjobZYtXo9NQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MhVwh6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MhVwx6SEeCkz5PP4vZT5g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MhVxB6SEeCkz5PP4vZT5g" id="(0.6985507246376812,0.9491525423728814)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3MhVxR6SEeCkz5PP4vZT5g" type="4008" source="_3MgHsB6SEeCkz5PP4vZT5g" target="_3MgHhB6SEeCkz5PP4vZT5g" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MhVxh6SEeCkz5PP4vZT5g" visible="false" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MhVxx6SEeCkz5PP4vZT5g" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MhVyB6SEeCkz5PP4vZT5g" visible="false" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MhVyR6SEeCkz5PP4vZT5g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3MhVyh6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Dependency" href="osal.uml#_Gyg2UFFhEdyjobZYtXo9NQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MhVyx6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MhVzB6SEeCkz5PP4vZT5g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3Mh8oB6SEeCkz5PP4vZT5g" id="(0.13,0.08695652173913043)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3Mh8oR6SEeCkz5PP4vZT5g" type="4008" source="_3MgHsB6SEeCkz5PP4vZT5g" target="_3MgHxh6SEeCkz5PP4vZT5g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Mh8oh6SEeCkz5PP4vZT5g" visible="false" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Mh8ox6SEeCkz5PP4vZT5g" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Mh8pB6SEeCkz5PP4vZT5g" visible="false" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Mh8pR6SEeCkz5PP4vZT5g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3Mh8ph6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Dependency" href="osal.uml#_OztsoFFhEdyjobZYtXo9NQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3Mh8px6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3Mh8qB6SEeCkz5PP4vZT5g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3Mh8qR6SEeCkz5PP4vZT5g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3Mh8qh6SEeCkz5PP4vZT5g" type="4008" source="_3Mgujh6SEeCkz5PP4vZT5g" target="_3Mfggx6SEeCkz5PP4vZT5g" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Mh8qx6SEeCkz5PP4vZT5g" visible="false" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Mh8rB6SEeCkz5PP4vZT5g" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Mh8rR6SEeCkz5PP4vZT5g" visible="false" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Mh8rh6SEeCkz5PP4vZT5g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3Mh8rx6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Dependency" href="osal.uml#_s6W6oFFiEdyjobZYtXo9NQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3Mh8sB6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3Mh8sR6SEeCkz5PP4vZT5g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3Mh8sh6SEeCkz5PP4vZT5g" id="(0.263768115942029,0.7627118644067796)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3Mh8sx6SEeCkz5PP4vZT5g" type="4008" source="_3MgHhB6SEeCkz5PP4vZT5g" target="_3Mfggx6SEeCkz5PP4vZT5g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Mh8tB6SEeCkz5PP4vZT5g" visible="false" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Mh8tR6SEeCkz5PP4vZT5g" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Mh8th6SEeCkz5PP4vZT5g" visible="false" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Mh8tx6SEeCkz5PP4vZT5g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3Mh8uB6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Dependency" href="osal.uml#_tfdf4FFvEdyjobZYtXo9NQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3Mh8uR6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3Mh8uh6SEeCkz5PP4vZT5g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3Mh8ux6SEeCkz5PP4vZT5g" id="(0.9208121827411168,0.9)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3Mh8xR6SEeCkz5PP4vZT5g" type="4008" source="_3Mguuh6SEeCkz5PP4vZT5g" target="_3Mfggx6SEeCkz5PP4vZT5g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Mh8xh6SEeCkz5PP4vZT5g" visible="false" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Mh8xx6SEeCkz5PP4vZT5g" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Mh8yB6SEeCkz5PP4vZT5g" visible="false" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Mh8yR6SEeCkz5PP4vZT5g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3Mh8yh6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Dependency" href="osal.uml#_nORxgFF2EdyxP5ejovTmBw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3Mh8yx6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3Mh8zB6SEeCkz5PP4vZT5g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3Mh8zR6SEeCkz5PP4vZT5g" id="(0.45072463768115945,0.8135593220338984)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Location xmi:id="_3Mh8zh6SEeCkz5PP4vZT5g" x="-139" y="299"/>
+ <notation:Size xmi:id="_3Mh8zx6SEeCkz5PP4vZT5g" width="985" height="100"/>
+ <notation:Location xmi:id="_3Mh80B6SEeCkz5PP4vZT5g" x="-140" y="149"/>
+ <notation:Location xmi:id="_3Mh80R6SEeCkz5PP4vZT5g" x="-1" y="470"/>
+ <notation:Location xmi:id="_3Mh80h6SEeCkz5PP4vZT5g" x="-142" y="470"/>
+ <notation:Size xmi:id="_3Mh80x6SEeCkz5PP4vZT5g" width="100" height="322"/>
+ <notation:Location xmi:id="_3Mh81B6SEeCkz5PP4vZT5g" x="713" y="306"/>
+ <notation:Location xmi:id="_3Mh81R6SEeCkz5PP4vZT5g" x="203" y="472"/>
+ <notation:Location xmi:id="_3Mh81h6SEeCkz5PP4vZT5g" x="517" y="304"/>
+ <notation:Location xmi:id="_3Mh81x6SEeCkz5PP4vZT5g" x="517" y="438"/>
+ <notation:Location xmi:id="_3Mh82B6SEeCkz5PP4vZT5g" x="-10" y="299"/>
+ <notation:Location xmi:id="_3Mh82R6SEeCkz5PP4vZT5g" x="336" y="-5"/>
+ <notation:Location xmi:id="_3Mh82h6SEeCkz5PP4vZT5g" x="120" y="300"/>
+ <notation:Location xmi:id="_3Mh82x6SEeCkz5PP4vZT5g" x="528" y="-7"/>
+ <notation:Diagram xmi:id="_3Mh83B6SEeCkz5PP4vZT5g" type="PapyrusUMLClassDiagram" name="Synchronization classes : details" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_3Mh83R6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Mh83h6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Mh83x6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Mh84B6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Mh84R6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Mh84h6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Mh84x6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Mh85B6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Mh85R6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MijsB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MijsR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Mijsh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Mijsx6SEeCkz5PP4vZT5g" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_3MijtB6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XeDIoFjfEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Xgh04FjfEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_FFwlYFC4EdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MijtR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3Mijth6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_FQyJoFC4EdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Mijtx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MijuB6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_VNO_QFC4EdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MijuR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3Mijuh6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_hZUhoFC4EdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Mijux6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MijvB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MijvR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Mijvh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Mijvx6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MijwB6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MijwR6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Mijwh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l73ZoFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l73ZoVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_3d4acFC3EdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l73ZoldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l74AsFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l74AsVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l74AsldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3Mijwx6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_jXTGsFC3EdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MijxB6SEeCkz5PP4vZT5g" x="39" y="30" width="313" height="114"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MijxR6SEeCkz5PP4vZT5g" type="2012" fillColor="16634574" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Mijxh6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Mijxx6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MijyB6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MijyR6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Mijyh6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Mijyx6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MijzB6SEeCkz5PP4vZT5g" type="5038"/>
+ <element xmi:type="uml:Comment" href="osal.uml#_MY8NMFC6EdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MijzR6SEeCkz5PP4vZT5g" x="416" y="39" width="223" height="59"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3Mijzh6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Mijzx6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Mij0B6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Mij0R6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Mij0h6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Mij0x6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Mij1B6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Mij1R6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Mij1h6SEeCkz5PP4vZT5g" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_3Mij1x6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_IAWtAFFiEdyjobZYtXo9NQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Mij2B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3Mij2R6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_IEFWcFFiEdyjobZYtXo9NQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Mij2h6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Mij2x6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Mij3B6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Mij3R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Mij3h6SEeCkz5PP4vZT5g" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_3Mij3x6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XeDvsFjfEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XgjDAFjfEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_df1i0FFhEdyjobZYtXo9NQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Mij4B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3Mij4R6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XeDvsljfEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XgjqEFjfEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_dnb_oFFhEdyjobZYtXo9NQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Mij4h6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3Mij4x6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_du4rcFFhEdyjobZYtXo9NQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Mij5B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Mij5R6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Mij5h6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Mij5x6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Mij6B6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Mij6R6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Mij6h6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Mij6x6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l77rEFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l77rEVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_SQ2h4FFhEdyjobZYtXo9NQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l77rEldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l78SIFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l78SIVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l78SIldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3Mij7B6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_5HEaAFFgEdyjobZYtXo9NQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Mij7R6SEeCkz5PP4vZT5g" x="39" y="182" width="313" height="127"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3Mij7h6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Mij7x6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Mij8B6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Mij8R6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Mij8h6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Mij8x6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Mij9B6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Mij9R6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Mij9h6SEeCkz5PP4vZT5g" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_3Mij9x6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_8z5vwFFuEdyjobZYtXo9NQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MjKwB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MjKwR6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_87gMkFFuEdyjobZYtXo9NQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MjKwh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MjKwx6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_9BdqoFFuEdyjobZYtXo9NQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MjKxB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MjKxR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MjKxh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MjKxx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MjKyB6SEeCkz5PP4vZT5g" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_3MjKyR6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uqZ6gFjfEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uuWmYFjfEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_F6fWQFFuEdyjobZYtXo9NQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MjKyh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MjKyx6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_w8J6sFjfEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xNFSoFjfEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_GFqrgFFuEdyjobZYtXo9NQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MjKzB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MjKzR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_GNaSQFFuEdyjobZYtXo9NQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MjKzh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MjKzx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_GSVOgFFuEdyjobZYtXo9NQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MjK0B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MjK0R6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_GZx6UFFuEdyjobZYtXo9NQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MjK0h6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MjK0x6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ytxpUFjfEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yyWnUFjfEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_Ge2AgFFuEdyjobZYtXo9NQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MjK1B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MjK1R6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MjK1h6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MjK1x6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MjK2B6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MjK2R6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MjK2h6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MjK2x6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l8AjkFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l8AjkVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_xoZ-IFFiEdyjobZYtXo9NQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l8AjkldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l8BKoFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l8BKoVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l8BKoldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MjK3B6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_qIyBkFC3EdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MjK3R6SEeCkz5PP4vZT5g" x="416" y="130" width="313" height="183"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MjK3h6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MjK3x6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MjK4B6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MjK4R6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MjK4h6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MjK4x6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MjK5B6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MjK5R6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MjK5h6SEeCkz5PP4vZT5g" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_3MjK5x6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_PL5ogFF0EdyjobZYtXo9NQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MjK6B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MjK6R6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MjK6h6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MjK6x6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MjK7B6SEeCkz5PP4vZT5g" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_3MjK7R6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_4NODEFFvEdyjobZYtXo9NQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MjK7h6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MjK7x6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_4cRLsFFvEdyjobZYtXo9NQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MjK8B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MjK8R6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_-Hj6kFFvEdyjobZYtXo9NQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MjK8h6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MjK8x6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_DEz3sFFwEdyjobZYtXo9NQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MjK9B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MjK9R6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_Jid3oFFwEdyjobZYtXo9NQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MjK9h6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MjK9x6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1QhS4FjfEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1Q7ikFjfEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_OEl_AFFwEdyjobZYtXo9NQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MjK-B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MjK-R6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1Qgr0FjfEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1Q67gFjfEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_W33LcFFwEdyjobZYtXo9NQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MjK-h6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MjK-x6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1Qh58FjfEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1Q8JoFjfEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_CFHYcFF0EdyjobZYtXo9NQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MjK_B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MjK_R6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MjK_h6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MjK_x6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MjLAB6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MjLAR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Mjx0B6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Mjx0R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l8E1AFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l8E1AVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_X2-iQFF0EdyjobZYtXo9NQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l8E1AldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l8FcEFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l8FcEVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l8FcEldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3Mjx0h6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_Jj9usFC7EdyqzLG48ixyqA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Mjx0x6SEeCkz5PP4vZT5g" x="39" y="338" width="313" height="170"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3Mjx1B6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Mjx1R6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Mjx1h6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Mjx1x6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Mjx2B6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Mjx2R6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Mjx2h6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Mjx2x6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Mjx3B6SEeCkz5PP4vZT5g" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_3Mjx3R6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_Ce-GEFF4EdyxP5ejovTmBw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Mjx3h6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Mjx3x6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Mjx4B6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Mjx4R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Mjx4h6SEeCkz5PP4vZT5g" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_3Mjx4x6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_tz4-IFF3EdyxP5ejovTmBw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Mjx5B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3Mjx5R6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_t6TIIFF3EdyxP5ejovTmBw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Mjx5h6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3Mjx5x6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_uA2cEFF3EdyxP5ejovTmBw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Mjx6B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3Mjx6R6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_uHG1EFF3EdyxP5ejovTmBw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Mjx6h6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3Mjx6x6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_uL4AUFF3EdyxP5ejovTmBw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Mjx7B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3Mjx7R6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_uQNGsFF3EdyxP5ejovTmBw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Mjx7h6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3Mjx7x6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_uVHb4FF3EdyxP5ejovTmBw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Mjx8B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3Mjx8R6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_-EmMgFF3EdyxP5ejovTmBw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Mjx8h6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3Mjx8x6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1QihAVjfEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1Q8wsFjfEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_-N-yAFF3EdyxP5ejovTmBw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Mjx9B6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Mjx9R6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Mjx9h6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Mjx9x6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Mjx-B6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Mjx-R6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Mjx-h6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Mjx-x6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l8IfYFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l8IfYVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_1Rt3EFF2EdyxP5ejovTmBw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l8IfYldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l8JGcFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l8JGcVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l8JGcldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3Mjx_B6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_dhMBIFF2EdyxP5ejovTmBw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Mjx_R6SEeCkz5PP4vZT5g" x="416" y="338" width="313" height="183"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_3Mjx_h6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Package" href="osal.uml#_soXY0C-OEdySSa8YESkO2w"/>
+ <edges xmi:type="notation:Connector" xmi:id="_3Mjx_x6SEeCkz5PP4vZT5g" type="4013" source="_3MijxR6SEeCkz5PP4vZT5g" target="_3Mh83R6SEeCkz5PP4vZT5g" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_3MjyAB6SEeCkz5PP4vZT5g"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MjyAR6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MjyAh6SEeCkz5PP4vZT5g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MjyAx6SEeCkz5PP4vZT5g"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Size xmi:id="_3MjyBB6SEeCkz5PP4vZT5g" width="414" height="182"/>
+ <notation:Location xmi:id="_3MjyBR6SEeCkz5PP4vZT5g" x="39" y="30"/>
+ <notation:Size xmi:id="_3MjyBh6SEeCkz5PP4vZT5g" width="292" height="109"/>
+ <notation:Location xmi:id="_3MjyBx6SEeCkz5PP4vZT5g" x="600" y="91"/>
+ <notation:Size xmi:id="_3MjyCB6SEeCkz5PP4vZT5g" width="318" height="127"/>
+ <notation:Location xmi:id="_3MjyCR6SEeCkz5PP4vZT5g" x="568" y="227"/>
+ <notation:Size xmi:id="_3MjyCh6SEeCkz5PP4vZT5g" width="318" height="267"/>
+ <notation:Location xmi:id="_3MjyCx6SEeCkz5PP4vZT5g" x="568" y="376"/>
+ <notation:Size xmi:id="_3MjyDB6SEeCkz5PP4vZT5g" width="317" height="195"/>
+ <notation:Location xmi:id="_3MjyDR6SEeCkz5PP4vZT5g" x="571" y="670"/>
+ <notation:Size xmi:id="_3MjyDh6SEeCkz5PP4vZT5g" width="313" height="224"/>
+ <notation:Location xmi:id="_3MjyDx6SEeCkz5PP4vZT5g" x="573" y="906"/>
+ <notation:Diagram xmi:id="_3MjyEB6SEeCkz5PP4vZT5g" type="PapyrusUMLClassDiagram" name="Tracing classes : include relationships" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_3MjyER6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MjyEh6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MjyEx6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MjyFB6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MkY4B6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MkY4R6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MkY4h6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MkY4x6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MkY5B6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MkY5R6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MkY5h6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MkY5x6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MkY6B6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MkY6R6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MkY6h6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MkY6x6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MkY7B6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MkY7R6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MkY7h6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MkY7x6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l-77wFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l-77wVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_Gyo1gFGKEdy7g9CjxdN7jw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l-77wldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l-77w1diEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l-77xFdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l-77xVdiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MkY8B6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_5InEkFGAEdyxP5ejovTmBw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MkY8R6SEeCkz5PP4vZT5g" x="39" y="195" width="100" height="63"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MkY8h6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MkY8x6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MkY9B6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MkY9R6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MkY9h6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MkY9x6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MkY-B6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MkY-R6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MkY-h6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MkY-x6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MkY_B6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MkY_R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MkY_h6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MkY_x6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MkZAB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MkZAR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MkZAh6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MkZAx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MkZBB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MkZBR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l--YAFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l--YAVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_Vh1d8DR3EdypGbuyt3_DaA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l--YAldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l--YA1diEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l--YBFdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l--YBVdiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MkZBh6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_WXH_4DO2EdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MkZBx6SEeCkz5PP4vZT5g" x="39" y="78" width="100" height="63"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MkZCB6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MkZCR6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MkZCh6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MkZCx6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MkZDB6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MkZDR6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MkZDh6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MkZDx6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MkZEB6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MkZER6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MkZEh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MkZEx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MkZFB6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MkZFR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MkZFh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MkZFx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MkZGB6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MkZGR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MkZGh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MkZGx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l_ANMFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l_ANMVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_b0TcwFIfEdy7g9CjxdN7jw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l_ANMldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l_ANM1diEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l_ANNFdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l_ANNVdiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MkZHB6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_1DM54DxBEdyfAeav5abbAw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MkZHR6SEeCkz5PP4vZT5g" x="39" y="312" width="482" height="67"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MkZHh6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MkZHx6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Mk_8B6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Mk_8R6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Mk_8h6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Mk_8x6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Mk_9B6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Mk_9R6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Mk_9h6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Mk_9x6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Mk_-B6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Mk_-R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Mk_-h6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Mk_-x6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Mk__B6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Mk__R6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Mk__h6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3Mk__x6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MlAAB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MlAAR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l_CCYFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l_CCYVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_6BpjUDUOEdy0feurbW0fyQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l_CCYldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l_CpcFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l_CpcVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l_CpcldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MlAAh6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_0TXx4DUOEdy0feurbW0fyQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MlAAx6SEeCkz5PP4vZT5g" x="429" y="78" width="92" height="63"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MlABB6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MlABR6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MlABh6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MlABx6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MlACB6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MlACR6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MlACh6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MlACx6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MlADB6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MlADR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MlADh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MlADx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MlAEB6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MlAER6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MlAEh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MlAEx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MlAFB6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MlAFR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MlAFh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MlAFx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l_D3kFdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l_D3kVdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l_D3kldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MlAGB6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_sQ1JADO0EdyG-pUz-bb-Lg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MlAGR6SEeCkz5PP4vZT5g" x="299" y="78" width="100" height="63"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MlAGh6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MlAGx6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MlAHB6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MlAHR6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MlAHh6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MlAHx6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MlAIB6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MlAIR6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MlAIh6SEeCkz5PP4vZT5g" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MlAIx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MlAJB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MlAJR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MlAJh6SEeCkz5PP4vZT5g" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MlAJx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MlAKB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MlAKR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MlAKh6SEeCkz5PP4vZT5g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MlAKx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MlALB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MlALR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l_GT0FdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l_GT0VdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_DXEWYDUWEdyDReAOQiyvOg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l_GT0ldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l_Hh8FdiEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l_Hh8VdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l_Hh8ldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MlALh6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_Fqa9QDUPEdy0feurbW0fyQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MlALx6SEeCkz5PP4vZT5g" x="169" y="78" width="100" height="63"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_3MlAMB6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Package" href="osal.uml#_w86XMC-OEdySSa8YESkO2w"/>
+ <edges xmi:type="notation:Connector" xmi:id="_3MlAMR6SEeCkz5PP4vZT5g" type="4008" source="_3MjyER6SEeCkz5PP4vZT5g" target="_3MkY8h6SEeCkz5PP4vZT5g" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MlAMh6SEeCkz5PP4vZT5g" visible="false" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MlAMx6SEeCkz5PP4vZT5g" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MlANB6SEeCkz5PP4vZT5g" visible="false" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MlANR6SEeCkz5PP4vZT5g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3MlANh6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Dependency" href="osal.uml#_JUZWsFGBEdyxP5ejovTmBw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MlANx6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MlAOB6SEeCkz5PP4vZT5g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MlAOR6SEeCkz5PP4vZT5g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3MlAOh6SEeCkz5PP4vZT5g" type="4008" source="_3MkZCB6SEeCkz5PP4vZT5g" target="_3MlABB6SEeCkz5PP4vZT5g" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MlnAB6SEeCkz5PP4vZT5g" visible="false" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MlnAR6SEeCkz5PP4vZT5g" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MlnAh6SEeCkz5PP4vZT5g" visible="false" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MlnAx6SEeCkz5PP4vZT5g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3MlnBB6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Dependency" href="osal.uml#_NclwUFIfEdy7g9CjxdN7jw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MlnBR6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MlnBh6SEeCkz5PP4vZT5g" id="(0.6347305389221557,0.05970149253731343)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MlnBx6SEeCkz5PP4vZT5g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3MlnCB6SEeCkz5PP4vZT5g" type="4008" source="_3MkZCB6SEeCkz5PP4vZT5g" target="_3MjyER6SEeCkz5PP4vZT5g" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MlnCR6SEeCkz5PP4vZT5g" visible="false" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MlnCh6SEeCkz5PP4vZT5g" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MlnCx6SEeCkz5PP4vZT5g" visible="false" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MlnDB6SEeCkz5PP4vZT5g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3MlnDR6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Dependency" href="osal.uml#_OMbR0FIfEdy7g9CjxdN7jw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MlnDh6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MlnDx6SEeCkz5PP4vZT5g" id="(0.11377245508982035,0.16417910447761194)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MlnEB6SEeCkz5PP4vZT5g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3MlnER6SEeCkz5PP4vZT5g" type="4008" source="_3MkZCB6SEeCkz5PP4vZT5g" target="_3MkZHh6SEeCkz5PP4vZT5g" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MlnEh6SEeCkz5PP4vZT5g" visible="false" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MlnEx6SEeCkz5PP4vZT5g" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MlnFB6SEeCkz5PP4vZT5g" visible="false" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MlnFR6SEeCkz5PP4vZT5g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3MlnFh6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Dependency" href="osal.uml#_RnxXUFIfEdy7g9CjxdN7jw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MlnFx6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MlnGB6SEeCkz5PP4vZT5g" id="(0.8862275449101796,0.08955223880597014)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MlnGR6SEeCkz5PP4vZT5g"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3MlnGh6SEeCkz5PP4vZT5g" type="4008" source="_3MkZCB6SEeCkz5PP4vZT5g" target="_3MlAGh6SEeCkz5PP4vZT5g" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MlnGx6SEeCkz5PP4vZT5g" visible="false" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MlnHB6SEeCkz5PP4vZT5g" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MlnHR6SEeCkz5PP4vZT5g" visible="false" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MlnHh6SEeCkz5PP4vZT5g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3MlnHx6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Dependency" href="osal.uml#_XHvnAFIfEdy7g9CjxdN7jw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MlnIB6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MlnIR6SEeCkz5PP4vZT5g" id="(0.3652694610778443,0.05970149253731343)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MlnIh6SEeCkz5PP4vZT5g"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Size xmi:id="_3MlnIx6SEeCkz5PP4vZT5g" width="218" height="100"/>
+ <notation:Location xmi:id="_3MlnJB6SEeCkz5PP4vZT5g" x="291" y="259"/>
+ <notation:Location xmi:id="_3MlnJR6SEeCkz5PP4vZT5g" x="412" y="106"/>
+ <notation:Size xmi:id="_3MlnJh6SEeCkz5PP4vZT5g" width="569" height="100"/>
+ <notation:Location xmi:id="_3MlnJx6SEeCkz5PP4vZT5g" x="280" y="441"/>
+ <notation:Location xmi:id="_3MlnKB6SEeCkz5PP4vZT5g" x="760" y="107"/>
+ <notation:Location xmi:id="_3MlnKR6SEeCkz5PP4vZT5g" x="649" y="107"/>
+ <notation:Location xmi:id="_3MlnKh6SEeCkz5PP4vZT5g" x="531" y="106"/>
+ <notation:Diagram xmi:id="_3MlnKx6SEeCkz5PP4vZT5g" type="PapyrusUMLClassDiagram" name="Tracing classes : details" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_3MlnLB6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MlnLR6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MlnLh6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MlnLx6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MlnMB6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MlnMR6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MlnMh6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MlnMx6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MlnNB6SEeCkz5PP4vZT5g" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_3MlnNR6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_rqVygFGJEdy7g9CjxdN7jw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MlnNh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MlnNx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MlnOB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MlnOR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MlnOh6SEeCkz5PP4vZT5g" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_3MlnOx6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Hsl3gljeEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HyLiIVjeEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_IM-wwFGDEdyxP5ejovTmBw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MlnPB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MlnPR6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Hsl3gFjeEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HyLiIFjeEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_IWOMUFGDEdyxP5ejovTmBw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MmOEB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MmOER6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HslQcljeEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HyK7EVjeEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_IcxgQFGDEdyxP5ejovTmBw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MmOEh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MmOEx6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HskCUFjeEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HyKUAVjeEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_IiSSYFGDEdyxP5ejovTmBw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MmOFB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MmOFR6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HslQcFjeEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HyK7EFjeEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_IoGmgFGDEdyxP5ejovTmBw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MmOFh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MmOFx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MmOGB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MmOGR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MmOGh6SEeCkz5PP4vZT5g" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MmOGx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MmOHB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MmOHR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mBs74FdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mBs74VdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_Gyo1gFGKEdy7g9CjxdN7jw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mBs74ldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mBs741diEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mBs75FdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mBs75VdiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MmOHh6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_5InEkFGAEdyxP5ejovTmBw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MmOHx6SEeCkz5PP4vZT5g" x="94" y="52" width="395" height="154"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MmOIB6SEeCkz5PP4vZT5g" type="2008" fillColor="14088696" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MmOIR6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MmOIh6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MmOIx6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MmOJB6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MmOJR6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MmOJh6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MmOJx6SEeCkz5PP4vZT5g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MmOKB6SEeCkz5PP4vZT5g" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_3MmOKR6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#__ziOwFIgEdy7g9CjxdN7jw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MmOKh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MmOKx6SEeCkz5PP4vZT5g" type="3012">
+ <element xmi:type="uml:Property" href="osal.uml#_UyTHsFIhEdy7g9CjxdN7jw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MmOLB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MmOLR6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MmOLh6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MmOLx6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MmOMB6SEeCkz5PP4vZT5g" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_3MmOMR6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JZihgFjeEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JaDe4FjeEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_n7UR4FIfEdy7g9CjxdN7jw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MmOMh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MmOMx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_oFTUUFIfEdy7g9CjxdN7jw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MmONB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MmONR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_BsdUsFIgEdy7g9CjxdN7jw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MmONh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MmONx6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_TAN7gFIgEdy7g9CjxdN7jw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MmOOB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MmOOR6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HsiNIFjeEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HyJs8FjeEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_dlyMAFIgEdy7g9CjxdN7jw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MmOOh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MmOOx6SEeCkz5PP4vZT5g" type="3013">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HsjbQFjeEeKWlJhcyT0hJA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HyKUAFjeEeKWlJhcyT0hJA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="osal.uml#_qIrE0FIgEdy7g9CjxdN7jw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MmOPB6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MmOPR6SEeCkz5PP4vZT5g" type="3013">
+ <element xmi:type="uml:Operation" href="osal.uml#_7hM24FIgEdy7g9CjxdN7jw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MmOPh6SEeCkz5PP4vZT5g"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MmOPx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MmOQB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MmOQR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3MmOQh6SEeCkz5PP4vZT5g" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3MmOQx6SEeCkz5PP4vZT5g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3MmORB6SEeCkz5PP4vZT5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MmORR6SEeCkz5PP4vZT5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mBv_MFdiEeOGK9gz6QqCTQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mBv_MVdiEeOGK9gz6QqCTQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="osal.uml#_b0TcwFIfEdy7g9CjxdN7jw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mBv_MldiEeOGK9gz6QqCTQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mBv_M1diEeOGK9gz6QqCTQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mBv_NFdiEeOGK9gz6QqCTQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mBv_NVdiEeOGK9gz6QqCTQ"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_3MmORh6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Class" href="osal.uml#_1DM54DxBEdyfAeav5abbAw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MmORx6SEeCkz5PP4vZT5g" x="79" y="254" width="400" height="285"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3MmOSB6SEeCkz5PP4vZT5g" type="2012" fillColor="16634574" lineColor="3112093">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MmOSR6SEeCkz5PP4vZT5g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MmOSh6SEeCkz5PP4vZT5g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MmOSx6SEeCkz5PP4vZT5g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MmOTB6SEeCkz5PP4vZT5g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3MmOTR6SEeCkz5PP4vZT5g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3MmOTh6SEeCkz5PP4vZT5g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3MmOTx6SEeCkz5PP4vZT5g" type="5038"/>
+ <element xmi:type="uml:Comment" href="osal.uml#_qhfYAFIhEdy7g9CjxdN7jw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MmOUB6SEeCkz5PP4vZT5g" x="606" y="316" width="173" height="84"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_3MmOUR6SEeCkz5PP4vZT5g"/>
+ <element xmi:type="uml:Package" href="osal.uml#_w86XMC-OEdySSa8YESkO2w"/>
+ <edges xmi:type="notation:Connector" xmi:id="_3Mm1IB6SEeCkz5PP4vZT5g" type="4013" source="_3MmOSB6SEeCkz5PP4vZT5g" target="_3MmOIB6SEeCkz5PP4vZT5g" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_3Mm1IR6SEeCkz5PP4vZT5g"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3Mm1Ih6SEeCkz5PP4vZT5g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3Mm1Ix6SEeCkz5PP4vZT5g"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3Mm1JB6SEeCkz5PP4vZT5g"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Size xmi:id="_3Mm1JR6SEeCkz5PP4vZT5g" width="395" height="154"/>
+ <notation:Location xmi:id="_3Mm1Jh6SEeCkz5PP4vZT5g" x="94" y="52"/>
+ <notation:Size xmi:id="_3Mm1Jx6SEeCkz5PP4vZT5g" width="400" height="285"/>
+ <notation:Location xmi:id="_3Mm1KB6SEeCkz5PP4vZT5g" x="79" y="254"/>
+ <notation:Size xmi:id="_3Mm1KR6SEeCkz5PP4vZT5g" width="173" height="84"/>
+ <notation:Location xmi:id="_3Mm1Kh6SEeCkz5PP4vZT5g" x="606" y="316"/>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/osal.uml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/osal.uml
new file mode 100644
index 00000000000..f5f50bfcf69
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/osal.uml
@@ -0,0 +1,11645 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:C_Cpp="http://www.eclipse.org/papyrus/C_Cpp/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <uml:Model xmi:id="_ROTQYC-OEdySSa8YESkO2w" name="OS_AL">
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_ROTQYS-OEdySSa8YESkO2w">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_Ac-YUDRcEdyDwaY3iUxzzA">
+ <importedPackage xmi:type="uml:Model" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_DV8nkBv8EduZN5aJJITI5w"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Package" xmi:id="_mU3acC-OEdySSa8YESkO2w" name="Communication">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_VAllAFClEdyTutVzffQTmQ" annotatedElement="_Nz2RgFClEdyTutVzffQTmQ">
+ <body>Declared in MessageBuffer.h,&#xD;
+but outside of the class Section</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_LbxUEDRPEdy1p4IpsoZYqA" name="MessageBuffer">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_kVFp0FClEdyTutVzffQTmQ" annotatedElement="_LbxUEDRPEdy1p4IpsoZYqA">
+ <body>The message buffer is used to store different data types that can be&#xD;
+added to (read from) the buffer by means of overloaded &lt;&lt; (>>) operators.</body>
+ </ownedComment>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_iJ-LMFCnEdyTutVzffQTmQ" name="m_buffer" visibility="protected" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_YYWiwByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mjdT8FCnEdyTutVzffQTmQ" value="800"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mjmd4FCnEdyTutVzffQTmQ" value="800"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_kc5QEFCnEdyTutVzffQTmQ" value=""/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_iRkoAFCnEdyTutVzffQTmQ" name="m_reader_ptr" visibility="protected" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_YYWiwByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iSBT8FCnEdyTutVzffQTmQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iSBT8VCnEdyTutVzffQTmQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_iVcbYFCnEdyTutVzffQTmQ" name="m_writer_ptr" visibility="protected" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_YYWiwByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iV5HUFCnEdyTutVzffQTmQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iV5HUVCnEdyTutVzffQTmQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_iY4J4FCnEdyTutVzffQTmQ" name="m_data_start" visibility="protected" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_YYWiwByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iZUOwFCnEdyTutVzffQTmQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iZd_wFCnEdyTutVzffQTmQ" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_98a-cFCnEdyTutVzffQTmQ" name="MessageBuffer" specification="_9ececFCmEdyTutVzffQTmQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_eg8bUCBbEeOMKsPXBVC0DA" name="dummy" type="_Nz2RgFClEdyTutVzffQTmQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ehdYsCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eho-4CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> m_data_start = m_buffer;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_JZnvoFCqEdyTutVzffQTmQ" name="sizeReader" specification="_UH_6sFCmEdyTutVzffQTmQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_eh5dkCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eiaa8CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eilaECBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> return (m_reader_ptr - m_data_start);</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_LTXfgFCqEdyTutVzffQTmQ" name="sizeWriter" specification="_UVQTkFCmEdyTutVzffQTmQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ei2f0CBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ejXdMCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ejicUCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> return (m_writer_ptr - m_data_start);</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Mz7TUFCqEdyTutVzffQTmQ" name="resetReader" specification="_9XQt0FClEdyTutVzffQTmQ">
+ <language>C/C++</language>
+ <body> m_reader_ptr = m_data_start;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_N_7MYFCqEdyTutVzffQTmQ" name="resetWriter" specification="_FSpQAFCmEdyTutVzffQTmQ">
+ <language>C/C++</language>
+ <body> m_writer_ptr = m_data_start;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_PoOm8FCqEdyTutVzffQTmQ" name="reset" specification="_Olf7cFCmEdyTutVzffQTmQ">
+ <language>C/C++</language>
+ <body> resetReader ();&#xD;
+ resetWriter ();&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_miDeYFCqEdyTutVzffQTmQ" name="MessageBuffer" specification="_3v1yUFClEdyTutVzffQTmQ">
+ <language>C/C++</language>
+ <body> m_data_start = m_buffer;&#xD;
+ reset ();&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_pMOloFCqEdyTutVzffQTmQ" name="MessageBuffer" specification="_oHiAsFClEdyTutVzffQTmQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ekJgUCBbEeOMKsPXBVC0DA" name="msgBuf" type="_LbxUEDRPEdy1p4IpsoZYqA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ekrEwCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ek2D4CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> memcpy (m_buffer, msgBuf.m_buffer, MAX_MESSAGE_SIZE);&#xD;
+ // m_data_start is modified by a subclass, thus, we cannot simply&#xD;
+ // reset m_data_start to m_buffer&#xD;
+ m_data_start = m_buffer + (msgBuf.m_data_start - msgBuf.m_buffer);&#xD;
+ m_reader_ptr = m_buffer + (msgBuf.m_reader_ptr - msgBuf.m_buffer);&#xD;
+ m_writer_ptr = m_buffer + (msgBuf.m_writer_ptr - msgBuf.m_buffer);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_E6W5kFCrEdyTutVzffQTmQ" name="addToBuffer" specification="_g-GDYFCmEdyTutVzffQTmQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_elVMECBbEeOMKsPXBVC0DA" name="ptr">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_el2wgCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_emBvoCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_emiF8CBbEeOMKsPXBVC0DA" name="size">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_enDDUCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_enOCcCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> if (m_writer_ptr + size > m_buffer + MAX_MESSAGE_SIZE) {&#xD;
+ OSAL_ERROR(&quot;Message buffer too small&quot;);&#xD;
+ }&#xD;
+ memcpy (m_writer_ptr, ptr, size);&#xD;
+ // keep alignment of pointers&#xD;
+ m_writer_ptr += (size + MB_ALIGNMENT - 1) &amp; (- MB_ALIGNMENT);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Gkwl4FCrEdyTutVzffQTmQ" name="getFromBuffer" specification="_viKJwFCmEdyTutVzffQTmQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_enfIMCBbEeOMKsPXBVC0DA" name="ptr">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eoAFkCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eoP9MCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_eoo-wCBbEeOMKsPXBVC0DA" name="size">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_epJ8ICBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_epU7QCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> if (m_reader_ptr + size > m_buffer + MAX_MESSAGE_SIZE) {&#xD;
+ OSAL_ERROR(&quot;read past end of buffer&quot;);&#xD;
+ }&#xD;
+ memcpy (ptr, m_reader_ptr, size);&#xD;
+ m_reader_ptr += (size + MB_ALIGNMENT - 1) &amp; (- MB_ALIGNMENT);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_p3s1wDR1EdypGbuyt3_DaA" name="operator&lt;&lt;" specification="_lKriQDRPEdy1p4IpsoZYqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_epmBACBbEeOMKsPXBVC0DA" name="param_0" type="_LbxUEDRPEdy1p4IpsoZYqA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eqG-YCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eqR9gCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_eqk4cCBbEeOMKsPXBVC0DA" name="msg" type="_LbxUEDRPEdy1p4IpsoZYqA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_erGc4CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_erRcACBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_erkW8CBbEeOMKsPXBVC0DA" name="bstr" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_esFUUCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_esQTcCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>msg.addToBuffer( &amp;bstr.nbytes, sizeof (size_t));&#xD;
+msg.addToBuffer( bstr.charTable, bstr.nbytes+1);&#xD;
+return msg;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_s5RwYDR1EdypGbuyt3_DaA" name="operator>>" specification="_m8rEUDRPEdy1p4IpsoZYqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_eswpwCBbEeOMKsPXBVC0DA" name="param_0" type="_LbxUEDRPEdy1p4IpsoZYqA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_etRnICBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_etdNUCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_etvhMCBbEeOMKsPXBVC0DA" name="msg" type="_LbxUEDRPEdy1p4IpsoZYqA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_euQekCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eucEwCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_euuYoCBbEeOMKsPXBVC0DA" name="bstr" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_evP9ECBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_evfNoCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>unsigned int length;&#xD;
+msg.getFromBuffer (&amp;length, sizeof (size_t));&#xD;
+if (length &lt; bstr.charTableSize) {&#xD;
+ msg.getFromBuffer (bstr.charTable, length+1);&#xD;
+ bstr.nbytes = length;&#xD;
+ bstr.current = bstr.charTable;&#xD;
+}&#xD;
+return msg;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_oHiAsFClEdyTutVzffQTmQ" name="MessageBuffer" method="_pMOloFCqEdyTutVzffQTmQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_wvBa8FClEdyTutVzffQTmQ" annotatedElement="_oHiAsFClEdyTutVzffQTmQ">
+ <body>Copy constructor for a message buffer. Needed to adjust&#xD;
+ read and write pointers after copying</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_qqshAFClEdyTutVzffQTmQ" name="msgBuf" type="_LbxUEDRPEdy1p4IpsoZYqA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qq_b8FClEdyTutVzffQTmQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_qrJM8FClEdyTutVzffQTmQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_3v1yUFClEdyTutVzffQTmQ" name="MessageBuffer" method="_miDeYFCqEdyTutVzffQTmQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_9XQt0FClEdyTutVzffQTmQ" name="resetReader" method="_Mz7TUFCqEdyTutVzffQTmQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_BilewFCmEdyTutVzffQTmQ" annotatedElement="_9XQt0FClEdyTutVzffQTmQ">
+ <body>Reset the reader pointer into the message buffer</body>
+ </ownedComment>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_FSpQAFCmEdyTutVzffQTmQ" name="resetWriter" method="_N_7MYFCqEdyTutVzffQTmQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_HngOkFCmEdyTutVzffQTmQ" annotatedElement="_FSpQAFCmEdyTutVzffQTmQ">
+ <body>Reset the writer pointer into the message buffer</body>
+ </ownedComment>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Olf7cFCmEdyTutVzffQTmQ" name="reset" method="_PoOm8FCqEdyTutVzffQTmQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_RcogoFCmEdyTutVzffQTmQ" annotatedElement="_Olf7cFCmEdyTutVzffQTmQ">
+ <body>Reset the reader and writer pointer into the message buffer</body>
+ </ownedComment>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_UH_6sFCmEdyTutVzffQTmQ" name="sizeReader" method="_JZnvoFCqEdyTutVzffQTmQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ZMP3sFCmEdyTutVzffQTmQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ZMiyoFCmEdyTutVzffQTmQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ZM1tkFCmEdyTutVzffQTmQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_UVQTkFCmEdyTutVzffQTmQ" name="sizeWriter" method="_LTXfgFCqEdyTutVzffQTmQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_akA74FCmEdyTutVzffQTmQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_akT20FCmEdyTutVzffQTmQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_akmxwFCmEdyTutVzffQTmQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_g-GDYFCmEdyTutVzffQTmQ" name="addToBuffer" method="_E6W5kFCrEdyTutVzffQTmQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_ifZeEFCmEdyTutVzffQTmQ" annotatedElement="_g-GDYFCmEdyTutVzffQTmQ">
+ <body>Method used to add a value to the buffer. Don't use this&#xD;
+ method but the overloaded &lt;&lt; operator.</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_lT2isFCmEdyTutVzffQTmQ" name="ptr">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lZNj0FCmEdyTutVzffQTmQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lZXU0FCmEdyTutVzffQTmQ" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ljDcUFCmEdyTutVzffQTmQ" name="size">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ljWXQFCmEdyTutVzffQTmQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ljgIQFCmEdyTutVzffQTmQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_viKJwFCmEdyTutVzffQTmQ" name="getFromBuffer" method="_Gkwl4FCrEdyTutVzffQTmQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_yFLgIFCmEdyTutVzffQTmQ" annotatedElement="_viKJwFCmEdyTutVzffQTmQ">
+ <body>Method used retrieve a value from the buffer. Don't use this&#xD;
+ method but the overloaded >> operator.</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_04JXAFCmEdyTutVzffQTmQ" name="ptr">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_04mC8FCmEdyTutVzffQTmQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_04vM4FCmEdyTutVzffQTmQ" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_1B-ocFCmEdyTutVzffQTmQ" name="size">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_1CRjYFCmEdyTutVzffQTmQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_1CkeUFCmEdyTutVzffQTmQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_9ececFCmEdyTutVzffQTmQ" name="MessageBuffer" visibility="protected" method="_98a-cFCnEdyTutVzffQTmQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Rg-_sFCnEdyTutVzffQTmQ" annotatedElement="_9ececFCmEdyTutVzffQTmQ">
+ <body>This constructor is there fore efficiency reasons: it does not&#xD;
+ initialize the reader and writer pointers. It is used by subclasses&#xD;
+ that modify the data_start and therefore need to invoke reset&#xD;
+ afterwards. Thus, it prevents that reset is called multiple times.</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_USmywFCnEdyTutVzffQTmQ" name="dummy" type="_Nz2RgFClEdyTutVzffQTmQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_US5tsFCnEdyTutVzffQTmQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_UTDesFCnEdyTutVzffQTmQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_lKriQDRPEdy1p4IpsoZYqA" name="operator&lt;&lt;" method="_p3s1wDR1EdypGbuyt3_DaA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_OgIngDRQEdy1p4IpsoZYqA" annotatedElement="_lKriQDRPEdy1p4IpsoZYqA">
+ <body>declare specific marshalling operators for BString, since&#xD;
+(1) this is more efficient&#xD;
+(2) a memory copy based marshalling would copy pointers that become&#xD;
+ bogus in a different address space.</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_t_JBgDRPEdy1p4IpsoZYqA" name="param_0" type="_LbxUEDRPEdy1p4IpsoZYqA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wr2fYDRPEdy1p4IpsoZYqA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wr2fYTRPEdy1p4IpsoZYqA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_1yC9IDRPEdy1p4IpsoZYqA" name="msg" type="_LbxUEDRPEdy1p4IpsoZYqA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_4NBKwDRPEdy1p4IpsoZYqA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_4NBKwTRPEdy1p4IpsoZYqA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_132qMDRPEdy1p4IpsoZYqA" name="bstr" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9YIkwDRPEdy1p4IpsoZYqA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9YRusDRPEdy1p4IpsoZYqA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_m8rEUDRPEdy1p4IpsoZYqA" name="operator>>" method="_s5RwYDR1EdypGbuyt3_DaA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_BTXrQDRQEdy1p4IpsoZYqA" name="param_0" type="_LbxUEDRPEdy1p4IpsoZYqA" direction="return"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_BWpowDRQEdy1p4IpsoZYqA" name="msg" type="_LbxUEDRPEdy1p4IpsoZYqA"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_BaOhMDRQEdy1p4IpsoZYqA" name="bstr" type="_WXH_4DO2EdyG-pUz-bb-Lg"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_M5gBkFCDEdy2tpS719xBwQ" name="p_Communication"/>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_Nz2RgFClEdyTutVzffQTmQ" name="MessageBufferEnum">
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_RygfcFClEdyTutVzffQTmQ" name="NO_RESET"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_ZiVqMFCrEdyTutVzffQTmQ" name="MessageHeader">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_v7_MwFCrEdyqzLG48ixyqA" annotatedElement="_ZiVqMFCrEdyTutVzffQTmQ">
+ <body>A Message Header that is prefixed to all messages</body>
+ </ownedComment>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_ypi_MFCrEdyqzLG48ixyqA" name="msgType" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_yqI1EFCrEdyqzLG48ixyqA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_yqI1EVCrEdyqzLG48ixyqA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_yuw2YFCrEdyqzLG48ixyqA" name="sender" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_yu6nYFCrEdyqzLG48ixyqA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_yu6nYVCrEdyqzLG48ixyqA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_yzPGsFCrEdyqzLG48ixyqA" name="msgNumber" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_yzryoFCrEdyqzLG48ixyqA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_yzryoVCrEdyqzLG48ixyqA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_y2EYQFCrEdyqzLG48ixyqA" name="length" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_y2X6QFCrEdyqzLG48ixyqA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_y2X6QVCrEdyqzLG48ixyqA" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_N361AFCsEdyqzLG48ixyqA" name="MessageWithHeader">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_d_xCUFCsEdyqzLG48ixyqA" annotatedElement="_N361AFCsEdyqzLG48ixyqA">
+ <body>This subtype of MessageBuffer adds a MessageHeader at the beginning.&#xD;
+For the sake of efficiency, the storage of the header is mapped directly&#xD;
+into the buffer (works only for homogeneous architectures).</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_TmRe8FCsEdyqzLG48ixyqA" general="_LbxUEDRPEdy1p4IpsoZYqA"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_l2PZ4FCtEdyqzLG48ixyqA" name="getHeader" specification="_JEUGoFCtEdyqzLG48ixyqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_rf6MICBbEeOMKsPXBVC0DA" name="param_0" type="_ZiVqMFCrEdyTutVzffQTmQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rgbwkCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rgnWwCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> return (MessageHeader *) m_buffer;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_nd9loFCtEdyqzLG48ixyqA" name="setMsgType" specification="__McpoFCsEdyqzLG48ixyqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_rhF34CBbEeOMKsPXBVC0DA" name="msgType">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rhncUCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rhzCgCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> getHeader ()->msgType = msgType;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_o1lf4FCtEdyqzLG48ixyqA" name="isFromLocalZone" specification="_V5vg8FCtEdyqzLG48ixyqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_riEIQCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rilssCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rixS4CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> return (getHeader ()->sender == ProDesc::getZoneNumber ());</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_4CE4MVCtEdyqzLG48ixyqA" name="MessageWithHeader" specification="_i3atwFCsEdyqzLG48ixyqA">
+ <language>C/C++</language>
+ <body> m_data_start += sizeof (MessageHeader);&#xD;
+ reset ();&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_9REFkVCtEdyqzLG48ixyqA" name="MessageWithHeader" specification="_cxNvEFCtEdyqzLG48ixyqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_rjH4MCBbEeOMKsPXBVC0DA" name="dummy" type="_Nz2RgFClEdyTutVzffQTmQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rjvjQCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rj7JcCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> m_data_start += sizeof (MessageHeader);</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="__L2-UVCtEdyqzLG48ixyqA" name="MessageWithHeader" specification="_k-Am0FCsEdyqzLG48ixyqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_rkMPMCBbEeOMKsPXBVC0DA" name="msg" type="_N361AFCsEdyqzLG48ixyqA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rktzoCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rk5Z0CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body></body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_A-TzYFCuEdyqzLG48ixyqA" name="initZoneNumber" specification="_44le4FCsEdyqzLG48ixyqA">
+ <language>C/C++</language>
+ <body> getHeader ()->sender = ProDesc::getZoneNumber ();</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_i3atwFCsEdyqzLG48ixyqA" name="MessageWithHeader" method="_4CE4MVCtEdyqzLG48ixyqA"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_k-Am0FCsEdyqzLG48ixyqA" name="MessageWithHeader" method="__L2-UVCtEdyqzLG48ixyqA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_m3yL4FCsEdyqzLG48ixyqA" annotatedElement="_k-Am0FCsEdyqzLG48ixyqA">
+ <body>define a copy constructor (which does nothing besides calling the&#xD;
+ copy constructor of the super class)</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_sZUh0FCsEdyqzLG48ixyqA" name="msg" type="_N361AFCsEdyqzLG48ixyqA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sZ6XsFCsEdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_saEIsFCsEdyqzLG48ixyqA" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_44le4FCsEdyqzLG48ixyqA" name="initZoneNumber" method="_A-TzYFCuEdyqzLG48ixyqA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_69q8EFCsEdyqzLG48ixyqA" annotatedElement="_44le4FCsEdyqzLG48ixyqA">
+ <body>needs to be called for each allocated instance. The initialization of&#xD;
+ the zone number has been removed from the constructor, since the zone&#xD;
+ number is not defined at compile time [todo: would that be a good&#xD;
+ idea?] and its initialization would not work for statically declared&#xD;
+ messages.&#xD;
+ initZoneNumber is called by Message's init function.</body>
+ </ownedComment>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="__McpoFCsEdyqzLG48ixyqA" name="setMsgType" method="_nd9loFCtEdyqzLG48ixyqA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_BjahAFCtEdyqzLG48ixyqA" annotatedElement="__McpoFCsEdyqzLG48ixyqA">
+ <body>set the message type (see MsgType constant definition in&#xD;
+ ToChannel</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_FWns4FCtEdyqzLG48ixyqA" name="msgType">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FXEY0FCtEdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FXNiwFCtEdyqzLG48ixyqA" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_JEUGoFCtEdyqzLG48ixyqA" name="getHeader" method="_l2PZ4FCtEdyqzLG48ixyqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KUMaIFCtEdyqzLG48ixyqA" name="param_0" type="_ZiVqMFCrEdyTutVzffQTmQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KUyQAFCtEdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KU8BAFCtEdyqzLG48ixyqA" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_V5vg8FCtEdyqzLG48ixyqA" name="isFromLocalZone" method="_o1lf4FCtEdyqzLG48ixyqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ZPvMYFCtEdyqzLG48ixyqA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ZQCHUFCtEdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ZQVpUFCtEdyqzLG48ixyqA" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_cxNvEFCtEdyqzLG48ixyqA" name="MessageWithHeader" visibility="protected" method="_9REFkVCtEdyqzLG48ixyqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_eTRXsFCtEdyqzLG48ixyqA" name="dummy" type="_Nz2RgFClEdyTutVzffQTmQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eTuDoFCtEdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eUA-kFCtEdyqzLG48ixyqA" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_YWeekFCsEdyqzLG48ixyqA" name="FromMessageWithHeadertoMessageHeader" client="_N361AFCsEdyqzLG48ixyqA" supplier="_ZiVqMFCrEdyTutVzffQTmQ"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_bWmnsFCsEdyqzLG48ixyqA" name="FromMessageWithHeadertoProDesc" client="_N361AFCsEdyqzLG48ixyqA" supplier="_oSgIME_BEdy2tpS719xBwQ"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_LGiAkFCuEdyqzLG48ixyqA" name="Fromp_CommunicationtoBaseTypes" client="_M5gBkFCDEdy2tpS719xBwQ" supplier="_0TXx4DUOEdy0feurbW0fyQ"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_sq-yMFCvEdyqzLG48ixyqA" name="SharedMemory">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_UCsbkFC0EdyqzLG48ixyqA" name="shmSize" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_UC_WgFC0EdyqzLG48ixyqA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_UDIgcFC0EdyqzLG48ixyqA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_qM2woFC0EdyqzLG48ixyqA" name="m_name" visibility="private" type="_sQ1JADO0EdyG-pUz-bb-Lg" isUnique="false">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w0M4EFC0EdyqzLG48ixyqA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w0M4EVC0EdyqzLG48ixyqA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_qTs_gFC0EdyqzLG48ixyqA" name="m_mutex" visibility="private" isUnique="false">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0DeQcFC0EdyqzLG48ixyqA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0DoBcFC0EdyqzLG48ixyqA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_VBgXwFC1EdyqzLG48ixyqA" name="m_key" visibility="private" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VBzSsFC1EdyqzLG48ixyqA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VB9DsFC1EdyqzLG48ixyqA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_VL8GIFC1EdyqzLG48ixyqA" name="m_id" visibility="private" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VMYyEFC1EdyqzLG48ixyqA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VMYyEVC1EdyqzLG48ixyqA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_VPz5gFC1EdyqzLG48ixyqA" name="classKey" visibility="private" isStatic="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VQG0cFC1EdyqzLG48ixyqA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VQQlcFC1EdyqzLG48ixyqA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_BbrEYCBSEeOBrb_t_69W4Q" value="13091969"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_gOHaIFC1EdyqzLG48ixyqA" name="m_address00" visibility="private" isUnique="false">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_vzw5UFC1EdyqzLG48ixyqA" annotatedElement="_gOHaIFC1EdyqzLG48ixyqA">
+ <body>start of the shared memory section</body>
+ </ownedComment>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gOkGEFC1EdyqzLG48ixyqA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gOtQAFC1EdyqzLG48ixyqA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_gR1cgFC1EdyqzLG48ixyqA" name="m_address0" visibility="private" isUnique="false">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xgYzMFC1EdyqzLG48ixyqA" annotatedElement="_gR1cgFC1EdyqzLG48ixyqA">
+ <body>start for user data within the shared memory section (after Mutex)</body>
+ </ownedComment>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gSI-gFC1EdyqzLG48ixyqA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gSI-gVC1EdyqzLG48ixyqA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_gVRLAFC1EdyqzLG48ixyqA" name="m_address" visibility="private" isUnique="false">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_zeKHcFC1EdyqzLG48ixyqA" annotatedElement="_gVRLAFC1EdyqzLG48ixyqA">
+ <body>current address for new allocations</body>
+ </ownedComment>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gVkF8FC1EdyqzLG48ixyqA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gVt28FC1EdyqzLG48ixyqA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_46GywFC1EdyqzLG48ixyqA" name="getAddress0" specification="_WZFykFCxEdyqzLG48ixyqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_cth88CBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cuC6UCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_cuN5cCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> return m_address0;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_7UyFcFC1EdyqzLG48ixyqA" name="getName" specification="_gRW4MFCxEdyqzLG48ixyqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_curMcCBbEeOMKsPXBVC0DA" name="param_0" type="_sQ1JADO0EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cvMJ0CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_cvXwACBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> return &amp;m_name;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_80JmcFC1EdyqzLG48ixyqA" name="getMutex" specification="_7F2OYFCxEdyqzLG48ixyqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_cv8XwCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cwX1kCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_cwkC0CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> return m_mutex;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="__3W4wFC1EdyqzLG48ixyqA" name="_key" specification="_KxUW0FC0EdyqzLG48ixyqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_cxB84CBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cxpA4CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_cx0AACBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> return m_key;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_BFvXcFC2EdyqzLG48ixyqA" name="_id" specification="_K3bl4FC0EdyqzLG48ixyqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_cyEesCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cylcECBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_cyxCQCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> return m_id;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_CahZEFC2EdyqzLG48ixyqA" name="_shmSize" specification="_K8DAIFC0EdyqzLG48ixyqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_czBg8CBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_czjscCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_czurkCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> return shmSize;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_DsohMFC2EdyqzLG48ixyqA" name="set_shmSize" specification="_LAqaYFC0EdyqzLG48ixyqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_cz_xUCBbEeOMKsPXBVC0DA" name="cr_operand">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_c0gusCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_c0rt0CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> shmSize = cr_operand;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_VNNcAVC2EdyqzLG48ixyqA" name="SharedMemory" specification="_W9qUsFCwEdyqzLG48ixyqA">
+ <language>C/C++</language>
+ <body> set_shmSize (-1);&#xD;
+ // constructor without args is useful e.g. for use as element of an array&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_ZB5OkVC2EdyqzLG48ixyqA" name="SharedMemory" specification="_ZznOIFCwEdyqzLG48ixyqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_c1BsECBbEeOMKsPXBVC0DA" name="name" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_c1jQgCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_c1uPoCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_c2H4QCBbEeOMKsPXBVC0DA" name="char1">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_c2qDwCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_c21C4CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_c3ApECBbEeOMKsPXBVC0DA" name="size">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_c3hmcCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_c3slkCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_c34LwCBbEeOMKsPXBVC0DA" name="synchro">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_c4ZJICBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_c4qO4CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> set_shmSize (-1);&#xD;
+&#xD;
+ int r;&#xD;
+&#xD;
+#ifdef SYNCHRO_VxWorks&#xD;
+ r = openIntern (char1, 0, 0, size, synchro);&#xD;
+#else&#xD;
+ r = openIntern (char1, O_RDWR | O_CREAT, 0777, size, synchro);&#xD;
+#endif&#xD;
+ if (r == -1)&#xD;
+ OSAL_ERROR (&quot;ON open(O_RDWR | O_CREAT, ...)&quot;);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_dMLdsFC2EdyqzLG48ixyqA" name="open" specification="_2k0vsFCwEdyqzLG48ixyqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_c46tkCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_c5c5ECBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_c5n4MCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_c5y3UCBbEeOMKsPXBVC0DA" name="name" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_c6UbwCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_c6fa4CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_c65qkCBbEeOMKsPXBVC0DA" name="char1">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_c7an8CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_c7lnECBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_c7xNQCBbEeOMKsPXBVC0DA" name="oflag">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_c8RjkCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_c8dw0CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_c8pXACBbEeOMKsPXBVC0DA" name="mode">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_c9KUYCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_c9VTgCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_c9g5sCBbEeOMKsPXBVC0DA" name="size">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_c-B3ECBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_c-M2MCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_c-X1UCBbEeOMKsPXBVC0DA" name="synchro">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_c-4ysCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_c_EY4CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> int r;&#xD;
+&#xD;
+ m_name = name;&#xD;
+#ifdef SYNCHRO_VxWorks&#xD;
+ r = openIntern (char1, 0, 0, size, synchro);&#xD;
+#else&#xD;
+ r = openIntern (char1, O_RDWR | O_CREAT, 0777, size, synchro);&#xD;
+#endif&#xD;
+&#xD;
+ return r;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_g6wBMFC2EdyqzLG48ixyqA" name="allocate" specification="_qK9akFCxEdyqzLG48ixyqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_c_WFsCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_c_8ioCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dAHhwCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_dAf8QCBbEeOMKsPXBVC0DA" name="itemSize">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dBA5oCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dBL4wCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> void * r;&#xD;
+&#xD;
+ r = (void *) m_address;&#xD;
+ char * newAddr;&#xD;
+&#xD;
+ newAddr = m_address + itemSize;&#xD;
+ if (newAddr - m_address0 > shmSize)&#xD;
+ {&#xD;
+ BString500 s1 (&quot;allocation fails: shared memory '&quot;);&#xD;
+ OSAL_ERROR (s1 &lt;&lt; m_name.data ()&#xD;
+ &lt;&lt; &quot;' : shmSize= &quot; &lt;&lt; shmSize &lt;&lt; &quot; is too small&quot;);&#xD;
+ }&#xD;
+&#xD;
+ m_address = newAddr;&#xD;
+&#xD;
+ return r;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_pde3QFC2EdyqzLG48ixyqA" name="unlink" specification="_2nJOcFCxEdyqzLG48ixyqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_dBcXcCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dB9U0CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dCIT8CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> int r = 0;&#xD;
+&#xD;
+#if defined SYNCHRO_Linux&#xD;
+ //cout&lt;&lt;&quot;SHM name : &quot;&lt;&lt;m_name.data()&lt;&lt;endl;&#xD;
+ r = shm_unlink (m_name.data ());&#xD;
+ //if(r == -1)&#xD;
+ // PRINTerr(&quot;ON shm_unlink&quot;);&#xD;
+&#xD;
+#elif defined SYNCHRO_Solaris || defined SYNCHRO_Cygwin&#xD;
+ if (m_id != -1)&#xD;
+ {&#xD;
+ r = shmdt (m_address00); // detach&#xD;
+ if (r == -1)&#xD;
+ PRINTerr (&quot;ON shmdt (m_address)&quot;);&#xD;
+ else&#xD;
+ {&#xD;
+ struct shmid_ds semStat;&#xD;
+ r = shmctl (m_id, IPC_STAT, &amp;semStat);&#xD;
+ if (r == -1)&#xD;
+ PRINTerr (&quot;ON shmctl(m_id, IPC_STAT, )&quot;);&#xD;
+ else if (semStat.shm_nattch == 0)&#xD;
+ { /**** Only for the last process coming here ****/&#xD;
+ r = shmctl (m_id, IPC_RMID, NULL);&#xD;
+ if (r == -1)&#xD;
+ PRINTerr (&quot;ON shmctl( ,IPC_RMID, )&quot;);&#xD;
+ //essai DS 7/11/02 pour virer les fichiers *.shmKey&#xD;
+ //mais n'a pas l'air de marcher en Solaris 2.7&#xD;
+ // et gnu&#xD;
+ //::unlink(m_name.data()); // remove the file system entry,&#xD;
+ // BUT so, 'key' would not be const&#xD;
+ }&#xD;
+ }&#xD;
+ }&#xD;
+#endif&#xD;
+&#xD;
+ return r;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rbZVcFC2EdyqzLG48ixyqA" name="SharedMemory" specification="_yFEm4FCwEdyqzLG48ixyqA">
+ <language>C/C++</language>
+ <body> if (m_mutex != NULL) {&#xD;
+ delete m_mutex;&#xD;
+ }&#xD;
+ unlink ();&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_vp258FC2EdyqzLG48ixyqA" name="init1" specification="_35gG0FC0EdyqzLG48ixyqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_dCe5QCBbEeOMKsPXBVC0DA" name="creator">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dC_2oCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dDK1wCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_dDV04CBbEeOMKsPXBVC0DA" name="synchro">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dD2yQCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dEBxYCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_dEMwgCBbEeOMKsPXBVC0DA" name="size">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dEuU8CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dE5UECBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> if (creator)&#xD;
+ {&#xD;
+ /**** Only for the 1st process coming here ****/&#xD;
+ // 4-- check if shared memory is filled with 0&#xD;
+ for (int i = 0; i &lt; size; ++i)&#xD;
+#ifndef SYNCHRO_VxWorks&#xD;
+ if (m_address00[i])&#xD;
+ {&#xD;
+ BString500 s1 (&quot;shm zone not clean. DO : ipcrm -M &quot;);&#xD;
+ OSAL_ERROR (s1 &lt;&lt; (long) m_key);&#xD;
+ }&#xD;
+#else&#xD;
+ m_address00[i] = '\0';&#xD;
+#endif&#xD;
+ // 5- If access synchronisation is wanted, use of a shared mutex&#xD;
+ if (synchro)&#xD;
+ {&#xD;
+ // a mutex needs to be allocated in shared memory&#xD;
+ // and initialised once&#xD;
+ m_mutex = new (allocate (sizeof (SM_Mutex))) SM_Mutex ();&#xD;
+ m_address0 = m_address; // Hide this first item&#xD;
+ }&#xD;
+ }&#xD;
+ else&#xD;
+ {&#xD;
+ /**** for next processes : allocate, but not initialize ****/&#xD;
+ // we need a semaphore to block up to the end of the&#xD;
+ // zone memory initialuzation&#xD;
+ // 5- If access synchronisation is wanted, use of a shared m_mutex&#xD;
+ if (synchro)&#xD;
+ {&#xD;
+ // a mutex needs to be allocated in shared memory&#xD;
+ m_mutex = (SM_Mutex *) allocate (sizeof (SM_Mutex));&#xD;
+ m_address0 = m_address; // Hide this first item&#xD;
+ }&#xD;
+ }&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_3a0U0FC2EdyqzLG48ixyqA" name="openIntern" specification="_4JcAQFC0EdyqzLG48ixyqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_dFJywCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dFqwICBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dF2WUCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_dGBVcCBbEeOMKsPXBVC0DA" name="char1">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dGiS0CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dGtR8CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_dG-XsCBbEeOMKsPXBVC0DA" name="oflag">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dHfVECBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dHqUMCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_dH1TUCBbEeOMKsPXBVC0DA" name="mode">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dIXe0CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dIjFACBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_dIuEICBbEeOMKsPXBVC0DA" name="size">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dJPokCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dJansCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_dJlm0CBbEeOMKsPXBVC0DA" name="synchro">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dKHLQCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dKSKYCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> TRACEpr (VM);&#xD;
+ PR (showI);&#xD;
+&#xD;
+ int r = 0;&#xD;
+&#xD;
+ shmSize = size; // required size&#xD;
+ if (synchro)&#xD;
+ size += sizeof (SM_Mutex); // useful size&#xD;
+&#xD;
+//============================================================&#xD;
+#if defined SYNCHRO_Linux&#xD;
+ // creation of a new segment&#xD;
+ r = m_id = shm_open (m_name.data (), oflag, 00777);&#xD;
+ if (m_id == -1)&#xD;
+ {&#xD;
+ OSAL_ERROR (&quot;ON shm_open&quot;);&#xD;
+ }&#xD;
+ // the returned id is a file descriptor. Thus, the size of the&#xD;
+ // memory identified by the descriptor can be set via ftruncate&#xD;
+ if (ftruncate (m_id, size) == -1)&#xD;
+ OSAL_ERROR (&quot;ON ftruncate&quot;);&#xD;
+ // mapping memory&#xD;
+ m_address00 =&#xD;
+ (char *) mmap (0, size, PROT_READ | PROT_WRITE, MAP_SHARED, m_id, 0);&#xD;
+&#xD;
+ if (m_address00 == MAP_FAILED)&#xD;
+ OSAL_ERROR (&quot;ON mmap&quot;);&#xD;
+ // creation of a mutex at the address m_address00&#xD;
+ m_mutex = (SM_Mutex *) m_address00;&#xD;
+ // address0 : adress of the start of the available segment&#xD;
+ m_address0 = m_address00 + sizeof (SM_Mutex);&#xD;
+ //address : current adress&#xD;
+ m_address = m_address0;&#xD;
+&#xD;
+//============================================================&#xD;
+&#xD;
+#elif SYNCHRO_VxWorks&#xD;
+&#xD;
+ // 'm_name' specified a physical address visiable for the CPU&#xD;
+ /* currently not used&#xD;
+ long memPart; // memory partition&#xD;
+ m_name.setBase (16);&#xD;
+ m_name >> memPart;&#xD;
+ */&#xD;
+&#xD;
+ #ifdef MultiCPU // for multi CPU, with optional VxMP component&#xD;
+ //--- See VxWorks5.3.1 Programmer's Guide, Example 6-3 -------&#xD;
+ // [todo the system partition is preallocated, but where du we see&#xD;
+ // the generation of the kernel? sysMemTop()?]&#xD;
+ {&#xD;
+ SEM_ID localSemId;&#xD;
+ typedef struct shared_buff&#xD;
+ {&#xD;
+ SEM_ID semSmId;&#xD;
+ char buff[]; // [size CHUNK_SIZE ?]&#xD;
+ } SHARED_BUFF;&#xD;
+ SHARED_BUFF *laOfAlSMB; // local address of shared memory block&#xD;
+ SHARED_BUFF *gaOfAlSMB; // global address of shared Memory block&#xD;
+ int objType;&#xD;
+&#xD;
+ // is this the first demand of the 'shared memory block' of the&#xD;
+ // system partition?&#xD;
+ r = smNameFind (m_name.data (), (void **) &amp;gaOfAlSMB, &amp;objType,&#xD;
+ WAIT_FOREVER);&#xD;
+ if (r == -1 &amp;&amp; errno != S_smNameLib_NAME_NOT_FOUND)&#xD;
+ OSAL_ERROR (&quot;ON smNameFind()&quot;);&#xD;
+ if (r == OK)&#xD;
+ {&#xD;
+ // CREATION&#xD;
+ laOfAlSMB = (SHARED_BUFF *) smMemMalloc (size);&#xD;
+ if (laOfAlSMB == NULL)&#xD;
+ OSAL_ERROR (&quot;ON smMemMalloc()&quot;);&#xD;
+ m_address = m_address0 = m_address00 = laOfAlSMB;&#xD;
+&#xD;
+ if (synchro)&#xD;
+ {&#xD;
+ localSemId = semBSmCreate (SEM_QFIFO, SEM_EMPTY);&#xD;
+ if (localSemId == NULL)&#xD;
+ OSAL_ERROR (&quot;ON semBSmCreate()&quot;);&#xD;
+ laOfAlSMB->semSmId = (SEM_ID) htonl ((int) localSemId);&#xD;
+ }&#xD;
+&#xD;
+ r = (char *) smNameAdd (m_name.data (),&#xD;
+ (void *) smObjLocalToGlobal (laOfAlSMB),&#xD;
+ T_SM_BLOCK);&#xD;
+ if (r == -1)&#xD;
+ OSAL_ERROR (&quot;ON smNameAdd()&quot;);&#xD;
+&#xD;
+ if (synchro)&#xD;
+ {&#xD;
+ r = semGive (localSemId);&#xD;
+ if (r == -1)&#xD;
+ OSAL_ERROR (&quot;ON semGive()&quot;);&#xD;
+ }&#xD;
+ init1 (TRUE, synchro, size);&#xD;
+ }&#xD;
+ else&#xD;
+ {&#xD;
+ // RE-UTILISATION&#xD;
+ laOfAlSMB = (SHARED_BUFF *) smObjGlobalToLocal (gaOfAlSMB);&#xD;
+ m_address = m_address0 = m_address00 = laOfAlSMB;&#xD;
+ localSemId = (SEM_ID) ntohl ((int) laOfAlSMB->semSmId);&#xD;
+ if (synchro)&#xD;
+ {&#xD;
+ r = semTake (localSemId, WAIT_FOREVER);&#xD;
+ if (r == -1)&#xD;
+ OSAL_ERROR (&quot;ON semTake()&quot;);&#xD;
+ }&#xD;
+ }&#xD;
+ // ---------------------------------------------------------------&#xD;
+ }&#xD;
+ #else // monoCPU&#xD;
+ #ifdef OutOfHeap&#xD;
+ id = (int) memPartCreate (m_address00, size);&#xD;
+ if (id == NULL)&#xD;
+ OSAL_ERROR (&quot;ON memPartCreate()&quot;);&#xD;
+ m_address00 = memPartAlloc (m_id, size /* -?? */ );&#xD;
+ if (m_address00 == NULL)&#xD;
+ OSAL_ERROR (&quot;ON memPartAlloc()&quot;);&#xD;
+ #else&#xD;
+ m_address00 = new char[size];&#xD;
+ #endif&#xD;
+ m_address = m_address0 = m_address00;&#xD;
+ init1 (TRUE, synchro, size); // 1 seul process (createur)&#xD;
+ #endif&#xD;
+&#xD;
+ // ============================================================&#xD;
+&#xD;
+#elif defined SYNCHRO_Solaris || defined SYNCHRO_Cygwin&#xD;
+ m_name &lt;&lt; &quot;.shmKey&quot;; // add a suffix to recognize it with Ipcrm&#xD;
+&#xD;
+ // 1- Get the key from the name ----------------------------------------&#xD;
+&#xD;
+ // #define GET_KEY 1 //--- version proposed by SUN, BUT&#xD;
+ // the key returned by ftok() is: 0xCHMMMINO&#xD;
+ // CH is the character char1&#xD;
+ // INO is the inodenumber of the file &amp; 0xFFF&#xD;
+ // MMM is the minor unit number of the file system, but if the file&#xD;
+ // system is mounted via NFS, it is not guaranted to find the&#xD;
+ // same minor number after a reboot which prevents us to conserve&#xD;
+ // this number within a script for its destruction&#xD;
+// #define GET_KEY 2 //--- version perso&#xD;
+#define GET_KEY 1&#xD;
+#if GET_KEY == 1&#xD;
+ while (m_key == -1)&#xD;
+ {&#xD;
+ m_key = ftok (m_name.data (), char1);&#xD;
+ if (m_key == -1)&#xD;
+ {&#xD;
+ int fd =::creat (m_name.data (), 00777);&#xD;
+ if (fd == -1)&#xD;
+ {&#xD;
+ BString500 s1 (&quot;ON ::creat('&quot;);&#xD;
+ OSAL_ERROR (s1 &lt;&lt; m_name &lt;&lt; &quot;', 00777)&quot;);&#xD;
+ }&#xD;
+ close (fd);&#xD;
+ }&#xD;
+ }&#xD;
+#else // GET_KEY == 2&#xD;
+ int fd =::creat (m_name.data (), 00777);&#xD;
+ if (fd == -1)&#xD;
+ {&#xD;
+ BString500 s1 (&quot;ON ::creat('&quot;);&#xD;
+ OSAL_ERROR (s1 &lt;&lt; m_name.data () &lt;&lt; &quot;', 00777)&quot;);&#xD;
+ }&#xD;
+ struct stat st;&#xD;
+ if (fstat (fd, &amp;st) == -1) {&#xD;
+ OSAL_ERROR (&quot;ON fstat(fd, &amp;st)&quot;);&#xD;
+ }&#xD;
+&#xD;
+ // inode number is unique inside a filesystem&#xD;
+ m_key = (st.st_ino + classKey) &amp; 0xFFFFFF;&#xD;
+ // (st_ino,st_dev) uniquely identifies regular files&#xD;
+ // but ino_t and dev_t are of type ulong_t: too large for a m_key !&#xD;
+&#xD;
+ m_key |= ((char1 &amp; 0xFF) &lt;&lt; 24);&#xD;
+ // m_key = 0xCHINODEI does not guarantee uniqueness for the same inode on&#xD;
+ // two file systems&#xD;
+ // but ftok() guarantees less (+ dependency de mount NFS ...)&#xD;
+ close (fd);&#xD;
+&#xD;
+#endif //--- GET_KEY&#xD;
+&#xD;
+#define ATT_SHM 2&#xD;
+ // 1 shmget(IPC_CREAT | IPC_EXCL): in case of no error&#xD;
+ // it is for the creator, who makes initializations&#xD;
+ // although it is not the first attached.&#xD;
+&#xD;
+ // 2- Get the shared memory identifier ---------------------------------&#xD;
+&#xD;
+#if ATT_SHM == 1&#xD;
+ r = m_id = shmget (m_key, size, 00777 | IPC_CREAT);&#xD;
+ if (r == -1)&#xD;
+ OSAL_ERROR (&quot;ON shmget(m_key, size, 00777 | IPC_CREAT)&quot;);&#xD;
+&#xD;
+ // 3 - Attach the shared memory to an address in the calling&#xD;
+ // address-space (zone)&#xD;
+ m_address = m_address0 = m_address00 = (char *) shmat (m_id, 0, 0);&#xD;
+ if ((int) m_address0 == -1)&#xD;
+ OSAL_ERROR (&quot;ON shmat(m_id, )&quot;);&#xD;
+&#xD;
+ {&#xD;
+ // CriticalSection. Who is taking it?&#xD;
+ struct shmid_ds stat;&#xD;
+ r = shmctl (m_id, IPC_STAT, &amp;stat);&#xD;
+ if (r == -1)&#xD;
+ OSAL_ERROR (&quot;ON shmctl(shmId, IPC_STAT, )&quot;);&#xD;
+ init1 (stat.shm_nattch &lt; 2, synchro, size);&#xD;
+ }&#xD;
+&#xD;
+#else // ATT_SHM == 2 --------------------------------------------------&#xD;
+ bool creator;&#xD;
+ errno = 0;&#xD;
+ r = m_id = shmget (m_key, size, 00777 | IPC_CREAT | IPC_EXCL);&#xD;
+ if (r == -1)&#xD;
+ {&#xD;
+ if (errno == EEXIST)&#xD;
+ {&#xD;
+ r = m_id = shmget (m_key, size, 0);&#xD;
+ // we know we are not the creator (first who demands) of the zone&#xD;
+ creator = FALSE;&#xD;
+ if (r == -1)&#xD;
+ OSAL_ERROR (&quot;ON shmget(m_key, size, 0)&quot;);&#xD;
+ }&#xD;
+ else&#xD;
+ OSAL_ERROR (&quot;ON shmget(m_key, size, IPC_CREAT | IPC_EXCL)&quot;);&#xD;
+ }&#xD;
+ else&#xD;
+ {&#xD;
+ // For the creator of this shared memory:&#xD;
+ creator = TRUE;&#xD;
+ }&#xD;
+&#xD;
+ // 3 - Attach the shared memory to an address in the calling&#xD;
+ // address-space (zone)&#xD;
+ m_address = m_address0 = m_address00 = (char *) shmat (m_id, 0, 0);&#xD;
+ if ((int) m_address0 == -1)&#xD;
+ OSAL_ERROR (&quot;ON shmat(m_id, )&quot;);&#xD;
+&#xD;
+ init1 (creator, synchro, size);&#xD;
+#endif // ATT_SHM&#xD;
+&#xD;
+#endif // SYNCHRO_Solaris || SYNCHRO_Cygwin&#xD;
+ // ============================================================&#xD;
+&#xD;
+ PR (&quot;for &quot; &lt;&lt; m_name &lt;&lt; &quot; , m_key= &quot; &lt;&lt; (long) m_key&#xD;
+ &lt;&lt; &quot;, required size= &quot; &lt;&lt; shmSize &lt;&lt; &quot;, effective size= &quot;&#xD;
+ &lt;&lt; size &lt;&lt; showI&#xD;
+ &lt;&lt; &quot;, adr00 = &quot; &lt;&lt; (void *) m_address00&#xD;
+ &lt;&lt; &quot;, adr0 = &quot; &lt;&lt; (void *) m_address0&#xD;
+ &lt;&lt; &quot;, adr = &quot; &lt;&lt; (void *) m_address &lt;&lt; showI);&#xD;
+&#xD;
+ return r;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_W9qUsFCwEdyqzLG48ixyqA" name="SharedMemory" method="_VNNcAVC2EdyqzLG48ixyqA"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_ZznOIFCwEdyqzLG48ixyqA" name="SharedMemory" method="_ZB5OkVC2EdyqzLG48ixyqA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_ksGaoFCwEdyqzLG48ixyqA" annotatedElement="_ZznOIFCwEdyqzLG48ixyqA">
+ <body>create a new shared memory segment. The constructor will call the&#xD;
+ method open. See open for a description of the parameters.</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_bUnt4FCwEdyqzLG48ixyqA" name="name" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bU6o0FCwEdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_bVEZ0FCwEdyqzLG48ixyqA" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_bX5rYFCwEdyqzLG48ixyqA" name="char1">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bYVwQFCwEdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_bYfhQFCwEdyqzLG48ixyqA" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_bbLB0FCwEdyqzLG48ixyqA" name="size">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bbej0FCwEdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_bbxewFCwEdyqzLG48ixyqA" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_bev6QFCwEdyqzLG48ixyqA" name="synchro">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bfMmMFCwEdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_bffhIFCwEdyqzLG48ixyqA" name="" value="1"/>
+ <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_i6V2wCBWEeOBrb_t_69W4Q"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_yFEm4FCwEdyqzLG48ixyqA" name="SharedMemory" method="_rbZVcFC2EdyqzLG48ixyqA"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_2k0vsFCwEdyqzLG48ixyqA" name="open" method="_dMLdsFC2EdyqzLG48ixyqA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_4k04kFCwEdyqzLG48ixyqA" annotatedElement="_2k0vsFCwEdyqzLG48ixyqA">
+ <body>The passed name is a path name (which must refer to an existing,&#xD;
+ accessible file). Together with the least significant 8 bits of&#xD;
+ char1 (which must be nonzero) a key for the access is generated.&#xD;
+ &#xD;
+ oflag is not used.&#xD;
+ &#xD;
+ If synchro is TRUE, an instance of class SM_Mutex is place at the&#xD;
+ begin of the segment, increasing its size. The first process&#xD;
+ establishing a connection that to ensure that the segment is&#xD;
+ initialized with zeros.</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_83TaYFCwEdyqzLG48ixyqA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_83m8YFCwEdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8353UFCwEdyqzLG48ixyqA" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_87L00FCwEdyqzLG48ixyqA" name="name" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_87evwFCwEdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_87xqsFCwEdyqzLG48ixyqA" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_8-dLQFCwEdyqzLG48ixyqA" name="char1">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8-53MFCwEdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8_NZMFCwEdyqzLG48ixyqA" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_9CL0sFCwEdyqzLG48ixyqA" name="oflag">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9CogoFCwEdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9CyRoFCwEdyqzLG48ixyqA" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_9F6eIFCwEdyqzLG48ixyqA" name="mode">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9GXKEFCwEdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9GqFAFCwEdyqzLG48ixyqA" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_9JCqoFCwEdyqzLG48ixyqA" name="size">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9JL0kFCwEdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9JVlkFCwEdyqzLG48ixyqA" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_9MK3IFCwEdyqzLG48ixyqA" name="synchro">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9MUoIFCwEdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9MnjEFCwEdyqzLG48ixyqA" name="" value="1"/>
+ <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_8osysCBTEeOBrb_t_69W4Q"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_WZFykFCxEdyqzLG48ixyqA" name="getAddress0" method="_46GywFC1EdyqzLG48ixyqA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Y09YEFCxEdyqzLG48ixyqA" annotatedElement="_WZFykFCxEdyqzLG48ixyqA">
+ <body>return the segment address (if existent) of the current process&#xD;
+ This address is might not be the same for all processes, but all&#xD;
+ addresses point to the same place.</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_bNjAEFCxEdyqzLG48ixyqA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bN_sAFCxEdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_bOJdAFCxEdyqzLG48ixyqA" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_gRW4MFCxEdyqzLG48ixyqA" name="getName" method="_7UyFcFC1EdyqzLG48ixyqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_iRXBEFCxEdyqzLG48ixyqA" name="param_0" type="_sQ1JADO0EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iRgLAFCxEdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iRp8AFCxEdyqzLG48ixyqA" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_qK9akFCxEdyqzLG48ixyqA" name="allocate" method="_g6wBMFC2EdyqzLG48ixyqA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_sf1AMFCxEdyqzLG48ixyqA" annotatedElement="_qK9akFCxEdyqzLG48ixyqA">
+ <body>Returns the address of an element of size itemSize. If the sequence&#xD;
+ of successive allocate calls is the same for all communicating&#xD;
+ processes, they share the same view of the segment organization.&#xD;
+ If there is not enough space for the item, the process is stopped&#xD;
+ with an error message.</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_vhjEwFCxEdyqzLG48ixyqA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_vh_JoFCxEdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_viI6oFCxEdyqzLG48ixyqA" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_vkrRQFCxEdyqzLG48ixyqA" name="itemSize">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_vlH9MFCxEdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_vlRHIFCxEdyqzLG48ixyqA" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_2nJOcFCxEdyqzLG48ixyqA" name="unlink" method="_pde3QFC2EdyqzLG48ixyqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_3ZzacFCxEdyqzLG48ixyqA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3aGVYFCxEdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3aZ3YFCxEdyqzLG48ixyqA" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_7F2OYFCxEdyqzLG48ixyqA" name="getMutex" method="_80JmcFC1EdyqzLG48ixyqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_-rLWUFCxEdyqzLG48ixyqA" name="param_0" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-roCQFCxEdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-rxMMFCxEdyqzLG48ixyqA" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_KxUW0FC0EdyqzLG48ixyqA" name="_key" method="__3W4wFC1EdyqzLG48ixyqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_fYiScFC0EdyqzLG48ixyqA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_fY--YFC0EdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_fZR5UFC0EdyqzLG48ixyqA" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_K3bl4FC0EdyqzLG48ixyqA" name="_id" method="_BFvXcFC2EdyqzLG48ixyqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_iLzEQFC0EdyqzLG48ixyqA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iMF_MFC0EdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iMY6IFC0EdyqzLG48ixyqA" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_K8DAIFC0EdyqzLG48ixyqA" name="_shmSize" method="_CahZEFC2EdyqzLG48ixyqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jpOrkFC0EdyqzLG48ixyqA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jphmgFC0EdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jp0hcFC0EdyqzLG48ixyqA" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_LAqaYFC0EdyqzLG48ixyqA" name="set_shmSize" method="_DsohMFC2EdyqzLG48ixyqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_mW06QFC0EdyqzLG48ixyqA" name="cr_operand">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mXIcQFC0EdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mXRmMFC0EdyqzLG48ixyqA" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_35gG0FC0EdyqzLG48ixyqA" name="init1" visibility="private" method="_vp258FC2EdyqzLG48ixyqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_812sEFC0EdyqzLG48ixyqA" name="creator">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_82TYAFC0EdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_82ch8FC0EdyqzLG48ixyqA" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_84r9oFC0EdyqzLG48ixyqA" name="synchro">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_84-4kFC0EdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_85IpkFC0EdyqzLG48ixyqA" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_87XeMFC0EdyqzLG48ixyqA" name="size">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_87qZIFC0EdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8797IFC0EdyqzLG48ixyqA" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_4JcAQFC0EdyqzLG48ixyqA" name="openIntern" visibility="private" method="_3a0U0FC2EdyqzLG48ixyqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_OigUAFC1EdyqzLG48ixyqA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Oi8_8FC1EdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_OjZr4FC1EdyqzLG48ixyqA" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_FrNjMFC1EdyqzLG48ixyqA" name="char1">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FrgeIFC1EdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FrzZEFC1EdyqzLG48ixyqA" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_FuC0wFC1EdyqzLG48ixyqA" name="oflag">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FuVvsFC1EdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FuoqoFC1EdyqzLG48ixyqA" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_FxBQQFC1EdyqzLG48ixyqA" name="mode">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FxUyQFC1EdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FxntMFC1EdyqzLG48ixyqA" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_FztX4FC1EdyqzLG48ixyqA" name="size">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_F0JcwFC1EdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_F0TNwFC1EdyqzLG48ixyqA" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_F2Y4cFC1EdyqzLG48ixyqA" name="synchro">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_F2rzYFC1EdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_F2-uUFC1EdyqzLG48ixyqA" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_xp3uEFCvEdyqzLG48ixyqA" name="FromSharedMemorytop_Communication" client="_sq-yMFCvEdyqzLG48ixyqA" supplier="_M5gBkFCDEdy2tpS719xBwQ"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_0vA6EFCvEdyqzLG48ixyqA" name="FromSharedMemorytoBString50" client="_sq-yMFCvEdyqzLG48ixyqA" supplier="_sQ1JADO0EdyG-pUz-bb-Lg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_oT0acC-OEdySSa8YESkO2w" name="ProcessingResources">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_XAe9ENqrEeKrRY-H1kHnNA" annotatedElement="_ONsuENqFEeKrRY-H1kHnNA">
+ <body>Dependency is problematic, since pthread is not used by all OS</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_-HeCsDj_Edy0Rd6V_tf1-Q" name="Thread">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_YnsrIE_gEdy2tpS719xBwQ" annotatedElement="_-HeCsDj_Edy0Rd6V_tf1-Q">
+ <body>Abstraction of an operating system thread. It is possible to control&#xD;
+priorities and the thread's lifecycle (suspend/resume/exit).&#xD;
+&#xD;
+\code&#xD;
+Example:&#xD;
+&#xD;
+class Run {&#xD;
+void run ();&#xD;
+static void run_fct (void * arg);&#xD;
+}&#xD;
+&#xD;
+void Run::run_fct (void * arg)&#xD;
+{&#xD;
+((Run*) myThreadCode)->run ();&#xD;
+}&#xD;
+&#xD;
+void Run::run ()&#xD;
+{&#xD;
+// do something ...&#xD;
+}&#xD;
+&#xD;
+Thread myThread (&quot;MyThread&quot;);&#xD;
+myThread.exec (myThreadCode);&#xD;
+\endcode</body>
+ </ownedComment>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_nyBcEE_nEdy2tpS719xBwQ" name="m_policy" visibility="private" isStatic="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nyn5AE_nEdy2tpS719xBwQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nyn5AU_nEdy2tpS719xBwQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_0XDXgCBREeOBrb_t_69W4Q" value="SCHED_RR"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_3Q0FUE_nEdy2tpS719xBwQ" name="m_threadAttributes" visibility="private" type="_Saw1YDkDEdyuzNpSiGPe4w" isUnique="false" association="_3QgjUE_nEdy2tpS719xBwQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_5faq4E_nEdy2tpS719xBwQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_5fkb4E_nEdy2tpS719xBwQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_-6w5QE_nEdy2tpS719xBwQ" name="m_name" visibility="private" type="_sQ1JADO0EdyG-pUz-bb-Lg" isUnique="false">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_EAp1AE_oEdy2tpS719xBwQ" annotatedElement="_-6w5QE_nEdy2tpS719xBwQ">
+ <body>A thread also has a name that should be provided by the constructor&#xD;
+It is primarily used to enhance the readability of the trace output.</body>
+ </ownedComment>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_B6PiIE_oEdy2tpS719xBwQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_B6ZTIE_oEdy2tpS719xBwQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_LLUE4U_oEdy2tpS719xBwQ" name="m_semaphore" visibility="private" type="_D8njME_gEdy2tpS719xBwQ" isUnique="false" association="_LLUE4E_oEdy2tpS719xBwQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_RAAAUE_oEdy2tpS719xBwQ" annotatedElement="_LLUE4U_oEdy2tpS719xBwQ">
+ <body>The semaphore is used for different purposes in vxWorks and&#xD;
+Linux/Solaris, respectively.</body>
+ </ownedComment>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MpCnIE_oEdy2tpS719xBwQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MpMYIE_oEdy2tpS719xBwQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_UO0swE_oEdy2tpS719xBwQ" name="m_startRoutine" visibility="private" type="_kor6MFdhEd-9TNLvplUFDQ" isUnique="false">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_UPbJsE_oEdy2tpS719xBwQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_UPbJsU_oEdy2tpS719xBwQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Z47I0E_oEdy2tpS719xBwQ" name="m_startArg" visibility="private" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gFRCQFnmEd-9TNLvplUFDQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gFazQFnmEd-9TNLvplUFDQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_fsj7YE_oEdy2tpS719xBwQ" name="m_threadId" visibility="private" type="_l2xogFdiEd-9TNLvplUFDQ" isUnique="false">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ftKYUE_oEdy2tpS719xBwQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ftKYUU_oEdy2tpS719xBwQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_jQG6oE_oEdy2tpS719xBwQ" name="m_joined" visibility="private" isUnique="false">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_mXosQE_oEdy2tpS719xBwQ" annotatedElement="_jQG6oE_oEdy2tpS719xBwQ">
+ <body>in case, of a joinable thread, this attribute indicates whether the&#xD;
+thread has already been joined.</body>
+ </ownedComment>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jQjmkE_oEdy2tpS719xBwQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jQjmkU_oEdy2tpS719xBwQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_qE3L8E_oEdy2tpS719xBwQ" name="m_execPrio" visibility="private" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qFT34E_oEdy2tpS719xBwQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_qFT34U_oEdy2tpS719xBwQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_sbg6QE_oEdy2tpS719xBwQ" name="m_accordID" visibility="private" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sbqEME_oEdy2tpS719xBwQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sbqEMU_oEdy2tpS719xBwQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_u5djYE_oEdy2tpS719xBwQ" name="m_RTthreads" visibility="private" isStatic="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_u56PUE_oEdy2tpS719xBwQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_u56PUU_oEdy2tpS719xBwQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_z3tugFnlEd-9TNLvplUFDQ" name="m_suspendPriority" visibility="private" isStatic="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2uBNQFnlEd-9TNLvplUFDQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2uMMYFnlEd-9TNLvplUFDQ" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_0g4e4E_oEdy2tpS719xBwQ" name="getThreadAttributes" specification="_bvjFgE_jEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_gok2MCBbEeOMKsPXBVC0DA" name="param_0" type="_Saw1YDkDEdyuzNpSiGPe4w" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gpGaoCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gpRZwCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> return m_threadAttributes;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_3mBq4E_oEdy2tpS719xBwQ" name="isDetached" specification="_mdJ3sE_jEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_gpp0QCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gqLYsCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gqWX0CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> return m_threadAttributes.getDetached ();</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_5vt7QE_oEdy2tpS719xBwQ" name="setName" specification="_dS4V8E_iEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_gqndkCBbEeOMKsPXBVC0DA" name="name" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_grIa8CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_grUBICBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> m_name = name;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1BbKsE_pEdy2tpS719xBwQ" name="Thread" specification="_oCK1EE_gEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_grzwYCBbEeOMKsPXBVC0DA" name="name" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gsbbcCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gsmakCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_gtADMCBbEeOMKsPXBVC0DA" name="attrPtr" type="_Saw1YDkDEdyuzNpSiGPe4w">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gthnoCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gtsmwCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_guFBQCBbEeOMKsPXBVC0DA" name="startRoutine" type="_kor6MFdhEd-9TNLvplUFDQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gumlsCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_guxk0CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_gu8j8CBbEeOMKsPXBVC0DA" name="arg">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gveIYCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gvpHgCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_gwBiACBbEeOMKsPXBVC0DA" name="exPrio">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gwjGcCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gwusoCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>TRACEpr (VM);&#xD;
+ PR (&quot;Thread::Thread (...)&quot; &lt;&lt; showI);&#xD;
+&#xD;
+ if (attrPtr != NULL) {&#xD;
+ m_threadAttributes = *attrPtr;&#xD;
+ }&#xD;
+ int r = exec (startRoutine, arg, exPrio);&#xD;
+&#xD;
+ if (r &lt; 0) {&#xD;
+ OSAL_ERROR (&quot;could not exec thread&quot;);&#xD;
+ }&#xD;
+&#xD;
+ set_of_threads.append (this);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_75TogE_pEdy2tpS719xBwQ" name="Thread " specification="_VpnT8E_hEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_gw_LUCBbEeOMKsPXBVC0DA" name="name" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gxgvwCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gxru4CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_gyF-kCBbEeOMKsPXBVC0DA" name="attrPtr" type="_Saw1YDkDEdyuzNpSiGPe4w">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gynjACBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyyiICBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> if (attrPtr != NULL) {&#xD;
+ m_threadAttributes = *attrPtr;&#xD;
+ }&#xD;
+&#xD;
+ set_of_threads.append (this);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_-P0M4E_pEdy2tpS719xBwQ" name="Thread" specification="_vOOWoE_hEdy2tpS719xBwQ">
+ <language>C/C++</language>
+ <body> TRACEpr (VM);&#xD;
+ PR (&quot;Thread::~Thread () : isDetached () = &quot; &lt;&lt; isDetached ()&#xD;
+ &lt;&lt; &quot;, m_joined= &quot; &lt;&lt; m_joined &lt;&lt; showI);&#xD;
+&#xD;
+ if (!isDetached () &amp;&amp; !m_joined) {&#xD;
+ // don't join, if thread hasn't been executed yet.&#xD;
+ if (m_threadId != 0) {&#xD;
+ PR (&quot;really delete thread, m_threadId: &quot; &lt;&lt; m_threadId &lt;&lt; showI);&#xD;
+ join ();&#xD;
+ }&#xD;
+ }&#xD;
+ set_of_threads.eraseValue (this);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_AwmHkE_qEdy2tpS719xBwQ" name="initZ " specification="_5LQAcE_hEdy2tpS719xBwQ">
+ <language>C/C++</language>
+ <body> TRACEpr (VM);&#xD;
+ PR (&quot;Thread::initZ ()&quot; &lt;&lt; showI);&#xD;
+&#xD;
+#if defined THREAD_VxWorks&#xD;
+ bool stackFill = ProDesc::isEnvTrue (&quot;A_StackFill&quot;);&#xD;
+ m_vx_options = VX_FP_TASK | (stackFill ? 0 : VX_NO_STACK_FILL);&#xD;
+#elif defined THREAD_Linux || defined THREAD_POSIX4&#xD;
+ m_suspendPriority = 1; // lowest priority for SCHED_RR/SCHED_FIFO&#xD;
+#endif&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_DjaNcE_qEdy2tpS719xBwQ" name="entryRoutC" specification="_-xoaIE_hEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_gziJACBbEeOMKsPXBVC0DA" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0DGYCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0OskCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_g0nHECBbEeOMKsPXBVC0DA" name="arg">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1IEcCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1TqoCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>// blocked by default&#xD;
+modifySigMask (SIG_BLOCK, SIGRTMIN);&#xD;
+((Thread*) arg)->entryRoutine ();&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_FyBaEE_qEdy2tpS719xBwQ" name="getId" specification="_S8E6ME_iEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_g1yLwCBbEeOMKsPXBVC0DA" name="param_0" type="_l2xogFdiEd-9TNLvplUFDQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2TJICBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2eIQCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>#if defined THREAD_POSIX4&#xD;
+ return pthread_self ();&#xD;
+&#xD;
+#elif defined THREAD_Solaris&#xD;
+ return thr_self ();&#xD;
+&#xD;
+#elif defined THREAD_VxWorks //-VxW&#xD;
+ return taskIdSelf ();&#xD;
+#endif&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_IEyt8E_qEdy2tpS719xBwQ" name="getName" specification="_dG0P4E_iEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_g2vOACBbEeOMKsPXBVC0DA" name="name" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g3QLYCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g3bKgCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> ThreadId id = getId ();&#xD;
+ for (int i = 0; i &lt; set_of_threads.size (); i++) {&#xD;
+ if (set_of_threads.get(i)->m_threadId == id) {&#xD;
+ return set_of_threads.get(i)->m_name;&#xD;
+ }&#xD;
+ }&#xD;
+ return threadName_main;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_LK1R0E_qEdy2tpS719xBwQ" name="getPriority" specification="_GnaOIE_jEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_g37g0CBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g4ceMCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g4ndUCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> TRACEpr (VM);&#xD;
+ PR (&quot;Thread::getPriority ()&quot; &lt;&lt; showI);&#xD;
+&#xD;
+ int priority;&#xD;
+&#xD;
+#if defined THREAD_POSIX4&#xD;
+ SchedParam schedParam;&#xD;
+ int policy;&#xD;
+ if (pthread_getschedparam (getId (), &amp;policy, &amp;schedParam)) {&#xD;
+ OSAL_ERROR (&quot;ON pthread_getschedparam(...)&quot;);&#xD;
+ }&#xD;
+ priority = schedParam.sched_priority;&#xD;
+&#xD;
+#elif defined THREAD_Solaris&#xD;
+&#xD;
+ // errno= thr_getprio(thr_self(), &amp;pri);&#xD;
+ // if (errno) OSAL_ERROR(&quot;ON thr_getprio()&quot;);&#xD;
+&#xD;
+ pcparms_t params;&#xD;
+ params.pc_cid = PC_CLNULL;&#xD;
+ long l;&#xD;
+ l = priocntl (P_LWPID, _lwp_self (), PC_GETPARMS, (caddr_t) &amp; params);&#xD;
+ if (l == -1L)&#xD;
+ OSAL_ERROR (&quot;ON priocntl( , PC_GETPARMS, )&quot;);&#xD;
+&#xD;
+ rtparms_t *rtParms = (rtparms_t *) params.pc_clparms;&#xD;
+ prio = rtParms->rt_pri;&#xD;
+&#xD;
+#elif defined THREAD_VxWorks&#xD;
+ if (taskPriorityGet (taskIdSelf (), &amp;prio)) //-VxW&#xD;
+ OSAL_ERROR (&quot;ON taskPriorityGet()&quot;);&#xD;
+#endif&#xD;
+&#xD;
+ return priority;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_ONl4ME_qEdy2tpS719xBwQ" name="setPriority" specification="_Gzx2ME_jEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_g438ACBbEeOMKsPXBVC0DA" name="prio">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g5ZgcCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g5kfkCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> TRACEpr (VM);&#xD;
+ PR (&quot;Thread::setPriority (&quot; &lt;&lt; prio &lt;&lt; &quot;), old prio: &quot;&#xD;
+ &lt;&lt; getPriority () &lt;&lt; showI);&#xD;
+&#xD;
+#if defined THREAD_POSIX4&#xD;
+ SchedParam schedParam;&#xD;
+ schedParam.sched_priority = prio;&#xD;
+&#xD;
+ if (pthread_setschedparam (getId (), m_policy, &amp;schedParam)) {&#xD;
+ OSAL_ERROR (&quot;ON pthread_setschedparam (...)&quot;);&#xD;
+ }&#xD;
+&#xD;
+#elif defined THREAD_Solaris&#xD;
+ pcparms_t params;&#xD;
+ params.pc_cid = ProDesc::_classId ();&#xD;
+ long l;&#xD;
+&#xD;
+ rtparms_t *rtParms = (rtparms_t *) params.pc_clparms;&#xD;
+ rtParms->rt_pri = prio;&#xD;
+ rtParms->rt_tqsecs = 0;&#xD;
+ rtParms->rt_tqnsecs = RT_NOCHANGE;&#xD;
+ l = priocntl (P_LWPID, _lwp_self (), PC_SETPARMS, (caddr_t) &amp; params);&#xD;
+ if (l == -1L)&#xD;
+ {&#xD;
+ BString500 tmp (&quot;to pri= &quot;);&#xD;
+ tmp &lt;&lt; prio &lt;&lt; &quot;, ON priocntl( , PC_SETPARMS, )&quot;;&#xD;
+ OSAL_ERROR (tmp);&#xD;
+ }&#xD;
+&#xD;
+#elif defined THREAD_VxWorks&#xD;
+ if (taskPrioritySet (taskIdSelf (), prio)) //-VxW&#xD;
+ OSAL_ERROR (&quot;ON taskPrioritySet()&quot;);&#xD;
+#endif&#xD;
+ PR (&quot; after setting, prio= &quot; &lt;&lt; getPriority () &lt;&lt; showI);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Q3UTgE_qEdy2tpS719xBwQ" name="getPrioMax" specification="_G6VKIE_jEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_g51lUCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g6WisCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g6oPgCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> return ProDesc::getPrioMax ();</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_T9W3YE_qEdy2tpS719xBwQ" name="changeSigMask" specification="_yp_A8E_jEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_g65VQCBbEeOMKsPXBVC0DA" name="how">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g7aSoCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g7lRwCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_g7w38CBbEeOMKsPXBVC0DA" name="newSet" type="_5J3-8FdkEd-9TNLvplUFDQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g8R1UCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g8c0cCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_g812ACBbEeOMKsPXBVC0DA" name="oldSet" type="_5J3-8FdkEd-9TNLvplUFDQ" direction="inout">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g9WzYCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g9hygCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> TRACEpr (VM);&#xD;
+ PR (&quot;Thread::changeSigMask (...)&quot; &lt;&lt; showI);&#xD;
+&#xD;
+#if defined THREAD_POSIX4 || defined THREAD_Linux&#xD;
+ errno = pthread_sigmask (how, newSet, oldSet);&#xD;
+ if (errno) {&#xD;
+ OSAL_ERROR (&quot;ON pthread_sigmask()&quot;);&#xD;
+ }&#xD;
+#elif defined THREAD_Solaris&#xD;
+ errno = thr_sigsetmask (how, newSet, oldSet);&#xD;
+ if (errno) {&#xD;
+ OSAL_ERROR (&quot;ON thr_sigsetmask()&quot;);&#xD;
+ }&#xD;
+#elif defined THREAD_VxWorks&#xD;
+ if (sigprocmask (how, newSet, oldSet)) { //-VxW&#xD;
+ OSAL_ERROR (&quot;ON sigprocmask()&quot;);&#xD;
+ }&#xD;
+#endif&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Wid4cE_qEdy2tpS719xBwQ" name="modifySigMask" specification="_MYHzEE_kEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_g9_skCBbEeOMKsPXBVC0DA" name="how">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g-hRACBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g-sQICBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_g-32UCBbEeOMKsPXBVC0DA" name="signalID">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g_ZawCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g_kZ4CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> sigset_t sigSet;&#xD;
+ if (sigemptyset (&amp;sigSet) == -1) {&#xD;
+ OSAL_ERROR (&quot;ON sigemptyset( )&quot;);&#xD;
+ }&#xD;
+ if (sigaddset (&amp;sigSet, signalID) == -1) { // add 'sig' as a signal&#xD;
+ OSAL_ERROR (&quot;ON sigaddset( )&quot;);&#xD;
+ }&#xD;
+&#xD;
+ Thread::changeSigMask (how, &amp;sigSet, NULL); // modify signal mask&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_ZVR-UE_qEdy2tpS719xBwQ" name="printSigMask" specification="_X5b6IE_kEdy2tpS719xBwQ">
+ <language>C/C++</language>
+ <body> sigset_t sigSet;&#xD;
+ changeSigMask (SIG_UNBLOCK, NULL, &amp;sigSet); // get current signal mask&#xD;
+&#xD;
+ PRINTpr (&quot;signals to block for current thread &quot;);&#xD;
+ PR (&quot; : \n\t\t&quot;);&#xD;
+&#xD;
+ for (int s = 1; s &lt; SIGRTMAX; ++s) {&#xD;
+ if (sigismember (&amp;sigSet, s))&#xD;
+ {&#xD;
+#ifdef SYSTEM_VxWorks&#xD;
+ PR (s &lt;&lt; &quot;, &quot;);&#xD;
+#else&#xD;
+ PR (strsignal (s) &lt;&lt; &quot;, &quot;);&#xD;
+#endif&#xD;
+ }&#xD;
+ }&#xD;
+&#xD;
+ PR (showI);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_b6rTQE_qEdy2tpS719xBwQ" name="exit" specification="_bh5OkE_kEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_g_6_MCBbEeOMKsPXBVC0DA" name="status">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hAb8kCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hAm7sCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> TRACEpr (VM);&#xD;
+ PR (&quot;Thread::exit ()&quot; &lt;&lt; showI);&#xD;
+&#xD;
+#if defined THREAD_POSIX4 || defined THREAD_Linux&#xD;
+ throw (&quot;Thread::exit() : throw()&quot;); // an attempt for exception catching&#xD;
+ pthread_exit (status);&#xD;
+&#xD;
+#elif defined THREAD_Solaris&#xD;
+ throw (&quot;Thread::exit() : throw()&quot;); // an attempt for exception catching&#xD;
+ thr_exit (status);&#xD;
+&#xD;
+#elif defined THREAD_VxWorks&#xD;
+ // throw(&quot;Thread::exit(): throw()&quot;); => 'use -fhandle-exceptions to enable'&#xD;
+ // but VxWorks does not support C/C++ exceptions&#xD;
+ int code = status ? *(int *) status : 0;&#xD;
+ ::exit (code);&#xD;
+#endif&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_hzh9AE_qEdy2tpS719xBwQ" name="exec" specification="_NaGikE_mEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_hBFc0CBbEeOMKsPXBVC0DA" name="startRoutine" type="_kor6MFdhEd-9TNLvplUFDQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hBmaMCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hB4uECBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_hCDtMCBbEeOMKsPXBVC0DA" name="arg">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hClRoCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hCwQwCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_hDIrQCBbEeOMKsPXBVC0DA" name="execPrio">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hDqPsCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hD1O0CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_hEAN8CBbEeOMKsPXBVC0DA" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hEhyYCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hEsxgCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>// NEW 3/01 : added argument execPrio&#xD;
+m_startRoutine = startRoutine; // save pointer for entryRoutine&#xD;
+m_startArg = arg; // save pointer for entryRoutine&#xD;
+m_execPrio = execPrio; // demanded priority&#xD;
+&#xD;
+m_threadAttributes.getDetached ();&#xD;
+&#xD;
+#if defined THREAD_POSIX4&#xD;
+&#xD;
+ pthread_attr_t attributes;&#xD;
+ pthread_attr_init (&amp;attributes);&#xD;
+ pthread_attr_setdetachstate (&amp;attributes,&#xD;
+ (isDetached () ? PTHREAD_CREATE_DETACHED : PTHREAD_CREATE_JOINABLE));&#xD;
+ if (m_threadAttributes.getStackAddr () != NULL) {&#xD;
+#ifdef THREAD_LINUX&#xD;
+ pthread_attr_setstack (&amp;attributes,&#xD;
+ m_threadAttributes.getStackAddr (),&#xD;
+ m_threadAttributes.getStackSize ());&#xD;
+#endif&#xD;
+ }&#xD;
+ else if (m_threadAttributes.getStackSize () != 0) {&#xD;
+ pthread_attr_setstacksize (&amp;attributes,&#xD;
+ m_threadAttributes.getStackSize ());&#xD;
+ }&#xD;
+&#xD;
+ if (execPrio != DefaultExecPrio) {&#xD;
+ if (m_RTthreads) {&#xD;
+ pthread_attr_setinheritsched (&amp;attributes, PTHREAD_EXPLICIT_SCHED);&#xD;
+ }&#xD;
+ pthread_attr_setschedpolicy (&amp;attributes, m_policy);&#xD;
+ sched_param sp;&#xD;
+ sp.sched_priority = execPrio;&#xD;
+ pthread_attr_setschedparam (&amp;attributes, &amp;sp);&#xD;
+ }&#xD;
+&#xD;
+ errno = pthread_create (&amp;m_threadId, &amp;attributes,&#xD;
+ entryRoutC, (void *) this); // , startRoutine, arg&#xD;
+&#xD;
+#elif defined THREAD_Solaris&#xD;
+ long flags = THR_BOUND; // THR_NEW_LWP leads to SIGLWP;&#xD;
+ if (ProDesc::existEnv (&quot;A_ThreadFlags&quot;))&#xD;
+ {&#xD;
+ OS_AL::Util::BString500 s (ProDesc::getEnv (&quot;A_ThreadFlags&quot;));&#xD;
+ if (s == &quot;THR_BOUND&quot;)&#xD;
+ flags = THR_BOUND;&#xD;
+ else if (s == &quot;THR_NEW_LWP&quot;)&#xD;
+ flags = THR_NEW_LWP;&#xD;
+ else&#xD;
+ OSAL_ERROR&#xD;
+ (&quot;Recognised values for A_ThreadFlags : THR_BOUND, THR_NEW_LWP.&quot;);&#xD;
+ }&#xD;
+ if (isDetached ()) {&#xD;
+ flags |= THR_DETACHED;&#xD;
+ }&#xD;
+ errno = thr_create (&#xD;
+ m_threadAttributes.getStackAddr (),&#xD;
+ m_threadAttributes.getStackSize (),&#xD;
+ (PfAvpRvp) entryRoutC, (void *) this, // , startRoutine, arg&#xD;
+ flags, &amp;thrId);&#xD;
+&#xD;
+#elif defined THREAD_VxWorks&#xD;
+ if (execPrio == DefaultExecPrio)&#xD;
+ {&#xD;
+ // priority of this tasks inherits by current tasks&#xD;
+ if (taskPriorityGet (taskIdSelf (), &amp;m_execPrio)) //-VxW&#xD;
+ PRINTerr (&quot;ON taskPriorityGet()&quot;);&#xD;
+ }&#xD;
+ m_threadId =&#xD;
+ taskSpawn (NULL, m_execPrio, m_vx_options,&#xD;
+ (int) m_threadAttributes.getStackSize (),&#xD;
+ (FUNCPTR) entryRoutC, (int) this, 0, 0, 0, 0, 0, 0, 0, 0, 0);&#xD;
+ if (m_threadId != -1)&#xD;
+ errno = 0; // OK&#xD;
+&#xD;
+#endif&#xD;
+ if ((errno &amp;&amp; (errno != EINTR))) {&#xD;
+ if (errno == EPERM) {&#xD;
+ OS_AL::Util::Print warning;&#xD;
+ warning &lt;&lt; &quot;warning: insufficient permission to create rt-thread (must be root)&quot; &lt;&lt; showI;&#xD;
+ if (m_RTthreads)&#xD;
+ {&#xD;
+ warning &lt;&lt; &quot;falling back to non-rt threads&quot; &lt;&lt; showI;&#xD;
+ m_RTthreads = false;&#xD;
+ // retry exec&#xD;
+ // use &quot;return&quot; to avoid that semaphore wait is executed twice&#xD;
+ return exec (startRoutine, arg, execPrio);&#xD;
+ }&#xD;
+ }&#xD;
+ else {&#xD;
+ OSAL_ERROR (OS_AL::Util::BString50 (&quot;thread_create() failed with code &quot;) &lt;&lt; errno);&#xD;
+ }&#xD;
+ }&#xD;
+&#xD;
+#if defined THREAD_POSIX4 || THREAD_Linux || THREAD_Solaris&#xD;
+ // No error on thread_create... continue&#xD;
+ m_semaphore.wait();&#xD;
+ &#xD;
+#endif&#xD;
+TRACEpr (VM);&#xD;
+PR (&quot;return.&quot; &lt;&lt; showI);&#xD;
+return errno;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_k-CxME_qEdy2tpS719xBwQ" name="entryRoutine" specification="_nQJTgE_mEdy2tpS719xBwQ">
+ <language>C/C++</language>
+ <body>#if defined THREAD_Solaris&#xD;
+ lwpId = _lwp_self ();&#xD;
+#endif&#xD;
+#if !defined THREAD_VxWorks // else done in taskSpawn ()&#xD;
+ // synchronization to force the system to start this thread&#xD;
+ // [todo: necessary?]&#xD;
+ m_semaphore.post ();&#xD;
+#endif&#xD;
+&#xD;
+m_startRoutine (m_startArg); // go to user function&#xD;
+&#xD;
+#ifdef THREAD_VxWorks&#xD;
+ if (!isDetached ())&#xD;
+ m_semaphore.post ();&#xD;
+#endif&#xD;
+&#xD;
+m_threadId = (pthread_t) ThExecOUT; // quasi completed&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_npGpQE_qEdy2tpS719xBwQ" name="isMyself" specification="_p66QoE_mEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_hFCvwCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hFkUMCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hFvTUCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>pthread_t currentId;&#xD;
+&#xD;
+#if defined THREAD_POSIX4 || defined THREAD_Linux&#xD;
+ currentId = pthread_self ();&#xD;
+&#xD;
+#elif defined THREAD_Solaris&#xD;
+ currentId = thr_self ();&#xD;
+&#xD;
+#elif defined THREAD_VxWorks&#xD;
+ currentId = taskIdSelf (); //-VxW&#xD;
+#endif&#xD;
+&#xD;
+return (currentId == m_threadId);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_p2-PAE_qEdy2tpS719xBwQ" name="equal" specification="_xR8IkE_mEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_hGAZECBbEeOMKsPXBVC0DA" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hGhWcCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hGs8oCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_hG37wCBbEeOMKsPXBVC0DA" name="otherThread" type="_-HeCsDj_Edy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hHY5ICBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hHkfUCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return (otherThread.m_threadId == m_threadId);</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_vvrHwE_qEdy2tpS719xBwQ" name="resume" specification="_xldhgE_mEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_hIEOkCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hIlzACBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hIwyICBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>TRACEpr (VM);&#xD;
+PR (&quot;Thread::resume ()&quot; &lt;&lt; showI);&#xD;
+&#xD;
+OS_AL::Util::Print pr2;&#xD;
+pr2 &lt;&lt; &quot;in resume&quot; &lt;&lt; showI;&#xD;
+int r = 0;&#xD;
+&#xD;
+if (m_threadId == 0)&#xD;
+ OSAL_ERROR (&quot;call exec() first&quot;);&#xD;
+&#xD;
+if ((int) m_threadId != ThExecOUT)&#xD;
+{ // Execution not completed&#xD;
+#if defined THREAD_POSIX4&#xD;
+ // version that uses priority modification&#xD;
+ SchedParam schedParam;&#xD;
+ schedParam.sched_priority = m_execPrio;&#xD;
+ r = pthread_setschedparam (m_threadId, m_policy, &amp;schedParam);&#xD;
+&#xD;
+ if (r &amp;&amp; r != ESRCH) {&#xD;
+ OS_AL::Util::Print pr;&#xD;
+ pr &lt;&lt; &quot;Thread::resume: cannot change thread priority. Are you root?&quot;&#xD;
+ &lt;&lt; showI;&#xD;
+ }&#xD;
+&#xD;
+#elif defined THREAD_Solaris&#xD;
+ r = thr_continue (m_threadId);&#xD;
+ // only ESRCH is possible&#xD;
+&#xD;
+#elif defined THREAD_VxWorks&#xD;
+ if (taskResume (m_threadId) == -1) { //-VxW&#xD;
+ r = errno;&#xD;
+ }&#xD;
+ else {&#xD;
+ r = 0;&#xD;
+ }&#xD;
+&#xD;
+#endif&#xD;
+}&#xD;
+else {&#xD;
+ r = 0; // Execution has been completed&#xD;
+}&#xD;
+&#xD;
+return r;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_y4ZMME_qEdy2tpS719xBwQ" name="suspend" specification="_xsdhYE_mEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_hJH-gCBbEeOMKsPXBVC0DA" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hJo74CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hJz7ACBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>TRACEpr (VM);&#xD;
+PR (&quot;Thread::suspend ()&quot; &lt;&lt; showI);&#xD;
+&#xD;
+int r = 0;&#xD;
+&#xD;
+if (m_threadId == 0) {&#xD;
+ OSAL_ERROR (&quot;Thread::suspend (): call exec() first&quot;);&#xD;
+}&#xD;
+OS_AL::Util::Print pr2;&#xD;
+pr2 &lt;&lt; &quot;in suspend&quot; &lt;&lt; showI;&#xD;
+&#xD;
+if ((int) m_threadId != ThExecOUT)&#xD;
+{&#xD;
+#if defined THREAD_POSIX4 || defined THREAD_Linux&#xD;
+ // suspend by setting priority to a low value. Only works for root&#xD;
+ SchedParam schedParam;&#xD;
+ schedParam.sched_priority = m_suspendPriority;&#xD;
+&#xD;
+ if (pthread_setschedparam (m_threadId, m_policy, &amp;schedParam) != 0) {&#xD;
+ OS_AL::Util::Print pr2;&#xD;
+ pr2 &lt;&lt; &quot;Thread::suspend: cannot change thread priority. Are you root?&quot;&#xD;
+ &lt;&lt; showI;&#xD;
+ }&#xD;
+#elif defined THREAD_Solaris&#xD;
+ // version with real suspension:&#xD;
+ r = thr_suspend (m_threadId);&#xD;
+ // only ESRCH is possible&#xD;
+#elif defined THREAD_VxWorks&#xD;
+ if (taskSuspend (m_threadId) == -1) { //-VxW&#xD;
+ r = errno;&#xD;
+ }&#xD;
+ else {&#xD;
+ r = 0;&#xD;
+ }&#xD;
+#endif&#xD;
+}&#xD;
+else {&#xD;
+ OSAL_ERROR (&quot;Execution has been completed.&quot;);&#xD;
+}&#xD;
+return r;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1UZ7oE_qEdy2tpS719xBwQ" name="runBackground" specification="_x0gqIE_mEdy2tpS719xBwQ">
+ <language>C/C++</language>
+ <body>TRACEpr (VM);&#xD;
+PR (&quot;Thread::runBackground ()&quot; &lt;&lt; showI);&#xD;
+&#xD;
+OS_AL::Util::Print pr2;&#xD;
+pr2 &lt;&lt; &quot;run background&quot; &lt;&lt; showI;&#xD;
+if (m_threadId == 0) {&#xD;
+ OSAL_ERROR (&quot;Tread::runBackground (): call exec() first&quot;);&#xD;
+}&#xD;
+&#xD;
+if ((int) m_threadId != ThExecOUT) {&#xD;
+ int backgroundPriority = 0; // background priority&#xD;
+ setPriority (backgroundPriority);&#xD;
+}&#xD;
+else {&#xD;
+ OSAL_ERROR (&quot;Execution has been completed.&quot;);&#xD;
+}&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_4Z_zkE_qEdy2tpS719xBwQ" name="join" specification="_x7XgEE_mEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_hKKgUCBbEeOMKsPXBVC0DA" name="status" direction="inout">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hKsEwCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hK3D4CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>TRACEpr (VM);&#xD;
+PR (&quot;Thread::join (...)&quot; &lt;&lt; showI);&#xD;
+&#xD;
+if ((int) m_threadId != ThExecOUT)&#xD;
+{&#xD;
+ int r;&#xD;
+&#xD;
+ if (isDetached ()) {&#xD;
+ errno = EINVAL; // join is forbiden (and not necessary)&#xD;
+ }&#xD;
+ else { // attached&#xD;
+ if (m_joined) {&#xD;
+ errno = EINVAL; // already joined&#xD;
+ }&#xD;
+ else {&#xD;
+#if defined THREAD_POSIX4 || defined THREAD_Linux&#xD;
+ PR (&quot;join thread 1&quot; &lt;&lt; showI);&#xD;
+ // if (pthread_equal (m_threadId, pthread_self ()) == 0)&#xD;
+ {&#xD;
+ PR (&quot;join thread 2&quot; &lt;&lt; showI);&#xD;
+ r = errno = pthread_join (m_threadId, status);&#xD;
+ }&#xD;
+#elif defined THREAD_Solaris&#xD;
+ errno = 0;&#xD;
+ r = errno = thr_join (m_threadId, NULL, status);&#xD;
+&#xD;
+#elif defined THREAD_VxWorks&#xD;
+ m_semaphore.wait ();&#xD;
+ m_joined = true;&#xD;
+#endif&#xD;
+ &#xD;
+#if defined THREAD_POSIX4 || defined THREAD_Linux || defined THREAD_Solaris&#xD;
+ if (r == 0) {&#xD;
+ m_joined = true;&#xD;
+ }&#xD;
+#endif&#xD;
+ }&#xD;
+ }&#xD;
+ if (errno &amp;&amp; (errno != ESRCH)) {&#xD;
+ OSAL_ERROR (&quot;join of threads failed&quot;);&#xD;
+ }&#xD;
+}&#xD;
+// else Execution has been completed. OK.&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_7VJ9IE_qEdy2tpS719xBwQ" name="cancel" specification="_yChQ8E_mEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_hLVlACBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hL2iYCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hMBhgCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> TRACEpr (VM);&#xD;
+ PR (&quot;Thread::cancel ()&quot; &lt;&lt; showI);&#xD;
+&#xD;
+ int r;&#xD;
+&#xD;
+ if (m_threadId == 0)&#xD;
+ OSAL_ERROR (&quot;call exec() firstly.&quot;);&#xD;
+&#xD;
+ if ((int) m_threadId != ThExecOUT)&#xD;
+ {&#xD;
+#if defined THREAD_POSIX4 || defined THREAD_Linux&#xD;
+ // treat as well? setCancelState(), setCancelType(), testCancel(),&#xD;
+ // cleanupPush(), cleanupPop() ??&#xD;
+ r = errno = pthread_cancel (m_threadId);&#xD;
+#elif defined THREAD_Solaris&#xD;
+ r = errno = thr_kill (m_threadId, CancelThSIG);&#xD;
+&#xD;
+#elif defined THREAD_VxWorks&#xD;
+ // use taskSafe() and taskUnsafe() ??&#xD;
+ r = taskDelete (m_threadId);&#xD;
+&#xD;
+#endif&#xD;
+&#xD;
+ if (errno)&#xD;
+ {&#xD;
+ OS_AL::Util::BString500 tmp (&quot;m_threadId= &quot;);&#xD;
+ tmp &lt;&lt; m_threadId;&#xD;
+ OSAL_ERROR (tmp);&#xD;
+ }&#xD;
+ }&#xD;
+ else&#xD;
+ r = 0; // Execution has been completed. OK.&#xD;
+&#xD;
+ return r;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_oCK1EE_gEdy2tpS719xBwQ" name="Thread" method="_1BbKsE_pEdy2tpS719xBwQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_NJ3gcE_hEdy2tpS719xBwQ" annotatedElement="_oCK1EE_gEdy2tpS719xBwQ">
+ <body>create a new thread. The passed parameter @param name is used to&#xD;
+identify the thread in the trace files.&#xD;
+&#xD;
+By default, the Thread will block the SIGRTMIN signal which is&#xD;
+used by class Timer</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_srl3QE_gEdy2tpS719xBwQ" name="name" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sr4yME_gEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ssCjME_gEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_suk50E_gEdy2tpS719xBwQ" name="attrPtr" type="_Saw1YDkDEdyuzNpSiGPe4w">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_su30wE_gEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_svBlwE_gEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_sx2QQE_gEdy2tpS719xBwQ" name="startRoutine" type="_kor6MFdhEd-9TNLvplUFDQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_syJyQE_gEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_syS8ME_gEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_s1R-wE_gEdy2tpS719xBwQ" name="arg">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_s1k5sE_gEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_s1uqsE_gEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_s423ME_gEdy2tpS719xBwQ" name="exPrio">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_s5JyIE_gEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_s5ctEE_gEdy2tpS719xBwQ" name="" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_41S0AE_gEdy2tpS719xBwQ" value="DefaultExecPrio"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_VpnT8E_hEdy2tpS719xBwQ" name="Thread " method="_75TogE_pEdy2tpS719xBwQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_hCJScE_hEdy2tpS719xBwQ" annotatedElement="_VpnT8E_hEdy2tpS719xBwQ">
+ <body>create a new thread by passing its name and optionally a&#xD;
+pointer to ThreadAttributes.&#xD;
+&#xD;
+By default, the Thread will block the SIGRTMIN signal which is&#xD;
+used by class Timer</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_X1168E_hEdy2tpS719xBwQ" name="name" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_X2I14E_hEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_X2Sm4E_hEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_X4XqgE_hEdy2tpS719xBwQ" name="attrPtr" type="_Saw1YDkDEdyuzNpSiGPe4w">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_X4rMgE_hEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_X4-HcE_hEdy2tpS719xBwQ" name="" value="1"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_XdUEsCBUEeOBrb_t_69W4Q">
+ <language>C++</language>
+ <body>NULL</body>
+ </defaultValue>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_vOOWoE_hEdy2tpS719xBwQ" name="Thread" method="_-P0M4E_pEdy2tpS719xBwQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_5LQAcE_hEdy2tpS719xBwQ" name="initZ " isStatic="true" method="_AwmHkE_qEdy2tpS719xBwQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_7klPUE_hEdy2tpS719xBwQ" annotatedElement="_5LQAcE_hEdy2tpS719xBwQ">
+ <body>initialize the suspend priority of threads in this zone&#xD;
+and the suspension mode (static method). This method has to&#xD;
+be called during the application startup.</body>
+ </ownedComment>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_-xoaIE_hEdy2tpS719xBwQ" name="entryRoutC" isStatic="true" method="_DjaNcE_qEdy2tpS719xBwQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_a-nNQE_iEdy2tpS719xBwQ" annotatedElement="_-xoaIE_hEdy2tpS719xBwQ">
+ <body>This routine wraps the thread execution (static method)</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_BxQ0AE_iEdy2tpS719xBwQ" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_EPvs4FnmEd-9TNLvplUFDQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_EPywMFnmEd-9TNLvplUFDQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_FeNrIFnmEd-9TNLvplUFDQ" name="arg">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FeNrIlnmEd-9TNLvplUFDQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FeNrIVnmEd-9TNLvplUFDQ" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_S8E6ME_iEdy2tpS719xBwQ" name="getId" isStatic="true" method="_FyBaEE_qEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_UzcEcE_iEdy2tpS719xBwQ" name="param_0" type="_l2xogFdiEd-9TNLvplUFDQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Uzu_YE_iEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Uz4wYE_iEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_dG0P4E_iEdy2tpS719xBwQ" name="getName" isStatic="true" method="_IEyt8E_qEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_h151ME_iEdy2tpS719xBwQ" name="name" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_h2NXME_iEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_h2WhIE_iEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_dS4V8E_iEdy2tpS719xBwQ" name="setName" method="_5vt7QE_oEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_qgiDAE_iEdy2tpS719xBwQ" name="name" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qg098E_iEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_qg-u8E_iEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_GnaOIE_jEdy2tpS719xBwQ" name="getPriority" isStatic="true" method="_LK1R0E_qEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_O4G5AE_jEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_O4Zz8E_jEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_O4jk8E_jEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Gzx2ME_jEdy2tpS719xBwQ" name="setPriority" isStatic="true" method="_ONl4ME_qEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_RuWGUE_jEdy2tpS719xBwQ" name="prio">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_RupoUE_jEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_RuyyQE_jEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_G6VKIE_jEdy2tpS719xBwQ" name="getPrioMax" isStatic="true" method="_Q3UTgE_qEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_T8pw8E_jEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_T89S8E_jEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_T9Gc4E_jEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_bvjFgE_jEdy2tpS719xBwQ" name="getThreadAttributes" method="_0g4e4E_oEdy2tpS719xBwQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_h-J80E_jEdy2tpS719xBwQ" annotatedElement="_bvjFgE_jEdy2tpS719xBwQ">
+ <body>provides access to the thread attributes (also for modification)</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_diu6YE_jEdy2tpS719xBwQ" name="param_0" type="_Saw1YDkDEdyuzNpSiGPe4w" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_djCcYE_jEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_djLmUE_jEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_mdJ3sE_jEdy2tpS719xBwQ" name="isDetached" method="_3mBq4E_oEdy2tpS719xBwQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_rPrLgE_jEdy2tpS719xBwQ" annotatedElement="_mdJ3sE_jEdy2tpS719xBwQ">
+ <body>denotes whether the thread is detached or joinable</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ngEGME_jEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ngXBIE_jEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nggyIE_jEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_yp_A8E_jEdy2tpS719xBwQ" name="changeSigMask" isStatic="true" method="_T9W3YE_qEdy2tpS719xBwQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_2BdTEE_jEdy2tpS719xBwQ" annotatedElement="_yp_A8E_jEdy2tpS719xBwQ">
+ <body>changes the signal mask for the calling thread as described by&#xD;
+the how and newmask arguments. If oldmask is not NULL, the previous&#xD;
+signal mask is stored in the location pointed to by oldmask.&#xD;
+&#xD;
+The meaning of the how and newmask arguments is the same as for&#xD;
+sig-procmask(2). If how is SIG_SETMASK, the signal mask is set to&#xD;
+newmask.&#xD;
+If how is SIG_BLOCK, the signals specified to newmask are added to&#xD;
+the current signal mask.&#xD;
+If how is SIG_UNBLOCK, the signals specified to newmask are removed&#xD;
+from the current signal mask.&#xD;
+Recall that signal masks are set on a per-thread basis, but signal&#xD;
+actions and signal handlers, as set with sigaction(2), are shared&#xD;
+between all threads.</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="__Rod8E_jEdy2tpS719xBwQ" name="how">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__RyO8E_jEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__R7Y4E_jEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="__Um5cE_jEdy2tpS719xBwQ" name="newSet" type="_5J3-8FdkEd-9TNLvplUFDQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__UwqcE_jEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__VDlYE_jEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="__YLx4E_jEdy2tpS719xBwQ" name="oldSet" type="_5J3-8FdkEd-9TNLvplUFDQ" direction="inout">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__YfT4E_jEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__Yod0E_jEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_MYHzEE_kEdy2tpS719xBwQ" name="modifySigMask" isStatic="true" method="_Wid4cE_qEdy2tpS719xBwQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_UEwuoE_kEdy2tpS719xBwQ" annotatedElement="_MYHzEE_kEdy2tpS719xBwQ">
+ <body>similar changeSigMask, used by Main and ServiceRequest classes.&#xD;
+Compared to changeSigMask, it is more convenient to use if a single&#xD;
+signal is modified, since the user does not have to create a set and&#xD;
+add the signal to it.</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_M8x_UE_kEdy2tpS719xBwQ" name="how">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_M87wUE_kEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_M9OrQE_kEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_NA9UsE_kEdy2tpS719xBwQ" name="signalID">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_NBGeoE_kEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_NBQPoE_kEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_X5b6IE_kEdy2tpS719xBwQ" name="printSigMask" method="_ZVR-UE_qEdy2tpS719xBwQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_bh5OkE_kEdy2tpS719xBwQ" name="exit" isStatic="true" method="_b6rTQE_qEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_dhdSkE_kEdy2tpS719xBwQ" name="status">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dhwNgE_kEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dh5XcE_kEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_NaGikE_mEdy2tpS719xBwQ" name="exec" method="_hzh9AE_qEdy2tpS719xBwQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_P7COQE_mEdy2tpS719xBwQ" annotatedElement="_NaGikE_mEdy2tpS719xBwQ">
+ <body>This method initiates the execution of a new thread. The new thread&#xD;
+will start the entryRoutine, which acts as a wrapper for the execution&#xD;
+of the passed startRoutine. The parameter arg will be passed to it&#xD;
+(often a &quot;this&quot; pointer, if a static method is passed).&#xD;
+&#xD;
+The last parameter is the Tasks priority. It is optional, if not&#xD;
+given, the priority has a default value.&#xD;
+&#xD;
+Don't confuse this method with the Task::exec which will execute&#xD;
+periodic tasks.</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_WnJg8E_mEdy2tpS719xBwQ" name="startRoutine" type="_kor6MFdhEd-9TNLvplUFDQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Wncb4E_mEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_WnmM4E_mEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_WqIjgE_mEdy2tpS719xBwQ" name="arg">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WqbecE_mEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_WqlPcE_mEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_WuKH4E_mEdy2tpS719xBwQ" name="execPrio">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WudC0E_mEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Wuv9wE_mEdy2tpS719xBwQ" name="" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_dHC8kE_mEdy2tpS719xBwQ" value="DefaultExecPrio"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_-r98QFnaEd-9TNLvplUFDQ" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BGPmUFnbEd-9TNLvplUFDQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BGQ0cFnbEd-9TNLvplUFDQ" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_nQJTgE_mEdy2tpS719xBwQ" name="entryRoutine" method="_k-CxME_qEdy2tpS719xBwQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_p66QoE_mEdy2tpS719xBwQ" name="isMyself" method="_npGpQE_qEdy2tpS719xBwQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_sG1VoE_mEdy2tpS719xBwQ" annotatedElement="_p66QoE_mEdy2tpS719xBwQ">
+ <body>checks whether the currently executing thread has the same ID as&#xD;
+the one for which this operation is called</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_t6BKgE_mEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t6UsgE_mEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t6d2cE_mEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xR8IkE_mEdy2tpS719xBwQ" name="equal" method="_p2-PAE_qEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_9dk_AE_mEdy2tpS719xBwQ" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9d358E_mEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9eBD4E_mEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_9hJ3cE_mEdy2tpS719xBwQ" name="otherThread" type="_-HeCsDj_Edy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9hl8UE_mEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9hvtUE_mEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xldhgE_mEdy2tpS719xBwQ" name="resume" method="_vvrHwE_qEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_PsMEgE_nEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PsfmgE_nEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PsyhcE_nEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xsdhYE_mEdy2tpS719xBwQ" name="suspend" method="_y4ZMME_qEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_R_arYE_nEdy2tpS719xBwQ" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_R_tmUE_nEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_R_3XUE_nEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_x0gqIE_mEdy2tpS719xBwQ" name="runBackground" method="_1UZ7oE_qEdy2tpS719xBwQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_x7XgEE_mEdy2tpS719xBwQ" name="join" method="_4Z_zkE_qEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_VzWQAE_nEdy2tpS719xBwQ" name="status" direction="inout">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VzpyAE_nEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Vzy78E_nEdy2tpS719xBwQ" name="" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_XUNl0E_nEdy2tpS719xBwQ" value="NULL"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_yChQ8E_mEdy2tpS719xBwQ" name="cancel" method="_7VJ9IE_qEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_hXC8sE_nEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hXWesE_nEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hXfooE_nEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Saw1YDkDEdyuzNpSiGPe4w" name="ThreadAttribute">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_TcVYgE_rEdy2tpS719xBwQ" annotatedElement="_Saw1YDkDEdyuzNpSiGPe4w">
+ <body>Attributes of a thread, i.e. stack information and whether a thread&#xD;
+is detached (becomes independent from initiator) or joinable (it&#xD;
+can be/has to be explicitly joined by the thread initiator).&#xD;
+&#xD;
+=> see pthread documentation</body>
+ </ownedComment>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_6bg4AE_tEdy2tpS719xBwQ" name="m_stackSize" visibility="private" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6b9j8E_tEdy2tpS719xBwQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6b9j8U_tEdy2tpS719xBwQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_9TGJIE_tEdy2tpS719xBwQ" name="m_stackAddress" visibility="private" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9TZEEE_tEdy2tpS719xBwQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9Ti1EE_tEdy2tpS719xBwQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_BBEPsE_uEdy2tpS719xBwQ" name="m_detached" visibility="private" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BBg7oE_uEdy2tpS719xBwQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BBqsoE_uEdy2tpS719xBwQ" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_GyeNoE_uEdy2tpS719xBwQ" name="getStackSize" specification="_f_9RIE_rEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ogWDsCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_og-84CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ohJ8ACBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> return m_stackSize;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_IITYIE_uEdy2tpS719xBwQ" name="setStackAddr" specification="_vxhFYE_rEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ohbBwCBbEeOMKsPXBVC0DA" name="stackAddress">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oh9NQCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oiIMYCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> m_stackAddress = stackAddress;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_J3nZoE_uEdy2tpS719xBwQ" name="getStackAddr" specification="_v5HiME_rEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_oimGcCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ojHq4CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ojTRECBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> return m_stackAddress;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_LQR1sE_uEdy2tpS719xBwQ" name="setDetached" specification="_oN8UUE_tEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ojxLICBbEeOMKsPXBVC0DA" name="detached">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_okSvkCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_okeVwCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> m_detached = detached;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_MoV00E_uEdy2tpS719xBwQ" name="getDetached" specification="_ofORkE_tEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_okvbgCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_olQ_8CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_olb_ECBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> return m_detached;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rbyT4E_uEdy2tpS719xBwQ" name="ThreadAttribute" specification="_YAjKkE_rEdy2tpS719xBwQ">
+ <language>C/C++</language>
+ <body> m_stackAddress = NULL;&#xD;
+#if defined THREAD_POSIX4 || THREAD_Linux&#xD;
+ m_stackSize = 0; // use defaults from system&#xD;
+#else&#xD;
+ m_stackSize = 0x10000; // default values : 64 Kbytes&#xD;
+#endif&#xD;
+ m_detached = true;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_t_GlME_uEdy2tpS719xBwQ" name="setStackSize" specification="_f6SuAE_rEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_olzLcCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_omUv4CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_omfvACBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_omrVMCBbEeOMKsPXBVC0DA" name="stackSize">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_onM5oCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_onYf0CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>#ifdef THREAD_LINUX&#xD;
+ if (stackSize != 0 &amp;&amp; stackSize &lt; PTHREAD_STACK_MIN) {&#xD;
+#else&#xD;
+ if (stackSize != 0) {&#xD;
+#endif&#xD;
+ return -EINVAL;&#xD;
+ }&#xD;
+ else&#xD;
+ {&#xD;
+ m_stackSize = stackSize;&#xD;
+ return 0;&#xD;
+ }&#xD;
+</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_YAjKkE_rEdy2tpS719xBwQ" name="ThreadAttribute" method="_rbyT4E_uEdy2tpS719xBwQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Z482oE_rEdy2tpS719xBwQ" annotatedElement="_YAjKkE_rEdy2tpS719xBwQ">
+ <body>create a thread with default attributes:&#xD;
+- a stack address chosen by the system&#xD;
+- a stack size of 64K in case of Solaris and vxWorks&#xD;
+ or the system default, in case of Linux&#xD;
+- detached</body>
+ </ownedComment>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_f6SuAE_rEdy2tpS719xBwQ" name="setStackSize" method="_t_GlME_uEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jHMH0E_rEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jHfCwE_rEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jHozwE_rEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jLD7ME_rEdy2tpS719xBwQ" name="stackSize">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jLW2IE_rEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jLgnIE_rEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_f_9RIE_rEdy2tpS719xBwQ" name="getStackSize" method="_GyeNoE_uEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_pNKAgE_rEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_pNc7cE_rEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_pNmscE_rEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_vxhFYE_rEdy2tpS719xBwQ" name="setStackAddr" method="_IITYIE_uEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ztpjwE_rEdy2tpS719xBwQ" name="stackAddress">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zt8esE_rEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zuGPsE_rEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_v5HiME_rEdy2tpS719xBwQ" name="getStackAddr" method="_J3nZoE_uEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_2eX-8E_rEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2eq54E_rEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2e0q4E_rEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_oN8UUE_tEdy2tpS719xBwQ" name="setDetached" method="_LQR1sE_uEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_sC6awE_tEdy2tpS719xBwQ" name="detached">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sDNVsE_tEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sDg3sE_tEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_ofORkE_tEdy2tpS719xBwQ" name="getDetached" method="_MoV00E_uEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_w84aYE_tEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w9L8YE_tEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w9e3UE_tEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_oSgIME_BEdy2tpS719xBwQ" name="ProDesc">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_hhJsAE_IEdy2tpS719xBwQ" name="m_argc" visibility="private" isStatic="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hhcm8E_IEdy2tpS719xBwQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hhcm8U_IEdy2tpS719xBwQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_hkukcE_IEdy2tpS719xBwQ" name="m_argv" visibility="private" isStatic="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hlBfYE_IEdy2tpS719xBwQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hlBfYU_IEdy2tpS719xBwQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xFdHYE_IEdy2tpS719xBwQ" name="m_classId" visibility="private" isStatic="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xFwCUE_IEdy2tpS719xBwQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xFwCUU_IEdy2tpS719xBwQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xLHqgE_IEdy2tpS719xBwQ" name="m_sigOnErr" visibility="private" isStatic="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xLalcE_IEdy2tpS719xBwQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xLkWcE_IEdy2tpS719xBwQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xO_d4E_IEdy2tpS719xBwQ" name="m_numberOfProcesses" visibility="private" isStatic="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xPSY0E_IEdy2tpS719xBwQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xPSY0U_IEdy2tpS719xBwQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_sDukgCBTEeOBrb_t_69W4Q" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xSkWUE_IEdy2tpS719xBwQ" name="m_policy" visibility="private" isStatic="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xS3RQE_IEdy2tpS719xBwQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xTBCQE_IEdy2tpS719xBwQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xVsi0E_IEdy2tpS719xBwQ" name="m_prioMin" visibility="private" isStatic="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xWJOwE_IEdy2tpS719xBwQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xWJOwU_IEdy2tpS719xBwQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_X_pdECBREeOBrb_t_69W4Q"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xY-gUE_IEdy2tpS719xBwQ" name="m_prioMax" visibility="private" isStatic="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xZRbQE_IEdy2tpS719xBwQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xZbMQE_IEdy2tpS719xBwQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_UiXd4CBREeOBrb_t_69W4Q"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_XIyUkE_JEdy2tpS719xBwQ" name="m_zoneName" visibility="private" isStatic="true" type="_0AwCEDO0EdyG-pUz-bb-Lg" isUnique="false">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_baOUkE_JEdy2tpS719xBwQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_baOUkU_JEdy2tpS719xBwQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_es7bcE_JEdy2tpS719xBwQ" name="m_zoneNumber" visibility="private" isStatic="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_etOWYE_JEdy2tpS719xBwQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_etYHYE_JEdy2tpS719xBwQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_g5-60CBREeOBrb_t_69W4Q" value="-1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_jLVgcE_JEdy2tpS719xBwQ" name="m_pauseOnErr" visibility="private" isStatic="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jLobYE_JEdy2tpS719xBwQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jLobYU_JEdy2tpS719xBwQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_lNPfwCBREeOBrb_t_69W4Q"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_wzzhQE_JEdy2tpS719xBwQ" name="getArgc" specification="_fBQXkE_HEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_i_fqQCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jABOsCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jAMN0CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return m_argc;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_zW-ooE_JEdy2tpS719xBwQ" name="getArgv" specification="_fRpkAE_HEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jAdTkCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jA-4ACBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jBJ3ICBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return m_argv;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_0-1-UE_JEdy2tpS719xBwQ" name="getArgv" specification="_fMk2wE_HEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jBoYQCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jCLK0CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jCWJ8CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jCvLgCBbEeOMKsPXBVC0DA" name="pos">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jDW2kCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jDicwCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return m_argv[pos];</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_GgAvAE_KEdy2tpS719xBwQ" name="setZoneName" specification="_Qpmc4E_EEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jDy7cCBbEeOMKsPXBVC0DA" name="zoneName" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jEVG8CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jEgGECBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>m_zoneName = zoneName;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_IMMkAE_KEdy2tpS719xBwQ" name="getZoneName" specification="_Qd0qsE_EEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jFAcYCBbEeOMKsPXBVC0DA" name="param_0" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jFiA0CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jFs_8CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return m_zoneName;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_J41E8E_KEdy2tpS719xBwQ" name="getPid" specification="_m11OgE_EEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jGFacCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jGmX0CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jGx-ACBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>#if defined SYSTEM_POSIX4&#xD;
+ return getpid ();&#xD;
+#elif defined SYSTEM_Solaris&#xD;
+ return getpid ();&#xD;
+#elif defined SYSTEM_VxWorks&#xD;
+ return Thread::getMyId ();&#xD;
+#else&#xD;
+ SYSTEM_x_not_defined;&#xD;
+ return -1;&#xD;
+#endif&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_LgsaoE_KEdy2tpS719xBwQ" name="getParentPid" specification="_m8ZJgE_EEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jHDDwCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jHkBICBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jHvnUCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>#if defined SYSTEM_POSIX4&#xD;
+ return getppid ();&#xD;
+#elif defined SYSTEM_Solaris&#xD;
+ return getppid ();&#xD;
+#elif defined SYSTEM_VxWorks&#xD;
+ return -1;&#xD;
+#else&#xD;
+ SYSTEM_x_not_defined;&#xD;
+ return -1;&#xD;
+#endif&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_NcEiME_KEdy2tpS719xBwQ" name="getPauseOnErr" specification="_fWj5ME_HEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jIAGACBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jIiRgCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jItQoCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return m_pauseOnErr;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Q5DmcE_KEdy2tpS719xBwQ" name="getClassId" specification="_fbomcE_HEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jI9vUCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jJfTwCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jJqS4CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return m_classId;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_SYbHcE_KEdy2tpS719xBwQ" name="getNumerOfProcesses" specification="_ffqK0E_HEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jJ7YoCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jKjqwCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jKup4CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return m_numberOfProcesses;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_UKkagE_KEdy2tpS719xBwQ" name="getPolicy" specification="_fkkgAE_HEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jK_voCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jLhUECBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jLs6QCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> return m_policy;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Fuv0sE_LEdy2tpS719xBwQ" name="init" specification="_Wg_Y8E_CEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jL9Y8CBbEeOMKsPXBVC0DA" name="errSig">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jMe9YCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jMqjkCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>TRACEpr (F9);&#xD;
+m_sigOnErr = errSig;&#xD;
+&#xD;
+m_pauseOnErr = isEnvTrue (&quot;A_PauseOnErr&quot;);&#xD;
+errno = 0;&#xD;
+&#xD;
+if (existEnv (&quot;A_NumberOfProcesses&quot;))&#xD;
+{&#xD;
+ m_numberOfProcesses = atoi (getEnv (&quot;A_NumberOfProcesses&quot;));&#xD;
+ if (m_numberOfProcesses &lt; 1)&#xD;
+ {&#xD;
+ OSAL_ERROR&#xD;
+ (&quot;The environment variable 'A_NumberOfProcesses' must be > 0&quot;);&#xD;
+ }&#xD;
+}&#xD;
+&#xD;
+#if defined SYSTEM_Solaris&#xD;
+ pcparms_t params;&#xD;
+ params.pc_cid = PC_CLNULL; // To force update of pc_cid&#xD;
+ long l;&#xD;
+ l = priocntl (P_PID, getPid (), PC_GETPARMS, (caddr_t) &amp; params);&#xD;
+ if (l == -1L)&#xD;
+ OSAL_ERROR (&quot;ON priocntl( , PC_GETPARMS, )&quot;);&#xD;
+ classId = params.pc_cid;&#xD;
+&#xD;
+ pcinfo_t infos;&#xD;
+ infos.pc_cid = classId; // Infos about current process&#xD;
+ l = priocntl ((idtype_t) 0, (id_t) 0, PC_GETCLINFO, (caddr_t) &amp; infos);&#xD;
+ if (l == -1L)&#xD;
+ OSAL_ERROR (&quot;ON priocntl( , PC_GETCLINFO, )&quot;);&#xD;
+&#xD;
+ m_prioMax = 59;&#xD;
+ m_prioMin = 0;&#xD;
+&#xD;
+#else // SYSTEM_POSIX4, SYSTEM_Linux and SYSTEM_VxWorks&#xD;
+&#xD;
+ m_policy = sched_getscheduler (getPid ());&#xD;
+ if (m_policy == -1)&#xD;
+ OSAL_ERROR (&quot;ON sched_getscheduler(myPid)&quot;);&#xD;
+ PR (&quot; Current scheduling policy is &quot;);&#xD;
+ PR ((m_policy == SCHED_FIFO ? &quot;SCHED_FIFO&quot; :&#xD;
+ (m_policy == SCHED_RR ? &quot;SCHED_RR&quot; : &quot;SCHED_OTHER&quot;)));&#xD;
+&#xD;
+ posixPriorityNumbering = true; // for VxWorks, otherwise number inversion&#xD;
+&#xD;
+ m_prioMax = sched_get_priority_max (m_policy);&#xD;
+ if (m_prioMax == -1)&#xD;
+ OSAL_ERROR (&quot;ON sched_get_priority_max()&quot;);&#xD;
+ m_prioMin = sched_get_priority_min (m_policy);&#xD;
+ if (m_prioMin == -1)&#xD;
+ OSAL_ERROR (&quot;ON sched_get_priority_min()&quot;);&#xD;
+&#xD;
+#endif&#xD;
+&#xD;
+PR (&quot;, priority mini for a thread =&quot; &lt;&lt; m_prioMin);&#xD;
+PR (&quot;, priority maxi for a thread =&quot; &lt;&lt; m_prioMax &lt;&lt; showI);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_InEssE_LEdy2tpS719xBwQ" name="existEnv" specification="_Wn__4E_CEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jM7CQCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jNcmsCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jNoM4CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jNzzECBbEeOMKsPXBVC0DA" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jOVXgCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jOg9sCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>bool r = false;&#xD;
+const char *p =::getenv (name);&#xD;
+if (p &amp;&amp; *p != '\0')&#xD;
+ r = true;&#xD;
+&#xD;
+return r;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_K8r5ME_LEdy2tpS719xBwQ" name="getEnv" specification="_WtXBAE_CEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jPGzkCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jPo_ECBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jPz-MCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jQUUgCBbEeOMKsPXBVC0DA" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jQ2gACBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jRBfICBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>// a call to getenv(3C) is standard UNIX&#xD;
+const char *p =::getenv (name);&#xD;
+&#xD;
+// result is &quot;&quot; if name is not found in environment&#xD;
+&#xD;
+return (p ? p : &quot;&quot;);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_NumnME_LEdy2tpS719xBwQ" name="getEnvInt" specification="_Wx1RUE_CEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jRuCsCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jSPnICBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jSbNUCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jSmMcCBbEeOMKsPXBVC0DA" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jTHw4CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jTSwACBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jTzGUCBbEeOMKsPXBVC0DA" name="base">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jUUqwCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jUgQ8CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>int r = 0; // default return value 0 (variable does not exist or empty)&#xD;
+&#xD;
+const char *p = ::getenv (name);&#xD;
+if (p &amp;&amp; *p != '\0')&#xD;
+{&#xD;
+ char *pEnd;&#xD;
+ r = (int) strtol (p, &amp;pEnd, base);&#xD;
+ if (pEnd == p) {&#xD;
+ // the variable exists, but is not numeric&#xD;
+ OS_AL::Util::BString200 s (&quot;Environment variable '&quot;);&#xD;
+ s &lt;&lt; name &lt;&lt; &quot;' should be integer.&quot;;&#xD;
+ OSAL_ERROR (s);&#xD;
+ }&#xD;
+}&#xD;
+&#xD;
+return r;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Qc9D0E_LEdy2tpS719xBwQ" name="isEnvTrue" specification="_W2mckE_CEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jUwvoCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jVS7ICBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jVd6QCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jVo5YCBbEeOMKsPXBVC0DA" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jWKd0CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jWWEACBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>bool r = false; // if variable does not exist&#xD;
+const char *p = ::getenv (name);&#xD;
+if (p) {&#xD;
+ char c = *p;&#xD;
+ if (c == 't' || c == 'T' || // true or TRUE or True or ...&#xD;
+ c == 'y' || c == 'Y') { // yes or YES or Yes or ...&#xD;
+ r = true;&#xD;
+ }&#xD;
+ else if (c == 'f' || c == 'F' || c == 'n' || c == 'N') {&#xD;
+ // false is already assigned&#xD;
+ }&#xD;
+ else {&#xD;
+ OS_AL::Util::BString200 str (name);&#xD;
+ OSAL_ERROR (str &lt;&lt; &quot; is not boolean.&quot;);&#xD;
+ }&#xD;
+}&#xD;
+&#xD;
+return r;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_TRQXcE_LEdy2tpS719xBwQ" name="getCommProcNb" specification="_W8HOsE_CEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jW754CBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jXdeUCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jXpEgCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>if (m_sigOnErr == 0) {&#xD;
+ init ();&#xD;
+}&#xD;
+&#xD;
+return m_numberOfProcesses;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_VJXIkE_LEdy2tpS719xBwQ" name="saveArg" specification="_XA4Z8E_CEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jX6KQCBbEeOMKsPXBVC0DA" name="argc">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jYbusCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jYnU4CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jY5owCBbEeOMKsPXBVC0DA" name="argv">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jZbNMCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jZmzYCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>m_argc = argc;&#xD;
+m_argv = argv;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_XD2fUE_LEdy2tpS719xBwQ" name="setZoneNumber" specification="_EmmlEE_EEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jaFUgCBbEeOMKsPXBVC0DA" name="zoneNumber">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jam48CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jayfICBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>if ((zoneNumber &lt; 0) || (zoneNumber >= m_numberOfProcesses)) {&#xD;
+ OSAL_ERROR (&quot;requires : 0 &lt;= number &lt; numberOfProcesses&quot;);&#xD;
+}&#xD;
+m_zoneNumber = zoneNumber;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Zj4zIE_LEdy2tpS719xBwQ" name="getZoneNumber" specification="_FQU3gE_EEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jbC90CBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jbkiQCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jbvhYCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>if (m_zoneNumber == -1) {&#xD;
+ OSAL_ERROR (&quot;zone number not yet assigned&quot;);&#xD;
+}&#xD;
+&#xD;
+return m_zoneNumber;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_dMM9oE_LEdy2tpS719xBwQ" name="getPrioMax" specification="_nCDsoE_EEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jcAnICBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jciLkCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jctxwCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>if (m_sigOnErr == 0) {&#xD;
+ init ();&#xD;
+}&#xD;
+&#xD;
+return m_prioMax;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_fW7v0E_LEdy2tpS719xBwQ" name="getPrioMin" specification="_nGrG4E_EEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jc-QcCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jdf04CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jdrbECBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>if (m_sigOnErr == 0) {&#xD;
+ init ();&#xD;
+}&#xD;
+&#xD;
+return m_prioMin;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_i-fsYE_LEdy2tpS719xBwQ" name="setMyPriority" specification="_nL4-EE_EEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jd8g0CBbEeOMKsPXBVC0DA" name="prio">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jeesUCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jeqSgCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>int r = 0;&#xD;
+&#xD;
+if (prio &lt; getPrioMin () || prio > getPrioMax ())&#xD;
+{&#xD;
+ OS_AL::Util::BString200 s (&quot;priority = &quot;);&#xD;
+ s &lt;&lt; prio &lt;&lt; &quot; out of range [&quot; &lt;&lt; getPrioMin ()&#xD;
+ &lt;&lt; &quot;, &quot; &lt;&lt; getPrioMax () &lt;&lt; &quot;]&quot;;&#xD;
+ OSAL_ERROR (s);&#xD;
+}&#xD;
+&#xD;
+#ifdef SYSTEM_VxWorks&#xD;
+OSAL_ERROR (&quot;Not available with VxWorks&quot;); //-VxW&#xD;
+// sched_setparam() set a task's priority for VxWorks&#xD;
+// for us, a task is a thread&#xD;
+// VxWorks is mono-process (only 1 address space)&#xD;
+// so inter-process facilities like this one should not be required&#xD;
+&#xD;
+#elif defined SYSTEM_POSIX4&#xD;
+struct sched_param params;&#xD;
+params.sched_priority = prio;&#xD;
+&#xD;
+r = sched_setparam (0, &amp;params);&#xD;
+if (r == -1)&#xD;
+ OSAL_ERROR (&quot;ON sched_setparam()&quot;);&#xD;
+&#xD;
+#elif defined SYSTEM_Linux&#xD;
+if (getPolicy () != SCHED_OTHER)&#xD;
+{&#xD;
+ // SCHED_RR or SCHED_FIFO: use POSIX functions to change static priority&#xD;
+ struct sched_param params;&#xD;
+ params.sched_priority = prio;&#xD;
+ r = sched_setparam (0, &amp;params);&#xD;
+ if (r == -1)&#xD;
+ OSAL_ERROR (&quot;ON sched_setparam()&quot;);&#xD;
+}&#xD;
+else&#xD;
+{&#xD;
+ // TIME-SHARING&#xD;
+ // We have to be super-user to modify the priority&#xD;
+}&#xD;
+#else&#xD;
+if (getPolicy () != SCHED_OTHER)&#xD;
+{ // REAL-TIME&#xD;
+ pcparms_t params;&#xD;
+ params.pc_cid = classId;&#xD;
+ long l;&#xD;
+&#xD;
+ rtparms_t *rtParms = (rtparms_t *) params.pc_clparms;&#xD;
+ rtParms->rt_pri = pri;&#xD;
+ rtParms->rt_tqsecs = 0;&#xD;
+ rtParms->rt_tqnsecs = RT_NOCHANGE;&#xD;
+ l = priocntl (P_PID, getPid (), PC_SETPARMS, (caddr_t) &amp; params);&#xD;
+ if (l == -1L)&#xD;
+ OSAL_ERROR (&quot;ON priocntl( , PC_SETPARMS, )&quot;);&#xD;
+}&#xD;
+else {&#xD;
+ // TIME-SHARING&#xD;
+ // We have to be super-user to modify the priority&#xD;
+}&#xD;
+#endif</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_l17zkE_LEdy2tpS719xBwQ" name="decrMyPriority" specification="_nPwxcE_EEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_je7YQCBbEeOMKsPXBVC0DA" name="decrement">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfdjwCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jfpJ8CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>TRACEpr (F9);&#xD;
+&#xD;
+int prio = getMyPriority ();&#xD;
+PR (&quot;old priority = &quot; &lt;&lt; prio);&#xD;
+&#xD;
+#ifdef SYSTEM_VxWorks&#xD;
+ prio = -1;&#xD;
+ OSAL_ERROR (&quot;Not available with VxWorks&quot;); //-VxW&#xD;
+&#xD;
+#elif defined SYSTEM_POSIX4&#xD;
+ setMyPriority (prio - decrement);&#xD;
+&#xD;
+#else&#xD;
+ // Linux or other&#xD;
+ if (getPolicy () != SCHED_OTHER)&#xD;
+ { // REAL-TIME&#xD;
+ setMyPriority (prio - decrement);&#xD;
+ }&#xD;
+ else&#xD;
+ { // TIME-SHARING&#xD;
+ if (nice (decrement) == -1)&#xD;
+ OSAL_ERROR (&quot;ON nice()&quot;);&#xD;
+ }&#xD;
+ PR (&quot;, new = &quot; &lt;&lt; getMyPriority() &lt;&lt; showI);&#xD;
+#endif</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_qwMuIE_LEdy2tpS719xBwQ" name="getMyPriority" specification="_nUPBwE_EEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jgAWUCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jgh6wCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jgtg8CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>int prio;&#xD;
+&#xD;
+#if defined SYSTEM_VxWorks&#xD;
+ prio = -1;&#xD;
+ OSAL_ERROR (&quot;Not available with VxWorks&quot;); //-VxW&#xD;
+&#xD;
+#elif defined SYSTEM_POSIX4&#xD;
+ struct sched_param params;&#xD;
+ int r;&#xD;
+&#xD;
+ r = sched_getparam (0, &amp;params);&#xD;
+ if (r == -1)&#xD;
+ OSAL_ERROR (&quot;ON sched_getparam()&quot;);&#xD;
+ prio = params.sched_priority;&#xD;
+&#xD;
+&#xD;
+#elif defined SYSTEM_Linux&#xD;
+ if (getPolicy () != SCHED_OTHER)&#xD;
+ {&#xD;
+ // SCHED_RR or SCHED_FIFO: use POSIX functions to get static priority&#xD;
+ struct sched_param params;&#xD;
+ int r;&#xD;
+&#xD;
+ r = sched_getparam (0, &amp;params);&#xD;
+ if (r == -1)&#xD;
+ OSAL_ERROR (&quot;ON sched_getparam()&quot;);&#xD;
+ prio = params.sched_priority;&#xD;
+ }&#xD;
+ else&#xD;
+ {&#xD;
+ // SCHED_OTHER: i.e. time-sharing like for Solaris: dynamic priority&#xD;
+ errno = 0;&#xD;
+ prio = getpriority (PRIO_PROCESS, getPid ());&#xD;
+ if ((prio == -1) &amp;&amp; (errno != 0))&#xD;
+ OSAL_ERROR (&quot;ON getpriority()&quot;);&#xD;
+ }&#xD;
+#else&#xD;
+ pcparms_t params;&#xD;
+ params.pc_cid = classId;&#xD;
+ long l;&#xD;
+ l = priocntl (P_PID, P_MYID, PC_GETPARMS, (caddr_t) &amp; params);&#xD;
+ if (l == -1L)&#xD;
+ OSAL_ERROR (&quot;ON priocntl( , PC_GETPARMS, )&quot;);&#xD;
+&#xD;
+ if (isRealTime ())&#xD;
+ { // REAL-TIME&#xD;
+ rtparms_t *rtParms = (rtparms_t *) params.pc_clparms;&#xD;
+ prio = rtParms->rt_pri;&#xD;
+ }&#xD;
+ else&#xD;
+ { // TIME-SHARING&#xD;
+ tsparms_t *tsParms = (tsparms_t *) params.pc_clparms;&#xD;
+ prio = tsParms->ts_upri;&#xD;
+ }&#xD;
+#endif&#xD;
+&#xD;
+ return prio;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_0PIGsE_LEdy2tpS719xBwQ" name="exitErr" specification="_cjQWAE_FEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jg_NwCBbEeOMKsPXBVC0DA" name="line">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jhhZQCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jhs_cCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jh4loCBbEeOMKsPXBVC0DA" name="file">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jiaxICBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jimXUCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jjHUsCBbEeOMKsPXBVC0DA" name="str">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jjpgMCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jj1GYCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>OS_AL::Util::BString500 str0 (&quot;error in &quot;);&#xD;
+exitErrP (str0 &lt;&lt; file &lt;&lt; &quot;:&quot; &lt;&lt; line &lt;&lt; &quot; : &quot; &lt;&lt; str);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_2eoEIE_LEdy2tpS719xBwQ" name="exitErr" specification="_cpEqIE_FEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jkbjUCBbEeOMKsPXBVC0DA" name="line">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jk9HwCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jlIt8CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jlUUICBbEeOMKsPXBVC0DA" name="file">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jl2foCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jmCF0CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jmicICBbEeOMKsPXBVC0DA" name="str" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jnEnoCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jnQN0CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>OS_AL::Util::BString500 str0 (&quot;error in &quot;);&#xD;
+exitErrP (str0 &lt;&lt; file &lt;&lt; &quot;:&quot; &lt;&lt; line &lt;&lt; &quot; : &quot; &lt;&lt; str);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_5RSZAE_LEdy2tpS719xBwQ" name="exitErrP" specification="_Lv9bIE_JEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jn2qwCBbEeOMKsPXBVC0DA" name="str" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_joYPMCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jojOUCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>if (m_sigOnErr == 0)&#xD;
+ init ();&#xD;
+&#xD;
+OS_AL::Util::Print pr1;&#xD;
+pr1 &lt;&lt; str &lt;&lt; showErr;&#xD;
+&#xD;
+if (errno)&#xD;
+ pr1 &lt;&lt; &quot; - error code/msg: &quot; &lt;&lt; strerror (errno);&#xD;
+errno = 0;&#xD;
+&#xD;
+if (m_pauseOnErr) {&#xD;
+ OS_AL::Util::Print pr2;&#xD;
+ pr2 &lt;&lt; &quot;\n\t pausing due to error!&quot; &lt;&lt; showI;&#xD;
+ pause (); // or for(;;) for debugger: debug appliX pid&#xD;
+}&#xD;
+&#xD;
+// removed code that sends a signal instead of exiting&#xD;
+// [todo: reason might have been clean-up?]&#xD;
+exit (1);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Wg_Y8E_CEdy2tpS719xBwQ" name="init" isStatic="true" method="_Fuv0sE_LEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_oVPdsE_CEdy2tpS719xBwQ" name="errSig">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oViYoE_CEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oVsJoE_CEdy2tpS719xBwQ" name="" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_qDqHUE_CEdy2tpS719xBwQ" value="ExitERR_SIG"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Wn__4E_CEdy2tpS719xBwQ" name="existEnv" isStatic="true" method="_InEssE_LEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_w1b9IE_CEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w1lHEE_CEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w14CAE_CEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_w5c6cE_CEdy2tpS719xBwQ" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w5wccE_CEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w55mYE_CEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_WtXBAE_CEdy2tpS719xBwQ" name="getEnv" isStatic="true" method="_K8r5ME_LEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_5wJ1YE_CEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_5wcwUE_CEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_5wvrQE_CEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_5y1V8E_CEdy2tpS719xBwQ" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_5zIQ4E_CEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_5zSB4E_CEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Wx1RUE_CEdy2tpS719xBwQ" name="getEnvInt" isStatic="true" method="_NumnME_LEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_bktVAE_DEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_blAP8E_DEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_blKA8E_DEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_bmpOsE_DEdy2tpS719xBwQ" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bnF6oE_DEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_bnProE_DEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_bolIYE_DEdy2tpS719xBwQ" name="base">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bo4DUE_DEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_bpB0UE_DEdy2tpS719xBwQ" name="" value="1"/>
+ <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_h31EICBGEeOBrb_t_69W4Q" value="10"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_W2mckE_CEdy2tpS719xBwQ" name="isEnvTrue" isStatic="true" method="_Qc9D0E_LEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_riMFYE_DEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rifAUE_DEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rioxUE_DEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_rj1EIE_DEdy2tpS719xBwQ" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rkH_EE_DEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rkRwEE_DEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_W8HOsE_CEdy2tpS719xBwQ" name="getCommProcNb" isStatic="true" method="_TRQXcE_LEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_1Fu4ME_DEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_1F4pME_DEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_1GCaME_DEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_XA4Z8E_CEdy2tpS719xBwQ" name="saveArg" isStatic="true" method="_VJXIkE_LEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_5aAJwE_DEdy2tpS719xBwQ" name="argc">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_5aTrwE_DEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_5ac1sE_DEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_5by5gE_DEdy2tpS719xBwQ" name="argv">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_5cF0cE_DEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_5cPlcE_DEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_EmmlEE_EEdy2tpS719xBwQ" name="setZoneNumber" isStatic="true" method="_XD2fUE_LEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ipl5YE_EEdy2tpS719xBwQ" name="zoneNumber">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ip40UE_EEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IqClUE_EEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_FQU3gE_EEdy2tpS719xBwQ" name="getZoneNumber" isStatic="true" method="_Zj4zIE_LEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_MZM-sE_EEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MZf5oE_EEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MZpqoE_EEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Qd0qsE_EEdy2tpS719xBwQ" name="getZoneName" isStatic="true" method="_IMMkAE_KEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_T-YnYE_EEdy2tpS719xBwQ" name="param_0" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_T-sJYE_EEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_T-1TUE_EEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Qpmc4E_EEdy2tpS719xBwQ" name="setZoneName" isStatic="true" method="_GgAvAE_KEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_clSLwE_EEdy2tpS719xBwQ" name="zoneName" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_clltwE_EEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_clu3sE_EEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_m11OgE_EEdy2tpS719xBwQ" name="getPid" isStatic="true" method="_J41E8E_KEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_uZYfgE_EEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_uZracE_EEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_uZ1LcE_EEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_m8ZJgE_EEdy2tpS719xBwQ" name="getParentPid" isStatic="true" method="_LgsaoE_KEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_wI2SAE_EEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wJJM8E_EEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wJSW4E_EEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_nCDsoE_EEdy2tpS719xBwQ" name="getPrioMax" isStatic="true" method="_dMM9oE_LEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_y5a8ME_EEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_y5ueME_EEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_y53oIE_EEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_nGrG4E_EEdy2tpS719xBwQ" name="getPrioMin" isStatic="true" method="_fW7v0E_LEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_2u2VoE_EEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2u_fkE_EEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2vJQkE_EEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_nL4-EE_EEdy2tpS719xBwQ" name="setMyPriority" isStatic="true" method="_i-fsYE_LEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="__a9xME_EEdy2tpS719xBwQ" name="prio">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__bQsIE_EEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__badIE_EEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_nPwxcE_EEdy2tpS719xBwQ" name="decrMyPriority" isStatic="true" method="_l17zkE_LEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_CMlkQE_FEdy2tpS719xBwQ" name="decrement">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CMuuME_FEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CNCQME_FEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_nUPBwE_EEdy2tpS719xBwQ" name="getMyPriority" isStatic="true" method="_qwMuIE_LEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ERzkUE_FEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ER8uQE_FEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ESQQQE_FEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_cjQWAE_FEdy2tpS719xBwQ" name="exitErr" isStatic="true" method="_0PIGsE_LEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_wYs2cE_FEdy2tpS719xBwQ" name="line">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wY2AYE_FEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wZI7UE_FEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_wb-M4E_FEdy2tpS719xBwQ" name="file">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wcRu4E_FEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wca40E_FEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_wfQKYE_FEdy2tpS719xBwQ" name="str">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wfs2UE_FEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wf2nUE_FEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_cpEqIE_FEdy2tpS719xBwQ" name="exitErr" isStatic="true" method="_2eoEIE_LEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_BemAYE_GEdy2tpS719xBwQ" name="line">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Be5iYE_GEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BfCsUE_GEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_BiBu4E_GEdy2tpS719xBwQ" name="file">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BiK40E_GEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BiUp0E_GEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_BlTsYE_GEdy2tpS719xBwQ" name="str" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Blc2UE_GEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BlvxQE_GEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_fBQXkE_HEdy2tpS719xBwQ" name="getArgc" isStatic="true" method="_wzzhQE_JEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_6NopUE_HEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6NyaUE_HEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6N8LUE_HEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_fMk2wE_HEdy2tpS719xBwQ" name="getArgv" isStatic="true" method="_0-1-UE_JEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_9L7mcE_HEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9MOhYE_HEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9MYSYE_HEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_9OdWAE_HEdy2tpS719xBwQ" name="pos">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9OnHAE_HEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9Ow4AE_HEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_fRpkAE_HEdy2tpS719xBwQ" name="getArgv" isStatic="true" method="_zW-ooE_JEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_G6XaoE_IEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_G6qVkE_IEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_G60GkE_IEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_fWj5ME_HEdy2tpS719xBwQ" name="getPauseOnErr" isStatic="true" method="_NcEiME_KEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_NEzjoE_IEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_NFGekE_IEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_NFQPkE_IEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_fbomcE_HEdy2tpS719xBwQ" name="getClassId" isStatic="true" method="_Q5DmcE_KEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_RweBgE_IEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_RwxjgE_IEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_RxEecE_IEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_ffqK0E_HEdy2tpS719xBwQ" name="getNumerOfProcesses" isStatic="true" method="_SYbHcE_KEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_WDsxQE_IEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WD_sME_IEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_WEJdME_IEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_fkkgAE_HEdy2tpS719xBwQ" name="getPolicy" isStatic="true" method="_UKkagE_KEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_YBBZkE_IEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_YBUUgE_IEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_YBeFgE_IEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Lv9bIE_JEdy2tpS719xBwQ" name="exitErrP" visibility="private" isStatic="true" method="_5RSZAE_LEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_NHIpcE_JEdy2tpS719xBwQ" name="str" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_NHRzYE_JEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_NHlVYE_JEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_y3w2sE_BEdy2tpS719xBwQ" name="FromProDesctoBString200" client="_oSgIME_BEdy2tpS719xBwQ" supplier="_0AwCEDO0EdyG-pUz-bb-Lg"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_TVGDsE_NEdy2tpS719xBwQ" name="System">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_d2e-0E_NEdy2tpS719xBwQ" annotatedElement="_TVGDsE_NEdy2tpS719xBwQ">
+ <body>Provide information about the system, mainly UTS information&#xD;
+(uname), as well as the number of processors, the number of message&#xD;
+queues.&#xD;
+Only partially used.</body>
+ </ownedComment>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_QFAjQE_eEdy2tpS719xBwQ" name="m_cpuNb" visibility="private" isStatic="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QFTeME_eEdy2tpS719xBwQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QFdPME_eEdy2tpS719xBwQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_QJezkE_eEdy2tpS719xBwQ" name="m_mqMax" visibility="private" isStatic="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QJxugE_eEdy2tpS719xBwQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QJxugU_eEdy2tpS719xBwQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_QNM18E_eEdy2tpS719xBwQ" name="m_semsMax" visibility="private" isStatic="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QNgX8E_eEdy2tpS719xBwQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QNgX8U_eEdy2tpS719xBwQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Z_zYcE_eEdy2tpS719xBwQ" name="m_hostId" visibility="private" isStatic="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8heigBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_aAGTYE_eEdy2tpS719xBwQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_aAQEYE_eEdy2tpS719xBwQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_c8Tl0E_eEdy2tpS719xBwQ" name="m_hostName" visibility="private" isStatic="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_c8mgwE_eEdy2tpS719xBwQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_c8mgwU_eEdy2tpS719xBwQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_c_4eQE_eEdy2tpS719xBwQ" name="m_machine" visibility="private" isStatic="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dALZME_eEdy2tpS719xBwQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dAVKME_eEdy2tpS719xBwQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_dC25wE_eEdy2tpS719xBwQ" name="m_release" visibility="private" isStatic="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dDTlsE_eEdy2tpS719xBwQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dDTlsU_eEdy2tpS719xBwQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_dF18UE_eEdy2tpS719xBwQ" name="m_sysname" visibility="private" isStatic="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dGI3QE_eEdy2tpS719xBwQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dGSoQE_eEdy2tpS719xBwQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_dJHSwE_eEdy2tpS719xBwQ" name="m_version" visibility="private" isStatic="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dJa0wE_eEdy2tpS719xBwQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dJj-sE_eEdy2tpS719xBwQ" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_8jvtoE_eEdy2tpS719xBwQ" name="getCpuNb" specification="_pLuYwE_NEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_p2vO4CBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_p3RaYCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_p3dAkCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> return m_cpuNb;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_9vvmsE_eEdy2tpS719xBwQ" name="setCpuNb" specification="_v9NToE_NEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_p3uGUCBbEeOMKsPXBVC0DA" name="cpuNb">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_p4PqwCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_p4bQ8CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> m_cpuNb = cpuNb;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="__E1KUE_eEdy2tpS719xBwQ" name="getMqMax" specification="_361RgE_NEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_p4sWsCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_p5PJQCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_p5avcCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> return m_mqMax;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_AneBwE_fEdy2tpS719xBwQ" name="setMqMax" specification="_7k7ksE_NEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_p5r1MCBbEeOMKsPXBVC0DA" name="mqMax">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_p6NZoCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_p6Y_0CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> m_mqMax = mqMax;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Cm4UwE_fEdy2tpS719xBwQ" name="getSemsMax" specification="_EQ5PQE_OEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_p6rTsCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_p7Tl0CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_p7ek8CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> return m_semsMax;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_D09RcE_fEdy2tpS719xBwQ" name="setSemsMax" specification="_EW2tUE_OEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_p7wRwCBbEeOMKsPXBVC0DA" name="semsMax">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_p8TrYCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_p8eqgCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> m_semsMax = semsMax;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_FDMmME_fEdy2tpS719xBwQ" name="getHostId" specification="_R3kgUE_OEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_p8vwQCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8heigBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_p9R7wCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_p9dh8CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> return m_hostId;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_GbaWUE_fEdy2tpS719xBwQ" name="getHostName" specification="_R8VrkE_OEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_p9unsCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_p-QMICBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_p-byUCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> return m_hostName;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_I9Yj0E_fEdy2tpS719xBwQ" name="getMachine" specification="_SCJ_sE_OEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_p_BoMCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_p_jzsCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_p_uy0CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> return m_machine;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_KHltIE_fEdy2tpS719xBwQ" name="getRelease" specification="_SHhA0E_OEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_qANT8CBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qAvfcCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_qA7FoCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> return m_release;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_LMvXUE_fEdy2tpS719xBwQ" name="getSysName" specification="_SMSMEE_OEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_qBaN0CBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qB8ZUCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_qCHYcCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> return m_sysname;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_MUtE8E_fEdy2tpS719xBwQ" name="getVersion" specification="_SQdhcE_OEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_qCrZICBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qDM9kCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_qDYjwCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> return m_version;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_hdJeUE_fEdy2tpS719xBwQ" name="init" specification="_mZzqwE_NEdy2tpS719xBwQ">
+ <language>C/C++</language>
+ <body> m_hostName = m_machine = m_release = m_sysname = m_version = &quot;&quot;;&#xD;
+&#xD;
+ // =======================================================================&#xD;
+#if defined SYSTEM_Cygwin&#xD;
+ m_cpuNb = 1; // default value&#xD;
+&#xD;
+ // Max number of opened MQ&#xD;
+ m_mqMax = _SC_MQ_OPEN_MAX;&#xD;
+ // Max number of semaphores&#xD;
+ m_semsMax = _SC_SEM_NSEMS_MAX;&#xD;
+&#xD;
+ // other system infos&#xD;
+ m_hostId = gethostid ();&#xD;
+ int hostIndex = 0;&#xD;
+&#xD;
+#elif defined SYSTEM_POSIX4 || defined SYSTEM_Linux&#xD;
+ m_cpuNb = 1; // default value&#xD;
+&#xD;
+ //*** Max number of Message Queues ***//&#xD;
+ errno = 0;&#xD;
+ m_mqMax = _POSIX_MQ_OPEN_MAX;&#xD;
+&#xD;
+ errno = 0;&#xD;
+ m_semsMax = _POSIX_SEM_NSEMS_MAX;&#xD;
+&#xD;
+ // other system infos&#xD;
+ m_hostId = gethostid ();&#xD;
+&#xD;
+ // =======================================================================&#xD;
+#elif defined SYSTEM_Solaris&#xD;
+ // Number of configured CPUs&#xD;
+ // or? _SC_NPROCESSORS_ONLN (see sysconf(3C) )&#xD;
+ m_cpuNb = sysconf (_SC_NPROCESSORS_CONF);&#xD;
+&#xD;
+ //*** Max number of Message Queues ***//&#xD;
+ errno = 0;&#xD;
+ m_mqMax = sysconf (_SC_OPEN_MAX); // _SC_MQ_OPEN_MAX 'not defined...'&#xD;
+&#xD;
+ if (m_mqMax == -1)&#xD;
+ OSAL_ERROR (&quot;ON sysconf(_SC_OPEN_MAX)&quot;);&#xD;
+&#xD;
+ //*** Max number of Semaphores ***//&#xD;
+ /*&#xD;
+ semsMax= sysconf(_SC_SEM_NSEMS_MAX);&#xD;
+ Extract of sysconf(3C) : If sysconf() fails due to&#xD;
+ a value of name that is not defined on the system, the func-&#xD;
+ tion will return a value of -1 without changing the value of&#xD;
+ errno&#xD;
+ */&#xD;
+&#xD;
+ /* in which library is _sysconf() ?&#xD;
+ #include &lt;sys/sysconfig.h>&#xD;
+ int _sysconf(int);&#xD;
+&#xD;
+ semsMax = _sysconf(_CONFIG_SEM_NSEMS_MAX);&#xD;
+ if (semsMax == -1)&#xD;
+ OSAL_ERROR(&quot;ON sysconf(SEM_NSEMS_MAX)&quot;);&#xD;
+ */&#xD;
+ m_semsMax = 25; // semget( ) --> EINVAL au dela de 25&#xD;
+&#xD;
+ // =======================================================================&#xD;
+&#xD;
+#elif defined SYSTEM_VxWorks&#xD;
+ m_cpuNb = 1; // default value&#xD;
+&#xD;
+ //*** Max number of Message Queues ***//&#xD;
+ errno = 0;&#xD;
+ m_mqMax = SM_OBJ_MAX_MSG_Q;&#xD;
+&#xD;
+ //*** Max number of Semaphores ***//&#xD;
+ errno = 0;&#xD;
+ m_semsMax = SM_OBJ_MAX_SEM;&#xD;
+&#xD;
+ // =======================================================================&#xD;
+#endif&#xD;
+&#xD;
+&#xD;
+#if defined SYSTEM_Linux || defined SYSTEM_Solaris&#xD;
+ struct utsname names;&#xD;
+ if (uname (&amp;names) &lt; 0)&#xD;
+ OSAL_ERROR (&quot;ON uname( )&quot;);&#xD;
+&#xD;
+ m_hostName = names.nodename;&#xD;
+ m_sysname = names.sysname;&#xD;
+ m_release = names.release;&#xD;
+ m_version = names.version;&#xD;
+ m_machine = names.machine;&#xD;
+#endif&#xD;
+&#xD;
+#ifdef DEBUG&#xD;
+ activateDebugTimer ();&#xD;
+#endif&#xD;
+</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_mZzqwE_NEdy2tpS719xBwQ" name="init" isStatic="true" method="_hdJeUE_fEdy2tpS719xBwQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_pLuYwE_NEdy2tpS719xBwQ" name="getCpuNb" isStatic="true" method="_8jvtoE_eEdy2tpS719xBwQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_uMQTYE_NEdy2tpS719xBwQ" annotatedElement="_pLuYwE_NEdy2tpS719xBwQ">
+ <body>returns the number of CPUs</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_q6vfUE_NEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_q7CaQE_NEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_q7MLQE_NEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_v9NToE_NEdy2tpS719xBwQ" name="setCpuNb" isStatic="true" method="_9vvmsE_eEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ypKjkE_NEdy2tpS719xBwQ" name="cpuNb">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ypeFkE_NEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ypxAgE_NEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_361RgE_NEdy2tpS719xBwQ" name="getMqMax" isStatic="true" method="__E1KUE_eEdy2tpS719xBwQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_AuPn4E_OEdy2tpS719xBwQ" annotatedElement="_361RgE_NEdy2tpS719xBwQ">
+ <body>returns the number of message queues (useful?)</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_48GhQE_NEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_48PrME_NEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_48ZcME_NEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_7k7ksE_NEdy2tpS719xBwQ" name="setMqMax" isStatic="true" method="_AneBwE_fEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_9jlpwE_NEdy2tpS719xBwQ" name="mqMax">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9jvawE_NEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9kCVsE_NEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_EQ5PQE_OEdy2tpS719xBwQ" name="getSemsMax" isStatic="true" method="_Cm4UwE_fEdy2tpS719xBwQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_OTvNME_OEdy2tpS719xBwQ" annotatedElement="_EQ5PQE_OEdy2tpS719xBwQ">
+ <body>returns the number of semaphores</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_HPLlUE_OEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HPfHUE_OEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HPoRQE_OEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_EW2tUE_OEdy2tpS719xBwQ" name="setSemsMax" isStatic="true" method="_D09RcE_fEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_JzPdgE_OEdy2tpS719xBwQ" name="semsMax">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Jzi_gE_OEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JzsJcE_OEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_R3kgUE_OEdy2tpS719xBwQ" name="getHostId" isStatic="true" method="_FDMmME_fEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_VLd6AE_OEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8heigBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VLxcAE_OEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VL6l8E_OEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_R8VrkE_OEdy2tpS719xBwQ" name="getHostName" isStatic="true" method="_GbaWUE_fEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_YIRCUE_OEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_YIazUE_OEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_YItuQE_OEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_SCJ_sE_OEdy2tpS719xBwQ" name="getMachine" isStatic="true" method="_I9Yj0E_fEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_1uCPgE_dEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_1uVKcE_dEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_1ue7cE_dEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_SHhA0E_OEdy2tpS719xBwQ" name="getRelease" isStatic="true" method="_KHltIE_fEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="__yhMME_dEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__y0HIE_dEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__y94IE_dEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_SMSMEE_OEdy2tpS719xBwQ" name="getSysName" isStatic="true" method="_LMvXUE_fEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_BjxHYE_eEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bj6RUE_eEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BkECUE_eEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_SQdhcE_OEdy2tpS719xBwQ" name="getVersion" isStatic="true" method="_MUtE8E_fEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_DiSCgE_eEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Dik9cE_eEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DiuHYE_eEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_Az5ewE_gEdy2tpS719xBwQ" name="FromThreadtoThreadAttribute" client="_-HeCsDj_Edy0Rd6V_tf1-Q" supplier="_Saw1YDkDEdyuzNpSiGPe4w"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_GNdkcE_gEdy2tpS719xBwQ" name="FromThreadtoSemaphore" client="_-HeCsDj_Edy0Rd6V_tf1-Q" supplier="_D8njME_gEdy2tpS719xBwQ"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_NdL6gE_gEdy2tpS719xBwQ" name="FromThreadtoBString50" client="_-HeCsDj_Edy0Rd6V_tf1-Q" supplier="_sQ1JADO0EdyG-pUz-bb-Lg"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_3QgjUE_nEdy2tpS719xBwQ" name="Association_Thread_ThreadAttribute" memberEnd="_3Q0FUE_nEdy2tpS719xBwQ _3RjsMk_nEdy2tpS719xBwQ">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_3RjsMk_nEdy2tpS719xBwQ" name="thread" type="_-HeCsDj_Edy0Rd6V_tf1-Q" isUnique="false" association="_3QgjUE_nEdy2tpS719xBwQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3STTEU_nEdy2tpS719xBwQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3STTEE_nEdy2tpS719xBwQ" value="*"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_LLUE4E_oEdy2tpS719xBwQ" name="Association_Thread_Semaphore" memberEnd="_LLUE4U_oEdy2tpS719xBwQ _LMNcwE_oEdy2tpS719xBwQ">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_LMNcwE_oEdy2tpS719xBwQ" name="thread" type="_-HeCsDj_Edy0Rd6V_tf1-Q" isUnique="false" association="_LLUE4E_oEdy2tpS719xBwQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LMzSoE_oEdy2tpS719xBwQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LMqIsk_oEdy2tpS719xBwQ" value="*"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_9-OUUE_uEdy2tpS719xBwQ" name="ThreadContext">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_UrPe0E_vEdy2tpS719xBwQ" annotatedElement="_9-OUUE_uEdy2tpS719xBwQ">
+ <body>Provide a context for storing pointers (get/savePtr).&#xD;
+There is currently only one use of this class in SRcompeting (and the&#xD;
+getPtr part is commented out => reconsider whether this class is needed)</body>
+ </ownedComment>
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_Z03EAE_vEdy2tpS719xBwQ" parameter="_a5QgQE_vEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_a5QgQE_vEdy2tpS719xBwQ" parameteredElement="_eGJTAE_vEdy2tpS719xBwQ">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_eGJTAE_vEdy2tpS719xBwQ" name="CLASS" templateParameter="_a5QgQE_vEdy2tpS719xBwQ"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Rt3nYE_yEdy2tpS719xBwQ" name="key" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_RuKiUE_yEdy2tpS719xBwQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_RuUTUE_yEdy2tpS719xBwQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_RwZ-AE_yEdy2tpS719xBwQ" name="dataPtr" visibility="public" type="_eGJTAE_vEdy2tpS719xBwQ" isUnique="false">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Rws48E_yEdy2tpS719xBwQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Rw2p8E_yEdy2tpS719xBwQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_1oie8E_yEdy2tpS719xBwQ" name="instanceNb" visibility="private" isStatic="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_1o_K4E_yEdy2tpS719xBwQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_1o_K4U_yEdy2tpS719xBwQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_4-u30CBSEeOBrb_t_69W4Q"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_69LoYE_yEdy2tpS719xBwQ" name="_key" specification="_D9gO0E_yEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_aTxQQCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_aUSNoCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_aUdMwCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> return key;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_8Tde0E_yEdy2tpS719xBwQ" name="set_key" specification="_ECHpEE_yEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_aUuSgCBbEeOMKsPXBVC0DA" name="cr_operand">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_aVPP4CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_aVaPACBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> key = cr_operand;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_9ceVUE_yEdy2tpS719xBwQ" name="_dataPtr" specification="_EJIQAE_yEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_aVr70CBbEeOMKsPXBVC0DA" name="param_0" type="_eGJTAE_vEdy2tpS719xBwQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_aWM5MCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_aWX4UCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> return dataPtr;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_BTiGcE_zEdy2tpS719xBwQ" name="set_dataPtr" specification="_ETtIUE_yEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_aW1yYCBbEeOMKsPXBVC0DA" name="cr_operand" type="_eGJTAE_vEdy2tpS719xBwQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_aXddcCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_aXockCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> dataPtr = cr_operand;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_DoZsEE_zEdy2tpS719xBwQ" name="ThreadContext" specification="_ZtXqAE_xEdy2tpS719xBwQ">
+ <language>C/C++</language>
+ <body> set_dataPtr (NULL);&#xD;
+&#xD;
+ TRACEpr (VM);&#xD;
+ PR (showI);&#xD;
+&#xD;
+ if (++instanceNb > 1)&#xD;
+ {&#xD;
+ OSAL_ERROR (&quot;in ThreadContext::ThreadContext: ++instanceNb > 1&quot;);&#xD;
+ }&#xD;
+&#xD;
+ // puisque seulement 1 instance , key peut être non 'static' &#xD;
+ // et pas de précaution par mutex&#xD;
+#if defined THREAD_POSIX4&#xD;
+ errno = pthread_key_create (&amp;key, NULL);&#xD;
+ if (errno) {&#xD;
+ OSAL_ERROR (&quot;ON pthread_key_create()&quot;);&#xD;
+ }&#xD;
+&#xD;
+#elif defined THREAD_Solaris&#xD;
+ errno = thr_keycreate (&amp;key, NULL);&#xD;
+ if (errno) {&#xD;
+ OSAL_ERROR (&quot;ON thr_keycreate()&quot;);&#xD;
+ }&#xD;
+&#xD;
+#elif defined THREAD_VxWorks //-VxW&#xD;
+ ;&#xD;
+#endif&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_GrAhcE_zEdy2tpS719xBwQ" name="savePtr" specification="_Z2BPsE_xEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_aYL2MCBbEeOMKsPXBVC0DA" name="ptr" type="_eGJTAE_vEdy2tpS719xBwQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_aYuowCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_aY5n4CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> // A utiliser au début du code exécuté par un thread nouveau susceptible&#xD;
+ // d'avoir besoin du pointeur (spécifique de ce thread)&#xD;
+ // via une variable globale (cf. operateur -> surchargé)&#xD;
+&#xD;
+ TRACEpr (VM);&#xD;
+ PR (showI);&#xD;
+&#xD;
+ dataPtr = ptr;&#xD;
+#if defined THREAD_POSIX4&#xD;
+ errno = pthread_setspecific (key, dataPtr);&#xD;
+ if (errno) {&#xD;
+ OSAL_ERROR (&quot;ON pthread_setspecific()&quot;);&#xD;
+ }&#xD;
+&#xD;
+#elif defined THREAD_Solaris&#xD;
+ errno = thr_setspecific (key, dataPtr);&#xD;
+ if (errno) {&#xD;
+ OSAL_ERROR (&quot;ON thr_setspecific()&quot;);&#xD;
+ }&#xD;
+&#xD;
+#elif defined THREAD_VxWorks //-VxW&#xD;
+ errno = taskVarAdd (0, (int *) &amp;dataPtr);&#xD;
+ if (errno) {&#xD;
+ OSAL_ERROR (&quot;ON taskVarAdd()&quot;);&#xD;
+ }&#xD;
+#endif&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_JDmJcE_zEdy2tpS719xBwQ" name="getPtr" specification="_Z7FV4E_xEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_aZW64CBbEeOMKsPXBVC0DA" name="param_0" type="_eGJTAE_vEdy2tpS719xBwQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_aZ4fUCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_aaDecCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> // useful to allow check :&#xD;
+ // if (globalVar.getPtr() ==NULL) // in client side,&#xD;
+ // before globalVar->memberOfCLASS&#xD;
+&#xD;
+ // Get the thread specific pointer&#xD;
+#if defined THREAD_POSIX4&#xD;
+ dataPtr = (CLASS *) pthread_getspecific (key);&#xD;
+&#xD;
+#elif defined THREAD_Solaris&#xD;
+ errno = thr_getspecific (key, (void **) &amp;dataPtr);&#xD;
+ if (errno) {&#xD;
+ OSAL_ERROR (&quot;ON thr_getspecific()&quot;);&#xD;
+ }&#xD;
+&#xD;
+#elif defined THREAD_VxWorks //-VxW&#xD;
+ // l'attribut 'dataPtr' doit être restauré par le système&#xD;
+ // pour ce thread à chaque fois qu'il est réélu pour la CPU&#xD;
+ ;&#xD;
+#endif&#xD;
+&#xD;
+ return dataPtr;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_M_R74E_zEdy2tpS719xBwQ" name="operator->" specification="_aJrykE_xEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_aah_kCBbEeOMKsPXBVC0DA" name="param_0" type="_eGJTAE_vEdy2tpS719xBwQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_abC88CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_abN8ECBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> // Overload of ->&#xD;
+ // since the unique instance of ThrCtxt&lt;CLASS> is a global variable&#xD;
+ // directly accessed (not via a pointer)&#xD;
+ // operator-> can't be confused with access to members of ThrCtxt&lt;CLASS>&#xD;
+ // globalVar.savePtr(...)&#xD;
+ // globalVar->memberOfCLASS // to Access to the thread specific data&#xD;
+&#xD;
+ TRACEpr (VM);&#xD;
+ PR (showI);&#xD;
+&#xD;
+ CLASS *dataP = getPtr ();&#xD;
+&#xD;
+ if (dataP == NULL) {&#xD;
+ OSAL_ERROR (&quot;lack of previous 'globalVar.savePtr(...)'&quot;);&#xD;
+ }&#xD;
+&#xD;
+ return dataP;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_ZtXqAE_xEdy2tpS719xBwQ" name="ThreadContext" method="_DoZsEE_zEdy2tpS719xBwQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Z2BPsE_xEdy2tpS719xBwQ" name="savePtr" method="_GrAhcE_zEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_n-EvgE_xEdy2tpS719xBwQ" name="ptr" type="_eGJTAE_vEdy2tpS719xBwQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_n-XqcE_xEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_n-hbcE_xEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Z7FV4E_xEdy2tpS719xBwQ" name="getPtr" method="_JDmJcE_zEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_vzzVoE_xEdy2tpS719xBwQ" name="param_0" type="_eGJTAE_vEdy2tpS719xBwQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_v0GQkE_xEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_v0QBkE_xEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_aJrykE_xEdy2tpS719xBwQ" name="operator->" method="_M_R74E_zEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_1w0tsE_xEdy2tpS719xBwQ" name="param_0" type="_eGJTAE_vEdy2tpS719xBwQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_1xRZoE_xEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_1xbKoE_xEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_D9gO0E_yEdy2tpS719xBwQ" name="_key" method="_69LoYE_yEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_blraAE_yEdy2tpS719xBwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bl-8AE_yEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_bmIF8E_yEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_ECHpEE_yEdy2tpS719xBwQ" name="set_key" method="_8Tde0E_yEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_e1jPUE_yEdy2tpS719xBwQ" name="cr_operand">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_e12xUE_yEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_e2JsQE_yEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_EJIQAE_yEdy2tpS719xBwQ" name="_dataPtr" method="_9ceVUE_yEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_iqPB4E_yEdy2tpS719xBwQ" name="param_0" type="_eGJTAE_vEdy2tpS719xBwQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iqh80E_yEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iqrt0E_yEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_ETtIUE_yEdy2tpS719xBwQ" name="set_dataPtr" method="_BTiGcE_zEdy2tpS719xBwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_tK4WIE_yEdy2tpS719xBwQ" name="cr_operand" type="_eGJTAE_vEdy2tpS719xBwQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tLLREE_yEdy2tpS719xBwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tLeMAE_yEdy2tpS719xBwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_GhsKME_vEdy2tpS719xBwQ" name="FromThreadContexttoProDesc" client="_9-OUUE_uEdy2tpS719xBwQ" supplier="_oSgIME_BEdy2tpS719xBwQ"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_I0BZME_vEdy2tpS719xBwQ" name="FromThreadContexttoTrace" client="_9-OUUE_uEdy2tpS719xBwQ" supplier="_1DM54DxBEdyfAeav5abbAw"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_kor6MFdhEd-9TNLvplUFDQ" name="funcPtr_AvpRvp"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_l2xogFdiEd-9TNLvplUFDQ" name="ThreadId"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_5J3-8FdkEd-9TNLvplUFDQ" name="sigset_t"/>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_BARjMFnFEd-9TNLvplUFDQ" name="FromProDesctoBString200" client="_oSgIME_BEdy2tpS719xBwQ" supplier="_0AwCEDO0EdyG-pUz-bb-Lg"/>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_HQSIsFnFEd-9TNLvplUFDQ" name="FromProDesctoBString500" client="_oSgIME_BEdy2tpS719xBwQ" supplier="_1vnXoDO0EdyG-pUz-bb-Lg"/>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_JMMZwFnbEd-9TNLvplUFDQ" name="FromThreadtoTrace" client="_-HeCsDj_Edy0Rd6V_tf1-Q" supplier="_1DM54DxBEdyfAeav5abbAw"/>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_aG940FnbEd-9TNLvplUFDQ" name="FromThreadtoSetOf" client="_-HeCsDj_Edy0Rd6V_tf1-Q" supplier="_2bXLkDUuEdyDReAOQiyvOg"/>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_9knnwFncEd-9TNLvplUFDQ" name="FromThreadtoProDesc" client="_-HeCsDj_Edy0Rd6V_tf1-Q" supplier="_oSgIME_BEdy2tpS719xBwQ"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_ONsuENqFEeKrRY-H1kHnNA" name="Dependency1" client="_-HeCsDj_Edy0Rd6V_tf1-Q" supplier="_4lsq4NqEEeKrRY-H1kHnNA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_q6QRMC-OEdySSa8YESkO2w" name="Sets">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_S5s5gDalEdyMZ7r5-upW2A" annotatedElement="_zOJVcDaeEdyC6dXxO2UOEQ">
+ <body>must be stereotyped CppFriend ()not availbale for the moment for classes)</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xxCKcDUuEdyDReAOQiyvOg" name="BOL">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_F7DMsDUvEdyDReAOQiyvOg" annotatedElement="_xxCKcDUuEdyDReAOQiyvOg">
+ <body>The class BOL (Bounded ordered list) is a template class applied to a&#xD;
+certain type element type (ELType). The list consists of cells of type&#xD;
+ListCell&lt;ELType>: the elements are stored by value in each cell. The&#xD;
+element type must have a default constructor.&#xD;
+&#xD;
+The element type has to fulfill two criterions:&#xD;
+ - It has to define a comparison relation to enable the insertion of an&#xD;
+ element at the right position within the list. It requires the existence&#xD;
+ of the operators ElType::operator>= and ElType::operator!=&#xD;
+&#xD;
+ - the second criterion rests on the identity of data of two elements,&#xD;
+ independently of the value being used for their scheduling. It makes it&#xD;
+ possible to compare two elements or to seek an element in the list and to&#xD;
+ modify it. It requires l'existence of the method ElType::sameAs() and&#xD;
+ possibly of the operator ElType::operator=&#xD;
+&#xD;
+These two criteria can be independent. The super class of BOL, SMO,&#xD;
+redefines the new operator to allows for specifying an address where to&#xD;
+the instance should be located in memory. The class BOL can be used for&#xD;
+any management * of ordered lists according to specified comparison&#xD;
+criterions'. A list of unlimited size has to create and release memory&#xD;
+dynamicylly, which is expensive. Moreover, one list divided between&#xD;
+several processes and established in a shared memory segment of fixed&#xD;
+size must itself be of a limited size that has to be known at creation.</body>
+ </ownedComment>
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_RKC0sDUvEdyDReAOQiyvOg" parameter="_Vvc5kDUvEdyDReAOQiyvOg">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_Vvc5kDUvEdyDReAOQiyvOg" parameteredElement="_XE1_MDUvEdyDReAOQiyvOg">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_XE1_MDUvEdyDReAOQiyvOg" name="ElType" templateParameter="_Vvc5kDUvEdyDReAOQiyvOg"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_yaiaUDa2Edyv9PRkTrTu0A" name="beginning" visibility="protected" type="_zOJVcDaeEdyC6dXxO2UOEQ" isUnique="false" association="_yZpCcDa2Edyv9PRkTrTu0A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_EZ0qYDa3Edyv9PRkTrTu0A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_EZ-bYDa3Edyv9PRkTrTu0A" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_0wvcsDa2Edyv9PRkTrTu0A" name="endElement" visibility="protected" type="_zOJVcDaeEdyC6dXxO2UOEQ" isUnique="false" association="_0wmSwDa2Edyv9PRkTrTu0A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_NcmScDa3Edyv9PRkTrTu0A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_NcmScTa3Edyv9PRkTrTu0A" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_1ZuIQTa2Edyv9PRkTrTu0A" name="current" visibility="protected" type="_zOJVcDaeEdyC6dXxO2UOEQ" isUnique="false" association="_1ZuIQDa2Edyv9PRkTrTu0A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_OpotUDa3Edyv9PRkTrTu0A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_OpyeUDa3Edyv9PRkTrTu0A" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_2AnwMTa2Edyv9PRkTrTu0A" name="firstFreeCellule" visibility="protected" type="_zOJVcDaeEdyC6dXxO2UOEQ" isUnique="false" association="_2AnwMDa2Edyv9PRkTrTu0A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Q7rBYDa3Edyv9PRkTrTu0A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Q7rBYTa3Edyv9PRkTrTu0A" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_3cG2wTa2Edyv9PRkTrTu0A" name="freeMemory" visibility="protected" type="_zOJVcDaeEdyC6dXxO2UOEQ" isUnique="false" association="_3cG2wDa2Edyv9PRkTrTu0A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WcF9ADa3Edyv9PRkTrTu0A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_WcPG8Da3Edyv9PRkTrTu0A" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_8nYBwDa2Edyv9PRkTrTu0A" name="endOfMemory" visibility="protected" type="_zOJVcDaeEdyC6dXxO2UOEQ" isUnique="false" association="_8nOQwDa2Edyv9PRkTrTu0A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ejHHcDa3Edyv9PRkTrTu0A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ejQRYDa3Edyv9PRkTrTu0A" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_cYvxYDamEdyMZ7r5-upW2A" name="findElement" specification="_Am2XwDamEdyMZ7r5-upW2A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_n3fJYCBaEeOMKsPXBVC0DA" name="param_0" type="_zOJVcDaeEdyC6dXxO2UOEQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_n4Ls8CBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_n4XTICBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_n4z_ECBaEeOMKsPXBVC0DA" name="element" type="_XE1_MDUvEdyDReAOQiyvOg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_n5Ym0CBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_n5kNACBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> TRACEpr (F7);&#xD;
+&#xD;
+ ListCell *cur = beginning, *lstCelPtr = NULL;&#xD;
+ for (; cur->next; cur = cur->next) {&#xD;
+ if (element.sameAs (cur->next->value))&#xD;
+ {&#xD;
+ lstCelPtr = cur;&#xD;
+ break;&#xD;
+ }&#xD;
+ }&#xD;
+ PR (&quot;BOL&lt; ElType >::findElement&quot;);&#xD;
+ &#xD;
+&#xD;
+ return (lstCelPtr);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_zhpmoDamEdyMZ7r5-upW2A" name="findPrevious" specification="_gDSwgDamEdyMZ7r5-upW2A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_n6INsCBaEeOMKsPXBVC0DA" name="param_0" type="_zOJVcDaeEdyC6dXxO2UOEQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_n6rnUCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_n62mcCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_n7PoACBaEeOMKsPXBVC0DA" name="elem" type="_XE1_MDUvEdyDReAOQiyvOg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_n74hMCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_n8DgUCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> TRACEpr (F7);&#xD;
+ PR (&quot;BOL&lt; ElType >::findPrevious&quot;);&#xD;
+&#xD;
+ ListCell *cur = beginning;&#xD;
+ for (; cur->next &amp;&amp; element >= cur->next->value; cur = cur->next);&#xD;
+&#xD;
+ return (cur);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_I4Q-4DanEdyMZ7r5-upW2A" name="modifyCellule" specification="_2-Vv8DamEdyMZ7r5-upW2A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_n8lEwCBaEeOMKsPXBVC0DA" name="element" type="_XE1_MDUvEdyDReAOQiyvOg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_n9KTkCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_n9UroCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_n9wJcCBaEeOMKsPXBVC0DA" name="cellule" type="_zOJVcDaeEdyC6dXxO2UOEQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_n-P4sCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_n-a30CBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> // Recherche de la place de la cellule dans la liste :&#xD;
+ if (!(element >= beginning->value)) // C'est le premier.&#xD;
+ {&#xD;
+ cellule->next = beginning;&#xD;
+ beginning = cellule;&#xD;
+ // Il y avait au départ plus d'un élément,&#xD;
+ // le dernier et le premier sont donc différents,&#xD;
+ // endElement est donc à jour.&#xD;
+ }&#xD;
+ else if (element >= endElement->value) // Dernier élément&#xD;
+ {&#xD;
+ endElement->next = cellule;&#xD;
+ endElement = cellule;&#xD;
+ cellule->next = NULL;&#xD;
+ }&#xD;
+ else // Autres cas :&#xD;
+ {&#xD;
+ ListCell *newPrevCel = findPrevious (element);&#xD;
+&#xD;
+ // Réinsertion de la cellule :&#xD;
+ cellule->next = newPrevCel->next;&#xD;
+ newPrevCel->next = cellule;&#xD;
+ }&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="__2PqIDa5Edyv9PRkTrTu0A" name="_current" specification="_ORpB4DaoEdyMZ7r5-upW2A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_n-4x4CBaEeOMKsPXBVC0DA" name="param_0" type="_zOJVcDaeEdyC6dXxO2UOEQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_n_ZIMCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_n_jgQCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return current;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_EpXa4Da6Edyv9PRkTrTu0A" name="set_current" specification="_QxrVsDaoEdyMZ7r5-upW2A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_oACBYCBaEeOMKsPXBVC0DA" name="cr_operand" type="_zOJVcDaeEdyC6dXxO2UOEQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oAhwoCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oAsvwCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> current = cr_operand;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_ILalUDa6Edyv9PRkTrTu0A" name="_beginning" specification="_InFS0DaoEdyMZ7r5-upW2A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_oBLQ4CBaEeOMKsPXBVC0DA" name="param_0" type="_zOJVcDaeEdyC6dXxO2UOEQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oBrAICBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oB1_QCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> return beginning;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_LiAGoDa6Edyv9PRkTrTu0A" name="set_beginning" specification="_Kzm0wDaoEdyMZ7r5-upW2A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_oCUgYCBaEeOMKsPXBVC0DA" name="cr_operand" type="_zOJVcDaeEdyC6dXxO2UOEQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oC1dwCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oDAc4CBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> beginning = cr_operand;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_OGEl4Da6Edyv9PRkTrTu0A" name="_endElement" specification="_Mh4UcDaoEdyMZ7r5-upW2A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_oDeW8CBaEeOMKsPXBVC0DA" name="param_0" type="_zOJVcDaeEdyC6dXxO2UOEQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oD-tQCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oEJsYCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> return endElement;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_RVM0UDa6Edyv9PRkTrTu0A" name="set_endElement" specification="_NLvw0DaoEdyMZ7r5-upW2A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_oEse8CBaEeOMKsPXBVC0DA" name="cr_operand" type="_zOJVcDaeEdyC6dXxO2UOEQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oFNcUCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oFYbcCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> endElement = cr_operand;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_UDZf8Da6Edyv9PRkTrTu0A" name="_freeMemory" specification="_WklIcDaoEdyMZ7r5-upW2A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_oF2VgCBaEeOMKsPXBVC0DA" name="param_0" type="_zOJVcDaeEdyC6dXxO2UOEQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oGWr0CBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oGhq8CBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> return freeMemory;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Vc9T4Da6Edyv9PRkTrTu0A" name="set_freeMemory" specification="_YZZ8EDaoEdyMZ7r5-upW2A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_oHAMECBaEeOMKsPXBVC0DA" name="cr_operand" type="_zOJVcDaeEdyC6dXxO2UOEQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oHf7UCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oHq6cCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> freeMemory = cr_operand;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_X405YDa6Edyv9PRkTrTu0A" name="_endOfMemory" specification="_aO0lkDaoEdyMZ7r5-upW2A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_oII0gCBaEeOMKsPXBVC0DA" name="param_0" type="_zOJVcDaeEdyC6dXxO2UOEQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oIojwCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oIzi4CBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> return endOfMemory;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_ZNniEDa6Edyv9PRkTrTu0A" name="set_endOfMemory" specification="_ddN0MDaoEdyMZ7r5-upW2A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_oJRc8CBaEeOMKsPXBVC0DA" name="cr_operand" type="_zOJVcDaeEdyC6dXxO2UOEQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oJxMMCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oJ8LUCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> endOfMemory = cr_operand;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_b9AggDa6Edyv9PRkTrTu0A" name="_firstFreeCellule" specification="_SaIhQDaoEdyMZ7r5-upW2A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_oKaFYCBaEeOMKsPXBVC0DA" name="param_0" type="_zOJVcDaeEdyC6dXxO2UOEQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oK6bsCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oLFa0CBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> return firstFreeCellule;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_dh4zoDa6Edyv9PRkTrTu0A" name="set_firstFreeCellule" specification="_ToX2ADaoEdyMZ7r5-upW2A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_oLoNYCBaEeOMKsPXBVC0DA" name="cr_operand" type="_zOJVcDaeEdyC6dXxO2UOEQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oMH8oCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oMS7wCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> firstFreeCellule = cr_operand;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_j5TBoDa6Edyv9PRkTrTu0A" name="BOL" specification="_ky3HADUyEdyDReAOQiyvOg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_oMwOwCBaEeOMKsPXBVC0DA" name="nbElem">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oNP-ACBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oNa9ICBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> TRACEpr (F7);&#xD;
+ PR (&quot; $$$ endOfMemory : &quot; &lt;&lt; (void *) endOfMemory);&#xD;
+ PR (&quot; - freeMemory : &quot; &lt;&lt; (void *) freeMemory);&#xD;
+ PR (&quot; = &quot; &lt;&lt; (int) endOfMemory - (int) freeMemory &lt;&lt; showI);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_vrKtMDa6Edyv9PRkTrTu0A" name="insert" specification="_9DJbEDUyEdyDReAOQiyvOg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_oNrb0CBaEeOMKsPXBVC0DA" name="param_0" type="_XE1_MDUvEdyDReAOQiyvOg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oOLLECBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oOWKMCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_oOuksCBaEeOMKsPXBVC0DA" name="element" type="_XE1_MDUvEdyDReAOQiyvOg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oPO7ACBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oPZ6ICBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> TRACEpr (F7);&#xD;
+ ElType *elementPtr = NULL;&#xD;
+&#xD;
+ ListCell *newCellule = new (this) ListCell (element);&#xD;
+&#xD;
+ PR (&quot;newCellule=&quot; &lt;&lt; (void *) newCellule &lt;&lt; showI);&#xD;
+&#xD;
+ if (newCellule)&#xD;
+ {&#xD;
+ PR (&quot;beginning=&quot; &lt;&lt; (void *) beginning);&#xD;
+ PR (&quot;, endElement=&quot; &lt;&lt; (void *) endElement &lt;&lt; showI);&#xD;
+&#xD;
+ if (!beginning)&#xD;
+ { // Cas liste vide :&#xD;
+ current = endElement = beginning = newCellule;&#xD;
+ PR (element &lt;&lt; &quot; : single element.&quot;);&#xD;
+ }&#xD;
+ else if (!(element >= beginning->value))&#xD;
+ { // Cas élément plus petit que tous les autres (plus petit que le premier) :&#xD;
+ newCellule->next = beginning;&#xD;
+ beginning = newCellule;&#xD;
+ PR (element &lt;&lt; &quot; : element stored ahead.&quot;);&#xD;
+ }&#xD;
+ else if (element >= endElement->value)&#xD;
+ { // Cas élément plus grand que tous les autres, ou égal au(x) plus grand(s),&#xD;
+ // (supérieur ou égal au dernier de la liste):&#xD;
+ endElement->next = newCellule;&#xD;
+ endElement = newCellule;&#xD;
+ PR (element &lt;&lt; &quot; : element stored at bottom.&quot;);&#xD;
+ }&#xD;
+ else&#xD;
+ {&#xD;
+ // Cas général, élément à insérer en milieu de liste:&#xD;
+ ListCell *prevCel = findPrevious (element);&#xD;
+ PR (&quot;prevCel=&quot; &lt;&lt; (void *) prevCel &lt;&lt; showI);&#xD;
+ newCellule->next = prevCel->next;&#xD;
+ prevCel->next = newCellule;&#xD;
+ PR (element &lt;&lt; &quot; : element stored after : &quot; &lt;&lt; prevCel->value);&#xD;
+ }&#xD;
+&#xD;
+ elementPtr = &amp;(newCellule->value);&#xD;
+ }&#xD;
+ PR (showI);&#xD;
+&#xD;
+ return elementPtr;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1ITrUDa6Edyv9PRkTrTu0A" name="retract" specification="_-f1bgDUyEdyDReAOQiyvOg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_oP6QcCBaEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oQZ_sCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oQk-0CBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_oQv98CBaEeOMKsPXBVC0DA" name="element" type="_XE1_MDUvEdyDReAOQiyvOg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oRPtMCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oRasUCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> TRACEpr (F7);&#xD;
+ PR (showI);&#xD;
+ bool result = FALSE;&#xD;
+&#xD;
+ if (beginning)&#xD;
+ { // List not empty.&#xD;
+ if (element.sameAs (beginning->value))&#xD;
+ { // Cas où l'élément est le premier de la liste :&#xD;
+ ListCell *nextBeginning = beginning->next;&#xD;
+&#xD;
+ if (endElement == beginning)&#xD;
+ endElement = NULL;&#xD;
+&#xD;
+ beginning->free (this);&#xD;
+&#xD;
+ current = beginning = nextBeginning;&#xD;
+ // Sinon, current risque d'indiquer un élément inexistant ;&#xD;
+&#xD;
+ result = TRUE;&#xD;
+ }&#xD;
+ else&#xD;
+ { // Autres cas :&#xD;
+ ListCell *prevCel = findElement (element);&#xD;
+&#xD;
+ if (prevCel)&#xD;
+ { // L'élément est trouvé.&#xD;
+ // prevCel->next est toujours non NULL, car c'est&#xD;
+ // le précédent. S'il n'y en a pas, c'est soit que la&#xD;
+ // liste est vide (beginning == NULL), soit qu'elle n'a&#xD;
+ // qu'un élément, c'est alors aussi le premier et c'est&#xD;
+ // traité avant !&#xD;
+ ListCell *destroyedCel = prevCel->next;&#xD;
+&#xD;
+ if (prevCel->next->next)&#xD;
+ prevCel->next = prevCel->next->next;&#xD;
+ else // prevCel->next == endElement&#xD;
+ {&#xD;
+ prevCel->next = NULL;&#xD;
+ endElement = prevCel;&#xD;
+ }&#xD;
+&#xD;
+ if (current == destroyedCel)&#xD;
+ current = beginning;&#xD;
+ // Sinon, current risque d'indiquer un élément inexistant.&#xD;
+ destroyedCel->free (this);&#xD;
+ result = TRUE;&#xD;
+ }&#xD;
+ else&#xD;
+ OSAL_ERROR (&quot;Element not found !&quot;);&#xD;
+ // ERROR ( &quot;HORREUR, Element inexistant...&quot; ) ;&#xD;
+ }&#xD;
+ }&#xD;
+ else&#xD;
+ OSAL_ERROR (&quot;empty list !&quot;);&#xD;
+ // ERROR ( &quot;HORREUR, Retrait d'un element dans une liste vide...&quot; ) ;&#xD;
+&#xD;
+ return result;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_4YCWsDa6Edyv9PRkTrTu0A" name="first" specification="_ApOw8DUzEdyDReAOQiyvOg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_oR6bkCBaEeOMKsPXBVC0DA" name="param_0" type="_XE1_MDUvEdyDReAOQiyvOg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oSax4CBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oSlJ8CBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> TRACEpr (F7);&#xD;
+ PR (showI);&#xD;
+&#xD;
+ ElType *element = NULL;&#xD;
+&#xD;
+ if (beginning)&#xD;
+ element = &amp;(beginning->value);&#xD;
+ else&#xD;
+ OSAL_ERROR (&quot;empty list !&quot;);&#xD;
+// ERROR ( &quot;HORREUR, Demande du premier élément d'une liste vide...&quot; ) ;&#xD;
+&#xD;
+ return ((element));&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_7z1IIDa6Edyv9PRkTrTu0A" name="last" specification="_CTesQDUzEdyDReAOQiyvOg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_oTIjkCBaEeOMKsPXBVC0DA" name="param_0" type="_XE1_MDUvEdyDReAOQiyvOg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oTo54CBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oTzR8CBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> TRACEpr (F7);&#xD;
+ PR (showI);&#xD;
+&#xD;
+ ElType *element = NULL;&#xD;
+&#xD;
+ if (endElement)&#xD;
+ element = &amp;(endElement->value);&#xD;
+ else&#xD;
+ OSAL_ERROR (&quot;empty list !&quot;);&#xD;
+// ERROR (&quot;HORREUR, Demande du dernier élément d'une liste vide...&quot;) ;&#xD;
+&#xD;
+ return ((element));&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_-_iPIDa6Edyv9PRkTrTu0A" name="goFirst" specification="_DrscYDUzEdyDReAOQiyvOg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_oURMACBaEeOMKsPXBVC0DA" name="param_0" type="_XE1_MDUvEdyDReAOQiyvOg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oUw7QCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oU76YCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> TRACEpr (F7);&#xD;
+ PR (showI);&#xD;
+&#xD;
+ ElType *element = NULL;&#xD;
+&#xD;
+ if (beginning)&#xD;
+ {&#xD;
+ element = &amp;(beginning->value);&#xD;
+ current = beginning;&#xD;
+ }&#xD;
+ else&#xD;
+ OSAL_ERROR (&quot;empty list !&quot;);&#xD;
+&#xD;
+ return element;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_CiCFgDa7Edyv9PRkTrTu0A" name="goLast" specification="_E8J-sDUzEdyDReAOQiyvOg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_oVZNYCBaEeOMKsPXBVC0DA" name="param_0" type="_XE1_MDUvEdyDReAOQiyvOg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oV5jsCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oWFJ4CBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> TRACEpr (F7);&#xD;
+ PR (showI);&#xD;
+&#xD;
+ ElType *element = NULL;&#xD;
+&#xD;
+ if (endElement)&#xD;
+ {&#xD;
+ element = &amp;(endElement->value);&#xD;
+ current = endElement;&#xD;
+ }&#xD;
+ else {&#xD;
+ OSAL_ERROR (&quot;empty list !&quot;);&#xD;
+ }&#xD;
+&#xD;
+ return element;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_FvrGMDa7Edyv9PRkTrTu0A" name="next" specification="_GN0a4DUzEdyDReAOQiyvOg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_oWic4CBaEeOMKsPXBVC0DA" name="param_0" type="_XE1_MDUvEdyDReAOQiyvOg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oXDaQCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oXNyUCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_oXmz4CBaEeOMKsPXBVC0DA" name="index">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oYHKMCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oYSJUCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> TRACEpr (F7);&#xD;
+ PR (showI);&#xD;
+&#xD;
+ ElType *element = NULL;&#xD;
+&#xD;
+ while (current != NULL &amp;&amp; (index--) > 0)&#xD;
+ {&#xD;
+ if (current->next != NULL)&#xD;
+ {&#xD;
+ element = &amp;(current->next->value);&#xD;
+ current = current->next;&#xD;
+ }&#xD;
+ else {&#xD;
+ // current->next == NULL&#xD;
+ current = NULL;&#xD;
+ }&#xD;
+ }&#xD;
+&#xD;
+ return element;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_JX1fsDa7Edyv9PRkTrTu0A" name="modify" specification="_HjplYDUzEdyDReAOQiyvOg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_oYiA8CBaEeOMKsPXBVC0DA" name="param_0" type="_XE1_MDUvEdyDReAOQiyvOg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oZC-UCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oZN9cCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_oZmX8CBaEeOMKsPXBVC0DA" name="element" type="_XE1_MDUvEdyDReAOQiyvOg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oaM04CBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oaXM8CBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> TRACEpr (F7);&#xD;
+ PR (showI);&#xD;
+&#xD;
+ ElType *elementPtr = NULL;&#xD;
+&#xD;
+ if (beginning)&#xD;
+ { // List not empty&#xD;
+ if (element.sameAs (beginning->value))&#xD;
+ { // Cas où l'élément est le premier :&#xD;
+ elementPtr = &amp;(beginning->value);&#xD;
+&#xD;
+ if (element != (*elementPtr))&#xD;
+ { // Sa valeur est différente&#xD;
+ beginning->value = element;&#xD;
+ if (beginning->next)&#xD;
+ { // La liste contient plus d'un élément&#xD;
+ if (element >= beginning->next->value)&#xD;
+ modifyFirst (element);&#xD;
+ // else, on ne modifie pas la place, il reste le premier.&#xD;
+ }&#xD;
+ // else, la liste n'a qu'un élément, c'est donc le premier.&#xD;
+ }&#xD;
+ // else, sa valeur est la même que celle qu'on veut mettre,&#xD;
+ // on ne fait donc rien.&#xD;
+ }&#xD;
+&#xD;
+ else {&#xD;
+ ListCell *prevCel = findElement (element);&#xD;
+&#xD;
+ if (prevCel)&#xD;
+ { // L'élément est trouvé&#xD;
+ // prevCel->next est toujours non NULL,&#xD;
+ // car c'est le &quot;précédent&quot;. S'il n'y en a pas,&#xD;
+ // c'est soit que la la liste est vide (beginning == NULL),&#xD;
+ // soit qu'elle n'a qu'un élément qui est alors aussi le&#xD;
+ // premier et cela a été traité avant !&#xD;
+&#xD;
+ elementPtr = &amp;(prevCel->next->value);&#xD;
+&#xD;
+ if (element != (*elementPtr))&#xD;
+ { // Valeur différente.&#xD;
+ // Mémorisation et mise à jour de la cellule :&#xD;
+ ListCell *cellule = prevCel->next;&#xD;
+ cellule->value = element;&#xD;
+&#xD;
+ // Retrait de la cellule de la liste :&#xD;
+ if (cellule == endElement)&#xD;
+ endElement = prevCel;&#xD;
+ prevCel->next = prevCel->next->next;&#xD;
+&#xD;
+ // Recherche de la place de la cellule dans la liste :&#xD;
+ modifyCellule (element, cellule);&#xD;
+&#xD;
+&#xD;
+ }&#xD;
+ // else, sa valeur est la même que celle qu'on veut mettre,&#xD;
+ // on ne fait donc rien.&#xD;
+ }&#xD;
+ else&#xD;
+ OSAL_ERROR (&quot;Element not found !&quot;);&#xD;
+ }&#xD;
+ }&#xD;
+ else {&#xD;
+ OSAL_ERROR (&quot;empty list !&quot;);&#xD;
+ }&#xD;
+&#xD;
+ return elementPtr;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_N1y4wDa7Edyv9PRkTrTu0A" name="search" specification="_I_JTADUzEdyDReAOQiyvOg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_oa-Q8CBaEeOMKsPXBVC0DA" name="param_0" type="_XE1_MDUvEdyDReAOQiyvOg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_obfOUCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_obqNcCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ocCA4CBaEeOMKsPXBVC0DA" name="element" type="_XE1_MDUvEdyDReAOQiyvOg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ociXMCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_octWUCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> TRACEpr (F7);&#xD;
+ PR (showI);&#xD;
+&#xD;
+ ElType *elementPtr = NULL;&#xD;
+&#xD;
+ if (beginning)&#xD;
+ { // List not empty&#xD;
+ if (element.sameAs (beginning->value))&#xD;
+ // This is the first element&#xD;
+ elementPtr = &amp;(beginning->value);&#xD;
+ else&#xD;
+ {&#xD;
+ ListCell *prevCel = findElement (element);&#xD;
+&#xD;
+ if (prevCel)&#xD;
+ elementPtr = &amp;(prevCel->next->value);&#xD;
+ //else&#xD;
+ // ERROR ( &quot;Element not found !&quot; ) ;&#xD;
+ }&#xD;
+ }&#xD;
+ else {&#xD;
+ OSAL_ERROR (&quot;empty list !&quot;);&#xD;
+ }&#xD;
+&#xD;
+ return elementPtr;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_QeojQDa7Edyv9PRkTrTu0A" name="isEmpty" specification="_KWxNQDUzEdyDReAOQiyvOg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_odMegCBaEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_odsNwCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_od3M4CBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> TRACEpr (F7);&#xD;
+ PR (showI);&#xD;
+&#xD;
+ return (beginning ? FALSE : TRUE);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_ToGOkDa7Edyv9PRkTrTu0A" name="BOL" specification="_MPd0QDUzEdyDReAOQiyvOg">
+ <language>C/C++</language>
+ <body> current = beginning;&#xD;
+ ListCell *destroyedCel;&#xD;
+ while (current)&#xD;
+ {&#xD;
+ destroyedCel = current;&#xD;
+ current = current->next;&#xD;
+ destroyedCel->free (this);&#xD;
+ }&#xD;
+&#xD;
+ current = beginning = endElement = NULL;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_aY1ikDa7Edyv9PRkTrTu0A" name="modifyFirst" specification="_lrJPMDa5Edyv9PRkTrTu0A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_oeMkECBaEeOMKsPXBVC0DA" name="element" type="_XE1_MDUvEdyDReAOQiyvOg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oesTUCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oe3ScCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> // Retrait de la cellule :&#xD;
+&#xD;
+ ListCell *oldBeginning = beginning;&#xD;
+ beginning = beginning->next;&#xD;
+&#xD;
+ if (element >= endElement->value)&#xD;
+ {&#xD;
+ // if this element is bigger than the others:&#xD;
+ endElement->next = oldBeginning;&#xD;
+ endElement = oldBeginning;&#xD;
+ oldBeginning->next = NULL;&#xD;
+ }&#xD;
+ else&#xD;
+ {&#xD;
+ // general case, element is inserted in the middle&#xD;
+ ListCell *prevCel = findPrevious (element);&#xD;
+&#xD;
+ oldBeginning->next = prevCel->next;&#xD;
+ prevCel->next = oldBeginning;&#xD;
+ }&#xD;
+</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_ky3HADUyEdyDReAOQiyvOg" name="BOL" method="_j5TBoDa6Edyv9PRkTrTu0A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_npZ2UDUyEdyDReAOQiyvOg" name="nbElem">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oykd0DUyEdyDReAOQiyvOg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oyuO0DUyEdyDReAOQiyvOg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_9DJbEDUyEdyDReAOQiyvOg" name="insert" method="_vrKtMDa6Edyv9PRkTrTu0A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_iGkDYDUzEdyDReAOQiyvOg" name="param_0" type="_XE1_MDUvEdyDReAOQiyvOg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jROfsDUzEdyDReAOQiyvOg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jRXpoDUzEdyDReAOQiyvOg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_m35EYDUzEdyDReAOQiyvOg" name="element" type="_XE1_MDUvEdyDReAOQiyvOg"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_-f1bgDUyEdyDReAOQiyvOg" name="retract" method="_1ITrUDa6Edyv9PRkTrTu0A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_8lwfADUzEdyDReAOQiyvOg" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_8pB1cDUzEdyDReAOQiyvOg" name="element" type="_XE1_MDUvEdyDReAOQiyvOg"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_ApOw8DUzEdyDReAOQiyvOg" name="first" method="_4YCWsDa6Edyv9PRkTrTu0A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_XB94EDU0EdylmKH0Uq8VaA" name="param_0" type="_XE1_MDUvEdyDReAOQiyvOg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_YWTNwDU0EdylmKH0Uq8VaA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_YWc-wDU0EdylmKH0Uq8VaA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_CTesQDUzEdyDReAOQiyvOg" name="last" method="_7z1IIDa6Edyv9PRkTrTu0A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_F0HPgDU1EdylmKH0Uq8VaA" name="param_0" type="_XE1_MDUvEdyDReAOQiyvOg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HFeJsDU1EdylmKH0Uq8VaA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HFn6sDU1EdylmKH0Uq8VaA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_DrscYDUzEdyDReAOQiyvOg" name="goFirst" method="_-_iPIDa6Edyv9PRkTrTu0A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_PzPLEDU1EdylmKH0Uq8VaA" name="param_0" type="_XE1_MDUvEdyDReAOQiyvOg" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_E8J-sDUzEdyDReAOQiyvOg" name="goLast" method="_CiCFgDa7Edyv9PRkTrTu0A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Vlh50DU1EdylmKH0Uq8VaA" name="param_0" type="_XE1_MDUvEdyDReAOQiyvOg" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_GN0a4DUzEdyDReAOQiyvOg" name="next" method="_FvrGMDa7Edyv9PRkTrTu0A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_bbtqEDU1EdylmKH0Uq8VaA" name="param_0" type="_XE1_MDUvEdyDReAOQiyvOg" direction="return"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_bfunYDU1EdylmKH0Uq8VaA" name="index">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_jaPnMCBIEeOBrb_t_69W4Q" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_HjplYDUzEdyDReAOQiyvOg" name="modify" method="_JX1fsDa7Edyv9PRkTrTu0A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_yUhN0DU1EdylmKH0Uq8VaA" name="param_0" type="_XE1_MDUvEdyDReAOQiyvOg" direction="return"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_yYP3QDU1EdylmKH0Uq8VaA" name="element" type="_XE1_MDUvEdyDReAOQiyvOg"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_I_JTADUzEdyDReAOQiyvOg" name="search" method="_N1y4wDa7Edyv9PRkTrTu0A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_V2hJkDadEdyC6dXxO2UOEQ" name="param_0" type="_XE1_MDUvEdyDReAOQiyvOg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_V20EgDadEdyC6dXxO2UOEQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_V3G_cDadEdyC6dXxO2UOEQ" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_WOgLwDadEdyC6dXxO2UOEQ" name="element" type="_XE1_MDUvEdyDReAOQiyvOg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WOztwDadEdyC6dXxO2UOEQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_WO83sDadEdyC6dXxO2UOEQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_KWxNQDUzEdyDReAOQiyvOg" name="isEmpty" method="_QeojQDa7Edyv9PRkTrTu0A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_u3hv8DadEdyC6dXxO2UOEQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_u30q4DadEdyC6dXxO2UOEQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_u3-b4DadEdyC6dXxO2UOEQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_MPd0QDUzEdyDReAOQiyvOg" name="BOL" method="_ToGOkDa7Edyv9PRkTrTu0A"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Am2XwDamEdyMZ7r5-upW2A" name="findElement" method="_cYvxYDamEdyMZ7r5-upW2A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_FBO4YDamEdyMZ7r5-upW2A" name="param_0" type="_zOJVcDaeEdyC6dXxO2UOEQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FBhzUDamEdyMZ7r5-upW2A" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FBrkUDamEdyMZ7r5-upW2A" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_FGADoDamEdyMZ7r5-upW2A" name="element" type="_XE1_MDUvEdyDReAOQiyvOg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FGS-kDamEdyMZ7r5-upW2A" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FGcvkDamEdyMZ7r5-upW2A" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_gDSwgDamEdyMZ7r5-upW2A" name="findPrevious" method="_zhpmoDamEdyMZ7r5-upW2A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_h1SSkDamEdyMZ7r5-upW2A" name="param_0" type="_zOJVcDaeEdyC6dXxO2UOEQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_h1cDkDamEdyMZ7r5-upW2A" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_h1lNgDamEdyMZ7r5-upW2A" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_h5KF8DamEdyMZ7r5-upW2A" name="elem" type="_XE1_MDUvEdyDReAOQiyvOg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_h5dn8DamEdyMZ7r5-upW2A" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_h5mx4DamEdyMZ7r5-upW2A" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_2-Vv8DamEdyMZ7r5-upW2A" name="modifyCellule" method="_I4Q-4DanEdyMZ7r5-upW2A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_44iLwDamEdyMZ7r5-upW2A" name="element" type="_XE1_MDUvEdyDReAOQiyvOg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_44rVsDamEdyMZ7r5-upW2A" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_441GsDamEdyMZ7r5-upW2A" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_47gnQDamEdyMZ7r5-upW2A" name="cellule" type="_zOJVcDaeEdyC6dXxO2UOEQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_47qYQDamEdyMZ7r5-upW2A" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_47ziMDamEdyMZ7r5-upW2A" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_InFS0DaoEdyMZ7r5-upW2A" name="_beginning" method="_ILalUDa6Edyv9PRkTrTu0A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_gR0CwDaoEdyMZ7r5-upW2A" name="param_0" type="_zOJVcDaeEdyC6dXxO2UOEQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gR9zwDaoEdyMZ7r5-upW2A" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gR9zwTaoEdyMZ7r5-upW2A" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Kzm0wDaoEdyMZ7r5-upW2A" name="set_beginning" method="_LiAGoDa6Edyv9PRkTrTu0A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_4jvVkDaoEdyv9PRkTrTu0A" name="cr_operand" type="_zOJVcDaeEdyC6dXxO2UOEQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_4kCQgDaoEdyv9PRkTrTu0A" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_4kVygDaoEdyv9PRkTrTu0A" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Mh4UcDaoEdyMZ7r5-upW2A" name="_endElement" method="_OGEl4Da6Edyv9PRkTrTu0A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_iP2AQDapEdyv9PRkTrTu0A" name="param_0" type="_zOJVcDaeEdyC6dXxO2UOEQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iP_xQDapEdyv9PRkTrTu0A" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iQI7MDapEdyv9PRkTrTu0A" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_NLvw0DaoEdyMZ7r5-upW2A" name="set_endElement" method="_RVM0UDa6Edyv9PRkTrTu0A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_F389oDapEdyv9PRkTrTu0A" name="cr_operand" type="_zOJVcDaeEdyC6dXxO2UOEQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_F4P4kDapEdyv9PRkTrTu0A" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_F4ZpkDapEdyv9PRkTrTu0A" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_ORpB4DaoEdyMZ7r5-upW2A" name="_current" method="__2PqIDa5Edyv9PRkTrTu0A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_wDf9YDapEdyv9PRkTrTu0A" name="param_0" type="_zOJVcDaeEdyC6dXxO2UOEQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wDy4UDapEdyv9PRkTrTu0A" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wD8pUDapEdyv9PRkTrTu0A" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_QxrVsDaoEdyMZ7r5-upW2A" name="set_current" method="_EpXa4Da6Edyv9PRkTrTu0A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_5TPDYDapEdyv9PRkTrTu0A" name="cr_operand" type="_zOJVcDaeEdyC6dXxO2UOEQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_5Th-UDapEdyv9PRkTrTu0A" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_5TrvUDapEdyv9PRkTrTu0A" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_SaIhQDaoEdyMZ7r5-upW2A" name="_firstFreeCellule" method="_b9AggDa6Edyv9PRkTrTu0A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_DsSh4DaqEdyv9PRkTrTu0A" name="param_0" type="_zOJVcDaeEdyC6dXxO2UOEQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Dslc0DaqEdyv9PRkTrTu0A" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DsvN0DaqEdyv9PRkTrTu0A" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_ToX2ADaoEdyMZ7r5-upW2A" name="set_firstFreeCellule" method="_dh4zoDa6Edyv9PRkTrTu0A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_LADDYDaqEdyv9PRkTrTu0A" name="cr_operand" type="_zOJVcDaeEdyC6dXxO2UOEQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LAfvUDaqEdyv9PRkTrTu0A" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LAo5QDaqEdyv9PRkTrTu0A" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_WklIcDaoEdyMZ7r5-upW2A" name="_freeMemory" method="_UDZf8Da6Edyv9PRkTrTu0A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_XldrwDaqEdyv9PRkTrTu0A" name="param_0" type="_zOJVcDaeEdyC6dXxO2UOEQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XlxNwDaqEdyv9PRkTrTu0A" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Xl6XsDaqEdyv9PRkTrTu0A" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_YZZ8EDaoEdyMZ7r5-upW2A" name="set_freeMemory" method="_Vc9T4Da6Edyv9PRkTrTu0A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_iOT5wDaqEdyv9PRkTrTu0A" name="cr_operand" type="_zOJVcDaeEdyC6dXxO2UOEQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iOdqwDaqEdyv9PRkTrTu0A" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iOnbwDaqEdyv9PRkTrTu0A" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_aO0lkDaoEdyMZ7r5-upW2A" name="_endOfMemory" method="_X405YDa6Edyv9PRkTrTu0A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_iIN30Da1Edyv9PRkTrTu0A" name="param_0" type="_zOJVcDaeEdyC6dXxO2UOEQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iIhZ0Da1Edyv9PRkTrTu0A" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iIqjwDa1Edyv9PRkTrTu0A" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_ddN0MDaoEdyMZ7r5-upW2A" name="set_endOfMemory" method="_ZNniEDa6Edyv9PRkTrTu0A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_sFG-wDa1Edyv9PRkTrTu0A" name="cr_operand" type="_zOJVcDaeEdyC6dXxO2UOEQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sFQvwDa1Edyv9PRkTrTu0A" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sFZ5sDa1Edyv9PRkTrTu0A" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_lrJPMDa5Edyv9PRkTrTu0A" name="modifyFirst" visibility="protected" method="_aY1ikDa7Edyv9PRkTrTu0A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_oX2tEDa5Edyv9PRkTrTu0A" name="element" visibility="public" type="_XE1_MDUvEdyDReAOQiyvOg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oYJoADa5Edyv9PRkTrTu0A" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oYSx8Da5Edyv9PRkTrTu0A" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_zOJVcDaeEdyC6dXxO2UOEQ" name="ListCell">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_VurNcDajEdyC6dXxO2UOEQ" name="value" type="_XE1_MDUvEdyDReAOQiyvOg" isUnique="false">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ZGTQkDajEdyC6dXxO2UOEQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ZGdBkDajEdyC6dXxO2UOEQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_JP6ksDa5Edyv9PRkTrTu0A" name="next" type="_zOJVcDaeEdyC6dXxO2UOEQ" isUnique="false" association="_JPxawDa5Edyv9PRkTrTu0A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_UWAIUDa5Edyv9PRkTrTu0A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_UWJ5UDa5Edyv9PRkTrTu0A" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_48-rEDafEdyC6dXxO2UOEQ" name="operator new" specification="_ftqi8DafEdyC6dXxO2UOEQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_vzZakCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_vz6_ACBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_v0GlMCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_v0SLYCBbEeOMKsPXBVC0DA" name="nbElem">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_v0098CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_v1AkICBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_v1LjQCBbEeOMKsPXBVC0DA" name="currentList" type="_xxCKcDUuEdyDReAOQiyvOg" direction="inout">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_v1tHsCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_v14t4CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> ListCell *allocatedCellule = NULL;&#xD;
+&#xD;
+ if (currentList->firstFreeCellule)&#xD;
+ {&#xD;
+ allocatedCellule = currentList->firstFreeCellule;&#xD;
+ currentList->firstFreeCellule =&#xD;
+ currentList->firstFreeCellule->next;&#xD;
+ }&#xD;
+ else if (currentList->freeMemory)&#xD;
+ {&#xD;
+ allocatedCellule = currentList->freeMemory;&#xD;
+&#xD;
+ if (currentList->freeMemory &lt; currentList->endOfMemory) {&#xD;
+ currentList->freeMemory++;&#xD;
+ }&#xD;
+ else if (currentList->freeMemory == currentList->endOfMemory) {&#xD;
+ currentList->freeMemory = NULL;&#xD;
+ }&#xD;
+ else {&#xD;
+ OSAL_ERROR (&quot;Bad allocation pointers !&quot;);&#xD;
+ }&#xD;
+ }&#xD;
+ else {&#xD;
+ OSAL_ERROR (&quot;Bounded list is full !&quot;);&#xD;
+ }&#xD;
+&#xD;
+ return allocatedCellule;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_DromIDagEdyC6dXxO2UOEQ" name="free" specification="_A4X0UDagEdyC6dXxO2UOEQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_v2XPACBbEeOMKsPXBVC0DA" name="currentList" type="_xxCKcDUuEdyDReAOQiyvOg" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_v24zcCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_v3EZoCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> next = currentList->firstFreeCellule;&#xD;
+ currentList->firstFreeCellule = this;&#xD;
+&#xD;
+ delete this;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_REDRYTajEdyC6dXxO2UOEQ" name="ListCell" specification="_-xPoYDaiEdyC6dXxO2UOEQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_v3jh0CBbEeOMKsPXBVC0DA" name="elt" type="_XE1_MDUvEdyDReAOQiyvOg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_v4FGQCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_v4QscCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body></body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_ftqi8DafEdyC6dXxO2UOEQ" name="operator new" method="_48-rEDafEdyC6dXxO2UOEQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_heBGQDafEdyC6dXxO2UOEQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_heUBMDafEdyC6dXxO2UOEQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hedyMDafEdyC6dXxO2UOEQ" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_hjYucDafEdyC6dXxO2UOEQ" name="nbElem">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hjrpYDafEdyC6dXxO2UOEQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hj0zUDafEdyC6dXxO2UOEQ" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_hoAIsDafEdyC6dXxO2UOEQ" name="currentList" type="_xxCKcDUuEdyDReAOQiyvOg" direction="inout">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hoTDoDafEdyC6dXxO2UOEQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hoc0oDafEdyC6dXxO2UOEQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_A4X0UDagEdyC6dXxO2UOEQ" name="free" method="_DromIDagEdyC6dXxO2UOEQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_GHp8oDagEdyC6dXxO2UOEQ" name="currentList" type="_xxCKcDUuEdyDReAOQiyvOg" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GH83kDagEdyC6dXxO2UOEQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GIPygDagEdyC6dXxO2UOEQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Z_TnEDahEdyC6dXxO2UOEQ" name="getNext"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_-xPoYDaiEdyC6dXxO2UOEQ" name="ListCell" method="_REDRYTajEdyC6dXxO2UOEQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_BHwMwDajEdyC6dXxO2UOEQ" name="elt" type="_XE1_MDUvEdyDReAOQiyvOg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BH59wDajEdyC6dXxO2UOEQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BIDHsDajEdyC6dXxO2UOEQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_a-g58DakEdyMZ7r5-upW2A" name="operator delete" visibility="protected">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_nU5AwDakEdyMZ7r5-upW2A" name="memoryAddress" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nVfdsDakEdyMZ7r5-upW2A" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nVonoDakEdyMZ7r5-upW2A" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_5hcQwDakEdyMZ7r5-upW2A" name="operator new" visibility="private">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_GV6o0DalEdyMZ7r5-upW2A" annotatedElement="_5hcQwDakEdyMZ7r5-upW2A">
+ <body>declare the standard new-operator as private, since its invocation&#xD;
+should be replaced by the call to the new operator defined above&#xD;
+(with the additional parameter currentList).&#xD;
+I.e. don't use &quot;new ListCell&quot;, use &quot;new (this) ListCell&quot; instead</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_7GUj4DakEdyMZ7r5-upW2A" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_7GeU4DakEdyMZ7r5-upW2A" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_7GxP0DakEdyMZ7r5-upW2A" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_7JcwYDakEdyMZ7r5-upW2A" name="nbElem">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_7J5cUDakEdyMZ7r5-upW2A" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_7KDNUDakEdyMZ7r5-upW2A" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </nestedClassifier>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_y68Y0DUuEdyDReAOQiyvOg" name="CircularBuffer">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_3wqfwDbdEdy0Rd6V_tf1-Q" annotatedElement="_y68Y0DUuEdyDReAOQiyvOg">
+ <body>A circular buffer - seems to be unused (besides the tests).&#xD;
+[todo:] missing the possibility to delete elements from the buffer</body>
+ </ownedComment>
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_mgxFQDbdEdy0Rd6V_tf1-Q" parameter="_pjE_sDbdEdy0Rd6V_tf1-Q _p6xuADbdEdy0Rd6V_tf1-Q">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_pjE_sDbdEdy0Rd6V_tf1-Q" parameteredElement="_sd8OUDbdEdy0Rd6V_tf1-Q">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_sd8OUDbdEdy0Rd6V_tf1-Q" name="ElType" templateParameter="_pjE_sDbdEdy0Rd6V_tf1-Q"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:TemplateParameter" xmi:id="_p6xuADbdEdy0Rd6V_tf1-Q" parameteredElement="_v7rggDbdEdy0Rd6V_tf1-Q">
+ <ownedParameteredElement xmi:type="uml:LiteralInteger" xmi:id="_v7rggDbdEdy0Rd6V_tf1-Q" name="nbElem" templateParameter="_p6xuADbdEdy0Rd6V_tf1-Q" value="-1"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_IPWqUDbfEdy0Rd6V_tf1-Q" name="current" visibility="private" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KThhgDbfEdy0Rd6V_tf1-Q" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KTrSgDbfEdy0Rd6V_tf1-Q" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_ISLU0DbfEdy0Rd6V_tf1-Q" name="full" visibility="private" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_R2oGkDbfEdy0Rd6V_tf1-Q" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_R2x3kDbfEdy0Rd6V_tf1-Q" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_IVAmYDbfEdy0Rd6V_tf1-Q" name="vector" visibility="private" type="_sd8OUDbdEdy0Rd6V_tf1-Q" isUnique="false">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TUXP4DbfEdy0Rd6V_tf1-Q" name="nbElem"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TUXP4TbfEdy0Rd6V_tf1-Q" name="nbElem" value="*"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_aslaoTbfEdy0Rd6V_tf1-Q" name="CircularBuffer" specification="_C1-AQDbeEdy0Rd6V_tf1-Q">
+ <language>C/C++</language>
+ <body></body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_fDZC0DbfEdy0Rd6V_tf1-Q" name="number" specification="_p1ESIDbeEdy0Rd6V_tf1-Q">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_sVwEcCBaEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sWZksCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sWo1QCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return (full ? nbElem : current);</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_grGngDbfEdy0Rd6V_tf1-Q" name="size" specification="_795fwDbeEdy0Rd6V_tf1-Q">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_sW8-UCBaEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sXd7sCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sXo60CBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return nbElem;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1y9yEDbfEdy0Rd6V_tf1-Q" name="append" specification="_K37EgDbeEdy0Rd6V_tf1-Q">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_sX4ycCBaEeOMKsPXBVC0DA" name="el" type="_sd8OUDbdEdy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sYZIwCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sYkH4CBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>vector[current++] = el;&#xD;
+&#xD;
+if (current == nbElem)&#xD;
+{&#xD;
+ current = 0; // if end is reached, start add the beginning&#xD;
+ full = TRUE; // only useful the first time&#xD;
+}</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_6MJ_4DbfEdy0Rd6V_tf1-Q" name="getElement" specification="_XikLIDbeEdy0Rd6V_tf1-Q">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_sZD3ICBaEeOMKsPXBVC0DA" name="param_0" type="_sd8OUDbdEdy0Rd6V_tf1-Q" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sZkNcCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sZulgCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_saHAACBaEeOMKsPXBVC0DA" name="relativeIndex">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sanWUCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sayVcCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> int index = -1;&#xD;
+&#xD;
+ if ((relativeIndex >= 0) &amp;&amp; (relativeIndex &lt; nbElem))&#xD;
+ {&#xD;
+ if (full)&#xD;
+ {&#xD;
+ index = current + relativeIndex;&#xD;
+ if (index >= nbElem) {&#xD;
+ index -= nbElem;&#xD;
+ }&#xD;
+ }&#xD;
+ }&#xD;
+ else if ((relativeIndex &lt; 0) &amp;&amp; (relativeIndex >= -nbElem))&#xD;
+ {&#xD;
+ if (full || (relativeIndex >= -current))&#xD;
+ {&#xD;
+ index = current + relativeIndex;&#xD;
+ if (index &lt; 0) {&#xD;
+ index += nbElem;&#xD;
+ }&#xD;
+ }&#xD;
+ }&#xD;
+&#xD;
+ if (index != -1) {&#xD;
+ return vector + index;&#xD;
+ }&#xD;
+ else {&#xD;
+ return NULL;&#xD;
+ }</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_C1-AQDbeEdy0Rd6V_tf1-Q" name="CircularBuffer" method="_aslaoTbfEdy0Rd6V_tf1-Q">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_HCC_IDbeEdy0Rd6V_tf1-Q" annotatedElement="_C1-AQDbeEdy0Rd6V_tf1-Q">
+ <body>Create a circular buffer containing a certain number of objects of type&#xD;
+ElType. The type and the number of elements are template parameters.</body>
+ </ownedComment>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_K37EgDbeEdy0Rd6V_tf1-Q" name="append" method="_1y9yEDbfEdy0Rd6V_tf1-Q">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_NLvhQDbeEdy0Rd6V_tf1-Q" name="el" type="_sd8OUDbdEdy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_NMDDQDbeEdy0Rd6V_tf1-Q" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_NMMNMDbeEdy0Rd6V_tf1-Q" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_XikLIDbeEdy0Rd6V_tf1-Q" name="getElement" method="_6MJ_4DbfEdy0Rd6V_tf1-Q">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_l-AhADbeEdy0Rd6V_tf1-Q" annotatedElement="_XikLIDbeEdy0Rd6V_tf1-Q">
+ <body>Get an element from the buffer. The index is relative to the last&#xD;
+addition to the buffer: negative values address &quot;backward&quot; elements&#xD;
+(-1 addresses the last added), positive values &quot;forward&quot; elements&#xD;
+(only useful, if the buffer has already been completely filled).&#xD;
+&#xD;
+Thus, values in the range [-m_nbElem, m_nbElem] are possible.&#xD;
+Returns NULL, if index is out of bounds or no element stored so far&#xD;
+under this index.</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Zd8SsDbeEdy0Rd6V_tf1-Q" name="param_0" type="_sd8OUDbdEdy0Rd6V_tf1-Q" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ZeP0sDbeEdy0Rd6V_tf1-Q" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ZeY-oDbeEdy0Rd6V_tf1-Q" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Zh93EDbeEdy0Rd6V_tf1-Q" name="relativeIndex">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ZiRZEDbeEdy0Rd6V_tf1-Q" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ZiajADbeEdy0Rd6V_tf1-Q" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_p1ESIDbeEdy0Rd6V_tf1-Q" name="number" method="_fDZC0DbfEdy0Rd6V_tf1-Q">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_3GAjwDbeEdy0Rd6V_tf1-Q" annotatedElement="_p1ESIDbeEdy0Rd6V_tf1-Q">
+ <body>returns the number of elements currently in the buffer.</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_whfG0DbeEdy0Rd6V_tf1-Q" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_who30DbeEdy0Rd6V_tf1-Q" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_whyBwDbeEdy0Rd6V_tf1-Q" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_795fwDbeEdy0Rd6V_tf1-Q" name="size" method="_grGngDbfEdy0Rd6V_tf1-Q">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_-SweUDbeEdy0Rd6V_tf1-Q" annotatedElement="_795fwDbeEdy0Rd6V_tf1-Q">
+ <body>returns the size of the buffer.</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_AV4zsDbfEdy0Rd6V_tf1-Q" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_AWMVsDbfEdy0Rd6V_tf1-Q" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_AWVfoDbfEdy0Rd6V_tf1-Q" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_2bXLkDUuEdyDReAOQiyvOg" name="SetOf">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_mbpXsDa8Edy_E4ZljVbr-g" annotatedElement="_2bXLkDUuEdyDReAOQiyvOg">
+ <body>Manage a set of pointers to an element type (passed as template instance)&#xD;
+This class roughly resembles Objecteering's set_of macro and is used to&#xD;
+migrate existing code easily to other case tools.&#xD;
+&#xD;
+The second class for the template instantiation needs to be a&#xD;
+&quot;const variant&quot; of the first class.&#xD;
+&#xD;
+Caveat: this class uses dynamic memory allocation&#xD;
+=> todo: create a purely static variant</body>
+ </ownedComment>
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_wxa4sDa8Edy_E4ZljVbr-g" parameter="_4MoGADa8Edy_E4ZljVbr-g">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_4MoGADa8Edy_E4ZljVbr-g" parameteredElement="_O4b6IDa-Edy_E4ZljVbr-g">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_O4b6IDa-Edy_E4ZljVbr-g" name="T" templateParameter="_4MoGADa8Edy_E4ZljVbr-g"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_QYjFMDbCEdy0gLsbEakL5w" name="content" visibility="private" type="_O4b6IDa-Edy_E4ZljVbr-g" isUnique="false">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_koX0gDbCEdy0gLsbEakL5w"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_koX0gTbCEdy0gLsbEakL5w" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_QcH9oDbCEdy0gLsbEakL5w" name="cardinal_number" visibility="private" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kCh8gDbCEdy0gLsbEakL5w" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kCh8gTbCEdy0gLsbEakL5w" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_QfZ7IDbCEdy0gLsbEakL5w" name="size_block" visibility="private" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lOq_gDbCEdy0gLsbEakL5w" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lOq_gTbCEdy0gLsbEakL5w" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_QiiHoDbCEdy0gLsbEakL5w" name="real_size" visibility="private" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nEZLADbCEdy0gLsbEakL5w" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nEZLATbCEdy0gLsbEakL5w" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_gW5foDa_Edy_E4ZljVbr-g" name="size" specification="_Q1uQwDa_Edy_E4ZljVbr-g">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_uJkLcCBaEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_uKD6sCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_uKOSwCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return cardinal_number; </body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_AT-gQDbAEdy0gLsbEakL5w" name="get" specification="_sUiWUDa_Edy0gLsbEakL5w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_uKexcCBaEeOMKsPXBVC0DA" name="param_0" type="_O4b6IDa-Edy_E4ZljVbr-g" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_uK_HwCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_uLJf0CBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_uLUe8CBaEeOMKsPXBVC0DA" name="index">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_uL01QCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_uL_NUCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return content[index];</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_-zmLQDbCEdy0gLsbEakL5w" name="adjust_size" specification="_q4yCoDbCEdy0gLsbEakL5w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_uMPsACBaEeOMKsPXBVC0DA" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_uMvbQCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_uM5zUCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_uNFZgCBaEeOMKsPXBVC0DA" name="desired_size">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_uNlv0CBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_uN1ncCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>int size = 0x10;&#xD;
+&#xD;
+while (size &lt; desired_size)&#xD;
+{&#xD;
+ if (size &lt; size_block) {&#xD;
+ size = size*2;&#xD;
+ }&#xD;
+ else {&#xD;
+ size += size_block;&#xD;
+ }&#xD;
+}&#xD;
+return size;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_B6rQ8DbDEdy0gLsbEakL5w" name="SetOf" specification="_rnk_IDa-Edy_E4ZljVbr-g">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_uOUvoCBaEeOMKsPXBVC0DA" name="init_size">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_uO1F8CBaEeOMKsPXBVC0DA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_uO_eACBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_uPRx4CBaEeOMKsPXBVC0DA" name="init_size_block">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_uPyIMCBaEeOMKsPXBVC0DA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_uP8gQCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>size_block = init_size_block;&#xD;
+real_size = adjust_size(init_size);&#xD;
+content = new T [real_size];&#xD;
+cardinal_number = 0;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_IDLgQDbDEdy0gLsbEakL5w" name="SetOf" specification="_-M24MDa-Edy_E4ZljVbr-g">
+ <language>C/C++</language>
+ <body>delete [] content; </body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_KtqJgDbDEdy0gLsbEakL5w" name="find" specification="_DQoeoDbAEdy0gLsbEakL5w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_uQZzQCBaEeOMKsPXBVC0DA" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_uQ6JkCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_uREhoCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_uRPgwCBaEeOMKsPXBVC0DA" name="entry" type="_O4b6IDa-Edy_E4ZljVbr-g">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_uRvQACBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_uR5oECBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>for (int i = 0; i &lt; cardinal_number; i++) {&#xD;
+ if (content[i] == entry) {&#xD;
+ return i;&#xD;
+ }&#xD;
+}&#xD;
+&#xD;
+return -1;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_NpQ_ADbDEdy0gLsbEakL5w" name="append" specification="_wQyUADbAEdy0gLsbEakL5w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_uSRbgCBaEeOMKsPXBVC0DA" name="entry" type="_O4b6IDa-Edy_E4ZljVbr-g">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_uSxx0CBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_uS8w8CBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>if (cardinal_number >= real_size)&#xD;
+{&#xD;
+ real_size = adjust_size(cardinal_number + 1);&#xD;
+ T * new_content = new T [real_size];&#xD;
+ memcpy(new_content, content, cardinal_number * sizeof(T));&#xD;
+ delete [] content;&#xD;
+ content = new_content;&#xD;
+}&#xD;
+content[cardinal_number++] = (T) entry;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_QvTi4DbDEdy0gLsbEakL5w" name="insert" specification="_b589wDbAEdy0gLsbEakL5w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_uTUkYCBaEeOMKsPXBVC0DA" name="index">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_uT06sCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_uT_50CBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_uUKR4CBaEeOMKsPXBVC0DA" name="entry" type="_O4b6IDa-Edy_E4ZljVbr-g">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_uUrPQCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_uU2OYCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>if (cardinal_number >= real_size)&#xD;
+{&#xD;
+ real_size = adjust_size(cardinal_number + 1);&#xD;
+ T * new_content = new T [real_size];&#xD;
+ memcpy(new_content, content, cardinal_number * sizeof(T));&#xD;
+ delete [] content;&#xD;
+ content = new_content;&#xD;
+}&#xD;
+if (index &lt; cardinal_number) {&#xD;
+ memmove(&#xD;
+ &amp;(content[index+1]),&#xD;
+ &amp;(content[index]),&#xD;
+ (cardinal_number-index) * sizeof(T));&#xD;
+}&#xD;
+content[index] = (T) entry;&#xD;
+cardinal_number++;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_S9KhkDbDEdy0gLsbEakL5w" name="eraseValue" specification="_Ch8-QDbBEdy0gLsbEakL5w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_uVS6UCBaEeOMKsPXBVC0DA" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_uVypkCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_uV9osCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_uWIAwCBaEeOMKsPXBVC0DA" name="entry" type="_O4b6IDa-Edy_E4ZljVbr-g">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_uWoXECBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_uWzWMCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>for (int i = 0; i &lt; cardinal_number; i++) {&#xD;
+ if (content[i] == entry) {&#xD;
+ erase(i);&#xD;
+ return true; // only erase first entry&#xD;
+ }&#xD;
+}&#xD;
+return false;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Vn8FwDbDEdy0gLsbEakL5w" name="erase" specification="_kEzC0DbBEdy0gLsbEakL5w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_uXLJoCBaEeOMKsPXBVC0DA" name="index_from">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_uXsHACBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_uX3GICBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_uYCFQCBaEeOMKsPXBVC0DA" name="index_to">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_uYh0gCBaEeOMKsPXBVC0DA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_uYszoCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>if (index_to == -1) {&#xD;
+ index_to = index_from;&#xD;
+}&#xD;
+&#xD;
+if (index_to >= cardinal_number) {&#xD;
+ // out of bounds&#xD;
+ return;&#xD;
+} &#xD;
+int remaining_elements = cardinal_number - (index_to + 1);&#xD;
+cardinal_number -= (index_to - index_from + 1);&#xD;
+&#xD;
+if (remaining_elements > 0)&#xD;
+{&#xD;
+ memmove(&#xD;
+ &amp;(content[index_from]),&#xD;
+ &amp;(content[index_to+1]),&#xD;
+ remaining_elements * sizeof(T)); &#xD;
+}&#xD;
+</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_rnk_IDa-Edy_E4ZljVbr-g" name="SetOf" method="_B6rQ8DbDEdy0gLsbEakL5w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_smT4QDa-Edy_E4ZljVbr-g" name="init_size">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sm6VMDa-Edy_E4ZljVbr-g" name=""/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_snDfIDa-Edy_E4ZljVbr-g" name="" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_wivRkDa-Edy_E4ZljVbr-g" value="0"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_sqyIkDa-Edy_E4ZljVbr-g" name="init_size_block">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_srFDgDa-Edy_E4ZljVbr-g" name=""/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_srO0gDa-Edy_E4ZljVbr-g" name="" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_zVaNgDa-Edy_E4ZljVbr-g" value="DEFAULT_BLOCK_SIZE"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_-M24MDa-Edy_E4ZljVbr-g" name="SetOf" method="_IDLgQDbDEdy0gLsbEakL5w"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Q1uQwDa_Edy_E4ZljVbr-g" name="size" method="_gW5foDa_Edy_E4ZljVbr-g">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_YCxtUDa_Edy_E4ZljVbr-g" annotatedElement="_Q1uQwDa_Edy_E4ZljVbr-g">
+ <body>Return the number of elements currently in the set</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_TBfkwDa_Edy_E4ZljVbr-g" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TBzGwDa_Edy_E4ZljVbr-g" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TB8QsDa_Edy_E4ZljVbr-g" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_sUiWUDa_Edy0gLsbEakL5w" name="get" method="_AT-gQDbAEdy0gLsbEakL5w">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_5UCSoDa_Edy0gLsbEakL5w" annotatedElement="_sUiWUDa_Edy0gLsbEakL5w">
+ <body>Retrieve an element at index from the set</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_uAIVcDa_Edy0gLsbEakL5w" name="param_0" type="_O4b6IDa-Edy_E4ZljVbr-g" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_uAuLUDa_Edy0gLsbEakL5w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_uA38UDa_Edy0gLsbEakL5w" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_uEc0wDa_Edy0gLsbEakL5w" name="index">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_uEvvsDa_Edy0gLsbEakL5w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_uE5gsDa_Edy0gLsbEakL5w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_DQoeoDbAEdy0gLsbEakL5w" name="find" method="_KtqJgDbDEdy0gLsbEakL5w">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Tez9cDbAEdy0gLsbEakL5w" annotatedElement="_DQoeoDbAEdy0gLsbEakL5w">
+ <body>find. Find an element in the set. The index of the first element that&#xD;
+matches is returned. If the element cannot be found, -1 is returned.</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_I1EXkDbAEdy0gLsbEakL5w" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_I1X5kDbAEdy0gLsbEakL5w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_I1hDgDbAEdy0gLsbEakL5w" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Eq75cDbAEdy0gLsbEakL5w" name="entry" type="_O4b6IDa-Edy_E4ZljVbr-g">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ErO0YDbAEdy0gLsbEakL5w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ErYlYDbAEdy0gLsbEakL5w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_b589wDbAEdy0gLsbEakL5w" name="insert" method="_QvTi4DbDEdy0gLsbEakL5w">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_rSVdADbAEdy0gLsbEakL5w" annotatedElement="_b589wDbAEdy0gLsbEakL5w">
+ <body>Insert an element at position given by index into the set.</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_duxxYDbAEdy0gLsbEakL5w" name="index">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_du67UDbAEdy0gLsbEakL5w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dvEsUDbAEdy0gLsbEakL5w" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_dxdR8DbAEdy0gLsbEakL5w" name="entry" type="_O4b6IDa-Edy_E4ZljVbr-g">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dxnC8DbAEdy0gLsbEakL5w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dxwM4DbAEdy0gLsbEakL5w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_wQyUADbAEdy0gLsbEakL5w" name="append" method="_NpQ_ADbDEdy0gLsbEakL5w">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_yuJHQDbAEdy0gLsbEakL5w" annotatedElement="_wQyUADbAEdy0gLsbEakL5w">
+ <body>append an element to the set, it will occupy the last index.</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_0ywqYDbAEdy0gLsbEakL5w" name="entry" type="_O4b6IDa-Edy_E4ZljVbr-g">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0zNWUDbAEdy0gLsbEakL5w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0zXHUDbAEdy0gLsbEakL5w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Ch8-QDbBEdy0gLsbEakL5w" name="eraseValue" method="_S9KhkDbDEdy0gLsbEakL5w">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_GTy4MDbBEdy0gLsbEakL5w" annotatedElement="_Ch8-QDbBEdy0gLsbEakL5w">
+ <body>erase an element from the set based on its value. The first element&#xD;
+with a matching value (not further elements that might match as well)&#xD;
+will be removed from the list. Returns true, if a matching value is&#xD;
+be found.</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_JXddgDbBEdy0gLsbEakL5w" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JXmncDbBEdy0gLsbEakL5w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JXwYcDbBEdy0gLsbEakL5w" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_JbLf4DbBEdy0gLsbEakL5w" name="entry" type="_O4b6IDa-Edy_E4ZljVbr-g">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Jbea0DbBEdy0gLsbEakL5w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JboL0DbBEdy0gLsbEakL5w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_kEzC0DbBEdy0gLsbEakL5w" name="erase" method="_Vn8FwDbDEdy0gLsbEakL5w">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_og-TMDbBEdy0gLsbEakL5w" annotatedElement="_kEzC0DbBEdy0gLsbEakL5w">
+ <body>Erase entries from the set based on an &quot;from&quot; and &quot;to&quot; index. If&#xD;
+the latter is not supplied, only one element is erased (to = from).&#xD;
+Please note that subsequent entries change their position.</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_rlE9YDbBEdy0gLsbEakL5w" name="index_from">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rlX4UDbBEdy0gLsbEakL5w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rlhpUDbBEdy0gLsbEakL5w" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_rogE0DbBEdy0gLsbEakL5w" name="index_to">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_EFv20DbCEdy0gLsbEakL5w"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_EF5n0DbCEdy0gLsbEakL5w" value="1"/>
+ <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_sCw8MCBIEeOBrb_t_69W4Q" value="-1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_q4yCoDbCEdy0gLsbEakL5w" name="adjust_size" visibility="private" method="_-zmLQDbCEdy0gLsbEakL5w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ucLQ4DbCEdy0gLsbEakL5w" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_uceL0DbCEdy0gLsbEakL5w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ucn80DbCEdy0gLsbEakL5w" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ugyrIDbCEdy0gLsbEakL5w" name="desired_size">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_uhFmEDbCEdy0gLsbEakL5w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_uhPXEDbCEdy0gLsbEakL5w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_yZpCcDa2Edyv9PRkTrTu0A" name="Association_BOL_ListCell" memberEnd="_yaiaUDa2Edyv9PRkTrTu0A _ya_GQTa2Edyv9PRkTrTu0A">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_ya_GQTa2Edyv9PRkTrTu0A" name="bOL" type="_xxCKcDUuEdyDReAOQiyvOg" isUnique="false" association="_yZpCcDa2Edyv9PRkTrTu0A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ybbyMTa2Edyv9PRkTrTu0A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ybbyMDa2Edyv9PRkTrTu0A" value="*"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_0wmSwDa2Edyv9PRkTrTu0A" name="Association_BOL_ListCell" memberEnd="_0wvcsDa2Edyv9PRkTrTu0A _0xV5oDa2Edyv9PRkTrTu0A">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_0xV5oDa2Edyv9PRkTrTu0A" name="bOL" type="_xxCKcDUuEdyDReAOQiyvOg" isUnique="false" association="_0wmSwDa2Edyv9PRkTrTu0A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0xylkDa2Edyv9PRkTrTu0A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0xo0kTa2Edyv9PRkTrTu0A" value="*"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_1ZuIQDa2Edyv9PRkTrTu0A" name="Association_BOL_ListCell" memberEnd="_1ZuIQTa2Edyv9PRkTrTu0A _1aUlMTa2Edyv9PRkTrTu0A">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_1aUlMTa2Edyv9PRkTrTu0A" name="bOL" type="_xxCKcDUuEdyDReAOQiyvOg" isUnique="false" association="_1ZuIQDa2Edyv9PRkTrTu0A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_1angIja2Edyv9PRkTrTu0A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_1angITa2Edyv9PRkTrTu0A" value="*"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_2AnwMDa2Edyv9PRkTrTu0A" name="Association_BOL_ListCell" memberEnd="_2AnwMTa2Edyv9PRkTrTu0A _2BD1Eja2Edyv9PRkTrTu0A">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_2BD1Eja2Edyv9PRkTrTu0A" name="bOL" type="_xxCKcDUuEdyDReAOQiyvOg" isUnique="false" association="_2AnwMDa2Edyv9PRkTrTu0A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2BghATa2Edyv9PRkTrTu0A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2BghADa2Edyv9PRkTrTu0A" value="*"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_3cG2wDa2Edyv9PRkTrTu0A" name="Association_BOL_ListCell" memberEnd="_3cG2wTa2Edyv9PRkTrTu0A _3cjisTa2Edyv9PRkTrTu0A">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_3cjisTa2Edyv9PRkTrTu0A" name="bOL" type="_xxCKcDUuEdyDReAOQiyvOg" isUnique="false" association="_3cG2wDa2Edyv9PRkTrTu0A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3dAOoDa2Edyv9PRkTrTu0A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3c3Esja2Edyv9PRkTrTu0A" value="*"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_8nOQwDa2Edyv9PRkTrTu0A" name="Association_BOL_ListCell" memberEnd="_8nYBwDa2Edyv9PRkTrTu0A _8n0Goja2Edyv9PRkTrTu0A">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_8n0Goja2Edyv9PRkTrTu0A" name="bOL" type="_xxCKcDUuEdyDReAOQiyvOg" isUnique="false" association="_8nOQwDa2Edyv9PRkTrTu0A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8oajkDa2Edyv9PRkTrTu0A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8oQykja2Edyv9PRkTrTu0A" value="*"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_JPxawDa5Edyv9PRkTrTu0A" name="Association_ListCell_ListCell" memberEnd="_JP6ksDa5Edyv9PRkTrTu0A _JQOGsja5Edyv9PRkTrTu0A">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_JQOGsja5Edyv9PRkTrTu0A" name="listCell" type="_zOJVcDaeEdyC6dXxO2UOEQ" isUnique="false" association="_JPxawDa5Edyv9PRkTrTu0A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JQqLkDa5Edyv9PRkTrTu0A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JQhBoja5Edyv9PRkTrTu0A" value="*"/>
+ </ownedEnd>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_soXY0C-OEdySSa8YESkO2w" name="Synchronization">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_MY8NMFC6EdyqzLG48ixyqA" annotatedElement="_hZUhoFC4EdyqzLG48ixyqA">
+ <body>TODO :
+Incomplete attribute and operation definitions</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_D8njME_gEdy2tpS719xBwQ" name="Semaphore">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_DSvP4FF5EdyxP5ejovTmBw" annotatedElement="_D8njME_gEdy2tpS719xBwQ">
+ <body>Manages system semaphores with counters (mainly based on Posix semaphores)</body>
+ </ownedComment>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_FVU9QFF6EdyxP5ejovTmBw" name="m_sema" visibility="private" type="_IbQcUFd7Ed-9TNLvplUFDQ" isUnique="false">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FVxpMFF6EdyxP5ejovTmBw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FVxpMVF6EdyxP5ejovTmBw" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_OSIgMFF6EdyxP5ejovTmBw" name="Semaphore" specification="_aemSgFF5EdyxP5ejovTmBw">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_0FtZwCBaEeOMKsPXBVC0DA" name="initValue">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0GNwECBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0GYvMCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> TRACEpr (F7);&#xD;
+ PR (&quot;Semaphore::Semaphore (&quot; &lt;&lt; initValue &lt;&lt; &quot;)&quot; &lt;&lt; showI);&#xD;
+&#xD;
+ errno = 0;&#xD;
+#if defined SYNCHRO_Solaris&#xD;
+ errno = sema_init (&amp;m_sema, initValue, USYNC_THREAD, NULL);&#xD;
+#else&#xD;
+ sem_init (&amp;m_sema, 0, initValue); // function sets errno on error&#xD;
+#endif&#xD;
+&#xD;
+ if (errno) {&#xD;
+ OSAL_ERROR (&quot;Semaphore init failed&quot;);&#xD;
+ }&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_P_9T8FF6EdyxP5ejovTmBw" name="Semaphore" specification="_ak3SkFF5EdyxP5ejovTmBw">
+ <language>C/C++</language>
+ <body> TRACEpr (F7);&#xD;
+ PR (&quot;Semaphore::~Semaphore ()&quot; &lt;&lt; showI);&#xD;
+&#xD;
+ errno = 0;&#xD;
+#if defined SYNCHRO_Solaris&#xD;
+ errno = sema_destroy (&amp;m_sema);&#xD;
+#else&#xD;
+ sem_destroy (&amp;m_sema); // function sets errno on error&#xD;
+#endif&#xD;
+&#xD;
+ if (errno) {&#xD;
+ OSAL_ERROR (&quot;&quot;);&#xD;
+ }&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_RrsdAFF6EdyxP5ejovTmBw" name="post" specification="_lASvoFF5EdyxP5ejovTmBw">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_0GutcCBaEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0HOcsCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0HZb0CBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> TRACEpr (F7);&#xD;
+ PR (&quot;Semaphore::post ()&quot; &lt;&lt; showI);&#xD;
+&#xD;
+ errno = 0;&#xD;
+&#xD;
+#if defined SYNCHRO_Solaris&#xD;
+ errno = sema_post (&amp;m_sema);&#xD;
+#else&#xD;
+ sem_post (&amp;m_sema); // function sets errno if r not 0&#xD;
+#endif&#xD;
+&#xD;
+ if (errno) {&#xD;
+ OSAL_ERROR (&quot;&quot;); }&#xD;
+&#xD;
+ return errno;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Ty2WwFF6EdyxP5ejovTmBw" name="wait" specification="_0TcwoFF5EdyxP5ejovTmBw">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_0HpTcCBaEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0IJpwCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0IUo4CBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> TRACEpr (F7);&#xD;
+ PR (&quot;Semaphore::wait ()&quot; &lt;&lt; showI);&#xD;
+ int r;&#xD;
+ errno = 0;&#xD;
+ for (;;)&#xD;
+ {&#xD;
+#if defined SYNCHRO_Solaris&#xD;
+ errno = sema_wait (&amp;m_sema);&#xD;
+ if ((errno == 0) || (errno == EBUSY))&#xD;
+ break;&#xD;
+#elif defined SYNCHRO_POSIX4 || defined SYNCHRO_VxWorks&#xD;
+ r = sem_wait (&amp;m_sema); // sem_wait sets errno if r not 0&#xD;
+ if ((r == 0) || (errno == EAGAIN))&#xD;
+ break;&#xD;
+#else&#xD;
+ #error define synchronization strategy&#xD;
+#endif&#xD;
+ if (errno != EINTR)&#xD;
+ OSAL_ERROR (&quot;wait returned error code&quot;);&#xD;
+ errno = 0;&#xD;
+ }&#xD;
+&#xD;
+ return errno;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_VmxygFF6EdyxP5ejovTmBw" name="tryWait" specification="_skbPcFF5EdyxP5ejovTmBw">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_0IlHkCBaEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0JGE8CBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0JQdACBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> TRACEpr (F7);&#xD;
+ PR (&quot;Semaphore::trywait ()&quot; &lt;&lt; showI);&#xD;
+ int r;&#xD;
+ errno = 0;&#xD;
+&#xD;
+ for (;;)&#xD;
+ {&#xD;
+#if defined SYNCHRO_Solaris&#xD;
+ errno = sema_trywait (&amp;m_sema);&#xD;
+ if ((errno == 0) || (errno == EBUSY))&#xD;
+ break;&#xD;
+#elif defined SYNCHRO_POSIX4 || defined SYNCHRO_VxWorks&#xD;
+ r = sem_trywait (&amp;m_sema); // sem_trywait sets errno if r not 0&#xD;
+ if ((r == 0) || (errno == EAGAIN))&#xD;
+ break;&#xD;
+#else&#xD;
+ #error define synchronization strategy&#xD;
+#endif&#xD;
+ if (errno != EINTR)&#xD;
+ OSAL_ERROR (&quot;tryWait returned error code&quot;);&#xD;
+ errno = 0;&#xD;
+ }&#xD;
+ PR (&quot;Semaphore::tryWait () - returns value (errno): &quot; &lt;&lt; errno &lt;&lt; showI);&#xD;
+&#xD;
+ return errno;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_W5L1kFF6EdyxP5ejovTmBw" name="getValue" specification="_76k6EFF5EdyxP5ejovTmBw">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_0JiJ0CBaEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0KB5ECBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0KNfQCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> TRACEpr (F7);&#xD;
+ PR (&quot;Semaphore::getValue ()&quot; &lt;&lt; showI);&#xD;
+&#xD;
+ int value;&#xD;
+ sem_getvalue ((sem_t*) &amp;m_sema, &amp;value);&#xD;
+ return value;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_aemSgFF5EdyxP5ejovTmBw" name="Semaphore" method="_OSIgMFF6EdyxP5ejovTmBw">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_fQq6YFF5EdyxP5ejovTmBw" name="initValue">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_fQ-cYFF5EdyxP5ejovTmBw" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_fRRXUFF5EdyxP5ejovTmBw" name="" value="1"/>
+ <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_yfE3UCBTEeOBrb_t_69W4Q"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_ak3SkFF5EdyxP5ejovTmBw" name="Semaphore" method="_P_9T8FF6EdyxP5ejovTmBw"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_lASvoFF5EdyxP5ejovTmBw" name="post" method="_RrsdAFF6EdyxP5ejovTmBw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_qJT34FF5EdyxP5ejovTmBw" annotatedElement="_lASvoFF5EdyxP5ejovTmBw">
+ <body>This operation unlocks the semaphore.&#xD;
+ It increments atomically the counter and if other threads are&#xD;
+ blocked waiting, it unblocks one of these.</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_m8aeEFF5EdyxP5ejovTmBw" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_m83KAFF5EdyxP5ejovTmBw" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_m9KE8FF5EdyxP5ejovTmBw" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_skbPcFF5EdyxP5ejovTmBw" name="tryWait" method="_VmxygFF6EdyxP5ejovTmBw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_uciAkFF5EdyxP5ejovTmBw" annotatedElement="_skbPcFF5EdyxP5ejovTmBw">
+ <body>This operation locks the semaphore only if that semaphore is currently&#xD;
+ not locked - that is, if the semaphore value is currently positive.&#xD;
+ &#xD;
+ The underlying posix function is executed in a loop, since it could&#xD;
+ legally return with an error code, if it is interrupted by a&#xD;
+ signal (EINTR).&#xD;
+ &#xD;
+ Returns 0 on success or the error code</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_wZs34FF5EdyxP5ejovTmBw" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_waJj0FF5EdyxP5ejovTmBw" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wadF0FF5EdyxP5ejovTmBw" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_0TcwoFF5EdyxP5ejovTmBw" name="wait" method="_Ty2WwFF6EdyxP5ejovTmBw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_4IRtIFF5EdyxP5ejovTmBw" annotatedElement="_0TcwoFF5EdyxP5ejovTmBw">
+ <body>This operation locks the semaphore.&#xD;
+ If the counter is zero, this method blocks the current thread until the&#xD;
+ counter is positive. Afterwords it decrements the counter atomically.&#xD;
+ &#xD;
+ The underlying posix function is executed in a loop, since it could&#xD;
+ legally return with an error code, if it is interrupted by a&#xD;
+ signal (EINTR).&#xD;
+ &#xD;
+ Returns 0 on success or the error code</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_1ZMQsFF5EdyxP5ejovTmBw" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_1Zo8oFF5EdyxP5ejovTmBw" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_1Z73kFF5EdyxP5ejovTmBw" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_76k6EFF5EdyxP5ejovTmBw" name="getValue" method="_W5L1kFF6EdyxP5ejovTmBw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_9Z8bEFF5EdyxP5ejovTmBw" annotatedElement="_76k6EFF5EdyxP5ejovTmBw">
+ <body>Provide access to the semaphore counter</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="__SpCEFF5EdyxP5ejovTmBw" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__TO38FF5EdyxP5ejovTmBw" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__TYo8FF5EdyxP5ejovTmBw" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_jXTGsFC3EdyqzLG48ixyqA" name="Barrier">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_lnirAFC3EdyqzLG48ixyqA" annotatedElement="_jXTGsFC3EdyqzLG48ixyqA">
+ <body>Allows to synchronize N threads: N-1 threads arriving at the barrier&#xD;
+are blocked, the last arriving thread unblocks all threads.&#xD;
+&#xD;
+Only one thread creates the barrier, other threads should only use&#xD;
+references.&#xD;
+In addition to an inefficient (file based!) implementation, we use&#xD;
+directly the pthread barrier.</body>
+ </ownedComment>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_neizcFC4EdyqzLG48ixyqA" name="_name" specification="_VNO_QFC4EdyqzLG48ixyqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_1miTUCBaEeOMKsPXBVC0DA" name="param_0" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_1nLMgCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_1nWLoCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return m_name;&#xD;
+}&#xD;
+</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_FFwlYFC4EdyqzLG48ixyqA" name="Barrier">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_IsliIFC4EdyqzLG48ixyqA" name="name" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ItCOEFC4EdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ItLYAFC4EdyqzLG48ixyqA" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_IxM8YFC4EdyqzLG48ixyqA" name="nb">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IxpoUFC4EdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IxzZUFC4EdyqzLG48ixyqA" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_FQyJoFC4EdyqzLG48ixyqA" name="Barrier"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_VNO_QFC4EdyqzLG48ixyqA" name="_name" method="_neizcFC4EdyqzLG48ixyqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_XPBQ0FC4EdyqzLG48ixyqA" name="param_0" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XPUy0FC4EdyqzLG48ixyqA" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XPd8wFC4EdyqzLG48ixyqA" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_hZUhoFC4EdyqzLG48ixyqA" name="wait">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_i_1zgFC4EdyqzLG48ixyqA" annotatedElement="_hZUhoFC4EdyqzLG48ixyqA">
+ <body>block, until the number of threads specified in the constructor&#xD;
+ invoke this method</body>
+ </ownedComment>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_qIyBkFC3EdyqzLG48ixyqA" name="Lock">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_o43bIFFiEdyjobZYtXo9NQ" annotatedElement="_qIyBkFC3EdyqzLG48ixyqA">
+ <body>Interface to lock a file (like flock in POSIX)&#xD;
+This class is currently a candidate for being removed from the&#xD;
+virtual machine, since file based locking is seldom relevant in&#xD;
+embedded system. Its main use is the inefficient fallback implementation&#xD;
+variant of the barrier (if Posix functions are not available)</body>
+ </ownedComment>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_8z5vwFFuEdyjobZYtXo9NQ" name="m_lockType" visibility="private" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_80WbsFFuEdyjobZYtXo9NQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_80gMsFFuEdyjobZYtXo9NQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_87gMkFFuEdyjobZYtXo9NQ" name="m_flock" visibility="private" isUnique="false">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8784gFFuEdyjobZYtXo9NQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8784gVFuEdyjobZYtXo9NQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_9BdqoFFuEdyjobZYtXo9NQ" name="m_fd" visibility="private" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9B6WkFFuEdyjobZYtXo9NQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9B6WkVFuEdyjobZYtXo9NQ" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_JHu44FFvEdyjobZYtXo9NQ" name="initFileDesc" specification="_GFqrgFFuEdyjobZYtXo9NQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_27QqkCBaEeOMKsPXBVC0DA" name="fd">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_27xA4CBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_278AACBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> m_fd = fd;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_OcrkUVFvEdyjobZYtXo9NQ" name="Lock" specification="_F6fWQFFuEdyjobZYtXo9NQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_28L3oCBaEeOMKsPXBVC0DA" name="fileDesc">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_28sN8CBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_283NECBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_29CMMCBaEeOMKsPXBVC0DA" name="exclusive">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_29jJkCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_29uIsCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> TRACEpr (VM);&#xD;
+ PR (&quot;Lock::Lock (...)&quot; &lt;&lt; showI);&#xD;
+&#xD;
+ // probably not a good idea to reset a global error variable here&#xD;
+ // errno = 0;&#xD;
+&#xD;
+/* #if defined SYNCHRO_VxWorks // it compiles on VxWorks &#xD;
+ OSAL_ERROR (&quot;Not implemented for VxWorks&quot;);&#xD;
+ #endif */&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_RgCAkFFvEdyjobZYtXo9NQ" name="take" specification="_GNaSQFFuEdyjobZYtXo9NQ">
+ <language>C/C++</language>
+ <body> TRACEpr (VM);&#xD;
+ PR (&quot;Lock::take&quot; &lt;&lt; showI);&#xD;
+&#xD;
+ m_flock.l_type = m_lockType;&#xD;
+ m_flock.l_whence = 0;&#xD;
+ m_flock.l_start = (off_t) 0;&#xD;
+ m_flock.l_len = (off_t) 0;&#xD;
+&#xD;
+ if (fcntl (m_fd, F_SETLKW, &amp;m_flock) &lt; 0) { // wait if hold&#xD;
+ OSAL_ERROR (&quot;ON fcntl(m_fd, F_SETLKW:F_WRLCK) &quot;);&#xD;
+ }&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Th05MFFvEdyjobZYtXo9NQ" name="tryTake" specification="_GSVOgFFuEdyjobZYtXo9NQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_2-Df4CBaEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2-jPICBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2-uOQCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> TRACEpr (VM);&#xD;
+&#xD;
+ int r;&#xD;
+ m_flock.l_type = m_lockType;&#xD;
+ m_flock.l_whence = 0;&#xD;
+ m_flock.l_start = (off_t) 0;&#xD;
+ m_flock.l_len = (off_t) 0;&#xD;
+&#xD;
+ while ((r = fcntl (m_fd, F_SETLK, &amp;m_flock)) &lt; 0) // NO wait if hold&#xD;
+ {&#xD;
+ if (errno == 0 || errno == EAGAIN)&#xD;
+ break;&#xD;
+ if (errno != EINTR)&#xD;
+ OSAL_ERROR (&quot;&quot;);&#xD;
+ errno = 0;&#xD;
+ }&#xD;
+&#xD;
+ PR (&quot;Lock::tryTake () - return value (errno): &quot; &lt;&lt; errno &lt;&lt; showI);&#xD;
+ return errno;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_V21owFFvEdyjobZYtXo9NQ" name="release" specification="_GZx6UFFuEdyjobZYtXo9NQ">
+ <language>C/C++</language>
+ <body> TRACEpr (VM);&#xD;
+ PR (&quot;Lock::release ()&quot; &lt;&lt; showI);&#xD;
+&#xD;
+ m_flock.l_type = F_UNLCK;&#xD;
+ m_flock.l_whence = 0;&#xD;
+ m_flock.l_start = (off_t) 0;&#xD;
+ m_flock.l_len = (off_t) 0;&#xD;
+&#xD;
+ if (fcntl (m_fd, F_SETLK, &amp;m_flock) &lt; 0) {&#xD;
+ OSAL_ERROR (&quot;&quot;);&#xD;
+ }&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_XjxEoFFvEdyjobZYtXo9NQ" name="getInfo" specification="_Ge2AgFFuEdyjobZYtXo9NQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_2_DlcCBaEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2_jUsCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2_uT0CBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_2_5S8CBaEeOMKsPXBVC0DA" name="infoP" direction="inout">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3AUJsCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3Afv4CBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> TRACEpr (VM);&#xD;
+ PR (&quot;Lock::getInfo&quot; &lt;&lt; showI);&#xD;
+&#xD;
+ infoP->l_whence = 0;&#xD;
+ infoP->l_start = 0L;&#xD;
+ infoP->l_len = 0L;&#xD;
+ infoP->l_type = m_lockType;&#xD;
+ if (fcntl (m_fd, F_GETLK, infoP) == -1) {&#xD;
+ OSAL_ERROR (&quot;&quot;);&#xD;
+ }&#xD;
+&#xD;
+ // return TRUE, if lock busy&#xD;
+ return (infoP->l_type != F_UNLCK);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_F6fWQFFuEdyjobZYtXo9NQ" name="Lock" method="_OcrkUVFvEdyjobZYtXo9NQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_KCr6sFFuEdyjobZYtXo9NQ" annotatedElement="_F6fWQFFuEdyjobZYtXo9NQ">
+ <body>Create a lock for a file that is identified by a file descriptor. This&#xD;
+ descriptor can be obtained for instance using the &quot;open&quot;. The second,&#xD;
+ optional parameter denotes whether the lock is also exclusive for&#xD;
+ reading (otherwise, only the write access is protected). The default&#xD;
+ value &quot;true&quot; guarantees exlusive read and write access.</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_N9oGQFFuEdyjobZYtXo9NQ" name="fileDesc">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_N-EyMFFuEdyjobZYtXo9NQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_N-N8IFFuEdyjobZYtXo9NQ" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_OATm0FFuEdyjobZYtXo9NQ" name="exclusive">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_OAwSwFFuEdyjobZYtXo9NQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_OA6DwFFuEdyjobZYtXo9NQ" name="" value="1"/>
+ <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_ywEMkCBGEeOBrb_t_69W4Q" value="true"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_GFqrgFFuEdyjobZYtXo9NQ" name="initFileDesc" method="_JHu44FFvEdyjobZYtXo9NQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_bphOgFFuEdyjobZYtXo9NQ" annotatedElement="_GFqrgFFuEdyjobZYtXo9NQ">
+ <body>this method can be called to initialize the file descriptor, if it&#xD;
+ is not yet known at creation time. This should only be called once&#xD;
+ after construction (and before take/release).</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_d8c6cFFuEdyjobZYtXo9NQ" name="fd">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_d84_UFFuEdyjobZYtXo9NQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_d9MhUFFuEdyjobZYtXo9NQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_GNaSQFFuEdyjobZYtXo9NQ" name="take" method="_RgCAkFFvEdyjobZYtXo9NQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_itxUYFFuEdyjobZYtXo9NQ" annotatedElement="_GNaSQFFuEdyjobZYtXo9NQ">
+ <body>take a lock. This method blocks, until the lock is available</body>
+ </ownedComment>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_GSVOgFFuEdyjobZYtXo9NQ" name="tryTake" method="_Th05MFFvEdyjobZYtXo9NQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_mxzKgFFuEdyjobZYtXo9NQ" annotatedElement="_GSVOgFFuEdyjobZYtXo9NQ">
+ <body>a non-blocking variant of take. It returns the error code of the&#xD;
+ underlying function fcntl or 0, if take was successfull</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_n7HjAFFuEdyjobZYtXo9NQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_n7kO8FFuEdyjobZYtXo9NQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_n73J4FFuEdyjobZYtXo9NQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_GZx6UFFuEdyjobZYtXo9NQ" name="release" method="_V21owFFvEdyjobZYtXo9NQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_sj8vUFFuEdyjobZYtXo9NQ" annotatedElement="_GZx6UFFuEdyjobZYtXo9NQ">
+ <body>release the lock</body>
+ </ownedComment>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Ge2AgFFuEdyjobZYtXo9NQ" name="getInfo" method="_XjxEoFFvEdyjobZYtXo9NQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_wsTEwFFuEdyjobZYtXo9NQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wsvwsFFuEdyjobZYtXo9NQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ws46oFFuEdyjobZYtXo9NQ" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_wwdzEFFuEdyjobZYtXo9NQ" name="infoP" direction="inout">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wwxVEFFuEdyjobZYtXo9NQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wxEQAFFuEdyjobZYtXo9NQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_rsw80FC3EdyqzLG48ixyqA" name="p_Synchronization">
+ <nestedClassifier xmi:type="uml:Enumeration" xmi:id="__JUq0FF1EdyxP5ejovTmBw" name="Scope">
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_BnRT8FF2EdyxP5ejovTmBw" name="IntraProcess"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_DFwEIFF2EdyxP5ejovTmBw" name="InterProcess"/>
+ </nestedClassifier>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_wNG7gFC3EdyqzLG48ixyqA" name="FromBarriertop_Synchronization" client="_jXTGsFC3EdyqzLG48ixyqA" supplier="_rsw80FC3EdyqzLG48ixyqA"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_whFAYFC3EdyqzLG48ixyqA" name="FromBarriertoLock" client="_jXTGsFC3EdyqzLG48ixyqA" supplier="_qIyBkFC3EdyqzLG48ixyqA"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_z0-aEFC3EdyqzLG48ixyqA" name="FromBarriertoBString200" client="_jXTGsFC3EdyqzLG48ixyqA" supplier="_0AwCEDO0EdyG-pUz-bb-Lg"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Jj9usFC7EdyqzLG48ixyqA" name="Mutex">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_wP5AIFFvEdyjobZYtXo9NQ" annotatedElement="_Jj9usFC7EdyqzLG48ixyqA">
+ <body>Allows to manage system locks to prevent threads from simultaneous&#xD;
+execution of the same section (see CriticalSection)</body>
+ </ownedComment>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_PL5ogFF0EdyjobZYtXo9NQ" name="m_mutexS" visibility="public" type="_uWQvMBD4EeG3cfLoiI6G7g" isUnique="false">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PMgFcFF0EdyjobZYtXo9NQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PMgFcVF0EdyjobZYtXo9NQ" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_ZOvmcFF0EdyjobZYtXo9NQ" name="Mutex" specification="_4NODEFFvEdyjobZYtXo9NQ">
+ <language>C/C++</language>
+ <body>creatEff (IntraProcess);</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_a4i10FF0EdyjobZYtXo9NQ" name="lock" specification="_-Hj6kFFvEdyjobZYtXo9NQ">
+ <language>C/C++</language>
+ <body>TRACEpr (F7);&#xD;
+PR (&quot;before Mutex::lock()&quot; &lt;&lt; showI);&#xD;
+#if defined SYNCHRO_POSIX4&#xD;
+ int error = pthread_mutex_lock (&amp;m_mutexS);&#xD;
+&#xD;
+#elif defined SYNCHRO_Solaris&#xD;
+ int error = mutex_lock (&amp;m_mutexS);&#xD;
+&#xD;
+#elif defined SYNCHRO_VxWorks&#xD;
+ int error = 0;&#xD;
+ if (semTake (m_mutexS, WAIT_FOREVER) != OK)&#xD;
+ OSAL_ERROR (&quot;ON semTake()&quot;);&#xD;
+#endif&#xD;
+&#xD;
+ if (error) { // == EDEADLK : the current thread already owns the mutex&#xD;
+ OSAL_ERROR (&quot;can't lock mutex&quot;);&#xD;
+ }&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_dWfe8FF0EdyjobZYtXo9NQ" name="unlock" specification="_DEz3sFFwEdyjobZYtXo9NQ">
+ <language>C/C++</language>
+ <body>TRACEpr (F7);&#xD;
+PR (&quot;Mutex::unlock ()&quot; &lt;&lt; showI);&#xD;
+&#xD;
+#if defined SYNCHRO_POSIX4&#xD;
+ int error = pthread_mutex_unlock (&amp;m_mutexS);&#xD;
+&#xD;
+#elif defined SYNCHRO_Solaris&#xD;
+ int error = mutex_unlock (&amp;m_mutexS);&#xD;
+&#xD;
+#elif defined SYNCHRO_VxWorks&#xD;
+ int error = 0;&#xD;
+ if (semGive (m_mutexS) != OK)&#xD;
+ OSAL_ERROR (&quot;ON semGive()&quot;);&#xD;
+#endif&#xD;
+&#xD;
+if (error) { // == EPERM : the current thread does not own the mutex&#xD;
+ OSAL_ERROR (&quot;can't unlock mutex&quot;);&#xD;
+}</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_f75a8FF0EdyjobZYtXo9NQ" name="tryLock" specification="_Jid3oFFwEdyjobZYtXo9NQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_4JKBECBaEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_4JqXYCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_4J0vcCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>TRACEpr (F7);&#xD;
+PR (&quot;before Mutex::trylock()&quot;&lt;&lt; showI);&#xD;
+&#xD;
+#define Nretry 3 // re-try N times if EINTR&#xD;
+&#xD;
+int i;&#xD;
+int error;&#xD;
+for (i = 0; i &lt; Nretry; ++i)&#xD;
+{&#xD;
+#if defined SYNCHRO_POSIX4&#xD;
+ error = pthread_mutex_trylock (&amp;m_mutexS);&#xD;
+&#xD;
+#elif defined SYNCHRO_Solaris&#xD;
+ error = mutex_trylock (&amp;m_mutexS);&#xD;
+&#xD;
+#elif defined SYNCHRO_VxWorks&#xD;
+ error = semTake (m_mutexS, NO_WAIT);&#xD;
+ if (error == S_objLib_OBJ_UNAVAILABLE) {&#xD;
+ error = EBUSY;&#xD;
+ }&#xD;
+&#xD;
+#endif&#xD;
+ if (error == 0 || error == EBUSY) {&#xD;
+ break;&#xD;
+ }&#xD;
+ if (error != EINTR) {&#xD;
+ OSAL_ERROR (&quot;&quot;);&#xD;
+ }&#xD;
+}&#xD;
+if (i == Nretry) {&#xD;
+ OSAL_ERROR (&quot;EINTR Nretry times&quot;);&#xD;
+}&#xD;
+&#xD;
+// errno == EBUSY : the mutex could not be acquired because it was already&#xD;
+// locked&#xD;
+return error;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_larX0FF0EdyjobZYtXo9NQ" name="Mutex" specification="_4cRLsFFvEdyjobZYtXo9NQ">
+ <language>C/C++</language>
+ <body>int error;&#xD;
+#if defined SYNCHRO_POSIX4&#xD;
+ TRACEpr (F7);&#xD;
+ PR (&quot;Mutex::~Mutex: m_mutexS = &quot; &lt;&lt; &amp;m_mutexS &lt;&lt; showI);&#xD;
+ error = pthread_mutex_destroy (&amp;m_mutexS);&#xD;
+&#xD;
+#elif defined SYNCHRO_Solaris&#xD;
+ error = mutex_destroy (&amp;m_mutexS);&#xD;
+&#xD;
+#elif defined SYNCHRO_VxWorks&#xD;
+ if (semDelete (m_mutexS) == OK) {&#xD;
+ error = 0;&#xD;
+ }&#xD;
+ else {&#xD;
+ error = -1;&#xD;
+ }&#xD;
+#endif&#xD;
+&#xD;
+if (error) {&#xD;
+ OSAL_ERROR (&quot;cannot delete Mutex&quot;);&#xD;
+}&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_oFvP4FF0EdyjobZYtXo9NQ" name="Operation_0" specification="_OEl_AFFwEdyjobZYtXo9NQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_4KKtsCBaEeOMKsPXBVC0DA" name="interProc">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_4Kqc8CBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_4K1cECBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>// any value is equally valable as argument&#xD;
+// inutile d'avoir une portee InterProcess couteuse si le process est seul.&#xD;
+&#xD;
+creatEff (OS_AL::ProcessingResources::ProDesc::getNumerOfProcesses() > 1 ? InterProcess : IntraProcess);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_s_tPgFF0EdyjobZYtXo9NQ" name="creatEff" specification="_W33LcFFwEdyjobZYtXo9NQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_4LFTsCBaEeOMKsPXBVC0DA" name="scope" type="_0H3-IBEcEeG3cfLoiI6G7g">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_4LlqACBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_4L3W0CBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>// --------------------------------------------&#xD;
+#if defined SYNCHRO_POSIX4&#xD;
+pthread_mutexattr_t attr; // mutex attributes object&#xD;
+int result = pthread_mutexattr_init (&amp;attr); // and initialized by only 1 process&#xD;
+// ?? comment savoir que je suis le premier ?? .....................&#xD;
+if (result != 0) {&#xD;
+ OSAL_ERROR (&quot;ON pthread_mutexattr_init()&quot;);&#xD;
+}&#xD;
+if (scope == InterProcess) {&#xD;
+ result = pthread_mutexattr_setpshared (&amp;attr, PTHREAD_PROCESS_SHARED);&#xD;
+ if (errno != 0) {&#xD;
+ OSAL_ERROR (&quot;ON pthread_mutexattr_setpshared()&quot;);&#xD;
+ }&#xD;
+}&#xD;
+result = pthread_mutex_init (&amp;m_mutexS, &amp;attr);&#xD;
+if (result != 0) {&#xD;
+ OSAL_ERROR (&quot;ON pthread_mutex_init()&quot;);&#xD;
+}&#xD;
+&#xD;
+// pthread_mutexattr_destroy(&amp;attr); // required?&#xD;
+&#xD;
+// --------------------------------------------&#xD;
+#elif defined SYNCHRO_Solaris&#xD;
+if (scope != InterProcess) {&#xD;
+ // initial RAZ, with only 1 thread&#xD;
+ // #include &lt;string.h>&#xD;
+ // memset(&amp;m_mutexS, 0, sizeof(MutexStruc));&#xD;
+ char *pc = (char *) &amp;m_mutexS;&#xD;
+ for (int k = 0; k &lt; sizeof (MutexStruc); ++k) {&#xD;
+ *pC/C++ = '\0'; // initial reset&#xD;
+ }&#xD;
+}&#xD;
+ //else&#xD;
+ // only 1 process must reset this structure&#xD;
+&#xD;
+int result = mutex_init ((MutexStruc *) &amp; m_mutexS,&#xD;
+ (scope == InterProcess) ? USYNC_PROCESS : USYNC_THREAD, NULL);&#xD;
+if (result != 0) {&#xD;
+ OSAL_ERROR (&quot;ON mutex_init()&quot;);&#xD;
+}&#xD;
+&#xD;
+// --------------------------------------------&#xD;
+#elif defined SYNCHRO_VxWorks&#xD;
+if (scope == InterProcess) {&#xD;
+ OSAL_ERROR (&quot;Only 1 processus for VxWorks&quot;);&#xD;
+}&#xD;
+#if defined SYNCHRO_VxWorks_MES&#xD;
+m_mutexS = semMCreate (SEM_Q_PRIORITY | SEM_DELETE_SAFE | SEM_INVERSION_SAFE);&#xD;
+#else&#xD;
+m_mutexS = semBCreate (SEM_Q_PRIORITY, SEM_FULL);&#xD;
+#endif&#xD;
+if (m_mutexS == NULL) {&#xD;
+ OSAL_ERROR (&quot;ON semaphore create()&quot;);&#xD;
+}&#xD;
+&#xD;
+// --------------------------------------------&#xD;
+#else&#xD;
+#error SYNCHRO_?? not defined&#xD;
+#endif&#xD;
+&#xD;
+TRACEpr (F7);&#xD;
+PR (&quot;after Mutex::createEff()&quot; &lt;&lt; showI);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_v4CukFF0EdyjobZYtXo9NQ" name="print" specification="_CFHYcFF0EdyjobZYtXo9NQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_4MH1gCBaEeOMKsPXBVC0DA" name="label">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_4MnkwCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_4Myj4CBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>TRACEpr (F7);&#xD;
+PR (&quot;Mutex::print (&quot; &lt;&lt; label &lt;&lt; &quot;), errno= &quot; &lt;&lt; errno &lt;&lt; showI);&#xD;
+&#xD;
+unsigned short *pc1;&#xD;
+int size;&#xD;
+#if defined SYNCHRO_VxWorks&#xD;
+ if (m_mutexS == NULL) {&#xD;
+ OSAL_ERROR (&quot;m_mutexS == NULL&quot;);&#xD;
+ }&#xD;
+ pc1 = (unsigned short *) m_mutexS;&#xD;
+ size = 40; // sizeof(class semaphore);&#xD;
+&#xD;
+ semShow (m_mutexS, 1); // dump of system structure&#xD;
+ //-- errno= 0;&#xD;
+#else&#xD;
+ pc1 = (unsigned short *) &amp;m_mutexS;&#xD;
+ size = sizeof (MutexId);&#xD;
+#endif&#xD;
+&#xD;
+char buffer[200];&#xD;
+char *pb = buffer;&#xD;
+unsigned short *pc = pc1;&#xD;
+for (int k = 0; k &lt; size; k += 2)&#xD;
+{&#xD;
+ if (k % 16 == 0)&#xD;
+ pb += sprintf (pb, &quot;\n\t&quot;);&#xD;
+ pb += sprintf (pb, &quot;%4.4x &quot;, *pc++);&#xD;
+ if ((pb - buffer) > (int) sizeof (buffer))&#xD;
+ OSAL_ERROR (&quot;Enlarge size of buffer.&quot;);&#xD;
+}&#xD;
+&#xD;
+PR (&quot;, dump of m_mutexS at 0x&quot; &lt;&lt; pc1 &lt;&lt; &quot;: &quot; &lt;&lt; buffer &lt;&lt; showI);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_4NODEFFvEdyjobZYtXo9NQ" name="Mutex" method="_ZOvmcFF0EdyjobZYtXo9NQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_4cRLsFFvEdyjobZYtXo9NQ" name="Mutex" method="_larX0FF0EdyjobZYtXo9NQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_-Hj6kFFvEdyjobZYtXo9NQ" name="lock" method="_a4i10FF0EdyjobZYtXo9NQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="__4g60FFvEdyjobZYtXo9NQ" annotatedElement="_-Hj6kFFvEdyjobZYtXo9NQ">
+ <body>Locks the mutex. If the mutex is currently unlocked, it becomes locked&#xD;
+ and owned by the calling thread, and returns immediately.&#xD;
+ If the mutex is already locked by another thread, &quot;lock&quot; suspends the&#xD;
+ calling thread until the mutex is unlocked.</body>
+ </ownedComment>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_DEz3sFFwEdyjobZYtXo9NQ" name="unlock" method="_dWfe8FF0EdyjobZYtXo9NQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_E-Z2kFFwEdyjobZYtXo9NQ" annotatedElement="_DEz3sFFwEdyjobZYtXo9NQ">
+ <body>Unlocks the given mutex. The mutex is assumed to be locked and owned&#xD;
+ by the calling thread on entrance to unlock.&#xD;
+ unlock always returns the mutex to the unlocked state (we do not use the&#xD;
+ pthread option &quot;recursive&quot;, which decrements the locking count of the mutex&#xD;
+ [number of lock operations performed on it by the calling thread], and&#xD;
+ only when this count reaches zero is the mutex actually unlocked).</body>
+ </ownedComment>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Jid3oFFwEdyjobZYtXo9NQ" name="tryLock" method="_f75a8FF0EdyjobZYtXo9NQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KnwrwFFwEdyjobZYtXo9NQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KoNXsFFwEdyjobZYtXo9NQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KoWhoFFwEdyjobZYtXo9NQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_OEl_AFFwEdyjobZYtXo9NQ" name="Mutex" visibility="protected" method="_oFvP4FF0EdyjobZYtXo9NQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Oq5KAFFwEdyjobZYtXo9NQ" name="interProc">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_OrME8FFwEdyjobZYtXo9NQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ore_4FFwEdyjobZYtXo9NQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_W33LcFFwEdyjobZYtXo9NQ" name="creatEff" visibility="private" method="_s_tPgFF0EdyjobZYtXo9NQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ZYNBQFFwEdyjobZYtXo9NQ" name="scope" type="_0H3-IBEcEeG3cfLoiI6G7g">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ZYf8MFFwEdyjobZYtXo9NQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ZYpGIFFwEdyjobZYtXo9NQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_CFHYcFF0EdyjobZYtXo9NQ" name="print" visibility="private" method="_v4CukFF0EdyjobZYtXo9NQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Dd6-cFF0EdyjobZYtXo9NQ" name="label">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DeXqYFF0EdyjobZYtXo9NQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DehbYFF0EdyjobZYtXo9NQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_5HEaAFFgEdyjobZYtXo9NQ" name="CriticalSection">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_7UU7wFFgEdyjobZYtXo9NQ" annotatedElement="_5HEaAFFgEdyjobZYtXo9NQ">
+ <body>Protects the code following a declaration of an instance of this class&#xD;
+against an interruption for signal handling and against reentrance of&#xD;
+this code. It is associated with an instance of class Mutex (passed in&#xD;
+the constructor).&#xD;
+&#xD;
+Example:&#xD;
+Management of a list (see class SR_List) that can be accessed by multiple&#xD;
+threads. To assure data integrity, each list instance contains a mutex,&#xD;
+all public methods look like:&#xD;
+SR_Liste::append()&#xD;
+{&#xD;
+ CriticalSection cs(mutex);&#xD;
+ ...&#xD;
+} // end of critical section.</body>
+ </ownedComment>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="__4miwFFhEdyjobZYtXo9NQ" name="m_mutex" visibility="private" type="_Jj9usFC7EdyqzLG48ixyqA" isUnique="false" association="__4cxwFFhEdyjobZYtXo9NQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DGPjcFFiEdyjobZYtXo9NQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DGYtYFFiEdyjobZYtXo9NQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_IAWtAFFiEdyjobZYtXo9NQ" name="m_maskAll" visibility="private" isUnique="false">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IAzY8FFiEdyjobZYtXo9NQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IAzY8VFiEdyjobZYtXo9NQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_IEFWcFFiEdyjobZYtXo9NQ" name="m_oldMask" visibility="private" isUnique="false">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IEiCYFFiEdyjobZYtXo9NQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IErMUFFiEdyjobZYtXo9NQ" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_VGs4MFFiEdyjobZYtXo9NQ" name="CriticalSection" specification="_df1i0FFhEdyjobZYtXo9NQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_5q784CBaEeOMKsPXBVC0DA" name="mutexPtr" type="_Jj9usFC7EdyqzLG48ixyqA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_5rc6QCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_5rn5YCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> m_mutex = mutex;&#xD;
+&#xD;
+ sigfillset (&amp;m_maskAll);&#xD;
+ Thread::changeSigMask (SIG_SETMASK, &amp;m_maskAll, &amp;m_oldMask);&#xD;
+&#xD;
+ m_mutex->lock ();&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_WjY4oFFiEdyjobZYtXo9NQ" name="CriticalSection" specification="_dnb_oFFhEdyjobZYtXo9NQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_5sGagCBaEeOMKsPXBVC0DA" name="shmPtr" type="_sq-yMFCvEdyqzLG48ixyqA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_5smw0CBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_5sxv8CBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> m_mutex = shmPtr->getMutex ();&#xD;
+&#xD;
+ sigfillset (&amp;m_maskAll);&#xD;
+ Thread::changeSigMask (SIG_SETMASK, &amp;m_maskAll, &amp;m_oldMask);&#xD;
+ m_mutex->lock ();&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_X3u1YFFiEdyjobZYtXo9NQ" name="CriticalSection" specification="_du4rcFFhEdyjobZYtXo9NQ">
+ <language>C/C++</language>
+ <body> if (m_mutex) {&#xD;
+ m_mutex->unlock ();&#xD;
+ }&#xD;
+&#xD;
+ Thread::changeSigMask (SIG_SETMASK, &amp;m_oldMask, NULL);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_df1i0FFhEdyjobZYtXo9NQ" name="CriticalSection" method="_VGs4MFFiEdyjobZYtXo9NQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_jdwSwFFhEdyjobZYtXo9NQ" annotatedElement="_df1i0FFhEdyjobZYtXo9NQ">
+ <body>Create a Critical section using the passed mutex pointer</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_lihm4FFhEdyjobZYtXo9NQ" name="mutexPtr" type="_Jj9usFC7EdyqzLG48ixyqA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_li0h0FFhEdyjobZYtXo9NQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ljHcwFFhEdyjobZYtXo9NQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_dnb_oFFhEdyjobZYtXo9NQ" name="CriticalSection" method="_WjY4oFFiEdyjobZYtXo9NQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_ski4IFFhEdyjobZYtXo9NQ" annotatedElement="_dnb_oFFhEdyjobZYtXo9NQ">
+ <body>Create a critical section using the mutex provided by the SharedMemory</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_u2uWIFFhEdyjobZYtXo9NQ" name="shmPtr" type="_sq-yMFCvEdyqzLG48ixyqA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_u3LCEFFhEdyjobZYtXo9NQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_u3d9AFFhEdyjobZYtXo9NQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_du4rcFFhEdyjobZYtXo9NQ" name="CriticalSection" method="_X3u1YFFiEdyjobZYtXo9NQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_21F64FFhEdyjobZYtXo9NQ" annotatedElement="_du4rcFFhEdyjobZYtXo9NQ">
+ <body>The destructor will release the mutex.</body>
+ </ownedComment>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_FQwvsFFhEdyjobZYtXo9NQ" name="FromCriticalSectiontop_Synchronization" client="_5HEaAFFgEdyjobZYtXo9NQ" supplier="_rsw80FC3EdyqzLG48ixyqA"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_Gyg2UFFhEdyjobZYtXo9NQ" name="FromCriticalSectiontoMutex" client="_5HEaAFFgEdyjobZYtXo9NQ" supplier="_Jj9usFC7EdyqzLG48ixyqA"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_OztsoFFhEdyjobZYtXo9NQ" name="FromCriticalSectiontoSharedMemory" client="_5HEaAFFgEdyjobZYtXo9NQ" supplier="_sq-yMFCvEdyqzLG48ixyqA"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="__4cxwFFhEdyjobZYtXo9NQ" name="Association_CriticalSection_Mutex" memberEnd="__4miwFFhEdyjobZYtXo9NQ __5f6oFFhEdyjobZYtXo9NQ">
+ <ownedEnd xmi:type="uml:Property" xmi:id="__5f6oFFhEdyjobZYtXo9NQ" name="criticalSection" type="_5HEaAFFgEdyjobZYtXo9NQ" isUnique="false" association="__4cxwFFhEdyjobZYtXo9NQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__6FwglFhEdyjobZYtXo9NQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__6FwgVFhEdyjobZYtXo9NQ" value="*"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_s6W6oFFiEdyjobZYtXo9NQ" name="FromLocktop_Synchronization" client="_qIyBkFC3EdyqzLG48ixyqA" supplier="_rsw80FC3EdyqzLG48ixyqA"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_tfdf4FFvEdyjobZYtXo9NQ" name="FromMutextop_Synchronization" client="_Jj9usFC7EdyqzLG48ixyqA" supplier="_rsw80FC3EdyqzLG48ixyqA"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_OIKeIFF1EdyjobZYtXo9NQ" name="Fromp_SynchronizationtoBaseTypes" client="_rsw80FC3EdyqzLG48ixyqA" supplier="_0TXx4DUOEdy0feurbW0fyQ"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_dhMBIFF2EdyxP5ejovTmBw" name="RWLock">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_h-_pMFF2EdyxP5ejovTmBw" annotatedElement="_dhMBIFF2EdyxP5ejovTmBw">
+ <body>Allows to authorize the access to data shared between multiple threads.&#xD;
+Access can be shared by multiple reades, but there can only be one writer.</body>
+ </ownedComment>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Ce-GEFF4EdyxP5ejovTmBw" name="rwl" visibility="private" isUnique="false">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CfRBAFF4EdyxP5ejovTmBw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CfayAFF4EdyxP5ejovTmBw" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Pus2wFF4EdyxP5ejovTmBw" name="_rwl" specification="_-EmMgFF3EdyxP5ejovTmBw">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_7QSKECBaEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_7Qtn4CBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_7Q4nACBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> return rwl;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_RLryIFF4EdyxP5ejovTmBw" name="set_rwl" specification="_-N-yAFF3EdyxP5ejovTmBw">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_7RIeoCBaEeOMKsPXBVC0DA" name="cr_operand">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_7RjVYCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_7RuUgCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> rwl = cr_operand;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_eCFc0FF4EdyxP5ejovTmBw" name="RWLock" specification="_tz4-IFF3EdyxP5ejovTmBw">
+ <language>C/C++</language>
+ <body>#if defined SYNCHRO_Solaris&#xD;
+ errno = rwlock_init (&amp;rwl, USYNC_THREAD, NULL);&#xD;
+&#xD;
+#elif defined SYNCHRO_POSIX4 || SYNCHRO_Linux&#xD;
+ errno = pthread_rwlock_init (&amp;rwl, NULL);&#xD;
+&#xD;
+#elif defined SYNCHRO_VxWorks&#xD;
+ rwl.readers = 0; // pas de lecteur au début&#xD;
+ rwl.writers = 0; // pas d'écrivain au début&#xD;
+&#xD;
+ rwl.readersMut = semBCreate (SEM_Q_FIFO, SEM_FULL); //initialisation&#xD;
+ rwl.writersMut = semBCreate (SEM_Q_FIFO, SEM_FULL); //des&#xD;
+ rwl.readMut = semBCreate (SEM_Q_FIFO, SEM_FULL); //mutexes&#xD;
+ rwl.writeSem = semCCreate (SEM_Q_FIFO, 1); //et des&#xD;
+ rwl.readSem = semCCreate (SEM_Q_FIFO, 1); //semaphores&#xD;
+&#xD;
+ if ((rwl.readersMut != NULL) &amp;&amp; (rwl.writersMut != NULL)&#xD;
+ &amp;&amp; (rwl.readMut != NULL)&#xD;
+ &amp;&amp; (rwl.writeSem != NULL) &amp;&amp; (rwl.readSem != NULL))&#xD;
+ errno = 0;&#xD;
+ else&#xD;
+ errno = ENOMEM; // semBCreate et semCCreate ne positionnent pas errno&#xD;
+&#xD;
+&#xD;
+#else // RWLock_Simulation&#xD;
+ rwl.readers = 0; //pas de lecteur au début&#xD;
+ rwl.writers = 0; //pas d'écrivain au début&#xD;
+ errno = 0;&#xD;
+#endif&#xD;
+&#xD;
+ if (errno) {&#xD;
+ OSAL_ERROR (&quot;&quot;);&#xD;
+ }&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_gGHKEFF4EdyxP5ejovTmBw" name="RWLock" specification="_t6TIIFF3EdyxP5ejovTmBw">
+ <language>C/C++</language>
+ <body>#if defined SYNCHRO_Solaris&#xD;
+ errno = rwlock_destroy (&amp;rwl);&#xD;
+&#xD;
+#elif defined SYNCHRO_POSIX4 || SYNCHRO_Linux&#xD;
+ errno = pthread_rwlock_destroy (&amp;rwl);&#xD;
+&#xD;
+&#xD;
+#elif defined SYNCHRO_VxWorks //-VxW&#xD;
+ errno = 0; // je suppose qu'1 exécution OK ne touche pas errno &#xD;
+ semDelete (rwl.readersMut);&#xD;
+ semDelete (rwl.writersMut);&#xD;
+ semDelete (rwl.readMut);&#xD;
+ semDelete (rwl.readSem);&#xD;
+ semDelete (rwl.writeSem);&#xD;
+&#xD;
+#else&#xD;
+ errno = 0;&#xD;
+#endif&#xD;
+&#xD;
+ if (errno) {&#xD;
+ OSAL_ERROR (&quot;&quot;);&#xD;
+ }&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_jtFQwFF4EdyxP5ejovTmBw" name="rdlock" specification="_uA2cEFF3EdyxP5ejovTmBw">
+ <language>C/C++</language>
+ <body>#if defined SYNCHRO_Solaris&#xD;
+ errno = rw_rdlock (&amp;rwl);&#xD;
+&#xD;
+#elif defined SYNCHRO_POSIX4 || SYNCHRO_Linux&#xD;
+ errno = pthread_rwlock_rdlock (&amp;rwl);&#xD;
+&#xD;
+#elif defined SYNCHRO_VxWorks&#xD;
+ errno = 0;&#xD;
+ if (semTake (rwl.readMut, WAIT_FOREVER) == OK)&#xD;
+ if (semTake (rwl.readSem, WAIT_FOREVER) == OK)&#xD;
+ if (semTake (rwl.readersMut, WAIT_FOREVER) == OK) //début de section critique&#xD;
+ {&#xD;
+ rwl.readers++; //incremente nb de lecteurs&#xD;
+ if (rwl.readers == 1) //si premier lecteur alors il &#xD;
+ semTake (rwl.writeSem, WAIT_FOREVER); //bloque l'ecriture&#xD;
+ if (semGive (rwl.readersMut) == OK) //fin de section critique&#xD;
+ if (semGive (rwl.readSem) == OK)&#xD;
+ semGive (rwl.readMut);&#xD;
+ }&#xD;
+&#xD;
+#else // RWLock_Simulation&#xD;
+ errno = 0;&#xD;
+ rwl.readMut.lock ();&#xD;
+ rwl.readSem.wait ();&#xD;
+ rwl.readersMut.lock (); // début de section critique&#xD;
+ {&#xD;
+ rwl.readers++; //incrémente nb de lecteurs&#xD;
+ if (rwl.readers == 1) //si premier lecteur alors il &#xD;
+ rwl.writeSem.wait (); //bloque l'ecriture&#xD;
+ }&#xD;
+ rwl.readersMut.unlock (); // fin de section critique&#xD;
+ rwl.readSem.post ();&#xD;
+ rwl.readMut.unlock ();&#xD;
+&#xD;
+#endif&#xD;
+&#xD;
+ if (errno) {&#xD;
+ OSAL_ERROR (&quot;&quot;);&#xD;
+ }&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_mnfzcFF4EdyxP5ejovTmBw" name="wrlock" specification="_uHG1EFF3EdyxP5ejovTmBw">
+ <language>C/C++</language>
+ <body>#if defined SYNCHRO_Solaris&#xD;
+ errno = rw_wrlock (&amp;rwl);&#xD;
+&#xD;
+#elif defined SYNCHRO_POSIX4 || SYNCHRO_Linux&#xD;
+ errno = pthread_rwlock_wrlock (&amp;rwl);&#xD;
+&#xD;
+#elif defined SYNCHRO_VxWorks&#xD;
+ errno = 0;&#xD;
+ if (semTake (rwl.writersMut, WAIT_FOREVER) == OK) //début de section critique&#xD;
+ {&#xD;
+ if (++rwl.writers == 1) //si premier écrivain, alors &#xD;
+ semTake (rwl.readSem, WAIT_FOREVER); // attendre fin des lecteurs et les bloquer&#xD;
+ if (semGive (rwl.writersMut) == OK) //fin de section critique&#xD;
+ semTake (rwl.writeSem, WAIT_FOREVER); //verrouille acces en ecriture/lecture pour autres&#xD;
+ }&#xD;
+&#xD;
+#else // RWLock_Simulation&#xD;
+ errno = 0;&#xD;
+ rwl.writersMut.lock (); // début de section critique&#xD;
+ if (++rwl.writers == 1) //si premier écrivain, alors &#xD;
+ rwl.readSem.wait (); // attendre fin des lecteurs et les bloquer&#xD;
+ rwl.writersMut.unlock (); // fin de section critique&#xD;
+ rwl.writeSem.wait (); // demande à écrire seul&#xD;
+#endif&#xD;
+&#xD;
+ if (errno) {&#xD;
+ OSAL_ERROR (&quot;&quot;);&#xD;
+ }&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_p0ZNQFF4EdyxP5ejovTmBw" name="unlock" specification="_uL4AUFF3EdyxP5ejovTmBw">
+ <language>C/C++</language>
+ <body>#if defined SYNCHRO_Solaris&#xD;
+ errno = rw_unlock (&amp;rwl);&#xD;
+&#xD;
+#elif defined SYNCHRO_POSIX4 || SYNCHRO_Linux&#xD;
+ errno = pthread_rwlock_unlock (&amp;rwl);&#xD;
+&#xD;
+#elif defined SYNCHRO_VxWorks&#xD;
+ errno = 0;&#xD;
+ // test, if a reader or writer requires end&#xD;
+ if (rwl.readers)&#xD;
+ {&#xD;
+ if (semTake (rwl.readersMut, WAIT_FOREVER) == OK)&#xD;
+ {&#xD;
+ // entered critical section (through semTake)&#xD;
+ if (--rwl.readers == 0) // if last reader, authorize writers&#xD;
+ semGive (rwl.writeSem);&#xD;
+ semGive (rwl.readersMut); // end of critical section&#xD;
+ }&#xD;
+ }&#xD;
+ else if (rwl.writers)&#xD;
+ {&#xD;
+ if (semGive (rwl.writeSem) == OK) // authorize other writers&#xD;
+ if (semTake (rwl.writersMut, WAIT_FOREVER) == OK)&#xD;
+ {&#xD;
+ // entered critical section (through semTake)&#xD;
+ if (--rwl.writers == 0) // if last writer, authorize readers&#xD;
+ semGive (rwl.readSem);&#xD;
+ semGive (rwl.writersMut); // end of critical section&#xD;
+ }&#xD;
+ }&#xD;
+ else&#xD;
+ OSAL_ERROR (&quot;readers==0 &amp;&amp; writers==0&quot;);&#xD;
+&#xD;
+#else // RWLock_Simulation&#xD;
+ errno = 0;&#xD;
+ // test, if a reader or writer requires end&#xD;
+ if (rwl.readers)&#xD;
+ {&#xD;
+ rwl.readersMut.lock (); // enter ciritical section&#xD;
+ if (--rwl.readers == 0) // if last reader, authorize writers&#xD;
+ rwl.writeSem.post ();&#xD;
+ rwl.readersMut.unlock (); // end of critical section&#xD;
+ }&#xD;
+ else if (rwl.writers)&#xD;
+ {&#xD;
+ rwl.writeSem.post (); // authorize other writer&#xD;
+ rwl.writersMut.lock (); // enter critical section&#xD;
+ if (--rwl.writers == 0) // if last writer, authorize readers&#xD;
+ rwl.readSem.post ();&#xD;
+ rwl.writersMut.unlock (); // end of critical section&#xD;
+ }&#xD;
+ else&#xD;
+ OSAL_ERROR (&quot;readers==0 &amp;&amp; writers==0&quot;);&#xD;
+#endif&#xD;
+&#xD;
+ if (errno)&#xD;
+ OSAL_ERROR (&quot;&quot;);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_stT7IFF4EdyxP5ejovTmBw" name="tryRdLock" specification="_uQNGsFF3EdyxP5ejovTmBw">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_7SaRACBaEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_7S6AQCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_7TE_YCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>#if defined SYNCHRO_Solaris&#xD;
+ errno = rw_tryrdlock (&amp;rwl);&#xD;
+&#xD;
+#elif defined SYNCHRO_POSIX4 || SYNCHRO_Linux&#xD;
+ errno = pthread_rwlock_tryrdlock (&amp;rwl);&#xD;
+&#xD;
+&#xD;
+#elif defined SYNCHRO_VxWorks&#xD;
+ if (semTake (rwl.readMut, WAIT_FOREVER) == OK)&#xD;
+ if (semTake (rwl.readSem, WAIT_FOREVER) == OK) // VERIFIER ???????????&#xD;
+ if (semTake (rwl.readersMut, WAIT_FOREVER) == OK)&#xD;
+ {&#xD;
+ // entered critical section (through semTake)&#xD;
+ rwl.readers++; // increment number of readers&#xD;
+ if (rwl.readers == 1) // if first reader, ...&#xD;
+ semTake (rwl.writeSem, NO_WAIT); // ... block writer // VERIFIER ???????????&#xD;
+ if (semGive (rwl.readersMut) == OK) // end of critical section&#xD;
+ if (semGive (rwl.readSem) == OK)&#xD;
+ semGive (rwl.readMut);&#xD;
+ }&#xD;
+&#xD;
+#else // RWLock_Simulation&#xD;
+ errno = 0;&#xD;
+ rwl.readMut.lock ();&#xD;
+ if (rwl.readSem.tryWait () == 0)&#xD;
+ {&#xD;
+ rwl.readersMut.lock (); // begin of critical section&#xD;
+ {&#xD;
+ rwl.readers++; // increment number of readers&#xD;
+ if (rwl.readers == 1) // if first reader, ...&#xD;
+ rwl.writeSem.wait (); // ... block writer&#xD;
+ }&#xD;
+ rwl.readersMut.unlock (); // end of critical section&#xD;
+ rwl.readSem.post ();&#xD;
+ }&#xD;
+ rwl.readMut.unlock ();&#xD;
+#endif&#xD;
+&#xD;
+ if (errno &amp;&amp; errno != EBUSY)&#xD;
+ OSAL_ERROR (&quot;&quot;);&#xD;
+&#xD;
+ return errno;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_v3OSYFF4EdyxP5ejovTmBw" name="tryWrLock" specification="_uVHb4FF3EdyxP5ejovTmBw">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_7TU3ACBaEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_7T1NUCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_7T_lYCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>#if defined SYNCHRO_Solaris&#xD;
+ errno = rw_trywrlock (&amp;rwl);&#xD;
+&#xD;
+#elif defined SYNCHRO_POSIX4 || SYNCHRO_Linux&#xD;
+ errno = pthread_rwlock_trywrlock (&amp;rwl);&#xD;
+&#xD;
+#elif defined SYNCHRO_VxWorks&#xD;
+ errno = 0;&#xD;
+ if (semTake (rwl.writeSem, NO_WAIT) == OK) // request write access&#xD;
+ {&#xD;
+ if (semTake (rwl.writersMut, WAIT_FOREVER) == OK)&#xD;
+ {&#xD;
+ // entered critical section (through semTake)&#xD;
+ if (++rwl.writers == 1) //si premier ecrivain alors il &#xD;
+ semTake (rwl.readSem, WAIT_FOREVER); //bloque les lecteurs&#xD;
+ semGive (rwl.writersMut); //fin de section critique&#xD;
+ }&#xD;
+ }&#xD;
+ else&#xD;
+ {&#xD;
+ if (errno == S_objLib_OBJ_UNAVAILABLE)&#xD;
+ errno = EBUSY;&#xD;
+ }&#xD;
+&#xD;
+#else // RWLock_Simulation&#xD;
+ errno = 0;&#xD;
+ rwl.writersMut.lock (); // begin of critical section&#xD;
+ {&#xD;
+ rwl.writers++; // increment number of readers&#xD;
+ if (rwl.writers == 1) // if first reader, ... &#xD;
+ rwl.readSem.wait (); // ... block writers&#xD;
+ }&#xD;
+ rwl.writersMut.unlock (); // end of critical section&#xD;
+ rwl.writeSem.wait (); // lock write/read access for others&#xD;
+#endif&#xD;
+&#xD;
+ if (errno &amp;&amp; errno != EBUSY)&#xD;
+ OSAL_ERROR (&quot;&quot;);&#xD;
+&#xD;
+ return errno;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_tz4-IFF3EdyxP5ejovTmBw" name="RWLock" method="_eCFc0FF4EdyxP5ejovTmBw"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_t6TIIFF3EdyxP5ejovTmBw" name="RWLock" method="_gGHKEFF4EdyxP5ejovTmBw"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_uA2cEFF3EdyxP5ejovTmBw" name="rdlock" method="_jtFQwFF4EdyxP5ejovTmBw"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_uHG1EFF3EdyxP5ejovTmBw" name="wrlock" method="_mnfzcFF4EdyxP5ejovTmBw"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_uL4AUFF3EdyxP5ejovTmBw" name="unlock" method="_p0ZNQFF4EdyxP5ejovTmBw"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_uQNGsFF3EdyxP5ejovTmBw" name="tryRdLock" method="_stT7IFF4EdyxP5ejovTmBw">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_2732UFF3EdyxP5ejovTmBw" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_28T7MFF3EdyxP5ejovTmBw" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_28dsMFF3EdyxP5ejovTmBw" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_uVHb4FF3EdyxP5ejovTmBw" name="tryWrLock" method="_v3OSYFF4EdyxP5ejovTmBw">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_5qzhwFF3EdyxP5ejovTmBw" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_5rHDwFF3EdyxP5ejovTmBw" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_5rZ-sFF3EdyxP5ejovTmBw" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_-EmMgFF3EdyxP5ejovTmBw" name="_rwl" method="_Pus2wFF4EdyxP5ejovTmBw">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_K9Or0FF4EdyxP5ejovTmBw" name="param_0" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K9rXwFF4EdyxP5ejovTmBw" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K9-SsFF4EdyxP5ejovTmBw" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_-N-yAFF3EdyxP5ejovTmBw" name="set_rwl" method="_RLryIFF4EdyxP5ejovTmBw">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_M0l2EFF4EdyxP5ejovTmBw" name="cr_operand">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_M1B68FF4EdyxP5ejovTmBw" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_M1Vc8FF4EdyxP5ejovTmBw" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_nORxgFF2EdyxP5ejovTmBw" name="FromRWLocktop_Synchronization" client="_dhMBIFF2EdyxP5ejovTmBw" supplier="_rsw80FC3EdyqzLG48ixyqA"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_IbQcUFd7Ed-9TNLvplUFDQ" name="SemStruc"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_QWlVgPRTEeCUGrV0Hl4JwQ" name="Condition">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_QWlVgfRTEeCUGrV0Hl4JwQ" annotatedElement="_QWlVgPRTEeCUGrV0Hl4JwQ">
+ <body>From the Posix man page:&#xD;
+A condition (short for ``condition variable'') is a synchronization&#xD;
+device that allows threads to suspend execution and relinquish the&#xD;
+processors until some predicate on shared data is satisfied. The basic&#xD;
+operations on conditions are: signal the condition (when the predicate&#xD;
+becomes true), and wait for the condition, suspending the thread&#xD;
+execution until another thread signals the condition.&#xD;
+&#xD;
+A condition variable must always be associated with a mutex, to avoid&#xD;
+the race condition where a thread prepares to wait on a condition&#xD;
+variable and another thread signals the condition just before the&#xD;
+first thread actually waits on it.</body>
+ </ownedComment>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_QWlVgvRTEeCUGrV0Hl4JwQ" name="m_isLocked" visibility="private" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QWlVhPRTEeCUGrV0Hl4JwQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QWlVg_RTEeCUGrV0Hl4JwQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_QWlVhvRTEeCUGrV0Hl4JwQ" name="m_mutex" visibility="private" type="_Jj9usFC7EdyqzLG48ixyqA" isUnique="false">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QWlViPRTEeCUGrV0Hl4JwQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QWlVh_RTEeCUGrV0Hl4JwQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_SAnLoBEhEeG3cfLoiI6G7g" name="m_condition" type="_U_uoIBEhEeG3cfLoiI6G7g">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SBsJsBEhEeG3cfLoiI6G7g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SBv0EBEhEeG3cfLoiI6G7g" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_QWlVifRTEeCUGrV0Hl4JwQ" name="Condition" specification="_QWlVkfRTEeCUGrV0Hl4JwQ">
+ <language>C/C++</language>
+ <body>#if defined SYNCHRO_POSIX4&#xD;
+ int error = pthread_cond_init (&amp;m_condition, NULL);&#xD;
+&#xD;
+#elif defined SYNCHRO_Solaris&#xD;
+ int error = cond_init (&amp;m_condition, USYNC_THREAD, 0);&#xD;
+&#xD;
+#elif defined SYNCHRO_VxWorks&#xD;
+ OSAL_ERROR (&quot;Not available with VxWorks&quot;);&#xD;
+ // maybe a mechanism can be implemented by means of a signal pendants&#xD;
+&#xD;
+#else&#xD;
+ #error SYNCHRO_???? not defined&#xD;
+#endif&#xD;
+&#xD;
+if (error) {&#xD;
+ OSAL_ERROR (&quot;Condition constructor failed&quot;);&#xD;
+}</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_QWlVivRTEeCUGrV0Hl4JwQ" name="Condition" specification="_QWlVkvRTEeCUGrV0Hl4JwQ">
+ <language>C/C++</language>
+ <body>if (m_isLocked) {&#xD;
+ unlock ();&#xD;
+}&#xD;
+&#xD;
+#if defined SYNCHRO_POSIX4 || defined SYNCHRO_Linux&#xD;
+ int error = pthread_cond_destroy (&amp;m_condition);&#xD;
+#elif defined SYNCHRO_Solaris&#xD;
+ int error = cond_destroy (&amp;m_condition);&#xD;
+#endif&#xD;
+&#xD;
+if (error) {&#xD;
+ OSAL_ERROR (&quot;destructor failed&quot;);&#xD;
+}</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_QWlVi_RTEeCUGrV0Hl4JwQ" name="lock" specification="_QWlVk_RTEeCUGrV0Hl4JwQ">
+ <language>C/C++</language>
+ <body>m_mutex.lock ();&#xD;
+m_isLocked = true;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_QWlVjPRTEeCUGrV0Hl4JwQ" name="unlock" specification="_QWlVlPRTEeCUGrV0Hl4JwQ">
+ <language>C/C++</language>
+ <body>if (!m_isLocked) {&#xD;
+ // OSAL_ERROR (&quot;already unlocked&quot;);&#xD;
+}&#xD;
+m_mutex.unlock ();&#xD;
+m_isLocked = false;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_QWlVjfRTEeCUGrV0Hl4JwQ" name="wait" specification="_QWlVlfRTEeCUGrV0Hl4JwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_8gX48CBaEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8g-88CBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8hJ8ECBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>for (;;) {&#xD;
+#if defined SYNCHRO_POSIX4&#xD;
+ /*&#xD;
+ * POSIX man page:&#xD;
+ * The pthread_cond_timedwait() and pthread_cond_wait() functions shall&#xD;
+ * block on a condition variable. They shall be called with mutex locked&#xD;
+ * by the calling thread or undefined behavior results.&#xD;
+ */&#xD;
+ &#xD;
+ int result = pthread_cond_wait (&amp;m_condition, &amp;m_mutex.m_mutexS);&#xD;
+ &#xD;
+#elif defined SYNCHRO_Solaris&#xD;
+ int result = cond_wait (&amp;m_condition, &amp;m_mutex.m_mutexS);&#xD;
+ &#xD;
+#endif&#xD;
+ if (result == 0) {&#xD;
+ // upon successful return, the lock is re-locked&#xD;
+ m_isLocked = true;&#xD;
+ return result;&#xD;
+ }&#xD;
+ if (result == EPERM) {&#xD;
+ OSAL_ERROR (&quot;wait failed (EPERM - operation not permitted)&quot;);&#xD;
+ } &#xD;
+ else if (result != EINTR) {&#xD;
+ OSAL_ERROR (&quot;wait failed&quot;);&#xD;
+ }&#xD;
+}</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_QWlVjvRTEeCUGrV0Hl4JwQ" name="waitUpto" specification="_QWlVm_RTEeCUGrV0Hl4JwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_8hZzsCBaEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8h5i8CBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8iEiECBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_8iPhMCBaEeOMKsPXBVC0DA" name="date" type="_FuKEEDj8Edy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8ivQcCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8i6PkCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>TRACEpr (VM);&#xD;
+PR (&quot;Condition::waitUpTo ()&quot; &lt;&lt; showI);&#xD;
+&#xD;
+int result;&#xD;
+if (date.hasPassed ()) {&#xD;
+ result = ERANGE; // it is too late !&#xD;
+}&#xD;
+else {&#xD;
+ result = 0;&#xD;
+&#xD;
+ m_isLocked = false; // cond_timedwait will unlock the lock&#xD;
+ OS_AL::Time::TimeVal absTime = date + OS_AL::Time::TimeVal::sysStartTime();&#xD;
+#if defined SYNCHRO_POSIX4&#xD;
+ struct timespec finalDate; // final date in standard type&#xD;
+ finalDate.tv_sec = absTime.getSec();&#xD;
+ finalDate.tv_nsec = absTime.getUsec() * 1000;&#xD;
+&#xD;
+ for (;;) {&#xD;
+ result = pthread_cond_timedwait (&amp;m_condition, &amp;m_mutex.m_mutexS, &amp;finalDate);&#xD;
+#elif defined SYNCHRO_Solaris&#xD;
+ timestruc_t finalDate; // final date in standard type&#xD;
+ finalDate.tv_sec = absTime.getSec();&#xD;
+ finalDate.tv_nsec = absTime.getUsec() * 1000;&#xD;
+&#xD;
+ for (;;) {&#xD;
+ result = cond_timedwait (&amp;m_condition, &amp;m_mutex.m_mutexS, &amp;finalDate);&#xD;
+#else&#xD;
+ // not supported in vxWorks, open loop to satisfy the compilers&#xD;
+ for (;;) {&#xD;
+ result = 0;&#xD;
+#endif&#xD;
+ if ((result == 0) || (result == ETIMEDOUT)) {&#xD;
+ break;&#xD;
+ }&#xD;
+ if (result != EINTR) {&#xD;
+ OS_AL::Util::BString500 s1 (&quot;date=&quot;);&#xD;
+ OSAL_ERROR (s1 &lt;&lt; finalDate.tv_sec &lt;&lt; &quot; sec. , &quot; &lt;&lt; finalDate.tv_nsec);&#xD;
+ }&#xD;
+ }&#xD;
+}&#xD;
+&#xD;
+// upon successful return, the lock is re-locked&#xD;
+if (result == 0) {&#xD;
+ m_isLocked = true;&#xD;
+}&#xD;
+return result;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_QWlVj_RTEeCUGrV0Hl4JwQ" name="signal" specification="_QWlVpfRTEeCUGrV0Hl4JwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_8jZ-0CBaEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8j6VICBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8kFUQCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>#if defined SYNCHRO_POSIX4 || defined SYNCHRO_Linux&#xD;
+int result = pthread_cond_signal (&amp;m_condition);&#xD;
+&#xD;
+#elif defined SYNCHRO_Solaris&#xD;
+int result = cond_signal (&amp;m_condition);&#xD;
+&#xD;
+#endif&#xD;
+&#xD;
+if (result != 0) {&#xD;
+ OSAL_ERROR (&quot;could not signal condition&quot;);&#xD;
+}&#xD;
+&#xD;
+return result;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_QWlVkPRTEeCUGrV0Hl4JwQ" name="broadcast" specification="_QWlVq_RTEeCUGrV0Hl4JwQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_8kVL4CBaEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8k07ICBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8k_6QCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>#if defined SYNCHRO_POSIX4 || defined SYNCHRO_Linux&#xD;
+int result = pthread_cond_broadcast (&amp;m_condition);&#xD;
+&#xD;
+#elif defined SYNCHRO_Solaris&#xD;
+int result = cond_broadcast (&amp;m_condition);&#xD;
+&#xD;
+#endif&#xD;
+&#xD;
+if (result != 0) {&#xD;
+ OSAL_ERROR (&quot;&quot;);&#xD;
+}&#xD;
+&#xD;
+return result;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_QWlVkfRTEeCUGrV0Hl4JwQ" name="Condition" method="_QWlVifRTEeCUGrV0Hl4JwQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_QWlVkvRTEeCUGrV0Hl4JwQ" name="Condition" method="_QWlVivRTEeCUGrV0Hl4JwQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_QWlVk_RTEeCUGrV0Hl4JwQ" name="lock" method="_QWlVi_RTEeCUGrV0Hl4JwQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_QWlVlPRTEeCUGrV0Hl4JwQ" name="unlock" method="_QWlVjPRTEeCUGrV0Hl4JwQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_QWlVlfRTEeCUGrV0Hl4JwQ" name="wait" method="_QWlVjfRTEeCUGrV0Hl4JwQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_QWlVlvRTEeCUGrV0Hl4JwQ" annotatedElement="_QWlVlfRTEeCUGrV0Hl4JwQ">
+ <body>wait, until the condition variable is signaled.&#xD;
+ &#xD;
+ The associated mutex must be locked before calling waitUpto. It will&#xD;
+ be re-locked at the end of the call.</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_QWlVl_RTEeCUGrV0Hl4JwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QWlVmfRTEeCUGrV0Hl4JwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QWlVmPRTEeCUGrV0Hl4JwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_QWlVm_RTEeCUGrV0Hl4JwQ" name="waitUpto" method="_QWlVjvRTEeCUGrV0Hl4JwQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_QWlVnPRTEeCUGrV0Hl4JwQ" annotatedElement="_QWlVm_RTEeCUGrV0Hl4JwQ">
+ <body>wait, until the condition variable is signaled or the given date&#xD;
+ has pased.&#xD;
+ &#xD;
+ The associated mutex must be locked before calling waitUpto. It will&#xD;
+ be re-locked at the end of the call.</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_QWlVnfRTEeCUGrV0Hl4JwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QWlVn_RTEeCUGrV0Hl4JwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QWlVnvRTEeCUGrV0Hl4JwQ" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_QWlVofRTEeCUGrV0Hl4JwQ" name="date" type="_FuKEEDj8Edy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QWlVo_RTEeCUGrV0Hl4JwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QWlVovRTEeCUGrV0Hl4JwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_QWlVpfRTEeCUGrV0Hl4JwQ" name="signal" method="_QWlVj_RTEeCUGrV0Hl4JwQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_QWlVpvRTEeCUGrV0Hl4JwQ" annotatedElement="_QWlVpfRTEeCUGrV0Hl4JwQ">
+ <body>signal the condition. A thread that is currently waiting for the&#xD;
+ condition will continue. If multiple threads are waiting, only one&#xD;
+ of these will continue.</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_QWlVp_RTEeCUGrV0Hl4JwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QWlVqfRTEeCUGrV0Hl4JwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QWlVqPRTEeCUGrV0Hl4JwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_QWlVq_RTEeCUGrV0Hl4JwQ" name="broadcast" method="_QWlVkPRTEeCUGrV0Hl4JwQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_QWlVrPRTEeCUGrV0Hl4JwQ" annotatedElement="_QWlVq_RTEeCUGrV0Hl4JwQ">
+ <body>signal the condition. Other threads that are currently waiting for the&#xD;
+ condition will continue.</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_QWlVrfRTEeCUGrV0Hl4JwQ" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QWlVr_RTEeCUGrV0Hl4JwQ" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QWlVrvRTEeCUGrV0Hl4JwQ" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_uWQvMBD4EeG3cfLoiI6G7g" name="MutexId"/>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_0H3-IBEcEeG3cfLoiI6G7g" name="Scope">
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_2SOV0BEcEeG3cfLoiI6G7g" name="IntraProcess"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_3I10wBEcEeG3cfLoiI6G7g" name="InterProcess"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_U_uoIBEhEeG3cfLoiI6G7g" name="ConditionId"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_vlmmAC-OEdySSa8YESkO2w" name="Time">
+ <packagedElement xmi:type="uml:Class" xmi:id="_BN92YDj8Edy0Rd6V_tf1-Q" name="DebugTimer">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_4fTgUDj_Edy0Rd6V_tf1-Q" name="timer" type="_ETakYDj8Edy0Rd6V_tf1-Q" isUnique="false" association="_4fJvUDj_Edy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_5xaBYDj_Edy0Rd6V_tf1-Q" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_5xjyYDj_Edy0Rd6V_tf1-Q" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_B8mhMTkAEdy0Rd6V_tf1-Q" name="overrunCheckThread" type="_-HeCsDj_Edy0Rd6V_tf1-Q" isUnique="false" association="_B8mhMDkAEdy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C_gvsDkAEdy0Rd6V_tf1-Q"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C_p5oDkAEdy0Rd6V_tf1-Q" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_k235cDkFEdyuzNpSiGPe4w" name="m_thread" visibility="protected" type="_-HeCsDj_Edy0Rd6V_tf1-Q" isUnique="false" association="_k2k-gDkFEdyuzNpSiGPe4w">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_pAkSsDkFEdyuzNpSiGPe4w" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_pAuDsDkFEdyuzNpSiGPe4w" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_hURusDkAEdy0Rd6V_tf1-Q" name="checkOverruns" specification="_I9vBoDkAEdy0Rd6V_tf1-Q">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="__ZLSECBaEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__ZroYCBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__Z2AcCBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="__aOa8CBaEeOMKsPXBVC0DA" name="arg">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__a034CBaEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__a_3ACBaEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> int receivedSigID;&#xD;
+ sigset_t sigset;&#xD;
+ sigemptyset (&amp;sigset);&#xD;
+ sigaddset (&amp;sigset, SIGRTMIN);&#xD;
+ for (;;) {&#xD;
+ sigwait (&amp;sigset, &amp;receivedSigID);&#xD;
+ int overruns = debugTimer.getOverrun ();&#xD;
+ if (overruns > 0) {&#xD;
+ TRACEpr (F6);&#xD;
+ PR (&quot;detected return from debugger&quot; &lt;&lt; showI);&#xD;
+ TimeVal delta;&#xD;
+ overruns++; // the actual delay is between overruns and overruns+1&#xD;
+ delta.setSec ((overruns / DBG_TICKS_PER_SECOND));&#xD;
+ delta.setUsec ((overruns % DBG_TICKS_PER_SECOND) *&#xD;
+ DBG_RESOLUTION_MS * 1000);&#xD;
+ TimeVal::adjustTime (delta);&#xD;
+ PR (&quot;adjusted time&quot; &lt;&lt; showI);&#xD;
+ }&#xD;
+ }&#xD;
+ return NULL;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_k_uFsDkAEdy0Rd6V_tf1-Q" name="activateDebugTimer" specification="_RTqHkDj8Edy0Rd6V_tf1-Q">
+ <language>C/C++</language>
+ <body> itimerspec its = {&#xD;
+ {0, DBG_RESOLUTION_MS*1000*1000},&#xD;
+ {0, DBG_RESOLUTION_MS*1000*1000}&#xD;
+ };&#xD;
+&#xD;
+ // need high priority (1)&#xD;
+ Thread::modifySigMask (SIG_BLOCK, SIGRTMIN);&#xD;
+ // not declared globally, since initialization order of gcc is incorrect&#xD;
+ // (set_of_threads is initialized after)&#xD;
+ overrunCheckThread = new Thread (&quot;dbg-check&quot;);&#xD;
+ overrunCheckThread->exec (checkOverruns, NULL, 10);&#xD;
+ &#xD;
+ debugTimer.setTime (0, &amp;its);</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_RTqHkDj8Edy0Rd6V_tf1-Q" name="activateDebugTimer" method="_k_uFsDkAEdy0Rd6V_tf1-Q"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_I9vBoDkAEdy0Rd6V_tf1-Q" name="checkOverruns" method="_hURusDkAEdy0Rd6V_tf1-Q">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_NMC1IDkAEdy0Rd6V_tf1-Q" annotatedElement="_I9vBoDkAEdy0Rd6V_tf1-Q">
+ <body>todo: need to use thread abstraction</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Q8_-QDkAEdy0Rd6V_tf1-Q" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_RCzrUDkAEdy0Rd6V_tf1-Q" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_RC9cUDkAEdy0Rd6V_tf1-Q" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_RLwL8DkAEdy0Rd6V_tf1-Q" name="arg">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_RMDG4DkAEdy0Rd6V_tf1-Q" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_RMM34DkAEdy0Rd6V_tf1-Q" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_ETakYDj8Edy0Rd6V_tf1-Q" name="Timer">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xh0kQDkUEdyuzNpSiGPe4w" annotatedElement="_ETakYDj8Edy0Rd6V_tf1-Q">
+ <body>Abstraction of a Timer&#xD;
+&#xD;
+This class serves two different functions: if an instance is&#xD;
+created via the constructor, it provides a (posix) timer. The configuration&#xD;
+of this timer is done by means of the method settime, which allows&#xD;
+principally to configure a period length and the initial delay.&#xD;
+&#xD;
+In addtion, the timer class offers the possibility to use system&#xD;
+functions for waiting a specific time:&#xD;
+&#xD;
+ - sleep&#xD;
+ - wakeup&#xD;
+ - wakePeriodicforZero&#xD;
+&#xD;
+In order to use These, it is not necessary to create a timer instance,&#xD;
+these operations are static.</body>
+ </ownedComment>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_46X-0DkXEdyuzNpSiGPe4w" name="m_id" visibility="private" type="_5YJA0It4EeCA0czgCf_91g" isUnique="false">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6UrZoDkXEdyuzNpSiGPe4w" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6U1KoDkXEdyuzNpSiGPe4w" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_aRuIkDkZEdyuzNpSiGPe4w" name="Timer" specification="_4_tSIDkUEdyuzNpSiGPe4w">
+ <language>C/C++</language>
+ <body> m_id = TimerNotAssigned;&#xD;
+&#xD;
+#if defined TIMER_POSIX4&#xD;
+ #define ITIMER CLOCK_REALTIME // or CLOCK_MONOTONIC&#xD;
+&#xD;
+ // With evp==NULL and SA_SIGINFO set ,&#xD;
+ // SIGALRM will be sent to the process (or to the thread&#xD;
+ // not masked for this signal)&#xD;
+ // replace SIG_IGN by a handleSigAlarm() ??????&#xD;
+ // mask other signals !!&#xD;
+&#xD;
+ // initialisation of sigaction structure&#xD;
+ struct sigaction act;&#xD;
+ //act.sa_handler = (VOIDFUNCPTR) sigHandler;&#xD;
+ //act.sa_mask = 0;&#xD;
+ //act.sa_flags = 0;&#xD;
+ // we have to define a handler with the following arguments:&#xD;
+ // void sigHandler(int sig, int code, SIGCONTEXT *sigContext) {};&#xD;
+&#xD;
+ if (sigaction (SIGALRM, &amp;act, NULL))&#xD;
+ OSAL_ERROR (&quot;ON sigaction()&quot;);&#xD;
+&#xD;
+ struct sigevent sig_event;&#xD;
+ sig_event.sigev_notify = SIGEV_SIGNAL;&#xD;
+ sig_event.sigev_value.sival_ptr = this;&#xD;
+ sig_event.sigev_signo = SIGRTMIN;&#xD;
+ // sig_event.sigev_notify_function = SysTimer_impl::handler_fct;&#xD;
+ // sig_event.sigev_notify_attributes = NULL;&#xD;
+&#xD;
+ int r = timer_create (ITIMER, &amp;sig_event, &amp;m_id);&#xD;
+ if (r == -1)&#xD;
+ OSAL_ERROR (&quot;ON timer_create()&quot;);&#xD;
+&#xD;
+#elif defined TIMER_Solaris&#xD;
+ #define ITIMER ITIMER_REAL // PAS CONSEILLÉ par Doc SunOS5.5&#xD;
+ //#define ITIMER ITIMER_VIRTUAL ???&#xD;
+ #define SIG_ITIMER SIGALRM // or SIGVTALRM&#xD;
+&#xD;
+ // &#xD;
+ // Si la Realtime Library de Solaris ne marche vraiment pas pour les timers&#xD;
+ // masquer ce thread contre les autres signaux !!&#xD;
+ // faire la methode de classe handleTimerSignal() contenant seulement :&#xD;
+ // flag= 1;&#xD;
+ //&#xD;
+ //**** Prepare signal receiving&#xD;
+ // struct sigaction sigAct;&#xD;
+ // sigAct.sa_handler= (VOIDFUNCPTR) sigHandler);&#xD;
+ // sigAct.sa_mask= 0;&#xD;
+ // sigAct.sa_flags= 0;&#xD;
+ // sigaction(SIGALRM, &amp;sigAct, NULL);&#xD;
+ //&#xD;
+ // void (*f)(int);&#xD;
+ // f= sigset(SIG_ITIMER, (void(*)(int))handleTimerSignal);&#xD;
+ // if (f == SIG_ERR)&#xD;
+ // OSAL_ERROR(&quot;ON sigset(SIG_ITIMER, )&quot;);&#xD;
+&#xD;
+ PRINTpr (&quot;not yet implemented.&quot;);&#xD;
+ pr &lt;&lt; shErr;&#xD;
+#else&#xD;
+ #error Timer_??? not defined&#xD;
+#endif&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_eQrRcDkZEdyuzNpSiGPe4w" name="Timer" specification="_5IDV0DkUEdyuzNpSiGPe4w">
+ <language>C/C++</language>
+ <body> int r;&#xD;
+&#xD;
+#if defined TIMER_POSIX4&#xD;
+ if (m_id != TimerNotAssigned)&#xD;
+ {&#xD;
+ r = timer_delete (m_id);&#xD;
+ if (r == -1) {&#xD;
+ OSAL_ERROR (&quot;ON timer_delete()&quot;);&#xD;
+ }&#xD;
+ }&#xD;
+#elif defined TIMER_Solaris&#xD;
+ // [todo: resource leak?]&#xD;
+#else&#xD;
+ #error Timer_??? not defined&#xD;
+#endif&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_iA4zsDkZEdyuzNpSiGPe4w" name="waitPeriodicForZero" specification="_Fs12oDkWEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_AzsIQCBbEeOMKsPXBVC0DA" name="intPtr" direction="inout">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A0SlMCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A0dkUCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A09TkCBbEeOMKsPXBVC0DA" name="txt" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A1dC0CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A1oB8CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A2C4sCBbEeOMKsPXBVC0DA" name="duration">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A2jPACBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A2uOICBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> int count = 0;&#xD;
+&#xD;
+ OS_AL::Util::Print pr2;&#xD;
+ pr2 &lt;&lt; txt;&#xD;
+&#xD;
+ while (*intPtr) // while pointed integer is not zero&#xD;
+ {&#xD;
+ if (txt.length () != 0) // print if txt string is not empty&#xD;
+ {&#xD;
+ pr2 &lt;&lt; &quot;value *intPtr = &quot; &lt;&lt; *intPtr &lt;&lt; &quot; - wait &quot; &lt;&lt; duration&#xD;
+ &lt;&lt; &quot; timetick(s)&quot; &lt;&lt; showI;&#xD;
+ }&#xD;
+ count ++;&#xD;
+ Timer::sleep (duration);&#xD;
+&#xD;
+ if (!(errno == EINTR || errno == ETIME))&#xD;
+ OSAL_ERROR (&quot;&quot;);&#xD;
+ }&#xD;
+ pr2.clean ();&#xD;
+&#xD;
+ TRACEpr (F7);&#xD;
+ PR (txt &lt;&lt; &quot;> return after &quot; &lt;&lt; count&#xD;
+ &lt;&lt; &quot; * &quot; &lt;&lt; duration &lt;&lt; &quot; timeticks&quot; &lt;&lt; showI);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_lacwgDkZEdyuzNpSiGPe4w" name="setTime" specification="__BNhkDkUEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A2-s0CBbEeOMKsPXBVC0DA" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A3fDICBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A3qCQCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A30aUCBbEeOMKsPXBVC0DA" name="flags">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A4VXsCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A4fvwCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A4qu4CBbEeOMKsPXBVC0DA" name="value" type="_SPVucIt6EeCA0czgCf_91g">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A5LsQCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A5WEUCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A52aoCBbEeOMKsPXBVC0DA" name="oldValue" type="_SPVucIt6EeCA0czgCf_91g">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A6XYACBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A6iXICBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> int r = 0;&#xD;
+&#xD;
+#if defined TIMER_POSIX4 || defined TIMER_Linux&#xD;
+ // flags == TIMER_RELTIME ou TIMER_ABSTIME&#xD;
+ r = timer_settime (m_id, flags, value, oldValue);&#xD;
+ if (r == -1)&#xD;
+ OSAL_ERROR (&quot;ON timer_settime()&quot;);&#xD;
+&#xD;
+#elif defined TIMER_Solaris&#xD;
+ struct itimerval val, oldVal;&#xD;
+ val.it_interval.tv_sec = value->it_interval.tv_sec;&#xD;
+ val.it_interval.tv_usec = value->it_interval.tv_nsec / 1000;&#xD;
+ val.it_value.tv_sec = value->it_value.tv_sec;&#xD;
+ val.it_value.tv_usec = value->it_value.tv_nsec / 1000;&#xD;
+&#xD;
+ if (setitimer (ITIMER, &amp;val, &amp;oldVal))&#xD;
+ OSAL_ERROR (&quot;ON setitimer()&quot;);&#xD;
+&#xD;
+ if (oldValue)&#xD;
+ {&#xD;
+ oldValue->it_interval.tv_sec = oldVal.it_interval.tv_sec;&#xD;
+ oldValue->it_interval.tv_nsec = oldVal.it_interval.tv_usec * 1000;&#xD;
+ oldValue->it_value.tv_sec = oldVal.it_value.tv_sec;&#xD;
+ oldValue->it_value.tv_nsec = oldVal.it_value.tv_usec * 1000;&#xD;
+ }&#xD;
+#else&#xD;
+ #error Timer_??? not defined&#xD;
+#endif&#xD;
+&#xD;
+ return r;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_piEGIDkZEdyuzNpSiGPe4w" name="getTime" specification="_FpAU8DkVEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A7ARMCBbEeOMKsPXBVC0DA" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A7nVMCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A7yUUCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A79TcCBbEeOMKsPXBVC0DA" name="value" type="_SPVucIt6EeCA0czgCf_91g">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A8eQ0CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A8pP8CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> int r = 0;&#xD;
+&#xD;
+#if defined TIMER_POSIX4 || defined TIMER_Linux&#xD;
+ r = timer_gettime (m_id, value);&#xD;
+ if (r == -1)&#xD;
+ OSAL_ERROR (&quot;ON timer_gettime()&quot;);&#xD;
+&#xD;
+#elif defined TIMER_Solaris&#xD;
+ struct itimerval val;&#xD;
+ val.it_interval.tv_sec = value->it_interval.tv_sec;&#xD;
+ val.it_interval.tv_usec = value->it_interval.tv_nsec / 1000;&#xD;
+ val.it_value.tv_sec = value->it_value.tv_sec;&#xD;
+ val.it_value.tv_usec = value->it_value.tv_nsec / 1000;&#xD;
+&#xD;
+ if (getitimer (ITIMER, &amp;val))&#xD;
+ OSAL_ERROR (&quot;ON getitimer()&quot;);&#xD;
+#else&#xD;
+ #error Timer_??? not defined&#xD;
+#endif&#xD;
+&#xD;
+ return r;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sPNo4DkZEdyuzNpSiGPe4w" name="getOverrun" specification="_5XqpsDkVEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A9IYICBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A9oucCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A9ztkCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> int r;&#xD;
+&#xD;
+#if defined TIMER_Linux&#xD;
+ r = timer_getoverrun (m_id);&#xD;
+ if (r == -1)&#xD;
+ OSAL_ERROR (&quot;ON timer_getoverrun()&quot;);&#xD;
+&#xD;
+#elif defined TIMER_Cygwin || defined TIMER_Solaris&#xD;
+ // not supported&#xD;
+ r = 0;&#xD;
+#else&#xD;
+ #error Timer_??? not defined&#xD;
+#endif&#xD;
+&#xD;
+ return r;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_uuNa4DkZEdyuzNpSiGPe4w" name="sleep" specification="_Fh0SYDkWEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-EMQCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-kikCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-vhsCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-6g0CBbEeOMKsPXBVC0DA" name="duration">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8heigBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A_beMCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A_mdUCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> int r = 0;&#xD;
+&#xD;
+ if (duration > 0)&#xD;
+ {&#xD;
+ TimeVal finalDate = TimeVal::current () + TimeVal (duration);&#xD;
+ r = wakeUp (finalDate);&#xD;
+ }&#xD;
+&#xD;
+ return r;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_w_WXEDkZEdyuzNpSiGPe4w" name="wakeUp" specification="_Fk8e4DkWEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A_28ACBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BAXSUCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BAiRcCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_BAtQkCBbEeOMKsPXBVC0DA" name="date" type="_FuKEEDj8Edy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BBNm4CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BBYmACBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> int r = 0;&#xD;
+&#xD;
+ if (!date.hasPassed ()) {&#xD;
+ TimeVal remainder;&#xD;
+ do {&#xD;
+ r = waitDate (date, remainder);&#xD;
+ } while (remainder > 0);&#xD;
+ }&#xD;
+ return r;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_2imkQDkZEdyuzNpSiGPe4w" name="waitDate" specification="_TvgqsDkXEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_BB4VQCBbEeOMKsPXBVC0DA" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BCYrkCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BCjqsCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_BCup0CBbEeOMKsPXBVC0DA" name="finalDate" type="_FuKEEDj8Edy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BDXjACBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BDh7ECBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_BD8x0CBbEeOMKsPXBVC0DA" name="remainder" type="_FuKEEDj8Edy0Rd6V_tf1-Q" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BEdIICBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BEoHQCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> int r;&#xD;
+&#xD;
+#ifdef SYSTEM_Solaris&#xD;
+ mutex_t sleepLock = DEFAULTMUTEX; // without init(), requires zeroed memory&#xD;
+ cond_t sleepCond = DEFAULTCV; // this condition variable will never be unblocked&#xD;
+ struct timespec final; // final date in standard type&#xD;
+ TimeVal absTime = finalDate + TimeVal::sysStartTime ();&#xD;
+ final.tv_sec = absTime.getSec ();&#xD;
+ final.tv_nsec = absTime.getUsec () * 1000;&#xD;
+&#xD;
+ mutex_lock (&amp;sleepLock);&#xD;
+ errno = r = cond_timedwait (&amp;sleepCond, &amp;sleepLock, &amp;final);&#xD;
+ mutex_unlock (&amp;sleepLock);&#xD;
+ // cond_destroy(&amp;sleepCond);&#xD;
+ // mutex_destroy(&amp;sleepLock);&#xD;
+&#xD;
+ if (errno == ETIME || errno == 0) {&#xD;
+ r = 0;&#xD;
+ remainder.setSec (0);&#xD;
+ remainder.setNSec (0);&#xD;
+ }&#xD;
+ else if (errno == EINTR) {&#xD;
+ // call has been interrupted by signal&#xD;
+ r = 1;&#xD;
+ remainder = finalDate - TimeVal::current ();&#xD;
+ }&#xD;
+ else {&#xD;
+ OSAL_ERROR (&quot;ON cond_timedwait()&quot;);&#xD;
+ }&#xD;
+#else&#xD;
+ struct timespec delay, remainingTime;&#xD;
+ TimeVal delayTime = finalDate - TimeVal::current ();&#xD;
+// #define PRECISE_WAIT&#xD;
+#ifdef PRECISE_WAIT&#xD;
+ // idea: wait some ms less with nanosleep, perform busy wait after&#xD;
+ // [todo:] does not work for remainingTime&#xD;
+ TimeVal some_ms;&#xD;
+ some_ms.setUsec (5*1000);&#xD;
+&#xD;
+ TimeVal sleepTime = delayTime - some_ms;&#xD;
+ delay.tv_sec = sleepTime.getSec ();&#xD;
+ delay.tv_nsec = sleepTime.getNsec ();&#xD;
+ r = 0;&#xD;
+ if (sleepTime > 0) {&#xD;
+ r = nanosleep (&amp;delay, &amp;remainingTime);&#xD;
+ }&#xD;
+ // perform busy wait for last (upto) 10 ms&#xD;
+ do {&#xD;
+ delayTime = finalDate - TimeVal::current ();&#xD;
+ }&#xD;
+ while (delayTime > 0);&#xD;
+#else&#xD;
+ delay.tv_sec = delayTime.getSec ();&#xD;
+ delay.tv_nsec = delayTime.getNsec ();&#xD;
+ r = nanosleep (&amp;delay, &amp;remainingTime);&#xD;
+#endif&#xD;
+ if (r == 0)&#xD;
+ {&#xD;
+ remainder = 0;&#xD;
+ }&#xD;
+ else&#xD;
+ {&#xD;
+ if (errno != EINTR)&#xD;
+ OSAL_ERROR (&quot;ON nanosleep()&quot;);&#xD;
+ r = 1;&#xD;
+ // todo: remainder not used?&#xD;
+ remainder.setSec (remainingTime.tv_sec);&#xD;
+ remainder.setNsec (remainingTime.tv_nsec);&#xD;
+ }&#xD;
+#endif&#xD;
+&#xD;
+ return r;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_4_tSIDkUEdyuzNpSiGPe4w" name="Timer" method="_aRuIkDkZEdyuzNpSiGPe4w"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_5IDV0DkUEdyuzNpSiGPe4w" name="Timer" method="_eQrRcDkZEdyuzNpSiGPe4w"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="__BNhkDkUEdyuzNpSiGPe4w" name="setTime" method="_lacwgDkZEdyuzNpSiGPe4w">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_KN-U8DkVEdyuzNpSiGPe4w" annotatedElement="__BNhkDkUEdyuzNpSiGPe4w">
+ <body>activate the timer, i.e. pass an itimerspec value with initial delay&#xD;
+and period length. In addition, the first parameter flags is a bit&#xD;
+vector. If it includes TIMER_ABSTIME, it denotes that an absolute&#xD;
+time value for is passed as initial delay.&#xD;
+[Todo: would be more consistent to pass two Accord TimeVals]</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Bv25IDkVEdyuzNpSiGPe4w" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BwAqIDkVEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BwJ0EDkVEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_B0oEYDkVEdyuzNpSiGPe4w" name="flags">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_B06_UDkVEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_B1EwUDkVEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_B5PeoDkVEdyuzNpSiGPe4w" name="value" type="_SPVucIt6EeCA0czgCf_91g">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_B5jAoDkVEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_B5sKkDkVEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_B9j98DkVEdyuzNpSiGPe4w" name="oldValue" type="_SPVucIt6EeCA0czgCf_91g">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_B93f8DkVEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_B-Ka4DkVEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_FpAU8DkVEdyuzNpSiGPe4w" name="getTime" method="_piEGIDkZEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_F_W_cDkVEdyuzNpSiGPe4w" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_F_gwcDkVEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_F_zrYDkVEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_GD1PwDkVEdyuzNpSiGPe4w" name="value" type="_SPVucIt6EeCA0czgCf_91g">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GEIKsDkVEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GER7sDkVEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_5XqpsDkVEdyuzNpSiGPe4w" name="getOverrun" method="_sPNo4DkZEdyuzNpSiGPe4w">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_AqO4YDkWEdyuzNpSiGPe4w" annotatedElement="_5XqpsDkVEdyuzNpSiGPe4w">
+ <body>if the signal associated with a timer expiration is not handled,&#xD;
+an overrun counter is increased with each expiration. It can be used&#xD;
+to detect an overload</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_7ZmsQDkVEdyuzNpSiGPe4w" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_7Z5nMDkVEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_7aDYMDkVEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Fh0SYDkWEdyuzNpSiGPe4w" name="sleep" isStatic="true" method="_uuNa4DkZEdyuzNpSiGPe4w">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_PdEakDkWEdyuzNpSiGPe4w" annotatedElement="_Fh0SYDkWEdyuzNpSiGPe4w">
+ <body>sleep for a certain duration (defined in time units, see&#xD;
+TimeVal::_moduleSec)&#xD;
+&#xD;
+If the process receives a signal, the OS sleep is interrupted&#xD;
+(e.g. nanosleep in case of Posix). This sleep method will recall the&#xD;
+OS sleep function until the specified time has passed.</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_S0PxwDkWEdyuzNpSiGPe4w" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_S0Y7sDkWEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_S0issDkWEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_S390IDkWEdyuzNpSiGPe4w" name="duration">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8heigBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_S4HlIDkWEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_S4RWIDkWEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Fk8e4DkWEdyuzNpSiGPe4w" name="wakeUp" isStatic="true" method="_w_WXEDkZEdyuzNpSiGPe4w">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_iAaZ8DkWEdyuzNpSiGPe4w" annotatedElement="_Fk8e4DkWEdyuzNpSiGPe4w">
+ <body>continue computation after the (absolute) date has passed. This&#xD;
+function shares other properties with the sleep function.</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_biTHADkWEdyuzNpSiGPe4w" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bimpADkWEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_bivy8DkWEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_blSJkDkWEdyuzNpSiGPe4w" name="date" type="_FuKEEDj8Edy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bllEgDkWEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_blu1gDkWEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Fs12oDkWEdyuzNpSiGPe4w" name="waitPeriodicForZero" isStatic="true" method="_iA4zsDkZEdyuzNpSiGPe4w">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_wLdjYDkWEdyuzNpSiGPe4w" annotatedElement="_Fs12oDkWEdyuzNpSiGPe4w">
+ <body>wait, until the variable *intPtr becomes zero, The parameter duration&#xD;
+determines the interval in which the variable is checked. If the&#xD;
+parameter txt is not empty, its contents is printed out during each&#xD;
+check.&#xD;
+&#xD;
+Should be considered as deprecated? (not used)</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_1vwSYDkWEdyuzNpSiGPe4w" name="intPtr" direction="inout">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_1wD0YDkWEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_1wM-UDkWEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_10YTsDkWEdyuzNpSiGPe4w" name="txt" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_10rOoDkWEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_100_oDkWEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_142kADkWEdyuzNpSiGPe4w" name="duration">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_15Je8DkWEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_15cZ4DkWEdyuzNpSiGPe4w" name="" value="1"/>
+ <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_Q0NyICBGEeOBrb_t_69W4Q" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_TvgqsDkXEdyuzNpSiGPe4w" name="waitDate" visibility="private" isStatic="true" method="_2imkQDkZEdyuzNpSiGPe4w">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_3YPy0DkZEdyuzNpSiGPe4w" annotatedElement="_TvgqsDkXEdyuzNpSiGPe4w">
+ <body>used by wakeUp and sleep</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_eciOEDkXEdyuzNpSiGPe4w" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ec1JADkXEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ec-S8DkXEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_efgpkDkXEdyuzNpSiGPe4w" name="finalDate" type="_FuKEEDj8Edy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efzkgDkXEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ef9VgDkXEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_eio2EDkXEdyuzNpSiGPe4w" name="remainder" type="_FuKEEDj8Edy0Rd6V_tf1-Q" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ei8YEDkXEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ejFiADkXEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_FuKEEDj8Edy0Rd6V_tf1-Q" name="TimeVal">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_VOnAwDkpEdyuzNpSiGPe4w" name="m_timespec" visibility="private" type="_vZD1EFKWEd-OfYmxqPWG5g" isUnique="false">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WVZCoDkpEdyuzNpSiGPe4w" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_WVZCoTkpEdyuzNpSiGPe4w" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_10XK8DkpEdyuzNpSiGPe4w" name="m_moduloSec" visibility="private" isStatic="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Av_LADkqEdyuzNpSiGPe4w" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Av_LATkqEdyuzNpSiGPe4w" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_qnfHUB6hEeG-VLfJDduovg" name="" value="1000000 / m_timeScale"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_19J6kDkpEdyuzNpSiGPe4w" name="m_timeScale" visibility="private" isStatic="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_AHKQcDkqEdyuzNpSiGPe4w" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_AHUBcDkqEdyuzNpSiGPe4w" value="1"/>
+ <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_OOpq4F2oEd-12d_h0i1xhQ" value="1000"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Ag0mQFKiEd-OfYmxqPWG5g" name="m_sysStartTime" visibility="private" isStatic="true" type="_FuKEEDj8Edy0Rd6V_tf1-Q" isUnique="false">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ag0mQlKiEd-OfYmxqPWG5g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ag0mQVKiEd-OfYmxqPWG5g" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_CyURwCBTEeOBrb_t_69W4Q" value=" TimeVal::systemTime();"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_L9V0QDkqEdyuzNpSiGPe4w" name="getTimeScale" specification="_q8lQcDkmEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_CTzQICBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CUTmcCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CUelkCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return m_timeScale;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Ogz2kDkqEdyuzNpSiGPe4w" name="getSec" specification="_hArPsDkgEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_CU2ZACBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8heigBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CVXWYCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CViVgCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return m_timespec.tv_sec;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_PxIO8DkqEdyuzNpSiGPe4w" name="getUsec" specification="_hIbdgDkgEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_CVy0MCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8heigBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CWTKgCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CWeJoCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return m_timespec.tv_nsec / 1000;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_R1moIDkqEdyuzNpSiGPe4w" name="getNsec" specification="_hPbdYDkgEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_CWuBQCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8heigBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CXO-oCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CXZ9wCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return m_timespec.tv_nsec;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_TkLCwDkqEdyuzNpSiGPe4w" name="setSec" specification="_hWSTUDkgEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_CXp1YCBbEeOMKsPXBVC0DA" name="sec">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8heigBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CYKLsCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CYVK0CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>m_timespec.tv_sec = sec;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Uxg_oDkqEdyuzNpSiGPe4w" name="setUsec" specification="_hc_YQDkgEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_CYlpgCBbEeOMKsPXBVC0DA" name="usec">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8heigBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CZF_0CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CZQ-8CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>m_timespec.tv_nsec = usec * 1000;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_WZ-LMDkqEdyuzNpSiGPe4w" name="setNsec" specification="_hkcEEDkgEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_CZoLUCBbEeOMKsPXBVC0DA" name="nsec">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8heigBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CaIhoCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CaS5sCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>m_timespec.tv_nsec = nsec;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_YQSzoDkqEdyuzNpSiGPe4w" name="sysStartTime" specification="_rCsfgDkmEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Caj_cCBbEeOMKsPXBVC0DA" name="param_0" type="_FuKEEDj8Edy0Rd6V_tf1-Q" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CbEVwCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CbPU4CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return m_sysStartTime;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_w4kusDnfEdyuzNpSiGPe4w" name="setScale" specification="_af9uADkbEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_CbnIUCBbEeOMKsPXBVC0DA" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CcIFsCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CcTE0CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>int s = OS_AL::ProcessingResources::ProDesc::getEnvInt (&quot;A_TimeScale&quot;);&#xD;
+if (s &lt;= 0)&#xD;
+{&#xD;
+ OS_AL::Util::BString500 bstr (&#xD;
+ &quot;--- Environment variable 'A_TimeScale' must be positive (length of ticks in microseconds)&quot;);&#xD;
+ OSAL_ERROR (bstr);&#xD;
+}&#xD;
+else {&#xD;
+ s = 1000; // default value 1000 µs = 1 ms&#xD;
+&#xD;
+ OS_AL::Util::Print print;&#xD;
+ print &lt;&lt;&#xD;
+ &quot; --- Environment variable 'A_TimeScale' not found. Time intervals are assumed expressed in milliseconds.&quot; &lt;&lt; showI;&#xD;
+}&#xD;
+ &#xD;
+return s;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_3PHaADnfEdyuzNpSiGPe4w" name="TimeVal" specification="_t7qHIDkaEdyuzNpSiGPe4w">
+ <language>C/C++</language>
+ <body>this->ticks();
+reset ();</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_50F4MDnfEdyuzNpSiGPe4w" name="TimeVal" specification="_uEc2wDkaEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_CcpDECBbEeOMKsPXBVC0DA" name="t2" type="_FuKEEDj8Edy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CdIyUCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CdTxcCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>this->ticks();&#xD;
+m_timespec = t2.m_timespec;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_8PrJ0DnfEdyuzNpSiGPe4w" name="TimeVal" specification="_uKtPwDkaEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_CdzgsCBbEeOMKsPXBVC0DA" name="ticks">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CeUeECBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Cee2ICBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>this->ticks();&#xD;
+setSec (ticks / m_moduloSec);&#xD;
+setUsec ((ticks % m_moduloSec) * m_timeScale);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_ASrFMDngEdyuzNpSiGPe4w" name="current" specification="_96S4oDkbEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce3QoCBbEeOMKsPXBVC0DA" name="param_0" type="_FuKEEDj8Edy0Rd6V_tf1-Q" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CfXm8CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Cfh_ACBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>TimeVal current;&#xD;
+current.update ();&#xD;
+return current;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_DYbVMDngEdyuzNpSiGPe4w" name="update" specification="_5GJNIDkbEdyuzNpSiGPe4w">
+ <language>C/C++</language>
+ <body>/*&#xD;
+if (m_bFrozen) {&#xD;
+ *this = m_freezeTime;&#xD;
+}&#xD;
+else {&#xD;
+*/&#xD;
+ *this = systemTime () - m_sysStartTime;&#xD;
+// }&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_KjRyUDngEdyuzNpSiGPe4w" name="systemTime" specification="_JDcXUDkcEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Cf39QCBbEeOMKsPXBVC0DA" name="param_0" type="_FuKEEDj8Edy0Rd6V_tf1-Q" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CgYTkCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CgiroCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>TimeVal current;&#xD;
+clock_gettime (CLOCK_REALTIME, &amp;current.m_timespec);&#xD;
+&#xD;
+return current;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_N3CpIDngEdyuzNpSiGPe4w" name="operator=" specification="_ToY8wDkcEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_CgzKUCBbEeOMKsPXBVC0DA" name="param_0" type="_FuKEEDj8Edy0Rd6V_tf1-Q" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Cha1YCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Chl0gCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ch5WgCBbEeOMKsPXBVC0DA" name="tv2" type="_FuKEEDj8Edy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Cia68CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Cil6ECBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>m_timespec = tv2.m_timespec;&#xD;
+&#xD;
+return *this;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_QJOuMDngEdyuzNpSiGPe4w" name="operator+=" specification="_TuMp0DkcEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_CjFCQCBbEeOMKsPXBVC0DA" name="param_0" type="_FuKEEDj8Edy0Rd6V_tf1-Q" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Cjl_oCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Cjw-wCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_CkD5sCBbEeOMKsPXBVC0DA" name="incr" type="_FuKEEDj8Edy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CkkQACBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CkvPICBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>m_timespec.tv_sec += incr.m_timespec.tv_sec;&#xD;
+m_timespec.tv_nsec += incr.m_timespec.tv_nsec;&#xD;
+&#xD;
+if (m_timespec.tv_nsec >= 1000*1000*1000)&#xD;
+{&#xD;
+ m_timespec.tv_sec ++;&#xD;
+ m_timespec.tv_nsec -= 1000*1000*1000;&#xD;
+}&#xD;
+&#xD;
+return *this;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_S_fJoDngEdyuzNpSiGPe4w" name="operator-=" specification="_T05uwDkcEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ClQMgCBbEeOMKsPXBVC0DA" name="param_0" type="_FuKEEDj8Edy0Rd6V_tf1-Q" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Clwi0CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Cl7h8CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_CmN10CBbEeOMKsPXBVC0DA" name="incr" type="_FuKEEDj8Edy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Cmx2gCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Cm9csCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>m_timespec.tv_sec -= incr.m_timespec.tv_sec;&#xD;
+m_timespec.tv_nsec -= incr.m_timespec.tv_nsec;&#xD;
+&#xD;
+if (m_timespec.tv_nsec &lt; 0)&#xD;
+{&#xD;
+ m_timespec.tv_sec --;&#xD;
+ m_timespec.tv_nsec += 1000*1000*1000;&#xD;
+}&#xD;
+&#xD;
+return *this;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_WfnogDngEdyuzNpSiGPe4w" name="operator+" specification="_T6uC4DkcEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Cnck4CBbEeOMKsPXBVC0DA" name="param_0" type="_FuKEEDj8Edy0Rd6V_tf1-Q" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Cn87MCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CoH6UCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_CoS5cCBbEeOMKsPXBVC0DA" name="tv2" type="_FuKEEDj8Edy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Co6kgCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CpE8kCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>TimeVal r (*this);&#xD;
+r += tv2;&#xD;
+&#xD;
+return r;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y0WEMDngEdyuzNpSiGPe4w" name="operator-" specification="_T_yJEDkcEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_CplS4CBbEeOMKsPXBVC0DA" name="param_0" type="_FuKEEDj8Edy0Rd6V_tf1-Q" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CqFCICBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CqQBQCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_CqbAYCBbEeOMKsPXBVC0DA" name="tv2" type="_FuKEEDj8Edy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Cq7WsCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CrFuwCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>TimeVal r (*this);&#xD;
+r -= tv2;&#xD;
+&#xD;
+return r;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_bE5KgDngEdyuzNpSiGPe4w" name="operator&lt;" specification="_UDgLcDkcEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_CrleACBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CsF0UCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CsQzcCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_CsbykCBbEeOMKsPXBVC0DA" name="tv2" type="_FuKEEDj8Edy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Cs7h0CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CtGg8CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return (&#xD;
+ (getSec () &lt; tv2.getSec ()) ||&#xD;
+ (getSec () == tv2.getSec () &amp;&amp; getNsec () &lt; tv2.getNsec ()));&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_ds2EMDngEdyuzNpSiGPe4w" name="operator&lt;=" specification="_UKNQYDkcEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_CtlpICBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CuF_cCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CuQ-kCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Cub9sCBbEeOMKsPXBVC0DA" name="tv2" type="_FuKEEDj8Edy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Cu8UACBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CvHTICBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return (&#xD;
+ (getSec () &lt; tv2.getSec ()) ||&#xD;
+ (getSec () == tv2.getSec () &amp;&amp; getNsec () &lt;= tv2.getNsec ()));&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_gKXPgDngEdyuzNpSiGPe4w" name="operator==" specification="_UPk4kDkcEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_CvnCYCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CwNfUCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CwYecCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_CwjdkCBbEeOMKsPXBVC0DA" name="tv2" type="_FuKEEDj8Edy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CxDz4CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CxOzACBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return (&#xD;
+ (getSec () == tv2.getSec ()) &amp;&amp; (getNsec () == tv2.getNsec ()));</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_hsa4IDngEdyuzNpSiGPe4w" name="operator!=" specification="_UVFqsDkcEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_CxuiQCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CyO4kCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CyZQoCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_CykPwCBbEeOMKsPXBVC0DA" name="tv2" type="_FuKEEDj8Edy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CzFNICBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CzQMQCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return (!(*this == tv2));</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_kAi24DngEdyuzNpSiGPe4w" name="operator>=" specification="_UcFqkDkcEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Czv7gCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C0QR0CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C0bQ8CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_C0lpACBbEeOMKsPXBVC0DA" name="tv2" type="_FuKEEDj8Edy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C1HNcCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C1SMkCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return (&#xD;
+ (getSec () > tv2.getSec ()) ||&#xD;
+ (getSec () == tv2.getSec () &amp;&amp; getNsec () >= tv2.getNsec ()));&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_l4NjIDngEdyuzNpSiGPe4w" name="operator>" specification="_Us7i8DkcEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_C1x70CBbEeOMKsPXBVC0DA" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C2S5MCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C2d4UCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_C2o3cCBbEeOMKsPXBVC0DA" name="tv2" type="_FuKEEDj8Edy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3JNwCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3UM4CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return (&#xD;
+ (getSec () > tv2.getSec ()) ||&#xD;
+ (getSec () == tv2.getSec () &amp;&amp; getNsec () > tv2.getNsec ()));&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_p94_EDngEdyuzNpSiGPe4w" name="hasPassed" specification="_9xV0IDkfEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_C36p0CBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C4bAICBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C4l_QCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>TimeVal current = TimeVal::current ();&#xD;
+&#xD;
+return (&#xD;
+ (getSec () &lt; current.getSec ()) ||&#xD;
+ (getSec () == current.getSec () &amp;&amp; getNsec () &lt;= current.getNsec ()));&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_r6enkDngEdyuzNpSiGPe4w" name="reset" specification="_IKEGADkhEdyuzNpSiGPe4w">
+ <language>C/C++</language>
+ <body>m_timespec.tv_sec = 0;&#xD;
+m_timespec.tv_nsec = 0;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_6wgAoDngEdyuzNpSiGPe4w" name="ticks" specification="_9jMDYDkfEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_C48kkCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8heigBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C5c64CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C5n6ACBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>// m_moduloSec is 1000000 / m_timeScale&#xD;
+return&#xD;
+ (getSec () * m_moduloSec) +&#xD;
+ (getUsec () / m_timeScale);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Ha2zYDnhEdyuzNpSiGPe4w" name="adjustTime" specification="_TAOvkDknEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_C54YsCBbEeOMKsPXBVC0DA" name="delta" type="_FuKEEDj8Edy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C6akMCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C6ljUCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>// adjust startTime&#xD;
+m_sysStartTime += delta;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_t7qHIDkaEdyuzNpSiGPe4w" name="TimeVal" method="_3PHaADnfEdyuzNpSiGPe4w">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_zNOHYDkaEdyuzNpSiGPe4w" annotatedElement="_t7qHIDkaEdyuzNpSiGPe4w">
+ <body>create a new TimeVal and initilize it with 0</body>
+ </ownedComment>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_uEc2wDkaEdyuzNpSiGPe4w" name="TimeVal" method="_50F4MDnfEdyuzNpSiGPe4w">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_1ZPTADkaEdyuzNpSiGPe4w" annotatedElement="_uEc2wDkaEdyuzNpSiGPe4w">
+ <body>copy constructor</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_DgL_kDkbEdyuzNpSiGPe4w" name="t2" type="_FuKEEDj8Edy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DgoEcDkbEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Dgx1cDkbEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_uKtPwDkaEdyuzNpSiGPe4w" name="TimeVal" method="_8PrJ0DnfEdyuzNpSiGPe4w">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_3U4gUDkaEdyuzNpSiGPe4w" annotatedElement="_uKtPwDkaEdyuzNpSiGPe4w">
+ <body>create a TimeValue when given a number of ticks</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_LywSsDkbEdyuzNpSiGPe4w" name="ticks">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ly6DsDkbEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LzD0sDkbEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_af9uADkbEdyuzNpSiGPe4w" name="setScale" isStatic="true" method="_w4kusDnfEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_gE9noDkbEdyuzNpSiGPe4w" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gFQikDkbEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gFaTkDkbEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_5GJNIDkbEdyuzNpSiGPe4w" name="update" method="_DYbVMDngEdyuzNpSiGPe4w">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_6w--UDkbEdyuzNpSiGPe4w" annotatedElement="_5GJNIDkbEdyuzNpSiGPe4w">
+ <body>update with current &quot;accord&quot; time, returned time is relative to&#xD;
+start of system and can be frozen (useful for debugging)</body>
+ </ownedComment>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_96S4oDkbEdyuzNpSiGPe4w" name="current" isStatic="true" method="_ASrFMDngEdyuzNpSiGPe4w">
+ <ownedComment xmi:type="uml:Comment" xmi:id="__pKOMDkbEdyuzNpSiGPe4w" annotatedElement="_96S4oDkbEdyuzNpSiGPe4w">
+ <body>return current time (see update)</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_EDOlwDkcEdyuzNpSiGPe4w" name="param_0" type="_FuKEEDj8Edy0Rd6V_tf1-Q" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_EDhgsDkcEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ED0boDkcEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_JDcXUDkcEdyuzNpSiGPe4w" name="systemTime" isStatic="true" method="_KjRyUDngEdyuzNpSiGPe4w">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_NP9bEDkcEdyuzNpSiGPe4w" annotatedElement="_JDcXUDkcEdyuzNpSiGPe4w">
+ <body>return current system time</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_JpcAUDkcEdyuzNpSiGPe4w" name="param_0" type="_FuKEEDj8Edy0Rd6V_tf1-Q" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JplxUDkcEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JpviUDkcEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_ToY8wDkcEdyuzNpSiGPe4w" name="operator=" method="_N3CpIDngEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ndW8EDkcEdyuzNpSiGPe4w" name="param_0" type="_FuKEEDj8Edy0Rd6V_tf1-Q" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ndqeEDkcEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ndzoADkcEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_nhPWgDkcEdyuzNpSiGPe4w" name="tv2" type="_FuKEEDj8Edy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nhiRcDkcEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nhsCcDkcEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_TuMp0DkcEdyuzNpSiGPe4w" name="operator+=" method="_QJOuMDngEdyuzNpSiGPe4w">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Bq8DQDkdEdyuzNpSiGPe4w" annotatedElement="_TuMp0DkcEdyuzNpSiGPe4w">
+ <body>increase/decrease time by increment/decrement</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_1jVYQDkcEdyuzNpSiGPe4w" name="param_0" type="_FuKEEDj8Edy0Rd6V_tf1-Q" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_1joTMDkcEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_1jxdIDkcEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_1lt94DkcEdyuzNpSiGPe4w" name="incr" type="_FuKEEDj8Edy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_1mA40DkcEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_1mKCwDkcEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_T05uwDkcEdyuzNpSiGPe4w" name="operator-=" method="_S_fJoDngEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_8FwjcDkcEdyuzNpSiGPe4w" name="param_0" type="_FuKEEDj8Edy0Rd6V_tf1-Q" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8GDeYDkcEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8GMoUDkcEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_8JVb4DkcEdyuzNpSiGPe4w" name="incr" type="_FuKEEDj8Edy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8JoW0DkcEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8JxgwDkcEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_T6uC4DkcEdyuzNpSiGPe4w" name="operator+" method="_WfnogDngEdyuzNpSiGPe4w">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_d1so0DkdEdyuzNpSiGPe4w" annotatedElement="_T6uC4DkcEdyuzNpSiGPe4w">
+ <body>+/- operators that adds/substracts another timeval</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_EgukoDkdEdyuzNpSiGPe4w" name="param_0" type="_FuKEEDj8Edy0Rd6V_tf1-Q" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_EhBfkDkdEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_EhLQkDkdEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_EkwJADkdEdyuzNpSiGPe4w" name="tv2" type="_FuKEEDj8Edy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ElDD8DkdEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ElM08DkdEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_T_yJEDkcEdyuzNpSiGPe4w" name="operator-" method="_Y0WEMDngEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ZgFTcDkdEdyuzNpSiGPe4w" name="param_0" type="_FuKEEDj8Edy0Rd6V_tf1-Q" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ZgY1cDkdEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Zgh_YDkdEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ZsKAkDkdEdyuzNpSiGPe4w" name="tv2" type="_FuKEEDj8Edy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Zsc7gDkdEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ZsmsgDkdEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_UDgLcDkcEdyuzNpSiGPe4w" name="operator&lt;" method="_bE5KgDngEdyuzNpSiGPe4w">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_jzLT4DkdEdyuzNpSiGPe4w" annotatedElement="_UDgLcDkcEdyuzNpSiGPe4w">
+ <body>all kinds of comparisons ...</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_lnQgoDkdEdyuzNpSiGPe4w" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lnjbkDkdEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lnslgDkdEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_lppGQDkdEdyuzNpSiGPe4w" name="tv2" type="_FuKEEDj8Edy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lpyQMDkdEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lp8BMDkdEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_UKNQYDkcEdyuzNpSiGPe4w" name="operator&lt;=" method="_ds2EMDngEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_pDDSEDkdEdyuzNpSiGPe4w" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_pDWNADkdEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_pDf-ADkdEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_pFuyoDkdEdyuzNpSiGPe4w" name="tv2" type="_FuKEEDj8Edy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_pF4joDkdEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_pGLekDkdEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_UPk4kDkcEdyuzNpSiGPe4w" name="operator==" method="_gKXPgDngEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_tBalEDkdEdyuzNpSiGPe4w" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tBtgADkdEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tB3RADkdEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_tPIQ8DkdEdyuzNpSiGPe4w" name="tv2" type="_FuKEEDj8Edy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tPbL4DkdEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tPkV0DkdEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_UVFqsDkcEdyuzNpSiGPe4w" name="operator!=" method="_hsa4IDngEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_wSetMDkdEdyuzNpSiGPe4w" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wSoeMDkdEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wSxoIDkdEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_wVT-wDkdEdyuzNpSiGPe4w" name="tv2" type="_FuKEEDj8Edy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wVm5sDkdEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wV6bsDkdEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_UcFqkDkcEdyuzNpSiGPe4w" name="operator>=" method="_kAi24DngEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_yqBzYDkdEdyuzNpSiGPe4w" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_yqLkYDkdEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_yqefUDkdEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_y4CaMDkdEdyuzNpSiGPe4w" name="tv2" type="_FuKEEDj8Edy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_y4VVIDkdEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_y4fGIDkdEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Us7i8DkcEdyuzNpSiGPe4w" name="operator>" method="_l4NjIDngEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_1J69QDkdEdyuzNpSiGPe4w" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_1KEuQDkdEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_1KN4MDkdEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_1MAn8DkdEdyuzNpSiGPe4w" name="tv2" type="_FuKEEDj8Edy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_1MTi4DkdEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_1MdT4DkdEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_9jMDYDkfEdyuzNpSiGPe4w" name="ticks" method="_6wgAoDngEdyuzNpSiGPe4w">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Az9QkDkgEdyuzNpSiGPe4w" annotatedElement="_9jMDYDkfEdyuzNpSiGPe4w">
+ <body>return the number of ticks represented by the timevalue</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_J0pN8DkgEdyuzNpSiGPe4w" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8heigBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_J1F54DkgEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_J1PD0DkgEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_9xV0IDkfEdyuzNpSiGPe4w" name="hasPassed" method="_p94_EDngEdyuzNpSiGPe4w">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Hl43YDkgEdyuzNpSiGPe4w" annotatedElement="_9xV0IDkfEdyuzNpSiGPe4w">
+ <body>returns true, if the current system time is later than this timeValue.&#xD;
+The method is called &quot;hasPassed&quot;, since it can be used as a test&#xD;
+whether a deadline has passed - assuming that the stored timevalue&#xD;
+represents this deadline.</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_b_jfMDkgEdyuzNpSiGPe4w" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_b_2aIDkgEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_cAALIDkgEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_hArPsDkgEdyuzNpSiGPe4w" name="getSec" method="_Ogz2kDkqEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_rwiEoDkgEdyuzNpSiGPe4w" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8heigBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rwrOkDkgEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rw0_kDkgEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_hIbdgDkgEdyuzNpSiGPe4w" name="getUsec" method="_PxIO8DkqEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_swwLgDkgEdyuzNpSiGPe4w" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8heigBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sw58gDkgEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sxM3cDkgEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_hPbdYDkgEdyuzNpSiGPe4w" name="getNsec" method="_R1moIDkqEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_t-_gQDkgEdyuzNpSiGPe4w" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8heigBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t_SbMDkgEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t_blIDkgEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_hWSTUDkgEdyuzNpSiGPe4w" name="setSec" method="_TkLCwDkqEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_wH7isDkgEdyuzNpSiGPe4w" name="sec">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8heigBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wIOdoDkgEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wIYOoDkgEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_hc_YQDkgEdyuzNpSiGPe4w" name="setUsec" method="_Uxg_oDkqEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_w5aC8DkgEdyuzNpSiGPe4w" name="usec">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8heigBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w5s94DkgEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w52u4DkgEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_hkcEEDkgEdyuzNpSiGPe4w" name="setNsec" method="_WZ-LMDkqEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xLbnEDkgEdyuzNpSiGPe4w" name="nsec">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8heigBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xLvJEDkgEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xL4TADkgEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_IKEGADkhEdyuzNpSiGPe4w" name="reset" method="_r6enkDngEdyuzNpSiGPe4w">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_JLoQsDkhEdyuzNpSiGPe4w" annotatedElement="_IKEGADkhEdyuzNpSiGPe4w">
+ <body>set seconds and µ-seconds to zero</body>
+ </ownedComment>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_q8lQcDkmEdyuzNpSiGPe4w" name="getTimeScale" isStatic="true" method="_L9V0QDkqEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_0LugkDkmEdyuzNpSiGPe4w" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0L4RkDkmEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0MBbgDkmEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_rCsfgDkmEdyuzNpSiGPe4w" name="sysStartTime" isStatic="true" method="_YQSzoDkqEdyuzNpSiGPe4w">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_4lNpUDkmEdyuzNpSiGPe4w" name="param_0" type="_FuKEEDj8Edy0Rd6V_tf1-Q" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_4lgkQDkmEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_4lqVQDkmEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_TAOvkDknEdyuzNpSiGPe4w" name="adjustTime" isStatic="true" method="_Ha2zYDnhEdyuzNpSiGPe4w">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Vjsx4DknEdyuzNpSiGPe4w" annotatedElement="_TAOvkDknEdyuzNpSiGPe4w">
+ <body>adjust the current time after the execution has been stopped&#xD;
+(principally for debugging).</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_XTwaQDknEdyuzNpSiGPe4w" name="delta" type="_FuKEEDj8Edy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XUD8QDknEdyuzNpSiGPe4w" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XUNGMDknEdyuzNpSiGPe4w" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_vZD1EFKWEd-OfYmxqPWG5g" name="timespec"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_4fJvUDj_Edy0Rd6V_tf1-Q" name="Association_DebugTimer_Timer" memberEnd="_4fTgUDj_Edy0Rd6V_tf1-Q _4fwMQDj_Edy0Rd6V_tf1-Q">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_4fwMQDj_Edy0Rd6V_tf1-Q" name="debugTimer" type="_BN92YDj8Edy0Rd6V_tf1-Q" isUnique="false" association="_4fJvUDj_Edy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_4mKWQzj_Edy0Rd6V_tf1-Q"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_4mKWQjj_Edy0Rd6V_tf1-Q" value="*"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_B8mhMDkAEdy0Rd6V_tf1-Q" name="Association_DebugTimer_Thread" memberEnd="_B8mhMTkAEdy0Rd6V_tf1-Q _CCj_QjkAEdy0Rd6V_tf1-Q">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_CCj_QjkAEdy0Rd6V_tf1-Q" name="debugTimer" type="_BN92YDj8Edy0Rd6V_tf1-Q" isUnique="false" association="_B8mhMDkAEdy0Rd6V_tf1-Q">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CC26MTkAEdy0Rd6V_tf1-Q"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CC26MDkAEdy0Rd6V_tf1-Q" value="*"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_k2k-gDkFEdyuzNpSiGPe4w" name="Association_DebugTimer_Thread" memberEnd="_k235cDkFEdyuzNpSiGPe4w _k3oHYjkFEdyuzNpSiGPe4w">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_k3oHYjkFEdyuzNpSiGPe4w" name="debugTimer" type="_BN92YDj8Edy0Rd6V_tf1-Q" isUnique="false" association="_k2k-gDkFEdyuzNpSiGPe4w">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_k4EMQTkFEdyuzNpSiGPe4w"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_k4EMQDkFEdyuzNpSiGPe4w" value="*"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_l8eRwDkUEdyuzNpSiGPe4w" name="FromTimertoBString" client="_ETakYDj8Edy0Rd6V_tf1-Q" supplier="_WXH_4DO2EdyG-pUz-bb-Lg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_mS08QDkUEdyuzNpSiGPe4w" name="FromTimertoTimeVal" client="_ETakYDj8Edy0Rd6V_tf1-Q" supplier="_FuKEEDj8Edy0Rd6V_tf1-Q"/>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_DLK1MFK5Ed-OfYmxqPWG5g" name="FromTimeValtoBString500" client="_FuKEEDj8Edy0Rd6V_tf1-Q" supplier="_1vnXoDO0EdyG-pUz-bb-Lg"/>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_MyswIFK5Ed-OfYmxqPWG5g" name="FromTimeValtoProDesc" client="_FuKEEDj8Edy0Rd6V_tf1-Q" supplier="_oSgIME_BEdy2tpS719xBwQ"/>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_z1gvcFLcEd-mj-y6sW0V8w" name="FromTimeValtoPrint" client="_FuKEEDj8Edy0Rd6V_tf1-Q" supplier="_Fqa9QDUPEdy0feurbW0fyQ"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_5YJA0It4EeCA0czgCf_91g" name="timer_t"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_SPVucIt6EeCA0czgCf_91g" name="itimerspec"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_w86XMC-OEdySSa8YESkO2w" name="Tracing">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_qhfYAFIhEdy7g9CjxdN7jw" annotatedElement="_1DM54DxBEdyfAeav5abbAw">
+ <body>Incomplete. Without LeftShiftTrace</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_1DM54DxBEdyfAeav5abbAw" name="Trace">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_eAhcsFIfEdy7g9CjxdN7jw" annotatedElement="_1DM54DxBEdyfAeav5abbAw">
+ <body>The class Trace supports tracing. It should by instantiated&#xD;
+by passing a value of type Flag. These flags specify the trace&#xD;
+category (for instance traces related to an abstract object) and&#xD;
+are defined in class FlagSet. An environment variable controls&#xD;
+at execution time which trace categories are actually producing&#xD;
+output.&#xD;
+&#xD;
+Instead of directly creating instances of class Trace (on the stack),&#xD;
+the developer should use the macro TRACEpr which respects the compile&#xD;
+time flag ENABLE_TRACING. It creates the instance &quot;pr&quot; on the stack,&#xD;
+if ENABLE_TRACING is set.&#xD;
+&#xD;
+Messages to the instance &quot;pr&quot; are sent via the overloaded operator&lt;&lt;,&#xD;
+the supported datatypes are the same as for class Print (in fact,&#xD;
+the operators delegate the calls to an internal object of type print).&#xD;
+As for class Trace, the developer should use the macro PR to do this.&#xD;
+Don't forget to pass at least one &quot;showI&quot; to the trace instance before&#xD;
+it gets out of scope - otherwise the output would be empty.&#xD;
+&#xD;
+\code&#xD;
+Example:&#xD;
+ function f ()&#xD;
+ {&#xD;
+ TRACEpr (AO); // if ENABLE_TRACING => Trace pr (Flag_AO);&#xD;
+ PR (&quot;Function f &lt;&lt; showI&quot;);&#xD;
+ PR (&quot;This is message number &quot; &lt;&lt; number &lt;&lt; showI);&#xD;
+ }&#xD;
+\endcode</body>
+ </ownedComment>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="__ziOwFIgEdy7g9CjxdN7jw" name="m_status" visibility="protected" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__z-6sFIgEdy7g9CjxdN7jw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__0IrsFIgEdy7g9CjxdN7jw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_JByHAFIhEdy7g9CjxdN7jw" name="m_prt" visibility="protected" type="_Fqa9QDUPEdy0feurbW0fyQ" isUnique="false" association="_JBoWAFIhEdy7g9CjxdN7jw">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Lf4hIFIhEdy7g9CjxdN7jw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LgCSIFIhEdy7g9CjxdN7jw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_UyTHsFIhEdy7g9CjxdN7jw" name="m_traceMark" visibility="protected" isStatic="true" type="_sQ1JADO0EdyG-pUz-bb-Lg" isUnique="false">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Uy5koFIhEdy7g9CjxdN7jw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Uy5koVIhEdy7g9CjxdN7jw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_a-K44BtbEeGTrd3FEQeyRQ" name="" value="&quot;#&quot;"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_c2x7gFIhEdy7g9CjxdN7jw" name="getStatus" specification="_TAN7gFIgEdy7g9CjxdN7jw">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_FOrs4CBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FPSw4CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FPdwACBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> return m_status;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_exHhQFIhEdy7g9CjxdN7jw" name="getPrint" specification="_BsdUsFIgEdy7g9CjxdN7jw">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_FPu1wCBbEeOMKsPXBVC0DA" name="param_0" type="_Fqa9QDUPEdy0feurbW0fyQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FQPMECBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FQaLMCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> if (!m_status)&#xD;
+ PRINTerr (&quot;NO Print for this Trace instance&quot;);&#xD;
+&#xD;
+ return (*m_prt);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_g2fSUFIhEdy7g9CjxdN7jw" name="setTraceMark" specification="_qIrE0FIgEdy7g9CjxdN7jw">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_FQx-oCBbEeOMKsPXBVC0DA" name="traceMark" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FRUxMCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FRfwUCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> m_traceMark = traceMark;</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_n7UR4FIfEdy7g9CjxdN7jw" name="Trace">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_tDcpUFIfEdy7g9CjxdN7jw" name="f" type="_5InEkFGAEdyxP5ejovTmBw">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tD5VQFIfEdy7g9CjxdN7jw" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tEMQMFIfEdy7g9CjxdN7jw" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_oFTUUFIfEdy7g9CjxdN7jw" name="Trace"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_BsdUsFIgEdy7g9CjxdN7jw" name="getPrint" method="_exHhQFIhEdy7g9CjxdN7jw">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_DEXi0FIgEdy7g9CjxdN7jw" name="param_0" type="_Fqa9QDUPEdy0feurbW0fyQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DErE0FIgEdy7g9CjxdN7jw" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DE9_wFIgEdy7g9CjxdN7jw" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_TAN7gFIgEdy7g9CjxdN7jw" name="getStatus" method="_c2x7gFIhEdy7g9CjxdN7jw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_ZStNQFIgEdy7g9CjxdN7jw" annotatedElement="_TAN7gFIgEdy7g9CjxdN7jw">
+ <body>query status&#xD;
+ should not be called by user code (only used by overloaded operators)</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_WEeWsFIgEdy7g9CjxdN7jw" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WE7CoFIgEdy7g9CjxdN7jw" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_WFN9kFIgEdy7g9CjxdN7jw" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_dlyMAFIgEdy7g9CjxdN7jw" name="setStatus">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_lAGBcFIgEdy7g9CjxdN7jw" annotatedElement="_dlyMAFIgEdy7g9CjxdN7jw">
+ <body>modify status&#xD;
+ should not be called by user code (only used by overloaded operators)</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_nFKQgFIgEdy7g9CjxdN7jw" name="status">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFm8cFIgEdy7g9CjxdN7jw" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nF6ecFIgEdy7g9CjxdN7jw" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_qIrE0FIgEdy7g9CjxdN7jw" name="setTraceMark" isStatic="true" method="_g2fSUFIhEdy7g9CjxdN7jw">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_vzhHwFIgEdy7g9CjxdN7jw" name="traceMark" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_vz9zsFIgEdy7g9CjxdN7jw" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_v0HksFIgEdy7g9CjxdN7jw" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_7hM24FIgEdy7g9CjxdN7jw" name="Trace" visibility="protected"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_5InEkFGAEdyxP5ejovTmBw" name="FlagSet">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_7K2CEFGAEdyxP5ejovTmBw" annotatedElement="_5InEkFGAEdyxP5ejovTmBw">
+ <body>This class contains some static methods that manage a set of flags.&#xD;
+It is possible to add, substract or setup flags.</body>
+ </ownedComment>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_rqVygFGJEdy7g9CjxdN7jw" name="current" visibility="private" isStatic="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rq7oYFGJEdy7g9CjxdN7jw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rrFZYFGJEdy7g9CjxdN7jw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_FAh84BtbEeGTrd3FEQeyRQ" name=""/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_3VfLAFGJEdy7g9CjxdN7jw" name="isSet" specification="_IM-wwFGDEdyxP5ejovTmBw">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_GlThkCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GlzQ0CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Gl-P8CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_GmJPECBbEeOMKsPXBVC0DA" name="f" type="_QhlWIFGBEdyxP5ejovTmBw">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GmplYCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Gm1LkCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> return (f &amp; current);</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_48Ac4FGJEdy7g9CjxdN7jw" name="add" specification="_IWOMUFGDEdyxP5ejovTmBw">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_GnFqQCBbEeOMKsPXBVC0DA" name="ret" type="_QhlWIFGBEdyxP5ejovTmBw" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GnmAkCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GnwYoCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Gn7XwCBbEeOMKsPXBVC0DA" name="f" type="_QhlWIFGBEdyxP5ejovTmBw">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Goc8MCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Gon7UCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> Flag old = (Flag) current;&#xD;
+ current |= f;&#xD;
+&#xD;
+ return old;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_6bhu4FGJEdy7g9CjxdN7jw" name="sub" specification="_IcxgQFGDEdyxP5ejovTmBw">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Go4aACBbEeOMKsPXBVC0DA" name="ret" type="_QhlWIFGBEdyxP5ejovTmBw" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GpYwUCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GpkWgCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_GpvVoCBbEeOMKsPXBVC0DA" name="f" type="_QhlWIFGBEdyxP5ejovTmBw">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GqPr8CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GqarECBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> Flag old = (Flag) current;&#xD;
+ current = current &amp; (~f);&#xD;
+&#xD;
+ return old;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_70o24FGJEdy7g9CjxdN7jw" name="setUp" specification="_IiSSYFGDEdyxP5ejovTmBw">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_GqqisCBbEeOMKsPXBVC0DA" name="ret" type="_QhlWIFGBEdyxP5ejovTmBw" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GrMHICBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GrXGQCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_GriFYCBbEeOMKsPXBVC0DA" name="f" type="_QhlWIFGBEdyxP5ejovTmBw">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GsIiUCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GsThcCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> Flag old = (Flag) current;&#xD;
+ current = f;&#xD;
+&#xD;
+ return old;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_89D3gFGJEdy7g9CjxdN7jw" name="setUpStr" specification="_IoGmgFGDEdyxP5ejovTmBw">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_GsjZECBbEeOMKsPXBVC0DA" name="ret" type="_QhlWIFGBEdyxP5ejovTmBw" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GtEWcCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GtP8oCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Gta7wCBbEeOMKsPXBVC0DA" name="fStr" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Gt7SECBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GuG4QCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body> int flags = 0;&#xD;
+ for (unsigned int i = 0; i &lt; fStr.length (); ++i)&#xD;
+ {&#xD;
+ const char f = fStr[i];&#xD;
+ switch (f)&#xD;
+ {&#xD;
+ case 'A':&#xD;
+ flags |= FLAG_Ap;&#xD;
+ break;&#xD;
+ case 'C':&#xD;
+ flags |= FLAG_Ch;&#xD;
+ break;&#xD;
+ case 'G':&#xD;
+ flags |= FLAG_Gr;&#xD;
+ break;&#xD;
+ case 'O':&#xD;
+ flags |= FLAG_AO;&#xD;
+ break;&#xD;
+ case 'R':&#xD;
+ flags |= FLAG_RB;&#xD;
+ break;&#xD;
+ case 'S':&#xD;
+ flags |= FLAG_Sc;&#xD;
+ break;&#xD;
+ case 'T':&#xD;
+ flags |= FLAG_Ti;&#xD;
+ break;&#xD;
+ case 'U':&#xD;
+ flags |= FLAG_Ut;&#xD;
+ break;&#xD;
+ case 'V':&#xD;
+ flags |= FLAG_VM;&#xD;
+ break;&#xD;
+ case 'Z':&#xD;
+ flags |= FLAG_Z;&#xD;
+ break;&#xD;
+ case '1':&#xD;
+ flags |= FLAG_F1;&#xD;
+ break;&#xD;
+ case '2':&#xD;
+ flags |= FLAG_F2;&#xD;
+ break;&#xD;
+ case '3':&#xD;
+ flags |= FLAG_F3;&#xD;
+ break;&#xD;
+ case '4':&#xD;
+ flags |= FLAG_F4;&#xD;
+ break;&#xD;
+ case '5':&#xD;
+ flags |= FLAG_F5;&#xD;
+ break;&#xD;
+ case '6':&#xD;
+ flags |= FLAG_F6;&#xD;
+ break;&#xD;
+ case '7':&#xD;
+ flags |= FLAG_F7;&#xD;
+ break;&#xD;
+ case '8':&#xD;
+ flags |= FLAG_F8;&#xD;
+ break;&#xD;
+ case '9':&#xD;
+ flags |= FLAG_F9;&#xD;
+ break;&#xD;
+ case 'a':&#xD;
+ flags |= FLAG_Fa;&#xD;
+ break;&#xD;
+ case 'b':&#xD;
+ flags |= FLAG_Fb;&#xD;
+ break;&#xD;
+ case 'c':&#xD;
+ flags |= FLAG_Fc;&#xD;
+ break;&#xD;
+ case 'd':&#xD;
+ flags |= FLAG_Fd;&#xD;
+ break;&#xD;
+ case 'e':&#xD;
+ flags |= FLAG_Fe;&#xD;
+ break;&#xD;
+ case 'f':&#xD;
+ flags |= FLAG_Ff;&#xD;
+ break;&#xD;
+ case 'g':&#xD;
+ flags |= FLAG_Fg;&#xD;
+ break;&#xD;
+ case 'h':&#xD;
+ flags |= FLAG_Fh;&#xD;
+ break;&#xD;
+ case 'i':&#xD;
+ flags |= FLAG_Fi;&#xD;
+ break;&#xD;
+ default:&#xD;
+ PRINTpr (&quot;unknown flag : &quot;);&#xD;
+ pr &lt;&lt; f &lt;&lt; showErr;&#xD;
+ break;&#xD;
+ }&#xD;
+ }&#xD;
+ Flag old = setUp ((Flag) flags);&#xD;
+&#xD;
+ return old;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_IM-wwFGDEdyxP5ejovTmBw" name="isSet" isStatic="true" method="_3VfLAFGJEdy7g9CjxdN7jw">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_tmHxcFGDEdy2j6DfRsavvw" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tmuOYFGDEdy2j6DfRsavvw" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tm3YUFGDEdy2j6DfRsavvw" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_tpG0AFGDEdy2j6DfRsavvw" name="f" type="_QhlWIFGBEdyxP5ejovTmBw">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tpjf8FGDEdy2j6DfRsavvw" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tpsp4FGDEdy2j6DfRsavvw" name="" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_yt8m4FGDEdy2j6DfRsavvw" value="FLAG_All"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_IWOMUFGDEdyxP5ejovTmBw" name="add" isStatic="true" method="_48Ac4FGJEdy7g9CjxdN7jw">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_1NGJ4FGDEdy2j6DfRsavvw" name="ret" type="_QhlWIFGBEdyxP5ejovTmBw" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_1Ni10FGDEdy2j6DfRsavvw" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_1N1wwFGDEdy2j6DfRsavvw" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_1PxqcFGDEdy2j6DfRsavvw" name="f" type="_QhlWIFGBEdyxP5ejovTmBw">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_1QOWYFGDEdy2j6DfRsavvw" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_1QhRUFGDEdy2j6DfRsavvw" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_IcxgQFGDEdyxP5ejovTmBw" name="sub" isStatic="true" method="_6bhu4FGJEdy7g9CjxdN7jw">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_2X5wIFGDEdy2j6DfRsavvw" name="ret" type="_QhlWIFGBEdyxP5ejovTmBw" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2YMrEFGDEdy2j6DfRsavvw" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2YfmAFGDEdy2j6DfRsavvw" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_2ZY94FGDEdy2j6DfRsavvw" name="f" type="_QhlWIFGBEdyxP5ejovTmBw">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2Z1p0FGDEdy2j6DfRsavvw" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2aIkwFGDEdy2j6DfRsavvw" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_IiSSYFGDEdyxP5ejovTmBw" name="setUp" isStatic="true" method="_70o24FGJEdy7g9CjxdN7jw">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_2y304FGDEdy2j6DfRsavvw" name="ret" type="_QhlWIFGBEdyxP5ejovTmBw" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2zKv0FGDEdy2j6DfRsavvw" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2znbwFGDEdy2j6DfRsavvw" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_20N4sFGDEdy2j6DfRsavvw" name="f" type="_QhlWIFGBEdyxP5ejovTmBw">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_20p9kFGDEdy2j6DfRsavvw" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_209fkFGDEdy2j6DfRsavvw" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_IoGmgFGDEdyxP5ejovTmBw" name="setUpStr" isStatic="true" method="_89D3gFGJEdy7g9CjxdN7jw">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_3JhaUFGDEdy2j6DfRsavvw" name="ret" type="_QhlWIFGBEdyxP5ejovTmBw" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3J-GQFGDEdy2j6DfRsavvw" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3KHQMFGDEdy2j6DfRsavvw" name="" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_3K3eIFGDEdy2j6DfRsavvw" name="fStr" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3LTjAFGDEdy2j6DfRsavvw" name="" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3LnFAFGDEdy2j6DfRsavvw" name="" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_JUZWsFGBEdyxP5ejovTmBw" name="FromFlagSettoBString" client="_5InEkFGAEdyxP5ejovTmBw" supplier="_WXH_4DO2EdyG-pUz-bb-Lg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_NclwUFIfEdy7g9CjxdN7jw" name="FromTracetoBString50" client="_1DM54DxBEdyfAeav5abbAw" supplier="_sQ1JADO0EdyG-pUz-bb-Lg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_OMbR0FIfEdy7g9CjxdN7jw" name="FromTracetoFlagSet" client="_1DM54DxBEdyfAeav5abbAw" supplier="_5InEkFGAEdyxP5ejovTmBw"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_RnxXUFIfEdy7g9CjxdN7jw" name="FromTracetoBaseTypes" client="_1DM54DxBEdyfAeav5abbAw" supplier="_0TXx4DUOEdy0feurbW0fyQ"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_XHvnAFIfEdy7g9CjxdN7jw" name="FromTracetoPrint" client="_1DM54DxBEdyfAeav5abbAw" supplier="_Fqa9QDUPEdy0feurbW0fyQ"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_JBoWAFIhEdy7g9CjxdN7jw" name="Association_Trace_Print" memberEnd="_JByHAFIhEdy7g9CjxdN7jw _JC0o0VIhEdy7g9CjxdN7jw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_JC0o0VIhEdy7g9CjxdN7jw" name="trace" type="_1DM54DxBEdyfAeav5abbAw" isUnique="false" association="_JBoWAFIhEdy7g9CjxdN7jw">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JDkPsFIhEdy7g9CjxdN7jw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JDbFwVIhEdy7g9CjxdN7jw" value="*"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_QhlWIFGBEdyxP5ejovTmBw" name="Flag">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_wikJ4FGCEdyxP5ejovTmBw" annotatedElement="_QhlWIFGBEdyxP5ejovTmBw">
+ <body>* An enumeration of flags that is used for tracing (at different places)&#xD;
+ * It forms a bit vector. In the list below, we list the flags that&#xD;
+ * are available, together with the letter in the A_Trace&lt;zone-nr>&#xD;
+ * environment variable that is used to activate the tracing.&#xD;
+ * (if one zone is used, A_Trace0 defines the tracing that is&#xD;
+ * activated)&#xD;
+ *&#xD;
+ * * FLAG_Ap 'A': appliation tracing&#xD;
+ * * FLAG_Ch 'C': Message channel/queue (in case of distribution)&#xD;
+ * * FLAG_Gr 'G': currently unused&#xD;
+ * * FLAG_AO 'O': active object&#xD;
+ * * FLAG_RB 'R': rbox - used for passing out and return parameters&#xD;
+ * back to a caller&#xD;
+ * * FLAG_Sc 'S': Scheduling&#xD;
+ * * FLAG_Ti 'T': Task related&#xD;
+ * * FLAG_Ut 'U': currently unused&#xD;
+ * * FLAG_VM 'V': virtual machine (now OS abstraction layer), i.e. for&#xD;
+ * Threads, SharedMemory and synchronisation classes&#xD;
+ * such as Lock, Barrier and Condition&#xD;
+ * * FLAG_Z 'Z': Related to zone aspects, used by ZoneController and&#xD;
+ * in class Main.&#xD;
+ * * FLAG_F1 '1': currently unused (used by a test program)&#xD;
+ * * FLAG_F2 '2': currently unused&#xD;
+ * * FLAG_F3 '3': currently unused&#xD;
+ * * FLAG_F4 '4': currently unused&#xD;
+ * * FLAG_F5 '5': currently unused (used by a test program)&#xD;
+ * * FLAG_F6 '6': Indicates &quot;return from debugger detection&quot; in&#xD;
+ * Time/DebugTimer and deadline violations&#xD;
+ * * FLAG_F7 '7': Related to &quot;container&quot; classes, i.e. class&#xD;
+ * CircularBuffer and BOL (Bounded ordered list)&#xD;
+ * * FLAG_F8 '8': used for class SR_List (list of service requests)&#xD;
+ * * FLAG_F9 '9': used for class ProDesc&#xD;
+ * * FLAG_Fa 'a': currently unused&#xD;
+ * * FLAG_Fb 'b': currently unused&#xD;
+ * * FLAG_Fc 'c': currently unused&#xD;
+ * * FLAG_Fd 'd': deadline control&#xD;
+ * * FLAG_Fe 'e': currently unused&#xD;
+ * * FLAG_Ff 'f': currently unused&#xD;
+ * * FLAG_Fg 'g': currently unused&#xD;
+ * * FLAG_Fh 'h': currently unused&#xD;
+ * * FLAG_Fi 'i': currently unused&#xD;
+ * * FLAG_Fj 'j': currently unused&#xD;
+ * * FLAG_Fk 'k': currently unused</body>
+ </ownedComment>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_U0No8FGBEdyxP5ejovTmBw" name="FLAG_None"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_Y4PfEFGBEdyxP5ejovTmBw" name="FLAG_Ut"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_bTqYoFGBEdyxP5ejovTmBw" name="FLAG_VM"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_dHvlYFGBEdyxP5ejovTmBw" name="FLAG_Z"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_fdDP4FGBEdyxP5ejovTmBw" name="FLAG_Ch"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_hZVWYFGBEdyxP5ejovTmBw" name="FLAG_AO"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_jtvpAFGBEdyxP5ejovTmBw" name="FLAG_Ap"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_lfTGMFGBEdyxP5ejovTmBw" name="FLAG_Sc"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_nWWucFGBEdyxP5ejovTmBw" name="FLAG_RB"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_ppbkUFGBEdyxP5ejovTmBw" name="FLAG_Gr"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_rhsGcFGBEdyxP5ejovTmBw" name="FLAG_Ti"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_uhT5QFGBEdyxP5ejovTmBw" name="FLAG_Xy"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_wKXhwFGBEdyxP5ejovTmBw" name="FLAG_F1"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_x632EFGBEdyxP5ejovTmBw" name="FLAG_F2"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_zf56MFGBEdyxP5ejovTmBw" name="FLAG_F3"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_1Awo8FGBEdyxP5ejovTmBw" name="FLAG_F4"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_2msE8FGBEdyxP5ejovTmBw" name="FLAG_F5"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_4OskkFGBEdyxP5ejovTmBw" name="FLAG_F6"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_5_Wp4FGBEdyxP5ejovTmBw" name="FLAG_F7"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_75PjsFGBEdyxP5ejovTmBw" name="FLAG_F8"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_92abAFGBEdyxP5ejovTmBw" name="FLAG_F9"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="__sucYFGBEdyxP5ejovTmBw" name="FLAG_Fa"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_Bn0QEFGCEdyxP5ejovTmBw" name="FLAG_Fb"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_DqpqgFGCEdyxP5ejovTmBw" name="FLAG_Fc"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_FW04cFGCEdyxP5ejovTmBw" name="FLAG_Fd"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_HDAtcFGCEdyxP5ejovTmBw" name="FLAG_Fe"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_IofdgFGCEdyxP5ejovTmBw" name="FLAG_Ff"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_KQDRMFGCEdyxP5ejovTmBw" name="FLAG_Fg"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_L-K_4FGCEdyxP5ejovTmBw" name="FLAG_Fh"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_NtyjYFGCEdyxP5ejovTmBw" name="FLAG_Fi"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_Po3wAFGCEdyxP5ejovTmBw" name="FLAG_Fj"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_RWZBwFGCEdyxP5ejovTmBw" name="FLAG_Fk"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_UbFh0FGCEdyxP5ejovTmBw" name="FLAG_All"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_0AZ9YC-OEdySSa8YESkO2w" name="Util">
+ <packagedElement xmi:type="uml:Class" xmi:id="_W-ZGIDO0EdyG-pUz-bb-Lg" name="BStringT">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_iaxicDR7EdypGbuyt3_DaA" annotatedElement="_W-ZGIDO0EdyG-pUz-bb-Lg">
+ <body>A template for bounded string of arbitrary size. Most common functions&#xD;
+are factored out to the superclass BString. Constructors and the&#xD;
+storage - who cannot be defined in the superclass - are defined here.</body>
+ </ownedComment>
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_gkCKsDO0EdyG-pUz-bb-Lg" parameter="_iWLdwDO0EdyG-pUz-bb-Lg">
+ <ownedParameter xmi:type="uml:TemplateParameter" xmi:id="_iWLdwDO0EdyG-pUz-bb-Lg" parameteredElement="_kCz-sDO0EdyG-pUz-bb-Lg">
+ <ownedParameteredElement xmi:type="uml:LiteralInteger" xmi:id="_kCz-sDO0EdyG-pUz-bb-Lg" name="maxSize" templateParameter="_iWLdwDO0EdyG-pUz-bb-Lg" value="-1"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <generalization xmi:type="uml:Generalization" xmi:id="_ZFUrgDO2EdyG-pUz-bb-Lg" general="_WXH_4DO2EdyG-pUz-bb-Lg"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_jwCk4DR-Edy0feurbW0fyQ" name="m_charStorage" visibility="private" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dbR1AF3HEd-12d_h0i1xhQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dbbmAF3HEd-12d_h0i1xhQ" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_4qQkgDUMEdy0feurbW0fyQ" name="BStringT " specification="_m2Mk4DR7EdypGbuyt3_DaA">
+ <language>C/C++</language>
+ <body>charTable = m_charStorage;&#xD;
+charTableSize = maxSize;&#xD;
+commonInit ();&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="__T_RkDUMEdy0feurbW0fyQ" name="BStringT " specification="_rwKkgDR7EdypGbuyt3_DaA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_MssWkCBbEeOMKsPXBVC0DA" name="ch">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MtNT8CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MtYTECBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_MtjSMCBbEeOMKsPXBVC0DA" name="nChar">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MuDogCBbEeOMKsPXBVC0DA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MuOnoCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>charTable = m_charStorage;&#xD;
+charTableSize = maxSize;&#xD;
+commonInit ();&#xD;
+&#xD;
+concat (ch, nChar);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_FuOxIDUNEdy0feurbW0fyQ" name="BStringT" specification="_N8S2oDR8EdypGbuyt3_DaA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_MufGUCBbEeOMKsPXBVC0DA" name="bString" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MvADsCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MvLC0CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>charTable = m_charStorage;&#xD;
+charTableSize = maxSize;&#xD;
+commonInit ();&#xD;
+&#xD;
+concat (bString.data());&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_KsrBEDUNEdy0feurbW0fyQ" name="BStringT" specification="_63iW0DR8Edy0feurbW0fyQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_MvqLACBbEeOMKsPXBVC0DA" name="bString" type="_W-ZGIDO0EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MwKhUCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MwVgcCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>charTable = m_charStorage;&#xD;
+charTableSize = maxSize;&#xD;
+commonInit ();&#xD;
+&#xD;
+concat (bString.data());&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_N6UBwDUNEdy0feurbW0fyQ" name="BStringT" specification="_PngwYDR-Edy0feurbW0fyQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Mw1PsCBbEeOMKsPXBVC0DA" name="constCharP">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MxVmACBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MxglICBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>charTable = m_charStorage;&#xD;
+charTableSize = maxSize;&#xD;
+commonInit ();&#xD;
+&#xD;
+concat (constCharP);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_m2Mk4DR7EdypGbuyt3_DaA" name="BStringT " method="_4qQkgDUMEdy0feurbW0fyQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_rwKkgDR7EdypGbuyt3_DaA" name="BStringT " method="__T_RkDUMEdy0feurbW0fyQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_1k3YwDR7EdypGbuyt3_DaA" annotatedElement="_rwKkgDR7EdypGbuyt3_DaA">
+ <body>Initialize a BString with a specific character and optionally a&#xD;
+number of repetitions.</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_35IhcDR7EdypGbuyt3_DaA" name="ch">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_37qRADR7EdypGbuyt3_DaA" name="nChar">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_EmwDkDR8EdypGbuyt3_DaA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Em50kDR8EdypGbuyt3_DaA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_EnC-gDR8EdypGbuyt3_DaA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_N8S2oDR8EdypGbuyt3_DaA" name="BStringT" method="_FuOxIDUNEdy0feurbW0fyQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_IpDwgDR-Edy0feurbW0fyQ" annotatedElement="_N8S2oDR8EdypGbuyt3_DaA">
+ <body>Create a BStringT given another bounded string of arbitrary size.</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ToyfYDR8EdypGbuyt3_DaA" name="bString" type="_WXH_4DO2EdyG-pUz-bb-Lg"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_63iW0DR8Edy0feurbW0fyQ" name="BStringT" method="_KsrBEDUNEdy0feurbW0fyQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_KgkrwDR-Edy0feurbW0fyQ" annotatedElement="_63iW0DR8Edy0feurbW0fyQ">
+ <body>The copy constructor.&#xD;
+Although it would be always ok to use the constructor above, this copy&#xD;
+constructor is necessary to avoid that the compiler implicitly&#xD;
+inserts a default copy constructor.</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_AvfosDR9Edy0feurbW0fyQ" name="bString" type="_W-ZGIDO0EdyG-pUz-bb-Lg"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_PngwYDR-Edy0feurbW0fyQ" name="BStringT" method="_N6UBwDUNEdy0feurbW0fyQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Tojj8DR-Edy0feurbW0fyQ" annotatedElement="_PngwYDR-Edy0feurbW0fyQ">
+ <body>Initialize a bounded string with a character pointer</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_VQkqoDR-Edy0feurbW0fyQ" name="constCharP">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WzOJIDR-Edy0feurbW0fyQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_WzX6IDR-Edy0feurbW0fyQ" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_sQ1JADO0EdyG-pUz-bb-Lg" name="BString50">
+ <templateBinding xmi:type="uml:TemplateBinding" xmi:id="_K4hEADO1EdyG-pUz-bb-Lg" signature="_gkCKsDO0EdyG-pUz-bb-Lg">
+ <parameterSubstitution xmi:type="uml:TemplateParameterSubstitution" xmi:id="_Ol57wDO1EdyG-pUz-bb-Lg" actual="_Ol57wTO1EdyG-pUz-bb-Lg" formal="_iWLdwDO0EdyG-pUz-bb-Lg">
+ <ownedActual xmi:type="uml:LiteralInteger" xmi:id="_Ol57wTO1EdyG-pUz-bb-Lg" name="50" value="50"/>
+ </parameterSubstitution>
+ </templateBinding>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_0AwCEDO0EdyG-pUz-bb-Lg" name="BString200">
+ <templateBinding xmi:type="uml:TemplateBinding" xmi:id="_Lb-9cDO1EdyG-pUz-bb-Lg" signature="_gkCKsDO0EdyG-pUz-bb-Lg">
+ <parameterSubstitution xmi:type="uml:TemplateParameterSubstitution" xmi:id="_TPCDADO1EdyG-pUz-bb-Lg" actual="_TPL0ADO1EdyG-pUz-bb-Lg" formal="_iWLdwDO0EdyG-pUz-bb-Lg">
+ <ownedActual xmi:type="uml:LiteralInteger" xmi:id="_TPL0ADO1EdyG-pUz-bb-Lg" name="200" value="200"/>
+ </parameterSubstitution>
+ </templateBinding>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_1vnXoDO0EdyG-pUz-bb-Lg" name="BString500">
+ <templateBinding xmi:type="uml:TemplateBinding" xmi:id="_L8BvcDO1EdyG-pUz-bb-Lg" signature="_gkCKsDO0EdyG-pUz-bb-Lg">
+ <parameterSubstitution xmi:type="uml:TemplateParameterSubstitution" xmi:id="_eSja0DO1EdyG-pUz-bb-Lg" actual="_eStL0DO1EdyG-pUz-bb-Lg" formal="_iWLdwDO0EdyG-pUz-bb-Lg">
+ <ownedActual xmi:type="uml:LiteralInteger" xmi:id="_eStL0DO1EdyG-pUz-bb-Lg" name="500" value="500"/>
+ </parameterSubstitution>
+ </templateBinding>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_3W43cDO0EdyG-pUz-bb-Lg" name="BString2000">
+ <templateBinding xmi:type="uml:TemplateBinding" xmi:id="_MbeEgDO1EdyG-pUz-bb-Lg" signature="_gkCKsDO0EdyG-pUz-bb-Lg">
+ <parameterSubstitution xmi:type="uml:TemplateParameterSubstitution" xmi:id="_jJ_q4DO1EdyG-pUz-bb-Lg" actual="_jJ_q4TO1EdyG-pUz-bb-Lg" formal="_iWLdwDO0EdyG-pUz-bb-Lg">
+ <ownedActual xmi:type="uml:LiteralInteger" xmi:id="_jJ_q4TO1EdyG-pUz-bb-Lg" name="2000" value="2000"/>
+ </parameterSubstitution>
+ </templateBinding>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_WXH_4DO2EdyG-pUz-bb-Lg" name="BString">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_na8OUDRHEdyG-pUz-bb-Lg" annotatedElement="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <body>A superclass for the template class BStringT. It factors out&#xD;
+all functions that do not depend on the template parameter.&#xD;
+Since it does not provide storage for the string, never instantiate&#xD;
+this class but BStringT instead (to enforce this, the constructor&#xD;
+is protected)</body>
+ </ownedComment>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_A2bjsDRoEdypGbuyt3_DaA" name="charTable" visibility="protected" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DwGfgDRoEdypGbuyt3_DaA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DwGfgTRoEdypGbuyt3_DaA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_FafkwDRoEdypGbuyt3_DaA" name="current" visibility="protected" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HhzPgDRoEdypGbuyt3_DaA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Hh9AgDRoEdypGbuyt3_DaA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_NT80UDRoEdypGbuyt3_DaA" name="m_scanOk" visibility="protected" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Q9AlsDRoEdypGbuyt3_DaA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Q9AlsTRoEdypGbuyt3_DaA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_WG7s4DRoEdypGbuyt3_DaA" name="m_separator" visibility="protected" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_c8vHEDRoEdypGbuyt3_DaA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_c844EDRoEdypGbuyt3_DaA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_ahw5cDRoEdypGbuyt3_DaA" name="numBase" visibility="protected" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dw5H4DRoEdypGbuyt3_DaA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dw5H4TRoEdypGbuyt3_DaA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_gH_iIDRoEdypGbuyt3_DaA" name="charTableSize" visibility="protected" isUnique="false">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_ku40wDRoEdypGbuyt3_DaA" annotatedElement="_gH_iIDRoEdypGbuyt3_DaA">
+ <body>the amount of memory allocated for the string table</body>
+ </ownedComment>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jP9_sDRoEdypGbuyt3_DaA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jP9_sTRoEdypGbuyt3_DaA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_nHCX4DRoEdypGbuyt3_DaA" name="nbytes" visibility="protected" isUnique="false">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_snwOcDRoEdypGbuyt3_DaA" annotatedElement="_nHCX4DRoEdypGbuyt3_DaA">
+ <body>the length of the string in bytes (not the amount of memory allocated)</body>
+ </ownedComment>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_o6X9wDRoEdypGbuyt3_DaA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_o6hHsDRoEdypGbuyt3_DaA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1R2jsDRbEdyDwaY3iUxzzA" name="operator[]" specification="_ZkKxIDRaEdy1p4IpsoZYqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KEjPoCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KFENACBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KFPMICBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KFaLQCBbEeOMKsPXBVC0DA" name="index">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KF56gCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KGE5oCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return charTable[index];</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_f_XoEDRcEdyDwaY3iUxzzA" name="operator&lt;&lt;" specification="_yQhl4DRJEdyG-pUz-bb-Lg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KGVYUCBbEeOMKsPXBVC0DA" name="d">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KG28wCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KHB74CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KHNiECBbEeOMKsPXBVC0DA" name="ret" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KHt4YCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KH43gCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>*this += d;
+return *this;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_SRhdYDRvEdypGbuyt3_DaA" name="size" specification="_urQpMDRmEdypGbuyt3_DaA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KIWxkCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KI3u8CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KJCuECBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return charTableSize;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_WgIy4DRvEdypGbuyt3_DaA" name="operator==" specification="_hifjgDRjEdyDwaY3iUxzzA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KJTz0CBbEeOMKsPXBVC0DA" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KJ0KICBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KJ_JQCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KKKIYCBbEeOMKsPXBVC0DA" name="constCharP">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KKqesCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KK1d0CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return !strcmp (charTable, constCharP);</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_ZW-dIDRvEdypGbuyt3_DaA" name="operator==" specification="_hujpkDRjEdyDwaY3iUxzzA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KLbTsCBbEeOMKsPXBVC0DA" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KL8RECBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KMH3QCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KMS2YCBbEeOMKsPXBVC0DA" name="bString" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KMzzwCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KM-y4CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return !strcmp (charTable, bString.charTable);</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_bhtPUDRvEdypGbuyt3_DaA" name="operator!=" specification="_h3DeQDRjEdyDwaY3iUxzzA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KNfJMCBbEeOMKsPXBVC0DA" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KOAGkCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KOLFsCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KOWE0CBbEeOMKsPXBVC0DA" name="consCharP">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KO3CMCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KPCoYCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return strcmp (charTable, consCharP);</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_dpdmADRvEdypGbuyt3_DaA" name="operator!=" specification="_iQYkQDRjEdyDwaY3iUxzzA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KPvL8CBbEeOMKsPXBVC0DA" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KQQJUCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KQbIcCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KQlggCBbEeOMKsPXBVC0DA" name="bString" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KRGd4CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KRRdACBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return strcmp (charTable, bString.charTable);</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_hWi7wDRvEdypGbuyt3_DaA" name="data" specification="_hQh-4DRlEdypGbuyt3_DaA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KRxzUCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KSUl4CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KSflACBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return charTable;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_jpxioDRvEdypGbuyt3_DaA" name="length" specification="_AJnWcDRnEdypGbuyt3_DaA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KTFa4CBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KTlxMCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KTwwUCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return nbytes;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_pc0fUDRvEdypGbuyt3_DaA" name="setBase" specification="_tMpS8DRiEdyDwaY3iUxzzA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KUAn8CBbEeOMKsPXBVC0DA" name="newBase">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KUg-QCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KUr9YCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KU-RQCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KVfOoCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KVqNwCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>unsigned int old = numBase;&#xD;
+numBase = newBase;&#xD;
+&#xD;
+return old;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_udWZ8DRvEdypGbuyt3_DaA" name="getPosition" specification="_FX25wDRjEdyDwaY3iUxzzA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KV6scCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KWbCwCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KWmB4CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return current - charTable;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_yq6mkDRvEdypGbuyt3_DaA" name="scanOk" specification="_O59-oDRiEdyDwaY3iUxzzA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KW2gkCBbEeOMKsPXBVC0DA" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KXeLoCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KXojsCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return m_scanOk;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_18IfsDRvEdypGbuyt3_DaA" name="getSeparator" specification="_w9e_8DRlEdypGbuyt3_DaA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KX5CYCBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KYZ_wCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KYk-4CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return m_separator;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_44MBIDRvEdypGbuyt3_DaA" name="setSeparator" specification="_BSrFsDRmEdypGbuyt3_DaA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KZK0wCBbEeOMKsPXBVC0DA" name="separator">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KZrLECBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KZ2KMCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>m_separator = separator;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_6eG5QDRzEdypGbuyt3_DaA" name="BString" specification="_E8CKIDRHEdyG-pUz-bb-Lg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KaUEQCBbEeOMKsPXBVC0DA" name="charP">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ka0akCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ka_ZsCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>charTable = current = (char*) charP;&#xD;
+numBase = 0;&#xD;
+m_separator = StdSeparators;&#xD;
+charTableSize = 0;&#xD;
+nbytes = strlen(charP);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Av_uEDR0EdypGbuyt3_DaA" name="operator=" specification="_sBF6EDRHEdyG-pUz-bb-Lg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KbkogCBbEeOMKsPXBVC0DA" name="constCharP">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KcFl4CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KcQlACBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>nbytes = 0;&#xD;
+concat (constCharP);&#xD;
+current = charTable;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_DpE0ADR0EdypGbuyt3_DaA" name="operator=" specification="_0h42cDRHEdyG-pUz-bb-Lg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Kc1z0CBbEeOMKsPXBVC0DA" name="bString" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KdWKICBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KdhJQCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>nbytes = 0;&#xD;
+concat (bString.charTable);&#xD;
+current = charTable;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_G7e_8DR0EdypGbuyt3_DaA" name="operator+=" specification="_ABbb4DRIEdyG-pUz-bb-Lg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KeA4gCBbEeOMKsPXBVC0DA" name="vp">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KeojkCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ke0JwCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>char buffer[sizeof(unsigned int)*2+1];&#xD;
+&#xD;
+sprintf (buffer, &quot;%x&quot;, (unsigned int) 0 /*vp*/);&#xD;
+concat (buffer);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_KFPmMDR0EdypGbuyt3_DaA" name="operator+=" specification="_La2yQDRIEdyG-pUz-bb-Lg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KfRcwCBbEeOMKsPXBVC0DA" name="constCharP">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KfxzECBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Kf8yMCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>concat (constCharP);</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_QmynoDR0EdypGbuyt3_DaA" name="operator+=" specification="_dH9GIDRIEdyG-pUz-bb-Lg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KgousCBbEeOMKsPXBVC0DA" name="c">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KhJFACBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KhUEICBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>concat (c, 1);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_UA8aUDR0EdypGbuyt3_DaA" name="operator+=" specification="_lWbjcDRIEdyG-pUz-bb-Lg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Khki0CBbEeOMKsPXBVC0DA" name="bStr2" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KiE5ICBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KiP4QCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>concat (bStr2.data());&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_XuBwEDR0EdypGbuyt3_DaA" name="operator+=" specification="_yR57YDRIEdyG-pUz-bb-Lg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KivngCBbEeOMKsPXBVC0DA" name="i">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KjP90CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Kja88CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>// actually, we would need a calculation of the needed buffer size:&#xD;
+// round-up the log10 of maxint + 2 bytes for the sign and the&#xD;
+// trailing 0, but it is simpler to come up with something &quot;big enough&quot;&#xD;
+char buffer[30];&#xD;
+sprintf (buffer, &quot;%i&quot;, i);&#xD;
+concat (buffer);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_abCI4DR0EdypGbuyt3_DaA" name="operator+=" specification="_-YxmkDRIEdyG-pUz-bb-Lg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KjrboCBbEeOMKsPXBVC0DA" name="l">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8heigBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KkLx8CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KkWxECBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>char buffer[30];&#xD;
+sprintf (buffer, &quot;%d&quot;, (int) l);&#xD;
+concat (buffer);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_dWfNYDR0EdypGbuyt3_DaA" name="operator+=" specification="_F4T6QDRJEdyG-pUz-bb-Lg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KknPwCBbEeOMKsPXBVC0DA" name="d">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KlHmECBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KlSlMCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>char buffer[30];&#xD;
+sprintf (buffer, &quot;%g&quot;, d);&#xD;
+concat (buffer);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_fnVOoDR0EdypGbuyt3_DaA" name="operator+=" specification="_IS_M8DRJEdyG-pUz-bb-Lg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KljD4CBbEeOMKsPXBVC0DA" name="f">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7W3wkBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KmKH4CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KmVHACBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>char buffer[30];&#xD;
+sprintf (buffer, &quot;%f&quot;, f);&#xD;
+concat (buffer);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_ho1MUDR0EdypGbuyt3_DaA" name="operator+=" specification="_RAcsUDRJEdyG-pUz-bb-Lg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KmllsCBbEeOMKsPXBVC0DA" name="ui">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KnF8ACBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KnQ7ICBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>char buffer[30];&#xD;
+sprintf (buffer, &quot;%u&quot;, ui);&#xD;
+concat (buffer);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_lFhVoDR0EdypGbuyt3_DaA" name="operator+=" specification="_V-mBUDRJEdyG-pUz-bb-Lg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KnhZ0CBbEeOMKsPXBVC0DA" name="ul">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_a1wZUByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KoBwICBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KoMvQCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>char buffer[30];&#xD;
+sprintf (buffer, &quot;%u&quot;, (unsigned int) ul);&#xD;
+concat (buffer);&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="__1PgkDR0EdypGbuyt3_DaA" name="getWord" specification="_QpuIMDRmEdypGbuyt3_DaA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KodN8CBbEeOMKsPXBVC0DA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ko9kQCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KpIjYCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KpTigCBbEeOMKsPXBVC0DA" name="buff" direction="inout">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Kpz40CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Kp-38CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KqWrYCBbEeOMKsPXBVC0DA" name="sizeBuff">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Kq3owCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KrCn4CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>unsigned int n = 0;&#xD;
+&#xD;
+for (; current &lt; charTable + nbytes; ++current)&#xD;
+{&#xD;
+ if (strrchr (m_separator, *current) != NULL)&#xD;
+ { // *current IS a separator&#xD;
+ if (n > 0)&#xD;
+ break; // end of word&#xD;
+ // else // separators before word&#xD;
+ }&#xD;
+ else&#xD;
+ { // *current IS a character of word&#xD;
+ if (n >= sizeBuff - 1)&#xD;
+ {&#xD;
+ break; // truncate if word too long&#xD;
+ }&#xD;
+ // with NO WARNING ! but caller may test :&#xD;
+ // if (n == sizeBuff-1) ...&#xD;
+ buff[n++] = *current; // store a character of word &#xD;
+ }&#xD;
+}&#xD;
+&#xD;
+buff[n] = '\0'; // append a null terminator&#xD;
+&#xD;
+return n;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_MNjhEDR1EdypGbuyt3_DaA" name="operator>>" specification="_Z9YpwDRXEdy1p4IpsoZYqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KrTGkCBbEeOMKsPXBVC0DA" name="param_0" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Krzc4CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Kr-cACBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KsQv4CBbEeOMKsPXBVC0DA" name="c" direction="inout">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KsxtQCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ks8sYCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>char buff[2];&#xD;
+if (getWord (buff, sizeof (buff)) > 0)&#xD;
+{&#xD;
+ c = buff[0];&#xD;
+}&#xD;
+m_scanOk = (current &lt; charTable + nbytes);&#xD;
+return *this;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_P0Yd0DR1EdypGbuyt3_DaA" name="operator>>" specification="_aIaOADRXEdy1p4IpsoZYqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KtbNgCBbEeOMKsPXBVC0DA" name="param_0" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Kt8K4CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KuHKACBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KuZd4CBbEeOMKsPXBVC0DA" name="d" direction="inout">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ku50MCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KvEzUCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>char *lastP;&#xD;
+//double k= strtol(current, &amp;lastP, numBase);&#xD;
+double k = strtod (current, &amp;lastP);&#xD;
+&#xD;
+m_scanOk = (current != lastP);&#xD;
+if (m_scanOk) {&#xD;
+ d = k; // don't modify arg, if extraction failed&#xD;
+ current = lastP;&#xD;
+}&#xD;
+return *this;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_WQ2yADR1EdypGbuyt3_DaA" name="operator>>" specification="_aOg2ADRXEdy1p4IpsoZYqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KvdN0CBbEeOMKsPXBVC0DA" name="param_0" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Kv9kICBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KwIjQCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Kwa3ICBbEeOMKsPXBVC0DA" name="f" direction="inout">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7W3wkBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Kw7NcCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KxGzoCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>char *lastP;&#xD;
+//float k= strtol(current, &amp;lastP, numBase);&#xD;
+ #ifdef SYSTEM_VxWorks&#xD;
+// strtof seems to be missin in vxWorks&#xD;
+float k = strtod (current, &amp;lastP);&#xD;
+ #else&#xD;
+float k = strtof (current, &amp;lastP);&#xD;
+ #endif&#xD;
+&#xD;
+m_scanOk = (current != lastP);&#xD;
+if (m_scanOk) {&#xD;
+ f = k; // don't modify arg, if extraction failed&#xD;
+ current = lastP;&#xD;
+}&#xD;
+return *this;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_ZbW_IDR1EdypGbuyt3_DaA" name="operator>>" specification="_aU7AADRXEdy1p4IpsoZYqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KxeAACBbEeOMKsPXBVC0DA" name="param_0" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Kx_kcCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KyJ8gCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Kyc3cCBbEeOMKsPXBVC0DA" name="i" direction="inout">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ky9NwCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KzIM4CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>char *lastP;&#xD;
+int k = strtol (current, &amp;lastP, numBase);&#xD;
+&#xD;
+m_scanOk = (current != lastP);&#xD;
+if (m_scanOk) {&#xD;
+ i = k; // don't modify arg, if extraction failed&#xD;
+ current = lastP;&#xD;
+}&#xD;
+return *this;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_ct68EDR1EdypGbuyt3_DaA" name="operator>>" specification="_aavUIDRXEdy1p4IpsoZYqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KzgAUCBbEeOMKsPXBVC0DA" name="param_0" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K0A9sCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K0L80CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_K0e3wCBbEeOMKsPXBVC0DA" name="l" direction="inout">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8heigBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K1FUsCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K1QT0CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>char *lastP;&#xD;
+long k = strtol (current, &amp;lastP, numBase);&#xD;
+&#xD;
+m_scanOk = (current != lastP);&#xD;
+if (m_scanOk) {&#xD;
+ l = k; // don't modify arg, if extraction failed&#xD;
+ current = lastP;&#xD;
+}&#xD;
+return *this;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_fS4MIDR1EdypGbuyt3_DaA" name="operator>>" specification="_ag_tIDRXEdy1p4IpsoZYqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_K1pVYCBbEeOMKsPXBVC0DA" name="param_0" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K2JrsCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K2Uq0CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_K2m-sCBbEeOMKsPXBVC0DA" name="ui" direction="inout">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K3H8ECBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K3S7MCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>char *lastP;&#xD;
+long k = strtol (current, &amp;lastP, numBase);&#xD;
+&#xD;
+m_scanOk = (current != lastP);&#xD;
+if (m_scanOk) {&#xD;
+ ui = k; // don't modify arg, if extraction failed&#xD;
+ current = lastP;&#xD;
+}&#xD;
+return *this;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_h7kFoDR1EdypGbuyt3_DaA" name="operator>>" specification="_amWuQDRXEdy1p4IpsoZYqA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_K3rVsCBbEeOMKsPXBVC0DA" name="param_0" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K4LsACBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K4WrICBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_K4o_ACBbEeOMKsPXBVC0DA" name="ul" direction="inout">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_a1wZUByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K5J8YCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K5U7gCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>char *lastP;&#xD;
+unsigned long k = strtol (current, &amp;lastP, numBase);&#xD;
+&#xD;
+m_scanOk = (current != lastP);&#xD;
+if (m_scanOk) {&#xD;
+ ul = k; // don't modify arg, if extraction failed&#xD;
+ current = lastP;&#xD;
+}&#xD;
+return *this;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_paT5sDR2EdypGbuyt3_DaA" name="concat" specification="_d6UmIDRnEdypGbuyt3_DaA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_K5su8CBbEeOMKsPXBVC0DA" name="constCharP">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K6NsUCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K6YrcCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>char *target = charTable + nbytes;&#xD;
+char *bound = charTable + charTableSize;&#xD;
+while (target != bound &amp;&amp; *constCharP != '\0')&#xD;
+{&#xD;
+ *target++ = *constCharP++;&#xD;
+ nbytes++;&#xD;
+}&#xD;
+if (target == bound)&#xD;
+ OSAL_ERROR (&quot;Bounded character table too short&quot;);&#xD;
+*target = '\0';&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_voCAMDR2EdypGbuyt3_DaA" name="concat" specification="_8OaV4DRKEdyG-pUz-bb-Lg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_K696QCBbEeOMKsPXBVC0DA" name="constCharP">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K7e3oCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K7p2wCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_K8PsoCBbEeOMKsPXBVC0DA" name="size">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K8wqACBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K87pICBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>char *target = charTable + nbytes;&#xD;
+char *bound = charTable + charTableSize;&#xD;
+unsigned int i = 0;&#xD;
+while (target != bound &amp;&amp; i &lt; size)&#xD;
+{&#xD;
+ *target++ = *constCharP++;&#xD;
+ nbytes++;&#xD;
+ i++;&#xD;
+}&#xD;
+if (target == bound)&#xD;
+ OSAL_ERROR (&quot;Bounded character table too short&quot;);&#xD;
+*target = '\0';&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_0KdCgDR2EdypGbuyt3_DaA" name="concat" specification="_tamdIDRnEdypGbuyt3_DaA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_K9MH0CBbEeOMKsPXBVC0DA" name="ch">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K9tFMCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K94EUCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_K-KYMCBbEeOMKsPXBVC0DA" name="nChar">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K-rVkCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K-2UsCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>if (nbytes + nChar >= charTableSize) {&#xD;
+ OSAL_ERROR (&quot;Bounded character table too short&quot;);&#xD;
+}&#xD;
+&#xD;
+unsigned int i;&#xD;
+char *cP = charTable + nbytes;&#xD;
+for (i = 0; i &lt; nChar; i++) { // concat stops on terminating zero&#xD;
+ *cP++ = ch;&#xD;
+}&#xD;
+*cP = '\0';&#xD;
+nbytes += nChar;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_4mVX8DR2EdypGbuyt3_DaA" name="commonInit" specification="_ZakdUDRnEdypGbuyt3_DaA">
+ <language>C/C++</language>
+ <body>numBase = 0;&#xD;
+current = charTable;&#xD;
+&#xD;
+m_separator = StdSeparators;&#xD;
+&#xD;
+charTable[0] = '\0';&#xD;
+nbytes = 0;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_-lTQwDR2EdypGbuyt3_DaA" name="setPosition" specification="_UA3KgDRjEdyDwaY3iUxzzA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_K_Lr4CBbEeOMKsPXBVC0DA" name="pos">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K_spQCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K_3oYCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>if (pos > (unsigned int) (current - charTable + nbytes)) {&#xD;
+ OSAL_ERROR (&quot;BString::setPosition pos > current-begin&quot;);&#xD;
+}&#xD;
+&#xD;
+current = charTable + pos;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_20RkgFIJEd-OfYmxqPWG5g" name="operator&lt;&lt;" specification="_nyaBMDRJEdyG-pUz-bb-Lg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_LAIHECBbEeOMKsPXBVC0DA" name="vp">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LAodYCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LAzcgCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_LBNFICBbEeOMKsPXBVC0DA" name="ret" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LBtbcCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LB4akCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>*this += vp;
+return *this;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_7piDQFIJEd-OfYmxqPWG5g" name="operator&lt;&lt;" specification="_uTyqkDRJEdyG-pUz-bb-Lg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_LCQ1ECBbEeOMKsPXBVC0DA" name="constCharP">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LCxycCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LC8xkCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_LDcg0CBbEeOMKsPXBVC0DA" name="ret" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LEEL4CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LEPLACBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>*this += constCharP;
+return *this;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_ABuLgFIKEd-OfYmxqPWG5g" name="operator&lt;&lt;" specification="_xfysgDRJEdyG-pUz-bb-Lg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_LEnlgCBbEeOMKsPXBVC0DA" name="c">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LFIi4CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LFTiACBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_LFfIMCBbEeOMKsPXBVC0DA" name="ret" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LGAFkCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LGLEsCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>*this += c;
+return *this;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_CInmkFIKEd-OfYmxqPWG5g" name="operator&lt;&lt;" specification="_xsnAgDRJEdyG-pUz-bb-Lg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_LGi4ICBbEeOMKsPXBVC0DA" name="i">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LHD1gCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LHPbsCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_LHaa0CBbEeOMKsPXBVC0DA" name="ret" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LH7YMCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LIGXUCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>*this += i;
+return *this;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_DEVn8FIKEd-OfYmxqPWG5g" name="operator&lt;&lt;" specification="_x1P_IDRJEdyG-pUz-bb-Lg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_LIeKwCBbEeOMKsPXBVC0DA" name="l">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8heigBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LJAWQCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LJLVYCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_LJWUgCBbEeOMKsPXBVC0DA" name="ret" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LJ2q0CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LKBp8CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>*this += l;
+return *this;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_GQ_KIFIKEd-OfYmxqPWG5g" name="operator&lt;&lt;" specification="_x8tSADRJEdyG-pUz-bb-Lg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_LKZdYCBbEeOMKsPXBVC0DA" name="ui">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LK6awCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LLLggCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_LLWfoCBbEeOMKsPXBVC0DA" name="ret" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LL4EECBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LMDDMCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>*this += ui;
+return *this;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_HzZYEFIKEd-OfYmxqPWG5g" name="operator&lt;&lt;" specification="_yJ0g8DRJEdyG-pUz-bb-Lg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_LMa2oCBbEeOMKsPXBVC0DA" name="ul">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_a1wZUByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LM7M8CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LNGzICBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_LNRLMCBbEeOMKsPXBVC0DA" name="ret" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LNyIkCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LN9HsCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>*this += ul;
+return *this;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_KuP_oFIKEd-OfYmxqPWG5g" name="operator&lt;&lt;" specification="_yXOq0DRJEdyG-pUz-bb-Lg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_LOU7ICBbEeOMKsPXBVC0DA" name="f">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7W3wkBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LO2fkCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LPBesCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_LPMd0CBbEeOMKsPXBVC0DA" name="ret" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LPtbMCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LP4aUCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>*this += f;
+return *this;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_MhuvcFIKEd-OfYmxqPWG5g" name="operator&lt;&lt;" specification="_yjTX8DRJEdyG-pUz-bb-Lg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_LQQNwCBbEeOMKsPXBVC0DA" name="bStr" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LQxLICBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LQ8KQCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_LRVy4CBbEeOMKsPXBVC0DA" name="ret" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LR2wQCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LSBvYCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>*this += bStr;
+return *this;</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_J60NwDRGEdyG-pUz-bb-Lg" name="BString" visibility="protected">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_SjXX8DRGEdyG-pUz-bb-Lg" annotatedElement="_J60NwDRGEdyG-pUz-bb-Lg">
+ <body>forbid the creation of an BString without storage.</body>
+ </ownedComment>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_X1eKwDRGEdyG-pUz-bb-Lg" name="BString" visibility="private">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gnjrcDRGEdyG-pUz-bb-Lg" annotatedElement="_X1eKwDRGEdyG-pUz-bb-Lg">
+ <body>forbid the implicit copying of a BString without storage.&#xD;
+If the copying to a BStringT type should be avoided for the sake&#xD;
+of efficiency, an assignment to a reference type (BString&amp;) should be&#xD;
+used explicitly.&#xD;
+The constructor is declared private to avoid that the default&#xD;
+copy constructor of a subclass will based on it (which won't work,&#xD;
+since it is empty). Effectively, we force that the subclass declares&#xD;
+its own copy constructor.</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_o4Q9YDRGEdyG-pUz-bb-Lg" name="dummy" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_x3dF8DRGEdyG-pUz-bb-Lg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_x3m28DRGEdyG-pUz-bb-Lg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_E8CKIDRHEdyG-pUz-bb-Lg" name="BString" method="_6eG5QDRzEdypGbuyt3_DaA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_eNSL8DRHEdyG-pUz-bb-Lg" annotatedElement="_E8CKIDRHEdyG-pUz-bb-Lg">
+ <body>create a string wrapper for a const char*&#xD;
+A string initialized with this pointer has a size of 0 (allocated&#xD;
+memory) and cannot be modified. It is a convenient way to pass&#xD;
+C-strings directly to functions that have a const BString &amp;&#xD;
+parameter.</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ajL4wDRHEdyG-pUz-bb-Lg" name="charP">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cjyekDRHEdyG-pUz-bb-Lg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_cjyekTRHEdyG-pUz-bb-Lg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_sBF6EDRHEdyG-pUz-bb-Lg" name="operator=" method="_Av_uEDR0EdypGbuyt3_DaA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_vKHggDRHEdyG-pUz-bb-Lg" name="constCharP">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xoXroDRHEdyG-pUz-bb-Lg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xog1kDRHEdyG-pUz-bb-Lg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_0h42cDRHEdyG-pUz-bb-Lg" name="operator=" method="_DpE0ADR0EdypGbuyt3_DaA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_2Do9EDRHEdyG-pUz-bb-Lg" name="bString" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_45cFgDRHEdyG-pUz-bb-Lg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_45l2gDRHEdyG-pUz-bb-Lg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_ABbb4DRIEdyG-pUz-bb-Lg" name="operator+=" method="_G7e_8DR0EdypGbuyt3_DaA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_DEe9MDRIEdyG-pUz-bb-Lg" name="vp">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_E_IE8DRIEdyG-pUz-bb-Lg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_E_RO4DRIEdyG-pUz-bb-Lg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_La2yQDRIEdyG-pUz-bb-Lg" name="operator+=" method="_KFPmMDR0EdypGbuyt3_DaA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_RcNQsDRIEdyG-pUz-bb-Lg" name="constCharP">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Yg6CgDRIEdyG-pUz-bb-Lg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Yg6CgTRIEdyG-pUz-bb-Lg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_dH9GIDRIEdyG-pUz-bb-Lg" name="operator+=" method="_QmynoDR0EdypGbuyt3_DaA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_eOScEDRIEdyG-pUz-bb-Lg" name="c">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_h0hi8DRIEdyG-pUz-bb-Lg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_h0qs4DRIEdyG-pUz-bb-Lg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_lWbjcDRIEdyG-pUz-bb-Lg" name="operator+=" method="_UA8aUDR0EdypGbuyt3_DaA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_nIuAcDRIEdyG-pUz-bb-Lg" name="bStr2" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rM5nkDRIEdyG-pUz-bb-Lg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rNDYkDRIEdyG-pUz-bb-Lg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_yR57YDRIEdyG-pUz-bb-Lg" name="operator+=" method="_XuBwEDR0EdypGbuyt3_DaA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_1XDHYDRIEdyG-pUz-bb-Lg" name="i">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2_8-4DRIEdyG-pUz-bb-Lg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3AGv4DRIEdyG-pUz-bb-Lg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_-YxmkDRIEdyG-pUz-bb-Lg" name="operator+=" method="_abCI4DR0EdypGbuyt3_DaA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_AJbr4DRJEdyG-pUz-bb-Lg" name="l">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8heigBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CnPLEDRJEdyG-pUz-bb-Lg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Csv9MDRJEdyG-pUz-bb-Lg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_F4T6QDRJEdyG-pUz-bb-Lg" name="operator+=" method="_dWfNYDR0EdypGbuyt3_DaA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_HCXSkDRJEdyG-pUz-bb-Lg" name="d">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IFkcADRJEdyG-pUz-bb-Lg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IFuNADRJEdyG-pUz-bb-Lg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_IS_M8DRJEdyG-pUz-bb-Lg" name="operator+=" method="_fnVOoDR0EdypGbuyt3_DaA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KAqPsDRJEdyG-pUz-bb-Lg" name="f">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7W3wkBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_L9rWADRJEdyG-pUz-bb-Lg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_L91HADRJEdyG-pUz-bb-Lg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_RAcsUDRJEdyG-pUz-bb-Lg" name="operator+=" method="_ho1MUDR0EdypGbuyt3_DaA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_St9-EDRJEdyG-pUz-bb-Lg" name="ui">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Tl2oUDRJEdyG-pUz-bb-Lg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TmAZUDRJEdyG-pUz-bb-Lg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_V-mBUDRJEdyG-pUz-bb-Lg" name="operator+=" method="_lFhVoDR0EdypGbuyt3_DaA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Xmmg8DRJEdyG-pUz-bb-Lg" name="ul">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_a1wZUByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ZDShYDRJEdyG-pUz-bb-Lg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ZIqJkDRJEdyG-pUz-bb-Lg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_nyaBMDRJEdyG-pUz-bb-Lg" name="operator&lt;&lt;" method="_20RkgFIJEd-OfYmxqPWG5g">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_qg5nwDRJEdyG-pUz-bb-Lg" name="vp">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rkZsIDRJEdyG-pUz-bb-Lg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rkjdIDRJEdyG-pUz-bb-Lg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xw1XMDRfEdyDwaY3iUxzzA" name="ret" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zW59IDRfEdyDwaY3iUxzzA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zXDuIDRfEdyDwaY3iUxzzA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_uTyqkDRJEdyG-pUz-bb-Lg" name="operator&lt;&lt;" method="_7piDQFIJEd-OfYmxqPWG5g">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_2u7q4DRJEdyG-pUz-bb-Lg" name="constCharP">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_74GkIDRJEdyG-pUz-bb-Lg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_74GkITRJEdyG-pUz-bb-Lg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_XVuW4DRKEdyG-pUz-bb-Lg" name="ret" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ZWetsDRKEdyG-pUz-bb-Lg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ZWn3oDRKEdyG-pUz-bb-Lg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xfysgDRJEdyG-pUz-bb-Lg" name="operator&lt;&lt;" method="_ABuLgFIKEd-OfYmxqPWG5g">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_3Itc0DRJEdyG-pUz-bb-Lg" name="c">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9cPQYDRJEdyG-pUz-bb-Lg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9cZBYDRJEdyG-pUz-bb-Lg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_aL0aQDRKEdyG-pUz-bb-Lg" name="ret" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bxc7UDRKEdyG-pUz-bb-Lg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_bxmsUDRKEdyG-pUz-bb-Lg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xsnAgDRJEdyG-pUz-bb-Lg" name="operator&lt;&lt;" method="_CInmkFIKEd-OfYmxqPWG5g">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_3YWbUDRJEdyG-pUz-bb-Lg" name="i">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-5htwDRJEdyG-pUz-bb-Lg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-5q3sDRJEdyG-pUz-bb-Lg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ctWi4DRKEdyG-pUz-bb-Lg" name="ret" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_esnE4DRKEdyG-pUz-bb-Lg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_esnE4TRKEdyG-pUz-bb-Lg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_x1P_IDRJEdyG-pUz-bb-Lg" name="operator&lt;&lt;" method="_DEVn8FIKEd-OfYmxqPWG5g">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_3w8hgDRJEdyG-pUz-bb-Lg" name="l">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8heigBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_AiR0QDRKEdyG-pUz-bb-Lg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_AiblQDRKEdyG-pUz-bb-Lg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_fMgF4DRKEdyG-pUz-bb-Lg" name="ret" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gboLcDRKEdyG-pUz-bb-Lg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ghI9kDRKEdyG-pUz-bb-Lg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_x8tSADRJEdyG-pUz-bb-Lg" name="operator&lt;&lt;" method="_GQ_KIFIKEd-OfYmxqPWG5g">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_4CFU0DRJEdyG-pUz-bb-Lg" name="ui">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DlV8oDRKEdyG-pUz-bb-Lg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DlfGkDRKEdyG-pUz-bb-Lg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_g3MtIDRKEdyG-pUz-bb-Lg" name="ret" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iEiC8DRKEdyG-pUz-bb-Lg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iErz8DRKEdyG-pUz-bb-Lg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_yJ0g8DRJEdyG-pUz-bb-Lg" name="operator&lt;&lt;" method="_HzZYEFIKEd-OfYmxqPWG5g">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_4bQp0DRJEdyG-pUz-bb-Lg" name="ul">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_a1wZUByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_E3mOsDRKEdyG-pUz-bb-Lg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_E3vYoDRKEdyG-pUz-bb-Lg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ienW4DRKEdyG-pUz-bb-Lg" name="ret" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jwkuADRKEdyG-pUz-bb-Lg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jwkuATRKEdyG-pUz-bb-Lg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_yQhl4DRJEdyG-pUz-bb-Lg" name="operator&lt;&lt;" method="_f_XoEDRcEdyDwaY3iUxzzA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_4vYfsDRJEdyG-pUz-bb-Lg" name="d">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GRmukDRKEdyG-pUz-bb-Lg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GRv4gDRKEdyG-pUz-bb-Lg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_kFSZwDRKEdyG-pUz-bb-Lg" name="ret" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lv1QADRKEdyG-pUz-bb-Lg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lv-Z8DRKEdyG-pUz-bb-Lg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_yXOq0DRJEdyG-pUz-bb-Lg" name="operator&lt;&lt;" method="_KuP_oFIKEd-OfYmxqPWG5g">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_5GexEDRJEdyG-pUz-bb-Lg" name="f">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7W3wkBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HV2Z0DRKEdyG-pUz-bb-Lg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HWAK0DRKEdyG-pUz-bb-Lg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_mGLTcDRKEdyG-pUz-bb-Lg" name="ret" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nVKPEDRKEdyG-pUz-bb-Lg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nVUAEDRKEdyG-pUz-bb-Lg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_yjTX8DRJEdyG-pUz-bb-Lg" name="operator&lt;&lt;" method="_MhuvcFIKEd-OfYmxqPWG5g">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_5al_4DRJEdyG-pUz-bb-Lg" name="bStr" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Kw5kYDRKEdyG-pUz-bb-Lg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KxDVYDRKEdyG-pUz-bb-Lg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_nv1Y4DRKEdyG-pUz-bb-Lg" name="ret" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_pIf08DRKEdyG-pUz-bb-Lg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_pIo-4DRKEdyG-pUz-bb-Lg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_8OaV4DRKEdyG-pUz-bb-Lg" name="concat" method="_voCAMDR2EdypGbuyt3_DaA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="__jzkYDRKEdyG-pUz-bb-Lg" name="constCharP">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A8eAcDRLEdyG-pUz-bb-Lg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A8eAcTRLEdyG-pUz-bb-Lg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="__nOr0DRKEdyG-pUz-bb-Lg" name="size">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ChWTkDRLEdyG-pUz-bb-Lg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ChWTkTRLEdyG-pUz-bb-Lg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Z9YpwDRXEdy1p4IpsoZYqA" name="operator>>" method="_MNjhEDR1EdypGbuyt3_DaA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Fgf5YDRYEdy1p4IpsoZYqA" annotatedElement="_Z9YpwDRXEdy1p4IpsoZYqA">
+ <body>Scan string to retrieve one of the following types. If the scanning&#xD;
+was successfull (see operation scanOk), the current scan position&#xD;
+is set just behind the input consumed. Therefore, a successive&#xD;
+invocation of this operator will continue scanning at the new&#xD;
+position (see get/setPosition)</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_giLzgDRXEdy1p4IpsoZYqA" name="param_0" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j4dy0DRXEdy1p4IpsoZYqA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j4dy0TRXEdy1p4IpsoZYqA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_zmS9oDRXEdy1p4IpsoZYqA" name="c" direction="inout">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3lQtkDRXEdy1p4IpsoZYqA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3lZ3gDRXEdy1p4IpsoZYqA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_aIaOADRXEdy1p4IpsoZYqA" name="operator>>" method="_P0Yd0DR1EdypGbuyt3_DaA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_kTb3kDRXEdy1p4IpsoZYqA" name="param_0" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_l2-G4DRXEdy1p4IpsoZYqA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_l3H34DRXEdy1p4IpsoZYqA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_z-lh0DRXEdy1p4IpsoZYqA" name="d" direction="inout">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_5dzjkDRXEdy1p4IpsoZYqA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_5d9UkDRXEdy1p4IpsoZYqA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_aOg2ADRXEdy1p4IpsoZYqA" name="operator>>" method="_WQ2yADR1EdypGbuyt3_DaA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_m0EoUDRXEdy1p4IpsoZYqA" name="param_0" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oXm3oDRXEdy1p4IpsoZYqA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oXwooDRXEdy1p4IpsoZYqA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_0RNi4DRXEdy1p4IpsoZYqA" name="f" direction="inout">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7W3wkBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6lMCYDRXEdy1p4IpsoZYqA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6lVMUDRXEdy1p4IpsoZYqA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_aU7AADRXEdy1p4IpsoZYqA" name="operator>>" method="_ZbW_IDR1EdypGbuyt3_DaA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_orbLgDRXEdy1p4IpsoZYqA" name="param_0" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_p0cpEDRXEdy1p4IpsoZYqA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_p0lzADRXEdy1p4IpsoZYqA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_0ku70DRXEdy1p4IpsoZYqA" name="i" direction="inout">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8WlHgDRXEdy1p4IpsoZYqA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8Wu4gDRXEdy1p4IpsoZYqA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_aavUIDRXEdy1p4IpsoZYqA" name="operator>>" method="_ct68EDR1EdypGbuyt3_DaA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_qoJW4DRXEdy1p4IpsoZYqA" name="param_0" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_s9docDRXEdy1p4IpsoZYqA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_s9myYDRXEdy1p4IpsoZYqA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_02A5EDRXEdy1p4IpsoZYqA" name="l" direction="inout">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8heigBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9rXwMDRXEdy1p4IpsoZYqA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9rhhMDRXEdy1p4IpsoZYqA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_ag_tIDRXEdy1p4IpsoZYqA" name="operator>>" method="_fS4MIDR1EdypGbuyt3_DaA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_tL6UIDRXEdy1p4IpsoZYqA" name="param_0" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_uzCC8DRXEdy1p4IpsoZYqA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_uzLz8DRXEdy1p4IpsoZYqA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_AArasDRYEdy1p4IpsoZYqA" name="ui" direction="inout">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bv2SQDRYEdy1p4IpsoZYqA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bv_cMDRYEdy1p4IpsoZYqA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_amWuQDRXEdy1p4IpsoZYqA" name="operator>>" method="_h7kFoDR1EdypGbuyt3_DaA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_vCh3gDRXEdy1p4IpsoZYqA" name="param_0" type="_WXH_4DO2EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wWuDQDRXEdy1p4IpsoZYqA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wW30QDRXEdy1p4IpsoZYqA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_AR0OADRYEdy1p4IpsoZYqA" name="ul" direction="inout">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_a1wZUByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C-X64DRYEdy1p4IpsoZYqA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C-X64TRYEdy1p4IpsoZYqA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_ZkKxIDRaEdy1p4IpsoZYqA" name="operator[]" method="_1R2jsDRbEdyDwaY3iUxzzA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_iOzmADRaEdy1p4IpsoZYqA" annotatedElement="_ZkKxIDRaEdy1p4IpsoZYqA">
+ <body>the standard index operator</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_dPnIIDRaEdy1p4IpsoZYqA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eF2zoDRaEdy1p4IpsoZYqA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eF2zoTRaEdy1p4IpsoZYqA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_eSrHoDRaEdy1p4IpsoZYqA" name="index">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_f2XH8DRaEdy1p4IpsoZYqA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_f2gR4DRaEdy1p4IpsoZYqA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_O59-oDRiEdyDwaY3iUxzzA" name="scanOk" method="_yq6mkDRvEdypGbuyt3_DaA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_pkVIcDRiEdyDwaY3iUxzzA" annotatedElement="_O59-oDRiEdyDwaY3iUxzzA">
+ <body>Indicates, whether the last scan (via operator >>) was successfull</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_SExtwDRiEdyDwaY3iUxzzA" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kcWiADRiEdyDwaY3iUxzzA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kcfr8DRiEdyDwaY3iUxzzA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_tMpS8DRiEdyDwaY3iUxzzA" name="setBase" method="_pc0fUDRvEdypGbuyt3_DaA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="___ML8DRiEdyDwaY3iUxzzA" annotatedElement="_tMpS8DRiEdyDwaY3iUxzzA">
+ <body>Set numerical base for the scanning of longs and integer)&#xD;
+(the default value 0 indicates base 10)</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_vozzYDRiEdyDwaY3iUxzzA" name="newBase">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xX-q8DRiEdyDwaY3iUxzzA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYH04DRiEdyDwaY3iUxzzA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_1-uzoDRiEdyDwaY3iUxzzA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3AcIQDRiEdyDwaY3iUxzzA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3AcIQTRiEdyDwaY3iUxzzA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_FX25wDRjEdyDwaY3iUxzzA" name="getPosition" method="_udWZ8DRvEdypGbuyt3_DaA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_HgW3UDRjEdyDwaY3iUxzzA" annotatedElement="_FX25wDRjEdyDwaY3iUxzzA">
+ <body>Get the current position within the string for scanning&#xD;
+(via operator >>).</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Jbvl8DRjEdyDwaY3iUxzzA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Kj3roDRjEdyDwaY3iUxzzA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Kj3roTRjEdyDwaY3iUxzzA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_UA3KgDRjEdyDwaY3iUxzzA" name="setPosition" method="_-lTQwDR2EdypGbuyt3_DaA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_ba4FADRjEdyDwaY3iUxzzA" annotatedElement="_UA3KgDRjEdyDwaY3iUxzzA">
+ <body>Set the current position within the string for scanning&#xD;
+(via operator >>).</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_V4YFwDRjEdyDwaY3iUxzzA" name="pos">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_hifjgDRjEdyDwaY3iUxzzA" name="operator==" method="_WgIy4DRvEdypGbuyt3_DaA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_rLhd0DRkEdypGbuyt3_DaA" annotatedElement="_hifjgDRjEdyDwaY3iUxzzA">
+ <body>comparison operators with the obvious semantics ...</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ogWGcDRjEdyDwaY3iUxzzA" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3Y1ksDRjEdypGbuyt3_DaA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3ZJGsDRjEdypGbuyt3_DaA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_oiusEDRjEdyDwaY3iUxzzA" name="constCharP">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_hujpkDRjEdyDwaY3iUxzzA" name="operator==" method="_ZW-dIDRvEdypGbuyt3_DaA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_o2GUADRjEdyDwaY3iUxzzA" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_o4x0kDRjEdyDwaY3iUxzzA" name="bString" type="_WXH_4DO2EdyG-pUz-bb-Lg"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_h3DeQDRjEdyDwaY3iUxzzA" name="operator!=" method="_bhtPUDRvEdypGbuyt3_DaA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_pJBQADRjEdyDwaY3iUxzzA" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_pLG6sDRjEdyDwaY3iUxzzA" name="consCharP">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_iQYkQDRjEdyDwaY3iUxzzA" name="operator!=" method="_dpdmADRvEdypGbuyt3_DaA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_pfX6gDRjEdyDwaY3iUxzzA" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_pg3IQDRjEdyDwaY3iUxzzA" name="bString" type="_WXH_4DO2EdyG-pUz-bb-Lg"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_hQh-4DRlEdypGbuyt3_DaA" name="data" method="_hWi7wDRvEdypGbuyt3_DaA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_tSyP0DRlEdypGbuyt3_DaA" annotatedElement="_hQh-4DRlEdypGbuyt3_DaA">
+ <body>Provide access to the memory location of the string. Use with care,&#xD;
+since it allows a caller to corrupt the string contents.</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_jgxjMDRlEdypGbuyt3_DaA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_knjlEDRlEdypGbuyt3_DaA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kntWEDRlEdypGbuyt3_DaA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_w9e_8DRlEdypGbuyt3_DaA" name="getSeparator" method="_18IfsDRvEdypGbuyt3_DaA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_38-hoDRlEdypGbuyt3_DaA" annotatedElement="_w9e_8DRlEdypGbuyt3_DaA">
+ <body>get the string containing separator characters that are used by&#xD;
+getWord and during the scanning of characters.</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_yuSPMDRlEdypGbuyt3_DaA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_BSrFsDRmEdypGbuyt3_DaA" name="setSeparator" method="_44MBIDRvEdypGbuyt3_DaA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_DrjooDRmEdypGbuyt3_DaA" annotatedElement="_BSrFsDRmEdypGbuyt3_DaA">
+ <body>set the string containing separator characters. Only the address of&#xD;
+the passed string is stored (no copy is made). Therefore, the passed&#xD;
+string may not be a local variable that might run out of scope.</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_GkyfkDRmEdypGbuyt3_DaA" name="separator">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_QpuIMDRmEdypGbuyt3_DaA" name="getWord" method="__1PgkDR0EdypGbuyt3_DaA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_TmEkkDRmEdypGbuyt3_DaA" annotatedElement="_QpuIMDRmEdypGbuyt3_DaA">
+ <body>retrieve a pointer to a part of the character string</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ws2vUDRmEdypGbuyt3_DaA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_WwIs0DRmEdypGbuyt3_DaA" name="buff" direction="inout">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Wzj0QDRmEdypGbuyt3_DaA" name="sizeBuff">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_urQpMDRmEdypGbuyt3_DaA" name="size" method="_SRhdYDRvEdypGbuyt3_DaA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_ydaFIDRmEdypGbuyt3_DaA" annotatedElement="_urQpMDRmEdypGbuyt3_DaA">
+ <body>returns the size of the allocated memory (i.e. the maximum length&#xD;
+of the string)</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_0abygDRmEdypGbuyt3_DaA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_AJnWcDRnEdypGbuyt3_DaA" name="length" method="_jpxioDRvEdypGbuyt3_DaA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_IX8CwDRnEdypGbuyt3_DaA" annotatedElement="_AJnWcDRnEdypGbuyt3_DaA">
+ <body>returns the length of the string</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_KOi_EDRnEdypGbuyt3_DaA" name="param_0" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_ZakdUDRnEdypGbuyt3_DaA" name="commonInit" visibility="protected" method="_4mVX8DR2EdypGbuyt3_DaA"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_d6UmIDRnEdypGbuyt3_DaA" name="concat" visibility="protected" method="_paT5sDR2EdypGbuyt3_DaA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gVb9sDRnEdypGbuyt3_DaA" annotatedElement="_d6UmIDRnEdypGbuyt3_DaA">
+ <body>internal function that appends (concatenates) a string to the&#xD;
+character table</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_leUjEDRnEdypGbuyt3_DaA" name="constCharP">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_tamdIDRnEdypGbuyt3_DaA" name="concat" visibility="protected" method="_0KdCgDR2EdypGbuyt3_DaA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_x-EoUDRnEdypGbuyt3_DaA" name="ch">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_yC_kkDRnEdypGbuyt3_DaA" name="nChar">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Fqa9QDUPEdy0feurbW0fyQ" name="Print">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_4rbvkDUUEdyDReAOQiyvOg" name="m_shown" visibility="protected" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_OTe2EDUVEdyDReAOQiyvOg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_OToAADUVEdyDReAOQiyvOg" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_7ahzEDUUEdyDReAOQiyvOg" name="m_initFlag" visibility="protected" isStatic="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_7aq9ADUUEdyDReAOQiyvOg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_7aq9ATUUEdyDReAOQiyvOg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_td1uoBtaEeGTrd3FEQeyRQ" name=""/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_sKD1gDUbEdyDReAOQiyvOg" name="m_mark" visibility="protected" type="_sQ1JADO0EdyG-pUz-bb-Lg" isUnique="false" association="_sJKdoDUbEdyDReAOQiyvOg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_m_7nEDUoEdyDReAOQiyvOg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_m_7nETUoEdyDReAOQiyvOg" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_vBIdYDUoEdyDReAOQiyvOg" name="m_head" visibility="protected" isStatic="true" type="_sQ1JADO0EdyG-pUz-bb-Lg" isUnique="false" association="_vA-sYDUoEdyDReAOQiyvOg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_05_HIDUoEdyDReAOQiyvOg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_06I4IDUoEdyDReAOQiyvOg" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="__XEKATUoEdyDReAOQiyvOg" name="begin" visibility="protected" type="_1vnXoDO0EdyG-pUz-bb-Lg" isUnique="false" association="__XEKADUoEdyDReAOQiyvOg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DPxg8DUpEdyDReAOQiyvOg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DPxg8TUpEdyDReAOQiyvOg" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_E6BcQDUpEdyDReAOQiyvOg" name="middle" visibility="protected" type="_3W43cDO0EdyG-pUz-bb-Lg" isUnique="false" association="_E53rQDUpEdyDReAOQiyvOg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ism9EDUpEdyDReAOQiyvOg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IswuEDUpEdyDReAOQiyvOg" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_cnB0MDUVEdyDReAOQiyvOg" name="getMiddle" specification="_T-5BEDUSEdy0feurbW0fyQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_PD--ECBbEeOMKsPXBVC0DA" name="param_0" type="_3W43cDO0EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PEfUYCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PEq6kCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return middle;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_fS_EIDUVEdyDReAOQiyvOg" name="getMiddleRef" specification="_WR0tADUSEdy0feurbW0fyQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_PFCG8CBbEeOMKsPXBVC0DA" name="param_0" type="_3W43cDO0EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PFjrYCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PFuqgCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return middle;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_iP79cDUVEdyDReAOQiyvOg" name="setMark" specification="_MvhlcDUUEdyDReAOQiyvOg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_PGGd8CBbEeOMKsPXBVC0DA" name="mark" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PGoCYCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PGzBgCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>m_mark = mark;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_ma0pgDUVEdyDReAOQiyvOg" name="operator=" specification="_X5-9oDUSEdy0feurbW0fyQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_PHTX0CBbEeOMKsPXBVC0DA" name="param_0" type="_Fqa9QDUPEdy0feurbW0fyQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PH0VMCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PH_UUCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_PIRoMCBbEeOMKsPXBVC0DA" name="str" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PIylkCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PI9ksCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>middle = str;&#xD;
+return *this;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_pFvXoDUVEdyDReAOQiyvOg" name="operator=" specification="_Y7GcYDUSEdy0feurbW0fyQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_PJcs4CBbEeOMKsPXBVC0DA" name="param_0" type="_Fqa9QDUPEdy0feurbW0fyQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PJ9DMCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PKICUCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_PKaWMCBbEeOMKsPXBVC0DA" name="ccp">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PK7TkCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PLGSsCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>middle = ccp;&#xD;
+return *this;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_trmIcDUVEdyDReAOQiyvOg" name="operator&lt;&lt;" specification="_a43woDUSEdy0feurbW0fyQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_PLrhgCBbEeOMKsPXBVC0DA" name="ret" type="_Fqa9QDUPEdy0feurbW0fyQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PMSlgCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PMdkoCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_PMwfkCBbEeOMKsPXBVC0DA" name="str" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PNRc8CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PNdDICBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>middle &lt;&lt; str;&#xD;
+return *this;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_2QapMDUVEdyDReAOQiyvOg" name="operator&lt;&lt;" specification="_bfnnkDUSEdy0feurbW0fyQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_PN8yYCBbEeOMKsPXBVC0DA" name="ret" type="_Fqa9QDUPEdy0feurbW0fyQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_POdvwCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_POpV8CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_PO7p0CBbEeOMKsPXBVC0DA" name="ccp">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PPcnMCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PPnmUCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>middle &lt;&lt; ccp;&#xD;
+return *this;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_ZbDgEDUYEdyDReAOQiyvOg" name="Print" specification="_ZgB1wDUPEdy0feurbW0fyQ">
+ <language>C/C++</language>
+ <body>&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_doUxwDUYEdyDReAOQiyvOg" name="setHead" specification="_BdhNEDUREdy0feurbW0fyQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_PQSUsCBbEeOMKsPXBVC0DA" name="ccp">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PQzSECBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PQ-RMCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>m_initFlag = 1;&#xD;
+m_head = ccp;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_hSR7ADUYEdyDReAOQiyvOg" name="getHead" specification="_GLk3oDUREdy0feurbW0fyQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_PRkHECBbEeOMKsPXBVC0DA" name="param_0" type="_sQ1JADO0EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PSFEcCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PSQDkCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>return m_head;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_mhtNQDUYEdyDReAOQiyvOg" name="printErr" specification="_OQgXYDUREdy0feurbW0fyQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_PSoeECBbEeOMKsPXBVC0DA" name="ccp">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PTKpkCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PTVosCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>BString500 bstr;&#xD;
+bstr &lt;&lt; OS_AL::ProcessingResources::Thread::getName () &lt;&lt; &quot; &quot;;&#xD;
+bstr &lt;&lt; OS_AL::Time::TimeVal::current ().ticks () &lt;&lt; &quot; &quot;;&#xD;
+&#xD;
+if (m_initFlag) {&#xD;
+ bstr &lt;&lt; m_head;&#xD;
+}&#xD;
+bstr &lt;&lt; ErrMark &lt;&lt; ccp;&#xD;
+if (errno)&#xD;
+ bstr &lt;&lt; &quot; - error &quot; &lt;&lt; errno&#xD;
+ &lt;&lt; &quot; (&quot; &lt;&lt; strerror (errno) &lt;&lt; &quot;)&quot;;&#xD;
+cout &lt;&lt; bstr.data () &lt;&lt; endl;&#xD;
+errno = 0;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_qOoyADUYEdyDReAOQiyvOg" name="printErr" specification="_QP6qYDUREdy0feurbW0fyQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_PUAXECBbEeOMKsPXBVC0DA" name="file">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PUhUcCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PUsTkCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_PVMC0CBbEeOMKsPXBVC0DA" name="line">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PVsZICBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PV3YQCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_PWCXYCBbEeOMKsPXBVC0DA" name="charP">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PWjUwCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PWuT4CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>BString500 str (file);&#xD;
+str &lt;&lt; line &lt;&lt; charP;&#xD;
+printErr (str.data ());&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_S02ysDUZEdyDReAOQiyvOg" name="print" specification="_OMqR0DUUEdyDReAOQiyvOg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_PXTisCBbEeOMKsPXBVC0DA" name="mark">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PXz5ACBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PX_fMCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_PYenYCBbEeOMKsPXBVC0DA" name="log">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PZAL0CBbEeOMKsPXBVC0DA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PZLK8CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>BString500 prefix;&#xD;
+// prefix &lt;&lt; &quot;ID: &quot; &lt;&lt; (void*) Thread::getId () &lt;&lt; &quot; &quot;;&#xD;
+prefix &lt;&lt; OS_AL::ProcessingResources::Thread::getName () &lt;&lt; &quot; &quot;;&#xD;
+prefix &lt;&lt; OS_AL::Time::TimeVal::current ().ticks () &lt;&lt; &quot; &quot;;&#xD;
+if (m_initFlag) {&#xD;
+ prefix &lt;&lt; m_head;&#xD;
+}&#xD;
+prefix &lt;&lt; mark &lt;&lt; begin;&#xD;
+&#xD;
+if (log) {&#xD;
+ // messages with file stamp&#xD;
+ clog &lt;&lt; prefix.data () &lt;&lt; middle.data() &lt;&lt; endl;&#xD;
+}&#xD;
+else {&#xD;
+ cout &lt;&lt; prefix.data () &lt;&lt; middle.data() &lt;&lt; endl;&#xD;
+}&#xD;
+m_shown = 1;&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_blcekDUZEdyDReAOQiyvOg" name="clean" specification="_Pfz7wDUUEdyDReAOQiyvOg">
+ <language>C/C++</language>
+ <body>middle = &quot;&quot;;&#xD;
+m_shown = 1; // allows to avoid showing empty instances&#xD;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Tqni4FlLEd-9TNLvplUFDQ" name="operator&lt;&lt;" specification="_GTV_wFlLEd-9TNLvplUFDQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_PZhJMCBbEeOMKsPXBVC0DA" name="ret" type="_Fqa9QDUPEdy0feurbW0fyQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PaCGkCBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PaNFsCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_PaYE0CBbEeOMKsPXBVC0DA" name="ch">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Pa_I0CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PbKH8CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>middle &lt;&lt; ch;
+return *this;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_0pUYkFlLEd-9TNLvplUFDQ" name="operator&lt;&lt;" specification="_VeBaMFlLEd-9TNLvplUFDQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_PbamoCBbEeOMKsPXBVC0DA" name="ret" type="_Fqa9QDUPEdy0feurbW0fyQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Pb8LECBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PcHKMCBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_PcSwYCBbEeOMKsPXBVC0DA" name="dummy" type="_ITWTMFlMEd-9TNLvplUFDQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Pc0U0CBbEeOMKsPXBVC0DA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Pc_T8CBbEeOMKsPXBVC0DA" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>print (StdMark);
+clean ();
+return *this;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_KaqE8CZsEeGP95nTW02SMA" name="Print" specification="_6Db-4CZrEeGP95nTW02SMA">
+ <language>C/C++</language>
+ <body>if (m_shown == 0) {
+ print (m_mark.data ()); // print residual middle text
+ printErr (&quot;Instance of print destroyed, before it was shown (missing \&quot;showI\&quot;). Stored text is: &quot;);
+ print (&quot; &lt;&lt;&quot;);
+#if StopIfNeverShown == 1
+ exit(1);
+#endif
+}</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_ZgB1wDUPEdy0feurbW0fyQ" name="Print" method="_ZbDgEDUYEdyDReAOQiyvOg"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_BdhNEDUREdy0feurbW0fyQ" name="setHead" isStatic="true" method="_doUxwDUYEdyDReAOQiyvOg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_VRVV0DUREdy0feurbW0fyQ" name="ccp">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_GLk3oDUREdy0feurbW0fyQ" name="getHead" isStatic="true" method="_hSR7ADUYEdyDReAOQiyvOg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_WjSs8DUREdy0feurbW0fyQ" name="param_0" type="_sQ1JADO0EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XkHQwDUREdy0feurbW0fyQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XkRBwDUREdy0feurbW0fyQ" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_OQgXYDUREdy0feurbW0fyQ" name="printErr" isStatic="true" method="_mhtNQDUYEdyDReAOQiyvOg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_YfIHgDUREdy0feurbW0fyQ" name="ccp">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_QP6qYDUREdy0feurbW0fyQ" name="printErr" isStatic="true" method="_qOoyADUYEdyDReAOQiyvOg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Y6spMDUREdy0feurbW0fyQ" name="file">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Y8oi4DUREdy0feurbW0fyQ" name="line">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Y-RhoDUREdy0feurbW0fyQ" name="charP">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_T-5BEDUSEdy0feurbW0fyQ" name="getMiddle" method="_cnB0MDUVEdyDReAOQiyvOg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_e2yXsDUSEdy0feurbW0fyQ" name="param_0" type="_3W43cDO0EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_f6TDIDUSEdy0feurbW0fyQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_f6TDITUSEdy0feurbW0fyQ" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_WR0tADUSEdy0feurbW0fyQ" name="getMiddleRef" method="_fS_EIDUVEdyDReAOQiyvOg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_gUN_ADUSEdy0feurbW0fyQ" name="param_0" type="_3W43cDO0EdyG-pUz-bb-Lg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_haQaADUSEdy0feurbW0fyQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_haaLADUSEdy0feurbW0fyQ" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_X5-9oDUSEdy0feurbW0fyQ" name="operator=" method="_ma0pgDUVEdyDReAOQiyvOg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_iOHf4DUSEdy0feurbW0fyQ" name="param_0" type="_Fqa9QDUPEdy0feurbW0fyQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kCMsoDUSEdy0feurbW0fyQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kCWdoDUSEdy0feurbW0fyQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_iUE98DUSEdy0feurbW0fyQ" name="str" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VCzfsDUTEdyDReAOQiyvOg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VDGaoDUTEdyDReAOQiyvOg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Y7GcYDUSEdy0feurbW0fyQ" name="operator=" method="_pFvXoDUVEdyDReAOQiyvOg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ylPfUDUSEdyDReAOQiyvOg" name="param_0" type="_Fqa9QDUPEdy0feurbW0fyQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zk3wUDUSEdyDReAOQiyvOg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zlBhUDUSEdyDReAOQiyvOg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ypj-oDUSEdyDReAOQiyvOg" name="ccp">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_a43woDUSEdy0feurbW0fyQ" name="operator&lt;&lt;" method="_trmIcDUVEdyDReAOQiyvOg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_z9dPcDUSEdyDReAOQiyvOg" name="ret" type="_Fqa9QDUPEdy0feurbW0fyQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_1J50cDUSEdyDReAOQiyvOg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_1KDlcDUSEdyDReAOQiyvOg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_0BVC0DUSEdyDReAOQiyvOg" name="str" type="_WXH_4DO2EdyG-pUz-bb-Lg"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_bfnnkDUSEdy0feurbW0fyQ" name="operator&lt;&lt;" method="_2QapMDUVEdyDReAOQiyvOg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_1f888DUSEdyDReAOQiyvOg" name="ret" type="_Fqa9QDUPEdy0feurbW0fyQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_5XBVIDUSEdyDReAOQiyvOg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_5XLGIDUSEdyDReAOQiyvOg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_3iCwgDUSEdyDReAOQiyvOg" name="ccp">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_MvhlcDUUEdyDReAOQiyvOg" name="setMark" method="_iP79cDUVEdyDReAOQiyvOg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Q3b2ADUUEdyDReAOQiyvOg" name="mark" type="_WXH_4DO2EdyG-pUz-bb-Lg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ZNgJEDUUEdyDReAOQiyvOg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ZNgJETUUEdyDReAOQiyvOg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_OMqR0DUUEdyDReAOQiyvOg" name="print" method="_S02ysDUZEdyDReAOQiyvOg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_VLaMoDUUEdyDReAOQiyvOg" name="mark">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dCxxgDUUEdyDReAOQiyvOg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dC7igDUUEdyDReAOQiyvOg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_VQVI4DUUEdyDReAOQiyvOg" name="log">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jiiDMDUUEdyDReAOQiyvOg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jirNIDUUEdyDReAOQiyvOg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_KBAQoFe3EeOtBoURfZexXw"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Pfz7wDUUEdyDReAOQiyvOg" name="clean" method="_blcekDUZEdyDReAOQiyvOg"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_GTV_wFlLEd-9TNLvplUFDQ" name="operator&lt;&lt;" method="_Tqni4FlLEd-9TNLvplUFDQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_GTWm0FlLEd-9TNLvplUFDQ" name="ret" type="_Fqa9QDUPEdy0feurbW0fyQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GTWm0llLEd-9TNLvplUFDQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GTWm0VlLEd-9TNLvplUFDQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_GTWm1FlLEd-9TNLvplUFDQ" name="ch">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_VeBaMFlLEd-9TNLvplUFDQ" name="operator&lt;&lt;" method="_0pUYkFlLEd-9TNLvplUFDQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_VeCBQFlLEd-9TNLvplUFDQ" name="ret" type="_Fqa9QDUPEdy0feurbW0fyQ" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VeCBQllLEd-9TNLvplUFDQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VeCBQVlLEd-9TNLvplUFDQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_VeCBRFlLEd-9TNLvplUFDQ" name="dummy" type="_ITWTMFlMEd-9TNLvplUFDQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_6Db-4CZrEeGP95nTW02SMA" name="Print" method="_KaqE8CZsEeGP95nTW02SMA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_sJKdoDUbEdyDReAOQiyvOg" name="Association_Print_BString50" memberEnd="_sKD1gDUbEdyDReAOQiyvOg _sKf6YDUbEdyDReAOQiyvOg">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_sKf6YDUbEdyDReAOQiyvOg" name="print" type="_Fqa9QDUPEdy0feurbW0fyQ" isUnique="false" association="_sJKdoDUbEdyDReAOQiyvOg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sK8mUTUbEdyDReAOQiyvOg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sK8mUDUbEdyDReAOQiyvOg" value="*"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_vA-sYDUoEdyDReAOQiyvOg" name="Association_Print_BString50" memberEnd="_vBIdYDUoEdyDReAOQiyvOg _vBbYUzUoEdyDReAOQiyvOg">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_vBbYUzUoEdyDReAOQiyvOg" name="print" type="_Fqa9QDUPEdy0feurbW0fyQ" isUnique="false" association="_vA-sYDUoEdyDReAOQiyvOg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_vBu6UjUoEdyDReAOQiyvOg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_vBu6UTUoEdyDReAOQiyvOg" value="*"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="__XEKADUoEdyDReAOQiyvOg" name="Association_Print_BString500" memberEnd="__XEKATUoEdyDReAOQiyvOg __XXE8zUoEdyDReAOQiyvOg">
+ <ownedEnd xmi:type="uml:Property" xmi:id="__XXE8zUoEdyDReAOQiyvOg" name="print" type="_Fqa9QDUPEdy0feurbW0fyQ" isUnique="false" association="__XEKADUoEdyDReAOQiyvOg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__Xqm8jUoEdyDReAOQiyvOg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__Xqm8TUoEdyDReAOQiyvOg" value="*"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_E53rQDUpEdyDReAOQiyvOg" name="Association_Print_BString2000" memberEnd="_E6BcQDUpEdyDReAOQiyvOg _E6UXMzUpEdyDReAOQiyvOg">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_E6UXMzUpEdyDReAOQiyvOg" name="print" type="_Fqa9QDUPEdy0feurbW0fyQ" isUnique="false" association="_E53rQDUpEdyDReAOQiyvOg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_E6nSITUpEdyDReAOQiyvOg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_E6nSIDUpEdyDReAOQiyvOg" value="*"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_dQB60DVKEdyF2KWMAqLQBg" name="FromPrinttoBString50" client="_Fqa9QDUPEdy0feurbW0fyQ" supplier="_sQ1JADO0EdyG-pUz-bb-Lg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_d01RADVKEdyF2KWMAqLQBg" name="FromPrinttoBString500" client="_Fqa9QDUPEdy0feurbW0fyQ" supplier="_1vnXoDO0EdyG-pUz-bb-Lg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_eJ_osDVKEdyF2KWMAqLQBg" name="FromPrinttoBString2000" client="_Fqa9QDUPEdy0feurbW0fyQ" supplier="_3W43cDO0EdyG-pUz-bb-Lg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_Ie1FEFbIEd-9TNLvplUFDQ" name="FromBStringtoTrace" client="_WXH_4DO2EdyG-pUz-bb-Lg" supplier="_1DM54DxBEdyfAeav5abbAw"/>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_WP12gFbLEd-9TNLvplUFDQ" name="FromBStringtoThread" client="_WXH_4DO2EdyG-pUz-bb-Lg" supplier="_-HeCsDj_Edy0Rd6V_tf1-Q"/>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_aZ7RUFbLEd-9TNLvplUFDQ" name="FromBStringtoTimeVal" client="_WXH_4DO2EdyG-pUz-bb-Lg" supplier="_FuKEEDj8Edy0Rd6V_tf1-Q"/>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_ITWTMFlMEd-9TNLvplUFDQ" name="Show">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_VE56IFlMEd-9TNLvplUFDQ" annotatedElement="_ITWTMFlMEd-9TNLvplUFDQ">
+ <body>Predefined types and variables to provoke output). The (dummy) types are
+used to overload the &lt;&lt; operator and statically choose the associated
+method if an instance (declared below) is passed.
+Show: output the whole line immediately and reset the output string</body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_E9NSEPVxEd-tirPvq3IDdA" name="FromBStringToProDesc" client="_WXH_4DO2EdyG-pUz-bb-Lg" supplier="_oSgIME_BEdy2tpS719xBwQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_0TXx4DUOEdy0feurbW0fyQ" name="BaseTypes"/>
+ <packagedElement xmi:type="uml:Package" xmi:id="_nPvEoNqEEeKrRY-H1kHnNA" name="pthread">
+ <packagedElement xmi:type="uml:Class" xmi:id="_4lsq4NqEEeKrRY-H1kHnNA" name="pthread"/>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_ROTQYi-OEdySSa8YESkO2w">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ROTQYy-OEdySSa8YESkO2w" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_8kttUDRbEdyDwaY3iUxzzA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8k23QDRbEdyDwaY3iUxzzA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/C_Cpp/1#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_TRZrgCgpEeC5Ga5kAgjl0g">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Tb2A8CgpEeC5Ga5kAgjl0g" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/FCM/1#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://FCM_PROFILES/FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
+ </profileApplication>
+ </uml:Model>
+ <standard:Create xmi:id="_NafZoDRGEdyG-pUz-bb-Lg" base_BehavioralFeature="_J60NwDRGEdyG-pUz-bb-Lg"/>
+ <standard:Create xmi:id="_oOiq8DRGEdyG-pUz-bb-Lg" base_BehavioralFeature="_X1eKwDRGEdyG-pUz-bb-Lg"/>
+ <standard:Create xmi:id="_G5ptYDRHEdyG-pUz-bb-Lg" base_BehavioralFeature="_E8CKIDRHEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Ptr xmi:id="_SJ2X0DReEdyDwaY3iUxzzA" base_parameter="_ajL4wDRHEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Const xmi:id="_Zx35IDReEdyDwaY3iUxzzA" base_parameter="_ajL4wDRHEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Const xmi:id="_kIr78DReEdyDwaY3iUxzzA" base_parameter="_vKHggDRHEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Ptr xmi:id="_lzYjMDReEdyDwaY3iUxzzA" base_parameter="_vKHggDRHEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Const xmi:id="_tsGL4DReEdyDwaY3iUxzzA" base_parameter="_2Do9EDRHEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Ref xmi:id="_uNnkkDReEdyDwaY3iUxzzA" base_parameter="_2Do9EDRHEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Ptr xmi:id="_yMcKkDReEdyDwaY3iUxzzA" base_parameter="_DEe9MDRIEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Const xmi:id="_01kI8DReEdyDwaY3iUxzzA" base_parameter="_RcNQsDRIEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Ptr xmi:id="_01kI8TReEdyDwaY3iUxzzA" base_parameter="_RcNQsDRIEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Const xmi:id="__JQmUDReEdyDwaY3iUxzzA" base_parameter="_nIuAcDRIEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Ref xmi:id="__JQmUTReEdyDwaY3iUxzzA" base_parameter="_nIuAcDRIEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Ptr xmi:id="_rTwmEDRfEdyDwaY3iUxzzA" base_parameter="_qg5nwDRJEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Ref xmi:id="_3ZclgDRfEdyDwaY3iUxzzA" base_parameter="_xw1XMDRfEdyDwaY3iUxzzA"/>
+ <C_Cpp:Const xmi:id="_7VlD4DRfEdyDwaY3iUxzzA" base_parameter="_2u7q4DRJEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Ptr xmi:id="_7VlD4TRfEdyDwaY3iUxzzA" base_parameter="_2u7q4DRJEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Ref xmi:id="_89vUgDRfEdyDwaY3iUxzzA" base_parameter="_XVuW4DRKEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Inline xmi:id="__3HVYDRfEdyDwaY3iUxzzA" base_operation="_nyaBMDRJEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Inline xmi:id="_Edj8EDRgEdyDwaY3iUxzzA" base_operation="_uTyqkDRJEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Ref xmi:id="_LxeOkDRgEdyDwaY3iUxzzA" base_parameter="_aL0aQDRKEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Inline xmi:id="_Mowb4DRgEdyDwaY3iUxzzA" base_operation="_xfysgDRJEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Ref xmi:id="_RhiIsDRgEdyDwaY3iUxzzA" base_parameter="_ctWi4DRKEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Inline xmi:id="_SlL-EDRgEdyDwaY3iUxzzA" base_operation="_xsnAgDRJEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Ref xmi:id="_ZGuYcDRgEdyDwaY3iUxzzA" base_parameter="_fMgF4DRKEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Ref xmi:id="_qDHBEDRgEdyDwaY3iUxzzA" base_parameter="_g3MtIDRKEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Ref xmi:id="_qqS84DRgEdyDwaY3iUxzzA" base_parameter="_ienW4DRKEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Ref xmi:id="_sKj1wDRgEdyDwaY3iUxzzA" base_parameter="_kFSZwDRKEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Ref xmi:id="_s5f_YDRgEdyDwaY3iUxzzA" base_parameter="_mGLTcDRKEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Ref xmi:id="_tkakoDRgEdyDwaY3iUxzzA" base_parameter="_nv1Y4DRKEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Inline xmi:id="_wIoN0DRgEdyDwaY3iUxzzA" base_operation="_x1P_IDRJEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Inline xmi:id="_w4T-UDRgEdyDwaY3iUxzzA" base_operation="_x8tSADRJEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Inline xmi:id="_yAu-8DRgEdyDwaY3iUxzzA" base_operation="_yJ0g8DRJEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Inline xmi:id="_yyqLIDRgEdyDwaY3iUxzzA" base_operation="_yQhl4DRJEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Inline xmi:id="_zc1JgDRgEdyDwaY3iUxzzA" base_operation="_yXOq0DRJEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Inline xmi:id="_0RuxMDRgEdyDwaY3iUxzzA" base_operation="_yjTX8DRJEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Const xmi:id="_50YhcDRgEdyDwaY3iUxzzA" base_parameter="_5al_4DRJEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Ref xmi:id="_50YhcTRgEdyDwaY3iUxzzA" base_parameter="_5al_4DRJEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Const xmi:id="_Gsk74DRhEdyDwaY3iUxzzA" base_parameter="__jzkYDRKEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Ptr xmi:id="_Gsk74TRhEdyDwaY3iUxzzA" base_parameter="__jzkYDRKEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Ref xmi:id="_OnOeQDRhEdyDwaY3iUxzzA" base_parameter="_t_JBgDRPEdy1p4IpsoZYqA"/>
+ <C_Cpp:Ref xmi:id="_QACrUDRhEdyDwaY3iUxzzA" base_parameter="_1yC9IDRPEdy1p4IpsoZYqA"/>
+ <C_Cpp:Const xmi:id="_RpGT0DRhEdyDwaY3iUxzzA" base_parameter="_132qMDRPEdy1p4IpsoZYqA"/>
+ <C_Cpp:Ref xmi:id="_RpGT0TRhEdyDwaY3iUxzzA" base_parameter="_132qMDRPEdy1p4IpsoZYqA"/>
+ <C_Cpp:Ref xmi:id="_ekucwDRhEdyDwaY3iUxzzA" base_parameter="_BTXrQDRQEdy1p4IpsoZYqA"/>
+ <C_Cpp:Ref xmi:id="_gJA6ADRhEdyDwaY3iUxzzA" base_parameter="_BWpowDRQEdy1p4IpsoZYqA"/>
+ <C_Cpp:Ref xmi:id="_hf4mUDRhEdyDwaY3iUxzzA" base_parameter="_BaOhMDRQEdy1p4IpsoZYqA"/>
+ <C_Cpp:Ref xmi:id="_oEaDQDRhEdyDwaY3iUxzzA" base_parameter="_giLzgDRXEdy1p4IpsoZYqA"/>
+ <C_Cpp:Ref xmi:id="_o1uygDRhEdyDwaY3iUxzzA" base_parameter="_zmS9oDRXEdy1p4IpsoZYqA"/>
+ <C_Cpp:Ref xmi:id="_pjnzQDRhEdyDwaY3iUxzzA" base_parameter="_kTb3kDRXEdy1p4IpsoZYqA"/>
+ <C_Cpp:Ref xmi:id="_qMwP0DRhEdyDwaY3iUxzzA" base_parameter="_z-lh0DRXEdy1p4IpsoZYqA"/>
+ <C_Cpp:Ref xmi:id="_q0iokDRhEdyDwaY3iUxzzA" base_parameter="_m0EoUDRXEdy1p4IpsoZYqA"/>
+ <C_Cpp:Ref xmi:id="_rdXjIDRhEdyDwaY3iUxzzA" base_parameter="_0RNi4DRXEdy1p4IpsoZYqA"/>
+ <C_Cpp:Ref xmi:id="_sNW1oDRhEdyDwaY3iUxzzA" base_parameter="_orbLgDRXEdy1p4IpsoZYqA"/>
+ <C_Cpp:Ref xmi:id="_s8JOQDRhEdyDwaY3iUxzzA" base_parameter="_0ku70DRXEdy1p4IpsoZYqA"/>
+ <C_Cpp:Ref xmi:id="_toQGUDRhEdyDwaY3iUxzzA" base_parameter="_qoJW4DRXEdy1p4IpsoZYqA"/>
+ <C_Cpp:Ref xmi:id="_uSk1sDRhEdyDwaY3iUxzzA" base_parameter="_02A5EDRXEdy1p4IpsoZYqA"/>
+ <C_Cpp:Ref xmi:id="_vFPBsDRhEdyDwaY3iUxzzA" base_parameter="_tL6UIDRXEdy1p4IpsoZYqA"/>
+ <C_Cpp:Ref xmi:id="_vteGYDRhEdyDwaY3iUxzzA" base_parameter="_AArasDRYEdy1p4IpsoZYqA"/>
+ <C_Cpp:Ref xmi:id="_wT6bUDRhEdyDwaY3iUxzzA" base_parameter="_vCh3gDRXEdy1p4IpsoZYqA"/>
+ <C_Cpp:Ref xmi:id="_xABTYDRhEdyDwaY3iUxzzA" base_parameter="_AR0OADRYEdy1p4IpsoZYqA"/>
+ <C_Cpp:Const xmi:id="_INGeADRiEdyDwaY3iUxzzA" base_operation="_ZkKxIDRaEdy1p4IpsoZYqA"/>
+ <C_Cpp:Inline xmi:id="_INGeATRiEdyDwaY3iUxzzA" base_operation="_ZkKxIDRaEdy1p4IpsoZYqA"/>
+ <C_Cpp:Const xmi:id="_ifB5sDRiEdyDwaY3iUxzzA" base_operation="_O59-oDRiEdyDwaY3iUxzzA"/>
+ <C_Cpp:Inline xmi:id="_ifB5sTRiEdyDwaY3iUxzzA" base_operation="_O59-oDRiEdyDwaY3iUxzzA"/>
+ <C_Cpp:Const xmi:id="_8igCoDRiEdyDwaY3iUxzzA" base_parameter="_vozzYDRiEdyDwaY3iUxzzA"/>
+ <C_Cpp:Inline xmi:id="_91pskDRiEdyDwaY3iUxzzA" base_operation="_tMpS8DRiEdyDwaY3iUxzzA"/>
+ <C_Cpp:Const xmi:id="_Qs9w0DRjEdyDwaY3iUxzzA" base_operation="_FX25wDRjEdyDwaY3iUxzzA"/>
+ <C_Cpp:Inline xmi:id="_Qs9w0TRjEdyDwaY3iUxzzA" base_operation="_FX25wDRjEdyDwaY3iUxzzA"/>
+ <C_Cpp:Const xmi:id="_XxyB8DRkEdypGbuyt3_DaA" base_operation="_hifjgDRjEdyDwaY3iUxzzA"/>
+ <C_Cpp:Inline xmi:id="_XxyB8TRkEdypGbuyt3_DaA" base_operation="_hifjgDRjEdyDwaY3iUxzzA"/>
+ <C_Cpp:Const xmi:id="_YqaTEDRkEdypGbuyt3_DaA" base_operation="_hujpkDRjEdyDwaY3iUxzzA"/>
+ <C_Cpp:Inline xmi:id="_YqaTETRkEdypGbuyt3_DaA" base_operation="_hujpkDRjEdyDwaY3iUxzzA"/>
+ <C_Cpp:Const xmi:id="_ZaivgDRkEdypGbuyt3_DaA" base_operation="_h3DeQDRjEdyDwaY3iUxzzA"/>
+ <C_Cpp:Inline xmi:id="_ZaivgTRkEdypGbuyt3_DaA" base_operation="_h3DeQDRjEdyDwaY3iUxzzA"/>
+ <C_Cpp:Const xmi:id="_aOGTYDRkEdypGbuyt3_DaA" base_operation="_iQYkQDRjEdyDwaY3iUxzzA"/>
+ <C_Cpp:Inline xmi:id="_aOGTYTRkEdypGbuyt3_DaA" base_operation="_iQYkQDRjEdyDwaY3iUxzzA"/>
+ <C_Cpp:Const xmi:id="_d77QADRkEdypGbuyt3_DaA" base_parameter="_oiusEDRjEdyDwaY3iUxzzA"/>
+ <C_Cpp:Ptr xmi:id="_kpiXgDRkEdypGbuyt3_DaA" base_parameter="_oiusEDRjEdyDwaY3iUxzzA"/>
+ <C_Cpp:Const xmi:id="_fl4QYDRkEdypGbuyt3_DaA" base_parameter="_pLG6sDRjEdyDwaY3iUxzzA"/>
+ <C_Cpp:Ptr xmi:id="_l2ujYDRkEdypGbuyt3_DaA" base_parameter="_pLG6sDRjEdyDwaY3iUxzzA"/>
+ <C_Cpp:Const xmi:id="_ezNdUDRkEdypGbuyt3_DaA" base_parameter="_o4x0kDRjEdyDwaY3iUxzzA"/>
+ <C_Cpp:Ref xmi:id="_m8wXUDRkEdypGbuyt3_DaA" base_parameter="_o4x0kDRjEdyDwaY3iUxzzA"/>
+ <C_Cpp:Const xmi:id="_gX8mgDRkEdypGbuyt3_DaA" base_parameter="_pg3IQDRjEdyDwaY3iUxzzA"/>
+ <C_Cpp:Ref xmi:id="_oQDyQDRkEdypGbuyt3_DaA" base_parameter="_pg3IQDRjEdyDwaY3iUxzzA"/>
+ <C_Cpp:Const xmi:id="_ovwwkDRlEdypGbuyt3_DaA" base_operation="_hQh-4DRlEdypGbuyt3_DaA"/>
+ <C_Cpp:Inline xmi:id="_ovwwkTRlEdypGbuyt3_DaA" base_operation="_hQh-4DRlEdypGbuyt3_DaA"/>
+ <C_Cpp:Const xmi:id="_qoAroDRlEdypGbuyt3_DaA" base_parameter="_jgxjMDRlEdypGbuyt3_DaA"/>
+ <C_Cpp:Ptr xmi:id="_qoAroTRlEdypGbuyt3_DaA" base_parameter="_jgxjMDRlEdypGbuyt3_DaA"/>
+ <C_Cpp:Const xmi:id="_8sN38DRlEdypGbuyt3_DaA" base_operation="_w9e_8DRlEdypGbuyt3_DaA"/>
+ <C_Cpp:Inline xmi:id="_8sN38TRlEdypGbuyt3_DaA" base_operation="_w9e_8DRlEdypGbuyt3_DaA"/>
+ <C_Cpp:Const xmi:id="_-03mgDRlEdypGbuyt3_DaA" base_parameter="_yuSPMDRlEdypGbuyt3_DaA"/>
+ <C_Cpp:Ptr xmi:id="_-03mgTRlEdypGbuyt3_DaA" base_parameter="_yuSPMDRlEdypGbuyt3_DaA"/>
+ <C_Cpp:Inline xmi:id="_MWyTYDRmEdypGbuyt3_DaA" base_operation="_BSrFsDRmEdypGbuyt3_DaA"/>
+ <C_Cpp:Ptr xmi:id="_Nkk8MDRmEdypGbuyt3_DaA" base_parameter="_GkyfkDRmEdypGbuyt3_DaA"/>
+ <C_Cpp:Ptr xmi:id="_kGSOkDRmEdypGbuyt3_DaA" base_parameter="_WwIs0DRmEdypGbuyt3_DaA"/>
+ <C_Cpp:Const xmi:id="_5sjMYDRmEdypGbuyt3_DaA" base_operation="_urQpMDRmEdypGbuyt3_DaA"/>
+ <C_Cpp:Inline xmi:id="_5sjMYTRmEdypGbuyt3_DaA" base_operation="_urQpMDRmEdypGbuyt3_DaA"/>
+ <C_Cpp:Const xmi:id="_PABxEDRnEdypGbuyt3_DaA" base_operation="_AJnWcDRnEdypGbuyt3_DaA"/>
+ <C_Cpp:Inline xmi:id="_PABxETRnEdypGbuyt3_DaA" base_operation="_AJnWcDRnEdypGbuyt3_DaA"/>
+ <C_Cpp:Const xmi:id="_rnaoQDRnEdypGbuyt3_DaA" base_parameter="_leUjEDRnEdypGbuyt3_DaA"/>
+ <C_Cpp:Ptr xmi:id="_rnaoQTRnEdypGbuyt3_DaA" base_parameter="_leUjEDRnEdypGbuyt3_DaA"/>
+ <C_Cpp:Const xmi:id="_8nrEQDRnEdypGbuyt3_DaA" base_parameter="_x-EoUDRnEdypGbuyt3_DaA"/>
+ <C_Cpp:Ptr xmi:id="_JCg0UDRoEdypGbuyt3_DaA" base_property="_A2bjsDRoEdypGbuyt3_DaA"/>
+ <C_Cpp:Ptr xmi:id="_J6sZgDRoEdypGbuyt3_DaA" base_property="_FafkwDRoEdypGbuyt3_DaA"/>
+ <C_Cpp:Ptr xmi:id="_YxG0IDRoEdypGbuyt3_DaA" base_property="_WG7s4DRoEdypGbuyt3_DaA"/>
+ <C_Cpp:Include xmi:id="_Vh1d8DR3EdypGbuyt3_DaA" body="#include &lt;stdio.h>&#x9;&#x9;// for sprintf&#xD;&#xA;#include &lt;stdlib.h>&#x9;&#x9;// for strtod" header="#include &lt;string.h>&#xD;&#xA;&#xD;&#xA;#define StdSeparators &quot; `~!@#$%^&amp;*()-=+[]{}\\|;:'\&quot;/,&lt;.>?\a\b\f\n\r\t\v&quot;&#xD;&#xA;" base_class="_WXH_4DO2EdyG-pUz-bb-Lg"/>
+ <standard:Create xmi:id="_quTe4DR7EdypGbuyt3_DaA" base_BehavioralFeature="_m2Mk4DR7EdypGbuyt3_DaA"/>
+ <C_Cpp:Inline xmi:id="_quTe4TR7EdypGbuyt3_DaA" base_operation="_m2Mk4DR7EdypGbuyt3_DaA"/>
+ <standard:Create xmi:id="_1FHhsDR7EdypGbuyt3_DaA" base_BehavioralFeature="_rwKkgDR7EdypGbuyt3_DaA"/>
+ <C_Cpp:Inline xmi:id="_1FHhsTR7EdypGbuyt3_DaA" base_operation="_rwKkgDR7EdypGbuyt3_DaA"/>
+ <standard:Create xmi:id="_RoyWgDR8EdypGbuyt3_DaA" base_BehavioralFeature="_N8S2oDR8EdypGbuyt3_DaA"/>
+ <C_Cpp:Inline xmi:id="_RoyWgTR8EdypGbuyt3_DaA" base_operation="_N8S2oDR8EdypGbuyt3_DaA"/>
+ <C_Cpp:Const xmi:id="_sl7SYDR8Edy0feurbW0fyQ" base_parameter="_ToyfYDR8EdypGbuyt3_DaA"/>
+ <C_Cpp:Ref xmi:id="_uKW5kDR8Edy0feurbW0fyQ" base_parameter="_ToyfYDR8EdypGbuyt3_DaA"/>
+ <C_Cpp:Inline xmi:id="_9yZlcDR8Edy0feurbW0fyQ" base_operation="_63iW0DR8Edy0feurbW0fyQ"/>
+ <standard:Create xmi:id="_9yivYDR8Edy0feurbW0fyQ" base_BehavioralFeature="_63iW0DR8Edy0feurbW0fyQ"/>
+ <C_Cpp:Const xmi:id="_1FylMDR9Edy0feurbW0fyQ" base_parameter="_AvfosDR9Edy0feurbW0fyQ"/>
+ <C_Cpp:Ref xmi:id="_1FylMTR9Edy0feurbW0fyQ" base_parameter="_AvfosDR9Edy0feurbW0fyQ"/>
+ <C_Cpp:Const xmi:id="_b-oeEDR-Edy0feurbW0fyQ" base_parameter="_VQkqoDR-Edy0feurbW0fyQ"/>
+ <C_Cpp:Ptr xmi:id="_b-oeETR-Edy0feurbW0fyQ" base_parameter="_VQkqoDR-Edy0feurbW0fyQ"/>
+ <standard:Create xmi:id="_ddtEIDR-Edy0feurbW0fyQ" base_BehavioralFeature="_PngwYDR-Edy0feurbW0fyQ"/>
+ <C_Cpp:Inline xmi:id="_ddtEITR-Edy0feurbW0fyQ" base_operation="_PngwYDR-Edy0feurbW0fyQ"/>
+ <C_Cpp:Include xmi:id="_6BpjUDUOEdy0feurbW0fyQ" header="typedef unsigned int uint_t;&#xD;&#xA;typedef unsigned long ulong_t;&#xD;&#xA;&#xD;&#xA;#define IN&#xD;&#xA;#define OUT&#xD;&#xA;#define INOUT&#xD;&#xA;#define RETURN&#xD;&#xA;&#xD;&#xA;#ifndef FALSE&#xD;&#xA;&#x9;#define FALSE false&#xD;&#xA;#endif&#xD;&#xA;#ifndef TRUE&#xD;&#xA;&#x9;#define TRUE true&#xD;&#xA;#endif" base_class="_0TXx4DUOEdy0feurbW0fyQ"/>
+ <standard:Create xmi:id="_etYEYDUPEdy0feurbW0fyQ" base_BehavioralFeature="_ZgB1wDUPEdy0feurbW0fyQ"/>
+ <C_Cpp:Const xmi:id="_f1HdoDUREdy0feurbW0fyQ" base_parameter="_VRVV0DUREdy0feurbW0fyQ"/>
+ <C_Cpp:Ptr xmi:id="_f1HdoTUREdy0feurbW0fyQ" base_parameter="_VRVV0DUREdy0feurbW0fyQ"/>
+ <C_Cpp:Ref xmi:id="_lTTkoDUREdy0feurbW0fyQ" base_parameter="_WjSs8DUREdy0feurbW0fyQ"/>
+ <C_Cpp:Const xmi:id="_AYMHQDUSEdy0feurbW0fyQ" base_parameter="_YfIHgDUREdy0feurbW0fyQ"/>
+ <C_Cpp:Ptr xmi:id="_AYMHQTUSEdy0feurbW0fyQ" base_parameter="_YfIHgDUREdy0feurbW0fyQ"/>
+ <C_Cpp:Ref xmi:id="_E9trcDUTEdyDReAOQiyvOg" base_parameter="_gUN_ADUSEdy0feurbW0fyQ"/>
+ <C_Cpp:Inline xmi:id="_LSuswDUTEdyDReAOQiyvOg" base_operation="_WR0tADUSEdy0feurbW0fyQ"/>
+ <C_Cpp:Const xmi:id="_M-Bw8DUTEdyDReAOQiyvOg" base_operation="_T-5BEDUSEdy0feurbW0fyQ"/>
+ <C_Cpp:Inline xmi:id="_M-Bw8TUTEdyDReAOQiyvOg" base_operation="_T-5BEDUSEdy0feurbW0fyQ"/>
+ <C_Cpp:Inline xmi:id="_aXwLIDUTEdyDReAOQiyvOg" base_operation="_X5-9oDUSEdy0feurbW0fyQ"/>
+ <C_Cpp:Ref xmi:id="_bo0KYDUTEdyDReAOQiyvOg" base_parameter="_iOHf4DUSEdy0feurbW0fyQ"/>
+ <C_Cpp:Const xmi:id="_eKpN8DUTEdyDReAOQiyvOg" base_parameter="_iUE98DUSEdy0feurbW0fyQ"/>
+ <C_Cpp:Ref xmi:id="_eKpN8TUTEdyDReAOQiyvOg" base_parameter="_iUE98DUSEdy0feurbW0fyQ"/>
+ <C_Cpp:Inline xmi:id="_xvQdEDUTEdyDReAOQiyvOg" base_operation="_Y7GcYDUSEdy0feurbW0fyQ"/>
+ <C_Cpp:Ref xmi:id="_zR57kDUTEdyDReAOQiyvOg" base_parameter="_ylPfUDUSEdyDReAOQiyvOg"/>
+ <C_Cpp:Const xmi:id="_1PEy4DUTEdyDReAOQiyvOg" base_parameter="_ypj-oDUSEdyDReAOQiyvOg"/>
+ <C_Cpp:Ptr xmi:id="_1PEy4TUTEdyDReAOQiyvOg" base_parameter="_ypj-oDUSEdyDReAOQiyvOg"/>
+ <C_Cpp:Inline xmi:id="_80H4sDUTEdyDReAOQiyvOg" base_operation="_a43woDUSEdy0feurbW0fyQ"/>
+ <C_Cpp:Inline xmi:id="_9qzpEDUTEdyDReAOQiyvOg" base_operation="_bfnnkDUSEdy0feurbW0fyQ"/>
+ <C_Cpp:Ref xmi:id="_-2NsQDUTEdyDReAOQiyvOg" base_parameter="_z9dPcDUSEdyDReAOQiyvOg"/>
+ <C_Cpp:Const xmi:id="_Al0osDUUEdyDReAOQiyvOg" base_parameter="_0BVC0DUSEdyDReAOQiyvOg"/>
+ <C_Cpp:Ref xmi:id="_Al0osTUUEdyDReAOQiyvOg" base_parameter="_0BVC0DUSEdyDReAOQiyvOg"/>
+ <C_Cpp:Ref xmi:id="_Cii0EDUUEdyDReAOQiyvOg" base_parameter="_1f888DUSEdyDReAOQiyvOg"/>
+ <C_Cpp:Const xmi:id="_ECN3EDUUEdyDReAOQiyvOg" base_parameter="_3iCwgDUSEdyDReAOQiyvOg"/>
+ <C_Cpp:Ptr xmi:id="_ECN3ETUUEdyDReAOQiyvOg" base_parameter="_3iCwgDUSEdyDReAOQiyvOg"/>
+ <C_Cpp:Const xmi:id="_qV83wDUUEdyDReAOQiyvOg" base_parameter="_Q3b2ADUUEdyDReAOQiyvOg"/>
+ <C_Cpp:Ref xmi:id="_qV83wTUUEdyDReAOQiyvOg" base_parameter="_Q3b2ADUUEdyDReAOQiyvOg"/>
+ <C_Cpp:Const xmi:id="_r5MMIDUUEdyDReAOQiyvOg" base_parameter="_VLaMoDUUEdyDReAOQiyvOg"/>
+ <C_Cpp:Ptr xmi:id="_r5MMITUUEdyDReAOQiyvOg" base_parameter="_VLaMoDUUEdyDReAOQiyvOg"/>
+ <C_Cpp:Include xmi:id="_DXEWYDUWEdyDReAOQiyvOg" body="#include &lt;errno.h>&#xD;&#xA;&#xD;&#xA;#include &lt;iostream>&#xD;&#xA;#include &lt;OS_AL/ProcessingResources/Thread.h>&#xD;&#xA;#include &lt;OS_AL/Time/TimeVal.h>&#xD;&#xA;&#xD;&#xA;using namespace std;&#xD;&#xA;&#xD;&#xA;#define ErrMark &quot; &lt;&lt; &quot;&#xD;&#xA;#define StdMark &quot; # &quot;&#xD;&#xA;&#xD;&#xA;#define StopIfNeverShown &#x9;0&#x9;// 1 or 0&#xD;&#xA;&#xD;&#xA;// ---------------------------------------------------------------------------&#xD;&#xA;// Global variables:&#xD;&#xA;OS_AL::Util::Show showI;&#xD;&#xA;ShowErr showErr;&#xD;&#xA;" header="#define traceMark1&#x9;&quot; $ &quot;&#xD;&#xA;&#xD;&#xA;// MACROS (if __METHOD__ is used)&#xD;&#xA;#define PRINTpr(chars) OS_AL::Util::Print pr; pr &lt;&lt; __FILE__ &quot;: &quot; chars&#xD;&#xA;#define PRINTerr(chars) OS_AL::Util::Print::printErr (&quot;in &quot; __FILE__ &quot;, line &quot;, __LINE__, &quot;: &quot; chars)&#xD;&#xA;&#xD;&#xA;/**&#xD;&#xA; * Verbose(expression) removes expression unless compiled with -DVERBOSE&#xD;&#xA; * Caveat:&#xD;&#xA; *&#x9;- avoid comments&#xD;&#xA; *&#x9;- avoid multiline expressions (ugly to read)&#xD;&#xA; *&#x9;- everything after a &quot;,&quot; is interpreted as a 2nd argument&#xD;&#xA; *&#x9;=> use verbose for simple, single expressions only, in all&#xD;&#xA; * other cases use #ifdef VERBOSE ... #endif&#xD;&#xA; */&#xD;&#xA;#if defined(VERBOSE) || defined (CR_CHECK)&#xD;&#xA;&#x9;#define Verbose(expression)&#x9;expression&#xD;&#xA;#else&#xD;&#xA;&#x9;#define Verbose(expression)&#xD;&#xA;#endif&#xD;&#xA;&#xD;&#xA;/**&#xD;&#xA; * ShowErr: like show, but provoke an error message&#xD;&#xA; */&#xD;&#xA;enum ShowErr { };&#xD;&#xA;&#xD;&#xA;// show() is a method of VxWorks and IlogViews -> use showI&#xD;&#xA;extern OS_AL::Util::Show showI;&#xD;&#xA;extern ShowErr showErr;&#xD;&#xA;&#xD;&#xA;//---------------------------------------------------------------------------&#xD;&#xA;// definition of macros (reduce dependency on template compilers)&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;// ====================================================================&#xD;&#xA;" base_class="_Fqa9QDUPEdy0feurbW0fyQ"/>
+ <C_Cpp:ConstInit xmi:id="_R0S4IDUaEdyDReAOQiyvOg" initialisation="m_shown (0)" base_operation="_ZgB1wDUPEdy0feurbW0fyQ"/>
+ <standard:Create xmi:id="_mlKLEDUyEdyDReAOQiyvOg" base_BehavioralFeature="_ky3HADUyEdyDReAOQiyvOg"/>
+ <C_Cpp:Inline xmi:id="_w3WzoDUyEdyDReAOQiyvOg" base_operation="_ky3HADUyEdyDReAOQiyvOg"/>
+ <standard:Destroy xmi:id="_PKez4DUzEdyDReAOQiyvOg" base_BehavioralFeature="_MPd0QDUzEdyDReAOQiyvOg"/>
+ <C_Cpp:Inline xmi:id="_PKok4DUzEdyDReAOQiyvOg" base_operation="_MPd0QDUzEdyDReAOQiyvOg"/>
+ <C_Cpp:Inline xmi:id="_QzicYDUzEdyDReAOQiyvOg" base_operation="_9DJbEDUyEdyDReAOQiyvOg"/>
+ <C_Cpp:Inline xmi:id="_SIxxADUzEdyDReAOQiyvOg" base_operation="_-f1bgDUyEdyDReAOQiyvOg"/>
+ <C_Cpp:Const xmi:id="_UMNBUDUzEdyDReAOQiyvOg" base_operation="_ApOw8DUzEdyDReAOQiyvOg"/>
+ <C_Cpp:Inline xmi:id="_UMNBUTUzEdyDReAOQiyvOg" base_operation="_ApOw8DUzEdyDReAOQiyvOg"/>
+ <C_Cpp:Const xmi:id="_V4inUDUzEdyDReAOQiyvOg" base_operation="_CTesQDUzEdyDReAOQiyvOg"/>
+ <C_Cpp:Inline xmi:id="_V4inUTUzEdyDReAOQiyvOg" base_operation="_CTesQDUzEdyDReAOQiyvOg"/>
+ <C_Cpp:Inline xmi:id="_YYbxMDUzEdyDReAOQiyvOg" base_operation="_HjplYDUzEdyDReAOQiyvOg"/>
+ <C_Cpp:Inline xmi:id="_ZKgHUDUzEdyDReAOQiyvOg" base_operation="_GN0a4DUzEdyDReAOQiyvOg"/>
+ <C_Cpp:Inline xmi:id="_Z67esDUzEdyDReAOQiyvOg" base_operation="_E8J-sDUzEdyDReAOQiyvOg"/>
+ <C_Cpp:Inline xmi:id="_asjI4DUzEdyDReAOQiyvOg" base_operation="_DrscYDUzEdyDReAOQiyvOg"/>
+ <C_Cpp:Const xmi:id="_ct5VkDUzEdyDReAOQiyvOg" base_operation="_I_JTADUzEdyDReAOQiyvOg"/>
+ <C_Cpp:Inline xmi:id="_ct5VkTUzEdyDReAOQiyvOg" base_operation="_I_JTADUzEdyDReAOQiyvOg"/>
+ <C_Cpp:Const xmi:id="_dku28DUzEdyDReAOQiyvOg" base_operation="_KWxNQDUzEdyDReAOQiyvOg"/>
+ <C_Cpp:Inline xmi:id="_dk4n8DUzEdyDReAOQiyvOg" base_operation="_KWxNQDUzEdyDReAOQiyvOg"/>
+ <C_Cpp:Ptr xmi:id="_xm2hcDUzEdyDReAOQiyvOg" base_parameter="_iGkDYDUzEdyDReAOQiyvOg"/>
+ <C_Cpp:Const xmi:id="_zRsSoDUzEdyDReAOQiyvOg" base_parameter="_m35EYDUzEdyDReAOQiyvOg"/>
+ <C_Cpp:Ref xmi:id="_zR2DoDUzEdyDReAOQiyvOg" base_parameter="_m35EYDUzEdyDReAOQiyvOg"/>
+ <C_Cpp:Const xmi:id="_NXjoQDU0EdylmKH0Uq8VaA" base_parameter="_8pB1cDUzEdyDReAOQiyvOg"/>
+ <C_Cpp:Ref xmi:id="_NXjoQTU0EdylmKH0Uq8VaA" base_parameter="_8pB1cDUzEdyDReAOQiyvOg"/>
+ <C_Cpp:Ptr xmi:id="_zby0YDU0EdylmKH0Uq8VaA" base_parameter="_XB94EDU0EdylmKH0Uq8VaA"/>
+ <C_Cpp:Ptr xmi:id="_LkU6oDU1EdylmKH0Uq8VaA" base_parameter="_F0HPgDU1EdylmKH0Uq8VaA"/>
+ <C_Cpp:Ptr xmi:id="_TPxjYDU1EdylmKH0Uq8VaA" base_parameter="_PzPLEDU1EdylmKH0Uq8VaA"/>
+ <C_Cpp:Ptr xmi:id="_ZYIBsDU1EdylmKH0Uq8VaA" base_parameter="_Vlh50DU1EdylmKH0Uq8VaA"/>
+ <C_Cpp:Ptr xmi:id="_wOG68DU1EdylmKH0Uq8VaA" base_parameter="_bbtqEDU1EdylmKH0Uq8VaA"/>
+ <C_Cpp:Ptr xmi:id="_JpDEQDU2EdylmKH0Uq8VaA" base_parameter="_yUhN0DU1EdylmKH0Uq8VaA"/>
+ <C_Cpp:Const xmi:id="_L6C2gDU2EdylmKH0Uq8VaA" base_parameter="_yYP3QDU1EdylmKH0Uq8VaA"/>
+ <C_Cpp:Ref xmi:id="_L6C2gTU2EdylmKH0Uq8VaA" base_parameter="_yYP3QDU1EdylmKH0Uq8VaA"/>
+ <C_Cpp:Visibility xmi:id="_yFTWADVJEdyF2KWMAqLQBg" value="public" base_generalization="_ZFUrgDO2EdyG-pUz-bb-Lg"/>
+ <C_Cpp:Ptr xmi:id="_oiW9oDadEdyC6dXxO2UOEQ" base_parameter="_V2hJkDadEdyC6dXxO2UOEQ"/>
+ <C_Cpp:Const xmi:id="_rCGWgDadEdyC6dXxO2UOEQ" base_parameter="_WOgLwDadEdyC6dXxO2UOEQ"/>
+ <C_Cpp:Ref xmi:id="_rCGWgTadEdyC6dXxO2UOEQ" base_parameter="_WOgLwDadEdyC6dXxO2UOEQ"/>
+ <C_Cpp:Inline xmi:id="_wtxN8DafEdyC6dXxO2UOEQ" base_operation="_ftqi8DafEdyC6dXxO2UOEQ"/>
+ <C_Cpp:Ptr xmi:id="_yLfwMDafEdyC6dXxO2UOEQ" base_parameter="_hoAIsDafEdyC6dXxO2UOEQ"/>
+ <C_Cpp:Inline xmi:id="_NNjoUDagEdyC6dXxO2UOEQ" base_operation="_A4X0UDagEdyC6dXxO2UOEQ"/>
+ <C_Cpp:Ptr xmi:id="_OfETgDagEdyC6dXxO2UOEQ" base_parameter="_GHp8oDagEdyC6dXxO2UOEQ"/>
+ <C_Cpp:Const xmi:id="_LC2j8DajEdyC6dXxO2UOEQ" base_parameter="_BHwMwDajEdyC6dXxO2UOEQ"/>
+ <C_Cpp:Ref xmi:id="_LC2j8TajEdyC6dXxO2UOEQ" base_parameter="_BHwMwDajEdyC6dXxO2UOEQ"/>
+ <standard:Create xmi:id="_NridcDajEdyC6dXxO2UOEQ" base_BehavioralFeature="_-xPoYDaiEdyC6dXxO2UOEQ"/>
+ <C_Cpp:Inline xmi:id="_NridcTajEdyC6dXxO2UOEQ" base_operation="_-xPoYDaiEdyC6dXxO2UOEQ"/>
+ <C_Cpp:ConstInit xmi:id="_REDRYDajEdyC6dXxO2UOEQ" initialisation="value (elt), next (NULL)" base_operation="_-xPoYDaiEdyC6dXxO2UOEQ"/>
+ <C_Cpp:Ptr xmi:id="_xFafoDakEdyMZ7r5-upW2A" base_parameter="_nU5AwDakEdyMZ7r5-upW2A"/>
+ <C_Cpp:Inline xmi:id="_zDU90DakEdyMZ7r5-upW2A" base_operation="_a-g58DakEdyMZ7r5-upW2A"/>
+ <C_Cpp:Inline xmi:id="_CU3OMDalEdyMZ7r5-upW2A" base_operation="_5hcQwDakEdyMZ7r5-upW2A"/>
+ <C_Cpp:Ptr xmi:id="_DWlJ4DalEdyMZ7r5-upW2A" base_parameter="_7GUj4DakEdyMZ7r5-upW2A"/>
+ <C_Cpp:Const xmi:id="_Qe-uEDamEdyMZ7r5-upW2A" base_operation="_Am2XwDamEdyMZ7r5-upW2A"/>
+ <C_Cpp:Inline xmi:id="_Qe-uETamEdyMZ7r5-upW2A" base_operation="_Am2XwDamEdyMZ7r5-upW2A"/>
+ <C_Cpp:Ptr xmi:id="_TeKcADamEdyMZ7r5-upW2A" base_parameter="_FBO4YDamEdyMZ7r5-upW2A"/>
+ <C_Cpp:Const xmi:id="_VqiM8DamEdyMZ7r5-upW2A" base_parameter="_FGADoDamEdyMZ7r5-upW2A"/>
+ <C_Cpp:Ref xmi:id="_VqiM8TamEdyMZ7r5-upW2A" base_parameter="_FGADoDamEdyMZ7r5-upW2A"/>
+ <C_Cpp:Ptr xmi:id="_p7j2IDamEdyMZ7r5-upW2A" base_parameter="_h1SSkDamEdyMZ7r5-upW2A"/>
+ <C_Cpp:Const xmi:id="_rkKysDamEdyMZ7r5-upW2A" base_operation="_gDSwgDamEdyMZ7r5-upW2A"/>
+ <C_Cpp:Inline xmi:id="_rkUjsDamEdyMZ7r5-upW2A" base_operation="_gDSwgDamEdyMZ7r5-upW2A"/>
+ <C_Cpp:Const xmi:id="_t6-SADamEdyMZ7r5-upW2A" base_parameter="_h5KF8DamEdyMZ7r5-upW2A"/>
+ <C_Cpp:Ref xmi:id="_t6-SATamEdyMZ7r5-upW2A" base_parameter="_h5KF8DamEdyMZ7r5-upW2A"/>
+ <C_Cpp:Inline xmi:id="_DFg9IDanEdyMZ7r5-upW2A" base_operation="_2-Vv8DamEdyMZ7r5-upW2A"/>
+ <C_Cpp:Const xmi:id="_E3XVQDanEdyMZ7r5-upW2A" base_parameter="_44iLwDamEdyMZ7r5-upW2A"/>
+ <C_Cpp:Ref xmi:id="_E3XVQTanEdyMZ7r5-upW2A" base_parameter="_44iLwDamEdyMZ7r5-upW2A"/>
+ <C_Cpp:Ptr xmi:id="_GKgYIDanEdyMZ7r5-upW2A" base_parameter="_47gnQDamEdyMZ7r5-upW2A"/>
+ <C_Cpp:Const xmi:id="_x1riIDaoEdyv9PRkTrTu0A" base_operation="_InFS0DaoEdyMZ7r5-upW2A"/>
+ <C_Cpp:Inline xmi:id="_x1riITaoEdyv9PRkTrTu0A" base_operation="_InFS0DaoEdyMZ7r5-upW2A"/>
+ <C_Cpp:Ptr xmi:id="_0i1r8DaoEdyv9PRkTrTu0A" base_parameter="_gR0CwDaoEdyMZ7r5-upW2A"/>
+ <C_Cpp:Inline xmi:id="_-s_LwDaoEdyv9PRkTrTu0A" base_operation="_Kzm0wDaoEdyMZ7r5-upW2A"/>
+ <C_Cpp:Ptr xmi:id="_AH5DgDapEdyv9PRkTrTu0A" base_parameter="_4jvVkDaoEdyv9PRkTrTu0A"/>
+ <C_Cpp:Ptr xmi:id="_WeuioDapEdyv9PRkTrTu0A" base_parameter="_F389oDapEdyv9PRkTrTu0A"/>
+ <C_Cpp:Inline xmi:id="_FKNG0DapEdyv9PRkTrTu0A" base_operation="_NLvw0DaoEdyMZ7r5-upW2A"/>
+ <C_Cpp:Inline xmi:id="_ofDUgDapEdyv9PRkTrTu0A" base_operation="_Mh4UcDaoEdyMZ7r5-upW2A"/>
+ <C_Cpp:Const xmi:id="_ofDUgTapEdyv9PRkTrTu0A" base_operation="_Mh4UcDaoEdyMZ7r5-upW2A"/>
+ <C_Cpp:Ptr xmi:id="_qn2NADapEdyv9PRkTrTu0A" base_parameter="_iP2AQDapEdyv9PRkTrTu0A"/>
+ <C_Cpp:Const xmi:id="_znMtoDapEdyv9PRkTrTu0A" base_operation="_ORpB4DaoEdyMZ7r5-upW2A"/>
+ <C_Cpp:Inline xmi:id="_znMtoTapEdyv9PRkTrTu0A" base_operation="_ORpB4DaoEdyMZ7r5-upW2A"/>
+ <C_Cpp:Ptr xmi:id="_1CPvUDapEdyv9PRkTrTu0A" base_parameter="_wDf9YDapEdyv9PRkTrTu0A"/>
+ <C_Cpp:Inline xmi:id="_87_50DapEdyv9PRkTrTu0A" base_operation="_QxrVsDaoEdyMZ7r5-upW2A"/>
+ <C_Cpp:Ptr xmi:id="_-w-ecDapEdyv9PRkTrTu0A" base_parameter="_5TPDYDapEdyv9PRkTrTu0A"/>
+ <C_Cpp:Const xmi:id="_GY2OwDaqEdyv9PRkTrTu0A" base_operation="_SaIhQDaoEdyMZ7r5-upW2A"/>
+ <C_Cpp:Inline xmi:id="_GY2OwTaqEdyv9PRkTrTu0A" base_operation="_SaIhQDaoEdyMZ7r5-upW2A"/>
+ <C_Cpp:Ptr xmi:id="_Hn-UUDaqEdyv9PRkTrTu0A" base_parameter="_DsSh4DaqEdyv9PRkTrTu0A"/>
+ <C_Cpp:Inline xmi:id="_QFWJQDaqEdyv9PRkTrTu0A" base_operation="_ToX2ADaoEdyMZ7r5-upW2A"/>
+ <C_Cpp:Ptr xmi:id="_R-pNMDaqEdyv9PRkTrTu0A" base_parameter="_LADDYDaqEdyv9PRkTrTu0A"/>
+ <C_Cpp:Const xmi:id="_aRlTwDaqEdyv9PRkTrTu0A" base_operation="_WklIcDaoEdyMZ7r5-upW2A"/>
+ <C_Cpp:Inline xmi:id="_aRlTwTaqEdyv9PRkTrTu0A" base_operation="_WklIcDaoEdyMZ7r5-upW2A"/>
+ <C_Cpp:Ptr xmi:id="_bZ2jYDaqEdyv9PRkTrTu0A" base_parameter="_XldrwDaqEdyv9PRkTrTu0A"/>
+ <C_Cpp:Inline xmi:id="_cA57UDa1Edyv9PRkTrTu0A" base_operation="_YZZ8EDaoEdyMZ7r5-upW2A"/>
+ <C_Cpp:Ptr xmi:id="_dYYEkDa1Edyv9PRkTrTu0A" base_parameter="_iOT5wDaqEdyv9PRkTrTu0A"/>
+ <C_Cpp:Const xmi:id="_m6JVwDa1Edyv9PRkTrTu0A" base_operation="_aO0lkDaoEdyMZ7r5-upW2A"/>
+ <C_Cpp:Inline xmi:id="_m6JVwTa1Edyv9PRkTrTu0A" base_operation="_aO0lkDaoEdyMZ7r5-upW2A"/>
+ <C_Cpp:Ptr xmi:id="_osSo0Da1Edyv9PRkTrTu0A" base_parameter="_iIN30Da1Edyv9PRkTrTu0A"/>
+ <C_Cpp:Inline xmi:id="_wt8yIDa1Edyv9PRkTrTu0A" base_operation="_ddN0MDaoEdyMZ7r5-upW2A"/>
+ <C_Cpp:Ptr xmi:id="_x_J7UDa1Edyv9PRkTrTu0A" base_parameter="_sFG-wDa1Edyv9PRkTrTu0A"/>
+ <C_Cpp:Ptr xmi:id="_TE8JEDa5Edyv9PRkTrTu0A" base_property="_JP6ksDa5Edyv9PRkTrTu0A"/>
+ <C_Cpp:Ptr xmi:id="_Z3LR4Da5Edyv9PRkTrTu0A" base_property="_yaiaUDa2Edyv9PRkTrTu0A"/>
+ <C_Cpp:Ptr xmi:id="_arLhsDa5Edyv9PRkTrTu0A" base_property="_0wvcsDa2Edyv9PRkTrTu0A"/>
+ <C_Cpp:Ptr xmi:id="_beAFwDa5Edyv9PRkTrTu0A" base_property="_1ZuIQTa2Edyv9PRkTrTu0A"/>
+ <C_Cpp:Ptr xmi:id="_cMMBcDa5Edyv9PRkTrTu0A" base_property="_2AnwMTa2Edyv9PRkTrTu0A"/>
+ <C_Cpp:Ptr xmi:id="_c74ZADa5Edyv9PRkTrTu0A" base_property="_3cG2wTa2Edyv9PRkTrTu0A"/>
+ <C_Cpp:Ptr xmi:id="_drROkDa5Edyv9PRkTrTu0A" base_property="_8nYBwDa2Edyv9PRkTrTu0A"/>
+ <C_Cpp:Inline xmi:id="_xb0n8Da5Edyv9PRkTrTu0A" base_operation="_lrJPMDa5Edyv9PRkTrTu0A"/>
+ <C_Cpp:Const xmi:id="_3xJyUDa5Edyv9PRkTrTu0A" base_parameter="_oX2tEDa5Edyv9PRkTrTu0A"/>
+ <C_Cpp:Ref xmi:id="_3xJyUTa5Edyv9PRkTrTu0A" base_parameter="_oX2tEDa5Edyv9PRkTrTu0A"/>
+ <C_Cpp:ConstInit xmi:id="_qkOokDa6Edyv9PRkTrTu0A" initialisation="beginning (NULL), endElement (NULL), current (NULL), firstFreeCellule (NULL), freeMemory ((ListCell *) ((char *) this + sizeof (BOL &lt; ElType >))), endOfMemory ((ListCell *) ((char *) this + sizeof (BOL &lt; ElType >) + (nbElem - 1) * sizeof (ListCell)))" base_operation="_ky3HADUyEdyDReAOQiyvOg"/>
+ <C_Cpp:Include xmi:id="_gutqEDa8Edy_E4ZljVbr-g" body="#if defined(_POSIX_SOURCE) || defined(PC)&#xD;&#xA;&#x9;#include &lt;string.h>&#xD;&#xA;#else&#xD;&#xA;&#x9;#include &lt;string.h>&#xD;&#xA;&#x9;#ifndef SYSTEM_VxWorks&#xD;&#xA;&#x9;&#x9;#include &lt;memory.h>&#xD;&#xA;&#x9;#endif &#xD;&#xA;#endif &#xD;&#xA;" header="/**&#xD;&#xA; * ----------------------------------------------------------------------&#xD;&#xA; * [todo: it would be very good to have lock-free set/list implementations.&#xD;&#xA; * Currently, two threads that are mixing adding/removals would need lock&#xD;&#xA; * protection] => examine solutions, for instance skip lists&#xD;&#xA; * ----------------------------------------------------------------------&#xD;&#xA; */&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;/**&#xD;&#xA; * This macro is used for historical reasons: it is used by the&#xD;&#xA; * code generated by objecteering. It declares a variable of type SetOf&#xD;&#xA; * with the prefix set_of_&lt;typename>. This variable stores a set of pointers.&#xD;&#xA; */&#xD;&#xA;#define CR_SET(className)\&#xD;&#xA;&#x9;typedef ::OS_AL::Sets::SetOf&lt;className *> set_of_ ## className;&#xD;&#xA;&#xD;&#xA;/**&#xD;&#xA; * This macro is similar to the macro above. The difference is that a set&#xD;&#xA; * of values (and not pointers) is stored.&#xD;&#xA; */&#xD;&#xA;#define CR_SET_V(className)\&#xD;&#xA;&#x9;typedef ::OS_AL::Sets::SetOf&lt;className> set_of_ ## className;&#xD;&#xA;&#xD;&#xA;/**&#xD;&#xA; * This integer default value DEFAULT_SIZE_BLOCK is used to control (partly)&#xD;&#xA; * memory size and fragmentation during growing. The ARRAY&#xD;&#xA; * is roughly doubled in size until it hits the size_block limit, after&#xD;&#xA; * which it is grown only in size_block sized chunks, if necessary.&#xD;&#xA; * A large value limits fragmentation at the expense of using more memory.&#xD;&#xA; * DEFAULT_SIZE_BLOCK value must always be a number greater than zero.&#xD;&#xA; */&#xD;&#xA;#ifndef DEFAULT_BLOCK_SIZE&#xD;&#xA;#define DEFAULT_BLOCK_SIZE 1024&#xD;&#xA;#endif&#xD;&#xA;" base_class="_2bXLkDUuEdyDReAOQiyvOg"/>
+ <standard:Create xmi:id="_HVTDYDa_Edy_E4ZljVbr-g" base_BehavioralFeature="_rnk_IDa-Edy_E4ZljVbr-g"/>
+ <standard:Destroy xmi:id="_H9iIEDa_Edy_E4ZljVbr-g" base_BehavioralFeature="_-M24MDa-Edy_E4ZljVbr-g"/>
+ <C_Cpp:Const xmi:id="_LDIAADa_Edy_E4ZljVbr-g" base_parameter="_smT4QDa-Edy_E4ZljVbr-g"/>
+ <C_Cpp:Const xmi:id="_L59hYDa_Edy_E4ZljVbr-g" base_parameter="_sqyIkDa-Edy_E4ZljVbr-g"/>
+ <C_Cpp:Const xmi:id="_dnEcUDa_Edy_E4ZljVbr-g" base_operation="_Q1uQwDa_Edy_E4ZljVbr-g"/>
+ <C_Cpp:Inline xmi:id="_dnEcUTa_Edy_E4ZljVbr-g" base_operation="_Q1uQwDa_Edy_E4ZljVbr-g"/>
+ <C_Cpp:Const xmi:id="_7hAggDa_Edy0gLsbEakL5w" base_operation="_sUiWUDa_Edy0gLsbEakL5w"/>
+ <C_Cpp:Inline xmi:id="_7hAggTa_Edy0gLsbEakL5w" base_operation="_sUiWUDa_Edy0gLsbEakL5w"/>
+ <C_Cpp:Const xmi:id="_Y4rlIDbAEdy0gLsbEakL5w" base_parameter="_Eq75cDbAEdy0gLsbEakL5w"/>
+ <C_Cpp:Const xmi:id="_taifoDbAEdy0gLsbEakL5w" base_parameter="_dxdR8DbAEdy0gLsbEakL5w"/>
+ <C_Cpp:Const xmi:id="_6qujUDbAEdy0gLsbEakL5w" base_parameter="_0ywqYDbAEdy0gLsbEakL5w"/>
+ <C_Cpp:Const xmi:id="_SuMjYDbBEdy0gLsbEakL5w" base_parameter="_JbLf4DbBEdy0gLsbEakL5w"/>
+ <C_Cpp:Ptr xmi:id="_fhSl8DbCEdy0gLsbEakL5w" base_property="_QYjFMDbCEdy0gLsbEakL5w"/>
+ <C_Cpp:Const xmi:id="_3OjsgDbCEdy0gLsbEakL5w" base_operation="_q4yCoDbCEdy0gLsbEakL5w"/>
+ <C_Cpp:Const xmi:id="_5PAhUDbCEdy0gLsbEakL5w" base_parameter="_ugyrIDbCEdy0gLsbEakL5w"/>
+ <C_Cpp:Ref xmi:id="_5PAhUTbCEdy0gLsbEakL5w" base_parameter="_ugyrIDbCEdy0gLsbEakL5w"/>
+ <standard:Create xmi:id="_FHQtcDbeEdy0Rd6V_tf1-Q" base_BehavioralFeature="_C1-AQDbeEdy0Rd6V_tf1-Q"/>
+ <C_Cpp:Const xmi:id="_VH44cDbeEdy0Rd6V_tf1-Q" base_parameter="_NLvhQDbeEdy0Rd6V_tf1-Q"/>
+ <C_Cpp:Ref xmi:id="_VH44cTbeEdy0Rd6V_tf1-Q" base_parameter="_NLvhQDbeEdy0Rd6V_tf1-Q"/>
+ <C_Cpp:Ptr xmi:id="_kY0r4DbeEdy0Rd6V_tf1-Q" base_parameter="_Zd8SsDbeEdy0Rd6V_tf1-Q"/>
+ <C_Cpp:Inline xmi:id="_1HyjkDbeEdy0Rd6V_tf1-Q" base_operation="_p1ESIDbeEdy0Rd6V_tf1-Q"/>
+ <C_Cpp:Inline xmi:id="_ER4IIDbfEdy0Rd6V_tf1-Q" base_operation="_795fwDbeEdy0Rd6V_tf1-Q"/>
+ <C_Cpp:ConstInit xmi:id="_aslaoDbfEdy0Rd6V_tf1-Q" initialisation="current (0), full (FALSE)" base_operation="_C1-AQDbeEdy0Rd6V_tf1-Q"/>
+ <C_Cpp:Include xmi:id="_xGQLUDbfEdy0Rd6V_tf1-Q" body="#include &lt;OS_AL/ProcessingResources/ProDesc.h>&#xD;&#xA;#include &lt;OS_AL/Tracing/Trace.h>" base_class="_y68Y0DUuEdyDReAOQiyvOg"/>
+ <C_Cpp:Include xmi:id="_b4VAMDj8Edy0Rd6V_tf1-Q" header="#ifdef DEBUG&#xD;&#xA;" base_class="_BN92YDj8Edy0Rd6V_tf1-Q"/>
+ <C_Cpp:Ptr xmi:id="_E3dv0DkAEdy0Rd6V_tf1-Q" base_property="_B8mhMTkAEdy0Rd6V_tf1-Q"/>
+ <C_Cpp:Ptr xmi:id="_VYIFwDkAEdy0Rd6V_tf1-Q" base_parameter="_Q8_-QDkAEdy0Rd6V_tf1-Q"/>
+ <C_Cpp:Ptr xmi:id="_Wns3QDkAEdy0Rd6V_tf1-Q" base_parameter="_RLwL8DkAEdy0Rd6V_tf1-Q"/>
+ <C_Cpp:Include xmi:id="_tNGmwDkUEdyuzNpSiGPe4w" body="#include &lt;OS_AL/Time/Timer.h>&#xD;&#xA;#include &lt;OS_AL/Time/TimeVal.h>&#xD;&#xA;#include &lt;OS_AL/ProcessingResources/ProDesc.h>&#xD;&#xA;#include &lt;OS_AL/Tracing/Trace.h>&#xD;&#xA;&#xD;&#xA;#include &lt;limits.h>&#xD;&#xA;#include &lt;errno.h>&#xD;&#xA;&#xD;&#xA;#if defined SYSTEM_Solaris&#xD;&#xA;&#x9;// todo: reconsider using class Mutex&#xD;&#xA;&#x9;#include &lt;synch.h>&#xD;&#xA;#endif&#xD;&#xA;&#xD;&#xA;#if defined SYNCHRO_POSIX4&#xD;&#xA;&#x9;#include &lt;pthread.h>&#xD;&#xA;#endif&#xD;&#xA;&#xD;&#xA;#define TimerNotAssigned&#x9;((timer_t) -1)&#xD;&#xA;" header="#include &lt;sys/types.h>" base_class="_ETakYDj8Edy0Rd6V_tf1-Q"/>
+ <standard:Create xmi:id="_776kkDkUEdyuzNpSiGPe4w" base_BehavioralFeature="_4_tSIDkUEdyuzNpSiGPe4w"/>
+ <standard:Destroy xmi:id="_8sV78DkUEdyuzNpSiGPe4w" base_BehavioralFeature="_5IDV0DkUEdyuzNpSiGPe4w"/>
+ <C_Cpp:Const xmi:id="_mLyDoDkVEdyuzNpSiGPe4w" base_parameter="_B5PeoDkVEdyuzNpSiGPe4w"/>
+ <C_Cpp:Ptr xmi:id="_mLyDoTkVEdyuzNpSiGPe4w" base_parameter="_B5PeoDkVEdyuzNpSiGPe4w"/>
+ <C_Cpp:Ptr xmi:id="_nzDjcDkVEdyuzNpSiGPe4w" base_parameter="_B9j98DkVEdyuzNpSiGPe4w"/>
+ <C_Cpp:Ptr xmi:id="_1NOpkDkVEdyuzNpSiGPe4w" base_parameter="_GD1PwDkVEdyuzNpSiGPe4w"/>
+ <C_Cpp:Const xmi:id="_sazVMDkWEdyuzNpSiGPe4w" base_parameter="_blSJkDkWEdyuzNpSiGPe4w"/>
+ <C_Cpp:Ref xmi:id="_sazVMTkWEdyuzNpSiGPe4w" base_parameter="_blSJkDkWEdyuzNpSiGPe4w"/>
+ <C_Cpp:Const xmi:id="_8r0soDkWEdyuzNpSiGPe4w" base_parameter="_1vwSYDkWEdyuzNpSiGPe4w"/>
+ <C_Cpp:Ptr xmi:id="_8r0soTkWEdyuzNpSiGPe4w" base_parameter="_1vwSYDkWEdyuzNpSiGPe4w"/>
+ <C_Cpp:Const xmi:id="_DF6bMDkXEdyuzNpSiGPe4w" base_parameter="_10YTsDkWEdyuzNpSiGPe4w"/>
+ <C_Cpp:Ref xmi:id="_DF6bMTkXEdyuzNpSiGPe4w" base_parameter="_10YTsDkWEdyuzNpSiGPe4w"/>
+ <C_Cpp:Ref xmi:id="_wNg8YDkXEdyuzNpSiGPe4w" base_parameter="_efgpkDkXEdyuzNpSiGPe4w"/>
+ <C_Cpp:Ref xmi:id="_xNcIUDkXEdyuzNpSiGPe4w" base_parameter="_eio2EDkXEdyuzNpSiGPe4w"/>
+ <C_Cpp:Include xmi:id="_ceH5QDkaEdyuzNpSiGPe4w" body="&#xD;&#xA;" header="#if defined SYSTEM_VxWorks&#xD;&#xA;#&#x9;include &lt;sys/times.h>&#x9;&#x9;// -VxW: definition of 'struct timeval'&#xD;&#xA;#endif&#xD;&#xA;&#xD;&#xA;#include &lt;time.h>&#xD;&#xA;#include &lt;sys/time.h>&#xD;&#xA;#include &lt;sys/types.h>&#xD;&#xA;&#xD;&#xA;// TODO: operators that enable marshalling into message buffer&#xD;&#xA;#if defined __GNUC__&#xD;&#xA;// LeftShiftPrint (TimeVal);&#xD;&#xA;// LeftShiftTrace (TimeVal);&#xD;&#xA;#endif&#x9;// __GNUC__&#xD;&#xA;" base_class="_FuKEEDj8Edy0Rd6V_tf1-Q"/>
+ <standard:Create xmi:id="_7rTG8DkaEdyuzNpSiGPe4w" base_BehavioralFeature="_t7qHIDkaEdyuzNpSiGPe4w"/>
+ <standard:Create xmi:id="_8orVMDkaEdyuzNpSiGPe4w" base_BehavioralFeature="_uEc2wDkaEdyuzNpSiGPe4w"/>
+ <standard:Create xmi:id="_9PZ-ADkaEdyuzNpSiGPe4w" base_BehavioralFeature="_uKtPwDkaEdyuzNpSiGPe4w"/>
+ <C_Cpp:Const xmi:id="_Iat_4DkbEdyuzNpSiGPe4w" base_parameter="_DgL_kDkbEdyuzNpSiGPe4w"/>
+ <C_Cpp:Ref xmi:id="_Ia3J0DkbEdyuzNpSiGPe4w" base_parameter="_DgL_kDkbEdyuzNpSiGPe4w"/>
+ <C_Cpp:Const xmi:id="_Rm9F8DkbEdyuzNpSiGPe4w" base_parameter="_LywSsDkbEdyuzNpSiGPe4w"/>
+ <C_Cpp:Ref xmi:id="_8RKFsDkdEdyuzNpSiGPe4w" base_parameter="_ndW8EDkcEdyuzNpSiGPe4w"/>
+ <C_Cpp:Const xmi:id="_-WFK0DkdEdyuzNpSiGPe4w" base_parameter="_nhPWgDkcEdyuzNpSiGPe4w"/>
+ <C_Cpp:Ref xmi:id="_-WFK0TkdEdyuzNpSiGPe4w" base_parameter="_nhPWgDkcEdyuzNpSiGPe4w"/>
+ <C_Cpp:Ref xmi:id="_BZcOIDkeEdyuzNpSiGPe4w" base_parameter="_1jVYQDkcEdyuzNpSiGPe4w"/>
+ <C_Cpp:Const xmi:id="_CTs28DkeEdyuzNpSiGPe4w" base_parameter="_1lt94DkcEdyuzNpSiGPe4w"/>
+ <C_Cpp:Ref xmi:id="_CTs28TkeEdyuzNpSiGPe4w" base_parameter="_1lt94DkcEdyuzNpSiGPe4w"/>
+ <C_Cpp:Ref xmi:id="_FsOR8DkeEdyuzNpSiGPe4w" base_parameter="_8FwjcDkcEdyuzNpSiGPe4w"/>
+ <C_Cpp:Const xmi:id="_HO3wcDkeEdyuzNpSiGPe4w" base_parameter="_8JVb4DkcEdyuzNpSiGPe4w"/>
+ <C_Cpp:Ref xmi:id="_HO3wcTkeEdyuzNpSiGPe4w" base_parameter="_8JVb4DkcEdyuzNpSiGPe4w"/>
+ <C_Cpp:Const xmi:id="_NDs10DkeEdyuzNpSiGPe4w" base_operation="_T6uC4DkcEdyuzNpSiGPe4w"/>
+ <C_Cpp:Const xmi:id="_Qn_b8DkeEdyuzNpSiGPe4w" base_parameter="_EkwJADkdEdyuzNpSiGPe4w"/>
+ <C_Cpp:Ref xmi:id="_Qn_b8TkeEdyuzNpSiGPe4w" base_parameter="_EkwJADkdEdyuzNpSiGPe4w"/>
+ <C_Cpp:Const xmi:id="_SruOQDkeEdyuzNpSiGPe4w" base_operation="_T_yJEDkcEdyuzNpSiGPe4w"/>
+ <C_Cpp:Const xmi:id="_TijvoDkeEdyuzNpSiGPe4w" base_parameter="_ZsKAkDkdEdyuzNpSiGPe4w"/>
+ <C_Cpp:Ref xmi:id="_TijvoTkeEdyuzNpSiGPe4w" base_parameter="_ZsKAkDkdEdyuzNpSiGPe4w"/>
+ <C_Cpp:Const xmi:id="_cAhacDkeEdyuzNpSiGPe4w" base_operation="_UDgLcDkcEdyuzNpSiGPe4w"/>
+ <C_Cpp:Const xmi:id="_dv_M8DkeEdyuzNpSiGPe4w" base_parameter="_lppGQDkdEdyuzNpSiGPe4w"/>
+ <C_Cpp:Ref xmi:id="_dv_M8TkeEdyuzNpSiGPe4w" base_parameter="_lppGQDkdEdyuzNpSiGPe4w"/>
+ <C_Cpp:Const xmi:id="_fATlUDkeEdyuzNpSiGPe4w" base_operation="_UKNQYDkcEdyuzNpSiGPe4w"/>
+ <C_Cpp:Const xmi:id="_f2sawDkeEdyuzNpSiGPe4w" base_parameter="_pFuyoDkdEdyuzNpSiGPe4w"/>
+ <C_Cpp:Ref xmi:id="_f2sawTkeEdyuzNpSiGPe4w" base_parameter="_pFuyoDkdEdyuzNpSiGPe4w"/>
+ <C_Cpp:Const xmi:id="_hEx-gDkeEdyuzNpSiGPe4w" base_operation="_UPk4kDkcEdyuzNpSiGPe4w"/>
+ <C_Cpp:Const xmi:id="_iUWwADkeEdyuzNpSiGPe4w" base_parameter="_tPIQ8DkdEdyuzNpSiGPe4w"/>
+ <C_Cpp:Ref xmi:id="_iUWwATkeEdyuzNpSiGPe4w" base_parameter="_tPIQ8DkdEdyuzNpSiGPe4w"/>
+ <C_Cpp:Const xmi:id="_jPgwsDkeEdyuzNpSiGPe4w" base_operation="_UVFqsDkcEdyuzNpSiGPe4w"/>
+ <C_Cpp:Const xmi:id="_kA_Q8DkeEdyuzNpSiGPe4w" base_parameter="_wVT-wDkdEdyuzNpSiGPe4w"/>
+ <C_Cpp:Ref xmi:id="_kA_Q8TkeEdyuzNpSiGPe4w" base_parameter="_wVT-wDkdEdyuzNpSiGPe4w"/>
+ <C_Cpp:Const xmi:id="_lCtMoDkeEdyuzNpSiGPe4w" base_operation="_UcFqkDkcEdyuzNpSiGPe4w"/>
+ <C_Cpp:Const xmi:id="_mg4a0DkeEdyuzNpSiGPe4w" base_parameter="_y4CaMDkdEdyuzNpSiGPe4w"/>
+ <C_Cpp:Ref xmi:id="_mg4a0TkeEdyuzNpSiGPe4w" base_parameter="_y4CaMDkdEdyuzNpSiGPe4w"/>
+ <C_Cpp:Const xmi:id="_n354IDkeEdyuzNpSiGPe4w" base_operation="_Us7i8DkcEdyuzNpSiGPe4w"/>
+ <C_Cpp:Const xmi:id="_pOLukDkeEdyuzNpSiGPe4w" base_parameter="_1MAn8DkdEdyuzNpSiGPe4w"/>
+ <C_Cpp:Ref xmi:id="_pOVfkDkeEdyuzNpSiGPe4w" base_parameter="_1MAn8DkdEdyuzNpSiGPe4w"/>
+ <C_Cpp:Const xmi:id="_OlhjADkgEdyuzNpSiGPe4w" base_operation="_9jMDYDkfEdyuzNpSiGPe4w"/>
+ <C_Cpp:Const xmi:id="__Hbn4DkgEdyuzNpSiGPe4w" base_operation="_hArPsDkgEdyuzNpSiGPe4w"/>
+ <C_Cpp:Const xmi:id="_AAWz8DkhEdyuzNpSiGPe4w" base_operation="_hIbdgDkgEdyuzNpSiGPe4w"/>
+ <C_Cpp:Const xmi:id="_AsndADkhEdyuzNpSiGPe4w" base_operation="_hPbdYDkgEdyuzNpSiGPe4w"/>
+ <C_Cpp:Inline xmi:id="_CMynkDknEdyuzNpSiGPe4w" base_operation="_q8lQcDkmEdyuzNpSiGPe4w"/>
+ <C_Cpp:Inline xmi:id="_GL6IgDknEdyuzNpSiGPe4w" base_operation="_rCsfgDkmEdyuzNpSiGPe4w"/>
+ <C_Cpp:Const xmi:id="_J0q-8DknEdyuzNpSiGPe4w" base_parameter="_0LugkDkmEdyuzNpSiGPe4w"/>
+ <C_Cpp:Ref xmi:id="_LNoV8DknEdyuzNpSiGPe4w" base_parameter="_4lNpUDkmEdyuzNpSiGPe4w"/>
+ <C_Cpp:Include xmi:id="_57kQoE_BEdy2tpS719xBwQ" body="#include &lt;OS_AL/Tracing/Trace.h>&#xD;&#xA;#include &lt;OS_AL/ProcessingResources/Thread.h>&#xD;&#xA;#include &lt;OS_AL/ProcessingResources/ProDesc.h>&#xD;&#xA;#include &lt;OS_AL/Util/BString500.h>&#xD;&#xA;&#xD;&#xA;#include &lt;stdlib.h>&#xD;&#xA;#include &lt;stdio.h>&#xD;&#xA;#include &lt;errno.h>&#xD;&#xA;&#xD;&#xA;#if defined SYSTEM_Solaris&#xD;&#xA;&#x9;#include &lt;sys/priocntl.h>&#xD;&#xA;&#x9;#include &lt;sys/rtpriocntl.h>&#xD;&#xA;&#x9;#include &lt;sys/tspriocntl.h>&#xD;&#xA;&#x9;int posixPriorityNumbering;&#xD;&#xA;#elif defined SYSTEM_POSIX4 || defined SYSTEM_Linux&#xD;&#xA;&#x9;#include &lt;sys/resource.h>&#x9;&#x9;// Linux&#xD;&#xA;&#x9;#include &lt;sched.h>&#xD;&#xA;&#x9;int posixPriorityNumbering;&#xD;&#xA;#elif defined SYSTEM_VxWorks&#xD;&#xA;&#x9;#include &lt;envLib.h>&#x9;&#x9;&#x9;&#x9;//-VxW&#xD;&#xA;&#x9;#include &lt;sched.h>&#x9;&#x9;&#x9;&#x9;//-VxW&#xD;&#xA;&#x9;extern int posixPriorityNumbering;&#xD;&#xA;#else&#xD;&#xA;&#x9;#error Define SYSTEM_POSIX4 | SYSTEM_Solaris | SYSTEM_VxWorks | SYSTEM_Linux&#xD;&#xA;#endif&#xD;&#xA;" header="&#xD;&#xA;// for getpid, getppid&#xD;&#xA;#include &lt;unistd.h>&#x9;&#x9;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;#define ABANDON_SIG&#x9;SIGTERM&#x9;// ==> exit(SUCCESS)&#xD;&#xA;#define ExitERR_SIG&#x9;SIGABRT&#x9;// ==> exit(FAILURE) + core&#xD;&#xA;#define ABORT_SIG&#x9;SIGINT&#x9;// ==> exit(FAILURE) [usually by Control-C on controlling terminal&#xD;&#xA;#define ABORT2_SIG&#x9;SIGQUIT&#x9;// ==> exit(FAILURE) + core [usually by Control-| on controlling terminal&#xD;&#xA;&#xD;&#xA;#define OSAL_ERROR(msg) OS_AL::ProcessingResources::ProDesc::exitErr (__LINE__, __FILE__, msg)&#xD;&#xA;&#xD;&#xA;#ifdef SYSTEM_VxWorks&#xD;&#xA;&#x9;typedef int id_t;&#xD;&#xA;&#x9;#include &lt;OS_AL/ProcessingResources/Thread.h>&#xD;&#xA;#elif defined SYSTEM_Solaris || defined SYSTEM_Linux&#xD;&#xA;&#x9;#include &lt;sys/types.h>&#xD;&#xA;#endif&#xD;&#xA;&#xD;&#xA;#include &lt;signal.h>&#xD;&#xA;" base_class="_oSgIME_BEdy2tpS719xBwQ"/>
+ <C_Cpp:Const xmi:id="_3ZDbIE_CEdy2tpS719xBwQ" base_parameter="_w5c6cE_CEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_3ZMlEE_CEdy2tpS719xBwQ" base_parameter="_w5c6cE_CEdy2tpS719xBwQ"/>
+ <C_Cpp:Const xmi:id="_WlrPME_DEdy2tpS719xBwQ" base_parameter="_5wJ1YE_CEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_WlrPMU_DEdy2tpS719xBwQ" base_parameter="_5wJ1YE_CEdy2tpS719xBwQ"/>
+ <C_Cpp:Const xmi:id="_YiZakE_DEdy2tpS719xBwQ" base_parameter="_5y1V8E_CEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_YiZakU_DEdy2tpS719xBwQ" base_parameter="_5y1V8E_CEdy2tpS719xBwQ"/>
+ <C_Cpp:Const xmi:id="_mKtqYE_DEdy2tpS719xBwQ" base_parameter="_bmpOsE_DEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_mKtqYU_DEdy2tpS719xBwQ" base_parameter="_bmpOsE_DEdy2tpS719xBwQ"/>
+ <C_Cpp:Const xmi:id="_zMI5UE_DEdy2tpS719xBwQ" base_parameter="_rj1EIE_DEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_zMI5UU_DEdy2tpS719xBwQ" base_parameter="_rj1EIE_DEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_AhZDME_EEdy2tpS719xBwQ" base_parameter="_5by5gE_DEdy2tpS719xBwQ" declaration="**"/>
+ <C_Cpp:Ref xmi:id="_ZreGAE_EEdy2tpS719xBwQ" base_parameter="_T-YnYE_EEdy2tpS719xBwQ"/>
+ <C_Cpp:Const xmi:id="_i9lKkE_EEdy2tpS719xBwQ" base_parameter="_clSLwE_EEdy2tpS719xBwQ"/>
+ <C_Cpp:Ref xmi:id="_i9u7kE_EEdy2tpS719xBwQ" base_parameter="_clSLwE_EEdy2tpS719xBwQ"/>
+ <C_Cpp:Const xmi:id="_5-7J0E_FEdy2tpS719xBwQ" base_parameter="_wb-M4E_FEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_5-7J0U_FEdy2tpS719xBwQ" base_parameter="_wb-M4E_FEdy2tpS719xBwQ"/>
+ <C_Cpp:Const xmi:id="_89qL0E_FEdy2tpS719xBwQ" base_parameter="_wfQKYE_FEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_89qL0U_FEdy2tpS719xBwQ" base_parameter="_wfQKYE_FEdy2tpS719xBwQ"/>
+ <C_Cpp:Const xmi:id="_LGUIkE_GEdy2tpS719xBwQ" base_parameter="_BiBu4E_GEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_LGUIkU_GEdy2tpS719xBwQ" base_parameter="_BiBu4E_GEdy2tpS719xBwQ"/>
+ <C_Cpp:Const xmi:id="_M2rS8E_GEdy2tpS719xBwQ" base_parameter="_BlTsYE_GEdy2tpS719xBwQ"/>
+ <C_Cpp:Ref xmi:id="_M2rS8U_GEdy2tpS719xBwQ" base_parameter="_BlTsYE_GEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_DtBU4E_IEdy2tpS719xBwQ" base_parameter="_9L7mcE_HEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_JwdeAE_IEdy2tpS719xBwQ" base_parameter="_G6XaoE_IEdy2tpS719xBwQ" declaration="**"/>
+ <C_Cpp:Ptr xmi:id="_s-l_sE_IEdy2tpS719xBwQ" base_property="_hkukcE_IEdy2tpS719xBwQ" declaration="**"/>
+ <C_Cpp:Const xmi:id="_U9T7gE_JEdy2tpS719xBwQ" base_parameter="_NHIpcE_JEdy2tpS719xBwQ"/>
+ <C_Cpp:Ref xmi:id="_U9T7gU_JEdy2tpS719xBwQ" base_parameter="_NHIpcE_JEdy2tpS719xBwQ"/>
+ <C_Cpp:Inline xmi:id="_55tV0E_JEdy2tpS719xBwQ" base_operation="_fBQXkE_HEdy2tpS719xBwQ"/>
+ <C_Cpp:Inline xmi:id="_6uKRkE_JEdy2tpS719xBwQ" base_operation="_fMk2wE_HEdy2tpS719xBwQ"/>
+ <C_Cpp:Inline xmi:id="_7YBt8E_JEdy2tpS719xBwQ" base_operation="_fRpkAE_HEdy2tpS719xBwQ"/>
+ <C_Cpp:Inline xmi:id="_8FB94E_JEdy2tpS719xBwQ" base_operation="_fWj5ME_HEdy2tpS719xBwQ"/>
+ <C_Cpp:Inline xmi:id="_8xvS4E_JEdy2tpS719xBwQ" base_operation="_fbomcE_HEdy2tpS719xBwQ"/>
+ <C_Cpp:Inline xmi:id="_9gOwkE_JEdy2tpS719xBwQ" base_operation="_ffqK0E_HEdy2tpS719xBwQ"/>
+ <C_Cpp:Inline xmi:id="_-NYKcE_JEdy2tpS719xBwQ" base_operation="_fkkgAE_HEdy2tpS719xBwQ"/>
+ <C_Cpp:Include xmi:id="_bphYAE_NEdy2tpS719xBwQ" body="#include &lt;OS_AL/ProcessingResources/System.h>&#xD;&#xA;#include &lt;OS_AL/ProcessingResources/ProDesc.h>&#xD;&#xA;#include &lt;OS_AL/Tracing/Trace.h>&#xD;&#xA;#include &lt;OS_AL/Time/DebugTimer.h>&#xD;&#xA;&#xD;&#xA;#if defined SYSTEM_Solaris&#xD;&#xA;&#x9;#include &lt;sys/priocntl.h>&#xD;&#xA;&#x9;#include &lt;sys/rtpriocntl.h>&#xD;&#xA;&#x9;#include &lt;sys/tspriocntl.h>&#xD;&#xA;&#xD;&#xA;#elif defined SYSTEM_VxWorks&#xD;&#xA;&#x9;#include &lt;configAll.h>&#x9;//-VxW&#xD;&#xA;&#xD;&#xA;#elif defined SYSTEM_Cygwin&#xD;&#xA; #include &lt;sys/unistd.h>&#x9;&#x9;// for _SC_SEM_NSEMS_MAX and _SC_OPEN_MQ_MAX&#xD;&#xA;#endif&#xD;&#xA;&#xD;&#xA;#if defined SYSTEM_Linux || defined SYSTEM_Solaris&#xD;&#xA;&#x9;#include &lt;sys/utsname.h>&#xD;&#xA;#endif&#xD;&#xA;" header="#if defined SYSTEM_POSIX4 || defined SYSTEM_Linux&#xD;&#xA;&#x9;#define SYS_NMLN&#x9;250&#x9;&#x9;&#x9;// vérif. s'il existe&#xD;&#xA;&#x9;#include &lt;limits.h>&#xD;&#xA;&#x9;#include &lt;unistd.h>&#xD;&#xA;&#xD;&#xA;#elif defined SYSTEM_Solaris&#xD;&#xA;&#x9;#include &lt;sys/utsname.h>&#xD;&#xA;&#xD;&#xA;#elif defined SYSTEM_VxWorks&#xD;&#xA;&#x9;#include &lt;vxWorks.h>&#xD;&#xA;&#x9;#include &lt;configAll.h>&#x9;&#x9;//-VxW&#xD;&#xA;&#x9;#define SYS_NMLN&#x9;250&#x9;&#x9;// vérif. s'il existe&#xD;&#xA;#else&#xD;&#xA;&#x9;SYSTEM_x_not_defined;&#xD;&#xA;#endif&#xD;&#xA;" base_class="_TVGDsE_NEdy2tpS719xBwQ"/>
+ <C_Cpp:Const xmi:id="_cZtCUE_OEdy2tpS719xBwQ" base_parameter="_YIRCUE_OEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_cZtCUU_OEdy2tpS719xBwQ" base_parameter="_YIRCUE_OEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_5ufNME_dEdy2tpS719xBwQ" base_parameter="_1uCPgE_dEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_GgHsoE_eEdy2tpS719xBwQ" base_parameter="__yhMME_dEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_HZ7pgE_eEdy2tpS719xBwQ" base_parameter="_BjxHYE_eEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_IQBkAE_eEdy2tpS719xBwQ" base_parameter="_DiSCgE_eEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_u1BT0E_eEdy2tpS719xBwQ" base_property="_c8Tl0E_eEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_vniV4E_eEdy2tpS719xBwQ" base_property="_c_4eQE_eEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_wNFS8E_eEdy2tpS719xBwQ" base_property="_dC25wE_eEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_w0IE0E_eEdy2tpS719xBwQ" base_property="_dF18UE_eEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_xecNIE_eEdy2tpS719xBwQ" base_property="_dJHSwE_eEdy2tpS719xBwQ"/>
+ <C_Cpp:Include xmi:id="_UXASAE_gEdy2tpS719xBwQ" body="#include &lt;stdio.h>&#xD;&#xA;#if defined THREAD_Solaris&#xD;&#xA;&#x9;#include &lt;sys/priocntl.h>&#xD;&#xA;&#x9;#include &lt;sys/rtpriocntl.h>&#xD;&#xA;&#x9;#include &lt;sys/tspriocntl.h>&#xD;&#xA;&#xD;&#xA;#elif defined THREAD_POSIX4&#xD;&#xA;&#x9;#include &lt;sys/resource.h>&#xD;&#xA;&#xD;&#xA;#endif&#xD;&#xA;#include &lt;errno.h>&#xD;&#xA;&#xD;&#xA;#define ThExecOUT&#x9;-2&#xD;&#xA;&#xD;&#xA;// TODO: other sequence, avoid manual includes if possible&#xD;&#xA;#include &lt;OS_AL/Sets/SetOf.h>&#xD;&#xA;#include &lt;OS_AL/Util/BString50.h>&#xD;&#xA;&#xD;&#xA;OS_AL::Sets::SetOf &lt;OS_AL::ProcessingResources::Thread *> set_of_threads;&#xD;&#xA;&#xD;&#xA;const static OS_AL::Util::BString50 threadName_main (&quot;Main&quot;);&#xD;&#xA;" header="#define CancelThSIG&#x9;SIGQUIT&#x9;&#x9;// by waiting for availability of thread-cancellation&#xD;&#xA;#define DefaultExecPrio&#x9;-1&#xD;&#xA;&#xD;&#xA;#if defined THREAD_POSIX4&#xD;&#xA;&#x9;#include &lt;pthread.h>&#xD;&#xA;&#x9;#include &lt;sys/procfs.h> // lwpid_t type declaration&#xD;&#xA;&#x9;typedef struct sched_param SchedParam;&#xD;&#xA;&#x9;typedef pthread_t ThreadId;&#xD;&#xA;&#xD;&#xA;#elif defined THREAD_Solaris&#xD;&#xA;&#x9;#include &lt;thread.h>&#xD;&#xA;&#x9;typedef thread_t ThreadId;&#xD;&#xA;&#x9;typedef struct&#xD;&#xA;&#x9;{&#xD;&#xA;&#x9;&#x9;int sched_priority;&#xD;&#xA;&#x9;} SchedParam;&#xD;&#xA;&#xD;&#xA;#elif defined THREAD_VxWorks&#xD;&#xA;&#x9;#include &lt;vxWorks.h>&#x9;&#x9;&#x9;//-VxW&#xD;&#xA;&#x9;#include &lt;configAll.h>&#x9;&#x9;&#x9;//-VxW&#xD;&#xA;&#x9;#include &lt;signal.h>&#x9;&#x9;&#x9;&#x9;//-VxW&#xD;&#xA;&#x9;#include &lt;sched.h>&#x9;&#x9;&#x9;&#x9;//-VxW&#xD;&#xA;&#x9;#include &lt;taskLib.h>&#x9;&#x9;&#x9;//-VxW&#xD;&#xA;&#x9;#include &lt;taskVarLib.h>&#x9;&#x9;&#x9;//-VxW&#xD;&#xA;&#x9;typedef int ThreadId;&#x9;&#x9;&#x9;//-VxW&#xD;&#xA;&#x9;typedef struct sched_param SchedParam;&#xD;&#xA;#else&#xD;&#xA;&#x9;THREAD_x_not_defined;&#xD;&#xA;#endif&#xD;&#xA;" base_class="_-HeCsDj_Edy0Rd6V_tf1-Q"/>
+ <C_Cpp:Const xmi:id="_EEa-4E_hEdy2tpS719xBwQ" base_parameter="_srl3QE_gEdy2tpS719xBwQ"/>
+ <C_Cpp:Ref xmi:id="_EEkv4E_hEdy2tpS719xBwQ" base_parameter="_srl3QE_gEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_FnXYUE_hEdy2tpS719xBwQ" base_parameter="_suk50E_gEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_HRxEoE_hEdy2tpS719xBwQ" base_parameter="_s1R-wE_gEdy2tpS719xBwQ"/>
+ <standard:Create xmi:id="_VTHfgE_hEdy2tpS719xBwQ" base_BehavioralFeature="_oCK1EE_gEdy2tpS719xBwQ"/>
+ <C_Cpp:Const xmi:id="_mhqPIE_hEdy2tpS719xBwQ" base_parameter="_X1168E_hEdy2tpS719xBwQ"/>
+ <C_Cpp:Ref xmi:id="_mh0AIE_hEdy2tpS719xBwQ" base_parameter="_X1168E_hEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_oPoz4E_hEdy2tpS719xBwQ" base_parameter="_X4XqgE_hEdy2tpS719xBwQ"/>
+ <standard:Create xmi:id="_zCc2ME_hEdy2tpS719xBwQ" base_BehavioralFeature="_VpnT8E_hEdy2tpS719xBwQ"/>
+ <standard:Destroy xmi:id="_0IfRME_hEdy2tpS719xBwQ" base_BehavioralFeature="_vOOWoE_hEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_IYwFYE_iEdy2tpS719xBwQ" base_parameter="_BxQ0AE_iEdy2tpS719xBwQ"/>
+ <C_Cpp:Const xmi:id="_m7pnAE_iEdy2tpS719xBwQ" base_parameter="_h151ME_iEdy2tpS719xBwQ"/>
+ <C_Cpp:Ref xmi:id="_m7pnAU_iEdy2tpS719xBwQ" base_parameter="_h151ME_iEdy2tpS719xBwQ"/>
+ <C_Cpp:Const xmi:id="_7VcKoE_iEdy2tpS719xBwQ" base_parameter="_qgiDAE_iEdy2tpS719xBwQ"/>
+ <C_Cpp:Ref xmi:id="_7VcKoU_iEdy2tpS719xBwQ" base_parameter="_qgiDAE_iEdy2tpS719xBwQ"/>
+ <C_Cpp:Inline xmi:id="_D2YQ8E_jEdy2tpS719xBwQ" base_operation="_dS4V8E_iEdy2tpS719xBwQ"/>
+ <C_Cpp:Ref xmi:id="_kYiUkE_jEdy2tpS719xBwQ" base_parameter="_diu6YE_jEdy2tpS719xBwQ"/>
+ <C_Cpp:Inline xmi:id="_ySu-kE_jEdy2tpS719xBwQ" base_operation="_mdJ3sE_jEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_H0zY4E_kEdy2tpS719xBwQ" base_parameter="__Um5cE_jEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_I2XjkE_kEdy2tpS719xBwQ" base_parameter="__YLx4E_jEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_grzusE_kEdy2tpS719xBwQ" base_parameter="_dhdSkE_kEdy2tpS719xBwQ" declaration="**"/>
+ <C_Cpp:Ptr xmi:id="_ig59ME_mEdy2tpS719xBwQ" base_parameter="_WqIjgE_mEdy2tpS719xBwQ"/>
+ <C_Cpp:Const xmi:id="_FvULsE_nEdy2tpS719xBwQ" base_parameter="_9hJ3cE_mEdy2tpS719xBwQ"/>
+ <C_Cpp:Ref xmi:id="_FvULsU_nEdy2tpS719xBwQ" base_parameter="_9hJ3cE_mEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_cS8wsE_nEdy2tpS719xBwQ" base_parameter="_VzWQAE_nEdy2tpS719xBwQ" declaration="**"/>
+ <C_Cpp:Ptr xmi:id="_cm-DcE_oEdy2tpS719xBwQ" base_property="_Z47I0E_oEdy2tpS719xBwQ"/>
+ <C_Cpp:ConstInit xmi:id="_1BSAwE_pEdy2tpS719xBwQ" initialisation="&#x9;m_name (name),&#xD;&#xA;&#x9;m_semaphore (0),&#xD;&#xA;&#x9;m_threadId (0)&#xD;&#xA;#ifdef THREAD_Solaris&#xD;&#xA;&#x9;, m_lwpId (0)&#xD;&#xA;#endif&#xD;&#xA;" base_operation="_oCK1EE_gEdy2tpS719xBwQ"/>
+ <C_Cpp:ConstInit xmi:id="_75KekE_pEdy2tpS719xBwQ" initialisation="&#x9;m_name (name),&#xD;&#xA;&#x9;m_semaphore (0),&#xD;&#xA;&#x9;m_threadId (0),&#xD;&#xA;#ifdef THREAD_Solaris&#xD;&#xA;&#x9;m_lwpId (0),&#xD;&#xA;#endif&#xD;&#xA;&#x9;m_joined (false)&#xD;&#xA;" base_operation="_VpnT8E_hEdy2tpS719xBwQ"/>
+ <C_Cpp:Include xmi:id="_Q72YwE_rEdy2tpS719xBwQ" body="#include &lt;OS_AL/ProcessingResources/ProDesc.h>&#xD;&#xA;#include &lt;OS_AL/Tracing/Trace.h>&#xD;&#xA;&#xD;&#xA;#include &lt;errno.h>" header="#if defined THREAD_POSIX4&#xD;&#xA;&#x9;#include &lt;pthread.h>&#xD;&#xA;&#x9;#ifdef THREAD_Linux&#xD;&#xA;&#x9;&#x9;#include &lt;bits/local_lim.h>&#xD;&#xA;&#x9;#endif&#xD;&#xA;#elif defined THREAD_Solaris&#xD;&#xA;&#x9;#include &lt;thread.h>&#xD;&#xA;#elif defined THREAD_VxWorks&#xD;&#xA;&#x9;#define PTHREAD_STACK_MIN&#x9;WDB_SPAWN_STACK_SIZE&#xD;&#xA;#else&#xD;&#xA;&#x9;#error Define THREAD_POSIX4 | THREAD_Solaris | THREAD_VxWorks | THREAD_Linux&#xD;&#xA;#endif&#xD;&#xA;" base_class="_Saw1YDkDEdyuzNpSiGPe4w"/>
+ <standard:Create xmi:id="_cxbfoE_rEdy2tpS719xBwQ" base_BehavioralFeature="_YAjKkE_rEdy2tpS719xBwQ"/>
+ <C_Cpp:Const xmi:id="_sTffUE_rEdy2tpS719xBwQ" base_operation="_f_9RIE_rEdy2tpS719xBwQ"/>
+ <C_Cpp:Inline xmi:id="_sTffUU_rEdy2tpS719xBwQ" base_operation="_f_9RIE_rEdy2tpS719xBwQ"/>
+ <C_Cpp:Inline xmi:id="_7RMNsE_rEdy2tpS719xBwQ" base_operation="_vxhFYE_rEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_8IoMAE_rEdy2tpS719xBwQ" base_parameter="_ztpjwE_rEdy2tpS719xBwQ"/>
+ <C_Cpp:Inline xmi:id="_-s-_IE_rEdy2tpS719xBwQ" base_operation="_v5HiME_rEdy2tpS719xBwQ"/>
+ <C_Cpp:Const xmi:id="_-tIwIE_rEdy2tpS719xBwQ" base_operation="_v5HiME_rEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="__8thoE_rEdy2tpS719xBwQ" base_parameter="_2eX-8E_rEdy2tpS719xBwQ"/>
+ <C_Cpp:Inline xmi:id="_2fr7oE_tEdy2tpS719xBwQ" base_operation="_oN8UUE_tEdy2tpS719xBwQ"/>
+ <C_Cpp:Inline xmi:id="_3pvT8E_tEdy2tpS719xBwQ" base_operation="_ofORkE_tEdy2tpS719xBwQ"/>
+ <C_Cpp:Const xmi:id="_3p5E8E_tEdy2tpS719xBwQ" base_operation="_ofORkE_tEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_AHaD0E_uEdy2tpS719xBwQ" base_property="_9TGJIE_tEdy2tpS719xBwQ"/>
+ <C_Cpp:Include xmi:id="_PSuiAE_vEdy2tpS719xBwQ" body="#include &lt;OS_AL/Tracing/Trace.h>" header="#include &lt;errno.h>&#xD;&#xA;&#xD;&#xA;#if defined THREAD_POSIX4&#xD;&#xA;&#xD;&#xA;&#x9;#include &lt;pthread.h>&#xD;&#xA;&#x9;typedef pthread_key_t ThreadKey;&#xD;&#xA;&#xD;&#xA;#elif defined THREAD_Solaris&#xD;&#xA;&#xD;&#xA;&#x9;#include &lt;thread.h>&#xD;&#xA;&#x9;#if defined(__SunOS_5_5) || defined(__SunOS_5_5_1)&#xD;&#xA;&#x9;&#x9;typedef thread_t pthread_t;&#xD;&#xA;&#x9;&#x9;typedef int pthread_once_t;&#xD;&#xA;&#x9;#endif&#xD;&#xA;&#x9;typedef thread_key_t ThreadKey;&#xD;&#xA;&#xD;&#xA;#elif defined THREAD_VxWorks&#xD;&#xA;&#xD;&#xA;&#x9;#include &lt;sched.h>&#x9;&#x9;&#x9;&#x9;//-VxW&#xD;&#xA;&#x9;#include &lt;taskLib.h>&#x9;&#x9;&#x9;//-VxW&#xD;&#xA;&#x9;#include &lt;taskVarLib.h>&#x9;&#x9;&#x9;//-VxW&#xD;&#xA;&#x9;typedef int pthread_t;&#x9;&#x9;&#x9;//-VxW&#xD;&#xA;&#x9;typedef int ThreadKey;&#x9;&#x9;&#x9;//-VxW&#xD;&#xA;&#xD;&#xA;#else&#xD;&#xA;&#xD;&#xA;&#x9;THREAD_x_not_defined;&#xD;&#xA;&#xD;&#xA;#endif&#xD;&#xA;" base_class="_9-OUUE_uEdy2tpS719xBwQ"/>
+ <C_Cpp:Inline xmi:id="_gmJfsE_xEdy2tpS719xBwQ" base_operation="_ZtXqAE_xEdy2tpS719xBwQ"/>
+ <C_Cpp:Inline xmi:id="_hVYkQE_xEdy2tpS719xBwQ" base_operation="_Z2BPsE_xEdy2tpS719xBwQ"/>
+ <C_Cpp:Inline xmi:id="_icKmIE_xEdy2tpS719xBwQ" base_operation="_Z7FV4E_xEdy2tpS719xBwQ"/>
+ <C_Cpp:Inline xmi:id="_jVieIE_xEdy2tpS719xBwQ" base_operation="_aJrykE_xEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_taxBsE_xEdy2tpS719xBwQ" base_parameter="_n-EvgE_xEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_0mwuUE_xEdy2tpS719xBwQ" base_parameter="_vzzVoE_xEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_41YD0E_xEdy2tpS719xBwQ" base_parameter="_1w0tsE_xEdy2tpS719xBwQ"/>
+ <C_Cpp:Inline xmi:id="_FZJGYE_yEdy2tpS719xBwQ" base_operation="_ECHpEE_yEdy2tpS719xBwQ"/>
+ <C_Cpp:Inline xmi:id="_GuFgEE_yEdy2tpS719xBwQ" base_operation="_ETtIUE_yEdy2tpS719xBwQ"/>
+ <C_Cpp:Inline xmi:id="_E4NjkE_yEdy2tpS719xBwQ" base_operation="_D9gO0E_yEdy2tpS719xBwQ"/>
+ <C_Cpp:Const xmi:id="_J_mUIE_yEdy2tpS719xBwQ" base_operation="_D9gO0E_yEdy2tpS719xBwQ"/>
+ <C_Cpp:Inline xmi:id="_GA7fIE_yEdy2tpS719xBwQ" base_operation="_EJIQAE_yEdy2tpS719xBwQ"/>
+ <C_Cpp:Const xmi:id="_KrGvQE_yEdy2tpS719xBwQ" base_operation="_EJIQAE_yEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_YykZME_yEdy2tpS719xBwQ" base_property="_RwZ-AE_yEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_p4eKME_yEdy2tpS719xBwQ" base_parameter="_iqPB4E_yEdy2tpS719xBwQ"/>
+ <C_Cpp:Ptr xmi:id="_zMONgE_yEdy2tpS719xBwQ" base_parameter="_tK4WIE_yEdy2tpS719xBwQ"/>
+ <C_Cpp:Include xmi:id="_iOOrAFClEdyTutVzffQTmQ" body="#include &lt;OS_AL/Communication/MessageBuffer.h>&#xD;&#xA;#include &lt;OS_AL/ProcessingResources/ProDesc.h>&#xD;&#xA;&#xD;&#xA;// it is useful to align objects in the buffer to allow for quicker&#xD;&#xA;// memory transfer (which might not be employed by memcpy)&#xD;&#xA;#define MB_ALIGNMENT 4&#xD;&#xA;&#xD;&#xA;#ifdef USE_NETWORK_BYTE_ORDER&#xD;&#xA;MessageBuffer &amp; operator &lt;&lt; (MessageBuffer &amp; msg, int value)&#xD;&#xA;{&#xD;&#xA;&#x9;byte value_buf[4];&#xD;&#xA;&#x9;value_buf[3] = value &amp; 0xff; value >>= 8;&#xD;&#xA;&#x9;value_buf[2] = value &amp; 0xff; value >>= 8;&#xD;&#xA;&#x9;value_buf[1] = value &amp; 0xff; value >>= 8;&#xD;&#xA;&#x9;value_buf[0] = value;&#xD;&#xA;&#x9;msg.addToBuffer (value_buf, 4);&#xD;&#xA;&#x9;return msg;&#xD;&#xA;};&#xD;&#xA;&#xD;&#xA;MessageBuffer &amp; operator >> (MessageBuffer &amp; msg, int &amp; value)&#xD;&#xA;{&#xD;&#xA;&#x9;byte value_buf[4];&#xD;&#xA;&#x9;msg.getFromBuffer (value_buf, 4);&#xD;&#xA;&#x9;value = value_buf[0] +&#xD;&#xA;&#x9;&#x9;(value_buf[1] &lt;&lt; 8) +&#xD;&#xA;&#x9;&#x9;(value_buf[1] &lt;&lt; 16) +&#xD;&#xA;&#x9;&#x9;(value_buf[2] &lt;&lt; 24);&#xD;&#xA;&#x9;return msg;&#xD;&#xA;};&#xD;&#xA;#endif&#xD;&#xA;" header="#define MAX_MESSAGE_SIZE 800&#xD;&#xA;&#xD;&#xA;/**&#xD;&#xA; * handle hetereogeneous network configurations (currently incomplete)&#xD;&#xA; */&#xD;&#xA;#ifdef USE_NETWORK_BYTE_ORDER&#xD;&#xA;&#x9;MessageBuffer &amp; operator &lt;&lt; (MessageBuffer &amp; msg, int value);&#xD;&#xA;&#x9;MessageBuffer &amp; operator >> (MessageBuffer &amp; msg, int &amp; value);&#xD;&#xA;#endif&#xD;&#xA;" base_class="_LbxUEDRPEdy1p4IpsoZYqA"/>
+ <C_Cpp:Const xmi:id="_1MrSAFClEdyTutVzffQTmQ" base_parameter="_qqshAFClEdyTutVzffQTmQ"/>
+ <C_Cpp:Ref xmi:id="_1MrSAVClEdyTutVzffQTmQ" base_parameter="_qqshAFClEdyTutVzffQTmQ"/>
+ <standard:Create xmi:id="_8P4PAFClEdyTutVzffQTmQ" base_BehavioralFeature="_3v1yUFClEdyTutVzffQTmQ"/>
+ <standard:Create xmi:id="_8_twgFClEdyTutVzffQTmQ" base_BehavioralFeature="_oHiAsFClEdyTutVzffQTmQ"/>
+ <C_Cpp:Inline xmi:id="_ASH8cFCmEdyTutVzffQTmQ" base_operation="_9XQt0FClEdyTutVzffQTmQ"/>
+ <C_Cpp:Inline xmi:id="_Km-3cFCmEdyTutVzffQTmQ" base_operation="_FSpQAFCmEdyTutVzffQTmQ"/>
+ <C_Cpp:Inline xmi:id="_QRh_cFCmEdyTutVzffQTmQ" base_operation="_Olf7cFCmEdyTutVzffQTmQ"/>
+ <C_Cpp:Const xmi:id="_Xe3v4FCmEdyTutVzffQTmQ" base_operation="_UH_6sFCmEdyTutVzffQTmQ"/>
+ <C_Cpp:Inline xmi:id="_Xe3v4VCmEdyTutVzffQTmQ" base_operation="_UH_6sFCmEdyTutVzffQTmQ"/>
+ <C_Cpp:Const xmi:id="_YN9qgFCmEdyTutVzffQTmQ" base_operation="_UVQTkFCmEdyTutVzffQTmQ"/>
+ <C_Cpp:Inline xmi:id="_YN9qgVCmEdyTutVzffQTmQ" base_operation="_UVQTkFCmEdyTutVzffQTmQ"/>
+ <C_Cpp:Const xmi:id="_scRW4FCmEdyTutVzffQTmQ" base_parameter="_lT2isFCmEdyTutVzffQTmQ"/>
+ <C_Cpp:Ptr xmi:id="_scRW4VCmEdyTutVzffQTmQ" base_parameter="_lT2isFCmEdyTutVzffQTmQ"/>
+ <C_Cpp:Ptr xmi:id="_6pse4FCmEdyTutVzffQTmQ" base_parameter="_04JXAFCmEdyTutVzffQTmQ"/>
+ <standard:Create xmi:id="_ObP90FCnEdyTutVzffQTmQ" base_BehavioralFeature="_9ececFCmEdyTutVzffQTmQ"/>
+ <C_Cpp:Inline xmi:id="_QO4eoFCnEdyTutVzffQTmQ" base_operation="_9ececFCmEdyTutVzffQTmQ"/>
+ <C_Cpp:Ptr xmi:id="_ztN_gFCnEdyTutVzffQTmQ" base_property="_iRkoAFCnEdyTutVzffQTmQ"/>
+ <C_Cpp:Ptr xmi:id="_0kgM0FCnEdyTutVzffQTmQ" base_property="_iVcbYFCnEdyTutVzffQTmQ"/>
+ <C_Cpp:Ptr xmi:id="_1TJbgFCnEdyTutVzffQTmQ" base_property="_iY4J4FCnEdyTutVzffQTmQ"/>
+ <standard:Create xmi:id="_rCIFYFCsEdyqzLG48ixyqA" base_BehavioralFeature="_i3atwFCsEdyqzLG48ixyqA"/>
+ <C_Cpp:Const xmi:id="_0NfowFCsEdyqzLG48ixyqA" base_parameter="_sZUh0FCsEdyqzLG48ixyqA"/>
+ <C_Cpp:Ref xmi:id="_0NpZwFCsEdyqzLG48ixyqA" base_parameter="_sZUh0FCsEdyqzLG48ixyqA"/>
+ <standard:Create xmi:id="_3FZC8FCsEdyqzLG48ixyqA" base_BehavioralFeature="_k-Am0FCsEdyqzLG48ixyqA"/>
+ <C_Cpp:Inline xmi:id="_EEzfsFCtEdyqzLG48ixyqA" base_operation="__McpoFCsEdyqzLG48ixyqA"/>
+ <C_Cpp:Ptr xmi:id="_QIAy4FCtEdyqzLG48ixyqA" base_parameter="_KUMaIFCtEdyqzLG48ixyqA"/>
+ <C_Cpp:Const xmi:id="_Tz6c4FCtEdyqzLG48ixyqA" base_operation="_JEUGoFCtEdyqzLG48ixyqA"/>
+ <C_Cpp:Inline xmi:id="_Tz6c4VCtEdyqzLG48ixyqA" base_operation="_JEUGoFCtEdyqzLG48ixyqA"/>
+ <C_Cpp:Const xmi:id="_Yf5q4FCtEdyqzLG48ixyqA" base_operation="_V5vg8FCtEdyqzLG48ixyqA"/>
+ <C_Cpp:Inline xmi:id="_Yf5q4VCtEdyqzLG48ixyqA" base_operation="_V5vg8FCtEdyqzLG48ixyqA"/>
+ <standard:Create xmi:id="_hfusoFCtEdyqzLG48ixyqA" base_BehavioralFeature="_cxNvEFCtEdyqzLG48ixyqA"/>
+ <C_Cpp:ConstInit xmi:id="_4CE4MFCtEdyqzLG48ixyqA" initialisation="&#x9;MessageBuffer (NO_RESET)" base_operation="_i3atwFCsEdyqzLG48ixyqA"/>
+ <C_Cpp:ConstInit xmi:id="_9REFkFCtEdyqzLG48ixyqA" initialisation="&#x9;MessageBuffer (NO_RESET)" base_operation="_cxNvEFCtEdyqzLG48ixyqA"/>
+ <C_Cpp:ConstInit xmi:id="__L2-UFCtEdyqzLG48ixyqA" initialisation="&#x9;MessageBuffer (msg)" base_operation="_k-Am0FCsEdyqzLG48ixyqA"/>
+ <C_Cpp:Include xmi:id="_LAexAFCwEdyqzLG48ixyqA" body="#include &lt;OS_AL/Communication/SharedMemory.h>&#xD;&#xA;#include &lt;OS_AL/Synchronization/SM_Mutex.h>&#xD;&#xA;#include &lt;OS_AL/Util/BString50.h>&#xD;&#xA;#include &lt;OS_AL/Util/BString500.h>&#xD;&#xA;#include &lt;OS_AL/ProcessingResources/Process.h>&#xD;&#xA;#include &lt;OS_AL/Tracing/Trace.h>&#xD;&#xA;&#xD;&#xA;#ifndef SYNCHRO_VxWorks&#xD;&#xA;&#xD;&#xA;// Extract from &lt;sys/ipc.h> &#xD;&#xA;// we use the compilation option -D_XOPEN_SOURCE to get shmdt(void*) defined&#xD;&#xA;// [todo: not true - don't use this option]&#xD;&#xA;extern &quot;C&quot;&#xD;&#xA;{&#xD;&#xA;&#x9;// #if defined(__STDC__) &amp;&amp; !defined(_KERNEL) &amp;&amp; !defined(_XOPEN_SOURCE)&#xD;&#xA;&#x9;key_t ftok (const char *, int);&#xD;&#xA;&#x9;// #endif&#xD;&#xA;}&#xD;&#xA;&#xD;&#xA;# include &lt;fcntl.h>&#xD;&#xA;&#xD;&#xA;#else //-VxW&#xD;&#xA;&#x9;//#define MultiCPU&#xD;&#xA;&#x9;#ifdef MultiCPU&#xD;&#xA;&#x9;&#x9;#include &lt;smMemLib.h>&#xD;&#xA;&#x9;#else // monoCPU&#xD;&#xA;&#x9;&#x9;//#define OutOfHeap&#xD;&#xA;&#x9;&#x9;#ifdef OutOfHeap&#xD;&#xA;&#x9;&#x9;&#x9;#include &lt;memLib.h>&#xD;&#xA;&#x9;&#x9;#endif&#xD;&#xA;&#x9;#endif&#xD;&#xA;#endif&#xD;&#xA;" header="#if defined SYNCHRO_Linux&#xD;&#xA;&#x9;#include &lt;sys/stat.h>&#xD;&#xA;&#x9;#include &lt;sys/mman.h>&#xD;&#xA;&#x9;#include &lt;sys/types.h>&#xD;&#xA;&#xD;&#xA;#elif defined SYNCHRO_Cygwin&#xD;&#xA;&#x9;#include &lt;cygwin/shm.h>&#xD;&#xA;&#x9;#include &lt;sys/mman.h>&#xD;&#xA;&#x9;#include &lt;sys/types.h>&#xD;&#xA;&#x9;&#xD;&#xA;#elif defined SYNCHRO_Solaris || defined SYNCHRO_Cygwin&#xD;&#xA;&#x9;#include &lt;sys/stat.h>&#xD;&#xA;&#x9;#include &lt;sys/shm.h>&#xD;&#xA;&#x9;#include &lt;sys/mman.h>&#xD;&#xA;&#x9;#include &lt;sys/types.h>&#xD;&#xA;&#xD;&#xA;#elif defined SYNCHRO_VxWorks&#xD;&#xA;&#x9;&#xD;&#xA;#else&#xD;&#xA;&#x9;# error SYNCHRO_x??? not defined&#xD;&#xA;#endif&#xD;&#xA;&#xD;&#xA;#if defined SYNCHRO_VxWorks&#xD;&#xA;&#x9;typedef int Key;&#xD;&#xA;#else&#xD;&#xA;&#x9;typedef key_t Key;&#xD;&#xA;#endif&#xD;&#xA;" base_class="_sq-yMFCvEdyqzLG48ixyqA"/>
+ <standard:Create xmi:id="_YkCcoFCwEdyqzLG48ixyqA" base_BehavioralFeature="_W9qUsFCwEdyqzLG48ixyqA"/>
+ <C_Cpp:Const xmi:id="_q0vz4FCwEdyqzLG48ixyqA" base_parameter="_bUnt4FCwEdyqzLG48ixyqA"/>
+ <C_Cpp:Ref xmi:id="_q0vz4VCwEdyqzLG48ixyqA" base_parameter="_bUnt4FCwEdyqzLG48ixyqA"/>
+ <standard:Create xmi:id="_w4VuAFCwEdyqzLG48ixyqA" base_BehavioralFeature="_ZznOIFCwEdyqzLG48ixyqA"/>
+ <standard:Destroy xmi:id="_0VUyQFCwEdyqzLG48ixyqA" base_BehavioralFeature="_yFEm4FCwEdyqzLG48ixyqA"/>
+ <C_Cpp:Const xmi:id="_NshrEFCxEdyqzLG48ixyqA" base_parameter="_87L00FCwEdyqzLG48ixyqA"/>
+ <C_Cpp:Ref xmi:id="_NshrEVCxEdyqzLG48ixyqA" base_parameter="_87L00FCwEdyqzLG48ixyqA"/>
+ <C_Cpp:Ptr xmi:id="_dt414FCxEdyqzLG48ixyqA" base_parameter="_bNjAEFCxEdyqzLG48ixyqA"/>
+ <C_Cpp:Const xmi:id="_oFmQkFCxEdyqzLG48ixyqA" base_parameter="_iRXBEFCxEdyqzLG48ixyqA"/>
+ <C_Cpp:Ptr xmi:id="_oFmQkVCxEdyqzLG48ixyqA" base_parameter="_iRXBEFCxEdyqzLG48ixyqA"/>
+ <C_Cpp:Ptr xmi:id="_0zNLoFCxEdyqzLG48ixyqA" base_parameter="_vhjEwFCxEdyqzLG48ixyqA"/>
+ <C_Cpp:Const xmi:id="_9D52gFCxEdyqzLG48ixyqA" base_operation="_7F2OYFCxEdyqzLG48ixyqA"/>
+ <C_Cpp:Ptr xmi:id="_UfunwFCyEdyqzLG48ixyqA" base_parameter="_-rLWUFCxEdyqzLG48ixyqA"/>
+ <C_Cpp:Inline xmi:id="_ac7UEFC0EdyqzLG48ixyqA" base_operation="_LAqaYFC0EdyqzLG48ixyqA"/>
+ <C_Cpp:Inline xmi:id="_YRmE8FC0EdyqzLG48ixyqA" base_operation="_KxUW0FC0EdyqzLG48ixyqA"/>
+ <C_Cpp:Const xmi:id="_cekbsFC0EdyqzLG48ixyqA" base_operation="_KxUW0FC0EdyqzLG48ixyqA"/>
+ <C_Cpp:Inline xmi:id="_Y6R1kFC0EdyqzLG48ixyqA" base_operation="_K3bl4FC0EdyqzLG48ixyqA"/>
+ <C_Cpp:Const xmi:id="_dHPlQFC0EdyqzLG48ixyqA" base_operation="_K3bl4FC0EdyqzLG48ixyqA"/>
+ <C_Cpp:Inline xmi:id="_ZtsPgFC0EdyqzLG48ixyqA" base_operation="_K8DAIFC0EdyqzLG48ixyqA"/>
+ <C_Cpp:Const xmi:id="_eAdsQFC0EdyqzLG48ixyqA" base_operation="_K8DAIFC0EdyqzLG48ixyqA"/>
+ <C_Cpp:Ptr xmi:id="_02JDgFC0EdyqzLG48ixyqA" base_property="_qTs_gFC0EdyqzLG48ixyqA"/>
+ <C_Cpp:Ptr xmi:id="_jYnnQFC1EdyqzLG48ixyqA" base_property="_gOHaIFC1EdyqzLG48ixyqA"/>
+ <C_Cpp:Ptr xmi:id="_kMxoEFC1EdyqzLG48ixyqA" base_property="_gR1cgFC1EdyqzLG48ixyqA"/>
+ <C_Cpp:Ptr xmi:id="_k3sNUFC1EdyqzLG48ixyqA" base_property="_gVRLAFC1EdyqzLG48ixyqA"/>
+ <C_Cpp:ConstInit xmi:id="_VNNcAFC2EdyqzLG48ixyqA" initialisation="&#x9;m_name (&quot;-&quot;),&#xD;&#xA;&#x9;m_mutex (NULL),&#xD;&#xA;&#x9;m_key (-1),&#xD;&#xA;&#x9;m_id (-1)&#xD;&#xA;" base_operation="_W9qUsFCwEdyqzLG48ixyqA"/>
+ <C_Cpp:ConstInit xmi:id="_ZB5OkFC2EdyqzLG48ixyqA" initialisation="&#x9;m_name (name),&#xD;&#xA;&#x9;m_mutex (NULL),&#xD;&#xA;&#x9;m_key (-1),&#xD;&#xA;&#x9;m_id (-1)&#xD;&#xA;" base_operation="_ZznOIFCwEdyqzLG48ixyqA"/>
+ <C_Cpp:Visibility xmi:id="_ATTYcFC3EdyqzLG48ixyqA" value="public" base_generalization="_TmRe8FCsEdyqzLG48ixyqA"/>
+ <C_Cpp:Include xmi:id="_3d4acFC3EdyqzLG48ixyqA" header="#ifdef SYSTEM_Linux&#xD;&#xA;&#x9;// [todo: check, if we can use the pthread barrier for Solaris as well]&#xD;&#xA;&#x9;#define USE_PTHREAD_BARRIER&#xD;&#xA;#endif&#xD;&#xA;&#xD;&#xA;#ifdef USE_PTHREAD_BARRIER&#xD;&#xA;&#x9;#include &lt;pthread.h>&#xD;&#xA;#endif&#xD;&#xA;" base_class="_jXTGsFC3EdyqzLG48ixyqA"/>
+ <standard:Destroy xmi:id="_HaeaAFC4EdyqzLG48ixyqA" base_BehavioralFeature="_FQyJoFC4EdyqzLG48ixyqA"/>
+ <C_Cpp:Const xmi:id="_QbnDUFC4EdyqzLG48ixyqA" base_parameter="_IsliIFC4EdyqzLG48ixyqA"/>
+ <C_Cpp:Ref xmi:id="_QbnDUVC4EdyqzLG48ixyqA" base_parameter="_IsliIFC4EdyqzLG48ixyqA"/>
+ <standard:Create xmi:id="_ShH-UFC4EdyqzLG48ixyqA" base_BehavioralFeature="_FFwlYFC4EdyqzLG48ixyqA"/>
+ <C_Cpp:Inline xmi:id="_WSYCYFC4EdyqzLG48ixyqA" base_operation="_VNO_QFC4EdyqzLG48ixyqA"/>
+ <C_Cpp:Ref xmi:id="_eyuS0FC4EdyqzLG48ixyqA" base_parameter="_XPBQ0FC4EdyqzLG48ixyqA"/>
+ <C_Cpp:Include xmi:id="_SQ2h4FFhEdyjobZYtXo9NQ" body="#include &lt;OS_AL/Synchronization/Mutex.h>&#xD;&#xA;#include &lt;OS_AL/Synchronization/SM_Mutex.h>&#xD;&#xA;#include &lt;OS_AL/Communication/SharedMemory.h>&#xD;&#xA;#include &lt;OS_AL/ProcessingResources/ProDesc.h>&#xD;&#xA;#include &lt;OS_AL/ProcessingResources/Thread.h>&#xD;&#xA;" header="#include &lt;signal.h>" base_class="_5HEaAFFgEdyjobZYtXo9NQ"/>
+ <C_Cpp:Ptr xmi:id="_pVQ4sFFhEdyjobZYtXo9NQ" base_parameter="_lihm4FFhEdyjobZYtXo9NQ"/>
+ <C_Cpp:Ptr xmi:id="_yJRsAFFhEdyjobZYtXo9NQ" base_parameter="_u2uWIFFhEdyjobZYtXo9NQ"/>
+ <C_Cpp:Const xmi:id="_0F_3YFFhEdyjobZYtXo9NQ" base_parameter="_u2uWIFFhEdyjobZYtXo9NQ"/>
+ <standard:Create xmi:id="_5sYREFFhEdyjobZYtXo9NQ" base_BehavioralFeature="_df1i0FFhEdyjobZYtXo9NQ"/>
+ <standard:Create xmi:id="_6p63YFFhEdyjobZYtXo9NQ" base_BehavioralFeature="_dnb_oFFhEdyjobZYtXo9NQ"/>
+ <standard:Destroy xmi:id="_7Ty60FFhEdyjobZYtXo9NQ" base_BehavioralFeature="_du4rcFFhEdyjobZYtXo9NQ"/>
+ <C_Cpp:Ptr xmi:id="_FVb-4FFiEdyjobZYtXo9NQ" base_property="__4miwFFhEdyjobZYtXo9NQ"/>
+ <C_Cpp:Include xmi:id="_xoZ-IFFiEdyjobZYtXo9NQ" body="#include &lt;OS_AL/ProcessingResources/ProDesc.h>&#xD;&#xA;#include &lt;OS_AL/Tracing/Trace.h>&#xD;&#xA;" header="# include &lt;fcntl.h>&#xD;&#xA;&#xD;&#xA;#if defined SYNCHRO_POSIX4 || defined SYNCHRO_Solaris || defined SYNCHRO_Linux&#xD;&#xA;&#x9;// see section 11 of POSIX standard&#xD;&#xA;&#x9;// see fcntl(2) or lockf(3C) of Solaris reference manual&#xD;&#xA;&#x9;#include &lt;sys/types.h>&#xD;&#xA;&#x9;#include &lt;unistd.h>&#xD;&#xA;#elif defined SYNCHRO_VxWorks&#xD;&#xA;&#x9;#include &lt;ioLib.h>&#xD;&#xA;&#x9;#define fcntl(a1, a2, a3) ioctl (a1, a2, (int) a3)&#x9;// use ioctl (works?)&#xD;&#xA;#else&#xD;&#xA;&#x9;#error SYNCHRO_??? not defined&#xD;&#xA;#endif&#xD;&#xA;" base_class="_qIyBkFC3EdyqzLG48ixyqA"/>
+ <standard:Create xmi:id="_Xly6YFFuEdyjobZYtXo9NQ" base_BehavioralFeature="_F6fWQFFuEdyjobZYtXo9NQ"/>
+ <C_Cpp:Ptr xmi:id="_3NPCMFFuEdyjobZYtXo9NQ" base_parameter="_wwdzEFFuEdyjobZYtXo9NQ"/>
+ <C_Cpp:ConstInit xmi:id="_OcrkUFFvEdyjobZYtXo9NQ" initialisation="&#x9;m_lockType (exclusive ? F_WRLCK : F_RDLCK),&#xD;&#xA;&#x9;m_fd (fileDesc)&#xD;&#xA;" base_operation="_F6fWQFFuEdyjobZYtXo9NQ"/>
+ <standard:Create xmi:id="_6UX80FFvEdyjobZYtXo9NQ" base_BehavioralFeature="_4NODEFFvEdyjobZYtXo9NQ"/>
+ <standard:Destroy xmi:id="_69DGYFFvEdyjobZYtXo9NQ" base_BehavioralFeature="_4cRLsFFvEdyjobZYtXo9NQ"/>
+ <standard:Create xmi:id="_RJcQEFFwEdyjobZYtXo9NQ" base_BehavioralFeature="_OEl_AFFwEdyjobZYtXo9NQ"/>
+ <C_Cpp:Ptr xmi:id="_M0zOQFF0EdyjobZYtXo9NQ" base_parameter="_Dd6-cFF0EdyjobZYtXo9NQ"/>
+ <C_Cpp:Const xmi:id="_M0zOQVF0EdyjobZYtXo9NQ" base_parameter="_Dd6-cFF0EdyjobZYtXo9NQ"/>
+ <C_Cpp:Include xmi:id="_X2-iQFF0EdyjobZYtXo9NQ" body="#include &lt;OS_AL/ProcessingResources/ProDesc.h>&#xD;&#xA;#include &lt;OS_AL/Tracing/Trace.h>&#xD;&#xA;#include &lt;stdio.h>&#xD;&#xA;&#xD;&#xA;#if defined SYNCHRO_VxWorks&#xD;&#xA;#define&#x9;SYNCHRO_VxWorks_MES&#x9;1&#x9;// Mutual-Exclusion Semaphore&#xD;&#xA;&#x9;// else Binary Semaphore&#xD;&#xA;#endif&#xD;&#xA;#include &lt;errno.h>" header="#if defined SYNCHRO_POSIX4 || defined SYNCHRO_Linux || defined SYNCHRO_WIN32&#xA; #include &lt;pthread.h>&#xA; typedef pthread_mutex_t MutexId;&#xA;&#xA;#elif defined SYNCHRO_Solaris&#xA; #include &lt;synch.h>&#xA; typedef mutex_t MutexId;&#xA;&#xA;#elif defined SYNCHRO_VxWorks&#xA; #include &lt;semLib.h>&#xA; typedef SEM_ID MutexId;&#xA;&#xA;#else&#xA; #error SYNCHRO_X not defined&#xA;&#xA;#endif&#xA;" base_class="_Jj9usFC7EdyqzLG48ixyqA"/>
+ <C_Cpp:Include xmi:id="_1Rt3EFF2EdyxP5ejovTmBw" body="#include &lt;OS_AL/ProcessingResources/ProDesc.h>&#xD;&#xA;#include &lt;OS_AL/Tracing/Trace.h>&#xD;&#xA;" header="#if defined SYNCHRO_Solaris&#xD;&#xA;&#x9;#include &lt;synch.h>&#xD;&#xA;&#x9;typedef rwlock_t RWLockStruc;&#xD;&#xA;&#xD;&#xA;#elif defined SYNCHRO_POSIX4 || SYNCHRO_Linux&#xD;&#xA;&#x9;#include &lt;pthread.h>&#xD;&#xA;&#x9;typedef pthread_rwlock_t RWLockStruc;&#xD;&#xA;&#xD;&#xA;#elif defined SYNCHRO_VxWorks&#xD;&#xA;&#x9;typedef struct&#xD;&#xA;&#x9;{&#xD;&#xA;&#x9;&#x9;int readers;&#xD;&#xA;&#x9;&#x9;int writers;&#xD;&#xA;&#x9;&#x9;MutexStruc readersMut;&#x9;&#x9;// protège readers&#xD;&#xA;&#x9;&#x9;MutexStruc writersMut;&#x9;&#x9;// protège writers&#xD;&#xA;&#x9;&#x9;MutexStruc readMut;&#x9;&#x9;&#x9;// protège le sémaphore 'read'&#xD;&#xA;&#x9;&#x9;SEM_ID writeSem;&#xD;&#xA;&#x9;&#x9;SEM_ID readSem;&#xD;&#xA;&#x9;} RWLockStruc;&#xD;&#xA;&#xD;&#xA;#else // defined RWLock_Simulation&#xD;&#xA;&#xD;&#xA;&#x9;// this new variant is not up to date (surtout tryRdLock et tryWrLock() )&#xD;&#xA;&#x9;#include &lt;OS_AL/Synchronization/Mutex.h>&#xD;&#xA;&#x9;#include &lt;OS_AL/Synchronization/Semaphore.h>&#xD;&#xA;&#xD;&#xA;&#x9;typedef struct&#xD;&#xA;&#x9;{&#xD;&#xA;&#x9;&#x9;int readers;&#xD;&#xA;&#x9;&#x9;int writers;&#xD;&#xA;&#x9;&#x9;Mutex readersMut;&#xD;&#xA;&#x9;&#x9;Mutex writersMut;&#xD;&#xA;&#x9;&#x9;Mutex readMut;&#xD;&#xA;&#x9;&#x9;Semaphore writeSem;&#xD;&#xA;&#x9;&#x9;Semaphore readSem;&#xD;&#xA;&#x9;} RWLockStruc;&#xD;&#xA;#endif&#xD;&#xA;" base_class="_dhMBIFF2EdyxP5ejovTmBw"/>
+ <standard:Create xmi:id="_xdF5cFF3EdyxP5ejovTmBw" base_BehavioralFeature="_tz4-IFF3EdyxP5ejovTmBw"/>
+ <standard:Destroy xmi:id="_yXNYUFF3EdyxP5ejovTmBw" base_BehavioralFeature="_t6TIIFF3EdyxP5ejovTmBw"/>
+ <C_Cpp:Inline xmi:id="_IHbjYFF4EdyxP5ejovTmBw" base_operation="_-EmMgFF3EdyxP5ejovTmBw"/>
+ <C_Cpp:Const xmi:id="_IHbjYVF4EdyxP5ejovTmBw" base_operation="_-EmMgFF3EdyxP5ejovTmBw"/>
+ <C_Cpp:Inline xmi:id="_JeAUwFF4EdyxP5ejovTmBw" base_operation="_-N-yAFF3EdyxP5ejovTmBw"/>
+ <C_Cpp:Include xmi:id="_TSTq8FF5EdyxP5ejovTmBw" body="#include &lt;OS_AL/ProcessingResources/ProDesc.h>&#xD;&#xA;#include &lt;OS_AL/Tracing/Trace.h>&#xD;&#xA;&#xD;&#xA;#include &lt;errno.h>" header="#if defined SYNCHRO_POSIX4 || defined SYNCHRO_VxWorks ||\&#xD;&#xA; defined SYNCHRO_Linux || defined SYNCHRO_Cygwin&#xD;&#xA;&#x9;// see section 11 of POSIX standard&#xD;&#xA;&#x9;// see semPxLib of section 1 in the VxWorks reference manual&#xD;&#xA;&#x9;// see sem_init(3R) of Solaris reference manual (but not available in&#xD;&#xA;&#x9;// Solaris 2.5 - which is probably not a restriction today)&#xD;&#xA;&#x9;#include &lt;semaphore.h>&#xD;&#xA;&#x9;typedef sem_t SemStruc;&#xD;&#xA;#elif defined SYNCHRO_Solaris&#xD;&#xA;&#x9;// see semaphore(3T) of Solaris reference manual&#xD;&#xA;&#x9;#include &lt;synch.h>&#xD;&#xA;&#x9;typedef sema_t SemStruc;&#xD;&#xA;#else&#xD;&#xA;&#x9;#error SYNCHRO_??? not defined&#xD;&#xA;#endif&#xD;&#xA;" base_class="_D8njME_gEdy2tpS719xBwQ"/>
+ <standard:Create xmi:id="_dGY0IFF5EdyxP5ejovTmBw" base_BehavioralFeature="_aemSgFF5EdyxP5ejovTmBw"/>
+ <standard:Destroy xmi:id="_d1Lz0FF5EdyxP5ejovTmBw" base_BehavioralFeature="_ak3SkFF5EdyxP5ejovTmBw"/>
+ <C_Cpp:Const xmi:id="_DKmLEFF6EdyxP5ejovTmBw" base_operation="_76k6EFF5EdyxP5ejovTmBw"/>
+ <C_Cpp:Inline xmi:id="_GyvK4FGEEdy2j6DfRsavvw" base_operation="_IM-wwFGDEdyxP5ejovTmBw"/>
+ <C_Cpp:Const xmi:id="_QJeQwFGEEdy2j6DfRsavvw" base_parameter="_3K3eIFGDEdy2j6DfRsavvw"/>
+ <C_Cpp:Ref xmi:id="_QtYPEFGEEdy2j6DfRsavvw" base_parameter="_3K3eIFGDEdy2j6DfRsavvw"/>
+ <C_Cpp:Include xmi:id="_Gyo1gFGKEdy7g9CjxdN7jw" body="#include &lt;OS_AL/Util/Print.h>" base_class="_5InEkFGAEdyxP5ejovTmBw"/>
+ <C_Cpp:Include xmi:id="_b0TcwFIfEdy7g9CjxdN7jw" header="// MACRO&#xD;&#xA;#ifdef ENABLE_TRACING&#xD;&#xA;&#x9;#define TRACEpr(flags)&#x9;&#x9;Trace pr(FLAG_ ## flags)&#xD;&#xA;&#x9;#define PR(arg)&#x9;&#x9;&#x9;&#x9;pr &lt;&lt; arg&#xD;&#xA;#else&#xD;&#xA;&#x9;#define TRACEpr(flags)&#xD;&#xA;&#x9;#define PR(arg)&#xD;&#xA;#endif&#xD;&#xA;" base_class="_1DM54DxBEdyfAeav5abbAw"/>
+ <standard:Create xmi:id="_qaUq8FIfEdy7g9CjxdN7jw" base_BehavioralFeature="_n7UR4FIfEdy7g9CjxdN7jw"/>
+ <standard:Destroy xmi:id="_vmw6oFIfEdy7g9CjxdN7jw" base_BehavioralFeature="_oFTUUFIfEdy7g9CjxdN7jw"/>
+ <C_Cpp:Ref xmi:id="_OnLesFIgEdy7g9CjxdN7jw" base_parameter="_DEXi0FIgEdy7g9CjxdN7jw"/>
+ <C_Cpp:Const xmi:id="_QdMlIVIgEdy7g9CjxdN7jw" base_operation="_BsdUsFIgEdy7g9CjxdN7jw"/>
+ <C_Cpp:Inline xmi:id="_VO1IIFIgEdy7g9CjxdN7jw" base_operation="_TAN7gFIgEdy7g9CjxdN7jw"/>
+ <C_Cpp:Const xmi:id="_VO-SEFIgEdy7g9CjxdN7jw" base_operation="_TAN7gFIgEdy7g9CjxdN7jw"/>
+ <C_Cpp:Inline xmi:id="_tph8cFIgEdy7g9CjxdN7jw" base_operation="_qIrE0FIgEdy7g9CjxdN7jw"/>
+ <C_Cpp:Ref xmi:id="_0n1LUFIgEdy7g9CjxdN7jw" base_parameter="_vzhHwFIgEdy7g9CjxdN7jw"/>
+ <C_Cpp:Const xmi:id="_0n1LUVIgEdy7g9CjxdN7jw" base_parameter="_vzhHwFIgEdy7g9CjxdN7jw"/>
+ <standard:Create xmi:id="_8oSawFIgEdy7g9CjxdN7jw" base_BehavioralFeature="_7hM24FIgEdy7g9CjxdN7jw"/>
+ <C_Cpp:Ptr xmi:id="_N4U_MFIhEdy7g9CjxdN7jw" base_property="_JByHAFIhEdy7g9CjxdN7jw"/>
+ <C_Cpp:Const xmi:id="_K-SJADReEdyDwaY3iUxzzA" base_parameter="_o4Q9YDRGEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Ref xmi:id="_4wbsAFIFEd-OfYmxqPWG5g" base_parameter="_o4Q9YDRGEdyG-pUz-bb-Lg"/>
+ <C_Cpp:Typedef xmi:id="_pTNvoFdhEd-9TNLvplUFDQ" definition="void (*typeName) (void*)" base_primitivetype="_kor6MFdhEd-9TNLvplUFDQ"/>
+ <C_Cpp:Const xmi:id="_ecbxIFnDEd-9TNLvplUFDQ" base_property="_WG7s4DRoEdypGbuyt3_DaA"/>
+ <C_Cpp:Ptr xmi:id="_XZvckFnmEd-9TNLvplUFDQ" base_parameter="_FeNrIFnmEd-9TNLvplUFDQ"/>
+ <C_Cpp:Array xmi:id="_jwJS4F2nEd-12d_h0i1xhQ" definition="[maxSize]" base_property="_jwCk4DR-Edy0feurbW0fyQ"/>
+ <C_Cpp:Const xmi:id="_AvS_cF3MEd-12d_h0i1xhQ" base_parameter="_Y6spMDUREdy0feurbW0fyQ"/>
+ <C_Cpp:Ptr xmi:id="_L8pB4DUSEdy0feurbW0fyQ" base_parameter="_Y6spMDUREdy0feurbW0fyQ"/>
+ <C_Cpp:Const xmi:id="_D-HE0F3MEd-12d_h0i1xhQ" base_parameter="_Y-RhoDUREdy0feurbW0fyQ"/>
+ <C_Cpp:Ptr xmi:id="_NX10kDUSEdy0feurbW0fyQ" base_parameter="_Y-RhoDUREdy0feurbW0fyQ"/>
+ <C_Cpp:Include xmi:id="_jne3cLmvEd-Ncuei_moJtA" header="#ifdef OS_Cygwin&#xA;&#x9;#define SYSTEM_Cygwin&#xA;&#x9;#define SYSTEM_POSIX4&#xA;&#x9;#define SYNCHRO_Cygwin&#xA;&#x9;#define SYNCHRO_POSIX4&#xA;&#x9;#define THREAD_POSIX4&#xA;&#x9;#define TIMER_POSIX4&#xA;&#x9;#define TIMER_Cygwin&#xA;#endif&#xA;&#xA;#ifdef OS_Linux&#xA;&#x9;#define SYSTEM_Linux&#xA;&#x9;#define SYSTEM_POSIX4&#xA;&#x9;#ifdef OS_Xenomai&#xA;&#x9;&#x9;#define SYSTEM_Xenomai&#xA;&#x9;#endif&#xA;&#x9;#define SYNCHRO_POSIX4&#xA;&#x9;#define THREAD_POSIX4&#xA;&#x9;#define TIMER_POSIX4&#xA;&#x9;#define TIMER_Linux&#xA;#endif&#xA;&#xA;#ifdef OS_Solaris&#xA;&#x9;#define SYSTEM_Solaris&#xA;&#x9;#define THREAD_Solaris&#xA;&#x9;#define SYNCHRO_Solaris&#xA;#endif" base_package="_ROTQYC-OEdySSa8YESkO2w"/>
+ <C_Cpp:Const xmi:id="_yh6NYIu7EeC1j5hJbrrc8g" base_parameter="_efgpkDkXEdyuzNpSiGPe4w"/>
+ <C_Cpp:Const xmi:id="__fXiUIu7EeC1j5hJbrrc8g" base_operation="_9xV0IDkfEdyuzNpSiGPe4w"/>
+ <C_Cpp:Include xmi:id="_QWmjoPRTEeCUGrV0Hl4JwQ" body="#include &lt;OS_AL/Synchronization/Condition.h>&#xD;&#xA;#include &lt;OS_AL/Synchronization/Mutex.h>&#xD;&#xA;#include &lt;OS_AL/Time/TimeVal.h>&#xD;&#xA;#include &lt;OS_AL/ProcessingResources/ProDesc.h>&#xD;&#xA;#include &lt;OS_AL/Tracing/Trace.h>&#xD;&#xA;&#xD;&#xA;#include &lt;errno.h>" header="#if defined SYNCHRO_POSIX4 || defined SYNCHRO_Linux || defined SYNCHRO_WIN32&#xA;&#x9;#include &lt;pthread.h>&#xA;&#x9;typedef pthread_cond_t ConditionId;&#xA;&#xA;#elif defined SYNCHRO_Solaris&#xA;&#x9;#include &lt;synch.h>&#xA;&#x9;typedef cond_t ConditionId;&#xA;&#xA;#elif defined SYNCHRO_VxWorks&#xA;&#x9;#include &lt;semLib.h>&#xA;&#x9;typedef int ConditionId;&#x9;&#x9;&#x9;// dummy declaration&#xA;&#xA;#else&#xA; #error SYNCHRO_X not defined&#xA;&#xA;#endif&#xA;" base_class="_QWlVgPRTEeCUGrV0Hl4JwQ"/>
+ <standard:Create xmi:id="_QWmjofRTEeCUGrV0Hl4JwQ" base_BehavioralFeature="_QWlVkfRTEeCUGrV0Hl4JwQ"/>
+ <C_Cpp:ConstInit xmi:id="_QWmjovRTEeCUGrV0Hl4JwQ" initialisation="&#x9;m_mutex (),&#xD;&#xA;&#x9;m_isLocked (false)&#xD;&#xA;" base_operation="_QWlVkfRTEeCUGrV0Hl4JwQ"/>
+ <standard:Destroy xmi:id="_QWmjo_RTEeCUGrV0Hl4JwQ" base_BehavioralFeature="_QWlVkvRTEeCUGrV0Hl4JwQ"/>
+ <C_Cpp:Const xmi:id="_QWmjpPRTEeCUGrV0Hl4JwQ" base_parameter="_QWlVofRTEeCUGrV0Hl4JwQ"/>
+ <C_Cpp:Ref xmi:id="_QWmjpfRTEeCUGrV0Hl4JwQ" base_parameter="_QWlVofRTEeCUGrV0Hl4JwQ"/>
+ <standard:Destroy xmi:id="__A9BwCZrEeGP95nTW02SMA" base_BehavioralFeature="_6Db-4CZrEeGP95nTW02SMA"/>
+ <C_Cpp:ExternLibrary xmi:id="_siAPgNqEEeKrRY-H1kHnNA" base_package="_nPvEoNqEEeKrRY-H1kHnNA">
+ <libs>pthread</libs>
+ <libs>rt</libs>
+ </C_Cpp:ExternLibrary>
+ <C_Cpp:NoCodeGen xmi:id="_2wrHsBpmEeONpa5JgejICQ" base_element="_5YJA0It4EeCA0czgCf_91g"/>
+ <C_Cpp:External xmi:id="_B5U3IBpnEeONpa5JgejICQ" name="time.h" base_Classifier="_SPVucIt6EeCA0czgCf_91g"/>
+ <C_Cpp:NoCodeGen xmi:id="_YYbsABpoEeOa5ZlfiNMZuA" base_element="_vZD1EFKWEd-OfYmxqPWG5g"/>
+ <C_Cpp:Ptr xmi:id="_n4mjsCBaEeOMKsPXBVC0DA" base_parameter="_n3fJYCBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_n5y2gCBaEeOMKsPXBVC0DA" base_parameter="_n4z_ECBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_n57ZYCBaEeOMKsPXBVC0DA" base_parameter="_n4z_ECBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_n7Eo4CBaEeOMKsPXBVC0DA" base_parameter="_n6INsCBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_n8RiwCBaEeOMKsPXBVC0DA" base_parameter="_n7PoACBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_n8aFoCBaEeOMKsPXBVC0DA" base_parameter="_n7PoACBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_n9iHACBaEeOMKsPXBVC0DA" base_parameter="_n8lEwCBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_n9qC0CBaEeOMKsPXBVC0DA" base_parameter="_n8lEwCBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_n-oTMCBaEeOMKsPXBVC0DA" base_parameter="_n9wJcCBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_n_xisCBaEeOMKsPXBVC0DA" base_parameter="_n-4x4CBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_oA6LICBaEeOMKsPXBVC0DA" base_parameter="_oACBYCBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_oCDaoCBaEeOMKsPXBVC0DA" base_parameter="_oBLQ4CBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_oDN4QCBaEeOMKsPXBVC0DA" base_parameter="_oCUgYCBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_oEcAQCBaEeOMKsPXBVC0DA" base_parameter="_oDeW8CBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_oFl20CBaEeOMKsPXBVC0DA" base_parameter="_oEse8CBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_oGvGUCBaEeOMKsPXBVC0DA" base_parameter="_oF2VgCBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_oH4V0CBaEeOMKsPXBVC0DA" base_parameter="_oHAMECBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_oJA-QCBaEeOMKsPXBVC0DA" base_parameter="_oII0gCBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_oKJmsCBaEeOMKsPXBVC0DA" base_parameter="_oJRc8CBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_oLSPICBaEeOMKsPXBVC0DA" base_parameter="_oKaFYCBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_oMfwECBaEeOMKsPXBVC0DA" base_parameter="_oLoNYCBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_oOi-gCBaEeOMKsPXBVC0DA" base_parameter="_oNrb0CBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_oPmucCBaEeOMKsPXBVC0DA" base_parameter="_oOuksCBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_oPuqQCBaEeOMKsPXBVC0DA" base_parameter="_oOuksCBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_oRngoCBaEeOMKsPXBVC0DA" base_parameter="_oQv98CBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_oRvccCBaEeOMKsPXBVC0DA" base_parameter="_oQv98CBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_oS4E4CBaEeOMKsPXBVC0DA" base_parameter="_oR6bkCBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_oUAtUCBaEeOMKsPXBVC0DA" base_parameter="_oTIjkCBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_oVIusCBaEeOMKsPXBVC0DA" base_parameter="_oURMACBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_oWR-MCBaEeOMKsPXBVC0DA" base_parameter="_oVZNYCBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_oXbNsCBaEeOMKsPXBVC0DA" base_parameter="_oWic4CBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_oZaxwCBaEeOMKsPXBVC0DA" base_parameter="_oYiA8CBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_oakoUCBaEeOMKsPXBVC0DA" base_parameter="_oZmX8CBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_oavncCBaEeOMKsPXBVC0DA" base_parameter="_oZmX8CBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_ob3BwCBaEeOMKsPXBVC0DA" base_parameter="_oa-Q8CBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_oc5jkCBaEeOMKsPXBVC0DA" base_parameter="_ocCA4CBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_odBfYCBaEeOMKsPXBVC0DA" base_parameter="_ocCA4CBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_ofEGwCBaEeOMKsPXBVC0DA" base_parameter="_oeMkECBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_ofLbgCBaEeOMKsPXBVC0DA" base_parameter="_oeMkECBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_sYw8MCBaEeOMKsPXBVC0DA" base_parameter="_sX4ycCBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_sY44ACBaEeOMKsPXBVC0DA" base_parameter="_sX4ycCBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_sZ7Z0CBaEeOMKsPXBVC0DA" base_parameter="_sZD3ICBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_uOCbwCBaEeOMKsPXBVC0DA" base_parameter="_uNFZgCBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_uOKXkCBaEeOMKsPXBVC0DA" base_parameter="_uNFZgCBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_uPMSUCBaEeOMKsPXBVC0DA" base_parameter="_uOUvoCBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_uQJUkCBaEeOMKsPXBVC0DA" base_parameter="_uPRx4CBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_uSGcYCBaEeOMKsPXBVC0DA" base_parameter="_uRPgwCBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_uTJlQCBaEeOMKsPXBVC0DA" base_parameter="_uSRbgCBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_uVDCsCBaEeOMKsPXBVC0DA" base_parameter="_uUKR4CBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_uXAKgCBaEeOMKsPXBVC0DA" base_parameter="_uWIAwCBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_1ni_8CBaEeOMKsPXBVC0DA" base_parameter="_1miTUCBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_3AskMCBaEeOMKsPXBVC0DA" base_parameter="_2_5S8CBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_4M_YMCBaEeOMKsPXBVC0DA" base_parameter="_4MH1gCBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_4NMzkCBaEeOMKsPXBVC0DA" base_parameter="_4MH1gCBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_5r1UwCBaEeOMKsPXBVC0DA" base_parameter="_5q784CBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_5s_LUCBaEeOMKsPXBVC0DA" base_parameter="_5sGagCBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_5tMmsCBaEeOMKsPXBVC0DA" base_parameter="_5sGagCBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_8jHq8CBaEeOMKsPXBVC0DA" base_parameter="_8iPhMCBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_8jO_sCBaEeOMKsPXBVC0DA" base_parameter="_8iPhMCBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="__aDb0CBaEeOMKsPXBVC0DA" base_parameter="__ZLSECBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="__bNSYCBaEeOMKsPXBVC0DA" base_parameter="__aOa8CBaEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_A0qYoCBbEeOMKsPXBVC0DA" base_parameter="_AzsIQCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_A0xtYCBbEeOMKsPXBVC0DA" base_parameter="_AzsIQCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_A11dUCBbEeOMKsPXBVC0DA" base_parameter="_A09TkCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_A19ZICBbEeOMKsPXBVC0DA" base_parameter="_A09TkCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_A5jfsCBbEeOMKsPXBVC0DA" base_parameter="_A4qu4CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_A5q0cCBbEeOMKsPXBVC0DA" base_parameter="_A4qu4CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_A6vLcCBbEeOMKsPXBVC0DA" base_parameter="_A52aoCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_A82rUCBbEeOMKsPXBVC0DA" base_parameter="_A79TcCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_BBlaUCBbEeOMKsPXBVC0DA" base_parameter="_BAtQkCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_BBtWICBbEeOMKsPXBVC0DA" base_parameter="_BAtQkCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_BDvWcCBbEeOMKsPXBVC0DA" base_parameter="_BCup0CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_BD2rMCBbEeOMKsPXBVC0DA" base_parameter="_BCup0CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_BE07kCBbEeOMKsPXBVC0DA" base_parameter="_BD8x0CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_CUrZ4CBbEeOMKsPXBVC0DA" base_parameter="_CTzQICBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_CbcJMCBbEeOMKsPXBVC0DA" base_parameter="_Caj_cCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_CdglwCBbEeOMKsPXBVC0DA" base_parameter="_CcpDECBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_CdohkCBbEeOMKsPXBVC0DA" base_parameter="_CcpDECBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_CesRgCBbEeOMKsPXBVC0DA" base_parameter="_CdzgsCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_Chz28CBbEeOMKsPXBVC0DA" base_parameter="_CgzKUCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_CiyuYCBbEeOMKsPXBVC0DA" base_parameter="_Ch5WgCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_Ci6DICBbEeOMKsPXBVC0DA" base_parameter="_Ch5WgCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_Cj9zECBbEeOMKsPXBVC0DA" base_parameter="_CjFCQCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_Ck8DcCBbEeOMKsPXBVC0DA" base_parameter="_CkD5sCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_ClD_QCBbEeOMKsPXBVC0DA" base_parameter="_CkD5sCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_CmIWQCBbEeOMKsPXBVC0DA" base_parameter="_ClQMgCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_CnKRACBbEeOMKsPXBVC0DA" base_parameter="_CmN10CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_CnRlwCBbEeOMKsPXBVC0DA" base_parameter="_CmN10CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_CpSX8CBbEeOMKsPXBVC0DA" base_parameter="_CoS5cCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_CpZssCBbEeOMKsPXBVC0DA" base_parameter="_CoS5cCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_CrTKICBbEeOMKsPXBVC0DA" base_parameter="_CqbAYCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_Crae4CBbEeOMKsPXBVC0DA" base_parameter="_CqbAYCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_CtTVQCBbEeOMKsPXBVC0DA" base_parameter="_CsbykCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_CtaqACBbEeOMKsPXBVC0DA" base_parameter="_CsbykCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_CvUHcCBbEeOMKsPXBVC0DA" base_parameter="_Cub9sCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_CvcDQCBbEeOMKsPXBVC0DA" base_parameter="_Cub9sCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_CxbnUCBbEeOMKsPXBVC0DA" base_parameter="_CwjdkCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_Cxi8ECBbEeOMKsPXBVC0DA" base_parameter="_CwjdkCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_CzdAkCBbEeOMKsPXBVC0DA" base_parameter="_CykPwCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_Czk8YCBbEeOMKsPXBVC0DA" base_parameter="_CykPwCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_C1fA4CBbEeOMKsPXBVC0DA" base_parameter="_C0lpACBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_C1mVoCBbEeOMKsPXBVC0DA" base_parameter="_C0lpACBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_C3hBMCBbEeOMKsPXBVC0DA" base_parameter="_C2o3cCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_C3vDoCBbEeOMKsPXBVC0DA" base_parameter="_C2o3cCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_FQm_gCBbEeOMKsPXBVC0DA" base_parameter="_FPu1wCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_FRskoCBbEeOMKsPXBVC0DA" base_parameter="_FQx-oCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_FR0gcCBbEeOMKsPXBVC0DA" base_parameter="_FQx-oCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_GuVhwCBbEeOMKsPXBVC0DA" base_parameter="_Gta7wCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_GuddkCBbEeOMKsPXBVC0DA" base_parameter="_Gta7wCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_KILycCBbEeOMKsPXBVC0DA" base_parameter="_KHNiECBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_KLC5MCBbEeOMKsPXBVC0DA" base_parameter="_KKKIYCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_KLKN8CBbEeOMKsPXBVC0DA" base_parameter="_KKKIYCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_KNLnMCBbEeOMKsPXBVC0DA" base_parameter="_KMS2YCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_KNTjACBbEeOMKsPXBVC0DA" base_parameter="_KMS2YCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_KPPcsCBbEeOMKsPXBVC0DA" base_parameter="_KOWE0CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_KPXYgCBbEeOMKsPXBVC0DA" base_parameter="_KOWE0CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_KRe4YCBbEeOMKsPXBVC0DA" base_parameter="_KQlggCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_KRmNICBbEeOMKsPXBVC0DA" base_parameter="_KQlggCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_KSsZUCBbEeOMKsPXBVC0DA" base_parameter="_KRxzUCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_KSzuECBbEeOMKsPXBVC0DA" base_parameter="_KRxzUCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_KU4xsCBbEeOMKsPXBVC0DA" base_parameter="_KUAn8CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_KYxzMCBbEeOMKsPXBVC0DA" base_parameter="_KX5CYCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_KY5vACBbEeOMKsPXBVC0DA" base_parameter="_KX5CYCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_KaC-gCBbEeOMKsPXBVC0DA" base_parameter="_KZK0wCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_KbMOACBbEeOMKsPXBVC0DA" base_parameter="_KaUEQCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_KbZpYCBbEeOMKsPXBVC0DA" base_parameter="_KaUEQCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_KcdZUCBbEeOMKsPXBVC0DA" base_parameter="_KbkogCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_KclVICBbEeOMKsPXBVC0DA" base_parameter="_KbkogCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_Kdt9kCBbEeOMKsPXBVC0DA" base_parameter="_Kc1z0CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_Kd15YCBbEeOMKsPXBVC0DA" base_parameter="_Kc1z0CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_KfA-ECBbEeOMKsPXBVC0DA" base_parameter="_KeA4gCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_KgKNkCBbEeOMKsPXBVC0DA" base_parameter="_KfRcwCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_KgVzwCBbEeOMKsPXBVC0DA" base_parameter="_KfRcwCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_KicskCBbEeOMKsPXBVC0DA" base_parameter="_Khki0CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_KikoYCBbEeOMKsPXBVC0DA" base_parameter="_Khki0CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_KqLsQCBbEeOMKsPXBVC0DA" base_parameter="_KpTigCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_KsLQUCBbEeOMKsPXBVC0DA" base_parameter="_KrTGkCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_KtJgsCBbEeOMKsPXBVC0DA" base_parameter="_KsQv4CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_KuT-UCBbEeOMKsPXBVC0DA" base_parameter="_KtbNgCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_KvRnoCBbEeOMKsPXBVC0DA" base_parameter="_KuZd4CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_KwUwgCBbEeOMKsPXBVC0DA" base_parameter="_KvdN0CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_KxTA4CBbEeOMKsPXBVC0DA" base_parameter="_Kwa3ICBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_KyWw0CBbEeOMKsPXBVC0DA" base_parameter="_KxeAACBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_KzVBMCBbEeOMKsPXBVC0DA" base_parameter="_Kyc3cCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_K0YxICBbEeOMKsPXBVC0DA" base_parameter="_KzgAUCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_K1dvMCBbEeOMKsPXBVC0DA" base_parameter="_K0e3wCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_K2hfICBbEeOMKsPXBVC0DA" base_parameter="_K1pVYCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_K3fvgCBbEeOMKsPXBVC0DA" base_parameter="_K2m-sCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_K4jfcCBbEeOMKsPXBVC0DA" base_parameter="_K3rVsCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_K5hv0CBbEeOMKsPXBVC0DA" base_parameter="_K4o_ACBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_K6lfwCBbEeOMKsPXBVC0DA" base_parameter="_K5su8CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_K6tbkCBbEeOMKsPXBVC0DA" base_parameter="_K5su8CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_K72rECBbEeOMKsPXBVC0DA" base_parameter="_K696QCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_K7-m4CBbEeOMKsPXBVC0DA" base_parameter="_K696QCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_K-E4oCBbEeOMKsPXBVC0DA" base_parameter="_K9MH0CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_LBAQ0CBbEeOMKsPXBVC0DA" base_parameter="_LAIHECBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_LCF18CBbEeOMKsPXBVC0DA" base_parameter="_LBNFICBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_LDJl4CBbEeOMKsPXBVC0DA" base_parameter="_LCQ1ECBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_LDRhsCBbEeOMKsPXBVC0DA" base_parameter="_LCQ1ECBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_LEb_UCBbEeOMKsPXBVC0DA" base_parameter="_LDcg0CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_LGX5ACBbEeOMKsPXBVC0DA" base_parameter="_LFfIMCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_LITLoCBbEeOMKsPXBVC0DA" base_parameter="_LHaa0CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_LKOeQCBbEeOMKsPXBVC0DA" base_parameter="_LJWUgCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_LMPQcCBbEeOMKsPXBVC0DA" base_parameter="_LLWfoCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_LOJU8CBbEeOMKsPXBVC0DA" base_parameter="_LNRLMCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_LQFOoCBbEeOMKsPXBVC0DA" base_parameter="_LPMd0CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_LRI-kCBbEeOMKsPXBVC0DA" base_parameter="_LQQNwCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_LRQTUCBbEeOMKsPXBVC0DA" base_parameter="_LQQNwCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_LSOjsCBbEeOMKsPXBVC0DA" base_parameter="_LRVy4CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_MvXQECBbEeOMKsPXBVC0DA" base_parameter="_MufGUCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_MvfL4CBbEeOMKsPXBVC0DA" base_parameter="_MufGUCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_MwiUwCBbEeOMKsPXBVC0DA" base_parameter="_MvqLACBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_MwppgCBbEeOMKsPXBVC0DA" base_parameter="_MvqLACBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_MxtZcCBbEeOMKsPXBVC0DA" base_parameter="_Mw1PsCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_Mx0uMCBbEeOMKsPXBVC0DA" base_parameter="_Mw1PsCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_PF7e0CBbEeOMKsPXBVC0DA" base_parameter="_PFCG8CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_PG_OwCBbEeOMKsPXBVC0DA" base_parameter="_PGGd8CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_PHIYsCBbEeOMKsPXBVC0DA" base_parameter="_PGGd8CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_PILhkCBbEeOMKsPXBVC0DA" base_parameter="_PHTX0CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_PJJx8CBbEeOMKsPXBVC0DA" base_parameter="_PIRoMCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_PJRtwCBbEeOMKsPXBVC0DA" base_parameter="_PIRoMCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_PKU2oCBbEeOMKsPXBVC0DA" base_parameter="_PJcs4CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_PLTHACBbEeOMKsPXBVC0DA" base_parameter="_PKaWMCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_PLabwCBbEeOMKsPXBVC0DA" base_parameter="_PKaWMCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_PMqY8CBbEeOMKsPXBVC0DA" base_parameter="_PLrhgCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_PNp3cCBbEeOMKsPXBVC0DA" base_parameter="_PMwfkCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_PNxMMCBbEeOMKsPXBVC0DA" base_parameter="_PMwfkCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_PO2KQCBbEeOMKsPXBVC0DA" base_parameter="_PN8yYCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_PP0aoCBbEeOMKsPXBVC0DA" base_parameter="_PO7p0CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_PP7vYCBbEeOMKsPXBVC0DA" base_parameter="_PO7p0CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_PRLFgCBbEeOMKsPXBVC0DA" base_parameter="_PQSUsCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_PRSaQCBbEeOMKsPXBVC0DA" base_parameter="_PQSUsCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_PSc34CBbEeOMKsPXBVC0DA" base_parameter="_PRkHECBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_PTh18CBbEeOMKsPXBVC0DA" base_parameter="_PSoeECBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_PTvRUCBbEeOMKsPXBVC0DA" base_parameter="_PSoeECBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_PU5H4CBbEeOMKsPXBVC0DA" base_parameter="_PUAXECBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_PVAcoCBbEeOMKsPXBVC0DA" base_parameter="_PUAXECBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_PW6hICBbEeOMKsPXBVC0DA" base_parameter="_PWCXYCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_PXB14CBbEeOMKsPXBVC0DA" base_parameter="_PWCXYCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_PYLscCBbEeOMKsPXBVC0DA" base_parameter="_PXTisCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_PYTBMCBbEeOMKsPXBVC0DA" base_parameter="_PXTisCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_aWlTsCBbEeOMKsPXBVC0DA" base_parameter="_aVr70CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_aX1Q4CBbEeOMKsPXBVC0DA" base_parameter="_aW1yYCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_aZGcMCBbEeOMKsPXBVC0DA" base_parameter="_aYL2MCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_aaQ50CBbEeOMKsPXBVC0DA" base_parameter="_aZW64CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_abawYCBbEeOMKsPXBVC0DA" base_parameter="_aah_kCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_cuaGsCBbEeOMKsPXBVC0DA" base_parameter="_cth88CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_cvj9QCBbEeOMKsPXBVC0DA" base_parameter="_curMcCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_cvrSACBbEeOMKsPXBVC0DA" base_parameter="_curMcCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_cww3ICBbEeOMKsPXBVC0DA" base_parameter="_cv8XwCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_c16c4CBbEeOMKsPXBVC0DA" base_parameter="_c1BsECBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_c2CYsCBbEeOMKsPXBVC0DA" base_parameter="_c1BsECBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_c6sPMCBbEeOMKsPXBVC0DA" base_parameter="_c5y3UCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_c6zj8CBbEeOMKsPXBVC0DA" base_parameter="_c5y3UCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_dAUWECBbEeOMKsPXBVC0DA" base_parameter="_c_WFsCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_elC4MCBbEeOMKsPXBVC0DA" base_parameter="_ekJgUCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_elKM8CBbEeOMKsPXBVC0DA" base_parameter="_ekJgUCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_emOj8CBbEeOMKsPXBVC0DA" base_parameter="_elVMECBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_emWfwCBbEeOMKsPXBVC0DA" base_parameter="_elVMECBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_eodYkCBbEeOMKsPXBVC0DA" base_parameter="_enfIMCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_eqfY4CBbEeOMKsPXBVC0DA" base_parameter="_epmBACBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_ereQUCBbEeOMKsPXBVC0DA" base_parameter="_eqk4cCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_esdu0CBbEeOMKsPXBVC0DA" base_parameter="_erkW8CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_eslDkCBbEeOMKsPXBVC0DA" base_parameter="_erkW8CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_etqBoCBbEeOMKsPXBVC0DA" base_parameter="_eswpwCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_euo5ECBbEeOMKsPXBVC0DA" base_parameter="_etvhMCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_evspACBbEeOMKsPXBVC0DA" base_parameter="_euuYoCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_gpeOECBbEeOMKsPXBVC0DA" base_parameter="_gok2MCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_grg1cCBbEeOMKsPXBVC0DA" base_parameter="_gqndkCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_groKMCBbEeOMKsPXBVC0DA" base_parameter="_gqndkCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_gszO4CBbEeOMKsPXBVC0DA" base_parameter="_grzwYCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_gs6joCBbEeOMKsPXBVC0DA" base_parameter="_grzwYCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_gt5bECBbEeOMKsPXBVC0DA" base_parameter="_gtADMCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_gv170CBbEeOMKsPXBVC0DA" base_parameter="_gu8j8CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_gx4jMCBbEeOMKsPXBVC0DA" base_parameter="_gw_LUCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_gyAfACBbEeOMKsPXBVC0DA" base_parameter="_gw_LUCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_gy_WcCBbEeOMKsPXBVC0DA" base_parameter="_gyF-kCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_g0bg4CBbEeOMKsPXBVC0DA" base_parameter="_gziJACBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_g1hGACBbEeOMKsPXBVC0DA" base_parameter="_g0nHECBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_g3ol4CBbEeOMKsPXBVC0DA" base_parameter="_g2vOACBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_g3v6oCBbEeOMKsPXBVC0DA" base_parameter="_g2vOACBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_g8qP0CBbEeOMKsPXBVC0DA" base_parameter="_g7w38CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_g9um0CBbEeOMKsPXBVC0DA" base_parameter="_g812ACBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_hA0XECBbEeOMKsPXBVC0DA" base_parameter="_g_6_MCBbEeOMKsPXBVC0DA" declaration="**"/>
+ <C_Cpp:Ptr xmi:id="_hC9FECBbEeOMKsPXBVC0DA" base_parameter="_hCDtMCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_hHxToCBbEeOMKsPXBVC0DA" base_parameter="_hG37wCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_hH4oYCBbEeOMKsPXBVC0DA" base_parameter="_hG37wCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_hLD4MCBbEeOMKsPXBVC0DA" base_parameter="_hKKgUCBbEeOMKsPXBVC0DA" declaration="**"/>
+ <C_Cpp:Ptr xmi:id="_jBXSgCBbEeOMKsPXBVC0DA" base_parameter="_jAdTkCBbEeOMKsPXBVC0DA" declaration="**"/>
+ <C_Cpp:Ptr xmi:id="_jCjlUCBbEeOMKsPXBVC0DA" base_parameter="_jBoYQCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_jEthcCBbEeOMKsPXBVC0DA" base_parameter="_jDy7cCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_jE02MCBbEeOMKsPXBVC0DA" base_parameter="_jDy7cCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_jF50QCBbEeOMKsPXBVC0DA" base_parameter="_jFAcYCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_jOtyACBbEeOMKsPXBVC0DA" base_parameter="_jNzzECBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_jO1t0CBbEeOMKsPXBVC0DA" base_parameter="_jNzzECBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_jQAygCBbEeOMKsPXBVC0DA" base_parameter="_jPGzkCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_jQIuUCBbEeOMKsPXBVC0DA" base_parameter="_jPGzkCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_jRO6gCBbEeOMKsPXBVC0DA" base_parameter="_jQUUgCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_jRWPQCBbEeOMKsPXBVC0DA" base_parameter="_jQUUgCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_jTgLYCBbEeOMKsPXBVC0DA" base_parameter="_jSmMcCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_jTngICBbEeOMKsPXBVC0DA" base_parameter="_jSmMcCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_jWi4UCBbEeOMKsPXBVC0DA" base_parameter="_jVo5YCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_jWqNECBbEeOMKsPXBVC0DA" base_parameter="_jVo5YCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_jZznsCBbEeOMKsPXBVC0DA" base_parameter="_jY5owCBbEeOMKsPXBVC0DA" declaration="**"/>
+ <C_Cpp:Const xmi:id="_jizLoCBbEeOMKsPXBVC0DA" base_parameter="_jh4loCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_ji7HcCBbEeOMKsPXBVC0DA" base_parameter="_jh4loCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_jkB6sCBbEeOMKsPXBVC0DA" base_parameter="_jjHUsCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_jkJ2gCBbEeOMKsPXBVC0DA" base_parameter="_jjHUsCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_jmO6ICBbEeOMKsPXBVC0DA" base_parameter="_jlUUICBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_jmW18CBbEeOMKsPXBVC0DA" base_parameter="_jlUUICBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_jnjIwCBbEeOMKsPXBVC0DA" base_parameter="_jmicICBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_jnrEkCBbEeOMKsPXBVC0DA" base_parameter="_jmicICBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_joxQwCBbEeOMKsPXBVC0DA" base_parameter="_jn2qwCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_jo6asCBbEeOMKsPXBVC0DA" base_parameter="_jn2qwCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_oiVAsCBbEeOMKsPXBVC0DA" base_parameter="_ohbBwCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_ojfeUCBbEeOMKsPXBVC0DA" base_parameter="_oimGcCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_p-pNsCBbEeOMKsPXBVC0DA" base_parameter="_p9unsCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_p-wicCBbEeOMKsPXBVC0DA" base_parameter="_p9unsCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_p_8OMCBbEeOMKsPXBVC0DA" base_parameter="_p_BoMCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_qBIhACBbEeOMKsPXBVC0DA" base_parameter="_qANT8CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_qCZsUCBbEeOMKsPXBVC0DA" base_parameter="_qBaN0CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_qDlYECBbEeOMKsPXBVC0DA" base_parameter="_qCrZICBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_rg0LECBbEeOMKsPXBVC0DA" base_parameter="_rf6MICBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_rlG1MCBbEeOMKsPXBVC0DA" base_parameter="_rkMPMCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_rlOJ8CBbEeOMKsPXBVC0DA" base_parameter="_rkMPMCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_v2FiMCBbEeOMKsPXBVC0DA" base_parameter="_v1LjQCBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ptr xmi:id="_v3RN8CBbEeOMKsPXBVC0DA" base_parameter="_v2XPACBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Const xmi:id="_v4eH0CBbEeOMKsPXBVC0DA" base_parameter="_v3jh0CBbEeOMKsPXBVC0DA"/>
+ <C_Cpp:Ref xmi:id="_v4lckCBbEeOMKsPXBVC0DA" base_parameter="_v3jh0CBbEeOMKsPXBVC0DA"/>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/statemachine.di b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/statemachine.di
new file mode 100644
index 00000000000..6432ab900ff
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/statemachine.di
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi" xmi:id="_agpmUOUTEd-P08Bciq_LqQ">
+ <pageList xmi:id="_agpmUeUTEd-P08Bciq_LqQ">
+ <availablePage xmi:id="_deTDMOUTEd-P08Bciq_LqQ">
+ <emfPageIdentifier href="statemachine.notation#_deScIOUTEd-P08Bciq_LqQ"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="statemachine.notation#_hky-AOuMEeCTfOY57pgE3w"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="statemachine.notation#_-9eIUOx1EeCeNZHeHxkazQ"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="statemachine.notation#_f3mAUPTXEeCn1-FCrfecFg"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="statemachine.notation#_YNvtYP3HEeC1YdT2qA0bjA"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="statemachine.notation#_IOfaAF8wEeGerN33d-RdRg"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="statemachine.notation#_KwHpQF8wEeGerN33d-RdRg"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="statemachine.notation#_Ogua0F81EeGbQoflzrdx0g"/>
+ </availablePage>
+ </pageList>
+ <sashModel xmi:id="_agpmUuUTEd-P08Bciq_LqQ" currentSelection="_agpmVOUTEd-P08Bciq_LqQ">
+ <windows xmi:id="_agpmU-UTEd-P08Bciq_LqQ">
+ <children xsi:type="di:TabFolder" xmi:id="_agpmVOUTEd-P08Bciq_LqQ">
+ <children xmi:id="_deTDMeUTEd-P08Bciq_LqQ">
+ <emfPageIdentifier href="statemachine.notation#_deScIOUTEd-P08Bciq_LqQ"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="statemachine.notation#_hky-AOuMEeCTfOY57pgE3w"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="statemachine.notation#_-9eIUOx1EeCeNZHeHxkazQ"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="statemachine.notation#_f3mAUPTXEeCn1-FCrfecFg"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="statemachine.notation#_YNvtYP3HEeC1YdT2qA0bjA"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="statemachine.notation#_IOfaAF8wEeGerN33d-RdRg"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="statemachine.notation#_Ogua0F81EeGbQoflzrdx0g"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="statemachine.notation#_jTpTMF1DEeWbP6DS-3NPyQ"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+</di:SashWindowsMngr>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/statemachine.notation b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/statemachine.notation
new file mode 100644
index 00000000000..66345951ba3
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/statemachine.notation
@@ -0,0 +1,2575 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:C_Cpp="http://www.eclipse.org/papyrus/C_Cpp/1" xmlns:FCM="http://www.eclipse.org/papyrus/FCM/1" xmlns:css="http://www.eclipse.org/papyrus/infra/gmfdiag/css" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_deScIOUTEd-P08Bciq_LqQ" type="CompositeStructure" name="StateMachines" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_en03EOUTEd-P08Bciq_LqQ" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_en1eIOUTEd-P08Bciq_LqQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_en1eIeUTEd-P08Bciq_LqQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_en1eIuUTEd-P08Bciq_LqQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_en2FMOUTEd-P08Bciq_LqQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_en2FMeUTEd-P08Bciq_LqQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_en2FMuUTEd-P08Bciq_LqQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_en2FM-UTEd-P08Bciq_LqQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_en2FNOUTEd-P08Bciq_LqQ" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_en2FNeUTEd-P08Bciq_LqQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_u83s4PRUEeCKVJwdD4MMsg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_u847APRUEeCKVJwdD4MMsg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_u85iEPRUEeCKVJwdD4MMsg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_u85iEfRUEeCKVJwdD4MMsg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_u85iEvRUEeCKVJwdD4MMsg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_u85iE_RUEeCKVJwdD4MMsg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_u85iFPRUEeCKVJwdD4MMsg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_u85iFfRUEeCKVJwdD4MMsg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iAfo4Fl9EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_idrUIFl9EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_u86JIPRUEeCKVJwdD4MMsg" x="-117"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_u86JIfRUEeCKVJwdD4MMsg" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_u86JIvRUEeCKVJwdD4MMsg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="statemachine.uml#_u7pk4PRUEeCKVJwdD4MMsg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u83s4fRUEeCKVJwdD4MMsg" x="225" y="117" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_oVaTIF8wEeGerN33d-RdRg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oVa6MF8wEeGerN33d-RdRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oVa6MV8wEeGerN33d-RdRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oVa6Ml8wEeGerN33d-RdRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oVa6M18wEeGerN33d-RdRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oVbhQF8wEeGerN33d-RdRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oVbhQV8wEeGerN33d-RdRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oVbhQl8wEeGerN33d-RdRg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fXpXUFl9EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ffTegFl9EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oVbhQ18wEeGerN33d-RdRg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oVbhRF8wEeGerN33d-RdRg" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oVbhRV8wEeGerN33d-RdRg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oVaTIV8wEeGerN33d-RdRg" x="-10" y="45"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_xVjd8F8wEeGerN33d-RdRg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xVkFAF8wEeGerN33d-RdRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xVkFAV8wEeGerN33d-RdRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xVksEF8wEeGerN33d-RdRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xVksEV8wEeGerN33d-RdRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xVksEl8wEeGerN33d-RdRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xVksE18wEeGerN33d-RdRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xVksFF8wEeGerN33d-RdRg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gCoOAFl9EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gGpLUFl9EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xVksFV8wEeGerN33d-RdRg" x="-144"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xVksFl8wEeGerN33d-RdRg" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xVksF18wEeGerN33d-RdRg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="statemachine.uml#_xUE3QF8wEeGerN33d-RdRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xVjd8V8wEeGerN33d-RdRg" x="225" y="72" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Jo3KIHJVEeOMF7YEvnQt5g" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Jo3KIXJVEeOMF7YEvnQt5g" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="statemachine.uml#_eGpZQBE1EeG3cfLoiI6G7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Jo3KInJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Jo5mYHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Jo5mYXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Jo5mYnJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_MttBwAuZEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MttBwQuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_M0tBoAuZEeWXe7AeBUbqvw" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_M0tBoQuZEeWXe7AeBUbqvw" name="stereotype" stringValue="C_Cpp::Include"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_RwTdQByJEduN1bTiWJ0lyw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M0tBoguZEeWXe7AeBUbqvw"/>
+ </children>
+ <element xmi:type="uml:Class" href="statemachine.uml#_ens7QOUTEd-P08Bciq_LqQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_en03EeUTEd-P08Bciq_LqQ" x="54" y="135" width="235" height="163"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_u-vbIOUTEd-P08Bciq_LqQ" type="2073" fontName="" fontHeight="10" gradient="16777215, -1, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_u-vbIuUTEd-P08Bciq_LqQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_u-vbI-UTEd-P08Bciq_LqQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_u-vbJOUTEd-P08Bciq_LqQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_u-wCMOUTEd-P08Bciq_LqQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_u-wCMeUTEd-P08Bciq_LqQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_u-wCMuUTEd-P08Bciq_LqQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__yjQ4GGAEeO2F4QRMDSOXg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__yj38GGAEeO2F4QRMDSOXg" key="gradient" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_u-wCM-UTEd-P08Bciq_LqQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_u-wCNOUTEd-P08Bciq_LqQ" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u-wCNeUTEd-P08Bciq_LqQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WeNZ4DXLEeCZ5ODDEHnvRw" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WeOA8DXLEeCZ5ODDEHnvRw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WeOA8TXLEeCZ5ODDEHnvRw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WeOA8jXLEeCZ5ODDEHnvRw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WeOA8zXLEeCZ5ODDEHnvRw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WeOA9DXLEeCZ5ODDEHnvRw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WeOoADXLEeCZ5ODDEHnvRw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WeOoATXLEeCZ5ODDEHnvRw" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jBmgkFl9EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jHxaAFl9EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WeOoAjXLEeCZ5ODDEHnvRw" x="28" y="9"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WeOoAzXLEeCZ5ODDEHnvRw" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WeOoBDXLEeCZ5ODDEHnvRw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WeNZ4TXLEeCZ5ODDEHnvRw" x="-10" y="72"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_YK7aYDXLEeCZ5ODDEHnvRw" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YK8BcDXLEeCZ5ODDEHnvRw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YK8BcTXLEeCZ5ODDEHnvRw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YK8BcjXLEeCZ5ODDEHnvRw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YK8BczXLEeCZ5ODDEHnvRw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YK8ogDXLEeCZ5ODDEHnvRw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YK8ogTXLEeCZ5ODDEHnvRw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YK8ogjXLEeCZ5ODDEHnvRw" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kK_xkFl9EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kQMaoFl9EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YK8ogzXLEeCZ5ODDEHnvRw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YK8ohDXLEeCZ5ODDEHnvRw" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YK8ohTXLEeCZ5ODDEHnvRw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YK7aYTXLEeCZ5ODDEHnvRw" x="207" y="72"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_a7sjEOuMEeCTfOY57pgE3w" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a7tKIOuMEeCTfOY57pgE3w" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a7tKIeuMEeCTfOY57pgE3w" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a7tKIuuMEeCTfOY57pgE3w" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a7tKI-uMEeCTfOY57pgE3w" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a7txMOuMEeCTfOY57pgE3w" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a7txMeuMEeCTfOY57pgE3w" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_a7txMuuMEeCTfOY57pgE3w" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jl_nEFl9EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jq_b0Fl9EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_a7txM-uMEeCTfOY57pgE3w" x="27" y="18"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_a7txNOuMEeCTfOY57pgE3w" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_a7txNeuMEeCTfOY57pgE3w" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="statemachine.uml#_a4NKMOuMEeCTfOY57pgE3w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_a7sjEeuMEeCTfOY57pgE3w" x="108" y="153" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JpBiMHJVEeOMF7YEvnQt5g" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JpBiMXJVEeOMF7YEvnQt5g" showTitle="true"/>
+ <element xmi:type="FCM:InteractionComponent" href="statemachine.uml#_hanSUOUUEd-P08Bciq_LqQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JpBiMnJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JpBiM3JVEeOMF7YEvnQt5g" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JpBiNHJVEeOMF7YEvnQt5g" showTitle="true"/>
+ <element xmi:type="FCM:UseInstanceConfigurator" href="statemachine.uml#_StgB8CNYEeGj_4swHBbKwg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JpBiNXJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JpCJQHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JpCJQXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JpCJQnJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_MttBwguZEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MttBwwuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_M1ZlMAuZEeWXe7AeBUbqvw" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_M1ZlMQuZEeWXe7AeBUbqvw" name="stereotype" stringValue="FCM::InteractionComponent"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_Z1W68MtlEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M1ZlMguZEeWXe7AeBUbqvw"/>
+ </children>
+ <element xmi:type="uml:Class" href="statemachine.uml#_u-qioOUTEd-P08Bciq_LqQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u-vbIeUTEd-P08Bciq_LqQ" x="414" y="108" width="217" height="163"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_OTiegDXLEeCZ5ODDEHnvRw" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OTjFkDXLEeCZ5ODDEHnvRw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OTjFkTXLEeCZ5ODDEHnvRw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OTjFkjXLEeCZ5ODDEHnvRw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OTjsoDXLEeCZ5ODDEHnvRw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OTjsoTXLEeCZ5ODDEHnvRw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OTjsojXLEeCZ5ODDEHnvRw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_OTjsozXLEeCZ5ODDEHnvRw" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_OTjspDXLEeCZ5ODDEHnvRw" type="7073" collapsed="true">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OTjspTXLEeCZ5ODDEHnvRw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JpFMkHJVEeOMF7YEvnQt5g" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JpFMkXJVEeOMF7YEvnQt5g" showTitle="true"/>
+ <element xmi:type="FCM:InteractionComponent" href="pathmap://QML_CORE/core.uml#_vEYVcFR1Ed6GqrP6fkWBoQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JpFMknJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JpFzoHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JpFzoXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JpFzonJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_MttBxAuZEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MttBxQuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_Zx2ZUA1jEd6tvthBDl600Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OTiegTXLEeCZ5ODDEHnvRw" x="414" y="18" width="217"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9DtmsOuLEeCTfOY57pgE3w" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9DwC8OuLEeCTfOY57pgE3w" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9DwC8euLEeCTfOY57pgE3w" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9DwqAOuLEeCTfOY57pgE3w" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9DwqAeuLEeCTfOY57pgE3w" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9DwqAuuLEeCTfOY57pgE3w" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9DwqA-uLEeCTfOY57pgE3w" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9DwqBOuLEeCTfOY57pgE3w" type="5192"/>
+ <element xmi:type="uml:Comment" href="statemachine.uml#_9BpKIOuLEeCTfOY57pgE3w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9DtmseuLEeCTfOY57pgE3w" x="648" y="18" width="208" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_OlJPsBE0EeG3cfLoiI6G7g" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OlMTABE0EeG3cfLoiI6G7g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OlMTARE0EeG3cfLoiI6G7g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OlMTAhE0EeG3cfLoiI6G7g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OlMTAxE0EeG3cfLoiI6G7g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OlM6EBE0EeG3cfLoiI6G7g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OlM6ERE0EeG3cfLoiI6G7g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_OlM6EhE0EeG3cfLoiI6G7g" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_OlNhIBE0EeG3cfLoiI6G7g" visible="false" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_OlNhIRE0EeG3cfLoiI6G7g" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OlNhIhE0EeG3cfLoiI6G7g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JpHo0HJVEeOMF7YEvnQt5g" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JpHo0XJVEeOMF7YEvnQt5g" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="pathmap://QML_CORE/core.uml#_Yx49gCaeEeG4fZdVXNtoOQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JpHo0nJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JpHo03JVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JpHo1HJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JpHo1XJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_MttBxguZEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MttBxwuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_JRmo0PNAEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OlJPsRE0EeG3cfLoiI6G7g" x="60" y="333" width="85"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Py6qYBE0EeG3cfLoiI6G7g" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Py7RcBE0EeG3cfLoiI6G7g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Py7RcRE0EeG3cfLoiI6G7g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Py7RchE0EeG3cfLoiI6G7g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Py7RcxE0EeG3cfLoiI6G7g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Py7RdBE0EeG3cfLoiI6G7g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Py7RdRE0EeG3cfLoiI6G7g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Py7RdhE0EeG3cfLoiI6G7g" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Py7RdxE0EeG3cfLoiI6G7g" visible="false" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Py7ReBE0EeG3cfLoiI6G7g" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Py7ReRE0EeG3cfLoiI6G7g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JpJeAHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JpJeAXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JpJeAnJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_MttByAuZEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MttByQuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_WkkjoPNUEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Py6qYRE0EeG3cfLoiI6G7g" x="198" y="333" width="90"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_KR_OMCNYEeGj_4swHBbKwg" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KSBqcCNYEeGj_4swHBbKwg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KSBqcSNYEeGj_4swHBbKwg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KSBqciNYEeGj_4swHBbKwg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KSBqcyNYEeGj_4swHBbKwg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KSCRgCNYEeGj_4swHBbKwg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KSCRgSNYEeGj_4swHBbKwg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_KSCRgiNYEeGj_4swHBbKwg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_KSCRgyNYEeGj_4swHBbKwg" visible="false" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_KSCRhCNYEeGj_4swHBbKwg" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KSCRhSNYEeGj_4swHBbKwg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JpLTMHJVEeOMF7YEvnQt5g" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JpLTMXJVEeOMF7YEvnQt5g" showTitle="true"/>
+ <element xmi:type="FCM:InstanceConfigurator" href="statemachine.uml#_QQYfQCNYEeGj_4swHBbKwg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JpLTMnJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JpLTM3JVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JpLTNHJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JpLTNXJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_MttByguZEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MttBywuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="statemachine.uml#_KEMp0CNYEeGj_4swHBbKwg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KR_OMSNYEeGj_4swHBbKwg" x="414" y="319" width="226" height="51"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XAfYYCWNEeGB3KV6qwTHBw" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XAmGECWNEeGB3KV6qwTHBw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XAmtICWNEeGB3KV6qwTHBw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XAmtISWNEeGB3KV6qwTHBw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XAmtIiWNEeGB3KV6qwTHBw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XAmtIyWNEeGB3KV6qwTHBw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XAmtJCWNEeGB3KV6qwTHBw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XAmtJSWNEeGB3KV6qwTHBw" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_XAnUMCWNEeGB3KV6qwTHBw" visible="false" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XAnUMSWNEeGB3KV6qwTHBw" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XAnUMiWNEeGB3KV6qwTHBw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JpNIYHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JpNIYXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JpNIYnJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_MttBzAuZEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MttBzQuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XAfYYSWNEeGB3KV6qwTHBw" x="54" y="36" width="235"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_M01kgAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_M01kgQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M01kgwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="statemachine.uml#_ens7QOUTEd-P08Bciq_LqQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M01kgguZEeWXe7AeBUbqvw" x="254" y="135"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_M1BKuAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_M1BKuQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M1BKuwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="statemachine.uml#_u7pk4PRUEeCKVJwdD4MMsg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M1BKuguZEeWXe7AeBUbqvw" x="425" y="117"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_M1LiwAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_M1LiwQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M1LiwwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M1LiwguZEeWXe7AeBUbqvw" x="190" y="45"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_M1UFqAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_M1UFqQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M1UFqwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="statemachine.uml#_xUE3QF8wEeGerN33d-RdRg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M1UFqguZEeWXe7AeBUbqvw" x="425" y="72"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_M1tuQAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_M1tuQQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M1tuQwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="statemachine.uml#_u-qioOUTEd-P08Bciq_LqQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M1tuQguZEeWXe7AeBUbqvw" x="614" y="108"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_M2FhsAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_M2FhsQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M2FhswuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M2FhsguZEeWXe7AeBUbqvw" x="190" y="72"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_M2WncAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_M2WncQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M2WncwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M2WncguZEeWXe7AeBUbqvw" x="407" y="72"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_M2l4AAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_M2l4AQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M2l4AwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="statemachine.uml#_a4NKMOuMEeCTfOY57pgE3w"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M2l4AguZEeWXe7AeBUbqvw" x="308" y="153"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_M21voAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_M21voQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M21vowuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_Zx2ZUA1jEd6tvthBDl600Q"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M21voguZEeWXe7AeBUbqvw" x="614" y="18"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_M3IDgAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_M3IDgQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M3IDgwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_JRmo0PNAEeCovO8AYZymZQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M3IDgguZEeWXe7AeBUbqvw" x="260" y="333"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_M3U30AuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_M3U30QuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M3U30wuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="statemachine.uml#_KEMp0CNYEeGj_4swHBbKwg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M3U30guZEeWXe7AeBUbqvw" x="614" y="319"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_deScIeUTEd-P08Bciq_LqQ"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_MttBzguZEeWXe7AeBUbqvw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Model" href="statemachine.uml#_ago_QOUTEd-P08Bciq_LqQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_OUdrkDXLEeCZ5ODDEHnvRw" type="4015" source="_u-vbIOUTEd-P08Bciq_LqQ" target="_OTiegDXLEeCZ5ODDEHnvRw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_OUfgwDXLEeCZ5ODDEHnvRw" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OUfgwTXLEeCZ5ODDEHnvRw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_OUdrkTXLEeCZ5ODDEHnvRw" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="statemachine.uml#_3LpLIOUTEd-P08Bciq_LqQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_OUdrkjXLEeCZ5ODDEHnvRw" points="[-78, -24, 450, 138]$[-528, -162, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_KOQVYOuMEeCTfOY57pgE3w" type="4002" source="_9DtmsOuLEeCTfOY57pgE3w" target="_u-vbIOUTEd-P08Bciq_LqQ" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_KOQVYeuMEeCTfOY57pgE3w" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KOQVYuuMEeCTfOY57pgE3w" points="[16, 22, 54, -77]$[16, 70, 54, -29]$[-19, 70, 19, -29]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KOSxoOuMEeCTfOY57pgE3w" id="(0.007782101167315175,0.6333333333333333)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KOSxoeuMEeCTfOY57pgE3w" id="(0.9166666666666666,0.29357798165137616)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Q2fnQBE0EeG3cfLoiI6G7g" type="4010" source="_en03EOUTEd-P08Bciq_LqQ" target="_OlJPsBE0EeG3cfLoiI6G7g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Q2g1YBE0EeG3cfLoiI6G7g" visible="false" type="6009">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Q2g1YRE0EeG3cfLoiI6G7g" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Q2g1YhE0EeG3cfLoiI6G7g" type="6023">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Q2g1YxE0EeG3cfLoiI6G7g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Q2fnQRE0EeG3cfLoiI6G7g" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Dependency" href="statemachine.uml#_Q2C7UBE0EeG3cfLoiI6G7g"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Q2fnQhE0EeG3cfLoiI6G7g" points="[2, 10, 0, -40]$[4, 39, 2, -11]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Q3E2EBE0EeG3cfLoiI6G7g" id="(0.26382978723404255,0.9570552147239264)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Q3E2ERE0EeG3cfLoiI6G7g" id="(0.5757575757575758,0.18333333333333332)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Rq3DcBE0EeG3cfLoiI6G7g" type="4010" source="_en03EOUTEd-P08Bciq_LqQ" target="_Py6qYBE0EeG3cfLoiI6G7g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Rq3qgBE0EeG3cfLoiI6G7g" visible="false" type="6009">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Rq3qgRE0EeG3cfLoiI6G7g" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Rq3qghE0EeG3cfLoiI6G7g" type="6023">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Rq3qgxE0EeG3cfLoiI6G7g" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Rq3DcRE0EeG3cfLoiI6G7g" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Dependency" href="statemachine.uml#_RqmkwBE0EeG3cfLoiI6G7g"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Rq3DchE0EeG3cfLoiI6G7g" points="[-8, 12, -5, -61]$[-8, 43, -5, -30]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RrUWcBE0EeG3cfLoiI6G7g" id="(0.8212765957446808,0.9815950920245399)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_auAL8CWNEeGB3KV6qwTHBw" type="4015" source="_en03EOUTEd-P08Bciq_LqQ" target="_XAfYYCWNEeGB3KV6qwTHBw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_auCBICWNEeGB3KV6qwTHBw" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_auCBISWNEeGB3KV6qwTHBw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_auAL8SWNEeGB3KV6qwTHBw" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="statemachine.uml#_ar4sECWNEeGB3KV6qwTHBw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_auAL8iWNEeGB3KV6qwTHBw" points="[-5, -1, -2, 79]$[-5, -60, -2, 20]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_avfZsCWNEeGB3KV6qwTHBw" id="(0.5106382978723404,0.006134969325153374)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_M01khAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_en03EOUTEd-P08Bciq_LqQ" target="_M01kgAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_M01khQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M01kiQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="statemachine.uml#_ens7QOUTEd-P08Bciq_LqQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_M01khguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M01khwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M01kiAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_M1BKvAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_u83s4PRUEeCKVJwdD4MMsg" target="_M1BKuAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_M1BKvQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M1BKwQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="statemachine.uml#_u7pk4PRUEeCKVJwdD4MMsg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_M1BKvguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M1BKvwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M1BKwAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_M1LixAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_oVaTIF8wEeGerN33d-RdRg" target="_M1LiwAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_M1LixQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M1LiyQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_M1LixguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M1LixwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M1LiyAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_M1UFrAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_xVjd8F8wEeGerN33d-RdRg" target="_M1UFqAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_M1UFrQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M1UFsQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="statemachine.uml#_xUE3QF8wEeGerN33d-RdRg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_M1UFrguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M1UFrwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M1UFsAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_M1tuRAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_u-vbIOUTEd-P08Bciq_LqQ" target="_M1tuQAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_M1tuRQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M1tuSQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="statemachine.uml#_u-qioOUTEd-P08Bciq_LqQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_M1tuRguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M1tuRwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M1tuSAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_M2FhtAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_WeNZ4DXLEeCZ5ODDEHnvRw" target="_M2FhsAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_M2FhtQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M2FhuQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_M2FhtguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M2FhtwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M2FhuAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_M2WndAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_YK7aYDXLEeCZ5ODDEHnvRw" target="_M2WncAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_M2WndQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M2WneQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_M2WndguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M2WndwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M2WneAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_M2l4BAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_a7sjEOuMEeCTfOY57pgE3w" target="_M2l4AAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_M2l4BQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M2l4CQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="statemachine.uml#_a4NKMOuMEeCTfOY57pgE3w"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_M2l4BguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M2l4BwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M2l4CAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_M21vpAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_OTiegDXLEeCZ5ODDEHnvRw" target="_M21voAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_M21vpQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M21vqQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_Zx2ZUA1jEd6tvthBDl600Q"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_M21vpguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M21vpwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M21vqAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_M3IDhAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_OlJPsBE0EeG3cfLoiI6G7g" target="_M3IDgAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_M3IDhQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M3IDiQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_JRmo0PNAEeCovO8AYZymZQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_M3IDhguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M3IDhwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M3IDiAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_M3U31AuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_KR_OMCNYEeGj_4swHBbKwg" target="_M3U30AuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_M3U31QuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M3U32QuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="statemachine.uml#_KEMp0CNYEeGj_4swHBbKwg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_M3U31guZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M3U31wuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M3U32AuZEeWXe7AeBUbqvw"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_hky-AOuMEeCTfOY57pgE3w" type="PapyrusUMLClassDiagram" name="Interfaces" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_62j9UOx1EeCeNZHeHxkazQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_62lLcOx1EeCeNZHeHxkazQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_62lygOx1EeCeNZHeHxkazQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_62lygex1EeCeNZHeHxkazQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_62lygux1EeCeNZHeHxkazQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_62lyg-x1EeCeNZHeHxkazQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_62lyhOx1EeCeNZHeHxkazQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_62mZkOx1EeCeNZHeHxkazQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_62mZkex1EeCeNZHeHxkazQ" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_62mZkux1EeCeNZHeHxkazQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_62mZk-x1EeCeNZHeHxkazQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_62mZlOx1EeCeNZHeHxkazQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_62mZlex1EeCeNZHeHxkazQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_62mZlux1EeCeNZHeHxkazQ" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_62nAoOx1EeCeNZHeHxkazQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_62nAoex1EeCeNZHeHxkazQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_62nAoux1EeCeNZHeHxkazQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_62nAo-x1EeCeNZHeHxkazQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_62nApOx1EeCeNZHeHxkazQ" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_62nApex1EeCeNZHeHxkazQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_62nApux1EeCeNZHeHxkazQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_62nAp-x1EeCeNZHeHxkazQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_62nAqOx1EeCeNZHeHxkazQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JrEwoHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JrEwoXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JrEwonJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_M3q2EAuZEeWXe7AeBUbqvw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_M3q2EQuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_6uRBMOuqEeCTfOY57pgE3w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_62kkYOx1EeCeNZHeHxkazQ" x="82" y="313"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_hky-AeuMEeCTfOY57pgE3w"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_M3q2EguZEeWXe7AeBUbqvw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Model" href="statemachine.uml#_ago_QOUTEd-P08Bciq_LqQ"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_-9eIUOx1EeCeNZHeHxkazQ" type="PapyrusUMLClassDiagram" name="Associ" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_ABwP0Ox2EeCeNZHeHxkazQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ABw24Ox2EeCeNZHeHxkazQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ABxd8Ox2EeCeNZHeHxkazQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ABxd8ex2EeCeNZHeHxkazQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ABxd8ux2EeCeNZHeHxkazQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ABxd8-x2EeCeNZHeHxkazQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ABxd9Ox2EeCeNZHeHxkazQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AByFAOx2EeCeNZHeHxkazQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AByFAex2EeCeNZHeHxkazQ" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AByFAux2EeCeNZHeHxkazQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AByFA-x2EeCeNZHeHxkazQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AByFBOx2EeCeNZHeHxkazQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AByFBex2EeCeNZHeHxkazQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AByFBux2EeCeNZHeHxkazQ" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AByFB-x2EeCeNZHeHxkazQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AByFCOx2EeCeNZHeHxkazQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AByFCex2EeCeNZHeHxkazQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AByFCux2EeCeNZHeHxkazQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AByFC-x2EeCeNZHeHxkazQ" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AByFDOx2EeCeNZHeHxkazQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AByFDex2EeCeNZHeHxkazQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AByFDux2EeCeNZHeHxkazQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AByFD-x2EeCeNZHeHxkazQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JtQh8HJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JtQh8XJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JtQh8nJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_M5Kq4AuZEeWXe7AeBUbqvw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_M5Kq4QuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_6uRBMOuqEeCTfOY57pgE3w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ABwP0ex2EeCeNZHeHxkazQ" x="468" y="126"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AwlrwOx2EeCeNZHeHxkazQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Awng8Ox2EeCeNZHeHxkazQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Awng8ex2EeCeNZHeHxkazQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Awng8ux2EeCeNZHeHxkazQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Awng8-x2EeCeNZHeHxkazQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Awng9Ox2EeCeNZHeHxkazQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AwoIAOx2EeCeNZHeHxkazQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AwoIAex2EeCeNZHeHxkazQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AwoIAux2EeCeNZHeHxkazQ" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AwoIA-x2EeCeNZHeHxkazQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AwoIBOx2EeCeNZHeHxkazQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AwoIBex2EeCeNZHeHxkazQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AwoIBux2EeCeNZHeHxkazQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AwoIB-x2EeCeNZHeHxkazQ" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AwoICOx2EeCeNZHeHxkazQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AwoICex2EeCeNZHeHxkazQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AwoICux2EeCeNZHeHxkazQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AwoIC-x2EeCeNZHeHxkazQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AwoIDOx2EeCeNZHeHxkazQ" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AwoIDex2EeCeNZHeHxkazQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AwoIDux2EeCeNZHeHxkazQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AwoID-x2EeCeNZHeHxkazQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AwovEOx2EeCeNZHeHxkazQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JtSXIHJVEeOMF7YEvnQt5g" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JtSXIXJVEeOMF7YEvnQt5g" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="statemachine.uml#_eGpZQBE1EeG3cfLoiI6G7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JtSXInJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JtS-MHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JtS-MXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JtS-MnJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_M5Kq4guZEeWXe7AeBUbqvw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_M5Kq4wuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="statemachine.uml#_ens7QOUTEd-P08Bciq_LqQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Awlrwex2EeCeNZHeHxkazQ" x="162" y="126"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_M7rzZguZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_M7rzZwuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M7rzaQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="statemachine.uml#_ens7QOUTEd-P08Bciq_LqQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M7rzaAuZEeWXe7AeBUbqvw" x="362" y="126"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_-9eIUex1EeCeNZHeHxkazQ"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_M5Kq5AuZEeWXe7AeBUbqvw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="statemachine.uml#_9J39cOupEeCTfOY57pgE3w"/>
+ <edges xmi:type="notation:Connector" xmi:id="_S-AYwO3GEeCHv5BGhoZ8CA" type="4001" source="_AwlrwOx2EeCeNZHeHxkazQ" target="_ABwP0Ox2EeCeNZHeHxkazQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_S-Bm4O3GEeCHv5BGhoZ8CA" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_S-Bm4e3GEeCHv5BGhoZ8CA" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_S-CN8O3GEeCHv5BGhoZ8CA" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_S-CN8e3GEeCHv5BGhoZ8CA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_S-CN8u3GEeCHv5BGhoZ8CA" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_S-CN8-3GEeCHv5BGhoZ8CA" x="21" y="-25"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_S-CN9O3GEeCHv5BGhoZ8CA" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_S-CN9e3GEeCHv5BGhoZ8CA" x="-12" y="29"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_S-C1AO3GEeCHv5BGhoZ8CA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_S-C1Ae3GEeCHv5BGhoZ8CA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_S-C1Au3GEeCHv5BGhoZ8CA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_S-C1A-3GEeCHv5BGhoZ8CA" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_S-AYwe3GEeCHv5BGhoZ8CA" fontName="Sans Serif"/>
+ <element xmi:type="uml:Association" href="statemachine.uml#_S99VcO3GEeCHv5BGhoZ8CA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_S-AYwu3GEeCHv5BGhoZ8CA" points="[12, 3, -184, -6]$[193, -41, -3, -50]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_S-EDIO3GEeCHv5BGhoZ8CA" id="(0.88,0.41)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_M7rzaguZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_AwlrwOx2EeCeNZHeHxkazQ" target="_M7rzZguZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_M7rzawuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M7sacAuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="statemachine.uml#_ens7QOUTEd-P08Bciq_LqQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_M7rzbAuZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M7rzbQuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M7rzbguZEeWXe7AeBUbqvw"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_f3mAUPTXEeCn1-FCrfecFg" type="CompositeStructure" name="ContainerRules" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_hobr0PTXEeCn1-FCrfecFg" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hobr0fTXEeCn1-FCrfecFg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hobr0vTXEeCn1-FCrfecFg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hobr0_TXEeCn1-FCrfecFg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hobr1PTXEeCn1-FCrfecFg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hobr1fTXEeCn1-FCrfecFg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hobr1vTXEeCn1-FCrfecFg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hobr3fTXEeCn1-FCrfecFg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hobr3vTXEeCn1-FCrfecFg" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_hobr3_TXEeCn1-FCrfecFg" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hobr4PTXEeCn1-FCrfecFg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hobr4fTXEeCn1-FCrfecFg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hobr4vTXEeCn1-FCrfecFg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hobr4_TXEeCn1-FCrfecFg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hobr5PTXEeCn1-FCrfecFg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hobr5fTXEeCn1-FCrfecFg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hobr5vTXEeCn1-FCrfecFg" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pFVkoFl9EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pGMgQFl9EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hobr5_TXEeCn1-FCrfecFg" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hobr6PTXEeCn1-FCrfecFg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hobr6fTXEeCn1-FCrfecFg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tE-AkPTXEeCn1-FCrfecFg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tE-noPTXEeCn1-FCrfecFg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tE-nofTXEeCn1-FCrfecFg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tE-novTXEeCn1-FCrfecFg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tE-no_TXEeCn1-FCrfecFg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tE-npPTXEeCn1-FCrfecFg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tE-npfTXEeCn1-FCrfecFg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tE_OsPTXEeCn1-FCrfecFg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pmOEIFl9EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_po16UFl9EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tE_OsfTXEeCn1-FCrfecFg" x="36" y="22"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tE_OsvTXEeCn1-FCrfecFg" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tE_Os_TXEeCn1-FCrfecFg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="statemachine.uml#_a4NKMOuMEeCTfOY57pgE3w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tE-AkfTXEeCn1-FCrfecFg" x="72" y="39"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Jv6NUHJVEeOMF7YEvnQt5g" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Jv6NUXJVEeOMF7YEvnQt5g" showTitle="true"/>
+ <element xmi:type="FCM:InterceptionRule" href="statemachine.uml#_Z5CnUPUQEeCn1-FCrfecFg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Jv6NUnJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Jv6NU3JVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Jv6NVHJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Jv6NVXJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_M70WQguZEeWXe7AeBUbqvw" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_M70WQwuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="statemachine.uml#_LyxAEPTXEeCn1-FCrfecFg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hobr6vTXEeCn1-FCrfecFg" x="31" y="4" width="235" height="49"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jXZIAPTXEeCn1-FCrfecFg" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jXZvEPTXEeCn1-FCrfecFg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jXaWIPTXEeCn1-FCrfecFg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jXaWIfTXEeCn1-FCrfecFg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jXaWIvTXEeCn1-FCrfecFg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jXaWI_TXEeCn1-FCrfecFg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jXaWJPTXEeCn1-FCrfecFg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jXaWJfTXEeCn1-FCrfecFg" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rL5ogFl9EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rSIzYFl9EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jXaWJvTXEeCn1-FCrfecFg" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jXa9MPTXEeCn1-FCrfecFg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jXa9MfTXEeCn1-FCrfecFg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_vGo9YPTXEeCn1-FCrfecFg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vGpkcPTXEeCn1-FCrfecFg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vGpkcfTXEeCn1-FCrfecFg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vGpkcvTXEeCn1-FCrfecFg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vGpkc_TXEeCn1-FCrfecFg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vGpkdPTXEeCn1-FCrfecFg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vGpkdfTXEeCn1-FCrfecFg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vGpkdvTXEeCn1-FCrfecFg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qG2E8Fl9EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qJB2QFl9EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vGpkd_TXEeCn1-FCrfecFg" x="-22" y="31"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vGqLgPTXEeCn1-FCrfecFg" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vGqLgfTXEeCn1-FCrfecFg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_MzO8gPNAEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vGo9YfTXEeCn1-FCrfecFg" x="-10" y="18"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Jv8pkHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Jv8pkXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Jv8pknJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_M70WRAuZEeWXe7AeBUbqvw" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_M70WRQuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="statemachine.uml#_jXX54PTXEeCn1-FCrfecFg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jXZIAfTXEeCn1-FCrfecFg" x="157" y="103" width="155" height="47"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_mv8YMPTXEeCn1-FCrfecFg" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mv8_QPTXEeCn1-FCrfecFg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mv8_QfTXEeCn1-FCrfecFg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mv8_QvTXEeCn1-FCrfecFg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mv9mUPTXEeCn1-FCrfecFg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mv9mUfTXEeCn1-FCrfecFg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mv9mUvTXEeCn1-FCrfecFg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mv9mU_TXEeCn1-FCrfecFg" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tGwLoFl9EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tKD-UFl9EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mv9mVPTXEeCn1-FCrfecFg" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mv9mVfTXEeCn1-FCrfecFg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mv9mVvTXEeCn1-FCrfecFg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1pwFEPTXEeCn1-FCrfecFg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1pwFEvTXEeCn1-FCrfecFg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1pwFE_TXEeCn1-FCrfecFg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1pwFFPTXEeCn1-FCrfecFg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1pwFFfTXEeCn1-FCrfecFg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1pwFFvTXEeCn1-FCrfecFg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1pwFF_TXEeCn1-FCrfecFg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1pwFGPTXEeCn1-FCrfecFg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r4clcFl9EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r-rwUFl9EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1pwsIPTXEeCn1-FCrfecFg" x="36" y="-12"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1pwsIfTXEeCn1-FCrfecFg" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1pwsIvTXEeCn1-FCrfecFg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="statemachine.uml#_u7pk4PRUEeCKVJwdD4MMsg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1pwFEfTXEeCn1-FCrfecFg" x="72" y="-10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_4jFLACWdEeGX6PuSE-DJlQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4jFLAiWdEeGX6PuSE-DJlQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4jFyECWdEeGX6PuSE-DJlQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4jFyESWdEeGX6PuSE-DJlQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4jFyEiWdEeGX6PuSE-DJlQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4jFyEyWdEeGX6PuSE-DJlQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4jFyFCWdEeGX6PuSE-DJlQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4jFyFSWdEeGX6PuSE-DJlQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MXmeYCWeEeGX6PuSE-DJlQ" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zi_2UFl9EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="12"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4jFyFiWdEeGX6PuSE-DJlQ" x="18" y="-18"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4jFyFyWdEeGX6PuSE-DJlQ" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4jFyGCWdEeGX6PuSE-DJlQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4jFLASWdEeGX6PuSE-DJlQ" x="225" y="18"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Jv_F0HJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Jv_F0XJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Jv_F0nJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_M70WRguZEeWXe7AeBUbqvw" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_M70WRwuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="statemachine.uml#_mv6jAPTXEeCn1-FCrfecFg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mv8YMfTXEeCn1-FCrfecFg" x="31" y="211" width="235" height="46"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_vjc9kCWdEeGX6PuSE-DJlQ" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vjeLsCWdEeGX6PuSE-DJlQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vjeLsSWdEeGX6PuSE-DJlQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vjeLsiWdEeGX6PuSE-DJlQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vjeLsyWdEeGX6PuSE-DJlQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vjeLtCWdEeGX6PuSE-DJlQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vjeLtSWdEeGX6PuSE-DJlQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vjeLtiWdEeGX6PuSE-DJlQ" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6cCKsFl9EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6gaUYFl9EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_vjeywCWdEeGX6PuSE-DJlQ" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_vjeywSWdEeGX6PuSE-DJlQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vjeywiWdEeGX6PuSE-DJlQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3QYNACWdEeGX6PuSE-DJlQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3QrvACWdEeGX6PuSE-DJlQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3QrvASWdEeGX6PuSE-DJlQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3QrvAiWdEeGX6PuSE-DJlQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3QrvAyWdEeGX6PuSE-DJlQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3QrvBCWdEeGX6PuSE-DJlQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3QrvBSWdEeGX6PuSE-DJlQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3QrvBiWdEeGX6PuSE-DJlQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IjtWACWeEeGX6PuSE-DJlQ" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0KpsMFl9EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="12"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3QrvByWdEeGX6PuSE-DJlQ" x="-35" y="-18"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3QsWECWdEeGX6PuSE-DJlQ" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3QsWESWdEeGX6PuSE-DJlQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_ZjdOAP-EEd6628OhKk_dpg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3QYNASWdEeGX6PuSE-DJlQ" x="-10" y="18"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3Qs9ICWdEeGX6PuSE-DJlQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Q0R4CWdEeGX6PuSE-DJlQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Q0R4SWdEeGX6PuSE-DJlQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Q0R4iWdEeGX6PuSE-DJlQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Q0R4yWdEeGX6PuSE-DJlQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Q0R5CWdEeGX6PuSE-DJlQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Q0R5SWdEeGX6PuSE-DJlQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Q0R5iWdEeGX6PuSE-DJlQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KT8o8ECXEeGa5NwyW9TCXg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wy1b0Fl9EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="12"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Q0R5yWdEeGX6PuSE-DJlQ" x="18" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Q0R6CWdEeGX6PuSE-DJlQ" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Q0R6SWdEeGX6PuSE-DJlQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Qs9ISWdEeGX6PuSE-DJlQ" x="126" y="18"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JwBiEHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JwBiEXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JwBiEnJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_M70WSAuZEeWXe7AeBUbqvw" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_M70WSQuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="statemachine.uml#_vcPiUCWdEeGX6PuSE-DJlQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vjc9kSWdEeGX6PuSE-DJlQ" x="364" y="211" width="136" height="46"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_M-w8kAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_M-w8kQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M-w8kwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Property" href="statemachine.uml#_LyxAEPTXEeCn1-FCrfecFg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M-w8kguZEeWXe7AeBUbqvw" x="231" y="4"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_M-6GiAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_M-6GiQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M-6GiwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="statemachine.uml#_a4NKMOuMEeCTfOY57pgE3w"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M-6GiguZEeWXe7AeBUbqvw" x="272" y="39"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_M_FFoAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_M_FFoQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M_FFowuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_MzO8gPNAEeCovO8AYZymZQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M_FFoguZEeWXe7AeBUbqvw" x="190" y="18"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_M_PdsAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_M_PdsQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M_PdswuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="statemachine.uml#_u7pk4PRUEeCKVJwdD4MMsg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M_PdsguZEeWXe7AeBUbqvw" x="272" y="-10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_M_ZOuAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_M_ZOuQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M_ZOuwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M_ZOuguZEeWXe7AeBUbqvw" x="425" y="18"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_M_jmxguZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_M_jmxwuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M_jmyQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_ZjdOAP-EEd6628OhKk_dpg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M_jmyAuZEeWXe7AeBUbqvw" x="190" y="18"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_M_swuAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_M_swuQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M_swuwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M_swuguZEeWXe7AeBUbqvw" x="326" y="18"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hobr6_TXEeCn1-FCrfecFg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hobr7PTXEeCn1-FCrfecFg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Jv3xEHJVEeOMF7YEvnQt5g" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Jv3xEXJVEeOMF7YEvnQt5g" showTitle="true"/>
+ <element xmi:type="FCM:ContainerRule" href="statemachine.uml#_RmD0YPTXEeCn1-FCrfecFg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Jv3xEnJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Jv4YIHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Jv4YIXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Jv4YInJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_M70WQAuZEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_M70WQQuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="statemachine.uml#_18qdsO67EeCZ9MjsZTV1zw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hobr7fTXEeCn1-FCrfecFg" x="72" y="38" width="550" height="334"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LwPYADeoEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LwPYAjeoEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LwPYAzeoEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LwP_EDeoEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LwP_ETeoEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LwP_EjeoEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LwP_EzeoEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LwP_FDeoEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="statemachine.uml#_LuBKcDeoEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LwPYATeoEeGPyrZ5I3hMlA" x="198" y="396" width="424"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_M-kvUAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_M-kvUQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M-kvUwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="statemachine.uml#_18qdsO67EeCZ9MjsZTV1zw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M-kvUguZEeWXe7AeBUbqvw" x="272" y="38"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_f3mAUfTXEeCn1-FCrfecFg"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_M709UAuZEeWXe7AeBUbqvw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:EObjectListValueStyle" xmi:id="_QPH6EAuZEeWXe7AeBUbqvw" name="css_stylesheets">
+ <eObjectListValue xmi:type="css:EmbeddedStyleSheet" href="pathmap://QML_CORE/core.notation#_7gUz8Mc1EeSsAI2TZshUyg"/>
+ </styles>
+ <element xmi:type="uml:Package" href="statemachine.uml#_DEJCwF81EeGbQoflzrdx0g"/>
+ <edges xmi:type="notation:Connector" xmi:id="_-EO-EPTXEeCn1-FCrfecFg" type="4013" source="_1pwFEPTXEeCn1-FCrfecFg" target="_vGo9YPTXEeCn1-FCrfecFg" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_-EQMMPTXEeCn1-FCrfecFg" type="6025">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-EQMMfTXEeCn1-FCrfecFg" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-EQMMvTXEeCn1-FCrfecFg" visible="false" type="6050">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-EQMM_TXEeCn1-FCrfecFg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-EQMNPTXEeCn1-FCrfecFg" visible="false" type="6051">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-EQMNfTXEeCn1-FCrfecFg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-EQzQPTXEeCn1-FCrfecFg" visible="false" type="6052">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-EQzQfTXEeCn1-FCrfecFg" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_-EPlIPTXEeCn1-FCrfecFg" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Connector" href="statemachine.uml#_-DJY8PTXEeCn1-FCrfecFg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-EPlIfTXEeCn1-FCrfecFg" points="[3, -3, -94, 79]$[3, -76, -94, 6]$[85, -76, -12, 6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-ERaUPTXEeCn1-FCrfecFg" id="(0.45,0.15)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_nINGYPUHEeCn1-FCrfecFg" type="4013" source="_tE-AkPTXEeCn1-FCrfecFg" target="_vGo9YPTXEeCn1-FCrfecFg" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_nIOUgPUHEeCn1-FCrfecFg" type="6025">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nIOUgfUHEeCn1-FCrfecFg" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_nIOUgvUHEeCn1-FCrfecFg" visible="false" type="6050">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nIOUg_UHEeCn1-FCrfecFg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_nIO7kPUHEeCn1-FCrfecFg" visible="false" type="6051">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nIO7kfUHEeCn1-FCrfecFg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_nIO7kvUHEeCn1-FCrfecFg" visible="false" type="6052">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nIO7k_UHEeCn1-FCrfecFg" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_nINGYfUHEeCn1-FCrfecFg" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Connector" href="statemachine.uml#_nILRMPUHEeCn1-FCrfecFg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nINGYvUHEeCn1-FCrfecFg" points="[2, 10, -87, -56]$[2, 68, -87, 2]$[84, 68, -5, 2]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6HRBECQdEeGj_4swHBbKwg" id="(0.55,0.8)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4FuAECQdEeGj_4swHBbKwg" id="(0.45,0.2)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="__0oGACWdEeGX6PuSE-DJlQ" type="4013" source="_4jFLACWdEeGX6PuSE-DJlQ" target="_3QYNACWdEeGX6PuSE-DJlQ" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="__0otECWdEeGX6PuSE-DJlQ" type="6025">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__0otESWdEeGX6PuSE-DJlQ" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="__0pUICWdEeGX6PuSE-DJlQ" visible="false" type="6050">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__0pUISWdEeGX6PuSE-DJlQ" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="__0pUIiWdEeGX6PuSE-DJlQ" visible="false" type="6051">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__0pUIyWdEeGX6PuSE-DJlQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="__0pUJCWdEeGX6PuSE-DJlQ" visible="false" type="6052">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__0pUJSWdEeGX6PuSE-DJlQ" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="__0oGASWdEeGX6PuSE-DJlQ" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Connector" href="statemachine.uml#__zI4QCWdEeGX6PuSE-DJlQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__0oGAiWdEeGX6PuSE-DJlQ" points="[3, 0, -79, -2]$[81, 0, -1, -2]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__006UCWdEeGX6PuSE-DJlQ" id="(0.85,0.35)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__006USWdEeGX6PuSE-DJlQ" id="(0.05,0.45)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_jFHzwDeoEeGPyrZ5I3hMlA" type="4002" source="_LwPYADeoEeGPyrZ5I3hMlA" target="_hobr0PTXEeCn1-FCrfecFg" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_jFHzwTeoEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_jFHzwjeoEeGPyrZ5I3hMlA" points="[1, -2, 0, 34]$[-1, -26, -2, 10]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jFnjADeoEeGPyrZ5I3hMlA" id="(0.294811320754717,0.03333333333333333)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jFnjATeoEeGPyrZ5I3hMlA" id="(0.4581818181818182,0.9700598802395209)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_M-kvVAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_hobr0PTXEeCn1-FCrfecFg" target="_M-kvUAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_M-kvVQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M-kvWQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="statemachine.uml#_18qdsO67EeCZ9MjsZTV1zw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_M-kvVguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M-kvVwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M-kvWAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_M-w8lAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_hobr3_TXEeCn1-FCrfecFg" target="_M-w8kAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_M-w8lQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M-w8mQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Property" href="statemachine.uml#_LyxAEPTXEeCn1-FCrfecFg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_M-w8lguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M-w8lwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M-w8mAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_M-6GjAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_tE-AkPTXEeCn1-FCrfecFg" target="_M-6GiAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_M-6GjQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M-6GkQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="statemachine.uml#_a4NKMOuMEeCTfOY57pgE3w"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_M-6GjguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M-6GjwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M-6GkAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_M_FFpAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_vGo9YPTXEeCn1-FCrfecFg" target="_M_FFoAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_M_FFpQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M_FFqQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_MzO8gPNAEeCovO8AYZymZQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_M_FFpguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M_FFpwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M_FFqAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_M_PdtAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_1pwFEPTXEeCn1-FCrfecFg" target="_M_PdsAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_M_PdtQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M_PduQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="statemachine.uml#_u7pk4PRUEeCKVJwdD4MMsg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_M_PdtguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M_PdtwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M_PduAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_M_ZOvAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_4jFLACWdEeGX6PuSE-DJlQ" target="_M_ZOuAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_M_ZOvQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M_ZOwQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_M_ZOvguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M_ZOvwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M_ZOwAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_M_jmyguZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_3QYNACWdEeGX6PuSE-DJlQ" target="_M_jmxguZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_M_jmywuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M_jmzwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_ZjdOAP-EEd6628OhKk_dpg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_M_jmzAuZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M_jmzQuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M_jmzguZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_M_tXwAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_3Qs9ICWdEeGX6PuSE-DJlQ" target="_M_swuAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_M_tXwQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M_tXxQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_M_tXwguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M_tXwwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M_tXxAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_YNvtYP3HEeC1YdT2qA0bjA" type="PapyrusUMLClassDiagram" name="PackageTemplates" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_Z7x8gP3HEeC1YdT2qA0bjA" type="2007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Z7yjkP3HEeC1YdT2qA0bjA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z7yjkf3HEeC1YdT2qA0bjA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Z7yjkv3HEeC1YdT2qA0bjA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z7yjk_3HEeC1YdT2qA0bjA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Z7yjlP3HEeC1YdT2qA0bjA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z7yjlf3HEeC1YdT2qA0bjA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Z7yjlv3HEeC1YdT2qA0bjA" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Z7yjl_3HEeC1YdT2qA0bjA" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Z7yjmP3HEeC1YdT2qA0bjA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Z7yjmf3HEeC1YdT2qA0bjA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_afY_4P3HEeC1YdT2qA0bjA" type="3033" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_afaOAP3HEeC1YdT2qA0bjA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_afaOAf3HEeC1YdT2qA0bjA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_afaOAv3HEeC1YdT2qA0bjA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_afaOA_3HEeC1YdT2qA0bjA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_afaOBP3HEeC1YdT2qA0bjA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_afa1EP3HEeC1YdT2qA0bjA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_afa1Ef3HEeC1YdT2qA0bjA" type="7038">
+ <children xmi:type="notation:Shape" xmi:id="_bZdbcP3HEeC1YdT2qA0bjA" type="3031" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="pathmap://QML_CORE/core.uml#_wfwIoOUYEd-P08Bciq_LqQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bZdbcf3HEeC1YdT2qA0bjA" x="16" y="7"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_afa1Ev3HEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_afa1E_3HEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_afa1FP3HEeC1YdT2qA0bjA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_afa1Ff3HEeC1YdT2qA0bjA"/>
+ </children>
+ <element xmi:type="uml:TemplateSignature" href="pathmap://QML_CORE/core.uml#_rNm5kOUYEd-P08Bciq_LqQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_afY_4f3HEeC1YdT2qA0bjA" x="181" y="8"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JyPvoHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JyPvoXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JyPvonJVEeOMF7YEvnQt5g"/>
+ </children>
+ <element xmi:type="uml:Package" href="pathmap://QML_CORE/core.uml#_m7SIwOUYEd-P08Bciq_LqQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Z7x8gf3HEeC1YdT2qA0bjA" x="106" y="65"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dpF7wP3HEeC1YdT2qA0bjA" type="2007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dpGi0P3HEeC1YdT2qA0bjA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dpGi0f3HEeC1YdT2qA0bjA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dpHJ4P3HEeC1YdT2qA0bjA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dpHJ4f3HEeC1YdT2qA0bjA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dpHJ4v3HEeC1YdT2qA0bjA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dpHJ4_3HEeC1YdT2qA0bjA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dpHJ5P3HEeC1YdT2qA0bjA" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dpHJ5f3HEeC1YdT2qA0bjA" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dpHJ5v3HEeC1YdT2qA0bjA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dpHJ5_3HEeC1YdT2qA0bjA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_g_daoP3HEeC1YdT2qA0bjA" type="3033" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_g_eBsP3HEeC1YdT2qA0bjA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_g_eBsf3HEeC1YdT2qA0bjA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_g_eBsv3HEeC1YdT2qA0bjA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_g_eBs_3HEeC1YdT2qA0bjA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_g_eBtP3HEeC1YdT2qA0bjA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_g_eBtf3HEeC1YdT2qA0bjA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_g_eBtv3HEeC1YdT2qA0bjA" type="7038">
+ <children xmi:type="notation:Shape" xmi:id="_iFmjUP3HEeC1YdT2qA0bjA" type="3031" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="pathmap://QML_CORE/core.uml#_WzWVUPfBEd2TbIfwytOyPA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iFmjUf3HEeC1YdT2qA0bjA" x="25" y="14"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_g_eBt_3HEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_g_eBuP3HEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_g_eBuf3HEeC1YdT2qA0bjA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_eBuv3HEeC1YdT2qA0bjA"/>
+ </children>
+ <element xmi:type="uml:TemplateSignature" href="pathmap://QML_CORE/core.uml#_V0b2APfBEd2TbIfwytOyPA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_daof3HEeC1YdT2qA0bjA" x="159" y="3"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JyQ9wHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JyQ9wXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JyQ9wnJVEeOMF7YEvnQt5g"/>
+ </children>
+ <element xmi:type="uml:Package" href="pathmap://QML_CORE/core.uml#_mMCK8PiPEd2UhpY2Y3WUyg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dpF7wf3HEeC1YdT2qA0bjA" x="450" y="72"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jCm-IP3HEeC1YdT2qA0bjA" type="2007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jCoMQP3HEeC1YdT2qA0bjA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jCoMQf3HEeC1YdT2qA0bjA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jCoMQv3HEeC1YdT2qA0bjA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jCoMQ_3HEeC1YdT2qA0bjA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jCoMRP3HEeC1YdT2qA0bjA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jCoMRf3HEeC1YdT2qA0bjA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jCozUP3HEeC1YdT2qA0bjA" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jCozUf3HEeC1YdT2qA0bjA" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_xlmtgP3HEeC1YdT2qA0bjA" type="3010" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xlnUkP3HEeC1YdT2qA0bjA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xlnUkf3HEeC1YdT2qA0bjA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xlnUkv3HEeC1YdT2qA0bjA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xlnUk_3HEeC1YdT2qA0bjA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xln7oP3HEeC1YdT2qA0bjA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xln7of3HEeC1YdT2qA0bjA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xln7ov3HEeC1YdT2qA0bjA" type="5014"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_xln7o_3HEeC1YdT2qA0bjA" visible="false" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_xln7pP3HEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_xln7pf3HEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_xln7pv3HEeC1YdT2qA0bjA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xln7p_3HEeC1YdT2qA0bjA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_xln7qP3HEeC1YdT2qA0bjA" visible="false" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_xln7qf3HEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_xln7qv3HEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_xln7q_3HEeC1YdT2qA0bjA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xln7rP3HEeC1YdT2qA0bjA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_xln7rf3HEeC1YdT2qA0bjA" visible="false" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_xln7rv3HEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_xln7r_3HEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_xln7sP3HEeC1YdT2qA0bjA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xln7sf3HEeC1YdT2qA0bjA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JyUBEHJVEeOMF7YEvnQt5g" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JyUBEXJVEeOMF7YEvnQt5g" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="statemachine.uml#_eGpZQBE1EeG3cfLoiI6G7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JyUBEnJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JyUoIHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JyUoIXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JyUoInJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_M_7aMAuZEeWXe7AeBUbqvw" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_M_7aMQuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="statemachine.uml#_ens7QOUTEd-P08Bciq_LqQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xlmtgf3HEeC1YdT2qA0bjA" x="41" y="10" height="43"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NCipVguZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_NCipVwuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NCipWQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="statemachine.uml#_ens7QOUTEd-P08Bciq_LqQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NCipWAuZEeWXe7AeBUbqvw" x="241" y="10"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jCozUv3HEeC1YdT2qA0bjA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jCozU_3HEeC1YdT2qA0bjA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JySy8HJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JySy8XJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JySy8nJVEeOMF7YEvnQt5g"/>
+ </children>
+ <element xmi:type="uml:Package" href="statemachine.uml#_9J39cOupEeCTfOY57pgE3w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jCnlMP3HEeC1YdT2qA0bjA" x="108" y="234"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_rjNtQP3HEeC1YdT2qA0bjA" type="2007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rjOUUP3HEeC1YdT2qA0bjA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rjOUUf3HEeC1YdT2qA0bjA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rjOUUv3HEeC1YdT2qA0bjA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rjOUU_3HEeC1YdT2qA0bjA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rjOUVP3HEeC1YdT2qA0bjA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rjOUVf3HEeC1YdT2qA0bjA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_rjOUVv3HEeC1YdT2qA0bjA" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_rjOUV_3HEeC1YdT2qA0bjA" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_vWQhEP3HEeC1YdT2qA0bjA" type="3010" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vWRIIP3HEeC1YdT2qA0bjA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vWRvMP3HEeC1YdT2qA0bjA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vWRvMf3HEeC1YdT2qA0bjA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vWRvMv3HEeC1YdT2qA0bjA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vWRvM_3HEeC1YdT2qA0bjA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vWRvNP3HEeC1YdT2qA0bjA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vWRvNf3HEeC1YdT2qA0bjA" type="5014"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_vWSWQP3HEeC1YdT2qA0bjA" visible="false" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_vWSWQf3HEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_vWSWQv3HEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_vWSWQ_3HEeC1YdT2qA0bjA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vWSWRP3HEeC1YdT2qA0bjA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_vWSWRf3HEeC1YdT2qA0bjA" visible="false" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_vWSWRv3HEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_vWSWR_3HEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_vWSWSP3HEeC1YdT2qA0bjA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vWSWSf3HEeC1YdT2qA0bjA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_vWSWSv3HEeC1YdT2qA0bjA" visible="false" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_vWSWS_3HEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_vWSWTP3HEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_vWSWTf3HEeC1YdT2qA0bjA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vWSWTv3HEeC1YdT2qA0bjA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JyYSgHJVEeOMF7YEvnQt5g" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JyYSgXJVEeOMF7YEvnQt5g" showTitle="true"/>
+ <element xmi:type="FCM:InteractionComponent" href="statemachine.uml#_hanSUOUUEd-P08Bciq_LqQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JyYSgnJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JyYSg3JVEeOMF7YEvnQt5g" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JyYShHJVEeOMF7YEvnQt5g" showTitle="true"/>
+ <element xmi:type="FCM:UseInstanceConfigurator" href="statemachine.uml#_StgB8CNYEeGj_4swHBbKwg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JyYShXJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JyY5kHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JyY5kXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JyY5knJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_M_8BQAuZEeWXe7AeBUbqvw" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_M_8BQQuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="statemachine.uml#_u-qioOUTEd-P08Bciq_LqQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vWQhEf3HEeC1YdT2qA0bjA" x="35" y="10" height="43"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NC2LUAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_NC2LUQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NC2LUwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="statemachine.uml#_u-qioOUTEd-P08Bciq_LqQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NC2LUguZEeWXe7AeBUbqvw" x="235" y="10"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_rjO7YP3HEeC1YdT2qA0bjA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rjO7Yf3HEeC1YdT2qA0bjA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JyWdUHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JyWdUXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JyWdUnJVEeOMF7YEvnQt5g"/>
+ </children>
+ <element xmi:type="uml:Package" href="statemachine.uml#_i9AuoOUTEd-P08Bciq_LqQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rjNtQf3HEeC1YdT2qA0bjA" x="451" y="234"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_YNvtYf3HEeC1YdT2qA0bjA"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_M_8BQguZEeWXe7AeBUbqvw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Model" href="statemachine.uml#_ago_QOUTEd-P08Bciq_LqQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_lvW4QP3HEeC1YdT2qA0bjA" type="4011" source="_jCm-IP3HEeC1YdT2qA0bjA" target="_Z7x8gP3HEeC1YdT2qA0bjA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_lvYtcP3HEeC1YdT2qA0bjA" type="6030">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lvYtcf3HEeC1YdT2qA0bjA" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_lvW4Qf3HEeC1YdT2qA0bjA" fontName="Sans Serif"/>
+ <element xmi:type="uml:PackageMerge" href="statemachine.uml#_lvUcAP3HEeC1YdT2qA0bjA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_lvW4Qv3HEeC1YdT2qA0bjA" points="[4, -30, 0, 104]$[10, -120, 6, 14]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nNSO0P3HEeC1YdT2qA0bjA" id="(0.555,0.22)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_lvaioP3HEeC1YdT2qA0bjA" id="(0.58,0.86)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ttE8wP3HEeC1YdT2qA0bjA" type="4011" source="_rjNtQP3HEeC1YdT2qA0bjA" target="_dpF7wP3HEeC1YdT2qA0bjA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ttGK4P3HEeC1YdT2qA0bjA" type="6030">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ttGK4f3HEeC1YdT2qA0bjA" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ttE8wf3HEeC1YdT2qA0bjA" fontName="Sans Serif"/>
+ <element xmi:type="uml:PackageMerge" href="statemachine.uml#_ttDuoP3HEeC1YdT2qA0bjA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ttE8wv3HEeC1YdT2qA0bjA" points="[4, -30, 5, 132]$[99, -155, 100, 7]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_EiU2MP3IEeC1YdT2qA0bjA" id="(0.62,0.24)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_D6k5sP3IEeC1YdT2qA0bjA" id="(0.58,0.98)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NCipWguZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_xlmtgP3HEeC1YdT2qA0bjA" target="_NCipVguZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NCipWwuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NCipXwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="statemachine.uml#_ens7QOUTEd-P08Bciq_LqQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NCipXAuZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NCipXQuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NCipXguZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NC2LVAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_vWQhEP3HEeC1YdT2qA0bjA" target="_NC2LUAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NC2LVQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NC2LWQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="statemachine.uml#_u-qioOUTEd-P08Bciq_LqQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NC2LVguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NC2LVwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NC2LWAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_IOfaAF8wEeGerN33d-RdRg" type="CompositeStructure" name="Animation" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_xEbfcF81EeGbQoflzrdx0g" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xEctkF81EeGbQoflzrdx0g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xEctkV81EeGbQoflzrdx0g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xEctkl81EeGbQoflzrdx0g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xEctk181EeGbQoflzrdx0g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xEctlF81EeGbQoflzrdx0g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xEctlV81EeGbQoflzrdx0g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xEdUoF81EeGbQoflzrdx0g" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_xEdUoV81EeGbQoflzrdx0g" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_xEdUol81EeGbQoflzrdx0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xEdUo181EeGbQoflzrdx0g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_z-vUcF81EeGbQoflzrdx0g" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_z-v7gF81EeGbQoflzrdx0g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_z-v7gV81EeGbQoflzrdx0g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_z-v7gl81EeGbQoflzrdx0g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_z-v7g181EeGbQoflzrdx0g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_z-v7hF81EeGbQoflzrdx0g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_z-wikF81EeGbQoflzrdx0g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_z-wikV81EeGbQoflzrdx0g" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_z-wikl81EeGbQoflzrdx0g" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_z-wik181EeGbQoflzrdx0g" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_z-wilF81EeGbQoflzrdx0g" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="statemachine.uml#_z94Y0F81EeGbQoflzrdx0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z-vUcV81EeGbQoflzrdx0g" x="-10" y="64" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J0Gw0HJVEeOMF7YEvnQt5g" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J0Gw0XJVEeOMF7YEvnQt5g" showTitle="true"/>
+ <element xmi:type="FCM:Singleton" href="statemachine.uml#_uqa34F_1EeGbQoflzrdx0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J0Gw0nJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J0Gw03JVEeOMF7YEvnQt5g" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J0Gw1HJVEeOMF7YEvnQt5g" showTitle="true"/>
+ <element xmi:type="FCM:UseInstanceConfigurator" href="statemachine.uml#_VnhuMGGDEeO2F4QRMDSOXg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J0Gw1XJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J0HX4HJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J0HX4XJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J0HX4nJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZXfOMHg_EeOejZqJpKQeww" type="3069">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZXfOMng_EeOejZqJpKQeww" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZXfOM3g_EeOejZqJpKQeww" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZXfONHg_EeOejZqJpKQeww" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZXfONXg_EeOejZqJpKQeww" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="statemachine.uml#_ZXYggHg_EeOejZqJpKQeww"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZXfOMXg_EeOejZqJpKQeww" x="274" y="72" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NDC_oAuZEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NDC_oQuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="statemachine.uml#_xELAwF81EeGbQoflzrdx0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xEbfcV81EeGbQoflzrdx0g" x="203" y="116" width="284" height="128"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_B1CQgHg_EeOejZqJpKQeww" type="2073">
+ <children xmi:type="notation:DecorationNode" xmi:id="_B1CQgng_EeOejZqJpKQeww" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_B1C3kHg_EeOejZqJpKQeww" type="7073">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_K8aEsHg_EeOejZqJpKQeww" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_K8aEsXg_EeOejZqJpKQeww" key="showTitle" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_B1C3kXg_EeOejZqJpKQeww"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_B1C3kng_EeOejZqJpKQeww"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_B1LacHg_EeOejZqJpKQeww" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_B1LacXg_EeOejZqJpKQeww"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_B1Lacng_EeOejZqJpKQeww"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JOz6cHg_EeOejZqJpKQeww" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JOz6cXg_EeOejZqJpKQeww" showTitle="true"/>
+ <element xmi:type="FCM:Singleton" href="statemachine.uml#_JOwQEHg_EeOejZqJpKQeww"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JOz6cng_EeOejZqJpKQeww"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ML26YHg_EeOejZqJpKQeww" type="3069">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ML3hcHg_EeOejZqJpKQeww" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ML3hcXg_EeOejZqJpKQeww" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ML3hcng_EeOejZqJpKQeww" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ML3hc3g_EeOejZqJpKQeww" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="statemachine.uml#_MLu-kHg_EeOejZqJpKQeww"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ML26YXg_EeOejZqJpKQeww" x="-10" y="60" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NDC_oguZEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NDC_owuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="statemachine.uml#_B0gFAHg_EeOejZqJpKQeww"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_B1CQgXg_EeOejZqJpKQeww" x="200" y="285" width="289" height="114"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_vOvOUHg_EeOejZqJpKQeww" type="2073">
+ <children xmi:type="notation:DecorationNode" xmi:id="_vOvOUng_EeOejZqJpKQeww" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_vOvOU3g_EeOejZqJpKQeww" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_vOvOVHg_EeOejZqJpKQeww" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vOvOVXg_EeOejZqJpKQeww"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NDC_pAuZEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NDC_pQuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="statemachine.uml#_QH7R8GGDEeO2F4QRMDSOXg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vOvOUXg_EeOejZqJpKQeww" x="570" y="289" width="211" height="110"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BLsjIHhAEeOejZqJpKQeww" type="2109">
+ <children xmi:type="notation:DecorationNode" xmi:id="_BLsjInhAEeOejZqJpKQeww" type="5192"/>
+ <element xmi:type="uml:Comment" href="statemachine.uml#_BLcrgHhAEeOejZqJpKQeww"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BLsjIXhAEeOejZqJpKQeww" x="547" y="417" width="234" height="60"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NE29gAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_NE29gQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NE29gwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="statemachine.uml#_xELAwF81EeGbQoflzrdx0g"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NE29gguZEeWXe7AeBUbqvw" x="403" y="116"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NFDKxAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_NFDKxQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NFDKxwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="statemachine.uml#_z94Y0F81EeGbQoflzrdx0g"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NFDKxguZEeWXe7AeBUbqvw" x="190" y="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NFUQgAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_NFUQgQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NFUQgwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="statemachine.uml#_ZXYggHg_EeOejZqJpKQeww"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NFUQgguZEeWXe7AeBUbqvw" x="474" y="72"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NFt5IguZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_NFt5IwuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NFt5JQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="statemachine.uml#_B0gFAHg_EeOejZqJpKQeww"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NFt5JAuZEeWXe7AeBUbqvw" x="400" y="285"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NF6GYguZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_NF6GYwuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NF6GZQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="statemachine.uml#_MLu-kHg_EeOejZqJpKQeww"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NF6GZAuZEeWXe7AeBUbqvw" x="190" y="60"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NGHhwAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_NGHhwQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NGHhwwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="statemachine.uml#_QH7R8GGDEeO2F4QRMDSOXg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NGHhwguZEeWXe7AeBUbqvw" x="770" y="289"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_IOfaAV8wEeGerN33d-RdRg"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_NDC_pguZEeWXe7AeBUbqvw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="statemachine.uml#_F5DMoF8wEeGerN33d-RdRg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_NE29hAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_xEbfcF81EeGbQoflzrdx0g" target="_NE29gAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NE29hQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NE29iQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="statemachine.uml#_xELAwF81EeGbQoflzrdx0g"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NE29hguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NE29hwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NE29iAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NFDKyAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_z-vUcF81EeGbQoflzrdx0g" target="_NFDKxAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NFDKyQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NFDKzQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="statemachine.uml#_z94Y0F81EeGbQoflzrdx0g"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NFDKyguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NFDKywuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NFDKzAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NFUQhAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_ZXfOMHg_EeOejZqJpKQeww" target="_NFUQgAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NFUQhQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NFUQiQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="statemachine.uml#_ZXYggHg_EeOejZqJpKQeww"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NFUQhguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NFUQhwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NFUQiAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NFt5JguZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_B1CQgHg_EeOejZqJpKQeww" target="_NFt5IguZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NFt5JwuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NFugMQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="statemachine.uml#_B0gFAHg_EeOejZqJpKQeww"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NFt5KAuZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NFt5KQuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NFugMAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NF6GZguZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_ML26YHg_EeOejZqJpKQeww" target="_NF6GYguZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NF6GZwuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NF6GawuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="statemachine.uml#_MLu-kHg_EeOejZqJpKQeww"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NF6GaAuZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NF6GaQuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NF6GaguZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NGHhxAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_vOvOUHg_EeOejZqJpKQeww" target="_NGHhwAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NGHhxQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NGHhyQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="statemachine.uml#_QH7R8GGDEeO2F4QRMDSOXg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NGHhxguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NGHhxwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NGHhyAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_KwHpQF8wEeGerN33d-RdRg" type="PapyrusUMLClassDiagram" name="Animation" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_L-7lwF8wEeGerN33d-RdRg" type="2004" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L-8M0F8wEeGerN33d-RdRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L-8M0V8wEeGerN33d-RdRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L-8M0l8wEeGerN33d-RdRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L-8M018wEeGerN33d-RdRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L-8M1F8wEeGerN33d-RdRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L-8M1V8wEeGerN33d-RdRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_L-8z4F8wEeGerN33d-RdRg" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_L-8z4V8wEeGerN33d-RdRg" visible="false" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_L-8z4l8wEeGerN33d-RdRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_L-8z418wEeGerN33d-RdRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_L-8z5F8wEeGerN33d-RdRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_L-8z5V8wEeGerN33d-RdRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_L-8z5l8wEeGerN33d-RdRg" type="7007">
+ <children xmi:type="notation:Shape" xmi:id="_N3uTYF8wEeGerN33d-RdRg" type="3007" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="statemachine.uml#_N3m-oF8wEeGerN33d-RdRg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_N3uTYV8wEeGerN33d-RdRg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZghigF8wEeGerN33d-RdRg" type="3007" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="statemachine.uml#_ZgY_oF8wEeGerN33d-RdRg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZghigV8wEeGerN33d-RdRg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_L-8z518wEeGerN33d-RdRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_L-8z6F8wEeGerN33d-RdRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_L-8z6V8wEeGerN33d-RdRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_L-8z6l8wEeGerN33d-RdRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_L-9a8F8wEeGerN33d-RdRg" visible="false" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_L-9a8V8wEeGerN33d-RdRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_L-9a8l8wEeGerN33d-RdRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_L-9a818wEeGerN33d-RdRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_L-9a9F8wEeGerN33d-RdRg"/>
+ </children>
+ <element xmi:type="uml:Interface" href="statemachine.uml#_L-I7kF8wEeGerN33d-RdRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_L-7lwV8wEeGerN33d-RdRg" x="175" y="129" width="339" height="88"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_KwHpQV8wEeGerN33d-RdRg"/>
+ <element xmi:type="uml:Package" href="statemachine.uml#_F5DMoF8wEeGerN33d-RdRg"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_Ogua0F81EeGbQoflzrdx0g" type="CompositeStructure" name="ContainerRules2" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_PMf7sF81EeGbQoflzrdx0g" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PMhJ0F81EeGbQoflzrdx0g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PMhw4F81EeGbQoflzrdx0g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PMhw4V81EeGbQoflzrdx0g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PMhw4l81EeGbQoflzrdx0g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PMhw4181EeGbQoflzrdx0g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PMhw5F81EeGbQoflzrdx0g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_PMiX8F81EeGbQoflzrdx0g" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PMiX8V81EeGbQoflzrdx0g" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_Qj1iEF81EeGbQoflzrdx0g" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Qj2JIF81EeGbQoflzrdx0g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qj2JIV81EeGbQoflzrdx0g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Qj2wMF81EeGbQoflzrdx0g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qj2wMV81EeGbQoflzrdx0g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Qj2wMl81EeGbQoflzrdx0g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qj2wM181EeGbQoflzrdx0g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Qj2wNF81EeGbQoflzrdx0g" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-fvQsFl9EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-ib_YFl9EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Qj2wNV81EeGbQoflzrdx0g" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Qj2wNl81EeGbQoflzrdx0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Qj2wN181EeGbQoflzrdx0g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XQCUUF81EeGbQoflzrdx0g" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XQDicF81EeGbQoflzrdx0g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XQDicV81EeGbQoflzrdx0g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XQDicl81EeGbQoflzrdx0g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XQDic181EeGbQoflzrdx0g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XQDidF81EeGbQoflzrdx0g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XQEJgF81EeGbQoflzrdx0g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XQEJgV81EeGbQoflzrdx0g" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_78ZxQFl9EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7_ndUFl9EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XQEJgl81EeGbQoflzrdx0g" x="-30" y="23"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XQEJg181EeGbQoflzrdx0g" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XQEJhF81EeGbQoflzrdx0g" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="statemachine.uml#_a4NKMOuMEeCTfOY57pgE3w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XQCUUV81EeGbQoflzrdx0g" x="18" y="64"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J3dm0HJVEeOMF7YEvnQt5g" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J3dm0XJVEeOMF7YEvnQt5g" showTitle="true"/>
+ <element xmi:type="FCM:InterceptionRule" href="statemachine.uml#_IeaTEF81EeGbQoflzrdx0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J3dm0nJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J3dm03JVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J3dm1HJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J3dm1XJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NGSg4guZEeWXe7AeBUbqvw" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NGSg4wuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="statemachine.uml#_IeWosV81EeGbQoflzrdx0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Qj1iEV81EeGbQoflzrdx0g" x="38" y="10" width="225"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Qj5McF81EeGbQoflzrdx0g" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Qj5zgF81EeGbQoflzrdx0g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qj6akF81EeGbQoflzrdx0g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Qj6akV81EeGbQoflzrdx0g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qj6akl81EeGbQoflzrdx0g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Qj6ak181EeGbQoflzrdx0g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qj6alF81EeGbQoflzrdx0g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Qj7BoF81EeGbQoflzrdx0g" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9fG6IFl9EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9f6ycFl9EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Qj7BoV81EeGbQoflzrdx0g" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Qj7Bol81EeGbQoflzrdx0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Qj7Bo181EeGbQoflzrdx0g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_X1IlcF81EeGbQoflzrdx0g" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_X1JMgF81EeGbQoflzrdx0g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_X1JMgV81EeGbQoflzrdx0g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_X1JzkF81EeGbQoflzrdx0g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_X1JzkV81EeGbQoflzrdx0g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_X1Jzkl81EeGbQoflzrdx0g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_X1Jzk181EeGbQoflzrdx0g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_X1JzlF81EeGbQoflzrdx0g" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mUS1QHkjEeOMFc4T5KeVdg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mUdNUHkjEeOMFc4T5KeVdg" key="CustomAppearance_MaskValue" value="524316"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_X1JzlV81EeGbQoflzrdx0g" x="29" y="9"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_X1Jzll81EeGbQoflzrdx0g" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_X1Jzl181EeGbQoflzrdx0g" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_MzO8gPNAEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_X1IlcV81EeGbQoflzrdx0g" x="-10" y="23"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J3gDEHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J3gDEXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J3gDEnJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NGSg5AuZEeWXe7AeBUbqvw" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NGSg5QuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="statemachine.uml#_IeWotV81EeGbQoflzrdx0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Qj5McV81EeGbQoflzrdx0g" x="99" y="85" width="191" height="55"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Qj8PwF81EeGbQoflzrdx0g" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Qj9d4F81EeGbQoflzrdx0g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qj9d4V81EeGbQoflzrdx0g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Qj9d4l81EeGbQoflzrdx0g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qj9d4181EeGbQoflzrdx0g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Qj-E8F81EeGbQoflzrdx0g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qj-E8V81EeGbQoflzrdx0g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Qj-E8l81EeGbQoflzrdx0g" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_APNqQFl-EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ASBGoFl-EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Qj-E8181EeGbQoflzrdx0g" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Qj-E9F81EeGbQoflzrdx0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Qj-E9V81EeGbQoflzrdx0g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Yl57EF81EeGbQoflzrdx0g" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Yl6iIF81EeGbQoflzrdx0g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Yl7JMF81EeGbQoflzrdx0g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Yl7JMV81EeGbQoflzrdx0g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Yl7JMl81EeGbQoflzrdx0g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Yl7JM181EeGbQoflzrdx0g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Yl7JNF81EeGbQoflzrdx0g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Yl7JNV81EeGbQoflzrdx0g" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__G-P0Fl9EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__MRmkFl9EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Yl7JNl81EeGbQoflzrdx0g" x="-28" y="-18"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Yl7JN181EeGbQoflzrdx0g" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Yl7JOF81EeGbQoflzrdx0g" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="statemachine.uml#_u7pk4PRUEeCKVJwdD4MMsg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Yl57EV81EeGbQoflzrdx0g" x="29"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Yl7wQF81EeGbQoflzrdx0g" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Yl8XUF81EeGbQoflzrdx0g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Yl8XUV81EeGbQoflzrdx0g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Yl8XUl81EeGbQoflzrdx0g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Yl8XU181EeGbQoflzrdx0g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Yl8XVF81EeGbQoflzrdx0g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Yl8XVV81EeGbQoflzrdx0g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Yl8XVl81EeGbQoflzrdx0g" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AxQnYFl-EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_A02G4Fl-EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Yl8XV181EeGbQoflzrdx0g" x="27" y="18"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Yl8-YF81EeGbQoflzrdx0g" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Yl8-YV81EeGbQoflzrdx0g" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="statemachine.uml#_xUE3QF8wEeGerN33d-RdRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Yl7wQV81EeGbQoflzrdx0g" x="18" y="54"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Yl8-Yl81EeGbQoflzrdx0g" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Yl9lcF81EeGbQoflzrdx0g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Yl9lcV81EeGbQoflzrdx0g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Yl9lcl81EeGbQoflzrdx0g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Yl9lc181EeGbQoflzrdx0g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Yl-MgF81EeGbQoflzrdx0g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Yl-MgV81EeGbQoflzrdx0g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Yl-Mgl81EeGbQoflzrdx0g" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Mui4wFl-EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M0qH0Fl-EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Yl-Mg181EeGbQoflzrdx0g" x="31" y="-18"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Yl-MhF81EeGbQoflzrdx0g" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Yl-MhV81EeGbQoflzrdx0g" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Yl8-Y181EeGbQoflzrdx0g" x="232" y="43"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J3h4QHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J3h4QXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J3h4QnJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NGSg5guZEeWXe7AeBUbqvw" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NGSg5wuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="statemachine.uml#_IeXPwV81EeGbQoflzrdx0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Qj8PwV81EeGbQoflzrdx0g" x="27" y="175" width="232" height="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Qj_6IF81EeGbQoflzrdx0g" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QkAhMF81EeGbQoflzrdx0g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QkAhMV81EeGbQoflzrdx0g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QkBIQF81EeGbQoflzrdx0g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QkBIQV81EeGbQoflzrdx0g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QkBIQl81EeGbQoflzrdx0g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QkBIQ181EeGbQoflzrdx0g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QkBIRF81EeGbQoflzrdx0g" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GH4t0Fl-EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GN7EYFl-EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QkBIRV81EeGbQoflzrdx0g" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QkBIRl81EeGbQoflzrdx0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QkBIR181EeGbQoflzrdx0g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Zh1X0F81EeGbQoflzrdx0g" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zh1-4F81EeGbQoflzrdx0g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zh1-4V81EeGbQoflzrdx0g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zh1-4l81EeGbQoflzrdx0g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zh1-4181EeGbQoflzrdx0g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zh1-5F81EeGbQoflzrdx0g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zh1-5V81EeGbQoflzrdx0g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Zh1-5l81EeGbQoflzrdx0g" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GtCCQFl-EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G06y8Fl-EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Zh1-5181EeGbQoflzrdx0g" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Zh1-6F81EeGbQoflzrdx0g" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Zh1-6V81EeGbQoflzrdx0g" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_ZjdOAP-EEd6628OhKk_dpg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zh1X0V81EeGbQoflzrdx0g" y="40"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J3k7kHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J3k7kXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J3k7knJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NGSg6AuZEeWXe7AeBUbqvw" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NGSg6QuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="statemachine.uml#_IeXPxV81EeGbQoflzrdx0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Qj_6IV81EeGbQoflzrdx0g" x="378" y="175" width="145" height="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_pTX98F81EeGbQoflzrdx0g" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pTYlAF81EeGbQoflzrdx0g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pTYlAV81EeGbQoflzrdx0g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pTYlAl81EeGbQoflzrdx0g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pTYlA181EeGbQoflzrdx0g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pTYlBF81EeGbQoflzrdx0g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pTYlBV81EeGbQoflzrdx0g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_pTYlBl81EeGbQoflzrdx0g" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IKthMFl-EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IQmt0Fl-EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_pTZMEF81EeGbQoflzrdx0g" type="7077" collapsed="true">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_pTZMEV81EeGbQoflzrdx0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pTZMEl81EeGbQoflzrdx0g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CYirkF82EeGbQoflzrdx0g" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CYjSoF82EeGbQoflzrdx0g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CYjSoV82EeGbQoflzrdx0g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CYjSol82EeGbQoflzrdx0g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CYjSo182EeGbQoflzrdx0g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CYj5sF82EeGbQoflzrdx0g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CYj5sV82EeGbQoflzrdx0g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CYj5sl82EeGbQoflzrdx0g" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_N0M5QFl-EeKFQZ_XV_Kn6g" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_N3Vs0Fl-EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CYj5s182EeGbQoflzrdx0g" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CYj5tF82EeGbQoflzrdx0g" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CYj5tV82EeGbQoflzrdx0g" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="statemachine.uml#_z94Y0F81EeGbQoflzrdx0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CYirkV82EeGbQoflzrdx0g" x="-10" y="23"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J3mwwHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J3mwwXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J3mwwnJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NGSg6guZEeWXe7AeBUbqvw" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NGSg6wuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="statemachine.uml#_pTD04F81EeGbQoflzrdx0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pTX98V81EeGbQoflzrdx0g" x="295" y="283" width="226" height="53"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NJYRIAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_NJYRIQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NJYRIwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Property" href="statemachine.uml#_IeWosV81EeGbQoflzrdx0g"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NJYRIguZEeWXe7AeBUbqvw" x="210" y="10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NJhbEAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_NJhbEQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NJhbEwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="statemachine.uml#_a4NKMOuMEeCTfOY57pgE3w"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NJhbEguZEeWXe7AeBUbqvw" x="235" y="35"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NJtBRAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_NJtBRQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NJtBRwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_MzO8gPNAEeCovO8AYZymZQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NJtBRguZEeWXe7AeBUbqvw" x="190" y="23"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NJ844AuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_NJ844QuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NJ844wuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="statemachine.uml#_u7pk4PRUEeCKVJwdD4MMsg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NJ844guZEeWXe7AeBUbqvw" x="218" y="-10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NKK7VguZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_NKK7VwuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NKK7WQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="statemachine.uml#_xUE3QF8wEeGerN33d-RdRg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NKK7WAuZEeWXe7AeBUbqvw" x="218" y="54"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NKVTaAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_NKVTaQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NKVTawuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NKVTaguZEeWXe7AeBUbqvw" x="364" y="27"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NKfEaAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_NKfEaQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NKfEawuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_ZjdOAP-EEd6628OhKk_dpg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NKfEaguZEeWXe7AeBUbqvw" x="190" y="27"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NKoOWAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_NKoOWQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NKoOWwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="statemachine.uml#_z94Y0F81EeGbQoflzrdx0g"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NKoOWguZEeWXe7AeBUbqvw" x="190" y="23"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_PMiX8l81EeGbQoflzrdx0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PMiX8181EeGbQoflzrdx0g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J3bKkHJVEeOMF7YEvnQt5g" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J3bKkXJVEeOMF7YEvnQt5g" showTitle="true"/>
+ <element xmi:type="FCM:ContainerRule" href="statemachine.uml#_IeZE8F81EeGbQoflzrdx0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J3bKknJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J3bxoHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J3bxoXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J3bxonJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NGSg4AuZEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NGSg4QuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="statemachine.uml#_IeWosF81EeGbQoflzrdx0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PMf7sV81EeGbQoflzrdx0g" x="157" y="88" width="624" height="393"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NJPHMAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_NJPHMQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NJPHMwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="statemachine.uml#_IeWosF81EeGbQoflzrdx0g"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NJPHMguZEeWXe7AeBUbqvw" x="357" y="88"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Ogua0V81EeGbQoflzrdx0g"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_NGSg7AuZEeWXe7AeBUbqvw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:EObjectListValueStyle" xmi:id="_SrtRQAuZEeWXe7AeBUbqvw" name="css_stylesheets">
+ <eObjectListValue xmi:type="css:EmbeddedStyleSheet" href="pathmap://QML_CORE/core.notation#_7gUz8Mc1EeSsAI2TZshUyg"/>
+ </styles>
+ <element xmi:type="uml:Package" href="statemachine.uml#_DEJCwF81EeGbQoflzrdx0g"/>
+ <edges xmi:type="notation:Connector" xmi:id="_Z-W7wF81EeGbQoflzrdx0g" type="4013" source="_Yl57EF81EeGbQoflzrdx0g" target="_X1IlcF81EeGbQoflzrdx0g" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Z-YJ4F81EeGbQoflzrdx0g" type="6025">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Z-YJ4V81EeGbQoflzrdx0g" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Z-YJ4l81EeGbQoflzrdx0g" visible="false" type="6050">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Z-YJ4181EeGbQoflzrdx0g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Z-Yw8F81EeGbQoflzrdx0g" visible="false" type="6051">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Z-Yw8V81EeGbQoflzrdx0g" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Z-Yw8l81EeGbQoflzrdx0g" visible="false" type="6052">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Z-Yw8181EeGbQoflzrdx0g" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Z-W7wV81EeGbQoflzrdx0g" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Connector" href="statemachine.uml#_IeXPyV81EeGbQoflzrdx0g"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Z-W7wl81EeGbQoflzrdx0g" points="[1, -10, -42, 57]$[1, -64, -42, 3]$[33, -64, -10, 3]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_bD3LQF81EeGbQoflzrdx0g" type="4013" source="_XQCUUF81EeGbQoflzrdx0g" target="_X1IlcF81EeGbQoflzrdx0g" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_bD4ZYF81EeGbQoflzrdx0g" visible="false" type="6025">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pP86QguZEeWXe7AeBUbqvw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pP86QwuZEeWXe7AeBUbqvw" key="visible" value="true"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bD4ZYV81EeGbQoflzrdx0g" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bD4ZYl81EeGbQoflzrdx0g" visible="false" type="6050">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pP8TMAuZEeWXe7AeBUbqvw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pP8TMQuZEeWXe7AeBUbqvw" key="visible" value="true"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bD4ZY181EeGbQoflzrdx0g" x="-65" y="8"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bD4ZZF81EeGbQoflzrdx0g" visible="false" type="6051">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pP86QAuZEeWXe7AeBUbqvw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pP86QQuZEeWXe7AeBUbqvw" key="visible" value="true"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bD4ZZV81EeGbQoflzrdx0g" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bD4ZZl81EeGbQoflzrdx0g" visible="false" type="6052">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pP9hUAuZEeWXe7AeBUbqvw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pP9hUQuZEeWXe7AeBUbqvw" key="visible" value="true"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bD4ZZ181EeGbQoflzrdx0g" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_bD3LQV81EeGbQoflzrdx0g" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Connector" href="statemachine.uml#_IeXP0F81EeGbQoflzrdx0g"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_bD3LQl81EeGbQoflzrdx0g" points="[9, 4, -33, -16]$[9, 27, -33, 7]$[40, 27, -2, 7]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eBtnAF82EeGbQoflzrdx0g" id="(0.15,0.8)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gMsk4HkjEeOMFc4T5KeVdg" id="(0.1,0.1)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_boYNkF81EeGbQoflzrdx0g" type="4013" source="_Yl8-Yl81EeGbQoflzrdx0g" target="_Zh1X0F81EeGbQoflzrdx0g" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_boY0oF81EeGbQoflzrdx0g" type="6025">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_boY0oV81EeGbQoflzrdx0g" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_boY0ol81EeGbQoflzrdx0g" visible="false" type="6050">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_boY0o181EeGbQoflzrdx0g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_boY0pF81EeGbQoflzrdx0g" visible="false" type="6051">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_boY0pV81EeGbQoflzrdx0g" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_boZbsF81EeGbQoflzrdx0g" visible="false" type="6052">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_boZbsV81EeGbQoflzrdx0g" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_boYNkV81EeGbQoflzrdx0g" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Connector" href="statemachine.uml#_IeXP1181EeGbQoflzrdx0g"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_boYNkl81EeGbQoflzrdx0g" points="[6, 8, -151, -2]$[147, 8, -10, -2]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QGaMcFl-EeKFQZ_XV_Kn6g" id="(0.7,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_G9WTgF82EeGbQoflzrdx0g" type="4013" source="_Yl7wQF81EeGbQoflzrdx0g" target="_CYirkF82EeGbQoflzrdx0g" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_G9W6kF82EeGbQoflzrdx0g" type="6025">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_G9W6kV82EeGbQoflzrdx0g" x="31" y="-27"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_G9W6kl82EeGbQoflzrdx0g" visible="false" type="6050">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_G9W6k182EeGbQoflzrdx0g" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_G9W6lF82EeGbQoflzrdx0g" visible="false" type="6051">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_G9W6lV82EeGbQoflzrdx0g" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_G9W6ll82EeGbQoflzrdx0g" visible="false" type="6052">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_G9XhoF82EeGbQoflzrdx0g" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_G9WTgV82EeGbQoflzrdx0g" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Connector" href="statemachine.uml#_G9Gb4F82EeGbQoflzrdx0g"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_G9WTgl82EeGbQoflzrdx0g" points="[1, 10, -232, -62]$[1, 75, -232, 3]$[230, 75, -3, 3]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_G967QF82EeGbQoflzrdx0g" id="(0.15,0.25)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NJPHNAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_PMf7sF81EeGbQoflzrdx0g" target="_NJPHMAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NJPHNQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NJPHOQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="statemachine.uml#_IeWosF81EeGbQoflzrdx0g"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NJPHNguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NJPHNwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NJPHOAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NJYRJAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_Qj1iEF81EeGbQoflzrdx0g" target="_NJYRIAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NJYRJQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NJYRKQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Property" href="statemachine.uml#_IeWosV81EeGbQoflzrdx0g"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NJYRJguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NJYRJwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NJYRKAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NJhbFAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_XQCUUF81EeGbQoflzrdx0g" target="_NJhbEAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NJhbFQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NJhbGQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="statemachine.uml#_a4NKMOuMEeCTfOY57pgE3w"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NJhbFguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NJhbFwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NJhbGAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NJtBSAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_X1IlcF81EeGbQoflzrdx0g" target="_NJtBRAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NJtBSQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NJtBTQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_MzO8gPNAEeCovO8AYZymZQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NJtBSguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NJtBSwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NJtBTAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NJ845AuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_Yl57EF81EeGbQoflzrdx0g" target="_NJ844AuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NJ845QuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NJ846QuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="statemachine.uml#_u7pk4PRUEeCKVJwdD4MMsg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NJ845guZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NJ845wuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NJ846AuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NKK7WguZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_Yl7wQF81EeGbQoflzrdx0g" target="_NKK7VguZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NKK7WwuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NKK7XwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="statemachine.uml#_xUE3QF8wEeGerN33d-RdRg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NKK7XAuZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NKK7XQuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NKK7XguZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NKVTbAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_Yl8-Yl81EeGbQoflzrdx0g" target="_NKVTaAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NKVTbQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NKVTcQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NKVTbguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NKVTbwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NKVTcAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NKfEbAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_Zh1X0F81EeGbQoflzrdx0g" target="_NKfEaAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NKfEbQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NKfEcQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_ZjdOAP-EEd6628OhKk_dpg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NKfEbguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NKfEbwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NKfEcAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NKoOXAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_CYirkF82EeGbQoflzrdx0g" target="_NKoOWAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NKoOXQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NKoOYQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="statemachine.uml#_z94Y0F81EeGbQoflzrdx0g"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NKoOXguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NKoOXwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NKoOYAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ </notation:Diagram>
+ <css:ModelStyleSheets xmi:id="_mhg4sMmbEeS0_bFth_90hQ"/>
+ <notation:Diagram xmi:id="_jTpTMF1DEeWbP6DS-3NPyQ" type="PapyrusUMLClassDiagram" name="OOContainerRules" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_lINBEF1DEeWbP6DS-3NPyQ" type="2012">
+ <children xmi:type="notation:DecorationNode" xmi:id="_lINoIF1DEeWbP6DS-3NPyQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="statemachine.uml#_HtqOoF1DEeWbP6DS-3NPyQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lINBEV1DEeWbP6DS-3NPyQ" x="231" y="353" width="583"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_mscbAF1DEeWbP6DS-3NPyQ" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_msdCEF1DEeWbP6DS-3NPyQ" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_msdCEV1DEeWbP6DS-3NPyQ" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_msdCEl1DEeWbP6DS-3NPyQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_msdCE11DEeWbP6DS-3NPyQ" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_pDwQoF1DEeWbP6DS-3NPyQ" type="3012">
+ <element xmi:type="uml:Property" href="statemachine.uml#__1jp8F1CEeWbP6DS-3NPyQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_pDwQoV1DEeWbP6DS-3NPyQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jCPhUGH9EeWEu6399scseQ" type="3012">
+ <element xmi:type="uml:Property" href="statemachine.uml#_jB-bkGH9EeWEu6399scseQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jCPhUWH9EeWEu6399scseQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2DprwJOMEeWHFMpMrhT5xw" type="3012">
+ <element xmi:type="uml:Property" href="statemachine.uml#_2DZ0IJOMEeWHFMpMrhT5xw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2DprwZOMEeWHFMpMrhT5xw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_msdCFF1DEeWbP6DS-3NPyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_msdCFV1DEeWbP6DS-3NPyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_msdCFl1DEeWbP6DS-3NPyQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_msdCF11DEeWbP6DS-3NPyQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_msdCGF1DEeWbP6DS-3NPyQ" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_pDw3sF1DEeWbP6DS-3NPyQ" type="3013">
+ <element xmi:type="uml:Operation" href="statemachine.uml#_e5QLgF1DEeWbP6DS-3NPyQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_pDw3sV1DEeWbP6DS-3NPyQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_xu_fEGH8EeWEu6399scseQ" type="3013">
+ <element xmi:type="uml:Operation" href="statemachine.uml#_xt1ogGH8EeWEu6399scseQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xu_fEWH8EeWEu6399scseQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ogcPYJLREeWyWIXHbEJ4ew" type="3013">
+ <element xmi:type="uml:Operation" href="statemachine.uml#_YcqpwJLREeWyWIXHbEJ4ew"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ogcPYZLREeWyWIXHbEJ4ew"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_msdCGV1DEeWbP6DS-3NPyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_msdCGl1DEeWbP6DS-3NPyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_msdCG11DEeWbP6DS-3NPyQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_msdCHF1DEeWbP6DS-3NPyQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_msdCHV1DEeWbP6DS-3NPyQ" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_msdCHl1DEeWbP6DS-3NPyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_msdCH11DEeWbP6DS-3NPyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_msdCIF1DEeWbP6DS-3NPyQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_msdCIV1DEeWbP6DS-3NPyQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="statemachine.uml#_0k6cIF1CEeWbP6DS-3NPyQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mscbAV1DEeWbP6DS-3NPyQ" x="200" y="120" width="301" height="199"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-GZIQF3YEeW4Af5fHX2Rfg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-GZIQV3YEeW4Af5fHX2Rfg" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_-GZvUF3YEeW4Af5fHX2Rfg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="statemachine.uml#_0k6cIF1CEeWbP6DS-3NPyQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-GZIQl3YEeW4Af5fHX2Rfg" x="533" y="87"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_w30L0JUHEeWaQ-5NjVnmdw" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w30y4JUHEeWaQ-5NjVnmdw" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_w30y4ZUHEeWaQ-5NjVnmdw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w30y4pUHEeWaQ-5NjVnmdw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w31Z8JUHEeWaQ-5NjVnmdw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w31Z8ZUHEeWaQ-5NjVnmdw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w31Z8pUHEeWaQ-5NjVnmdw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w31Z85UHEeWaQ-5NjVnmdw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w31Z9JUHEeWaQ-5NjVnmdw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w31Z9ZUHEeWaQ-5NjVnmdw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w31Z9pUHEeWaQ-5NjVnmdw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w31Z95UHEeWaQ-5NjVnmdw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w31Z-JUHEeWaQ-5NjVnmdw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w31Z-ZUHEeWaQ-5NjVnmdw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w31Z-pUHEeWaQ-5NjVnmdw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w31Z-5UHEeWaQ-5NjVnmdw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w31Z_JUHEeWaQ-5NjVnmdw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w31Z_ZUHEeWaQ-5NjVnmdw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w31Z_pUHEeWaQ-5NjVnmdw"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w30L0ZUHEeWaQ-5NjVnmdw" x="200" y="20" width="301" height="41"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_jTpTMV1DEeWbP6DS-3NPyQ" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_jTpTMl1DEeWbP6DS-3NPyQ"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_jTpTM11DEeWbP6DS-3NPyQ">
+ <owner xmi:type="uml:Package" href="statemachine.uml#_DEJCwF81EeGbQoflzrdx0g"/>
+ </styles>
+ <element xmi:type="uml:Package" href="statemachine.uml#_DEJCwF81EeGbQoflzrdx0g"/>
+ <edges xmi:type="notation:Connector" xmi:id="_tI6vMF1DEeWbP6DS-3NPyQ" type="4013" source="_lINBEF1DEeWbP6DS-3NPyQ" target="_mscbAF1DEeWbP6DS-3NPyQ">
+ <styles xmi:type="notation:FontStyle" xmi:id="_tI6vMV1DEeWbP6DS-3NPyQ"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_tI6vMl1DEeWbP6DS-3NPyQ" points="[4, -30, 0, 188]$[59, -201, 55, 17]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tJRUgF1DEeWbP6DS-3NPyQ" id="(0.42710120068610635,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tJR7kF1DEeWbP6DS-3NPyQ" id="(0.7408637873754153,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_-GZvUV3YEeW4Af5fHX2Rfg" type="StereotypeCommentLink" source="_mscbAF1DEeWbP6DS-3NPyQ" target="_-GZIQF3YEeW4Af5fHX2Rfg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_-GZvUl3YEeW4Af5fHX2Rfg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_-GaWYl3YEeW4Af5fHX2Rfg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="statemachine.uml#_0k6cIF1CEeWbP6DS-3NPyQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-GZvU13YEeW4Af5fHX2Rfg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-GaWYF3YEeW4Af5fHX2Rfg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-GaWYV3YEeW4Af5fHX2Rfg"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_94cwkJUHEeWaQ-5NjVnmdw" type="4002" source="_mscbAF1DEeWbP6DS-3NPyQ" target="_w30L0JUHEeWaQ-5NjVnmdw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_94d-sJUHEeWaQ-5NjVnmdw" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_94d-sZUHEeWaQ-5NjVnmdw" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_94cwkZUHEeWaQ-5NjVnmdw"/>
+ <element xmi:type="uml:Generalization" href="statemachine.uml#_9326sJUHEeWaQ-5NjVnmdw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_94cwkpUHEeWaQ-5NjVnmdw" points="[360, 120, -643984, -643984]$[340, 61, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_95wYIJUHEeWaQ-5NjVnmdw" id="(0.53156146179402,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_95wYIZUHEeWaQ-5NjVnmdw" id="(0.53156146179402,1.0)"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/statemachine.uml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/statemachine.uml
new file mode 100644
index 00000000000..af9181b76ac
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/statemachine.uml
@@ -0,0 +1,516 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:C_Cpp="http://www.eclipse.org/papyrus/C_Cpp/1" xmlns:FCM="http://www.eclipse.org/papyrus/FCM/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <uml:Model xmi:id="_ago_QOUTEd-P08Bciq_LqQ" name="statemachine">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_9BpKIOuLEeCTfOY57pgE3w" annotatedElement="_u-qioOUTEd-P08Bciq_LqQ">
+ <body>Call event interceptor, interacts with state-machine. It will handle in particular call events that are intercepted by the port operations</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_LuBKcDeoEeGPyrZ5I3hMlA" annotatedElement="_18qdsO67EeCZ9MjsZTV1zw">
+ <body>Container rule for state machine realization. It consists of a collaboration of a call event interceptor, an event pool, the state-machine itself and a thread for this state-machine. The latter means that the state-machine will execute in its own thread and poll the pool for new events.</body>
+ </ownedComment>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_e8dN0OUUEd-P08Bciq_LqQ">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/core.uml#_O6TiIDLUEd26WNosUASSSw"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_76Rc8OuMEeCTfOY57pgE3w">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/corba.uml#_DtQEwDLdEd2_U4efLnjQIw"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_guUMgOuNEeCTfOY57pgE3w">
+ <importedPackage xmi:type="uml:Model" href="pathmap://Papyrus_Alf_LIBRARIES/alflibrary.uml#_0bBI4Hy5EeCKy5kSqd4eVw"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_Ov3NkF82EeGbQoflzrdx0g">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_DISTRIBUTION/distribution.uml#_O6TiIDLUEd26WNosUASSSw"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Package" xmi:id="_i9AuoOUTEd-P08Bciq_LqQ" name="SMInterceptor">
+ <packageMerge xmi:type="uml:PackageMerge" xmi:id="_ttDuoP3HEeC1YdT2qA0bjA">
+ <mergedPackage xmi:type="uml:Package" href="pathmap://QML_CORE/core.uml#_mMCK8PiPEd2UhpY2Y3WUyg"/>
+ </packageMerge>
+ <packagedElement xmi:type="uml:Class" xmi:id="_u-qioOUTEd-P08Bciq_LqQ" name="CI_CallEvent">
+ <generalization xmi:type="uml:Generalization" xmi:id="_3LpLIOUTEd-P08Bciq_LqQ">
+ <general xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_Zx2ZUA1jEd6tvthBDl600Q"/>
+ </generalization>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_a4NKMOuMEeCTfOY57pgE3w" name="out" visibility="public" aggregation="composite">
+ <type xmi:type="uml:Interface" href="pathmap://QML_CORE/core.uml#_elkpwPQREeCovO8AYZymZQ"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_c9A6kOuMEeCTfOY57pgE3w" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_c9IPUOuMEeCTfOY57pgE3w" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_c9ZVEOuMEeCTfOY57pgE3w">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_bL0sACVvEeGaL60JjVj19Q" name="portID">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_9XvcQB6REd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bMjEwCVvEeGaL60JjVj19Q" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_bMjr0CVvEeGaL60JjVj19Q" value="1"/>
+ </ownedAttribute>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_qJxa0OUUEd-P08Bciq_LqQ" name="derived realization of I" client="_u-qioOUTEd-P08Bciq_LqQ">
+ <supplier xmi:type="uml:Interface" href="pathmap://QML_CORE/core.uml#_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <contract xmi:type="uml:Interface" href="pathmap://QML_CORE/core.uml#_ZzlzMPfBEd2TbIfwytOyPA"/>
+ </interfaceRealization>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_mlIZ8OUVEd-P08Bciq_LqQ" name="[name/]" specification="_2qJyMOUUEd-P08Bciq_LqQ">
+ <language>C/C++</language>
+ <body>!xtend StateMachineGen.eventInterceptor</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_2qJyMOUUEd-P08Bciq_LqQ" name="[name/]" method="_mlIZ8OUVEd-P08Bciq_LqQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_d3GdYOUWEd-P08Bciq_LqQ" name="Dependency0" client="_u-qioOUTEd-P08Bciq_LqQ">
+ <supplier xmi:type="uml:Enumeration" href="pathmap://QML_CORE/core.uml#_2oxDIPiPEd2UhpY2Y3WUyg"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_9J39cOupEeCTfOY57pgE3w" name="StateMachine">
+ <packageMerge xmi:type="uml:PackageMerge" xmi:id="_lvUcAP3HEeC1YdT2qA0bjA">
+ <mergedPackage xmi:type="uml:Package" href="pathmap://QML_CORE/core.uml#_m7SIwOUYEd-P08Bciq_LqQ"/>
+ </packageMerge>
+ <packagedElement xmi:type="uml:Class" xmi:id="_ens7QOUTEd-P08Bciq_LqQ" name="StateMachine">
+ <generalization xmi:type="uml:Generalization" xmi:id="_ar4sECWNEeGB3KV6qwTHBw">
+ <general xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
+ </generalization>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_dFBg4OupEeCTfOY57pgE3w" name="m_currentState" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dFurgOupEeCTfOY57pgE3w" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dFurgeupEeCTfOY57pgE3w" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_jeMpcOupEeCTfOY57pgE3w">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_S9FLsO3GEeCHv5BGhoZ8CA" name="executor" aggregation="shared" association="_S99VcO3GEeCHv5BGhoZ8CA">
+ <type xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_6uRBMOuqEeCTfOY57pgE3w"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_S9FLsu3GEeCHv5BGhoZ8CA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_S9FLse3GEeCHv5BGhoZ8CA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_u7pk4PRUEeCKVJwdD4MMsg" name="ep" visibility="public" aggregation="composite">
+ <type xmi:type="uml:Interface" href="pathmap://QML_CORE/core.uml#_omxU4PNAEeCovO8AYZymZQ"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_yCHmkPRUEeCKVJwdD4MMsg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_yCNtMPRUEeCKVJwdD4MMsg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_yCXeMPRUEeCKVJwdD4MMsg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_xUE3QF8wEeGerN33d-RdRg" name="animOut" visibility="public" type="_L-I7kF8wEeGerN33d-RdRg" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xotDcF8wEeGerN33d-RdRg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xotqgF8wEeGerN33d-RdRg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_xowGwF8wEeGerN33d-RdRg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_3GXWYCWSEeGB3KV6qwTHBw" name="derived realization of ILifeCycle" client="_ens7QOUTEd-P08Bciq_LqQ">
+ <supplier xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ <contract xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ </interfaceRealization>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rglykOupEeCTfOY57pgE3w" name="processEvents" visibility="package" specification="_b5mYgCaiEeGRo-gX9igNzw">
+ <language>C/C++</language>
+ <body>!xtend StateMachineGen.processEvents
+
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_p_0sUCaiEeGRo-gX9igNzw" name="activate" specification="_3GbAwCWSEeGB3KV6qwTHBw">
+ <language>C/C++</language>
+ <body>!xtend StateMachineGen.activate</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_3GbAwCWSEeGB3KV6qwTHBw" name="activate" method="_p_0sUCaiEeGRo-gX9igNzw"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_3G6I8CWSEeGB3KV6qwTHBw" name="deactivate"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_b5mYgCaiEeGRo-gX9igNzw" name="processEvents" method="_rglykOupEeCTfOY57pgE3w"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_MYPEcHk6EeOph7IIHUnNoA" name="configuration_complete"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_S99VcO3GEeCHv5BGhoZ8CA" name="stateMachine_executor" memberEnd="_S99Vce3GEeCHv5BGhoZ8CA _S9FLsO3GEeCHv5BGhoZ8CA">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_S99Vce3GEeCHv5BGhoZ8CA" name="stateMachine" type="_ens7QOUTEd-P08Bciq_LqQ" association="_S99VcO3GEeCHv5BGhoZ8CA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_S998ge3GEeCHv5BGhoZ8CA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_S998gO3GEeCHv5BGhoZ8CA" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_Q2C7UBE0EeG3cfLoiI6G7g" name="Dependency0" client="_ens7QOUTEd-P08Bciq_LqQ">
+ <supplier xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_JRmo0PNAEeCovO8AYZymZQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_RqmkwBE0EeG3cfLoiI6G7g" name="Dependency1" client="_ens7QOUTEd-P08Bciq_LqQ">
+ <supplier xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_WkkjoPNUEeCovO8AYZymZQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_F3inwCT7EeGXBt65HZzY7g" name="Usage1" client="_ens7QOUTEd-P08Bciq_LqQ">
+ <supplier xmi:type="uml:Class" href="pathmap://QML_CORE/osal.uml#_oSgIME_BEdy2tpS719xBwQ"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_CV_x4O68EeCZ9MjsZTV1zw" name="CallEvents"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_KEMp0CNYEeGj_4swHBbKwg" name="CallEventConfigurator"/>
+ <packagedElement xmi:type="uml:Package" xmi:id="_F5DMoF8wEeGerN33d-RdRg" name="Animation">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_BLcrgHhAEeOejZqJpKQeww">
+ <body>Animation service configurator takes care of allocating the RemoveAnimService on the &quot;right&quot; node and to connect local and remote service configurators.</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xELAwF81EeGbQoflzrdx0g" name="LocalAnimService">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_z94Y0F81EeGbQoflzrdx0g" name="animSvc" visibility="public" type="_L-I7kF8wEeGerN33d-RdRg" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2Y7e8F81EeGbQoflzrdx0g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2ZEB0F81EeGbQoflzrdx0g" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_2ZSEQF81EeGbQoflzrdx0g">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_ZXYggHg_EeOejZqJpKQeww" name="outAnimSvc" type="_L-I7kF8wEeGerN33d-RdRg" aggregation="composite"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_bmInQF_4EeGbQoflzrdx0g" name="derived realization of IAnimation" client="_xELAwF81EeGbQoflzrdx0g" supplier="_L-I7kF8wEeGerN33d-RdRg" contract="_L-I7kF8wEeGerN33d-RdRg"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_r5ewgHnxEeOfttgBwSq-Ig" name="leaveState" specification="_bmo9kF_4EeGbQoflzrdx0g">
+ <language>C/C++</language>
+ <body>if (outAnimSvc != 0) {
+ outAnimSvc->leaveState(stateEnum, eInstance);
+}
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_tczkcHnxEeOfttgBwSq-Ig" name="enterState" specification="_bmbiMF_4EeGbQoflzrdx0g">
+ <language>C/C++</language>
+ <body>if (outAnimSvc != 0) {
+ outAnimSvc->enterState(stateEnum, eInstance);
+}
+</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_bmbiMF_4EeGbQoflzrdx0g" name="enterState" method="_tczkcHnxEeOfttgBwSq-Ig">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_OJXykGEpEeGzd_21sXyuog" name="stateEnum">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_9XvcQB6REd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_OJZAsGEpEeGzd_21sXyuog" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_OJZAsWEpEeGzd_21sXyuog" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_OJZnwGEpEeGzd_21sXyuog" name="eInstance">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_OJa14GEpEeGzd_21sXyuog" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_OJbc8GEpEeGzd_21sXyuog" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_bmo9kF_4EeGbQoflzrdx0g" name="leaveState" method="_r5ewgHnxEeOfttgBwSq-Ig">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_OKJOoGEpEeGzd_21sXyuog" name="stateEnum">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_9XvcQB6REd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_OKKcwGEpEeGzd_21sXyuog" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_OKLD0GEpEeGzd_21sXyuog" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_OKLD0WEpEeGzd_21sXyuog" name="eInstance">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_OKMR8GEpEeGzd_21sXyuog" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_OKM5AGEpEeGzd_21sXyuog"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_L-I7kF8wEeGerN33d-RdRg" name="IAnimation">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_N3m-oF8wEeGerN33d-RdRg" name="enterState" visibility="public" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_YmEFYV8wEeGerN33d-RdRg">
+ <body>&lt;&lt;TextualRepresentation>>public abstract enterState (in stateEnum : StateMachine::Short, in eInstance : String) ;</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_NbPhQGEpEeGzd_21sXyuog" name="stateEnum">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_9XvcQB6REd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_NbYEIGEpEeGzd_21sXyuog" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_NbbHcGEpEeGzd_21sXyuog" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_NbdjsGEpEeGzd_21sXyuog" name="eInstance">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_NbupcGEpEeGzd_21sXyuog" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Nb2lQGEpEeGzd_21sXyuog" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_ZgY_oF8wEeGerN33d-RdRg" name="leaveState" visibility="public" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_df_owF8wEeGerN33d-RdRg">
+ <body>&lt;&lt;TextualRepresentation>>public abstract leaveState(in eState : StateMachine::Short, in eInstance : String) ;</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_OJfHUGEpEeGzd_21sXyuog" name="eState">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_9XvcQB6REd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_OJr7oGEpEeGzd_21sXyuog" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_OJwNEGEpEeGzd_21sXyuog" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_OJ0egGEpEeGzd_21sXyuog" name="eInstance">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_OKCg8GEpEeGzd_21sXyuog" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_OKHZcGEpEeGzd_21sXyuog" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_QH7R8GGDEeO2F4QRMDSOXg" name="AnimServiceConfigurator"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_B0gFAHg_EeOejZqJpKQeww" name="RemoteAnimService">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_MLu-kHg_EeOejZqJpKQeww" name="animSvc" type="_L-I7kF8wEeGerN33d-RdRg" aggregation="composite"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_hQFyMHk8EeOh_8tymvdOOg" name="derived realization of IAnimation" client="_B0gFAHg_EeOejZqJpKQeww" supplier="_L-I7kF8wEeGerN33d-RdRg" contract="_L-I7kF8wEeGerN33d-RdRg"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_hQJckHk8EeOh_8tymvdOOg" name="enterState">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_hQLRwHk8EeOh_8tymvdOOg" name="stateEnum">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_9XvcQB6REd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hQL40Hk8EeOh_8tymvdOOg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hQMf4Hk8EeOh_8tymvdOOg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_hQMf4Xk8EeOh_8tymvdOOg" name="eInstance">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hQNG8Hk8EeOh_8tymvdOOg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hQNG8Xk8EeOh_8tymvdOOg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_hQSmgHk8EeOh_8tymvdOOg" name="leaveState">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_hQTNkHk8EeOh_8tymvdOOg" name="eState">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_9XvcQB6REd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hQTNkXk8EeOh_8tymvdOOg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hQT0oHk8EeOh_8tymvdOOg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_hQT0oXk8EeOh_8tymvdOOg" name="eInstance">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hQUbsHk8EeOh_8tymvdOOg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hQUbsXk8EeOh_8tymvdOOg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_DEJCwF81EeGbQoflzrdx0g" name="rules">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_HtqOoF1DEeWbP6DS-3NPyQ" annotatedElement="_0k6cIF1CEeWbP6DS-3NPyQ">
+ <body>Container rule for an OO state machine. The main difference is that we use OO variants of the contained elements and replace the interception connector by an interception operation</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_18qdsO67EeCZ9MjsZTV1zw" name="StateMachineWCallEvents">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_LyxAEPTXEeCn1-FCrfecFg" name="callEventInterceptor" visibility="public" type="_u-qioOUTEd-P08Bciq_LqQ" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MGWDYPTXEeCn1-FCrfecFg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MGfNUPTXEeCn1-FCrfecFg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_MGz9cPTXEeCn1-FCrfecFg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_jXX54PTXEeCn1-FCrfecFg" name="eventPool" visibility="public" aggregation="composite">
+ <type xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_JRmo0PNAEeCovO8AYZymZQ"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_l6kPYPTXEeCn1-FCrfecFg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_l6k2cPTXEeCn1-FCrfecFg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_l6mEkPTXEeCn1-FCrfecFg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_mv6jAPTXEeCn1-FCrfecFg" name="stateMachine" visibility="public" type="_ens7QOUTEd-P08Bciq_LqQ" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ocG_EPTXEeCn1-FCrfecFg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ocHmIPTXEeCn1-FCrfecFg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_ocI0QPTXEeCn1-FCrfecFg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_vcPiUCWdEeGX6PuSE-DJlQ" name="thread" visibility="public" aggregation="composite">
+ <type xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_SiY_AP-EEd6628OhKk_dpg"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_yS4YQCWdEeGX6PuSE-DJlQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_yS4_UCWdEeGX6PuSE-DJlQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_yS6NcCWdEeGX6PuSE-DJlQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedConnector xmi:type="uml:Connector" xmi:id="_-DJY8PTXEeCn1-FCrfecFg" name="Connector-SM-Pool">
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_-DKnEPTXEeCn1-FCrfecFg" partWithPort="_mv6jAPTXEeCn1-FCrfecFg" role="_u7pk4PRUEeCKVJwdD4MMsg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-DKnEvTXEeCn1-FCrfecFg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-DKnEfTXEeCn1-FCrfecFg" value="1"/>
+ </end>
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_-DL1MPTXEeCn1-FCrfecFg" partWithPort="_jXX54PTXEeCn1-FCrfecFg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-DL1MvTXEeCn1-FCrfecFg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-DL1MfTXEeCn1-FCrfecFg" value="1"/>
+ <role xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_MzO8gPNAEeCovO8AYZymZQ"/>
+ </end>
+ </ownedConnector>
+ <ownedConnector xmi:type="uml:Connector" xmi:id="_nILRMPUHEeCn1-FCrfecFg" name="connector-CallEvent-Pool">
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_nIL4QPUHEeCn1-FCrfecFg" partWithPort="_LyxAEPTXEeCn1-FCrfecFg" role="_a4NKMOuMEeCTfOY57pgE3w">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nIL4QvUHEeCn1-FCrfecFg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nIL4QfUHEeCn1-FCrfecFg" value="1"/>
+ </end>
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_nIMfUPUHEeCn1-FCrfecFg" partWithPort="_jXX54PTXEeCn1-FCrfecFg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nIMfUvUHEeCn1-FCrfecFg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nIMfUfUHEeCn1-FCrfecFg" value="1"/>
+ <role xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_MzO8gPNAEeCovO8AYZymZQ"/>
+ </end>
+ </ownedConnector>
+ <ownedConnector xmi:type="uml:Connector" xmi:id="__zI4QCWdEeGX6PuSE-DJlQ" name="connector-SM-thread">
+ <end xmi:type="uml:ConnectorEnd" xmi:id="__zI4QSWdEeGX6PuSE-DJlQ" partWithPort="_mv6jAPTXEeCn1-FCrfecFg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__zI4QyWdEeGX6PuSE-DJlQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__zI4QiWdEeGX6PuSE-DJlQ" value="1"/>
+ <role xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ </end>
+ <end xmi:type="uml:ConnectorEnd" xmi:id="__zJfUCWdEeGX6PuSE-DJlQ" partWithPort="_vcPiUCWdEeGX6PuSE-DJlQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__zJfUiWdEeGX6PuSE-DJlQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__zJfUSWdEeGX6PuSE-DJlQ" value="1"/>
+ <role xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_ZjdOAP-EEd6628OhKk_dpg"/>
+ </end>
+ </ownedConnector>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_b1zNUOusEeCTfOY57pgE3w" name="StateMachine"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_IeWosF81EeGbQoflzrdx0g" name="StateMachineWCallEventsAndAnim">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_IeWosV81EeGbQoflzrdx0g" name="callEventInterceptor" visibility="public" type="_u-qioOUTEd-P08Bciq_LqQ" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IeWos181EeGbQoflzrdx0g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IeWosl81EeGbQoflzrdx0g" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_IeWotF81EeGbQoflzrdx0g">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_IeWotV81EeGbQoflzrdx0g" name="eventPool" visibility="public" aggregation="composite">
+ <type xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_JRmo0PNAEeCovO8AYZymZQ"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IeWot181EeGbQoflzrdx0g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IeWotl81EeGbQoflzrdx0g" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_IeXPwF81EeGbQoflzrdx0g">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_IeXPwV81EeGbQoflzrdx0g" name="stateMachine" visibility="public" type="_ens7QOUTEd-P08Bciq_LqQ" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IeXPw181EeGbQoflzrdx0g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IeXPwl81EeGbQoflzrdx0g" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_IeXPxF81EeGbQoflzrdx0g">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_IeXPxV81EeGbQoflzrdx0g" name="thread" visibility="public" aggregation="composite">
+ <type xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_SiY_AP-EEd6628OhKk_dpg"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IeXPx181EeGbQoflzrdx0g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IeXPxl81EeGbQoflzrdx0g" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_IeXPyF81EeGbQoflzrdx0g">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_pTD04F81EeGbQoflzrdx0g" name="eclipseServer" visibility="public" type="_xELAwF81EeGbQoflzrdx0g" aggregation="shared">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rhbJ4F81EeGbQoflzrdx0g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rhpMUF81EeGbQoflzrdx0g" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_rhtdwF81EeGbQoflzrdx0g">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedConnector xmi:type="uml:Connector" xmi:id="_IeXPyV81EeGbQoflzrdx0g" name="Connector-SM-Pool">
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_IeXPyl81EeGbQoflzrdx0g" partWithPort="_IeXPwV81EeGbQoflzrdx0g" role="_u7pk4PRUEeCKVJwdD4MMsg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IeXPzF81EeGbQoflzrdx0g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IeXPy181EeGbQoflzrdx0g" value="1"/>
+ </end>
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_IeXPzV81EeGbQoflzrdx0g" partWithPort="_IeWotV81EeGbQoflzrdx0g">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IeXPz181EeGbQoflzrdx0g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IeXPzl81EeGbQoflzrdx0g" value="1"/>
+ <role xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_MzO8gPNAEeCovO8AYZymZQ"/>
+ </end>
+ </ownedConnector>
+ <ownedConnector xmi:type="uml:Connector" xmi:id="_IeXP0F81EeGbQoflzrdx0g" name="connector-CallEvent-Pool">
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_IeXP0V81EeGbQoflzrdx0g" partWithPort="_IeWosV81EeGbQoflzrdx0g" role="_a4NKMOuMEeCTfOY57pgE3w">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IeXP0181EeGbQoflzrdx0g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IeXP0l81EeGbQoflzrdx0g" value="1"/>
+ </end>
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_IeXP1F81EeGbQoflzrdx0g" partWithPort="_IeWotV81EeGbQoflzrdx0g">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IeXP1l81EeGbQoflzrdx0g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IeXP1V81EeGbQoflzrdx0g" value="1"/>
+ <role xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_MzO8gPNAEeCovO8AYZymZQ"/>
+ </end>
+ </ownedConnector>
+ <ownedConnector xmi:type="uml:Connector" xmi:id="_IeXP1181EeGbQoflzrdx0g" name="connector-SM-thread">
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_IeXP2F81EeGbQoflzrdx0g" partWithPort="_IeXPwV81EeGbQoflzrdx0g">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IeXP2l81EeGbQoflzrdx0g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IeXP2V81EeGbQoflzrdx0g" value="1"/>
+ <role xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ </end>
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_IeXP2181EeGbQoflzrdx0g" partWithPort="_IeXPxV81EeGbQoflzrdx0g">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IeXP3V81EeGbQoflzrdx0g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IeXP3F81EeGbQoflzrdx0g" value="1"/>
+ <role xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_ZjdOAP-EEd6628OhKk_dpg"/>
+ </end>
+ </ownedConnector>
+ <ownedConnector xmi:type="uml:Connector" xmi:id="_G9Gb4F82EeGbQoflzrdx0g" name="Connector1">
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_G9HC8F82EeGbQoflzrdx0g" partWithPort="_IeXPwV81EeGbQoflzrdx0g" role="_xUE3QF8wEeGerN33d-RdRg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_G9HC8l82EeGbQoflzrdx0g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_G9HC8V82EeGbQoflzrdx0g" value="1"/>
+ </end>
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_G9HqAF82EeGbQoflzrdx0g" partWithPort="_pTD04F81EeGbQoflzrdx0g" role="_z94Y0F81EeGbQoflzrdx0g">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_G9HqAl82EeGbQoflzrdx0g" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_G9HqAV82EeGbQoflzrdx0g" value="1"/>
+ </end>
+ </ownedConnector>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_0k6cIF1CEeWbP6DS-3NPyQ" name="LWStateMachineWCallEvents">
+ <generalization xmi:type="uml:Generalization" xmi:id="_9326sJUHEeWaQ-5NjVnmdw">
+ <general xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
+ </generalization>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="__1jp8F1CEeWbP6DS-3NPyQ" name="eventPool" visibility="public" aggregation="composite">
+ <type xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_JRmo0PNAEeCovO8AYZymZQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_jB-bkGH9EeWEu6399scseQ" name="thread" visibility="public">
+ <type xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_SiY_AP-EEd6628OhKk_dpg"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_2DZ0IJOMEeWHFMpMrhT5xw" name="m_currentState" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_J-bDAF3VEeWbP6DS-3NPyQ" name="[name]" specification="_e5QLgF1DEeWbP6DS-3NPyQ">
+ <language>C/C++</language>
+ <body>!xtend StateMachineGen.eventInterceptorOO</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_GGdugGH9EeWEu6399scseQ" name="LWStateMachineWCallEvents" specification="_xt1ogGH8EeWEu6399scseQ">
+ <language>C/C++</language>
+ <body>// create connection between thread and this class
+thread.connect_rLC(get_lc());</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Sxi6AJLREeWyWIXHbEJ4ew" name="processEvents" visibility="package" specification="_YcqpwJLREeWyWIXHbEJ4ew">
+ <language>C/C++</language>
+ <body>!xtend StateMachineGen.processEvents
+
+</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_e5QLgF1DEeWbP6DS-3NPyQ" name="[name]" method="_J-bDAF3VEeWbP6DS-3NPyQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xt1ogGH8EeWEu6399scseQ" name="LWStateMachineWCallEvents" method="_GGdugGH9EeWEu6399scseQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_YcqpwJLREeWyWIXHbEJ4ew" name="processEvents" method="_Sxi6AJLREeWyWIXHbEJ4ew"/>
+ </packagedElement>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_e8kikOUUEd-P08Bciq_LqQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fAD7cOUUEd-P08Bciq_LqQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/FCM/1#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://FCM_PROFILES/FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_cnmBUBE1EeG3cfLoiI6G7g">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cz4J0BE1EeG3cfLoiI6G7g" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/C_Cpp/1#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_54PeIGH8EeWEu6399scseQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_54R6YGH8EeWEu6399scseQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ </uml:Model>
+ <FCM:InteractionComponent xmi:id="_hanSUOUUEd-P08Bciq_LqQ" base_Class="_u-qioOUTEd-P08Bciq_LqQ"/>
+ <FCM:Template xmi:id="_9E8EUOUUEd-P08Bciq_LqQ" base_Element="_2qJyMOUUEd-P08Bciq_LqQ" kind="LoopOperations">
+ <helper xmi:type="FCM:BindingHelper" href="pathmap://QML_CORE/core.uml#_nLe_sHJDEeOMF7YEvnQt5g"/>
+ </FCM:Template>
+ <FCM:Port xmi:id="_a45twOuMEeCTfOY57pgE3w" base_Port="_a4NKMOuMEeCTfOY57pgE3w">
+ <kind xmi:type="FCM:PortKind" href="pathmap://QML_CORE/core.uml#_9Fif4FRxEd6GqrP6fkWBoQ"/>
+ </FCM:Port>
+ <FCM:ContainerRule xmi:id="_gsWFgOusEeCTfOY57pgE3w" base_Class="_b1zNUOusEeCTfOY57pgE3w" extensionKind="Aggregation" extension="_uC4BwOusEeCTfOY57pgE3w"/>
+ <FCM:ContainerRule xmi:id="_IDtioO68EeCZ9MjsZTV1zw" base_Class="_CV_x4O68EeCZ9MjsZTV1zw" extensionKind="InterceptAllPorts" interceptor="_hanSUOUUEd-P08Bciq_LqQ"/>
+ <FCM:Port xmi:id="_u7qzAPRUEeCKVJwdD4MMsg" base_Port="_u7pk4PRUEeCKVJwdD4MMsg">
+ <kind xmi:type="FCM:PortKind" href="pathmap://QML_CORE/core.uml#_9Fif4FRxEd6GqrP6fkWBoQ"/>
+ </FCM:Port>
+ <FCM:ContainerRule xmi:id="_RmD0YPTXEeCn1-FCrfecFg" base_Class="_18qdsO67EeCZ9MjsZTV1zw"/>
+ <FCM:InterceptionRule xmi:id="_Z5CnUPUQEeCn1-FCrfecFg" interceptionKind="InterceptAllIn" base_Property="_LyxAEPTXEeCn1-FCrfecFg"/>
+ <C_Cpp:Include xmi:id="_eGpZQBE1EeG3cfLoiI6G7g" body="#include &lt;OS_AL/Tracing/Trace.h>&#xA;&#xA;#ifdef SM_VERBOSE&#xA;#include &lt;iostream>&#xA;using namespace std;&#xA;#endif&#xA;" base_class="_ens7QOUTEd-P08Bciq_LqQ"/>
+ <FCM:InstanceConfigurator xmi:id="_QQYfQCNYEeGj_4swHBbKwg" base_Class="_KEMp0CNYEeGj_4swHBbKwg"/>
+ <FCM:UseInstanceConfigurator xmi:id="_StgB8CNYEeGj_4swHBbKwg" base_Class="_u-qioOUTEd-P08Bciq_LqQ" configurator="_QQYfQCNYEeGj_4swHBbKwg"/>
+ <FCM:ConfigurationProperty xmi:id="_uhdD8CVvEeGaL60JjVj19Q" base_Property="_bL0sACVvEeGaL60JjVj19Q"/>
+ <FCM:DerivedElement xmi:id="_3GrfcCWSEeGB3KV6qwTHBw" base_Element="_3GbAwCWSEeGB3KV6qwTHBw">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_3G7-ICWSEeGB3KV6qwTHBw" base_Element="_3G6I8CWSEeGB3KV6qwTHBw">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:Template xmi:id="_nngKECaiEeGRo-gX9igNzw" base_Element="_b5mYgCaiEeGRo-gX9igNzw">
+ <helper xmi:type="FCM:BindingHelper" href="pathmap://QML_CORE/core.uml#_7qhTUHkgEeOCpqruXGWNPw"/>
+ </FCM:Template>
+ <FCM:Port xmi:id="_JZGWgF8xEeGerN33d-RdRg" base_Port="_xUE3QF8wEeGerN33d-RdRg">
+ <kind xmi:type="FCM:PortKind" href="pathmap://QML_CORE/core.uml#_9Fif4FRxEd6GqrP6fkWBoQ"/>
+ </FCM:Port>
+ <FCM:ContainerRule xmi:id="_IeZE8F81EeGbQoflzrdx0g" base_Class="_IeWosF81EeGbQoflzrdx0g"/>
+ <FCM:InterceptionRule xmi:id="_IeaTEF81EeGbQoflzrdx0g" interceptionKind="InterceptAllIn" base_Property="_IeWosV81EeGbQoflzrdx0g"/>
+ <FCM:Port xmi:id="_5cn5cF81EeGbQoflzrdx0g" base_Port="_z94Y0F81EeGbQoflzrdx0g">
+ <kind xmi:type="FCM:PortKind" href="pathmap://QML_CORE/core.uml#_wySlkFRxEd6GqrP6fkWBoQ"/>
+ </FCM:Port>
+ <FCM:Singleton xmi:id="_uqa34F_1EeGbQoflzrdx0g" base_Class="_xELAwF81EeGbQoflzrdx0g"/>
+ <FCM:DerivedElement xmi:id="_bmnIYF_4EeGbQoflzrdx0g" base_Element="_bmbiMF_4EeGbQoflzrdx0g" source="_N3m-oF8wEeGerN33d-RdRg"/>
+ <FCM:DerivedElement xmi:id="_bmyukF_4EeGbQoflzrdx0g" base_Element="_bmo9kF_4EeGbQoflzrdx0g" source="_ZgY_oF8wEeGerN33d-RdRg"/>
+ <FCM:InstanceConfigurator xmi:id="_SdiecGGDEeO2F4QRMDSOXg" base_Class="_QH7R8GGDEeO2F4QRMDSOXg"/>
+ <FCM:UseInstanceConfigurator xmi:id="_VnhuMGGDEeO2F4QRMDSOXg" base_Class="_xELAwF81EeGbQoflzrdx0g" configurator="_SdiecGGDEeO2F4QRMDSOXg"/>
+ <FCM:Singleton xmi:id="_JOwQEHg_EeOejZqJpKQeww" base_Class="_B0gFAHg_EeOejZqJpKQeww"/>
+ <FCM:Port xmi:id="_hw3T8Hg_EeOejZqJpKQeww" base_Port="_ZXYggHg_EeOejZqJpKQeww">
+ <kind xmi:type="FCM:PortKind" href="pathmap://QML_CORE/core.uml#_9Fif4FRxEd6GqrP6fkWBoQ"/>
+ </FCM:Port>
+ <FCM:Port xmi:id="_ncWQEHg_EeOejZqJpKQeww" base_Port="_MLu-kHg_EeOejZqJpKQeww">
+ <kind xmi:type="FCM:PortKind" href="pathmap://QML_CORE/core.uml#_wySlkFRxEd6GqrP6fkWBoQ"/>
+ </FCM:Port>
+ <FCM:UseInstanceConfigurator xmi:id="_4HKnkHg_EeOejZqJpKQeww" base_Class="_B0gFAHg_EeOejZqJpKQeww" configurator="_SdiecGGDEeO2F4QRMDSOXg"/>
+ <FCM:DerivedElement xmi:id="_MYSHwHk6EeOph7IIHUnNoA" base_Element="_MYPEcHk6EeOph7IIHUnNoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_ns4qsClUEeO4bs_nkcnKOg"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_hQPjMHk8EeOh_8tymvdOOg" base_Element="_hQJckHk8EeOh_8tymvdOOg" source="_N3m-oF8wEeGerN33d-RdRg"/>
+ <FCM:DerivedElement xmi:id="_hQW38Hk8EeOh_8tymvdOOg" base_Element="_hQSmgHk8EeOh_8tymvdOOg" source="_ZgY_oF8wEeGerN33d-RdRg"/>
+ <FCM:Template xmi:id="_9beBINnwEeS6rKPQ4VNKkA" base_Element="_3GbAwCWSEeGB3KV6qwTHBw">
+ <helper xmi:type="FCM:BindingHelper" href="pathmap://QML_CORE/core.uml#_7qhTUHkgEeOCpqruXGWNPw"/>
+ </FCM:Template>
+ <FCM:Template xmi:id="_yd5NYF3TEeWbP6DS-3NPyQ" base_Element="_e5QLgF1DEeWbP6DS-3NPyQ">
+ <helper xmi:type="FCM:BindingHelper" href="pathmap://QML_CORE/core.uml#_nLe_sHJDEeOMF7YEvnQt5g"/>
+ </FCM:Template>
+ <FCM:ContainerRule xmi:id="_-GBU0F3YEeW4Af5fHX2Rfg" base_Class="_0k6cIF1CEeWbP6DS-3NPyQ" kind="LightWeightOORule"/>
+ <standard:Create xmi:id="_9F8wQGH8EeWEu6399scseQ" base_BehavioralFeature="_xt1ogGH8EeWEu6399scseQ"/>
+ <FCM:InterceptionRule xmi:id="_5u8BwJHLEeWxgKjui1HhNA" base_Operation="_e5QLgF1DEeWbP6DS-3NPyQ"/>
+ <FCM:Template xmi:id="_YfX_gJLREeWyWIXHbEJ4ew" base_Element="_YcqpwJLREeWyWIXHbEJ4ew">
+ <helper xmi:type="FCM:BindingHelper" href="pathmap://QML_CORE/core.uml#_7qhTUHkgEeOCpqruXGWNPw"/>
+ </FCM:Template>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/sysinterfaces.di b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/sysinterfaces.di
new file mode 100644
index 00000000000..dbd0aabd9ce
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/sysinterfaces.di
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi" xmi:id="_dIWGYNVyEd-yf-a92HwCZA">
+ <pageList xmi:id="_dIWGYdVyEd-yf-a92HwCZA">
+ <availablePage xmi:id="_dIWGYtVyEd-yf-a92HwCZA">
+ <emfPageIdentifier href="sysinterfaces.notation#_e6WycG4rEd-0rs2VEGIwsA"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="sysinterfaces.notation#_SNBrsPNAEeCovO8AYZymZQ"/>
+ </availablePage>
+ </pageList>
+ <sashModel xmi:id="_dIWGY9VyEd-yf-a92HwCZA" currentSelection="_dIWGZdVyEd-yf-a92HwCZA">
+ <windows xmi:id="_dIWGZNVyEd-yf-a92HwCZA">
+ <children xsi:type="di:TabFolder" xmi:id="_dIWGZdVyEd-yf-a92HwCZA">
+ <children>
+ <emfPageIdentifier href="sysinterfaces.notation#_SNBrsPNAEeCovO8AYZymZQ"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+</di:SashWindowsMngr>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/sysinterfaces.notation b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/sysinterfaces.notation
new file mode 100644
index 00000000000..0122891b2b9
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/sysinterfaces.notation
@@ -0,0 +1,269 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_e6WycG4rEd-0rs2VEGIwsA" type="CompositeStructure" name="NewDiagram" measurementUnit="Pixel">
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_e6WycW4rEd-0rs2VEGIwsA"/>
+ <element xmi:type="uml:Model" href="sysinterfaces.uml#_yS1-UGo_Ed-39pfn3cZo5Q"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_SNBrsPNAEeCovO8AYZymZQ" type="PapyrusUMLClassDiagram" name="Interfaces" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_eKPEkPNAEeCovO8AYZymZQ" type="2004" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eKProPNAEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eKProfNAEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eKProvNAEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eKPro_NAEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eKQSsPNAEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eKQSsfNAEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_eKQSsvNAEeCovO8AYZymZQ" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_eKQSs_NAEeCovO8AYZymZQ" visible="false" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_eKQStPNAEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_eKQStfNAEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_eKQStvNAEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eKQSt_NAEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_eKQSuPNAEeCovO8AYZymZQ" type="7007">
+ <children xmi:type="notation:Shape" xmi:id="_gt5UIPNAEeCovO8AYZymZQ" type="3007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wVxMEClUEeO4bs_nkcnKOg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wVxMESlUEeO4bs_nkcnKOg" key="CustomAppearance_MaskValue" value="6920"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="sysinterfaces.uml#_asFRoAweEd6it_RkGhz_AA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gt5UIfNAEeCovO8AYZymZQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_eKQSufNAEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_eKQSuvNAEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_eKQSu_NAEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eKQSvPNAEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_eKQSvfNAEeCovO8AYZymZQ" visible="false" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_eKQSvvNAEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_eKQSv_NAEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_eKQSwPNAEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eKQSwfNAEeCovO8AYZymZQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="sysinterfaces.uml#_Xb-y0AweEd6it_RkGhz_AA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eKPEkfNAEeCovO8AYZymZQ" x="40" y="40" width="129" height="105"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_eKRg0PNAEeCovO8AYZymZQ" type="2004" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eKRg0vNAEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eKRg0_NAEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eKRg1PNAEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eKRg1fNAEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eKSH4PNAEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eKSH4fNAEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_eKSH4vNAEeCovO8AYZymZQ" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_eKSH4_NAEeCovO8AYZymZQ" visible="false" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_eKSH5PNAEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_eKSH5fNAEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_eKSH5vNAEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eKSH5_NAEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_eKSH6PNAEeCovO8AYZymZQ" type="7007">
+ <children xmi:type="notation:Shape" xmi:id="_gt57MPNAEeCovO8AYZymZQ" type="3007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zCi7YClUEeO4bs_nkcnKOg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zcJuMClUEeO4bs_nkcnKOg" key="CustomAppearance_MaskValue" value="6920"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="sysinterfaces.uml#__aGzICUUEd6YR-YzyVnLng"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gt57MfNAEeCovO8AYZymZQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_eKSH6fNAEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_eKSH6vNAEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_eKSH6_NAEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eKSH7PNAEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_eKSH7fNAEeCovO8AYZymZQ" visible="false" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_eKSH7vNAEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_eKSH7_NAEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_eKSH8PNAEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eKSH8fNAEeCovO8AYZymZQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="sysinterfaces.uml#_7TuzoCUUEd6YR-YzyVnLng"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eKRg0fNAEeCovO8AYZymZQ" x="40" y="180" width="141" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_eKSu8PNAEeCovO8AYZymZQ" type="2004" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eKSu8vNAEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eKSu8_NAEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eKSu9PNAEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eKTWAPNAEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eKTWAfNAEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eKTWAvNAEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_eKTWA_NAEeCovO8AYZymZQ" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_eKTWBPNAEeCovO8AYZymZQ" visible="false" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_eKTWBfNAEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_eKTWBvNAEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_eKTWB_NAEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eKTWCPNAEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_eKTWCfNAEeCovO8AYZymZQ" type="7007">
+ <children xmi:type="notation:Shape" xmi:id="_gt6iQPNAEeCovO8AYZymZQ" type="3007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vp0FAClUEeO4bs_nkcnKOg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vp0FASlUEeO4bs_nkcnKOg" key="CustomAppearance_MaskValue" value="6920"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gt6iQfNAEeCovO8AYZymZQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_eKTWCvNAEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_eKTWC_NAEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_eKTWDPNAEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eKTWDfNAEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_eKTWDvNAEeCovO8AYZymZQ" visible="false" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_eKTWD_NAEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_eKTWEPNAEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_eKTWEfNAEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eKTWEvNAEeCovO8AYZymZQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="sysinterfaces.uml#_BHFPQJsqEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eKSu8fNAEeCovO8AYZymZQ" x="400" y="40" width="112" height="105"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_eKT9EPNAEeCovO8AYZymZQ" type="2004" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eKT9EvNAEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eKT9E_NAEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eKUkIPNAEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eKUkIfNAEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eKUkIvNAEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eKUkI_NAEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_eKUkJPNAEeCovO8AYZymZQ" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_eKUkJfNAEeCovO8AYZymZQ" visible="false" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_eKUkJvNAEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_eKUkJ_NAEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_eKUkKPNAEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eKUkKfNAEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_eKUkKvNAEeCovO8AYZymZQ" type="7007">
+ <children xmi:type="notation:Shape" xmi:id="_wY_7EPNAEeCovO8AYZymZQ" type="3007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vGriwClUEeO4bs_nkcnKOg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vGsJ0ClUEeO4bs_nkcnKOg" key="CustomAppearance_MaskValue" value="6920"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wY_7EfNAEeCovO8AYZymZQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_eKUkK_NAEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_eKUkLPNAEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_eKUkLfNAEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eKUkLvNAEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_eKUkL_NAEeCovO8AYZymZQ" visible="false" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_eKUkMPNAEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_eKUkMfNAEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_eKUkMvNAEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eKUkM_NAEeCovO8AYZymZQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="sysinterfaces.uml#_PTWzwCS-Ed-A_I32T0fkaA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eKT9EfNAEeCovO8AYZymZQ" x="220" y="40" width="123" height="105"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_eKVLMPNAEeCovO8AYZymZQ" type="2004" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eKVLMvNAEeCovO8AYZymZQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eKVyQPNAEeCovO8AYZymZQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eKVyQfNAEeCovO8AYZymZQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eKVyQvNAEeCovO8AYZymZQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eKVyQ_NAEeCovO8AYZymZQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eKVyRPNAEeCovO8AYZymZQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_eKVyRfNAEeCovO8AYZymZQ" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_eKVyRvNAEeCovO8AYZymZQ" visible="false" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_eKVyR_NAEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_eKVySPNAEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_eKVySfNAEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eKVySvNAEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_eKVyS_NAEeCovO8AYZymZQ" type="7007">
+ <children xmi:type="notation:Shape" xmi:id="_gt7wYPNAEeCovO8AYZymZQ" type="3007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tQ_zgClUEeO4bs_nkcnKOg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tRAakClUEeO4bs_nkcnKOg" key="CustomAppearance_MaskValue" value="6920"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gt7wYfNAEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gt8XcPNAEeCovO8AYZymZQ" type="3007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t11l8ClUEeO4bs_nkcnKOg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t11l8SlUEeO4bs_nkcnKOg" key="CustomAppearance_MaskValue" value="6920"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gt8XcfNAEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nuWqUClUEeO4bs_nkcnKOg" type="3007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uUvIcClUEeO4bs_nkcnKOg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uUvvgClUEeO4bs_nkcnKOg" key="CustomAppearance_MaskValue" value="6920"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="sysinterfaces.uml#_ns4qsClUEeO4bs_nkcnKOg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nuWqUSlUEeO4bs_nkcnKOg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_eKVyTPNAEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_eKVyTfNAEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_eKVyTvNAEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eKVyT_NAEeCovO8AYZymZQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_eKVyUPNAEeCovO8AYZymZQ" visible="false" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_eKVyUfNAEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_eKVyUvNAEeCovO8AYZymZQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_eKVyU_NAEeCovO8AYZymZQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eKVyVPNAEeCovO8AYZymZQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eKVLMfNAEeCovO8AYZymZQ" x="220" y="180" width="181" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_JseUIMc3EeSsAI2TZshUyg" type="2004">
+ <children xmi:type="notation:DecorationNode" xmi:id="_JseUIsc3EeSsAI2TZshUyg" type="5011"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JseUI8c3EeSsAI2TZshUyg" type="8507">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JseUJMc3EeSsAI2TZshUyg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JseUJcc3EeSsAI2TZshUyg" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JseUJsc3EeSsAI2TZshUyg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_JseUJ8c3EeSsAI2TZshUyg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_JseUKMc3EeSsAI2TZshUyg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JseUKcc3EeSsAI2TZshUyg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JseUKsc3EeSsAI2TZshUyg" type="7007">
+ <children xmi:type="notation:Shape" xmi:id="_RN1z0Mc3EeSsAI2TZshUyg" type="3007">
+ <styles xmi:type="notation:StringListValueStyle" xmi:id="_uIDgYMc3EeSsAI2TZshUyg" name="maskLabel">
+ <stringListValue>parametersName</stringListValue>
+ <stringListValue>parametersDirection</stringListValue>
+ <stringListValue>name</stringListValue>
+ <stringListValue>parametersType</stringListValue>
+ <stringListValue>returnType</stringListValue>
+ </styles>
+ <element xmi:type="uml:Operation" href="sysinterfaces.uml#_RNz-oMc3EeSsAI2TZshUyg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RN1z0cc3EeSsAI2TZshUyg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JseUK8c3EeSsAI2TZshUyg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_JseULMc3EeSsAI2TZshUyg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_JseULcc3EeSsAI2TZshUyg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JseULsc3EeSsAI2TZshUyg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JseUL8c3EeSsAI2TZshUyg" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JseUMMc3EeSsAI2TZshUyg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_JseUMcc3EeSsAI2TZshUyg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_JseUMsc3EeSsAI2TZshUyg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JseUM8c3EeSsAI2TZshUyg"/>
+ </children>
+ <element xmi:type="uml:Interface" href="sysinterfaces.uml#_Jsce8Mc3EeSsAI2TZshUyg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JseUIcc3EeSsAI2TZshUyg" x="440" y="180" width="241"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_vgRQgMc3EeSsAI2TZshUyg" type="2012">
+ <children xmi:type="notation:DecorationNode" xmi:id="_vgR3kMc3EeSsAI2TZshUyg" type="5038"/>
+ <element xmi:type="uml:Comment" href="sysinterfaces.uml#_vgQpcMc3EeSsAI2TZshUyg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vgRQgcc3EeSsAI2TZshUyg" x="800" y="160" width="321" height="141"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_SNBrsfNAEeCovO8AYZymZQ"/>
+ <element xmi:type="uml:Model" href="sysinterfaces.uml#_RodVAAweEd6it_RkGhz_AA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_1zY0YMc3EeSsAI2TZshUyg" type="4013" source="_vgRQgMc3EeSsAI2TZshUyg" target="_JseUIMc3EeSsAI2TZshUyg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_1zY0Ycc3EeSsAI2TZshUyg"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1zY0Ysc3EeSsAI2TZshUyg" points="[-53, -5, 240, 35]$[-200, 10, 93, 50]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1zgwMMc3EeSsAI2TZshUyg" id="(0.0,0.6521739130434783)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1zgwMcc3EeSsAI2TZshUyg" id="(1.0,0.75)"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/sysinterfaces.uml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/sysinterfaces.uml
new file mode 100644
index 00000000000..35fb7fa4914
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/sysinterfaces.uml
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:C_Cpp="http://www.eclipse.org/papyrus/C_Cpp/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <uml:Model xmi:id="_RodVAAweEd6it_RkGhz_AA" name="sysinterfaces">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_vgQpcMc3EeSsAI2TZshUyg" annotatedElement="_Jsce8Mc3EeSsAI2TZshUyg">
+ <body>Support for Signal Reception. Interfaces that have at least one signal reception should also inherit from this interface in order to allow for signal reception.
+Currently not clear whether that should be done as part of the component to OO transformation or within the application model on user demand.</body>
+ </ownedComment>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_RodVAQweEd6it_RkGhz_AA">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_3gokYF_LEd6vU6EJjexEKQ">
+ <importedPackage xmi:type="uml:Model" href="corba.uml#_DtQEwDLdEd2_U4efLnjQIw"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_TUuxcPN-EeCovO8AYZymZQ">
+ <importedPackage xmi:type="uml:Model" href="pathmap://Papyrus_Alf_LIBRARIES/alflibrary.uml#_0bBI4Hy5EeCKy5kSqd4eVw"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_Xb-y0AweEd6it_RkGhz_AA" name="ITick">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_asFRoAweEd6it_RkGhz_AA" name="tick"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_7TuzoCUUEd6YR-YzyVnLng" name="Dispatch">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="__aGzICUUEd6YR-YzyVnLng" name="dispatch" isAbstract="true">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_y4XwwC3vEd6OqY3qskOtLQ" name="buffer">
+ <type xmi:type="uml:PrimitiveType" href="corba.uml#_IYEXcB-VEd6nGq8wpI2tjg"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_BHFPQJsqEd61Eo3nmu3JhQ" name="IRunnable">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_C9IK4JsqEd61Eo3nmu3JhQ" name="run"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_PTWzwCS-Ed-A_I32T0fkaA" name="IStart">
+ <generalization xmi:type="uml:Generalization" xmi:id="_XpdjECS-Ed-A_I32T0fkaA" general="_BHFPQJsqEd61Eo3nmu3JhQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_T3li0Dz6Ed-v9PxuTj6Elw" name="ILifeCycle">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_WHyq4Dz6Ed-v9PxuTj6Elw" name="activate" isAbstract="true"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_W7YrADz6Ed-v9PxuTj6Elw" name="deactivate" isAbstract="true"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_ns4qsClUEeO4bs_nkcnKOg" name="configuration_complete"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_rWJlYFVsEd-K97FBeYjNGA" name="CppCompilationReq"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_xLfoIFVsEd-K97FBeYjNGA" name="CppCompilationReq">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_zNjmgFVsEd-K97FBeYjNGA" name="include" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2NQR0FVsEd-K97FBeYjNGA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2NRf8FVsEd-K97FBeYjNGA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_2NSHAFVsEd-K97FBeYjNGA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_zbKksFVsEd-K97FBeYjNGA" name="libPaths" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_5Y8xwFVsEd-K97FBeYjNGA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_5ZGiwFVsEd-K97FBeYjNGA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_5ZPFoFVsEd-K97FBeYjNGA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_5uSIkFVsEd-K97FBeYjNGA" name="libs" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_7rCJIFVsEd-K97FBeYjNGA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_7rOWYFVsEd-K97FBeYjNGA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_7rZVgFVsEd-K97FBeYjNGA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_omxU4PNAEeCovO8AYZymZQ" name="PoolControl">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_2-9icPNAEeCovO8AYZymZQ" name="addEvent" visibility="public">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_7lclYPNAEeCovO8AYZymZQ">
+ <body>&lt;&lt;TextualRepresentation>>public addEvent () { }</body>
+ </ownedComment>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_Jsce8Mc3EeSsAI2TZshUyg" name="SignalReception">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_RNz-oMc3EeSsAI2TZshUyg" name="handleSignal">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_cmMzMMc3EeSsAI2TZshUyg" name="signal">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_RodVAgweEd6it_RkGhz_AA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RodVAwweEd6it_RkGhz_AA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_-PJq0F_LEd6vU6EJjexEKQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-PN8QF_LEd6vU6EJjexEKQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/C_Cpp/1#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
+ </profileApplication>
+ </uml:Model>
+ <C_Cpp:Ptr xmi:id="__cCUsF_LEd6vU6EJjexEKQ" base_parameter="_y4XwwC3vEd6OqY3qskOtLQ"/>
+ <C_Cpp:Ptr xmi:id="_r1DjAMc3EeSsAI2TZshUyg" base_parameter="_cmMzMMc3EeSsAI2TZshUyg"/>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/wizardTemplates/QompassModel.di b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/wizardTemplates/QompassModel.di
new file mode 100644
index 00000000000..61f9c2fac17
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/wizardTemplates/QompassModel.di
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="ASCII"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi" xmi:id="_FvVgcPjQEd-QxdT_yarEKQ">
+ <pageList xmi:id="_FvVgcfjQEd-QxdT_yarEKQ">
+ <availablePage xmi:id="_FvVgcvjQEd-QxdT_yarEKQ">
+ <emfPageIdentifier href="QompassModel.notation#__buPcGmXEd-z7r5RKMpEpA"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="QompassModel.notation#_nAvkcFM2EeGB_eR1RCgBpw"/>
+ </availablePage>
+ </pageList>
+ <sashModel xmi:id="_FvWHgPjQEd-QxdT_yarEKQ" currentSelection="_FvWHgvjQEd-QxdT_yarEKQ">
+ <windows xmi:id="_FvWHgfjQEd-QxdT_yarEKQ">
+ <children xsi:type="di:TabFolder" xmi:id="_FvWHgvjQEd-QxdT_yarEKQ">
+ <children xmi:id="_FvWHg_jQEd-QxdT_yarEKQ">
+ <emfPageIdentifier href="QompassModel.notation#__buPcGmXEd-z7r5RKMpEpA"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="QompassModel.notation#_nAvkcFM2EeGB_eR1RCgBpw"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+</di:SashWindowsMngr>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/wizardTemplates/QompassModel.notation b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/wizardTemplates/QompassModel.notation
new file mode 100644
index 00000000000..989a0923956
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/wizardTemplates/QompassModel.notation
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML">
+ <notation:Diagram xmi:id="__buPcGmXEd-z7r5RKMpEpA" type="PapyrusUMLClassDiagram" name="Class diagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_z01l4GnZEd-Ptdbbm65sVA" type="2005" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_z02M8GnZEd-Ptdbbm65sVA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_z02M8WnZEd-Ptdbbm65sVA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_z020AGnZEd-Ptdbbm65sVA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_z020AWnZEd-Ptdbbm65sVA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_z020AmnZEd-Ptdbbm65sVA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_z020A2nZEd-Ptdbbm65sVA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_z020BGnZEd-Ptdbbm65sVA" type="5020"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_z020BWnZEd-Ptdbbm65sVA" type="7009">
+ <children xmi:type="notation:Shape" xmi:id="_Fd1c4GnaEd-Ptdbbm65sVA" type="3009" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Fd2D8GnaEd-Ptdbbm65sVA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Fd2D8WnaEd-Ptdbbm65sVA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Fd2D8mnaEd-Ptdbbm65sVA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Fd2D82naEd-Ptdbbm65sVA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Fd2D9GnaEd-Ptdbbm65sVA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Fd2D9WnaEd-Ptdbbm65sVA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Fd2D9mnaEd-Ptdbbm65sVA" type="5017"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Fd2D92naEd-Ptdbbm65sVA" type="7010">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Fd2D-GnaEd-Ptdbbm65sVA"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_Fd1c4WnaEd-Ptdbbm65sVA"/>
+ <element xmi:type="uml:Package" href="QompassModel.uml#_FdsS8GnaEd-Ptdbbm65sVA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Fd1c4mnaEd-Ptdbbm65sVA" x="44" y="17"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_JQ2bgGnaEd-Ptdbbm65sVA" type="3009" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JQ3CkGnaEd-Ptdbbm65sVA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JQ3CkWnaEd-Ptdbbm65sVA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JQ3CkmnaEd-Ptdbbm65sVA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JQ3Ck2naEd-Ptdbbm65sVA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JQ3ClGnaEd-Ptdbbm65sVA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JQ3ClWnaEd-Ptdbbm65sVA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JQ3ClmnaEd-Ptdbbm65sVA" type="5017"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JQ3Cl2naEd-Ptdbbm65sVA" type="7010">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JQ3CmGnaEd-Ptdbbm65sVA"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_JQ2bgWnaEd-Ptdbbm65sVA"/>
+ <element xmi:type="uml:Package" href="QompassModel.uml#_JQvt0GnaEd-Ptdbbm65sVA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JQ2bgmnaEd-Ptdbbm65sVA" x="44" y="130"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_P1qMUGnaEd-Ptdbbm65sVA" type="3009" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_P1qzYGnaEd-Ptdbbm65sVA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_P1qzYWnaEd-Ptdbbm65sVA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_P1qzYmnaEd-Ptdbbm65sVA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_P1qzY2naEd-Ptdbbm65sVA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_P1racGnaEd-Ptdbbm65sVA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_P1racWnaEd-Ptdbbm65sVA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_P1racmnaEd-Ptdbbm65sVA" type="5017"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_P1rac2naEd-Ptdbbm65sVA" type="7010">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_P1radGnaEd-Ptdbbm65sVA"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_P1qMUWnaEd-Ptdbbm65sVA"/>
+ <element xmi:type="uml:Package" href="QompassModel.uml#_P1nJAGnaEd-Ptdbbm65sVA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_P1qMUmnaEd-Ptdbbm65sVA" x="44" y="247"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z020BmnZEd-Ptdbbm65sVA" x="-23" y="20" width="412" height="373"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_z01l4WnZEd-Ptdbbm65sVA"/>
+ <element xmi:type="uml:Model" href="QompassModel.uml#__brzMGmXEd-z7r5RKMpEpA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z01l4mnZEd-Ptdbbm65sVA" x="118" y="98" width="359" height="396"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="__buPcWmXEd-z7r5RKMpEpA"/>
+ <element xmi:type="uml:Model" href="QompassModel.uml#__brzMGmXEd-z7r5RKMpEpA"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_nAvkcFM2EeGB_eR1RCgBpw" type="CompositeStructure" name="Platform" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_nkwQcFM2EeGB_eR1RCgBpw" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nkw3gFM2EeGB_eR1RCgBpw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nkw3gVM2EeGB_eR1RCgBpw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nkw3glM2EeGB_eR1RCgBpw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nkw3g1M2EeGB_eR1RCgBpw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nkw3hFM2EeGB_eR1RCgBpw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nkw3hVM2EeGB_eR1RCgBpw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_nkw3hlM2EeGB_eR1RCgBpw" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nkw3h1M2EeGB_eR1RCgBpw" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_pkGSAFM2EeGB_eR1RCgBpw" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pkG5EFM2EeGB_eR1RCgBpw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pkG5EVM2EeGB_eR1RCgBpw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pkG5ElM2EeGB_eR1RCgBpw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pkG5E1M2EeGB_eR1RCgBpw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pkG5FFM2EeGB_eR1RCgBpw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pkG5FVM2EeGB_eR1RCgBpw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_pkG5FlM2EeGB_eR1RCgBpw" type="5126"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_pkG5F1M2EeGB_eR1RCgBpw" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_pkG5GFM2EeGB_eR1RCgBpw" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pkG5GVM2EeGB_eR1RCgBpw"/>
+ </children>
+ <element xmi:type="uml:Property" href="QompassModel.uml#_pkDOsFM2EeGB_eR1RCgBpw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pkGSAVM2EeGB_eR1RCgBpw" x="26" y="9" width="125"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nkw3iFM2EeGB_eR1RCgBpw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nkw3iVM2EeGB_eR1RCgBpw"/>
+ </children>
+ <element xmi:type="uml:Class" href="QompassModel.uml#_l0_jAFM2EeGB_eR1RCgBpw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nkwQcVM2EeGB_eR1RCgBpw" x="97" y="92" width="273" height="143"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_nAvkcVM2EeGB_eR1RCgBpw"/>
+ <element xmi:type="uml:Package" href="QompassModel.uml#_JQvt0GnaEd-Ptdbbm65sVA"/>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/wizardTemplates/QompassModel.uml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/wizardTemplates/QompassModel.uml
new file mode 100644
index 00000000000..aec9cff4984
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/wizardTemplates/QompassModel.uml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:FCM="http://www.eclipse.org/papyrus/FCM/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <uml:Model xmi:id="__brzMGmXEd-z7r5RKMpEpA" name="Qompassmodel">
+ <packageImport xmi:id="_8AZ5IGnZEd-Ptdbbm65sVA">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/core.uml#_O6TiIDLUEd26WNosUASSSw"/>
+ </packageImport>
+ <packageImport xmi:id="_0gF6ADehEeGPyrZ5I3hMlA">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/corba.uml#_DtQEwDLdEd2_U4efLnjQIw"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Package" xmi:id="_FdsS8GnaEd-Ptdbbm65sVA" name="components"/>
+ <packagedElement xmi:type="uml:Package" xmi:id="_JQvt0GnaEd-Ptdbbm65sVA" name="Platform">
+ <packagedElement xmi:type="uml:Node" xmi:id="_Y0o9gCgcEeC4DoMvE4KnsQ" name="Node0"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_l0_jAFM2EeGB_eR1RCgBpw" name="HwArchitecture">
+ <ownedAttribute xmi:id="_pkDOsFM2EeGB_eR1RCgBpw" name="node0" visibility="public" type="_Y0o9gCgcEeC4DoMvE4KnsQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_q63QoFM2EeGB_eR1RCgBpw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_q65F0FM2EeGB_eR1RCgBpw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_q7b4YFM2EeGB_eR1RCgBpw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_P1nJAGnaEd-Ptdbbm65sVA" name="deployment"/>
+ <profileApplication xmi:id="_8AagMWnZEd-Ptdbbm65sVA">
+ <eAnnotations xmi:id="_8AbHQGnZEd-Ptdbbm65sVA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/FCM/1#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://FCM_PROFILES/FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
+ </profileApplication>
+ <profileApplication xmi:id="_8AbHQWnZEd-Ptdbbm65sVA">
+ <eAnnotations xmi:id="_8AbHQmnZEd-Ptdbbm65sVA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//HLAM"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_yNSZIAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ <profileApplication xmi:id="_8AbuUGnZEd-Ptdbbm65sVA">
+ <eAnnotations xmi:id="_8AbuUWnZEd-Ptdbbm65sVA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//GCM"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_YgAioAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ <profileApplication xmi:id="_98SbACgbEeC4DoMvE4KnsQ">
+ <eAnnotations xmi:id="_-ASxQCgbEeC4DoMvE4KnsQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/C_Cpp/1#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
+ </profileApplication>
+ <profileApplication xmi:id="_AqXK0CgcEeC4DoMvE4KnsQ">
+ <eAnnotations xmi:id="_AukVYCgcEeC4DoMvE4KnsQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_ippoYFM2EeGB_eR1RCgBpw">
+ <eAnnotations xmi:id="_jCEIYFM2EeGB_eR1RCgBpw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_ar8OsAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ </uml:Model>
+ <FCM:Target xmi:id="_egftECgcEeC4DoMvE4KnsQ" base_Node="_Y0o9gCgcEeC4DoMvE4KnsQ"/>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/wizardTemplates/QompassSimple.di b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/wizardTemplates/QompassSimple.di
new file mode 100644
index 00000000000..9ff5520aae6
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/wizardTemplates/QompassSimple.di
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="ASCII"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi">
+ <pageList>
+ <availablePage>
+ <emfPageIdentifier href="QompassSimple.notation#_N-FYQFM2EeGB_eR1RCgBpw"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="QompassSimple.notation#_Pl_KMFM2EeGB_eR1RCgBpw"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="QompassSimple.notation#_Rot28FM2EeGB_eR1RCgBpw"/>
+ </availablePage>
+ </pageList>
+ <sashModel currentSelection="//@sashModel/@windows.0/@children.0">
+ <windows>
+ <children xsi:type="di:TabFolder">
+ <children>
+ <emfPageIdentifier href="QompassSimple.notation#_N-FYQFM2EeGB_eR1RCgBpw"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="QompassSimple.notation#_Pl_KMFM2EeGB_eR1RCgBpw"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="QompassSimple.notation#_Rot28FM2EeGB_eR1RCgBpw"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+</di:SashWindowsMngr>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/wizardTemplates/QompassSimple.notation b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/wizardTemplates/QompassSimple.notation
new file mode 100644
index 00000000000..57b432f3a65
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/wizardTemplates/QompassSimple.notation
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML">
+ <notation:Diagram xmi:id="_N-FYQFM2EeGB_eR1RCgBpw" type="CompositeStructure" name="Components" measurementUnit="Pixel">
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_N-FYQVM2EeGB_eR1RCgBpw"/>
+ <element xmi:type="uml:Package" href="QompassSimple.uml#_FdsS8GnaEd-Ptdbbm65sVA"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_Pl_KMFM2EeGB_eR1RCgBpw" type="PapyrusUMLClassDiagram" name="Deployment" measurementUnit="Pixel">
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Pl_KMVM2EeGB_eR1RCgBpw"/>
+ <element xmi:type="uml:Package" href="QompassSimple.uml#_P1nJAGnaEd-Ptdbbm65sVA"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_Rot28FM2EeGB_eR1RCgBpw" type="CompositeStructure" name="Platform" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_U10sIFM2EeGB_eR1RCgBpw" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U10sIlM2EeGB_eR1RCgBpw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U10sI1M2EeGB_eR1RCgBpw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U11TMFM2EeGB_eR1RCgBpw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U11TMVM2EeGB_eR1RCgBpw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U11TMlM2EeGB_eR1RCgBpw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U11TM1M2EeGB_eR1RCgBpw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_U11TNFM2EeGB_eR1RCgBpw" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_U11TNVM2EeGB_eR1RCgBpw" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_Vn6QYFM2EeGB_eR1RCgBpw" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Vn63cFM2EeGB_eR1RCgBpw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vn63cVM2EeGB_eR1RCgBpw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Vn63clM2EeGB_eR1RCgBpw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vn63c1M2EeGB_eR1RCgBpw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Vn63dFM2EeGB_eR1RCgBpw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vn63dVM2EeGB_eR1RCgBpw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Vn63dlM2EeGB_eR1RCgBpw" type="5126"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Vn63d1M2EeGB_eR1RCgBpw" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Vn63eFM2EeGB_eR1RCgBpw" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vn63eVM2EeGB_eR1RCgBpw"/>
+ </children>
+ <element xmi:type="uml:Property" href="QompassSimple.uml#_Vm8nEFM2EeGB_eR1RCgBpw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vn6QYVM2EeGB_eR1RCgBpw" x="35" y="21" width="123"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_U11TNlM2EeGB_eR1RCgBpw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U11TN1M2EeGB_eR1RCgBpw"/>
+ </children>
+ <element xmi:type="uml:Class" href="QompassSimple.uml#_TAfiMFM2EeGB_eR1RCgBpw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U10sIVM2EeGB_eR1RCgBpw" x="99" y="102" width="235" height="142"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Rot28VM2EeGB_eR1RCgBpw"/>
+ <element xmi:type="uml:Package" href="QompassSimple.uml#_JQvt0GnaEd-Ptdbbm65sVA"/>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/wizardTemplates/QompassSimple.uml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/wizardTemplates/QompassSimple.uml
new file mode 100644
index 00000000000..b90cad4bdad
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/models/wizardTemplates/QompassSimple.uml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:FCM="http://www.eclipse.org/papyrus/FCM/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <uml:Model xmi:id="__brzMGmXEd-z7r5RKMpEpA" name="Qompassmodel">
+ <packageImport xmi:id="_8AZ5IGnZEd-Ptdbbm65sVA">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/core.uml#_O6TiIDLUEd26WNosUASSSw"/>
+ </packageImport>
+ <packageImport xmi:id="_9AGMMDehEeGPyrZ5I3hMlA">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/corba.uml#_DtQEwDLdEd2_U4efLnjQIw"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Package" xmi:id="_FdsS8GnaEd-Ptdbbm65sVA" name="components"/>
+ <packagedElement xmi:type="uml:Package" xmi:id="_JQvt0GnaEd-Ptdbbm65sVA" name="Platform">
+ <packagedElement xmi:type="uml:Node" xmi:id="_ubZDgCgcEeC4DoMvE4KnsQ" name="Node0"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_TAfiMFM2EeGB_eR1RCgBpw" name="HwArchitecture">
+ <ownedAttribute xmi:id="_Vm8nEFM2EeGB_eR1RCgBpw" name="node0" visibility="public" type="_ubZDgCgcEeC4DoMvE4KnsQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WogKsFM2EeGB_eR1RCgBpw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_WouNIFM2EeGB_eR1RCgBpw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_WpZikFM2EeGB_eR1RCgBpw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_P1nJAGnaEd-Ptdbbm65sVA" name="deployment"/>
+ <profileApplication xmi:id="_8AagMWnZEd-Ptdbbm65sVA">
+ <eAnnotations xmi:id="_8AbHQGnZEd-Ptdbbm65sVA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/FCM/1#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://FCM_PROFILES/FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
+ </profileApplication>
+ <profileApplication xmi:id="_pDULkCgcEeC4DoMvE4KnsQ">
+ <eAnnotations xmi:id="_pI-HoCgcEeC4DoMvE4KnsQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_sitqoCgcEeC4DoMvE4KnsQ">
+ <eAnnotations xmi:id="_sm5AACgcEeC4DoMvE4KnsQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/C_Cpp/1#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
+ </profileApplication>
+ <profileApplication xmi:id="_ctGKYFM2EeGB_eR1RCgBpw">
+ <eAnnotations xmi:id="_dA53MFM2EeGB_eR1RCgBpw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_ar8OsAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ </uml:Model>
+ <FCM:Target xmi:id="_wgsjICgcEeC4DoMvE4KnsQ" base_Node="_ubZDgCgcEeC4DoMvE4KnsQ"/>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/plugin.properties b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/plugin.properties
new file mode 100644
index 00000000000..2e655ccb549
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/plugin.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2013 CEA LIST.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# CEA LIST - initial API and implementation
+###############################################################################
+pluginName=Papyrus extra: Qompass core model library (Incubation)
+providerName=Eclipse Modeling Project
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/plugin.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/plugin.xml
new file mode 100644
index 00000000000..ed77d369a14
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/plugin.xml
@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+ <extension id="ProvideInterface" point="org.eclipse.papyrus.fcm.profile.fcmPortMappingRule">
+ <client class="org.eclipse.papyrus.qompass.modellibs.core.mappingrules.ProvideInterface" portKindName="ProvideInterface">
+ class=&quot;org.eclipse.papyrus.qompass.designer.gentools.cpp.CppLanguageSupport&quot;
+ </client>
+ </extension>
+ <extension id="UseInterface" point="org.eclipse.papyrus.fcm.profile.fcmPortMappingRule">
+ <client class="org.eclipse.papyrus.qompass.modellibs.core.mappingrules.UseInterface" portKindName="UseInterface">
+ </client>
+ </extension>
+ <extension id="PullConsumer" point="org.eclipse.papyrus.fcm.profile.fcmPortMappingRule">
+ <client class="org.eclipse.papyrus.qompass.modellibs.core.mappingrules.PullConsumer" portKindName="PullConsumer">
+ </client>
+ </extension>
+ <extension id="PushConsumer" point="org.eclipse.papyrus.fcm.profile.fcmPortMappingRule">
+ <client class="org.eclipse.papyrus.qompass.modellibs.core.mappingrules.PushConsumer" portKindName="PushConsumer">
+ </client>
+ </extension>
+ <extension id="PushProducer" point="org.eclipse.papyrus.fcm.profile.fcmPortMappingRule">
+ <client class="org.eclipse.papyrus.qompass.modellibs.core.mappingrules.PushProducer" portKindName="PushProducer">
+ </client>
+ </extension>
+ <extension id="ExtendedPort" point="org.eclipse.papyrus.fcm.profile.fcmPortMappingRule">
+ <client class="org.eclipse.papyrus.qompass.modellibs.core.mappingrules.ExtendedPort" portKindName="ExtendedPort">
+ </client>
+ </extension>
+ <extension id="ExtendedPort2" point="org.eclipse.papyrus.fcm.profile.fcmPortMappingRule">
+ <client class="org.eclipse.papyrus.qompass.modellibs.core.mappingrules.ExtendedPort2" portKindName="ExtendedPort2">
+ </client>
+ </extension>
+ <extension id="TemplatePort" point="org.eclipse.papyrus.fcm.profile.fcmPortMappingRule">
+ <client class="org.eclipse.papyrus.qompass.modellibs.core.mappingrules.TemplatePort" portKindName="TemplatePort">
+ </client>
+ </extension>
+ <extension id="UseConjIntf" point="org.eclipse.papyrus.fcm.profile.fcmPortMappingRule">
+ <client class="org.eclipse.papyrus.qompass.modellibs.core.mappingrules.UseConjIntf" portKindName="UseConjIntf">
+ </client>
+ </extension>
+ <extension id="PushProdPullCons" point="org.eclipse.papyrus.fcm.profile.fcmPortMappingRule">
+ <client class="org.eclipse.papyrus.qompass.modellibs.core.mappingrules.PushProdPullCons" portKindName="PushProdPullCons">
+ </client>
+ </extension>
+ <extension id="PushProdPullCons" point="org.eclipse.papyrus.fcm.profile.fcmPortMappingRule">
+ <client class="org.eclipse.papyrus.qompass.modellibs.core.mappingrules.AMIcallback" portKindName="AMIcallback">
+ </client>
+ </extension>
+ <extension id="PushProdPullCons" point="org.eclipse.papyrus.fcm.profile.fcmPortMappingRule">
+ <client class="org.eclipse.papyrus.qompass.modellibs.core.mappingrules.AMIpoll" portKindName="AMIpoll">
+ </client>
+ </extension>
+ <extension point="org.eclipse.papyrus.fcm.profile.fcmEmbeddingRule">
+ <client class="org.eclipse.papyrus.qompass.modellibs.core.embeddingrules.AccordCall" portKindName="AccordCall">
+ </client>
+ </extension>
+ <extension id="QML_CORE" point="org.eclipse.emf.ecore.uri_mapping">
+ <mapping source="pathmap://QML_CORE/" target="platform:/plugin/org.eclipse.papyrus.qompass.modellibs.core/models/library/">
+ </mapping>
+ </extension>
+ <extension name="CORBA basic types" point="org.eclipse.papyrus.uml.extensionpoints.UMLLibrary">
+ <library description="Qompass: CORBA basic types (long, wchar, ...)" iconpath="platform:/plugin/org.eclipse.papyrus.qompass.designer.ui/icons/Qompass-16x16.gif" name="Qompass model library: CORBA basic types" path="pathmap://QML_CORE/corba.uml" provider="CEA LIST">
+ </library>
+ </extension>
+ <extension name="Qompass core library" point="org.eclipse.papyrus.uml.extensionpoints.UMLLibrary">
+ <library description="Qompass core library" iconpath="platform:/plugin/org.eclipse.papyrus.qompass.designer.ui/icons/Qompass-16x16.gif" name="Qompass model library: basic" path="pathmap://QML_CORE/core.uml" provider="CEA LIST">
+ </library>
+ </extension>
+ <extension name="FIFO" point="org.eclipse.papyrus.uml.extensionpoints.UMLLibrary">
+ <library iconpath="platform:/plugin/org.eclipse.papyrus.qompass.designer.ui/icons/Qompass-16x16.gif" name="Qompass model library: FIFO" path="pathmap://QML_CORE/fifo.uml" provider="CEA LIST">
+ </library>
+ </extension>
+ <extension name="OS-AL" point="org.eclipse.papyrus.uml.extensionpoints.UMLLibrary">
+ <library iconpath="platform:/plugin/org.eclipse.papyrus.qompass.designer.ui/icons/Qompass-16x16.gif" name="Qompass model library: OS abstraction layer (OS-AL)" path="pathmap://QML_CORE/osal.uml" provider="CEA LIST">
+ </library>
+ </extension>
+ <extension name="StateMachine" point="org.eclipse.papyrus.uml.extensionpoints.UMLLibrary">
+ <library iconpath="platform:/plugin/org.eclipse.papyrus.qompass.designer.ui/icons/Qompass-16x16.gif" name="Qompass model library: State-machines" path="pathmap://QML_CORE/statemachine.uml" provider="CEA LIST">
+ </library>
+ </extension>
+ <extension point="org.eclipse.papyrus.uml.diagram.wizards.templates">
+ <template
+ id="org.eclipse.papyrus.qompass.designer.modelibs.core.wizardTemplates.QompassForMARTE"
+ language="uml"
+ name="Qompass for MARTE"
+ file="models/wizardTemplates/QompassModel.uml"
+ di_file="models/wizardTemplates/QompassModel.di"
+ notation_file="models/wizardTemplates/QompassModel.notation">
+ </template>
+ <template
+ id="org.eclipse.papyrus.qompass.designer.modelibs.core.wizardTemplates.QompassSimple"
+ language="uml"
+ name="Qompass without MARTE"
+ file="models/wizardTemplates/QompassSimple.uml"
+ di_file="models/wizardTemplates/QompassSimple.di"
+ notation_file="models/wizardTemplates/QompassSimple.notation">
+ </template>
+ </extension>
+ <extension point="org.eclipse.papyrus.qompass.designer.core.instanceConfig">
+ <client class="org.eclipse.papyrus.qompass.modellibs.core.iconfigurators.CallEventConfigurator" configuratorID="CallEventConfigurator">
+ </client>
+ </extension>
+ <extension point="org.eclipse.papyrus.qompass.designer.core.instanceConfig">
+ <client class="org.eclipse.papyrus.qompass.modellibs.core.iconfigurators.AnimServiceConfigurator" configuratorID="AnimServiceConfigurator">
+ </client>
+ </extension>
+ <extension point="org.eclipse.ui.newWizards">
+ <wizard
+ category="org.eclipse.ui.Examples/org.eclipse.papyrus.examples"
+ class="org.eclipse.papyrus.qompass.modellibs.core.HelloWorldModelWizard"
+ finalPerspective="org.eclipse.papyrus.infra.core.perspective"
+ icon="platform:/plugin/org.eclipse.papyrus.qompass.designer.ui/icons/Qompass-16x16.gif"
+ id="org.eclipse.papyrus.qompass.modellibs.core.new.HelloWorld"
+ name="Qompass hello world example">
+ <selection class="org.eclipse.core.resources.IResource"/>
+ </wizard>
+ <wizard
+ category="org.eclipse.ui.Examples/org.eclipse.papyrus.examples"
+ class="org.eclipse.papyrus.qompass.modellibs.core.ProducerConsumerModelWizard"
+ finalPerspective="org.eclipse.papyrus.infra.core.perspective"
+ icon="platform:/plugin/org.eclipse.papyrus.qompass.designer.ui/icons/Qompass-16x16.gif"
+ id="org.eclipse.papyrus.qompass.modellibs.core.new.ProducerConsumer"
+ name="Qompass producer/comsumer example">
+ <selection class="org.eclipse.core.resources.IResource"/>
+ </wizard>
+ </extension>
+ <extension id="LoopOperations" point="org.eclipse.papyrus.fcm.profile.fcmBindingHelper">
+ <client
+ bindingHelperName="LoopOperations"
+ class="org.eclipse.papyrus.qompass.modellibs.core.bindinghelpers.LoopOperations">
+ </client>
+ </extension>
+ <extension id="BindOperation" point="org.eclipse.papyrus.fcm.profile.fcmBindingHelper">
+ <client
+ bindingHelperName="BindOperation"
+ class="org.eclipse.papyrus.qompass.modellibs.core.bindinghelpers.BindOperation">
+ </client>
+ </extension>
+ <extension
+ id="BindCppIncludeToFirstActual"
+ point="org.eclipse.papyrus.fcm.profile.fcmBindingHelper">
+ <client
+ bindingHelperName="BindCppIncludeToFirstActual"
+ class="org.eclipse.papyrus.qompass.modellibs.core.bindinghelpers.BindCppIncludeToFirstActual">
+ </client>
+ </extension>
+ <extension point="org.eclipse.help.toc">
+ <toc file="help/modellibs-core-examples.xml"/>
+ <toc file="help/modellibs-core-library.xml"/>
+ </extension>
+ <extension
+ point="org.eclipse.papyrus.qompass.designer.core.xtendGenerator">
+ <client class="org.eclipse.papyrus.qompass.modellibs.core.xtend.StateMachineGen" templateID="StateMachineGen">
+ </client>
+ </extension>
+</plugin>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/pom.xml b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/pom.xml
new file mode 100644
index 00000000000..e44092312e0
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/pom.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.qompass.modellibs.core</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-clean-plugin</artifactId>
+ <configuration>
+ <filesets>
+ <fileset>
+ <directory>xtend-gen</directory>
+ <includes>
+ <include>**/*</include>
+ </includes>
+ <excludes>
+ <exclude>.gitignore</exclude>
+ </excludes>
+ </fileset>
+ </filesets>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.eclipse.xtend</groupId>
+ <artifactId>xtend-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>compile</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <outputDirectory>xtend-gen</outputDirectory>
+ <testOutputDirectory>${project.build.directory}/xtend-gen/test</testOutputDirectory>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/Activator.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/Activator.java
new file mode 100644
index 00000000000..8859e978d40
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/Activator.java
@@ -0,0 +1,60 @@
+package org.eclipse.papyrus.qompass.modellibs.core;
+
+import org.eclipse.papyrus.infra.core.log.LogHelper;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.qompass.modellibs.core"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ public static LogHelper log;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+
+ // register the login helper
+ log = new LogHelper(plugin);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/HelloWorldModelWizard.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/HelloWorldModelWizard.java
new file mode 100644
index 00000000000..5972200b5ff
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/HelloWorldModelWizard.java
@@ -0,0 +1,27 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.modellibs.core;
+
+import org.eclipse.papyrus.uml.diagram.wizards.ModelCopyWizard;
+
+/**
+ * Copy wizard for the HelloWorld example
+ */
+public class HelloWorldModelWizard extends ModelCopyWizard {
+
+ public HelloWorldModelWizard() {
+ super("HelloWorld"); //$NON-NLS-1$
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/ProducerConsumerModelWizard.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/ProducerConsumerModelWizard.java
new file mode 100644
index 00000000000..38ae39a4204
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/ProducerConsumerModelWizard.java
@@ -0,0 +1,27 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.modellibs.core;
+
+import org.eclipse.papyrus.uml.diagram.wizards.ModelCopyWizard;
+
+/**
+ * Copy wizard for the ProducerConsumer example
+ */
+public class ProducerConsumerModelWizard extends ModelCopyWizard {
+
+ public ProducerConsumerModelWizard() {
+ super("ProducerConsumer"); //$NON-NLS-1$
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/bindinghelpers/BindCppIncludeToFirstActual.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/bindinghelpers/BindCppIncludeToFirstActual.java
new file mode 100644
index 00000000000..a8e25cbbf12
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/bindinghelpers/BindCppIncludeToFirstActual.java
@@ -0,0 +1,73 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.modellibs.core.bindinghelpers;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.C_Cpp.Include;
+import org.eclipse.papyrus.FCM.util.IBindingHelper;
+import org.eclipse.papyrus.qompass.designer.core.listeners.PostCopyListener;
+import org.eclipse.papyrus.qompass.designer.core.templates.TemplateUtils;
+import org.eclipse.papyrus.qompass.designer.core.templates.TextTemplateBinding;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationContext;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.TemplateBinding;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * Instantiate (bind Acceleo template) the text within a C++Include stereotype.
+ *
+ * The actual is the first actual within the template binding. This function does not check
+ * whether the classifier has the template stereotype.
+ *
+ * Note: this function is C++ specific, but many parts of the model library are C++ specific as well
+ *
+ */
+public class BindCppIncludeToFirstActual implements PostCopyListener, IBindingHelper {
+
+ @Override
+ public void postCopyEObject(LazyCopier copy, EObject targetEObj) {
+ // if (copy.get(sourceEObj) isWithinTemplate)
+ if (targetEObj instanceof Classifier) {
+
+ Classifier targetCl = (Classifier) targetEObj;
+ try {
+ Classifier actual = TemplateUtils.getFirstActualFromBinding(binding);
+ Include cppInclude = UMLUtil.getStereotypeApplication(targetCl, Include.class);
+ if ((actual != null) && (cppInclude != null)) {
+ TransformationContext.classifier = targetCl;
+ String newBody = TextTemplateBinding.bind(cppInclude.getBody(), actual, null);
+ String newPreBody = TextTemplateBinding.bind(cppInclude.getPreBody(), actual, null);
+ String newHeader = TextTemplateBinding.bind(cppInclude.getHeader(), actual, null);
+ cppInclude.setBody(newBody);
+ cppInclude.setPreBody(newPreBody);
+ cppInclude.setHeader(newHeader);
+ }
+ } catch (TransformationException e) {
+ // create nested exception
+ throw new RuntimeException(e);
+ }
+ }
+ }
+
+ protected TemplateBinding binding;
+
+ @Override
+ public void handleElement(TemplateBinding binding, Element object) {
+ this.binding = binding;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/bindinghelpers/BindOperation.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/bindinghelpers/BindOperation.java
new file mode 100644
index 00000000000..6b2d352e1ee
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/bindinghelpers/BindOperation.java
@@ -0,0 +1,54 @@
+package org.eclipse.papyrus.qompass.modellibs.core.bindinghelpers;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.FCM.util.IBindingHelper;
+import org.eclipse.papyrus.qompass.designer.core.listeners.PreCopyListener;
+import org.eclipse.papyrus.qompass.designer.core.templates.BindingUtils;
+import org.eclipse.papyrus.qompass.designer.core.templates.TemplateUtils;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
+import org.eclipse.papyrus.qompass.modellibs.core.Activator;
+import org.eclipse.uml2.uml.Behavior;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.OpaqueBehavior;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.TemplateBinding;
+
+/**
+ * Bind an operation to an actual, i.e. evaluate the Acceleo template within the opaque behavior associated with
+ * the operation.
+ */
+public class BindOperation implements IBindingHelper, PreCopyListener {
+
+ private TemplateBinding binding;
+
+ @Override
+ public EObject preCopyEObject(LazyCopier copy, EObject sourceEObj) {
+
+ if (sourceEObj instanceof Operation) {
+ Operation operation = (Operation) sourceEObj;
+ Classifier actual = TemplateUtils.getFirstActualFromBinding(binding);
+
+ Operation newOperation = BindingUtils.instantiateOperation(copy, actual, operation);
+ for (Behavior method : operation.getMethods()) {
+ if (method instanceof OpaqueBehavior) {
+ try {
+ Behavior newBehavior =
+ BindingUtils.instantiateBehavior(copy, actual, (OpaqueBehavior) method);
+ newBehavior.setSpecification(newOperation);
+ } catch (TransformationException e) {
+ Activator.log.error(e);
+ }
+ }
+ }
+ return newOperation;
+ }
+ return sourceEObj;
+ }
+
+ @Override
+ public void handleElement(TemplateBinding binding, Element object) {
+ this.binding = binding;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/bindinghelpers/InstantiateCppIncludeWithItSelf.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/bindinghelpers/InstantiateCppIncludeWithItSelf.java
new file mode 100644
index 00000000000..cd4a730ee30
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/bindinghelpers/InstantiateCppIncludeWithItSelf.java
@@ -0,0 +1,74 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.modellibs.core.bindinghelpers;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.C_Cpp.Include;
+import org.eclipse.papyrus.FCM.Template;
+import org.eclipse.papyrus.FCM.util.IBindingHelper;
+import org.eclipse.papyrus.qompass.designer.core.listeners.PostCopyListener;
+import org.eclipse.papyrus.qompass.designer.core.templates.TextTemplateBinding;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationContext;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.TemplateBinding;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * Instantiate (bind Acceleo template) the text within a C++Include stereotype.
+ *
+ * Difference to InstantiateCppInclude: This function does not obtain the actual from a template
+ * binding. Instead it takes the classifier having the Template stereotype as actual.
+ * TODO: What's the use of this function. The classifier is known at this time - unless in a template?
+ *
+ * Note: this function is C++ specific, but many parts of the model library are C++ specific as well
+ *
+ */
+@Deprecated
+public class InstantiateCppIncludeWithItSelf implements PostCopyListener, IBindingHelper {
+
+ @Override
+ public void postCopyEObject(LazyCopier copy, EObject targetEObj) {
+ // if (copy.get(sourceEObj) isWithinTemplate)
+ if (targetEObj instanceof Classifier) {
+ // TODO: C++ specific code!
+ Classifier targetCl = (Classifier) targetEObj;
+ Template template = UMLUtil.getStereotypeApplication(targetCl, Template.class);
+ // apply, in case of pass-classifier
+ if ((template != null) && (template.getHelper() == null)) {
+ try {
+ Include cppInclude = UMLUtil.getStereotypeApplication(targetCl, Include.class);
+ TransformationContext.classifier = targetCl;
+ String newBody = TextTemplateBinding.bind(cppInclude.getBody(), targetCl, null);
+ String newPreBody = TextTemplateBinding.bind(cppInclude.getPreBody(), targetCl, null);
+ String newHeader = TextTemplateBinding.bind(cppInclude.getHeader(), targetCl, null);
+ cppInclude.setBody(newBody);
+ cppInclude.setPreBody(newPreBody);
+ cppInclude.setHeader(newHeader);
+ } catch (TransformationException e) {
+ // create nested exception
+ throw new RuntimeException(e);
+ }
+ }
+ }
+ }
+
+ @Override
+ public void handleElement(TemplateBinding binding, Element object) {
+ // don't need to handle binding
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/bindinghelpers/LoopOperations.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/bindinghelpers/LoopOperations.java
new file mode 100644
index 00000000000..996363af3dd
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/bindinghelpers/LoopOperations.java
@@ -0,0 +1,130 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.modellibs.core.bindinghelpers;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.FCM.util.IBindingHelper;
+import org.eclipse.papyrus.qompass.designer.core.listeners.PreCopyListener;
+import org.eclipse.papyrus.qompass.designer.core.templates.BindingUtils;
+import org.eclipse.papyrus.qompass.designer.core.templates.TemplateUtils;
+import org.eclipse.papyrus.qompass.designer.core.templates.TextTemplateBinding;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
+import org.eclipse.papyrus.qompass.modellibs.core.Activator;
+import org.eclipse.uml2.uml.Behavior;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.EnumerationLiteral;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.OpaqueBehavior;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.TemplateBinding;
+import org.eclipse.uml2.uml.Type;
+
+/**
+ * This binding helper loops over all operations of the actual template parameter
+ * (typically an interface)
+ *
+ */
+public class LoopOperations implements IBindingHelper, PreCopyListener {
+
+ private TemplateBinding binding;
+
+ @Override
+ public EObject preCopyEObject(LazyCopier copy, EObject sourceEObj) {
+
+ if (sourceEObj instanceof Operation) {
+ Operation operation = (Operation) sourceEObj;
+
+ Classifier actual = TemplateUtils.getFirstActualFromBinding(binding);
+
+ if (!(actual instanceof Interface)) {
+ return sourceEObj;
+ }
+ Interface passedActualIntf = (Interface) actual;
+ Operation last = null;
+ EList<Element> removalList = new BasicEList<Element>();
+ for (Operation intfOperation : passedActualIntf.getAllOperations()) {
+ for (Element removalElement : removalList) {
+ copy.removeForCopy(removalElement); // enable subsequent instantiations
+ }
+ removalList.clear();
+ last = BindingUtils.instantiateOperation(copy, intfOperation, operation);
+ removalList.add(operation);
+ for (Behavior method : operation.getMethods()) {
+ if (method instanceof OpaqueBehavior) {
+ try {
+ Behavior newBehavior =
+ BindingUtils.instantiateBehavior(copy, intfOperation, (OpaqueBehavior) method);
+ newBehavior.setSpecification(last);
+ } catch (TransformationException e) {
+ Activator.log.error(e);
+ ;
+ }
+ // removalList.add(method);
+ copy.removeForCopy(method); // enable subsequent instantiations
+ }
+ }
+ }
+ // from a logical viewpoint, we need to copy parameters & name, but not the
+ // operation identity.
+ copy.put(operation, last);
+ return last;
+ /*
+ * else { // not LOOP_OPERATIONS
+ * Operation newOperation = instantiateOperation(actual, template, operation, boundClass);
+ * for(Behavior method : operation.getMethods()) {
+ * if(method instanceof OpaqueBehavior) {
+ * Behavior newBehavior =
+ * instantiateBehavior(actual, template, (OpaqueBehavior)method);
+ * newBehavior.setSpecification(newOperation);
+ * }
+ * }
+ * return newOperation;
+ */
+ }
+ else if (sourceEObj instanceof EnumerationLiteral) {
+ EnumerationLiteral literal = (EnumerationLiteral) sourceEObj;
+ Classifier actual = TemplateUtils.getFirstActualFromBinding(binding);
+ // Type passedActual = getPassedActual(template, actual, boundClass);
+ Type passedActual = actual;
+ if (!(passedActual instanceof Interface)) {
+ return sourceEObj;
+ }
+ Interface passedActualIntf = (Interface) passedActual;
+ EnumerationLiteral newLiteral = null;
+ for (Operation intfOperation : passedActualIntf.getAllOperations()) {
+ copy.removeForCopy(literal);
+ newLiteral = copy.getCopy(literal);
+ try {
+ String newName = TextTemplateBinding.bind(literal.getName(), intfOperation, null);
+ newLiteral.setName(newName);
+ } catch (TransformationException e) {
+ Activator.log.error(e);
+ newLiteral.setName("none"); //$NON-NLS-1$
+ }
+ }
+ return newLiteral;
+ }
+ return null;
+ }
+
+ @Override
+ public void handleElement(TemplateBinding binding, Element object) {
+ this.binding = binding;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/embeddingrules/AccordCall.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/embeddingrules/AccordCall.java
new file mode 100644
index 00000000000..e76e284f645
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/embeddingrules/AccordCall.java
@@ -0,0 +1,95 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.modellibs.core.embeddingrules;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.papyrus.FCM.Connector;
+import org.eclipse.papyrus.FCM.util.ConnectorTypeUtil;
+import org.eclipse.papyrus.FCM.util.FCMUtil;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.uml2.uml.ConnectableElement;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * Embedding rule
+ * TODO: currently unused
+ *
+ */
+// @unused
+public class AccordCall extends ConnectorTypeUtil {
+
+ private ConnectableElement clientRole = null;
+ private ConnectableElement serverRole = null;
+ private ConnectableElement rtuRole = null;
+ private ConnectableElement connectorRole = null;
+
+ @Override
+ public FCMUtil.RoleBindingTable getRoleBindings(Connector connector) {
+ super.getRoleBindings(connector);
+
+ clientRole = bindingTable.getRoleKeyByName("client");
+ serverRole = bindingTable.getRoleKeyByName("server");
+ rtuRole = bindingTable.getRoleKeyByName("rtu");
+ connectorRole = bindingTable.getRoleKeyByName("connector");
+
+ for (org.eclipse.uml2.uml.ConnectorEnd end : connector.getBase_Connector().getEnds()) {
+ if (end.getRole() instanceof org.eclipse.uml2.uml.Port) {
+ org.eclipse.uml2.uml.Port port = (org.eclipse.uml2.uml.Port) end.getRole();
+ org.eclipse.uml2.uml.Property part = end.getPartWithPort();
+ if (StereotypeUtil.isApplied(port, org.eclipse.papyrus.FCM.Port.class)) {
+ org.eclipse.papyrus.FCM.Port fcmPort = UMLUtil.getStereotypeApplication(port, org.eclipse.papyrus.FCM.Port.class);
+ if (fcmPort.getKind().getBase_Class().getName().equals("UseInterfaceWithRtf")) {
+ // => elements associated with the connector end play the client role
+ List<NamedElement> clientActors = new ArrayList<NamedElement>();
+ clientActors.add(port);
+ clientActors.add(part);
+ bindingTable.addEntry(clientRole, clientActors);
+ }
+ else if (fcmPort.getKind().getBase_Class().getName().equals("ProvideInterface")) {
+ // => elements associated with the connector end play the server role
+ List<NamedElement> serverActors = new ArrayList<NamedElement>();
+ serverActors.add(port);
+ serverActors.add(part);
+ bindingTable.addEntry(serverRole, serverActors);
+ // the property playing the server role must also play the rtu role
+ port = ((org.eclipse.uml2.uml.Class) part.getType()).getOwnedPort("rtu", null);
+ if (port == null) {
+ if (((org.eclipse.uml2.uml.Class) part.getType()).getInheritedMember("rtu") != null &&
+ ((org.eclipse.uml2.uml.Class) part.getType()).getInheritedMember("rtu") instanceof org.eclipse.uml2.uml.Port) {
+ port = (org.eclipse.uml2.uml.Port) ((org.eclipse.uml2.uml.Class) part.getType()).getInheritedMember("rtu");
+ }
+ else {
+ System.out.println("Could not find a port rtu on part " + part.getName() + " : " + part.getType());
+ }
+ }
+ if (port != null) {
+ List<NamedElement> rtuActors = new ArrayList<NamedElement>();
+ rtuActors.add(port);
+ rtuActors.add(part);
+ bindingTable.addEntry(rtuRole, rtuActors);
+ }
+ }
+ }
+ }
+ }
+ List<NamedElement> connectorActors = new ArrayList<NamedElement>();
+ connectorActors.add(connector.getBase_Connector());
+ bindingTable.addEntry(connectorRole, connectorActors);
+ return bindingTable;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/iconfigurators/AnimServiceConfigurator.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/iconfigurators/AnimServiceConfigurator.java
new file mode 100644
index 00000000000..b33d4053ed2
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/iconfigurators/AnimServiceConfigurator.java
@@ -0,0 +1,68 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.modellibs.core.iconfigurators;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.qompass.designer.core.deployment.AllocUtils;
+import org.eclipse.papyrus.qompass.designer.core.extensions.IInstanceConfigurator;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * Configurator for the Eclipse animation server. This instance is systematically
+ * allocated to a node named "Eclipse" call event (for a state machine): it sets the
+ * portID attribute of the call event interceptor. The interceptor uses this
+ * attribute to initialize the portID attribute within the produced CallEvent
+ * data structure.
+ *
+ * @author ansgar
+ *
+ */
+public class AnimServiceConfigurator implements IInstanceConfigurator {
+
+ public final static String eclipseAnimService = "Eclipse"; //$NON-NLS-1$
+
+ /**
+ * Configure the instance of a CallEvent interceptor. The configuration parameter is the
+ * index of the port which gets intercepted. It is obtained via an enumeration
+ *
+ * @see org.eclipse.papyrus.qompass.designer.core.extensions.IInstanceConfigurator#configureInstance(org.eclipse.uml2.uml.InstanceSpecification, org.eclipse.uml2.uml.InstanceSpecification, org.eclipse.uml2.uml.Port)
+ *
+ * @param instance
+ * the instance that should be configured
+ * @param componentPart
+ * the part representing this instance
+ * @param context
+ * container context
+ */
+ @Override
+ public void configureInstance(InstanceSpecification instance, Property componentPart, InstanceSpecification parentInstance)
+ {
+ EList<InstanceSpecification> nodes = AllocUtils.getAllNodesOrThreadsParent(parentInstance);
+ if (nodes.size() > 0) {
+ InstanceSpecification node = nodes.get(0);
+ // problem: instance specification is within intermediate model, thus incomplete.
+ // option: explicitly pre-create singletons (and allocate these?)
+ NamedElement animService = node.getNearestPackage().getMember(eclipseAnimService);
+ if (animService instanceof InstanceSpecification) {
+ AllocUtils.allocate(instance, (InstanceSpecification) animService);
+ return;
+ }
+ }
+ // throw new TransformationRTException(String.format("Cannot find node <%s> in platform definition", eclipseAnimService));
+ }
+
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/iconfigurators/CallEventConfigurator.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/iconfigurators/CallEventConfigurator.java
new file mode 100644
index 00000000000..db9831cd43a
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/iconfigurators/CallEventConfigurator.java
@@ -0,0 +1,61 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.modellibs.core.iconfigurators;
+
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepPlanUtils;
+import org.eclipse.papyrus.qompass.designer.core.extensions.IInstanceConfigurator;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * Configurator of a call event (for a state machine): it sets the
+ * portID attribute of the call event interceptor. The interceptor uses this
+ * attribute to initialize the portID attribute within the produced CallEvent
+ * data structure.
+ *
+ * @author ansgar
+ *
+ */
+public class CallEventConfigurator implements IInstanceConfigurator {
+
+ public final static String portAttribute = "portID"; //$NON-NLS-1$
+
+ /**
+ * Configure the instance of a CallEvent interceptor. The configuration parameter is the
+ * index of the port which gets intercepted. It is obtained via an enumeration
+ *
+ * @see org.eclipse.papyrus.qompass.designer.core.extensions.IInstanceConfigurator#configureInstance(org.eclipse.uml2.uml.InstanceSpecification, org.eclipse.uml2.uml.InstanceSpecification, org.eclipse.uml2.uml.Port)
+ *
+ * @param instance
+ * the instance that should be configured
+ * @param componentPart
+ * the part representing this instance
+ * @param context
+ * container context
+ */
+ @Override
+ public void configureInstance(InstanceSpecification instance, Property componentPart, InstanceSpecification parentInstance)
+ {
+ if (parentInstance != null) {
+ // make sure that there is an enum par port
+ // String literalName = "port_" + UMLTool.varName(context.port); //$NON-NLS-1$
+
+ // the associated enumeration is declared by the statemachine (which is included by the bootloader as well)
+
+ DepPlanUtils.configureProperty(instance, portAttribute, 0);
+ }
+ }
+
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/AMIcallback.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/AMIcallback.java
new file mode 100644
index 00000000000..74809d9cc9b
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/AMIcallback.java
@@ -0,0 +1,162 @@
+package org.eclipse.papyrus.qompass.modellibs.core.mappingrules;
+
+import java.util.Iterator;
+
+import org.eclipse.papyrus.FCM.Port;
+import org.eclipse.papyrus.FCM.util.IMappingRule;
+import org.eclipse.papyrus.FCM.util.MapUtil;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.ParameterDirectionKind;
+import org.eclipse.uml2.uml.Type;
+
+
+public class AMIcallback implements IMappingRule {
+
+ private static final String _REPLY = "_reply_"; //$NON-NLS-1$
+ private static final String _REQUEST = "_request_"; //$NON-NLS-1$
+ private static final String AMI_CB = "AMI_CB"; //$NON-NLS-1$
+
+ @Override
+ public Type calcDerivedType(Port p, boolean update) {
+ Type type = p.getType();
+ if (!(type instanceof Interface)) {
+ return null;
+ }
+
+ Interface typingInterface = (Interface) type;
+ Class derivedType = MapUtil.getDerivedClass(p, AMI_CB);
+ Interface derivedRequestInterface = MapUtil.getDerivedInterface(p, _REQUEST);
+ Interface derivedReplyInterface = MapUtil.getDerivedInterface(p, _REPLY);
+ MapUtil.addUsage(derivedType, derivedRequestInterface); // caller can use (require) the request interface
+ MapUtil.addRealization(derivedType, derivedReplyInterface); // callers must implement (provide) the reply interface
+
+ if (!update) {
+ return derivedType;
+ }
+
+ // -----------------------------------------------
+ // calculate "request" interface (OUT parameter are removed)
+ // -----------------------------------------------
+ for (Operation operation : typingInterface.getOwnedOperations()) {
+ String name = operation.getName();
+
+ // check whether operation already exists. Create, if not
+ Operation derivedOperation = derivedRequestInterface.getOperation(name, null, null);
+ if (derivedOperation == null) {
+ derivedOperation = derivedRequestInterface.createOwnedOperation(name, null, null);
+ }
+
+ // request operation contains only in and inout parameters
+ for (Parameter parameter : operation.getOwnedParameters()) {
+ if ((parameter.getDirection() == ParameterDirectionKind.IN_LITERAL) ||
+ (parameter.getDirection() == ParameterDirectionKind.INOUT_LITERAL)) {
+
+ String paramName = parameter.getName();
+ Type paramType = parameter.getType();
+ if (derivedOperation.getOwnedParameter(paramName, paramType) == null) {
+ Parameter newParameter = derivedOperation.createOwnedParameter(parameter.getName(), parameter.getType());
+ newParameter.setDirection(parameter.getDirection());
+ newParameter.setLower(parameter.getLower());
+ newParameter.setUpper(parameter.getUpper());
+ }
+ }
+ }
+
+ // remove those parameters that exist in derived, but not original interface.
+ Iterator<Parameter> derivedParameters = derivedOperation.getOwnedParameters().iterator();
+ while (derivedParameters.hasNext()) {
+ Parameter parameter = derivedParameters.next();
+ String paramName = parameter.getName();
+ Type paramType = parameter.getType();
+ if (operation.getOwnedParameter(paramName, paramType) == null) {
+ // not on in original interface, remove from derived as well
+ derivedParameters.remove();
+ }
+ }
+ }
+
+ // check whether operations in derived interface exist in original interface
+ // (remove, if not)
+ Iterator<Operation> derivedRequestOperations = derivedRequestInterface.getOwnedOperations().iterator();
+ while (derivedRequestOperations.hasNext()) {
+ Operation derivedOperation = derivedRequestOperations.next();
+ String name = derivedOperation.getName();
+ if (name == null) {
+ continue;
+ }
+ if (typingInterface.getOperation(name, null, null) == null) {
+ // not in typing interface, remove
+ derivedRequestOperations.remove();
+ }
+ }
+
+ // -----------------------------------------------
+ // calculate "reply" interface (with OUT and INOUT parameter transformed into in parameters)
+ // -----------------------------------------------
+ for (Operation operation : typingInterface.getOwnedOperations()) {
+ String name = operation.getName();
+
+ if (AMIpoll.hasOutParameters(operation)) {
+
+ // check whether operation already exists. Create, if not
+ Operation derivedOperation = derivedReplyInterface.getOperation(name, null, null);
+ if (derivedOperation == null) {
+ derivedOperation = derivedReplyInterface.createOwnedOperation(name, null, null);
+ }
+
+ // each non-in parameter is in the poll operation.
+ for (Parameter parameter : operation.getOwnedParameters()) {
+ if (parameter.getDirection() != ParameterDirectionKind.IN_LITERAL) { // OUT and INOUT
+
+ String paramName = parameter.getName();
+ Type paramType = parameter.getType();
+ if (derivedOperation.getOwnedParameter(paramName, paramType) == null) {
+ Parameter newParameter = derivedOperation.createOwnedParameter(parameter.getName(), parameter.getType());
+ newParameter.setDirection(ParameterDirectionKind.IN_LITERAL);
+ newParameter.setLower(parameter.getLower());
+ newParameter.setUpper(parameter.getUpper());
+ }
+ }
+ }
+
+ // remove those parameters that exist in derived, but not original interface.
+ Iterator<Parameter> derivedParameters = derivedOperation.getOwnedParameters().iterator();
+ while (derivedParameters.hasNext()) {
+ Parameter parameter = derivedParameters.next();
+ String paramName = parameter.getName();
+ Type paramType = parameter.getType();
+ if (operation.getOwnedParameter(paramName, paramType) == null) {
+ // not on in original interface, remove from derived as well
+ derivedParameters.remove();
+ }
+ }
+ }
+ }
+
+ // check whether operations in derived interface exist in original interface
+ // (remove, if not)
+ Iterator<Operation> derivedReplyOperations = derivedReplyInterface.getOwnedOperations().iterator();
+ while (derivedRequestOperations.hasNext()) {
+ Operation derivedOperation = derivedReplyOperations.next();
+ String name = derivedOperation.getName();
+ if (name == null) {
+ continue;
+ }
+ if (typingInterface.getOperation(name, null, null) == null) {
+ // not in typing interface, remove
+ derivedReplyOperations.remove();
+ }
+ }
+
+ return derivedType;
+ }
+
+ @Override
+ public boolean needsUpdate(Port p) {
+ // TODO: insufficient condition
+ return (calcDerivedType(p, false) == null);
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/AMIpoll.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/AMIpoll.java
new file mode 100644
index 00000000000..220f2021465
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/AMIpoll.java
@@ -0,0 +1,161 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.modellibs.core.mappingrules;
+
+import java.util.Iterator;
+
+import org.eclipse.papyrus.FCM.Port;
+import org.eclipse.papyrus.FCM.util.IMappingRule;
+import org.eclipse.papyrus.FCM.util.MapUtil;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.ParameterDirectionKind;
+import org.eclipse.uml2.uml.Type;
+
+
+/**
+ * Implement a CORBA AMI style polling interface
+ * This is defined in the CORBA 3 standard in section 22.6.2
+ * A difference is that we do not return the poller object, but the client uses the original port.
+ * This has the consequence that it is not possible to make multiple asynchronous requests.
+ *
+ * A second difference is that we do not keep the normal methods in the same interface and prefix the
+ * new ones. (which would probably be a good idea).
+ *
+ */
+public class AMIpoll implements IMappingRule {
+
+ private static final String IAMI_POLL = "IAMIPoll_"; //$NON-NLS-1$
+ private static final String AMI_POLL = "AMIPoll_"; //$NON-NLS-1$
+
+ @Override
+ public Type calcDerivedType(Port p, boolean update) {
+ Type type = p.getType();
+ if (!(type instanceof Interface)) {
+ return null;
+ }
+
+ Class derivedType = MapUtil.getDerivedClass(p, AMI_POLL);
+ Interface typingInterface = (Interface) type;
+ Interface derivedInterface = MapUtil.getDerivedInterface(p, IAMI_POLL);
+ MapUtil.addUsage(derivedType, derivedInterface);
+
+ if (!update) {
+ return derivedType;
+ }
+
+ for (Operation operation : typingInterface.getOwnedOperations()) {
+ String name = operation.getName();
+
+ // check whether operation already exists. Create, if not
+ Operation derivedOperation = derivedInterface.getOperation(name, null, null);
+ if (derivedOperation == null) {
+ derivedOperation = derivedInterface.createOwnedOperation(name, null, null);
+ }
+
+ if (hasOutParameters(operation)) {
+ String pollName = name + "Poll"; //$NON-NLS-1$
+ Operation derivedPollOperation = derivedInterface.getOperation(pollName, null, null);
+ if (derivedPollOperation == null) {
+ derivedPollOperation = derivedInterface.createOwnedOperation(pollName, null, null);
+ }
+
+ // each non-in parameter is in the poll operation.
+ derivedPollOperation.createOwnedParameter("timeout", null); //$NON-NLS-1$
+
+ for (Parameter parameter : operation.getOwnedParameters()) {
+ if (parameter.getDirection() != ParameterDirectionKind.IN_LITERAL) {
+
+ String paramName = parameter.getName();
+ Type paramType = parameter.getType();
+ if (derivedPollOperation.getOwnedParameter(paramName, paramType) == null) {
+ Parameter newParameter =
+ derivedPollOperation.createOwnedParameter(parameter.getName(), parameter.getType());
+ newParameter.setDirection(parameter.getDirection());
+ newParameter.setLower(parameter.getLower());
+ newParameter.setUpper(parameter.getUpper());
+ }
+ }
+ }
+ }
+ // each in and inout parameter is in the request operation.
+ for (Parameter parameter : operation.getOwnedParameters()) {
+ if ((parameter.getDirection() == ParameterDirectionKind.IN_LITERAL) ||
+ (parameter.getDirection() == ParameterDirectionKind.INOUT_LITERAL)) {
+
+ String paramName = parameter.getName();
+ Type paramType = parameter.getType();
+ if (derivedOperation.getOwnedParameter(paramName, paramType) == null) {
+ Parameter newParameter =
+ derivedOperation.createOwnedParameter(parameter.getName(), parameter.getType());
+ newParameter.setDirection(parameter.getDirection());
+ newParameter.setLower(parameter.getLower());
+ newParameter.setUpper(parameter.getUpper());
+ }
+ }
+ }
+ // remove those parameters that exist in derived, but not original interface.
+ Iterator<Parameter> derivedParameters = derivedOperation.getOwnedParameters().iterator();
+ while (derivedParameters.hasNext()) {
+ Parameter parameter = derivedParameters.next();
+ String paramName = parameter.getName();
+ Type paramType = parameter.getType();
+ if ((!paramName.equals("timeout")) && //$NON-NLS-1$
+ (operation.getOwnedParameter(paramName, paramType) == null)) {
+ // not on in original interface, remove from derived as well
+ derivedParameters.remove();
+ }
+ }
+ }
+
+ // check whether operations in derived interface exist in original interface
+ // (remove, if not)
+ Iterator<Operation> derivedOperations = derivedInterface.getOwnedOperations().iterator();
+ while (derivedOperations.hasNext()) {
+ Operation derivedOperation = derivedOperations.next();
+ String name = derivedOperation.getName();
+ if (name == null) {
+ continue;
+ }
+ if (name.endsWith("Poll")) { //$NON-NLS-1$
+ // remove Poll postfix
+ name = name.substring(0, name.length() - 4);
+ }
+ if (typingInterface.getOperation(name, null, null) == null) {
+ // not in typing interface, remove
+ derivedOperations.remove();
+ }
+ }
+
+ return derivedType;
+ }
+
+ public static boolean hasOutParameters(Operation operation) {
+ for (Parameter parameter : operation.getOwnedParameters()) {
+ if (parameter.getDirection() != ParameterDirectionKind.IN_LITERAL) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public boolean needsUpdate(Port p) {
+ // TODO: insufficient condition
+ return (calcDerivedType(p, false) == null);
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/ExtendedPort.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/ExtendedPort.java
new file mode 100644
index 00000000000..3d08ffae8bf
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/ExtendedPort.java
@@ -0,0 +1,132 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.modellibs.core.mappingrules;
+
+import org.eclipse.papyrus.FCM.util.IMappingRule;
+import org.eclipse.papyrus.FCM.util.MapUtil;
+import org.eclipse.papyrus.qompass.designer.core.OperationUtils;
+import org.eclipse.papyrus.qompass.designer.core.PortUtils;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Type;
+
+
+/**
+ * An extended Port in the sense of the DDS4CCM standard: a port typed with a component
+ * type. Since the component typing the port can have multiple provided and required
+ * ports, the ports are implicitly owned by the port. Conjugation on the level of an extended
+ * port level will conjugate all ports of the component typing the port.
+ *
+ * The derived interface that is provided will concatenate provided port names within the
+ * extended port with the port name and provided a "big" interface.
+ * The derived interface that is required is identical, except for a conjugation on the
+ * extended port level.
+ *
+ * Creates a fixed template binding that binds T (of the extended Port) to the used data type
+ *
+ * Here, the idea is that the port type is a classifier, e.g. the data type that is
+ * transported by a DDS port. The port kind is the extended port, e.g. DDSWrite.
+ *
+ * The derived property isExtended of FCM port-kind is true, if the class representing the port-kind owns at least one
+ * port
+ *
+ * TODO: This class has become obsolete now, since extended DDS ports are now supported via flattening
+ *
+ */
+@Deprecated
+public class ExtendedPort implements IMappingRule {
+
+ public static final String PROV_PREFIX = "P_"; //$NON-NLS-1$
+
+ public static final String REQ_PREFIX = "R_"; //$NON-NLS-1$
+
+ @Override
+ public boolean needsUpdate(org.eclipse.papyrus.FCM.Port p) {
+ return needsUpdate(p, false) ||
+ needsUpdate(p, true);
+ }
+
+ public boolean needsUpdate(org.eclipse.papyrus.FCM.Port p, boolean isRequired) {
+ return true;
+ }
+
+ @Override
+ public Type calcDerivedType(org.eclipse.papyrus.FCM.Port p, boolean update)
+ {
+ Type type = p.getType();
+ if (!(type instanceof Classifier)) {
+ return null;
+ }
+ Class extendedPort = p.getKind().getBase_Class();
+
+ String prefix = extendedPort.getName() + "_" + (p.getBase_Port().isConjugated() ? REQ_PREFIX : PROV_PREFIX); //$NON-NLS-1$
+ Interface derivedInterface = MapUtil.getDerivedInterface(p, prefix, true);
+ if (!update) {
+ return derivedInterface;
+ }
+ if (derivedInterface == null) {
+ return null;
+ }
+ /*
+ * TemplateSignature signature = TemplateUtils.getSignature(type.getNearestPackage());
+ * if(signature != null) {
+ * Package model = Utils.getTop(derivedInterface);
+ * try {
+ * TemplateBinding binding =
+ * TemplateUtils.fixedBinding(model, extendedPort, (Classifier)type);
+ * Copy copy = new Copy(model, model, false);
+ * TemplateInstantiation ti = new TemplateInstantiation(copy, binding);
+ * // create a bound element of the extended port. Add bound class to derived interface class
+ * Class boundClass = ti.bindNamedElement(extendedPort);
+ * derivedInterface.getNearestPackage().getPackagedElements().add(boundClass);
+ * } catch (TransformationException e) {
+ * return null;
+ * }
+ * }
+ */
+ // obtain first template parameter = port type
+ // kind.getBase_Class().getNearestPackage().getTemplateParameter();
+
+ for (Port port : extendedPort.getOwnedPorts()) {
+ Interface derivedIntf = (p.getBase_Port().isConjugated()) ?
+ PortUtils.getRequired(port) :
+ PortUtils.getProvided(port);
+
+ if (derivedIntf != null) {
+ for (Operation op : derivedIntf.getAllOperations()) {
+ String name = port.getName() + "_" + op.getName(); //$NON-NLS-1$
+
+ // check whether operation already exists. Create, if not
+ Operation derivedOperation = derivedInterface.getOperation(name, null, null);
+ if (derivedOperation == null) {
+ derivedOperation = derivedInterface.createOwnedOperation(name, null, null);
+ OperationUtils.syncOperation(op, derivedOperation);
+ derivedOperation.setName(name);
+ }
+ else {
+ if (!OperationUtils.isSameOperation(derivedOperation, op, false)) {
+ OperationUtils.syncOperation(op, derivedOperation);
+ derivedOperation.setName(name);
+ }
+ }
+ }
+ }
+ }
+ return derivedInterface;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/ExtendedPort2.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/ExtendedPort2.java
new file mode 100644
index 00000000000..f12eadcdc4c
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/ExtendedPort2.java
@@ -0,0 +1,138 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.modellibs.core.mappingrules;
+
+import org.eclipse.papyrus.FCM.util.IMappingRule;
+import org.eclipse.papyrus.FCM.util.MapUtil;
+import org.eclipse.papyrus.qompass.designer.core.PortUtils;
+import org.eclipse.papyrus.qompass.designer.core.transformations.PrefixConstants;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Type;
+
+
+/**
+ * An extended Port in the sense of the DDS4CCM standard: a port typed with a component
+ * type (the extended port, not the data type that is transported). Since the component typing
+ * the port can have multiple provided and required
+ * ports, the ports are implicitly owned by the port. Conjugation on the level of an extended
+ * port level will conjugate all ports of the component typing the port.
+ *
+ * The derived interface that is provided will allow a caller to access individual ports. It
+ * is therefore a reference to the interfaces get_<portName> operations provided by a
+ * component.
+ * The derived interface that is required is identical, except for a conjugation on the
+ * extended port level.
+ *
+ * What is the difference to ExtendedPort?
+ *
+ */
+public class ExtendedPort2 implements IMappingRule {
+
+ public static final String CONJ_PREFIX = "C2_"; //$NON-NLS-1$
+
+ public static final String NORM_PREFIX = "N2_"; //$NON-NLS-1$
+
+ @Override
+ public Type calcDerivedType(org.eclipse.papyrus.FCM.Port p, boolean update) {
+
+ Type type = p.getType();
+ if (!(type instanceof Class)) {
+ return null;
+ }
+
+ Class extendedPort = (Class) type;
+ boolean isConjugated = p.getBase_Port().isConjugated();
+ String prefix = isConjugated ? CONJ_PREFIX : NORM_PREFIX;
+ Class derivedClass = MapUtil.getDerivedClass(p, prefix, update);
+ Interface providedInterface = MapUtil.getDerivedInterface(p, prefix, update);
+ Interface requiredInterface = MapUtil.getDerivedInterface(p, prefix, update);
+ if (!update) {
+ return derivedClass;
+ }
+ if (derivedClass == null) {
+ return null;
+ }
+ for (Port port : extendedPort.getOwnedPorts()) {
+ // if the extended port is conjugated, each of the provided/required are (implicitly)
+ // conjugated [TODO: is PortUtils aware of it? - probably yes]
+ Interface reqIntf = PortUtils.getRequired(port);
+
+ if (reqIntf != null) {
+ String name = PrefixConstants.getP_Prefix + port.getName();
+
+ // check whether operation already exists. Create, if not
+ Operation derivedOperation = requiredInterface.getOperation(name, null, null);
+ if (derivedOperation == null) {
+ derivedOperation = requiredInterface.createOwnedOperation(name, null, null);
+ }
+ }
+
+ Interface provIntf = PortUtils.getProvided(port);
+
+ if (provIntf != null) {
+ String name = PrefixConstants.getConnQ_Prefix + port.getName();
+
+ // check whether operation already exists. Create, if not
+ Operation derivedOperation = providedInterface.getOperation(name, null, null);
+ if (derivedOperation == null) {
+ derivedOperation = providedInterface.createOwnedOperation(name, null, null);
+ }
+ }
+ }
+ return derivedClass;
+ }
+
+ @Override
+ public boolean needsUpdate(org.eclipse.papyrus.FCM.Port p) {
+ return needsUpdate(p, false) ||
+ needsUpdate(p, true);
+ }
+
+ public boolean needsUpdate(org.eclipse.papyrus.FCM.Port p, boolean isConjugated) {
+ Type type = p.getBase_Port().getType();
+ if (!(type instanceof Class)) {
+ return false;
+ }
+
+ Class extendedPort = (Class) type;
+ String prefix = isConjugated ? CONJ_PREFIX : NORM_PREFIX;
+ Interface derivedInterface = MapUtil.getDerivedInterface(p, prefix);
+
+ if (derivedInterface == null) {
+ return true;
+ }
+ for (Port port : extendedPort.getOwnedPorts()) {
+ // if the extended port is conjugated, each of the provided/required are (implicitly)
+ // conjugated [TODO: is PortUtils aware of it? - probably yes]
+ Interface provIntf = (isConjugated) ?
+ PortUtils.getRequired(port) :
+ PortUtils.getProvided(port);
+
+ if (provIntf != null) {
+ String name = PrefixConstants.getP_Prefix + port.getName();
+
+ // check whether operation already exists. Create, if not
+ Operation derivedOperation = derivedInterface.getOperation(name, null, null);
+ if (derivedOperation == null) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/ProvideInterface.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/ProvideInterface.java
new file mode 100644
index 00000000000..2432ddcdc42
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/ProvideInterface.java
@@ -0,0 +1,37 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.modellibs.core.mappingrules;
+
+import org.eclipse.papyrus.FCM.Port;
+import org.eclipse.papyrus.FCM.util.IMappingRule;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Type;
+
+public class ProvideInterface implements IMappingRule
+{
+ @Override
+ public Type calcDerivedType(Port p, boolean update) {
+ Type type = p.getBase_Port().getType();
+ if (type instanceof Interface) {
+ return ((Interface) type);
+ }
+ return null;
+ }
+
+ @Override
+ public boolean needsUpdate(Port p) {
+ return false;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/PullConsumer.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/PullConsumer.java
new file mode 100644
index 00000000000..84c73d33c96
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/PullConsumer.java
@@ -0,0 +1,162 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.modellibs.core.mappingrules;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.FCM.Port;
+import org.eclipse.papyrus.FCM.util.IMappingRule;
+import org.eclipse.papyrus.FCM.util.MapUtil;
+import org.eclipse.papyrus.qompass.designer.core.Log;
+import org.eclipse.papyrus.qompass.designer.core.Utils;
+import org.eclipse.papyrus.uml.tools.utils.PackageUtil;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.DataType;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.PrimitiveType;
+import org.eclipse.uml2.uml.Signal;
+import org.eclipse.uml2.uml.Type;
+
+/**
+ * Will generate a suitable callable interface pulling consumer. The port is typed with a primitive type
+ * or data type. The generated interface has a "<Type> pull as well as a "boolean hasData()" operation).
+ */
+public class PullConsumer implements IMappingRule {
+
+ public static String PULL_I_PREFIX = "PullConsumer_"; //$NON-NLS-1$
+
+ public static String PULL_C_PREFIX = "CPullConsumer_"; //$NON-NLS-1$
+
+ public static String PULL_OP_NAME = "pull"; //$NON-NLS-1$
+
+ public static String HASDATA_OP_NAME = "hasData"; //$NON-NLS-1$
+
+ public static String RET_PAR_NAME = "ret"; //$NON-NLS-1$
+
+ public static String BOOL_QNAME = "corba::Boolean"; //$NON-NLS-1$
+
+ @Override
+ public boolean needsUpdate(Port p) {
+ Type type = p.getType();
+
+ if ((type instanceof PrimitiveType) || (type instanceof DataType) || (type instanceof Signal)) {
+
+ Interface derivedInterface = MapUtil.getDerivedInterface(p, PULL_I_PREFIX);
+ if (derivedInterface == null) {
+ return true;
+ }
+ Operation derivedOperation = derivedInterface.getOperation(PULL_OP_NAME, null, null);
+ if (derivedOperation == null) {
+ return true;
+ }
+ EList<Parameter> parameters = derivedOperation.getOwnedParameters();
+ if (parameters.size() != 1) {
+ return true;
+ } else {
+ Parameter parameter = parameters.get(0);
+ if (!parameter.getName().equals(RET_PAR_NAME)) {
+ return true;
+ }
+ if (parameter.getType() != type) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ public static PullConsumer getInstance() {
+ if (instance == null) {
+ instance = new PullConsumer();
+ }
+ return instance;
+ }
+
+ @Override
+ public Type calcDerivedType(Port p, boolean update) {
+ org.eclipse.uml2.uml.Port umlPort = p.getBase_Port();
+ Element owner = umlPort.getOwner();
+ String ownerStr = ""; //$NON-NLS-1$
+ if (owner instanceof NamedElement) {
+ ownerStr = " of class " + ((NamedElement) owner).getQualifiedName(); //$NON-NLS-1$
+ }
+ Log.log(IStatus.INFO, Log.CALC_PORTKIND,
+ p.getKind().getBase_Class().getName() + " => GetRequired on " + umlPort.getName() + ownerStr);
+ Type type = p.getType();
+
+ if ((type instanceof PrimitiveType) || (type instanceof DataType) || (type instanceof Signal)) {
+
+ Class derivedClass = MapUtil.getDerivedClass(p, PULL_C_PREFIX, update);
+ Interface derivedInterface = MapUtil.getDerivedInterface(p, PULL_I_PREFIX, update);
+ MapUtil.addUsage(derivedClass, derivedInterface);
+ if (!update) {
+ return derivedClass;
+ }
+ if (derivedInterface == null) {
+ return null;
+ }
+ // check whether operation already exists. Create, if not
+ Operation derivedOperationPull = derivedInterface.getOperation(PULL_OP_NAME, null, null);
+ if (derivedOperationPull == null) {
+ derivedOperationPull = derivedInterface.createOwnedOperation(PULL_OP_NAME, null, null, type);
+ }
+ EList<Parameter> parameters = derivedOperationPull.getOwnedParameters();
+ if (parameters.size() > 0) {
+ Parameter parameter = parameters.get(0);
+ if ((parameter.getName() == null) || (!parameter.getName().equals(RET_PAR_NAME))) {
+ parameter.setName(RET_PAR_NAME);
+ }
+ if (parameter.getType() != type) {
+ parameter.setType(type);
+ }
+ }
+ Package model = PackageUtil.getRootPackage(umlPort);
+ Element element = Utils.getQualifiedElement(model, BOOL_QNAME);
+ Type booleanType = null;
+ if (element instanceof Type) {
+ booleanType = (Type) element;
+ }
+
+ // check whether operation already exists. Create, if not
+ Operation derivedOperationHasData = derivedInterface.getOperation(HASDATA_OP_NAME, null, null);
+ if (derivedOperationHasData == null) {
+ derivedOperationHasData = derivedInterface.createOwnedOperation(HASDATA_OP_NAME, null, null, booleanType);
+ }
+
+ parameters = derivedOperationHasData.getOwnedParameters();
+ if (parameters.size() > 0) {
+ Parameter parameter = parameters.get(0);
+ if ((parameter.getName() == null) || (!parameter.getName().equals(RET_PAR_NAME))) {
+ parameter.setName(RET_PAR_NAME);
+ }
+ if ((booleanType != null) && (parameter.getType() != booleanType)) {
+ // added != null check
+ parameter.setType(booleanType);
+ }
+ }
+
+ return derivedClass;
+ } else {
+ return null;
+ }
+ }
+
+ protected static PullConsumer instance;
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/PushConsumer.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/PushConsumer.java
new file mode 100644
index 00000000000..f0375f8840e
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/PushConsumer.java
@@ -0,0 +1,110 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.modellibs.core.mappingrules;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.FCM.Port;
+import org.eclipse.papyrus.FCM.util.IMappingRule;
+import org.eclipse.papyrus.FCM.util.MapUtil;
+import org.eclipse.papyrus.qompass.designer.core.Log;
+import org.eclipse.uml2.uml.DataType;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.PrimitiveType;
+import org.eclipse.uml2.uml.Signal;
+import org.eclipse.uml2.uml.Type;
+
+/**
+ * Will generate a suitable called interface push consumer. The port is typed with a primitive type
+ * or data type. The generated interface has a "push (data <Type>)" operation ).
+ *
+ * The interface is identical to that of a PushProducer (and will be shared).
+ *
+ * @author ansgar
+ */
+public class PushConsumer implements IMappingRule {
+
+ public static String PUSH_OP_PREFIX = "push"; //$NON-NLS-1$
+
+ public static String PUSH_OP_PARNAME = "data"; //$NON-NLS-1$
+
+ @Override
+ public boolean needsUpdate(Port p) {
+ Type type = p.getBase_Port().getType();
+
+ if ((type instanceof PrimitiveType) || (type instanceof DataType) || (type instanceof Signal)) {
+
+ Interface derivedInterface = MapUtil.getDerivedInterface(p, PushProducer.PUSH_I_PREFIX);
+ if (derivedInterface == null) {
+ return true;
+ }
+
+ Operation derivedOperation = derivedInterface.getOperation(PUSH_OP_PREFIX, null, null);
+ if (derivedOperation == null) {
+ return true;
+ }
+ EList<Parameter> parameters = derivedOperation.getOwnedParameters();
+ if (parameters.size() != 1) {
+ return true;
+ } else {
+ Parameter parameter = parameters.get(0);
+ if (!parameter.getName().equals(PUSH_OP_PARNAME)) {
+ return true;
+ }
+ if (parameter.getType() != type) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public Type calcDerivedType(Port p, boolean update) {
+ Log.log(IStatus.INFO, Log.CALC_PORTKIND,
+ p.getKind().getBase_Class().getName() + " => GetProvided on " + p.getBase_Port().getName());
+ Type type = p.getType();
+
+ if ((type instanceof PrimitiveType) || (type instanceof DataType) || (type instanceof Signal)) {
+
+ Interface derivedInterface = MapUtil.getDerivedInterface(p, PushProducer.PUSH_I_PREFIX, update);
+ if (!update) {
+ return derivedInterface;
+ }
+ if (derivedInterface == null) {
+ // may happen, if within template (do not want creation of derived interfaces in template)
+ return null;
+ }
+
+ // check whether operation already exists. Create, if not
+ Operation derivedOperation = derivedInterface.getOperation(PUSH_OP_PREFIX, null, null);
+ if (derivedOperation == null) {
+ derivedOperation = derivedInterface.createOwnedOperation(PUSH_OP_PREFIX, null, null);
+ }
+ EList<Parameter> parameters = derivedOperation.getOwnedParameters();
+ if (parameters.size() == 0) {
+ derivedOperation.createOwnedParameter(PUSH_OP_PARNAME, type);
+ } else {
+ parameters.get(0).setName(PUSH_OP_PARNAME);
+ parameters.get(0).setType(type);
+ }
+ return derivedInterface;
+ } else {
+ return null;
+ }
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/PushProdPullCons.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/PushProdPullCons.java
new file mode 100644
index 00000000000..d719977a2db
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/PushProdPullCons.java
@@ -0,0 +1,75 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.modellibs.core.mappingrules;
+
+import org.eclipse.papyrus.FCM.Port;
+import org.eclipse.papyrus.FCM.util.IMappingRule;
+import org.eclipse.papyrus.FCM.util.MapUtil;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.DataType;
+import org.eclipse.uml2.uml.PrimitiveType;
+import org.eclipse.uml2.uml.Signal;
+import org.eclipse.uml2.uml.Type;
+
+/**
+ * Create a bidirectional port with a push producer and a pull consumer
+ * TODO: Objective is not clear
+ * Will generate a suitable callable interface pulling consumer. The port is typed with a primitive type
+ * or data type. The generated interface has a "<Type> pull as well as a "boolean hasData()" operation).
+ */
+public class PushProdPullCons implements IMappingRule {
+
+ @Override
+ public Type calcDerivedType(Port p, boolean update) {
+ Type type = p.getType();
+
+ if ((type instanceof PrimitiveType) || (type instanceof DataType) || (type instanceof Signal)) {
+
+ Class derivedClass = MapUtil.getDerivedClass(p, "PushProdPullcons", update);
+ if (!update) {
+ return derivedClass;
+ }
+
+ // obtain derived interface for other port kind (Caveat: some rules get the prefix from the
+ // name of the port kind attached to port "p" which would produce wrong results.
+ Type derivedInterfacePushProd = PushProducer.getInstance().calcDerivedType(p, update);
+ Type derivedInterfacePullCons = PullConsumer.getInstance().calcDerivedType(p, update);
+
+ /*
+ if (derivedInterface == null) {
+ return null;
+ }
+
+ if (!derivedInterface.getGenerals().contains(derivedInterfacePushProd)) {
+ derivedInterface.createGeneralization(derivedInterfacePushProd);
+ }
+ if (!derivedInterface.getGenerals().contains(derivedInterfacePullCons)) {
+ derivedInterface.createGeneralization(derivedInterfacePullCons);
+ }
+ return derivedInterface;
+ */
+ return null;
+ }
+ else {
+ return null;
+ }
+ }
+
+ @Override
+ public boolean needsUpdate(Port p) {
+ return PushProducer.getInstance().needsUpdate(p) ||
+ PullConsumer.getInstance().needsUpdate(p);
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/PushProducer.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/PushProducer.java
new file mode 100644
index 00000000000..e7933346b8f
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/PushProducer.java
@@ -0,0 +1,130 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.modellibs.core.mappingrules;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.FCM.Port;
+import org.eclipse.papyrus.FCM.util.IMappingRule;
+import org.eclipse.papyrus.FCM.util.MapUtil;
+import org.eclipse.papyrus.qompass.designer.core.Log;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.DataType;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.PrimitiveType;
+import org.eclipse.uml2.uml.Signal;
+import org.eclipse.uml2.uml.Type;
+
+/**
+ * Will generate a suitable callable interface push provider. The port is typed with a primitive type
+ * or data type. The generated interface has a "push (data <Type>)" operation
+ *
+ * The interface is identical to that of a PushConsumer (and will be shared).
+ *
+ * @author ansgar
+ */
+public class PushProducer implements IMappingRule {
+
+ public static String PUSH_I_PREFIX = "Push_"; //$NON-NLS-1$
+
+ public static String PUSH_C_PREFIX = "CPush_"; //$NON-NLS-1$
+
+ public static String PUSH_OP_NAME = "push"; //$NON-NLS-1$
+
+ public static String PUSH_OP_PARNAME = "data"; //$NON-NLS-1$
+
+ public static PushProducer getInstance() {
+ if (instance == null) {
+ instance = new PushProducer();
+ }
+ return instance;
+ }
+
+ @Override
+ public boolean needsUpdate(Port p) {
+ Type type = p.getBase_Port().getType();
+
+ if ((type instanceof PrimitiveType) || (type instanceof DataType) || (type instanceof Signal)) {
+
+ Interface derivedInterface = MapUtil.getDerivedInterface(p, PUSH_I_PREFIX);
+ if (derivedInterface == null) {
+ return true;
+ }
+
+ Operation derivedOperation = derivedInterface.getOperation(PUSH_OP_NAME, null, null);
+ if (derivedOperation == null) {
+ return true;
+ }
+ EList<Parameter> parameters = derivedOperation.getOwnedParameters();
+ if (parameters.size() != 1) {
+ return true;
+ } else {
+ Parameter parameter = parameters.get(0);
+ if (!parameter.getName().equals(PUSH_OP_PARNAME)) {
+ return true;
+ }
+ if (parameter.getType() != type) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public Type calcDerivedType(Port p, boolean update) {
+ Log.log(IStatus.INFO, Log.CALC_PORTKIND, p.getKind().getBase_Class().getName() + " => GetRequired on " + p.getBase_Port().getName());
+ Type type = p.getType();
+
+ if ((type instanceof PrimitiveType) || (type instanceof DataType) || (type instanceof Signal)) {
+
+ Interface derivedInterface = MapUtil.getDerivedInterface(p, PUSH_I_PREFIX, update);
+ Class derivedType = MapUtil.getDerivedClass(p, PUSH_C_PREFIX, update);
+ MapUtil.addUsage(derivedType, derivedInterface);
+ if (!update) {
+ return derivedType;
+ }
+ if (derivedInterface == null) {
+ // may happen, if within template (do not want creation of derived interfaces in template)
+ return null;
+ }
+
+ // check whether operation already exists. Create, if not
+ Operation derivedOperation = derivedInterface.getOperation(PUSH_OP_NAME, null, null);
+ if (derivedOperation == null) {
+ derivedOperation = derivedInterface.createOwnedOperation(PUSH_OP_NAME, null, null);
+ }
+ EList<Parameter> parameters = derivedOperation.getOwnedParameters();
+ if (parameters.size() == 0) {
+ derivedOperation.createOwnedParameter(PUSH_OP_PARNAME, type);
+ } else {
+ Parameter parameter = parameters.get(0);
+ if (!parameter.getName().equals(PUSH_OP_PARNAME)) {
+ parameter.setName(PUSH_OP_PARNAME);
+ }
+ if (parameter.getType() != type) {
+ parameter.setType(type);
+ }
+ }
+ return derivedType;
+ } else {
+ return null;
+ }
+ }
+
+ protected static PushProducer instance;
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/TemplatePort.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/TemplatePort.java
new file mode 100644
index 00000000000..62dce7e7709
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/TemplatePort.java
@@ -0,0 +1,183 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.modellibs.core.mappingrules;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.FCM.PortKind;
+import org.eclipse.papyrus.FCM.util.ITemplateMappingRule;
+import org.eclipse.papyrus.qompass.designer.core.Utils;
+import org.eclipse.papyrus.qompass.designer.core.templates.TemplateInstantiation;
+import org.eclipse.papyrus.qompass.designer.core.templates.TemplateUtils;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
+import org.eclipse.papyrus.qompass.designer.core.transformations.filters.FixTemplateSync;
+import org.eclipse.papyrus.qompass.modellibs.core.Activator;
+import org.eclipse.papyrus.uml.tools.utils.PackageUtil;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Namespace;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PackageableElement;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.TemplateBinding;
+import org.eclipse.uml2.uml.TemplateSignature;
+import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+
+/**
+ * An extended Port in the sense of the DDS4CCM standard: a port typed with a component
+ * type. Since the component typing the port can have multiple provided and required
+ * ports, the ports are implicitly owned by the port. Conjugation on the level of an extended
+ * port level will conjugate all ports of the component typing the port.
+ *
+ * The derived interface that is provided will concatenate provided port names within the
+ * extended port with the port name and provided a "big" interface.
+ * The derived interface that is required is identical, except for a conjugation on the
+ * extended port level.
+ *
+ * Creates a fixed template binding that binds T (of the extended Port) to the used data type
+ *
+ * Here, the idea is that the port type is a classifier, e.g. the data type that is
+ * transported by a DDS port. The port kind is the extended port, e.g. DDSWrite.
+ *
+ * The derived property isExtended of FCM port-kind is true, if the class representing the port-kind owns at least one
+ * port
+ *
+ * @author ansgar
+ *
+ */
+public class TemplatePort implements ITemplateMappingRule {
+
+ @Override
+ public Type calcDerivedType(org.eclipse.papyrus.FCM.Port p, boolean update) {
+ // TODO: unify template mapping rule and normal one.
+ return null;
+ }
+
+ @Override
+ public PortKind getBoundType(org.eclipse.papyrus.FCM.Port p)
+ {
+ Port port = p.getBase_Port();
+ Type type = port.getType();
+ if (!(type instanceof Classifier)) {
+ return null;
+ }
+ if (p.getKind() == null) {
+ return null;
+ }
+ Class extendedPort = p.getKind().getBase_Class();
+ TemplateSignature signature = TemplateUtils.getSignature(extendedPort.getNearestPackage());
+ Package pkgTemplate = signature.getNearestPackage();
+ if (pkgTemplate != null) {
+ EList<Namespace> path = TemplateUtils.relativePathWithMerge(extendedPort, pkgTemplate);
+
+ String name = pkgTemplate.getName() + "_" + type.getName(); //$NON-NLS-1$
+ Package model = PackageUtil.getRootPackage(port);
+ Package pkg = model.getNestedPackage(name);
+ if (pkg == null) {
+ model = Utils.getFirstLevel(port); // try whether package template exists here
+ // required for target model with additional "root" folder
+ pkg = model.getNestedPackage(name);
+ }
+ if (pkg != null) {
+ for (Namespace pathElem : path) {
+ pkg = pkg.getNestedPackage(pathElem.getName());
+ if (pkg == null) {
+ return null;
+ }
+ }
+ PackageableElement boundClass = pkg.getPackagedElement(extendedPort.getName());
+ if (boundClass != null) {
+ return UMLUtil.getStereotypeApplication(boundClass, PortKind.class);
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public void updateBinding(org.eclipse.papyrus.FCM.Port p) {
+ Port port = p.getBase_Port();
+ Type type = port.getType();
+ if (!(type instanceof Classifier)) {
+ return;
+ }
+ Class extendedPort = p.getKind().getBase_Class();
+
+ TemplateSignature signature = TemplateUtils.getSignature(extendedPort.getNearestPackage());
+ if (signature != null) {
+ Package model = PackageUtil.getRootPackage(port);
+ try {
+ TemplateBinding binding =
+ TemplateUtils.fixedBinding(model, extendedPort, (Classifier) type);
+ LazyCopier copy = new LazyCopier(model, model, false, true);
+ TemplateInstantiation ti = new TemplateInstantiation(copy, binding);
+ // remove listener synchronizing implementation, since it would add derived
+ // elements for the extended port itself (e.g. provided operations)
+ if (copy.postCopyListeners.contains(FixTemplateSync.getInstance())) {
+ copy.postCopyListeners.remove(FixTemplateSync.getInstance());
+ }
+
+ // create a bound element of the extended port. Add bound class to derived interface class
+ ti.bindElement(extendedPort);
+ } catch (TransformationException e) {
+ Activator.log.error("Could not create template binding", e);
+ }
+ }
+ }
+
+ @Override
+ public boolean needsUpdate(org.eclipse.papyrus.FCM.Port p) {
+ Port port = p.getBase_Port();
+ Type type = port.getType();
+ if (!(type instanceof Classifier)) {
+ return false;
+ }
+ if (p.getKind() == null) {
+ return false;
+ }
+ Class extendedPort = p.getKind().getBase_Class();
+ TemplateSignature signature = TemplateUtils.getSignature(extendedPort.getNearestPackage());
+ Package pkgTemplate = signature.getNearestPackage();
+ if (pkgTemplate != null) {
+ EList<Namespace> path = TemplateUtils.relativePathWithMerge(extendedPort, pkgTemplate);
+
+ String name = pkgTemplate.getName() + "_" + type.getName(); //$NON-NLS-1$
+ Package model = PackageUtil.getRootPackage(port);
+ Package pkg = model.getNestedPackage(name);
+ if (pkg == null) {
+ model = Utils.getFirstLevel(port); // try whether package template exists here
+ // required for target model with additional "root" folder
+ pkg = model.getNestedPackage(name);
+ }
+ if (pkg != null) {
+ for (Namespace pathElem : path) {
+ pkg = pkg.getNestedPackage(pathElem.getName());
+ if (pkg == null) {
+ return true;
+ }
+ }
+ PackageableElement boundClass = pkg.getPackagedElement(extendedPort.getName());
+ if (boundClass != null) {
+ if (UMLUtil.getStereotypeApplication(boundClass, PortKind.class) != null) {
+ return false;
+ }
+ }
+ }
+ }
+ return true;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/UseConjIntf.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/UseConjIntf.java
new file mode 100644
index 00000000000..cee9f055d01
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/UseConjIntf.java
@@ -0,0 +1,187 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.modellibs.core.mappingrules;
+
+import java.util.Iterator;
+
+import org.eclipse.papyrus.FCM.Port;
+import org.eclipse.papyrus.FCM.util.IMappingRule;
+import org.eclipse.papyrus.FCM.util.MapUtil;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.ParameterDirectionKind;
+import org.eclipse.uml2.uml.Type;
+
+/**
+ * Use a conjugated interface (!= conjugated port), i.e. an interface in which the roles "in" and "out"
+ * of each parameter of an operation are inversed. This transformation is useful in the context of transforming
+ * a "push" interface into a "pull" interface, i.e. instead of calling and providing values values to the
+ * called component via "in", the called components queries us and obtains these values as out parameters.
+ * TODO: This rules is currently not used, since data flow operation are currently either based on a datatype
+ * or a MARTE FlowPort
+ *
+ * @author ansgar
+ *
+ */
+public class UseConjIntf implements IMappingRule {
+
+ private static final String CONJ_INTF_TYPE = "ConjIntfType_"; //$NON-NLS-1$
+ private static final String CONJ_INTF = "ConjIntf_"; //$NON-NLS-1$
+
+ @Override
+ public Type calcDerivedType(Port p, boolean update) {
+ Type type = p.getBase_Port().getType();
+ if (!(type instanceof Interface)) {
+ return null;
+ }
+
+ Interface typingInterface = (Interface) type;
+ Interface derivedInterface = MapUtil.getDerivedInterface(p, CONJ_INTF, update);
+ Class derivedType = MapUtil.getDerivedClass(p, CONJ_INTF_TYPE, update);
+ if (!update) {
+ return derivedType;
+ }
+ if (derivedInterface == null) {
+ return null;
+ }
+ MapUtil.addUsage(derivedType, derivedInterface);
+ for (Operation operation : typingInterface.getOwnedOperations()) {
+ String name = operation.getName();
+
+ // check whether operation already exists. Create, if not
+ Operation derivedOperation = derivedInterface.getOperation(name, null, null);
+ if (derivedOperation == null) {
+ derivedOperation = derivedInterface.createOwnedOperation(name, null, null);
+ }
+
+ // TODO: move to Copy (factor code, ensure that these values are handled in case of model copies ...)
+ derivedOperation.setIsAbstract(operation.isAbstract());
+ derivedOperation.setIsStatic(operation.isStatic()); // (does not make sense for an interface, if true)
+ derivedOperation.setIsUnique(operation.isUnique());
+ derivedOperation.setIsQuery(operation.isQuery());
+
+ for (Parameter parameter : operation.getOwnedParameters()) {
+ String paramName = parameter.getName();
+ Type paramType = parameter.getType();
+ if (derivedOperation.getOwnedParameter(paramName, paramType) == null) {
+ Parameter newParameter =
+ derivedOperation.createOwnedParameter(parameter.getName(), parameter.getType());
+ ParameterDirectionKind direction = parameter.getDirection();
+ if (direction == ParameterDirectionKind.IN_LITERAL) {
+ newParameter.setDirection(ParameterDirectionKind.OUT_LITERAL);
+ }
+ else if (direction == ParameterDirectionKind.OUT_LITERAL) {
+ newParameter.setDirection(ParameterDirectionKind.IN_LITERAL);
+ }
+ else {
+ newParameter.setDirection(direction);
+ }
+ newParameter.setLower(parameter.getLower());
+ newParameter.setUpper(parameter.getUpper());
+ }
+ }
+ // remove those parameters that exist in derived, but not original interface.
+ Iterator<Parameter> derivedParameters = derivedOperation.getOwnedParameters().iterator();
+ while (derivedParameters.hasNext()) {
+ Parameter parameter = derivedParameters.next();
+ String paramName = parameter.getName();
+ Type paramType = parameter.getType();
+ if (operation.getOwnedParameter(paramName, paramType) == null) {
+ // not on in original interface, remove from derived as well
+ derivedParameters.remove();
+ }
+ }
+ }
+
+ // check whether operations in derived interface exist in original interface
+ // (remove, if not)
+ Iterator<Operation> derivedOperations = derivedInterface.getOwnedOperations().iterator();
+ while (derivedOperations.hasNext()) {
+ Operation derivedOperation = derivedOperations.next();
+ String name = derivedOperation.getName();
+ if (typingInterface.getOperation(name, null, null) == null) {
+ // not in typing interface, remove
+ if (derivedInterface.getOperations().remove(derivedOperation)) {
+ derivedOperations = derivedInterface.getOwnedOperations().iterator();
+ }
+ }
+ }
+ return derivedType;
+ }
+
+ @Override
+ public boolean needsUpdate(Port p) {
+ Type type = p.getType();
+ if (!(type instanceof Interface)) {
+ return false;
+ }
+
+ Interface typingInterface = (Interface) type;
+ Interface derivedInterface = MapUtil.getOrCreateDerivedInterface(p, CONJ_INTF);
+ Class derivedType = MapUtil.getOrCreateDerivedClass(p, CONJ_INTF_TYPE);
+ if ((derivedInterface == null) || (derivedType == null)) {
+ return true;
+ }
+ for (Operation operation : typingInterface.getOwnedOperations()) {
+ String name = operation.getName();
+
+ // check whether operation already exists. Create, if not
+ Operation derivedOperation = derivedInterface.getOperation(name, null, null);
+ if (derivedOperation == null) {
+ return true;
+ }
+
+ // TODO: move to Copy (factor code, ensure that these values are handled in case of model copies ...)
+ derivedOperation.setIsAbstract(operation.isAbstract());
+ derivedOperation.setIsStatic(operation.isStatic()); // (does not make sense for an interface, if true)
+ derivedOperation.setIsUnique(operation.isUnique());
+ derivedOperation.setIsQuery(operation.isQuery());
+
+ for (Parameter parameter : operation.getOwnedParameters()) {
+ String paramName = parameter.getName();
+ Type paramType = parameter.getType();
+ if (derivedOperation.getOwnedParameter(paramName, paramType) == null) {
+ return true;
+ }
+ }
+ // remove those parameters that exist in derived, but not original interface.
+ Iterator<Parameter> derivedParameters = derivedOperation.getOwnedParameters().iterator();
+ while (derivedParameters.hasNext()) {
+ Parameter parameter = derivedParameters.next();
+ String paramName = parameter.getName();
+ Type paramType = parameter.getType();
+ if (operation.getOwnedParameter(paramName, paramType) == null) {
+ // not on in original operation
+ return true;
+ }
+ }
+ }
+
+ // check whether operations in derived interface exist in original interface
+ // (remove, if not)
+ Iterator<Operation> derivedOperations = derivedInterface.getOwnedOperations().iterator();
+ while (derivedOperations.hasNext()) {
+ Operation derivedOperation = derivedOperations.next();
+ String name = derivedOperation.getName();
+ if (typingInterface.getOperation(name, null, null) == null) {
+ // not in typing interface
+ return true;
+ }
+ }
+ return false;
+ }
+} \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/UseInterface.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/UseInterface.java
new file mode 100644
index 00000000000..26af9111517
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/UseInterface.java
@@ -0,0 +1,42 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.modellibs.core.mappingrules;
+
+import org.eclipse.papyrus.FCM.Port;
+import org.eclipse.papyrus.FCM.util.IMappingRule;
+import org.eclipse.papyrus.FCM.util.MapUtil;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Type;
+
+
+public class UseInterface implements IMappingRule
+{
+ @Override
+ public Type calcDerivedType(Port p, boolean update) {
+ Type type = p.getType();
+ if (type instanceof Interface) {
+ Class useType = MapUtil.getDerivedClass(p, "Use_", update); //$NON-NLS-1$
+ MapUtil.addUsage(useType, (Interface) type);
+ return useType;
+ }
+ return null;
+ }
+
+ @Override
+ public boolean needsUpdate(Port p) {
+ return false;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/AMIPull.xtend b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/AMIPull.xtend
new file mode 100644
index 00000000000..d1e1fb28303
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/AMIPull.xtend
@@ -0,0 +1,34 @@
+package org.eclipse.papyrus.qompass.modellibs.core.xtend
+
+import org.eclipse.uml2.uml.Operation
+import static extension org.eclipse.papyrus.qompass.modellibs.core.xtend.Marshalling.*
+
+class AMIPull {
+ def operation_(Operation operation) '''
+ «IF operation.name.endsWith("Poll")»
+ // comment polling function
+ if (!resultArrived) {
+ // wait for result, condition will be fired upon arrival
+ TimeVal timeVal = TimeVal::current () + timeout;
+ m_cond.waitUpto (timeout);
+ }
+ «operation.unmarshall»
+ }
+ «IF operation.type != null»return retValue;«ENDIF»
+ «ELSE»
+ // TODO: need suitable constant dimensioning
+ pBuffer = &buffer[500]; // grows backwards
+ int operationID = ID_[operation.name/];
+
+ // now marshall in and inout parameters via ASN.1
+ «operation.marshall»
+ BEncAsnContent (&amp;pBuffer, &amp;operationID);
+
+ pthread_t pt;
+ pthread_create (&amp;pt, NULL, staticDispatch, (void *) this);
+ // TODO: add semaphore which assures that subsequent calls to [operation.name/] are not executed before dispatch
+ // has removed the parameters from the pBuffer stack (pBuffer can be corrupted).
+ // even worse: buffer will be deallocated even without a 2nd call!
+ «ENDIF»
+ '''
+} \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/AsyncCalls.xtend b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/AsyncCalls.xtend
new file mode 100644
index 00000000000..fa7cb846212
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/AsyncCalls.xtend
@@ -0,0 +1,57 @@
+package org.eclipse.papyrus.qompass.modellibs.core.xtend
+
+import org.eclipse.uml2.uml.Operation
+import org.eclipse.uml2.uml.Class
+import static extension org.eclipse.papyrus.qompass.modellibs.core.xtend.CppUtils.*
+import static extension org.eclipse.papyrus.qompass.modellibs.core.xtend.Marshalling.*
+
+class AsyncCalls {
+ def asyncCall(Operation operation) '''
+ // TODO: need suitable constant dimensioning
+ pBuffer = &buffer[500]; // grows backwards
+ «operation.marshall»
+ int operationID = ID_[operation.name/];
+ BEncAsnContent (&amp;pBuffer, &amp;operationID);
+
+ pthread_t pt;
+ pthread_create (&amp;pt, NULL, staticDispatch, (void *) this);
+ // TODO: add semaphore which assures that subsequent calls to «operation.name» are not executed before dispatch
+ // has removed the parameters from the pBuffer stack (pBuffer can be corrupted).
+ '''
+
+ def dispatch_(Class clazz) '''
+ int operationID;
+ BDecAsnContent (&pBuffer, operationID);
+ switch (operationID) {
+ «FOR operation : clazz.ownedOperations»
+ case ID_«operation.name»
+ {
+
+ // delegate call to executor
+ rconn->«operation.cppCall»;
+ break;
+ }
+ «ENDFOR»
+ }
+ '''
+
+ def dispatchWithThreadPool(Class clazz) '''
+ int operationID;
+ BDecAsnContent (&pBuffer, operationID);
+ switch (operationID) {
+ «FOR operation : clazz.ownedOperations»
+ case ID_«operation.name»
+ {
+ «operation.unmarshall»
+ // delegate call to executor
+ rconn->«operation.cppCall»;
+ «IF operation.type != null»«operation.type.cppType» ret = «ENDIF»rconn->«operation.cppCall»;
+ «operation.marshallOutInout»
+ resultsReady = 1;
+ break;
+ }
+ «ENDFOR»
+ }
+ }
+ '''
+} \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/BehaviorUtil.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/BehaviorUtil.java
new file mode 100644
index 00000000000..e815c2c332b
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/BehaviorUtil.java
@@ -0,0 +1,111 @@
+package org.eclipse.papyrus.qompass.modellibs.core.xtend;
+
+import org.eclipse.uml2.uml.Behavior;
+import org.eclipse.uml2.uml.BehavioredClassifier;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Constraint;
+import org.eclipse.uml2.uml.OpaqueBehavior;
+import org.eclipse.uml2.uml.OpaqueExpression;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.ParameterDirectionKind;
+import org.eclipse.uml2.uml.Transition;
+import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.UMLPackage;
+
+public class BehaviorUtil {
+ private static final String DEFAULT_LANGUAGE = "C++"; //$NON-NLS-1$
+
+ public static void set(Behavior behavior, String selectLanguage, String textblock) {
+ if (behavior instanceof OpaqueBehavior) {
+ OpaqueBehavior ob = (OpaqueBehavior) behavior;
+ if (ob.getLanguages().size() == 0) {
+ ob.getLanguages().add(DEFAULT_LANGUAGE);
+ ob.getBodies().add(textblock);
+ }
+ else {
+ int i = 0;
+ for (String language : ob.getLanguages()) {
+ if (selectLanguage.equals(language)) {
+ if (i < ob.getBodies().size()) {
+ ob.getBodies().set(i, textblock);
+ }
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ public static void set(Behavior behavior, String textblock) {
+ set(behavior, DEFAULT_LANGUAGE, textblock);
+ }
+
+ public static OpaqueBehavior createOpaqueBehavior(BehavioredClassifier clazz, Operation operation) {
+ OpaqueBehavior ob = (OpaqueBehavior)
+ clazz.createOwnedBehavior(operation.getName(), UMLPackage.eINSTANCE.getOpaqueBehavior());
+ ob.setSpecification(operation);
+ return ob;
+ }
+
+ public static OpaqueBehavior createOpaqueEffect(Transition transition) {
+ OpaqueBehavior ob = (OpaqueBehavior)
+ transition.createEffect("", UMLPackage.eINSTANCE.getOpaqueBehavior()); //$NON-NLS-1$
+ return ob;
+ }
+
+ public static OpaqueExpression createOpaqueExpression(Constraint constraint, String guardCode) {
+ OpaqueExpression oe = (OpaqueExpression)
+ constraint.createSpecification("", null, UMLPackage.eINSTANCE.getOpaqueExpression()); //$NON-NLS-1$
+ oe.getLanguages().add(DEFAULT_LANGUAGE);
+ oe.getBodies().add(guardCode);
+ return oe;
+ }
+
+ public static String body(Constraint constraint) {
+ if (constraint.getSpecification() instanceof OpaqueExpression) {
+ OpaqueExpression oe = (OpaqueExpression) constraint.getSpecification();
+ if (oe.getBodies().size() > 0) {
+ return oe.getBodies().get(0);
+ }
+ }
+ return constraint.getSpecification().stringValue();
+ }
+
+ /**
+ * Create an operation with an operation return type
+ *
+ * @param clazz
+ * @param name
+ * @param retType
+ * @return
+ */
+ public static Operation createOperation(Class clazz, String name, Type retType) {
+ Operation operation = clazz.createOwnedOperation(name, null, null);
+ if (retType != null) {
+ Parameter parameter = operation.createOwnedParameter("ret", retType); //$NON-NLS-1$
+ parameter.setDirection(ParameterDirectionKind.RETURN_LITERAL);
+ }
+ return operation;
+ }
+
+ public static String body(Behavior behavior) {
+ return body(behavior, DEFAULT_LANGUAGE);
+ }
+
+ public static String body(Behavior behavior, String selectLanguage) {
+ if (behavior instanceof OpaqueBehavior) {
+ OpaqueBehavior ob = (OpaqueBehavior) behavior;
+ int i = 0;
+ for (String language : ob.getLanguages()) {
+ if (selectLanguage.equals(language)) {
+ if (i < ob.getBodies().size()) {
+ return ob.getBodies().get(i);
+ }
+ break;
+ }
+ }
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/CppUtils.xtend b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/CppUtils.xtend
new file mode 100644
index 00000000000..fb028cc5f16
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/CppUtils.xtend
@@ -0,0 +1,81 @@
+package org.eclipse.papyrus.qompass.modellibs.core.xtend
+
+import org.eclipse.papyrus.qompass.designer.core.UMLTool
+import org.eclipse.uml2.uml.NamedElement
+import org.eclipse.uml2.uml.Operation
+import org.eclipse.uml2.uml.Parameter
+import org.eclipse.uml2.uml.ParameterDirectionKind
+import org.eclipse.uml2.uml.Type
+
+class CppUtils {
+
+ /**
+ * create the C++ signature for an operation (including parenthesis)
+ */
+ public static def cppSignature(Operation operation) '''
+ «operation.name»(«FOR parameter : operation.ownedParameters SEPARATOR(', ')»
+ «parameter.cppParameter»
+ «ENDFOR»
+ '''
+
+
+ /**
+ * make a C++ call, pass all parameters except the return parameter
+ */
+ public static def cppCall(Operation operation) '''
+ «operation.name»(«FOR parameter : UMLTool.parametersNonRet(operation) SEPARATOR(', ')»
+ «parameter.name»
+ «ENDFOR»)
+ '''
+
+ /**
+ * make a C++ call, pass all parameters except the return parameter, prefix with "return",
+ * if there is a return type in the operations declaration
+ */
+ public static def returnCppCall(Operation operation) '''
+ «IF (operation.type != null)»return «ENDIF»«operation.cppCall»
+ '''
+
+ public static def cppParameter(Parameter parameter) '''
+ «parameter.type»«IF (parameter.direction == ParameterDirectionKind.OUT)»_out«ENDIF» «parameter.name»
+ '''
+
+ public static def cppType(Type type) '''
+ «IF (type.qualifiedName == 'UMLPrimitiveTypes::Boolean')»
+ bool
+ «ELSEIF (type.qualifiedName == 'UMLPrimitiveTypes::Integer')»
+ int
+ «ELSE»
+ «UMLTool.dereferenceTypedef(type)»
+ «ENDIF»
+ '''
+
+
+ public static def cppRetType(Operation operation) '''
+ «IF (operation.type == null)»
+ void
+ «ELSE»
+ «operation.type.cppType»
+ «ENDIF»
+ '''
+
+ /**
+ * Open a set of C++ namespaces associated with the packages of of the passed named element
+ * TODO: use indentTab? => requires making this script recursive
+ * Need to include referenced types (assuming a naming convention?
+ */
+ public static def openNamespace(NamedElement namedElement) '''
+ «FOR ns : UMLTool.usedNamespaces(namedElement).reverse»
+ namespace «ns.name»
+ «ENDFOR»
+ '''
+
+ /**
+ * Close a set of C++ namespaces associated with the packages of of the passed named element
+ */
+ public static def closeNamespace(NamedElement namedElement) '''
+ «FOR ns : UMLTool.usedNamespaces(namedElement)»
+ }; // of namespace [ns.name/]
+ «ENDFOR»
+ '''
+} \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/FIFO.xtend b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/FIFO.xtend
new file mode 100644
index 00000000000..59440deec7b
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/FIFO.xtend
@@ -0,0 +1,13 @@
+package org.eclipse.papyrus.qompass.modellibs.core.xtend
+
+import org.eclipse.uml2.uml.DataType
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationContext
+
+class FIFO {
+ def activate(DataType datatype) '''
+ if (m_size == 0) {
+ cerr << "Warning: size of FIFO is not properly configured (size = 0)" << endl;
+ }
+ m_fifo = new «TransformationContext.pkgTemplateParameter("T")»[m_size];
+ '''
+} \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/GlobalConstants.xtend b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/GlobalConstants.xtend
new file mode 100644
index 00000000000..b2a19cce408
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/GlobalConstants.xtend
@@ -0,0 +1,56 @@
+/*******************************************************************************
+* Copyright (c) 2014 Zeligsoft (2009) Limited and others.
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+*******************************************************************************/
+
+package org.eclipse.papyrus.qompass.modellibs.core.xtend
+
+class GlobalConstants {
+ public static val QUAL_NAME_SEP = "."
+ public static val FUNC_NAME_QUAL_NAME_SEP = "__"
+ public static val FUNC_NAME_PART_SEP = "____"
+ public static val INJECT_FUNC_NAME = "inject"
+ public static val INITIALIZE_FUNC_NAME = "initialize"
+ public static val STATE_FUNC_PREFIX = "state_"
+ public static val JUNCTION_FUNC_PREFIX = "junction_"
+ public static val CHOICE_FUNC_PREFIX = "choice_"
+ public static val ACTION_CHAIN_FUNC_PREFIX = "actionchain_"
+ public static val ACTION_FUNC_PREFIX = "action_"
+ public static val GUARD_FUNC_PREFIX = "guard_"
+ public static val USER_ACTION_FUNC_PREFIX = "useraction_"
+ public static val USER_GUARD_FUNC_PREFIX = "userguard_"
+ public static val EXIT_ACTION_FUNC_PREFIX = "exitaction_"
+ public static val ENTRY_ACTION_FUNC_PREFIX = "entryaction_"
+ public static val TRANS_ACTION_FUNC_PREFIX = "transitionaction_"
+ public static val SAVE_HISTORY_FUNC_NAME = "save_history"
+ public static val CHECK_HISTORY_FUNC_NAME = "check_history"
+ public static val CHECK_HISTORY_FUNC_PREFIX = "checkhistory_"
+ public static val CURRENT_STATE_FIELD_NAME = "currentState"
+ public static val HISTORY_TABLE_NAME = "history"
+ public static val UNDEFINED = "SPECIAL_INTERNAL_STATE_UNDEFINED"
+ public static val UNVISITED = "SPECIAL_INTERNAL_STATE_UNVISITED"
+ public static val STATE_TYPE_NAME = "State"
+ public static val PORT_TYPE_NAME = "Port"
+ public static val SIGNAL_TYPE_NAME = "Signal"
+ public static val INJECT_FUNC_PARAM = "msg"
+ public static val INITIALIZE_FUNC_PARAM = "msg"
+ public static val STATE_FUNC_PARAM = "msg"
+ public static val JUNC_FUNC_PARAM = "msg"
+ public static val CHOICE_FUNC_PARAM = "msg"
+ public static val CHAIN_FUNC_PARAM = "msg"
+ public static val ACTION_FUNC_PARAM = "msg"
+ public static val ACTION_DATA_VARIABLE = "rtdata"
+ public static val EMPTY_ACTION_COMMENT = "// (Automatically generated stub for an empty action)"
+ public static val MISSING_CODE_COMMENT = "// (No C++ code found for this action)"
+ public static val MISSING_CONSTRAINT_BODY = "false"
+ public static val FRESH_NAME_PREFIX = "new_"
+ public static val FRESH_ENTRYPOINT_NAME_PREFIX = "new_entrypoint_"
+ public static val FRESH_EXITPOINT_NAME_PREFIX = "new_exitpoint_"
+ public static val FRESH_CHOICEPOINT_NAME_PREFIX = "new_choice_"
+ public static val FRESH_JUNCTIONPOINT_NAME_PREFIX = "new_junction_"
+ public static var FRESH_TRANSITION_NAME_PREFIX = "new_transition_"
+
+} \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/Marshalling.xtend b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/Marshalling.xtend
new file mode 100644
index 00000000000..02d93031b6a
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/Marshalling.xtend
@@ -0,0 +1,51 @@
+package org.eclipse.papyrus.qompass.modellibs.core.xtend
+
+import org.eclipse.uml2.uml.Operation
+import static extension org.eclipse.papyrus.qompass.designer.core.UMLTool.*
+import static extension org.eclipse.papyrus.qompass.modellibs.core.xtend.CppUtils.cppType
+import org.eclipse.uml2.uml.Parameter
+
+class Marshalling {
+ def static marshall(Operation operation) '''
+ // now marshall in and inout parameters via ASN.1
+ «FOR parameter : operation.parametersInInout»
+ «parameter.marshall»
+ «ENDFOR»
+ '''
+
+ def static marshallOutInout(Operation operation) '''
+ // now marshall out and inout parameters via ASN.1
+ «FOR parameter : operation.parametersOutInout»
+ «parameter.marshall»
+ «ENDFOR»
+ '''
+
+ def static marshall(Parameter parameter) '''
+ {
+ «parameter.type.cppType» varName_ASN = «parameter.name»;
+ BEncAsnContent (&pBuffer, &varName_ASN);
+ }
+ '''
+
+ def static unmarshall(Operation operation) '''
+ «FOR parameter : operation.parametersInInout.reverse»
+ «parameter.unmarshall»
+ «ENDFOR»
+ '''
+
+ def static unmarshallOutInout(Operation operation) '''
+ «FOR parameter : operation.parametersOutInout.reverse»
+ «parameter.unmarshall»
+ «ENDFOR»
+ '''
+
+ def static unmarshall(Parameter parameter) '''
+ «parameter.type.cppType» «parameter.name»
+ {
+ «parameter.type.cppType» varName_ASN;
+ BDecAsnContent (&pBuffer, &varName_ASN);
+ «parameter.name» = varName_ASN;
+ }
+ '''
+
+} \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/MultipleReceptacle.xtend b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/MultipleReceptacle.xtend
new file mode 100644
index 00000000000..0f73ff273e2
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/MultipleReceptacle.xtend
@@ -0,0 +1,14 @@
+package org.eclipse.papyrus.qompass.modellibs.core.xtend
+
+import org.eclipse.uml2.uml.Operation
+import static extension org.eclipse.papyrus.qompass.modellibs.core.xtend.CppUtils.cppCall
+
+class MultipleReceptacle {
+ def operation_(Operation operation) '''
+ for (int i=0; i&lt;9; i++) {
+ if (rconn[i] != 0) {
+ rconn[i]->«operation.cppCall»;
+ }
+ }
+ '''
+} \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/StateMachineGen.xtend b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/StateMachineGen.xtend
new file mode 100644
index 00000000000..310526b1998
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/StateMachineGen.xtend
@@ -0,0 +1,412 @@
+package org.eclipse.papyrus.qompass.modellibs.core.xtend
+
+import org.eclipse.emf.common.util.BasicEList
+import org.eclipse.emf.common.util.EList
+import org.eclipse.emf.ecore.util.EcoreUtil
+import org.eclipse.papyrus.C_Cpp.Ptr
+import org.eclipse.papyrus.FCM.DerivedElement
+import org.eclipse.papyrus.qompass.designer.core.StUtils
+import org.eclipse.papyrus.qompass.designer.core.Utils
+import org.eclipse.papyrus.qompass.designer.core.UMLTool
+import org.eclipse.papyrus.qompass.designer.core.extensions.IXtend
+import org.eclipse.papyrus.qompass.designer.core.sync.InterfaceSync
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationContext
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil
+import org.eclipse.uml2.uml.Behavior
+import org.eclipse.uml2.uml.BehavioredClassifier
+import org.eclipse.uml2.uml.CallEvent
+import org.eclipse.uml2.uml.Class
+import org.eclipse.uml2.uml.OpaqueExpression
+import org.eclipse.uml2.uml.Operation
+import org.eclipse.uml2.uml.Pseudostate
+import org.eclipse.uml2.uml.PseudostateKind
+import org.eclipse.uml2.uml.Reception
+import org.eclipse.uml2.uml.Signal
+import org.eclipse.uml2.uml.SignalEvent
+import org.eclipse.uml2.uml.State
+import org.eclipse.uml2.uml.StateMachine
+import org.eclipse.uml2.uml.TimeEvent
+import org.eclipse.uml2.uml.Transition
+import org.eclipse.uml2.uml.Trigger
+import org.eclipse.uml2.uml.Type
+import org.eclipse.uml2.uml.ValueSpecification
+import org.eclipse.uml2.uml.Vertex
+import org.eclipse.uml2.uml.util.UMLUtil
+
+import static org.eclipse.papyrus.qompass.designer.core.EnumService.*
+import static org.eclipse.papyrus.qompass.designer.vsl.ParseVSL.*
+
+import static extension org.eclipse.papyrus.qompass.designer.core.UMLTool.*
+import static extension org.eclipse.papyrus.qompass.modellibs.core.xtend.BehaviorUtil.*
+import static extension org.eclipse.papyrus.qompass.modellibs.core.xtend.CppUtils.cppCall
+import static extension org.eclipse.papyrus.qompass.modellibs.core.xtend.StateMachineUtil.*
+import org.eclipse.papyrus.uml.tools.utils.PackageUtil
+import org.eclipse.uml2.uml.UMLPackage
+import org.eclipse.uml2.uml.Enumeration
+
+class StateMachineGen implements IXtend {
+
+ Class clazz
+
+ boolean ooPattern = true;
+
+ def getStateMachine(Class clazz) {
+ // organized in a loop. But effectively supports single state machine
+ for (smBehavior : (clazz as BehavioredClassifier).ownedBehaviors.filter[it instanceof StateMachine]) {
+ return smBehavior as StateMachine
+ }
+ return null
+ }
+
+ def activate(Class clazz) {
+ val sm = clazz.stateMachine
+ val flattener = new UMLFlattener
+ flattener.transform(sm)
+ activate(clazz, sm)
+ }
+
+ def activate(Class clazz, StateMachine sm) '''
+ m_currentState = STATE_«sm.region.initialState.name»;
+#ifdef SM_VERBOSE
+ cout << "SM «clazz.name»: in state «sm.region.initialState.name»" << endl;
+#endif
+ for (;;) {
+ processEvents();
+ }
+ '''
+
+ def processEvents(Class clazz) {
+ val sm = clazz.stateMachine
+ // - Option to put processElements into original class (but, would need to copy dependencies & attributes)
+ // create new operation in class owning the state machine.
+ // val operation = clazz.createOperation("processEvents", null)
+ // val ob = clazz.createOpaqueBehavior(operation)
+ // ob.set(clazz.processEventsSM(sm).toString)
+ // return "executor->processEvents();"
+ this.clazz = clazz
+ return clazz.processEventsSM(sm)
+ }
+
+ def eventInterceptor(Operation operation) '''
+ «/*TODO: need better way to detect signal*/»
+ «operation.eventInterceptorCommon»
+ event.portID = portID;
+ out->writeEvent(event);
+
+ «IF (operation.type != null)»return «ENDIF»rconn->«operation.cppCall»;
+ '''
+
+ /**
+ * OO variant of event interceptor. Adds call event to pool and
+ * then calls the original method (handled by LW container)
+ */
+ def eventInterceptorOO(Operation operation) '''
+ «operation.eventInterceptorCommon»
+ '''
+
+ def eventInterceptorCommon(Operation operation) '''
+ «val derivedElement = UMLUtil.getStereotypeApplication(operation, DerivedElement)»
+ «IF (derivedElement != null) && (derivedElement.source instanceof Reception)»
+ «val signal = (derivedElement.source as Reception).signal»
+ // create event with global signal ID
+ core::ContainerServices::CallEvent_ event;
+ event.operationID = «literal(SIGNAL_ENUM, operation.name)»;
+ // map signal into value-buffer and copy attributes
+ ::«signal.qualifiedName» * signal = (::«signal.qualifiedName» *) &event.params;
+ «FOR attribute : signal.ownedAttributes»
+ signal->«attribute.name» = «attribute.name»;
+ «ENDFOR»
+ «PackageUtil.getRootPackage(operation).declareDependencyToSignalIDs»
+ «UMLTool.declareDependency(TransformationContext.classifier, signal)»
+ «ELSE»
+ // create event with operationID/portID and pass call
+ core::ContainerServices::CallEvent_ event;
+ «IF ooPattern»
+ event.operationID = OP_ID_«operation.name»;
+ «ELSE»
+ event.operationID = ID_«operation.name»;
+ «ENDIF»
+ «ENDIF»
+ '''
+
+ def processEventsSM(BehavioredClassifier clazz, StateMachine sm) '''
+ // processEvents body - generated by Qompass
+ //
+ // supports ports «FOR port : (clazz as Class).ownedPorts» «literal('PortEnum_'+clazz.name, 'port_'+clazz.name+'_'+port.name)»«ENDFOR»
+
+ core::ContainerServices::CallEvent_ event;
+ int timeout;
+ int newState;
+ bool needsTrigger;
+
+ switch(m_currentState) {
+ «FOR state : sm.region.subvertices»
+ case «literal('LStateIDs_'+clazz.name, 'STATE_'+state.name)»:
+ // -------- treatment of accepted events
+ «state.acceptableEvents»
+ break;
+ «ENDFOR»
+ default:
+ OSAL_ERROR ("Inconsistent state");
+ break;
+ }
+ if (animOut != 0) {
+ animOut->enterState(newState, «clazz.fragment»);
+ }
+ '''
+
+ /*
+ * Pass the actual to which the port is bound. In case of a CallEvent, pass the implemented interface
+ * (Not the class to which the state machine is bound). This is useful in the context of components
+ * whose ports implement an interface
+ */
+ def cetrigger(Operation operation) {
+ val intf = operation.implementsInterface
+ if (intf != null) {
+ val packageRef = intf.boundPackageRef
+ // declare dependency to OperationIDs enumeration
+ packageRef.declareDependencyToOperationIDs
+ '''«packageRef.qualifiedName»::ID_«operation.name»'''
+ }
+ else {
+ // create operationIDs literal
+ literal("LOperationIDs", '''OP_ID_«operation.name»''')
+ }
+ }
+
+ // Use service for global enumerations
+ def setrigger(Trigger trigger) {
+ val se = trigger.event as SignalEvent
+ literal(SIGNAL_ENUM, InterfaceSync.SIG_PREFIX + se.signal.name)
+ }
+
+ /**
+ * create code for acceptable events
+ *
+ * big restriction: will only analyse first of possibly multiple triggers
+ */
+ def acceptableEvents(Vertex state) '''
+ // loop on state
+ // execute action ...
+ timeout = -1; // no timeout by default
+ «FOR transition : state.outgoings»
+ «IF transition.triggers.size > 0»
+ «val trigger = transition.triggers.get(0)»
+ «IF (trigger.event instanceof TimeEvent)»
+ «val timeEvent = trigger.event as TimeEvent»
+ // transition «transition.name» - trigger: TimeEvent, expression «(timeEvent.when.expr as OpaqueExpression).bodies.get(0)».
+ timeout = «getDurationFromVSL((timeEvent.when.expr as OpaqueExpression).bodies.get(0))»/1000;
+ «ENDIF»
+ «ENDIF»
+ «ENDFOR»
+
+ «IF ((state instanceof State) && (state as State).entry != null)»
+ // execute entry action
+ executor->«(state as State).entry.name»();
+ «ENDIF»
+
+ needsTrigger = true;
+
+ «IF hasTransitionWithoutTrigger(state)»
+ «FOR transition : state.outgoings»
+ «IF transition.triggers.size == 0»
+ «IF transition.guard != null»
+ «transition.guard.specification.createGuardFct(null)»
+ if (executor->«transition.guard.specification.name»()) {
+ «ENDIF»
+ newState = STATE_«transition.target.name»;
+#ifdef SM_VERBOSE
+ cout << "SM «clazz.name»: transition to state «transition.target.name»" << endl;
+#endif
+ «IF (transition.effect != null)»
+ executor->«effectName(transition)»();
+ «ENDIF»
+ needsTrigger = false;
+ «IF transition.guard != null»
+ }
+ «ENDIF»
+ «ENDIF»
+ «ENDFOR»
+ «ENDIF»
+
+ if (needsTrigger) {
+ // get an event from the pool.
+ «IF ooPattern»
+ event = eventPool.readEvent(timeout);
+ «ELSE»
+ event = ep->readEvent(timeout);
+ «ENDIF»
+ }
+ else {
+ event.operationID = -1;
+ }
+
+ «val allOutgoings = state.outgoings»
+ «FOR transition : allOutgoings»
+ «IF transition.triggers.size > 0»
+ // has «transition.triggers.size» outgoing transitions
+ «val trigger = transition.triggers.get(0)»
+ «IF (trigger.event instanceof TimeEvent)»
+ // transition «transition.name» - trigger: TimeEvent (there should be at most one outgoing timed transition per state).
+ if (event.operationID == core::ContainerServices::EventPool::ID_TIMEOUT) {
+ «IF transition.guard != null»
+ «transition.guard.specification.createGuardFct(null)»
+ if (executor->«transition.guard.specification.name»()) {
+ «ENDIF»
+ newState = STATE_«transition.target.name»;
+#ifdef SM_VERBOSE
+ cout << "SM «clazz.name»: transition to state «transition.target.name»" << endl;
+#endif
+ «IF (transition.effect != null)»
+ executor->«effectName(transition)»();
+ «ENDIF»
+ «IF transition.guard != null»
+ }
+ «ENDIF»
+ }
+ «ENDIF»
+ «IF (trigger.event instanceof CallEvent)»
+ // transition «trigger.name» - trigger: CallEvent («trigger.event.name»), operation «(trigger.event as CallEvent).operation.name»
+ if (event.operationID == «cetrigger((trigger.event as CallEvent).operation)») {
+ newState = STATE_«transition.target.name»;
+#ifdef SM_VERBOSE
+ cout << "SM «clazz.name»: transition to state «transition.target.name»" << endl;
+#endif
+ «IF (transition.effect != null)»
+ executor->«effectName(transition)»();
+ «ENDIF»
+ }
+ «ENDIF»
+ «IF (trigger.event instanceof SignalEvent)»
+ «val signalEvent = trigger.event as SignalEvent»
+ // transition «trigger.name» - trigger: SignalEvent («signalEvent.name»), signal «signalEvent.signal.name»
+ if (event.operationID == «setrigger(trigger)») {
+ «IF (transition.effect != null) || (transition.guard != null)»
+ // map signal to parameter section
+ ::«signalEvent.signal.qualifiedName» * signal = (::«signalEvent.signal.qualifiedName» *) &event.params;
+ «ENDIF»
+ «IF transition.guard != null»
+ «transition.guard.specification.createGuardFct(signalEvent)»
+ if (executor->«transition.guard.specification.name»(signal)) {
+ «ENDIF»
+ newState = STATE_«transition.target.name»;
+#ifdef SM_VERBOSE
+ cout << "SM «clazz.name»: transition to state «transition.target.name» (due to signal «signalEvent.signal.name»)" << endl;
+#endif
+ «IF (transition.effect != null)»
+ «transition.effect.addSignalParameter(signalEvent.signal)»
+ executor->«effectName(transition)»(«IF signalEvent.signal.attributes.size > 0»signal«ENDIF»);
+ «ENDIF»
+ // ok = EvQUEUE ;
+ «IF transition.guard != null»
+ }
+ «ENDIF»
+ }
+ «ENDIF»
+ «ENDIF»
+ «ENDFOR»
+
+ if (newState != m_currentState) {
+ m_currentState = newState;
+ «IF ((state instanceof State) && (state as State).exit != null)»
+ // execute exit action
+ executor->«(state as State).exit.name»();
+ «ENDIF»
+
+
+ }
+ '''
+
+ def boolean hasTransitionWithoutTrigger(Vertex state) {
+ for (transition : state.outgoings) {
+ if (transition.triggers.size == 0) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ def EList<Transition> calculateTransitions(Vertex state) {
+ val allOutgoings = new BasicEList<Transition>
+ allOutgoings.addAll(state.outgoings)
+ for (transition : state.outgoings) {
+ if (transition.target instanceof Pseudostate) {
+ val ps = transition.target as Pseudostate
+ if (ps.kind == PseudostateKind.JUNCTION_LITERAL) {
+ allOutgoings.addAll(ps.outgoings.clone)
+ }
+ }
+ }
+ return allOutgoings
+ }
+
+ /**
+ * Effects are moved from behaviors embedded into transitions towards behaviors of the class. Calculate the name of these
+ * effects. The class FilterStateMachines moves the effects (TODO: single name calculation)
+ */
+ def effectName(Transition transition) {
+ // transition.containingStateMachine.name + "_" + transition.effect.name
+ if (transition.effect.name == null) {
+ throw new TransformationException(
+ String.format("effect of transition has no name (in SM %s)", transition.containingStateMachine.name))
+ }
+ transition.effect.name
+ }
+
+ def void addSignalParameter(Behavior behavior, Signal signal) {
+ if (behavior.ownedParameters.size == 0) {
+ val parameter = behavior.createOwnedParameter("signal", signal)
+ StereotypeUtil.apply(parameter, Ptr)
+ }
+ }
+
+ def void moveBehavior(String newName, Class tmClass, Behavior effect) {
+ val copiedEffect = EcoreUtil.copy(effect)
+ if (tmClass.getOwnedOperation(newName, null, null) != null) {
+ // has already been added
+ return;
+ }
+ val operation = tmClass.createOwnedOperation(newName, null, null);
+ for (parameter : effect.getOwnedParameters()) {
+ val newParameter = EcoreUtil.copy(parameter);
+ operation.getOwnedParameters().add(newParameter);
+ StUtils.copyStereotypes(parameter, newParameter);
+ }
+ copiedEffect.setSpecification(operation);
+ copiedEffect.setName(newName);
+ tmClass.getOwnedBehaviors().add(copiedEffect);
+ }
+
+ static final String CLIB_BOOL = "AnsiCLibrary::bool"
+
+ def void createGuardFct(ValueSpecification specification, SignalEvent event) {
+ val name = specification.getName()
+
+ if (clazz.getOwnedBehavior(name) != null) {
+ return
+ }
+ var booleanNamedElement = Utils.getQualifiedElement(TransformationContext.sourceRoot, CLIB_BOOL);
+
+ if (booleanNamedElement instanceof Type) {
+ val booleanType = TransformationContext.copier.getCopy(booleanNamedElement) as Type
+ val operation = clazz.createOperation(name, booleanType as Type)
+ if (event != null) {
+ val sigParam = operation.createOwnedParameter("signal", event.signal)
+ StereotypeUtil.apply(sigParam, Ptr)
+ }
+ val ob = clazz.createOpaqueBehavior(operation)
+ if (specification instanceof OpaqueExpression) {
+ ob.getLanguages().addAll(specification.getLanguages());
+ for (String body : specification.getBodies()) {
+ ob.getBodies().add("return " + body + ";");
+ }
+ }
+ }
+ else {
+ System.out.println("was");
+ }
+ // if (tmClass.getOwnedOperation(newName, null, null) != null) {
+ // copiedEffect.setSpecification(operation);
+ }
+} \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/StateMachineUtil.java b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/StateMachineUtil.java
new file mode 100644
index 00000000000..d33d2a0c9fb
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/StateMachineUtil.java
@@ -0,0 +1,260 @@
+package org.eclipse.papyrus.qompass.modellibs.core.xtend;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.qompass.designer.core.UMLTool;
+import org.eclipse.papyrus.qompass.designer.core.Utils;
+import org.eclipse.papyrus.qompass.designer.core.templates.TemplateUtils;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationContext;
+import org.eclipse.papyrus.uml.tools.utils.PackageUtil;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PackageableElement;
+import org.eclipse.uml2.uml.Pseudostate;
+import org.eclipse.uml2.uml.PseudostateKind;
+import org.eclipse.uml2.uml.Region;
+import org.eclipse.uml2.uml.State;
+import org.eclipse.uml2.uml.StateMachine;
+import org.eclipse.uml2.uml.TemplateBinding;
+import org.eclipse.uml2.uml.Transition;
+import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.Vertex;
+
+
+public class StateMachineUtil {
+ public static Region region(State state) {
+ EList<Region> regions = state.getRegions();
+ if (regions.size() > 0) {
+ return regions.get(0);
+ }
+ return null;
+ }
+
+ public static Region region(StateMachine stateMachine) {
+ EList<Region> regions = stateMachine.getRegions();
+ if (regions.size() > 0) {
+ return regions.get(0);
+ }
+ return null;
+ }
+
+ public static EList<State> subStates(State state) {
+ Region region = region(state);
+ return (region != null) ? states(region) : new BasicEList<State>();
+ }
+
+ public static EList<State> states(StateMachine stateMachine) {
+ Region region = region(stateMachine);
+ return (region != null) ? states(region) : new BasicEList<State>();
+ }
+
+ public static EList<State> states(Region region) {
+ EList<State> states = new BasicEList<State>();
+ for (org.eclipse.uml2.uml.Vertex vertex : region.getSubvertices()) {
+ if (vertex instanceof State) {
+ states.add((State) vertex);
+ }
+ }
+ return states;
+ }
+
+ public static EList<Pseudostate> entryPoints(State state) {
+ EList<Pseudostate> pseudoStates = new BasicEList<Pseudostate>();
+ for (Pseudostate pseudoState : state.getConnectionPoints()) {
+ if (pseudoState.getKind() == PseudostateKind.ENTRY_POINT_LITERAL) {
+ pseudoStates.add(pseudoState);
+ }
+ }
+ return pseudoStates;
+ }
+
+ public static EList<Pseudostate> exitPoints(State state) {
+ EList<Pseudostate> pseudoStates = new BasicEList<Pseudostate>();
+ for (Pseudostate pseudoState : state.getConnectionPoints()) {
+ if (pseudoState.getKind() == PseudostateKind.EXIT_POINT_LITERAL) {
+ pseudoStates.add(pseudoState);
+ }
+ }
+ return pseudoStates;
+ }
+
+ public static EList<Pseudostate> junctionPoints(Region region) {
+ return filteredPseudoStates(region, PseudostateKind.JUNCTION_LITERAL);
+ }
+
+ public static EList<Pseudostate> choicePoints(Region region) {
+ return filteredPseudoStates(region, PseudostateKind.CHOICE_LITERAL);
+ }
+
+ public static EList<Pseudostate> filteredPseudoStates(Region region, PseudostateKind kind) {
+ EList<Pseudostate> pseudoStates = new BasicEList<Pseudostate>();
+ for (Vertex vertex : region.getSubvertices()) {
+ if (vertex instanceof Pseudostate) {
+ Pseudostate pseudoState = (Pseudostate) vertex;
+ if (pseudoState.getKind() == kind) {
+ pseudoStates.add(pseudoState);
+ }
+ }
+ }
+ return pseudoStates;
+ }
+
+ public static Pseudostate firstPseudoState(Region region, PseudostateKind kind) {
+ for (Vertex vertex : region.getSubvertices()) {
+ if (vertex instanceof Pseudostate) {
+ Pseudostate pseudoState = (Pseudostate) vertex;
+ if (pseudoState.getKind() == kind) {
+ return pseudoState;
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
+ * @return The set of all transitions ending indirectly on the state.
+ * This is, those which end on one of the state's entry points.
+ */
+ public static Collection<Transition> indirectIncomings(State state) {
+ EList<Transition> indirectIncoming = new BasicEList<Transition>();
+ for (Pseudostate p : entryPoints(state)) {
+ for (Transition t : p.getIncomings()) {
+ indirectIncoming.add(t);
+ }
+ }
+ return indirectIncoming;
+ }
+
+ /**
+ * @return The set of all transitions ending indirectly on the state.
+ * This is, those which end on one of the state's entry points.
+ */
+ public static Collection<Transition> indirectOutgoings(State state) {
+ EList<Transition> indirectIncoming = new BasicEList<Transition>();
+ for (Pseudostate p : entryPoints(state)) {
+ for (Transition t : p.getIncomings()) {
+ indirectIncoming.add(t);
+ }
+ }
+ return indirectIncoming;
+ }
+
+
+ /**
+ * @return The set of all direct and indirect incoming transitions to the state.
+ */
+ public static Collection<Transition> allIncomings(State state) {
+ EList<Transition> allIncoming = new BasicEList<Transition>();
+ for (Transition t : state.getIncomings()) {
+ allIncoming.add(t);
+ }
+ allIncoming.addAll(indirectIncomings(state));
+ return allIncoming;
+ }
+
+ /**
+ * @return The set of all direct and indirect incoming transitions to the state.
+ */
+ public static Collection<Transition> allOutgoings(State state) {
+ EList<Transition> allIncoming = new BasicEList<Transition>();
+ for (Transition t : state.getIncomings()) {
+ allIncoming.add(t);
+ }
+ allIncoming.addAll(indirectOutgoings(state));
+ return allIncoming;
+ }
+
+ /**
+ * Adds all the inner elements of a composite state to self, except for the
+ * initial, entry, exit and history pseudo-states.
+ *
+ * This operation moves those elements, as it removes them from their
+ * original container and sets their owner to the recipient.
+ */
+ public static void moveContents(Region targetRegion, State source) {
+ Region sourceRegion = region(source);
+ EList<Vertex> vertices = new BasicEList<Vertex>(sourceRegion.getSubvertices());
+ for (Vertex v : vertices) {
+ // move states and pseudostates
+ targetRegion.getSubvertices().add(v);
+ }
+ EList<Transition> transitions = new BasicEList<Transition>(sourceRegion.getTransitions());
+ for (Transition t : transitions) {
+ targetRegion.getTransitions().add(t);
+ }
+ }
+
+ public static Pseudostate initialState(Region region) {
+ return firstPseudoState(region, PseudostateKind.INITIAL_LITERAL);
+ }
+
+ public static Pseudostate deepHistory(Region region) {
+ return firstPseudoState(region, PseudostateKind.DEEP_HISTORY_LITERAL);
+ }
+
+ public static State createState(Region region, String name) {
+ return (State) region.createSubvertex(name, UMLPackage.eINSTANCE.getState());
+ }
+
+ public static Pseudostate createPseudostate(Region region, String name) {
+ return (Pseudostate) region.createSubvertex(name, UMLPackage.eINSTANCE.getPseudostate());
+ }
+
+ /**
+ * Return the bound package in the context of template instantiation for a given actual.
+ *
+ * This is required by the state machine template which needs to access operation IDs
+ * provided by the call interceptor.
+ *
+ * @param actual
+ * The actual for template binding
+ * @return
+ */
+ public static Package boundPackageRef(Type actual) {
+ for (Package nestedPkg : PackageUtil.getRootPackage(actual).getNestedPackages()) {
+ // search for bound package templates who are bound to the same actual
+ // TODO: search is ambiguous, if same actual is used more than once
+ if (nestedPkg.getTemplateBindings().size() > 0) {
+ TemplateBinding binding = nestedPkg.getTemplateBindings().get(0);
+ if (actual == TemplateUtils.getFirstActualFromBinding(binding)) {
+ return nestedPkg;
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Declares a dependency from the current classifier which is produced by template instantiation
+ * to the element (enum) "OperationIDs", if found within the passed package.
+ *
+ * @param pkg
+ * @return
+ */
+ public static void declareDependencyToOperationIDs(Package pkg) {
+ PackageableElement type = pkg.getPackagedElement("OperationIDs"); //$NON-NLS-1$
+ if (type instanceof Type) {
+ UMLTool.declareDependency(TransformationContext.classifier, (Type) type);
+ }
+ }
+
+ /**
+ * Declares a dependency from the current classifier which is produced by template instantiation
+ * to the element (enum) "SignalIDs", if found within the passed package.
+ *
+ * @param pkg
+ * the package in which an enumeration is looked up
+ * @return
+ */
+ public static void declareDependencyToSignalIDs(Package pkg) {
+ NamedElement type = Utils.getQualifiedElement(pkg, "globalenums::" + SIGNAL_ENUM); //$NON-NLS-1$
+ if (type instanceof Type) {
+ UMLTool.declareDependency(TransformationContext.classifier, (Type) type);
+ }
+ }
+
+ static final String SIGNAL_ENUM = "SignalIDs";
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/StructBasedMarshalling.xtend b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/StructBasedMarshalling.xtend
new file mode 100644
index 00000000000..89d085b3937
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/StructBasedMarshalling.xtend
@@ -0,0 +1,25 @@
+package org.eclipse.papyrus.qompass.modellibs.core.xtend
+
+import org.eclipse.uml2.uml.Operation
+import static extension org.eclipse.papyrus.qompass.designer.core.UMLTool.*
+import static extension org.eclipse.papyrus.qompass.modellibs.core.xtend.CppUtils.cppType
+
+// TODO: original model code does effectively do more than marshalling
+class StructBasedMarshalling {
+ def static marshall(Operation operation) '''
+ struct ParamData {
+ «FOR parameter : operation.parametersInInout»
+ «parameter.type.cppType» «parameter.name»;
+ «ENDFOR»
+ };
+ Event event;
+ event.ID = [operation.name/];
+ event.kind = CallEvent;
+ ParamData * data = &event.params;
+ «FOR parameter : operation.parametersInInout»
+ data->[parameter.name/] = [parameter.name/];
+ «ENDFOR»
+ out->dispatch(event);
+ '''
+
+} \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/SyncCalls.xtend b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/SyncCalls.xtend
new file mode 100644
index 00000000000..96952f2f8d1
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/SyncCalls.xtend
@@ -0,0 +1,13 @@
+package org.eclipse.papyrus.qompass.modellibs.core.xtend
+
+import org.eclipse.uml2.uml.Operation
+import static extension org.eclipse.papyrus.qompass.modellibs.core.xtend.CppUtils.*
+
+class SyncCalls {
+ def syncCall(Operation operation) '''
+ // put pre-interceptors here
+ [comment type is a derived property containing the operations return type/]
+ «IF operation.type != null»return «ENDIF»rconn->«operation.cppCall»;
+ // put post-interceptors here
+ '''
+} \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/UMLAction.xtend b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/UMLAction.xtend
new file mode 100644
index 00000000000..3cbc6f2da3a
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/UMLAction.xtend
@@ -0,0 +1,58 @@
+/*******************************************************************************
+* Copyright (c) 2014 Zeligsoft, CEA and others.
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+*******************************************************************************/
+
+package org.eclipse.papyrus.qompass.modellibs.core.xtend
+
+import org.eclipse.xtend.lib.annotations.Accessors
+import org.eclipse.uml2.uml.Behavior
+import java.util.List
+import java.util.ArrayList
+
+/**
+ * An action in the sense of the invocation of a behavior.
+ * This means that the actual behavior is not described here. The action
+ * is referencing the behavior and providing information how to invoke the
+ * behavior.
+ * The action has no prefix: the name of the referenced behavior needs to be prefixed, if necessary
+ *
+ * @author Ansgar (based on code from eposse)
+ *
+ */
+class UMLAction {
+
+ /** Source UMLRT model element. */
+ @Accessors Behavior origin
+
+ // list of parameters for a call, simply a list of strings. if null => no parameters
+ public List<String> callParams;
+
+ new(Behavior origin) {
+ this.origin = origin
+ }
+
+ /**
+ * Add a parameter
+ */
+ def addParam(String parameter) {
+ if (callParams == null) {
+ callParams = new ArrayList<String>()
+ }
+ callParams.add = parameter
+ }
+
+ def getSpecification() {
+ origin.specification
+ }
+
+ def getFuncName() {
+ origin.name
+ }
+
+ override toString() '''Action(«origin.name»)'''
+
+} \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/UMLChain.xtend b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/UMLChain.xtend
new file mode 100644
index 00000000000..05bf596b9a6
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/UMLChain.xtend
@@ -0,0 +1,91 @@
+/*******************************************************************************
+* Copyright (c) 2014 Zeligsoft (2009) Limited and others.
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+*******************************************************************************/
+
+package org.eclipse.papyrus.qompass.modellibs.core.xtend
+
+import java.util.HashMap
+import java.util.List
+import java.util.Map
+import org.eclipse.uml2.uml.Behavior
+import org.eclipse.uml2.uml.Transition
+import org.eclipse.xtend.lib.annotations.Accessors
+
+/**
+ * A chain of state entry, exit and transition actions for a "flat"
+ * {@link Transition}.
+ *
+ * @author eposse
+ *
+ */
+class UMLChain {
+
+ @Accessors List<UMLAction> actions
+ @Accessors Transition owner
+
+ static Map<Transition, UMLChain> chains;
+
+ new () {
+ actions = newArrayList
+ }
+
+ new (List<UMLAction> actions) {
+ this.actions = newArrayList(actions) // We need this to be mutable.
+ }
+
+ def static void initChains() {
+ chains = new HashMap<Transition, UMLChain>();
+ }
+
+ /**
+ * Return the chain of behaviors associated with a transition
+ * IF the chain does not exist yet, it will be created (and stored in a hash map)
+ * @param t
+ * @return
+ */
+ def static UMLChain chain(Transition t) {
+ var UMLChain chain = chains.get(t)
+ if (chain == null) {
+ chain = new UMLChain()
+ chain.setOwner(t)
+ chains.put(t, chain)
+ }
+ return chain
+ }
+
+ def append(UMLAction action) {
+ actions.add(action)
+ return this
+ }
+
+ def append(Behavior behavior) {
+ if (behavior != null) {
+ append(new UMLAction(behavior))
+ }
+ return this
+ }
+
+ def prepend(UMLAction action) {
+ actions.add(0, action)
+ return this
+ }
+
+ def prepend(Behavior behavior) {
+ prepend(new UMLAction(behavior))
+ return this
+ }
+
+ def getOwner() {
+ owner
+ }
+
+ def setOwner(Transition t) {
+ owner = t
+ // add transition effect to action list
+ append(t.effect)
+ }
+} \ No newline at end of file
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/UMLFlatModel2Cpp.xtend b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/UMLFlatModel2Cpp.xtend
new file mode 100644
index 00000000000..fe1b522e4bf
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/UMLFlatModel2Cpp.xtend
@@ -0,0 +1,667 @@
+/*******************************************************************************
+* Copyright (c) 2014 Zeligsoft, CEA and others.
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+*******************************************************************************/
+package org.eclipse.papyrus.qompass.modellibs.core.xtend
+
+import org.eclipse.uml2.uml.Port
+import org.eclipse.uml2.uml.Class
+import org.eclipse.uml2.uml.Property
+import org.eclipse.uml2.uml.State
+import org.eclipse.uml2.uml.StateMachine
+import org.eclipse.uml2.uml.Transition
+import java.util.Map
+import org.eclipse.uml2.uml.NamedElement
+import java.util.Collection
+import static extension org.eclipse.papyrus.qompass.modellibs.core.xtend.StateMachineUtil.*
+import static extension org.eclipse.papyrus.qompass.modellibs.core.xtend.BehaviorUtil.*
+import org.eclipse.uml2.uml.UMLPackage
+import org.eclipse.uml2.uml.Enumeration
+import org.eclipse.uml2.uml.EnumerationLiteral
+import org.eclipse.uml2.uml.Pseudostate
+import org.eclipse.uml2.uml.PseudostateKind
+import org.eclipse.uml2.uml.Operation
+import org.eclipse.uml2.uml.OpaqueBehavior
+import org.eclipse.uml2.uml.Parameter
+import org.eclipse.uml2.uml.CallEvent
+import org.eclipse.uml2.uml.Stereotype
+import org.eclipse.uml2.uml.Type
+import static extension org.eclipse.papyrus.qompass.modellibs.core.xtend.UMLChain.chain
+import java.util.List
+import org.eclipse.papyrus.qompass.designer.core.EnumService
+
+/**
+ * This class contains the transformation from flat UML-RT state machines to the
+ * C/C++ language model.
+ *
+ * It implements the algorithms described in the technical report
+ *
+ * E. Posse. "Transforming flat UML-RT State Machines to a C/C++ language model".
+ * Technical Report ZTR-2014-EP-002, Version 2, Zeligsoft, Sep 2014.
+ *
+ * Ansgar Radermacher (CEA): translation to UML transformation
+ * @author eposse
+ */
+class UMLFlatModel2Cpp {
+
+ /**
+ * The CppCodePattern that is being used for this transformation operation.
+ */
+
+ /** The source state machine to transform */
+ StateMachine machine
+ Class clazz
+
+ /** Elements that go into the generated model. */
+ Enumeration statesDeclaration
+ Property currentStateField
+ Map<State, EnumerationLiteral> stateEnumerators
+ Property historyTableDeclaration
+ Operation saveHistoryFunction
+ Map<Transition, OpaqueBehavior> actionChainFunctions
+ Map<Pseudostate, OpaqueBehavior> junctionPointFunctions
+ Map<Pseudostate, OpaqueBehavior> choicePointFunctions
+ Map<State, OpaqueBehavior> stateFunctions
+ Operation injectFunc
+ Operation initializeFunc
+ Stereotype refStereo
+ Stereotype constStereo
+
+ new() {
+ stateEnumerators = newHashMap
+ // userActionFunctions = newHashMap
+ actionChainFunctions = newHashMap
+ junctionPointFunctions = newHashMap
+ choicePointFunctions = newHashMap
+ stateFunctions = newHashMap
+ }
+
+ /**
+ * This is the main method of the transformation. It performs the
+ * transformation by invoking methods that generate each part of the
+ * target language model.
+ */
+ def transform(StateMachine m) {
+ machine = m
+ clazz = m.owner as Class
+
+ generateStatesDeclaration
+ generateCurrentStateField
+ generateHistoryTableDeclaration
+ generateSaveHistoryFunction
+ // generateAllUserActionFunctions
+ generateAllActionChainFunctions
+ generateAllJunctionFunctions
+ generateAllChoicePointFunctions
+ generateAllStateFunctions
+ generateInjectFunc
+ generateInitializeFunc
+ }
+
+ /**
+ * Builds an enum type for the states of the state machine.
+ *
+ * The generated code would be something like:
+ *
+ * <p><pre>
+ * <code>enum State { s0, s1, s1_s0, s1_s1, s2, ... };</code>
+ * </pre>
+ */
+ def generateStatesDeclaration() {
+
+ val clazz = machine.owner as Class
+ statesDeclaration = clazz.createNestedClassifier(GlobalConstants.STATE_TYPE_NAME,
+ UMLPackage.eINSTANCE.getEnumeration) as Enumeration
+ for (s : machine.states) {
+ if (s.name == null) {
+ s.name = "undefined"
+ }
+ val stateLiteral = statesDeclaration.createOwnedLiteral(s.name)
+ stateEnumerators.put(s, stateLiteral)
+ }
+ statesDeclaration.createOwnedLiteral(GlobalConstants.UNVISITED)
+
+ // stateEnumerators.put(State.UNVISITED, unvisitedStateLiteral)
+ }
+
+ /**
+ * Generates a field to hold the current state.
+ *
+ * The generated code would be something like:
+-- *
+ * <p><pre>
+ * <code>
+ * State currentState;
+ * </code>
+ * </pre>
+ */
+ def generateCurrentStateField() {
+ currentStateField = clazz.createOwnedAttribute(GlobalConstants.CURRENT_STATE_FIELD_NAME, statesDeclaration)
+ }
+
+ /**
+ * Generates a declaration for the history table for the state machine.
+ *
+ * The generated code would be something like:
+ *
+ * <p>
+ * <code>State[] history = { UNDEFINED, ..., UNDEFINED };
+ */
+ def generateHistoryTableDeclaration() {
+
+ // TODO: currentStateField already used (probably wrong!)
+ historyTableDeclaration = clazz.createOwnedAttribute(GlobalConstants.HISTORY_TABLE_NAME, statesDeclaration)
+ val numStates = machine.states.size
+
+ // use CppArray instead?
+ // TODO
+ // currentStateField.upper = numStates
+
+ // get constructor TODO
+ var ctor = clazz.getOwnedOperation(clazz.getName(), null, null)
+ var OpaqueBehavior ctorOB
+ if (ctor != null) {
+ ctorOB = ctor.methods.get(0) as OpaqueBehavior
+ }
+ if (ctor == null) {
+ ctor = clazz.createOperation(clazz.getName(), null)
+ ctorOB = clazz.createOpaqueBehavior(ctor)
+ }
+
+ // TODO: might be more than one constructor
+ ctorOB.set('''
+ int i = 0;
+ while (i<«numStates») {
+ «GlobalConstants.HISTORY_TABLE_NAME»[i++] = «GlobalConstants.UNVISITED»;
+ }''')
+ }
+
+ /**
+ * Generates a function that saves history.
+ *
+ * The code generated is as follows:
+ *
+ * <p><pre>
+ * <code>
+ * void saveHistory(State compositeState, State subState) {
+ * history[compositeState] = subState;
+ * }
+ * <code>
+ * </pre>
+ *
+ * where <code>State</code> is the capsule's state type (an enum) and
+ * <code>history</code> is the capsule's history table.
+ *
+ * <p><b>Note:</b> The current implementation generates this as a normal
+ * function but it should be either a macro or an inline function.
+ * However the C/C++ language model does not currently support these.
+ *
+ * @see
+ * #generateStatesDeclaration
+ * #generateHistoryTableDeclaration
+ */
+ def generateSaveHistoryFunction() {
+
+ // Create the operation programmatically. Yet, it would be better
+ // to provide a model template for this
+ // [LW container-transformation
+ // saveHist(State compositeState, State subState) {
+ // historyTable[param1] = param2;
+ // }
+ saveHistoryFunction = clazz.createOwnedOperation(GlobalConstants.SAVE_HISTORY_FUNC_NAME, null, null)
+ saveHistoryFunction.createOwnedParameter("compositeState", stateType)
+ saveHistoryFunction.createOwnedParameter("subState", stateType)
+ // behavior might exist already (created by flattener)
+ var funcOB = clazz.getOwnedBehavior(GlobalConstants.SAVE_HISTORY_FUNC_NAME)
+ if (funcOB == null) {
+ funcOB = clazz.createOpaqueBehavior(saveHistoryFunction)
+ }
+ else {
+ funcOB.specification = saveHistoryFunction
+ }
+ funcOB.set("history[compositeState] = subState;")
+ }
+
+ /**
+ * Generate function declarations for transition action chains.
+ *
+ * <p>Each function generated will have a sequence of calls, invoking either
+ * the action functions generated by {@link generateActionFunc} for
+ * transition, state entry and state exit actions, as well as invoking
+ * "save history" actions produced by the flattening transformation.
+ */
+ def generateAllActionChainFunctions() {
+ for (t : machine.region.transitions) {
+ val f = generateActionFunc(t)
+ actionChainFunctions.put(t, f)
+ }
+ }
+
+ /**
+ * Generates the function declaration for a single action chain.
+ */
+ def generateActionFunc(Transition t) {
+ val transitionFuncName = GlobalConstants.TRANS_ACTION_FUNC_PREFIX + "__" + t.name
+ val transitionFunc = clazz.createOwnedOperation(transitionFuncName, null, null)
+ transitionFunc.createRTMessageParam(GlobalConstants.CHAIN_FUNC_PARAM)
+ var transitionFuncOB = t.effect
+ if (transitionFuncOB == null) {
+ transitionFuncOB = clazz.createOpaqueBehavior(transitionFunc);
+ }
+ else {
+ transitionFuncOB.specification = transitionFunc
+ clazz.ownedBehaviors.add(transitionFuncOB)
+ }
+
+ val chainFuncName = GlobalConstants.ACTION_FUNC_PREFIX + "__" + t.name
+ val chainFunc = clazz.createOwnedOperation(chainFuncName, null, null)
+ chainFunc.createRTMessageParam(GlobalConstants.CHAIN_FUNC_PARAM)
+ val chainFuncOB = clazz.createOpaqueBehavior(chainFunc);
+
+ // now examine chain (separate function generateActionInvocation in original code)
+ // Generates a call to an action, either user action or action generated by
+ // the transformation.
+ var code = ""
+ for (action : t.chain.actions) {
+ code += call(action.specification, action.callParams)
+ }
+ chainFuncOB.set(code)
+ return chainFuncOB as OpaqueBehavior
+ }
+
+ // def Enumerator getEnum(CppEnum enum1, String string) {
+ // throw new UnsupportedOperationException("TODO: auto-generated method stub")
+ // }
+ /**
+ * Generates all functions corresponding to choice points.
+ */
+ def generateAllChoicePointFunctions() {
+ for (c : machine.region.choicePoints) {
+ val f = generateChoiceFunc(c)
+ choicePointFunctions.put(c, f)
+ }
+ }
+
+ /**
+ * Generates the function corresponding to a given choice point.
+ */
+ def generateChoiceFunc(Pseudostate p) {
+ val funcName = GlobalConstants.CHOICE_FUNC_PREFIX + p.name
+ val funcDecl = clazz.createOperation(funcName, null)
+ val param = funcDecl.createRTMessageParam(GlobalConstants.CHOICE_FUNC_PARAM)
+ val funcDeclOB = clazz.createOpaqueBehavior(funcDecl)
+
+ // if (generateGuard) { [actFunc/](param); [DestStatement]
+ var code = ""
+ for (t : p.outgoings) {
+ code += '''
+ if («t.guard.body») {
+ «call(actionChainFunctions.get(t), param.name)»
+ // TODO: return instead
+ «currentStateField.name» = «getDestination(t, false)»;
+ }
+ '''
+ }
+ funcDeclOB.set(code)
+ return funcDeclOB
+ }
+
+ /**
+ * Generates all functions corresponding to junction points.
+ */
+ def generateAllJunctionFunctions() {
+ for (j : machine.region.junctionPoints) {
+ val f = generateJunctionFunc(j)
+ junctionPointFunctions.put(j, f)
+ }
+ }
+
+ /**
+ * Generates the function corresponding to a specific junction point.
+ */
+ def generateJunctionFunc(
+ Pseudostate p
+ ) {
+ val funcName = GlobalConstants.JUNCTION_FUNC_PREFIX + p.name
+ val funcDecl = clazz.createOperation(funcName, null)
+ val funcDeclOB = clazz.createOpaqueBehavior(funcDecl)
+ funcDecl.createRTMessageParam(GlobalConstants.JUNC_FUNC_PARAM)
+ val t = p.outgoings.get(0) // There should be only one.
+ var code = ""
+ if (t != null) {
+ val actFunc = actionChainFunctions.get(t)
+ code += call(actFunc, GlobalConstants.JUNC_FUNC_PARAM)
+ }
+ code += getDestination(t, false)
+ funcDeclOB.set(code)
+ funcDeclOB
+ }
+
+ /**
+ * Generates all functions corresponding to states.
+ */
+ def generateAllStateFunctions() {
+ for (s : machine.states) {
+ val f = generateStateFunc(s)
+ stateFunctions.put(s, f)
+ }
+ }
+
+ /**
+ * Generates the function corresponding to a given state.
+ */
+ def generateStateFunc(State state) {
+ val name = GlobalConstants.STATE_FUNC_PREFIX + state.name
+ val retType = statesDeclaration
+ val func = clazz.createOperation(name, retType)
+ val param = func.createRTMessageParam(GlobalConstants.STATE_FUNC_PARAM)
+ val funcOB = clazz.createOpaqueBehavior(func)
+ val table = getPortTransitionsTable(state)
+
+ val code = '''
+ switch («getPortCond(param)») {
+ «FOR port : table.keySet»
+ case «enumeratorFor(port)»:
+ switch(«getSigCond(param)») {
+ «FOR t : table.get(port)»
+ «FOR trigger : t.triggers.filter[it.ports.contains(port)]»
+ case «enumeratorFor(trigger.event as CallEvent)»:
+ «IF (t.guard != null)»if (t.guard) { «ENDIF»
+ «actionChainFunctions.get(t).name»(«param.name»);
+ return «getDestination(t, false)»;
+ «IF (t.guard != null)»}«ENDIF»
+ «ENDFOR»
+ «ENDFOR»
+ }
+ «ENDFOR»
+ }
+ '''
+ funcOB.set(code)
+ funcOB
+ }
+
+ /**
+ * Builds a table that contains for each port, all the outgoing transitions
+ * of a given state whose trigger has that port.
+ *
+ * @param s a {@link State}
+ * @return a table T indexed by {@link Port}s such that for each port p, the
+ * entry T[p] contains all outgoing {@link Transition}s from s
+ * whose trigger has port p.
+ */
+ private def getPortTransitionsTable(State s) {
+ val table = newHashMap
+ for (t : s.outgoings) {
+ for (trigger : t.triggers) {
+ for (p : trigger.ports) {
+ if (!table.containsKey(p)) {
+ table.put(p, newHashSet)
+ }
+ table.get(p).add(t)
+ }
+ }
+ }
+ return table
+ }
+
+ /**
+ * Obtains the function call corresponding to a transition's destination.
+ *
+ * @param t - The {@link Transition}
+ * @param init - Whether we are looking for the destination to be obtained
+ * in the ized method or in the inject method.
+ */
+ private def getDestination(Transition t, boolean init) {
+ var String retVal
+ if (t.target instanceof Pseudostate) {
+ val ps = t.target as Pseudostate
+ if (ps.kind == PseudostateKind.CHOICE_LITERAL) {
+ val func = choicePointFunctions.get(ps)
+ retVal = func.getName() + "();"
+ } else if (ps.kind == PseudostateKind.JUNCTION_LITERAL) {
+ val func = junctionPointFunctions.get(ps)
+ retVal = func.getName() + "();"
+ }
+ } else {
+ retVal = stateEnumerators.get(t.target).name
+ }
+ if (init) {
+ // currentStateField = << code >>
+ retVal = '''«currentStateField.name» = «retVal»;'''
+ }
+ retVal
+ }
+
+ /**
+ * Generates the main 'inject' function that receives and handles events.
+ */
+ def generateInjectFunc() {
+ injectFunc = clazz.createOperation(GlobalConstants.INJECT_FUNC_NAME, null)
+
+ // injectFunc.setVirtual()
+ injectFunc.createRTMessageParam(GlobalConstants.INJECT_FUNC_PARAM)
+ val injectFuncOB = clazz.createOpaqueBehavior(injectFunc)
+ val code = '''
+ switch(stateCond) {
+ «FOR s : machine.states»
+ case «enumFor(s)»:
+ «currentStateField.name» = «call(stateFunctions.get(s), GlobalConstants.INJECT_FUNC_PARAM)»
+ break;
+ «ENDFOR»
+ }
+ '''
+ injectFuncOB.set(code)
+ injectFunc
+ }
+
+
+ /**
+ * Build the initialize function which performs the initial transition.
+ *
+ * <p>This assumes that the top level of the state machine must have an
+ * initial pseudo-state, and that there is exactly one outgoing transition
+ * from such initial point.
+ *
+ * <p> If there is no initial point, the body of the initialize method is
+ * empty.
+ */
+ def generateInitializeFunc() {
+ initializeFunc = clazz.createOperation(GlobalConstants.INITIALIZE_FUNC_NAME, null)
+
+ // initializeFunc.setVirtual()
+ initializeFunc.createRTMessageParam(GlobalConstants.INITIALIZE_FUNC_PARAM)
+ val initializeFuncOB = clazz.createOpaqueBehavior(initializeFunc)
+
+ var code = ""
+ if (machine.region.initialState != null) {
+ val initialTransition = machine.region.initialState.outgoings.get(0);
+ if (initialTransition != null) {
+ val actFunc = actionChainFunctions.get(initialTransition)
+ if (actFunc != null) {
+ code += call(actFunc, GlobalConstants.INITIALIZE_FUNC_PARAM)
+ }
+ }
+ code += getDestination(initialTransition, true)
+ initializeFuncOB.set(code)
+ }
+ }
+
+ def call(NamedElement fct, String param) '''
+ «fct.name»(«param»);
+ '''
+
+ def call(NamedElement fct, List<String> params) '''
+ «IF params != null»
+ «fct.name»(«FOR param : params SEPARATOR ', '»«param»«ENDFOR»);
+ «ELSE»
+ «fct.name»();
+ «ENDIF»
+ '''
+
+ /**
+ * Generates the compilation unit for the state machine (*)
+ *
+ * <p><b>Notes:</b> This implementation generates only a list of elements
+ * to be consumed by the capsule generator which is assumed to be
+ * responsible for putting together the full compilation unit.
+ */
+ /*
+ def generateCompilationUnit() {
+ // already added?
+
+ cppCapsuleClass.addMember(CppClass.Visibility.PRIVATE, statesDeclaration);
+ cppCapsuleClass.addMember(CppClass.Visibility.PRIVATE, currentStateField)
+ cppCapsuleClass.addMember(CppClass.Visibility.PRIVATE, historyTableDeclaration)
+ cppCapsuleClass.addMember(CppClass.Visibility.PRIVATE, saveHistoryFunction)
+ for (action : userActionFunctions.keySet) {
+ cppCapsuleClass.addMember(CppClass.Visibility.PRIVATE, userActionFunctions.get(action))
+ }
+ for (chain : actionChainFunctions.keySet) {
+ cppCapsuleClass.addMember(CppClass.Visibility.PRIVATE, actionChainFunctions.get(chain))
+ }
+ for (junction : junctionPointFunctions.keySet) {
+ cppCapsuleClass.addMember(CppClass.Visibility.PRIVATE, junctionPointFunctions.get(junction))
+ }
+ for (choice : choicePointFunctions.keySet) {
+ cppCapsuleClass.addMember(CppClass.Visibility.PRIVATE, choicePointFunctions.get(choice))
+ }
+ for (state : stateFunctions.keySet) {
+ cppCapsuleClass.addMember(CppClass.Visibility.PRIVATE, stateFunctions.get(state))
+ }
+
+ return generatedModel
+ }
+ */
+ /**
+ * Auxiliary methods
+ */
+ private def getStateType() {
+ statesDeclaration
+ }
+
+ private def getRTMessageType() {
+ // TODO: import umlrts instead of declaring it in model
+ val umlrts = clazz.getModel().getPackagedElement("umlrts") as org.eclipse.uml2.uml.Package
+ umlrts.getPackagedElement("RTMessage") as org.eclipse.uml2.uml.Type;
+ }
+
+ private def createRTMessageParam(Operation operation, String paramName) {
+ val param = operation.createOwnedParameter(paramName, RTMessageType)
+ if (refStereo == null) {
+ refStereo = param.getApplicableStereotype("C_Cpp::Ref")
+ }
+ if (refStereo != null) {
+ param.applyStereotype(refStereo)
+ }
+ if (constStereo == null) {
+ constStereo = param.getApplicableStereotype("C_Cpp::Const")
+ }
+ if (constStereo != null) {
+ param.applyStereotype(constStereo)
+ }
+ param
+ }
+
+ // TODO - why not used any more?
+ private def getRTDataType(Transition t) {
+ var Type rtdataType = null
+ val Collection<Type> types = newHashSet
+ for (trigger : t.triggers) {
+ val evt = trigger.event as CallEvent
+ val params = evt.operation.ownedParameters
+ if (! params.empty) {
+ val first = params.get(0)
+ types.add(first.type)
+ }
+ }
+ if (types.size == 1) {
+ val type = types.get(0)
+ // TODO - was - createType
+ rtdataType = type
+ }
+ rtdataType
+ }
+
+ private def enumFor(State s) {
+ stateEnumerators.get(s).label
+ }
+
+ private def dispatch enumeratorFor(Port port) {
+ val enumerator = EnumService.literal('PortID', port.name)
+ enumerator
+ }
+
+ private def dispatch enumeratorFor(CallEvent ce) {
+ val operation = ce.operation
+ val protocolCls = EnumService.literal('ProtocolClass', (operation.getInterface().owner as NamedElement).name);
+ '''«protocolCls»::signal_«ce.name»'''
+ }
+
+ /**
+ * Builds an expression to obtain the port enum id for the switch.
+ *
+ * <p>It assumes that the message parameter to the inject function is a
+ * pointer to the RTMessage type, as returned by {@link #getRTMessageType},
+ * this is, the signature of the inject function must be:
+ *
+ * <p><pre>
+ * <code>void inject(UMLRTMessage * msg)</code>
+ * </pre>
+ *
+ * <p>It also assumes that the port id and signal id are accessible from
+ * this type. Basically the assumption is that the relevant definitions are
+ * as follows:
+ *
+ * <p>
+ * <pre>
+ * <code>
+ * class UMLRTMessage : ... {
+ * public:
+ * UMLRTPort * destPort;
+ * UMLRTSignal * signal;
+ * }
+ *
+ * struct UMLRTPort {
+ * int id;
+ * // ...
+ * }
+ *
+ * class UMLRTSignal {
+ * public:
+ * int id;
+ * // ...
+ * }
+ * </code>
+ * </pre>
+ *
+ * <p>... where the typed <code>UMLRTPortId</code> and
+ * <code>UMLRTSignalId</code> can be cast to the <code>Port</code> and
+ * <code>Signal</code> enum types generated in the state machine's class.
+ *
+ * <p>Given this assumptions, the port condition generated has the form:
+ *
+ * <p><pre><code>(Port)(msg->destPort)->id</code></pre>
+ *
+ * <p>and the signal condition is:
+ *
+ * <p><pre><code>(ProtocolX::Signal)(msg->signal)->getId()</code></pre>
+ *
+ * <p>where <code>ProtocolX</code> is the name of the port's protocol
+ */
+ private def getPortCond(Parameter param) {
+ //val messagePortField = UMLRTMessage.destPort()
+ //val portIdField = UMLRTCommsPort.id()
+ //'''«param.name».«messagePortField.name»->«portIdField.name»'''
+ '''TODO'''
+ }
+
+ private def getSigCond(Parameter param) {
+ //val messageSignalField = UMLRTMessage.signal()
+ //val signalIdAccessor = UMLRTSignal.getId()
+ //'''«param.name»->«messageSignalField.name»->«signalIdAccessor.name»()'''
+ '''TODO'''
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/UMLFlattener.xtend b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/UMLFlattener.xtend
new file mode 100644
index 00000000000..002469ae5b0
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/xtend/UMLFlattener.xtend
@@ -0,0 +1,556 @@
+/*******************************************************************************
+* Copyright (c) 2014 Zeligsoft, CEA and others.
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+*******************************************************************************/
+package org.eclipse.papyrus.qompass.modellibs.core.xtend
+
+import org.eclipse.uml2.uml.Behavior
+import org.eclipse.uml2.uml.Class
+import org.eclipse.uml2.uml.NamedElement
+import org.eclipse.uml2.uml.Pseudostate
+import org.eclipse.uml2.uml.PseudostateKind
+import org.eclipse.uml2.uml.Region
+import org.eclipse.uml2.uml.State
+import org.eclipse.uml2.uml.StateMachine
+import org.eclipse.uml2.uml.Transition
+import org.eclipse.uml2.uml.UMLPackage
+import org.eclipse.uml2.uml.Vertex
+
+import static extension org.eclipse.papyrus.qompass.modellibs.core.xtend.BehaviorUtil.*
+import static extension org.eclipse.papyrus.qompass.modellibs.core.xtend.StateMachineUtil.*
+import static extension org.eclipse.papyrus.qompass.modellibs.core.xtend.UMLChain.chain
+import org.eclipse.uml2.uml.OpaqueBehavior
+
+/**
+ * This class contains the transformation for flattening UML-RT state machines
+ *
+ * It implements the algorithms described in the technical report
+ *
+ * E. Posse. "Flattening UML-RT State Machines".
+ * Technical Report ZTR-2014-EP-001, Version 2, Zeligsoft, Sep 2014.
+ *
+ * @author eposse
+ */
+class UMLFlattener {
+
+ val FRESH_NAME_PREFIX = "p"
+ val FRESH_ENTRYPOINT_NAME_PREFIX = "entrypoint_"
+ val FRESH_EXITPOINT_NAME_PREFIX = "exitpoint_"
+ val FRESH_CHOICEPOINT_NAME_PREFIX = "c"
+ val FRESH_JUNCTIONPOINT_NAME_PREFIX = "j"
+ var FRESH_TRANSITION_NAME_PREFIX = "transition_"
+
+ var freshNameCounter = 0
+ var freshEntryPointNameCounter = 0
+ var freshExitPointNameCounter = 0
+ var freshChoicePointNameCounter = 0
+ var freshJunctionPointNameCounter = 0
+ var freshTransitionNameCounter = 0
+
+ var Behavior saveHistoryBehavior = null
+ var Class clazz
+
+ /**
+ * Flattens a UML-RT state machine, removing composite states, and making
+ * explicit transitions implied by group transitions, history points and
+ * initial points.
+ *
+ * This is the 'main' method of the transformer. It performs the
+ * transformation in-place.
+ *
+ * @param m a {@link StateMachine}
+ * @return the flat {@link StateMachine} m with all composite states, group
+ * transitions, history and initial pseudo-states removed.
+ */
+ def StateMachine transform(StateMachine m) {
+ var StateMachine intermediateModel
+ clazz = m.owner as Class
+ UMLChain.initChains
+ phase0QualifyNames(m.region, m.name)
+ phase1(m)
+ intermediateModel = phase2(m)
+ return intermediateModel
+ }
+
+ /**
+ * Change the names of states and transitions: prefix them with the names
+ * of the stateMachine and composite states.
+ */
+ protected def void phase0QualifyNames(Region region, String parentName) {
+ for (Transition transition : region.transitions) {
+ transition.name = parentName + '_' + transition.name
+ }
+ for (Vertex vertex : region.subvertices) {
+ vertex.name = parentName + '_' + vertex.name
+ if (vertex instanceof State) {
+ val State state = vertex as State
+ for (subRegion : state.regions) {
+ phase0QualifyNames(subRegion, vertex.name)
+ }
+ }
+ }
+ }
+
+
+ /**
+ * Makes explicit transitions implied by group transitions, history points
+ * and initial points.
+ */
+ protected def StateMachine phase1(StateMachine m) {
+ for (State s : m.states) {
+ phase1ProcessState(s)
+ }
+ return m
+ }
+
+ def void phase1ProcessState(State state) {
+ phase1ProcessSimpleState(state)
+ if (!state.regions.empty) {
+ phase1ProcessCompositeState(state)
+ }
+ }
+
+ /**
+ * Moves a simple state's entry actions to its incoming transitions and
+ * the state's exit actions to its outgoing transitions.
+ *
+ */
+ def void phase1ProcessSimpleState(State state) {
+ // TODO: should that be done in UML2FlatBody (need chain?)
+ if (state.entry != null) {
+ val entryOp = clazz.createOperation(entryFctName(state), null);
+ state.entry.name = entryFctName(state)
+ // add specification
+ state.entry.specification = entryOp;
+ // clazz.ownedBehaviors.add(state.entry)
+ for (Transition t : state.incomings) {
+ t.chain.append(state.entry)
+ }
+ }
+ if (state.exit != null) {
+ val exitOp = clazz.createOperation(exitFctName(state), null);
+ state.exit.name = exitFctName(state)
+ // add specification
+ state.exit.specification = exitOp;
+ // clazz.ownedBehaviors.add(state.exit)
+ for (Transition t : state.allOutgoings) {
+ t.chain.prepend(state.exit)
+ }
+ }
+ }
+
+ def entryFctName(State state) {
+ GlobalConstants.ENTRY_ACTION_FUNC_PREFIX + GlobalConstants.FUNC_NAME_QUAL_NAME_SEP + state.name + GlobalConstants.FUNC_NAME_QUAL_NAME_SEP + state.entry.name
+ }
+
+ def exitFctName(State state) {
+ GlobalConstants.EXIT_ACTION_FUNC_PREFIX + GlobalConstants.FUNC_NAME_QUAL_NAME_SEP + state.name + GlobalConstants.FUNC_NAME_QUAL_NAME_SEP + state.exit.name
+ }
+
+ /**
+ * Creates entry transitions for incoming arrows ending at the composite
+ * state's boundary or history pseudo-state. Creates exit transitions
+ * implied by group transitions.
+ */
+ def void phase1ProcessCompositeState(State state) {
+
+ // if (state.substates.empty) {
+ // replaceBySimpleState(state)
+ // return
+ // }
+ // Deal with incoming transitions
+ // TODO (ar): such a state can have entry and exit as well, no?
+ annotateExplicitEntryTransitions(state)
+ createEntryPoints(state)
+ var historyChoicePoint = replaceHistoryPoint(state)
+ removeInitialTransition(state, historyChoicePoint)
+
+ // Deal with outgoing transitions
+ annotateExplicitExitTransitions(state)
+ createExitPoints(state)
+ createExitTransitions(state)
+
+ // Process sub-states
+ for (State subState : state.subStates) {
+ phase1ProcessState(subState)
+ }
+ }
+
+ /**
+ * Prepends the state's entry action to each explicit entry transition
+ * (transition from an entry point to a sub-state).
+ */
+ def annotateExplicitEntryTransitions(State state) {
+ for (Pseudostate p : state.entryPoints) {
+ if (!p.outgoings.empty) {
+ for (Transition t : p.outgoings) {
+ t.chain.append(state.entry)
+ }
+ }
+ }
+ }
+
+ /**
+ * Creates entry points for every direct incoming transition (transition
+ * ending directly on the state's boundary).
+ */
+ def createEntryPoints(State state) {
+ for (Transition t : state.incomings) {
+ val p = state.createConnectionPoint(state.newFreshEntryPointName)
+ p.kind = PseudostateKind.ENTRY_POINT_LITERAL
+ t.target = p
+ } //TODO: maybe remove all directIncomming?
+ }
+
+ /**
+ * Replaces the (deep)history pseudo-state with a choice point with transitions
+ * to each sub-state with conditions checking the value of the history table
+ * entry for this composite-state.
+ */
+ def Pseudostate replaceHistoryPoint(State state) {
+
+ // transform history state into a choice point
+ val c = state.region.deepHistory;
+
+ if (c != null) {
+ // No need to redirect incoming transitions, since we transform the history
+ // state with a choice point
+ c.kind = PseudostateKind.CHOICE_LITERAL;
+ }
+ else {
+ return null;
+ }
+
+ // Create transitions from the choice point to each sub-state with the
+ // appropriate guard.
+ for (State subState : state.subStates) {
+ var Vertex targetVertex
+ if (subState.regions.size() == 0) {
+ targetVertex = subState
+ }
+ else {
+ targetVertex = subState.region.deepHistory
+ if (targetVertex == null) {
+ targetVertex = subState
+ }
+ }
+
+ val newTransition = state.region.createTransition(state.newFreshTransitionName)
+ newTransition.source = c;
+ newTransition.target = targetVertex;
+ val guard = newTransition.createGuard("CheckHistory");
+ guard.createOpaqueExpression('''history[«state.name»] == «subState.name»''')
+ if (state.entry != null) {
+ newTransition.chain.append(state.entry)
+ }
+ }
+ // If there was an initial pseudo-state, create a transition from the
+ // choice point to the initial state where the guard will be true if
+ // the composite state has not been visited before.
+ val initialState = state.region.initialState
+ if (initialState != null) {
+ val initialTransition = initialState.outgoings.get(0)
+
+ val newTransition = state.region.createTransition(state.newFreshTransitionName)
+ newTransition.source = c;
+ newTransition.target = initialTransition.target;
+ val guard = newTransition.createGuard("CheckHistory");
+ guard.createOpaqueExpression('''history[«state.name»] == «GlobalConstants.UNVISITED»''')
+ // TODO: not sure, if semantics is the same.
+ if (initialTransition.effect != null) {
+ // caveat: assigining the effect to the new transition will remove it from the original
+ // (initial will be removed later on => not a problem?)
+ newTransition.effect = initialTransition.effect;
+ newTransition.chain.append(newTransition.effect)
+ }
+ newTransition.chain.append(state.entry)
+ }
+ // If there was no initial pseudo-state, create a 'dummy' simple state
+ // representing "staying at the boundary", and create a transition from
+ // the choice point to this dummy state, where the guard is true if
+ // the state has not been visited before.
+ else {
+ // The name should be different name because one of the sub-states
+ // may have the same name as the composite.
+ val border = state.region.createState(state.newFreshName);
+
+ val newTransition = state.region.createTransition(state.newFreshTransitionName);
+ newTransition.source = c;
+ newTransition.target = border;
+ val guard = newTransition.createGuard("Check History")
+ guard.createOpaqueExpression('''history[«state.name»] == «GlobalConstants.UNVISITED»''')
+ if (state.entry != null) {
+ newTransition.chain.append(state.entry)
+ }
+ }
+ return c
+ }
+
+ /**
+ * Remove the initial pseudo-state and transition and create a transition
+ * from each entry point which does not have an explicit entry transition
+ * to a sub-state, to the initial state.
+ */
+ def removeInitialTransition(State state, Pseudostate historyChoicePoint) {
+ val initialState = state.region.initialState
+ if (initialState != null) {
+ val initialTransition = initialState.outgoings.get(0) // There should be exactly one initial transition
+ for (Pseudostate p : state.entryPoints) {
+ if (p.outgoings.empty) {
+ val newTransition =
+ state.region.createTransition(state.newFreshTransitionName)
+ newTransition.source = p
+ newTransition.target = initialTransition.target
+ newTransition.chain.append(state.entry)
+ newTransition.chain.append(initialTransition.effect);
+ }
+ }
+ state.region.transitions.remove(initialTransition)
+ // initialTransition.targetVertex.incomingTransitions.remove(initialTransition) // TODO: this might not be enough if the initial transition ends in a pseudo-state
+ // state.removeInitial
+ }
+ else {
+ for (Pseudostate p : state.entryPoints) {
+ if (p.outgoings.empty) {
+ val newTransition =
+ state.region.createTransition(state.newFreshTransitionName)
+ newTransition.setSource(p)
+ newTransition.setTarget(historyChoicePoint)
+ newTransition.effect = state.entry;
+ }
+ }
+ }
+ }
+
+ /**
+ * Annotate explicit exit transitions (transitions from a sub-state to an
+ * exit point) with a "history saving action", an action that sets the
+ * history table entry for the composite state according to the sub-state
+ * that is exited.
+ */
+ def annotateExplicitExitTransitions(State state) {
+ for (Pseudostate p : state.exitPoints) {
+ if (!p.incomings.empty) {
+ for (Transition t : p.incomings) {
+ if (saveHistoryBehavior == null) {
+ createSaveHistoryBehavior
+ }
+ // Actions can have specific subclasses in the Zeligsoft model. Here we use a single generic class.
+ // Therefore we add call information explicitly.
+ val UMLAction saveHistoryAction = new UMLAction(saveHistoryBehavior)
+ saveHistoryAction.addParam = state.name
+ saveHistoryAction.addParam = t.source.name
+ t.chain.append = saveHistoryAction
+ if (state.exit != null) {
+ t.chain.append(state.exit)
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Create exit points for each direct outgoing transition (transition leaving
+ * directly from the composite state's boundary).
+ */
+ def createExitPoints(State state) {
+ for (Transition t : state.outgoings) {
+ val p = state.createConnectionPoint(state.newFreshExitPointName);
+ p.kind = PseudostateKind.EXIT_POINT_LITERAL
+ t.source = p;
+ }
+ }
+
+ def createSaveHistoryBehavior() {
+ // create an opaque behavior without body. This will be added later in the UMLFlat2Cpp operation
+ saveHistoryBehavior = clazz.createOwnedBehavior(GlobalConstants.SAVE_HISTORY_FUNC_NAME,
+ UMLPackage.eINSTANCE.getOpaqueBehavior()
+ );
+ }
+
+ /**
+ * Create explicit exit transitions implied by group transitions. For each
+ * group transition creates a transition from every sub-state to the
+ * group-transitions's source exit point. It annotates these transitions
+ * with a "history saving action", an action which stores the sub-state
+ * in the history table entry for this composite state.
+ */
+ def createExitTransitions(State state) {
+
+ // Iterate over exit points, looking for group transitions.
+ for (Pseudostate p : state.exitPoints) {
+
+ // If the exit point doesn't have incoming transitions then there
+ // is at least one group transition from it.
+ if (p.incomings.empty) {
+
+ // Create explicit transitions from every sub-state to this
+ // exit point...
+ for (State subState : state.subStates) {
+
+ // ...for each group transition leaving the exit point.
+ for (Transition t : p.outgoings) {
+
+ if (saveHistoryBehavior == null) {
+ createSaveHistoryBehavior
+ }
+ // Append the history saving action and the state's
+ // exit action.
+ val newTransition = state.region.createTransition(state.newFreshTransitionName)
+ newTransition.source = subState
+ newTransition.target = p
+ // make a copy (adding it to triggers list would remove it from original transition).
+ for (trigger : t.triggers) {
+ val newTrigger = newTransition.createTrigger(trigger.name)
+ newTrigger.event = trigger.event
+ }
+ // newTransition.triggers.addAll(t.triggers)
+ newTransition.guard = t.guard
+ val UMLAction saveHistoryAction = new UMLAction(saveHistoryBehavior)
+ saveHistoryAction.addParam = state.name
+ saveHistoryAction.addParam = subState.name
+ newTransition.chain.append(saveHistoryAction)
+ newTransition.chain.append(state.exit)
+ // make a copy of the effect (but: quite bad, since we might create several copies of same effect)
+ if (t.effect instanceof OpaqueBehavior) {
+ val newBehavior = newTransition.createOpaqueEffect
+ newBehavior.name = t.effect.name
+ newBehavior.set = t.effect.body
+ }
+ }
+ }
+
+ // Remove the trigger and guard from the old group transition,
+ // but leave the transition.
+ // TODO: we must replace the direct group transition with an indirect group transition leaving from the exit point
+ for (Transition t : p.outgoings) {
+ t.triggers.clear
+ t.guard = null
+ t.effect = null
+ }
+ }
+ }
+ }
+
+ /**
+ * Flatten composite states.
+ */
+ protected def StateMachine phase2(StateMachine m) {
+ for (State s : m.states.clone) {
+ phase2ProcessState(s)
+ if (!s.subStates.empty) {
+ m.region.moveContents(s)
+ // remove regions from composite state
+ s.regions.clear
+ }
+ }
+ return m
+ }
+
+ /**
+ * Removes entry and exit points of a simple state, making all transitions
+ * to and from it, direct.
+ */
+ def dispatch void phase2ProcessState(State state) {
+ if (state.regions.empty) {
+ phase2ProcessSimpleState(state)
+ }
+ else {
+ phase2ProcessComplexState(state)
+ }
+ // change name afterwards (avoid that new names are taken into account recursively)
+ }
+
+ /**
+ * Removes entry and exit points of a simple state, making all transitions
+ * to and from it, direct.
+ */
+ def dispatch void phase2ProcessSimpleState(State state) {
+ for (Transition t : state.indirectIncomings) {
+ t.target = state // TODO: Potential problem: depending on the set implementation we may be modifying the iterator
+ }
+ for (Transition t : state.outgoings) {
+ t.source = state
+ }
+ for (Pseudostate p : state.entryPoints) {
+ state.connectionPoints.remove(p)
+ }
+ for (Pseudostate p : state.exitPoints) {
+ state.connectionPoints.remove(p)
+ }
+ }
+
+ /**
+ * Replaces all entry and exit points of the composite state with junction
+ * points, and recursively apply this to sub-states.
+ */
+ def dispatch void phase2ProcessComplexState(State state) {
+ // Replace connection points with junction points
+ for (Pseudostate p : state.connectionPoints.clone) {
+ var j = state.region.createPseudostate(GlobalConstants.JUNCTION_FUNC_PREFIX + p.name)
+ j.kind = PseudostateKind.JUNCTION_LITERAL
+
+ for (Transition t : p.incomings) {
+ t.target = j
+ }
+ for (Transition t : p.outgoings) {
+ t.source = j
+ }
+ if (p.kind == PseudostateKind.ENTRY_POINT_LITERAL) {
+ state.connectionPoints.remove(p)
+ }
+ else if (p.kind == PseudostateKind.EXIT_POINT_LITERAL) {
+ state.connectionPoints.remove(p)
+ }
+ }
+
+ // Process substates
+ for (State subState : state.subStates.clone) {
+ phase2ProcessState(subState)
+ if (!subState.regions.empty) {
+ state.region.moveContents(subState)
+ subState.regions.clear
+ }
+ }
+ }
+
+ /**
+ * Auxiliary methods
+ */
+ def String getNewFreshName(NamedElement parent) {
+ freshNameCounter ++
+ return parent.namePrefix + FRESH_NAME_PREFIX + freshNameCounter
+ }
+
+ def String getNewFreshEntryPointName(NamedElement parent) {
+ freshEntryPointNameCounter ++
+ return parent.namePrefix + FRESH_ENTRYPOINT_NAME_PREFIX + freshEntryPointNameCounter
+ }
+
+ def String getNewFreshExitPointName(NamedElement parent) {
+ freshExitPointNameCounter ++
+ return parent.namePrefix + FRESH_EXITPOINT_NAME_PREFIX + freshExitPointNameCounter
+ }
+
+ def String getNewFreshChoicePointName(NamedElement parent) {
+ freshChoicePointNameCounter ++
+ return parent.namePrefix + FRESH_CHOICEPOINT_NAME_PREFIX + freshChoicePointNameCounter
+ }
+
+ def String getNewFreshJunctionPointName(NamedElement parent) {
+ freshJunctionPointNameCounter ++
+ return parent.namePrefix + FRESH_JUNCTIONPOINT_NAME_PREFIX + freshJunctionPointNameCounter
+ }
+
+ def String getNewFreshTransitionName(NamedElement parent) {
+ freshTransitionNameCounter ++
+ return parent.namePrefix + FRESH_TRANSITION_NAME_PREFIX + freshTransitionNameCounter
+ }
+
+ def namePrefix(NamedElement ne) {
+ return ne.name + "_"
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/xtend-gen/.gitignore b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/xtend-gen/.gitignore
new file mode 100644
index 00000000000..c96a04f008e
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.qompass.modellibs.core/xtend-gen/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore \ No newline at end of file
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracebreakpoints.ui/.project b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracebreakpoints.ui/.project
new file mode 100644
index 00000000000..0e99cc63a9e
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracebreakpoints.ui/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.infra.services.tracebreakpoints.ui</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracebreakpoints/.project b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracebreakpoints/.project
new file mode 100644
index 00000000000..be89f0cf7f2
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracebreakpoints/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.infra.services.tracebreakpoints</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/.classpath b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/.classpath
new file mode 100644
index 00000000000..098194ca4b7
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/.project b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/.project
new file mode 100644
index 00000000000..07350fea43f
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.infra.services.tracepoints</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/.settings/org.eclipse.jdt.core.prefs b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..f42de363afa
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/META-INF/MANIFEST.MF b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..36e9fe9b7ba
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/META-INF/MANIFEST.MF
@@ -0,0 +1,30 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.emf;bundle-version="2.6.0",
+ org.eclipse.emf.ecore;bundle-version="2.6.1",
+ org.eclipse.core.resources;bundle-version="3.6.0",
+ org.apache.commons.lang;bundle-version="2.3.0",
+ org.eclipse.emf.edit.ui;bundle-version="2.6.0",
+ org.eclipse.gmf.runtime.emf.commands.core;bundle-version="1.0.100",
+ org.eclipse.papyrus.infra.core;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.widgets;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.services.decoration;bundle-version="1.2.0",
+ org.eclipse.uml2.uml;bundle-version="4.0.0",
+ org.eclipse.papyrus.infra.core.log;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.emf;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.gmfdiag.commands;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.services.markerlistener;bundle-version="1.2.0"
+Export-Package: org.eclipse.papyrus.infra.services.tracepoints,
+ org.eclipse.papyrus.infra.services.tracepoints.commands,
+ org.eclipse.papyrus.infra.services.tracepoints.dialogs,
+ org.eclipse.papyrus.infra.services.tracepoints.preferences
+Bundle-Vendor: %pluginProvider
+Bundle-ActivationPolicy: lazy
+Bundle-Version: 1.2.0.qualifier
+Bundle-Name: %pluginName
+Bundle-Localization: plugin
+Bundle-ManifestVersion: 2
+Bundle-Activator: org.eclipse.papyrus.infra.services.tracepoints.Activator
+Bundle-SymbolicName: org.eclipse.papyrus.infra.services.tracepoints;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.7
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/about.html b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/about.html
new file mode 100644
index 00000000000..209103075a7
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>November 14, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/build.properties b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/build.properties
new file mode 100644
index 00000000000..8e1f07ccf86
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/build.properties
@@ -0,0 +1,13 @@
+#
+#Mon Sep 12 09:30:24 CEST 2011
+bin.includes = META-INF/,\
+ .,\
+ about.html,\
+ plugin.properties,\
+ plugin.xml,\
+ icons/,\
+ schema/
+output..=bin/
+src.includes = about.html
+source..=src/
+bin..=bin/
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkp_16x16.gif b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkp_16x16.gif
new file mode 100644
index 00000000000..a831fe72782
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkp_16x16.gif
Binary files differ
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkp_9x9.gif b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkp_9x9.gif
new file mode 100644
index 00000000000..3678b09c6bf
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkp_9x9.gif
Binary files differ
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkp_grp.gif b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkp_grp.gif
new file mode 100644
index 00000000000..173661c5df7
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkp_grp.gif
Binary files differ
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkp_grp_disabled.gif b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkp_grp_disabled.gif
new file mode 100644
index 00000000000..5ea466bcb2a
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkp_grp_disabled.gif
Binary files differ
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkpd_16x16.gif b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkpd_16x16.gif
new file mode 100644
index 00000000000..74b26c31a4d
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkpd_16x16.gif
Binary files differ
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkpd_9x9.gif b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkpd_9x9.gif
new file mode 100644
index 00000000000..d6d8d31b06f
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkpd_9x9.gif
Binary files differ
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/debug.gif b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/debug.gif
new file mode 100644
index 00000000000..d90a29fead8
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/debug.gif
Binary files differ
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/properties.gif b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/properties.gif
new file mode 100644
index 00000000000..1dc19a31a0f
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/properties.gif
Binary files differ
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/trcp_11x12.gif b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/trcp_11x12.gif
new file mode 100644
index 00000000000..c04edf8e83e
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/trcp_11x12.gif
Binary files differ
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/trcp_16x16.gif b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/trcp_16x16.gif
new file mode 100644
index 00000000000..29ec606076f
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/trcp_16x16.gif
Binary files differ
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/trcpd_11x12.gif b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/trcpd_11x12.gif
new file mode 100644
index 00000000000..f3e7b3d6791
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/trcpd_11x12.gif
Binary files differ
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/trcpd_16x16.gif b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/trcpd_16x16.gif
new file mode 100644
index 00000000000..76c65b6196f
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/trcpd_16x16.gif
Binary files differ
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/plugin.properties b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/plugin.properties
new file mode 100644
index 00000000000..3cabfa42274
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/plugin.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2010 CEA LIST.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# CEA LIST - initial API and implementation
+###############################################################################
+pluginName=Papyrus Tracepoint Integration (Incubation)
+pluginProvider=Eclipse Modeling Project
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/plugin.xml b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/plugin.xml
new file mode 100644
index 00000000000..80dceda93de
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/plugin.xml
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+
+<plugin>
+ <extension-point id="traceMechanism" name="traceMechanism" schema="schema/traceMechanism.exsd"/>
+
+ <extension
+ point="org.eclipse.ui.menus">
+ <menuContribution
+ allPopups="true"
+ locationURI="popup:org.eclipse.papyrus.views.modelexplorer.modelexplorer.popup">
+ <menu
+ icon="icons/etool16/debug.gif"
+ id="org.eclipse.papyrus.views.modelexplorer.popup.tracing"
+ label="Tracing">
+ </menu>
+ </menuContribution>
+ <menuContribution
+ allPopups="true"
+ locationURI="popup:org.eclipse.papyrus.views.modelexplorer.popup.tracing">
+ <command
+ commandId="org.eclipse.papyrus.tracepoints.togglebreakpoint"
+ icon="icons/etool16/brkp_16x16.gif"
+ id="org.eclipse.papyrus.tracepoints.togglebreakpoint"
+ label="Toggle breakpoint">
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.tracepoints.togglebreakpointactivation"
+ icon="icons/etool16/brkpd_16x16.gif"
+ id="org.eclipse.papyrus.tracepoints.togglebreakpointactivation"
+ label="Toggle breakpoint activation">
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.tracepoints.toggletracepoint"
+ icon="icons/etool16/trcp_16x16.gif"
+ id="org.eclipse.papyrus.tracepoints.toggletracepoint"
+ label="Toggle tracepoint">
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.tracepoints.toggletracepointactivation"
+ icon="icons/etool16/trcpd_16x16.gif"
+ id="org.eclipse.papyrus.tracepoints.toggletracepointactivation"
+ label="Toggle tracepoint activation">
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.tracepoints.tracepointproperties"
+ icon="icons/etool16/properties.gif"
+ id="org.eclipse.papyrus.tracepoints.tracepointproperties"
+ label="Tracepoint properties">
+ </command>
+ </menuContribution>
+ </extension>
+
+ <extension
+ point="org.eclipse.ui.menus">
+ <menuContribution
+ allPopups="true"
+ locationURI="popup:org.eclipse.gmf.runtime.diagram.ui.DiagramEditorContextMenu?after=filtersMenu">
+ <menu
+ icon="icons/etool16/debug.gif"
+ id="org.eclipse.papyrus.views.gmf.popup.tracing"
+ label="Tracing">
+ </menu>
+ </menuContribution>
+ <menuContribution
+ allPopups="true"
+ locationURI="popup:org.eclipse.papyrus.views.gmf.popup.tracing">
+ <command
+ commandId="org.eclipse.papyrus.tracepoints.togglebreakpoint"
+ icon="icons/etool16/brkp_16x16.gif"
+ id="org.eclipse.papyrus.tracepoints.toggletracepoint"
+ label="Toggle breakpoint">
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.tracepoints.togglebreakpointactivation"
+ icon="icons/etool16/brkpd_16x16.gif"
+ id="org.eclipse.papyrus.tracepoints.togglebreakpointactivation"
+ label="Toggle breakpoint activation">
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.tracepoints.toggletracepoint"
+ icon="icons/etool16/trcp_16x16.gif"
+ id="org.eclipse.papyrus.tracepoints.toggletracepoint"
+ label="Toggle tracepoint">
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.tracepoints.toggletracepointactivation"
+ icon="icons/etool16/trcpd_16x16.gif"
+ id="org.eclipse.papyrus.tracepoints.toggletracepointactivation"
+ label="Toggle tracepoint activation">
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.tracepoints.tracepointproperties"
+ icon="icons/etool16/properties.gif"
+ id="org.eclipse.papyrus.tracepoints.tracepointproperties"
+ label="Tracepoint properties">
+ </command>
+ </menuContribution>
+ </extension>
+
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ categoryId="org.eclipse.papyrus.editor.category"
+ defaultHandler="org.eclipse.papyrus.infra.services.tracepoints.handler.ToggleBreakpointHandler"
+ description="ToggleBreakpoint"
+ id="org.eclipse.papyrus.tracepoints.togglebreakpoint"
+ name="ToggleBreakpoint">
+ </command>
+ <command
+ categoryId="org.eclipse.papyrus.editor.category"
+ defaultHandler="org.eclipse.papyrus.infra.services.tracepoints.handler.ToggleBreakpointActivationHandler"
+ description="ToggleBreakpointActivation"
+ id="org.eclipse.papyrus.tracepoints.togglebreakpointactivation"
+ name="ToggleBreakpointActivation">
+ </command>
+ <command
+ categoryId="org.eclipse.papyrus.editor.category"
+ defaultHandler="org.eclipse.papyrus.infra.services.tracepoints.handler.ToggleTracepointHandler"
+ description="ToggleTracepoint"
+ id="org.eclipse.papyrus.tracepoints.toggletracepoint"
+ name="ToggleTracepoint">
+ </command>
+ <command
+ categoryId="org.eclipse.papyrus.editor.category"
+ defaultHandler="org.eclipse.papyrus.infra.services.tracepoints.handler.ToggleTracepointActivationHandler"
+ description="ToggleTracepointActivation"
+ id="org.eclipse.papyrus.tracepoints.toggletracepointactivation"
+ name="ToggleTracepointActivation">
+ </command>
+ <command
+ categoryId="org.eclipse.papyrus.editor.category"
+ defaultHandler="org.eclipse.papyrus.infra.services.tracepoints.handler.TracepointPropertiesHandler"
+ description="TracepointPropertoes"
+ id="org.eclipse.papyrus.tracepoints.tracepointproperties"
+ name="TracepointProperties">
+ </command>
+ </extension>
+
+ <extension
+ point="org.eclipse.papyrus.infra.services.decoration.decorationSpecificFunctions">
+ <client
+ class="org.eclipse.papyrus.infra.services.tracepoints.TraceFunctions"
+ decorationType="org.eclipse.papyrus.tporbpmarker">
+ </client>
+ </extension>
+
+ <extension
+ id="org.eclipse.papyrus.tporbpmarker"
+ name="tracepoint or breakpoint marker"
+ point="org.eclipse.core.resources.markers">
+ <super
+ type="org.eclipse.papyrus.modelmarker">
+ </super>
+ <attribute
+ name="isActive">
+ </attribute>
+ <attribute
+ name="isTracepoint">
+ </attribute>
+ <persistent
+ value="true">
+ </persistent>
+ </extension>
+
+ <extension
+ id="org.eclipse.papyrus.tpmarker"
+ name="tracepoint marker"
+ point="org.eclipse.core.resources.markers">
+ <super
+ type="org.eclipse.papyrus.tporbpmarker">
+ </super>
+ <attribute
+ name="traceAction">
+ </attribute>
+ <attribute
+ name="traceMechanism">
+ </attribute>
+ <persistent
+ value="true">
+ </persistent>
+ </extension>
+
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ category="org.eclipse.papyrus.infra.core.sasheditor.preferences.generalcategory"
+ class="org.eclipse.papyrus.infra.services.tracepoints.preferences.TPPreferencePage"
+ id="org.eclipse.papyrus.infra.services.tracepoints.preferences.TPPreferencePage_ID"
+ name="Tracepoint preferences">
+ </page>
+ </extension>
+</plugin>
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/pom.xml b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/pom.xml
new file mode 100644
index 00000000000..5c3b2b2129a
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.infra.services.tracepoints</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/schema/traceMechanism.exsd b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/schema/traceMechanism.exsd
new file mode 100644
index 00000000000..ba8ed1aca6d
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/schema/traceMechanism.exsd
@@ -0,0 +1,109 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.papyrus.infra.services.tracepoints" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appinfo>
+ <meta.schema plugin="org.eclipse.papyrus.infra.services.tracepoints" id="traceMechanism" name="traceMechanism"/>
+ </appinfo>
+ <documentation>
+ Possibility to add implementations of a trace mechanism
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appinfo>
+ <meta.element />
+ </appinfo>
+ </annotation>
+ <complexType>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element ref="client"/>
+ </choice>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="client">
+ <complexType>
+ <attribute name="traceMechID" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn=":org.eclipse.papyrus.infra.services.tracepoints.ITraceMechanism"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="since"/>
+ </appinfo>
+ <documentation>
+ [Enter the first release in which this extension point appears.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="examples"/>
+ </appinfo>
+ <documentation>
+ [Enter extension point usage example here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="apiinfo"/>
+ </appinfo>
+ <documentation>
+ [Enter API information here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="implementation"/>
+ </appinfo>
+ <documentation>
+ [Enter information about supplied implementation of this extension point.]
+ </documentation>
+ </annotation>
+
+
+</schema>
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/Activator.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/Activator.java
new file mode 100644
index 00000000000..8054e407ef6
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/Activator.java
@@ -0,0 +1,90 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.services.tracepoints;
+
+import org.eclipse.papyrus.infra.core.log.LogHelper;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The activator class controls the plug-in life cycle.
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ /** The Constant PLUGIN_ID. */
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.infra.services.tracepoints"; //$NON-NLS-1$
+
+ // The shared instance
+ /** The plugin. */
+ private static Activator plugin;
+
+ /** The log service. */
+ public static LogHelper log;
+
+ /**
+ * The constructor.
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ /**
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ *
+ * @param context
+ * @throws Exception
+ */
+
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ log = new LogHelper(plugin);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ /**
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ *
+ * @param context
+ * @throws Exception
+ */
+
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ log = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance.
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/ITraceMechanism.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/ITraceMechanism.java
new file mode 100644
index 00000000000..17ef8dd24f1
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/ITraceMechanism.java
@@ -0,0 +1,74 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.services.tracepoints;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+
+/**
+ * The trace mechanism itself is not specific for specific implementations such
+ * as instrumenting code generators. Thus, the following interface may be defined
+ * by extensions that provide an implementation of a trace point.
+ * The first operation gets a set of available trace implementations that are supplied
+ * by the extension (in conjunction with other mechanisms).
+ * This interface is used for mechanisms that have a way of implementing trace point
+ *
+ * @author ansgar
+ *
+ */
+public interface ITraceMechanism {
+
+ /**
+ * @param eObj
+ * the element on which tracing is applied. It is passed, since the
+ * list of available trace mechanisms may depend on this object
+ * @return a list of IDs corresponding to available trace mechanisms
+ */
+ EList<String> getTraceMechanismIDs(EObject eObj);
+
+ /**
+ * Provide a description of the trace mechanism
+ *
+ * @param id
+ * the id of the trace mechanism
+ * @return its description
+ */
+ String getTraceMechanismDescription(EObject eObj, String id);
+
+ /**
+ * Apply the tracing. This usually means that an implementation specific
+ * mechanism will add additional information to the EObject, for instance
+ * in form of additional markings or stereotypes (there is no assumption
+ * how this is actually done). The idea is that these markings will be
+ * evaluated during code generation to produce the right result.
+ *
+ * @param id
+ * the ID of a trace mechanism
+ * @param element
+ * the element that should be trace
+ * @param traceOption
+ * an encoded trace option. e.g. that only the called operation
+ * should be trace and not the values of the passed parameters.
+ */
+ boolean applyTraceMechanism(EObject eObj, String id, int traceOption);
+
+ /**
+ * Configure the trace mechanisms for runtime, in particular evaluate activate/inactive
+ * tracepoint settings to obtain a suitable runtime configuration.
+ *
+ * @return
+ */
+ boolean configureTraceMechanisms();
+}
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/MarkerUtils.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/MarkerUtils.java
new file mode 100644
index 00000000000..a96b35d64f2
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/MarkerUtils.java
@@ -0,0 +1,84 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.services.tracepoints;
+
+import java.util.MissingResourceException;
+
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.papyrus.infra.core.markers.MarkerConstants;
+
+/**
+ * Utilities for Markers (TODO: some of these are generic marker services (move to infra core markers) and not specific to tracepoints).
+ *
+ * @author ansgar
+ *
+ */
+public class MarkerUtils {
+
+ public static URI getURI(IMarker marker) {
+ String uriOfMarkerStr = marker.getAttribute(MarkerConstants.uri, null);
+ if (uriOfMarkerStr != null) {
+ return URI.createURI(uriOfMarkerStr);
+ }
+ return null;
+ }
+
+ /**
+ * return the EObject of a marker (provided that it is a marker with a URI)
+ *
+ * @param marker
+ * @return the associated EObject
+ */
+ public static EObject getEObjectOfMarker(IMarker marker) {
+ return getEObjectOfMarker(resourceSet, marker);
+ }
+
+ /**
+ * return the EObject of a marker (provided that it is a marker with a URI)
+ *
+ * @param pResourceSet
+ * : the resourceSet into which the model associated with the eObject should
+ * be loaded
+ * @param marker
+ * @return the associated EObject
+ */
+ public static EObject getEObjectOfMarker(ResourceSet pResourceSet, IMarker marker) {
+ URI uriOfMarker = getURI(marker);
+ if (uriOfMarker != null) {
+ try {
+ pResourceSet.getResource(uriOfMarker.trimFragment(), true);
+ return pResourceSet.getEObject(uriOfMarker, true);
+ } catch (MissingResourceException e) {
+ throw new RuntimeException("MarkerUtils.getEObjectOfMarker: " + e.getMessage()); //$NON-NLS-1$
+ }
+ }
+ return null;
+ }
+
+ public static boolean isActive(IMarker marker) {
+ return marker.getAttribute(TracepointConstants.isActive, false);
+ }
+
+ /**
+ * our own copy of resource set
+ * we do not use the Papyrus resourceSet, since every editor keeps his own copy of the resource set (which is probably
+ * quite bad) and thus no resourceSet would be available, if Papyrus is not open.
+ */
+ public static ResourceSet resourceSet = new ResourceSetImpl();
+}
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/Messages.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/Messages.java
new file mode 100644
index 00000000000..3db820e80cb
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/Messages.java
@@ -0,0 +1,30 @@
+package org.eclipse.papyrus.infra.services.tracepoints;
+
+import org.eclipse.osgi.util.NLS;
+
+public class Messages extends NLS {
+ private static final String BUNDLE_NAME = "org.eclipse.papyrus.infra.services.tracepoints.messages"; //$NON-NLS-1$
+
+ public static String TraceActionSelection_ClassOptions;
+ public static String TraceActionSelection_ImplementationOptions;
+ public static String TraceActionSelection_NoPluginsProvideTraceExt;
+ public static String TraceActionSelection_NotAvail;
+ public static String TraceActionSelection_OperationOptions;
+ public static String TraceActionSelection_SelectTraceAction;
+ public static String TraceActionSelection_StateOptions;
+
+ public static String TPPreferencePage_ClassOptions;
+ public static String TPPreferencePage_OperationOptions;
+ public static String TPPreferencePage_StateOptions;
+ public static String TPPreferencePage_TMforOperations;
+ public static String TPPreferencePage_TMforPorts;
+ public static String TPPreferencePage_TMforStateMachines;
+ public static String TPPreferencePage_TraceOptions;
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ private Messages() {
+ }
+}
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TraceActions.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TraceActions.java
new file mode 100644
index 00000000000..9935817b45b
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TraceActions.java
@@ -0,0 +1,206 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.services.tracepoints;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.papyrus.infra.services.tracepoints.preferences.TPPreferenceConstants;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.State;
+
+/**
+ * Set of enumerations that indicates what we want to trace.
+ *
+ * @author ansgar
+ *
+ */
+public class TraceActions {
+
+ public enum TraceScope {
+ clazz,
+ operation,
+ state,
+ activity,
+ };
+
+ /**
+ * Options for tracing a class. Note that some options need additional information, e.g. "all operations"
+ * needs additional information how operations are traced
+ */
+ public enum TAClass {
+ Creation,
+ Destruction,
+ AllOperations,
+ AllPorts,
+ AllStates
+ // +(?) all properties/all operations
+ // +(all ports?)
+ // +all state changes? (hierarchical propagation?)
+
+ };
+
+ /**
+ * Different ways to trace operations: put only the call itself or the values of the parameters into
+ * a trace event.
+ */
+ public enum TAOperation {
+ OnlyCall,
+ ParameterValues, // here exclusive (parameter values and OnlyCall may not be selected at the same time)
+ };
+
+ /**
+ * Not used for the moment
+ */
+ public enum TAAttribute {
+ PropertyRead,
+ PropertyWrite; // write old and new value
+ };
+
+ /**
+ * Options to trace state
+ */
+ public enum TAState {
+ StateEnter, // add incoming transition to trace?
+ StateLeave, // add outgoing transition to trace?
+ Transition // nothing (?) (triggers are known? - no, could be one out of many triggers)
+ };
+
+ /**
+ * Not used for the moment
+ */
+ public enum TAActivity {
+ activity // (i.e. call operation action) explicit choice of (named attribute?)
+ };
+
+ public static String[][] getStringFields(Enum<?>[] enumValues) {
+ int i = 0;
+ String[][] taOptions = new String[enumValues.length][2];
+ for (Enum<?> tLiteral : enumValues) {
+ taOptions[i][1] = tLiteral.name();
+ taOptions[i][0] = tLiteral.name();
+ i++;
+ }
+ return taOptions;
+ }
+
+ public enum TraceFeature {
+ Class,
+ Port,
+ State,
+ Operation
+ };
+
+ /**
+ * Obtain the definition of a trace option in case of traces on classes
+ *
+ * @param traceAction
+ * @param subFeature
+ * the trace feature which we want to obtain, i.e. class, state or operation
+ * from a composite action string in case of class trace points
+ * @return
+ */
+ public static String getOptions(String traceAction, TraceFeature subFeature) {
+ String prefix = getStringPrefix(subFeature);
+ int pos = traceAction.indexOf(prefix);
+ if (pos == -1) {
+ return null;
+ } else {
+ // comma is used as separation character.
+ pos += prefix.length();
+ int endPos = traceAction.indexOf(',', pos);
+ if (endPos == -1) {
+ return traceAction.substring(pos);
+ }
+ return traceAction.substring(pos, endPos);
+ }
+ }
+
+ /**
+ * Get the prefix that is used in each case of a class action to distinguish class, state and operation actions.
+ *
+ * @param feature
+ * The trace feature for which we set an action
+ * @return
+ */
+ public static String getStringPrefix(TraceFeature feature) {
+ if (feature == TraceFeature.Class) {
+ return "C:"; //$NON-NLS-1$
+ }
+ if (feature == TraceFeature.Port) {
+ return "P:"; //$NON-NLS-1$
+ }
+ else if (feature == TraceFeature.State) {
+ return "S:"; //$NON-NLS-1$
+ }
+ else if (feature == TraceFeature.Operation) {
+ return "O:"; //$NON-NLS-1$
+ }
+ return null;
+ }
+
+ /**
+ * Initialize an action string that will be stored in the trace marker from the configured actions
+ * in the preferences. In case of a class, the value is a combination of different options
+ * that are prefixed to enable a unique classification
+ *
+ * @param feature
+ * The trace feature for which we set an action
+ * @return
+ */
+ public static String actionFromPreferences(TraceFeature feature) {
+ IPreferenceStore store = Activator.getDefault().getPreferenceStore();
+ if (feature == TraceFeature.Class) {
+ return compositeClassOption(store.getInt(TPPreferenceConstants.P_TRACE_OPTION_CLASS),
+ store.getInt(TPPreferenceConstants.P_TRACE_OPTION_STATE),
+ store.getInt(TPPreferenceConstants.P_TRACE_OPTION_OP));
+ }
+ else if (feature == TraceFeature.State) {
+ return store.getString(TPPreferenceConstants.P_TRACE_OPTION_STATE);
+ }
+ else if (feature == TraceFeature.Operation) {
+ return store.getString(TPPreferenceConstants.P_TRACE_OPTION_OP);
+ }
+ return ""; //$NON-NLS-1$
+ }
+
+ public static String compositeClassOption(int classOption, int stateOption, int operationOption) {
+ return getStringPrefix(TraceFeature.Class) + classOption + "," + //$NON-NLS-1$
+ getStringPrefix(TraceFeature.State) + stateOption + "," + //$NON-NLS-1$
+ getStringPrefix(TraceFeature.Operation) + operationOption;
+ }
+
+ /**
+ * Convenience function, return the action defined in the preferences in function of the model element
+ *
+ * @param element
+ * @return
+ */
+ public static String actionFromPreferences(EObject element) {
+ return actionFromPreferences(getTraceFeature(element));
+ }
+
+
+ public static TraceFeature getTraceFeature(EObject element) {
+ if (element instanceof State) {
+ return TraceFeature.State;
+ }
+ else if (element instanceof Operation) {
+ return TraceFeature.Operation;
+ }
+ else if (element instanceof org.eclipse.uml2.uml.Class) {
+ return TraceFeature.Class;
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TraceFunctions.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TraceFunctions.java
new file mode 100644
index 00000000000..a0a62b30f80
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TraceFunctions.java
@@ -0,0 +1,125 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.services.tracepoints;
+
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.papyrus.infra.services.decoration.IDecorationSpecificFunctions;
+import org.eclipse.papyrus.infra.services.decoration.util.Decoration.PreferedPosition;
+import org.eclipse.papyrus.infra.services.decoration.util.IPapyrusDecoration;
+import org.eclipse.papyrus.infra.services.markerlistener.IPapyrusMarker;
+
+
+public class TraceFunctions implements IDecorationSpecificFunctions {
+
+ public static final String activeBreakpoint16 = "icons/etool16/brkp_16x16.gif"; //$NON-NLS-1$
+
+ public static final String inActiveBreakpoint16 = "icons/etool16/brkpd_16x16.gif"; //$NON-NLS-1$
+
+ public static final String activeTracepoint16 = "icons/etool16/trcp_16x16.gif"; //$NON-NLS-1$
+
+ public static final String inActiveTracepoint16 = "icons/etool16/trcpd_16x16.gif"; //$NON-NLS-1$
+
+ public static final String activeBreakpoint9 = "icons/etool16/brkp_9x9.gif"; //$NON-NLS-1$
+
+ public static final String inActiveBreakpoint9 = "icons/etool16/brkpd_9x9.gif"; //$NON-NLS-1$
+
+ public static final String activeTracepoint11 = "icons/etool16/trcp_11x12.gif"; //$NON-NLS-1$
+
+ public static final String inActiveTracepoint11 = "icons/etool16/trcp_11x12.gif"; //$NON-NLS-1$
+
+ /**
+ * Return the image descriptor associated with a trace or breakpoint marker
+ */
+ @Override
+ public ImageDescriptor getImageDescriptorForGE(IPapyrusMarker marker) {
+
+
+ org.eclipse.papyrus.infra.widgets.Activator widgetsActivator =
+ org.eclipse.papyrus.infra.widgets.Activator.getDefault();
+ ImageDescriptor overlay = null;
+ boolean isActive = marker.getAttribute(TracepointConstants.isActive, false);
+ boolean isTracepoint = marker.getAttribute(TracepointConstants.isTracepoint, false);
+ if (isTracepoint) {
+ overlay = isActive ?
+ widgetsActivator.getImageDescriptor(Activator.PLUGIN_ID, activeTracepoint16) :
+ widgetsActivator.getImageDescriptor(Activator.PLUGIN_ID, inActiveTracepoint16);
+ }
+ else {
+ overlay = isActive ?
+ widgetsActivator.getImageDescriptor(Activator.PLUGIN_ID, activeBreakpoint16) :
+ widgetsActivator.getImageDescriptor(Activator.PLUGIN_ID, inActiveBreakpoint16);
+ }
+
+ return overlay;
+ }
+
+ /**
+ * Return the image descriptor associated with a trace or breakpoint marker
+ */
+ @Override
+ public ImageDescriptor getImageDescriptorForME(IPapyrusMarker marker) {
+ org.eclipse.papyrus.infra.widgets.Activator widgetsActivator =
+ org.eclipse.papyrus.infra.widgets.Activator.getDefault();
+ ImageDescriptor overlay = null;
+ boolean isActive = marker.getAttribute(TracepointConstants.isActive, false);
+ boolean isTracepoint = marker.getAttribute(TracepointConstants.isTracepoint, false);
+ if (isTracepoint) {
+ overlay = isActive ?
+ widgetsActivator.getImageDescriptor(Activator.PLUGIN_ID, activeTracepoint11) :
+ widgetsActivator.getImageDescriptor(Activator.PLUGIN_ID, inActiveTracepoint11);
+ }
+ else {
+ overlay = isActive ?
+ widgetsActivator.getImageDescriptor(Activator.PLUGIN_ID, activeBreakpoint9) :
+ widgetsActivator.getImageDescriptor(Activator.PLUGIN_ID, inActiveBreakpoint9);
+ }
+
+ return overlay;
+ }
+
+ @Override
+ public PreferedPosition getPreferedPosition(IPapyrusMarker marker) {
+ return PreferedPosition.SOUTH_EAST;
+ }
+
+ @Override
+ public String getMessage(IPapyrusMarker marker) {
+ boolean isActive = marker.getAttribute(TracepointConstants.isActive, false);
+ boolean isTracepoint = marker.getAttribute(TracepointConstants.isTracepoint, false);
+ return (isActive ? "active" : "inactive") + " " + //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
+ (isTracepoint ? "trace point" : "break point"); //$NON-NLS-1$//$NON-NLS-2$
+ }
+
+ public int getPriority(IMarker marker) {
+ return 0; // all markers have same priority (and we should not have multiple markers on the same model element).
+ }
+
+ @Override
+ public IPapyrusDecoration markerPropagation(EList<IPapyrusDecoration> childDecorations) {
+ return null;
+ }
+
+ @Override
+ public MarkChildren supportsMarkerPropagation() {
+ return MarkChildren.NO;
+ }
+
+ @Override
+ public int getPriority(IPapyrusMarker marker) {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+}
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TraceMechanism.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TraceMechanism.java
new file mode 100644
index 00000000000..3d64bbdc4bb
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TraceMechanism.java
@@ -0,0 +1,88 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.services.tracepoints;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceActions.TraceFeature;
+import org.eclipse.papyrus.infra.services.tracepoints.preferences.TPPreferenceConstants;
+
+
+/**
+ * Support for multiple trace mechanisms via the Eclipse extension mechanism
+ */
+
+public class TraceMechanism {
+
+ public static final String ITRACE_MECHANISM_ID = Activator.PLUGIN_ID + ".traceMechanism"; //$NON-NLS-1$
+
+ public static EList<ITraceMechanism> getTraceMechanisms()
+ {
+ EList<ITraceMechanism> mechanisms = new BasicEList<ITraceMechanism>();
+ IExtensionRegistry reg = Platform.getExtensionRegistry();
+ IConfigurationElement[] configElements = reg.getConfigurationElementsFor(ITRACE_MECHANISM_ID);
+ for (IConfigurationElement configElement : configElements) {
+ try {
+ // TODO: cache returned instance (avoid creating a new instance each time => more efficient, no need for static attributes)
+ final Object obj = configElement.createExecutableExtension("class"); //$NON-NLS-1$
+ if (obj instanceof ITraceMechanism) {
+ mechanisms.add((ITraceMechanism) obj);
+ }
+ } catch (CoreException exception) {
+ exception.printStackTrace();
+ }
+ }
+ return mechanisms;
+ }
+
+ /**
+ * get the ID of the default realization mechanism. In case of classes, need to store multiple mechanisms (how to trace states, how to trace
+ * operations)
+ *
+ * @return
+ */
+ public static String getMechanismFromPreferences(TraceFeature feature) {
+ IPreferenceStore store = Activator.getDefault().getPreferenceStore();
+ if (store != null) {
+ if (feature == TraceFeature.Class) {
+ return TraceActions.getStringPrefix(TraceFeature.Port) + store.getInt(TPPreferenceConstants.P_TRACE_IMPLEMENTATION_PORT) + "," + //$NON-NLS-1$
+ TraceActions.getStringPrefix(TraceFeature.State) + store.getInt(TPPreferenceConstants.P_TRACE_IMPLEMENTATION_SM) + "," + //$NON-NLS-1$
+ TraceActions.getStringPrefix(TraceFeature.Operation) + store.getInt(TPPreferenceConstants.P_TRACE_IMPLEMENTATION_OP);
+ }
+ else if (feature == TraceFeature.State) {
+ return store.getString(TPPreferenceConstants.P_TRACE_IMPLEMENTATION_SM);
+ }
+ else if (feature == TraceFeature.Operation) {
+ return store.getString(TPPreferenceConstants.P_TRACE_IMPLEMENTATION_OP);
+ }
+ }
+ return ""; //$NON-NLS-1$
+ }
+
+ /**
+ * Convenience function. Return defaultTraceMechanisms in function of the element being traced.
+ *
+ * @param element
+ * @return
+ */
+ public static String getDefaultMechanism(EObject element) {
+ return getMechanismFromPreferences(TraceActions.getTraceFeature(element));
+ }
+}
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TraceState.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TraceState.java
new file mode 100644
index 00000000000..f6e98d06d71
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TraceState.java
@@ -0,0 +1,20 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.services.tracepoints;
+
+
+public class TraceState {
+
+ public static boolean skipAllTracepoints = false;
+}
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TracepointConstants.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TracepointConstants.java
new file mode 100644
index 00000000000..2246147467b
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TracepointConstants.java
@@ -0,0 +1,35 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.services.tracepoints;
+
+
+
+public class TracepointConstants {
+
+ /**
+ * The id of the marker used for tracepoints and breakpoints
+ */
+ public static final String tpOrbpMarker = "org.eclipse.papyrus.tporbpmarker"; //$NON-NLS-1$
+
+ public static final String isActive = "isActive"; //$NON-NLS-1$
+
+ /**
+ * if true, marker is a tracepoint. Otherwise it is a breakpoint.
+ */
+ public static final String isTracepoint = "isTracepoint"; //$NON-NLS-1$
+
+ public static final String traceAction = "traceAction"; //$NON-NLS-1$
+
+ public static final String traceMechanism = "traceMechanism"; //$NON-NLS-1$
+}
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/AbstractTracepointCommand.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/AbstractTracepointCommand.java
new file mode 100644
index 00000000000..aaece766bed
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/AbstractTracepointCommand.java
@@ -0,0 +1,167 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermarcher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.services.tracepoints.commands;
+
+import java.util.Collections;
+
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
+import org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.papyrus.infra.core.markers.MarkerConstants;
+import org.eclipse.papyrus.infra.services.tracepoints.Activator;
+import org.eclipse.papyrus.infra.services.tracepoints.ITraceMechanism;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceMechanism;
+import org.eclipse.papyrus.infra.services.tracepoints.TracepointConstants;
+import org.eclipse.papyrus.infra.services.tracepoints.preferences.TPPreferenceConstants;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.State;
+
+/**
+ * Action used for pasting either a model element or a shape (i.e. the model element represented
+ * by the shape). Delegates to PasteShapeOrElementCommand
+ *
+ * @author Ansgar Radermacher (CEA LIST)
+ */
+abstract public class AbstractTracepointCommand extends AbstractTransactionalCommand {
+
+ protected TransactionalEditingDomain domain;
+
+ protected EObject selectedElement;
+
+ /**
+ * Creates a new ImportLibraryFromRepositoryCommand
+ *
+ * @param editingDomain
+ * editing domain that manages the changed objects
+ * @param runnable
+ * process that executes the modifications
+ * @param label
+ * the label of the command
+ * @param description
+ * description of the command
+ */
+
+ public AbstractTracepointCommand(String label, TransactionalEditingDomain domain, EObject selectedElement) {
+ super(domain, label, Collections.EMPTY_LIST);
+ this.domain = domain;
+ this.selectedElement = selectedElement;
+ }
+
+ protected void updateResourceAndURI() {
+ resource = selectedElement.eResource();
+ uri = resource.getURI() + "#" + resource.getURIFragment(selectedElement); //$NON-NLS-1$
+ iresource = WorkspaceSynchronizer.getFile(selectedElement.eResource());
+ }
+
+ protected IMarker findMarker(String type) {
+
+ if (iresource != null) {
+ try {
+ for (IMarker marker : iresource.findMarkers(type, false, IResource.DEPTH_INFINITE)) {
+ String markerURI = marker.getAttribute(MarkerConstants.uri, ""); //$NON-NLS-1$
+ if ((markerURI != null) && markerURI.equals(uri)) {
+ return marker;
+ }
+ }
+ } catch (CoreException ce) {
+ }
+ }
+ return null;
+ }
+
+ protected IMarker toggleMarker() {
+ try {
+ if (iresource != null) {
+ IMarker marker = findMarker(TracepointConstants.tpOrbpMarker);
+ if (marker == null) { // marker does not exist => create
+ marker = iresource.createMarker(TracepointConstants.tpOrbpMarker);
+ marker.setAttribute(MarkerConstants.uri, uri);
+ marker.setAttribute(TracepointConstants.isActive, true);
+ return marker;
+ }
+ else {
+ // marker exists => delete
+ marker.delete();
+ }
+ }
+ } catch (CoreException ce) {
+ }
+ return null;
+ }
+
+ protected void toggleMarkerActivation() {
+ try {
+ if (iresource != null) {
+ IMarker marker = findMarker(TracepointConstants.tpOrbpMarker);
+ if (marker == null) { // marker does not exist => create
+ marker = iresource.createMarker(TracepointConstants.tpOrbpMarker);
+ marker.setAttribute(MarkerConstants.uri, uri);
+ marker.setAttribute(TracepointConstants.isActive, true);
+
+ // apply trace mechanism according to default in preferences
+ IPreferenceStore store = Activator.getDefault().getPreferenceStore();
+ String id = null;
+ if (selectedElement instanceof Operation) {
+ id = store.getDefaultString(TPPreferenceConstants.P_TRACE_IMPLEMENTATION_OP);
+ }
+ else if (selectedElement instanceof Port) {
+ id = store.getDefaultString(TPPreferenceConstants.P_TRACE_IMPLEMENTATION_PORT);
+ }
+ else if (selectedElement instanceof State) {
+ id = store.getDefaultString(TPPreferenceConstants.P_TRACE_IMPLEMENTATION_SM);
+ }
+ if (id != null) {
+ EList<ITraceMechanism> mechanisms = TraceMechanism.getTraceMechanisms();
+ for (ITraceMechanism mechanism : mechanisms) {
+ for (String providedID : mechanism.getTraceMechanismIDs(selectedElement)) {
+ if (id.equals(providedID)) {
+ mechanism.applyTraceMechanism(selectedElement, id, 0);
+ }
+ }
+ }
+ }
+ }
+ else {
+ // marker exists => change activation status
+ boolean isSet = marker.getAttribute(TracepointConstants.isActive, false);
+ marker.setAttribute(TracepointConstants.isActive, !isSet);
+ }
+ }
+ } catch (CoreException ce) {
+ throw new RuntimeException(ce);
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean canExecute() {
+ return (selectedElement != null);
+ }
+
+ protected Resource resource;
+
+ protected IResource iresource;
+
+ protected String uri;
+}
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/ToggleBreakpointActivationCommand.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/ToggleBreakpointActivationCommand.java
new file mode 100644
index 00000000000..5fc0cce53ae
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/ToggleBreakpointActivationCommand.java
@@ -0,0 +1,40 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.services.tracepoints.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.util.TransactionUtil;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+
+
+public class ToggleBreakpointActivationCommand extends AbstractTracepointCommand {
+
+ public ToggleBreakpointActivationCommand(EObject selectedElement) {
+ super("Toggle Breakpoint activation", TransactionUtil.getEditingDomain(selectedElement), selectedElement); //$NON-NLS-1$
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
+ updateResourceAndURI();
+ toggleMarkerActivation();
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/ToggleBreakpointCommand.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/ToggleBreakpointCommand.java
new file mode 100644
index 00000000000..f5d0b1df3aa
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/ToggleBreakpointCommand.java
@@ -0,0 +1,41 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.services.tracepoints.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.util.TransactionUtil;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+
+
+public class ToggleBreakpointCommand extends AbstractTracepointCommand {
+
+ public ToggleBreakpointCommand(EObject selectedElement) {
+ super("Toggle Breakpoint", TransactionUtil.getEditingDomain(selectedElement), selectedElement); //$NON-NLS-1$
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException
+ {
+ updateResourceAndURI();
+ toggleMarker();
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/ToggleTracepointActivationCommand.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/ToggleTracepointActivationCommand.java
new file mode 100644
index 00000000000..60d3fc81eb4
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/ToggleTracepointActivationCommand.java
@@ -0,0 +1,41 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.services.tracepoints.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.util.TransactionUtil;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+
+
+public class ToggleTracepointActivationCommand extends AbstractTracepointCommand {
+
+ public ToggleTracepointActivationCommand(EObject selectedElement) {
+ super("Toggle tracepoint activation", TransactionUtil.getEditingDomain(selectedElement), selectedElement); //$NON-NLS-1$
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
+
+ updateResourceAndURI();
+ toggleMarkerActivation();
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/ToggleTracepointCommand.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/ToggleTracepointCommand.java
new file mode 100644
index 00000000000..f1353a264e0
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/ToggleTracepointCommand.java
@@ -0,0 +1,54 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.services.tracepoints.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.util.TransactionUtil;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceActions;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceMechanism;
+import org.eclipse.papyrus.infra.services.tracepoints.TracepointConstants;
+
+
+public class ToggleTracepointCommand extends AbstractTracepointCommand {
+
+ public ToggleTracepointCommand(EObject selectedElement) {
+ super("Toggle tracepoint", TransactionUtil.getEditingDomain(selectedElement), selectedElement); //$NON-NLS-1$
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
+ updateResourceAndURI();
+ try {
+ IMarker marker = toggleMarker();
+ if (marker != null) {
+ marker.setAttribute(TracepointConstants.isTracepoint, true);
+ // set default options from preferences
+ marker.setAttribute(TracepointConstants.traceAction, TraceActions.actionFromPreferences(selectedElement));
+ marker.setAttribute(TracepointConstants.traceMechanism, TraceMechanism.getDefaultMechanism(selectedElement));
+ }
+ } catch (CoreException e) {
+
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/TracepointPropertiesCommand.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/TracepointPropertiesCommand.java
new file mode 100644
index 00000000000..c61c0834ce1
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/TracepointPropertiesCommand.java
@@ -0,0 +1,82 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.services.tracepoints.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.util.TransactionUtil;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.papyrus.infra.services.tracepoints.TracepointConstants;
+import org.eclipse.papyrus.infra.services.tracepoints.dialogs.TraceActionSelection;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.uml2.uml.Element;
+
+
+public class TracepointPropertiesCommand extends AbstractTracepointCommand {
+
+ public TracepointPropertiesCommand(EObject selectedElement) {
+ super("Tracepoint properties", TransactionUtil.getEditingDomain(selectedElement), selectedElement); //$NON-NLS-1$
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException
+ {
+ updateResourceAndURI();
+ selectTraceActions();
+ return null;
+ }
+
+ protected void selectTraceActions() {
+ IMarker marker = findMarker(TracepointConstants.tpOrbpMarker);
+ if (marker != null) {
+ // should normally always hold, since this is checked in canExecute
+ TraceActionSelection tad = new TraceActionSelection(Display.getDefault().getActiveShell(), marker, (Element) selectedElement);
+ tad.open();
+ if (tad.getReturnCode() == IDialogConstants.OK_ID) {
+ Object[] result = tad.getResult();
+ String traceAction = (String) result[0];
+ String traceMechanism = (String) result[1];
+ try {
+ marker.setAttribute(TracepointConstants.traceAction, traceAction);
+ marker.setAttribute(TracepointConstants.traceMechanism, traceMechanism);
+ } catch (CoreException e) {
+ }
+ }
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean canExecute() {
+ if (selectedElement != null) {
+ updateResourceAndURI();
+ IMarker marker = findMarker(TracepointConstants.tpOrbpMarker);
+ if (marker != null) {
+ return marker.getAttribute(TracepointConstants.isTracepoint, false);
+ }
+ }
+ return false;
+ }
+}
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/dialogs/TraceActionSelection.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/dialogs/TraceActionSelection.java
new file mode 100644
index 00000000000..ce47f430c72
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/dialogs/TraceActionSelection.java
@@ -0,0 +1,304 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.services.tracepoints.dialogs;
+
+import java.util.Arrays;
+
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.jface.viewers.CheckStateChangedEvent;
+import org.eclipse.jface.viewers.CheckboxTableViewer;
+import org.eclipse.jface.viewers.ICheckStateListener;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.papyrus.infra.services.tracepoints.ITraceMechanism;
+import org.eclipse.papyrus.infra.services.tracepoints.Messages;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceActions;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceActions.TAClass;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceActions.TAOperation;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceActions.TAState;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceActions.TraceFeature;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceMechanism;
+import org.eclipse.papyrus.infra.services.tracepoints.TracepointConstants;
+import org.eclipse.papyrus.infra.services.tracepoints.preferences.BinaryEncodedMChoiceFieldEditor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.ui.dialogs.SelectionStatusDialog;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.State;
+
+public class TraceActionSelection extends SelectionStatusDialog {
+
+ protected CheckboxTableViewer fTraceImplementations;
+
+ protected Text fDescription;
+
+ IMarker m_marker;
+
+ BinaryEncodedMChoiceFieldEditor classOptions;
+
+ BinaryEncodedMChoiceFieldEditor operationOptions;
+
+ BinaryEncodedMChoiceFieldEditor stateOptions;
+
+ /**
+ * The model element that has a trace marker
+ */
+ private Element m_me;
+
+ public TraceActionSelection(Shell parent, IMarker marker, Element me) {
+ super(parent);
+ m_me = me;
+ m_marker = marker;
+ // int traceAction = marker.getAttribute(TracepointConstants.traceAction, 0);
+ }
+
+
+ /**
+ * @see SelectionStatusDialog#computeResult()
+ * need to return two values: trace action & mechanism
+ */
+ @Override
+ protected void computeResult() {
+ // nothing to do
+ String traceActionValue = null;
+ if (m_me instanceof State) {
+ traceActionValue = stateOptions.getResult();
+ }
+ else if (m_me instanceof Class) {
+ traceActionValue = TraceActions.compositeClassOption(
+ classOptions.getIntResult(),
+ stateOptions.getIntResult(),
+ operationOptions.getIntResult());
+ }
+ else if (m_me instanceof State) {
+ traceActionValue = stateOptions.getResult();
+ }
+ else if (m_me instanceof Operation) {
+ traceActionValue = operationOptions.getResult();
+ }
+ String traceMechanism = ""; //$NON-NLS-1$
+ for (Object tableElement : fTraceImplementations.getCheckedElements()) {
+ traceMechanism = (String) tableElement;
+ }
+ ;
+
+ Object[] result = new Object[] {
+ traceActionValue,
+ traceMechanism
+ };
+ setResult(Arrays.asList(result));
+ }
+
+ class EnumLabelProvider extends LabelProvider implements ITableLabelProvider {
+
+ @Override
+ public String getColumnText(Object obj, int index) {
+ if (obj instanceof Enum) {
+ return ((Enum<?>) obj).name();
+ }
+ return obj.toString();
+ }
+
+ @Override
+ public Image getColumnImage(Object obj, int index) {
+ return null;
+ }
+ }
+
+ class TraceMechanismsCP implements IStructuredContentProvider {
+
+ @Override
+ public void inputChanged(Viewer v, Object oldInput, Object newInput) {
+ }
+
+ @Override
+ public void dispose() {
+ }
+
+ @Override
+ public Object[] getElements(Object parent) {
+ Object items[] = null;
+ //
+ // Implementations of a tracing mechanism are depending on the injection mechanism and (likely) on the
+ // programming language. Therefore, they are not part of this plugin shipped with Papyrus, but use an
+ // extension mechanism.
+
+ EList<ITraceMechanism> mechanisms = TraceMechanism.getTraceMechanisms();
+ if (mechanisms.size() == 0) {
+ items = new String[] { Messages.TraceActionSelection_NoPluginsProvideTraceExt };
+ }
+ else {
+ EList<String> idList = new BasicEList<String>();
+ for (ITraceMechanism mechanism : mechanisms) {
+ for (String id : mechanism.getTraceMechanismIDs(m_me)) {
+ idList.add(id);
+ }
+ }
+ items = idList.toArray(new String[0]);
+ }
+ return items;
+ }
+ }
+
+ @Override
+ public Control createDialogArea(Composite parent) {
+ Composite contents = (Composite) super.createDialogArea(parent);
+
+ Label label = new Label(contents, SWT.NONE);
+ label.setText(Messages.TraceActionSelection_SelectTraceAction);
+
+ // need context dependent dialogs on options
+ // we may need more than one options (e.g. AllOperations + OperationsWithParameters + (begin/end or both?))
+ // clean way: accumulate all options, distribute them automatically accordingly. Better (even if less efficient, if strings)
+
+ String[][] taClassOptions = TraceActions.getStringFields(TAClass.values());
+ String[][] taStateOptions = TraceActions.getStringFields(TAState.values());
+ String[][] taOperationOptions = TraceActions.getStringFields(TAOperation.values());
+ String actionString = m_marker.getAttribute(TracepointConstants.traceAction, ""); //$NON-NLS-1$
+ String mechanismID = m_marker.getAttribute(TracepointConstants.traceMechanism, ""); //$NON-NLS-1$
+
+ if (m_me instanceof State) {
+ stateOptions = new BinaryEncodedMChoiceFieldEditor(Messages.TraceActionSelection_StateOptions, 3, taStateOptions, contents, true);
+ stateOptions.setupViaString(actionString);
+ }
+ else if (m_me instanceof Class) {
+ classOptions = new BinaryEncodedMChoiceFieldEditor(Messages.TraceActionSelection_ClassOptions, 3, taClassOptions, contents, true);
+ stateOptions = new BinaryEncodedMChoiceFieldEditor(Messages.TraceActionSelection_StateOptions, 3, taStateOptions, contents, true);
+ operationOptions = new BinaryEncodedMChoiceFieldEditor(Messages.TraceActionSelection_OperationOptions, 3, taOperationOptions, contents, true);
+ classOptions.setupViaString(TraceActions.getOptions(actionString, TraceFeature.Class));
+ stateOptions.setupViaString(TraceActions.getOptions(actionString, TraceFeature.State));
+ operationOptions.setupViaString(TraceActions.getOptions(actionString, TraceFeature.Operation));
+ }
+ else if (m_me instanceof Operation) {
+ operationOptions = new BinaryEncodedMChoiceFieldEditor(Messages.TraceActionSelection_OperationOptions, 3, taOperationOptions, contents, true);
+ operationOptions.setupViaString(actionString);
+ }
+
+ Group implementationGroup = new Group(parent, SWT.NONE);
+ implementationGroup.setText(Messages.TraceActionSelection_ImplementationOptions);
+
+ // need additional item how the trace mechanism should be realized, i.e. available tracing mechanisms
+ fTraceImplementations = CheckboxTableViewer.newCheckList(implementationGroup, SWT.H_SCROLL | SWT.V_SCROLL);
+
+ fTraceImplementations.setContentProvider(new TraceMechanismsCP());
+ fTraceImplementations.setInput(this);
+ fTraceImplementations.setChecked(mechanismID, true); // TODO: likely not to work
+
+ fTraceImplementations.addCheckStateListener(new ICheckStateListener() {
+
+ @Override
+ public void checkStateChanged(CheckStateChangedEvent event) {
+ Object element = event.getElement();
+ boolean isChecked = event.getChecked();
+ // assure radio button functionality
+ if (isChecked) {
+ for (Object checkedElement : fTraceImplementations.getCheckedElements()) {
+ if (checkedElement != element) {
+ fTraceImplementations.setChecked(checkedElement, false);
+ }
+ }
+ }
+ }
+ });
+
+ fTraceImplementations.addSelectionChangedListener(new ISelectionChangedListener() {
+
+ @Override
+ public void selectionChanged(SelectionChangedEvent event) {
+ ISelection selection = event.getSelection();
+ if (selection instanceof IStructuredSelection) {
+ Object first = ((IStructuredSelection) selection).getFirstElement();
+ if (first instanceof String) {
+ EList<ITraceMechanism> mechanisms = TraceMechanism.getTraceMechanisms();
+ boolean noDesc = true;
+ for (ITraceMechanism mechanism : mechanisms) {
+ String description = mechanism.getTraceMechanismDescription(m_me, (String) first);
+ if (description != null) {
+ fDescription.setText(description);
+ noDesc = false;
+ break;
+ }
+ }
+ if (noDesc) {
+ fDescription.setText(Messages.TraceActionSelection_NotAvail);
+ }
+ }
+ }
+ }
+ });
+
+ fDescription = new Text(implementationGroup, SWT.WRAP | SWT.V_SCROLL | SWT.READ_ONLY);
+
+ GridData span = new GridData();
+ span.horizontalAlignment = GridData.FILL;
+ span.grabExcessHorizontalSpace = true;
+ span.grabExcessVerticalSpace = true;
+ span.verticalAlignment = GridData.FILL;
+ span.heightHint = 250;
+
+ // fTraceActions.getTable().setLayoutData(span);
+ implementationGroup.setLayout(new GridLayout());
+ implementationGroup.setLayoutData(span);
+
+ GridData span2 = new GridData();
+ span2.horizontalAlignment = GridData.FILL;
+ span2.grabExcessHorizontalSpace = true;
+ span2.grabExcessVerticalSpace = true;
+ span2.verticalAlignment = GridData.FILL;
+ span2.heightHint = 80;
+ fDescription.setLayoutData(span2);
+ fTraceImplementations.getTable().setLayoutData(span2);
+
+ // ruleGroup.setLayout(new RowLayout (SWT.VERTICAL));
+ parent.setLayout(new GridLayout(1, false));
+ // parent.setLayoutData(groupGridData);
+ return contents;
+ }
+
+ // obtain name and explicit/implicit node Allocation
+ protected void setTextFromData(TreeItem ti) {
+ Object data = ti.getData();
+ if (data instanceof InstanceSpecification) {
+ // ti.setText(new String[]{ name, nodeName, "[" + list + "]" });
+ }
+ }
+
+ protected void refreshTree(TreeItem ti) {
+ setTextFromData(ti);
+ for (TreeItem subItem : ti.getItems()) {
+ refreshTree(subItem);
+ }
+ }
+}
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/AbstractCommandHandler.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/AbstractCommandHandler.java
new file mode 100644
index 00000000000..5f4c6281690
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/AbstractCommandHandler.java
@@ -0,0 +1,166 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.services.tracepoints.handler;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.emf.utils.BusinessModelResolver;
+import org.eclipse.papyrus.infra.emf.utils.ServiceUtilsForHandlers;
+import org.eclipse.papyrus.infra.services.tracepoints.Activator;
+import org.eclipse.ui.PlatformUI;
+
+/**
+ * <pre>
+ *
+ * This abstract command handler manages:
+ * - current selection in order to build a list of the selected {@link EObject}
+ * - execute the command (returned by children) in Papyrus {@link TransactionalEditingDomain}
+ * - calculate the command enablement and visibility regarding the command executability
+ * (the command is now shown in menu if not executable).
+ *
+ * </pre>
+ */
+public abstract class AbstractCommandHandler extends AbstractHandler {
+
+ /**
+ * <pre>
+ *
+ * Returns the command to execute (to be implemented
+ * in children implementing this class)
+ *
+ * @return the command to execute
+ *
+ * </pre>
+ */
+ protected abstract Command getCommand();
+
+ /**
+ * <pre>
+ * Get the selected element, the first selected element if several are selected or null
+ * if no selection or the selection is not an {@link EObject}.
+ *
+ * @return selected {@link EObject} or null
+ * </pre>
+ *
+ */
+ protected EObject getSelectedElement() {
+ EObject eObject = null;
+ Object selection = null;
+
+ // Get current selection
+ selection = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService().getSelection();
+
+ // Get first element if the selection is an IStructuredSelection
+ if (selection instanceof IStructuredSelection) {
+ IStructuredSelection structuredSelection = (IStructuredSelection) selection;
+ selection = structuredSelection.getFirstElement();
+ }
+
+ // Treat non-null selected object (try to adapt and return EObject)
+ if (selection != null) {
+ Object businessObject = BusinessModelResolver.getInstance().getBusinessModel(selection);
+ if (businessObject instanceof EObject) {
+ eObject = (EObject) businessObject;
+ }
+ }
+ return eObject;
+ }
+
+ /**
+ * <pre>
+ * Parse current selection and extract the list of {@link EObject} from
+ * this selection.
+ *
+ * This also tries to adapt selected element into {@link EObject}
+ * (for example to get the {@link EObject} from a selection in the ModelExplorer).
+ *
+ * @return a list of currently selected {@link EObject}
+ * </pre>
+ *
+ */
+ protected List<EObject> getSelectedElements() {
+
+ List<EObject> selectedEObjects = new ArrayList<EObject>();
+
+ // Parse current selection
+ ISelection selection = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService().getSelection();
+ if (selection instanceof IStructuredSelection) {
+ IStructuredSelection structuredSelection = (IStructuredSelection) selection;
+ for (Object current : structuredSelection.toArray()) {
+ // Adapt current selection to EObject
+ if (current instanceof IAdaptable) {
+ selectedEObjects.add((EObject) ((IAdaptable) current).getAdapter(EObject.class));
+ }
+ }
+ } else { // Not a IStructuredSelection
+ if (selection != null) {
+ // Adapt current selection to EObject
+ if (selection instanceof IAdaptable) {
+ selectedEObjects.add((EObject) ((IAdaptable) selection).getAdapter(EObject.class));
+ }
+ }
+ }
+
+ return selectedEObjects;
+ }
+
+ /**
+ *
+ * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+ *
+ * @param event
+ * @return null
+ * @throws ExecutionException
+ */
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ try {
+ ServiceUtilsForHandlers util = ServiceUtilsForHandlers.getInstance();
+ util.getTransactionalEditingDomain(event).getCommandStack().execute(getCommand());
+ } catch (ServiceException e) {
+ Activator.log.error("Unexpected error while executing command.", e); //$NON-NLS-1$
+ }
+
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean isEnabled() {
+ return getCommand().canExecute();
+ }
+
+ /**
+ *
+ * @return true (visible) when the command can be executed.
+ */
+ public boolean isVisible() {
+ return getCommand().canExecute();
+ }
+
+
+}
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/ToggleBreakpointActivationHandler.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/ToggleBreakpointActivationHandler.java
new file mode 100644
index 00000000000..2d79fc944ac
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/ToggleBreakpointActivationHandler.java
@@ -0,0 +1,33 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.services.tracepoints.handler;
+
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.papyrus.commands.wrappers.GMFtoEMFCommandWrapper;
+import org.eclipse.papyrus.infra.services.tracepoints.commands.ToggleBreakpointActivationCommand;
+
+/**
+ * Handler for toggling breakpoint activation. Delegates to associated command
+ *
+ * @author Ansgar Radermacher (CEA LIST)
+ */
+public class ToggleBreakpointActivationHandler extends AbstractCommandHandler {
+
+ @Override
+ protected Command getCommand() {
+ // not useful to cache command, since selected element may change
+ return new GMFtoEMFCommandWrapper(new ToggleBreakpointActivationCommand(getSelectedElement()));
+ }
+}
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/ToggleBreakpointHandler.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/ToggleBreakpointHandler.java
new file mode 100644
index 00000000000..30a64d1f7aa
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/ToggleBreakpointHandler.java
@@ -0,0 +1,33 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.services.tracepoints.handler;
+
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.papyrus.commands.wrappers.GMFtoEMFCommandWrapper;
+import org.eclipse.papyrus.infra.services.tracepoints.commands.ToggleBreakpointCommand;
+
+/**
+ * Handler for toggling a break point. Delegates to associated command
+ *
+ * @author Ansgar Radermacher (CEA LIST)
+ */
+public class ToggleBreakpointHandler extends AbstractCommandHandler {
+
+ @Override
+ protected Command getCommand() {
+ // not useful to cache command, since selected element may change
+ return new GMFtoEMFCommandWrapper(new ToggleBreakpointCommand(getSelectedElement()));
+ }
+}
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/ToggleTracepointActivationHandler.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/ToggleTracepointActivationHandler.java
new file mode 100644
index 00000000000..778ff6f23ba
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/ToggleTracepointActivationHandler.java
@@ -0,0 +1,33 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.services.tracepoints.handler;
+
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.papyrus.commands.wrappers.GMFtoEMFCommandWrapper;
+import org.eclipse.papyrus.infra.services.tracepoints.commands.ToggleTracepointActivationCommand;
+
+/**
+ * Handler for toggling tracepoint activation. Delegates to associated command
+ *
+ * @author Ansgar Radermacher (CEA LIST)
+ */
+public class ToggleTracepointActivationHandler extends AbstractCommandHandler {
+
+ @Override
+ protected Command getCommand() {
+ // not useful to cache command, since selected element may change
+ return new GMFtoEMFCommandWrapper(new ToggleTracepointActivationCommand(getSelectedElement()));
+ }
+}
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/ToggleTracepointHandler.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/ToggleTracepointHandler.java
new file mode 100644
index 00000000000..b1334b8f784
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/ToggleTracepointHandler.java
@@ -0,0 +1,33 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.services.tracepoints.handler;
+
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.papyrus.commands.wrappers.GMFtoEMFCommandWrapper;
+import org.eclipse.papyrus.infra.services.tracepoints.commands.ToggleTracepointCommand;
+
+/**
+ * Handler for toggling a tracepoint. Delegates to associated command
+ *
+ * @author Ansgar Radermacher (CEA LIST)
+ */
+public class ToggleTracepointHandler extends AbstractCommandHandler {
+
+ @Override
+ protected Command getCommand() {
+ // not useful to cache command, since selected element may change
+ return new GMFtoEMFCommandWrapper(new ToggleTracepointCommand(getSelectedElement()));
+ }
+}
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/TracepointPropertiesHandler.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/TracepointPropertiesHandler.java
new file mode 100644
index 00000000000..b191d9bb6c4
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/TracepointPropertiesHandler.java
@@ -0,0 +1,33 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.services.tracepoints.handler;
+
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.papyrus.commands.wrappers.GMFtoEMFCommandWrapper;
+import org.eclipse.papyrus.infra.services.tracepoints.commands.TracepointPropertiesCommand;
+
+/**
+ * Handler for changing the properties of a tracepoint. Delegates to associated command
+ *
+ * @author Ansgar Radermacher (CEA LIST)
+ */
+public class TracepointPropertiesHandler extends AbstractCommandHandler {
+
+ @Override
+ protected Command getCommand() {
+ // not useful to cache command, since selected element may change
+ return new GMFtoEMFCommandWrapper(new TracepointPropertiesCommand(getSelectedElement()));
+ }
+}
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/messages.properties b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/messages.properties
new file mode 100644
index 00000000000..94ce99780de
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/messages.properties
@@ -0,0 +1,15 @@
+TPPreferencePage_ClassOptions=Class options
+TPPreferencePage_OperationOptions=Operations options
+TPPreferencePage_StateOptions=State options
+TPPreferencePage_TMforOperations=Trace Mechanism for operations (+construction/destruction)
+TPPreferencePage_TMforPorts=Trace Mechanism for ports
+TPPreferencePage_TMforStateMachines=Trace Mechanism for state machines
+TPPreferencePage_TraceOptions=Trace options
+
+TraceActionSelection_ClassOptions=Class options
+TraceActionSelection_ImplementationOptions=Implementation options
+TraceActionSelection_NoPluginsProvideTraceExt=no plugins provide trace extension mechanism
+TraceActionSelection_NotAvail=<not available>
+TraceActionSelection_OperationOptions=Operation options
+TraceActionSelection_SelectTraceAction=Select trace action for this element
+TraceActionSelection_StateOptions=State options \ No newline at end of file
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/BinaryEncodedMChoiceFieldEditor.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/BinaryEncodedMChoiceFieldEditor.java
new file mode 100644
index 00000000000..f0889b96393
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/BinaryEncodedMChoiceFieldEditor.java
@@ -0,0 +1,134 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.services.tracepoints.preferences;
+
+import org.eclipse.swt.widgets.Composite;
+
+
+/**
+ * A class derived from the MultipleChoiceFieldEditor.
+ * It encodes a multiple choice value in a binary way, i.e. bit I is set in the result, if the i-th choice is active.
+ * This class can also be used outside a preference page
+ *
+ * @author ansgar
+ *
+ */
+public class BinaryEncodedMChoiceFieldEditor extends MultipleChoiceFieldEditor {
+
+ /**
+ * @param name
+ * The preference ID
+ * @param labeltext
+ * the label text
+ * @param numColumns
+ * the number of columns
+ * @param labelsAndValues
+ * a two dimensional array containing the labels and values
+ * @param parent
+ * the parent SWT composite (field editor parent)
+ * @param useGroup
+ * display contents within a group
+ */
+ public BinaryEncodedMChoiceFieldEditor(String name, String labeltext, int numColumns, String[][] labelsAndValues, Composite parent, boolean useGroup) {
+ super(name, labeltext, numColumns, labelsAndValues, parent, useGroup);
+ }
+
+
+ /**
+ * Convenience constructor, if used outside a preference page
+ *
+ * @param labeltext
+ * the label text
+ * @param numColumns
+ * the number of columns
+ * @param labelsAndValues
+ * a two dimensional array containing the labels and values
+ * @param parent
+ * the parent SWT composite (field editor parent)
+ * @param useGroup
+ * display contents within a group
+ */
+ public BinaryEncodedMChoiceFieldEditor(String labeltext, int numColumns, String[][] labelsAndValues, Composite parent, boolean useGroup) {
+ super("", labeltext, numColumns, labelsAndValues, parent, useGroup); //$NON-NLS-1$
+ }
+
+ /**
+ * Use this function to initialize the set/non-set flags within the dialog from a binary encoded value,
+ * if you use the dialog outside a preference page
+ *
+ * @param currentValue
+ */
+ public void setupViaString(String currentValue) {
+ setupControls(currentValue);
+ }
+
+ /**
+ * Use this function to get the results,
+ * if you use the dialog outside a preference page
+ *
+ * @return the result
+ */
+ public String getResult() {
+ result = gatherSettings();
+ return result;
+ }
+
+ /**
+ * Convenience function returning an integer result instead of a String result
+ * (requires double conversion that is difficult to avoid, since calculateResults needs to return
+ * a string);
+ *
+ * @return
+ */
+ public int getIntResult() {
+ if (getResult() == null) {
+ return 0;
+ }
+ return Integer.parseInt(getResult());
+ }
+
+ @Override
+ protected String calculateResult(String[][] settings) {
+ int traceActionValue = 0;
+ int index = 0;
+ for (String setting[] : settings) {
+ // [0] = name, [1] = value [2] = checked
+ if (setting[2].equals("true")) { //$NON-NLS-1$
+ traceActionValue += 1 << index;
+ }
+ index++;
+ }
+ ;
+ return String.valueOf(traceActionValue);
+ }
+
+ @Override
+ protected boolean isSelected(String fieldName, String valueToSet) {
+ try {
+ int value = new Integer(valueToSet);
+ int index = 0;
+ for (String setting[] : labelsAndValues) {
+ // [0] = name, [1] = value [2] = checked
+ if (setting[0].equals(fieldName)) {
+ return (value & (1 << index)) > 0;
+ }
+ index++;
+ }
+ ;
+ } catch (NumberFormatException e) {
+ }
+ return false;
+ }
+}
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/MultipleChoiceFieldEditor.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/MultipleChoiceFieldEditor.java
new file mode 100644
index 00000000000..2bd41aadfa5
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/MultipleChoiceFieldEditor.java
@@ -0,0 +1,235 @@
+/*******************************************************************************
+ * Copyright (c) 2008 itemis AG (http://www.itemis.eu) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ *******************************************************************************/
+package org.eclipse.papyrus.infra.services.tracepoints.preferences;
+
+import org.eclipse.jface.preference.FieldEditor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Group;
+
+
+/**
+ * @author Dennis Hübner - Initial contribution and API
+ * [used within Papyrus to avoid dependency to Xtext, minor visibility modification]
+ *
+ */
+public abstract class MultipleChoiceFieldEditor extends FieldEditor {
+
+ private Composite checkBoxBox;
+
+ private final boolean useGroup;
+
+ protected final String[][] labelsAndValues;
+
+ private final int numColumns;
+
+ private Button[] checkBoxButtons;
+
+ protected String result;
+
+ public MultipleChoiceFieldEditor(String name, String labeltext, int numColumns, String[][] labelsAndValues,
+ Composite fieldEditorParent, boolean useGroup) {
+ init(name, labeltext);
+ this.numColumns = numColumns;
+ this.labelsAndValues = labelsAndValues.clone();
+ this.useGroup = useGroup;
+ createControl(fieldEditorParent);
+ }
+
+ /**
+ * @param settings
+ * String[][fieldName,fieldValue,isChecked]
+ * @return value as String
+ */
+ protected abstract String calculateResult(String[][] settings);
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.preference.FieldEditor#adjustForNumColumns(int)
+ */
+ @Override
+ protected void adjustForNumColumns(int numColumns) {
+ Control control = getLabelControl();
+ if (control != null) {
+ ((GridData) control.getLayoutData()).horizontalSpan = numColumns;
+ }
+ ((GridData) checkBoxBox.getLayoutData()).horizontalSpan = numColumns;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.jface.preference.FieldEditor#doFillIntoGrid(org.eclipse.swt
+ * .widgets.Composite, int)
+ */
+ @Override
+ protected void doFillIntoGrid(Composite parent, int numColumns) {
+ if (useGroup) {
+ Control control = getCheckBoxControl(parent);
+ GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+ control.setLayoutData(gd);
+ }
+ else {
+ Control control = getLabelControl(parent);
+ GridData gd = new GridData();
+ gd.horizontalSpan = numColumns;
+ control.setLayoutData(gd);
+ control = getCheckBoxControl(parent);
+ gd = new GridData();
+ gd.horizontalSpan = numColumns;
+ control.setLayoutData(gd);
+ }
+ }
+
+ private Control getCheckBoxControl(Composite parent) {
+ if (checkBoxBox == null) {
+ Font font = parent.getFont();
+ if (useGroup) {
+ Group group = new Group(parent, SWT.NONE);
+ group.setFont(font);
+ String text = getLabelText();
+ if (text != null) {
+ group.setText(text);
+ }
+ checkBoxBox = group;
+ GridLayout layout = new GridLayout();
+ layout.horizontalSpacing = HORIZONTAL_GAP;
+ layout.numColumns = numColumns;
+ checkBoxBox.setLayout(layout);
+ }
+ else {
+ checkBoxBox = new Composite(parent, SWT.NONE);
+ GridLayout layout = new GridLayout();
+ layout.marginWidth = 0;
+ layout.marginHeight = 0;
+ layout.horizontalSpacing = HORIZONTAL_GAP;
+ layout.numColumns = numColumns;
+ checkBoxBox.setLayout(layout);
+ checkBoxBox.setFont(font);
+ }
+
+ checkBoxButtons = new Button[labelsAndValues.length];
+ for (int i = 0; i < labelsAndValues.length; i++) {
+ Button checkBox = new Button(checkBoxBox, SWT.CHECK | SWT.LEFT);
+ checkBoxButtons[i] = checkBox;
+ String[] labelAndValue = labelsAndValues[i];
+ checkBox.setText(labelAndValue[0]);
+ checkBox.setData(labelAndValue[1]);
+ checkBox.setFont(font);
+ checkBox.addSelectionListener(new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent event) {
+ setPresentsDefaultValue(false);
+ String oldResult = result;
+ result = gatherSettings();
+ fireValueChanged(VALUE, oldResult, result);
+ }
+ });
+ }
+ checkBoxBox.addDisposeListener(new DisposeListener() {
+
+ @Override
+ public void widgetDisposed(DisposeEvent event) {
+ checkBoxBox = null;
+ checkBoxButtons = null;
+ }
+ });
+ }
+ else {
+ checkParent(checkBoxBox, parent);
+ }
+ return checkBoxBox;
+ }
+
+ protected String gatherSettings() {
+ String[][] settings = new String[checkBoxButtons.length][3];
+ for (int i = 0; i < checkBoxButtons.length; i++) {
+ Button currentCheckBox = checkBoxButtons[i];
+ String name = currentCheckBox.getText();
+ String value = (String) currentCheckBox.getData();
+ String checked = String.valueOf(currentCheckBox.getSelection());
+ settings[i] = new String[] { name, value, checked };
+ }
+ return calculateResult(settings);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.preference.FieldEditor#doLoad()
+ */
+ @Override
+ public void doLoad() {
+ setupControls(getPreferenceStore().getString(getPreferenceName()));
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.preference.FieldEditor#doLoadDefault()
+ */
+ @Override
+ protected void doLoadDefault() {
+ setupControls(getPreferenceStore().getDefaultString(getPreferenceName()));
+ }
+
+ protected void setupControls(String valueToSet) {
+ for (int i = 0; i < checkBoxButtons.length; i++) {
+ Button currentCheckBox = checkBoxButtons[i];
+ currentCheckBox.setSelection(isSelected(currentCheckBox.getText(), valueToSet));
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.preference.FieldEditor#doStore()
+ */
+ @Override
+ protected void doStore() {
+ if (result == null) {
+ return;
+ }
+ getPreferenceStore().setValue(getPreferenceName(), result);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.preference.FieldEditor#getNumberOfControls()
+ */
+ @Override
+ public int getNumberOfControls() {
+ return 1;
+ }
+
+ @Override
+ public void setEnabled(boolean enabled, Composite parent) {
+ if (!useGroup) {
+ super.setEnabled(enabled, parent);
+ }
+ for (Button button : checkBoxButtons) {
+ button.setEnabled(enabled);
+ }
+ }
+
+ abstract protected boolean isSelected(String fieldName, String valueToSet);
+}
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/TPPreferenceConstants.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/TPPreferenceConstants.java
new file mode 100644
index 00000000000..805ae8a3b87
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/TPPreferenceConstants.java
@@ -0,0 +1,51 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.services.tracepoints.preferences;
+
+/**
+ * Constant definitions for plug-in preferences
+ */
+public class TPPreferenceConstants {
+
+ /**
+ * The trace mechanism that should be used by default
+ */
+ public static final String P_TRACE_IMPLEMENTATION_PORT = "papyrus.trace.implementation.port"; //$NON-NLS-1$
+
+ /**
+ * The trace mechanism that should be used by default
+ */
+ public static final String P_TRACE_IMPLEMENTATION_OP = "papyrus.trace.implementation.op"; //$NON-NLS-1$
+
+ /**
+ * The trace mechanism that should be used by default
+ */
+ public static final String P_TRACE_IMPLEMENTATION_SM = "papyrus.trace.implementation.sm"; //$NON-NLS-1$
+
+
+ /**
+ * Options for trace implementation via state machines
+ */
+ public static final String P_TRACE_OPTION_CLASS = "papyrus.trace.option.class"; //$NON-NLS-1$
+
+ /**
+ * Options for trace implementation for operations
+ */
+ public static final String P_TRACE_OPTION_STATE = "papyrus.trace.option.state"; //$NON-NLS-1$
+
+ /**
+ * Options for trace implementation via state machines
+ */
+ public static final String P_TRACE_OPTION_OP = "papyrus.trace.option.op"; //$NON-NLS-1$
+}
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/TPPreferenceInitializer.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/TPPreferenceInitializer.java
new file mode 100644
index 00000000000..4280caa8c4e
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/TPPreferenceInitializer.java
@@ -0,0 +1,54 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.services.tracepoints.preferences;
+
+import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.papyrus.infra.services.tracepoints.Activator;
+import org.eclipse.papyrus.infra.services.tracepoints.ITraceMechanism;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceMechanism;
+
+/**
+ * Class used to initialize default preference values.
+ */
+public class TPPreferenceInitializer extends AbstractPreferenceInitializer {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
+ */
+ @Override
+ public void initializeDefaultPreferences() {
+ IPreferenceStore store = Activator.getDefault().getPreferenceStore();
+ EList<ITraceMechanism> mechanisms = TraceMechanism.getTraceMechanisms();
+ String mechanismID = ""; //$NON-NLS-1$
+ if (mechanisms.size() > 0) {
+ ITraceMechanism mechanism = mechanisms.get(0);
+ // TODO: function need to support null object
+ EList<String> mechanismIDs = mechanism.getTraceMechanismIDs(null);
+ if (mechanismIDs.size() > 0) {
+ mechanismID = mechanismIDs.get(0);
+ }
+ }
+ store.setDefault(TPPreferenceConstants.P_TRACE_IMPLEMENTATION_PORT, mechanismID);
+ store.setDefault(TPPreferenceConstants.P_TRACE_IMPLEMENTATION_OP, mechanismID);
+ store.setDefault(TPPreferenceConstants.P_TRACE_IMPLEMENTATION_SM, mechanismID);
+
+ store.setDefault(TPPreferenceConstants.P_TRACE_OPTION_CLASS, 3);
+ store.setDefault(TPPreferenceConstants.P_TRACE_OPTION_STATE, 0);
+ store.setDefault(TPPreferenceConstants.P_TRACE_OPTION_OP, 0);
+ }
+}
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/TPPreferencePage.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/TPPreferencePage.java
new file mode 100644
index 00000000000..eb4008a2308
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/TPPreferencePage.java
@@ -0,0 +1,108 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.services.tracepoints.preferences;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.jface.preference.ComboFieldEditor;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.jface.preference.RadioGroupFieldEditor;
+import org.eclipse.papyrus.infra.services.tracepoints.Activator;
+import org.eclipse.papyrus.infra.services.tracepoints.ITraceMechanism;
+import org.eclipse.papyrus.infra.services.tracepoints.Messages;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceActions;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceActions.TAClass;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceActions.TAOperation;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceActions.TAState;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceMechanism;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+
+/**
+ * This class represents the TracePoint preference page
+ * <p>
+ * This page is used to modify preferences only. They are stored in the preference store that belongs to the main plug-in class. That way, preferences can be accessed directly via the preference store.
+ */
+
+public class TPPreferencePage
+ extends FieldEditorPreferencePage
+ implements IWorkbenchPreferencePage {
+
+ public TPPreferencePage() {
+ super(GRID);
+ setPreferenceStore(Activator.getDefault().getPreferenceStore());
+ setDescription(Messages.TPPreferencePage_TraceOptions);
+ }
+
+ /**
+ * Creates the field editors. Field editors are abstractions of
+ * the common GUI blocks needed to manipulate various types
+ * of preferences. Each field editor knows how to save and
+ * restore itself.
+ */
+ @Override
+ public void createFieldEditors() {
+ EList<ITraceMechanism> mechanisms = TraceMechanism.getTraceMechanisms();
+ int elements = 0;
+ for (ITraceMechanism mechanism : mechanisms) {
+ // TODO: function need to support null object
+ EList<String> mechanismIDs = mechanism.getTraceMechanismIDs(null);
+ elements += mechanismIDs.size();
+ }
+ String[][] mechList = new String[elements][2];
+ elements = 0;
+ for (ITraceMechanism mechanism : mechanisms) {
+ // TODO: function need to support null object
+ EList<String> mechanismIDs = mechanism.getTraceMechanismIDs(null);
+ for (String id : mechanismIDs) {
+ mechList[elements][1] = id;
+ mechList[elements][0] = mechanism.getTraceMechanismDescription(null, id);
+ elements++;
+ }
+ }
+
+ String[][] taClassOptions = TraceActions.getStringFields(TAClass.values());
+ String[][] taStateOptions = TraceActions.getStringFields(TAState.values());
+ String[][] taOperationOptions = TraceActions.getStringFields(TAOperation.values());
+
+ addField(new BinaryEncodedMChoiceFieldEditor(TPPreferenceConstants.P_TRACE_OPTION_CLASS, Messages.TPPreferencePage_ClassOptions, 3, taClassOptions, getFieldEditorParent(), true));
+
+ addField(new BinaryEncodedMChoiceFieldEditor(TPPreferenceConstants.P_TRACE_OPTION_STATE, Messages.TPPreferencePage_StateOptions, 3, taStateOptions, getFieldEditorParent(), true));
+
+ addField(new RadioGroupFieldEditor(
+ TPPreferenceConstants.P_TRACE_OPTION_OP,
+ Messages.TPPreferencePage_OperationOptions, 3, taOperationOptions, getFieldEditorParent(), true));
+
+ addField(new ComboFieldEditor(
+ TPPreferenceConstants.P_TRACE_IMPLEMENTATION_PORT,
+ Messages.TPPreferencePage_TMforPorts, mechList, getFieldEditorParent()));
+
+ addField(new ComboFieldEditor(
+ TPPreferenceConstants.P_TRACE_IMPLEMENTATION_OP,
+ Messages.TPPreferencePage_TMforOperations, mechList, getFieldEditorParent()));
+
+ addField(new ComboFieldEditor(
+ TPPreferenceConstants.P_TRACE_IMPLEMENTATION_SM,
+ Messages.TPPreferencePage_TMforStateMachines, mechList, getFieldEditorParent()));
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+ */
+ @Override
+ public void init(IWorkbench workbench) {
+ }
+}
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/.classpath b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/.classpath
new file mode 100644
index 00000000000..248b4c5dc7a
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="xtend-gen"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/.gitignore b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/.gitignore
new file mode 100644
index 00000000000..5500bf75774
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/.gitignore
@@ -0,0 +1 @@
+tmpModel
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/.project b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/.project
new file mode 100644
index 00000000000..e5477bc69be
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/.project
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.qompass.modellibs.tracing</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.acceleo.ide.ui.acceleoBuilder</name>
+ <arguments>
+ <dictionary>
+ <key>compilation.kind</key>
+ <value>compilation.absolute.path</value>
+ </dictionary>
+ <dictionary>
+ <key>compliance</key>
+ <value>pragmatic</value>
+ </dictionary>
+ <dictionary>
+ <key>resource.kind</key>
+ <value>xmi</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.acceleo.ide.ui.acceleoNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/.settings/org.eclipse.jdt.core.prefs b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..f42de363afa
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/META-INF/MANIFEST.MF b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..6908c801140
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/META-INF/MANIFEST.MF
@@ -0,0 +1,28 @@
+Manifest-Version: 1.0
+Export-Package: org.eclipse.papyrus.qompass.modellibs.tracing,
+ org.eclipse.papyrus.qompass.modellibs.tracing.acceleo
+Require-Bundle: org.eclipse.papyrus.fcm.profile;bundle-version="1.2.0",
+ org.eclipse.papyrus.qompass.modellibs.core;bundle-version="1.2.0",
+ org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.papyrus.qompass.designer.core;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.services.tracepoints;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.core;bundle-version="1.2.0",
+ org.eclipse.emf.workspace;bundle-version="1.5.0",
+ org.eclipse.uml2.uml;bundle-version="4.0.0",
+ org.eclipse.papyrus.uml.tools.utils;bundle-version="1.2.0",
+ org.eclipse.papyrus.qompass.designer.ui;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.diagram.wizards;bundle-version="1.2.0",
+ com.google.guava;bundle-version="11.0.0",
+ org.eclipse.xtext.xbase.lib,
+ org.eclipse.xtend.lib,
+ org.eclipse.xtend.lib.macro
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-Version: 1.2.0.qualifier
+Bundle-Localization: plugin
+Bundle-Name: %pluginName
+Bundle-Activator: org.eclipse.papyrus.qompass.modellibs.tracing.Activator
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.qompass.modellibs.tracing;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.7
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/about.html b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/about.html
new file mode 100644
index 00000000000..209103075a7
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>November 14, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/build.acceleo b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/build.acceleo
new file mode 100644
index 00000000000..9ce34a99746
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/build.acceleo
@@ -0,0 +1,26 @@
+<!-- ===================================================================== -->
+<!-- Custom targets. -->
+<!-- Set customBuildCallbacks = build.acceleo in your build.properties. -->
+<!-- ===================================================================== -->
+<project name="Build Acceleo Module" default="noDefault">
+ <!-- ================================================================= -->
+ <!-- Default target -->
+ <!-- ================================================================= -->
+ <target name="noDefault">
+ <echo message="This file must be called with explicit targets" />
+ </target>
+
+ <!-- ================================================================= -->
+ <!-- This will be called automatically after the compilation of each -->
+ <!-- Bundle... in dependency order. -->
+ <!-- ================================================================= -->
+ <target name="post.compile.@dot">
+ <acceleoCompiler
+ sourceFolder="${target.folder}"
+ outputFolder="${target.folder}"
+ dependencies="${target.folder}/../../org.eclipse.papyrus.fcm.profile;${target.folder}/../../org.eclipse.papyrus.qompass.modellibs.core;${target.folder}/../../org.eclipse.papyrus.qompass.designer.core;${target.folder}/../../org.eclipse.papyrus.qompass.designer.vsl;${target.folder}/../../org.eclipse.papyrus.cpp.profile;${target.folder}/../../org.eclipse.papyrus.infra.widgets;${target.folder}/../../org.eclipse.papyrus.acceleo;${target.folder}/../../org.eclipse.papyrus.uml.tools.utils;${target.folder}/../../org.eclipse.papyrus.codegen.extensionpoints;${target.folder}/../../org.eclipse.papyrus.uml.diagram.wizards;${target.folder}/../../org.eclipse.papyrus.infra.gmfdiag.common;${target.folder}/../../org.eclipse.gmf.tooling.runtime;${target.folder}/../../org.eclipse.papyrus.infra.services.tracepoints;${target.folder}/../../org.eclipse.papyrus.qompass.designer.ui;${target.folder}/../../org.eclipse.papyrus.uml.properties;${target.folder}/../../org.eclipse.papyrus.views.properties;"
+ binaryResource="false"
+ packagesToRegister="">
+ </acceleoCompiler>
+ </target>
+</project>
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/build.properties b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/build.properties
new file mode 100644
index 00000000000..a9d7f6eeed9
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/build.properties
@@ -0,0 +1,14 @@
+source.. = src/,\
+ xtend-gen/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ models/,\
+ build.properties,\
+ help/,\
+ html/,\
+ about.html,\
+ plugin.properties
+customBuildCallbacks = build.acceleo
+src.includes = about.html
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/help/tocconcepts.xml b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/help/tocconcepts.xml
new file mode 100644
index 00000000000..0344ca208f3
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/help/tocconcepts.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?NLS TYPE="org.eclipse.help.toc"?>
+
+<toc label="Concepts" link_to="../org.eclipse.papyrus.qompass.designer.doc/toc.xml#modellibs">
+ <topic label="Qompass trace support" href="html/userguide.htm">
+ </topic>
+</toc>
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image001.gif b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image001.gif
new file mode 100755
index 00000000000..5271b605b82
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image001.gif
Binary files differ
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image002.gif b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image002.gif
new file mode 100755
index 00000000000..d82c319e550
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image002.gif
Binary files differ
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image003.gif b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image003.gif
new file mode 100755
index 00000000000..fae2ca8952f
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image003.gif
Binary files differ
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image004.jpg b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image004.jpg
new file mode 100755
index 00000000000..864120f480a
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image004.jpg
Binary files differ
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image005.jpg b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image005.jpg
new file mode 100755
index 00000000000..9c9d1935d00
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image005.jpg
Binary files differ
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image006.jpg b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image006.jpg
new file mode 100755
index 00000000000..d732917a0fc
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image006.jpg
Binary files differ
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image007.gif b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image007.gif
new file mode 100755
index 00000000000..2a26c4ddaa7
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image007.gif
Binary files differ
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image008.jpg b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image008.jpg
new file mode 100755
index 00000000000..a332638c7e5
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image008.jpg
Binary files differ
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image009.jpg b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image009.jpg
new file mode 100755
index 00000000000..bb1eed8a3b3
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image009.jpg
Binary files differ
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/userguide.htm b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/userguide.htm
new file mode 100644
index 00000000000..b2f52da6ea1
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/userguide.htm
@@ -0,0 +1,213 @@
+<html>
+<head>
+<title>Model-Based Tracing of UML models in Papyrus</title>
+</head>
+<body>
+<h1>Model-Based Tracing of UML models in Papyrus</h1>
+<p></p>
+<div class=WordSection3>
+<h1>1. Introduction</h1>
+<p>
+The Papyrus Trace Framework allows
+annotating UML model elements with a trace annotation. Different kind of model
+elements can be annotated, such as operations or ports. These annotations are
+shown by means of a decoration icon. When the code of the application is
+generated, the trace declaration must lead to an instrumentation of the
+generated code for a specific trace implementation, in our case primarily
+LTTng.</p>
+<h1>2. Annotating Model elements</h1>
+<p >Several model elements can be annotated
+with trace information. In the sequel, we list these and outline the different
+trace options.</p>
+<p >1. Class/component itself. When a class is annotated, by default its
+creation and destruction is traced. In addition, a class has several features
+(such as operations and attributes). These can be traced without having to
+place a tracepoint on the feature itself. The user can choose whether he wants
+to trace in addition all attributes, all operations or all states. This choice
+is available in the tracing context menu, after the tracepoint has been
+applied.</p>
+<p>2. Port of a component</p>
+<p>
+If a port of a component is traced, an interceptor is placed within the components container. The
+interceptor traces the operations that are associated with a port. For
+instance, a data-flow port is associated with push or pull operations that take
+the concerned data type as parameter.</p>
+<p align=center ><img
+width=216 height=101 id="Objet 1"
+src="images/image001.gif"></p>
+<p >3. Operation of a class</p>
+<p >A tracepoint may
+be placed on an operation of a class. This means that an interceptor (on class
+level) will create a trace event before and/or after the operation has been
+called. In addition, there is the option to add the operation name and the
+model reference into the trace point, or ' in addition ' all of the operations
+parameters. If the trace event is produced before the application invocation,
+out parameters and return values are not part of the trace event.</p>
+<p align=center ><img
+width=137 height=106 id="Objet 2"
+src="images/image002.gif"></p>
+<p >4. Property of a class</p>
+<p >Properties
+(attributes) of a class can be traced, if the attribute's type is itself a
+class. In this case, the tracepoint is interpreted as a trace on the instance.
+It implies activating tracing on the attributes type, but restricting the
+production of a trace to the role (instance) that the type plays within the class
+declaring the attribute. This mechanism can be realized within the framework,
+but is not implemented at the moment.</p>
+<p >5.
+Trace
+an instance specification</p>
+<p >Putting a trace
+point on an instance specification is quite similar to putting a trace point to
+an attribute: the classifier referenced by the instance specification will have
+trace support but actual tracing is restricted to concrete instance. Not implemented (planned for 2013)</p>
+<p ><img width=185 height=61
+id="Objet 4" src="images/image003.gif"></p>
+<p >6.
+State
+(within a statechart)</p>
+<p >If a class defines a state-chart, the
+states can be annotated with a trace marker. A trace event is produced, if the
+state is entered and/or left (configurable via option). Not implemented
+(planned for 2013)</p>
+<p >7.
+Transition:
+A transition can be annotated. A trace event is produced, when the transition
+is fired. </p>
+<p ><img width=290 height=85
+id="Image 10" src="images/image004.jpg"></p>
+<p ></p>
+<h1 >Code produced for a trace
+annotation</h1>
+<h2>2.1
+Trace declaration</h2>
+<p >In LTTng, a trace events need to have a
+declaration. We distinguish events that have a generic declaration and those
+requiring a specific declaration. For instance, a call event for an operation
+has a generic declaration, if parameters are not included: all that is needed
+is the operation name (or identifier). Although we could always use a generic
+declaration with the operation name as parameter, we declare the name (and URI
+reference) in the events declaration, i.e. in its meta-data. Thus, an event
+instance does not include the model URI and is therefore quite lcompact on the
+expense of a potentially large number of different events.</p>
+<p >In general, the event declaration includes
+a model reference, e.g. ref. to port or operation and event data. In case of an
+operation call, the event data corresponds to the values of parameter and an
+identification of the associated instance. The following code fragment shows,
+how a tracepoint is declared in case of a port interception. Here, the port 'p',
+typed with interface ICompute is traced, these are the actual of a package
+template with the two formal parameters interface and port.</p>
+<p >We use a canonical name for the event type
+which is composed of the model name, the name of a package template and the
+actual variables for the template. In our example, the model is called
+ClientServerTraceTest, the package methodCall_port_ICompute_p (the underlying package
+template is called methodCall_port, the actual for the two formals Interface
+and port are 'ICompute' and 'p', respectively). The second parameter for the
+event declaration is the elements name, e.g. the operation name ('add' in the
+example) in case of a traced operation.</p>
+<div >
+<p >TRACEPOINT_EVENT(ClientServerTraceTest_methodCall_port_ICompute_p,
+add,</p>
+<p >
+TP_ARGS(const char *, instanceName, int, a, int, b),</p>
+<p >
+TP_FIELDS(</p>
+<p >
+ctf_string(instanceName, instanceName)</p>
+<p >
+ctf_integer(int, a, a)</p>
+<p >
+ctf_integer(int, b, b)</p>
+<p > )</p>
+<p >)</p>
+<p >TRACEPOINT_MODEL_EMF_URI(ClientServerTraceTest_methodCall_port_ICompute_p,
+add, &quot;platform:/resource/org.eclipse.papyrus.qompass.designer.examples/model/ClientServerTraceTest.uml#_4KiE8DLbEd2qeKRLMdIx_A&quot;)</p>
+</div>
+<p ></p>
+<p >For each trace event, the added
+instrumentation code with invoke the tracepoint, in case of the example above
+by</p>
+<div >
+<p >tracepoint(ClientServerTraceTest_methodCall_port_ICompute_p, add, <span
+style='color:#0000C0'>instanceName, a, b);</p>
+</div>
+<p >Note that instanceName is an attribute of the interception
+class, i.e. not a fixed string, a and b are the actual parameters of an
+operation.</p>
+<h1>3. Example</h1>
+<p >This section demonstrates the use of the trace
+mechanism by means of a very simple application, called client/server trace
+test. The model is available via the 'new example' menu. Select the example
+from the 'Qompass examples' folder. </p>
+<p align=center ><img width=567 height=314 id="Image 15"
+src="images/image005.jpg" alt=trace4.png></p>
+<p align=center ><a
+name="_Ref343641256">Figure </a>1: Tracepoint on operation, shown in model
+explorer, diagram and trace view</p>
+<p >Figure 1 shows a
+small test application. A tracepoint is placed on an operation testOp. The
+tracepoint is also visible in the tracepoint view (first selected entry) and in
+the model explorer and the left. The tracepoint view is an additional view that
+can be shown via the Eclipse standard 'show view' dialog, appearing in the
+Papyrus category.</p>
+<p ></p>
+<p ></p>
+<p align=center ><img width=593 height=71 id="Image 9"
+src="images/image006.jpg" alt=trace9.png></p>
+<p align=center ><a
+name="_Ref343721358">Figure </a>2: Set trace points via context menu</p>
+<p >Figure 2 shows a
+part of the context menu of a model element in the model explorer or a diagram.
+It contains a sub-menu called 'Tracing' that contains trace related functions.
+In particular, it is possible to toggle a tracepoint, i.e. add or remove a
+tracepoint. A tracepoint can be active or inactive. While the instrumentation
+is always added, i.e. also when the tracepoint is inactive, trace events should
+only be produced for an active tracepoint. This sould be done via the LTTng
+runtime control mechanisms.</p>
+<p ></p>
+<p ><img width=590 height=342
+id="Image 13" src="images/image007.gif"
+alt=trace8.png></p>
+<p align=center ><a
+name="_Ref343721365">Figure </a>4: Preference dialog for tracing</p>
+<p >Figure 4 shows the
+preference dialog for tracing within the Papyrus category. The dialog captures
+the different options how a tracepoint of a class, a state and on an operation
+should be interpreted, e.g. whether an operation is be trace with or without
+parameter values.</p>
+<p >In addition to these options, the
+instrumentation has a modular realization mechanism and the default
+implementation among available implementations can be chosen. The Qompass model
+library contains for instance not only an LTTng based trace implementation, but
+also one based on OTF (open trace format).</p>
+<p ></p>
+<p ></p>
+<p align=center ><b><img width=609 height=263 id="Image 16"
+src="images/image008.jpg"
+alt=trace7-events.png></b></p>
+<p align=center ><a
+name="_Ref343723153">Figure </a>5: Trace event view via TMF</p>
+<p >Once the tracepoints are set, an
+application can be compiled and executed. Currently, the runtime trace options
+must be set manually (e.g. enable all events). The generated trace can be
+imported by means of the TMF (trace monitoring framework) which is part of the
+LTTng linux-tools. Figure 5
+shows the event view of this framework (note that the view will be replaced by
+an editor from version 2.0 on) displaying the trace of the client/server trace
+test model. The screenshot shows the event timestamp, type and content. It
+depicts that the type corresponds to a qualified name in the model element and
+that the contents contains parameter values.</p>
+<p align=center ><b></b></p>
+<p align=center ><b><img width=609 height=280 id="Image 17"
+src="images/image009.jpg"
+alt=trace5-events-filtered.png></b></p>
+<p align=center ><a
+name="_Ref343723478">Figure </a>6: Trace event view, filtered (only 'testOp'
+is shown)</p>
+<p >In Figure 6, the event view has been restricted
+to the operation 'testOp' by means of a context operation of an element in the
+model explorer or diagram. In this case, only events for the operation testOp
+are shown.</p>
+</div>
+</body>
+</html>
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ClientServerTraceTest.di b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ClientServerTraceTest.di
new file mode 100644
index 00000000000..de6e71c6b4a
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ClientServerTraceTest.di
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi" xmlns:history="http://www.eclipse.org/papyrus/0.7.0/controlmode">
+ <di:SashWindowsMngr>
+ <pageList>
+ <availablePage>
+ <emfPageIdentifier href="ClientServerTraceTest.notation#_XSHWMF36Ed-UvNEDwY5GNg"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="ClientServerTraceTest.notation#_wOG5sF36Ed-UvNEDwY5GNg"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="ClientServerTraceTest.notation#_aeSh0F37Ed-UvNEDwY5GNg"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="ClientServerTraceTest.notation#_q-Wa0F37Ed-UvNEDwY5GNg"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="ClientServerTraceTest.notation#_6FvnwGONEd-seu3qyZgHfg"/>
+ </availablePage>
+ <availablePage/>
+ <availablePage/>
+ <availablePage>
+ <emfPageIdentifier href="ClientServerTraceTest.notation#_HoscYMniEeCMCo5Ox2CNmg"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="ClientServerTraceTest.notation#_rbZ3IDeFEeGPyrZ5I3hMlA"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="ClientServerTraceTest.notation#_Rk2pgDVlEeKoYLVLZgpRiw"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="ClientServerTraceTest.notation#_57mwQDclEeKAhIrFXfR8zQ"/>
+ </availablePage>
+ </pageList>
+ <sashModel currentSelection="/0/@sashModel/@windows.0/@children.0">
+ <windows>
+ <children xsi:type="di:TabFolder">
+ <children>
+ <emfPageIdentifier href="ClientServerTraceTest.notation#_XSHWMF36Ed-UvNEDwY5GNg"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="ClientServerTraceTest.notation#_wOG5sF36Ed-UvNEDwY5GNg"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="ClientServerTraceTest.notation#_aeSh0F37Ed-UvNEDwY5GNg"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="ClientServerTraceTest.notation#_q-Wa0F37Ed-UvNEDwY5GNg"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="ClientServerTraceTest.notation#_6FvnwGONEd-seu3qyZgHfg"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="ClientServerTraceTest.notation#_HoscYMniEeCMCo5Ox2CNmg"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="ClientServerTraceTest.notation#_rbZ3IDeFEeGPyrZ5I3hMlA"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="ClientServerTraceTest.notation#_Rk2pgDVlEeKoYLVLZgpRiw"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="ClientServerTraceTest.notation#_57mwQDclEeKAhIrFXfR8zQ"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+ </di:SashWindowsMngr>
+ <history:ControledResource/>
+ <history:ControledResource/>
+ <history:ControledResource/>
+ <history:ControledResource/>
+ <history:ControledResource/>
+ <history:ControledResource/>
+ <history:ControledResource/>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ClientServerTraceTest.notation b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ClientServerTraceTest.notation
new file mode 100644
index 00000000000..0a038c23221
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ClientServerTraceTest.notation
@@ -0,0 +1,1600 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:css="http://www.eclipse.org/papyrus/infra/gmfdiag/css" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_XSHWMF36Ed-UvNEDwY5GNg" type="PapyrusUMLClassDiagram" name="Interfaces" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_Pj6oUDeEEeGPyrZ5I3hMlA" type="2004" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pj6oUjeEEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Pj7PYDeEEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pj7PYTeEEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Pj7PYjeEEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pj7PYzeEEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Pj7PZDeEEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Pj7PZTeEEeGPyrZ5I3hMlA" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Pj7PZjeEEeGPyrZ5I3hMlA" visible="false" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Pj7PZzeEEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Pj7PaDeEEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Pj7PaTeEEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Pj7PajeEEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Pj7PazeEEeGPyrZ5I3hMlA" type="7007">
+ <children xmi:type="notation:Shape" xmi:id="_R8Rm0DeEEeGPyrZ5I3hMlA" type="3007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1B21kCwNEeK0G9oarbCn5Q" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1I5RsCwNEeK0G9oarbCn5Q" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="ClientServerTraceTest.uml#_DGs6wDLgEd28fJKJJnUaeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_R8Rm0TeEEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_R8SN4DeEEeGPyrZ5I3hMlA" type="3007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2ZBc0CwNEeK0G9oarbCn5Q" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2dz2MCwNEeK0G9oarbCn5Q" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="ClientServerTraceTest.uml#_L8EY8DLgEd28fJKJJnUaeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_R8SN4TeEEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_rsWQcDVdEeKoYLVLZgpRiw" type="3007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8MrPMDVdEeKoYLVLZgpRiw" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8ftf8DVdEeKoYLVLZgpRiw" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="ClientServerTraceTest.uml#_rrbqcDVdEeKoYLVLZgpRiw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_rsWQcTVdEeKoYLVLZgpRiw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6E33wDW2EeKyT6LlKoWJIA" type="3007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JvVlgDW3EeKyT6LlKoWJIA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_J0pjUDW3EeKyT6LlKoWJIA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="ClientServerTraceTest.uml#_6DewoDW2EeKyT6LlKoWJIA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6E33wTW2EeKyT6LlKoWJIA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Pj7PbDeEEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Pj7PbTeEEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Pj7PbjeEEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Pj7PbzeEEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Pj7PcDeEEeGPyrZ5I3hMlA" visible="false" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Pj7PcTeEEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Pj7PcjeEEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Pj7PczeEEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Pj7PdDeEEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0EVUwAuXEeWXe7AeBUbqvw" type="8507">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0EVUwQuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Interface" href="ClientServerTraceTest.uml#_cn-H0DLbEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Pj6oUTeEEeGPyrZ5I3hMlA" x="108" y="81" width="321"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TP_4gDeEEeGPyrZ5I3hMlA" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TQAfkDeEEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TQAfkTeEEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TQAfkjeEEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TQAfkzeEEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TQAflDeEEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TQAflTeEEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TQAfljeEEeGPyrZ5I3hMlA" type="5038"/>
+ <element xmi:type="uml:Comment" href="ClientServerTraceTest.uml#_TDDBoDeEEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TP_4gTeEEeGPyrZ5I3hMlA" x="513" y="108" width="203"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ktdOQDW2EeKyT6LlKoWJIA" type="2010" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ktd1UDW2EeKyT6LlKoWJIA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ktd1UTW2EeKyT6LlKoWJIA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ktd1UjW2EeKyT6LlKoWJIA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ktd1UzW2EeKyT6LlKoWJIA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ktd1VDW2EeKyT6LlKoWJIA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ktd1VTW2EeKyT6LlKoWJIA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ktd1VjW2EeKyT6LlKoWJIA" type="5035"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ktd1VzW2EeKyT6LlKoWJIA" type="7020">
+ <children xmi:type="notation:Shape" xmi:id="_m0rZcDW2EeKyT6LlKoWJIA" type="3018" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QleJQJ0lEeKBzo5ONT8mrA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QrfRsJ0lEeKBzo5ONT8mrA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="ClientServerTraceTest.uml#_m0WCQDW2EeKyT6LlKoWJIA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_m0rZcTW2EeKyT6LlKoWJIA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_yJR6MDW2EeKyT6LlKoWJIA" type="3018" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QlfXYJ0lEeKBzo5ONT8mrA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qrf4wJ0lEeKBzo5ONT8mrA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="ClientServerTraceTest.uml#_yJIJMDW2EeKyT6LlKoWJIA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yJR6MTW2EeKyT6LlKoWJIA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ktd1WDW2EeKyT6LlKoWJIA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ktd1WTW2EeKyT6LlKoWJIA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ktd1WjW2EeKyT6LlKoWJIA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ktd1WzW2EeKyT6LlKoWJIA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ktecYDW2EeKyT6LlKoWJIA" visible="false" type="7021">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ktecYTW2EeKyT6LlKoWJIA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ktecYjW2EeKyT6LlKoWJIA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ktecYzW2EeKyT6LlKoWJIA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ktecZDW2EeKyT6LlKoWJIA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0EVUwguXEeWXe7AeBUbqvw" type="8502">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0EVUwwuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:DataType" href="ClientServerTraceTest.uml#_krMkcDW2EeKyT6LlKoWJIA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ktdOQTW2EeKyT6LlKoWJIA" x="121" y="262" width="141" height="90"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_XSHWMV36Ed-UvNEDwY5GNg"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_0EV70AuXEeWXe7AeBUbqvw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="ClientServerTraceTest.uml#_Tp4n8DLaEd2qeKRLMdIx_A"/>
+ <edges xmi:type="notation:Connector" xmi:id="_Y-hhkDeEEeGPyrZ5I3hMlA" type="4013" source="_TP_4gDeEEeGPyrZ5I3hMlA" target="_Pj6oUDeEEeGPyrZ5I3hMlA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Y-hhkTeEEeGPyrZ5I3hMlA" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Y-hhkjeEEeGPyrZ5I3hMlA" points="[-29, -1, 113, 0]$[-113, -1, 29, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Y_9sADeEEeGPyrZ5I3hMlA" id="(0.14285714285714285,0.5166666666666667)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Y_9sATeEEeGPyrZ5I3hMlA" id="(0.9096573208722741,0.5377358490566038)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_wOG5sF36Ed-UvNEDwY5GNg" type="CompositeStructure" name="CompositeDiagram Client" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_xxFIUF36Ed-UvNEDwY5GNg" type="2073" fontName="Sans Serif" fontHeight="10" fillColor="8905185" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_edFmkDeFEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_edFmkTeFEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xxFvYF36Ed-UvNEDwY5GNg" type="5156">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ccTakDeFEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ccTakTeFEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_xxFvYV36Ed-UvNEDwY5GNg" type="7073" collapsed="true">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xxFvYl36Ed-UvNEDwY5GNg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ozsDcDeEEeGPyrZ5I3hMlA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ozsDcjeEEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ozsqgDeEEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ozsqgTeEEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ozsqgjeEEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ozsqgzeEEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ozsqhDeEEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ozsqhTeEEeGPyrZ5I3hMlA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ScyQMJ0lEeKBzo5ONT8mrA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Sk4cQJ0lEeKBzo5ONT8mrA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ozsqhjeEEeGPyrZ5I3hMlA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ozsqhzeEEeGPyrZ5I3hMlA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ozsqiDeEEeGPyrZ5I3hMlA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ozsDcTeEEeGPyrZ5I3hMlA" x="-10" y="51"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2HCY4EwJEeGN3tuNIuGSAw" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2HC_8EwJEeGN3tuNIuGSAw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2HC_8UwJEeGN3tuNIuGSAw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2HDnAEwJEeGN3tuNIuGSAw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2HDnAUwJEeGN3tuNIuGSAw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2HDnAkwJEeGN3tuNIuGSAw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2HDnA0wJEeGN3tuNIuGSAw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2HDnBEwJEeGN3tuNIuGSAw" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_S88-AJ0lEeKBzo5ONT8mrA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TEskwJ0lEeKBzo5ONT8mrA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2HDnBUwJEeGN3tuNIuGSAw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2HDnBkwJEeGN3tuNIuGSAw" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2HDnB0wJEeGN3tuNIuGSAw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="ClientServerTraceTest.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2HCY4UwJEeGN3tuNIuGSAw" x="162" y="54"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0Kx7AAuXEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0Kx7AQuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0SlMIAuXEeWXe7AeBUbqvw" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_0SlMIQuXEeWXe7AeBUbqvw" name="stereotype" stringValue="C_Cpp::Include"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_RwTdQByJEduN1bTiWJ0lyw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0SlMIguXEeWXe7AeBUbqvw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0SxZZguXEeWXe7AeBUbqvw" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_0SxZZwuXEeWXe7AeBUbqvw" name="stereotype" stringValue="FCM::RuleApplication"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_te7YAMtkEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0SxZaAuXEeWXe7AeBUbqvw"/>
+ </children>
+ <element xmi:type="uml:Class" href="ClientServerTraceTest.uml#_IfjoETLbEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xxFIUV36Ed-UvNEDwY5GNg" x="117" y="171" width="172" height="89"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lvTlsAOUEeCBk5-airPjFw" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lvVa4AOUEeCBk5-airPjFw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lvVa4QOUEeCBk5-airPjFw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lvWB8AOUEeCBk5-airPjFw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lvWB8QOUEeCBk5-airPjFw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lvWB8gOUEeCBk5-airPjFw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lvWB8wOUEeCBk5-airPjFw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lvWB9AOUEeCBk5-airPjFw" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lvWpAAOUEeCBk5-airPjFw" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lvWpAQOUEeCBk5-airPjFw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lu8gEDeEEeGPyrZ5I3hMlA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lu9HIDeEEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lu9HITeEEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lu9HIjeEEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lu9HIzeEEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lu9HJDeEEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lu9HJTeEEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lu9HJjeEEeGPyrZ5I3hMlA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_R-qJwJ0lEeKBzo5ONT8mrA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SD7EQJ0lEeKBzo5ONT8mrA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lu9HJzeEEeGPyrZ5I3hMlA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lu9uMDeEEeGPyrZ5I3hMlA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lu9uMTeEEeGPyrZ5I3hMlA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lu8gETeEEeGPyrZ5I3hMlA" x="-10" y="27"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0Kx7AguXEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0Kx7AwuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_N6fa4JsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lvTlsQOUEeCBk5-airPjFw" x="117" y="36" width="172" height="55"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_b6dHMDeEEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_b6duQDeEEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_b6duQTeEEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_b6duQjeEEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_b6duQzeEEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_b6duRDeEEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_b6duRTeEEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_b6eVUDeEEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ClientServerTraceTest.uml#_b5cakDeEEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b6dHMTeEEeGPyrZ5I3hMlA" x="342" y="81" width="332" height="76"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0TB4EAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0TB4EQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_0TB4EwuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="ClientServerTraceTest.uml#_IfjoETLbEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0TB4EguXEeWXe7AeBUbqvw" x="317" y="171"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0TiOYAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0TiOYQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_0TiOYwuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0TiOYguXEeWXe7AeBUbqvw" x="190" y="51"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0T4MoguXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0T4MowuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_0T4MpQuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ClientServerTraceTest.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0T4MpAuXEeWXe7AeBUbqvw" x="362" y="54"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0UScWAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0UScWQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_0UTDYAuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0UScWguXEeWXe7AeBUbqvw" x="190" y="27"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_wOG5sV36Ed-UvNEDwY5GNg"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_0Kx7BAuXEeWXe7AeBUbqvw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="ClientServerTraceTest.uml#_etOZkDLaEd2qeKRLMdIx_A"/>
+ <edges xmi:type="notation:Connector" xmi:id="_lwdcQAOUEeCBk5-airPjFw" type="4015" source="_xxFIUF36Ed-UvNEDwY5GNg" target="_lvTlsAOUEeCBk5-airPjFw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_lwfRcAOUEeCBk5-airPjFw" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lwfRcQOUEeCBk5-airPjFw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_lwdcQQOUEeCBk5-airPjFw" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="ClientServerTraceTest.uml#_34FjAPx3Ed6O2oOTPfeAMA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_lwdcQgOUEeCBk5-airPjFw" points="[-46, -44, 166, 165]$[-212, -209, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_p9prkD1rEeGCbZXfrLvxhQ" id="(0.5290697674418605,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_k5vWYDeEEeGPyrZ5I3hMlA" type="4002" source="_b6dHMDeEEeGPyrZ5I3hMlA" target="_lwdcQAOUEeCBk5-airPjFw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_k5vWYTeEEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_k5vWYjeEEeGPyrZ5I3hMlA" points="[-14, 0, 164, -11]$[-178, 11, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_k6dvIDeEEeGPyrZ5I3hMlA" id="(0.017948717948717947,0.4666666666666667)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_k6dvITeEEeGPyrZ5I3hMlA" id="(0.4883720930232558,0.22321428571428573)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_0TB4FAuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_xxFIUF36Ed-UvNEDwY5GNg" target="_0TB4EAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_0TB4FQuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_0TCfIQuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="ClientServerTraceTest.uml#_IfjoETLbEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0TB4FguXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0TB4FwuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0TCfIAuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_0TiOZAuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_ozsDcDeEEeGPyrZ5I3hMlA" target="_0TiOYAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_0TiOZQuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_0TiOaQuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0TiOZguXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0TiOZwuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0TiOaAuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_0T4MpguXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_2HCY4EwJEeGN3tuNIuGSAw" target="_0T4MoguXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_0T4MpwuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_0T4MqwuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ClientServerTraceTest.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0T4MqAuXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0T4MqQuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0T4MqguXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_0UTDYQuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_lu8gEDeEEeGPyrZ5I3hMlA" target="_0UScWAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_0UTDYguXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_0UTDZguXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0UTDYwuXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0UTDZAuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0UTDZQuXEeWXe7AeBUbqvw"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_aeSh0F37Ed-UvNEDwY5GNg" type="CompositeStructure" name="CompositeDiagram Server" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_c2tKsF37Ed-UvNEDwY5GNg" type="2073" fontName="Monospace" fontHeight="10" fillColor="8905185" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MXrr0H8eEd-5xfPoaTlRww" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MXsS4H8eEd-5xfPoaTlRww" key="QualifiedNameDepth" value="1"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NqCEgH8eEd-5xfPoaTlRww" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NqCEgX8eEd-5xfPoaTlRww" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_c2tKsl37Ed-UvNEDwY5GNg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_c2tKs137Ed-UvNEDwY5GNg" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c2tKtF37Ed-UvNEDwY5GNg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FzA74GfbEd-T-rJ3Ep9Y5Q" type="3069" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FzSosGfbEd-T-rJ3Ep9Y5Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FzTPwGfbEd-T-rJ3Ep9Y5Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FzTPwWfbEd-T-rJ3Ep9Y5Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FzT20GfbEd-T-rJ3Ep9Y5Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FzT20WfbEd-T-rJ3Ep9Y5Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FzT20mfbEd-T-rJ3Ep9Y5Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FzUd4GfbEd-T-rJ3Ep9Y5Q" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TrlloJ0lEeKBzo5ONT8mrA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TydpsJ0lEeKBzo5ONT8mrA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzUd4WfbEd-T-rJ3Ep9Y5Q" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FzUd4mfbEd-T-rJ3Ep9Y5Q" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzUd42fbEd-T-rJ3Ep9Y5Q" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="ClientServerTraceTest.uml#_4KiE8DLbEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzA74WfbEd-T-rJ3Ep9Y5Q" x="-10" y="106"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0UpBoAuXEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0UpBoQuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0XF4sguXEeWXe7AeBUbqvw" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_0XF4swuXEeWXe7AeBUbqvw" name="stereotype" stringValue="C_Cpp::Include"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_RwTdQByJEduN1bTiWJ0lyw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0XF4tAuXEeWXe7AeBUbqvw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0XEDgAuXEeWXe7AeBUbqvw" type="StereotypeBrace">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0XikoAuXEeWXe7AeBUbqvw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0XikoQuXEeWXe7AeBUbqvw" key="visible" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0XF4sAuXEeWXe7AeBUbqvw" type="StereotypePropertyBrace">
+ <element xmi:type="uml:Property" href="pathmap://FCM_PROFILES/FCM.profile.uml#_r2VLUJD2Ed-I9dVdNhZAGQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0XF4sQuXEeWXe7AeBUbqvw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0XEDgQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_0XEDgguXEeWXe7AeBUbqvw" name="stereotype" stringValue="FCM::RuleApplication"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_te7YAMtkEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0XEDgwuXEeWXe7AeBUbqvw"/>
+ </children>
+ <element xmi:type="uml:Class" href="ClientServerTraceTest.uml#_oqZNUDLaEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c2tKsV37Ed-UvNEDwY5GNg" x="134" y="74" width="353" height="269"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0XWXYAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0XWXYQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_0XWXYwuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="ClientServerTraceTest.uml#_oqZNUDLaEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0XWXYguXEeWXe7AeBUbqvw" x="334" y="74"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0YEwIAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0YEwIQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_0YEwIwuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ClientServerTraceTest.uml#_4KiE8DLbEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0YEwIguXEeWXe7AeBUbqvw" x="190" y="106"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_aeSh0V37Ed-UvNEDwY5GNg"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_0UpBoguXEeWXe7AeBUbqvw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="ClientServerTraceTest.uml#_OGM88DLaEd2qeKRLMdIx_A"/>
+ <edges xmi:type="notation:Connector" xmi:id="_0XW-cAuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_c2tKsF37Ed-UvNEDwY5GNg" target="_0XWXYAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_0XW-cQuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_0XW-dQuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="ClientServerTraceTest.uml#_oqZNUDLaEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0XW-cguXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0XW-cwuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0XW-dAuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_0YEwJAuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_FzA74GfbEd-T-rJ3Ep9Y5Q" target="_0YEwIAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_0YEwJQuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_0YEwKQuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ClientServerTraceTest.uml#_4KiE8DLbEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0YEwJguXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0YEwJwuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0YEwKAuXEeWXe7AeBUbqvw"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_q-Wa0F37Ed-UvNEDwY5GNg" type="CompositeStructure" name="CompositeDiagram System" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_sGaPEF37Ed-UvNEDwY5GNg" type="2073" fontName="Sans Serif" fontHeight="10" transparency="0" gradient="8047085, 0, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6B6WUGSuEd-dQdK1-7wIFg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6B69YGSuEd-dQdK1-7wIFg" key="QualifiedNameDepth" value="3"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_62o-4GSuEd-dQdK1-7wIFg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_62o-4WSuEd-dQdK1-7wIFg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_sGa2IF37Ed-UvNEDwY5GNg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_sGa2IV37Ed-UvNEDwY5GNg" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_uegu4F37Ed-UvNEDwY5GNg" type="3070" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fGdKUF38Ed-UvNEDwY5GNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fGdKUV38Ed-UvNEDwY5GNg" key="QualifiedNameDepth" value="4"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uegu4l37Ed-UvNEDwY5GNg" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VcC2oJ0lEeKBzo5ONT8mrA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VkiEQJ0lEeKBzo5ONT8mrA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_uehV8F37Ed-UvNEDwY5GNg" type="7077">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uehV8V37Ed-UvNEDwY5GNg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TLHfQAcCEeGnrLqQ0OQeAg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TLJUcAcCEeGnrLqQ0OQeAg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TLJUcQcCEeGnrLqQ0OQeAg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TLJUcgcCEeGnrLqQ0OQeAg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TLJUcwcCEeGnrLqQ0OQeAg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TLJ7gAcCEeGnrLqQ0OQeAg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TLJ7gQcCEeGnrLqQ0OQeAg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TLJ7ggcCEeGnrLqQ0OQeAg" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UypUUJ0lEeKBzo5ONT8mrA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U4NJwJ0lEeKBzo5ONT8mrA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TLJ7gwcCEeGnrLqQ0OQeAg" x="23"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TLKikAcCEeGnrLqQ0OQeAg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TLKikQcCEeGnrLqQ0OQeAg" x="24" y="-17"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TLHfQQcCEeGnrLqQ0OQeAg" x="-10" y="51"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_RUoqEDrcEeGgAdAmWw4pyQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RUpRIDrcEeGgAdAmWw4pyQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RUpRITrcEeGgAdAmWw4pyQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RUpRIjrcEeGgAdAmWw4pyQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RUpRIzrcEeGgAdAmWw4pyQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RUpRJDrcEeGgAdAmWw4pyQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RUpRJTrcEeGgAdAmWw4pyQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RUpRJjrcEeGgAdAmWw4pyQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XSc-oJ0lEeKBzo5ONT8mrA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XakY0J0lEeKBzo5ONT8mrA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RUpRJzrcEeGgAdAmWw4pyQ" x="-111" y="16"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RUpRKDrcEeGgAdAmWw4pyQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RUpRKTrcEeGgAdAmWw4pyQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="ClientServerTraceTest.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RUoqETrcEeGgAdAmWw4pyQ" x="152" y="54"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0YVO0guXEeWXe7AeBUbqvw" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0YVO0wuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="ClientServerTraceTest.uml#_i-I7gDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uegu4V37Ed-UvNEDwY5GNg" x="35" y="17" width="162" height="112"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_vHCHcF37Ed-UvNEDwY5GNg" type="3070" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_haY70F38Ed-UvNEDwY5GNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_haY70V38Ed-UvNEDwY5GNg" key="QualifiedNameDepth" value="4"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vHCHcl37Ed-UvNEDwY5GNg" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WH8TUJ0lEeKBzo5ONT8mrA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WOCUQJ0lEeKBzo5ONT8mrA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_vHCHc137Ed-UvNEDwY5GNg" type="7077">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vHCHdF37Ed-UvNEDwY5GNg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SZhOgDrcEeGgAdAmWw4pyQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SZh1kDrcEeGgAdAmWw4pyQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SZh1kTrcEeGgAdAmWw4pyQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SZh1kjrcEeGgAdAmWw4pyQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SZh1kzrcEeGgAdAmWw4pyQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SZh1lDrcEeGgAdAmWw4pyQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SZh1lTrcEeGgAdAmWw4pyQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SZh1ljrcEeGgAdAmWw4pyQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WwhWQJ0lEeKBzo5ONT8mrA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_W5_bUJ0lEeKBzo5ONT8mrA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SZh1lzrcEeGgAdAmWw4pyQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SZh1mDrcEeGgAdAmWw4pyQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SZh1mTrcEeGgAdAmWw4pyQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="ClientServerTraceTest.uml#_4KiE8DLbEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SZhOgTrcEeGgAdAmWw4pyQ" x="-10" y="52"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0YVO1AuXEeWXe7AeBUbqvw" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0YVO1QuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="ClientServerTraceTest.uml#_gV1cgDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vHCHcV37Ed-UvNEDwY5GNg" x="422" y="19" width="162" height="112"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0bZw8AuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0bZw8QuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_0bZw8wuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0bZw8guXEeWXe7AeBUbqvw" x="190" y="51"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0bt6AAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0bt6AQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_0bt6AwuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ClientServerTraceTest.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0bt6AguXEeWXe7AeBUbqvw" x="352" y="54"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0cFtcAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0cFtcQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_0cFtcwuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ClientServerTraceTest.uml#_4KiE8DLbEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0cFtcguXEeWXe7AeBUbqvw" x="190" y="52"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sGa2Il37Ed-UvNEDwY5GNg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0YVO0AuXEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0YVO0QuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="ClientServerTraceTest.uml#_bYJagDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sGaPEV37Ed-UvNEDwY5GNg" x="63" y="32" width="625" height="197"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_s51AIDeJEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s51nMDeJEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_s51nMTeJEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s51nMjeJEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_s51nMzeJEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s51nNDeJEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_s51nNTeJEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_s51nNjeJEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ClientServerTraceTest.uml#_s5iFMDeJEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_s51AITeJEeGPyrZ5I3hMlA" x="63" y="249" width="307" height="120"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Vcy4gDeKEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Vcy4gjeKEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vcy4gzeKEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Vcy4hDeKEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vcy4hTeKEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VczfkDeKEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VczfkTeKEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VczfkjeKEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ClientServerTraceTest.uml#_Vcf9kDeKEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vcy4gTeKEeGPyrZ5I3hMlA" x="405" y="249" width="307"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_q-Wa0V37Ed-UvNEDwY5GNg"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_0YVO1guXEeWXe7AeBUbqvw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="ClientServerTraceTest.uml#_XLQjUDLiEd2RVeNawwNNzg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_4lh80DeKEeGPyrZ5I3hMlA" type="4002" source="_s51AIDeJEeGPyrZ5I3hMlA" target="_sGaPEF37Ed-UvNEDwY5GNg" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_4lh80TeKEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4lh80jeKEeGPyrZ5I3hMlA" points="[1, -4, -11, 27]$[3, -24, -9, 7]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4mHLoDeKEeGPyrZ5I3hMlA" id="(0.6351791530944625,0.03333333333333333)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4mHLoTeKEeGPyrZ5I3hMlA" id="(0.2896,0.9695431472081218)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_QRrXUE2rEeGl8qrc8BM7vA" type="4013" source="_RUoqEDrcEeGgAdAmWw4pyQ" target="_SZhOgDrcEeGgAdAmWw4pyQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QRslcE2rEeGl8qrc8BM7vA" type="6025">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QRslcU2rEeGl8qrc8BM7vA" x="6" y="-30"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QRslck2rEeGl8qrc8BM7vA" visible="false" type="6050">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QRslc02rEeGl8qrc8BM7vA" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QRsldE2rEeGl8qrc8BM7vA" visible="false" type="6051">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QRsldU2rEeGl8qrc8BM7vA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QRsldk2rEeGl8qrc8BM7vA" visible="false" type="6052">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QRsld02rEeGl8qrc8BM7vA" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_QRrXUU2rEeGl8qrc8BM7vA" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Connector" href="ClientServerTraceTest.uml#_QO2s0E2rEeGl8qrc8BM7vA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QRrXUk2rEeGl8qrc8BM7vA" points="[4, -1, -208, 0]$[209, -3, -3, -2]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QR4ysE2rEeGl8qrc8BM7vA" id="(0.8,0.4)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QR4ysU2rEeGl8qrc8BM7vA" id="(0.15,0.35)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_SHmXIE2rEeGl8qrc8BM7vA" type="4002" source="_Vcy4gDeKEeGPyrZ5I3hMlA" target="_QRrXUE2rEeGl8qrc8BM7vA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_SHmXIU2rEeGl8qrc8BM7vA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SHmXIk2rEeGl8qrc8BM7vA" points="[8, -3, 11, 98]$[-69, -101, -66, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SHu6AE2rEeGl8qrc8BM7vA" id="(0.21498371335504887,0.025)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SHu6AU2rEeGl8qrc8BM7vA" id="(0.9137931034482759,0.4691358024691358)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_0bZw9AuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_TLHfQAcCEeGnrLqQ0OQeAg" target="_0bZw8AuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_0bZw9QuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_0bZw-QuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0bZw9guXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0bZw9wuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0bZw-AuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_0bt6BAuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_RUoqEDrcEeGgAdAmWw4pyQ" target="_0bt6AAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_0bt6BQuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_0bt6CQuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ClientServerTraceTest.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0bt6BguXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0bt6BwuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0bt6CAuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_0cFtdAuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_SZhOgDrcEeGgAdAmWw4pyQ" target="_0cFtcAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_0cFtdQuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_0cFteQuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ClientServerTraceTest.uml#_4KiE8DLbEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0cFtdguXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0cFtdwuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0cFteAuXEeWXe7AeBUbqvw"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_6FvnwGONEd-seu3qyZgHfg" type="PapyrusUMLClassDiagram" name="deployment plans" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_7Fso4GONEd-seu3qyZgHfg" type="2007" fontName="Sans Serif" fontHeight="10" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7FvFImONEd-seu3qyZgHfg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7FvsMGONEd-seu3qyZgHfg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7FvsMWONEd-seu3qyZgHfg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7FvsMmONEd-seu3qyZgHfg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_30xTEGTfEd-rCOWJcspHOA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_30xTEWTfEd-rCOWJcspHOA" key="ShadowFigure_Value" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7FvsM2ONEd-seu3qyZgHfg" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7FvsNGONEd-seu3qyZgHfg" type="7016">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7FvsNWONEd-seu3qyZgHfg"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_7FtP8GONEd-seu3qyZgHfg"/>
+ <element xmi:type="uml:Package" href="ClientServerTraceTest.uml#_5Z7MEDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7FtP8WONEd-seu3qyZgHfg" x="77" y="38"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TooeIDeIEeGPyrZ5I3hMlA" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TooeIjeIEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TooeIzeIEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TooeJDeIEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TooeJTeIEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TopFMDeIEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TopFMTeIEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TopFMjeIEeGPyrZ5I3hMlA" type="5038"/>
+ <element xmi:type="uml:Comment" href="ClientServerTraceTest.uml#_ToVjMDeIEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TooeITeIEeGPyrZ5I3hMlA" x="495" y="198" width="187"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_f33bIDeIEeGPyrZ5I3hMlA" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f34CMDeIEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f34CMTeIEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f34CMjeIEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f34CMzeIEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f34CNDeIEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f34CNTeIEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_f34CNjeIEeGPyrZ5I3hMlA" type="5038"/>
+ <element xmi:type="uml:Comment" href="ClientServerTraceTest.uml#_f3lHQDeIEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f33bITeIEeGPyrZ5I3hMlA" x="76" y="153" width="357"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FQOkoDWxEeKGAYOVxzQeAg" type="2008" fontName="Sans Serif" fillColor="8905185" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FQPywDWxEeKGAYOVxzQeAg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FQPywTWxEeKGAYOVxzQeAg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FQPywjWxEeKGAYOVxzQeAg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FQPywzWxEeKGAYOVxzQeAg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FQPyxDWxEeKGAYOVxzQeAg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FQPyxTWxEeKGAYOVxzQeAg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FQQZ0DWxEeKGAYOVxzQeAg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_FQQZ0TWxEeKGAYOVxzQeAg" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_FQQZ0jWxEeKGAYOVxzQeAg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FQQZ0zWxEeKGAYOVxzQeAg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FQQZ1DWxEeKGAYOVxzQeAg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FQQZ1TWxEeKGAYOVxzQeAg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_FQQZ1jWxEeKGAYOVxzQeAg" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_FQQZ1zWxEeKGAYOVxzQeAg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FQQZ2DWxEeKGAYOVxzQeAg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FQQZ2TWxEeKGAYOVxzQeAg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FQQZ2jWxEeKGAYOVxzQeAg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_FQRA4DWxEeKGAYOVxzQeAg" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_FQRA4TWxEeKGAYOVxzQeAg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FQRA4jWxEeKGAYOVxzQeAg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FQRA4zWxEeKGAYOVxzQeAg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FQRA5DWxEeKGAYOVxzQeAg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0cjAcAuXEeWXe7AeBUbqvw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0cjAcQuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0fPvIAuXEeWXe7AeBUbqvw" type="StereotypeCompartment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0fUAkAuXEeWXe7AeBUbqvw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0fUAkQuXEeWXe7AeBUbqvw" key="visible" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0fQ9QAuXEeWXe7AeBUbqvw" type="StereotypeProperty">
+ <element xmi:type="uml:Property" href="pathmap://FCM_PROFILES/FCM.profile.uml#_zqH8AH8UEd-oF-y8FyT5sA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0fQ9QQuXEeWXe7AeBUbqvw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0fQ9QguXEeWXe7AeBUbqvw" type="StereotypeProperty">
+ <element xmi:type="uml:Property" href="pathmap://FCM_PROFILES/FCM.profile.uml#_Fi5eoJQBEd-UMN59oR7XbA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0fQ9QwuXEeWXe7AeBUbqvw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0fPvIQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_0fPvIguXEeWXe7AeBUbqvw" name="stereotype" stringValue="FCM::Configuration"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_E0tzcGE_Ed-eArNXja7SuA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0fPvIwuXEeWXe7AeBUbqvw"/>
+ </children>
+ <element xmi:type="uml:Class" href="ClientServerTraceTest.uml#_QT6okKDjEd-rLNbSWf1QuA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FQOkoTWxEeKGAYOVxzQeAg" x="504" y="27" width="208" height="108"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0e2tkAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0e2tkQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_0e2tkwuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Package" href="ClientServerTraceTest.uml#_5Z7MEDLiEd2RVeNawwNNzg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0e2tkguXEeWXe7AeBUbqvw" x="277" y="38"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_6FvnwWONEd-seu3qyZgHfg"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_0cjngAuXEeWXe7AeBUbqvw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="ClientServerTraceTest.uml#_234GEDLiEd2RVeNawwNNzg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_YEkd8DeIEeGPyrZ5I3hMlA" type="4013" source="_TooeIDeIEeGPyrZ5I3hMlA" target="_FQOkoDWxEeKGAYOVxzQeAg" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_YEkd8TeIEeGPyrZ5I3hMlA" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YEkd8jeIEeGPyrZ5I3hMlA" points="[-8, -12, 41, 63]$[-14, -59, 35, 16]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YFH3kDeIEeGPyrZ5I3hMlA" id="(0.3887240356083086,0.2)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YFH3kTeIEeGPyrZ5I3hMlA" id="(0.2980769230769231,0.9722222222222222)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_KL_vIDeJEeGPyrZ5I3hMlA" type="4013" source="_f33bIDeIEeGPyrZ5I3hMlA" target="_7Fso4GONEd-seu3qyZgHfg" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_KL_vITeJEeGPyrZ5I3hMlA" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KL_vIjeJEeGPyrZ5I3hMlA" points="[-11, -30, 14, 38]$[19, -45, 44, 23]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JTc_cEehEeGg-ceBj4Cxaw" id="(0.43977591036414565,0.047619047619047616)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KMooUDeJEeGPyrZ5I3hMlA" id="(0.76,0.77)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_0e3UoAuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_7Fso4GONEd-seu3qyZgHfg" target="_0e2tkAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_0e3UoQuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_0e3UpQuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Package" href="ClientServerTraceTest.uml#_5Z7MEDLiEd2RVeNawwNNzg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0e3UoguXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0e3UowuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0e3UpAuXEeWXe7AeBUbqvw"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_HoscYMniEeCMCo5Ox2CNmg" type="CompositeStructure" name="HWArchitecture" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_IKW_AMniEeCMCo5Ox2CNmg" type="2073" fontName="" fontHeight="10" fillColor="10011046" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IKYNIMniEeCMCo5Ox2CNmg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IKYNIcniEeCMCo5Ox2CNmg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IKYNIsniEeCMCo5Ox2CNmg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IKYNI8niEeCMCo5Ox2CNmg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IKYNJMniEeCMCo5Ox2CNmg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IKYNJcniEeCMCo5Ox2CNmg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_IKYNJsniEeCMCo5Ox2CNmg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IKYNJ8niEeCMCo5Ox2CNmg" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_RbhoYMniEeCMCo5Ox2CNmg" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RbiPcMniEeCMCo5Ox2CNmg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RbiPccniEeCMCo5Ox2CNmg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RbiPcsniEeCMCo5Ox2CNmg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RbiPc8niEeCMCo5Ox2CNmg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RbiPdMniEeCMCo5Ox2CNmg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Rbi2gMniEeCMCo5Ox2CNmg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Rbi2gcniEeCMCo5Ox2CNmg" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Y9vbwJ0lEeKBzo5ONT8mrA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZFdNUJ0lEeKBzo5ONT8mrA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Rbi2gsniEeCMCo5Ox2CNmg" type="7077">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Rbi2g8niEeCMCo5Ox2CNmg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0gynQguXEeWXe7AeBUbqvw" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0gynQwuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="ClientServerTraceTest.uml#_RbUNAMniEeCMCo5Ox2CNmg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RbhoYcniEeCMCo5Ox2CNmg" x="74" y="24" width="152" height="55"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_R5SicMniEeCMCo5Ox2CNmg" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_R5TJgMniEeCMCo5Ox2CNmg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_R5TJgcniEeCMCo5Ox2CNmg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_R5TJgsniEeCMCo5Ox2CNmg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_R5TJg8niEeCMCo5Ox2CNmg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_R5TJhMniEeCMCo5Ox2CNmg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_R5TJhcniEeCMCo5Ox2CNmg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_R5TJhsniEeCMCo5Ox2CNmg" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZuuMwJ0lEeKBzo5ONT8mrA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z3u-0J0lEeKBzo5ONT8mrA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_R5TJh8niEeCMCo5Ox2CNmg" type="7077">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_R5TJiMniEeCMCo5Ox2CNmg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0gynRAuXEeWXe7AeBUbqvw" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0gynRQuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="ClientServerTraceTest.uml#_R5FuIMniEeCMCo5Ox2CNmg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_R5SiccniEeCMCo5Ox2CNmg" x="385" y="26" width="147" height="53"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IKYNKMniEeCMCo5Ox2CNmg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0gynQAuXEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0gynQQuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="ClientServerTraceTest.uml#__1PHIMnhEeCMCo5Ox2CNmg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IKW_AcniEeCMCo5Ox2CNmg" x="76" y="27" width="609" height="159"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_M1wXIMniEeCMCo5Ox2CNmg" type="2073" fontName="" fontHeight="10" fillColor="10011046" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_M10BgMniEeCMCo5Ox2CNmg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M10BgcniEeCMCo5Ox2CNmg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_M10BgsniEeCMCo5Ox2CNmg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M10Bg8niEeCMCo5Ox2CNmg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_M10BhMniEeCMCo5Ox2CNmg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M10BhcniEeCMCo5Ox2CNmg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_M10BhsniEeCMCo5Ox2CNmg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_M10Bh8niEeCMCo5Ox2CNmg" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_QgbSEMniEeCMCo5Ox2CNmg" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QgbSEsniEeCMCo5Ox2CNmg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QgbSE8niEeCMCo5Ox2CNmg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Qgb5IMniEeCMCo5Ox2CNmg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qgb5IcniEeCMCo5Ox2CNmg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Qgb5IsniEeCMCo5Ox2CNmg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qgb5I8niEeCMCo5Ox2CNmg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Qgb5JMniEeCMCo5Ox2CNmg" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aZnj4J0lEeKBzo5ONT8mrA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ahY_0J0lEeKBzo5ONT8mrA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Qgb5JcniEeCMCo5Ox2CNmg" type="7077">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Qgb5JsniEeCMCo5Ox2CNmg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0gzOUAuXEeWXe7AeBUbqvw" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0gzOUQuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="ClientServerTraceTest.uml#_QgKzYMniEeCMCo5Ox2CNmg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QgbSEcniEeCMCo5Ox2CNmg" x="76" y="13" width="165" height="55"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M10BiMniEeCMCo5Ox2CNmg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0gynRguXEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0gynRwuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="ClientServerTraceTest.uml#_M1a_8MniEeCMCo5Ox2CNmg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M1wXIcniEeCMCo5Ox2CNmg" x="72" y="360" width="613" height="136"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZWgfkDeLEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZWhGoDeLEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZWhGoTeLEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZWhGojeLEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZWhGozeLEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZWhGpDeLEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZWhGpTeLEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZWhGpjeLEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ClientServerTraceTest.uml#_ZWJ6QDeLEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZWgfkTeLEeGPyrZ5I3hMlA" x="60" y="220" width="441" height="81"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2v8ewDeLEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2v9F0DeLEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2v9F0TeLEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2v9F0jeLEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2v9F0zeLEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2v9F1DeLEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2v9F1TeLEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2v9F1jeLEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ClientServerTraceTest.uml#_2vkEQDeLEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2v8ewTeLEeGPyrZ5I3hMlA" x="540" y="220" width="332"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2pxv4DeMEeGPyrZ5I3hMlA" type="2072" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2pxv4jeMEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2pxv4zeMEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2pyW8DeMEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2pyW8TeMEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2pyW8jeMEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2pyW8zeMEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2pyW9DeMEeGPyrZ5I3hMlA" type="5124"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2pyW9TeMEeGPyrZ5I3hMlA" visible="false" type="7072">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2pyW9jeMEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2pyW9zeMEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0gzOUguXEeWXe7AeBUbqvw" type="6088">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0gzOUwuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Node" href="ClientServerTraceTest.uml#_zY9vMDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2pxv4TeMEeGPyrZ5I3hMlA" x="713" y="360" width="89" height="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_5exAADeMEeGPyrZ5I3hMlA" type="2072" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5exnEDeMEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5exnETeMEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5exnEjeMEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5exnEzeMEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5exnFDeMEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5exnFTeMEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5eyOIDeMEeGPyrZ5I3hMlA" type="5124"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5eyOITeMEeGPyrZ5I3hMlA" visible="false" type="7072">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5eyOIjeMEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5eyOIzeMEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0gzOVAuXEeWXe7AeBUbqvw" type="6088">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0gzOVQuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Node" href="ClientServerTraceTest.uml#_MxayMP_BEd6628OhKk_dpg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5exAATeMEeGPyrZ5I3hMlA" x="711" y="27" width="91" height="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6DHqQDeMEeGPyrZ5I3hMlA" type="2072" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6DIRUDeMEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6DIRUTeMEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6DIRUjeMEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6DIRUzeMEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6DIRVDeMEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6DIRVTeMEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6DIRVjeMEeGPyrZ5I3hMlA" type="5124"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_6DIRVzeMEeGPyrZ5I3hMlA" visible="false" type="7072">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_6DIRWDeMEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6DIRWTeMEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0gzOVguXEeWXe7AeBUbqvw" type="6088">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0gzOVwuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Node" href="ClientServerTraceTest.uml#_NF3YMP_BEd6628OhKk_dpg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6DHqQTeMEeGPyrZ5I3hMlA" x="711" y="111" width="91" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0jYBMAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0jYBMQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_0jYBMwuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Node" href="ClientServerTraceTest.uml#_zY9vMDLiEd2RVeNawwNNzg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0jYBMguXEeWXe7AeBUbqvw" x="913" y="324"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0jt_cAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0jt_cQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_0jt_cwuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Node" href="ClientServerTraceTest.uml#_MxayMP_BEd6628OhKk_dpg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0jt_cguXEeWXe7AeBUbqvw" x="911" y="27"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0j_sQAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0j_sQQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_0j_sQwuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Node" href="ClientServerTraceTest.uml#_NF3YMP_BEd6628OhKk_dpg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0j_sQguXEeWXe7AeBUbqvw" x="911" y="111"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_HoscYcniEeCMCo5Ox2CNmg"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_0gzOWAuXEeWXe7AeBUbqvw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="ClientServerTraceTest.uml#_v3fMgDLiEd2RVeNawwNNzg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_eFyUgMniEeCMCo5Ox2CNmg" type="4013" source="_RbhoYMniEeCMCo5Ox2CNmg" target="_R5SicMniEeCMCo5Ox2CNmg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_eFzioMniEeCMCo5Ox2CNmg" type="6025">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eFziocniEeCMCo5Ox2CNmg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_eFyUgcniEeCMCo5Ox2CNmg" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Connector" href="ClientServerTraceTest.uml#_eFh10MniEeCMCo5Ox2CNmg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_eFyUgsniEeCMCo5Ox2CNmg" points="[10, 6, -175, 0]$[169, 6, -16, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eGRcsMniEeCMCo5Ox2CNmg" id="(0.9342105263157895,0.45454545454545453)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eGRcscniEeCMCo5Ox2CNmg" id="(0.10884353741496598,0.5471698113207547)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_JS3nYDeMEeGPyrZ5I3hMlA" type="4002" source="_2v8ewDeLEeGPyrZ5I3hMlA" target="_eFyUgMniEeCMCo5Ox2CNmg" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_JS3nYTeMEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_JS3nYjeMEeGPyrZ5I3hMlA" points="[-7, -6, 87, 76]$[-87, -82, 7, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JUOSQDeMEeGPyrZ5I3hMlA" id="(0.03614457831325301,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JUO5UDeMEeGPyrZ5I3hMlA" id="(0.7365591397849462,0.48148148148148145)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_J_wikDeMEeGPyrZ5I3hMlA" type="4002" source="_ZWgfkDeLEeGPyrZ5I3hMlA" target="_IKW_AMniEeCMCo5Ox2CNmg" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_J_wikTeMEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_J_wikjeMEeGPyrZ5I3hMlA" points="[3, -7, 0, 27]$[-17, -24, -20, 10]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KAdGIDeMEeGPyrZ5I3hMlA" id="(0.48299319727891155,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KAdGITeMEeGPyrZ5I3hMlA" id="(0.28735632183908044,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_0jYBNAuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_2pxv4DeMEeGPyrZ5I3hMlA" target="_0jYBMAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_0jYBNQuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_0jYBOQuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Node" href="ClientServerTraceTest.uml#_zY9vMDLiEd2RVeNawwNNzg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0jYBNguXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0jYBNwuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0jYBOAuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_0jumgAuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_5exAADeMEeGPyrZ5I3hMlA" target="_0jt_cAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_0jumgQuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_0jumhQuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Node" href="ClientServerTraceTest.uml#_MxayMP_BEd6628OhKk_dpg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0jumgguXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0jumgwuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0jumhAuXEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_0j_sRAuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_6DHqQDeMEeGPyrZ5I3hMlA" target="_0j_sQAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_0j_sRQuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_0j_sSQuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Node" href="ClientServerTraceTest.uml#_NF3YMP_BEd6628OhKk_dpg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0j_sRguXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0j_sRwuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0j_sSAuXEeWXe7AeBUbqvw"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_rbZ3IDeFEeGPyrZ5I3hMlA" type="PapyrusUMLClassDiagram" name="ClassDiagram Client" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_t6z40DeFEeGPyrZ5I3hMlA" type="2008" fontName="Sans Serif" fillColor="8905185" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t60f4DeFEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t60f4TeFEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t60f4jeFEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t60f4zeFEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t60f5DeFEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t60f5TeFEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_t61G8DeFEeGPyrZ5I3hMlA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_t61G8TeFEeGPyrZ5I3hMlA" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_t61G8jeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_t61G8zeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_t61G9DeFEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t61G9TeFEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_t61G9jeFEeGPyrZ5I3hMlA" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_Q07G0DclEeKAhIrFXfR8zQ" type="3013" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_z-c2gDc_EeKPle9CbXIcpQ" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0IwpEDc_EeKPle9CbXIcpQ" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="ClientServerTraceTest.uml#_Qzp7gDclEeKAhIrFXfR8zQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Q07G0TclEeKAhIrFXfR8zQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_t61G9zeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_t61G-DeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_t61G-TeFEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t61G-jeFEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_t61G-zeFEeGPyrZ5I3hMlA" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_t61G_DeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_t61G_TeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_t61G_jeFEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t61G_zeFEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0kVDcAuXEeWXe7AeBUbqvw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0kVDcQuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="ClientServerTraceTest.uml#_IfjoETLbEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t6z40TeFEeGPyrZ5I3hMlA" x="90" y="135" width="144"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ysCMIDeFEeGPyrZ5I3hMlA" type="2008" fontName="Sans Serif" fillColor="8905185" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysCzMDeFEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysCzMTeFEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysCzMjeFEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysCzMzeFEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysCzNDeFEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysCzNTeFEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ysCzNjeFEeGPyrZ5I3hMlA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ysDaQDeFEeGPyrZ5I3hMlA" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ysDaQTeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ysDaQjeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ysDaQzeFEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ysDaRDeFEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ysDaRTeFEeGPyrZ5I3hMlA" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ysDaRjeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ysDaRzeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ysDaSDeFEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ysDaSTeFEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ysDaSjeFEeGPyrZ5I3hMlA" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ysDaSzeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ysDaTDeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ysDaTTeFEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ysDaTjeFEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0kVDcguXEeWXe7AeBUbqvw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0kVDcwuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_N6fa4JsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ysCMITeFEeGPyrZ5I3hMlA" x="90" y="18" width="145" height="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_zc4aQDeFEeGPyrZ5I3hMlA" type="2004" fontName="Sans Serif" fillColor="8905185" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zc5BUDeFEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zc5BUTeFEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zc5BUjeFEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zc5oYDeFEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zc5oYTeFEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zc5oYjeFEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zc5oYzeFEeGPyrZ5I3hMlA" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_zc5oZDeFEeGPyrZ5I3hMlA" visible="false" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_zc5oZTeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_zc5oZjeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_zc5oZzeFEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zc5oaDeFEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_zc5oaTeFEeGPyrZ5I3hMlA" type="7007">
+ <children xmi:type="notation:Shape" xmi:id="_7omegDeFEeGPyrZ5I3hMlA" type="3007" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7omegTeFEeGPyrZ5I3hMlA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_zc5oajeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_zc5oazeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_zc5obDeFEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zc5obTeFEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_zc5objeFEeGPyrZ5I3hMlA" visible="false" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_zc5obzeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_zc5ocDeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_zc5ocTeFEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zc5ocjeFEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0kVDdAuXEeWXe7AeBUbqvw" type="8507">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0kVDdQuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_PTWzwCS-Ed-A_I32T0fkaA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zc4aQTeFEeGPyrZ5I3hMlA" x="387" y="117" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-jKLIDeFEeGPyrZ5I3hMlA" type="2004" fontName="Sans Serif" fillColor="8905185" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-jKLIjeFEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-jKLIzeFEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-jKyMDeFEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-jKyMTeFEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-jKyMjeFEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-jKyMzeFEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-jKyNDeFEeGPyrZ5I3hMlA" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-jKyNTeFEeGPyrZ5I3hMlA" visible="false" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-jKyNjeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-jKyNzeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-jKyODeFEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-jKyOTeFEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-jKyOjeFEeGPyrZ5I3hMlA" type="7007">
+ <children xmi:type="notation:Shape" xmi:id="_A4890DeGEeGPyrZ5I3hMlA" type="3007" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A4890TeGEeGPyrZ5I3hMlA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-jKyOzeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-jKyPDeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-jKyPTeFEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-jKyPjeFEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-jKyPzeFEeGPyrZ5I3hMlA" visible="false" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-jKyQDeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-jKyQTeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-jKyQjeFEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-jKyQzeFEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0kVDdguXEeWXe7AeBUbqvw" type="8507">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0kVDdwuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_BHFPQJsqEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-jKLITeFEeGPyrZ5I3hMlA" x="387" y="18" height="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_H2qW0DeGEeGPyrZ5I3hMlA" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H2q94DeGEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H2q94TeGEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H2q94jeGEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H2q94zeGEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H2q95DeGEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H2q95TeGEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_H2q95jeGEeGPyrZ5I3hMlA" type="5038"/>
+ <element xmi:type="uml:Comment" href="ClientServerTraceTest.uml#_H2U_oDeGEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H2qW0TeGEeGPyrZ5I3hMlA" x="279" y="216" width="262"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_fBkXMDeGEeGPyrZ5I3hMlA" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fBk-QDeGEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fBk-QTeGEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fBk-QjeGEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fBk-QzeGEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fBk-RDeGEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fBllUDeGEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fBllUTeGEeGPyrZ5I3hMlA" type="5038"/>
+ <element xmi:type="uml:Comment" href="ClientServerTraceTest.uml#_fBRcQDeGEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fBkXMTeGEeGPyrZ5I3hMlA" x="100" y="340" width="441" height="89"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kTAmMDeHEeGPyrZ5I3hMlA" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kTBNQDeHEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kTBNQTeHEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kTBNQjeHEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kTBNQzeHEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kTBNRDeHEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kTBNRTeHEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kTBNRjeHEeGPyrZ5I3hMlA" type="5038"/>
+ <element xmi:type="uml:Comment" href="ClientServerTraceTest.uml#_kStEMDeHEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kTAmMTeHEeGPyrZ5I3hMlA" x="522" y="54" width="292" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0pf3UAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0pf3UQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_0pf3UwuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="ClientServerTraceTest.uml#_IfjoETLbEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0pf3UguXEeWXe7AeBUbqvw" x="290" y="135"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_rbZ3ITeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_0kVDeAuXEeWXe7AeBUbqvw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="ClientServerTraceTest.uml#_etOZkDLaEd2qeKRLMdIx_A"/>
+ <edges xmi:type="notation:Connector" xmi:id="_ys5HwDeFEeGPyrZ5I3hMlA" type="4002" source="_t6z40DeFEeGPyrZ5I3hMlA" target="_ysCMIDeFEeGPyrZ5I3hMlA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ys5u0DeFEeGPyrZ5I3hMlA" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ys5u0TeFEeGPyrZ5I3hMlA" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ys5HwTeFEeGPyrZ5I3hMlA" fontName="Sans Serif"/>
+ <element xmi:type="uml:Generalization" href="ClientServerTraceTest.uml#_34FjAPx3Ed6O2oOTPfeAMA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ys5HwjeFEeGPyrZ5I3hMlA" points="[-50, -50, 135, 135]$[-185, -185, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_zdznUDeFEeGPyrZ5I3hMlA" type="4003" source="_t6z40DeFEeGPyrZ5I3hMlA" target="_zc4aQDeFEeGPyrZ5I3hMlA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_zd01cDeFEeGPyrZ5I3hMlA" type="6008">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zd01cTeFEeGPyrZ5I3hMlA" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zd01cjeFEeGPyrZ5I3hMlA" type="6009">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zd01czeFEeGPyrZ5I3hMlA" x="9" y="-35"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_zdznUTeFEeGPyrZ5I3hMlA" fontName="Sans Serif"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_zdznUjeFEeGPyrZ5I3hMlA" points="[-50, -50, 135, 135]$[-185, -185, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_-kJpoDeFEeGPyrZ5I3hMlA" type="4002" source="_zc4aQDeFEeGPyrZ5I3hMlA" target="_-jKLIDeFEeGPyrZ5I3hMlA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_-kKQsDeFEeGPyrZ5I3hMlA" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-kKQsTeFEeGPyrZ5I3hMlA" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_-kJpoTeFEeGPyrZ5I3hMlA" fontName="Sans Serif"/>
+ <element xmi:type="uml:Generalization" href="pathmap://QML_CORE/sysinterfaces.uml#_XpdjECS-Ed-A_I32T0fkaA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-kJpojeFEeGPyrZ5I3hMlA" points="[-50, -11, 387, 88]$[-437, -99, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_eBCHQDeGEeGPyrZ5I3hMlA" type="4013" source="_H2qW0DeGEeGPyrZ5I3hMlA" target="_zdznUDeFEeGPyrZ5I3hMlA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_eBCHQTeGEeGPyrZ5I3hMlA" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_eBCHQjeGEeGPyrZ5I3hMlA" points="[-29, -30, 53, 44]$[-78, -81, 4, -7]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eB0KYDeGEeGPyrZ5I3hMlA" id="(0.649746192893401,0.620253164556962)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_f6Wj4DeHEeGPyrZ5I3hMlA" type="4013" source="_fBkXMDeGEeGPyrZ5I3hMlA" target="_t6z40DeFEeGPyrZ5I3hMlA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_f6Wj4TeHEeGPyrZ5I3hMlA" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f6Wj4jeHEeGPyrZ5I3hMlA" points="[-3, -11, 18, 93]$[-19, -84, 2, 20]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f68ZwDeHEeGPyrZ5I3hMlA" id="(0.12018140589569161,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f68ZwTeHEeGPyrZ5I3hMlA" id="(0.4375,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_HFYY8DeIEeGPyrZ5I3hMlA" type="4013" source="_kTAmMDeHEeGPyrZ5I3hMlA" target="_zc4aQDeFEeGPyrZ5I3hMlA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_HFYY8TeIEeGPyrZ5I3hMlA" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HFYY8jeIEeGPyrZ5I3hMlA" points="[-13, 9, 61, 0]$[-63, 4, 11, -5]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HGKcEDeIEeGPyrZ5I3hMlA" id="(0.04318936877076412,0.4175824175824176)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HGKcETeIEeGPyrZ5I3hMlA" id="(0.89,0.273972602739726)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_HmF5UDeIEeGPyrZ5I3hMlA" type="4013" source="_kTAmMDeHEeGPyrZ5I3hMlA" target="_-jKLIDeFEeGPyrZ5I3hMlA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_HmF5UTeIEeGPyrZ5I3hMlA" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HmF5UjeIEeGPyrZ5I3hMlA" points="[-17, -12, 67, 45]$[-67, -51, 17, 6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HmsWQDeIEeGPyrZ5I3hMlA" id="(0.05647840531561462,0.2857142857142857)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HmsWQTeIEeGPyrZ5I3hMlA" id="(0.83,0.684931506849315)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_0pf3VAuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_t6z40DeFEeGPyrZ5I3hMlA" target="_0pf3UAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_0pf3VQuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_0pf3WQuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="ClientServerTraceTest.uml#_IfjoETLbEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0pf3VguXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0pf3VwuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0pf3WAuXEeWXe7AeBUbqvw"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_Rk2pgDVlEeKoYLVLZgpRiw" type="PapyrusUMLClassDiagram" name="ClassDiagram Server" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_SeK3IDVlEeKoYLVLZgpRiw" type="2008" fontName="Sans Serif" fillColor="8905185" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SeMsUDVlEeKoYLVLZgpRiw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SeMsUTVlEeKoYLVLZgpRiw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SeMsUjVlEeKoYLVLZgpRiw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SeMsUzVlEeKoYLVLZgpRiw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SeMsVDVlEeKoYLVLZgpRiw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SeMsVTVlEeKoYLVLZgpRiw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SeNTYDVlEeKoYLVLZgpRiw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SeNTYTVlEeKoYLVLZgpRiw" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SeNTYjVlEeKoYLVLZgpRiw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SeNTYzVlEeKoYLVLZgpRiw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SeNTZDVlEeKoYLVLZgpRiw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SeNTZTVlEeKoYLVLZgpRiw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SeNTZjVlEeKoYLVLZgpRiw" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_VGZdoDVlEeKoYLVLZgpRiw" type="3013" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="ClientServerTraceTest.uml#_4ZEZwHecEd6r18stFZxmFQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VGZdoTVlEeKoYLVLZgpRiw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_VGaEsDVlEeKoYLVLZgpRiw" type="3013" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="ClientServerTraceTest.uml#_TbIjUJYlEd6G9q9hwr11bw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VGaEsTVlEeKoYLVLZgpRiw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_VGarwDVlEeKoYLVLZgpRiw" type="3013" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="ClientServerTraceTest.uml#_rrf74DVdEeKoYLVLZgpRiw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VGarwTVlEeKoYLVLZgpRiw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SeNTZzVlEeKoYLVLZgpRiw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SeNTaDVlEeKoYLVLZgpRiw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SeNTaTVlEeKoYLVLZgpRiw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SeNTajVlEeKoYLVLZgpRiw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SeNTazVlEeKoYLVLZgpRiw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SeNTbDVlEeKoYLVLZgpRiw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SeNTbTVlEeKoYLVLZgpRiw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SeNTbjVlEeKoYLVLZgpRiw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SeNTbzVlEeKoYLVLZgpRiw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0qKlsAuXEeWXe7AeBUbqvw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0qLMwAuXEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0ry9YguXEeWXe7AeBUbqvw" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_0ry9YwuXEeWXe7AeBUbqvw" name="stereotype" stringValue="C_Cpp::Include"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_RwTdQByJEduN1bTiWJ0lyw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0ry9ZAuXEeWXe7AeBUbqvw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0sIUkAuXEeWXe7AeBUbqvw" type="StereotypeCompartment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0sRegAuXEeWXe7AeBUbqvw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0sRegQuXEeWXe7AeBUbqvw" key="visible" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0sKJwAuXEeWXe7AeBUbqvw" type="StereotypeProperty">
+ <element xmi:type="uml:Property" href="pathmap://FCM_PROFILES/FCM.profile.uml#_r2VLUJD2Ed-I9dVdNhZAGQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0sKJwQuXEeWXe7AeBUbqvw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0sIUkQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_0sIUkguXEeWXe7AeBUbqvw" name="stereotype" stringValue="FCM::RuleApplication"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_te7YAMtkEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0sIUkwuXEeWXe7AeBUbqvw"/>
+ </children>
+ <element xmi:type="uml:Class" href="ClientServerTraceTest.uml#_oqZNUDLaEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SeK3ITVlEeKoYLVLZgpRiw" x="176" y="95" width="266" height="203"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0sFRQAuXEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0sFRQQuXEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_0sFRQwuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="ClientServerTraceTest.uml#_oqZNUDLaEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0sFRQguXEeWXe7AeBUbqvw" x="376" y="95"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Rk2pgTVlEeKoYLVLZgpRiw"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_0qLMwQuXEeWXe7AeBUbqvw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="ClientServerTraceTest.uml#_OGM88DLaEd2qeKRLMdIx_A"/>
+ <edges xmi:type="notation:Connector" xmi:id="_0sFRRAuXEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_SeK3IDVlEeKoYLVLZgpRiw" target="_0sFRQAuXEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_0sFRRQuXEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_0sFRSQuXEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="ClientServerTraceTest.uml#_oqZNUDLaEd2qeKRLMdIx_A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0sFRRguXEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0sFRRwuXEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0sFRSAuXEeWXe7AeBUbqvw"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_57mwQDclEeKAhIrFXfR8zQ" type="PapyrusUMLStateMachineDiagram" name="SmDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_57mwQTclEeKAhIrFXfR8zQ" type="2000" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_57mwQjclEeKAhIrFXfR8zQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_57mwQzclEeKAhIrFXfR8zQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_57mwRDclEeKAhIrFXfR8zQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_57mwRTclEeKAhIrFXfR8zQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_57mwRjclEeKAhIrFXfR8zQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_57mwRzclEeKAhIrFXfR8zQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_57mwSDclEeKAhIrFXfR8zQ" type="2001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_57mwSTclEeKAhIrFXfR8zQ" width="592" height="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_57mwSjclEeKAhIrFXfR8zQ" type="2002">
+ <children xmi:type="notation:Shape" xmi:id="_57mwSzclEeKAhIrFXfR8zQ" type="3000" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_57mwTDclEeKAhIrFXfR8zQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_57mwTTclEeKAhIrFXfR8zQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_57mwTjclEeKAhIrFXfR8zQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_57mwTzclEeKAhIrFXfR8zQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_57mwUDclEeKAhIrFXfR8zQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_57mwUTclEeKAhIrFXfR8zQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_57mwUjclEeKAhIrFXfR8zQ" source="RegionAnnotationKey">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_57mwUzclEeKAhIrFXfR8zQ" key="RegionZoneKey" value=""/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_57mwVDclEeKAhIrFXfR8zQ" type="3002">
+ <children xmi:type="notation:Shape" xmi:id="_66VCUDclEeKAhIrFXfR8zQ" type="6000" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_66VpYDclEeKAhIrFXfR8zQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_66VpYTclEeKAhIrFXfR8zQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_66VpYjclEeKAhIrFXfR8zQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_66VpYzclEeKAhIrFXfR8zQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_66VpZDclEeKAhIrFXfR8zQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_66VpZTclEeKAhIrFXfR8zQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_66VpZjclEeKAhIrFXfR8zQ" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_67AXwDclEeKAhIrFXfR8zQ" width="232" height="51"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_66WQcDclEeKAhIrFXfR8zQ" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_66WQcTclEeKAhIrFXfR8zQ" y="51" width="232" height="74"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_vJwSMDa6EeWzceOhsQmFCQ" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_vJwSMTa6EeWzceOhsQmFCQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vJwSMja6EeWzceOhsQmFCQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_HPaqoDa7EeWzceOhsQmFCQ" type="690">
+ <element xmi:type="uml:OpaqueBehavior" href="ClientServerTraceTest.uml#_9fEx8Da6EeWzceOhsQmFCQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_HPaqoTa7EeWzceOhsQmFCQ"/>
+ </children>
+ <element xmi:type="uml:State" href="ClientServerTraceTest.uml#_66D8kDclEeKAhIrFXfR8zQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_66VCUTclEeKAhIrFXfR8zQ" x="159" y="46" width="232" height="125"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9gPUoDclEeKAhIrFXfR8zQ" type="8000" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9gP7sTclEeKAhIrFXfR8zQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9gP7sjclEeKAhIrFXfR8zQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9gQiwDclEeKAhIrFXfR8zQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9gQiwTclEeKAhIrFXfR8zQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9gQiwjclEeKAhIrFXfR8zQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9gQiwzclEeKAhIrFXfR8zQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9gQixDclEeKAhIrFXfR8zQ" type="8001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9gQixTclEeKAhIrFXfR8zQ" x="26" y="-11"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9gQixjclEeKAhIrFXfR8zQ" type="8002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9gQixzclEeKAhIrFXfR8zQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Pseudostate" href="ClientServerTraceTest.uml#_9f6kgDclEeKAhIrFXfR8zQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9gP7sDclEeKAhIrFXfR8zQ" x="43" y="30"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_57mwVTclEeKAhIrFXfR8zQ"/>
+ </children>
+ <element xmi:type="uml:Region" href="ClientServerTraceTest.uml#_57WRkDclEeKAhIrFXfR8zQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_57mwVjclEeKAhIrFXfR8zQ" width="592" height="245"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_57mwVzclEeKAhIrFXfR8zQ" y="20" width="592" height="245"/>
+ </children>
+ <element xmi:type="uml:StateMachine" href="ClientServerTraceTest.uml#_5Vd9UDclEeKAhIrFXfR8zQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_57mwWDclEeKAhIrFXfR8zQ" x="30" y="30" width="592" height="265"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_57mwWTclEeKAhIrFXfR8zQ"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_0uUs8AuXEeWXe7AeBUbqvw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:EObjectListValueStyle" xmi:id="_ELvLkDiaEeW6xpHWhORo3g" name="css_stylesheets" eObjectListValue="_ELy18DiaEeW6xpHWhORo3g"/>
+ <element xmi:type="uml:StateMachine" href="ClientServerTraceTest.uml#_5Vd9UDclEeKAhIrFXfR8zQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_8bHfoDclEeKAhIrFXfR8zQ" type="7000" source="_66VCUDclEeKAhIrFXfR8zQ" target="_66VCUDclEeKAhIrFXfR8zQ" smoothness="Normal" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8bItwDclEeKAhIrFXfR8zQ" visible="false" type="7001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8bItwTclEeKAhIrFXfR8zQ"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8bItwjclEeKAhIrFXfR8zQ" type="7002">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_W-TWYDdgEeWSIc6H4M1kfQ" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_W-WZsDdgEeWSIc6H4M1kfQ" key="visible" value="true"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8bItwzclEeKAhIrFXfR8zQ"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8bItxDclEeKAhIrFXfR8zQ" visible="false" type="7003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8bItxTclEeKAhIrFXfR8zQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8bHfoTclEeKAhIrFXfR8zQ" fontName="Sans Serif"/>
+ <element xmi:type="uml:Transition" href="ClientServerTraceTest.uml#_8ZB08DclEeKAhIrFXfR8zQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8bHfojclEeKAhIrFXfR8zQ" points="[3, 1, 40, -51]$[65, 34, 102, -18]$[56, 94, 93, 42]$[-7, 103, 30, 51]$[-35, 56, 2, 4]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8b9NIDclEeKAhIrFXfR8zQ" id="(0.9724770642201835,0.36363636363636365)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8b9NITclEeKAhIrFXfR8zQ" id="(0.6330275229357798,0.9545454545454546)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_-wO84DclEeKAhIrFXfR8zQ" type="7000" source="_9gPUoDclEeKAhIrFXfR8zQ" target="_66VCUDclEeKAhIrFXfR8zQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_-wPj8DclEeKAhIrFXfR8zQ" visible="false" type="7001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-wPj8TclEeKAhIrFXfR8zQ"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-wQLADclEeKAhIrFXfR8zQ" visible="false" type="7002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-wQLATclEeKAhIrFXfR8zQ"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-wQLAjclEeKAhIrFXfR8zQ" visible="false" type="7003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-wQLAzclEeKAhIrFXfR8zQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_-wO84TclEeKAhIrFXfR8zQ" fontName="Sans Serif"/>
+ <element xmi:type="uml:Transition" href="ClientServerTraceTest.uml#_-v4XkDclEeKAhIrFXfR8zQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-wO84jclEeKAhIrFXfR8zQ" points="[10, 2, -77, -18]$[79, 14, -8, -6]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-xGfkDclEeKAhIrFXfR8zQ" id="(0.07339449541284404,0.1590909090909091)"/>
+ </edges>
+ </notation:Diagram>
+ <css:EmbeddedStyleSheet xmi:id="_ELy18DiaEeW6xpHWhORo3g" label="StateSvc" content="Transition > Label {&#xA;&#x9;bodyCutLength : 1;&#xA;}&#xA;&#xA;State > OpaqueBehavior {&#xA;&#x9;bodyCutLength : 1;&#xA;}"/>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ClientServerTraceTest.uml b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ClientServerTraceTest.uml
new file mode 100644
index 00000000000..58b4c73f332
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ClientServerTraceTest.uml
@@ -0,0 +1,398 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Alloc="http://www.eclipse.org/papyrus/Alloc/1" xmlns:C_Cpp="http://www.eclipse.org/papyrus/C_Cpp/1" xmlns:FCM="http://www.eclipse.org/papyrus/FCM/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/papyrus/Alloc/1 http://www.eclipse.org/papyrus/MARTE/1#//Alloc">
+ <uml:Model xmi:id="_O6TiIDLUEd26WNosUASSSw" name="ClientServerTraceTest">
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_O6TiITLUEd26WNosUASSSw">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_Bc1WIFW4Ed63BrxiKsw-0Q">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/core.uml#_O6TiIDLUEd26WNosUASSSw"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_rwBsMP7AEd6Zw96O-tCw7A">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/corba.uml#_DtQEwDLdEd2_U4efLnjQIw"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="__D5MwE2WEeGzNbfAXPgNLA">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_TRACE/tracing.uml#_H-ZqYDKeEd-WprEKTCaiMA"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Package" xmi:id="_LOqIEDLaEd2qeKRLMdIx_A" name="components">
+ <packagedElement xmi:type="uml:Package" xmi:id="_OGM88DLaEd2qeKRLMdIx_A" name="Server">
+ <packagedElement xmi:type="uml:Class" xmi:id="_oqZNUDLaEd2qeKRLMdIx_A" name="CServer_impl" classifierBehavior="_5Vd9UDclEeKAhIrFXfR8zQ">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_4KiE8DLbEd2qeKRLMdIx_A" name="p" type="_cn-H0DLbEd2qeKRLMdIx_A" aggregation="composite"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_YQqH0JYlEd6G9q9hwr11bw" name="derived realization of ICompute" client="_oqZNUDLaEd2qeKRLMdIx_A" supplier="_cn-H0DLbEd2qeKRLMdIx_A" contract="_cn-H0DLbEd2qeKRLMdIx_A"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_ML-4AKI5Ed6FqJCjEUrkqQ" name="add" specification="_TbIjUJYlEd6G9q9hwr11bw">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xOQMoC7NEeOY-cM3M1mqKw" name="a">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xOzmQC7NEeOY-cM3M1mqKw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xO_zgC7NEeOY-cM3M1mqKw" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xPLZsC7NEeOY-cM3M1mqKw" name="b">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xPuzUC7NEeOY-cM3M1mqKw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xP6ZgC7NEeOY-cM3M1mqKw" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xQF_sC7NEeOY-cM3M1mqKw" name="res" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xQvf8C7NEeOY-cM3M1mqKw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xQ7GIC7NEeOY-cM3M1mqKw" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;a=&quot; &lt;&lt; a &lt;&lt; &quot; b=&quot; &lt;&lt; b &lt;&lt; &quot; a+b=&quot; &lt;&lt; a+b &lt;&lt; endl;
+return a+b;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_I1R3YAcDEeGnrLqQ0OQeAg" name="mult" specification="_4ZEZwHecEd6r18stFZxmFQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xRMy8C7NEeOY-cM3M1mqKw" name="a">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_qgMSAB6SEd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xRwzoC7NEeOY-cM3M1mqKw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xR8Z0C7NEeOY-cM3M1mqKw" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xSInEC7NEeOY-cM3M1mqKw" name="b">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_wbw4kB6SEd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xStO0C7NEeOY-cM3M1mqKw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xS41AC7NEeOY-cM3M1mqKw" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xTFCQC7NEeOY-cM3M1mqKw" name="res" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xTn00C7NEeOY-cM3M1mqKw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xT0CEC7NEeOY-cM3M1mqKw" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;a*b=&quot; &lt;&lt; a*b;
+return a*b;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:StateMachine" xmi:id="_5Vd9UDclEeKAhIrFXfR8zQ" name="ServerStateMachine">
+ <region xmi:type="uml:Region" xmi:id="_57WRkDclEeKAhIrFXfR8zQ" name="Region1">
+ <transition xmi:type="uml:Transition" xmi:id="_8ZB08DclEeKAhIrFXfR8zQ" name="Transition0" source="_66D8kDclEeKAhIrFXfR8zQ" target="_66D8kDclEeKAhIrFXfR8zQ">
+ <effect xmi:type="uml:OpaqueBehavior" xmi:id="_EY7WsDdgEeWSIc6H4M1kfQ">
+ <language>C++</language>
+ <body>My opaque behavior</body>
+ </effect>
+ </transition>
+ <transition xmi:type="uml:Transition" xmi:id="_-v4XkDclEeKAhIrFXfR8zQ" name="Transition1" source="_9f6kgDclEeKAhIrFXfR8zQ" target="_66D8kDclEeKAhIrFXfR8zQ"/>
+ <subvertex xmi:type="uml:State" xmi:id="_66D8kDclEeKAhIrFXfR8zQ" name="State0">
+ <entry xmi:type="uml:OpaqueBehavior" xmi:id="_9fEx8Da6EeWzceOhsQmFCQ">
+ <language>C++</language>
+ <body>// This is a C++ operation body</body>
+ </entry>
+ </subvertex>
+ <subvertex xmi:type="uml:Pseudostate" xmi:id="_9f6kgDclEeKAhIrFXfR8zQ" name="Initial0"/>
+ </region>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_4ZEZwHecEd6r18stFZxmFQ" name="mult" method="_I1R3YAcDEeGnrLqQ0OQeAg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_nvpKUDVdEeKoYLVLZgpRiw" name="a">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_qgMSAB6SEd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nvup4DVdEeKoYLVLZgpRiw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nvvQ8DVdEeKoYLVLZgpRiw" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_nvwfEDVdEeKoYLVLZgpRiw" name="b">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_wbw4kB6SEd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nvy7UDVdEeKoYLVLZgpRiw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nvziYDVdEeKoYLVLZgpRiw" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_nv1XkDVdEeKoYLVLZgpRiw" name="res" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nv3z0DVdEeKoYLVLZgpRiw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nv4a4DVdEeKoYLVLZgpRiw" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_TbIjUJYlEd6G9q9hwr11bw" name="add" method="_ML-4AKI5Ed6FqJCjEUrkqQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_TbZCAJYlEd6G9q9hwr11bw" name="a">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_TbdTcJYlEd6G9q9hwr11bw" name="b">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_TbkoMJYlEd6G9q9hwr11bw" name="res" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_rrf74DVdEeKoYLVLZgpRiw" name="check">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_4UNv4DVdEeKoYLVLZgpRiw" name="write">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_4UO-ADVdEeKoYLVLZgpRiw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_4UPlEDVdEeKoYLVLZgpRiw" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_9OJPEDVkEeKoYLVLZgpRiw" name="testOp">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Br-FQDVlEeKoYLVLZgpRiw" name="testPar">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_9XvcQB6REd6ITtm_FH3jRw"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_6ERa0DW2EeKyT6LlKoWJIA" name="length">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_FfLX4DW3EeKyT6LlKoWJIA" name="p1" type="_krMkcDW2EeKyT6LlKoWJIA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FfN0IDW3EeKyT6LlKoWJIA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FfObMDW3EeKyT6LlKoWJIA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_Tp4n8DLaEd2qeKRLMdIx_A" name="Interfaces">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_TDDBoDeEEeGPyrZ5I3hMlA" annotatedElement="_cn-H0DLbEd2qeKRLMdIx_A">
+ <body>This interface contains services that are used by the client and provided by the server component</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_cn-H0DLbEd2qeKRLMdIx_A" name="ICompute">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_DGs6wDLgEd28fJKJJnUaeQ" name="add">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_DGs6wTLgEd28fJKJJnUaeQ" name="a">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DGs6wzLgEd28fJKJJnUaeQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DGs6wjLgEd28fJKJJnUaeQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_DGs6xTLgEd28fJKJJnUaeQ" name="b">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DGs6xzLgEd28fJKJJnUaeQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DGs6xjLgEd28fJKJJnUaeQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_DGs6yTLgEd28fJKJJnUaeQ" name="res" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DGs6yzLgEd28fJKJJnUaeQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DGs6yjLgEd28fJKJJnUaeQ" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_L8EY8DLgEd28fJKJJnUaeQ" name="mult" isAbstract="true">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_L8EY8TLgEd28fJKJJnUaeQ" name="a">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_qgMSAB6SEd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_L8EY8zLgEd28fJKJJnUaeQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_L8EY8jLgEd28fJKJJnUaeQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_L8EY9TLgEd28fJKJJnUaeQ" name="b">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_wbw4kB6SEd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_L8EY9zLgEd28fJKJJnUaeQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_L8EY9jLgEd28fJKJJnUaeQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_L8EY-TLgEd28fJKJJnUaeQ" name="res" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_L8EY-zLgEd28fJKJJnUaeQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_L8EY-jLgEd28fJKJJnUaeQ" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_rrbqcDVdEeKoYLVLZgpRiw" name="check" isAbstract="true">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_0xTp0DVdEeKoYLVLZgpRiw" name="write">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_6DewoDW2EeKyT6LlKoWJIA" name="length">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_AP4BcDW3EeKyT6LlKoWJIA" name="p1" type="_krMkcDW2EeKyT6LlKoWJIA"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_krMkcDW2EeKyT6LlKoWJIA" name="Point">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_m0WCQDW2EeKyT6LlKoWJIA" name="x" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_-5FTMB6REd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_pOAoUDW2EeKyT6LlKoWJIA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_pOB2cDW2EeKyT6LlKoWJIA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_pOESsDW2EeKyT6LlKoWJIA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_yJIJMDW2EeKyT6LlKoWJIA" name="y" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_-5FTMB6REd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_yd44QDW2EeKyT6LlKoWJIA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_yd6GYDW2EeKyT6LlKoWJIA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_yd77kDW2EeKyT6LlKoWJIA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_etOZkDLaEd2qeKRLMdIx_A" name="Client">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_b5cakDeEEeGPyrZ5I3hMlA" annotatedElement="_34FjAPx3Ed6O2oOTPfeAMA">
+ <body>The client component inherits a specific port from the Cstart componen type: the port &quot;start&quot; which provides interface IRunnable containing a single operation &quot;run&quot;. By implementing this operation, the client gets initial control, comparable to a function &quot;main&quot; in classificla programming languages. </body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_H2U_oDeGEeGPyrZ5I3hMlA">
+ <body>This realization relationship has been added automatically by Qompass, it is derived from the fact that class CClient_impl implements the port &quot;start&quot; which provides the interface &quot;IStart&quot;</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_fBRcQDeGEeGPyrZ5I3hMlA" annotatedElement="_IfjoETLbEd2qeKRLMdIx_A">
+ <body>The operation &quot;run&quot; (not the associated behavior) has been added automatically by Qompass in order to implement the operations of interfaces provided by ports, in this case of the operations of the &quot;IStart&quot; interface. It would be tedious to manually copy operations from an interface, as it would imply copying the complete signature with all parameters. The component developper has to provide a suitable behavior. A validation rule verifies if operations without behavior exist.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_kStEMDeHEeGPyrZ5I3hMlA">
+ <annotatedElement xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_PTWzwCS-Ed-A_I32T0fkaA"/>
+ <annotatedElement xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_BHFPQJsqEd61Eo3nmu3JhQ"/>
+ <body>These two interface are part of the &quot;BasicCalls&quot; Qompass model library. The IStart interface is &quot;special&quot;, since the Qompass model transformations check for it existance in order to pass the &quot;main&quot; control to this component. A validation rule checks, if exactly one component instance provides this interface via the &quot;start&quot; port.</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_IfjoETLbEd2qeKRLMdIx_A" name="CClient_impl">
+ <generalization xmi:type="uml:Generalization" xmi:id="_34FjAPx3Ed6O2oOTPfeAMA">
+ <general xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_N6fa4JsrEd61Eo3nmu3JhQ"/>
+ </generalization>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_DtWn4DLcEd2qeKRLMdIx_A" name="q" type="_cn-H0DLbEd2qeKRLMdIx_A" aggregation="composite"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_ZmdDkEdDEeGxo4rn9hBAOQ" name="derived realization of IStart" client="_IfjoETLbEd2qeKRLMdIx_A">
+ <supplier xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_PTWzwCS-Ed-A_I32T0fkaA"/>
+ <contract xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_PTWzwCS-Ed-A_I32T0fkaA"/>
+ </interfaceRealization>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_yXNVoKF4Ed6FqJCjEUrkqQ" name="run">
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;call via port q: add (2, 3);&quot; &lt;&lt; endl;
+for (int i=0; i&lt;20; i++) {
+ cout &lt;&lt; &quot;result: &quot; &lt;&lt; q->add (2, (i+3)) &lt;&lt; endl;
+ usleep((i+10)*5*1000);
+ cout &lt;&lt; &quot;result: &quot; &lt;&lt; q->mult (3.0, 7.0) &lt;&lt; endl;
+ usleep(20*1000);
+ testOp(i*2);
+ usleep(30*1000);
+}</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_yVALQDclEeKAhIrFXfR8zQ" name="testOp" specification="_Qzp7gDclEeKAhIrFXfR8zQ">
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;This is a test operation&quot; &lt;&lt; endl;</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Qzp7gDclEeKAhIrFXfR8zQ" name="testOp" method="_yVALQDclEeKAhIrFXfR8zQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_rXu4UDc_EeKPle9CbXIcpQ" name="j">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_9XvcQB6REd6ITtm_FH3jRw"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_XLQjUDLiEd2RVeNawwNNzg" name="System">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_s5iFMDeJEeGPyrZ5I3hMlA" annotatedElement="_bYJagDLiEd2RVeNawwNNzg">
+ <body>A composite class in which two attributes represent the component instances client and server, respectively. The assembly between ports is done on this level.
+A single class represents the complete application, typically called &quot;System&quot; or &quot;System_impl&quot;. Such a class provides the information to calculate a tree of instance specifications, a so-called deployment plan. Check out the context menu. can be generated from the </body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Vcf9kDeKEeGPyrZ5I3hMlA" annotatedElement="_QO2s0E2rEeGl8qrc8BM7vA">
+ <body>This connection between ports is stereotyped. The &quot;connector&quot; provides information which specific interaction component is responsible for realising this connection. The interaction component is part of an Qompass model library. Select the connection and check out the Qompass pop &quot;Show/choose connector type or implementation&quot;. In this case an group of implementations has been chosen, which contains a socket connection in case of distribution and a direct connection, if co-localized</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_bYJagDLiEd2RVeNawwNNzg" name="System_impl">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_gV1cgDLiEd2RVeNawwNNzg" name="server" type="_oqZNUDLaEd2qeKRLMdIx_A" isUnique="false" aggregation="composite"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_i-I7gDLiEd2RVeNawwNNzg" name="client" type="_IfjoETLbEd2qeKRLMdIx_A" isUnique="false" aggregation="composite"/>
+ <ownedConnector xmi:type="uml:Connector" xmi:id="_QO2s0E2rEeGl8qrc8BM7vA" name="qp_connector">
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_QO3T4E2rEeGl8qrc8BM7vA" partWithPort="_i-I7gDLiEd2RVeNawwNNzg" role="_DtWn4DLcEd2qeKRLMdIx_A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QO3T4k2rEeGl8qrc8BM7vA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QO3T4U2rEeGl8qrc8BM7vA" value="1"/>
+ </end>
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_QO5wIE2rEeGl8qrc8BM7vA" partWithPort="_gV1cgDLiEd2RVeNawwNNzg" role="_4KiE8DLbEd2qeKRLMdIx_A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QO5wIk2rEeGl8qrc8BM7vA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QO5wIU2rEeGl8qrc8BM7vA" value="1"/>
+ </end>
+ </ownedConnector>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_v3fMgDLiEd2RVeNawwNNzg" name="platform">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_ZWJ6QDeLEeGPyrZ5I3hMlA" annotatedElement="__1PHIMnhEeCMCo5Ox2CNmg">
+ <body>The hardware architecture is also defined by means of a composite class (comparable to the software architecture). The types (NodeA and NodeB) can be stereotyped with information about the used target platform (FCM stereotype target). As for software architecture, instances specification for nodes are derived from this class. Use &quot;Qompass: create platform definition&quot; in the context menu.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_2vkEQDeLEeGPyrZ5I3hMlA" annotatedElement="_eFh10MniEeCMCo5Ox2CNmg">
+ <body>The physical connection between two nodes is represented by a UML connector. Currently, this information is not evaluated by Qompass, but it is planned to analyze for instance whether the throughput (specified by means of MARTE) is sufficient with requirements of the software</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Node" xmi:id="_zY9vMDLiEd2RVeNawwNNzg" name="MonoNode"/>
+ <packagedElement xmi:type="uml:Node" xmi:id="_MxayMP_BEd6628OhKk_dpg" name="NodeA"/>
+ <packagedElement xmi:type="uml:Node" xmi:id="_NF3YMP_BEd6628OhKk_dpg" name="NodeB"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="__1PHIMnhEeCMCo5Ox2CNmg" name="HWArchitectureDist">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_RbUNAMniEeCMCo5Ox2CNmg" name="nodeA" visibility="public" type="_MxayMP_BEd6628OhKk_dpg" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_UjRccMniEeCMCo5Ox2CNmg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_UkfkcMniEeCMCo5Ox2CNmg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_Ul-LIMniEeCMCo5Ox2CNmg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_R5FuIMniEeCMCo5Ox2CNmg" name="nodeB" visibility="public" type="_NF3YMP_BEd6628OhKk_dpg" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VzfHIMniEeCMCo5Ox2CNmg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_V1Is8MniEeCMCo5Ox2CNmg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_V3LUUMniEeCMCo5Ox2CNmg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedConnector xmi:type="uml:Connector" xmi:id="_eFh10MniEeCMCo5Ox2CNmg" name="Connector0">
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_eFic4MniEeCMCo5Ox2CNmg" role="_RbUNAMniEeCMCo5Ox2CNmg"/>
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_eFjD8MniEeCMCo5Ox2CNmg" role="_R5FuIMniEeCMCo5Ox2CNmg"/>
+ </ownedConnector>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_M1a_8MniEeCMCo5Ox2CNmg" name="HWArchitectureMonolithic">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_QgKzYMniEeCMCo5Ox2CNmg" name="monoNode" visibility="public" type="_zY9vMDLiEd2RVeNawwNNzg" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XijRAMniEeCMCo5Ox2CNmg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XkfxwMniEeCMCo5Ox2CNmg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_XlIq8MniEeCMCo5Ox2CNmg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_fKDWEDeMEeGPyrZ5I3hMlA" name="HWArchitectureDistPlatform">
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_fKEkMDeMEeGPyrZ5I3hMlA" name="nodeA" classifier="_MxayMP_BEd6628OhKk_dpg"/>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_fKFyUDeMEeGPyrZ5I3hMlA" name="nodeB" classifier="_NF3YMP_BEd6628OhKk_dpg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_gFWgsDeMEeGPyrZ5I3hMlA" name="HWArchitectureMonolithicPlatform">
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_gFXHwDeMEeGPyrZ5I3hMlA" name="monoNode" classifier="_zY9vMDLiEd2RVeNawwNNzg"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_234GEDLiEd2RVeNawwNNzg" name="deployment">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_ToVjMDeIEeGPyrZ5I3hMlA" annotatedElement="_QT6okKDjEd-rLNbSWf1QuA">
+ <body>A deployment configuration that activates the tracing container rule which will provide OTF tracing. The deployment configuration is linked with the &quot;monolithic&quot; deployment plan</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_f3lHQDeIEeGPyrZ5I3hMlA" annotatedElement="_5Z7MEDLiEd2RVeNawwNNzg">
+ <body> deployment plan (= set of instances along with their configuration and allocation) &quot;monolithic&quot;. All instances are allocated to node instance &quot;monoNode&quot;. Check out the node allocation with the pop-up &quot;Qompass: allocate to node&quot;.
+Initiate the deployment and code generation with the pop-up &quot;Qompass: generate deployment model and code from plan&quot;.</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Package" xmi:id="_5Z7MEDLiEd2RVeNawwNNzg" name="monolithic">
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_L9xhwDLjEd2RVeNawwNNzg" name="mySystem" classifier="_bYJagDLiEd2RVeNawwNNzg">
+ <slot xmi:type="uml:Slot" xmi:id="_TdCvsDLjEd2RVeNawwNNzg" definingFeature="_gV1cgDLiEd2RVeNawwNNzg">
+ <value xmi:type="uml:InstanceValue" xmi:id="_fw8xUDLjEd2RVeNawwNNzg" name="" instance="_MyQ5wDLjEd2RVeNawwNNzg"/>
+ </slot>
+ <slot xmi:type="uml:Slot" xmi:id="_YhikUDLjEd2RVeNawwNNzg" definingFeature="_i-I7gDLiEd2RVeNawwNNzg">
+ <value xmi:type="uml:InstanceValue" xmi:id="_lAoiQDLjEd2RVeNawwNNzg" instance="_P3ovQDLjEd2RVeNawwNNzg"/>
+ </slot>
+ </packagedElement>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_MyQ5wDLjEd2RVeNawwNNzg" name="mySystem.server" classifier="_oqZNUDLaEd2qeKRLMdIx_A"/>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_P3ovQDLjEd2RVeNawwNNzg" name="mySystem.client" classifier="_IfjoETLbEd2qeKRLMdIx_A"/>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_1Lv7AE0qEeGl_syZE5iOXA" name="allocate to monoNode" client="_L9xhwDLjEd2RVeNawwNNzg" supplier="_gFXHwDeMEeGPyrZ5I3hMlA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_QT6okKDjEd-rLNbSWf1QuA" name="ConfigTraceMono"/>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_O6TiIjLUEd26WNosUASSSw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_O6TiIzLUEd26WNosUASSSw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_GcC0cAHtEd6HSdiss9GQ0A">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Gd1kMAHtEd6HSdiss9GQ0A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/C_Cpp/1#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_z1TwgFW3Ed63BrxiKsw-0Q">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_z2GasFW3Ed63BrxiKsw-0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/FCM/1#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://FCM_PROFILES/FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_1GtD8E0fEeG_H4ME7SR4KA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1RA2gE0fEeG_H4ME7SR4KA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_ar8OsAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ </uml:Model>
+ <FCM:DerivedElement xmi:id="_DWb6oP6yEd6Ie_kieu_3CQ" base_Element="_TbIjUJYlEd6G9q9hwr11bw" source="_DGs6wDLgEd28fJKJJnUaeQ"/>
+ <FCM:DerivedElement xmi:id="_DXK6cP6yEd6Ie_kieu_3CQ" base_Element="_4ZEZwHecEd6r18stFZxmFQ" source="_L8EY8DLgEd28fJKJJnUaeQ"/>
+ <FCM:RuleApplication xmi:id="_DWIYoP6yEd6Ie_kieu_3CQ" base_Class="_oqZNUDLaEd2qeKRLMdIx_A">
+ <containerRule xmi:type="FCM:ContainerRule" href="pathmap://QML_TRACE/tracing.uml#_RWQC8PwkEeGWn-a9PUOYcA"/>
+ <propagateRule>false</propagateRule>
+ <interceptor href="pathmap://QML_TRACE/tracing.uml#_35od4DKrEd-z5o2wSoJ16A"/>
+ </FCM:RuleApplication>
+ <FCM:Port xmi:id="_GofhQP6yEd6Ie_kieu_3CQ" base_Port="_4KiE8DLbEd2qeKRLMdIx_A">
+ <kind xmi:type="FCM:PortKind" href="pathmap://QML_CORE/core.uml#_wySlkFRxEd6GqrP6fkWBoQ"/>
+ </FCM:Port>
+ <FCM:DeploymentPlan xmi:id="_6dGQgP6zEd6Ie_kieu_3CQ" mainInstance="_L9xhwDLjEd2RVeNawwNNzg" base_Package="_5Z7MEDLiEd2RVeNawwNNzg"/>
+ <C_Cpp:Include xmi:id="_7SAnAP76Ed6Zw96O-tCw7A" body="#include &lt;unistd.h>&#xA;#include &lt;iostream>&#xA;using namespace std;" base_class="_IfjoETLbEd2qeKRLMdIx_A"/>
+ <C_Cpp:Include xmi:id="_Sa4nEP77Ed6Zw96O-tCw7A" body="#include &lt;iostream>&#xA;using namespace std;" base_class="_oqZNUDLaEd2qeKRLMdIx_A"/>
+ <FCM:Port xmi:id="_IWQqoP6yEd6Ie_kieu_3CQ" base_Port="_DtWn4DLcEd2qeKRLMdIx_A">
+ <kind xmi:type="FCM:PortKind" href="pathmap://QML_CORE/core.uml#_9Fif4FRxEd6GqrP6fkWBoQ"/>
+ </FCM:Port>
+ <FCM:Configuration xmi:id="_Y10_QKDjEd-rLNbSWf1QuA" base_Class="_QT6okKDjEd-rLNbSWf1QuA" deploymentPlan="_6dGQgP6zEd6Ie_kieu_3CQ">
+ <configOptions xmi:type="FCM:ConfigOption" href="pathmap://QML_CORE/core.uml#_u6LqoH7eEd-FNNgSS03RxQ"/>
+ </FCM:Configuration>
+ <FCM:Target xmi:id="_Et5N4LqQEd-BObGGoBbehA" base_Node="_MxayMP_BEd6628OhKk_dpg">
+ <targetArch xmi:type="FCM:TargetArchitecture" href="pathmap://QML_CORE/core.uml#_FYOqwF0OEd-12d_h0i1xhQ"/>
+ <usedOS xmi:type="FCM:OperatingSystem" href="pathmap://QML_CORE/core.uml#_1eULwF0NEd-12d_h0i1xhQ"/>
+ </FCM:Target>
+ <FCM:Target xmi:id="_HvbFMLqQEd-BObGGoBbehA" base_Node="_zY9vMDLiEd2RVeNawwNNzg">
+ <targetArch xmi:type="FCM:TargetArchitecture" href="pathmap://QML_CORE/core.uml#_FYOqwF0OEd-12d_h0i1xhQ"/>
+ <usedOS xmi:type="FCM:OperatingSystem" href="pathmap://QML_CORE/core.uml#_1eULwF0NEd-12d_h0i1xhQ"/>
+ </FCM:Target>
+ <FCM:Target xmi:id="_J6gcsLqQEd-BObGGoBbehA" base_Node="_NF3YMP_BEd6628OhKk_dpg">
+ <targetArch xmi:type="FCM:TargetArchitecture" href="pathmap://QML_CORE/core.uml#_FYOqwF0OEd-12d_h0i1xhQ"/>
+ <usedOS xmi:type="FCM:OperatingSystem" href="pathmap://QML_CORE/core.uml#_1eULwF0NEd-12d_h0i1xhQ"/>
+ </FCM:Target>
+ <Alloc:Allocate xmi:id="_hgh4IE0rEeGl_syZE5iOXA" base_Abstraction="_1Lv7AE0qEeGl_syZE5iOXA"/>
+ <FCM:DerivedElement xmi:id="_rrmpkDVdEeKoYLVLZgpRiw" base_Element="_rrf74DVdEeKoYLVLZgpRiw" source="_rrbqcDVdEeKoYLVLZgpRiw"/>
+ <FCM:DerivedElement xmi:id="_6EbL0DW2EeKyT6LlKoWJIA" base_Element="_6ERa0DW2EeKyT6LlKoWJIA" source="_6DewoDW2EeKyT6LlKoWJIA"/>
+ <FCM:RuleApplication xmi:id="__bC_ADcmEeKAhIrFXfR8zQ" base_Class="_IfjoETLbEd2qeKRLMdIx_A">
+ <containerRule xmi:type="FCM:ContainerRule" href="pathmap://QML_TRACE/tracing.uml#_NtAukCqLEeKGrchWittz_g"/>
+ <propagateRule>false</propagateRule>
+ </FCM:RuleApplication>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ProducerConsumer.di b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ProducerConsumer.di
new file mode 100644
index 00000000000..8ead0589857
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ProducerConsumer.di
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="ASCII"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi" xmi:id="_M_WAwPcXEd-KM6l7lmIPkw">
+ <pageList xmi:id="_M_WAwfcXEd-KM6l7lmIPkw">
+ <availablePage xmi:id="_M_WAwvcXEd-KM6l7lmIPkw">
+ <emfPageIdentifier href="ProducerConsumer.notation#_UstOsM__Ed-TP80eVS-2Rg"/>
+ </availablePage>
+ <availablePage xmi:id="_M_WAxPcXEd-KM6l7lmIPkw">
+ <emfPageIdentifier href="ProducerConsumer.notation#_7kc7YM__Ed-TP80eVS-2Rg"/>
+ </availablePage>
+ <availablePage xmi:id="_M_WAxfcXEd-KM6l7lmIPkw">
+ <emfPageIdentifier href="ProducerConsumer.notation#_o6ZisNCREd-hqYHBJe17_Q"/>
+ </availablePage>
+ <availablePage xmi:id="_U1docPcXEd-KM6l7lmIPkw">
+ <emfPageIdentifier href="ProducerConsumer.notation#_U1UegPcXEd-KM6l7lmIPkw"/>
+ </availablePage>
+ <availablePage xmi:id="_V5fVYP8nEd-hWJO6cv3VJA">
+ <emfPageIdentifier href="ProducerConsumer.notation#_V5euUP8nEd-hWJO6cv3VJA"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="ProducerConsumer.notation#_0rwpYDefEeGPyrZ5I3hMlA"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="ProducerConsumer.notation#_HvdK0FZYEeKKZs15rvNNjA"/>
+ </availablePage>
+ </pageList>
+ <sashModel xmi:id="_M_WAxvcXEd-KM6l7lmIPkw" currentSelection="_M_WAyPcXEd-KM6l7lmIPkw">
+ <windows xmi:id="_M_WAx_cXEd-KM6l7lmIPkw">
+ <children xsi:type="di:TabFolder" xmi:id="_M_WAyPcXEd-KM6l7lmIPkw">
+ <children xmi:id="_M_WAyfcXEd-KM6l7lmIPkw">
+ <emfPageIdentifier href="ProducerConsumer.notation#_UstOsM__Ed-TP80eVS-2Rg"/>
+ </children>
+ <children xmi:id="_M_WAy_cXEd-KM6l7lmIPkw">
+ <emfPageIdentifier href="ProducerConsumer.notation#_7kc7YM__Ed-TP80eVS-2Rg"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="ProducerConsumer.notation#_U1UegPcXEd-KM6l7lmIPkw"/>
+ </children>
+ <children xmi:id="_V5fVYf8nEd-hWJO6cv3VJA">
+ <emfPageIdentifier href="ProducerConsumer.notation#_V5euUP8nEd-hWJO6cv3VJA"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="ProducerConsumer.notation#_0rwpYDefEeGPyrZ5I3hMlA"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="ProducerConsumer.notation#_o6ZisNCREd-hqYHBJe17_Q"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="ProducerConsumer.notation#_HvdK0FZYEeKKZs15rvNNjA"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+</di:SashWindowsMngr>
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ProducerConsumer.notation b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ProducerConsumer.notation
new file mode 100644
index 00000000000..8d26d0ae915
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ProducerConsumer.notation
@@ -0,0 +1,1090 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:C_Cpp="http://www.eclipse.org/papyrus/C_Cpp/1" xmlns:FCM="http://www.eclipse.org/papyrus/FCM/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML">
+ <notation:Diagram xmi:id="_UstOsM__Ed-TP80eVS-2Rg" type="CompositeStructure" name="PushConsumer" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_VT2HMM__Ed-TP80eVS-2Rg" type="2073" fontName="" fontHeight="10" fillColor="8905185" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VT2HMs__Ed-TP80eVS-2Rg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VT2uQM__Ed-TP80eVS-2Rg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VT2uQc__Ed-TP80eVS-2Rg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VT2uQs__Ed-TP80eVS-2Rg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VT2uQ8__Ed-TP80eVS-2Rg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VT2uRM__Ed-TP80eVS-2Rg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VT2uRc__Ed-TP80eVS-2Rg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VT2uRs__Ed-TP80eVS-2Rg" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VT2uR8__Ed-TP80eVS-2Rg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XgvckM__Ed-TP80eVS-2Rg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XgwDoM__Ed-TP80eVS-2Rg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XgwDoc__Ed-TP80eVS-2Rg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XgwDos__Ed-TP80eVS-2Rg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XgwDo8__Ed-TP80eVS-2Rg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XgwqsM__Ed-TP80eVS-2Rg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Xgwqsc__Ed-TP80eVS-2Rg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Dym0EJZ7EeCiU5xXzp1cKQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UDcT4FZ3EeK5f41mmHszag" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UDc68FZ3EeK5f41mmHszag" key="StereotypeList" value="MARTE::MARTE_DesignModel::GCM::FlowPort,FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UDc68VZ3EeK5f41mmHszag" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UDc68lZ3EeK5f41mmHszag" key="PropStereoDisplay" value="FCM::Port.kind"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UDc681Z3EeK5f41mmHszag" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Xgwqss__Ed-TP80eVS-2Rg" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Xgwqs8__Ed-TP80eVS-2Rg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XgwqtM__Ed-TP80eVS-2Rg" type="6029">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fex2IFZ0EeK5f41mmHszag" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RrgzMFZ3EeK5f41mmHszag" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RrgzMVZ3EeK5f41mmHszag" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RrgzMlZ3EeK5f41mmHszag" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RrgzM1Z3EeK5f41mmHszag" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RrgzNFZ3EeK5f41mmHszag" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Xgwqtc__Ed-TP80eVS-2Rg" x="-62" y="-65"/>
+ </children>
+ <element xmi:type="uml:Port" href="ProducerConsumer.uml#_4KiE8DLbEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Xgvckc__Ed-TP80eVS-2Rg" x="-10" y="38"/>
+ </children>
+ <element xmi:type="uml:Class" href="ProducerConsumer.uml#_oqZNUDLaEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VT2HMc__Ed-TP80eVS-2Rg" x="144" y="36" width="172" height="87"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XfxXsDecEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Xgz5gDecEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Xgz5gTecEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Xgz5gjecEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Xgz5gzecEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Xgz5hDecEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Xgz5hTecEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Xgz5hjecEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ProducerConsumer.uml#_XfnmsDecEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XfxXsTecEeGPyrZ5I3hMlA" x="351" y="36" width="163" height="91"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gpzeUDecEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gp0FYDecEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gp0FYTecEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gp0FYjecEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gp0FYzecEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gp0FZDecEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gp0FZTecEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gp0FZjecEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ProducerConsumer.uml#_gpptUDecEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gpzeUTecEeGPyrZ5I3hMlA" x="63" y="144" width="451"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_UstOsc__Ed-TP80eVS-2Rg"/>
+ <element xmi:type="uml:Package" href="ProducerConsumer.uml#_OGM88DLaEd2qeKRLMdIx_A"/>
+ <edges xmi:type="notation:Connector" xmi:id="_fsWXkDecEeGPyrZ5I3hMlA" type="4002" source="_XfxXsDecEeGPyrZ5I3hMlA" target="_VT2HMM__Ed-TP80eVS-2Rg" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_fsWXkTecEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_fsWXkjecEeGPyrZ5I3hMlA" points="[-1, -3, 19, 74]$[4, -33, 24, 44]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fsndUDecEeGPyrZ5I3hMlA" id="(0.3893805309734513,0.05)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_l-KT4DecEeGPyrZ5I3hMlA" type="4002" source="_gpzeUDecEeGPyrZ5I3hMlA" target="_XgvckM__Ed-TP80eVS-2Rg" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_l-KT4TecEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_l-KT4jecEeGPyrZ5I3hMlA" points="[-17, -2, -29, 63]$[-17, -62, -29, 3]$[9, -62, -3, 3]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_l-cAsDecEeGPyrZ5I3hMlA" id="(0.14832535885167464,0.03333333333333333)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_l-cAsTecEeGPyrZ5I3hMlA" id="(0.15,0.35)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_7kc7YM__Ed-TP80eVS-2Rg" type="CompositeStructure" name="PullConsumer" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_8LSR4M__Ed-TP80eVS-2Rg" type="2073" fontName="" fontHeight="10" fillColor="8905185" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8LSR4s__Ed-TP80eVS-2Rg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8LSR48__Ed-TP80eVS-2Rg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8LS48M__Ed-TP80eVS-2Rg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8LS48c__Ed-TP80eVS-2Rg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8LS48s__Ed-TP80eVS-2Rg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8LS488__Ed-TP80eVS-2Rg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HIdDoJZ9EeCiU5xXzp1cKQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HT--MJZ9EeCiU5xXzp1cKQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HT--MZZ9EeCiU5xXzp1cKQ" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HT--MpZ9EeCiU5xXzp1cKQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HT--M5Z9EeCiU5xXzp1cKQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HT--NJZ9EeCiU5xXzp1cKQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8LS49M__Ed-TP80eVS-2Rg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8LS49c__Ed-TP80eVS-2Rg" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8LS49s__Ed-TP80eVS-2Rg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ytK8IP8nEd-hWJO6cv3VJA" type="3069" fontName="" fontHeight="10" gradient="8421504, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ytLjMP8nEd-hWJO6cv3VJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ytLjMf8nEd-hWJO6cv3VJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ytLjMv8nEd-hWJO6cv3VJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ytLjM_8nEd-hWJO6cv3VJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ytMKQP8nEd-hWJO6cv3VJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ytMKQf8nEd-hWJO6cv3VJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sZ6LcFZWEeKKZs15rvNNjA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sogoIFZWEeKKZs15rvNNjA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sogoIVZWEeKKZs15rvNNjA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sogoIlZWEeKKZs15rvNNjA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sogoI1ZWEeKKZs15rvNNjA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sohPMFZWEeKKZs15rvNNjA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ytMKQv8nEd-hWJO6cv3VJA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-iwEgFZ0EeK5f41mmHszag" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-o9aMFZ0EeK5f41mmHszag" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ytMKQ_8nEd-hWJO6cv3VJA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ytMKRP8nEd-hWJO6cv3VJA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ytMKRf8nEd-hWJO6cv3VJA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ytK8If8nEd-hWJO6cv3VJA" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_t6X3UJaMEeCbgbUO5qahhA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t6ZFcJaMEeCbgbUO5qahhA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t6ZFcZaMEeCbgbUO5qahhA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t6ZsgJaMEeCbgbUO5qahhA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t6ZsgZaMEeCbgbUO5qahhA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t6ZsgpaMEeCbgbUO5qahhA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t6Zsg5aMEeCbgbUO5qahhA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wOa9kJaMEeCbgbUO5qahhA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SS_KQFZ0EeK5f41mmHszag" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SS_xUFZ0EeK5f41mmHszag" key="StereotypeList" value="MARTE::MARTE_DesignModel::GCM::FlowPort,FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SS_xUVZ0EeK5f41mmHszag" key="PropStereoDisplay" value="FCM::Port.kind,FCM::Port.requiredInterface"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SS_xUlZ0EeK5f41mmHszag" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SS_xU1Z0EeK5f41mmHszag" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_t6ZshJaMEeCbgbUO5qahhA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__Cf7kFZ0EeK5f41mmHszag" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__K9UAFZ0EeK5f41mmHszag" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_t6ZshZaMEeCbgbUO5qahhA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_t6aTkJaMEeCbgbUO5qahhA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_t6aTkZaMEeCbgbUO5qahhA" x="-8" y="45"/>
+ </children>
+ <element xmi:type="uml:Port" href="ProducerConsumer.uml#_tyiqs8__Ed-TP80eVS-2Rg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t6X3UZaMEeCbgbUO5qahhA" x="-10" y="72"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JxylQFZ0EeK5f41mmHszag" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JxylQVZ0EeK5f41mmHszag" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="ProducerConsumer.uml#_11OtwPcaEd-KM6l7lmIPkw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JxylQlZ0EeK5f41mmHszag"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JxzMUFZ0EeK5f41mmHszag" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JxzMUVZ0EeK5f41mmHszag" showTitle="true"/>
+ <element xmi:type="FCM:RuleApplication" href="ProducerConsumer.uml#_FeS3AF7zEeGA7qTe7UD05A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JxzMUlZ0EeK5f41mmHszag"/>
+ </children>
+ <element xmi:type="uml:Class" href="ProducerConsumer.uml#_tyiqsc__Ed-TP80eVS-2Rg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8LSR4c__Ed-TP80eVS-2Rg" x="162" y="162" width="254" height="109"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uHcuMP8nEd-hWJO6cv3VJA" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uHdVQP8nEd-hWJO6cv3VJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uHdVQf8nEd-hWJO6cv3VJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uHdVQv8nEd-hWJO6cv3VJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uHdVQ_8nEd-hWJO6cv3VJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uHdVRP8nEd-hWJO6cv3VJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uHdVRf8nEd-hWJO6cv3VJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uHdVRv8nEd-hWJO6cv3VJA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_uHdVR_8nEd-hWJO6cv3VJA" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uHd8UP8nEd-hWJO6cv3VJA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_xVmsQP8nEd-hWJO6cv3VJA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xVnTUP8nEd-hWJO6cv3VJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xVnTUf8nEd-hWJO6cv3VJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xVnTUv8nEd-hWJO6cv3VJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xVnTU_8nEd-hWJO6cv3VJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xVnTVP8nEd-hWJO6cv3VJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xVn6YP8nEd-hWJO6cv3VJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qnfyoFZWEeKKZs15rvNNjA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q3YBsFZWEeKKZs15rvNNjA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q3YBsVZWEeKKZs15rvNNjA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q3YowFZWEeKKZs15rvNNjA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q3YowVZWEeKKZs15rvNNjA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q3YowlZWEeKKZs15rvNNjA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xVn6Yf8nEd-hWJO6cv3VJA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__hZeEFZ0EeK5f41mmHszag" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__nGdcFZ0EeK5f41mmHszag" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xVn6Yv8nEd-hWJO6cv3VJA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xVn6Y_8nEd-hWJO6cv3VJA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xVn6ZP8nEd-hWJO6cv3VJA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xVmsQf8nEd-hWJO6cv3VJA" x="-10" y="29"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uHcuMf8nEd-hWJO6cv3VJA" x="162" y="36" width="253" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-HlK8DecEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-HlyADecEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-HlyATecEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-HlyAjecEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-HlyAzecEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-HlyBDecEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-HlyBTecEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-HlyBjecEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ProducerConsumer.uml#_-Hd2MDecEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-HlK8TecEeGPyrZ5I3hMlA" x="468" y="135" width="295"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0EFQQDedEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0EF3UDedEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0EF3UTedEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0EF3UjedEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0EF3UzedEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0EF3VDedEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0EF3VTedEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0EF3VjedEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ProducerConsumer.uml#_0D64MDedEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0EFQQTedEeGPyrZ5I3hMlA" x="468" y="36" width="295"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_7kc7Yc__Ed-TP80eVS-2Rg"/>
+ <element xmi:type="uml:Package" href="ProducerConsumer.uml#_tyiqsM__Ed-TP80eVS-2Rg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_uHz6kP8nEd-hWJO6cv3VJA" type="4015" source="_8LSR4M__Ed-TP80eVS-2Rg" target="_uHcuMP8nEd-hWJO6cv3VJA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_uH0hoP8nEd-hWJO6cv3VJA" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uH0hof8nEd-hWJO6cv3VJA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_uHz6kf8nEd-hWJO6cv3VJA" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="ProducerConsumer.uml#_tyiqss__Ed-TP80eVS-2Rg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_uHz6kv8nEd-hWJO6cv3VJA" points="[-103, -45, 204, 90]$[-307, -135, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_FOfGwDeeEeGPyrZ5I3hMlA" type="4002" source="_0EFQQDedEeGPyrZ5I3hMlA" target="_uHcuMP8nEd-hWJO6cv3VJA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FOfGwTeeEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FOfGwjeeEeGPyrZ5I3hMlA" points="[-6, -3, 83, 0]$[-62, -3, 27, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FOwMgDeeEeGPyrZ5I3hMlA" id="(0.020338983050847456,0.4027777777777778)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FOwMgTeeEeGPyrZ5I3hMlA" id="(0.8932806324110671,0.5205479452054794)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_F4Ju0DeeEeGPyrZ5I3hMlA" type="4002" source="_-HlK8DecEeGPyrZ5I3hMlA" target="_8LSR4M__Ed-TP80eVS-2Rg" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_F4Ju0TeeEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_F4Ju0jeeEeGPyrZ5I3hMlA" points="[-25, 21, 78, 0]$[-80, 21, 23, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_F4a0kDeeEeGPyrZ5I3hMlA" id="(0.01694915254237288,0.5681818181818182)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_F4a0kTeeEeGPyrZ5I3hMlA" id="(0.9724409448818898,0.42201834862385323)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_o6ZisNCREd-hqYHBJe17_Q" type="CompositeStructure" name="System Pull" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_VSa6YNHtEd-A1oPfP47IaQ" type="2073" fontName="" fontHeight="10" fillColor="8905185" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VScIgNHtEd-A1oPfP47IaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VScvkNHtEd-A1oPfP47IaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VScvkdHtEd-A1oPfP47IaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VScvktHtEd-A1oPfP47IaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VScvk9HtEd-A1oPfP47IaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VScvlNHtEd-A1oPfP47IaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VScvldHtEd-A1oPfP47IaQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VScvltHtEd-A1oPfP47IaQ" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_XsS70NHtEd-A1oPfP47IaQ" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XsTi4NHtEd-A1oPfP47IaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XsTi4dHtEd-A1oPfP47IaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XsTi4tHtEd-A1oPfP47IaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XsTi49HtEd-A1oPfP47IaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XsTi5NHtEd-A1oPfP47IaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XsTi5dHtEd-A1oPfP47IaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XsTi5tHtEd-A1oPfP47IaQ" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5r3JsFZWEeKKZs15rvNNjA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6tdJkFZWEeKKZs15rvNNjA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_XsTi59HtEd-A1oPfP47IaQ" type="7077">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XsUJ8NHtEd-A1oPfP47IaQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0XlXwDF1EeCpQdhNuFCtew" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0XnM8DF1EeCpQdhNuFCtew" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0XnM8TF1EeCpQdhNuFCtew" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0XnM8jF1EeCpQdhNuFCtew" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0XnM8zF1EeCpQdhNuFCtew" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0XnM9DF1EeCpQdhNuFCtew" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0XnM9TF1EeCpQdhNuFCtew" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t7uK4JZ7EeCiU5xXzp1cKQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ueh9AJZ7EeCiU5xXzp1cKQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ueh9AZZ7EeCiU5xXzp1cKQ" key="StereotypeList" value="MARTE::MARTE_DesignModel::GCM::FlowPort"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ueh9ApZ7EeCiU5xXzp1cKQ" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ueh9A5Z7EeCiU5xXzp1cKQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ueikEJZ7EeCiU5xXzp1cKQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0Xn0ADF1EeCpQdhNuFCtew" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4jWCcFZWEeKKZs15rvNNjA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4qOGgFZWEeKKZs15rvNNjA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0Xn0ATF1EeCpQdhNuFCtew" x="31" y="-1"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0Xn0AjF1EeCpQdhNuFCtew" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0Xn0AzF1EeCpQdhNuFCtew" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="ProducerConsumer.uml#_tyiqs8__Ed-TP80eVS-2Rg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0XlXwTF1EeCpQdhNuFCtew" x="-10" y="50"/>
+ </children>
+ <element xmi:type="uml:Property" href="ProducerConsumer.uml#_gV1cgDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XsS70dHtEd-A1oPfP47IaQ" x="361" y="18" width="193" height="85"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_YNar4NHtEd-A1oPfP47IaQ" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YNbS8NHtEd-A1oPfP47IaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YNbS8dHtEd-A1oPfP47IaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YNbS8tHtEd-A1oPfP47IaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YNbS89HtEd-A1oPfP47IaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YNbS9NHtEd-A1oPfP47IaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YNbS9dHtEd-A1oPfP47IaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YNbS9tHtEd-A1oPfP47IaQ" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7rNyUFZWEeKKZs15rvNNjA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7ztnAFZWEeKKZs15rvNNjA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_YNbS99HtEd-A1oPfP47IaQ" type="7077">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNbS-NHtEd-A1oPfP47IaQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_zmq8ANHtEd-A1oPfP47IaQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zmsKINHtEd-A1oPfP47IaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zmsKIdHtEd-A1oPfP47IaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zmsKItHtEd-A1oPfP47IaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zmsKI9HtEd-A1oPfP47IaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zmsKJNHtEd-A1oPfP47IaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zmsKJdHtEd-A1oPfP47IaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ow9WMJZ7EeCiU5xXzp1cKQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qlbkgJZ7EeCiU5xXzp1cKQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qlbkgZZ7EeCiU5xXzp1cKQ" key="StereotypeList" value="MARTE::MARTE_DesignModel::GCM::FlowPort"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qlbkgpZ7EeCiU5xXzp1cKQ" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qlcLkJZ7EeCiU5xXzp1cKQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qlcLkZZ7EeCiU5xXzp1cKQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zmsKJtHtEd-A1oPfP47IaQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_34a2IFZWEeKKZs15rvNNjA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4ARKkFZWEeKKZs15rvNNjA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zmsxMNHtEd-A1oPfP47IaQ" x="-84" y="1"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zmsxMdHtEd-A1oPfP47IaQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zmsxMtHtEd-A1oPfP47IaQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="ProducerConsumer.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zmq8AdHtEd-A1oPfP47IaQ" x="159" y="48"/>
+ </children>
+ <element xmi:type="uml:Property" href="ProducerConsumer.uml#_i-I7gDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNar4dHtEd-A1oPfP47IaQ" x="22" y="18" width="169" height="85"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_JusbQDbdEeGdqp2YT1LwWw" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JutCUDbdEeGdqp2YT1LwWw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JutCUTbdEeGdqp2YT1LwWw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JutCUjbdEeGdqp2YT1LwWw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JutCUzbdEeGdqp2YT1LwWw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JutCVDbdEeGdqp2YT1LwWw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JutCVTbdEeGdqp2YT1LwWw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JutCVjbdEeGdqp2YT1LwWw" type="5192"/>
+ <element xmi:type="uml:Comment" href="ProducerConsumer.uml#_JuaHYDbdEeGdqp2YT1LwWw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JusbQTbdEeGdqp2YT1LwWw" x="355" y="121" width="199" height="44"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lM7ZUDeeEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lM7ZUjeeEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lM7ZUzeeEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lM8AYDeeEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lM8AYTeeEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lM8AYjeeEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lM8AYzeeEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lM8AZDeeEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ProducerConsumer.uml#_lMxBQDeeEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lM7ZUTeeEeGPyrZ5I3hMlA" x="4" y="121" width="343"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VScvl9HtEd-A1oPfP47IaQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="ProducerConsumer.uml#_bYJagDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VSa6YdHtEd-A1oPfP47IaQ" x="18" y="18" width="604" height="244"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_o6ZisdCREd-hqYHBJe17_Q"/>
+ <element xmi:type="uml:Package" href="ProducerConsumer.uml#_XLQjUDLiEd2RVeNawwNNzg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_fPo0MDbdEeGdqp2YT1LwWw" type="4002" source="_JusbQDbdEeGdqp2YT1LwWw" target="_XsS70NHtEd-A1oPfP47IaQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_fPo0MTbdEeGdqp2YT1LwWw" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_fPo0MjbdEeGdqp2YT1LwWw" points="[2, -6, -18, 35]$[17, -24, -3, 17]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fQJKgDbdEeGdqp2YT1LwWw" id="(0.5121951219512195,0.125)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fQJKgTbdEeGdqp2YT1LwWw" id="(0.48186528497409326,0.8)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_efaBUE2rEeGl8qrc8BM7vA" type="4013" source="_zmq8ANHtEd-A1oPfP47IaQ" target="_0XlXwDF1EeCpQdhNuFCtew" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iqb3UE2rEeGl8qrc8BM7vA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9bRlQFZXEeKKZs15rvNNjA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9bRlQVZXEeKKZs15rvNNjA" key="StereotypeList" value="FCM::Connector"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9bRlQlZXEeKKZs15rvNNjA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9bSMUFZXEeKKZs15rvNNjA" key="PropStereoDisplay" value="FCM::Connector.ic"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9bSMUVZXEeKKZs15rvNNjA" key="StereotypePropertyLocation" value="With brace"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_efaoYE2rEeGl8qrc8BM7vA" type="6025">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_j_ovsE2rEeGl8qrc8BM7vA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_klZIIE2rEeGl8qrc8BM7vA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_klZIIU2rEeGl8qrc8BM7vA" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_klZIIk2rEeGl8qrc8BM7vA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_klZII02rEeGl8qrc8BM7vA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_klZIJE2rEeGl8qrc8BM7vA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_efaoYU2rEeGl8qrc8BM7vA" x="-4" y="-27"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_efaoYk2rEeGl8qrc8BM7vA" visible="false" type="6050">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_efaoY02rEeGl8qrc8BM7vA" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_efbPcE2rEeGl8qrc8BM7vA" visible="false" type="6051">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_efbPcU2rEeGl8qrc8BM7vA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_efbPck2rEeGl8qrc8BM7vA" visible="false" type="6052">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_efbPc02rEeGl8qrc8BM7vA" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_efaBUU2rEeGl8qrc8BM7vA" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Connector" href="ProducerConsumer.uml#_efVI0E2rEeGl8qrc8BM7vA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_efaBUk2rEeGl8qrc8BM7vA" points="[3, 1, -160, -2]$[160, -7, -3, -10]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_efmOkE2rEeGl8qrc8BM7vA" id="(0.85,0.45)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_g2IoIE2rEeGl8qrc8BM7vA" type="4002" source="_lM7ZUDeeEeGPyrZ5I3hMlA" target="_efaBUE2rEeGl8qrc8BM7vA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_g2JPME2rEeGl8qrc8BM7vA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_g2JPMU2rEeGl8qrc8BM7vA" points="[1, -5, 0, 43]$[1, -48, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_g2TAME2rEeGl8qrc8BM7vA" id="(0.7755102040816326,0.06944444444444445)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_g2TAMU2rEeGl8qrc8BM7vA" id="(0.4689265536723164,0.48148148148148145)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_U1UegPcXEd-KM6l7lmIPkw" type="PapyrusUMLClassDiagram" name="deployment" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_FGfloCghEeCw56aD7XrQhw" type="2016" element="_7kc7YM__Ed-TP80eVS-2Rg" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FGgMsCghEeCw56aD7XrQhw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FGgMsSghEeCw56aD7XrQhw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FGgMsighEeCw56aD7XrQhw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FGgMsyghEeCw56aD7XrQhw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FGlsQCghEeCw56aD7XrQhw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FGmTUCghEeCw56aD7XrQhw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FGmTUSghEeCw56aD7XrQhw" type="0">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FGmTUighEeCw56aD7XrQhw" y="5"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FGfloSghEeCw56aD7XrQhw" x="48" y="24" width="34" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GQM_sCghEeCw56aD7XrQhw" type="2016" element="_UstOsM__Ed-TP80eVS-2Rg" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GQNmwSghEeCw56aD7XrQhw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GQNmwighEeCw56aD7XrQhw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GQNmwyghEeCw56aD7XrQhw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GQNmxCghEeCw56aD7XrQhw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GQNmxSghEeCw56aD7XrQhw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GQNmxighEeCw56aD7XrQhw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_GQON0CghEeCw56aD7XrQhw" type="0">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GQON0SghEeCw56aD7XrQhw" x="-20" y="40"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQNmwCghEeCw56aD7XrQhw" x="145" y="24" width="34" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_JhfKQCghEeCw56aD7XrQhw" type="2016" element="_V5euUP8nEd-hWJO6cv3VJA" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JhfKQighEeCw56aD7XrQhw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JhfxUCghEeCw56aD7XrQhw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JhfxUSghEeCw56aD7XrQhw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JhfxUighEeCw56aD7XrQhw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JhfxUyghEeCw56aD7XrQhw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JhfxVCghEeCw56aD7XrQhw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JhfxVSghEeCw56aD7XrQhw" type="0">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JhfxVighEeCw56aD7XrQhw" y="40"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JhfKQSghEeCw56aD7XrQhw" x="266" y="22"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LGTzACghEeCw56aD7XrQhw" type="2016" element="_o6ZisNCREd-hqYHBJe17_Q" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LGUaECghEeCw56aD7XrQhw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LGUaESghEeCw56aD7XrQhw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LGUaEighEeCw56aD7XrQhw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LGUaEyghEeCw56aD7XrQhw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LGUaFCghEeCw56aD7XrQhw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LGVBICghEeCw56aD7XrQhw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LGVBISghEeCw56aD7XrQhw" type="0">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LGVBIighEeCw56aD7XrQhw" x="9" y="40"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LGTzASghEeCw56aD7XrQhw" x="371" y="22"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qQMKMCgjEeC5Ga5kAgjl0g" type="2008" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qQN_YCgjEeC5Ga5kAgjl0g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qQN_YSgjEeC5Ga5kAgjl0g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qQN_YigjEeC5Ga5kAgjl0g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qQN_YygjEeC5Ga5kAgjl0g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qQN_ZCgjEeC5Ga5kAgjl0g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qQOmcCgjEeC5Ga5kAgjl0g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qQlLwCgjEeC5Ga5kAgjl0g" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1v4ucFZ5EeKxltxu9uR4dg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1v4ucVZ5EeKxltxu9uR4dg" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1v5VgFZ5EeKxltxu9uR4dg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1v5VgVZ5EeKxltxu9uR4dg" key="PropStereoDisplay" value="FCM::Configuration.deploymentPlan,FCM::Configuration.configOptions"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1v5VglZ5EeKxltxu9uR4dg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qQOmcSgjEeC5Ga5kAgjl0g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qQOmcigjEeC5Ga5kAgjl0g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qQOmcygjEeC5Ga5kAgjl0g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qQOmdCgjEeC5Ga5kAgjl0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qQOmdSgjEeC5Ga5kAgjl0g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qQOmdigjEeC5Ga5kAgjl0g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qQOmdygjEeC5Ga5kAgjl0g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qQOmeCgjEeC5Ga5kAgjl0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qQOmeSgjEeC5Ga5kAgjl0g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qQOmeigjEeC5Ga5kAgjl0g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qQOmeygjEeC5Ga5kAgjl0g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qQOmfCgjEeC5Ga5kAgjl0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qQOmfSgjEeC5Ga5kAgjl0g"/>
+ </children>
+ <element xmi:type="uml:Class" href="ProducerConsumer.uml#_qP52UCgjEeC5Ga5kAgjl0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qQMKMSgjEeC5Ga5kAgjl0g" x="37" y="287" width="198" height="83"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_91n2kDOFEeCldqx_51Yicg" type="2007" fontName="Sans Serif" fontHeight="10" fillColor="8905185" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_91prwDOFEeCldqx_51Yicg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_91prwTOFEeCldqx_51Yicg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_91prwjOFEeCldqx_51Yicg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_91prwzOFEeCldqx_51Yicg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_91qS0DOFEeCldqx_51Yicg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_91qS0TOFEeCldqx_51Yicg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_91qS0jOFEeCldqx_51Yicg" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_91qS0zOFEeCldqx_51Yicg" type="7016">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_91qS1DOFEeCldqx_51Yicg"/>
+ </children>
+ <element xmi:type="uml:Package" href="ProducerConsumer.uml#_xBxwoDOFEeCldqx_51Yicg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_91n2kTOFEeCldqx_51Yicg" x="36" y="144" width="199" height="109"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_xelfYD5wEeC-VMxjm_qUAg" type="2008" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xelfYT5wEeC-VMxjm_qUAg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xelfYj5wEeC-VMxjm_qUAg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xelfYz5wEeC-VMxjm_qUAg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xelfZD5wEeC-VMxjm_qUAg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xelfZT5wEeC-VMxjm_qUAg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xelfZj5wEeC-VMxjm_qUAg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xelfZz5wEeC-VMxjm_qUAg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7tmDAFZ5EeKxltxu9uR4dg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7tmDAVZ5EeKxltxu9uR4dg" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7tmDAlZ5EeKxltxu9uR4dg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7tmDA1Z5EeKxltxu9uR4dg" key="PropStereoDisplay" value="FCM::Configuration.configOptions,FCM::Configuration.deploymentPlan"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7tmqEFZ5EeKxltxu9uR4dg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xelfbT5wEeC-VMxjm_qUAg" type="5029">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zNzaQD5wEeC-VMxjm_qUAg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_18AF4D5wEeC-VMxjm_qUAg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_18AF4T5wEeC-VMxjm_qUAg" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_18As8D5wEeC-VMxjm_qUAg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_18As8T5wEeC-VMxjm_qUAg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_18As8j5wEeC-VMxjm_qUAg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_xelfbj5wEeC-VMxjm_qUAg" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_xelfbz5wEeC-VMxjm_qUAg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_xelfcD5wEeC-VMxjm_qUAg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xelfcT5wEeC-VMxjm_qUAg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_xelfcj5wEeC-VMxjm_qUAg" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_xelfcz5wEeC-VMxjm_qUAg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_xelfdD5wEeC-VMxjm_qUAg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xelfdT5wEeC-VMxjm_qUAg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_xelfdj5wEeC-VMxjm_qUAg" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_xelfdz5wEeC-VMxjm_qUAg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_xelfeD5wEeC-VMxjm_qUAg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xelfeT5wEeC-VMxjm_qUAg"/>
+ </children>
+ <element xmi:type="uml:Class" href="ProducerConsumer.uml#_xekRQD5wEeC-VMxjm_qUAg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xemGcD5wEeC-VMxjm_qUAg" x="306" y="288" width="199" height="82"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1GDBwLGREeCfWNndpgPDWA" type="2007" fontName="Sans Serif" fillColor="8047085" transparency="100" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1GOA4LGREeCfWNndpgPDWA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1GOA4bGREeCfWNndpgPDWA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1GOA4rGREeCfWNndpgPDWA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1GOA47GREeCfWNndpgPDWA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1GOn8LGREeCfWNndpgPDWA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1GOn8bGREeCfWNndpgPDWA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1GOn8rGREeCfWNndpgPDWA" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1GOn87GREeCfWNndpgPDWA" type="7016">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1GOn9LGREeCfWNndpgPDWA"/>
+ </children>
+ <element xmi:type="uml:Package" href="ProducerConsumer.uml#_zwMLcLF4EeC9yscvWqW-eg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1GDBwbGREeCfWNndpgPDWA" x="306" y="144" width="198" height="109"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gdmuADefEeGPyrZ5I3hMlA" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gdmuAjefEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gdmuAzefEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gdmuBDefEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gdmuBTefEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gdnVEDefEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gdnVETefEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gdnVEjefEeGPyrZ5I3hMlA" type="5038"/>
+ <element xmi:type="uml:Comment" href="ProducerConsumer.uml#_gdeyMDefEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gdmuATefEeGPyrZ5I3hMlA" x="498" y="18" width="115" height="46"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_U1UegfcXEd-KM6l7lmIPkw"/>
+ <element xmi:type="uml:Package" href="ProducerConsumer.uml#_234GEDLiEd2RVeNawwNNzg"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_V5euUP8nEd-hWJO6cv3VJA" type="CompositeStructure" name="Publisher" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_Wky8MP8nEd-hWJO6cv3VJA" type="2073" fontName="" fontHeight="10" fillColor="8905185" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Wk0KUP8nEd-hWJO6cv3VJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Wk0KUf8nEd-hWJO6cv3VJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Wk0KUv8nEd-hWJO6cv3VJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Wk0KU_8nEd-hWJO6cv3VJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Wk0KVP8nEd-hWJO6cv3VJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Wk0KVf8nEd-hWJO6cv3VJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wk0xYP8nEd-hWJO6cv3VJA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Wk0xYf8nEd-hWJO6cv3VJA" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Wk0xYv8nEd-hWJO6cv3VJA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_eCjHMP8nEd-hWJO6cv3VJA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eCjuQP8nEd-hWJO6cv3VJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eCjuQf8nEd-hWJO6cv3VJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eCkVUP8nEd-hWJO6cv3VJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eCkVUf8nEd-hWJO6cv3VJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eCkVUv8nEd-hWJO6cv3VJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eCkVU_8nEd-hWJO6cv3VJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LFYVIFWlEeKOivupHOJ8Ew" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LlIMMFWlEeKOivupHOJ8Ew" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LlIMMVWlEeKOivupHOJ8Ew" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LlIMMlWlEeKOivupHOJ8Ew" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LlIMM1WlEeKOivupHOJ8Ew" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LlIMNFWlEeKOivupHOJ8Ew" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_eCkVVP8nEd-hWJO6cv3VJA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Dz37gFZXEeKKZs15rvNNjA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D7CTcFZXEeKKZs15rvNNjA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eCkVVf8nEd-hWJO6cv3VJA" x="-89"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_eCkVVv8nEd-hWJO6cv3VJA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eCkVV_8nEd-hWJO6cv3VJA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eCjHMf8nEd-hWJO6cv3VJA" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_fwpAsP8nEd-hWJO6cv3VJA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fwpAsv8nEd-hWJO6cv3VJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fwpAs_8nEd-hWJO6cv3VJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fwpnwP8nEd-hWJO6cv3VJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fwpnwf8nEd-hWJO6cv3VJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fwpnwv8nEd-hWJO6cv3VJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fwpnw_8nEd-hWJO6cv3VJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Nkol0FWlEeKOivupHOJ8Ew" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bb2zQFZ0EeK5f41mmHszag" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bb2zQVZ0EeK5f41mmHszag" key="StereotypeList" value="MARTE::MARTE_DesignModel::GCM::FlowPort,FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bb2zQlZ0EeK5f41mmHszag" key="PropStereoDisplay" value="FCM::Port.kind,FCM::Port.requiredInterface"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bb2zQ1Z0EeK5f41mmHszag" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bb2zRFZ0EeK5f41mmHszag" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fwpnxP8nEd-hWJO6cv3VJA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EVFyMFZXEeKKZs15rvNNjA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EhugAFZXEeKKZs15rvNNjA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fwpnxf8nEd-hWJO6cv3VJA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fwpnxv8nEd-hWJO6cv3VJA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fwpnx_8nEd-hWJO6cv3VJA" x="27" y="-18"/>
+ </children>
+ <element xmi:type="uml:Port" href="ProducerConsumer.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fwpAsf8nEd-hWJO6cv3VJA" x="117" y="36"/>
+ </children>
+ <element xmi:type="uml:Class" href="ProducerConsumer.uml#_IfjoETLbEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Wky8Mf8nEd-hWJO6cv3VJA" x="144" y="108" width="136" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XKXHYP8nEd-hWJO6cv3VJA" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XKXHYv8nEd-hWJO6cv3VJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XKXucP8nEd-hWJO6cv3VJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XKXucf8nEd-hWJO6cv3VJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XKXucv8nEd-hWJO6cv3VJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XKXuc_8nEd-hWJO6cv3VJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XKXudP8nEd-hWJO6cv3VJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XKXudf8nEd-hWJO6cv3VJA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_XKXudv8nEd-hWJO6cv3VJA" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XKXud_8nEd-hWJO6cv3VJA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_euJo8P8nEd-hWJO6cv3VJA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_euKQAP8nEd-hWJO6cv3VJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_euKQAf8nEd-hWJO6cv3VJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_euKQAv8nEd-hWJO6cv3VJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_euK3EP8nEd-hWJO6cv3VJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_euK3Ef8nEd-hWJO6cv3VJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_euK3Ev8nEd-hWJO6cv3VJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JVivMFWlEeKOivupHOJ8Ew" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Jve5MFWlEeKOivupHOJ8Ew" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JvfgQFWlEeKOivupHOJ8Ew" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JvfgQVWlEeKOivupHOJ8Ew" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JvfgQlWlEeKOivupHOJ8Ew" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JvfgQ1WlEeKOivupHOJ8Ew" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_euK3E_8nEd-hWJO6cv3VJA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DRgOQFZXEeKKZs15rvNNjA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DYoxAFZXEeKKZs15rvNNjA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_euK3FP8nEd-hWJO6cv3VJA" x="-89" y="-2"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_euK3Ff8nEd-hWJO6cv3VJA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_euK3Fv8nEd-hWJO6cv3VJA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_euJo8f8nEd-hWJO6cv3VJA" x="-10" y="27"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_N6fa4JsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XKXHYf8nEd-hWJO6cv3VJA" x="144" y="18" width="136" height="55"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Gz7TMDehEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G0CA4DehEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G0CA4TehEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G0CA4jehEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G0CA4zehEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G0CA5DehEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G0Cn8DehEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_G0Cn8TehEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ProducerConsumer.uml#_GzyJQDehEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Gz7TMTehEeGPyrZ5I3hMlA" x="342" y="18" width="344"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_V5euUf8nEd-hWJO6cv3VJA"/>
+ <element xmi:type="uml:Package" href="ProducerConsumer.uml#_etOZkDLaEd2qeKRLMdIx_A"/>
+ <edges xmi:type="notation:Connector" xmi:id="_XKqpYP8nEd-hWJO6cv3VJA" type="4015" source="_Wky8MP8nEd-hWJO6cv3VJA" target="_XKXHYP8nEd-hWJO6cv3VJA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_XKrQcP8nEd-hWJO6cv3VJA" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XKrQcf8nEd-hWJO6cv3VJA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_XKqpYf8nEd-hWJO6cv3VJA" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="ProducerConsumer.uml#_34FjAPx3Ed6O2oOTPfeAMA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XKqpYv8nEd-hWJO6cv3VJA" points="[-19, -23, 140, 174]$[-159, -197, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_aJG_MDehEeGPyrZ5I3hMlA" type="4002" source="_Gz7TMDehEeGPyrZ5I3hMlA" target="_XKXHYP8nEd-hWJO6cv3VJA" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_aJG_MTehEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_aJG_MjehEeGPyrZ5I3hMlA" points="[-12, -5, 80, 30]$[-82, -36, 10, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aJdkgDehEeGPyrZ5I3hMlA" id="(0.02823529411764706,0.4166666666666667)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aJeLkDehEeGPyrZ5I3hMlA" id="(0.9212598425196851,0.4909090909090909)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_0rwpYDefEeGPyrZ5I3hMlA" type="CompositeStructure" name="HWArchitecture" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_1w2CIDefEeGPyrZ5I3hMlA" type="2073" fontName="" fontHeight="10" fillColor="10011046" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1w2pMDefEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1w2pMTefEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1w2pMjefEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1w2pMzefEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1w2pNDefEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1w2pNTefEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HTZS4DegEeGPyrZ5I3hMlA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mAM_QBMqEeK_iPOWsxJHwg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mAM_QRMqEeK_iPOWsxJHwg" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mANmUBMqEeK_iPOWsxJHwg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mANmURMqEeK_iPOWsxJHwg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mANmUhMqEeK_iPOWsxJHwg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1w2pNjefEeGPyrZ5I3hMlA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1w2pNzefEeGPyrZ5I3hMlA" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_4HLnYDefEeGPyrZ5I3hMlA" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4HMOcDefEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4HMOcTefEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4HMOcjefEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4HMOczefEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4HMOdDefEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4HMOdTefEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4HMOdjefEeGPyrZ5I3hMlA" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UodTAFZXEeKKZs15rvNNjA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UsmzMFZXEeKKZs15rvNNjA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4HMOdzefEeGPyrZ5I3hMlA" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4HMOeDefEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4HMOeTefEeGPyrZ5I3hMlA"/>
+ </children>
+ <element xmi:type="uml:Property" href="ProducerConsumer.uml#_4HAoQDefEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4HLnYTefEeGPyrZ5I3hMlA" x="61" y="22" width="162"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1w2pODefEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1w2pOTefEeGPyrZ5I3hMlA"/>
+ </children>
+ <element xmi:type="uml:Class" href="ProducerConsumer.uml#_tZvNQDefEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1w2CITefEeGPyrZ5I3hMlA" x="81" y="63" width="300" height="154"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7qMbIDefEeGPyrZ5I3hMlA" type="2072" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7qNCMDefEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7qNCMTefEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7qNCMjefEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7qNCMzefEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7qNCNDefEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7qNCNTefEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_85ECADefEeGPyrZ5I3hMlA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_StOVYFZXEeKKZs15rvNNjA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_StOVYVZXEeKKZs15rvNNjA" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_StOVYlZXEeKKZs15rvNNjA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_StOVY1ZXEeKKZs15rvNNjA" key="PropStereoDisplay" value="FCM::Target.targetArch,FCM::Target.usedOS"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_StOVZFZXEeKKZs15rvNNjA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7qNCNjefEeGPyrZ5I3hMlA" type="5124"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7qNCNzefEeGPyrZ5I3hMlA" visible="false" type="7072">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7qNCODefEeGPyrZ5I3hMlA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7qNCOTefEeGPyrZ5I3hMlA"/>
+ </children>
+ <element xmi:type="uml:Node" href="ProducerConsumer.uml#_zY9vMDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7qMbITefEeGPyrZ5I3hMlA" x="441" y="63" width="154" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jhQ20DegEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jhQ20jegEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jhQ20zegEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jhQ21DegEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jhQ21TegEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jhQ21jegEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jhQ21zegEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jhRd4DegEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ProducerConsumer.uml#_jhF3sDegEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jhQ20TegEeGPyrZ5I3hMlA" x="435" y="183" width="277"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_0rwpYTefEeGPyrZ5I3hMlA"/>
+ <element xmi:type="uml:Package" href="ProducerConsumer.uml#_v3fMgDLiEd2RVeNawwNNzg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_ugb6IDegEeGPyrZ5I3hMlA" type="4002" source="_jhQ20DegEeGPyrZ5I3hMlA" target="_7qMbIDefEeGPyrZ5I3hMlA" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_ugb6ITegEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ugb6IjegEeGPyrZ5I3hMlA" points="[-11, -6, 7, 38]$[-11, -26, 7, 18]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ugs_4DegEeGPyrZ5I3hMlA" id="(0.33212996389891697,0.1)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ugs_4TegEeGPyrZ5I3hMlA" id="(0.4420289855072464,0.8266666666666667)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_HvdK0FZYEeKKZs15rvNNjA" type="CompositeStructure" name="System Push" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_U0B0YFZYEeKKZs15rvNNjA" type="2073" fontName="Sans Serif" fillColor="8905185" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0CbcFZYEeKKZs15rvNNjA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U0CbcVZYEeKKZs15rvNNjA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0DCgFZYEeKKZs15rvNNjA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U0DCgVZYEeKKZs15rvNNjA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0DCglZYEeKKZs15rvNNjA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U0DCg1ZYEeKKZs15rvNNjA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_U0DChFZYEeKKZs15rvNNjA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_U0DChVZYEeKKZs15rvNNjA" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_Zgd44FZZEeKb1bjLi8P_oQ" type="3070" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zgg8MFZZEeKb1bjLi8P_oQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zgg8MVZZEeKb1bjLi8P_oQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zgg8MlZZEeKb1bjLi8P_oQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZghjQFZZEeKb1bjLi8P_oQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZghjQVZZEeKb1bjLi8P_oQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZghjQlZZEeKb1bjLi8P_oQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZghjQ1ZZEeKb1bjLi8P_oQ" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dtKi0FZZEeKb1bjLi8P_oQ" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_d00qAFZZEeKb1bjLi8P_oQ" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ZghjRFZZEeKb1bjLi8P_oQ" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ZghjRVZZEeKb1bjLi8P_oQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZghjRlZZEeKb1bjLi8P_oQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kzTfEFZZEeKb1bjLi8P_oQ" type="3069" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kzUGIFZZEeKb1bjLi8P_oQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kzUGIVZZEeKb1bjLi8P_oQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kzUGIlZZEeKb1bjLi8P_oQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kzUGI1ZZEeKb1bjLi8P_oQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kzUGJFZZEeKb1bjLi8P_oQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kzUGJVZZEeKb1bjLi8P_oQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nsJUcFZZEeKb1bjLi8P_oQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oFXswFZZEeKb1bjLi8P_oQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oFXswVZZEeKb1bjLi8P_oQ" key="StereotypeList" value="MARTE::MARTE_DesignModel::GCM::FlowPort"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oFXswlZZEeKb1bjLi8P_oQ" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oFXsw1ZZEeKb1bjLi8P_oQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oFXsxFZZEeKb1bjLi8P_oQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kzUGJlZZEeKb1bjLi8P_oQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qpl9AFZZEeKb1bjLi8P_oQ" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qw77IVZZEeKb1bjLi8P_oQ" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kzUGJ1ZZEeKb1bjLi8P_oQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kzUGKFZZEeKb1bjLi8P_oQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kzUGKVZZEeKb1bjLi8P_oQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="ProducerConsumer.uml#_4KiE8DLbEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kzTfEVZZEeKb1bjLi8P_oQ" x="-10" y="36"/>
+ </children>
+ <element xmi:type="uml:Property" href="ProducerConsumer.uml#_iP8c4dCREd-hqYHBJe17_Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zgef8FZZEeKb1bjLi8P_oQ" x="370" y="21" width="177" height="78"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_aKa00FZZEeKb1bjLi8P_oQ" type="3070" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aKbb4FZZEeKb1bjLi8P_oQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aKbb4VZZEeKb1bjLi8P_oQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aKbb4lZZEeKb1bjLi8P_oQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aKbb41ZZEeKb1bjLi8P_oQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aKbb5FZZEeKb1bjLi8P_oQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aKbb5VZZEeKb1bjLi8P_oQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_aKbb5lZZEeKb1bjLi8P_oQ" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cojEIFZZEeKb1bjLi8P_oQ" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cu9OIFZZEeKb1bjLi8P_oQ" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_aKcC8FZZEeKb1bjLi8P_oQ" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_aKcC8VZZEeKb1bjLi8P_oQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aKcC8lZZEeKb1bjLi8P_oQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_iJQToFZZEeKb1bjLi8P_oQ" type="3069" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iJQ6sFZZEeKb1bjLi8P_oQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iJQ6sVZZEeKb1bjLi8P_oQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iJQ6slZZEeKb1bjLi8P_oQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iJQ6s1ZZEeKb1bjLi8P_oQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iJQ6tFZZEeKb1bjLi8P_oQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iJQ6tVZZEeKb1bjLi8P_oQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pe8u0FZZEeKb1bjLi8P_oQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_p0rHMFZZEeKb1bjLi8P_oQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_p0rHMVZZEeKb1bjLi8P_oQ" key="StereotypeList" value="MARTE::MARTE_DesignModel::GCM::FlowPort"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_p0rHMlZZEeKb1bjLi8P_oQ" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_p0rHM1ZZEeKb1bjLi8P_oQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_p0rHNFZZEeKb1bjLi8P_oQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iJQ6tlZZEeKb1bjLi8P_oQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qplV8FZZEeKb1bjLi8P_oQ" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qw77IFZZEeKb1bjLi8P_oQ" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iJQ6t1ZZEeKb1bjLi8P_oQ" x="-71" y="4"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iJRhwFZZEeKb1bjLi8P_oQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iJRhwVZZEeKb1bjLi8P_oQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="ProducerConsumer.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iJQToVZZEeKb1bjLi8P_oQ" x="134" y="36"/>
+ </children>
+ <element xmi:type="uml:Property" href="ProducerConsumer.uml#_iP8c4tCREd-hqYHBJe17_Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aKa00VZZEeKb1bjLi8P_oQ" x="37" y="21" width="144" height="78"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_a6zv8FZZEeKb1bjLi8P_oQ" type="3097" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a60XAFZZEeKb1bjLi8P_oQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a60XAVZZEeKb1bjLi8P_oQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a60-EFZZEeKb1bjLi8P_oQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a60-EVZZEeKb1bjLi8P_oQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a60-ElZZEeKb1bjLi8P_oQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a60-E1ZZEeKb1bjLi8P_oQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_a60-FFZZEeKb1bjLi8P_oQ" type="5150"/>
+ <element xmi:type="uml:Comment" href="ProducerConsumer.uml#_KOEwwDefEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_a6zv8VZZEeKb1bjLi8P_oQ" x="244" y="129" width="290" height="55"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_U0DChlZYEeKKZs15rvNNjA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U0DCh1ZYEeKKZs15rvNNjA"/>
+ </children>
+ <element xmi:type="uml:Class" href="ProducerConsumer.uml#_iP8c4NCREd-hqYHBJe17_Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U0B0YVZYEeKKZs15rvNNjA" x="36" y="27" width="604" height="226"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_HvdK0VZYEeKKZs15rvNNjA"/>
+ <element xmi:type="uml:Package" href="ProducerConsumer.uml#_XLQjUDLiEd2RVeNawwNNzg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_wxMNYFZZEeKb1bjLi8P_oQ" type="4013" source="_iJQToFZZEeKb1bjLi8P_oQ" target="_kzTfEFZZEeKb1bjLi8P_oQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_wxNbgFZZEeKb1bjLi8P_oQ" type="6025">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wxNbgVZZEeKb1bjLi8P_oQ" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wxNbglZZEeKb1bjLi8P_oQ" visible="false" type="6050">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wxNbg1ZZEeKb1bjLi8P_oQ" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wxNbhFZZEeKb1bjLi8P_oQ" visible="false" type="6051">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wxNbhVZZEeKb1bjLi8P_oQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wxNbhlZZEeKb1bjLi8P_oQ" visible="false" type="6052">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wxNbh1ZZEeKb1bjLi8P_oQ" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_wxMNYVZZEeKb1bjLi8P_oQ" fontName="Sans Serif"/>
+ <element xmi:type="uml:Connector" href="ProducerConsumer.uml#_iP8c49CREd-hqYHBJe17_Q"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wxMNYlZZEeKb1bjLi8P_oQ" points="[10, 5, -179, 0]$[179, 0, -10, -5]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Nr2l4FZaEeKb1bjLi8P_oQ" type="4002" source="_a6zv8FZZEeKb1bjLi8P_oQ" target="_wxMNYFZZEeKb1bjLi8P_oQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Nr2l4VZaEeKb1bjLi8P_oQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Nr2l4lZaEeKb1bjLi8P_oQ" points="[-7, -6, 3, 62]$[-7, -68, 3, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NsRcoFZaEeKb1bjLi8P_oQ" id="(0.20689655172413793,0.10909090909090909)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NsRcoVZaEeKb1bjLi8P_oQ" id="(0.6071428571428571,0.7407407407407407)"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ProducerConsumer.uml b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ProducerConsumer.uml
new file mode 100644
index 00000000000..dec7c68c5a4
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ProducerConsumer.uml
@@ -0,0 +1,457 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Alloc="http://www.eclipse.org/papyrus/Alloc/1" xmlns:C_Cpp="http://www.eclipse.org/papyrus/C_Cpp/1" xmlns:FCM="http://www.eclipse.org/papyrus/FCM/1" xmlns:GCM="http://www.eclipse.org/papyrus/GCM/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/papyrus/Alloc/1 http://www.eclipse.org/papyrus/MARTE/1#//Alloc http://www.eclipse.org/papyrus/GCM/1 http://www.eclipse.org/papyrus/MARTE/1#//GCM">
+ <uml:Model xmi:id="_O6TiIDLUEd26WNosUASSSw" name="ProducerConsumer">
+ <packageImport xmi:id="_O6TiITLUEd26WNosUASSSw">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packageImport xmi:id="_Bc1WIFW4Ed63BrxiKsw-0Q">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/core.uml#_O6TiIDLUEd26WNosUASSSw"/>
+ </packageImport>
+ <packageImport xmi:id="_rwBsMP7AEd6Zw96O-tCw7A">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/corba.uml#_DtQEwDLdEd2_U4efLnjQIw"/>
+ </packageImport>
+ <packageImport xmi:id="_R8d6YP93Ed6628OhKk_dpg">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/fifo.uml#_ePwqkHLmEd6R5tffIPrlPg"/>
+ </packageImport>
+ <packageImport xmi:id="_8KelgCgjEeC5Ga5kAgjl0g">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_TRACE/tracing.uml#_H-ZqYDKeEd-WprEKTCaiMA"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Package" xmi:id="_LOqIEDLaEd2qeKRLMdIx_A" name="ComponentModel">
+ <packagedElement xmi:type="uml:Package" xmi:id="_tyiqsM__Ed-TP80eVS-2Rg" name="PullConsumer">
+ <ownedComment xmi:id="_-Hd2MDecEeGPyrZ5I3hMlA" annotatedElement="_tyiqsc__Ed-TP80eVS-2Rg">
+ <body>Variant of the consumper component that uses a &quot;pull style&quot;, i.e. actively demands whether new data is available. Since the component is active, it needs to have its own thread. This is realized by the combination of the lifecycle port with a container rule that intercepts the lifecycle operations and executes the activation operation in its own thread.
+Use the context menu to find out that the PullConsumer supports the &quot;runStartThread&quot; interceptor which intercepts the lifecycle port.</body>
+ </ownedComment>
+ <ownedComment xmi:id="_0D64MDedEeGPyrZ5I3hMlA">
+ <annotatedElement xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
+ <body>Part of the Qompass model library. Provides the specific port &quot;lc&quot; (short for lifecycle). The &quot;activate&quot; operation of this port is called by generated boot-code after instantiation and configuration of a component. The deactivation is called before disposing a component</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_tyiqsc__Ed-TP80eVS-2Rg" clientDependency="_DHTiQDF7EeCpQdhNuFCtew" name="PullConsumer_impl">
+ <generalization xmi:id="_tyiqss__Ed-TP80eVS-2Rg">
+ <general xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
+ </generalization>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_tyiqs8__Ed-TP80eVS-2Rg" name="" type="_wFJ3IP91Ed6Jt8e-UqrRdQ" aggregation="composite"/>
+ <interfaceRealization xmi:id="_DHTiQDF7EeCpQdhNuFCtew" name="derived realization of ILifeCycle" client="_tyiqsc__Ed-TP80eVS-2Rg">
+ <supplier xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ <contract href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ </interfaceRealization>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_tyjRwc__Ed-TP80eVS-2Rg" name="activate" specification="_tyjRy8__Ed-TP80eVS-2Rg">
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;wait for data on port p&quot; &lt;&lt; endl;
+for (int i = 0; i&lt;25; i++) {
+ if (p->hasData ()) {
+ ComponentModel::interfaces::PubData data = p->pull ();
+ cout &lt;&lt; &quot;received data: x = &quot; &lt;&lt; data.x &lt;&lt; &quot; y = &quot; &lt;&lt; data.y &lt;&lt; endl;
+ }
+ usleep (100*1000);
+}
+cout &lt;&lt; &quot;finished waiting&quot; &lt;&lt; endl;
+</body>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_tyjRy8__Ed-TP80eVS-2Rg" name="activate" method="_tyjRwc__Ed-TP80eVS-2Rg"/>
+ <ownedOperation xmi:id="_tyjRzM__Ed-TP80eVS-2Rg" name="deactivate"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_OGM88DLaEd2qeKRLMdIx_A" name="PushConsumer">
+ <ownedComment xmi:id="_XfnmsDecEeGPyrZ5I3hMlA" annotatedElement="_oqZNUDLaEd2qeKRLMdIx_A">
+ <body>Push variant of a consumer, i.e. the consumer is called whenever new data is availble. It is not itself active.</body>
+ </ownedComment>
+ <ownedComment xmi:id="_gpptUDecEeGPyrZ5I3hMlA" annotatedElement="_4KiE8DLbEd2qeKRLMdIx_A">
+ <body>A MARTE flow port. The synchronisation between MARTE and FCM stereotype is automatic, yet it is possible to refine on FCM level, whether the port uses a push or pull style. In this case, the port uses a push style by setting the port kind to &quot;PushConsumer&quot;.</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_oqZNUDLaEd2qeKRLMdIx_A" clientDependency="_Z16ywDF8EeCpQdhNuFCtew _T7BgIAcsEeGYWLReZHFIwA" name="PushConsumer_impl">
+ <generalization xmi:id="_NItbAP94Ed6628OhKk_dpg">
+ <general xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
+ </generalization>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_4KiE8DLbEd2qeKRLMdIx_A" name="p" type="_wFJ3IP91Ed6Jt8e-UqrRdQ" aggregation="composite"/>
+ <interfaceRealization xmi:id="_Z16ywDF8EeCpQdhNuFCtew" name="derived realization of ILifeCycle" client="_oqZNUDLaEd2qeKRLMdIx_A">
+ <supplier xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ <contract href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ </interfaceRealization>
+ <interfaceRealization xmi:id="_T7BgIAcsEeGYWLReZHFIwA" name="derived realization of D_Push_PubData" client="_oqZNUDLaEd2qeKRLMdIx_A" supplier="_lsBoMKwJEeCgusK7cm6qjQ" contract="_lsBoMKwJEeCgusK7cm6qjQ"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_RoXdMP94Ed6628OhKk_dpg" name="activate" specification="_uOmgID15Ed-qiK1VZWszhA">
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;initialization of push consumer&quot; &lt;&lt; endl;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_qUSHYPdMEd-KM6l7lmIPkw" name="push" specification="_T7D8YAcsEeGYWLReZHFIwA">
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;received data: x = &quot; &lt;&lt; data.x &lt;&lt; &quot; y = &quot; &lt;&lt; data.y &lt;&lt; endl;</body>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_uOmgID15Ed-qiK1VZWszhA" name="activate" method="_RoXdMP94Ed6628OhKk_dpg"/>
+ <ownedOperation xmi:id="_uOtN0D15Ed-qiK1VZWszhA" name="deactivate"/>
+ <ownedOperation xmi:id="_T7D8YAcsEeGYWLReZHFIwA" name="push" method="_qUSHYPdMEd-KM6l7lmIPkw">
+ <ownedParameter xmi:id="_T7G_sAcsEeGYWLReZHFIwA" name="data" type="_wFJ3IP91Ed6Jt8e-UqrRdQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_T7KDAAcsEeGYWLReZHFIwA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_T7KqEAcsEeGYWLReZHFIwA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_Tp4n8DLaEd2qeKRLMdIx_A" name="interfaces">
+ <packagedElement xmi:type="uml:DataType" xmi:id="_wFJ3IP91Ed6Jt8e-UqrRdQ" name="PubData">
+ <ownedAttribute xmi:id="_yywF0P91Ed6Jt8e-UqrRdQ" name="y" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_zUgvEP91Ed6Jt8e-UqrRdQ" name="x" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_etOZkDLaEd2qeKRLMdIx_A" name="Producer">
+ <ownedComment xmi:id="_GzyJQDehEeGPyrZ5I3hMlA">
+ <annotatedElement xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_N6fa4JsrEd61Eo3nmu3JhQ"/>
+ <body>Let the producer instance execute by the main thread by realising the specific port &quot;start&quot;, inherited from CStart (part of the Qompass &quot;core&quot; model library).
+</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_IfjoETLbEd2qeKRLMdIx_A" clientDependency="_jkNdADF8EeCpQdhNuFCtew" name="Producer_impl">
+ <generalization xmi:id="_34FjAPx3Ed6O2oOTPfeAMA">
+ <general xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_N6fa4JsrEd61Eo3nmu3JhQ"/>
+ </generalization>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_DtWn4DLcEd2qeKRLMdIx_A" name="q" type="_wFJ3IP91Ed6Jt8e-UqrRdQ" aggregation="composite"/>
+ <interfaceRealization xmi:id="_jkNdADF8EeCpQdhNuFCtew" name="derived realization of IStart" client="_IfjoETLbEd2qeKRLMdIx_A">
+ <supplier xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_PTWzwCS-Ed-A_I32T0fkaA"/>
+ <contract href="pathmap://QML_CORE/sysinterfaces.uml#_PTWzwCS-Ed-A_I32T0fkaA"/>
+ </interfaceRealization>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_yXNVoKF4Ed6FqJCjEUrkqQ" name="run" specification="_dH4RIKF4Ed6FqJCjEUrkqQ">
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;publish a value via port q;&quot; &lt;&lt; endl;
+ComponentModel::interfaces::PubData data;
+data.x = 2;
+data.y = 3;
+for (int i = 0; i&lt;20; i++) {
+ q->push (data);
+ cout &lt;&lt; &quot;.&quot; &lt;&lt; flush;
+ // wait 200ms
+ usleep (200*1000);
+}
+</body>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_dH4RIKF4Ed6FqJCjEUrkqQ" name="run" method="_yXNVoKF4Ed6FqJCjEUrkqQ"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_XLQjUDLiEd2RVeNawwNNzg" name="System">
+ <packagedElement xmi:type="uml:Class" xmi:id="_bYJagDLiEd2RVeNawwNNzg" name="SystemPull_impl">
+ <ownedComment xmi:id="_JuaHYDbdEeGdqp2YT1LwWw" annotatedElement="_gV1cgDLiEd2RVeNawwNNzg">
+ <body>Pull consumer is executed by its own thread. This is specified via a container service (runStartThread)</body>
+ </ownedComment>
+ <ownedComment xmi:id="_lMxBQDeeEeGPyrZ5I3hMlA" annotatedElement="_efVI0E2rEeGl8qrc8BM7vA">
+ <body>Since producer and consumer call operations (the latter to actively retrieve data), the two ports would be incompatible without using a specific interaction component, in this case. a FIFO.
+Use the context menu on a selected connector to specify the interaction component.</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_gV1cgDLiEd2RVeNawwNNzg" name="con" visibility="public" type="_tyiqsc__Ed-TP80eVS-2Rg" isUnique="false" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dCT24G6JEeGqWMX2LwdLDw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dCUd8G6JEeGqWMX2LwdLDw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_dCWTIG6JEeGqWMX2LwdLDw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_i-I7gDLiEd2RVeNawwNNzg" name="prod" visibility="public" type="_IfjoETLbEd2qeKRLMdIx_A" isUnique="false" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_esReUG6JEeGqWMX2LwdLDw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_esSscG6JEeGqWMX2LwdLDw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_esUhoG6JEeGqWMX2LwdLDw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedConnector xmi:id="_efVI0E2rEeGl8qrc8BM7vA" name="fifoconnector">
+ <end xmi:id="_efVv4E2rEeGl8qrc8BM7vA" partWithPort="_i-I7gDLiEd2RVeNawwNNzg" role="_DtWn4DLcEd2qeKRLMdIx_A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efVv4k2rEeGl8qrc8BM7vA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_efVv4U2rEeGl8qrc8BM7vA" value="1"/>
+ </end>
+ <end xmi:id="_efWW8E2rEeGl8qrc8BM7vA" partWithPort="_gV1cgDLiEd2RVeNawwNNzg" role="_tyiqs8__Ed-TP80eVS-2Rg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efWW8k2rEeGl8qrc8BM7vA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_efWW8U2rEeGl8qrc8BM7vA" value="1"/>
+ </end>
+ </ownedConnector>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_iP8c4NCREd-hqYHBJe17_Q" name="SystemPush_impl">
+ <ownedComment xmi:id="_KOEwwDefEeGPyrZ5I3hMlA" annotatedElement="_iP8c49CREd-hqYHBJe17_Q">
+ <body>The push consumer provides the interface that the producer uses (requires), no specific connector is required</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_iP8c4dCREd-hqYHBJe17_Q" name="con" visibility="public" type="_oqZNUDLaEd2qeKRLMdIx_A" isUnique="false" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_d0HHQG6JEeGqWMX2LwdLDw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_d0HuUG6JEeGqWMX2LwdLDw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_d0I8cG6JEeGqWMX2LwdLDw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_iP8c4tCREd-hqYHBJe17_Q" name="prod" visibility="public" type="_IfjoETLbEd2qeKRLMdIx_A" isUnique="false" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_fbEeAG6JEeGqWMX2LwdLDw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_fbFFEG6JEeGqWMX2LwdLDw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_fbGTMG6JEeGqWMX2LwdLDw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedConnector xmi:id="_iP8c49CREd-hqYHBJe17_Q" name="qpconnector">
+ <end xmi:id="_iP8c5NCREd-hqYHBJe17_Q" partWithPort="_iP8c4tCREd-hqYHBJe17_Q" role="_DtWn4DLcEd2qeKRLMdIx_A"/>
+ <end xmi:id="_iP8c5dCREd-hqYHBJe17_Q" partWithPort="_iP8c4dCREd-hqYHBJe17_Q" role="_4KiE8DLbEd2qeKRLMdIx_A"/>
+ </ownedConnector>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_v3fMgDLiEd2RVeNawwNNzg" name="PlatformModel">
+ <ownedComment xmi:id="_jhF3sDegEeGPyrZ5I3hMlA" annotatedElement="_zY9vMDLiEd2RVeNawwNNzg">
+ <body>Simple single node configuration. TargetOS is set to Linux, but will work on other OS (supporting POSIX threads)</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Node" xmi:id="_zY9vMDLiEd2RVeNawwNNzg" name="MonoNode"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_tZvNQDefEeGPyrZ5I3hMlA" name="Platform">
+ <ownedAttribute xmi:id="_4HAoQDefEeGPyrZ5I3hMlA" name="monoNode" visibility="public" type="_zY9vMDLiEd2RVeNawwNNzg" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6WEg0DefEeGPyrZ5I3hMlA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6WFu8DefEeGPyrZ5I3hMlA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_6WHkIDefEeGPyrZ5I3hMlA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_YxI8IDegEeGPyrZ5I3hMlA" name="HWArchitecturePlatform">
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_GQ1ekKwHEeCQX8uv_p0Q4A" name="monoNode" classifier="_zY9vMDLiEd2RVeNawwNNzg"/>
+ </packagedElement>
+ <profileApplication xmi:id="_aOAnkKmqEeCxII-g1_Lmeg">
+ <eAnnotations xmi:id="_aen2cKmqEeCxII-g1_Lmeg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//SW_Concurrency"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_A_vtYBJeEdy3Td9UhuLFPg"/>
+ </profileApplication>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_234GEDLiEd2RVeNawwNNzg" name="DeploymentPlans">
+ <ownedComment xmi:id="_VMRFgDOJEeC7y-fR3OSnFw" annotatedElement="_qP52UCgjEeC5Ga5kAgjl0g">
+ <body>This configuration requires the installation of the OTF trace library.&lt;br /></body>
+ </ownedComment>
+ <ownedComment xmi:id="_gdeyMDefEeGPyrZ5I3hMlA">
+ <body>Cross references to diagrams</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_qP52UCgjEeC5Ga5kAgjl0g" name="withTracePush"/>
+ <packagedElement xmi:type="uml:Package" xmi:id="_xBxwoDOFEeCldqx_51Yicg" name="monoPush">
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_xB3QMDOFEeCldqx_51Yicg" clientDependency="_cmk8EKwIEeCza-cLDL1uzQ _oZjTgE0tEeG4IqgA7gSE6w _wqyJ4E0tEeG4IqgA7gSE6w" name="mainInstance" classifier="_iP8c4NCREd-hqYHBJe17_Q">
+ <slot xmi:id="_xB6TgDOFEeCldqx_51Yicg" definingFeature="_iP8c4dCREd-hqYHBJe17_Q">
+ <value xmi:type="uml:InstanceValue" xmi:id="_xB66kDOFEeCldqx_51Yicg" instance="_xB5scDOFEeCldqx_51Yicg"/>
+ </slot>
+ <slot xmi:id="_xB8IsDOFEeCldqx_51Yicg" definingFeature="_iP8c4tCREd-hqYHBJe17_Q">
+ <value xmi:type="uml:InstanceValue" xmi:id="_xB8IsTOFEeCldqx_51Yicg" instance="_xB7hoDOFEeCldqx_51Yicg"/>
+ </slot>
+ </packagedElement>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_xB5scDOFEeCldqx_51Yicg" name="mainInstance.con" classifier="_oqZNUDLaEd2qeKRLMdIx_A"/>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_xB7hoDOFEeCldqx_51Yicg" name="mainInstance.prod" classifier="_IfjoETLbEd2qeKRLMdIx_A"/>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_cmk8EKwIEeCza-cLDL1uzQ" name="allocate to monoNode" client="_xB3QMDOFEeCldqx_51Yicg" supplier="_GQ1ekKwHEeCQX8uv_p0Q4A"/>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_oZjTgE0tEeG4IqgA7gSE6w" name="allocate to monoNode" client="_xB3QMDOFEeCldqx_51Yicg" supplier="_GQ1ekKwHEeCQX8uv_p0Q4A"/>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_wqyJ4E0tEeG4IqgA7gSE6w" name="allocate to monoNode" client="_xB3QMDOFEeCldqx_51Yicg" supplier="_GQ1ekKwHEeCQX8uv_p0Q4A"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xekRQD5wEeC-VMxjm_qUAg" name="withTracePull"/>
+ <packagedElement xmi:type="uml:Package" xmi:id="_zwMLcLF4EeC9yscvWqW-eg" name="monoPull">
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_zwQc4bF4EeC9yscvWqW-eg" clientDependency="_DQUvILGSEeCfWNndpgPDWA _vcX2AE0tEeG4IqgA7gSE6w" name="mainInstance" classifier="_bYJagDLiEd2RVeNawwNNzg">
+ <slot xmi:id="_zwY_wLF4EeC9yscvWqW-eg" definingFeature="_gV1cgDLiEd2RVeNawwNNzg">
+ <value xmi:type="uml:InstanceValue" xmi:id="_zwZm0LF4EeC9yscvWqW-eg" instance="_zwUuUbF4EeC9yscvWqW-eg"/>
+ </slot>
+ <slot xmi:id="_zwaN4LF4EeC9yscvWqW-eg" definingFeature="_i-I7gDLiEd2RVeNawwNNzg">
+ <value xmi:type="uml:InstanceValue" xmi:id="_zwaN4bF4EeC9yscvWqW-eg" instance="_zwZm0bF4EeC9yscvWqW-eg"/>
+ </slot>
+ </packagedElement>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_zwUHQLF4EeC9yscvWqW-eg" name="mainInstance.fifoconnector">
+ <classifier xmi:type="uml:Class" href="pathmap://QML_CORE/fifo.uml#_Y1jF8HPpEd6R5tffIPrlPg"/>
+ <slot xmi:id="_zwUHQbF4EeC9yscvWqW-eg">
+ <definingFeature xmi:type="uml:Property" href="pathmap://QML_CORE/fifo.uml#_XDRnoHUIEd6R5tffIPrlPg"/>
+ <value xmi:type="uml:LiteralInteger" xmi:id="_zwUuULF4EeC9yscvWqW-eg" name="value for m_size" value="30">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </value>
+ </slot>
+ </packagedElement>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_zwUuUbF4EeC9yscvWqW-eg" name="mainInstance.con">
+ <classifier xmi:type="uml:Class" href="#_tyiqsc__Ed-TP80eVS-2Rg"/>
+ <classifier xmi:type="uml:Class" href="pathmap://QML_CORE//core.uml#_SiY_AP-EEd6628OhKk_dpg"/>
+ <slot xmi:id="_zwVVYLF4EeC9yscvWqW-eg">
+ <definingFeature xmi:type="uml:Property" href="pathmap://QML_CORE//core.uml#_rVfYoMGJEd-Mveea1W_olA"/>
+ <value xmi:type="uml:LiteralInteger" xmi:id="_zwV8cLF4EeC9yscvWqW-eg" name="value for priority">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </value>
+ </slot>
+ </packagedElement>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_zwZm0bF4EeC9yscvWqW-eg" name="mainInstance.prod" classifier="_IfjoETLbEd2qeKRLMdIx_A"/>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_DQUvILGSEeCfWNndpgPDWA" name="allocate to monoNode" client="_zwQc4bF4EeC9yscvWqW-eg" supplier="_GQ1ekKwHEeCQX8uv_p0Q4A"/>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_vcX2AE0tEeG4IqgA7gSE6w" name="allocate to monoNode" client="_zwQc4bF4EeC9yscvWqW-eg" supplier="_GQ1ekKwHEeCQX8uv_p0Q4A"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_lr9WwKwJEeCgusK7cm6qjQ" name="derivedInterfaces">
+ <packagedElement xmi:type="uml:Package" xmi:id="_lr_L8KwJEeCgusK7cm6qjQ" name="ProducerConsumer">
+ <packagedElement xmi:type="uml:Package" xmi:id="_lr_zAKwJEeCgusK7cm6qjQ" name="ComponentModel">
+ <packagedElement xmi:type="uml:Package" xmi:id="_lsBBIKwJEeCgusK7cm6qjQ" name="interfaces">
+ <packagedElement xmi:type="uml:Interface" xmi:id="_lsBoMKwJEeCgusK7cm6qjQ" name="D_Push_PubData">
+ <ownedOperation xmi:id="_lsKLEKwJEeCgusK7cm6qjQ" name="push">
+ <ownedParameter xmi:id="_lsMAQKwJEeCgusK7cm6qjQ" name="data" type="_wFJ3IP91Ed6Jt8e-UqrRdQ"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_AaULULGSEeCfWNndpgPDWA" name="D_PullConsumer_PubData">
+ <ownedOperation xmi:id="_Aa-SoLGSEeCfWNndpgPDWA" name="pull">
+ <ownedParameter xmi:id="_AbXUMLGSEeCfWNndpgPDWA" name="ret" type="_wFJ3IP91Ed6Jt8e-UqrRdQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AbZwcLGSEeCfWNndpgPDWA" name="hasData">
+ <ownedParameter xmi:id="_Aba-kLGSEeCfWNndpgPDWA" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_Bv7l0B-VEd6nGq8wpI2tjg"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ <profileApplication xmi:id="_O6TiIjLUEd26WNosUASSSw">
+ <eAnnotations xmi:id="_O6TiIzLUEd26WNosUASSSw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/StandardL2.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_GcC0cAHtEd6HSdiss9GQ0A">
+ <eAnnotations xmi:id="_Gd1kMAHtEd6HSdiss9GQ0A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/C_Cpp/1#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
+ </profileApplication>
+ <profileApplication xmi:id="_z1TwgFW3Ed63BrxiKsw-0Q">
+ <eAnnotations xmi:id="_z2GasFW3Ed63BrxiKsw-0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/FCM/1#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://FCM_PROFILES/FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
+ </profileApplication>
+ <profileApplication xmi:id="_sfyAwEbjEd-l4NeVOJZDkA">
+ <eAnnotations xmi:id="_siunEEbjEd-l4NeVOJZDkA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//GCM"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_YgAioAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ <profileApplication xmi:id="_SPVg0KmqEeCxII-g1_Lmeg">
+ <eAnnotations xmi:id="_Se6N4KmqEeCxII-g1_Lmeg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_b9oZ5rG3Ed-tmN4hwNCxXQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_3VS0wAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ <profileApplication xmi:id="_SfbyUKmqEeCxII-g1_Lmeg">
+ <eAnnotations xmi:id="_SuJjwKmqEeCxII-g1_Lmeg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//SW_ResourceCore"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_-1fcUBJdEdy3Td9UhuLFPg"/>
+ </profileApplication>
+ <profileApplication xmi:id="_f2hIMKmqEeCxII-g1_Lmeg">
+ <eAnnotations xmi:id="_gEtVMKmqEeCxII-g1_Lmeg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//SW_Concurrency"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_A_vtYBJeEdy3Td9UhuLFPg"/>
+ </profileApplication>
+ <profileApplication xmi:id="_popJkKmqEeCxII-g1_Lmeg">
+ <eAnnotations xmi:id="_p1PbIKmqEeCxII-g1_Lmeg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//HLAM"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_yNSZIAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ <profileApplication xmi:id="_yzqusKmqEeCxII-g1_Lmeg">
+ <eAnnotations xmi:id="_zCWq8KmqEeCxII-g1_Lmeg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//SW_Brokering"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_Cf874BJeEdy3Td9UhuLFPg"/>
+ </profileApplication>
+ <profileApplication xmi:id="_6xYMIKmqEeCxII-g1_Lmeg">
+ <eAnnotations xmi:id="_6_6-cKmqEeCxII-g1_Lmeg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//SW_Interaction"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_EIfnABJeEdy3Td9UhuLFPg"/>
+ </profileApplication>
+ <profileApplication xmi:id="_tZuBwE0tEeG4IqgA7gSE6w">
+ <eAnnotations xmi:id="_tisXkE0tEeG4IqgA7gSE6w" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_ar8OsAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ </uml:Model>
+ <FCM:DerivedElement xmi:id="_B9o7sP6yEd6Ie_kieu_3CQ" base_Element="_dH4RIKF4Ed6FqJCjEUrkqQ">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:Port xmi:id="_GofhQP6yEd6Ie_kieu_3CQ" base_Port="_4KiE8DLbEd2qeKRLMdIx_A">
+ <kind href="pathmap://QML_CORE/core.uml#_pE6GUFR1Ed6GqrP6fkWBoQ"/>
+ </FCM:Port>
+ <FCM:Port xmi:id="_IWQqoP6yEd6Ie_kieu_3CQ" base_Port="_DtWn4DLcEd2qeKRLMdIx_A">
+ <kind href="pathmap://QML_CORE/core.uml#_qOK0cFR1Ed6GqrP6fkWBoQ"/>
+ </FCM:Port>
+ <FCM:DerivedElement xmi:id="_RwGb8P6_Ed6Zw96O-tCw7A"/>
+ <FCM:DerivedElement xmi:id="_RxVyEP6_Ed6Zw96O-tCw7A"/>
+ <C_Cpp:Include xmi:id="_7SAnAP76Ed6Zw96O-tCw7A" body="#include &lt;unistd.h>&#xA;#include &lt;iostream>&#xA;using namespace std;" base_class="_IfjoETLbEd2qeKRLMdIx_A"/>
+ <C_Cpp:Include xmi:id="_Sa4nEP77Ed6Zw96O-tCw7A" body="#include &lt;iostream>&#xA;using namespace std;" base_class="_oqZNUDLaEd2qeKRLMdIx_A"/>
+ <FCM:DerivedElement xmi:id="_RoIMoP94Ed6628OhKk_dpg"/>
+ <FCM:DerivedElement xmi:id="_IFlIEARJEd--t-uhRn9OBA"/>
+ <FCM:ContainerRule xmi:id="_b-TmAARJEd--t-uhRn9OBA">
+ <portSet href="pathmap://QML_CORE/core.uml#__SL-kNtxEd6nqsBVkgJEEA"/>
+ </FCM:ContainerRule>
+ <FCM:DerivedElement xmi:id="_bmwhUARMEd-OidZzGKCpzg"/>
+ <FCM:DerivedElement xmi:id="_xjNC4ATuEd-Zc_RSu20WjA"/>
+ <FCM:DerivedElement xmi:id="_LZoQ4AVIEd-rcKh6R_xjRQ"/>
+ <FCM:DerivedElement xmi:id="_oMpYkAWxEd-jrvNV_WQOlA"/>
+ <FCM:DerivedElement xmi:id="_Fd6d0AnREd-co_m_wv4b6A"/>
+ <FCM:DerivedElement xmi:id="_uLARMBGVEd-rfYlCjUOxJQ"/>
+ <FCM:DerivedElement xmi:id="_qdjxQBGkEd-Jq_XWT8Mhpg"/>
+ <FCM:DerivedElement xmi:id="_VOzfEBGlEd-Jq_XWT8Mhpg"/>
+ <FCM:DerivedElement xmi:id="_N8BrMBI4Ed-3zOZ0RGapGA"/>
+ <FCM:DerivedElement xmi:id="_jIS30BI8Ed-XjYZ05V-9-Q"/>
+ <FCM:DerivedElement xmi:id="_E5UhUBJIEd-XjYZ05V-9-Q"/>
+ <FCM:DerivedElement xmi:id="_THoRwBJWEd-QgZm_R1AKbA"/>
+ <FCM:DerivedElement xmi:id="_z0CVcBQ2Ed-_dI0JopJMvQ"/>
+ <FCM:DerivedElement xmi:id="_Ke_UsBb7Ed-u0pMEAnvpEQ"/>
+ <FCM:DerivedElement xmi:id="_uOkD4D15Ed-qiK1VZWszhA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE//sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_uOqKgD15Ed-qiK1VZWszhA" base_Element="_uOmgID15Ed-qiK1VZWszhA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_uOz7gD15Ed-qiK1VZWszhA" base_Element="_uOtN0D15Ed-qiK1VZWszhA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <C_Cpp:Visibility xmi:id="_0VnhsD15Ed-qiK1VZWszhA" value="public" base_generalization="_NItbAP94Ed6628OhKk_dpg"/>
+ <FCM:DerivedElement xmi:id="_a4LokD16Ed-qiK1VZWszhA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE//sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_a4RvMD16Ed-qiK1VZWszhA" base_Element="_uOmgID15Ed-qiK1VZWszhA"/>
+ <FCM:DerivedElement xmi:id="_a4VZkD16Ed-qiK1VZWszhA" base_Element="_uOtN0D15Ed-qiK1VZWszhA"/>
+ <FCM:DerivedElement xmi:id="_cdXBMD17Ed-qiK1VZWszhA" base_Element="_uOmgID15Ed-qiK1VZWszhA"/>
+ <FCM:DerivedElement xmi:id="_cdaEgD17Ed-qiK1VZWszhA" base_Element="_uOtN0D15Ed-qiK1VZWszhA"/>
+ <FCM:DerivedElement xmi:id="_C3YKUEbjEd-l4NeVOJZDkA" base_Element="_uOmgID15Ed-qiK1VZWszhA"/>
+ <FCM:DerivedElement xmi:id="_C3pQEEbjEd-l4NeVOJZDkA" base_Element="_uOtN0D15Ed-qiK1VZWszhA"/>
+ <FCM:DerivedElement xmi:id="_igKiENAAEd-TP80eVS-2Rg" base_Element="_tyjRy8__Ed-TP80eVS-2Rg">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_igVhMNAAEd-TP80eVS-2Rg" base_Element="_tyjRzM__Ed-TP80eVS-2Rg">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <C_Cpp:Include xmi:id="_11OtwPcaEd-KM6l7lmIPkw" body="#include &lt;unistd.h>&#xA;#include &lt;iostream>&#xA;using namespace std;" base_class="_tyiqsc__Ed-TP80eVS-2Rg"/>
+ <FCM:Configuration xmi:id="_qQdP8CgjEeC5Ga5kAgjl0g" base_Class="_qP52UCgjEeC5Ga5kAgjl0g" deploymentPlan="_xB2CEDOFEeCldqx_51Yicg">
+ <configOptions href="pathmap://QML_CORE/core.uml#_u6LqoH7eEd-FNNgSS03RxQ"/>
+ </FCM:Configuration>
+ <FCM:Target xmi:id="_LD_uICr7EeCfcI_SvPT4lw" base_Node="_zY9vMDLiEd2RVeNawwNNzg">
+ <targetArch href="pathmap://QML_CORE/core.uml#_FYOqwF0OEd-12d_h0i1xhQ"/>
+ <usedOS href="pathmap://QML_CORE/core.uml#_1eULwF0NEd-12d_h0i1xhQ"/>
+ </FCM:Target>
+ <FCM:DeploymentPlan xmi:id="_xB2CEDOFEeCldqx_51Yicg" mainInstance="_xB3QMDOFEeCldqx_51Yicg" base_Package="_xBxwoDOFEeCldqx_51Yicg"/>
+ <FCM:Configuration xmi:id="_zNf4QD5wEeC-VMxjm_qUAg" base_Class="_xekRQD5wEeC-VMxjm_qUAg" deploymentPlan="_zwQc4LF4EeC9yscvWqW-eg">
+ <configOptions href="pathmap://QML_CORE/core.uml#_u6LqoH7eEd-FNNgSS03RxQ"/>
+ </FCM:Configuration>
+ <GCM:FlowPort xmi:id="_DwpFMJZ7EeCiU5xXzp1cKQ" direction="in" base_Port="_4KiE8DLbEd2qeKRLMdIx_A"/>
+ <GCM:FlowPort xmi:id="_NWXCQJZ7EeCiU5xXzp1cKQ" direction="in" base_Port="_tyiqs8__Ed-TP80eVS-2Rg"/>
+ <FCM:Port xmi:id="_tyjRzc__Ed-TP80eVS-2Rg" base_Port="_tyiqs8__Ed-TP80eVS-2Rg">
+ <kind href="pathmap://QML_CORE/core.uml#_x5mL4FRxEd6GqrP6fkWBoQ"/>
+ </FCM:Port>
+ <GCM:FlowPort xmi:id="_ow3PkJZ7EeCiU5xXzp1cKQ" direction="out" base_Port="_DtWn4DLcEd2qeKRLMdIx_A"/>
+ <FCM:DerivedElement xmi:id="_lsJkAKwJEeCgusK7cm6qjQ" base_Element="_lsBoMKwJEeCgusK7cm6qjQ" source="_wFJ3IP91Ed6Jt8e-UqrRdQ"/>
+ <FCM:DeploymentPlan xmi:id="_zwQc4LF4EeC9yscvWqW-eg" mainInstance="_zwQc4bF4EeC9yscvWqW-eg" base_Package="_zwMLcLF4EeC9yscvWqW-eg"/>
+ <FCM:DerivedElement xmi:id="_AawQMLGSEeCfWNndpgPDWA" base_Element="_AaULULGSEeCfWNndpgPDWA" source="_wFJ3IP91Ed6Jt8e-UqrRdQ"/>
+ <FCM:DerivedElement xmi:id="_T7RXwAcsEeGYWLReZHFIwA" base_Element="_T7D8YAcsEeGYWLReZHFIwA" source="_lsKLEKwJEeCgusK7cm6qjQ"/>
+ <Alloc:Allocate xmi:id="_vccHcE0tEeG4IqgA7gSE6w" base_Abstraction="_vcX2AE0tEeG4IqgA7gSE6w"/>
+ <Alloc:Allocate xmi:id="_wq1NME0tEeG4IqgA7gSE6w" base_Abstraction="_wqyJ4E0tEeG4IqgA7gSE6w"/>
+ <FCM:Connector xmi:id="_iADdkE2rEeGl8qrc8BM7vA" base_Connector="_efVI0E2rEeGl8qrc8BM7vA">
+ <ic href="pathmap://QML_CORE/fifo.uml#_xQ_ccHUuEd6R5tffIPrlPg"/>
+ </FCM:Connector>
+ <FCM:RuleApplication xmi:id="_FeS3AF7zEeGA7qTe7UD05A" base_Class="_tyiqsc__Ed-TP80eVS-2Rg">
+ <containerRule href="pathmap://QML_CORE/core.uml#_3Jq5MARLEd-OidZzGKCpzg"/>
+ <containerRule href="pathmap://QML_TRACE/tracing.uml#_ISo6gLdwEd-CtfrGQre34Q"/>
+ <propagateRule>false</propagateRule>
+ <propagateRule>false</propagateRule>
+ </FCM:RuleApplication>
+ <FCM:RuleApplication xmi:id="_vu8KkG6IEeGqWMX2LwdLDw" base_Class="_oqZNUDLaEd2qeKRLMdIx_A">
+ <containerRule href="pathmap://QML_TRACE/tracing.uml#_ISo6gLdwEd-CtfrGQre34Q"/>
+ <propagateRule>false</propagateRule>
+ </FCM:RuleApplication>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/SampleOOTraceTest.di b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/SampleOOTraceTest.di
new file mode 100644
index 00000000000..4b69336c601
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/SampleOOTraceTest.di
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi" xmlns:history="http://www.eclipse.org/papyrus/0.7.0/controlmode">
+ <di:SashWindowsMngr>
+ <pageList>
+ <availablePage>
+ <emfPageIdentifier href="SampleOOTraceTest.notation#_XSHWMF36Ed-UvNEDwY5GNg"/>
+ </availablePage>
+ <availablePage/>
+ <availablePage/>
+ <availablePage>
+ <emfPageIdentifier href="SampleOOTraceTest.notation#_rbZ3IDeFEeGPyrZ5I3hMlA"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="SampleOOTraceTest.notation#_Rk2pgDVlEeKoYLVLZgpRiw"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="SampleOOTraceTest.notation#_57mwQDclEeKAhIrFXfR8zQ"/>
+ </availablePage>
+ </pageList>
+ <sashModel currentSelection="/0/@sashModel/@windows.0/@children.0">
+ <windows>
+ <children xsi:type="di:TabFolder">
+ <children>
+ <emfPageIdentifier href="SampleOOTraceTest.notation#_XSHWMF36Ed-UvNEDwY5GNg"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="SampleOOTraceTest.notation#_rbZ3IDeFEeGPyrZ5I3hMlA"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="SampleOOTraceTest.notation#_Rk2pgDVlEeKoYLVLZgpRiw"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="SampleOOTraceTest.notation#_57mwQDclEeKAhIrFXfR8zQ"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+ </di:SashWindowsMngr>
+ <history:ControledResource/>
+ <history:ControledResource/>
+ <history:ControledResource/>
+ <history:ControledResource/>
+ <history:ControledResource/>
+ <history:ControledResource/>
+ <history:ControledResource/>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/SampleOOTraceTest.notation b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/SampleOOTraceTest.notation
new file mode 100644
index 00000000000..62727ee1920
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/SampleOOTraceTest.notation
@@ -0,0 +1,410 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:C_Cpp="http://www.eclipse.org/papyrus/C_Cpp/1" xmlns:FCM="http://www.eclipse.org/papyrus/FCM/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML">
+ <notation:Diagram xmi:id="_XSHWMF36Ed-UvNEDwY5GNg" type="PapyrusUMLClassDiagram" name="Interfaces" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_Pj6oUDeEEeGPyrZ5I3hMlA" type="2004" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pj6oUjeEEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Pj7PYDeEEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pj7PYTeEEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Pj7PYjeEEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pj7PYzeEEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Pj7PZDeEEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Pj7PZTeEEeGPyrZ5I3hMlA" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Pj7PZjeEEeGPyrZ5I3hMlA" visible="false" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Pj7PZzeEEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Pj7PaDeEEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Pj7PaTeEEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Pj7PajeEEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Pj7PazeEEeGPyrZ5I3hMlA" type="7007">
+ <children xmi:type="notation:Shape" xmi:id="_R8Rm0DeEEeGPyrZ5I3hMlA" type="3007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1B21kCwNEeK0G9oarbCn5Q" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1I5RsCwNEeK0G9oarbCn5Q" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="SampleOOTraceTest.uml#_DGs6wDLgEd28fJKJJnUaeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_R8Rm0TeEEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_R8SN4DeEEeGPyrZ5I3hMlA" type="3007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2ZBc0CwNEeK0G9oarbCn5Q" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2dz2MCwNEeK0G9oarbCn5Q" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="SampleOOTraceTest.uml#_L8EY8DLgEd28fJKJJnUaeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_R8SN4TeEEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_rsWQcDVdEeKoYLVLZgpRiw" type="3007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8MrPMDVdEeKoYLVLZgpRiw" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8ftf8DVdEeKoYLVLZgpRiw" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="SampleOOTraceTest.uml#_rrbqcDVdEeKoYLVLZgpRiw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_rsWQcTVdEeKoYLVLZgpRiw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6E33wDW2EeKyT6LlKoWJIA" type="3007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JvVlgDW3EeKyT6LlKoWJIA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_J0pjUDW3EeKyT6LlKoWJIA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="SampleOOTraceTest.uml#_6DewoDW2EeKyT6LlKoWJIA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6E33wTW2EeKyT6LlKoWJIA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Pj7PbDeEEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Pj7PbTeEEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Pj7PbjeEEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Pj7PbzeEEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Pj7PcDeEEeGPyrZ5I3hMlA" visible="false" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Pj7PcTeEEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Pj7PcjeEEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Pj7PczeEEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Pj7PdDeEEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VTHeYFFyEeOLNIKOajeerQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_VTHeYVFyEeOLNIKOajeerQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VTHeYlFyEeOLNIKOajeerQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="SampleOOTraceTest.uml#_cn-H0DLbEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Pj6oUTeEEeGPyrZ5I3hMlA" x="108" y="81" width="321"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TP_4gDeEEeGPyrZ5I3hMlA" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TQAfkDeEEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TQAfkTeEEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TQAfkjeEEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TQAfkzeEEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TQAflDeEEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TQAflTeEEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TQAfljeEEeGPyrZ5I3hMlA" type="5038"/>
+ <element xmi:type="uml:Comment" href="SampleOOTraceTest.uml#_TDDBoDeEEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TP_4gTeEEeGPyrZ5I3hMlA" x="513" y="108" width="203"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ktdOQDW2EeKyT6LlKoWJIA" type="2010" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ktd1UDW2EeKyT6LlKoWJIA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ktd1UTW2EeKyT6LlKoWJIA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ktd1UjW2EeKyT6LlKoWJIA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ktd1UzW2EeKyT6LlKoWJIA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ktd1VDW2EeKyT6LlKoWJIA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ktd1VTW2EeKyT6LlKoWJIA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ktd1VjW2EeKyT6LlKoWJIA" type="5035"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ktd1VzW2EeKyT6LlKoWJIA" type="7020">
+ <children xmi:type="notation:Shape" xmi:id="_m0rZcDW2EeKyT6LlKoWJIA" type="3018" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QleJQJ0lEeKBzo5ONT8mrA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QrfRsJ0lEeKBzo5ONT8mrA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="SampleOOTraceTest.uml#_m0WCQDW2EeKyT6LlKoWJIA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_m0rZcTW2EeKyT6LlKoWJIA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_yJR6MDW2EeKyT6LlKoWJIA" type="3018" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QlfXYJ0lEeKBzo5ONT8mrA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qrf4wJ0lEeKBzo5ONT8mrA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="SampleOOTraceTest.uml#_yJIJMDW2EeKyT6LlKoWJIA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yJR6MTW2EeKyT6LlKoWJIA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ktd1WDW2EeKyT6LlKoWJIA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ktd1WTW2EeKyT6LlKoWJIA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ktd1WjW2EeKyT6LlKoWJIA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ktd1WzW2EeKyT6LlKoWJIA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ktecYDW2EeKyT6LlKoWJIA" visible="false" type="7021">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ktecYTW2EeKyT6LlKoWJIA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ktecYjW2EeKyT6LlKoWJIA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ktecYzW2EeKyT6LlKoWJIA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ktecZDW2EeKyT6LlKoWJIA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VTLIwFFyEeOLNIKOajeerQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_VTLIwVFyEeOLNIKOajeerQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VTLIwlFyEeOLNIKOajeerQ"/>
+ </children>
+ <element xmi:type="uml:DataType" href="SampleOOTraceTest.uml#_krMkcDW2EeKyT6LlKoWJIA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ktdOQTW2EeKyT6LlKoWJIA" x="121" y="262" width="141" height="90"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_XSHWMV36Ed-UvNEDwY5GNg"/>
+ <element xmi:type="uml:Package" href="SampleOOTraceTest.uml#_Tp4n8DLaEd2qeKRLMdIx_A"/>
+ <edges xmi:type="notation:Connector" xmi:id="_Y-hhkDeEEeGPyrZ5I3hMlA" type="4013" source="_TP_4gDeEEeGPyrZ5I3hMlA" target="_Pj6oUDeEEeGPyrZ5I3hMlA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Y-hhkTeEEeGPyrZ5I3hMlA" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Y-hhkjeEEeGPyrZ5I3hMlA" points="[-29, -1, 113, 0]$[-113, -1, 29, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Y_9sADeEEeGPyrZ5I3hMlA" id="(0.14285714285714285,0.5166666666666667)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Y_9sATeEEeGPyrZ5I3hMlA" id="(0.9096573208722741,0.5377358490566038)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_rbZ3IDeFEeGPyrZ5I3hMlA" type="PapyrusUMLClassDiagram" name="ClassDiagram Client" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_t6z40DeFEeGPyrZ5I3hMlA" type="2008" fontName="Sans Serif" fillColor="8905185" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t60f4DeFEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t60f4TeFEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t60f4jeFEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t60f4zeFEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t60f5DeFEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t60f5TeFEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_t61G8DeFEeGPyrZ5I3hMlA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_t61G8TeFEeGPyrZ5I3hMlA" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_t61G8jeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_t61G8zeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_t61G9DeFEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t61G9TeFEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_t61G9jeFEeGPyrZ5I3hMlA" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_Q07G0DclEeKAhIrFXfR8zQ" type="3013" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_z-c2gDc_EeKPle9CbXIcpQ" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0IwpEDc_EeKPle9CbXIcpQ" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="SampleOOTraceTest.uml#_Qzp7gDclEeKAhIrFXfR8zQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Q07G0TclEeKAhIrFXfR8zQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cssnQDc_EeKPle9CbXIcpQ" type="3013" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="SampleOOTraceTest.uml#_ZnGj0EdDEeGxo4rn9hBAOQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cssnQTc_EeKPle9CbXIcpQ" x="15" y="21"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_t61G9zeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_t61G-DeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_t61G-TeFEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t61G-jeFEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_t61G-zeFEeGPyrZ5I3hMlA" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_t61G_DeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_t61G_TeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_t61G_jeFEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t61G_zeFEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VtNZYFFyEeOLNIKOajeerQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_VtNZYVFyEeOLNIKOajeerQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="SampleOOTraceTest.uml#_7SAnAP76Ed6Zw96O-tCw7A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VtNZYlFyEeOLNIKOajeerQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VtNZY1FyEeOLNIKOajeerQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_VtNZZFFyEeOLNIKOajeerQ" showTitle="true"/>
+ <element xmi:type="FCM:RuleApplication" href="SampleOOTraceTest.uml#__bC_ADcmEeKAhIrFXfR8zQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VtNZZVFyEeOLNIKOajeerQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VtNZZlFyEeOLNIKOajeerQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_VtNZZ1FyEeOLNIKOajeerQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VtNZaFFyEeOLNIKOajeerQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="SampleOOTraceTest.uml#_IfjoETLbEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t6z40TeFEeGPyrZ5I3hMlA" x="90" y="135" width="144"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_fBkXMDeGEeGPyrZ5I3hMlA" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fBk-QDeGEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fBk-QTeGEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fBk-QjeGEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fBk-QzeGEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fBk-RDeGEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fBllUDeGEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fBllUTeGEeGPyrZ5I3hMlA" type="5038"/>
+ <element xmi:type="uml:Comment" href="SampleOOTraceTest.uml#_fBRcQDeGEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fBkXMTeGEeGPyrZ5I3hMlA" x="45" y="279" width="441" height="89"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_rbZ3ITeFEeGPyrZ5I3hMlA"/>
+ <element xmi:type="uml:Package" href="SampleOOTraceTest.uml#_etOZkDLaEd2qeKRLMdIx_A"/>
+ <edges xmi:type="notation:Connector" xmi:id="_f6Wj4DeHEeGPyrZ5I3hMlA" type="4013" source="_fBkXMDeGEeGPyrZ5I3hMlA" target="_t6z40DeFEeGPyrZ5I3hMlA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_f6Wj4TeHEeGPyrZ5I3hMlA" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f6Wj4jeHEeGPyrZ5I3hMlA" points="[-3, -11, 18, 93]$[-19, -84, 2, 20]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f68ZwDeHEeGPyrZ5I3hMlA" id="(0.14512471655328799,0.11224489795918367)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f68ZwTeHEeGPyrZ5I3hMlA" id="(0.4,0.85)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_Rk2pgDVlEeKoYLVLZgpRiw" type="PapyrusUMLClassDiagram" name="ClassDiagram Server" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_SeK3IDVlEeKoYLVLZgpRiw" type="2008" fontName="Sans Serif" fillColor="8905185" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SeMsUDVlEeKoYLVLZgpRiw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SeMsUTVlEeKoYLVLZgpRiw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SeMsUjVlEeKoYLVLZgpRiw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SeMsUzVlEeKoYLVLZgpRiw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SeMsVDVlEeKoYLVLZgpRiw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SeMsVTVlEeKoYLVLZgpRiw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cLIEoDVlEeKoYLVLZgpRiw" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cLX8QDVlEeKoYLVLZgpRiw" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cLX8QTVlEeKoYLVLZgpRiw" key="StereotypeList" value="FCM::RuleApplication"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cLX8QjVlEeKoYLVLZgpRiw" key="PropStereoDisplay" value="FCM::RuleApplication.containerRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cLX8QzVlEeKoYLVLZgpRiw" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cLX8RDVlEeKoYLVLZgpRiw" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SeNTYDVlEeKoYLVLZgpRiw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SeNTYTVlEeKoYLVLZgpRiw" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SeNTYjVlEeKoYLVLZgpRiw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SeNTYzVlEeKoYLVLZgpRiw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SeNTZDVlEeKoYLVLZgpRiw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SeNTZTVlEeKoYLVLZgpRiw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SeNTZjVlEeKoYLVLZgpRiw" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_VGZdoDVlEeKoYLVLZgpRiw" type="3013" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="SampleOOTraceTest.uml#_4ZEZwHecEd6r18stFZxmFQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VGZdoTVlEeKoYLVLZgpRiw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_VGaEsDVlEeKoYLVLZgpRiw" type="3013" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="SampleOOTraceTest.uml#_TbIjUJYlEd6G9q9hwr11bw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VGaEsTVlEeKoYLVLZgpRiw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_VGarwDVlEeKoYLVLZgpRiw" type="3013" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="SampleOOTraceTest.uml#_rrf74DVdEeKoYLVLZgpRiw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VGarwTVlEeKoYLVLZgpRiw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SeNTZzVlEeKoYLVLZgpRiw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SeNTaDVlEeKoYLVLZgpRiw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SeNTaTVlEeKoYLVLZgpRiw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SeNTajVlEeKoYLVLZgpRiw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SeNTazVlEeKoYLVLZgpRiw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SeNTbDVlEeKoYLVLZgpRiw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SeNTbTVlEeKoYLVLZgpRiw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SeNTbjVlEeKoYLVLZgpRiw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SeNTbzVlEeKoYLVLZgpRiw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Vw_GIFFyEeOLNIKOajeerQ" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Vw_GIVFyEeOLNIKOajeerQ" showTitle="true"/>
+ <element xmi:type="FCM:RuleApplication" href="SampleOOTraceTest.uml#_DWIYoP6yEd6Ie_kieu_3CQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vw_GIlFyEeOLNIKOajeerQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VxBiYFFyEeOLNIKOajeerQ" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_VxBiYVFyEeOLNIKOajeerQ" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="SampleOOTraceTest.uml#_Sa4nEP77Ed6Zw96O-tCw7A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VxBiYlFyEeOLNIKOajeerQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VxCJcFFyEeOLNIKOajeerQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_VxCJcVFyEeOLNIKOajeerQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VxCJclFyEeOLNIKOajeerQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="SampleOOTraceTest.uml#_oqZNUDLaEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SeK3ITVlEeKoYLVLZgpRiw" x="176" y="95" width="266" height="203"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Rk2pgTVlEeKoYLVLZgpRiw"/>
+ <element xmi:type="uml:Package" href="SampleOOTraceTest.uml#_OGM88DLaEd2qeKRLMdIx_A"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_57mwQDclEeKAhIrFXfR8zQ" type="PapyrusUMLStateMachineDiagram" name="SmDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_57mwQTclEeKAhIrFXfR8zQ" type="2000" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_57mwQjclEeKAhIrFXfR8zQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_57mwQzclEeKAhIrFXfR8zQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_57mwRDclEeKAhIrFXfR8zQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_57mwRTclEeKAhIrFXfR8zQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_57mwRjclEeKAhIrFXfR8zQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_57mwRzclEeKAhIrFXfR8zQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_57mwSDclEeKAhIrFXfR8zQ" type="2001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_57mwSTclEeKAhIrFXfR8zQ" width="592" height="14"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_57mwSjclEeKAhIrFXfR8zQ" type="2002">
+ <children xmi:type="notation:Shape" xmi:id="_57mwSzclEeKAhIrFXfR8zQ" type="3000" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_57mwTDclEeKAhIrFXfR8zQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_57mwTTclEeKAhIrFXfR8zQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_57mwTjclEeKAhIrFXfR8zQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_57mwTzclEeKAhIrFXfR8zQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_57mwUDclEeKAhIrFXfR8zQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_57mwUTclEeKAhIrFXfR8zQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_57mwUjclEeKAhIrFXfR8zQ" source="RegionAnnotationKey">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_57mwUzclEeKAhIrFXfR8zQ" key="RegionZoneKey" value=""/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_57mwVDclEeKAhIrFXfR8zQ" type="3002">
+ <children xmi:type="notation:Shape" xmi:id="_66VCUDclEeKAhIrFXfR8zQ" type="6000" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_66VpYDclEeKAhIrFXfR8zQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_66VpYTclEeKAhIrFXfR8zQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_66VpYjclEeKAhIrFXfR8zQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_66VpYzclEeKAhIrFXfR8zQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_66VpZDclEeKAhIrFXfR8zQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_66VpZTclEeKAhIrFXfR8zQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_66VpZjclEeKAhIrFXfR8zQ" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_67AXwDclEeKAhIrFXfR8zQ" width="109" height="14"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_66WQcDclEeKAhIrFXfR8zQ" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_66WQcTclEeKAhIrFXfR8zQ" y="14" width="109" height="74"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_V17QgFFyEeOLNIKOajeerQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_V17QgVFyEeOLNIKOajeerQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V17QglFyEeOLNIKOajeerQ"/>
+ </children>
+ <element xmi:type="uml:State" href="SampleOOTraceTest.uml#_66D8kDclEeKAhIrFXfR8zQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_66VCUTclEeKAhIrFXfR8zQ" x="159" y="46" width="109" height="88"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9gPUoDclEeKAhIrFXfR8zQ" type="8000" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9gP7sTclEeKAhIrFXfR8zQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9gP7sjclEeKAhIrFXfR8zQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9gQiwDclEeKAhIrFXfR8zQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9gQiwTclEeKAhIrFXfR8zQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9gQiwjclEeKAhIrFXfR8zQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9gQiwzclEeKAhIrFXfR8zQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9gQixDclEeKAhIrFXfR8zQ" type="8001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9gQixTclEeKAhIrFXfR8zQ" x="26" y="-11"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9gQixjclEeKAhIrFXfR8zQ" type="8002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9gQixzclEeKAhIrFXfR8zQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Pseudostate" href="SampleOOTraceTest.uml#_9f6kgDclEeKAhIrFXfR8zQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9gP7sDclEeKAhIrFXfR8zQ" x="43" y="30"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_57mwVTclEeKAhIrFXfR8zQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_V140QFFyEeOLNIKOajeerQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_V140QVFyEeOLNIKOajeerQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V140QlFyEeOLNIKOajeerQ"/>
+ </children>
+ <element xmi:type="uml:Region" href="SampleOOTraceTest.uml#_57WRkDclEeKAhIrFXfR8zQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_57mwVjclEeKAhIrFXfR8zQ" width="592" height="245"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_57mwVzclEeKAhIrFXfR8zQ" y="14" width="592" height="245"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_V12YAFFyEeOLNIKOajeerQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_V12YAVFyEeOLNIKOajeerQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V12YAlFyEeOLNIKOajeerQ"/>
+ </children>
+ <element xmi:type="uml:StateMachine" href="SampleOOTraceTest.uml#_5Vd9UDclEeKAhIrFXfR8zQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_57mwWDclEeKAhIrFXfR8zQ" x="30" y="30" width="592" height="259"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_57mwWTclEeKAhIrFXfR8zQ"/>
+ <element xmi:type="uml:StateMachine" href="SampleOOTraceTest.uml#_5Vd9UDclEeKAhIrFXfR8zQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_8bHfoDclEeKAhIrFXfR8zQ" type="7000" source="_66VCUDclEeKAhIrFXfR8zQ" target="_66VCUDclEeKAhIrFXfR8zQ" smoothness="Normal" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8bItwDclEeKAhIrFXfR8zQ" visible="false" type="7001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8bItwTclEeKAhIrFXfR8zQ"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8bItwjclEeKAhIrFXfR8zQ" visible="false" type="7002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8bItwzclEeKAhIrFXfR8zQ"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8bItxDclEeKAhIrFXfR8zQ" visible="false" type="7003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8bItxTclEeKAhIrFXfR8zQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8bHfoTclEeKAhIrFXfR8zQ" fontName="Sans Serif"/>
+ <element xmi:type="uml:Transition" href="SampleOOTraceTest.uml#_8ZB08DclEeKAhIrFXfR8zQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8bHfojclEeKAhIrFXfR8zQ" points="[3, 1, 40, -51]$[65, 34, 102, -18]$[56, 94, 93, 42]$[-7, 103, 30, 51]$[-35, 56, 2, 4]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8b9NIDclEeKAhIrFXfR8zQ" id="(0.9724770642201835,0.36363636363636365)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8b9NITclEeKAhIrFXfR8zQ" id="(0.6330275229357798,0.9545454545454546)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_-wO84DclEeKAhIrFXfR8zQ" type="7000" source="_9gPUoDclEeKAhIrFXfR8zQ" target="_66VCUDclEeKAhIrFXfR8zQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_-wPj8DclEeKAhIrFXfR8zQ" visible="false" type="7001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-wPj8TclEeKAhIrFXfR8zQ"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-wQLADclEeKAhIrFXfR8zQ" visible="false" type="7002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-wQLATclEeKAhIrFXfR8zQ"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-wQLAjclEeKAhIrFXfR8zQ" visible="false" type="7003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-wQLAzclEeKAhIrFXfR8zQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_-wO84TclEeKAhIrFXfR8zQ" fontName="Sans Serif"/>
+ <element xmi:type="uml:Transition" href="SampleOOTraceTest.uml#_-v4XkDclEeKAhIrFXfR8zQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-wO84jclEeKAhIrFXfR8zQ" points="[10, 2, -77, -18]$[79, 14, -8, -6]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-xGfkDclEeKAhIrFXfR8zQ" id="(0.07339449541284404,0.1590909090909091)"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/SampleOOTraceTest.uml b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/SampleOOTraceTest.uml
new file mode 100644
index 00000000000..99e6bd2e3e9
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/SampleOOTraceTest.uml
@@ -0,0 +1,276 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Alloc="http://www.eclipse.org/papyrus/Alloc/1" xmlns:C_Cpp="http://www.eclipse.org/papyrus/C_Cpp/1" xmlns:FCM="http://www.eclipse.org/papyrus/FCM/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/papyrus/Alloc/1 http://www.eclipse.org/papyrus/MARTE/1#//Alloc">
+ <uml:Model xmi:id="_O6TiIDLUEd26WNosUASSSw" name="SampleOOTraceTest">
+ <packageImport xmi:id="_O6TiITLUEd26WNosUASSSw">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packageImport xmi:id="_rwBsMP7AEd6Zw96O-tCw7A">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/corba.uml#_DtQEwDLdEd2_U4efLnjQIw"/>
+ </packageImport>
+ <packageImport xmi:id="__D5MwE2WEeGzNbfAXPgNLA">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_TRACE/tracing.uml#_H-ZqYDKeEd-WprEKTCaiMA"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Package" xmi:id="_OGM88DLaEd2qeKRLMdIx_A" name="Server">
+ <packagedElement xmi:type="uml:Class" xmi:id="_oqZNUDLaEd2qeKRLMdIx_A" name="Server_impl" classifierBehavior="_5Vd9UDclEeKAhIrFXfR8zQ">
+ <interfaceRealization xmi:id="_YQqH0JYlEd6G9q9hwr11bw" name="derived realization of ICompute" client="_oqZNUDLaEd2qeKRLMdIx_A" supplier="_cn-H0DLbEd2qeKRLMdIx_A" contract="_cn-H0DLbEd2qeKRLMdIx_A"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_ML-4AKI5Ed6FqJCjEUrkqQ" name="add" specification="_TbIjUJYlEd6G9q9hwr11bw">
+ <ownedParameter xmi:id="_xOQMoC7NEeOY-cM3M1mqKw" name="a">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xOzmQC7NEeOY-cM3M1mqKw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xO_zgC7NEeOY-cM3M1mqKw" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_xPLZsC7NEeOY-cM3M1mqKw" name="b">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xPuzUC7NEeOY-cM3M1mqKw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xP6ZgC7NEeOY-cM3M1mqKw" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_xQF_sC7NEeOY-cM3M1mqKw" name="res" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xQvf8C7NEeOY-cM3M1mqKw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xQ7GIC7NEeOY-cM3M1mqKw" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;a=&quot; &lt;&lt; a &lt;&lt; &quot; b=&quot; &lt;&lt; b &lt;&lt; &quot; a+b=&quot; &lt;&lt; a+b &lt;&lt; endl;
+return a+b;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_I1R3YAcDEeGnrLqQ0OQeAg" name="mult" specification="_4ZEZwHecEd6r18stFZxmFQ">
+ <ownedParameter xmi:id="_xRMy8C7NEeOY-cM3M1mqKw" name="a">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_qgMSAB6SEd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xRwzoC7NEeOY-cM3M1mqKw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xR8Z0C7NEeOY-cM3M1mqKw" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_xSInEC7NEeOY-cM3M1mqKw" name="b">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_wbw4kB6SEd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xStO0C7NEeOY-cM3M1mqKw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xS41AC7NEeOY-cM3M1mqKw" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_xTFCQC7NEeOY-cM3M1mqKw" name="res" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xTn00C7NEeOY-cM3M1mqKw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xT0CEC7NEeOY-cM3M1mqKw" value="1"/>
+ </ownedParameter>
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;a*b=&quot; &lt;&lt; a*b;
+return a*b;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:StateMachine" xmi:id="_5Vd9UDclEeKAhIrFXfR8zQ" name="ServerStateMachine">
+ <region xmi:id="_57WRkDclEeKAhIrFXfR8zQ" name="Region1">
+ <transition xmi:id="_8ZB08DclEeKAhIrFXfR8zQ" name="Transition0" source="_66D8kDclEeKAhIrFXfR8zQ" target="_66D8kDclEeKAhIrFXfR8zQ"/>
+ <transition xmi:id="_-v4XkDclEeKAhIrFXfR8zQ" name="Transition1" source="_9f6kgDclEeKAhIrFXfR8zQ" target="_66D8kDclEeKAhIrFXfR8zQ"/>
+ <subvertex xmi:type="uml:State" xmi:id="_66D8kDclEeKAhIrFXfR8zQ" name="State0"/>
+ <subvertex xmi:type="uml:Pseudostate" xmi:id="_9f6kgDclEeKAhIrFXfR8zQ" name="Initial0"/>
+ </region>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_4ZEZwHecEd6r18stFZxmFQ" name="mult" method="_I1R3YAcDEeGnrLqQ0OQeAg">
+ <ownedParameter xmi:id="_nvpKUDVdEeKoYLVLZgpRiw" name="a">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_qgMSAB6SEd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nvup4DVdEeKoYLVLZgpRiw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nvvQ8DVdEeKoYLVLZgpRiw" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nvwfEDVdEeKoYLVLZgpRiw" name="b">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_wbw4kB6SEd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nvy7UDVdEeKoYLVLZgpRiw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nvziYDVdEeKoYLVLZgpRiw" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nv1XkDVdEeKoYLVLZgpRiw" name="res" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nv3z0DVdEeKoYLVLZgpRiw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nv4a4DVdEeKoYLVLZgpRiw" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TbIjUJYlEd6G9q9hwr11bw" name="add" method="_ML-4AKI5Ed6FqJCjEUrkqQ">
+ <ownedParameter xmi:id="_TbZCAJYlEd6G9q9hwr11bw" name="a">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_TbdTcJYlEd6G9q9hwr11bw" name="b">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_TbkoMJYlEd6G9q9hwr11bw" name="res" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_rrf74DVdEeKoYLVLZgpRiw" name="check">
+ <ownedParameter xmi:id="_4UNv4DVdEeKoYLVLZgpRiw" name="write">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_4UO-ADVdEeKoYLVLZgpRiw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_4UPlEDVdEeKoYLVLZgpRiw" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_9OJPEDVkEeKoYLVLZgpRiw" name="testOp">
+ <ownedParameter xmi:id="_Br-FQDVlEeKoYLVLZgpRiw" name="testPar">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_9XvcQB6REd6ITtm_FH3jRw"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_6ERa0DW2EeKyT6LlKoWJIA" name="length">
+ <ownedParameter xmi:id="_FfLX4DW3EeKyT6LlKoWJIA" name="p1" type="_krMkcDW2EeKyT6LlKoWJIA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FfN0IDW3EeKyT6LlKoWJIA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FfObMDW3EeKyT6LlKoWJIA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_Tp4n8DLaEd2qeKRLMdIx_A" name="Interfaces">
+ <ownedComment xmi:id="_TDDBoDeEEeGPyrZ5I3hMlA" annotatedElement="_cn-H0DLbEd2qeKRLMdIx_A">
+ <body>This interface contains services that are used by the client and provided by the server component</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_cn-H0DLbEd2qeKRLMdIx_A" name="ICompute">
+ <ownedOperation xmi:id="_DGs6wDLgEd28fJKJJnUaeQ" name="add">
+ <ownedParameter xmi:id="_DGs6wTLgEd28fJKJJnUaeQ" name="a">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DGs6wzLgEd28fJKJJnUaeQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DGs6wjLgEd28fJKJJnUaeQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_DGs6xTLgEd28fJKJJnUaeQ" name="b">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DGs6xzLgEd28fJKJJnUaeQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DGs6xjLgEd28fJKJJnUaeQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_DGs6yTLgEd28fJKJJnUaeQ" name="res" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DGs6yzLgEd28fJKJJnUaeQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DGs6yjLgEd28fJKJJnUaeQ" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_L8EY8DLgEd28fJKJJnUaeQ" name="mult" isAbstract="true">
+ <ownedParameter xmi:id="_L8EY8TLgEd28fJKJJnUaeQ" name="a">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_qgMSAB6SEd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_L8EY8zLgEd28fJKJJnUaeQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_L8EY8jLgEd28fJKJJnUaeQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_L8EY9TLgEd28fJKJJnUaeQ" name="b">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_wbw4kB6SEd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_L8EY9zLgEd28fJKJJnUaeQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_L8EY9jLgEd28fJKJJnUaeQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_L8EY-TLgEd28fJKJJnUaeQ" name="res" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_L8EY-zLgEd28fJKJJnUaeQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_L8EY-jLgEd28fJKJJnUaeQ" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_rrbqcDVdEeKoYLVLZgpRiw" name="check" isAbstract="true">
+ <ownedParameter xmi:id="_0xTp0DVdEeKoYLVLZgpRiw" name="write">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_6DewoDW2EeKyT6LlKoWJIA" name="length">
+ <ownedParameter xmi:id="_AP4BcDW3EeKyT6LlKoWJIA" name="p1" type="_krMkcDW2EeKyT6LlKoWJIA"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_krMkcDW2EeKyT6LlKoWJIA" name="Point">
+ <ownedAttribute xmi:id="_m0WCQDW2EeKyT6LlKoWJIA" name="x" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_-5FTMB6REd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_pOAoUDW2EeKyT6LlKoWJIA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_pOB2cDW2EeKyT6LlKoWJIA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_pOESsDW2EeKyT6LlKoWJIA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_yJIJMDW2EeKyT6LlKoWJIA" name="y" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_-5FTMB6REd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_yd44QDW2EeKyT6LlKoWJIA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_yd6GYDW2EeKyT6LlKoWJIA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_yd77kDW2EeKyT6LlKoWJIA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_etOZkDLaEd2qeKRLMdIx_A" name="Client">
+ <ownedComment xmi:id="_fBRcQDeGEeGPyrZ5I3hMlA" annotatedElement="_IfjoETLbEd2qeKRLMdIx_A">
+ <body>The operation &quot;run&quot; (not the associated behavior) has been added automatically by Qompass in order to implement the operations of interfaces provided by ports, in this case of the operations of the &quot;IStart&quot; interface. It would be tedious to manually copy operations from an interface, as it would imply copying the complete signature with all parameters. The component developper has to provide a suitable behavior. A validation rule verifies if operations without behavior exist.</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_IfjoETLbEd2qeKRLMdIx_A" name="Client_impl">
+ <interfaceRealization xmi:id="_ZmdDkEdDEeGxo4rn9hBAOQ" name="derived realization of IStart" client="_IfjoETLbEd2qeKRLMdIx_A">
+ <supplier xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_PTWzwCS-Ed-A_I32T0fkaA"/>
+ <contract href="pathmap://QML_CORE/sysinterfaces.uml#_PTWzwCS-Ed-A_I32T0fkaA"/>
+ </interfaceRealization>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_yXNVoKF4Ed6FqJCjEUrkqQ" name="run" specification="_ZnGj0EdDEeGxo4rn9hBAOQ">
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;call via port q: add (2, 3);&quot; &lt;&lt; endl;
+for (int i=0; i&lt;20; i++) {
+ cout &lt;&lt; &quot;result: &quot; &lt;&lt; q->add (2, (i+3)) &lt;&lt; endl;
+ usleep((i+10)*5*1000);
+ cout &lt;&lt; &quot;result: &quot; &lt;&lt; q->mult (3.0, 7.0) &lt;&lt; endl;
+ usleep(20*1000);
+ testOp(i*2);
+ usleep(30*1000);
+}</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_yVALQDclEeKAhIrFXfR8zQ" name="testOp" specification="_Qzp7gDclEeKAhIrFXfR8zQ">
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;This is a test operation&quot; &lt;&lt; endl;</body>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_ZnGj0EdDEeGxo4rn9hBAOQ" name="run" method="_yXNVoKF4Ed6FqJCjEUrkqQ"/>
+ <ownedOperation xmi:id="_Qzp7gDclEeKAhIrFXfR8zQ" name="testOp" method="_yVALQDclEeKAhIrFXfR8zQ">
+ <ownedParameter xmi:id="_rXu4UDc_EeKPle9CbXIcpQ" name="j">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_9XvcQB6REd6ITtm_FH3jRw"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ </packagedElement>
+ <profileApplication xmi:id="_O6TiIjLUEd26WNosUASSSw">
+ <eAnnotations xmi:id="_O6TiIzLUEd26WNosUASSSw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_GcC0cAHtEd6HSdiss9GQ0A">
+ <eAnnotations xmi:id="_Gd1kMAHtEd6HSdiss9GQ0A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/C_Cpp/1#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
+ </profileApplication>
+ <profileApplication xmi:id="_z1TwgFW3Ed63BrxiKsw-0Q">
+ <eAnnotations xmi:id="_z2GasFW3Ed63BrxiKsw-0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/FCM/1#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://FCM_PROFILES/FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
+ </profileApplication>
+ <profileApplication xmi:id="_1GtD8E0fEeG_H4ME7SR4KA">
+ <eAnnotations xmi:id="_1RA2gE0fEeG_H4ME7SR4KA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_ar8OsAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ </uml:Model>
+ <FCM:DerivedElement xmi:id="_B9o7sP6yEd6Ie_kieu_3CQ">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_DWb6oP6yEd6Ie_kieu_3CQ" base_Element="_TbIjUJYlEd6G9q9hwr11bw" source="_DGs6wDLgEd28fJKJJnUaeQ"/>
+ <FCM:DerivedElement xmi:id="_DXK6cP6yEd6Ie_kieu_3CQ" base_Element="_4ZEZwHecEd6r18stFZxmFQ" source="_L8EY8DLgEd28fJKJJnUaeQ"/>
+ <FCM:RuleApplication xmi:id="_DWIYoP6yEd6Ie_kieu_3CQ" base_Class="_oqZNUDLaEd2qeKRLMdIx_A">
+ <containerRule href="pathmap://QML_TRACE/tracing.uml#_NtAukCqLEeKGrchWittz_g"/>
+ <propagateRule>false</propagateRule>
+ <interceptor href="pathmap://QML_TRACE/tracing.uml#_35od4DKrEd-z5o2wSoJ16A"/>
+ </FCM:RuleApplication>
+ <FCM:Connector xmi:id="_K2_iAP6yEd6Ie_kieu_3CQ"/>
+ <FCM:DerivedElement xmi:id="_RwGb8P6_Ed6Zw96O-tCw7A" source="_DGs6wDLgEd28fJKJJnUaeQ"/>
+ <FCM:DerivedElement xmi:id="_RxVyEP6_Ed6Zw96O-tCw7A" source="_L8EY8DLgEd28fJKJJnUaeQ"/>
+ <C_Cpp:Include xmi:id="_7SAnAP76Ed6Zw96O-tCw7A" body="#include &lt;unistd.h>&#xA;#include &lt;iostream>&#xA;using namespace std;" base_class="_IfjoETLbEd2qeKRLMdIx_A"/>
+ <C_Cpp:Include xmi:id="_Sa4nEP77Ed6Zw96O-tCw7A" body="#include &lt;iostream>&#xA;using namespace std;" base_class="_oqZNUDLaEd2qeKRLMdIx_A"/>
+ <FCM:Connector xmi:id="_Tm9v0ACUEd-PD8FdFs7bpA"/>
+ <FCM:DeploymentPlan xmi:id="_lEueYGLEEd-seu3qyZgHfg"/>
+ <FCM:DeploymentPlan xmi:id="_u_ACgGSuEd-dQdK1-7wIFg"/>
+ <FCM:DeploymentPlan xmi:id="_YK67AGTgEd-rCOWJcspHOA"/>
+ <FCM:ContainerRule xmi:id="_lNrDwH4HEd-rD-b0gnx-AQ"/>
+ <FCM:Configuration xmi:id="_RM9kQH8UEd-7Bsdl4VhuEw" base_Package="_BJc50H8TEd-7Bsdl4VhuEw">
+ <configOptions href="pathmap://QML_CORE/core.uml#_u6LqoH7eEd-FNNgSS03RxQ"/>
+ </FCM:Configuration>
+ <FCM:DerivedElement xmi:id="_1E0nUKFhEd-AoOVE_odazw"/>
+ <FCM:Connector xmi:id="_cAkqIMKnEd-LE5cHpAvxBg">
+ <connector xmi:type="FCM:ConnectorImplGroup" href="pathmap://QML_DISTRIBUTION/distribution.uml#_DBP7QMKmEd-hj59jYY3RZQ"/>
+ </FCM:Connector>
+ <FCM:DerivedElement xmi:id="_ZnZewEdDEeGxo4rn9hBAOQ" base_Element="_ZnGj0EdDEeGxo4rn9hBAOQ">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <Alloc:Allocate xmi:id="_hgh4IE0rEeGl_syZE5iOXA"/>
+ <Alloc:Allocate xmi:id="_iwbZwE0rEeGl_syZE5iOXA"/>
+ <Alloc:Allocate xmi:id="_juiAwE0rEeGl_syZE5iOXA"/>
+ <FCM:DerivedElement xmi:id="_rrmpkDVdEeKoYLVLZgpRiw" base_Element="_rrf74DVdEeKoYLVLZgpRiw" source="_rrbqcDVdEeKoYLVLZgpRiw"/>
+ <FCM:DerivedElement xmi:id="_6EbL0DW2EeKyT6LlKoWJIA" base_Element="_6ERa0DW2EeKyT6LlKoWJIA" source="_6DewoDW2EeKyT6LlKoWJIA"/>
+ <FCM:RuleApplication xmi:id="__bC_ADcmEeKAhIrFXfR8zQ" base_Class="_IfjoETLbEd2qeKRLMdIx_A">
+ <containerRule href="pathmap://QML_TRACE/tracing.uml#_NtAukCqLEeKGrchWittz_g"/>
+ <propagateRule>false</propagateRule>
+ </FCM:RuleApplication>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/library/tracing.di b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/library/tracing.di
new file mode 100644
index 00000000000..ebdd073cf33
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/library/tracing.di
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi" xmlns:history="http://www.eclipse.org/papyrus/0.7.0/controlmode">
+ <di:SashWindowsMngr xmi:id="_m5icIOxGEd-2rr_yAeKkjQ">
+ <pageList xmi:id="_m5icIexGEd-2rr_yAeKkjQ">
+ <availablePage xmi:id="_m5icIuxGEd-2rr_yAeKkjQ">
+ <emfPageIdentifier href="tracing.notation#_U-SDoIKfEd-xPu-WdpUyIQ"/>
+ </availablePage>
+ <availablePage xmi:id="_m5icI-xGEd-2rr_yAeKkjQ">
+ <emfPageIdentifier href="tracing.notation#_o5H2cJagEd-kUIqFByffIQ"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="tracing.notation#_WYtQ8KbsEeCMd5eKvetORw"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="tracing.notation#_cL_W0PUPEeCn1-FCrfecFg"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="tracing.notation#_noMIQPxWEeGOK9t90vpALA"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="tracing.notation#_PCJVYCmiEeKp-eCvZDLsaw"/>
+ </availablePage>
+ </pageList>
+ <sashModel xmi:id="_m5icJOxGEd-2rr_yAeKkjQ" currentSelection="_m5jDMOxGEd-2rr_yAeKkjQ">
+ <windows xmi:id="_m5icJexGEd-2rr_yAeKkjQ">
+ <children xsi:type="di:TabFolder" xmi:id="_m5jDMOxGEd-2rr_yAeKkjQ">
+ <children xmi:id="_m5jDMexGEd-2rr_yAeKkjQ">
+ <emfPageIdentifier href="tracing.notation#_U-SDoIKfEd-xPu-WdpUyIQ"/>
+ </children>
+ <children xmi:id="_m5jDMuxGEd-2rr_yAeKkjQ">
+ <emfPageIdentifier href="tracing.notation#_o5H2cJagEd-kUIqFByffIQ"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="tracing.notation#_WYtQ8KbsEeCMd5eKvetORw"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="tracing.notation#_cL_W0PUPEeCn1-FCrfecFg"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="tracing.notation#_noMIQPxWEeGOK9t90vpALA"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="tracing.notation#_PCJVYCmiEeKp-eCvZDLsaw"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+ </di:SashWindowsMngr>
+ <history:ControledResource xmi:id="_m5jDM-xGEd-2rr_yAeKkjQ"/>
+ <history:ControledResource xmi:id="_m5jDNOxGEd-2rr_yAeKkjQ"/>
+ <history:ControledResource xmi:id="_m5jDNexGEd-2rr_yAeKkjQ"/>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/library/tracing.notation b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/library/tracing.notation
new file mode 100644
index 00000000000..f71f3401d51
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/library/tracing.notation
@@ -0,0 +1,1684 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:C_Cpp="http://www.eclipse.org/papyrus/C_Cpp/1" xmlns:FCM="http://www.eclipse.org/papyrus/FCM/1" xmlns:css="http://www.eclipse.org/papyrus/infra/gmfdiag/css" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_U-SDoIKfEd-xPu-WdpUyIQ" type="CompositeStructure" name="OTF composition" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_jKzMsIKfEd-xPu-WdpUyIQ" type="2073" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jKzzwIKfEd-xPu-WdpUyIQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jKzzwYKfEd-xPu-WdpUyIQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jKzzwoKfEd-xPu-WdpUyIQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jK0a0IKfEd-xPu-WdpUyIQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jK0a0YKfEd-xPu-WdpUyIQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jK0a0oKfEd-xPu-WdpUyIQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jK0a04KfEd-xPu-WdpUyIQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jK0a1IKfEd-xPu-WdpUyIQ" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_rV9bULniEeCxXoyQxQ47PQ" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rV-CYLniEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rV-pcLniEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rV-pcbniEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rV-pcrniEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rV-pc7niEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rV-pdLniEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_rV-pdbniEeCxXoyQxQ47PQ" type="5126"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_rV-pdrniEeCxXoyQxQ47PQ" type="7077">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rV-pd7niEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5cx7EFKtEeOIeMrdF0AdCg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5cx7EVKtEeOIeMrdF0AdCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5cx7ElKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7JMMsguZEeWXe7AeBUbqvw" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7JMMswuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="tracing.uml#_plSuEF23Ed-12d_h0i1xhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rV9bUbniEeCxXoyQxQ47PQ" x="26" y="5" width="164"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jK0a1YKfEd-xPu-WdpUyIQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5cjRkFKtEeOIeMrdF0AdCg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5cjRkVKtEeOIeMrdF0AdCg" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="tracing.uml#_ZWEQwDj0Ed-nsvkE2JvSTg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5cjRklKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5cjRk1KtEeOIeMrdF0AdCg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5cjRlFKtEeOIeMrdF0AdCg" showTitle="true"/>
+ <element xmi:type="FCM:UseInstanceConfigurator" href="tracing.uml#_plb90KbnEeC0_qP7CUZIiQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5cjRlVKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5cj4oFKtEeOIeMrdF0AdCg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5cj4oVKtEeOIeMrdF0AdCg" showTitle="true"/>
+ <element xmi:type="FCM:InteractionComponent" href="tracing.uml#_7J88sG6FEeGqWMX2LwdLDw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5cj4olKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5cnjAFKtEeOIeMrdF0AdCg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5cnjAVKtEeOIeMrdF0AdCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5cnjAlKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7JMMsAuZEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7JMMsQuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7NYwMAuZEeWXe7AeBUbqvw" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_7NYwMQuZEeWXe7AeBUbqvw" name="stereotype" stringValue="C_Cpp::Include"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_RwTdQByJEduN1bTiWJ0lyw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7NYwMguZEeWXe7AeBUbqvw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7NmLkAuZEeWXe7AeBUbqvw" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_7NmLkQuZEeWXe7AeBUbqvw" name="stereotype" stringValue="FCM::InteractionComponent"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_Z1W68MtlEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7NmLkguZEeWXe7AeBUbqvw"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_aF1w4DKeEd-WprEKTCaiMA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jKzMsYKfEd-xPu-WdpUyIQ" x="126" y="126" width="289" height="109"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__tMDsPZREd-o7NjgdW2_VA" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__tXC0PZREd-o7NjgdW2_VA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__tXC0fZREd-o7NjgdW2_VA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__tXC0vZREd-o7NjgdW2_VA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__tXp4PZREd-o7NjgdW2_VA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__tXp4fZREd-o7NjgdW2_VA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__tXp4vZREd-o7NjgdW2_VA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="__tXp4_ZREd-o7NjgdW2_VA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__tXp5PZREd-o7NjgdW2_VA" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__tXp5fZREd-o7NjgdW2_VA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_UfVIkCVHEeCPS8GFKAaKxw" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UfVvoCVHEeCPS8GFKAaKxw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UfWWsCVHEeCPS8GFKAaKxw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UfWWsSVHEeCPS8GFKAaKxw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UfWWsiVHEeCPS8GFKAaKxw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UfWWsyVHEeCPS8GFKAaKxw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UfWWtCVHEeCPS8GFKAaKxw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UfWWtSVHEeCPS8GFKAaKxw" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UfWWtiVHEeCPS8GFKAaKxw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UfW9wCVHEeCPS8GFKAaKxw" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UfW9wSVHEeCPS8GFKAaKxw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UfVIkSVHEeCPS8GFKAaKxw" x="-10" y="54"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5czwQFKtEeOIeMrdF0AdCg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5czwQVKtEeOIeMrdF0AdCg" showTitle="true"/>
+ <element xmi:type="FCM:Singleton" href="tracing.uml#_AdBwIDgvEd-9wq2wHPy3lw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5czwQlKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5c0XUFKtEeOIeMrdF0AdCg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5c0XUVKtEeOIeMrdF0AdCg" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="tracing.uml#_mk_ccD5sEeC-VMxjm_qUAg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5c0XUlKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5c0XU1KtEeOIeMrdF0AdCg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5c0XVFKtEeOIeMrdF0AdCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5c0XVVKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7JMMtAuZEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7JMMtQuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7N67sAuZEeWXe7AeBUbqvw" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_7N67sQuZEeWXe7AeBUbqvw" name="stereotype" stringValue="FCM::Singleton"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_zjaC8MtkEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7N67sguZEeWXe7AeBUbqvw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7ODekAuZEeWXe7AeBUbqvw" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_7ODekQuZEeWXe7AeBUbqvw" name="stereotype" stringValue="C_Cpp::Include"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_RwTdQByJEduN1bTiWJ0lyw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7ODekguZEeWXe7AeBUbqvw"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_apuYoDNwEd-1k-POY2IaLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__tMDsfZREd-o7NjgdW2_VA" x="540" y="126" width="199" height="91"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SrfzcCVHEeCPS8GFKAaKxw" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SrhBkCVHEeCPS8GFKAaKxw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SrhBkSVHEeCPS8GFKAaKxw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SrhBkiVHEeCPS8GFKAaKxw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SrhBkyVHEeCPS8GFKAaKxw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SrhBlCVHEeCPS8GFKAaKxw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SrhBlSVHEeCPS8GFKAaKxw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SrhBliVHEeCPS8GFKAaKxw" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SrhBlyVHEeCPS8GFKAaKxw" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SrhBmCVHEeCPS8GFKAaKxw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5c2MgFKtEeOIeMrdF0AdCg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5c2MgVKtEeOIeMrdF0AdCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5c2MglKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7JMMtguZEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7JMMtwuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SrfzcSVHEeCPS8GFKAaKxw" x="540" y="27" width="199"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ap2xEKAdEeCF0uoVQbVQRg" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ap4mQKAdEeCF0uoVQbVQRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ap4mQaAdEeCF0uoVQbVQRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ap5NUKAdEeCF0uoVQbVQRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ap5NUaAdEeCF0uoVQbVQRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ap5NUqAdEeCF0uoVQbVQRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ap5NU6AdEeCF0uoVQbVQRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ap5NVKAdEeCF0uoVQbVQRg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ap50YKAdEeCF0uoVQbVQRg" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ap50YaAdEeCF0uoVQbVQRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5c4owFKtEeOIeMrdF0AdCg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5c4owVKtEeOIeMrdF0AdCg" showTitle="true"/>
+ <element xmi:type="FCM:UseInstanceConfigurator" href="tracing.uml#_MmzO0KboEeC0_qP7CUZIiQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5c4owlKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5c4ow1KtEeOIeMrdF0AdCg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5c4oxFKtEeOIeMrdF0AdCg" showTitle="true"/>
+ <element xmi:type="FCM:InteractionComponent" href="tracing.uml#_-t6LoG6FEeGqWMX2LwdLDw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5c4oxVKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5c5P0FKtEeOIeMrdF0AdCg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5c5P0VKtEeOIeMrdF0AdCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5c5P0lKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7JMzwAuZEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7JMzwQuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7O_5wguZEeWXe7AeBUbqvw" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_7O_5wwuZEeWXe7AeBUbqvw" name="stereotype" stringValue="FCM::InteractionComponent"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_Z1W68MtlEd2H_o0jIC6qDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7O_5xAuZEeWXe7AeBUbqvw"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_aoSDwKAdEeCF0uoVQbVQRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ap2xEaAdEeCF0uoVQbVQRg" x="126" y="288" width="289" height="91"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_YUql4KAeEeCF0uoVQbVQRg" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YUrM8KAeEeCF0uoVQbVQRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YUrM8aAeEeCF0uoVQbVQRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YUr0AKAeEeCF0uoVQbVQRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YUr0AaAeEeCF0uoVQbVQRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YUr0AqAeEeCF0uoVQbVQRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YUr0A6AeEeCF0uoVQbVQRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YUr0BKAeEeCF0uoVQbVQRg" type="5192"/>
+ <element xmi:type="uml:Comment" href="tracing.uml#_YUcjcKAeEeCF0uoVQbVQRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YUql4aAeEeCF0uoVQbVQRg" x="486" y="333" width="253"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_bctDoLniEeCxXoyQxQ47PQ" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bctDorniEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bctDo7niEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bctqsLniEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bctqsbniEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bctqsrniEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bctqs7niEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bctqtLniEeCxXoyQxQ47PQ" type="5192"/>
+ <element xmi:type="uml:Comment" href="tracing.uml#_bb4kQLniEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bctDobniEeCxXoyQxQ47PQ" x="486" y="252" width="253"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Sf0aQDaUEeKkY-29HX5sMQ" type="2073" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Sf4rsDaUEeKkY-29HX5sMQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Sf5SwDaUEeKkY-29HX5sMQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Sf5SwTaUEeKkY-29HX5sMQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Sf550DaUEeKkY-29HX5sMQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Sf550TaUEeKkY-29HX5sMQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Sf550jaUEeKkY-29HX5sMQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Sf6g4DaUEeKkY-29HX5sMQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Sf6g4TaUEeKkY-29HX5sMQ" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Sf6g4jaUEeKkY-29HX5sMQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Sf6g4zaUEeKkY-29HX5sMQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5c7sEFKtEeOIeMrdF0AdCg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5c7sEVKtEeOIeMrdF0AdCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5c7sElKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7JMzwguZEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7JMzwwuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_MM6RwDaUEeKkY-29HX5sMQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Sf0aQTaUEeKkY-29HX5sMQ" x="126" y="18" width="288" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7NtgUAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7NtgUQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7NtgUwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="tracing.uml#_aF1w4DKeEd-WprEKTCaiMA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7NtgUguZEeWXe7AeBUbqvw" x="326" y="126"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7OSvIAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7OSvIQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7OSvIwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="tracing.uml#_apuYoDNwEd-1k-POY2IaLg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7OSvIguZEeWXe7AeBUbqvw" x="740" y="126"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7OrJoAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7OrJoQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7OrJowuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7OrJoguZEeWXe7AeBUbqvw" x="190" y="54"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7PKR0AuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7PKR0QuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7PKR0wuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="tracing.uml#_aoSDwKAdEeCF0uoVQbVQRg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7PKR0guZEeWXe7AeBUbqvw" x="326" y="288"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_U-SDoYKfEd-xPu-WdpUyIQ"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_7JMzxAuZEeWXe7AeBUbqvw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="tracing.uml#_1rsK8PwkEeGWn-a9PUOYcA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_Tbu9kCVHEeCPS8GFKAaKxw" type="4015" source="__tMDsPZREd-o7NjgdW2_VA" target="_SrfzcCVHEeCPS8GFKAaKxw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_TbvkoCVHEeCPS8GFKAaKxw" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TbwLsCVHEeCPS8GFKAaKxw" x="-9" y="-55"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Tbu9kSVHEeCPS8GFKAaKxw" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="tracing.uml#_9zJj0DguEd-9wq2wHPy3lw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Tbu9kiVHEeCPS8GFKAaKxw" points="[-63, 22, 168, -57]$[-200, 68, 31, -11]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_nSj-AKAdEeCF0uoVQbVQRg" type="4015" source="_ap2xEKAdEeCF0uoVQbVQRg" target="_jKzMsIKfEd-xPu-WdpUyIQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_nSlzMKAdEeCF0uoVQbVQRg" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nSlzMaAdEeCF0uoVQbVQRg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_nSj-AaAdEeCF0uoVQbVQRg" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="tracing.uml#_nQ6YMKAdEeCF0uoVQbVQRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nSj-AqAdEeCF0uoVQbVQRg" points="[1, -9, 0, 71]$[3, -65, 2, 15]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nTTk4KAdEeCF0uoVQbVQRg" id="(0.5,0.10588235294117647)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nTWBIKAdEeCF0uoVQbVQRg" id="(0.5017301038062284,0.981651376146789)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_SC9GALniEeCxXoyQxQ47PQ" type="4002" source="_YUql4KAeEeCF0uoVQbVQRg" target="_ap2xEKAdEeCF0uoVQbVQRg" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_SC9GAbniEeCxXoyQxQ47PQ" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SC9GArniEeCxXoyQxQ47PQ" points="[-43, -14, 37, 11]$[-70, -17, 10, 8]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SDQoALniEeCxXoyQxQ47PQ" id="(0.0,0.5666666666666667)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SDQoAbniEeCxXoyQxQ47PQ" id="(0.8728813559322034,0.9058823529411765)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_KOsDALnjEeCxXoyQxQ47PQ" type="4002" source="_bctDoLniEeCxXoyQxQ47PQ" target="_jKzMsIKfEd-xPu-WdpUyIQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_KOsDAbnjEeCxXoyQxQ47PQ" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KOsDArnjEeCxXoyQxQ47PQ" points="[-18, -15, 83, 67]$[-71, -78, 30, 4]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KO9IwLnjEeCxXoyQxQ47PQ" id="(0.07003891050583658,0.45)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KO9v0LnjEeCxXoyQxQ47PQ" id="(0.9,0.6513761467889908)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_We5e8DaUEeKkY-29HX5sMQ" type="4015" source="_jKzMsIKfEd-xPu-WdpUyIQ" target="_Sf0aQDaUEeKkY-29HX5sMQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_We77MDaUEeKkY-29HX5sMQ" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_We77MTaUEeKkY-29HX5sMQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_We5e8TaUEeKkY-29HX5sMQ" fontName="Sans Serif"/>
+ <element xmi:type="uml:Generalization" href="tracing.uml#_WdRuUDaUEeKkY-29HX5sMQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_We5e8jaUEeKkY-29HX5sMQ" points="[-1, -11, 0, 49]$[-1, -46, 0, 14]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WfoewDaUEeKkY-29HX5sMQ" id="(0.5017301038062284,0.10091743119266056)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WfoewTaUEeKkY-29HX5sMQ" id="(0.5,0.8082191780821918)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7NtgVAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_jKzMsIKfEd-xPu-WdpUyIQ" target="_7NtgUAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_7NtgVQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7NtgWQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="tracing.uml#_aF1w4DKeEd-WprEKTCaiMA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7NtgVguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7NtgVwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7NtgWAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7OSvJAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="__tMDsPZREd-o7NjgdW2_VA" target="_7OSvIAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_7OSvJQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7OSvKQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="tracing.uml#_apuYoDNwEd-1k-POY2IaLg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7OSvJguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7OSvJwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7OSvKAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7OrJpAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_UfVIkCVHEeCPS8GFKAaKxw" target="_7OrJoAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_7OrJpQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7OrJqQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7OrJpguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7OrJpwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7OrJqAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7PKR1AuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_ap2xEKAdEeCF0uoVQbVQRg" target="_7PKR0AuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_7PK44AuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7PK45AuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="tracing.uml#_aoSDwKAdEeCF0uoVQbVQRg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7PK44QuZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7PK44guZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7PK44wuZEeWXe7AeBUbqvw"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_o5H2cJagEd-kUIqFByffIQ" type="PapyrusUMLClassDiagram" name="ExternTypes" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_s6A5AJagEd-kUIqFByffIQ" type="2007" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s6BgEJagEd-kUIqFByffIQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_s6BgEZagEd-kUIqFByffIQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s6BgEpagEd-kUIqFByffIQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_s6BgE5agEd-kUIqFByffIQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s6BgFJagEd-kUIqFByffIQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_s6BgFZagEd-kUIqFByffIQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_s6BgFpagEd-kUIqFByffIQ" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_s6BgF5agEd-kUIqFByffIQ" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_sXxuoJagEd-kUIqFByffIQ" type="2008" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sXy8wJagEd-kUIqFByffIQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sXy8wZagEd-kUIqFByffIQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sXy8wpagEd-kUIqFByffIQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sXy8w5agEd-kUIqFByffIQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sXzj0JagEd-kUIqFByffIQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sXzj0ZagEd-kUIqFByffIQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_sXzj0pagEd-kUIqFByffIQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_sXzj05agEd-kUIqFByffIQ" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_sXzj1JagEd-kUIqFByffIQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_sXzj1ZagEd-kUIqFByffIQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sXzj1pagEd-kUIqFByffIQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_sXzj15agEd-kUIqFByffIQ" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_sXzj2JagEd-kUIqFByffIQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_sXzj2ZagEd-kUIqFByffIQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sXzj2pagEd-kUIqFByffIQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_sXzj25agEd-kUIqFByffIQ" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_sXzj3JagEd-kUIqFByffIQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_sXzj3ZagEd-kUIqFByffIQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sXzj3pagEd-kUIqFByffIQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5gA1QFKtEeOIeMrdF0AdCg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5gA1QVKtEeOIeMrdF0AdCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5gA1QlKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7PjTYAuZEeWXe7AeBUbqvw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7PjTYQuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_W0t44Dj1Ed-nsvkE2JvSTg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sXxuoZagEd-kUIqFByffIQ" x="40" y="32"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_s6BgGJagEd-kUIqFByffIQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5f_nIFKtEeOIeMrdF0AdCg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5f_nIVKtEeOIeMrdF0AdCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5f_nIlKtEeOIeMrdF0AdCg"/>
+ </children>
+ <element xmi:type="uml:Package" href="tracing.uml#_IewAUDguEd-9wq2wHPy3lw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_s6A5AZagEd-kUIqFByffIQ" x="105" y="135" width="316" height="196"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_o5H2cZagEd-kUIqFByffIQ"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_7PjTYguZEeWXe7AeBUbqvw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="tracing.uml#_IewAUDguEd-9wq2wHPy3lw"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_WYtQ8KbsEeCMd5eKvetORw" type="PapyrusUMLClassDiagram" name="Tracing" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_HtaQcKcIEeCHb6NpAmqEdg" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HtbekKcIEeCHb6NpAmqEdg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HtbekacIEeCHb6NpAmqEdg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HtbekqcIEeCHb6NpAmqEdg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Htbek6cIEeCHb6NpAmqEdg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HtbelKcIEeCHb6NpAmqEdg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HtbelacIEeCHb6NpAmqEdg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_HtbelqcIEeCHb6NpAmqEdg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_HtcFoKcIEeCHb6NpAmqEdg" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_3B-kQBatEeGq1uSGvh4rcQ" type="3012" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Property" href="tracing.uml#_aF1w5TKeEd-WprEKTCaiMA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3B-kQRatEeGq1uSGvh4rcQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3B_LUBatEeGq1uSGvh4rcQ" type="3012" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Property" href="tracing.uml#_plSuEF23Ed-12d_h0i1xhQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3B_LURatEeGq1uSGvh4rcQ"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_HtcFoacIEeCHb6NpAmqEdg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_HtcFoqcIEeCHb6NpAmqEdg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HtcFo6cIEeCHb6NpAmqEdg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_HtcFpKcIEeCHb6NpAmqEdg" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_3B8IABatEeGq1uSGvh4rcQ" type="3013" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="tracing.uml#_aF1w7zKeEd-WprEKTCaiMA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3B8IARatEeGq1uSGvh4rcQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3B99MBatEeGq1uSGvh4rcQ" type="3013" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="tracing.uml#_aF1w8TKeEd-WprEKTCaiMA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3B99MRatEeGq1uSGvh4rcQ"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_HtcFpacIEeCHb6NpAmqEdg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_HtcFpqcIEeCHb6NpAmqEdg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HtcFp6cIEeCHb6NpAmqEdg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_HtcFqKcIEeCHb6NpAmqEdg" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_HtcFqacIEeCHb6NpAmqEdg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_HtcFqqcIEeCHb6NpAmqEdg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HtcFq6cIEeCHb6NpAmqEdg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5kEO0FKtEeOIeMrdF0AdCg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5kEO0VKtEeOIeMrdF0AdCg" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="tracing.uml#_ZWEQwDj0Ed-nsvkE2JvSTg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kEO0lKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5kE14FKtEeOIeMrdF0AdCg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5kE14VKtEeOIeMrdF0AdCg" showTitle="true"/>
+ <element xmi:type="FCM:UseInstanceConfigurator" href="tracing.uml#_plb90KbnEeC0_qP7CUZIiQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kE14lKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5kE141KtEeOIeMrdF0AdCg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5kE15FKtEeOIeMrdF0AdCg" showTitle="true"/>
+ <element xmi:type="FCM:InteractionComponent" href="tracing.uml#_7J88sG6FEeGqWMX2LwdLDw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kE15VKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5kGEAFKtEeOIeMrdF0AdCg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5kGEAVKtEeOIeMrdF0AdCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kGEAlKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7QtJ8AuZEeWXe7AeBUbqvw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7QtJ8QuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_aF1w4DKeEd-WprEKTCaiMA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HtaQcacIEeCHb6NpAmqEdg" x="77" y="36" width="248" height="118"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_xQ_EwLnhEeCxXoyQxQ47PQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xQ_r0LnhEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xQ_r0bnhEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xQ_r0rnhEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xQ_r07nhEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xQ_r1LnhEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xQ_r1bnhEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xQ_r1rnhEeCxXoyQxQ47PQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_xQ_r17nhEeCxXoyQxQ47PQ" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_xQ_r2LnhEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_xQ_r2bnhEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xQ_r2rnhEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_xQ_r27nhEeCxXoyQxQ47PQ" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_xQ_r3LnhEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_xQ_r3bnhEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xQ_r3rnhEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_xRAS4LnhEeCxXoyQxQ47PQ" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_xRAS4bnhEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_xRAS4rnhEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xRAS47nhEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5kKVcFKtEeOIeMrdF0AdCg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5kKVcVKtEeOIeMrdF0AdCg" showTitle="true"/>
+ <element xmi:type="FCM:Singleton" href="tracing.uml#_AdBwIDgvEd-9wq2wHPy3lw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kKVclKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5kKVc1KtEeOIeMrdF0AdCg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5kKVdFKtEeOIeMrdF0AdCg" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="tracing.uml#_mk_ccD5sEeC-VMxjm_qUAg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kKVdVKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5kK8gFKtEeOIeMrdF0AdCg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5kK8gVKtEeOIeMrdF0AdCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kK8glKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7QtJ8guZEeWXe7AeBUbqvw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7QtJ8wuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_apuYoDNwEd-1k-POY2IaLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xQ_EwbnhEeCxXoyQxQ47PQ" x="414" y="180"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_yDfDQLniEeCxXoyQxQ47PQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yDfqULniEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yDfqUbniEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yDfqUrniEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yDfqU7niEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yDfqVLniEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yDfqVbniEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yDgRYLniEeCxXoyQxQ47PQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_yDgRYbniEeCxXoyQxQ47PQ" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_yDgRYrniEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_yDgRY7niEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yDgRZLniEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_yDgRZbniEeCxXoyQxQ47PQ" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_yDgRZrniEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_yDgRZ7niEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yDgRaLniEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_yDgRabniEeCxXoyQxQ47PQ" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_yDgRarniEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_yDgRa7niEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yDgRbLniEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5kWisFKtEeOIeMrdF0AdCg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5kWisVKtEeOIeMrdF0AdCg" showTitle="true"/>
+ <element xmi:type="FCM:InstanceConfigurator" href="tracing.uml#_nTMOYKbnEeC0_qP7CUZIiQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kWislKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5kXJwFKtEeOIeMrdF0AdCg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5kXJwVKtEeOIeMrdF0AdCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kXJwlKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7QtJ9AuZEeWXe7AeBUbqvw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7QtJ9QuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_kIcwsKbnEeC0_qP7CUZIiQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yDfDQbniEeCxXoyQxQ47PQ" x="72" y="216" width="253" height="63"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_zxrqcLniEeCxXoyQxQ47PQ" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zxsRgLniEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zxsRgbniEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zxs4kLniEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zxs4kbniEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zxs4krniEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zxs4k7niEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zxs4lLniEeCxXoyQxQ47PQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="tracing.uml#_hd5WkKPUEeClvI8FjeO1Ow"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zxrqcbniEeCxXoyQxQ47PQ" x="72" y="323" width="415"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_fn2loFLHEeOIeMrdF0AdCg" type="2008" fontName="" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fn3zwFLHEeOIeMrdF0AdCg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fn3zwVLHEeOIeMrdF0AdCg" key="ShadowFigure_Value" value="true"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fn3zwlLHEeOIeMrdF0AdCg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fn3zw1LHEeOIeMrdF0AdCg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fn3zxFLHEeOIeMrdF0AdCg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fn3zxVLHEeOIeMrdF0AdCg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fn3zxlLHEeOIeMrdF0AdCg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_fn3zx1LHEeOIeMrdF0AdCg" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_fn3zyFLHEeOIeMrdF0AdCg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_fn3zyVLHEeOIeMrdF0AdCg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_fn3zylLHEeOIeMrdF0AdCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fn3zy1LHEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_fn3zzFLHEeOIeMrdF0AdCg" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_fn3zzVLHEeOIeMrdF0AdCg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_fn3zzlLHEeOIeMrdF0AdCg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_fn3zz1LHEeOIeMrdF0AdCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fn3z0FLHEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_fn4a0FLHEeOIeMrdF0AdCg" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_fn4a0VLHEeOIeMrdF0AdCg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_fn4a0lLHEeOIeMrdF0AdCg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_fn4a01LHEeOIeMrdF0AdCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fn4a1FLHEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_foDZ8FLHEeOIeMrdF0AdCg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_foDZ8VLHEeOIeMrdF0AdCg" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="pathmap://QML_CORE/osal.uml#_UXASAE_gEdy2tpS719xBwQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_foDZ8lLHEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_foEBAFLHEeOIeMrdF0AdCg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_foEBAVLHEeOIeMrdF0AdCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_foEBAlLHEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7QtJ9guZEeWXe7AeBUbqvw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7QtJ9wuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://QML_CORE/osal.uml#_-HeCsDj_Edy0Rd6V_tf1-Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fn2loVLHEeOIeMrdF0AdCg" x="415" y="36" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7T7dEAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7T7dEQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7T7dEwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="tracing.uml#_aF1w4DKeEd-WprEKTCaiMA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7T7dEguZEeWXe7AeBUbqvw" x="277" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7USCYAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7USCYQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7USCYwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="tracing.uml#_apuYoDNwEd-1k-POY2IaLg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7USCYguZEeWXe7AeBUbqvw" x="614" y="180"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7UdokAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7UdokQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7UdokwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="tracing.uml#_kIcwsKbnEeC0_qP7CUZIiQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7UdokguZEeWXe7AeBUbqvw" x="272" y="216"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7UnZkAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7UnZkQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7UnZkwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://QML_CORE/osal.uml#_-HeCsDj_Edy0Rd6V_tf1-Q"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7UnZkguZEeWXe7AeBUbqvw" x="615" y="36"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_WYtQ8absEeCMd5eKvetORw"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_7QtJ-AuZEeWXe7AeBUbqvw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="tracing.uml#_g2IY8DKeEd-WprEKTCaiMA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_foL80FLHEeOIeMrdF0AdCg" type="4008" source="_xQ_EwLnhEeCxXoyQxQ47PQ" target="_fn2loFLHEeOIeMrdF0AdCg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_foMj4FLHEeOIeMrdF0AdCg" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_foMj4VLHEeOIeMrdF0AdCg" x="-16" y="119"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_foNK8FLHEeOIeMrdF0AdCg" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_foNK8VLHEeOIeMrdF0AdCg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_foL80VLHEeOIeMrdF0AdCg" fontName="Sans Serif"/>
+ <element xmi:type="uml:Usage" href="tracing.uml#_7uQr8D4OEeC-VMxjm_qUAg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_foL80lLHEeOIeMrdF0AdCg" points="[-50, -25, 414, 205]$[-464, -230, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7T7dFAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_HtaQcKcIEeCHb6NpAmqEdg" target="_7T7dEAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_7T7dFQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7T7dGQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="tracing.uml#_aF1w4DKeEd-WprEKTCaiMA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7T7dFguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7T7dFwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7T7dGAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7USCZAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_xQ_EwLnhEeCxXoyQxQ47PQ" target="_7USCYAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_7USCZQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7USCaQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="tracing.uml#_apuYoDNwEd-1k-POY2IaLg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7USCZguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7USCZwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7USCaAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7UdolAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_yDfDQLniEeCxXoyQxQ47PQ" target="_7UdokAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_7UdolQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7UdomQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="tracing.uml#_kIcwsKbnEeC0_qP7CUZIiQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7UdolguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7UdolwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7UdomAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7UnZlAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_fn2loFLHEeOIeMrdF0AdCg" target="_7UnZkAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_7UnZlQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7UnZmQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://QML_CORE/osal.uml#_-HeCsDj_Edy0Rd6V_tf1-Q"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7UnZlguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7UnZlwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7UnZmAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_cL_W0PUPEeCn1-FCrfecFg" type="CompositeStructure" name="ContainerRules" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_fLhDAPUPEeCn1-FCrfecFg" type="2073" fontName="" fontHeight="10" fillColor="8905185" gradient="16777215, 16777215, 1" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fLhqEPUPEeCn1-FCrfecFg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fLhqEfUPEeCn1-FCrfecFg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fLhqEvUPEeCn1-FCrfecFg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fLhqE_UPEeCn1-FCrfecFg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fLiRIPUPEeCn1-FCrfecFg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fLiRIfUPEeCn1-FCrfecFg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fLiRIvUPEeCn1-FCrfecFg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_fLiRI_UPEeCn1-FCrfecFg" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_lBRVcPUPEeCn1-FCrfecFg" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lBR8gPUPEeCn1-FCrfecFg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lBR8gfUPEeCn1-FCrfecFg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lBR8gvUPEeCn1-FCrfecFg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lBR8g_UPEeCn1-FCrfecFg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lBR8hPUPEeCn1-FCrfecFg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lBR8hfUPEeCn1-FCrfecFg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lBSjkPUPEeCn1-FCrfecFg" type="5126"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lBSjkfUPEeCn1-FCrfecFg" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lBSjkvUPEeCn1-FCrfecFg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lBSjk_UPEeCn1-FCrfecFg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5o65oFKtEeOIeMrdF0AdCg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5o65oVKtEeOIeMrdF0AdCg" showTitle="true"/>
+ <element xmi:type="FCM:InterceptionRule" href="tracing.uml#_RBO5IPUQEeCn1-FCrfecFg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5o65olKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5o7gsFKtEeOIeMrdF0AdCg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5o7gsVKtEeOIeMrdF0AdCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5o7gslKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7UxKkguZEeWXe7AeBUbqvw" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7UxKkwuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="tracing.uml#_lBO5MPUPEeCn1-FCrfecFg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lBRVcfUPEeCn1-FCrfecFg" x="31" y="10" width="190"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7W_YJAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7W_YJQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7W_YJwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Property" href="tracing.uml#_lBO5MPUPEeCn1-FCrfecFg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7W_YJguZEeWXe7AeBUbqvw" x="231" y="10"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_fLiRJPUPEeCn1-FCrfecFg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fLiRJfUPEeCn1-FCrfecFg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5o4dYFKtEeOIeMrdF0AdCg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5o4dYVKtEeOIeMrdF0AdCg" showTitle="true"/>
+ <element xmi:type="FCM:ContainerRule" href="tracing.uml#_ISo6gLdwEd-CtfrGQre34Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5o4dYlKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5o5EcFKtEeOIeMrdF0AdCg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5o5EcVKtEeOIeMrdF0AdCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5o5EclKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7UxKkAuZEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7UxKkQuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_GVZxwLdwEd-CtfrGQre34Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fLhDAfUPEeCn1-FCrfecFg" x="81" y="12" width="262" height="106"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gsUucPUPEeCn1-FCrfecFg" type="2073" fontName="" fontHeight="10" fillColor="8905185" gradient="16777215, 16777215, 1" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gsUucvUPEeCn1-FCrfecFg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gsUuc_UPEeCn1-FCrfecFg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gsUudPUPEeCn1-FCrfecFg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gsVVgPUPEeCn1-FCrfecFg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gsVVgfUPEeCn1-FCrfecFg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gsVVgvUPEeCn1-FCrfecFg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gsVVg_UPEeCn1-FCrfecFg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gsVVhPUPEeCn1-FCrfecFg" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_pm7R8PUPEeCn1-FCrfecFg" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pm75APUPEeCn1-FCrfecFg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pm8gEPUPEeCn1-FCrfecFg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pm8gEfUPEeCn1-FCrfecFg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pm8gEvUPEeCn1-FCrfecFg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pm8gE_UPEeCn1-FCrfecFg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pm8gFPUPEeCn1-FCrfecFg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_pm8gFfUPEeCn1-FCrfecFg" type="5126"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_pm8gFvUPEeCn1-FCrfecFg" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_pm8gF_UPEeCn1-FCrfecFg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pm8gGPUPEeCn1-FCrfecFg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5o_yIFKtEeOIeMrdF0AdCg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5o_yIVKtEeOIeMrdF0AdCg" showTitle="true"/>
+ <element xmi:type="FCM:InterceptionRule" href="tracing.uml#_TLg_YPUQEeCn1-FCrfecFg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5o_yIlKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5pAZMFKtEeOIeMrdF0AdCg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5pAZMVKtEeOIeMrdF0AdCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5pAZMlKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7UxKlguZEeWXe7AeBUbqvw" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7UxKlwuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="tracing.uml#_pm5cwPUPEeCn1-FCrfecFg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pm7R8fUPEeCn1-FCrfecFg" x="31" y="4" width="190"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7XSTEAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7XSTEQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7XSTEwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Property" href="tracing.uml#_pm5cwPUPEeCn1-FCrfecFg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7XSTEguZEeWXe7AeBUbqvw" x="231" y="4"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gsVVhfUPEeCn1-FCrfecFg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gsVVhvUPEeCn1-FCrfecFg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5o988FKtEeOIeMrdF0AdCg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5o988VKtEeOIeMrdF0AdCg" showTitle="true"/>
+ <element xmi:type="FCM:ContainerRule" href="tracing.uml#_6FqQoKAdEeCF0uoVQbVQRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5o988lKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5o9881KtEeOIeMrdF0AdCg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5o989FKtEeOIeMrdF0AdCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5o989VKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7UxKlAuZEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7UxKlQuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_wHuA0KAdEeCF0uoVQbVQRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gsUucfUPEeCn1-FCrfecFg" x="81" y="135" width="262" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_48My0PUPEeCn1-FCrfecFg" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_48NZ4PUPEeCn1-FCrfecFg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_48OA8PUPEeCn1-FCrfecFg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_48OA8fUPEeCn1-FCrfecFg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_48OA8vUPEeCn1-FCrfecFg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_48OA8_UPEeCn1-FCrfecFg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_48OA9PUPEeCn1-FCrfecFg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_48OA9fUPEeCn1-FCrfecFg" type="5192"/>
+ <element xmi:type="uml:Comment" href="tracing.uml#_aX6QECVIEeCPS8GFKAaKxw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_48My0fUPEeCn1-FCrfecFg" x="432" y="45" width="190" height="46"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_I2dzMPwkEeGWn-a9PUOYcA" type="2073" fontName="Sans Serif" fillColor="8905185" gradient="16777215, 16777215, 1" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I2gPcPwkEeGWn-a9PUOYcA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I2gPcfwkEeGWn-a9PUOYcA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I2gPcvwkEeGWn-a9PUOYcA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I2gPc_wkEeGWn-a9PUOYcA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I2gPdPwkEeGWn-a9PUOYcA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I2gPdfwkEeGWn-a9PUOYcA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_I2gPdvwkEeGWn-a9PUOYcA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_I2g2gPwkEeGWn-a9PUOYcA" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_d7RCsPwkEeGWn-a9PUOYcA" type="3070" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_d7RCsvwkEeGWn-a9PUOYcA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_d7RCs_wkEeGWn-a9PUOYcA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_d7RpwPwkEeGWn-a9PUOYcA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_d7RpwfwkEeGWn-a9PUOYcA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_d7RpwvwkEeGWn-a9PUOYcA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_d7Rpw_wkEeGWn-a9PUOYcA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_d7RpxPwkEeGWn-a9PUOYcA" type="5126"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_d7RpxfwkEeGWn-a9PUOYcA" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_d7RpxvwkEeGWn-a9PUOYcA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_d7Rpx_wkEeGWn-a9PUOYcA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5pGf0FKtEeOIeMrdF0AdCg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5pGf0VKtEeOIeMrdF0AdCg" showTitle="true"/>
+ <element xmi:type="FCM:InterceptionRule" href="tracing.uml#_m-L0sPwkEeGWn-a9PUOYcA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5pGf0lKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5pGf01KtEeOIeMrdF0AdCg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5pGf1FKtEeOIeMrdF0AdCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5pGf1VKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7UxKmguZEeWXe7AeBUbqvw" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7UxKmwuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="tracing.uml#_d7If0PwkEeGWn-a9PUOYcA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_d7RCsfwkEeGWn-a9PUOYcA" x="31" y="6" width="190" height="46"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7XtJ1AuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7XtJ1QuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7XtJ1wuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Property" href="tracing.uml#_d7If0PwkEeGWn-a9PUOYcA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7XtJ1guZEeWXe7AeBUbqvw" x="231" y="6"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_I2g2gfwkEeGWn-a9PUOYcA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I2g2gvwkEeGWn-a9PUOYcA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5pDcgFKtEeOIeMrdF0AdCg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5pDcgVKtEeOIeMrdF0AdCg" showTitle="true"/>
+ <element xmi:type="FCM:ContainerRule" href="tracing.uml#_RWQC8PwkEeGWn-a9PUOYcA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5pDcglKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5pDcg1KtEeOIeMrdF0AdCg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5pDchFKtEeOIeMrdF0AdCg" showTitle="true"/>
+ <element xmi:type="FCM:UseInstanceConfigurator" href="tracing.uml#_5FYwcC8CEeKwPrQVP28AQw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5pDchVKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5pEDkFKtEeOIeMrdF0AdCg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5pEDkVKtEeOIeMrdF0AdCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5pEDklKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7UxKmAuZEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7UxKmQuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_I2OioPwkEeGWn-a9PUOYcA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I2dzMfwkEeGWn-a9PUOYcA" x="81" y="252" width="262" height="109"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_z7rBMChKEeKFu939Pz1RFA" type="2109" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_z7zkEChKEeKFu939Pz1RFA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_z7zkEShKEeKFu939Pz1RFA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_z7zkEihKEeKFu939Pz1RFA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_z7zkEyhKEeKFu939Pz1RFA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_z7zkFChKEeKFu939Pz1RFA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_z70LIChKEeKFu939Pz1RFA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_z70LIShKEeKFu939Pz1RFA" type="5192"/>
+ <element xmi:type="uml:Comment" href="tracing.uml#_z43k0ChKEeKFu939Pz1RFA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z7rBMShKEeKFu939Pz1RFA" x="432" y="153" width="190" height="46"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_068F0ChKEeKFu939Pz1RFA" type="2109" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_069T8ChKEeKFu939Pz1RFA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_069T8ShKEeKFu939Pz1RFA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_069T8ihKEeKFu939Pz1RFA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_069T8yhKEeKFu939Pz1RFA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_069T9ChKEeKFu939Pz1RFA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_069T9ShKEeKFu939Pz1RFA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0697AChKEeKFu939Pz1RFA" type="5192"/>
+ <element xmi:type="uml:Comment" href="tracing.uml#_06dksChKEeKFu939Pz1RFA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_068F0ShKEeKFu939Pz1RFA" x="432" y="252" width="190" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_IhxYwCqLEeKGrchWittz_g" type="2073" fontName="Sans Serif" fillColor="8905185" gradient="16777215, 16777215, 1" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ih2RQCqLEeKGrchWittz_g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ih2RQSqLEeKGrchWittz_g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ih24UCqLEeKGrchWittz_g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ih24USqLEeKGrchWittz_g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ih24UiqLEeKGrchWittz_g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ih24UyqLEeKGrchWittz_g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Ih24VCqLEeKGrchWittz_g" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Ih3fYCqLEeKGrchWittz_g" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_AxC-IC8PEeKVAPO2lpiVnA" type="3070" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AxFaYC8PEeKVAPO2lpiVnA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AxFaYS8PEeKVAPO2lpiVnA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AxFaYi8PEeKVAPO2lpiVnA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AxGBcC8PEeKVAPO2lpiVnA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AxGBcS8PEeKVAPO2lpiVnA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AxGBci8PEeKVAPO2lpiVnA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AxGBcy8PEeKVAPO2lpiVnA" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GQ1AkC8PEeKVAPO2lpiVnA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GQ1AkS8PEeKVAPO2lpiVnA" key="CustomAppearance_MaskValue" value="60"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AxGBdC8PEeKVAPO2lpiVnA" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AxGBdS8PEeKVAPO2lpiVnA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AxGBdi8PEeKVAPO2lpiVnA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5pMmcFKtEeOIeMrdF0AdCg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5pMmcVKtEeOIeMrdF0AdCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5pMmclKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7UxKnguZEeWXe7AeBUbqvw" type="6054">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7UxKnwuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Property" href="tracing.uml#_Avfe8C8PEeKVAPO2lpiVnA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AxC-IS8PEeKVAPO2lpiVnA" x="22" y="15" width="165"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Ih3fYSqLEeKGrchWittz_g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ih3fYiqLEeKGrchWittz_g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5pJjIFKtEeOIeMrdF0AdCg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5pJjIVKtEeOIeMrdF0AdCg" showTitle="true"/>
+ <element xmi:type="FCM:ContainerRule" href="tracing.uml#_NtAukCqLEeKGrchWittz_g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5pJjIlKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5pKKMFKtEeOIeMrdF0AdCg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5pKKMVKtEeOIeMrdF0AdCg" showTitle="true"/>
+ <element xmi:type="FCM:UseInstanceConfigurator" href="tracing.uml#_gH1RQC8DEeKwPrQVP28AQw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5pKKMlKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5pKKM1KtEeOIeMrdF0AdCg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5pKKNFKtEeOIeMrdF0AdCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5pKKNVKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7UxKnAuZEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7UxKnQuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_If04ACqLEeKGrchWittz_g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ihx_0CqLEeKGrchWittz_g" x="81" y="378" width="262" height="109"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LtiEgDdMEeKDRPyuWXNFNA" type="2109" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ltlu4DdMEeKDRPyuWXNFNA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ltlu4TdMEeKDRPyuWXNFNA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ltlu4jdMEeKDRPyuWXNFNA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ltlu4zdMEeKDRPyuWXNFNA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LtmV8DdMEeKDRPyuWXNFNA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LtmV8TdMEeKDRPyuWXNFNA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LtmV8jdMEeKDRPyuWXNFNA" type="5192"/>
+ <element xmi:type="uml:Comment" href="tracing.uml#_LlPEIDdMEeKDRPyuWXNFNA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LtiEgTdMEeKDRPyuWXNFNA" x="432" y="405" width="199" height="28"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7W1nJAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7W1nJQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7W1nJwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="tracing.uml#_GVZxwLdwEd-CtfrGQre34Q"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7W1nJguZEeWXe7AeBUbqvw" x="281" y="12"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7XJJIAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7XJJIQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7XJJIwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="tracing.uml#_wHuA0KAdEeCF0uoVQbVQRg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7XJJIguZEeWXe7AeBUbqvw" x="281" y="135"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7XiKsAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7XiKsQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7XiKswuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="tracing.uml#_I2OioPwkEeGWn-a9PUOYcA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7XiKsguZEeWXe7AeBUbqvw" x="281" y="252"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7X9ogAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7X9ogQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7X9ogwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="tracing.uml#_If04ACqLEeKGrchWittz_g"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7X9ogguZEeWXe7AeBUbqvw" x="281" y="378"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_cL_W0fUPEeCn1-FCrfecFg"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_7UxKoAuZEeWXe7AeBUbqvw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="tracing.uml#_VzFlMLnhEeCxXoyQxQ47PQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_7Gcc0PUPEeCn1-FCrfecFg" type="4002" source="_48My0PUPEeCn1-FCrfecFg" target="_fLhDAPUPEeCn1-FCrfecFg" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_7Gcc0fUPEeCn1-FCrfecFg" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7Gcc0vUPEeCn1-FCrfecFg" points="[-6, 6, 106, 0]$[-95, 4, 17, -2]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7GdD4PUPEeCn1-FCrfecFg" id="(0.027649769585253458,0.3333333333333333)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7GdD4fUPEeCn1-FCrfecFg" id="(0.9341085271317829,0.4154929577464789)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_2gqGcChKEeKFu939Pz1RFA" type="4002" source="_z7rBMChKEeKFu939Pz1RFA" target="_gsUucPUPEeCn1-FCrfecFg" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_2gqGcShKEeKFu939Pz1RFA" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2gqGcihKEeKFu939Pz1RFA" points="[-14, -4, 113, 0]$[-116, -5, 11, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2hbigChKEeKFu939Pz1RFA" id="(0.14,0.5333333333333333)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2hcJkChKEeKFu939Pz1RFA" id="(0.9580152671755725,0.42201834862385323)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3Zi2QChKEeKFu939Pz1RFA" type="4002" source="_068F0ChKEeKFu939Pz1RFA" target="_I2dzMPwkEeGWn-a9PUOYcA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_3Zi2QShKEeKFu939Pz1RFA" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3Zi2QihKEeKFu939Pz1RFA" points="[-50, 7, 401, -59]$[-433, 41, 18, -25]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3aLvcChKEeKFu939Pz1RFA" id="(0.6717557251908397,0.14534883720930233)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_UW6VIDdMEeKDRPyuWXNFNA" type="4002" source="_LtiEgDdMEeKDRPyuWXNFNA" target="_IhxYwCqLEeKGrchWittz_g" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_UW6VITdMEeKDRPyuWXNFNA" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UW6VIjdMEeKDRPyuWXNFNA" points="[-4, 7, 105, 0]$[-93, 4, 16, -3]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UXAbwDdMEeKDRPyuWXNFNA" id="(0.020100502512562814,0.2708333333333333)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UXAbwTdMEeKDRPyuWXNFNA" id="(0.9389312977099237,0.3486238532110092)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7W1nKAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_fLhDAPUPEeCn1-FCrfecFg" target="_7W1nJAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_7W1nKQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7W2OMguZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="tracing.uml#_GVZxwLdwEd-CtfrGQre34Q"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7W1nKguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7W2OMAuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7W2OMQuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7W_YKAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_lBRVcPUPEeCn1-FCrfecFg" target="_7W_YJAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_7W_YKQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7W_YLQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Property" href="tracing.uml#_lBO5MPUPEeCn1-FCrfecFg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7W_YKguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7W_YKwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7W_YLAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7XJJJAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_gsUucPUPEeCn1-FCrfecFg" target="_7XJJIAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_7XJJJQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7XJJKQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="tracing.uml#_wHuA0KAdEeCF0uoVQbVQRg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7XJJJguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7XJJJwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7XJJKAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7XSTFAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_pm7R8PUPEeCn1-FCrfecFg" target="_7XSTEAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_7XSTFQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7XSTGQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Property" href="tracing.uml#_pm5cwPUPEeCn1-FCrfecFg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7XSTFguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7XSTFwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7XSTGAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7XiKtAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_I2dzMPwkEeGWn-a9PUOYcA" target="_7XiKsAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_7XiKtQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7XiKuQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="tracing.uml#_I2OioPwkEeGWn-a9PUOYcA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7XiKtguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7XiKtwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7XiKuAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7XtJ2AuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_d7RCsPwkEeGWn-a9PUOYcA" target="_7XtJ1AuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_7XtJ2QuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7XtJ3QuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Property" href="tracing.uml#_d7If0PwkEeGWn-a9PUOYcA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7XtJ2guZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7XtJ2wuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7XtJ3AuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7X9ohAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_IhxYwCqLEeKGrchWittz_g" target="_7X9ogAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_7X9ohQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7X9oiQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="tracing.uml#_If04ACqLEeKGrchWittz_g"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7X9ohguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7X9ohwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7X9oiAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_noMIQPxWEeGOK9t90vpALA" type="CompositeStructure" name="LTTng composition" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_okSkIPxWEeGOK9t90vpALA" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_okSkIfxWEeGOK9t90vpALA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_okSkIvxWEeGOK9t90vpALA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_okSkI_xWEeGOK9t90vpALA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_okSkJPxWEeGOK9t90vpALA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_okSkJfxWEeGOK9t90vpALA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_okSkJvxWEeGOK9t90vpALA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_okSkJ_xWEeGOK9t90vpALA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_okSkKPxWEeGOK9t90vpALA" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_okSkKfxWEeGOK9t90vpALA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5tOx4FKtEeOIeMrdF0AdCg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5tOx4VKtEeOIeMrdF0AdCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5tOx4lKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7YOHMAuZEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7YOHMQuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_okTLMPxWEeGOK9t90vpALA" x="550" y="34" width="199"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_px1VUPxWEeGOK9t90vpALA" type="2073" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_px3xkPxWEeGOK9t90vpALA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_px3xkfxWEeGOK9t90vpALA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_px3xkvxWEeGOK9t90vpALA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_px3xk_xWEeGOK9t90vpALA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_px4YoPxWEeGOK9t90vpALA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_px4YofxWEeGOK9t90vpALA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_px4YovxWEeGOK9t90vpALA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_px4Yo_xWEeGOK9t90vpALA" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_px4YpPxWEeGOK9t90vpALA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_px4YpfxWEeGOK9t90vpALA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_EFsToDY_EeKxVvAop17bHw" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_EFsToTY_EeKxVvAop17bHw" showTitle="true"/>
+ <element xmi:type="FCM:InteractionComponent" href="tracing.uml#__yL98PzhEeGe5LUTfvP5hQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EFsTojY_EeKxVvAop17bHw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_EFzoYDY_EeKxVvAop17bHw" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_EFzoYTY_EeKxVvAop17bHw" showTitle="true"/>
+ <element xmi:type="FCM:UseInstanceConfigurator" href="tracing.uml#_1yKFIC8CEeKwPrQVP28AQw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EFzoYjY_EeKxVvAop17bHw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0FsPkDaSEeKxVvAop17bHw" type="3069" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0Fs2oDaSEeKxVvAop17bHw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0Fs2oTaSEeKxVvAop17bHw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0Fs2ojaSEeKxVvAop17bHw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0Fs2ozaSEeKxVvAop17bHw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0Fs2pDaSEeKxVvAop17bHw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0FtdsDaSEeKxVvAop17bHw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0FtdsTaSEeKxVvAop17bHw" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0FtdsjaSEeKxVvAop17bHw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0FtdszaSEeKxVvAop17bHw" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0FtdtDaSEeKxVvAop17bHw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0FsPkTaSEeKxVvAop17bHw" x="-10" y="39"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0Fur0DaSEeKxVvAop17bHw" type="3069" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0FvS4DaSEeKxVvAop17bHw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0FvS4TaSEeKxVvAop17bHw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0Fv58DaSEeKxVvAop17bHw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0Fv58TaSEeKxVvAop17bHw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0Fv58jaSEeKxVvAop17bHw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0Fv58zaSEeKxVvAop17bHw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0Fv59DaSEeKxVvAop17bHw" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0Fv59TaSEeKxVvAop17bHw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0Fv59jaSEeKxVvAop17bHw" visible="false" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0Fv59zaSEeKxVvAop17bHw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0Fur0TaSEeKxVvAop17bHw" x="280" y="39"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5tQnEFKtEeOIeMrdF0AdCg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5tQnEVKtEeOIeMrdF0AdCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5tQnElKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7YOuQAuZEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7YOuQQuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7ams1AuZEeWXe7AeBUbqvw" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_7ams1QuZEeWXe7AeBUbqvw" name="stereotype" stringValue="FCM::UseInstanceConfigurator"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_beqmAEZ0EeCLCJBkU67iDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7ams1guZEeWXe7AeBUbqvw"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_pwl_MPxWEeGOK9t90vpALA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_px1VUfxWEeGOK9t90vpALA" x="136" y="159" width="290" height="67"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_rGaioPxWEeGOK9t90vpALA" type="2073" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rGaiovxWEeGOK9t90vpALA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rGaio_xWEeGOK9t90vpALA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rGaipPxWEeGOK9t90vpALA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rGbJsPxWEeGOK9t90vpALA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rGbJsfxWEeGOK9t90vpALA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rGbJsvxWEeGOK9t90vpALA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_rGbJs_xWEeGOK9t90vpALA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_rGbJtPxWEeGOK9t90vpALA" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_rGbJtfxWEeGOK9t90vpALA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rGbJtvxWEeGOK9t90vpALA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5tU4gFKtEeOIeMrdF0AdCg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5tU4gVKtEeOIeMrdF0AdCg" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="tracing.uml#__rP4oPxWEeGOK9t90vpALA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5tU4glKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5tU4g1KtEeOIeMrdF0AdCg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5tU4hFKtEeOIeMrdF0AdCg" showTitle="true"/>
+ <element xmi:type="FCM:Template" href="tracing.uml#_flfM8PzhEeGe5LUTfvP5hQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5tU4hVKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5tU4hlKtEeOIeMrdF0AdCg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5tU4h1KtEeOIeMrdF0AdCg" showTitle="true"/>
+ <element xmi:type="C_Cpp:ManualGeneration" href="tracing.uml#_KSTlgCdaEeKGdt7FoegMYA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5tU4iFKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5tVfkFKtEeOIeMrdF0AdCg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5tVfkVKtEeOIeMrdF0AdCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5tVfklKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7YOuQguZEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7YOuQwuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7caqsAuZEeWXe7AeBUbqvw" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_7caqsQuZEeWXe7AeBUbqvw" name="stereotype" stringValue="C_Cpp::Include"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_RwTdQByJEduN1bTiWJ0lyw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7caqsguZEeWXe7AeBUbqvw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7cgxVguZEeWXe7AeBUbqvw" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_7cgxVwuZEeWXe7AeBUbqvw" name="stereotype" stringValue="FCM::Template"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://FCM_PROFILES/FCM.profile.uml#_BOnDoFLpEd6rYflXebIz1g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7cgxWAuZEeWXe7AeBUbqvw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7cm38guZEeWXe7AeBUbqvw" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_7cm38wuZEeWXe7AeBUbqvw" name="stereotype" stringValue="C_Cpp::ManualGeneration"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_A3_lgCYNEeKe9vxHwEdBmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7cm39AuZEeWXe7AeBUbqvw"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_rGPjgPxWEeGOK9t90vpALA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rGaiofxWEeGOK9t90vpALA" x="135" y="342" width="298" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_r8kHgPxWEeGOK9t90vpALA" type="2109" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r8kukPxWEeGOK9t90vpALA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r8kukfxWEeGOK9t90vpALA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r8kukvxWEeGOK9t90vpALA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r8kuk_xWEeGOK9t90vpALA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r8kulPxWEeGOK9t90vpALA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r8kulfxWEeGOK9t90vpALA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_r8kulvxWEeGOK9t90vpALA" type="5192"/>
+ <element xmi:type="uml:Comment" href="tracing.uml#_r8PXYPxWEeGOK9t90vpALA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_r8kHgfxWEeGOK9t90vpALA" x="594" y="288" width="167"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tt4UIPxWEeGOK9t90vpALA" type="2109" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tt47MfxWEeGOK9t90vpALA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tt47MvxWEeGOK9t90vpALA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tt47M_xWEeGOK9t90vpALA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tt47NPxWEeGOK9t90vpALA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tt5iQPxWEeGOK9t90vpALA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tt5iQfxWEeGOK9t90vpALA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tt5iQvxWEeGOK9t90vpALA" type="5192"/>
+ <element xmi:type="uml:Comment" href="tracing.uml#_ttvxQPxWEeGOK9t90vpALA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tt47MPxWEeGOK9t90vpALA" x="595" y="360" width="166"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__O0wAPzSEeGKDvxFM1SZ_g" type="2073" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__O4aYPzSEeGKDvxFM1SZ_g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__O4aYfzSEeGKDvxFM1SZ_g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__O5BcPzSEeGKDvxFM1SZ_g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__O5BcfzSEeGKDvxFM1SZ_g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__O5BcvzSEeGKDvxFM1SZ_g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__O5Bc_zSEeGKDvxFM1SZ_g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="__O5ogPzSEeGKDvxFM1SZ_g" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__O5ogfzSEeGKDvxFM1SZ_g" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__O5ogvzSEeGKDvxFM1SZ_g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__O5og_zSEeGKDvxFM1SZ_g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5tX70FKtEeOIeMrdF0AdCg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5tX70VKtEeOIeMrdF0AdCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5tX70lKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7YOuRAuZEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7YOuRQuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_v-VBcPzSEeGKDvxFM1SZ_g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__O1XEPzSEeGKDvxFM1SZ_g" x="585" y="120" width="154" height="55"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7pVBUDHKEeKt1a2SZnJmwg" type="2073" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7pdkMDHKEeKt1a2SZnJmwg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7pdkMTHKEeKt1a2SZnJmwg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7peLQDHKEeKt1a2SZnJmwg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7peLQTHKEeKt1a2SZnJmwg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7peLQjHKEeKt1a2SZnJmwg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7peLQzHKEeKt1a2SZnJmwg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7peyUDHKEeKt1a2SZnJmwg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7peyUTHKEeKt1a2SZnJmwg" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7peyUjHKEeKt1a2SZnJmwg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7peyUzHKEeKt1a2SZnJmwg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5tZxAFKtEeOIeMrdF0AdCg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5tZxAVKtEeOIeMrdF0AdCg" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="tracing.uml#_gvf4IDHKEeKt1a2SZnJmwg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5tZxAlKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5tZxA1KtEeOIeMrdF0AdCg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5tZxBFKtEeOIeMrdF0AdCg" showTitle="true"/>
+ <element xmi:type="FCM:Template" href="tracing.uml#_gvnM4DHKEeKt1a2SZnJmwg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5tZxBVKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5tZxBlKtEeOIeMrdF0AdCg" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5tZxB1KtEeOIeMrdF0AdCg" showTitle="true"/>
+ <element xmi:type="C_Cpp:ManualGeneration" href="tracing.uml#_gvnz8DHKEeKt1a2SZnJmwg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5tZxCFKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5tZxCVKtEeOIeMrdF0AdCg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5taYEFKtEeOIeMrdF0AdCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5taYEVKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7YOuRguZEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7YOuRwuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_gveqADHKEeKt1a2SZnJmwg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7pVBUTHKEeKt1a2SZnJmwg" x="586" y="234" width="153" height="46"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ihO6UDaSEeKxVvAop17bHw" type="2073" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ihlfoDaSEeKxVvAop17bHw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ihlfoTaSEeKxVvAop17bHw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ihmGsDaSEeKxVvAop17bHw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ihmGsTaSEeKxVvAop17bHw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ihmGsjaSEeKxVvAop17bHw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ihmGszaSEeKxVvAop17bHw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ihmtwDaSEeKxVvAop17bHw" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ihmtwTaSEeKxVvAop17bHw" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ihmtwjaSEeKxVvAop17bHw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ihmtwzaSEeKxVvAop17bHw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5tepgFKtEeOIeMrdF0AdCg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5tepgVKtEeOIeMrdF0AdCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5tepglKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7YOuSguZEeWXe7AeBUbqvw" type="6089">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7YOuSwuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_dcP9gDaSEeKxVvAop17bHw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ihO6UTaSEeKxVvAop17bHw" x="135" y="72" width="289" height="55"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7auBkguZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7auBkwuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7auBlQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="tracing.uml#_pwl_MPxWEeGOK9t90vpALA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7auBlAuZEeWXe7AeBUbqvw" x="336" y="159"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7a-gQAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7a-gQQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7a-gQwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7a-gQguZEeWXe7AeBUbqvw" x="190" y="39"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7cT9AAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7cT9AQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7cT9AwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7cT9AguZEeWXe7AeBUbqvw" x="480" y="39"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7cwB4AuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7cwB4QuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7cwB4wuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="tracing.uml#_rGPjgPxWEeGOK9t90vpALA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7cwB4guZEeWXe7AeBUbqvw" x="335" y="342"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7dQYMAuZEeWXe7AeBUbqvw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7dQYMQuZEeWXe7AeBUbqvw" showTitle="true"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7dQYMwuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="tracing.uml#_gveqADHKEeKt1a2SZnJmwg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7dQYMguZEeWXe7AeBUbqvw" x="786" y="234"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_noMIQfxWEeGOK9t90vpALA"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_7YOuTAuZEeWXe7AeBUbqvw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:EObjectListValueStyle" xmi:id="_E0plYAuaEeWXe7AeBUbqvw" name="css_stylesheets">
+ <eObjectListValue xmi:type="css:EmbeddedStyleSheet" href="pathmap://QML_CORE/core.notation#_7gUz8Mc1EeSsAI2TZshUyg"/>
+ </styles>
+ <element xmi:type="uml:Package" href="tracing.uml#_5gDNYPwkEeGWn-a9PUOYcA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_1-ITEPxWEeGOK9t90vpALA" type="4015" source="_px1VUPxWEeGOK9t90vpALA" target="_ihO6UDaSEeKxVvAop17bHw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1-I6IPxWEeGOK9t90vpALA" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1-I6IfxWEeGOK9t90vpALA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_1-ITEfxWEeGOK9t90vpALA" fontName="Sans Serif"/>
+ <element xmi:type="uml:Generalization" href="tracing.uml#_1963sPxWEeGOK9t90vpALA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1-ITEvxWEeGOK9t90vpALA" points="[-8, -4, 0, 73]$[-8, -71, 0, 6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1-eRUPxWEeGOK9t90vpALA" id="(0.5344827586206896,0.05970149253731343)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1-eRUfxWEeGOK9t90vpALA" id="(0.5086505190311419,0.9090909090909091)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_BWUoAPzTEeGKDvxFM1SZ_g" type="4008" source="_px1VUPxWEeGOK9t90vpALA" target="__O0wAPzSEeGKDvxFM1SZ_g" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_BWV2IPzTEeGKDvxFM1SZ_g" visible="false" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BWV2IfzTEeGKDvxFM1SZ_g" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BWV2IvzTEeGKDvxFM1SZ_g" visible="false" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BWV2I_zTEeGKDvxFM1SZ_g" x="6" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_BWUoAfzTEeGKDvxFM1SZ_g" fontName="Sans Serif"/>
+ <element xmi:type="uml:Usage" href="tracing.uml#_BV2G4PzTEeGKDvxFM1SZ_g"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BWUoAvzTEeGKDvxFM1SZ_g" points="[0, 28, -159, 68]$[74, 28, -85, 68]$[74, -40, -85, 0]$[159, -40, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BW4BoPzTEeGKDvxFM1SZ_g" id="(1.0,0.19402985074626866)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_EUGAsPzTEeGKDvxFM1SZ_g" id="(0.0,0.21818181818181817)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_e9huEBMnEeK_iPOWsxJHwg" type="4002" source="_tt4UIPxWEeGOK9t90vpALA" target="_rGaioPxWEeGOK9t90vpALA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_e9huERMnEeK_iPOWsxJHwg" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_e9huEhMnEeK_iPOWsxJHwg" points="[-9, -1, 176, 13]$[-171, -12, 14, 2]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_e-jBwBMnEeK_iPOWsxJHwg" id="(0.0,0.37254901960784315)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_e-jBwRMnEeK_iPOWsxJHwg" id="(1.0,0.56)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_-uRtcBMoEeK_iPOWsxJHwg" type="4002" source="_r8kHgPxWEeGOK9t90vpALA" target="_px1VUPxWEeGOK9t90vpALA" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_-uRtcRMoEeK_iPOWsxJHwg" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-uRtchMoEeK_iPOWsxJHwg" points="[-22, -6, 225, 78]$[-121, -6, 126, 78]$[-236, -77, 11, 7]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-umdkBMoEeK_iPOWsxJHwg" id="(0.22,0.25)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-umdkRMoEeK_iPOWsxJHwg" id="(0.803448275862069,0.8955223880597015)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9zmggDHKEeKt1a2SZnJmwg" type="4010" source="_px1VUPxWEeGOK9t90vpALA" target="_7pVBUDHKEeKt1a2SZnJmwg" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_9zoVsDHKEeKt1a2SZnJmwg" visible="false" type="6009">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9zoVsTHKEeKt1a2SZnJmwg" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9zoVsjHKEeKt1a2SZnJmwg" visible="false" type="6023">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9zoVszHKEeKt1a2SZnJmwg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_9zmggTHKEeKt1a2SZnJmwg" fontName="Sans Serif"/>
+ <element xmi:type="uml:Dependency" href="tracing.uml#_9ygUUDHKEeKt1a2SZnJmwg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9zmggjHKEeKt1a2SZnJmwg" points="[4, 18, -164, -58]$[78, 18, -90, -58]$[78, 78, -90, 2]$[164, 78, -4, 2]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_90MWYDHKEeKt1a2SZnJmwg" id="(0.9862068965517241,0.34328358208955223)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ApPQ4DHLEeKt1a2SZnJmwg" id="(0.026143790849673203,0.5217391304347826)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7auBlguZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_px1VUPxWEeGOK9t90vpALA" target="_7auBkguZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_7auBlwuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7auooguZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="tracing.uml#_pwl_MPxWEeGOK9t90vpALA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7auBmAuZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7auooAuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7auooQuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7a-gRAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_0FsPkDaSEeKxVvAop17bHw" target="_7a-gQAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_7a-gRQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7a-gSQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7a-gRguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7a-gRwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7a-gSAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7cT9BAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_0Fur0DaSEeKxVvAop17bHw" target="_7cT9AAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_7cUkEAuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7cUkFAuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7cUkEQuZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7cUkEguZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7cUkEwuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7cwB5AuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_rGaioPxWEeGOK9t90vpALA" target="_7cwB4AuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_7cwB5QuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7cwB6QuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="tracing.uml#_rGPjgPxWEeGOK9t90vpALA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7cwB5guZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7cwB5wuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7cwB6AuZEeWXe7AeBUbqvw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7dQYNAuZEeWXe7AeBUbqvw" type="StereotypeCommentLink" source="_7pVBUDHKEeKt1a2SZnJmwg" target="_7dQYMAuZEeWXe7AeBUbqvw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_7dQYNQuZEeWXe7AeBUbqvw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7dQYOQuZEeWXe7AeBUbqvw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="tracing.uml#_gveqADHKEeKt1a2SZnJmwg"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7dQYNguZEeWXe7AeBUbqvw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7dQYNwuZEeWXe7AeBUbqvw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7dQYOAuZEeWXe7AeBUbqvw"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_PCJVYCmiEeKp-eCvZDLsaw" type="PapyrusUMLClassDiagram" name="LTTng fixed" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_P4dSUCmiEeKp-eCvZDLsaw" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_P4fukCmiEeKp-eCvZDLsaw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_P4gVoCmiEeKp-eCvZDLsaw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_P4gVoSmiEeKp-eCvZDLsaw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_P4gVoimiEeKp-eCvZDLsaw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_P4gVoymiEeKp-eCvZDLsaw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_P4gVpCmiEeKp-eCvZDLsaw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_P4gVpSmiEeKp-eCvZDLsaw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_P4g8sCmiEeKp-eCvZDLsaw" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_P4g8sSmiEeKp-eCvZDLsaw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_P4g8simiEeKp-eCvZDLsaw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_P4g8symiEeKp-eCvZDLsaw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_P4g8tCmiEeKp-eCvZDLsaw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_P4g8tSmiEeKp-eCvZDLsaw" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_UxxxsCmiEeKp-eCvZDLsaw" type="3013" fontName="Sans Serif" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_7fFkMAuZEeWXe7AeBUbqvw" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_7fFkMQuZEeWXe7AeBUbqvw" name="stereotype" stringValue="StandardProfile::Create"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/StandardL2.profile.uml#Create"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7fFkMguZEeWXe7AeBUbqvw"/>
+ </children>
+ <element xmi:type="uml:Operation" href="tracing.uml#_UvQpMCmiEeKp-eCvZDLsaw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UxxxsSmiEeKp-eCvZDLsaw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_VUiggCmiEeKp-eCvZDLsaw" type="3013" fontName="Sans Serif" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_7fHZYAuZEeWXe7AeBUbqvw" visible="false" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_7fHZYQuZEeWXe7AeBUbqvw" name="stereotype" stringValue="StandardProfile::Destroy"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/StandardL2.profile.uml#Destroy"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7fHZYguZEeWXe7AeBUbqvw"/>
+ </children>
+ <element xmi:type="uml:Operation" href="tracing.uml#_VUW6UCmiEeKp-eCvZDLsaw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VUiggSmiEeKp-eCvZDLsaw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_P4g8timiEeKp-eCvZDLsaw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_P4g8tymiEeKp-eCvZDLsaw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_P4g8uCmiEeKp-eCvZDLsaw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_P4g8uSmiEeKp-eCvZDLsaw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_P4g8uimiEeKp-eCvZDLsaw" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_P4g8uymiEeKp-eCvZDLsaw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_P4g8vCmiEeKp-eCvZDLsaw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_P4g8vSmiEeKp-eCvZDLsaw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_P4g8vimiEeKp-eCvZDLsaw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5wSF4FKtEeOIeMrdF0AdCg" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5wSF4VKtEeOIeMrdF0AdCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5wSF4lKtEeOIeMrdF0AdCg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7eDpcAuZEeWXe7AeBUbqvw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7eDpcQuZEeWXe7AeBUbqvw" y="5"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_P2j04CmiEeKp-eCvZDLsaw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_P4dSUSmiEeKp-eCvZDLsaw" x="356" y="157"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_PCJVYSmiEeKp-eCvZDLsaw"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_7eDpcguZEeWXe7AeBUbqvw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <element xmi:type="uml:Package" href="tracing.uml#_i3FbMPzOEeGKDvxFM1SZ_g"/>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/library/tracing.uml b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/library/tracing.uml
new file mode 100644
index 00000000000..73635b6b22a
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/library/tracing.uml
@@ -0,0 +1,750 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:C_Cpp="http://www.eclipse.org/papyrus/C_Cpp/1" xmlns:FCM="http://www.eclipse.org/papyrus/FCM/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <uml:Model xmi:id="_H-ZqYDKeEd-WprEKTCaiMA" name="Tracing">
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_H-ZqYTKeEd-WprEKTCaiMA">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_2NyU8DguEd-9wq2wHPy3lw">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/core.uml#_O6TiIDLUEd26WNosUASSSw"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_XW7KkEQYEd-RDttIPD8NUg">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/osal.uml#_ROTQYC-OEdySSa8YESkO2w"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_DRgF0D4NEeC-VMxjm_qUAg">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/corba.uml#_DtQEwDLdEd2_U4efLnjQIw"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Package" xmi:id="_g2IY8DKeEd-WprEKTCaiMA" name="traceInterceptor">
+ <packageMerge xmi:type="uml:PackageMerge" xmi:id="_2RoSYKNfEeCdIOXlyrCmKQ">
+ <mergedPackage xmi:type="uml:Package" href="pathmap://QML_CORE/core.uml#_mMCK8PiPEd2UhpY2Y3WUyg"/>
+ </packageMerge>
+ <packagedElement xmi:type="uml:Package" xmi:id="_1rsK8PwkEeGWn-a9PUOYcA" name="otf">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_YUcjcKAeEeCF0uoVQbVQRg" annotatedElement="_aoSDwKAdEeCF0uoVQbVQRg">
+ <body>Variant of OTF trace that only reports values that change.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_hd5WkKPUEeClvI8FjeO1Ow" annotatedElement="_kIcwsKbnEeC0_qP7CUZIiQ">
+ <body>A prior variant had a link with the methodCall_comp signature, since the operationIDs should be different, depending on the called component. This leads to a large number of generated classes. Current solution: configure the IDs on an instance level via ths InstanceConfigurator
+</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_bb4kQLniEeCxXoyQxQ47PQ" annotatedElement="_aF1w4DKeEd-WprEKTCaiMA">
+ <body>Trace implementation based on OTF trace library. Aggregates singleton TraceInit</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_aF1w4DKeEd-WprEKTCaiMA" name="OTFTrace_impl">
+ <generalization xmi:type="uml:Generalization" xmi:id="_WdRuUDaUEeKkY-29HX5sMQ" general="_MM6RwDaUEeKkY-29HX5sMQ"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_aF1w5TKeEd-WprEKTCaiMA" name="timestamp" isUnique="false">
+ <type xmi:type="uml:Class" href="pathmap://QML_CORE/osal.uml#_FuKEEDj8Edy0Rd6V_tf1-Q"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_aF1w5zKeEd-WprEKTCaiMA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_aF1w5jKeEd-WprEKTCaiMA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_plSuEF23Ed-12d_h0i1xhQ" name="traceInit" type="_apuYoDNwEd-1k-POY2IaLg" isUnique="false" aggregation="shared">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xUhqoF23Ed-12d_h0i1xhQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xUpmcF23Ed-12d_h0i1xhQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_mfNqoBavEeGq1uSGvh4rcQ" name="hasDeclaredFunctions" isStatic="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_Bv7l0B-VEd6nGq8wpI2tjg"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mfSjIBavEeGq1uSGvh4rcQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mfTKMBavEeGq1uSGvh4rcQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_u-498Ba1EeGq1uSGvh4rcQ"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_aF1w6DKeEd-WprEKTCaiMA" name="[name/]" specification="_aF1w7zKeEd-WprEKTCaiMA">
+ <language>C/C++</language>
+ <body>[import org::eclipse::papyrus::qompass::designer::core::acceleo::UMLTool/]
+[import org::eclipse::papyrus::qompass::designer::core::acceleo::utils_cpp/]
+
+[template public traceOp(operation: Operation)]
+
+// &lt;instance>_&lt;port>_&lt;operation>
+// easier: &lt;component>_&lt;port>_&lt;operation>
+updateTimestamp ();
+if (!hasDeclaredFunctions) {
+ declareFunctions();
+ hasDeclaredFunctions = true;
+}
+Tracing::TraceInit::wait();
+int processID = Tracing::TraceInit::getProcessID();
+OTF_Writer * writer = Tracing::TraceInit::getWriter();
+OTF_Writer_writeEnter (writer, timestamp.ticks(), &lt;%enumSvcPrefix%>::id_&lt;%owner.varName%>_&lt;%varName%>, processID, 0);
+OTF_Writer_writeEventComment (writer, timestamp.ticks(), processID, portName);
+OTF_Writer_writeEventComment (writer, timestamp.ticks(), processID, instanceName);
+Tracing::TraceInit::post();
+[if not (type = null)] [type.cppType()/] ret = [/if]rconn->[operation.cppCall()/];
+updateTimestamp ();
+Tracing::TraceInit::wait();
+OTF_Writer_writeLeave (writer, timestamp.ticks(), &lt;%enumSvcPrefix%>::id_&lt;%owner.varName%>_&lt;%varName%>, processID, 0);
+Tracing::TraceInit::post();
+[if not (type = null)] return ret;[/if]
+[/template]</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_aF1w6jKeEd-WprEKTCaiMA" name="updateTimestamp" specification="_aF1w8TKeEd-WprEKTCaiMA">
+ <language>C/C++</language>
+ <body>timestamp = OS_AL::Time::TimeVal::current ();
+// gettimeofday (&amp;currentTime, NULL);
+// timestamp = ...</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_73ynMBauEeGq1uSGvh4rcQ" name="declareFunctions" specification="_35DgwBauEeGq1uSGvh4rcQ">
+ <language>C/C++</language>
+ <body>// function groups are badly supported in OTF, since writeEnter/Leave do not support them
+// thus intial plan that each interface corresponds to a function group has not been implemented
+int fctGroupID = 0;
+int streamNr = 0;
+OTF_Writer * writer = Tracing::TraceInit::getWriter();
+&lt;%for (getAllOperations) {%>
+OTF_Writer_writeDefFunction (writer, streamNr, &lt;%enumSvcPrefix%>::id_&lt;%owner.varName%>_&lt;%varName%>, &lt;%quoteLiteral(&quot;InterfaceEnum&quot;, &quot;id_&lt;%owner.varName%>_&lt;%varName%>&quot;)%>, fctGroupID, 0);
+&lt;%}%></body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_aF1w7zKeEd-WprEKTCaiMA" name="[name/]" visibility="public" method="_aF1w6DKeEd-WprEKTCaiMA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_4e51QBatEeGq1uSGvh4rcQ">
+ <body>&lt;&lt;TextualRepresentation>>public '&lt;%name%>' () { }</body>
+ </ownedComment>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_aF1w8TKeEd-WprEKTCaiMA" name="updateTimestamp" method="_aF1w6jKeEd-WprEKTCaiMA"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_35DgwBauEeGq1uSGvh4rcQ" name="declareFunctions" method="_73ynMBauEeGq1uSGvh4rcQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_BuqlQDOcEd-1k-POY2IaLg" name="OTFTrace_impl => TraceInit" client="_aF1w4DKeEd-WprEKTCaiMA" supplier="_apuYoDNwEd-1k-POY2IaLg"/>
+ <packagedElement xmi:type="uml:Package" xmi:id="_U1rDwPL5Ed-1eY2qOvQSbw" name="TraceImpl">
+ <ownedTemplateSignature xmi:type="uml:TemplateSignature" xmi:id="_krDBAPL5Ed-1eY2qOvQSbw" parameter="_krDoEvL5Ed-1eY2qOvQSbw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_krDoEvL5Ed-1eY2qOvQSbw" parameteredElement="_krDoE_L5Ed-1eY2qOvQSbw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_krDoE_L5Ed-1eY2qOvQSbw" name="T" templateParameter="_krDoEvL5Ed-1eY2qOvQSbw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_krDoFPL5Ed-1eY2qOvQSbw" source="http://www.eclipse.org/emf/2002/Ecore">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_krDoFfL5Ed-1eY2qOvQSbw" key="constraints" value="InterfaceIsAbstract AtMostOneID UniqueFeatureNames UniqueOperationSignatures NoCircularSuperTypes WellFormedMapEntryClass ConsistentSuperTypes"/>
+ </eAnnotations>
+ <generalization xmi:type="uml:Generalization" xmi:id="_krDoFvL5Ed-1eY2qOvQSbw">
+ <general xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EClassifier"/>
+ </generalization>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_krDoF_L5Ed-1eY2qOvQSbw" name="abstract" visibility="public" isOrdered="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EBoolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoGPL5Ed-1eY2qOvQSbw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_krDoGfL5Ed-1eY2qOvQSbw" name="interface" visibility="public" isOrdered="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EBoolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoGvL5Ed-1eY2qOvQSbw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_krDoG_L5Ed-1eY2qOvQSbw" name="eSuperTypes" type="_krDoE_L5Ed-1eY2qOvQSbw" isOrdered="true">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_krDoHPL5Ed-1eY2qOvQSbw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_krDoHfL5Ed-1eY2qOvQSbw" key="suppressedUnsetVisibility" value="true"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_krDoHvL5Ed-1eY2qOvQSbw" key="suppressedIsSetVisibility" value="true"/>
+ </eAnnotations>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoIPL5Ed-1eY2qOvQSbw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_krDoH_L5Ed-1eY2qOvQSbw" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_krDoIfL5Ed-1eY2qOvQSbw" name="eOperations" isOrdered="true" aggregation="composite">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EOperation"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoI_L5Ed-1eY2qOvQSbw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_krDoIvL5Ed-1eY2qOvQSbw" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_krDoJPL5Ed-1eY2qOvQSbw" name="eAllAttributes" isOrdered="true" isReadOnly="true" isDerived="true">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EAttribute"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoJvL5Ed-1eY2qOvQSbw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_krDoJfL5Ed-1eY2qOvQSbw" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_krDoJ_L5Ed-1eY2qOvQSbw" name="eAllReferences" isOrdered="true" isReadOnly="true" isDerived="true">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EReference"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoKfL5Ed-1eY2qOvQSbw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_krDoKPL5Ed-1eY2qOvQSbw" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_krDoKvL5Ed-1eY2qOvQSbw" name="eReferences" isOrdered="true" isReadOnly="true" isDerived="true">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EReference"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoLPL5Ed-1eY2qOvQSbw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_krDoK_L5Ed-1eY2qOvQSbw" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_krDoLfL5Ed-1eY2qOvQSbw" name="eAttributes" isOrdered="true" isReadOnly="true" isDerived="true">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EAttribute"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoL_L5Ed-1eY2qOvQSbw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_krDoLvL5Ed-1eY2qOvQSbw" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_krDoMPL5Ed-1eY2qOvQSbw" name="eAllContainments" isOrdered="true" isReadOnly="true" isDerived="true">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EReference"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoMvL5Ed-1eY2qOvQSbw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_krDoMfL5Ed-1eY2qOvQSbw" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_krDoM_L5Ed-1eY2qOvQSbw" name="eAllOperations" isOrdered="true" isReadOnly="true" isDerived="true">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EOperation"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoNfL5Ed-1eY2qOvQSbw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_krDoNPL5Ed-1eY2qOvQSbw" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_krDoNvL5Ed-1eY2qOvQSbw" name="eAllStructuralFeatures" isOrdered="true" isReadOnly="true" isDerived="true">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EStructuralFeature"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoOPL5Ed-1eY2qOvQSbw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_krDoN_L5Ed-1eY2qOvQSbw" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_krDoOfL5Ed-1eY2qOvQSbw" name="eAllSuperTypes" type="_krDoE_L5Ed-1eY2qOvQSbw" isOrdered="true" isReadOnly="true" isDerived="true">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoO_L5Ed-1eY2qOvQSbw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_krDoOvL5Ed-1eY2qOvQSbw" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_krDoPPL5Ed-1eY2qOvQSbw" name="eIDAttribute" isOrdered="true" isReadOnly="true" isDerived="true">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EAttribute"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoPfL5Ed-1eY2qOvQSbw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_krDoPvL5Ed-1eY2qOvQSbw" name="eStructuralFeatures" isOrdered="true" aggregation="composite">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EStructuralFeature"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoQPL5Ed-1eY2qOvQSbw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_krDoP_L5Ed-1eY2qOvQSbw" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_krDoQfL5Ed-1eY2qOvQSbw" name="eGenericSuperTypes" isOrdered="true" aggregation="composite">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_krDoQvL5Ed-1eY2qOvQSbw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_krDoQ_L5Ed-1eY2qOvQSbw" key="suppressedUnsetVisibility" value="true"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_krDoRPL5Ed-1eY2qOvQSbw" key="suppressedIsSetVisibility" value="true"/>
+ </eAnnotations>
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EGenericType"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoRvL5Ed-1eY2qOvQSbw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_krDoRfL5Ed-1eY2qOvQSbw" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_krDoR_L5Ed-1eY2qOvQSbw" name="eAllGenericSuperTypes" isOrdered="true" isReadOnly="true" isDerived="true">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EGenericType"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoSfL5Ed-1eY2qOvQSbw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_krDoSPL5Ed-1eY2qOvQSbw" value="*"/>
+ </ownedAttribute>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_krDoSvL5Ed-1eY2qOvQSbw" name="isSuperTypeOf" visibility="public">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_krDoS_L5Ed-1eY2qOvQSbw" isOrdered="true" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EBoolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoTPL5Ed-1eY2qOvQSbw"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_krDoTfL5Ed-1eY2qOvQSbw" name="someClass" type="_krDoE_L5Ed-1eY2qOvQSbw" isOrdered="true">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoTvL5Ed-1eY2qOvQSbw"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_krDoT_L5Ed-1eY2qOvQSbw" name="getFeatureCount" visibility="public">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_krDoUPL5Ed-1eY2qOvQSbw" isOrdered="true" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EInt"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoUfL5Ed-1eY2qOvQSbw"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_krDoUvL5Ed-1eY2qOvQSbw" name="getEStructuralFeature" visibility="public">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_krDoU_L5Ed-1eY2qOvQSbw" isOrdered="true" direction="return">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EStructuralFeature"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoVPL5Ed-1eY2qOvQSbw"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_krDoVfL5Ed-1eY2qOvQSbw" name="featureID" isOrdered="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EInt"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoVvL5Ed-1eY2qOvQSbw"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_krDoV_L5Ed-1eY2qOvQSbw" name="getFeatureID" visibility="public">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_krDoWPL5Ed-1eY2qOvQSbw" isOrdered="true" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EInt"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoWfL5Ed-1eY2qOvQSbw"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_krDoWvL5Ed-1eY2qOvQSbw" name="feature" isOrdered="true">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EStructuralFeature"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoW_L5Ed-1eY2qOvQSbw"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_krDoXPL5Ed-1eY2qOvQSbw" name="getEStructuralFeature" visibility="public">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_krDoXfL5Ed-1eY2qOvQSbw" isOrdered="true" direction="return">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EStructuralFeature"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoXvL5Ed-1eY2qOvQSbw"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_krDoX_L5Ed-1eY2qOvQSbw" name="featureName" isOrdered="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EString"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoYPL5Ed-1eY2qOvQSbw"/>
+ </ownedParameter>
+ </ownedOperation>
+ </ownedParameteredElement>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_aoSDwKAdEeCF0uoVQbVQRg" name="OTFTrace_vc">
+ <generalization xmi:type="uml:Generalization" xmi:id="_nQ6YMKAdEeCF0uoVQbVQRg" general="_aF1w4DKeEd-WprEKTCaiMA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_EWKx4KD0EeCFDJJCA2W5wg" name="m_first">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_Bv7l0B-VEd6nGq8wpI2tjg"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_4LoXcKAeEeCF0uoVQbVQRg" name="[name/]" specification="_k4TsoKAeEeCF0uoVQbVQRg">
+ <language>C/C++</language>
+ <body>// &lt;instance>_&lt;port>_&lt;operation>
+// easier: &lt;component>_&lt;port>_&lt;operation>
+OTF_Writer * writer = Tracing::Trace::TraceInit::getWriter();
+int processID = Tracing::Trace::TraceInit::getProcessID();
+updateTimestamp ();
+// need to store parameter values, but that is not simple, as we are not in the data-flow context
+// => need specific data-flow trace
+// (costly) solution? string comparison? [string has which size?] howto get string representation of each parameter?? (in particular for structs)
+// too complicated...
+// three specific data_flow trace, offering identical (but conjugated ports). PushP/PushP, PullC/PullC, PushC/PushC => three interceptors, howto select?
+
+/*
+if (m_first) {
+ m_first = false;
+ doTrace = true;
+}
+else
+*/
+bool doTrace = true;
+OS_AL::Util::BString200 parameters;
+parameters &lt;&lt; &quot;port=&quot; &lt;&lt; portName &lt;&lt; &quot; &quot;;
+if (doTrace) {
+ Tracing::Trace::TraceInit::wait();
+ &lt;%for (parametersInInout) {%>
+ &lt;%if (filter(&quot;DataType&quot;)) {%>
+ &lt;%for (ownedAttribute) {%>
+ parameters &lt;&lt; &lt;%name%> &lt;&lt; &quot;#&quot;;
+ &lt;%}%>
+ &lt;%} else {%>
+ parameters &lt;&lt; &lt;%name%> &lt;&lt; &quot;#&quot;;
+ &lt;%}%>
+ &lt;%}%>
+ OTF_Writer_writeEnter (writer, timestamp.ticks(), Tracing::Trace::ID_&lt;%args(0).varName%>_&lt;%varName%>, processID, 0);
+ Tracing::Trace::TraceInit::post();
+}
+&lt;%if (type != null) {%>&lt;%type.cppType%> ret = &lt;%}%>rconn->&lt;%cppCall%>;
+&lt;%if (type != null) {%>parameters &lt;&lt; &quot;r=&quot;
+ &lt;%if (type.filter(&quot;DataType&quot;)) {%>
+ &lt;%for (type.ownedAttribute) {%>
+ &lt;&lt; ret.&lt;%name%> &lt;&lt; &quot;#&quot;
+ &lt;%}%>;
+ &lt;%}else{%>
+ &lt;&lt; ret;
+ &lt;%}%>
+&lt;%}%>
+updateTimestamp ();
+if (doTrace) {
+ Tracing::Trace::TraceInit::wait();
+ OTF_Writer_writeEventComment (writer, timestamp.ticks(), processID, parameters.data());
+ OTF_Writer_writeLeave (writer, timestamp.ticks(), Tracing::Trace::ID_&lt;%args(0).varName%>_&lt;%varName%>, processID, 0);
+ Tracing::Trace::TraceInit::post();
+}
+&lt;%if (type != null) {%>return ret;&lt;%}%></body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_CyKWkKD2EeCFDJJCA2W5wg" name="OTFTrace_vc" specification="_rlkwoKD0EeCFDJJCA2W5wg">
+ <language>C/C++</language>
+ <body>m_first = true;</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_k4TsoKAeEeCF0uoVQbVQRg" name="[name/]" method="_4LoXcKAeEeCF0uoVQbVQRg"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_rlkwoKD0EeCFDJJCA2W5wg" name="OTFTrace_vc" method="_CyKWkKD2EeCFDJJCA2W5wg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_Mgn2cKKXEeCdIOXlyrCmKQ" name="OTFTrace_vc => BString" client="_aoSDwKAdEeCF0uoVQbVQRg">
+ <supplier xmi:type="uml:Class" href="pathmap://QML_CORE/osal.uml#_0AwCEDO0EdyG-pUz-bb-Lg"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_3pab4PwkEeGWn-a9PUOYcA" name="cout"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_kIcwsKbnEeC0_qP7CUZIiQ" name="IConfiguratorTrace"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_nUAnQC8HEeKwPrQVP28AQw" name="IConfiguratorOTF"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_MM6RwDaUEeKkY-29HX5sMQ" name="Trace" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_MM6RwTaUEeKkY-29HX5sMQ">
+ <general xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_Zx2ZUA1jEd6tvthBDl600Q"/>
+ </generalization>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_MM6RwjaUEeKkY-29HX5sMQ" name="portName" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MM6RwzaUEeKkY-29HX5sMQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MM6RxDaUEeKkY-29HX5sMQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_MM6RxTaUEeKkY-29HX5sMQ" name="instanceName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MM6RxjaUEeKkY-29HX5sMQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MM6RxzaUEeKkY-29HX5sMQ" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_VzFlMLnhEeCxXoyQxQ47PQ" name="containerrules">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_aX6QECVIEeCPS8GFKAaKxw" annotatedElement="_GVZxwLdwEd-CtfrGQre34Q">
+ <body>OTF (Open trace format) tracing mechanism</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_z43k0ChKEeKFu939Pz1RFA" annotatedElement="_wHuA0KAdEeCF0uoVQbVQRg">
+ <body>An OTF based trace mechanism that tracks value changes</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_06dksChKEeKFu939Pz1RFA" annotatedElement="_I2OioPwkEeGWn-a9PUOYcA">
+ <body>LTTng based trace mechanism for port interception</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_LlPEIDdMEeKDRPyuWXNFNA" annotatedElement="_If04ACqLEeKGrchWittz_g">
+ <body>LTTng LW mechanism for operations</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_GVZxwLdwEd-CtfrGQre34Q" name="RTraceOTF">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_lBO5MPUPEeCn1-FCrfecFg" name="trace" visibility="public" type="_aF1w4DKeEd-WprEKTCaiMA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wNCqUPUPEeCn1-FCrfecFg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wNIJ4PUPEeCn1-FCrfecFg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_wNMbUPUPEeCn1-FCrfecFg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_wHuA0KAdEeCF0uoVQbVQRg" name="RTraceOTF_VC">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_pm5cwPUPEeCn1-FCrfecFg" name="traceVC" visibility="public" type="_aoSDwKAdEeCF0uoVQbVQRg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_yevnMPUPEeCn1-FCrfecFg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_yez4oPUPEeCn1-FCrfecFg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_ye3jAPUPEeCn1-FCrfecFg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_I2OioPwkEeGWn-a9PUOYcA" name="RTraceLTTNG">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_d7If0PwkEeGWn-a9PUOYcA" name="interceptor" visibility="public" type="_pwl_MPxWEeGOK9t90vpALA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gYc20PwkEeGWn-a9PUOYcA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gZTLYPwkEeGWn-a9PUOYcA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_gZWOsPwkEeGWn-a9PUOYcA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_vt7dACdbEeKGdt7FoegMYA" name="Copy_Of_RTraceLTTNG">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_vt7dASdbEeKGdt7FoegMYA" name="interceptor" visibility="public" type="_pwl_MPxWEeGOK9t90vpALA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_vt7dAidbEeKGdt7FoegMYA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_vt7dAydbEeKGdt7FoegMYA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_vt7dBCdbEeKGdt7FoegMYA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_vt7dBSdbEeKGdt7FoegMYA" name="tp" visibility="public" type="_rGPjgPxWEeGOK9t90vpALA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_vt7dBidbEeKGdt7FoegMYA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_vt7dBydbEeKGdt7FoegMYA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_vt7dCCdbEeKGdt7FoegMYA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_If04ACqLEeKGrchWittz_g" name="LTTngLWRule">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Avfe8C8PEeKVAPO2lpiVnA" name="instanceName" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BuA8sC8PEeKVAPO2lpiVnA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BuFOIC8PEeKVAPO2lpiVnA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_BuKtsC8PEeKVAPO2lpiVnA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_DGqhEC2jEeKEc8wNVBgHJg" name="operation1" specification="_eZ1RMCqLEeKGrchWittz_g">
+ <language>C/C++</language>
+ <body>[import org::eclipse::papyrus::qompass::modellibs::tracing::acceleo::traceLTTng/]
+
+[template public anOperation(operation : Operation)]
+[operation.invokeTP()/]
+[/template]</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_eZ1RMCqLEeKGrchWittz_g" name="interceptOperation" method="_DGqhEC2jEeKEc8wNVBgHJg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_riv0oC5vEeKMZ5P9cEChlg" name="Dependency1" client="_If04ACqLEeKGrchWittz_g" supplier="_rGPjgPxWEeGOK9t90vpALA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_QOOpsPzOEeGKDvxFM1SZ_g" name="traceExtension">
+ <packagedElement xmi:type="uml:Package" xmi:id="_QApWIPzNEeGKDvxFM1SZ_g" name="lttng">
+ <packageMerge xmi:type="uml:PackageMerge" xmi:id="_kGXHMPzNEeGKDvxFM1SZ_g">
+ <mergedPackage xmi:type="uml:Package" href="pathmap://QML_CORE/core.uml#_m7SIwOUYEd-P08Bciq_LqQ"/>
+ </packageMerge>
+ <packagedElement xmi:type="uml:Class" xmi:id="_rGPjgPxWEeGOK9t90vpALA" name="LTTngClassTP"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_VMJ8QPzOEeGKDvxFM1SZ_g" name="fixed">
+ <packagedElement xmi:type="uml:Package" xmi:id="_K5J34PzNEeGKDvxFM1SZ_g" name="otf">
+ <packagedElement xmi:type="uml:Usage" xmi:id="_7uQr8D4OEeC-VMxjm_qUAg" name="TraceInit => Thread (for ThreadId)" client="_apuYoDNwEd-1k-POY2IaLg">
+ <supplier xmi:type="uml:Class" href="pathmap://QML_CORE/osal.uml#_-HeCsDj_Edy0Rd6V_tf1-Q"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_apuYoDNwEd-1k-POY2IaLg" name="TraceInit">
+ <generalization xmi:type="uml:Generalization" xmi:id="_9zJj0DguEd-9wq2wHPy3lw">
+ <general xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
+ </generalization>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_vYRuQDj1Ed-nsvkE2JvSTg" name="writer" isStatic="true" type="_W0t44Dj1Ed-nsvkE2JvSTg" isUnique="false" aggregation="shared"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_ZZ8mwDwLEd-CbfVdCYNz6Q" name="manager" isStatic="true" type="_LjsBkDwLEd-CbfVdCYNz6Q" isUnique="false" aggregation="shared"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_28RZED4NEeC-VMxjm_qUAg" name="streamNr" isStatic="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_cy5msJ6oEeCNsP1Kjt4f_w" name="sema" isStatic="true">
+ <type xmi:type="uml:Class" href="pathmap://QML_CORE/osal.uml#_D8njME_gEdy2tpS719xBwQ"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_czA7cJ6oEeCNsP1Kjt4f_w" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_czCJkJ6oEeCNsP1Kjt4f_w" value="1"/>
+ </ownedAttribute>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_UcPagD1nEd-Bk-AHd6yyoA" name="derived realization of ILifeCycle" client="_apuYoDNwEd-1k-POY2IaLg">
+ <supplier xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ <contract xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ </interfaceRealization>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_ILWGsDgvEd-9wq2wHPy3lw" name="activate" specification="_Ucl_0D1nEd-Bk-AHd6yyoA">
+ <language>C/C++</language>
+ <body>const char *filename= &quot;trace.otf&quot;;
+
+//OTF_FileManager* manager;
+
+uint32_t streams= 1;
+
+/* file handles available */
+uint32_t files= 10;
+
+/* per-stream buffer size */
+uint32_t buffersize= 10*1024;
+
+/* compression on/off, test without compression to look at ASCII trace files */
+// int compression= 0;
+
+/*************************************
+* INIT *
+*************************************/
+manager= OTF_FileManager_open( files );
+// assert( NULL != manager );
+
+writer = OTF_Writer_open( filename, streams, manager );
+OTF_Writer_setBufferSizes( writer, buffersize );
+
+streamNr = 1;
+
+OTF_Writer_writeDefTimerResolution( writer,
+ streamNr /* uint32_t stream */,
+ 1e3 /* uint64_t ticksPerSecond */ );
+
+// initial post
+sema.post();</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_uUZ2cDj1Ed-nsvkE2JvSTg" name="getWriter" specification="_RNVZoDj1Ed-nsvkE2JvSTg">
+ <language>C/C++</language>
+ <body>return writer;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_2f_-UD1oEd-Bk-AHd6yyoA" name="deactivate" specification="_UdpIsD1nEd-Bk-AHd6yyoA">
+ <language>C/C++</language>
+ <body> </body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_W9k18ChjEeC5Ga5kAgjl0g" name="TraceInit" specification="_MR0d4ChjEeC5Ga5kAgjl0g">
+ <language>C/C++</language>
+ <body>// do not close in deactivate, since additional calls to OTF_write may occur later.
+OTF_Writer_close(writer);
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_g2IBUD4NEeC-VMxjm_qUAg" name="getProcessID" specification="_uegYAD4MEeC-VMxjm_qUAg">
+ <language>C/C++</language>
+ <body>int id = OS_AL::ProcessingResources::Thread::getId ();
+for (int i = 0; i &lt; processSet.size (); i++) {
+ if (processSet.get(i) == id) {
+ return i+1;
+ }
+}
+// not known yet => add
+processSet.append(id);
+int processID = processSet.size();
+char name[16];
+sprintf(name, &quot;id: %x&quot;, id);
+OTF_Writer_writeDefProcess(writer, streamNr, processID, name, 0);
+// OS_AL name only valid for threads created with OS_AL
+// OTF_Writer_writeDefProcess(writer, streamNr, processID, OS_AL::ProcessingResources::Thread::getName().data(), 0);
+// not required
+// OTF_Writer_assignProcess(writer, processID, streamNr);
+// OTF_Writer_mapProcess(writer, processID);
+OTF_Writer_writeBeginProcess (writer, 0, processID);
+return processID;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_KUVkMJ6pEeCNsP1Kjt4f_w" name="wait" specification="_VIPBEJ6oEeCNsP1Kjt4f_w">
+ <language>C/C++</language>
+ <body>sema.wait();</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_LNI0cJ6pEeCNsP1Kjt4f_w" name="post" specification="_Wm5-gJ6oEeCNsP1Kjt4f_w">
+ <language>C/C++</language>
+ <body>sema.post();</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_RNVZoDj1Ed-nsvkE2JvSTg" name="getWriter" isStatic="true" method="_uUZ2cDj1Ed-nsvkE2JvSTg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_v6J20Dj2Ed-nsvkE2JvSTg" name="ret" type="_W0t44Dj1Ed-nsvkE2JvSTg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zsxM0Dj2Ed-nsvkE2JvSTg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zsya8Dj2Ed-nsvkE2JvSTg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_zszCADj2Ed-nsvkE2JvSTg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Ucl_0D1nEd-Bk-AHd6yyoA" name="activate" method="_ILWGsDgvEd-9wq2wHPy3lw"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_UdpIsD1nEd-Bk-AHd6yyoA" name="deactivate" method="_2f_-UD1oEd-Bk-AHd6yyoA"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_MR0d4ChjEeC5Ga5kAgjl0g" name="TraceInit" method="_W9k18ChjEeC5Ga5kAgjl0g"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_uegYAD4MEeC-VMxjm_qUAg" name="getProcessID" isStatic="true" method="_g2IBUD4NEeC-VMxjm_qUAg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_1PmRUD4MEeC-VMxjm_qUAg" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_VIPBEJ6oEeCNsP1Kjt4f_w" name="wait" isStatic="true" method="_KUVkMJ6pEeCNsP1Kjt4f_w"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Wm5-gJ6oEeCNsP1Kjt4f_w" name="post" isStatic="true" method="_LNI0cJ6pEeCNsP1Kjt4f_w"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_IewAUDguEd-9wq2wHPy3lw" name="externtypes">
+ <packagedElement xmi:type="uml:Class" xmi:id="_W0t44Dj1Ed-nsvkE2JvSTg" name="OTF_Writer"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_LjsBkDwLEd-CbfVdCYNz6Q" name="OTF_FileManager"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_L90lEDYGEd-JF_b-mKqY4g" name="TraceTesting">
+ <ownedTemplateSignature xmi:type="uml:TemplateSignature" xmi:id="_NJOoQDYGEd-JF_b-mKqY4g" parameter="_m8qNQDYKEd-JF_b-mKqY4g">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_m8qNQDYKEd-JF_b-mKqY4g" parameteredElement="_pfAOMDYKEd-JF_b-mKqY4g">
+ <ownedParameteredElement xmi:type="uml:Enumeration" xmi:id="_pfAOMDYKEd-JF_b-mKqY4g" name="ParamEnumeration" templateParameter="_m8qNQDYKEd-JF_b-mKqY4g"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <packagedElement xmi:type="uml:Class" xmi:id="_QNXx4DYKEd-JF_b-mKqY4g" name="TraceInitB">
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_QNXx4TYKEd-JF_b-mKqY4g" name="initDefs" specification="_QNXx4jYKEd-JF_b-mKqY4g">
+ <language>C/C++</language>
+ <body>OTF_Writer_writeDefFunctionGroup (writer, 0, &quot;application functions&quot;);
+&lt;%for (ownedLiteral) {%>
+ OTF_Writer_writeDefFunction (writer, 0, &lt;%name%>, &quot;&lt;%name%>&quot;, 0, 0);
+&lt;%}%></body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_QNXx4jYKEd-JF_b-mKqY4g" name="initDefs" isStatic="true" method="_QNXx4TYKEd-JF_b-mKqY4g"/>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_NhImwPzNEeGKDvxFM1SZ_g" name="cout"/>
+ <packagedElement xmi:type="uml:Package" xmi:id="_i3FbMPzOEeGKDvxFM1SZ_g" name="lttng">
+ <packagedElement xmi:type="uml:Package" xmi:id="_nAkZEPzOEeGKDvxFM1SZ_g" name="externtypes">
+ <packagedElement xmi:type="uml:Class" xmi:id="_v-VBcPzSEeGKDvxFM1SZ_g" name="tracepoint"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_P2j04CmiEeKp-eCvZDLsaw" name="LTTngCreateDestroy">
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="__CHDcCmlEeKp-eCvZDLsaw" name="LTTngCreateDestroy" specification="_UvQpMCmiEeKp-eCvZDLsaw">
+ <language>C/C++</language>
+ <body>!xtend TraceLTTng.declareTracepointEventCreateClass</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_B-fVACmmEeKp-eCvZDLsaw" name="LTTngCreateDestroy" specification="_VUW6UCmiEeKp-eCvZDLsaw">
+ <language>C/C++</language>
+ <body>!xtend TraceLTTng.declareTracepointEventDestroyClass</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_UvQpMCmiEeKp-eCvZDLsaw" name="LTTngCreateDestroy" method="__CHDcCmlEeKp-eCvZDLsaw"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_VUW6UCmiEeKp-eCvZDLsaw" name="LTTngCreateDestroy" method="_B-fVACmmEeKp-eCvZDLsaw"/>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_HkxCkDY_EeKxVvAop17bHw" name="traceInterceptorPort">
+ <packageMerge xmi:type="uml:PackageMerge" xmi:id="_M9DV4DY_EeKxVvAop17bHw">
+ <mergedPackage xmi:type="uml:Package" href="pathmap://QML_CORE/core.uml#_gEZXADY7EeKvFqG4YPX3sg"/>
+ </packageMerge>
+ <packagedElement xmi:type="uml:Package" xmi:id="_5gDNYPwkEeGWn-a9PUOYcA" name="lttng">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_r8PXYPxWEeGOK9t90vpALA" annotatedElement="_pwl_MPxWEeGOK9t90vpALA">
+ <body>Interceptor for LTTng calls</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_ttvxQPxWEeGOK9t90vpALA" annotatedElement="_rGPjgPxWEeGOK9t90vpALA">
+ <body>Trace Provider class. Delegates to LTTng xtend file for code generation
+</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_pwl_MPxWEeGOK9t90vpALA" name="LTTngInterceptor">
+ <generalization xmi:type="uml:Generalization" xmi:id="_1963sPxWEeGOK9t90vpALA" general="_dcP9gDaSEeKxVvAop17bHw"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_qLhLMPxXEeGOK9t90vpALA" name="[name/]" specification="_YU5H4PxXEeGOK9t90vpALA">
+ <language>C/C++</language>
+ <body>!xtend TraceLTTng.invokeTP</body>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_YU5H4PxXEeGOK9t90vpALA" name="[name/]" method="_qLhLMPxXEeGOK9t90vpALA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_BV2G4PzTEeGKDvxFM1SZ_g" name="Usage1" client="_pwl_MPxWEeGOK9t90vpALA" supplier="_v-VBcPzSEeGKDvxFM1SZ_g"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_gveqADHKEeKt1a2SZnJmwg" name="LTTngIntfTP"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_9ygUUDHKEeKt1a2SZnJmwg" name="Dependency1" client="_pwl_MPxWEeGOK9t90vpALA" supplier="_gveqADHKEeKt1a2SZnJmwg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_dcP9gDaSEeKxVvAop17bHw" name="TracePort" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_dcP9gTaSEeKxVvAop17bHw">
+ <general xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_Zx2ZUA1jEd6tvthBDl600Q"/>
+ </generalization>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_dcP9gjaSEeKxVvAop17bHw" name="portName" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dcP9gzaSEeKxVvAop17bHw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dcP9hDaSEeKxVvAop17bHw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_dcP9hTaSEeKxVvAop17bHw" name="instanceName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dcP9hjaSEeKxVvAop17bHw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dcP9hzaSEeKxVvAop17bHw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_H_B8gDKeEd-WprEKTCaiMA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H_DxsDKeEd-WprEKTCaiMA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/StandardL2.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_-DLL0DKnEd-WprEKTCaiMA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-DXZEDKnEd-WprEKTCaiMA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/FCM/1#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://FCM_PROFILES/FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_N6l98DguEd-9wq2wHPy3lw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_N6vH4DguEd-9wq2wHPy3lw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/C_Cpp/1#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
+ </profileApplication>
+ </uml:Model>
+ <standard:ModelLibrary xmi:id="_ICaAoDKeEd-WprEKTCaiMA" base_Package="_H-ZqYDKeEd-WprEKTCaiMA"/>
+ <FCM:Template xmi:id="_bKc-kDNZEd-0bO2vHbUkEA" base_Element="_aF1w7zKeEd-WprEKTCaiMA" kind="LoopOperations">
+ <helper xmi:type="FCM:BindingHelper" href="pathmap://QML_CORE/core.uml#_nLe_sHJDEeOMF7YEvnQt5g"/>
+ <formalParam xmi:type="uml:Interface" href="pathmap://QML_CORE/core.uml#_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <templateParam xmi:type="uml:Interface" href="pathmap://QML_CORE/core.uml#_ZzlzMPfBEd2TbIfwytOyPA"/>
+ </FCM:Template>
+ <FCM:Singleton xmi:id="_AdBwIDgvEd-9wq2wHPy3lw" base_Class="_apuYoDNwEd-1k-POY2IaLg"/>
+ <C_Cpp:Include xmi:id="_ZWEQwDj0Ed-nsvkE2JvSTg" body="#include &lt;otflib/otf.h>" base_class="_aF1w4DKeEd-WprEKTCaiMA"/>
+ <C_Cpp:Ptr xmi:id="_9n7OYDj2Ed-nsvkE2JvSTg" base_parameter="_v6J20Dj2Ed-nsvkE2JvSTg"/>
+ <FCM:DerivedElement xmi:id="_UdG9MD1nEd-Bk-AHd6yyoA" base_Element="_Ucl_0D1nEd-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_UeZ9sD1nEd-Bk-AHd6yyoA" base_Element="_UdpIsD1nEd-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <C_Cpp:Virtual xmi:id="___fNAD1nEd-Bk-AHd6yyoA" base_operation="_UdpIsD1nEd-Bk-AHd6yyoA"/>
+ <C_Cpp:Virtual xmi:id="_AHNwMD1pEd-Bk-AHd6yyoA" base_operation="_Ucl_0D1nEd-Bk-AHd6yyoA"/>
+ <FCM:DerivedElement xmi:id="_Q44J0EI7Ed-BYfDlJlYJUQ" base_Element="_Ucl_0D1nEd-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_Q5EXEEI7Ed-BYfDlJlYJUQ" base_Element="_UdpIsD1nEd-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_6f5KEEJEEd-Ps4Bfh0j9LQ" base_Element="_Ucl_0D1nEd-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_6gni0EJEEd-Ps4Bfh0j9LQ" base_Element="_UdpIsD1nEd-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="__8ZM4EPiEd-NwdL0D_IutQ" base_Element="_Ucl_0D1nEd-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="__8bpIEPiEd-NwdL0D_IutQ" base_Element="_UdpIsD1nEd-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_Md_SIEQYEd-RDttIPD8NUg" base_Element="_Ucl_0D1nEd-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_MeJqMEQYEd-RDttIPD8NUg" base_Element="_UdpIsD1nEd-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_ibefIFKoEd-OfYmxqPWG5g" base_Element="_Ucl_0D1nEd-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_ibg7YFKoEd-OfYmxqPWG5g" base_Element="_UdpIsD1nEd-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_KshoEFmvEd-9TNLvplUFDQ" base_Element="_Ucl_0D1nEd-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_KskrYFmvEd-9TNLvplUFDQ" base_Element="_UdpIsD1nEd-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_JK7ncF2qEd-12d_h0i1xhQ" base_Element="_Ucl_0D1nEd-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_JK-qwF2qEd-12d_h0i1xhQ" base_Element="_UdpIsD1nEd-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:ContainerRule xmi:id="_ISo6gLdwEd-CtfrGQre34Q" base_Class="_GVZxwLdwEd-CtfrGQre34Q" extensionKind="InterceptAllPorts" interceptor="_35od4DKrEd-z5o2wSoJ16A">
+ <forConfig xmi:type="FCM:ConfigOption" href="pathmap://QML_CORE/core.uml#_u6LqoH7eEd-FNNgSS03RxQ"/>
+ </FCM:ContainerRule>
+ <C_Cpp:Include xmi:id="_mk_ccD5sEeC-VMxjm_qUAg" body="#include &lt;OS_AL/Sets/SetOf.h>&#xA;OS_AL::Sets::SetOf &lt;int> processSet;" base_class="_apuYoDNwEd-1k-POY2IaLg"/>
+ <FCM:ContainerRule xmi:id="_6FqQoKAdEeCF0uoVQbVQRg" base_Class="_wHuA0KAdEeCF0uoVQbVQRg" extensionKind="InterceptAllPorts" interceptor="_JvP0oKAeEeCF0uoVQbVQRg" propagate="true">
+ <forConfig xmi:type="FCM:ConfigOption" href="pathmap://QML_CORE/core.uml#_u6LqoH7eEd-FNNgSS03RxQ"/>
+ </FCM:ContainerRule>
+ <FCM:Template xmi:id="_pplDQKAeEeCF0uoVQbVQRg" base_Element="_k4TsoKAeEeCF0uoVQbVQRg" kind="LoopOperations">
+ <helper xmi:type="FCM:BindingHelper" href="pathmap://QML_CORE/core.uml#_nLe_sHJDEeOMF7YEvnQt5g"/>
+ </FCM:Template>
+ <FCM:InstanceConfigurator xmi:id="_nTMOYKbnEeC0_qP7CUZIiQ" base_Class="_kIcwsKbnEeC0_qP7CUZIiQ"/>
+ <FCM:UseInstanceConfigurator xmi:id="_plb90KbnEeC0_qP7CUZIiQ" base_Class="_aF1w4DKeEd-WprEKTCaiMA" configurator="_nUB1YC8HEeKwPrQVP28AQw"/>
+ <FCM:UseInstanceConfigurator xmi:id="_MmzO0KboEeC0_qP7CUZIiQ" base_Class="_aoSDwKAdEeCF0uoVQbVQRg" configurator="_nUB1YC8HEeKwPrQVP28AQw"/>
+ <FCM:InterceptionRule xmi:id="_RBO5IPUQEeCn1-FCrfecFg" interceptionKind="InterceptAllIn" base_Property="_lBO5MPUPEeCn1-FCrfecFg"/>
+ <FCM:InterceptionRule xmi:id="_TLg_YPUQEeCn1-FCrfecFg" interceptionKind="InterceptAllIn" base_Property="_pm5cwPUPEeCn1-FCrfecFg"/>
+ <FCM:Template xmi:id="_NDkWsBavEeGq1uSGvh4rcQ" base_Element="_35DgwBauEeGq1uSGvh4rcQ"/>
+ <FCM:InteractionComponent xmi:id="_7J88sG6FEeGqWMX2LwdLDw" base_Class="_aF1w4DKeEd-WprEKTCaiMA"/>
+ <FCM:InteractionComponent xmi:id="_-t6LoG6FEeGqWMX2LwdLDw" base_Class="_aoSDwKAdEeCF0uoVQbVQRg"/>
+ <FCM:ContainerRule xmi:id="_RWQC8PwkEeGWn-a9PUOYcA" base_Class="_I2OioPwkEeGWn-a9PUOYcA">
+ <forConfig xmi:type="FCM:ConfigOption" href="pathmap://QML_CORE/core.uml#_u6LqoH7eEd-FNNgSS03RxQ"/>
+ </FCM:ContainerRule>
+ <FCM:InterceptionRule xmi:id="_m-L0sPwkEeGWn-a9PUOYcA" interceptionKind="InterceptAll" base_Property="_d7If0PwkEeGWn-a9PUOYcA"/>
+ <C_Cpp:Include xmi:id="__rP4oPxWEeGOK9t90vpALA" preBody="#define TRACEPOINT_CREATE_PROBES&#xA;#define TRACEPOINT_DEFINE" header="!xtend TraceLTTng.declareTP" base_class="_rGPjgPxWEeGOK9t90vpALA"/>
+ <FCM:Template xmi:id="_bKW5IPxXEeGOK9t90vpALA" base_Element="_YU5H4PxXEeGOK9t90vpALA" kind="LoopOperations">
+ <helper xmi:type="FCM:BindingHelper" href="pathmap://QML_CORE/core.uml#_nLe_sHJDEeOMF7YEvnQt5g"/>
+ </FCM:Template>
+ <FCM:Template xmi:id="_flfM8PzhEeGe5LUTfvP5hQ" base_Element="_rGPjgPxWEeGOK9t90vpALA">
+ <helper xmi:type="FCM:BindingHelper" href="pathmap://QML_CORE/core.uml#_mFUQALsMEeO0n5elMxN1LQ"/>
+ </FCM:Template>
+ <FCM:InteractionComponent xmi:id="__yL98PzhEeGe5LUTfvP5hQ" base_Class="_pwl_MPxWEeGOK9t90vpALA"/>
+ <C_Cpp:ManualGeneration xmi:id="_KSTlgCdaEeKGdt7FoegMYA" extensionBody="c" base_Class="_rGPjgPxWEeGOK9t90vpALA"/>
+ <FCM:InterceptionRule xmi:id="_vt_HYSdbEeKGdt7FoegMYA" interceptionKind="InterceptAllIn" base_Property="_vt7dASdbEeKGdt7FoegMYA"/>
+ <standard:Create xmi:id="_X1okQCmiEeKp-eCvZDLsaw" base_BehavioralFeature="_UvQpMCmiEeKp-eCvZDLsaw"/>
+ <standard:Destroy xmi:id="_ZJYEECmiEeKp-eCvZDLsaw" base_BehavioralFeature="_VUW6UCmiEeKp-eCvZDLsaw"/>
+ <FCM:ContainerRule xmi:id="_NtAukCqLEeKGrchWittz_g" base_Class="_If04ACqLEeKGrchWittz_g" kind="LightWeightOORule">
+ <forConfig xmi:type="FCM:ConfigOption" href="pathmap://QML_CORE/core.uml#_u6LqoH7eEd-FNNgSS03RxQ"/>
+ </FCM:ContainerRule>
+ <FCM:Template xmi:id="_AhsuYCqMEeKGrchWittz_g" base_Element="_eZ1RMCqLEeKGrchWittz_g"/>
+ <FCM:InterceptionRule xmi:id="_IN6uwC2jEeKEc8wNVBgHJg" interceptionKind="InterceptAll" base_Operation="_eZ1RMCqLEeKGrchWittz_g"/>
+ <FCM:UseInstanceConfigurator xmi:id="_1yKFIC8CEeKwPrQVP28AQw" base_Class="_pwl_MPxWEeGOK9t90vpALA" configurator="_nTMOYKbnEeC0_qP7CUZIiQ"/>
+ <FCM:UseInstanceConfigurator xmi:id="_5FYwcC8CEeKwPrQVP28AQw" base_Class="_I2OioPwkEeGWn-a9PUOYcA" configurator="_nTMOYKbnEeC0_qP7CUZIiQ"/>
+ <FCM:UseInstanceConfigurator xmi:id="_gH1RQC8DEeKwPrQVP28AQw" base_Class="_If04ACqLEeKGrchWittz_g" configurator="_nTMOYKbnEeC0_qP7CUZIiQ"/>
+ <FCM:InstanceConfigurator xmi:id="_nUB1YC8HEeKwPrQVP28AQw" base_Class="_nUAnQC8HEeKwPrQVP28AQw"/>
+ <C_Cpp:Include xmi:id="_gvf4IDHKEeKt1a2SZnJmwg" preBody="#define TRACEPOINT_CREATE_PROBES&#xA;#define TRACEPOINT_DEFINE" header="!xtend TraceLTTng.declareTP" base_class="_gveqADHKEeKt1a2SZnJmwg"/>
+ <FCM:Template xmi:id="_gvnM4DHKEeKt1a2SZnJmwg" base_Element="_gveqADHKEeKt1a2SZnJmwg">
+ <helper xmi:type="FCM:BindingHelper" href="pathmap://QML_CORE/core.uml#_mFUQALsMEeO0n5elMxN1LQ"/>
+ </FCM:Template>
+ <C_Cpp:ManualGeneration xmi:id="_gvnz8DHKEeKt1a2SZnJmwg" extensionBody="c" base_Class="_gveqADHKEeKt1a2SZnJmwg"/>
+</xmi:XMI>
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/plugin.properties b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/plugin.properties
new file mode 100644
index 00000000000..3909dafe6fc
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/plugin.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2013 CEA LIST.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# CEA LIST - initial API and implementation
+###############################################################################
+pluginName=Papyrus extra: Qompass model library for tracing (Incubation)
+providerName=Eclipse Modeling Project
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/plugin.xml b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/plugin.xml
new file mode 100644
index 00000000000..7a1427bd9c9
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/plugin.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+ <extension
+ name="Tracing"
+ point="org.eclipse.emf.ecore.uri_mapping">
+ <mapping
+ source="pathmap://QML_TRACE/"
+ target="platform:/plugin/org.eclipse.papyrus.qompass.modellibs.tracing/models/library/">
+ </mapping>
+ </extension>
+ <extension
+ point="org.eclipse.papyrus.uml.extensionpoints.UMLLibrary">
+ <library
+ iconpath="platform:/plugin/org.eclipse.papyrus.qompass.designer.ui/icons/Qompass-16x16.gif"
+ name="Qompass model library: tracing"
+ path="pathmap://QML_TRACE/tracing.uml"
+ provider="CEA LIST">
+ </library>
+ </extension>
+ <extension
+ point="org.eclipse.papyrus.qompass.designer.core.instanceConfig">
+ <client
+ configuratorID="IConfiguratorTrace"
+ class="org.eclipse.papyrus.qompass.modellibs.tracing.IConfiguratorTrace">
+ </client>
+ <client
+ class="org.eclipse.papyrus.qompass.modellibs.tracing.IConfiguratorOTF"
+ configuratorID="IConfiguratorOTF">
+ </client>
+ </extension>
+ <extension
+ point="org.eclipse.papyrus.infra.services.tracepoints.traceMechanism">
+ <client
+ class="org.eclipse.papyrus.qompass.modellibs.tracing.QompassTraceMechanism"
+ traceMechID="org.eclipse.papyrus.qompass.modellibs.tracing.qompass">
+ </client>
+ </extension>
+ <extension point="org.eclipse.ui.newWizards">
+ <wizard
+ category="org.eclipse.ui.Examples/org.eclipse.papyrus.examples"
+ class="org.eclipse.papyrus.qompass.modellibs.tracing.ClientServerTraceTestModelWizard"
+ finalPerspective="org.eclipse.papyrus.infra.core.perspective"
+ icon="platform:/plugin/org.eclipse.papyrus.qompass.designer.ui/icons/Qompass-16x16.gif"
+ id="org.eclipse.papyrus.qompass.modellibs.tracing.newb.ClientServerTraceTest"
+ name="Qompass client/server example with tracing">
+ <selection class="org.eclipse.core.resources.IResource"/>
+ </wizard>
+ </extension>
+ <extension
+ point="org.eclipse.help.toc">
+ <toc file="help/tocconcepts.xml"/>
+ </extension>
+ <extension
+ point="org.eclipse.papyrus.qompass.designer.core.xtendGenerator">
+ <client
+ class="org.eclipse.papyrus.qompass.modellibs.tracing.acceleo.TraceLTTng"
+ templateID="TraceLTTng">
+ </client>
+ </extension>
+ <extension
+ point="org.eclipse.papyrus.qompass.designer.core.xtendGenerator">
+ <client
+ class="org.eclipse.papyrus.qompass.modellibs.tracing.acceleo.TraceOTF"
+ templateID="TraceOTF">
+ </client>
+ </extension>
+ <extension
+ point="org.eclipse.papyrus.qompass.designer.core.xtendGenerator">
+ <client
+ class="org.eclipse.papyrus.qompass.modellibs.tracing.acceleo.TraceCout"
+ templateID="TraceCout">
+ </client>
+ </extension>
+</plugin>
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/pom.xml b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/pom.xml
new file mode 100644
index 00000000000..26d9859be7e
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/pom.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.qompass.modellibs.tracing</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-clean-plugin</artifactId>
+ <configuration>
+ <filesets>
+ <fileset>
+ <directory>xtend-gen</directory>
+ <includes>
+ <include>**/*</include>
+ </includes>
+ <excludes>
+ <exclude>.gitignore</exclude>
+ </excludes>
+ </fileset>
+ </filesets>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.eclipse.xtend</groupId>
+ <artifactId>xtend-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>compile</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <outputDirectory>xtend-gen</outputDirectory>
+ <testOutputDirectory>${project.build.directory}/xtend-gen/test</testOutputDirectory>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/Activator.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/Activator.java
new file mode 100644
index 00000000000..bd40f7d0f5b
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/Activator.java
@@ -0,0 +1,53 @@
+package org.eclipse.papyrus.qompass.modellibs.tracing;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.qompass.modellibs.tracing"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+}
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/ClientServerTraceTestModelWizard.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/ClientServerTraceTestModelWizard.java
new file mode 100644
index 00000000000..ad9530592fc
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/ClientServerTraceTestModelWizard.java
@@ -0,0 +1,14 @@
+package org.eclipse.papyrus.qompass.modellibs.tracing;
+
+import org.eclipse.papyrus.uml.diagram.wizards.ModelCopyWizard;
+
+/**
+ * Copy wizard for the ClientServerTraceTest example
+ */
+
+public class ClientServerTraceTestModelWizard extends ModelCopyWizard {
+
+ public ClientServerTraceTestModelWizard() {
+ super("ClientServerTraceTest"); //$NON-NLS-1$
+ }
+}
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/IConfiguratorOTF.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/IConfiguratorOTF.java
new file mode 100644
index 00000000000..64cdef2bc3c
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/IConfiguratorOTF.java
@@ -0,0 +1,59 @@
+package org.eclipse.papyrus.qompass.modellibs.tracing;
+
+import org.eclipse.papyrus.qompass.designer.core.PortUtils;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepPlanUtils;
+import org.eclipse.papyrus.qompass.designer.core.extensions.IInstanceConfigurator;
+import org.eclipse.papyrus.qompass.designer.core.transformations.container.ContainerTrafo;
+import org.eclipse.papyrus.uml.tools.utils.PackageUtil;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Property;
+
+
+public class IConfiguratorOTF implements IInstanceConfigurator {
+
+ static final String PROP_PORT_NAME = "portName"; //$NON-NLS-1$
+
+ static final String PROP_INSTANCE_NAME = "instanceName"; //$NON-NLS-1$
+
+ /**
+ * Configure the passed trace instance
+ *
+ * @see org.eclipse.papyrus.qompass.designer.gentools.core.extensions.IInstanceConfigurator
+ */
+ @Override
+ public void configureInstance(InstanceSpecification instance, Property componentPart, InstanceSpecification parentInstance) {
+ // The tracing code needs informations about the component instance and port.
+
+ DepPlanUtils.configureProperty(instance, PROP_INSTANCE_NAME, StringConstants.QUOTE + instance.getName() + StringConstants.QUOTE);
+
+ // port in context => interception of port => provide information about port and interface
+ ContainerTrafo containerTrafo = ContainerTrafo.getContainerTrafo(parentInstance);
+ if (containerTrafo == null) {
+ return;
+ }
+ Port port = containerTrafo.getInterceptedPort(componentPart);
+ if (port != null) {
+ // obtain required or provided interface (TODO: will fail, if both are provided!)
+ Interface intf = PortUtils.getProvided(port);
+ if (intf == null) {
+ intf = PortUtils.getRequired(port);
+ }
+
+ DepPlanUtils.configureProperty(instance, PROP_PORT_NAME, StringConstants.QUOTE + port.getName() + StringConstants.QUOTE);
+ if (intf != null) {
+ // this is specific for OTF:
+ // each container contains an attribute (id_<name>) for each operation. This is configured here,
+ // since we add instance information to the trace (is that useful??, seems like a hack)
+ // TODO: originally, we used executorIS *in source model*
+ for (Operation op : intf.getOperations()) {
+ String id = PackageUtil.getRootPackage(instance).getName() + "::Tracing::Trace::ID_" + //$NON-NLS-1$
+ instance.getName().replace(".", "_") + "_" + op.getName(); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
+ DepPlanUtils.configureProperty(instance, "id_" + op.getName(), id); //$NON-NLS-1$
+ }
+ }
+ }
+ }
+}
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/IConfiguratorTrace.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/IConfiguratorTrace.java
new file mode 100644
index 00000000000..4f7eaaf41d6
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/IConfiguratorTrace.java
@@ -0,0 +1,45 @@
+package org.eclipse.papyrus.qompass.modellibs.tracing;
+
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepPlanUtils;
+import org.eclipse.papyrus.qompass.designer.core.extensions.IInstanceConfigurator;
+import org.eclipse.papyrus.qompass.designer.core.transformations.container.ContainerTrafo;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Property;
+
+public class IConfiguratorTrace implements IInstanceConfigurator {
+
+ static final String PROP_PORT_NAME = "portName"; //$NON-NLS-1$
+
+ static final String PROP_INSTANCE_NAME = "instanceName"; //$NON-NLS-1$
+
+ /**
+ * Configure the passed trace instance
+ *
+ * @see org.eclipse.papyrus.qompass.designer.gentools.core.extensions.IInstanceConfigurator
+ */
+ @Override
+ public void configureInstance(InstanceSpecification instance, Property componentPart, InstanceSpecification parentInstance) {
+ // The tracing code needs informations about the component instance and port.
+
+ String instanceName = instance.getName();
+ int index = instanceName.lastIndexOf("."); //$NON-NLS-1$
+ if (index != -1) {
+ String lastSegment = instanceName.substring(index + 1);
+ if (lastSegment.startsWith(ContainerTrafo.interceptorName)) {
+ instanceName = instanceName.substring(0, index);
+ }
+ }
+
+ DepPlanUtils.configureProperty(instance, PROP_INSTANCE_NAME, StringConstants.QUOTE + instanceName + StringConstants.QUOTE);
+
+ // port in context => interception of port => provide information about port and interface
+ ContainerTrafo containerTrafo = ContainerTrafo.getContainerTrafo(parentInstance);
+ if (containerTrafo != null) {
+ Port port = containerTrafo.getInterceptedPort(componentPart);
+ if (port != null) {
+ DepPlanUtils.configureProperty(instance, PROP_PORT_NAME, StringConstants.QUOTE + port.getName() + StringConstants.QUOTE);
+ }
+ }
+ }
+}
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/QompassTraceMechanism.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/QompassTraceMechanism.java
new file mode 100644
index 00000000000..8e286a6792e
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/QompassTraceMechanism.java
@@ -0,0 +1,188 @@
+package org.eclipse.papyrus.qompass.modellibs.tracing;
+
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.papyrus.FCM.ConfigOption;
+import org.eclipse.papyrus.FCM.ContainerRule;
+import org.eclipse.papyrus.FCM.RuleApplication;
+import org.eclipse.papyrus.infra.core.resource.ModelSet;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.core.utils.ServiceUtilsForActionHandlers;
+import org.eclipse.papyrus.infra.services.tracepoints.ITraceMechanism;
+import org.eclipse.papyrus.infra.services.tracepoints.MarkerUtils;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceActions.TAOperation;
+import org.eclipse.papyrus.infra.services.tracepoints.TracepointConstants;
+import org.eclipse.papyrus.qompass.designer.core.Description;
+import org.eclipse.papyrus.qompass.designer.core.Log;
+import org.eclipse.papyrus.qompass.designer.core.Utils;
+import org.eclipse.papyrus.uml.tools.utils.PackageUtil;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.Property;
+
+public class QompassTraceMechanism implements ITraceMechanism {
+
+ public static final String EC3M_TRACING_URI = "pathmap://QML_TRACE/tracing.uml"; //$NON-NLS-1$
+
+ public static final URI tracingURI = URI.createURI(EC3M_TRACING_URI);
+
+ @Override
+ public EList<String> getTraceMechanismIDs(EObject eObj) {
+ EList<String> ids = new BasicEList<String>();
+ // obtain list of all available container rules via Utils. Restrict to those doing tracing.
+ EList<ContainerRule> containerRules = getContainerRules(eObj);
+ for (ContainerRule containerRule : containerRules) {
+ if (isForTracing(containerRule)) {
+ Class clazz = containerRule.getBase_Class();
+ ids.add(clazz.getName());
+ }
+ }
+ if (ids.size() == 0) {
+ ids.add("dummy qompass rule");
+ }
+ return ids;
+ }
+
+ @Override
+ public String getTraceMechanismDescription(EObject eObj, String id) {
+ EList<ContainerRule> containerRules = getContainerRules(eObj);
+ for (ContainerRule containerRule : containerRules) {
+ if (isForTracing(containerRule)) {
+ Class clazz = containerRule.getBase_Class();
+ if (clazz.getName().equals(id)) {
+ return Description.getDescription(clazz);
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Apply the trace mechanism, i.e. set or unset the appropriate ContainerRule for tracing.
+ * Currently handles trace on class.
+ *
+ * Basic idea: always apply same container rule. But container rule expansion is different in function of set tracepoints.
+ * Need to unapply, if there is no longer a trace needing it.
+ */
+ @Override
+ public boolean applyTraceMechanism(EObject eObj, String id, int traceOption) {
+ Class clazzContext = getClassContext(eObj);
+ if (clazzContext == null) {
+ return false;
+ }
+ EList<ContainerRule> containerRules = getContainerRules(eObj);
+ for (ContainerRule containerRule : containerRules) {
+ if (isForTracing(containerRule)) {
+ Class clazz = containerRule.getBase_Class();
+
+ if (clazz.getName().equals(id)) {
+ if (traceOption == TAOperation.OnlyCall.ordinal()) {
+ // yes => what do we then (i.e. how is mapping done??)
+ }
+ RuleApplication ruleApplication = StereotypeUtil.applyApp(clazzContext, RuleApplication.class);
+ if ((ruleApplication != null) && !ruleApplication.getContainerRule().contains(containerRule)) {
+ ruleApplication.getContainerRule().add(containerRule);
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ // QompassTraceMechanism
+
+ public boolean isForTracing(ContainerRule rule) {
+ for (ConfigOption co : rule.getForConfig()) {
+ // TODO: not very clean to used fixed string
+ if (co.getBase_Class().getName().equals("Trace")) { //$NON-NLS-1$
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Return the class (component) for which we need to apply a container rule
+ * to enable the tracing of the passed eObject. This eObject may be
+ * (1) A class, in this case it could be returned directly
+ * (2) An operation. In this case, the owning class is returned (caveat: operation might belong to an interface)
+ * (3) A property of the class (including ports).
+ *
+ * @param eObj
+ * see description above
+ * @return the class to a container rule may be applied
+ */
+ public Class getClassContext(EObject eObj) {
+ if (eObj instanceof Class) {
+ return (Class) eObj;
+ } else if (eObj instanceof Operation) {
+ return ((Operation) eObj).getClass_();
+ } else if (eObj instanceof Property) {
+ return ((Property) eObj).getClass_();
+ } else {
+ return null;
+ }
+ }
+
+ public EList<ContainerRule> getContainerRules(EObject eObj) {
+ if (eObj == null) {
+ // load rules of registered Tracing model library
+ try {
+ ModelSet ms = ServiceUtilsForActionHandlers.getInstance().getModelSet();
+ Resource rs = ms.getResource(tracingURI, true);
+ EList<EObject> contents = rs.getContents();
+ if ((contents.size() > 0) && (contents.get(0) instanceof Package)) {
+ return Utils.getAllRules((Package) contents.get(0));
+ }
+ } catch (ServiceException e) {
+ Log.log(IStatus.ERROR, Log.TRAFO_CONTAINER, e.getMessage());
+ }
+ return new BasicEList<ContainerRule>();
+ } else {
+ Package top = PackageUtil.getRootPackage((Element) eObj);
+ return Utils.getAllRules(top);
+ }
+ }
+
+ @Override
+ public boolean configureTraceMechanisms() {
+ String config = ""; //$NON-NLS-1$
+ // TODO: config is never evaluated
+ try {
+ IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+
+ if (root != null) {
+ Object tracePoints[] = root.findMarkers(TracepointConstants.tpOrbpMarker, true, IResource.DEPTH_INFINITE);
+ for (Object tracePointObj : tracePoints) {
+ if (tracePointObj instanceof IMarker) {
+ IMarker tracePoint = (IMarker) tracePointObj;
+ EObject eobj = MarkerUtils.getEObjectOfMarker(tracePoint);
+ if (MarkerUtils.isActive(tracePoint)) {
+ if (eobj instanceof NamedElement) {
+ config += ((NamedElement) eobj).getQualifiedName();
+ }
+ }
+ }
+ }
+ }
+ } catch (CoreException e) {
+ Log.log(IStatus.ERROR, Log.TRAFO_CONTAINER, e.getMessage());
+ }
+ return true;
+ }
+
+}
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/StringConstants.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/StringConstants.java
new file mode 100644
index 00000000000..d3ced2536a6
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/StringConstants.java
@@ -0,0 +1,5 @@
+package org.eclipse.papyrus.qompass.modellibs.tracing;
+
+public class StringConstants {
+ public static final String QUOTE = "\""; //$NON-NLS-1$
+}
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/acceleo/TraceCout.xtend b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/acceleo/TraceCout.xtend
new file mode 100644
index 00000000000..396d9860fb6
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/acceleo/TraceCout.xtend
@@ -0,0 +1,18 @@
+package org.eclipse.papyrus.qompass.modellibs.tracing.acceleo
+
+import org.eclipse.uml2.uml.Operation
+import static extension org.eclipse.papyrus.qompass.modellibs.core.xtend.CppUtils.*
+import org.eclipse.papyrus.qompass.designer.core.extensions.IXtend
+
+class TraceCout implements IXtend {
+
+ public def traceOp(Operation operation) '''
+ // declare operation & use it directly. Problem: declaration can not be within the scope of an operation
+ updateTimestamp();
+ cout << "enter operation: " << «operation.name» << " at " << timestamp.ticks() << " parameters: "
+ «FOR parameter : operation.ownedParameters» << "«parameter.name» (of type «parameter.type.name») "«ENDFOR» << endl;
+
+ «IF (operation.type != null)» type.cppType ret = «ENDIF»rconn->«operation.cppCall»;
+ «IF (operation.type != null)» return ret;«ENDIF»
+ '''
+} \ No newline at end of file
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/acceleo/TraceLTTng.xtend b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/acceleo/TraceLTTng.xtend
new file mode 100644
index 00000000000..be837094ae1
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/acceleo/TraceLTTng.xtend
@@ -0,0 +1,198 @@
+package org.eclipse.papyrus.qompass.modellibs.tracing.acceleo
+
+import org.eclipse.uml2.uml.Classifier
+import org.eclipse.uml2.uml.Parameter
+import org.eclipse.uml2.uml.DataType
+import org.eclipse.uml2.uml.Type
+import org.eclipse.uml2.uml.Operation
+
+import static extension org.eclipse.papyrus.qompass.modellibs.tracing.acceleo.TraceUtils.*
+import static extension org.eclipse.papyrus.qompass.designer.core.UMLTool.*
+import static extension org.eclipse.papyrus.qompass.modellibs.core.xtend.CppUtils.*
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationContext
+import org.eclipse.papyrus.qompass.designer.core.extensions.IXtend
+import org.eclipse.uml2.uml.PrimitiveType
+
+class TraceLTTng implements IXtend {
+
+ public def declareTP(Classifier cl) '''
+ #if !defined(HFILENAME_H) || defined(TRACEPOINT_HEADER_MULTI_READ)
+ #define HFILENAME_H
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+ #include <lttng/tracepoint.h>
+ «FOR operation : cl.getAllOperations()»
+ «IF TraceUtils.hasTrace(operation)»
+ «declareTPop(tpName1(), operation)»
+ «ENDIF»
+ «ENDFOR»
+
+ #undef TRACEPOINT_PROVIDER
+ #define TRACEPOINT_PROVIDER «tpName1»
+
+ #undef TRACEPOINT_INCLUDE_FILE
+ #define TRACEPOINT_INCLUDE_FILE «TransformationContext.classifier.getQualifiedName().replaceAll('::', '/')».h
+
+ #include <lttng/tracepoint-event.h>
+
+ #ifdef __cplusplus
+ }
+ #endif
+
+ #endif
+ '''
+
+ public def declareEMF_URI(Classifier cl) '''
+ #include <lttng/tracepoint.h>
+
+ TRACEPOINT_MODEL_EMF_URI(UMLmodel, starting, "«TransformationContext.sourceRoot.getURI»")
+ '''
+
+ public def declareTPop(String tpName, Operation operation) '''
+ #include <stdint.h>
+
+ // declare trace point
+ TRACEPOINT_EVENT(«tpName1()», «operation.tpName2»,
+ TP_ARGS(const char *, instanceName«IF (operation.parametersInInout.size > 0)», «ENDIF»«FOR parameter : operation.parametersInInout SEPARATOR(', ')»«parameter.flattenParNameAndType»«ENDFOR»),
+ TP_FIELDS(
+ ctf_string(instanceName, instanceName)
+ «FOR parameter : operation.parametersInInout»
+ «TransformationContext.classifier.declareDependency(parameter.type)»«flattenCtfType(parameter.type, parameter.name)»
+ «ENDFOR»
+ )
+ )
+ TRACEPOINT_MODEL_EMF_URI(«tpName1», «operation.tpName2», "«operation.modelRef»")
+ '''
+
+ public def declareTracepointEventCreateClass(Classifier clazz) '''
+ TRACEPOINT_EVENT(«tpName1», createClass, «clazz.qualifiedName»)
+ '''
+
+ public def declareTracepointEventDestroyClass(Classifier clazz) '''
+ TRACEPOINT_EVENT(«tpName1», destroyClass, «clazz.qualifiedName»)
+ '''
+
+ public def declareCreateDestroy(String tpName) '''
+ TRACEPOINT_EVENT(«tpName», createClass,
+ TP_ARGS(const char *, classURI),
+ TP_FIELDS(
+ ctf_string(classURI, classURI)
+ )
+ )
+ TRACEPOINT_EVENT(«tpName», destroyClass,
+ TP_ARGS(const char *, className),
+ TP_FIELDS(
+ ctf_string(xmdID, className)
+ )
+ )
+ '''
+
+ /**
+ * The name that is used for the trace provider
+ */
+ def tpName1() {
+ TransformationContext.binding.getNearestPackage.qualifiedName.varName
+ }
+
+
+ /**
+ * The name that is used for the type
+ */
+ def tpName2(Operation operation) {
+ operation.name
+ }
+
+ /**
+ * Reference either the port (if available in the context) or the operation that is traced
+ */
+ def modelRef(Operation operation) {
+ val uri = TransformationContext.sourceRoot.eResource.URI
+ if (TransformationContext.port == null) {
+ uri + "#" + operation.xmlID()
+ }
+ else {
+ uri + "#" + TransformationContext.port.xmlID()
+ }
+ }
+
+ public def declareTraceOp(Operation operation) {
+ }
+
+ public def invokeTP(Operation operation) '''
+ // create event with operationID/portID and pass call
+ «IF (operation.hasTrace)»
+ // use (call) tracepoint
+ tracepoint(«tpName1()», «operation.tpName2()», instanceName«IF (operation.parametersInInout.size > 0)», «ENDIF»«FOR parameter : operation.parametersInInout() SEPARATOR(', ')»«parameter.flattenParName.toString.trim»«ENDFOR»);
+ «ENDIF»
+ «IF (operation.type != null)»return «ENDIF»rconn->«operation.cppCall»;
+ '''
+
+
+ def flattenParNameAndType(Parameter parameter) '''
+ «IF (parameter.type instanceof DataType) && !(parameter.type instanceof PrimitiveType)»
+ «FOR attribute : (parameter.type as DataType).attributes SEPARATOR(', ')»«attribute.type.cppTypeWB.toString.trim», «parameter.name + '_' + attribute.name»«ENDFOR»
+ «ELSE»
+ «parameter.type.cppTypeWB.toString.trim», «parameter.name»
+ «ENDIF»
+ '''
+
+ def flattenParName(Parameter parameter) '''
+ «IF (parameter.type instanceof DataType) && !(parameter.type instanceof PrimitiveType)»
+ «FOR attribute : (parameter.type as DataType).attributes SEPARATOR(', ')»«parameter.name».«attribute.name»«ENDFOR»
+ «ELSE»
+ «parameter.name»
+ «ENDIF»
+ '''
+
+
+ def flattenCtfType(Type type, String name) '''
+ «IF (type instanceof DataType) && !(type instanceof PrimitiveType)»
+ «FOR attribute : (type as DataType).attributes SEPARATOR('\n')»
+ «ctfType(attribute.type, name + '_' + attribute.name)»
+ «ENDFOR»
+ «ELSE»
+ «ctfType(type, name)»
+ «ENDIF»
+ '''
+
+
+ /**
+ * Support for C++ types with boolean
+ */
+ def cppTypeWB(Type type) '''
+ «IF
+ (type.qualifiedName == 'UMLPrimitiveTypes::Boolean') ||
+ (type.qualifiedName == 'PrimitiveTypes::Boolean') ||
+ (type.qualifiedName == 'CORBA::Boolean')»
+ /* bool */ unsigned char
+ «ELSE»
+ «type.cppType»
+ «ENDIF»
+ '''
+
+
+ /**
+ * Calculate the typename, defaulting to ctf_integer
+ * TODO: treat pointer & ref stereotypes (can only evaulate on parameter or attribute, not on Type)
+ *
+ */
+ def ctfType(Type type, String name) '''
+ «IF
+ (type.qualifiedName == 'CORBA::String') ||
+ (type.qualifiedName == 'PrimitiveTypes::String') ||
+ (type.qualifiedName == 'UMLPrimitiveTypes::String')»
+ ctf_string(«name», «name»)
+ «ELSEIF
+ (type.qualifiedName == 'CORBA::Float') ||
+ (type.qualifiedName == 'CORBA::Double') ||
+ (type.qualifiedName == 'AnsiCLibrary::float') ||
+ (type.qualifiedName == 'AnsiCLibrary::double')»
+ ctf_float(«type.cppType», «name», «name»)
+ «ELSE»
+ ctf_integer(«type.cppTypeWB», «name», «name»)
+ «ENDIF»
+ '''
+} \ No newline at end of file
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/acceleo/TraceOTF.xtend b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/acceleo/TraceOTF.xtend
new file mode 100644
index 00000000000..39d65986c6a
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/acceleo/TraceOTF.xtend
@@ -0,0 +1,33 @@
+package org.eclipse.papyrus.qompass.modellibs.tracing.acceleo
+
+import org.eclipse.uml2.uml.Operation
+import static extension org.eclipse.papyrus.qompass.designer.core.UMLTool.*
+import static extension org.eclipse.papyrus.qompass.modellibs.core.xtend.CppUtils.*
+import org.eclipse.papyrus.qompass.designer.core.EnumService
+import org.eclipse.uml2.uml.NamedElement
+import org.eclipse.papyrus.qompass.designer.core.extensions.IXtend
+
+class TraceOTF implements IXtend {
+ public def traceOp(Operation operation) '''
+ // <instance>_<port>_<operation>
+ // easier: <component>_<port>_<operation>
+ updateTimestamp ();
+ if (!hasDeclaredFunctions) {
+ declareFunctions();
+ hasDeclaredFunctions = true;
+ }
+ Tracing::TraceInit::wait();
+ int processID = Tracing::TraceInit::getProcessID();
+ OTF_Writer * writer = Tracing::TraceInit::getWriter();
+ OTF_Writer_writeEnter (writer, timestamp.ticks(), «EnumService.enumSvcPrefix»::id_«(operation.owner as NamedElement).varName»_«operation.varName», processID, 0);
+ OTF_Writer_writeEventComment (writer, timestamp.ticks(), processID, portName);
+ OTF_Writer_writeEventComment (writer, timestamp.ticks(), processID, instanceName);
+ Tracing::TraceInit::post();
+ «IF (operation.type != null)» type.cppType ret = «ENDIF»rconn->«operation.cppCall»;
+ updateTimestamp ();
+ Tracing::TraceInit::wait();
+ OTF_Writer_writeLeave (writer, timestamp.ticks(), «EnumService.enumSvcPrefix»::id_«(operation.owner as NamedElement).varName»_«operation.varName», processID, 0);
+ Tracing::TraceInit::post();
+ «IF (operation.type != null)» return ret;«ENDIF»
+ '''
+} \ No newline at end of file
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/acceleo/TraceUtils.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/acceleo/TraceUtils.java
new file mode 100644
index 00000000000..7e20fb3019f
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/acceleo/TraceUtils.java
@@ -0,0 +1,45 @@
+package org.eclipse.papyrus.qompass.modellibs.tracing.acceleo;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
+import org.eclipse.papyrus.infra.services.tracepoints.MarkerUtils;
+import org.eclipse.papyrus.infra.services.tracepoints.TracepointConstants;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationContext;
+import org.eclipse.uml2.uml.Element;
+
+public class TraceUtils {
+
+ public static IMarker[] getMarkersForEObject(EObject eObject, String markerType) {
+ Resource resource = eObject.eResource();
+ IFile file = WorkspaceSynchronizer.getFile(resource);
+ if (file != null) {
+ try {
+ return file.findMarkers(markerType, true, IResource.DEPTH_INFINITE);
+ } catch (CoreException e) {
+ }
+ }
+ return new IMarker[0];
+ }
+
+ public static boolean hasTrace(Element eObject) {
+ IMarker markers[] = getMarkersForEObject(eObject, TracepointConstants.tpOrbpMarker);
+ for (IMarker marker : markers) {
+ // explicitly pass resourceSet of eObject we want to compare. Otherwise, the marker utils would
+ // load resources into its own resource set (leading to non-comparable eObjects)
+ EObject eObjOfMarker = MarkerUtils.getEObjectOfMarker(eObject.eResource().getResourceSet(), marker);
+ if (eObjOfMarker == eObject) {
+ return true;
+ }
+ }
+ // TODO: testing workaround (always return true for port based transformations)
+ if (TransformationContext.getPort() != null) {
+ return true;
+ }
+ return false;
+ }
+}
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/xtend-gen/.gitignore b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/xtend-gen/.gitignore
new file mode 100644
index 00000000000..c96a04f008e
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/xtend-gen/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore \ No newline at end of file
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/.classpath b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/.classpath
new file mode 100644
index 00000000000..098194ca4b7
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/.project b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/.project
new file mode 100644
index 00000000000..657d2f7a65c
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.views.tracepoints</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/.settings/org.eclipse.jdt.core.prefs b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..f42de363afa
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/META-INF/MANIFEST.MF b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..a5d9938325c
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/META-INF/MANIFEST.MF
@@ -0,0 +1,25 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.papyrus.infra.services.tracepoints;bundle-version="1.2.0",
+ org.eclipse.core.resources;bundle-version="3.7.0",
+ org.eclipse.emf.ecore;bundle-version="2.8.0",
+ org.eclipse.gef;bundle-version="3.8.0",
+ org.eclipse.uml2.uml;bundle-version="4.0.0",
+ org.eclipse.papyrus.infra.core;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.widgets;bundle-version="1.2.0",
+ org.eclipse.emf.transaction;bundle-version="1.4.0",
+ org.eclipse.gmf.runtime.common.core;bundle-version="1.4.1",
+ org.eclipse.gmf.runtime.common.ui;bundle-version="1.5.0",
+ org.eclipse.ui.ide;bundle-version="3.8.100",
+ org.eclipse.papyrus.infra.services.markerlistener;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.services.decoration;bundle-version="1.2.0"
+Bundle-Vendor: %pluginProvider
+Bundle-ActivationPolicy: lazy
+Bundle-Version: 1.2.0.qualifier
+Bundle-Localization: plugin
+Bundle-Name: %pluginName
+Bundle-Activator: org.eclipse.papyrus.views.tracepoints.Activator
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.views.tracepoints;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.7
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/about.html b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/about.html
new file mode 100644
index 00000000000..209103075a7
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>November 14, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/build.properties b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/build.properties
new file mode 100644
index 00000000000..379a4d0a4b0
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/build.properties
@@ -0,0 +1,9 @@
+source.. = src/
+output.. = bin/
+bin.includes = plugin.xml,\
+ META-INF/,\
+ .,\
+ icons/,\
+ about.html,\
+ plugin.properties
+src.includes = about.html
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/icons/breakpoint_view.gif b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/icons/breakpoint_view.gif
new file mode 100644
index 00000000000..f529c5a4225
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/icons/breakpoint_view.gif
Binary files differ
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/icons/gotoobj_tsk.gif b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/icons/gotoobj_tsk.gif
new file mode 100644
index 00000000000..cf62b63ae3e
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/icons/gotoobj_tsk.gif
Binary files differ
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/icons/skip_brkp.gif b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/icons/skip_brkp.gif
new file mode 100644
index 00000000000..c1751c3ff4f
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/icons/skip_brkp.gif
Binary files differ
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/plugin.properties b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/plugin.properties
new file mode 100644
index 00000000000..b02f21505bc
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/plugin.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2013 CEA LIST.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# CEA LIST - initial API and implementation
+###############################################################################
+pluginName=Papyrus Tracepoint View (Incubation)
+pluginProvider=Eclipse Modeling Project
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/plugin.xml b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/plugin.xml
new file mode 100644
index 00000000000..208df21df9f
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/plugin.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+
+ <extension
+ point="org.eclipse.ui.views">
+ <view
+ name="Tracepoints"
+ icon="icons/breakpoint_view.gif"
+ category="org.eclipse.papyrus.views.category"
+ class="org.eclipse.papyrus.views.tracepoints.views.TracepointView"
+ id="org.eclipse.papyrus.views.tracepoints.views.Tracepoints">
+ </view>
+ </extension>
+</plugin>
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/pom.xml b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/pom.xml
new file mode 100644
index 00000000000..ca0d8d002fd
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.views.tracepoints</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/src/org/eclipse/papyrus/views/tracepoints/Activator.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/src/org/eclipse/papyrus/views/tracepoints/Activator.java
new file mode 100644
index 00000000000..9be427595b3
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/src/org/eclipse/papyrus/views/tracepoints/Activator.java
@@ -0,0 +1,80 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.views.tracepoints;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.views.tracepoints"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+ /**
+ * Returns an image descriptor for the image file at the given
+ * plug-in relative path
+ *
+ * @param path
+ * the path
+ * @return the image descriptor
+ */
+ public static ImageDescriptor getImageDescriptor(String path) {
+ return imageDescriptorFromPlugin(PLUGIN_ID, path);
+ }
+}
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/src/org/eclipse/papyrus/views/tracepoints/views/TraceViewImages.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/src/org/eclipse/papyrus/views/tracepoints/views/TraceViewImages.java
new file mode 100644
index 00000000000..52e0379c5bd
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/src/org/eclipse/papyrus/views/tracepoints/views/TraceViewImages.java
@@ -0,0 +1,44 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.views.tracepoints.views;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.papyrus.views.tracepoints.Activator;
+import org.eclipse.swt.graphics.Image;
+
+
+public class TraceViewImages {
+
+ public static ImageDescriptor getGotoObjID() {
+ org.eclipse.papyrus.infra.widgets.Activator widgetsActivator =
+ org.eclipse.papyrus.infra.widgets.Activator.getDefault();
+ return widgetsActivator.getImageDescriptor(Activator.PLUGIN_ID, "icons/gotoobj_tsk.gif");
+ }
+
+ public static ImageDescriptor getSkipAllID() {
+ org.eclipse.papyrus.infra.widgets.Activator widgetsActivator =
+ org.eclipse.papyrus.infra.widgets.Activator.getDefault();
+ return widgetsActivator.getImageDescriptor(Activator.PLUGIN_ID, "icons/skip_brkp.gif");
+ }
+
+ public static Image getSkipAllImage() {
+ if (skipAllImage == null) {
+ skipAllImage = getSkipAllID().createImage();
+ }
+ return skipAllImage;
+ }
+
+ protected static Image skipAllImage = null;
+}
diff --git a/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/src/org/eclipse/papyrus/views/tracepoints/views/TracepointView.java b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/src/org/eclipse/papyrus/views/tracepoints/views/TracepointView.java
new file mode 100644
index 00000000000..d628a81b917
--- /dev/null
+++ b/extraplugins/qompass/designer/tracing/org.eclipse.papyrus.views.tracepoints/src/org/eclipse/papyrus/views/tracepoints/views/TracepointView.java
@@ -0,0 +1,540 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.views.tracepoints.views;
+
+
+import java.util.Map;
+
+import javax.swing.text.View;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gmf.runtime.common.ui.resources.FileChangeManager;
+import org.eclipse.gmf.runtime.common.ui.resources.IFileObserver;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.util.OpenStrategy;
+import org.eclipse.jface.viewers.CheckStateChangedEvent;
+import org.eclipse.jface.viewers.CheckboxTableViewer;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.ICheckStateListener;
+import org.eclipse.jface.viewers.ICheckStateProvider;
+import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerSorter;
+import org.eclipse.papyrus.infra.services.markerlistener.IPapyrusMarker;
+import org.eclipse.papyrus.infra.services.tracepoints.MarkerUtils;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceFunctions;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceState;
+import org.eclipse.papyrus.infra.services.tracepoints.TracepointConstants;
+import org.eclipse.papyrus.infra.services.tracepoints.dialogs.TraceActionSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.ISelectionListener;
+import org.eclipse.ui.ISharedImages;
+import org.eclipse.ui.IWorkbenchActionConstants;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.ide.IDE;
+import org.eclipse.ui.ide.IGotoMarker;
+import org.eclipse.ui.part.ViewPart;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.NamedElement;
+
+
+/**
+ * This sample class demonstrates how to plug-in a new
+ * workbench view. The view shows data obtained from the
+ * model. The sample creates a dummy model on the fly,
+ * but a real implementation would connect to the model
+ * available either in this or another plug-in (e.g. the workspace).
+ * The view is connected to the model using a content provider.
+ * <p>
+ * The view uses a label provider to define how model objects should be presented in the view. Each view can present the same model objects using different labels and icons, if needed. Alternatively, a single label provider can be shared between views in order
+ * to ensure that objects of the same type are presented in the same way everywhere.
+ * <p>
+ */
+
+public class TracepointView extends ViewPart implements ISelectionListener {
+
+ /**
+ * The ID of the view as specified by the extension.
+ */
+ public static final String ID = "org.eclipse.papyrus.views.tracepoints.views.Tracepoints";
+
+
+ private CheckboxTableViewer viewer;
+
+ protected Action actionDelete;
+
+ protected Action actionDeleteAll;
+
+ protected Action actionGoto;
+
+ protected Action actionSkip;
+
+ protected Action actionTraceSelect;
+
+ private Action doubleClickAction;
+
+ private IFileObserver fileObserver = null;
+
+ protected TraceActionSelection tas;
+
+ /**
+ * The content provider class is responsible for
+ * providing objects to the view. It can wrap
+ * existing objects in adapters or simply return
+ * objects as-is. These objects may be sensitive
+ * to the current input of the view, or ignore
+ * it and always show the same content
+ * (like Task List, for example).
+ */
+ class ViewContentProvider implements IStructuredContentProvider {
+
+ @Override
+ public void inputChanged(Viewer v, Object oldInput, Object newInput) {
+ }
+
+ @Override
+ public void dispose() {
+ }
+
+ @Override
+ public Object[] getElements(Object parent) {
+ try {
+ IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+ if (root != null) {
+ return root.findMarkers(TracepointConstants.tpOrbpMarker, true, IResource.DEPTH_INFINITE);
+ }
+ } catch (CoreException e) {
+ }
+ return new String[] {};
+ }
+ }
+
+
+
+ class ViewLabelProvider extends LabelProvider implements ITableLabelProvider {
+
+ public ViewLabelProvider() {
+ this.traceImage = new TraceFunctions();
+ }
+
+ @Override
+ public String getColumnText(Object obj, int index) {
+ if (obj instanceof IMarker) {
+ EObject eobj = MarkerUtils.getEObjectOfMarker((IMarker) obj);
+ if (eobj instanceof NamedElement) {
+ return ((NamedElement) eobj).getQualifiedName();
+ } else if (eobj != null) {
+ return eobj.toString();
+ }
+ }
+ return getText(obj);
+
+ }
+
+ @Override
+ public Image getColumnImage(Object obj, int index) {
+ if (TraceState.skipAllTracepoints) {
+ return TraceViewImages.getSkipAllImage();
+ }
+ if (obj instanceof IPapyrusMarker) {
+ IPapyrusMarker marker = (IPapyrusMarker) obj;
+ ImageDescriptor id = traceImage.getImageDescriptorForGE(marker);
+ if (id != null) {
+ // TODO: leaks!
+ return id.createImage();
+ }
+ }
+ return null;
+ }
+
+ private TraceFunctions traceImage;
+ }
+
+ class NameSorter extends ViewerSorter {
+ }
+
+ /**
+ * The constructor.
+ */
+ public TracepointView() {
+ }
+
+ /**
+ * This is a callback that will allow us
+ * to create the viewer and initialize it.
+ */
+ @Override
+ public void createPartControl(Composite parent) {
+ viewer = CheckboxTableViewer.newCheckList(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
+ viewer.setContentProvider(new ViewContentProvider());
+ viewer.setLabelProvider(new ViewLabelProvider());
+ viewer.setCheckStateProvider(new ICheckStateProvider() {
+
+ @Override
+ public boolean isGrayed(Object element) {
+ return false;
+ }
+
+ @Override
+ public boolean isChecked(Object element) {
+ if (element instanceof IMarker) {
+ IMarker marker = (IMarker) element;
+ return marker.getAttribute(TracepointConstants.isActive, false);
+ }
+ return false;
+ }
+ });
+
+ viewer.setSorter(new NameSorter());
+ viewer.setInput(getViewSite());
+
+ getViewSite().getPage().addSelectionListener(this);
+
+
+ // Create the help context id for the viewer's control
+ PlatformUI.getWorkbench().getHelpSystem().setHelp(viewer.getControl(), "org.eclipse.papyrus.views.tracepoints.viewer");
+ makeActions();
+ hookContextMenu();
+ hookDoubleClickAction();
+ contributeToActionBars();
+ viewer.addCheckStateListener(new ICheckStateListener() {
+
+ @Override
+ public void checkStateChanged(CheckStateChangedEvent event) {
+ Object element = event.getElement();
+ boolean isChecked = event.getChecked();
+ if (element instanceof IMarker) {
+ IMarker marker = (IMarker) element;
+ try {
+ marker.setAttribute(TracepointConstants.isActive, isChecked);
+ switchUI();
+ } catch (CoreException e) {
+ }
+ }
+ }
+ });
+
+ fileObserver = new IFileObserver() {
+
+ @Override
+ public void handleMarkerDeleted(IMarker marker, @SuppressWarnings("rawtypes") Map attributes) {
+ switchUI();
+ }
+
+ @Override
+ public void handleMarkerChanged(IMarker marker) {
+ switchUI();
+ }
+
+ @Override
+ public void handleMarkerAdded(IMarker marker) {
+ switchUI();
+ }
+
+ // TODO need to handle?
+ @Override
+ public void handleFileRenamed(IFile oldFile, IFile file) {
+ }
+
+ @Override
+ public void handleFileMoved(IFile oldFile, IFile file) {
+ }
+
+ @Override
+ public void handleFileDeleted(IFile file) {
+ }
+
+ @Override
+ public void handleFileChanged(IFile file) {
+ }
+ };
+
+ FileChangeManager.getInstance().addFileObserver(fileObserver);
+ }
+
+ @Override
+ public void dispose() {
+ if (fileObserver != null) {
+ FileChangeManager.getInstance().addFileObserver(fileObserver);
+ }
+ super.dispose();
+ }
+
+ public void switchUI() {
+ Display.getDefault().asyncExec(new Runnable() {
+
+ @Override
+ public void run() {
+ // ... do any work that updates the screen ...
+ viewer.refresh();
+ }
+ });
+ }
+
+ private void hookContextMenu() {
+ MenuManager menuMgr = new MenuManager("#PopupMenu");
+ menuMgr.setRemoveAllWhenShown(true);
+ menuMgr.addMenuListener(new IMenuListener() {
+
+ @Override
+ public void menuAboutToShow(IMenuManager manager) {
+ TracepointView.this.fillContextMenu(manager);
+ }
+ });
+ Menu menu = menuMgr.createContextMenu(viewer.getControl());
+ viewer.getControl().setMenu(menu);
+ getSite().registerContextMenu(menuMgr, viewer);
+ }
+
+ private void contributeToActionBars() {
+ IActionBars bars = getViewSite().getActionBars();
+ fillLocalPullDown(bars.getMenuManager());
+ fillLocalToolBar(bars.getToolBarManager());
+ }
+
+ protected void fillLocalPullDown(IMenuManager manager) {
+ manager.add(actionDelete);
+ manager.add(new Separator());
+ manager.add(actionGoto);
+ }
+
+ protected void fillContextMenu(IMenuManager manager) {
+ manager.add(actionDelete);
+ manager.add(actionGoto);
+ // Other plug-ins can contribute there actions here
+ manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
+ }
+
+ protected void fillLocalToolBar(IToolBarManager manager) {
+ manager.add(actionDelete);
+ manager.add(actionDeleteAll);
+ manager.add(actionGoto);
+ manager.add(actionSkip);
+ manager.add(actionTraceSelect);
+ }
+
+ protected void makeActions() {
+ actionSkip = new Action("Skip all", IAction.AS_CHECK_BOX) {
+
+ @Override
+ public void run() {
+ TraceState.skipAllTracepoints = !TraceState.skipAllTracepoints;
+ switchUI();
+ }
+ };
+ actionSkip.setChecked(TraceState.skipAllTracepoints);
+
+ actionSkip.setImageDescriptor(TraceViewImages.getSkipAllID());
+ actionSkip.setToolTipText("Toggle skipping all trace/break points");
+
+ actionDelete = new Action("Delete") {
+
+ @Override
+ public void run() {
+ ISelection selection = viewer.getSelection();
+ Object obj = ((IStructuredSelection) selection).getFirstElement();
+ if (obj instanceof IMarker) {
+ IMarker marker = (IMarker) obj;
+ try {
+ marker.delete();
+ } catch (CoreException e) {
+ }
+ }
+ }
+ };
+ actionDelete.setToolTipText("Delete trace/breakpoint");
+ actionDelete.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_ELCL_REMOVE));
+
+ actionDeleteAll = new Action() {
+
+ @Override
+ public void run() {
+
+ IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+ if (root != null) {
+ try {
+ root.deleteMarkers(TracepointConstants.tpOrbpMarker, true, 0);
+ } catch (CoreException e) {
+ }
+ }
+ }
+ };
+ actionDeleteAll.setText("Delete all");
+ actionDeleteAll.setToolTipText("Delete all trace/breakpoint");
+ actionDeleteAll.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_ELCL_REMOVEALL));
+
+ actionGoto = new Action() {
+
+ @Override
+ public void run() {
+ ISelection selection = viewer.getSelection();
+ Object obj = ((IStructuredSelection) selection).getFirstElement();
+ if (obj instanceof IMarker) {
+ IMarker marker = (IMarker) obj;
+ boolean onlyNavigatoToActiveEditor = false;
+ IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+ if (onlyNavigatoToActiveEditor) {
+ IEditorPart part = activePage.getActiveEditor();
+ if (part instanceof IGotoMarker) {
+ ((IGotoMarker) part).gotoMarker(marker);
+ }
+ } else {
+ try {
+ IDE.openEditor(activePage, marker, OpenStrategy.activateOnOpen());
+ } catch (PartInitException e) {
+
+ }
+ }
+ }
+ }
+ };
+ actionGoto.setText("Goto");
+ actionGoto.setToolTipText("Navigate to trace/breakpoint");
+ actionGoto.setImageDescriptor(TraceViewImages.getGotoObjID());
+ doubleClickAction = actionGoto;
+
+ actionTraceSelect = new Action() {
+
+ @Override
+ public void run() {
+ ISelection selection = viewer.getSelection();
+ Object obj = ((IStructuredSelection) selection).getFirstElement();
+ if (obj instanceof IMarker) {
+ // EditorPart part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().openEditor(input, null);
+ IMarker marker = (IMarker) obj;
+ EObject eobj = MarkerUtils.getEObjectOfMarker(marker);
+ if (eobj instanceof Element) {
+ TraceActionSelection tad = new TraceActionSelection(Display.getDefault().getActiveShell(), (IMarker) obj, (Element) eobj);
+ tad.open();
+ if (tad.getReturnCode() == IDialogConstants.OK_ID) {
+ Object[] result = tad.getResult();
+ int traceAction = (Integer) result[0];
+ String traceMechanism = (String) result[1];
+ try {
+ marker.setAttribute(TracepointConstants.traceAction, traceAction);
+ marker.setAttribute(TracepointConstants.traceMechanism, traceMechanism);
+ } catch (CoreException e) {
+ }
+ }
+ }
+ }
+ }
+
+ };
+ actionTraceSelect.setText("trace action");
+ actionTraceSelect.setToolTipText("Select trace action");
+ actionTraceSelect.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_TOOL_NEW_WIZARD));
+ }
+
+ protected void hookDoubleClickAction() {
+ viewer.addDoubleClickListener(new IDoubleClickListener() {
+
+ @Override
+ public void doubleClick(DoubleClickEvent event) {
+ doubleClickAction.run();
+ }
+ });
+ }
+
+ /**
+ * Passing the focus request to the viewer's control.
+ */
+ @Override
+ public void setFocus() {
+ viewer.getControl().setFocus();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui.IWorkbenchPart,
+ * org.eclipse.jface.viewers.ISelection)
+ */
+ // TODO: function not used currently
+ @Override
+ public void selectionChanged(IWorkbenchPart part, ISelection selection) {
+
+ IStructuredSelection sSelection = null;
+ if (selection instanceof IStructuredSelection) {
+ sSelection = (IStructuredSelection) selection;
+ }
+
+ // exclude case of an empty selection which is not a Tree selection, since changing views provokes an
+ // empty selection (selection gets lost, although same element remains selected)
+ if ((selection != null) && (sSelection != null) && sSelection.isEmpty()) {
+ return;
+ }
+ currentElement = null;
+
+ // No available selection: switch to default panel
+ if ((sSelection == null) || (sSelection.size() != 1)) {
+ switchUI();
+ return;
+ }
+
+ // Retrieve selected object
+ Object currentObject = sSelection.getFirstElement();
+ // If the object is an edit part, try to get semantic bridge
+ if (currentObject instanceof GraphicalEditPart) {
+ GraphicalEditPart editPart = (GraphicalEditPart) currentObject;
+ if (editPart.getModel() instanceof View) {
+ View view = (View) editPart.getModel();
+ if (view.getElement() instanceof Element) {
+ currentObject = view.getElement();
+ }
+ }
+ } else if (currentObject instanceof IAdaptable) {
+ // modisco ModelElementItem supports IAdaptable (cleaner than cast / dependency with modisco)
+ currentObject = ((IAdaptable) currentObject).getAdapter(EObject.class);
+ }
+
+ if (currentObject instanceof Element) {
+ currentElement = (Element) currentObject;
+ // switchUI();
+ }
+ }
+
+ protected Element currentElement;
+}
diff --git a/extraplugins/qompass/org.eclipse.papyrus.qompass.ui/.classpath b/extraplugins/qompass/org.eclipse.papyrus.qompass.ui/.classpath
new file mode 100644
index 00000000000..098194ca4b7
--- /dev/null
+++ b/extraplugins/qompass/org.eclipse.papyrus.qompass.ui/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass/org.eclipse.papyrus.qompass.ui/.project b/extraplugins/qompass/org.eclipse.papyrus.qompass.ui/.project
new file mode 100644
index 00000000000..63174709d26
--- /dev/null
+++ b/extraplugins/qompass/org.eclipse.papyrus.qompass.ui/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.qompass.ui</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass/org.eclipse.papyrus.qompass.ui/.settings/org.eclipse.jdt.core.prefs b/extraplugins/qompass/org.eclipse.papyrus.qompass.ui/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..94d61f00da6
--- /dev/null
+++ b/extraplugins/qompass/org.eclipse.papyrus.qompass.ui/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,291 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=260
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=false
+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=260
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=5
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/extraplugins/qompass/org.eclipse.papyrus.qompass.ui/.settings/org.eclipse.jdt.ui.prefs b/extraplugins/qompass/org.eclipse.papyrus.qompass.ui/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 00000000000..954281dbc31
--- /dev/null
+++ b/extraplugins/qompass/org.eclipse.papyrus.qompass.ui/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,68 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_functional_interfaces=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=false
+cleanup.format_source_code=false
+cleanup.format_source_code_changes_only=false
+cleanup.insert_inferred_type_arguments=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=false
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_redundant_type_arguments=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_anonymous_class_creation=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_lambda=true
+cleanup.use_parentheses_in_expressions=false
+cleanup.use_this_for_non_static_field_access=false
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=false
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_type_arguments=false
+cleanup_profile=_Papyrus
+cleanup_settings_version=2
+eclipse.preferences.version=1
+formatter_profile=_Papyrus
+formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * Constructor.\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*****************************************************************************\n * Copyright (c) ${year} CEA LIST and others.\n * \n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n * CEA LIST - Initial API and implementation\n * \n *****************************************************************************/\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\n * ${see_to_overridden}\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${see_to_target}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/extraplugins/qompass/org.eclipse.papyrus.qompass.ui/META-INF/MANIFEST.MF b/extraplugins/qompass/org.eclipse.papyrus.qompass.ui/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..950b3e10c67
--- /dev/null
+++ b/extraplugins/qompass/org.eclipse.papyrus.qompass.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,19 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.uml2.uml;bundle-version="4.0.2",
+ org.eclipse.core.filesystem;bundle-version="1.3.200",
+ org.eclipse.core.resources;bundle-version="3.9.1",
+ org.eclipse.papyrus.infra.core;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.core.log;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.emf;bundle-version="1.2.0",
+ org.eclipse.emf.transaction;bundle-version="1.8.0"
+Export-Package: org.eclipse.papyrus.qompass.ui
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-Version: 1.2.0.qualifier
+Bundle-Name: %pluginName
+Bundle-Localization: plugin
+Bundle-ManifestVersion: 2
+Bundle-Activator: org.eclipse.papyrus.qompass.ui.Activator
+Bundle-SymbolicName: org.eclipse.papyrus.qompass.ui;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.7
diff --git a/extraplugins/qompass/org.eclipse.papyrus.qompass.ui/about.html b/extraplugins/qompass/org.eclipse.papyrus.qompass.ui/about.html
new file mode 100644
index 00000000000..82d49bf5f81
--- /dev/null
+++ b/extraplugins/qompass/org.eclipse.papyrus.qompass.ui/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/extraplugins/qompass/org.eclipse.papyrus.qompass.ui/build.properties b/extraplugins/qompass/org.eclipse.papyrus.qompass.ui/build.properties
new file mode 100644
index 00000000000..6c551f66003
--- /dev/null
+++ b/extraplugins/qompass/org.eclipse.papyrus.qompass.ui/build.properties
@@ -0,0 +1,9 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ about.html,\
+ plugin.properties,\
+ plugin.xml,\
+ icons/
+src.includes = about.html
diff --git a/extraplugins/qompass/org.eclipse.papyrus.qompass.ui/icons/qompass-16x16.gif b/extraplugins/qompass/org.eclipse.papyrus.qompass.ui/icons/qompass-16x16.gif
new file mode 100644
index 00000000000..c47d52ad211
--- /dev/null
+++ b/extraplugins/qompass/org.eclipse.papyrus.qompass.ui/icons/qompass-16x16.gif
Binary files differ
diff --git a/extraplugins/qompass/org.eclipse.papyrus.qompass.ui/plugin.properties b/extraplugins/qompass/org.eclipse.papyrus.qompass.ui/plugin.properties
new file mode 100644
index 00000000000..1e85d2491da
--- /dev/null
+++ b/extraplugins/qompass/org.eclipse.papyrus.qompass.ui/plugin.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2013 CEA LIST.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# CEA LIST - initial API and implementation
+###############################################################################
+pluginName=Basic code-generation functions (Incubation)
+providerName=Eclipse Modeling Project
diff --git a/extraplugins/qompass/org.eclipse.papyrus.qompass.ui/plugin.xml b/extraplugins/qompass/org.eclipse.papyrus.qompass.ui/plugin.xml
new file mode 100644
index 00000000000..02f515567bf
--- /dev/null
+++ b/extraplugins/qompass/org.eclipse.papyrus.qompass.ui/plugin.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+
+<extension
+ point="org.eclipse.ui.menus">
+ <menuContribution
+ allPopups="true"
+ locationURI="popup:org.eclipse.papyrus.views.modelexplorer.modelexplorer.popup">
+ <menu
+ icon="icons/qompass-16x16.gif"
+ id="org.eclipse.papyrus.qompass.popup"
+ label="Qompass">
+ <separator name="designer" visible="true"/>
+ </menu>
+ </menuContribution>
+ <menuContribution
+ allPopups="true"
+ locationURI="popup:org.eclipse.gmf.runtime.diagram.ui.DiagramEditorContextMenu?after=filtersMenu">
+ <menu
+ icon="icons/qompass-16x16.gif"
+ id="org.eclipse.papyrus.qompass.popup"
+ label="Qompass">
+ <separator name="codegen" visible="true"/>
+ <separator name="designer" visible="true"/>
+ <separator name="architect" visible="true"/>
+ </menu>
+ </menuContribution>
+</extension>
+</plugin>
diff --git a/extraplugins/qompass/org.eclipse.papyrus.qompass.ui/pom.xml b/extraplugins/qompass/org.eclipse.papyrus.qompass.ui/pom.xml
new file mode 100644
index 00000000000..565d394a597
--- /dev/null
+++ b/extraplugins/qompass/org.eclipse.papyrus.qompass.ui/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.qompass.ui</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/extraplugins/qompass/org.eclipse.papyrus.qompass.ui/src/org/eclipse/papyrus/qompass/ui/Activator.java b/extraplugins/qompass/org.eclipse.papyrus.qompass.ui/src/org/eclipse/papyrus/qompass/ui/Activator.java
new file mode 100644
index 00000000000..0ca60ed8fae
--- /dev/null
+++ b/extraplugins/qompass/org.eclipse.papyrus.qompass.ui/src/org/eclipse/papyrus/qompass/ui/Activator.java
@@ -0,0 +1,44 @@
+package org.eclipse.papyrus.qompass.ui;
+
+import org.eclipse.papyrus.infra.core.log.LogHelper;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator implements BundleActivator {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.qompass.ui"; //$NON-NLS-1$
+
+ private static BundleContext context;
+
+ static BundleContext getContext() {
+ return context;
+ }
+
+ public static LogHelper log;
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void start(BundleContext bundleContext) throws Exception {
+ Activator.context = bundleContext;
+ log = new LogHelper();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void stop(BundleContext bundleContext) throws Exception {
+ Activator.context = null;
+ log = null;
+ }
+}

Back to the top